💰AgentVault
🎯 Overview
📊 Contract Architecture
contract AgentVault is Ownable, ReentrancyGuard {
struct Vault {
uint256 nativeBalance;
mapping(address => uint256) tokenBalances;
address[] allowedTokens;
uint256 dailyLimit;
uint256 dailySpent;
uint256 lastResetTime;
bool isActive;
}
mapping(address => Vault) private vaults;
mapping(address => bool) public registeredAgents;
uint256 public constant MIN_DAILY_LIMIT = 0.01 ether;
uint256 public constant MAX_DAILY_LIMIT = 100 ether;
}🔧 Core Functions
1. Create Vault
2. Deposit Native Tokens
3. Withdraw Native Tokens
4. Deposit ERC20 Tokens
5. Withdraw ERC20 Tokens
6. Allow Token
7. Disallow Token
8. Update Daily Limit
9. Activate/Deactivate Vault
🔍 Query Functions
Get Native Balance
Get Token Balance
Get Daily Limit Info
Get Allowed Tokens
Check if Vault is Active
📡 Events
VaultCreated
NativeDeposit
NativeWithdraw
TokenDeposit
TokenWithdraw
DailyLimitUpdated
TokenAllowed / TokenDisallowed
VaultActivated / VaultDeactivated
💡 Usage Patterns
Pattern 1: Basic Vault Setup
Pattern 2: Multi-Token Vault
Pattern 3: Automated Refill
Pattern 4: Daily Limit Management
🔒 Security Features
1. Daily Spending Limits
2. Access Control
3. Token Whitelist
4. Reentrancy Protection
📚 Related Documentation
🔗 Contract Addresses
Somnia Testnet
Somnia Mainnet
⚠️ Important Notes
Last updated

