PodCall
PodCall is a contract that should inherit PodOption and override the four main functions: mint
, unmint
, exercise
, and withdraw.
Methods
mint
This function is meant to be called by underlying token holders wanting to write option tokens.
Locks some amount of the underlying asset and writes option tokens. The issued amount ratio is 1:1 (e.g., 1 option token for 1 underlying token). It presumes the caller has already calledIERC20.approve()
on the underlying token contract to move caller funds.
This function can only be called during tradeWindow
period depending on the exercise type.
For European: before exerciseWindow
.
For American: anytime before expiration.
unmint
Unlocks some amount of the underlying token by burning option tokens. This mechanism ensures that users can only redeem tokens they've previously lock into this contract.
This function can only be called during tradeWindow
period depending on the exercise type.
For European: before exerciseWindow
.
For American: anytime before expiration.
exercise
Allow call token holders to use them to buy some amountOfOptions
units of the underlying token
for the amountOfOptions * strike price
units of the strike token. It presumes the caller has already called IERC20.approve()
on the strike token contract to move caller funds.
During the process:
The
amountOfOptions
units ofunderlying tokens
are transferred to thecaller
The
amountOfOptions
option tokens are burned.The
amountOfOptions * strikePrice
units of strike tokens are transferred intothis contract as a payment for the underlying tokens.
This function can only be called duringexpirationWindow
period depending on the exercise type.
For European: after trade window and before expiration. For American: anytime before expiration.
withdraw
Withdraws the locked amount of Strike tokens after expiration by burning Options.
The Strike Asset is NOT withdrawn on a first-come-first-serve basis. Meaning that, if there is not enough underlying asset
left because the series has been exercised, The mix of underlying tokens
and strike asset
are distributed proportionally to the sellers.
This function can only be called during withdrawWindow
which is after expiration.
Last updated