[LRFC] Deploy Automated Strikes and Expiries

Simple Summary:

Deploy a ListingManager contract on all option markets to fully automate the process of listing boards and strikes.

Abstract:

The Lyra Automated Market Maker (AMM) has successfully provided trustless competitive option pricing on-chain. However, the current process of listing new strikes and expiries on the AMM is unpredictable and often causes inconvenience to traders and integrators.

This proposal aims to elucidate the process of listing strikes and expiries on the Lyra Newport deploys on Optimism and Arbitrum. The proposed ListingManager contract allows for the trustless and permissionless listing of strikes and expiries. It utilizes a queue-execute model where strikes are executed after a minimum required queue time. This will allow anyone to queue the creation of new boards and strikes, allowing for more systematic and predictable listings of boards.

Motivation:

The motivation behind designing the automated strikes and expiries contract is to simplify and streamline the process of listing strikes on the AMM. By automating the strike listing process, the contract aims to create stability in listings and enhance the experience for users and integrators.

Specification:

ListingManager:

The automated strikes and expiries contract generates and adds strikes and expiries to the AMM. It calculates the implied volatility of the listing based on previous boards, interpolating and extrapolating where necessary. A risk council elected by token holders will have the ability to veto boards as a precautionary measure. The listing of strikes follows a queue-execute model, where a minimum required queue time is enforced before a board is pushed to the AMM.

Whenever the option market circuit breakers are live, all queued boards/strikes are cleared, and no new boards/strikes can be queued until it is over.

ListingManagerLibrarySettings:

A contract that contains an array of ‘pivot’ values that are used to calculate the expiries and strikes that will be listed relative to the previous boards.

StrikePriceGenerator:

Automatically generates strike prices for various expiries as spot fluctuates.

Rationale:

The automated strikes and expiries contract offers several advantages, including increased predictability, transparency and certainty, aiming to enable increased reliability for integrators and traders.

Parameters

Base parameters: *shared by all markets

Function Parameters Description
setRiskCouncil address _riskCouncil The address of the Risk Council.
setListingManagerParams uint _newBoardMinExpiry, uint _newBoardMaxExpiry, uint _newStrikeMinExpiry, uint _numWeeklies, uint _numMonthlies, uint _maxNumStrikes, uint _maxScaledMoneyness The minimum and maximum expiry dates for boards, strikes, and the number of weekly, monthly, and maximum strikes.
setQueueParams uint _boardQueueTime, uint _strikeQueueTime, uint _queueStaleTime The time in seconds that a board or strike will wait in the queue before being listed, and the time in seconds after which a board or strike will be removed from the queue if it is not listed.

Optimism risk council: 0xf6f583141590577eae48a99b7f09ad3a7274ce40

Arbitrum risk council: 0xca2d65d1bab8e1a426c7ccab8d54bad239baef1a

Per market parameter differences:

OP/ARB: max expiry: 6 weeks

ETH/BTC: max expiry 8 weeks (both OP/ARB)

Test Cases:

Repo:

4 Likes