7.7 KiB
7.7 KiB
Next Steps Checklist - Integration, Testing, and Deployment
Date: 2025-12-24
Status: Ready for Execution
Overview
This checklist provides a detailed, step-by-step guide for:
- Testing all new contracts
- Deploying contracts to ChainID 138
- Integrating with existing system
- End-to-end verification
Phase 1: Testing ✅ (First Priority)
1.1 Compile Contracts
- Navigate to project directory
- Run
forge build --via-ir - Verify no compilation errors
- Check for warnings
- Verify all contracts compile successfully
1.2 Run Unit Tests
- Run CompliantUSDT tests:
forge test --match-path "test/compliance/CompliantUSDTTest.t.sol" -vv - Run TokenRegistry tests:
forge test --match-path "test/utils/TokenRegistryTest.t.sol" -vv - Run FeeCollector tests:
forge test --match-path "test/utils/FeeCollectorTest.t.sol" -vv - Run all tests:
forge test -vv - Verify all tests pass
- Check test coverage
1.3 Fix Issues
- Address any compilation errors
- Fix failing tests
- Verify test coverage is adequate
- Document any known issues
Phase 2: Deployment
2.1 Environment Preparation
- Copy
.env.templateto.env(if not exists) - Set
PRIVATE_KEYenvironment variable - Set
RPC_URLorRPC_URL_138environment variable - Set
COMPLIANCE_ADMIN(defaults to deployer if not set) - Set
USDT_OWNER(defaults to deployer if not set) - Set
USDC_OWNER(defaults to deployer if not set) - Set
TOKEN_REGISTRY_OWNER(defaults to deployer if not set) - Set
FEE_COLLECTOR_OWNER(defaults to deployer if not set) - Verify deployer has sufficient balance (minimum 0.1 ETH)
- Verify RPC connection:
cast block-number --rpc-url $RPC_URL
2.2 Deploy Compliance Contracts
- Deploy ComplianceRegistry
- Run deployment script
- Save deployed address
- Verify contract code on-chain
- Update
.envfile
- Deploy CompliantUSDT
- Run deployment script
- Save deployed address
- Verify contract code on-chain
- Update
.envfile
- Deploy CompliantUSDC
- Run deployment script
- Save deployed address
- Verify contract code on-chain
- Update
.envfile
2.3 Deploy Utility Contracts
- Deploy TokenRegistry
- Run deployment script
- Save deployed address
- Verify contract code on-chain
- Update
.envfile
- Deploy FeeCollector
- Run deployment script
- Save deployed address
- Verify contract code on-chain
- Update
.envfile
2.4 Verify Deployments
- Check all contracts have code on-chain
- Verify contract addresses are correct
- Check transaction receipts
- Verify on block explorer
- Document all deployed addresses
Phase 3: Integration
3.1 Register Contracts in ComplianceRegistry
- Register CompliantUSDT
- Call
registerContract(address)with CompliantUSDT address - Verify registration:
isContractRegistered(address) - Check compliance status
- Call
- Register CompliantUSDC
- Call
registerContract(address)with CompliantUSDC address - Verify registration:
isContractRegistered(address) - Check compliance status
- Call
3.2 Register Tokens in TokenRegistry
- Register CompliantUSDT
- Call
registerToken(...)with token details - Verify registration:
isTokenRegistered(address) - Verify token info:
getTokenInfo(address)
- Call
- Register CompliantUSDC
- Call
registerToken(...)with token details - Verify registration:
isTokenRegistered(address) - Verify token info:
getTokenInfo(address)
- Call
3.3 Configure FeeCollector
- Add fee recipients for ETH (if needed)
- Call
addFeeRecipient(address,address,uint256)for each recipient - Verify recipients:
getFeeRecipients(address) - Verify shares total 10000 (100%)
- Call
- Add fee recipients for tokens (if needed)
- Configure recipients for each token
- Verify configuration
3.4 Update Service Configurations
- Update Oracle Publisher service
.env- Add new contract addresses
- Restart service if needed
- Update CCIP Monitor service
.env- Add new contract addresses
- Restart service if needed
- Update Keeper service
.env- Add new contract addresses
- Restart service if needed
- Update Tokenization service
.env- Add new contract addresses
- Restart service if needed
Phase 4: End-to-End Testing
4.1 Test Token Operations
- Test CompliantUSDT transfer
- Transfer tokens between addresses
- Verify balances updated
- Check events emitted
- Test CompliantUSDT pause/unpause
- Pause contract
- Verify transfers blocked
- Unpause contract
- Verify transfers work again
- Test CompliantUSDT mint/burn
- Mint new tokens
- Verify supply increased
- Burn tokens
- Verify supply decreased
- Repeat tests for CompliantUSDC
4.2 Test Registry Queries
- Query TokenRegistry
- Get token info by address
- Get token by symbol
- List all tokens
- Check token count
- Query ComplianceRegistry
- Get compliance status
- Check registration status
- Verify legal framework version
4.3 Test Fee Collection
- Test ETH fee collection
- Send ETH to FeeCollector
- Verify balance increased
- Distribute fees
- Verify recipients received funds
- Test token fee collection
- Approve and send tokens
- Verify balance increased
- Distribute fees
- Verify recipients received tokens
4.4 Test Error Cases
- Test invalid operations
- Test access control
- Test pause functionality
- Test edge cases
Phase 5: Documentation and Verification
5.1 Update Documentation
- Update deployment records
- Document all deployed addresses
- Document configuration steps
- Create deployment summary
- Update integration guides
5.2 Block Explorer Verification
- Verify ComplianceRegistry on explorer
- Verify CompliantUSDT on explorer
- Verify CompliantUSDC on explorer
- Verify TokenRegistry on explorer
- Verify FeeCollector on explorer
- Check transaction history
- Verify events are emitted correctly
5.3 Final Checklist
- All contracts deployed
- All contracts verified on-chain
- All contracts registered
- All configurations updated
- All tests passing
- All documentation updated
- All services configured
- System ready for production
Quick Reference Commands
Testing
cd /home/intlc/projects/proxmox/smom-dbis-138
forge build --via-ir
forge test -vv
Deployment
# Automated
./scripts/deploy-all-compliance.sh
./scripts/deploy-all-utilities.sh
# Manual
forge script script/DeployComplianceRegistry.s.sol:DeployComplianceRegistry \
--rpc-url $RPC_URL --broadcast --legacy --gas-price 20000000000 --via-ir -vv
Verification
cast code <address> --rpc-url $RPC_URL
cast call <address> "<function>" --rpc-url $RPC_URL
Troubleshooting
Common Issues
-
Compilation Errors
- Check Solidity version
- Verify imports are correct
- Use
--via-irfor stack too deep errors
-
Deployment Failures
- Check deployer balance
- Verify RPC connection
- Check gas price
- Verify constructor parameters
-
Test Failures
- Check test setup
- Verify mock contracts
- Check event expectations
-
Integration Issues
- Verify contract addresses
- Check access control
- Verify function parameters
Last Updated: 2025-12-24
Status: Ready for Execution