StructuredNoteFinancialProductLibrary

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.

onlyOwner() modifier

Throws if called by any account other than the owner.

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.

constructor() internal

_preEntranceCheck() internal

_preEntranceSet() internal

_postEntranceReset() internal

owner() → address public

Returns the address of the current owner.

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.

_msgSender() → address payable internal

_msgData() → bytes 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.

OwnershipTransferred(address previousOwner, address newOwner) event

© UMA Project 2018-2019