Files
explorer-monorepo/docs/TOKENFACTORY138_PRE_DEPLOYMENT_CHECKLIST.md

4.4 KiB

TokenFactory138 Pre-Deployment Checklist

Date: 2025-12-24
Purpose: Complete checklist before deploying TokenFactory138


Compilation Test

Run Compilation Test

cd /home/intlc/projects/proxmox/smom-dbis-138

# Option 1: Use test script
./scripts/compile-and-test-tokenfactory.sh

# Option 2: Manual compilation
forge build --via-ir --contracts contracts/emoney/TokenFactory138.sol -vv

# Option 3: Full project build
forge build --via-ir -vv

Expected Results

  • Compilation successful
  • No "Stack too deep" errors (when using --via-ir)
  • All imports resolved
  • Bytecode generated in out/TokenFactory138.sol/TokenFactory138.json

Dependency Verification

TokenFactory138 requires these contracts to be deployed first:

  1. ComplianceRegistry (Already deployed: 0xf52504A9c0DAFB0a35dEE0129D6991AA27E734c8)
  2. DebtRegistry (Check if deployed)
  3. PolicyManager (Check if deployed)
  4. eMoneyToken (implementation) (Check if deployed)

Check Dependencies

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

# Check if dependencies are deployed
cast code $COMPLIANCE_REGISTRY_ADDRESS --rpc-url $RPC_URL | wc -c

# Check for other dependencies in .env or deployment logs
grep -E "DEBT_REGISTRY|POLICY_MANAGER|EMONEY_TOKEN" .env

Contract Analysis

TokenFactory138 Constructor Parameters

constructor(
    address admin,                    // Governance admin
    address implementation_,          // eMoneyToken implementation
    address policyManager_,           // PolicyManager contract
    address debtRegistry_,            // DebtRegistry contract
    address complianceRegistry_       // ComplianceRegistry contract
)

Required Addresses

Before deployment, ensure you have:

  • Admin address (deployer or multisig)
  • eMoneyToken implementation address
  • PolicyManager address
  • DebtRegistry address
  • ComplianceRegistry address: 0xf52504A9c0DAFB0a35dEE0129D6991AA27E734c8

Deployment Script Check

The deployment script DeployChain138.s.sol deploys in this order:

  1. ComplianceRegistry
  2. DebtRegistry
  3. PolicyManager
  4. eMoneyToken (implementation)
  5. TokenFactory138 ← Target
  6. BridgeVault138

Check Script

cd /home/intlc/projects/proxmox/smom-dbis-138

# Verify script exists and is correct
cat script/emoney/DeployChain138.s.sol | grep -A 20 "TokenFactory138"

Known Issues to Check

1. Stack Too Deep Error

If you see: Error: Stack too deep

Solution: Always use --via-ir flag:

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

2. Missing Dependencies

If you see: Source "..." not found

Solution:

  • Check all dependency contracts exist
  • Run forge build --via-ir to compile all dependencies first

3. Constructor Parameter Mismatch

If you see: Wrong argument count for function call

Solution: Verify constructor parameters match exactly:

  • 5 parameters required
  • All addresses must be valid (non-zero)

Pre-Deployment Verification

1. Compile Successfully

forge build --via-ir

2. Check Bytecode Size

cat out/TokenFactory138.sol/TokenFactory138.json | jq -r '.bytecode.object' | wc -c

Expected: > 1000 bytes

3. Verify Dependencies

# Check all required contracts compile
forge build --via-ir --contracts contracts/emoney/*.sol

4. Test Deployment Script (Dry Run)

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

# Dry run (no broadcast)
forge script script/emoney/DeployChain138.s.sol:DeployChain138 \
  --rpc-url $RPC_URL \
  --via-ir \
  -vv

🚀 Deployment Command

Once all checks pass:

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

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

Note: This will deploy the entire eMoney system, not just TokenFactory138.


📋 Checklist

  • TokenFactory138 compiles with --via-ir
  • All dependencies compile successfully
  • All required addresses available
  • Deployment script verified
  • Dry run successful
  • Ready for deployment

Last Updated: 2025-12-24