⚙️ Cache Manager Interactions Guide
This guide covers two ways to interact with Arbitrum's Cache Manager: Cargo Stylus CLI for streamlined contract management and Foundry for direct contract interactions.
📋 Interaction Methods
🔧 Cargo Stylus CLI
High-level commands for contract lifecycle management and cache operations.
Best for: Contract deployment, quick status checks, streamlined bidding
🛠️ Foundry (Direct Contract Interaction)
Direct access to CacheManager contract through cast
commands.
Best for: Advanced operations, custom bidding strategies, administrative functions
🚀 Contract Deployment & Activation
Check Contract Before Deployment
Deploy Contract
Activate Contract
📊 Cache Status & Monitoring
Check Overall Cache Status
Check Specific Contract Status
💰 Cache Bidding Operations
Get Bid Suggestions
Cargo Stylus CLI:
Foundry:
Place a Bid
Cargo Stylus CLI:
Foundry:
cast send $CM_ADDRESS "placeBid(address)" $SC_ADD --rpc-url $RPC --private-key $ACC_PK --value $(cast to-wei 0.1)
Error Handling
If an error occurs during bidding, decode it for details:
```bash
cast decode-error <ERROR_CODE>
```
🛠️ Admin Operations
Set Cache Size
Set Cache Decay Rate
Evict All Cached Contracts
Evict K Contracts
export K=1
cast send $CM_ADDRESS "evictPrograms(uint256)" $K --rpc-url $RPC --private-key $ARBLOC_OWNER_PK
📜 Cache Inspection
Get Individual Cache Entry
export K=0
cast call $CM_ADDRESS "entries(uint256)(address code,uint256 size,uint256 bid)" $K --rpc-url $RPC
Get All Cache Entries
May crash if cache is too large
Get Smallest Bid Entries
🔧 Environment Variables
export ACC_PK="your_account_private_key"
export SC_ADD="your_contract_address"
export CM_ADDRESS="cache_manager_contract_address"
export RPC="your_rpc_endpoint"
export ARBLOC_OWNER_PK="arbitrum_owner_private_key" # Admin only
🎯 Method Selection
Use Cargo Stylus CLI for: Contract lifecycle, streamlined commands, cache bidding
Use Foundry for: Direct contract control, custom logic, admin operations
📚 See Also
- Guided Testing - Step-by-step testing workflow
- Cargo Stylus - Detailed CLI documentation