USDCdeposit made by user.
PerpTradeExecutorcontracts. Where Batcher, Vault contracts mainly handle the user deposit/withdrawals. ConvexTradeExecutor and PerpTradeExecutor handles the position taken on respective protocols.
Batcher: Batcher contract main function is batch multiple user deposits so its cheaper for user to deposit/withdraw. The current implementation helps us integrate karma check so users who pass karma check can deposit/withdraw. Users deposit/withdraw into vault through this contract.
Vault: Vault contract is the main contract user funds are managed across different protocols using their respective trade executors. Vault can add/remove trade executors depending on strategy. Vault also manages funds across different trade executors.
ConvexTradeExecutor: ConvexTradeExecutor is the contract that handles the position taken on convex protocol.
PerpTradeExecutor: PerpTradeExecutor is the contract that handles the position taken on perp protocol.