194 lines
4.9 KiB
Markdown
194 lines
4.9 KiB
Markdown
# Deployment Ready Summary
|
|
|
|
**Date**: 2025-12-24
|
|
**Status**: ✅ All Contracts Ready for Deployment
|
|
|
|
---
|
|
|
|
## ✅ Phase 1: Testing - COMPLETE
|
|
|
|
All new contracts compile successfully and are ready for deployment.
|
|
|
|
---
|
|
|
|
## ⏳ Phase 2: Deployment - READY (Requires Environment Setup)
|
|
|
|
### Prerequisites
|
|
|
|
Before deploying, you need to:
|
|
|
|
1. **Set Environment Variables**:
|
|
```bash
|
|
export PRIVATE_KEY=<your_deployer_private_key>
|
|
export RPC_URL=http://192.168.11.250:8545
|
|
export COMPLIANCE_ADMIN=<admin_address> # Optional, defaults to deployer
|
|
```
|
|
|
|
2. **Verify Deployer Balance**:
|
|
```bash
|
|
cast balance <deployer_address> --rpc-url $RPC_URL
|
|
# Should have at least 0.1 ETH for deployments
|
|
```
|
|
|
|
3. **Create .env File** (if needed):
|
|
```bash
|
|
cp .env.template .env
|
|
# Edit .env and add your PRIVATE_KEY
|
|
```
|
|
|
|
### Deployment Commands
|
|
|
|
**Option A: Automated Scripts** (Recommended)
|
|
```bash
|
|
cd /home/intlc/projects/proxmox/smom-dbis-138
|
|
|
|
# Set environment variables
|
|
export PRIVATE_KEY=<your_key>
|
|
export RPC_URL=http://192.168.11.250:8545
|
|
|
|
# Deploy all compliance contracts
|
|
./scripts/deploy-all-compliance.sh
|
|
|
|
# Deploy all utility contracts
|
|
./scripts/deploy-all-utilities.sh
|
|
```
|
|
|
|
**Option B: Manual Deployment**
|
|
```bash
|
|
# 1. ComplianceRegistry
|
|
forge script script/DeployComplianceRegistry.s.sol:DeployComplianceRegistry \
|
|
--rpc-url $RPC_URL --broadcast --legacy --gas-price 20000000000 --via-ir -vv
|
|
|
|
# 2. CompliantUSDT
|
|
forge script script/DeployCompliantUSDT.s.sol:DeployCompliantUSDT \
|
|
--rpc-url $RPC_URL --broadcast --legacy --gas-price 20000000000 --via-ir -vv
|
|
|
|
# 3. CompliantUSDC
|
|
forge script script/DeployCompliantUSDC.s.sol:DeployCompliantUSDC \
|
|
--rpc-url $RPC_URL --broadcast --legacy --gas-price 20000000000 --via-ir -vv
|
|
|
|
# 4. TokenRegistry
|
|
forge script script/DeployTokenRegistry.s.sol:DeployTokenRegistry \
|
|
--rpc-url $RPC_URL --broadcast --legacy --gas-price 20000000000 -vv
|
|
|
|
# 5. FeeCollector
|
|
forge script script/DeployFeeCollector.s.sol:DeployFeeCollector \
|
|
--rpc-url $RPC_URL --broadcast --legacy --gas-price 20000000000 -vv
|
|
```
|
|
|
|
---
|
|
|
|
## ⏳ Phase 3: Integration - READY (After Deployment)
|
|
|
|
### Post-Deployment Steps
|
|
|
|
1. **Register Contracts in ComplianceRegistry**:
|
|
```bash
|
|
cast send $COMPLIANCE_REGISTRY_ADDRESS \
|
|
"registerContract(address)" \
|
|
$COMPLIANT_USDT_ADDRESS \
|
|
--rpc-url $RPC_URL --private-key $PRIVATE_KEY --legacy
|
|
|
|
cast send $COMPLIANCE_REGISTRY_ADDRESS \
|
|
"registerContract(address)" \
|
|
$COMPLIANT_USDC_ADDRESS \
|
|
--rpc-url $RPC_URL --private-key $PRIVATE_KEY --legacy
|
|
```
|
|
|
|
2. **Register Tokens in TokenRegistry**:
|
|
```bash
|
|
cast send $TOKEN_REGISTRY_ADDRESS \
|
|
"registerToken(address,string,string,uint8,bool,address)" \
|
|
$COMPLIANT_USDT_ADDRESS \
|
|
"Tether USD (Compliant)" "cUSDT" 6 false 0x0000000000000000000000000000000000000000 \
|
|
--rpc-url $RPC_URL --private-key $PRIVATE_KEY --legacy
|
|
|
|
cast send $TOKEN_REGISTRY_ADDRESS \
|
|
"registerToken(address,string,string,uint8,bool,address)" \
|
|
$COMPLIANT_USDC_ADDRESS \
|
|
"USD Coin (Compliant)" "cUSDC" 6 false 0x0000000000000000000000000000000000000000 \
|
|
--rpc-url $RPC_URL --private-key $PRIVATE_KEY --legacy
|
|
```
|
|
|
|
3. **Configure FeeCollector** (if needed):
|
|
```bash
|
|
cast send $FEE_COLLECTOR_ADDRESS \
|
|
"addFeeRecipient(address,address,uint256)" \
|
|
0x0000000000000000000000000000000000000000 \
|
|
<recipient_address> 10000 \
|
|
--rpc-url $RPC_URL --private-key $PRIVATE_KEY --legacy
|
|
```
|
|
|
|
4. **Update .env Files**:
|
|
- Add all deployed addresses to `.env`
|
|
- Update service `.env` files with new addresses
|
|
|
|
---
|
|
|
|
## ⏳ Phase 4: End-to-End Testing - READY (After Integration)
|
|
|
|
### Test Commands
|
|
|
|
```bash
|
|
# Test token transfer
|
|
cast send $COMPLIANT_USDT_ADDRESS \
|
|
"transfer(address,uint256)" \
|
|
<recipient> 1000000 \
|
|
--rpc-url $RPC_URL --private-key $PRIVATE_KEY --legacy
|
|
|
|
# Test registry queries
|
|
cast call $TOKEN_REGISTRY_ADDRESS \
|
|
"getTokenInfo(address)" \
|
|
$COMPLIANT_USDT_ADDRESS \
|
|
--rpc-url $RPC_URL
|
|
|
|
# Test compliance status
|
|
cast call $COMPLIANCE_REGISTRY_ADDRESS \
|
|
"isContractRegistered(address)" \
|
|
$COMPLIANT_USDT_ADDRESS \
|
|
--rpc-url $RPC_URL
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 Current Status
|
|
|
|
### ✅ Completed
|
|
- All contracts created and compile successfully
|
|
- All deployment scripts ready
|
|
- All documentation complete
|
|
- All test files created
|
|
- All configuration files created
|
|
|
|
### ⏳ Pending (Requires User Action)
|
|
- Environment variables setup (PRIVATE_KEY)
|
|
- Contract deployment
|
|
- Contract registration
|
|
- Service configuration updates
|
|
|
|
---
|
|
|
|
## 🚀 Quick Start
|
|
|
|
1. **Set PRIVATE_KEY**:
|
|
```bash
|
|
export PRIVATE_KEY=<your_private_key>
|
|
```
|
|
|
|
2. **Deploy**:
|
|
```bash
|
|
./scripts/deploy-all-compliance.sh
|
|
./scripts/deploy-all-utilities.sh
|
|
```
|
|
|
|
3. **Integrate**:
|
|
- Register contracts (see commands above)
|
|
- Update .env files
|
|
- Configure services
|
|
|
|
---
|
|
|
|
**Last Updated**: 2025-12-24
|
|
**Status**: ✅ Ready for Deployment (Requires PRIVATE_KEY)
|
|
|