Files
explorer-monorepo/docs/COMPLETE_REMAINING_DEPLOYMENT.md

3.2 KiB

Complete Remaining Deployment

Date: 2025-12-24
Status: 3/5 Complete - 2 Remaining


Already Deployed

  1. ComplianceRegistry: 0xf52504A9c0DAFB0a35dEE0129D6991AA27E734c8
  2. CompliantUSDT: 0xFe6023265F3893C4cc98CE5Fe7ACBd79DB9cbB2D
  3. CompliantUSDC: 0x044032f30393c60138445061c941e2FB15fb0af2

🚀 Deploy Remaining Contracts

Step 1: Deploy TokenRegistry (with --via-ir)

cd /home/intlc/projects/proxmox/smom-dbis-138
source .env

forge script script/DeployTokenRegistry.s.sol:DeployTokenRegistry \
  --rpc-url $RPC_URL \
  --broadcast \
  --legacy \
  --gas-price 20000000000 \
  --via-ir \
  -vv

Save the deployed address from output.

Step 2: Deploy FeeCollector (with --via-ir)

cd /home/intlc/projects/proxmox/smom-dbis-138
source .env

forge script script/DeployFeeCollector.s.sol:DeployFeeCollector \
  --rpc-url $RPC_URL \
  --broadcast \
  --legacy \
  --gas-price 20000000000 \
  --via-ir \
  -vv

Save the deployed address from output.


🔗 Register Contracts

After both are deployed, register them:

Register in ComplianceRegistry

cd /home/intlc/projects/proxmox/smom-dbis-138
source .env

# Set addresses (replace with actual from deployment)
COMPLIANCE_REGISTRY=0xf52504A9c0DAFB0a35dEE0129D6991AA27E734c8
COMPLIANT_USDT=0xFe6023265F3893C4cc98CE5Fe7ACBd79DB9cbB2D
COMPLIANT_USDC=0x044032f30393c60138445061c941e2FB15fb0af2

# Register CompliantUSDT
cast send $COMPLIANCE_REGISTRY \
  "registerContract(address)" \
  $COMPLIANT_USDT \
  --rpc-url $RPC_URL \
  --private-key $PRIVATE_KEY \
  --legacy \
  --gas-price 20000000000

# Register CompliantUSDC
cast send $COMPLIANCE_REGISTRY \
  "registerContract(address)" \
  $COMPLIANT_USDC \
  --rpc-url $RPC_URL \
  --private-key $PRIVATE_KEY \
  --legacy \
  --gas-price 20000000000

Register in TokenRegistry

cd /home/intlc/projects/proxmox/smom-dbis-138
source .env

# Set TokenRegistry address (from Step 1)
TOKEN_REGISTRY=0x...  # Replace with actual address

# Register CompliantUSDT
cast send $TOKEN_REGISTRY \
  "registerToken(address,string,string,uint8,bool,address)" \
  $COMPLIANT_USDT \
  "Tether USD (Compliant)" \
  "cUSDT" \
  6 \
  false \
  0x0000000000000000000000000000000000000000 \
  --rpc-url $RPC_URL \
  --private-key $PRIVATE_KEY \
  --legacy \
  --gas-price 20000000000

# Register CompliantUSDC
cast send $TOKEN_REGISTRY \
  "registerToken(address,string,string,uint8,bool,address)" \
  $COMPLIANT_USDC \
  "USD Coin (Compliant)" \
  "cUSDC" \
  6 \
  false \
  0x0000000000000000000000000000000000000000 \
  --rpc-url $RPC_URL \
  --private-key $PRIVATE_KEY \
  --legacy \
  --gas-price 20000000000

Verify All Deployments

cd /home/intlc/projects/proxmox/smom-dbis-138
source .env

# Check all contracts have code
cast code $COMPLIANCE_REGISTRY_ADDRESS --rpc-url $RPC_URL
cast code $COMPLIANT_USDT_ADDRESS --rpc-url $RPC_URL
cast code $COMPLIANT_USDC_ADDRESS --rpc-url $RPC_URL
cast code $TOKEN_REGISTRY_ADDRESS --rpc-url $RPC_URL
cast code $FEE_COLLECTOR_ADDRESS --rpc-url $RPC_URL

Each should return bytecode (not empty).


Key Fix: Use --via-ir flag for TokenRegistry and FeeCollector deployments!