CoveredCallFinancialProductLibrary
CoveredCall Financial Product Library
nonReentrant()
modifier
Prevents a contract from calling itself, directly or indirectly.
Calling a nonReentrant
function from another nonReentrant
function is not supported. It is possible to prevent this from happening
by making the nonReentrant
function external, and make it call a
private
function that does the actual work.
nonReentrantView()
modifier
Designed to prevent a view-only method from being re-entered during a call to a nonReentrant()
state-changing method.
setFinancialProductStrike(address financialProduct, struct FixedPoint.Unsigned strikePrice)
public
Enables any address to set the strike price for an associated financial product.
Note: a) Any address can set the initial strike price b) A strike price cannot be 0. c) A strike price can only be set once to prevent the deployer from changing the strike after the fact. d) For safety, a strike price should be set before depositing any synthetic tokens in a liquidity pool. e) financialProduct must expose an expirationTimestamp method.
Parameters:
-
financialProduct
: address of the financial product. -
strikePrice
: the strike price for the covered call to be applied to the financial product.
getStrikeForFinancialProduct(address financialProduct) → struct FixedPoint.Unsigned
public
Returns the strike price associated with a given financial product address.
Parameters:
-
financialProduct
: address of the financial product.
transformPrice(struct FixedPoint.Unsigned oraclePrice, uint256 requestTime) → struct FixedPoint.Unsigned
public
Returns a transformed price by applying the call option payout structure.
Parameters:
-
oraclePrice
: price from the oracle to be transformed. -
requestTime
: timestamp the oraclePrice was requested at.
transformCollateralRequirement(struct FixedPoint.Unsigned oraclePrice, struct FixedPoint.Unsigned collateralRequirement) → struct FixedPoint.Unsigned
public
Returns a transformed collateral requirement by applying the covered call payout structure.
Parameters:
-
oraclePrice
: price from the oracle to transform the collateral requirement. -
collateralRequirement
: financial products collateral requirement to be scaled according to price and strike.
transformPriceIdentifier(bytes32 priceIdentifier, uint256 requestTime) → bytes32
public
Transforms a given price identifier using the financial product libraries transformation logic.
Parameters:
-
priceIdentifier
: input price identifier defined for the financial contract. -
requestTime
: timestamp the identifier is to be used at. EG the time that a price request would be sent using this identifier.