Option Manager is a high-level contract that is responsible for the Option Core low-level contract.
The manager is responsible for rule-based logic, which determines the rules that the Option Core will abide by. Collateral will be deposited and withdrawn in this contract, which holds funds. Therefore, the manager will have an asset logic and state implementation that it either inherits or implements in the top-level contract.
Approvals should either be:
Not necessary through the use of permit
one time, for all options, through the option manager? (Need to think about where approvals come in).
Collateral should be made more efficient:
Wrapped into ERC-1155 for more efficient transfers, internally or externally.
Internal ERC-20 token balances for more efficient transfers.
Other notes:
Execution logic that the Option Core will call into and use.
Implementation should include: (Invariants are used by the Option Core)
Invariant for settlement, when it occurs and what happens (cash settlement using oracles?)
Invariant for strikePrice
Invariant for expiry logic (block based, timestamp based? Option Core will call this fn).
External but needed:
Invariant for collateral requirements (Option Core will call this fn)
Invariant for continuous deployments
Invariant for automatic expiry? ties into settlement
Option Manager is a high-level contract that is responsible for the Option Core low-level contract.
The manager is responsible for rule-based logic, which determines the rules that the Option Core will abide by. Collateral will be deposited and withdrawn in this contract, which holds funds. Therefore, the manager will have an asset logic and state implementation that it either inherits or implements in the top-level contract.
Approvals should either be:
Collateral should be made more efficient:
Other notes:
Implementation should include: (Invariants are used by the Option Core)
External but needed: