Files
explorer-monorepo/docs/NEXT_STEPS_CHECKLIST.md

280 lines
7.7 KiB
Markdown
Raw Permalink Normal View History

# 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:
1. Testing all new contracts
2. Deploying contracts to ChainID 138
3. Integrating with existing system
4. 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.template` to `.env` (if not exists)
- [ ] Set `PRIVATE_KEY` environment variable
- [ ] Set `RPC_URL` or `RPC_URL_138` environment 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 `.env` file
- [ ] Deploy CompliantUSDT
- [ ] Run deployment script
- [ ] Save deployed address
- [ ] Verify contract code on-chain
- [ ] Update `.env` file
- [ ] Deploy CompliantUSDC
- [ ] Run deployment script
- [ ] Save deployed address
- [ ] Verify contract code on-chain
- [ ] Update `.env` file
### 2.3 Deploy Utility Contracts
- [ ] Deploy TokenRegistry
- [ ] Run deployment script
- [ ] Save deployed address
- [ ] Verify contract code on-chain
- [ ] Update `.env` file
- [ ] Deploy FeeCollector
- [ ] Run deployment script
- [ ] Save deployed address
- [ ] Verify contract code on-chain
- [ ] Update `.env` file
### 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
- [ ] Register CompliantUSDC
- [ ] Call `registerContract(address)` with CompliantUSDC address
- [ ] Verify registration: `isContractRegistered(address)`
- [ ] Check compliance status
### 3.2 Register Tokens in TokenRegistry
- [ ] Register CompliantUSDT
- [ ] Call `registerToken(...)` with token details
- [ ] Verify registration: `isTokenRegistered(address)`
- [ ] Verify token info: `getTokenInfo(address)`
- [ ] Register CompliantUSDC
- [ ] Call `registerToken(...)` with token details
- [ ] Verify registration: `isTokenRegistered(address)`
- [ ] Verify token info: `getTokenInfo(address)`
### 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%)
- [ ] 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
```bash
cd /home/intlc/projects/proxmox/smom-dbis-138
forge build --via-ir
forge test -vv
```
### Deployment
```bash
# 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
```bash
cast code <address> --rpc-url $RPC_URL
cast call <address> "<function>" --rpc-url $RPC_URL
```
---
## Troubleshooting
### Common Issues
1. **Compilation Errors**
- Check Solidity version
- Verify imports are correct
- Use `--via-ir` for stack too deep errors
2. **Deployment Failures**
- Check deployer balance
- Verify RPC connection
- Check gas price
- Verify constructor parameters
3. **Test Failures**
- Check test setup
- Verify mock contracts
- Check event expectations
4. **Integration Issues**
- Verify contract addresses
- Check access control
- Verify function parameters
---
**Last Updated**: 2025-12-24
**Status**: Ready for Execution