ERC20
option, and its name comes from the TradFi term for an option with a specific underlying token, option type (Put or Call) expiration date, and strike price. Each Series has an associated bToken
and wToken
which represent the long and short position, respectively, in the Series. The SeriesController
manages the lifecycle of all Series, from Series creation in SeriesController.createSeries
, the minting of bToken
and wToken
in SeriesController.mintOptions
, to the burning of bToken
and wToken
in SeriesController.exerciseOption
, SeriesController.claimCollateral
, and SeriesController.closePosition
.uint64
called the seriesId
. The SeriesController
uses a monotonically increasing index for each new Series is creates, and stores them in the series array.MinterAmm
, must transfer into the SeriesController
the full collateral necessary to fulfill the option's obligation to buy (Calls) or sell (Puts) the underlying token. For instance, to mint 1.5 unit of bToken
on a WBTC Call Series with expiration of Friday 8am July 2nd 2021 and a strike price of $60,000, the seller must first call ERC20.approve
and give the SeriesController
an allowance of 1.5 WBTC. If instead of a Call, this Series was a Put but all the other parameters remained the same, then the seller would first need to ERC20.approve
the SeriesController
for 1.5 * $60,000 = 90,0000 USDC
. This collateral ensures that no matter what how the price of the underlying token changes, the SeriesController
will always be able to redeem option tokens for their correct payout.expirationDate
tokens
underlyingToken
, priceToken
, and collateralToken
for this Series