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
Configures Actions for Smart Vaults.
Runs Actions for Smart Vaults.
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
Configures Guards for Smart Vaults.
Runs pre-configured Guards for Smart Vaults.
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.
DepositManager.sol - Deposit logic
WithdrawalManager.sol - Withdrawal Logic
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
Creates and registers new Smart Vaults.
Strategy.sol
For more information about underlying protocols please see Understanding a Yield Generator
StrategyRegistry.sol
The StrategyRegistry.sol holds and tracks information about the Strategies.
Last updated