CoveredCallFinancialProductLibrary

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.

constructor() internal

_preEntranceCheck() internal

_preEntranceSet() internal

_postEntranceReset() internal

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.

© UMA Project 2018-2019