- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control. - Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities. - Created .gitmodules to include OpenZeppelin contracts as a submodule. - Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment. - Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks. - Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring. - Created scripts for resource import and usage validation across non-US regions. - Added tests for CCIP error handling and integration to ensure robust functionality. - Included various new files and directories for the orchestration portal and deployment scripts.
4.1 KiB
4.1 KiB
Deployment Issues and Fixes
Date: 2025-12-11 Status: Deployment Attempted - Issues Identified
❌ Issues Found
1. Missing Environment Variables
Issue: TETHER_ADMIN and MIRROR_ADMIN are not set in .env
Impact: Deployment scripts require these addresses to deploy contracts
Fix: Add to .env file:
# Admin addresses (multisig recommended)
TETHER_ADMIN=0x... # Replace with your multisig address
MIRROR_ADMIN=0x... # Can be same as TETHER_ADMIN or different
2. RPC Authentication Error
Issue: HTTP error 401 with body: Must be authenticated!
Impact: Cannot connect to Ethereum Mainnet RPC endpoint
Possible Causes:
- RPC URL placeholder not replaced (currently shows
YOUR_KEY) - Invalid or expired API key
- Missing authentication in RPC URL
Fix: Update .env file with valid RPC URL:
# Option 1: Alchemy (recommended)
ETH_MAINNET_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/YOUR_ACTUAL_API_KEY
# Option 2: Infura
ETH_MAINNET_RPC_URL=https://mainnet.infura.io/v3/YOUR_ACTUAL_PROJECT_ID
# Option 3: Other provider
ETH_MAINNET_RPC_URL=https://your-rpc-provider.com/YOUR_API_KEY
✅ Pre-Deployment Checklist
Before deploying, ensure:
TETHER_ADMINis set in.env(multisig recommended)MIRROR_ADMINis set in.env(multisig recommended)PRIVATE_KEYis set in.env(deployer private key)ETH_MAINNET_RPC_URLis set with valid API key (not placeholder)ETHERSCAN_API_KEYis set in.env- Deployer wallet has sufficient ETH for gas
- RPC endpoint is accessible and authenticated
🔧 Step-by-Step Fix
Step 1: Update .env File
cd /home/intlc/projects/smom-dbis-138
# Edit .env file
nano .env # or use your preferred editor
# Add/update these lines:
TETHER_ADMIN=0x... # Your multisig address
MIRROR_ADMIN=0x... # Your multisig address (can be same)
ETH_MAINNET_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/YOUR_ACTUAL_KEY
Step 2: Verify Environment Variables
source .env
echo "Tether Admin: $TETHER_ADMIN"
echo "Mirror Admin: $MIRROR_ADMIN"
echo "RPC URL: $ETH_MAINNET_RPC_URL"
Step 3: Test RPC Connection
cast block-number --rpc-url $ETH_MAINNET_RPC_URL
If this fails, check your RPC URL and API key.
Step 4: Check Deployer Balance
cast balance $(cast wallet address $PRIVATE_KEY) --rpc-url $ETH_MAINNET_RPC_URL
Ensure you have sufficient ETH for gas (recommended: 0.1+ ETH).
🚀 Deployment Commands (After Fixes)
Deploy MainnetTether
cd /home/intlc/projects/smom-dbis-138
source .env
forge script script/DeployMainnetTether.s.sol \
--rpc-url $ETH_MAINNET_RPC_URL \
--private-key $PRIVATE_KEY \
--broadcast \
--verify \
-vvvv
Deploy TransactionMirror
forge script script/DeployTransactionMirror.s.sol \
--rpc-url $ETH_MAINNET_RPC_URL \
--private-key $PRIVATE_KEY \
--broadcast \
--verify \
--via-ir \
-vvvv
📝 Notes
- Multisig Addresses: Use Gnosis Safe or similar multisig for admin addresses
- Gas Costs:
- MainnetTether:
1,200,000 gas ($50-100 at current prices) - TransactionMirror:
1,000,000 gas ($40-80 at current prices)
- MainnetTether:
- RPC Providers:
- Alchemy: https://www.alchemy.com/
- Infura: https://www.infura.io/
- QuickNode: https://www.quicknode.com/
- Verification: Contracts will be automatically verified on Etherscan if
ETHERSCAN_API_KEYis set
🔍 Troubleshooting
Issue: "Must be authenticated" Error
Solution:
- Check RPC URL format
- Verify API key is correct
- Ensure API key has not expired
- Check if API key has Mainnet access enabled
Issue: "Insufficient funds" Error
Solution:
- Add more ETH to deployer wallet
- Check current gas prices
- Consider deploying during low gas periods
Issue: "Contract verification failed"
Solution:
- Check
ETHERSCAN_API_KEYis set correctly - Wait a few minutes and try manual verification
- Verify constructor arguments are correct
Last Updated: 2025-12-11 Status: Issues Identified - Fixes Provided