212 lines
4.4 KiB
Markdown
212 lines
4.4 KiB
Markdown
|
|
# TokenFactory138 Pre-Deployment Checklist
|
||
|
|
|
||
|
|
**Date**: 2025-12-24
|
||
|
|
**Purpose**: Complete checklist before deploying TokenFactory138
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Compilation Test
|
||
|
|
|
||
|
|
### Run Compilation Test
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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
|
||
|
|
|
||
|
|
```solidity
|
||
|
|
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
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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:
|
||
|
|
```bash
|
||
|
|
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
|
||
|
|
|
||
|
|
```bash
|
||
|
|
forge build --via-ir
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. Check Bytecode Size
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cat out/TokenFactory138.sol/TokenFactory138.json | jq -r '.bytecode.object' | wc -c
|
||
|
|
```
|
||
|
|
|
||
|
|
Expected: > 1000 bytes
|
||
|
|
|
||
|
|
### 3. Verify Dependencies
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check all required contracts compile
|
||
|
|
forge build --via-ir --contracts contracts/emoney/*.sol
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4. Test Deployment Script (Dry Run)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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
|
||
|
|
|