411 lines
12 KiB
Markdown
411 lines
12 KiB
Markdown
# Source Project Contract Deployment Information
|
|
|
|
**Date**: $(date)
|
|
**Source Project**: `/home/intlc/projects/smom-dbis-138`
|
|
**Chain ID**: 138
|
|
|
|
---
|
|
|
|
## 🔍 Summary
|
|
|
|
The source project contains **complete contract deployment infrastructure** but **no contracts have been deployed to Chain 138 yet**. Contracts have been deployed to other chains (BSC, Polygon, Avalanche, Base, Arbitrum, Optimism) but Chain 138 deployment is pending.
|
|
|
|
---
|
|
|
|
## ✅ What Was Found
|
|
|
|
### 1. Deployment Infrastructure ✅
|
|
|
|
#### Foundry Configuration
|
|
- **File**: `foundry.toml`
|
|
- **Status**: ✅ Configured for Chain 138
|
|
- **RPC Endpoint**: `chain138 = "${RPC_URL_138:-http://localhost:8545}"`
|
|
- **Etherscan**: `chain138 = { key = "${ETHERSCAN_API_KEY}" }`
|
|
|
|
#### Deployment Scripts Available
|
|
All deployment scripts exist in `/home/intlc/projects/smom-dbis-138/script/`:
|
|
|
|
| Script | Purpose | Chain 138 Ready |
|
|
|--------|---------|----------------|
|
|
| `DeployCCIPRouter.s.sol` | Deploy CCIP Router | ✅ Yes |
|
|
| `DeployCCIPSender.s.sol` | Deploy CCIP Sender | ✅ Yes |
|
|
| `DeployCCIPReceiver.s.sol` | Deploy CCIP Receiver | ✅ Yes |
|
|
| `DeployCCIPWETH9Bridge.s.sol` | Deploy WETH9 Bridge | ✅ Yes |
|
|
| `DeployCCIPWETH10Bridge.s.sol` | Deploy WETH10 Bridge | ✅ Yes |
|
|
| `DeployOracle.s.sol` | Deploy Oracle | ✅ Yes |
|
|
| `DeployMulticall.s.sol` | Deploy Multicall | ✅ Yes |
|
|
| `DeployMultiSig.s.sol` | Deploy MultiSig | ✅ Yes |
|
|
| `reserve/DeployKeeper.s.sol` | Deploy Keeper | ✅ Yes (Chain 138 specific) |
|
|
| `reserve/DeployReserveSystem.s.sol` | Deploy Reserve System | ✅ Yes (Chain 138 specific) |
|
|
| `reserve/DeployChainlinkKeeper.s.sol` | Deploy Chainlink Keeper | ✅ Yes |
|
|
| `reserve/DeployGelatoKeeper.s.sol` | Deploy Gelato Keeper | ✅ Yes |
|
|
|
|
#### Deployment Automation Script
|
|
- **File**: `scripts/deployment/deploy-contracts-once-ready.sh`
|
|
- **Status**: ✅ Ready
|
|
- **Purpose**: Automated deployment of all contracts once network is ready
|
|
- **Note**: References old IP `10.3.1.4:8545` - needs update to `192.168.11.250:8545`
|
|
|
|
---
|
|
|
|
### 2. Contract Source Code ✅
|
|
|
|
#### Oracle Contracts
|
|
**Location**: `/home/intlc/projects/smom-dbis-138/contracts/oracle/`
|
|
- `Aggregator.sol` - Price aggregator contract
|
|
- `IAggregator.sol` - Aggregator interface
|
|
- `OracleWithCCIP.sol` - Oracle with CCIP integration
|
|
- `Proxy.sol` - Proxy contract
|
|
|
|
#### Reserve/Keeper Contracts
|
|
**Location**: `/home/intlc/projects/smom-dbis-138/contracts/reserve/`
|
|
- `PriceFeedKeeper.sol` - Core keeper contract ✅
|
|
- `OraclePriceFeed.sol` - Oracle price feed contract ✅
|
|
- `ReserveSystem.sol` - Reserve system contract ✅
|
|
- `ReserveTokenIntegration.sol` - Token integration ✅
|
|
- `ChainlinkKeeperCompatible.sol` - Chainlink integration ✅
|
|
- `GelatoKeeperCompatible.sol` - Gelato integration ✅
|
|
- `MockPriceFeed.sol` - Mock for testing
|
|
- `IReserveSystem.sol` - Interface
|
|
|
|
#### CCIP Contracts
|
|
**Location**: `/home/intlc/projects/smom-dbis-138/contracts/ccip/`
|
|
- CCIP Router, Sender, Receiver contracts
|
|
- CCIP Bridge contracts
|
|
|
|
---
|
|
|
|
### 3. Deployment Status on Other Chains ✅
|
|
|
|
#### Successfully Deployed (6 chains)
|
|
Contracts have been deployed to:
|
|
- ✅ **BSC** (Chain ID: 56) - 4 contracts deployed and verified
|
|
- ✅ **Polygon** (Chain ID: 137) - 4 contracts deployed and verified
|
|
- ✅ **Avalanche** (Chain ID: 43114) - 4 contracts deployed and verified
|
|
- ✅ **Base** (Chain ID: 8453) - 4 contracts deployed and verified
|
|
- ✅ **Arbitrum** (Chain ID: 42161) - 4 contracts deployed and verified
|
|
- ✅ **Optimism** (Chain ID: 10) - 4 contracts deployed and verified
|
|
|
|
**Documentation**: `docs/deployment/DEPLOYED_ADDRESSES.md`
|
|
|
|
#### Contracts Deployed (per chain)
|
|
- WETH9
|
|
- WETH10
|
|
- CCIPWETH9Bridge
|
|
- CCIPWETH10Bridge
|
|
|
|
---
|
|
|
|
### 4. Chain 138 Deployment Status ❌
|
|
|
|
#### Status: **NOT DEPLOYED**
|
|
|
|
**Evidence**:
|
|
- No deployed addresses found in documentation for Chain 138
|
|
- All Chain 138 references show placeholders:
|
|
- `CCIP_CHAIN138_ROUTER=<deploy_ccip_router_to_chain138>`
|
|
- `CCIP_CHAIN138_LINK_TOKEN=<deploy_link_or_use_zero_for_native_eth>`
|
|
- `CCIPWETH9_BRIDGE_CHAIN138=<deploy_bridge>`
|
|
- `CCIPWETH10_BRIDGE_CHAIN138=<deploy_bridge>`
|
|
|
|
**Documentation References**:
|
|
- `docs/deployment/ENV_EXAMPLE_CONTENT.md` - Shows all Chain 138 addresses as placeholders
|
|
- `docs/deployment/CHAIN138_DEPLOYMENT_STATUS_COMPLETE.md` - Shows deployment scripts ready but not executed
|
|
- `docs/deployment/CHAIN138_INFRASTRUCTURE_DEPLOYMENT.md` - Infrastructure deployment guide exists
|
|
|
|
---
|
|
|
|
## 📋 Contracts Needed for Chain 138
|
|
|
|
### Priority 1: Core Infrastructure
|
|
|
|
1. **CCIP Router** ⏳
|
|
- **Script**: `script/DeployCCIPRouter.s.sol`
|
|
- **Required By**: CCIP Monitor Service
|
|
- **Status**: Not deployed
|
|
|
|
2. **CCIP Sender** ⏳
|
|
- **Script**: `script/DeployCCIPSender.s.sol`
|
|
- **Required By**: CCIP Monitor Service
|
|
- **Status**: Not deployed
|
|
|
|
3. **LINK Token** ⏳
|
|
- **Note**: May need to deploy or use native ETH
|
|
- **Required By**: CCIP operations
|
|
- **Status**: Not deployed
|
|
|
|
### Priority 2: Oracle & Price Feeds
|
|
|
|
4. **Oracle Contract** ⏳
|
|
- **Script**: `script/DeployOracle.s.sol`
|
|
- **Required By**: Oracle Publisher Service
|
|
- **Status**: Not deployed
|
|
|
|
5. **Oracle Price Feed** ⏳
|
|
- **Script**: Part of Reserve System deployment
|
|
- **Required By**: Keeper Service
|
|
- **Status**: Not deployed
|
|
|
|
### Priority 3: Keeper & Automation
|
|
|
|
6. **Price Feed Keeper** ⏳
|
|
- **Script**: `script/reserve/DeployKeeper.s.sol`
|
|
- **Required By**: Keeper Service
|
|
- **Status**: Not deployed
|
|
- **Note**: Chain 138 specific script exists
|
|
|
|
### Priority 4: Reserve System
|
|
|
|
7. **Reserve System** ⏳
|
|
- **Script**: `script/reserve/DeployReserveSystem.s.sol`
|
|
- **Required By**: Financial Tokenization
|
|
- **Status**: Not deployed
|
|
- **Note**: Chain 138 specific script exists
|
|
|
|
8. **Reserve Token Integration** ⏳
|
|
- **Script**: Part of `DeployReserveSystem.s.sol`
|
|
- **Required By**: Financial Tokenization
|
|
- **Status**: Not deployed
|
|
|
|
---
|
|
|
|
## 🚀 Deployment Commands
|
|
|
|
### Deploy All Contracts (Automated)
|
|
|
|
```bash
|
|
cd /home/intlc/projects/smom-dbis-138
|
|
|
|
# Update RPC URL in script (if needed)
|
|
sed -i 's|10.3.1.4:8545|192.168.11.250:8545|g' scripts/deployment/deploy-contracts-once-ready.sh
|
|
|
|
# Run deployment
|
|
./scripts/deployment/deploy-contracts-once-ready.sh
|
|
```
|
|
|
|
### Deploy Individual Contracts
|
|
|
|
#### 1. Deploy CCIP Router
|
|
```bash
|
|
cd /home/intlc/projects/smom-dbis-138
|
|
forge script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
|
|
--rpc-url chain138 \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast --verify -vvvv
|
|
```
|
|
|
|
#### 2. Deploy CCIP Sender
|
|
```bash
|
|
forge script script/DeployCCIPSender.s.sol:DeployCCIPSender \
|
|
--rpc-url chain138 \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast --verify -vvvv
|
|
```
|
|
|
|
#### 3. Deploy Oracle
|
|
```bash
|
|
forge script script/DeployOracle.s.sol:DeployOracle \
|
|
--rpc-url chain138 \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast --verify -vvvv
|
|
```
|
|
|
|
#### 4. Deploy Keeper (Chain 138 Specific)
|
|
```bash
|
|
# First deploy Oracle Price Feed (if not already deployed)
|
|
# Then deploy keeper
|
|
forge script script/reserve/DeployKeeper.s.sol:DeployKeeper \
|
|
--rpc-url chain138 \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast --verify -vvvv
|
|
```
|
|
|
|
#### 5. Deploy Reserve System (Chain 138 Specific)
|
|
```bash
|
|
forge script script/reserve/DeployReserveSystem.s.sol:DeployReserveSystem \
|
|
--rpc-url chain138 \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast --verify -vvvv
|
|
```
|
|
|
|
---
|
|
|
|
## 📝 Environment Variables Needed
|
|
|
|
Before deployment, ensure `.env` file has:
|
|
|
|
```bash
|
|
# Chain 138 RPC
|
|
RPC_URL_138=http://192.168.11.250:8545
|
|
|
|
# Deployer
|
|
PRIVATE_KEY=<deployer-private-key>
|
|
|
|
# Oracle Configuration
|
|
ORACLE_PRICE_FEED=<oracle-price-feed-address> # Deploy first
|
|
|
|
# Reserve Configuration
|
|
RESERVE_ADMIN=<admin-address>
|
|
TOKEN_FACTORY=<token-factory-address> # If using Reserve System
|
|
|
|
# Asset Addresses (optional)
|
|
XAU_ASSET=<xau-token-address>
|
|
USDC_ASSET=<usdc-token-address>
|
|
ETH_ASSET=<eth-token-address>
|
|
|
|
# Keeper Configuration
|
|
KEEPER_ADDRESS=<keeper-address> # Address that will execute upkeep
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 Post-Deployment Steps
|
|
|
|
### 1. Extract Contract Addresses
|
|
|
|
After deployment, addresses will be in:
|
|
- Broadcast files: `broadcast/Deploy*.s.sol/138/run-latest.json`
|
|
- Or extracted from deployment logs
|
|
|
|
### 2. Update .env File
|
|
|
|
```bash
|
|
# Add to .env
|
|
CCIP_ROUTER_ADDRESS=<deployed-address>
|
|
CCIP_SENDER_ADDRESS=<deployed-address>
|
|
ORACLE_CONTRACT_ADDRESS=<deployed-address>
|
|
PRICE_FEED_KEEPER_ADDRESS=<deployed-address>
|
|
RESERVE_SYSTEM=<deployed-address>
|
|
```
|
|
|
|
### 3. Update Service Configurations
|
|
|
|
Update service `.env` files in Proxmox containers:
|
|
|
|
```bash
|
|
# Oracle Publisher (VMID 3500)
|
|
pct exec 3500 -- bash -c "cat >> /opt/oracle-publisher/.env <<EOF
|
|
ORACLE_CONTRACT_ADDRESS=<deployed-oracle-address>
|
|
EOF"
|
|
|
|
# CCIP Monitor (VMID 3501)
|
|
pct exec 3501 -- bash -c "cat >> /opt/ccip-monitor/.env <<EOF
|
|
CCIP_ROUTER_ADDRESS=<deployed-router-address>
|
|
CCIP_SENDER_ADDRESS=<deployed-sender-address>
|
|
LINK_TOKEN_ADDRESS=<deployed-link-address>
|
|
EOF"
|
|
|
|
# Keeper (VMID 3502)
|
|
pct exec 3502 -- bash -c "cat >> /opt/keeper/.env <<EOF
|
|
PRICE_FEED_KEEPER_ADDRESS=<deployed-keeper-address>
|
|
EOF"
|
|
```
|
|
|
|
---
|
|
|
|
## 📚 Key Documentation Files
|
|
|
|
### Deployment Guides
|
|
- `docs/deployment/DEPLOYMENT.md` - Main deployment guide
|
|
- `docs/deployment/QUICK_START_DEPLOYMENT.md` - Quick start
|
|
- `docs/deployment/CHAIN138_INFRASTRUCTURE_DEPLOYMENT.md` - Chain 138 specific
|
|
- `docs/deployment/CHAIN138_DEPLOYMENT_STATUS_COMPLETE.md` - Status
|
|
|
|
### Contract Documentation
|
|
- `docs/integration/KEEPER_DEPLOYMENT_COMPLETE.md` - Keeper deployment
|
|
- `docs/deployment/CONTRACTS_TO_DEPLOY.md` - Contract list
|
|
- `docs/deployment/DEPLOYED_ADDRESSES.md` - Deployed addresses (other chains)
|
|
|
|
### Environment Setup
|
|
- `docs/deployment/ENV_EXAMPLE_CONTENT.md` - Environment variable examples
|
|
- `docs/configuration/CONTRACT_DEPLOYMENT_ENV_SETUP.md` - Environment setup
|
|
|
|
---
|
|
|
|
## ⚠️ Important Notes
|
|
|
|
### 1. IP Address Updates Needed
|
|
The deployment script `deploy-contracts-once-ready.sh` references old IP:
|
|
- **Old**: `10.3.1.4:8545`
|
|
- **New**: `192.168.11.250:8545`
|
|
|
|
**Fix**:
|
|
```bash
|
|
sed -i 's|10.3.1.4:8545|192.168.11.250:8545|g' \
|
|
/home/intlc/projects/smom-dbis-138/scripts/deployment/deploy-contracts-once-ready.sh
|
|
```
|
|
|
|
### 2. Chain 138 Specific Scripts
|
|
Some contracts have Chain 138 specific deployment scripts:
|
|
- `script/reserve/DeployKeeper.s.sol` - Requires `chainId == 138`
|
|
- `script/reserve/DeployReserveSystem.s.sol` - Requires `chainId == 138`
|
|
|
|
These are ready to deploy to Chain 138.
|
|
|
|
### 3. Deployment Order
|
|
Recommended deployment order:
|
|
1. Oracle Price Feed (if needed)
|
|
2. Oracle Contract
|
|
3. CCIP Router
|
|
4. CCIP Sender
|
|
5. LINK Token (or use native ETH)
|
|
6. Keeper Contract
|
|
7. Reserve System
|
|
|
|
### 4. Network Readiness
|
|
Ensure Chain 138 network is:
|
|
- ✅ Producing blocks
|
|
- ✅ RPC endpoint accessible at `192.168.11.250:8545`
|
|
- ✅ Deployer account has sufficient balance
|
|
- ✅ Network ID is 138
|
|
|
|
---
|
|
|
|
## 📊 Summary Table
|
|
|
|
| Contract | Script | Status | Required By | Priority |
|
|
|----------|--------|--------|------------|----------|
|
|
| CCIP Router | `DeployCCIPRouter.s.sol` | ⏳ Not Deployed | CCIP Monitor | P1 |
|
|
| CCIP Sender | `DeployCCIPSender.s.sol` | ⏳ Not Deployed | CCIP Monitor | P1 |
|
|
| LINK Token | TBD | ⏳ Not Deployed | CCIP | P1 |
|
|
| Oracle | `DeployOracle.s.sol` | ⏳ Not Deployed | Oracle Publisher | P1 |
|
|
| Oracle Price Feed | Part of Reserve | ⏳ Not Deployed | Keeper | P2 |
|
|
| Price Feed Keeper | `reserve/DeployKeeper.s.sol` | ⏳ Not Deployed | Keeper Service | P2 |
|
|
| Reserve System | `reserve/DeployReserveSystem.s.sol` | ⏳ Not Deployed | Tokenization | P3 |
|
|
|
|
---
|
|
|
|
## ✅ Next Steps
|
|
|
|
1. **Verify Network Readiness**
|
|
```bash
|
|
cast block-number --rpc-url http://192.168.11.250:8545
|
|
cast chain-id --rpc-url http://192.168.11.250:8545
|
|
```
|
|
|
|
2. **Update Deployment Script IPs**
|
|
```bash
|
|
cd /home/intlc/projects/smom-dbis-138
|
|
sed -i 's|10.3.1.4:8545|192.168.11.250:8545|g' scripts/deployment/deploy-contracts-once-ready.sh
|
|
```
|
|
|
|
3. **Deploy Contracts**
|
|
```bash
|
|
./scripts/deployment/deploy-contracts-once-ready.sh
|
|
```
|
|
|
|
4. **Extract and Document Addresses**
|
|
- Extract from broadcast files
|
|
- Update `.env` file
|
|
- Update service configurations
|
|
|
|
5. **Verify Deployments**
|
|
- Check contracts on Blockscout (when deployed)
|
|
- Verify contract interactions
|
|
- Test service connections
|
|
|
|
---
|
|
|
|
**Conclusion**: All deployment infrastructure is ready. Contracts need to be deployed to Chain 138. Deployment scripts exist and are configured for Chain 138.
|
|
|