Files
proxmox/docs/SOURCE_PROJECT_CONTRACT_DEPLOYMENT_INFO.md

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 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

  1. Oracle Contract

    • Script: script/DeployOracle.s.sol
    • Required By: Oracle Publisher Service
    • Status: Not deployed
  2. Oracle Price Feed

    • Script: Part of Reserve System deployment
    • Required By: Keeper Service
    • Status: Not deployed

Priority 3: Keeper & Automation

  1. 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

  1. Reserve System

    • Script: script/reserve/DeployReserveSystem.s.sol
    • Required By: Financial Tokenization
    • Status: Not deployed
    • Note: Chain 138 specific script exists
  2. Reserve Token Integration

    • Script: Part of DeployReserveSystem.s.sol
    • Required By: Financial Tokenization
    • Status: Not deployed

🚀 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 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:

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

    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

    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

    ./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.