Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
- 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>
4.9 KiB
4.9 KiB
Required Conditions for Transaction Confirmation
Last Updated: 2026-01-31
Document Version: 1.0
Status: Active Documentation
Date: 2025-01-20
Status: 🔴 CRITICAL ISSUE IDENTIFIED
Executive Summary
Root Cause: Deployment transactions are missing gas price, preventing them from being included in blocks.
Required Conditions
1. ⚠️ Gas Price (CRITICAL - CURRENTLY FAILING)
Requirements
-
Minimum Gas Price: 1,000,000,000 wei (1 gwei)
- Source:
chain138.jsonconfiguration - Network minimum enforced by Besu nodes
- Source:
-
Recommended Gas Price: 1,100,000,000 wei (1.1 gwei)
- Calculated: Minimum + 10% safety buffer
- Ensures transaction inclusion even if network minimum increases
Current Status
- ❌ Transaction gas price: N/A (NOT SET!)
- ✅ Minimum requirement: 1 gwei
- ✅ Recommended: 1.1 gwei
- ❌ Status: FAILING - This is blocking transaction confirmation
Solution
# Use explicit gas price in deployment
forge script ... --gas-price 1100000000
# OR
cast send ... --gas-price 1100000000
2. ✅ Account Permissioning (PASSING)
Requirements
- Deployer account must be in allowlist (if permissioning enabled)
- Or permissioning must be disabled
Current Status
- ✅ Core RPC:
permissions-accounts-config-file-enabled=false - ✅ Status: PASSING - Not blocking transactions
Configuration
# config-rpc-core.toml
permissions-accounts-config-file-enabled=false
3. ✅ Transaction Pool Access (PASSING)
Requirements
- TXPOOL API must be enabled on RPC node
- Validators must have access to transaction pool
- Network connectivity must be maintained
Current Status
- ✅ Core RPC: TXPOOL API enabled
- ✅ Status: PASSING - Transaction pool accessible
Configuration
# config-rpc-core.toml
rpc-http-api=["ETH","NET","WEB3","TXPOOL","QBFT","ADMIN","DEBUG","TRACE"]
4. ✅ Transaction Validity (PASSING)
Requirements
- Valid signature
- Correct nonce
- Sufficient balance
- Adequate gas limit
Current Status
- ✅ Nonce: 0x3330 (13104) - Correct
- ✅ Signature: Valid (transaction created)
- ✅ Balance: Sufficient
- ✅ Status: PASSING - Transaction structure valid
5. ⚠️ EIP-1559 Compatibility (POTENTIAL ISSUE)
Requirements
- If London fork is enabled, transactions need proper fee structure:
maxFeePerGas: Maximum total feemaxPriorityFeePerGas: Priority fee for miner- Base fee calculated by network
Current Status
- ⏳ London Fork: Not enabled in genesis
- ⏳ Status: UNKNOWN - Legacy gas price should work
Investigation Needed
- Check if EIP-1559 is actually enabled despite genesis settings
- Verify transaction format (legacy vs EIP-1559)
Critical Finding
🔴 Missing Gas Price
Problem: Deployment transactions do not have a gas price set.
Evidence:
{
"transaction": {
"gasPrice": null,
"maxFeePerGas": null,
"maxPriorityFeePerGas": null
}
}
Impact:
- Transactions cannot be included in blocks
- Network minimum gas price not met
- Validators reject transactions silently
Solution:
- Redeploy with explicit gas price
- Use minimum 1.1 gwei (1,100,000,000 wei)
- Verify gas price in broadcast cache after deployment
Action Plan
Immediate Actions
- ✅ Identify issue: Gas price not set
- ⏳ Fix deployment: Add explicit gas price
- ⏳ Redeploy: Use correct gas price
- ⏳ Verify: Check transaction includes gas price
Verification Steps
# 1. Check minimum gas price
jq '.gasPrice' smom-dbis-138/config/chain138.json
# 2. Calculate required gas price
bash scripts/calculate-chain138-gas-price.sh
# 3. Deploy with explicit gas price
forge script ... --gas-price 1100000000
# 4. Verify transaction has gas price
jq '.transactions[0].transaction.gasPrice' broadcast/.../run-latest.json
Summary
✅ Passing Conditions
- Account permissioning: ✅ Disabled (not blocking)
- Transaction pool: ✅ Accessible
- Transaction validity: ✅ Valid structure
- Network status: ✅ Operational
❌ Failing Conditions
- Gas price: ❌ NOT SET (CRITICAL)
⏳ Unknown Conditions
- EIP-1559 compatibility: ⏳ Needs verification
Root Cause
Primary Issue: Deployment transactions are missing gas price.
Why:
- Forge script may not be setting gas price correctly
- Gas price calculation may not be applied
- Transaction format issue
Fix:
- Explicitly set gas price in deployment commands
- Use minimum 1.1 gwei (1,100,000,000 wei)
- Verify gas price in transaction before broadcasting
Status: 🔴 CRITICAL - GAS PRICE NOT SET
Priority: HIGH - This is blocking all deployments
Solution: Add explicit gas price to deployment commands