StructuredNoteFinancialProductLibrary
Structured Note 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 the deployer of the library to set the strike price for an associated financial product.
Note: a) Only the owner (deployer) of this library can set new strike prices 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) financialProduct must exposes an expirationTimestamp method.
Parameters:
-
financialProduct
: address of the financial product. -
strikePrice
: the strike price for the structured note 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 structured note 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 structured note payout structure. If the price of the structured note is greater than the strike then the collateral requirement scales down accordingly.
Parameters:
-
oraclePrice
: price from the oracle to transform the collateral requirement. -
collateralRequirement
: financial products collateral requirement to be scaled according to price and strike.
renounceOwnership()
public
Leaves the contract without owner. It will not be possible to call
onlyOwner
functions anymore. Can only be called by the current owner.
NOTE: Renouncing ownership will leave the contract without an owner,
thereby removing any functionality that is only available to the owner.
transferOwnership(address newOwner)
public
Transfers ownership of the contract to a new account (newOwner
).
Can only be called by the current owner.
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.