Files
smom-dbis-138/docs/operations/status-reports/WALLET_REQUIREMENTS.md
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- 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.
2025-12-12 14:57:48 -08:00

192 lines
4.8 KiB
Markdown

# Wallet Requirements for Deployment
## Overview
Before deploying bridge contracts, ensure your wallet has sufficient balances for gas fees and operations.
## Required Balances
### Ethereum Mainnet
| Token | Purpose | Minimum Required | Recommended |
|-------|---------|------------------|-------------|
| **ETH** | Gas fees for deployment | 0.025 ETH | 0.05 ETH (buffer) |
| **LINK** | CCIP fees (not for deployment) | 0 | 10 LINK (for testing) |
**Breakdown**:
- Deploy CCIPWETH9Bridge: ~0.00789 ETH
- Deploy CCIPWETH10Bridge: ~0.00789 ETH
- Configure destinations (4 calls): ~0.006 ETH
- **Total: ~0.02178 ETH**
- **Recommended buffer: 0.05 ETH** (for unexpected gas spikes)
### ChainID 138
| Token | Purpose | Minimum Required | Recommended |
|-------|---------|------------------|-------------|
| **ETH** | Gas fees for deployment | 1 ETH | 2 ETH (buffer) |
| **LINK** | CCIP fees (not for deployment) | 0 | 10 LINK (for testing) |
**Breakdown**:
- Deploy CCIPWETH9Bridge: ~0.001 ETH (estimate)
- Deploy CCIPWETH10Bridge: ~0.001 ETH (estimate)
- Configure destinations (4 calls): ~0.001 ETH
- **Total: ~0.003 ETH**
- **Recommended buffer: 2 ETH** (for future operations)
## Pre-Deployment Check
Run the balance checker before deployment:
```bash
./scripts/deployment/check-wallet-balances.sh
```
This script will:
- ✅ Check ETH balance on Mainnet
- ✅ Check ETH balance on ChainID 138
- ✅ Check LINK balance (if configured)
- ✅ Verify sufficient funds for deployment
- ✅ Provide deficit amounts if insufficient
## Funding Your Wallet
### Mainnet ETH
**Option 1: Exchange Transfer**
1. Buy ETH on an exchange (Coinbase, Binance, etc.)
2. Withdraw to your wallet address
3. Wait for confirmation (usually 1-2 hours)
**Option 2: Bridge from Layer 2**
1. Use a bridge (Arbitrum, Optimism, etc.)
2. Bridge ETH to Mainnet
3. Wait for confirmation
**Option 3: Receive from Another Wallet**
1. Send ETH from another wallet
2. Wait for confirmation
### ChainID 138 ETH
**Option 1: Faucet (if available)**
```bash
# Check if faucet exists
curl -X POST $RPC_URL \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_getBalance","params":["'$WALLET_ADDRESS'","latest"],"id":1}'
```
**Option 2: Transfer from Validator**
- If you control a validator, you can transfer ETH
**Option 3: Pre-fund in Genesis**
- Add your wallet address to genesis.json `alloc` section
### LINK Token
LINK is **not required for deployment**, only for:
- Paying CCIP fees when users bridge tokens
- Testing cross-chain transfers
**To get LINK on Mainnet**:
- Buy on an exchange
- Use Uniswap or other DEX
- Mainnet LINK address: `0x514910771AF9Ca656af840dff83E8264EcF986CA`
**To get LINK on ChainID 138**:
- Deploy MockLinkToken (for testing)
- Or deploy real LINK token if available
## Environment Variables
Ensure these are set in `.env`:
```bash
# Wallet
PRIVATE_KEY=your-private-key
# Mainnet
MAINNET_RPC_URL=https://eth.llamarpc.com
MAINNET_LINK_TOKEN=0x514910771AF9Ca656af840dff83E8264EcF986CA
# ChainID 138
RPC_URL=https://rpc.d-bis.org
LINK_TOKEN=<link-token-address>
```
## Verification Steps
1. **Check balances**:
```bash
./scripts/deployment/check-wallet-balances.sh
```
2. **Verify wallet address**:
```bash
cast wallet address --private-key $PRIVATE_KEY
```
3. **Check Mainnet ETH**:
```bash
cast balance $WALLET_ADDRESS --rpc-url $MAINNET_RPC_URL
```
4. **Check ChainID 138 ETH**:
```bash
cast balance $WALLET_ADDRESS --rpc-url $RPC_URL
```
## Troubleshooting
### Error: "Insufficient balance"
**Solution**: Fund your wallet with the required amount:
- Mainnet: Send ETH to your wallet address
- ChainID 138: Use faucet or transfer from validator
### Error: "Could not derive address"
**Solution**: Check that `PRIVATE_KEY` is correctly set in `.env`:
```bash
echo $PRIVATE_KEY | wc -c # Should be 66 (0x + 64 hex chars)
```
### Error: "RPC URL not accessible"
**Solution**:
- Check RPC URL is correct
- Try alternative RPC endpoints
- Check network connectivity
## Cost Summary
### Mainnet Deployment
| Item | Cost |
|------|------|
| Deploy CCIPWETH9Bridge | ~0.00789 ETH |
| Deploy CCIPWETH10Bridge | ~0.00789 ETH |
| Configure destinations | ~0.006 ETH |
| **Total** | **~0.02178 ETH** |
| **Recommended Buffer** | **0.05 ETH** |
### ChainID 138 Deployment
| Item | Cost |
|------|------|
| Deploy CCIPWETH9Bridge | ~0.001 ETH (estimate) |
| Deploy CCIPWETH10Bridge | ~0.001 ETH (estimate) |
| Configure destinations | ~0.001 ETH (estimate) |
| **Total** | **~0.003 ETH** |
| **Recommended Buffer** | **2 ETH** |
## Next Steps
After verifying balances:
1. ✅ Run pre-deployment check: `./scripts/deployment/check-wallet-balances.sh`
2. ✅ Deploy on ChainID 138: `./scripts/deployment/deploy-bridges-chain138.sh`
3. ✅ Deploy on Mainnet: `./scripts/deployment/deploy-bridges-mainnet.sh`
4. ✅ Configure bridges: See `docs/BRIDGE_CONFIGURATION.md`