BCO API
BondingNOM.sol
Будь ласка, зверніться до розділу «Пропозиція кривої зв’язку (BCO)», щоб дізнатися більше про BCO та bNOM проти NOM.
getNOMAddr() public view returns (address NOMContAddr)

getSupplyNOM() public view returns (uint256 supplyNOM)

getBondPrice() public view returns (uint256 priceNOM)

tokToF64(uint256 utoken) public view returns(int128 f64Token)
We will useABDKMath64x64.divu
module from abdk-libraries-solidity
library
ABDKMath64x64.divu
module from abdk-libraries-solidity
library
f64ToTok(int128 fixed64) public view returns(uint256 uToken)
We will use ABDKMath64x64.mulu
module from abdk-libraries-solidity
library
ABDKMath64x64.mulu
module from abdk-libraries-solidity
library
priceAtSupply(uint256 supplyNOM) public view returns(uint256 priceNOM)
By consuming this function, everyone can predict the exact price base on the NOM token supply
Formula: ETH/NOM = pow(_supplyNOM/a, 2)
ETH/NOM = pow(_supplyNOM/a, 2)

supplyAtPrice(uint256 priceNOM) public view returns (uint256 suppliedNOM)
Using this function, everyone can predict the exact token supply base on token price
Formula: SuppliedNom = sqrt(ETH/NOM) * a
SuppliedNom = sqrt(ETH/NOM) * a

NOMSupToETH(uint256 supplyTop, uint256 supplyBottom) public view returns(uint256 amountETH)
Integrate over a curve to get the amount of ETH needed to buy the amount of NOM
Formula: ETH = a/3((SupplyNOM_Top/a)^3 - (SupplyNOM_Bottom/a)^3)
ETH = a/3((SupplyNOM_Top/a)^3 - (SupplyNOM_Bottom/a)^3)

buyQuoteNOM(uint256 amountNOM) public view returns(uint256 amountETH)
Визначте діапазон пропозиції на основі спреду та ціни поточної кривої на основі supplyNOM
Проінтегруйте по кривій, щоб отримати суму ETH, необхідну для покупки суми NOM

cubrt (int128 x) public pure returns (int128 cX)

cubrtu (uint256 x) public pure returns (uint256)

buyQuoteETH(uint256 amountETH) public view returns(uint256 amountNOM)
Визначити дно пропозиції
Проінтегруйте по кривій і розв’яжіть верхню частину пропозиції
supplyNOM_Top = a(3ETH/a + (supplyNOM_Bot/a)^3)^(1/3
)Щоб отримати NOM для ETH, відніміть низ пропозиції від верху

buyNOM() public payable
Купити NOM токен з ETH
sellQuoteNOM(uint256 amountNOM) public view returns(uint256 amountETH)
Визначте максимум пропозиції:
priceBondCurve - 1% = Top Sale Price
Проінтегруйте по кривій, щоб знайти ETH:
ETH = a/3((supplyNOM_Top/a)^3 - (supplyNOM_Bot/a)^3)
Щоб отримати NOM для ETH, відніміть низ пропозиції від верху

sellNOM(uint256 amountNOM) public
Визначте максимум пропозиції:
priceBondCurve - 1% = Top Sale Price
Проінтегруйте по кривій, щоб знайти ETH:
ETH = a/3((supplyNOM_Top/a)^3 - (supplyNOM_Bot/a)^3)
Щоб отримати NOM для ETH, відніміть низ пропозиції від верху

teamBalance() public returns(uint256 teamBalance)
Обчисліть кількість ETH для покриття всіх поточних непогашених NOM на основі інтеграції кривої зв’язування
Віднімання заблокувало ETH з балансу контракту, щоб отримати суму, доступну для зняття

withdraw() public onlyOwner returns(bool success)
Обчисліть кількість ETH для покриття всіх поточних непогашених NOM на основі інтеграції кривої зв’язування
Віднімання lockedETH із балансу контракту, щоб отримати суму, доступну для зняття.

Last updated