# Smart Contract Deployment Guide **RPC Endpoint**: `http://192.168.11.250:8545` **Chain ID**: 138 **Date**: 2025-12-24 --- ## Quick Start ### Automated Deployment ```bash cd /home/intlc/projects/proxmox/explorer-monorepo ./scripts/deploy-all-contracts.sh ``` This script will: - Verify RPC connectivity - Check deployer balance - Build all contracts - Deploy contracts interactively ### Manual Deployment For individual contract deployment: ```bash cd /home/intlc/projects/smom-dbis-138 # Deploy LINK Token forge script script/DeployMockLinkToken.s.sol:DeployMockLinkToken \ --rpc-url http://192.168.11.250:8545 \ --broadcast \ --legacy \ --gas-price 20000000000 # Deploy CCIP Receiver forge script script/DeployCCIPReceiver.s.sol:DeployCCIPReceiver \ --rpc-url http://192.168.11.250:8545 \ --broadcast \ --legacy \ --gas-price 20000000000 # Deploy CCIP Logger forge script script/DeployCCIPLoggerOnly.s.sol:DeployCCIPLoggerOnly \ --rpc-url http://192.168.11.250:8545 \ --broadcast \ --legacy \ --gas-price 20000000000 ``` --- ## Prerequisites ### 1. Environment Variables Ensure `.env` file contains: ```bash PRIVATE_KEY=0x... RPC_URL_138=http://192.168.11.250:8545 ``` ### 2. Deployer Balance Check balance: ```bash cast balance --rpc-url http://192.168.11.250:8545 ``` Minimum recommended: 0.1 ETH ### 3. RPC Connectivity Test RPC: ```bash cast block-number --rpc-url http://192.168.11.250:8545 cast chain-id --rpc-url http://192.168.11.250:8545 ``` --- ## Deployment Order ### 1. LINK Token (MockLinkToken) **Purpose**: ERC20 token for CCIP fee payments **Deployment**: ```bash forge script script/DeployMockLinkToken.s.sol:DeployMockLinkToken \ --rpc-url http://192.168.11.250:8545 \ --broadcast \ --legacy \ --gas-price 20000000000 ``` **Post-Deployment**: - Mint initial supply (1M LINK) - Update `.env` with `LINK_TOKEN=` - Fund bridge contracts with LINK ### 2. CCIP Receiver **Purpose**: Receives cross-chain messages via CCIP **Requirements**: - `CCIP_ROUTER_ADDRESS` in `.env` - `ORACLE_AGGREGATOR_ADDRESS` in `.env` **Deployment**: ```bash forge script script/DeployCCIPReceiver.s.sol:DeployCCIPReceiver \ --rpc-url http://192.168.11.250:8545 \ --broadcast \ --legacy \ --gas-price 20000000000 ``` ### 3. CCIP Logger **Purpose**: Logs CCIP messages for monitoring **Deployment**: ```bash forge script script/DeployCCIPLoggerOnly.s.sol:DeployCCIPLoggerOnly \ --rpc-url http://192.168.11.250:8545 \ --broadcast \ --legacy \ --gas-price 20000000000 ``` --- ## Gas Configuration ### Default Gas Price Default: 20 gwei (20000000000 wei) ### Custom Gas Price ```bash # 10 gwei ./scripts/deploy-all-contracts.sh 10000000000 # 30 gwei ./scripts/deploy-all-contracts.sh 30000000000 ``` ### Stack Too Deep Issues If you encounter "Stack too deep" errors: ```bash forge build --via-ir forge script