Options Logics
Here the logics used in options contract are explained.
Strike Price Gains calculation
function calculateStrikePriceGains(
uint128 depositedAmount,
uint128 strikePrice,
uint64 ethPrice
)
if(currentEthValue > strikePrice){
ethToReturn = (currentEthValue - strikePrice)/currentEthPrice;
}else{
ethToReturn = 0;
}
Compare the current USD value of the deposited amount and strike price value of the deposited amount chose by user. If the current value is greater, then the user will get gains, since the current ETH price is higher than the strike price. If its low, then user will get no gains from options.
Functions which are using the above logic
Option Fees Calculation
5% Strike Price = [(10*a*E)^½ + 3*(1/b)] + 0.4*((10*a*E)^½ + 3*(1/b))/(3*a)
10% Strike Price = [(10*a*E)^½ + 3*(1/b)] + 0.1*((10*a*E)^½ + 3*(1/b))/(3*a)
15% Strike Price = [(10*a*E)^½ + 3*(1/b)] + 0.05*((10*a*E)^½ + 3*(1/b))/(3*a)
20% Strike Price = [(10*a*E)^½ + 3*(1/b)] + 0.01*((10*a*E)^½ + 3*(1/b))/(3*a)
25% Strike Price = [(10*a*E)^½ + 3*(1/b)] + 0.005*((10*a*E)^½ + 3*(1/b))/(3*a)
where,
a = ETH Volatility
b = dCDS Vault value/ ETH Vault value (including borrower’s ETH value).
E = ETH price.
ETH volatility is get from backend API.
dCDS Vault value is get from Borrowing contract omniChainBorrowingCDSPoolValue.
ETH Vault value is get from Treasury contract omniChainTreasuryTotalVolumeOfBorrowersAmountInUSD.
ETH price is get param.
Functions which are using the above logic
Last updated