5.6 KiB
5.6 KiB
Testnet Deployment Guide
Date: 2026-01-24
Status: Ready for Testnet Deployment
📋 Pre-Deployment Checklist
1. Environment Setup
- All contracts compile successfully
- Test suites created and passing
- Deployment scripts ready
- Testnet RPC endpoints configured
- Testnet accounts funded
- Environment variables set
2. Configuration
- Testnet chain IDs configured
- Testnet contract addresses documented
- Testnet CCIP router addresses
- Testnet LINK token addresses
- Testnet WETH addresses
3. Security
- Security checklist reviewed
- Access control verified
- Upgrade paths tested
- Emergency procedures documented
🚀 Deployment Steps
Step 1: Deploy Core Infrastructure
# Set environment variables
export PRIVATE_KEY="your_testnet_private_key"
export RPC_URL="https://sepolia.infura.io/v3/YOUR_KEY" # Example testnet
# Deploy Universal Asset Registry and Chain Registry
forge script script/deploy/01_DeployCore.s.sol:DeployCore \
--rpc-url $RPC_URL \
--broadcast \
--verify \
--etherscan-api-key $ETHERSCAN_API_KEY
Step 2: Deploy Vault System
# Deploy complete vault system
forge script script/deploy/vault/DeployVaultSystem.s.sol:DeployVaultSystem \
--rpc-url $RPC_URL \
--broadcast \
--verify \
--etherscan-api-key $ETHERSCAN_API_KEY
Expected Output:
- RegulatedEntityRegistry
- XAU Oracle
- Rate Accrual
- Ledger
- Liquidation Module
- Collateral Adapter
- eMoney Join
- Vault Factory
Step 3: Deploy ISO-4217W Token System
# Set additional environment variables
export CUSTODIAN_ADDRESS="0x..."
export RESERVE_MANAGER_ADDRESS="0x..."
export RESERVE_TRANSMITTER_1="0x..."
export RESERVE_TRANSMITTER_2="0x..."
# Deploy ISO-4217W system
forge script script/deploy/iso4217w/DeployISO4217WSystem.s.sol:DeployISO4217WSystem \
--rpc-url $RPC_URL \
--broadcast \
--verify \
--etherscan-api-key $ETHERSCAN_API_KEY
Expected Output:
- Compliance Guard
- Reserve Oracle
- Mint Controller
- Burn Controller
- Token Registry
- Token Factory
- USDW, EURW, GBPW tokens
Step 4: Deploy Bridge System
# Deploy Universal CCIP Bridge
forge script script/deploy/02_DeployBridges.s.sol:DeployBridges \
--rpc-url $RPC_URL \
--broadcast \
--verify \
--etherscan-api-key $ETHERSCAN_API_KEY
# Deploy WETH bridges
export CCIP_ROUTER_ADDRESS="0x..."
export WETH9_ADDRESS="0x..."
export WETH10_ADDRESS="0x..."
export LINK_TOKEN_ADDRESS="0x..."
forge script script/deploy/bridge/DeployWETHBridges.s.sol:DeployWETHBridges \
--rpc-url $RPC_URL \
--broadcast \
--verify \
--etherscan-api-key $ETHERSCAN_API_KEY
Step 5: Deploy Chain Adapters
# Deploy all chain adapters
forge script script/deploy/chains/DeployAllAdapters.s.sol:DeployAllAdapters \
--rpc-url $RPC_URL \
--broadcast \
--verify \
--etherscan-api-key $ETHERSCAN_API_KEY
Step 6: Configure Bridge Destinations
# Set bridge addresses from deployment
export WETH9_BRIDGE_138="0x..."
export WETH10_BRIDGE_138="0x..."
# Configure destinations
./scripts/deployment/configure-bridge-destinations.sh
Step 7: Initialize Systems
# Register assets in Universal Asset Registry
# Register chains in Chain Registry
# Configure risk parameters in Ledger
# Initialize reserve oracle with initial reserves
✅ Post-Deployment Verification
1. Contract Verification
# Verify all contracts on Etherscan
forge verify-contract <CONTRACT_ADDRESS> <CONTRACT_NAME> \
--chain-id <CHAIN_ID> \
--etherscan-api-key $ETHERSCAN_API_KEY
2. Functional Testing
# Run integration tests on testnet
forge test --fork-url $RPC_URL
# Test bridge functionality
# Test vault operations
# Test ISO-4217W token operations
3. Monitoring Setup
- Set up event monitoring
- Configure alerts
- Create monitoring dashboard
- Set up logging
📊 Deployment Addresses
Document all deployed addresses:
## Testnet Deployment Addresses
### Core Infrastructure
- Universal Asset Registry: `0x...`
- Chain Registry: `0x...`
- Universal CCIP Bridge: `0x...`
### Vault System
- Regulated Entity Registry: `0x...`
- XAU Oracle: `0x...`
- Ledger: `0x...`
- Vault Factory: `0x...`
### ISO-4217W System
- Compliance Guard: `0x...`
- Reserve Oracle: `0x...`
- Token Factory: `0x...`
- USDW Token: `0x...`
### Bridge System
- WETH9 Bridge: `0x...`
- WETH10 Bridge: `0x...`
- Polygon Adapter: `0x...`
- XDC Adapter: `0x...`
🔧 Troubleshooting
Common Issues
-
Out of Gas
- Increase gas limit:
--gas-limit 5000000 - Optimize contract size
- Increase gas limit:
-
Verification Failures
- Check compiler version matches
- Verify constructor arguments
- Use
--constructor-argsif needed
-
Transaction Failures
- Check account balance
- Verify nonce
- Check contract addresses
📝 Next Steps After Testnet Deployment
-
Testing
- Run comprehensive test suite
- Test all user flows
- Test edge cases
- Test failure scenarios
-
Monitoring
- Monitor contract activity
- Track gas usage
- Monitor bridge transfers
- Check oracle updates
-
Iteration
- Fix any issues discovered
- Optimize gas usage
- Improve user experience
- Update documentation
-
Production Preparation
- Complete security audit
- Finalize production configuration
- Prepare production deployment scripts
- Schedule production deployment
Status: ✅ Ready for Testnet Deployment