Files
explorer-monorepo/docs/NEXT_STEPS_CHECKLIST.md

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:

  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

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

  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