Spool Docs
Search
K

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.