The below diagram is the current contract system design of Optimus:
Earn Contract: receive deposited / withdrawal requests from the user to mint / burn fICX token.
Controller Contract: acts as the central controller to process and execute requests.
Strategy Contract: manages different investment strategies and acts as the gateway to proceed assets deposit to lending pool contracts.
Reward Contract: manages the distribution of reward generated by strategy to end-users and worker tokens.
Multisig Contract: require multi-signatures from different admins to perform updates on core contracts.
Bot Keeper: backend node to monitor, read and trigger automation tasks on contracts.