Files
proxmox/docs/06-besu/GAS_PRICE_RESOLUTION.md
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

163 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Gas Price Issue - Resolution Guide
**Last Updated:** 2026-01-31
**Document Version:** 1.0
**Status:** Active Documentation
---
**Date**: 2026-01-18
**Issue**: Transaction not mined due to gas price below network minimum
**Status**: ⚠️ **RESOLUTION IDENTIFIED**
---
## 🔍 Problem Analysis
### Issue
- Transaction submitted with: **1000 wei** gas price
- Network requires: **1,000,000,000 wei** (1 gwei)
- Result: Transaction rejected by Besu, not included in any block
### Evidence
```bash
Transaction Hash: 0x1b786e061eefc0dc8dee4fc23071314f94096f8e701c978539e793a32ccd1012
Gas Price Used: 1000 wei
Effective Gas Price: 1000 wei
Block Hash: (empty - not mined)
```
### Configuration
From `config/chain138.json`:
```json
{
"gasPrice": "1000000000" // 1 gwei = 1,000,000,000 wei
}
```
**Gap**: Transaction used 1,000,000x less than required!
---
## ✅ Solution: Deploy with Dynamic Gas Price Calculation
### Option 1: Automated Deployment (Recommended)
Use the automated script that calculates gas price from API:
```bash
cd /home/intlc/projects/proxmox
./scripts/deploy-phase3-bridges-with-gas-api.sh
```
This script:
- ✅ Fetches current gas price from ChainID 138 RPC
- ✅ Respects minimum gas price from config (1 gwei)
- ✅ Applies safety multiplier (10% buffer)
- ✅ Deploys both bridges with optimal gas price
- ✅ Verifies deployments automatically
### Option 2: Manual Calculation
First, calculate optimal gas price:
```bash
cd /home/intlc/projects/proxmox
GAS_PRICE=$(./scripts/calculate-chain138-gas-price.sh)
echo "Using gas price: $GAS_PRICE wei"
```
Then deploy with calculated gas price:
```bash
cd /home/intlc/projects/proxmox/smom-dbis-138
PK="5373d11ee2cad4ed82b9208526a8c358839cbfe325919fb250f062a25153d1c8"
RPC="http://192.168.11.211:8545"
# Deploy WETH9 Bridge
forge script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge \
--rpc-url "$RPC" \
--broadcast \
--private-key "0x$PK" \
--gas-price "$GAS_PRICE" \
--slow \
-vvvv
# Deploy WETH10 Bridge
forge script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge \
--rpc-url "$RPC" \
--broadcast \
--private-key "0x$PK" \
--gas-price "$GAS_PRICE" \
--slow \
-vvvv
```
### Option 3: Fixed Gas Price (Fallback)
If gas API is unavailable, use minimum from config:
```bash
# Use 1 gwei (minimum required)
GAS_PRICE=1000000000
```
### Alternative: Use EIP-1559 Format
If the above doesn't work, try EIP-1559 format:
```bash
forge script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge \
--rpc-url "$RPC" \
--broadcast \
--private-key "0x$PK" \
--max-fee-per-gas 1000000000 \
--priority-fee-per-gas 100000000 \
--slow \
-vvvv
```
---
## 🧪 Verification After Deployment
```bash
# Check if contract is deployed
cast code 0x646e0026F8B5BCB94986377a25Da6f89BdCbBF6e --rpc-url "$RPC"
# Verify admin
cast call 0x646e0026F8B5BCB94986377a25Da6f89BdCbBF6e \
"admin()(address)" \
--rpc-url "$RPC"
# Expected: 0x4A666F96fC8764181194447A7dFdb7d471b301C8
# Verify router
cast call 0x646e0026F8B5BCB94986377a25Da6f89BdCbBF6e \
"ccipRouter()(address)" \
--rpc-url "$RPC"
# Expected: 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e
# Verify functions exist
cast 4byte "addDestination(uint64,address)"
cast 4byte "getDestinationChains()(uint64[])"
```
---
## 📝 Notes
1. **Why `--slow` flag?**: Gives Foundry more time to submit and confirm transaction
2. **Gas Price Units**: Always use wei (not gwei) in forge commands
3. **Transaction Format**: Legacy (`--gas-price`) should work, but EIP-1559 is fallback
4. **Expected Cost**: 1,962,548 gas × 1 gwei = ~0.00196 ETH per deployment
---
**Status**: ✅ **RESOLUTION IDENTIFIED - READY TO DEPLOY**
**Next Action**: Run deployment commands with `--gas-price 1000000000` (1 gwei)
---
**Last Updated**: 2026-01-18