12 KiB
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 to192.168.11.250:8545
2. Contract Source Code ✅
Oracle Contracts
Location: /home/intlc/projects/smom-dbis-138/contracts/oracle/
Aggregator.sol- Price aggregator contractIAggregator.sol- Aggregator interfaceOracleWithCCIP.sol- Oracle with CCIP integrationProxy.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 testingIReserveSystem.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 placeholdersdocs/deployment/CHAIN138_DEPLOYMENT_STATUS_COMPLETE.md- Shows deployment scripts ready but not executeddocs/deployment/CHAIN138_INFRASTRUCTURE_DEPLOYMENT.md- Infrastructure deployment guide exists
📋 Contracts Needed for Chain 138
Priority 1: Core Infrastructure
-
CCIP Router ⏳
- Script:
script/DeployCCIPRouter.s.sol - Required By: CCIP Monitor Service
- Status: Not deployed
- Script:
-
CCIP Sender ⏳
- Script:
script/DeployCCIPSender.s.sol - Required By: CCIP Monitor Service
- Status: Not deployed
- Script:
-
LINK Token ⏳
- Note: May need to deploy or use native ETH
- Required By: CCIP operations
- Status: Not deployed
Priority 2: Oracle & Price Feeds
-
Oracle Contract ⏳
- Script:
script/DeployOracle.s.sol - Required By: Oracle Publisher Service
- Status: Not deployed
- Script:
-
Oracle Price Feed ⏳
- Script: Part of Reserve System deployment
- Required By: Keeper Service
- Status: Not deployed
Priority 3: Keeper & Automation
- Price Feed Keeper ⏳
- Script:
script/reserve/DeployKeeper.s.sol - Required By: Keeper Service
- Status: Not deployed
- Note: Chain 138 specific script exists
- Script:
Priority 4: Reserve System
-
Reserve System ⏳
- Script:
script/reserve/DeployReserveSystem.s.sol - Required By: Financial Tokenization
- Status: Not deployed
- Note: Chain 138 specific script exists
- Script:
-
Reserve Token Integration ⏳
- Script: Part of
DeployReserveSystem.s.sol - Required By: Financial Tokenization
- Status: Not deployed
- Script: Part of
🚀 Deployment Commands
Deploy All Contracts (Automated)
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
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
forge script script/DeployCCIPSender.s.sol:DeployCCIPSender \
--rpc-url chain138 \
--private-key $PRIVATE_KEY \
--broadcast --verify -vvvv
3. Deploy Oracle
forge script script/DeployOracle.s.sol:DeployOracle \
--rpc-url chain138 \
--private-key $PRIVATE_KEY \
--broadcast --verify -vvvv
4. Deploy Keeper (Chain 138 Specific)
# 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)
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:
# 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
# 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:
# 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 guidedocs/deployment/QUICK_START_DEPLOYMENT.md- Quick startdocs/deployment/CHAIN138_INFRASTRUCTURE_DEPLOYMENT.md- Chain 138 specificdocs/deployment/CHAIN138_DEPLOYMENT_STATUS_COMPLETE.md- Status
Contract Documentation
docs/integration/KEEPER_DEPLOYMENT_COMPLETE.md- Keeper deploymentdocs/deployment/CONTRACTS_TO_DEPLOY.md- Contract listdocs/deployment/DEPLOYED_ADDRESSES.md- Deployed addresses (other chains)
Environment Setup
docs/deployment/ENV_EXAMPLE_CONTENT.md- Environment variable examplesdocs/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:
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- RequireschainId == 138script/reserve/DeployReserveSystem.s.sol- RequireschainId == 138
These are ready to deploy to Chain 138.
3. Deployment Order
Recommended deployment order:
- Oracle Price Feed (if needed)
- Oracle Contract
- CCIP Router
- CCIP Sender
- LINK Token (or use native ETH)
- Keeper Contract
- 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
-
Verify Network Readiness
cast block-number --rpc-url http://192.168.11.250:8545 cast chain-id --rpc-url http://192.168.11.250:8545 -
Update Deployment Script IPs
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 -
Deploy Contracts
./scripts/deployment/deploy-contracts-once-ready.sh -
Extract and Document Addresses
- Extract from broadcast files
- Update
.envfile - Update service configurations
-
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.