Smart Contract Interaction Overview

AccessControl.sol

  • AccessControls.sol configures system-wide roles.

  • Additionally, configures Smart Vault specific roles.

  • For more details see Roles.

ActionManager.sol

AssetGroupRegistry.sol

  • Asset groups are combinations of tokens that users can deposit into Smart Vaults/Strategies.

  • These have to be registered and whitelisted.

DepositSwap.sol

  • Deposits can be routed through this contract to swap assets before they reach the Smart Vaults.

  • E.G. the user holds DAI but would like to join an ETH/USDC Smart Vault.

GuardManager.sol

MasterWallet.sol

This holds the funds for:

  • DHW to pick up and funnel to underlying protocols.

  • The user to claim after funds were successfully extracted from underlying protocols (on withdrawal).

RewardManager.sol

  • This Smart Contract enables vault creators to configure custom Smart Vault Rewards.

  • For example, a Vault also emits "token X" in addition to the yield generated through underlying protocols.

  • Rewards are calculated off-chain and claimed using RewardPool.sol using Merkle proofs.

SmartVaultManager.sol

This is the main entry point for all user interactions and delegates to other contracts.

SmartVault.sol

  • Each Vault has its own SmartVault.sol deployment.

  • Implements ERC20 SVTs (Smart Vault Tokens) which represent the user's share in the Vault.

  • Implements ERC1155 for deposit and withdrawal of NFTs.

  • NFTs wrap the SVTs created and in turn can be burned to receive those SVTs back.

  • These can be transferred by holders depending on applicable Guards in place.

SmartVaultFactory.sol

Strategy.sol

StrategyRegistry.sol

  • The StrategyRegistry.sol holds and tracks information about the Strategies.

Last updated