Fixed Strike oTokens
ERC20-compatible option token implementation with fixed strike prices
ERC20-compatible option token implementation with fixed strike prices
Option Tokens (oTokens) are issued by a Option Teller to represent American-style options on the underlying token. Call option tokens can be exercised for the underlying token 1:1 by paying the amount * strike price in the quote token at any time between the eligible and expiry timestamps. Put option tokens can be exercised for the underlying token 1:1 by paying the amount of the underlying token to receive the amount * strike price in the quote token at any time between the eligible and expiry timestamps.
The Fixed Strike Option Token contract is a specific implementation of oTokens where the strike price is specified and fixed on creation.
oTokens are unique to the combination of parameters that they are deployed with. Eligible and expiry timestamps are rounded down to the nearest day (using UTC) to reduce the possible number of tokens.
This contract uses Clones With Immutable Args to save gas on deployment and is based on VestedERC20.
The token that the option is on
The token that the option is quoted in
Timestamp at which the Option token can first be exercised
Timestamp at which the Option token cannot be exercised after
Address that will receive the proceeds when option tokens are exercised. Also, the only address that can reclaim collateral from expired oTokens.
Whether the option is a call (true) or a put (false)
Address of the Teller that created the token
The strike price of the option (in quote token units)
Mint option tokens
Only callable by the Teller that created the token
Parameters
to
address
The address to mint to
amount
uint256
The amount to mint
Burn option tokens
Only callable by the Teller that created the token
Parameters
from
address
The address to burn from
amount
uint256
The amount to burtn
Get collection of option parameters in a single call
Returns
decimals_
uint8
The number of decimals for the option token (same as payout token)
payout_
ERC20
The address of the payout token
quote_
ERC20
The address of the quote token
eligible_
uint48
The option exercise eligibility timestamp
expiry_
uint48
The option exercise expiry timestamp
receiver_
address
The address of the receiver
call_
bool
Whether the option is a call (true) or a put (false)
strike_
uint256
The option strike price specified in the amount of quote tokens per underlying token