239 lines
5.2 KiB
Markdown
239 lines
5.2 KiB
Markdown
|
|
# Run Deployment Now - Complete Command Set
|
||
|
|
|
||
|
|
**Date**: 2025-12-24
|
||
|
|
**PRIVATE_KEY**: `0x5373d11ee2cad4ed82b9208526a8c358839cbfe325919fb250f062a25153d1c8`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Quick Start - Copy and Paste All Commands
|
||
|
|
|
||
|
|
Open a **fresh terminal** and run these commands in order:
|
||
|
|
|
||
|
|
### Step 1: Setup Environment
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /home/intlc/projects/proxmox/smom-dbis-138
|
||
|
|
|
||
|
|
# Create .env file
|
||
|
|
cat > .env << 'EOF'
|
||
|
|
# Chain 138 RPC Configuration
|
||
|
|
RPC_URL_138=http://192.168.11.250:8545
|
||
|
|
RPC_URL=http://192.168.11.250:8545
|
||
|
|
PRIVATE_KEY=0x5373d11ee2cad4ed82b9208526a8c358839cbfe325919fb250f062a25153d1c8
|
||
|
|
EOF
|
||
|
|
|
||
|
|
chmod 600 .env
|
||
|
|
|
||
|
|
# Load environment
|
||
|
|
source .env
|
||
|
|
|
||
|
|
# Verify
|
||
|
|
echo "Deployer: $(cast wallet address $PRIVATE_KEY)"
|
||
|
|
echo "RPC Block: $(cast block-number --rpc-url $RPC_URL)"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 2: Deploy ComplianceRegistry
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /home/intlc/projects/proxmox/smom-dbis-138
|
||
|
|
source .env
|
||
|
|
|
||
|
|
forge script script/DeployComplianceRegistry.s.sol:DeployComplianceRegistry \
|
||
|
|
--rpc-url $RPC_URL \
|
||
|
|
--broadcast \
|
||
|
|
--legacy \
|
||
|
|
--gas-price 20000000000 \
|
||
|
|
--via-ir \
|
||
|
|
-vv
|
||
|
|
```
|
||
|
|
|
||
|
|
**Save the deployed address** from the output (look for "ComplianceRegistry deployed at: 0x...")
|
||
|
|
|
||
|
|
### Step 3: Deploy CompliantUSDT
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /home/intlc/projects/proxmox/smom-dbis-138
|
||
|
|
source .env
|
||
|
|
|
||
|
|
forge script script/DeployCompliantUSDT.s.sol:DeployCompliantUSDT \
|
||
|
|
--rpc-url $RPC_URL \
|
||
|
|
--broadcast \
|
||
|
|
--legacy \
|
||
|
|
--gas-price 20000000000 \
|
||
|
|
--via-ir \
|
||
|
|
-vv
|
||
|
|
```
|
||
|
|
|
||
|
|
**Save the deployed address** from the output
|
||
|
|
|
||
|
|
### Step 4: Deploy CompliantUSDC
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /home/intlc/projects/proxmox/smom-dbis-138
|
||
|
|
source .env
|
||
|
|
|
||
|
|
forge script script/DeployCompliantUSDC.s.sol:DeployCompliantUSDC \
|
||
|
|
--rpc-url $RPC_URL \
|
||
|
|
--broadcast \
|
||
|
|
--legacy \
|
||
|
|
--gas-price 20000000000 \
|
||
|
|
--via-ir \
|
||
|
|
-vv
|
||
|
|
```
|
||
|
|
|
||
|
|
**Save the deployed address** from the output
|
||
|
|
|
||
|
|
### Step 5: Deploy TokenRegistry
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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 \
|
||
|
|
-vv
|
||
|
|
```
|
||
|
|
|
||
|
|
**Save the deployed address** from the output
|
||
|
|
|
||
|
|
### Step 6: Deploy FeeCollector
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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 \
|
||
|
|
-vv
|
||
|
|
```
|
||
|
|
|
||
|
|
**Save the deployed address** from the output
|
||
|
|
|
||
|
|
### Step 7: Register Contracts
|
||
|
|
|
||
|
|
After all deployments, register them (replace addresses with actual deployed addresses):
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /home/intlc/projects/proxmox/smom-dbis-138
|
||
|
|
source .env
|
||
|
|
|
||
|
|
# Set addresses (replace with actual addresses from deployment)
|
||
|
|
COMPLIANCE_REGISTRY=0x... # From Step 2
|
||
|
|
COMPLIANT_USDT=0x... # From Step 3
|
||
|
|
COMPLIANT_USDC=0x... # From Step 4
|
||
|
|
TOKEN_REGISTRY=0x... # From Step 5
|
||
|
|
|
||
|
|
# Register CompliantUSDT in ComplianceRegistry
|
||
|
|
cast send $COMPLIANCE_REGISTRY \
|
||
|
|
"registerContract(address)" \
|
||
|
|
$COMPLIANT_USDT \
|
||
|
|
--rpc-url $RPC_URL \
|
||
|
|
--private-key $PRIVATE_KEY \
|
||
|
|
--legacy \
|
||
|
|
--gas-price 20000000000
|
||
|
|
|
||
|
|
# Register CompliantUSDC in ComplianceRegistry
|
||
|
|
cast send $COMPLIANCE_REGISTRY \
|
||
|
|
"registerContract(address)" \
|
||
|
|
$COMPLIANT_USDC \
|
||
|
|
--rpc-url $RPC_URL \
|
||
|
|
--private-key $PRIVATE_KEY \
|
||
|
|
--legacy \
|
||
|
|
--gas-price 20000000000
|
||
|
|
|
||
|
|
# Register CompliantUSDT in TokenRegistry
|
||
|
|
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 in TokenRegistry
|
||
|
|
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
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Alternative: Use the Automated Script
|
||
|
|
|
||
|
|
If you can run bash scripts, use:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /home/intlc/projects/proxmox/smom-dbis-138
|
||
|
|
|
||
|
|
# Create .env first
|
||
|
|
cat > .env << 'EOF'
|
||
|
|
RPC_URL_138=http://192.168.11.250:8545
|
||
|
|
RPC_URL=http://192.168.11.250:8545
|
||
|
|
PRIVATE_KEY=0x5373d11ee2cad4ed82b9208526a8c358839cbfe325919fb250f062a25153d1c8
|
||
|
|
EOF
|
||
|
|
|
||
|
|
chmod 600 .env
|
||
|
|
|
||
|
|
# Run deployment script
|
||
|
|
bash scripts/run-deployment-direct.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Verify Deployments
|
||
|
|
|
||
|
|
After deployment, verify all contracts:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /home/intlc/projects/proxmox/smom-dbis-138
|
||
|
|
source .env
|
||
|
|
|
||
|
|
# Check each contract has 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).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
### If forge commands fail:
|
||
|
|
- Check Foundry is installed: `forge --version`
|
||
|
|
- Check RPC is accessible: `cast block-number --rpc-url http://192.168.11.250:8545`
|
||
|
|
- Check balance: `cast balance $(cast wallet address $PRIVATE_KEY) --rpc-url $RPC_URL`
|
||
|
|
|
||
|
|
### If deployment fails:
|
||
|
|
- Check gas price is sufficient
|
||
|
|
- Check deployer has enough balance (0.1+ ETH recommended)
|
||
|
|
- Check contract compilation: `forge build --via-ir`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**All commands are ready to copy and paste!**
|
||
|
|
|