- 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>
14 KiB
Complete Task Review and List
Last Updated: 2026-01-31
Document Version: 1.0
Status: Active Documentation
Date: 2026-01-18
Status: 📋 COMPREHENSIVE REVIEW & TASK LIST
Last Work Session: Decimal fixes, permissioning verification, deployment attempts
🔍 Review of Last Work Session
✅ Completed Work
1. Decimal/Wei Conversion Errors - FIXED
Issue Found: Priority fee calculation was incorrectly setting minimum to 1 gwei, which could exceed max fee in EIP-1559 transactions.
Fix Applied:
- ✅ Get base fee from latest block dynamically
- ✅ Calculate available fee space (maxFee - baseFee)
- ✅ Calculate priority fee as 10% of available (not max)
- ✅ Use smaller minimum (0.01 gwei instead of 1 gwei)
- ✅ Verify total fee (base + priority) <= max fee
- ✅ Adjust priority fee if it exceeds max
Files Modified:
- ✅
scripts/deploy-phase3-bridges-besu-complete.sh- Priority fee calculation fixed - ✅
docs/06-besu/DECIMAL_ERRORS_FIXED.md- Documentation created
Verification:
- ✅ All decimal conversions verified correct
- ✅ Gas price calculations verified (1.1 gwei)
- ✅ Wei to gwei conversions verified
2. Account Permissioning - VERIFIED
Status: ✅ NO BLOCKING PERMISSIONING
- Allowlist is empty (development mode)
- Empty allowlist = all accounts allowed
- Deployer address:
0x4A666F96fC8764181194447A7dFdb7d471b301C8 - Result: Account permissioning is NOT blocking deployments
Files Checked:
- ✅
smom-dbis-138/config/permissions-accounts.toml- Empty allowlist confirmed - ✅ RPC node configuration - Permissioning enabled but allowlist empty
3. Deployment Scripts - CREATED/IMPROVED
Scripts Created/Updated:
- ✅
scripts/deploy-phase3-bridges-besu-complete.sh- Fixed with correct decimal calculations - ✅
scripts/deploy-bridges-direct-cast.sh- New script for direct cast send deployment - ✅
scripts/calculate-chain138-gas-price.sh- Verified correct
Features:
- ✅ Besu pre-flight checks (chain ID, block production, balance, EIP-1559)
- ✅ Dynamic gas price calculation
- ✅ EIP-1559 transaction support with correct priority fee
- ✅ Legacy transaction fallback
4. Deployment Attempts - BLOCKED
Issue: "Replacement transaction underpriced" errors
Attempts Made:
- ✅ Tried with 1.1 gwei (calculated optimal)
- ✅ Tried with 1.5 gwei (higher)
- ✅ Tried with 2.0 gwei (much higher)
- ✅ Cleared broadcast cache
- ✅ Checked for pending transactions
Current Status:
- ⚠️ Transactions not being mined
- ⚠️ No pending transactions in mempool
- ⚠️ Contracts not deployed
Possible Causes:
- Stuck transaction at same nonce
- Network-specific gas price requirements
- Transaction pool issues on Besu
- Account nonce mismatch
📋 Complete Task List for Completion
🚨 CRITICAL IMMEDIATE TASKS (Phase 3.2)
Task 1: Resolve Transaction Deployment Issues
Status: ⏳ BLOCKED
Priority: 🔴 CRITICAL
Estimated Time: 1-2 hours
Sub-tasks:
-
Investigate "Replacement transaction underpriced" error
- Check for stuck transactions at deployer nonce
- Verify transaction pool status on Besu node
- Check Besu node logs for rejection reasons
- Verify nonce is correct (current: 13104)
-
Try alternative deployment methods
- Use
cast senddirectly with explicit nonce - Try with significantly higher gas price (5-10 gwei)
- Use nonce override if transaction is stuck
- Try deploying from different account (if available)
- Use
-
Verify network status
- Confirm blocks are being produced
- Verify validators are active
- Check network consensus status
- Verify RPC node is synced
Files to Check:
- Besu node logs:
/var/log/besu/or similar - Transaction pool:
cast rpc txpool_inspect --rpc-url $RPC - Block production: Monitor
cast block-number --rpc-url $RPC
Task 2: Deploy WETH9 Bridge Contract
Status: ⏳ PENDING (blocked by Task 1)
Priority: 🔴 CRITICAL
Estimated Time: 15 minutes (after Task 1)
Contract: CCIPWETH9Bridge.sol
Expected Address: 0x646e0026F8B5BCB94986377a25Da6f89BdCbBF6e (from simulation)
Deployment Command:
cd smom-dbis-138
forge script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge \
--rpc-url "$RPC_URL_138" \
--broadcast \
--private-key "$PRIVATE_KEY" \
--with-gas-price "$MAX_FEE" \
--priority-gas-price "$PRIORITY_FEE" \
-vv
Verification:
- Contract deployed at expected address
- Code size > 1000 bytes
- Admin set correctly
- CCIP Router configured
- WETH9 address configured
- Fee token configured
Update .env:
- Add
CCIPWETH9BRIDGE_ADDRESS=0x...
Task 3: Deploy WETH10 Bridge Contract
Status: ⏳ PENDING (blocked by Task 1)
Priority: 🔴 CRITICAL
Estimated Time: 15 minutes (after Task 1)
Contract: CCIPWETH10Bridge.sol
Expected Address: TBD (from simulation)
Deployment Command:
cd smom-dbis-138
forge script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge \
--rpc-url "$RPC_URL_138" \
--broadcast \
--private-key "$PRIVATE_KEY" \
--with-gas-price "$MAX_FEE" \
--priority-gas-price "$PRIORITY_FEE" \
-vv
Verification:
- Contract deployed
- Code size > 1000 bytes
- Admin set correctly
- CCIP Router configured
- WETH10 address configured
- Fee token configured
Update .env:
- Add
CCIPWETH10BRIDGE_ADDRESS=0x...
📍 PHASE 3.4: Configure Bridge Destinations
Status: ⏳ PENDING (after Phase 3.2)
Priority: 🟡 HIGH
Estimated Time: 30 minutes
Task 4: Configure WETH9 Bridge with Mainnet Destination
Actions:
- Get Mainnet chain selector:
5009297550715157269(Ethereum Mainnet) - Get Mainnet WETH9 Bridge address:
0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6 - Call
addDestination()on ChainID 138 WETH9 Bridge:addDestination( uint64 chainSelector, // 5009297550715157269 address receiverBridge // 0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6 ) - Verify destination added:
getDestinationChains()returns Mainnet selector - Verify destination enabled:
destinations(5009297550715157269).enabled == true
Command:
cast send "$CCIPWETH9BRIDGE_ADDRESS" \
"addDestination(uint64,address)" \
"5009297550715157269" \
"0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6" \
--rpc-url "$RPC_URL_138" \
--private-key "$PRIVATE_KEY" \
--with-gas-price "$MAX_FEE" \
--priority-gas-price "$PRIORITY_FEE"
Task 5: Configure WETH10 Bridge with Mainnet Destination
Actions:
- Get Mainnet chain selector:
5009297550715157269(Ethereum Mainnet) - Get Mainnet WETH10 Bridge address:
0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e - Call
addDestination()on ChainID 138 WETH10 Bridge:addDestination( uint64 chainSelector, // 5009297550715157269 address receiverBridge // 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e ) - Verify destination added:
getDestinationChains()returns Mainnet selector - Verify destination enabled:
destinations(5009297550715157269).enabled == true
Command:
cast send "$CCIPWETH10BRIDGE_ADDRESS" \
"addDestination(uint64,address)" \
"5009297550715157269" \
"0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e" \
--rpc-url "$RPC_URL_138" \
--private-key "$PRIVATE_KEY" \
--with-gas-price "$MAX_FEE" \
--priority-gas-price "$PRIORITY_FEE"
🔗 PHASE 3.5: CREATE2 LINK Token Deployment
Status: ⏳ PENDING
Priority: 🟡 HIGH
Estimated Time: 1-2 hours
Task 6: Deploy LINK Token to Canonical Address
Canonical Address: 0x514910771AF9Ca656af840dff83E8264EcF986CA
Method: CREATE2 deployment
Actions:
- Verify LINK token not already deployed at canonical address
- Run CREATE2 deployment script:
cd smom-dbis-138 forge script script/DeployLinkToCanonicalAddress.s.sol:DeployLinkToCanonicalAddress \ --rpc-url "$RPC_URL_138" \ --broadcast \ --private-key "$PRIVATE_KEY" \ --with-gas-price "$MAX_FEE" \ --priority-gas-price "$PRIORITY_FEE" \ -vv - Verify deployment at canonical address
- Check code size > 1000 bytes
- Verify token name: "Chainlink Token"
- Verify token symbol: "LINK"
- Verify decimals: 18
Files:
- Script:
smom-dbis-138/script/DeployLinkToCanonicalAddress.s.sol - Wrapper:
scripts/deploy-link-canonical-create2.sh
Update .env:
- Verify
CCIP_FEE_TOKEN=0x514910771AF9Ca656af840dff83E8264EcF986CA
🧪 PHASE 3.6: Testing and Verification
Status: ⏳ PENDING (after Phase 3.2, 3.4, 3.5)
Priority: 🟡 HIGH
Estimated Time: 1-2 hours
Task 7: Test Bidirectional Bridge Functionality
Test 1: ChainID 138 → Mainnet (Newly Enabled)
- Fund WETH9 Bridge with LINK for fees
- Approve WETH9 token to bridge contract
- Initiate cross-chain transfer from ChainID 138 to Mainnet
- Verify message ID generated
- Monitor CCIP message status
- Verify tokens received on Mainnet
Test 2: Mainnet → ChainID 138 (Should Already Work)
- Verify Mainnet bridge has destination configured
- Initiate cross-chain transfer from Mainnet to ChainID 138
- Verify message ID generated
- Monitor CCIP message status
- Verify tokens received on ChainID 138
Test 3: WETH10 Bridge (Both Directions)
- Test ChainID 138 → Mainnet
- Test Mainnet → ChainID 138
- Verify all transfers complete successfully
Task 8: Update Documentation
Files to Update:
smom-dbis-138/.env- Add all new bridge addressesdocs/06-besu/T1_2_PHASE3_EXECUTION_PLAN.md- Mark tasks completedocs/06-besu/DEPLOYMENT_STATUS.md- Update statussmom-dbis-138/frontend-dapp/DEPLOYMENT_CHECKLIST.md- Update bridge addresses
Information to Document:
- WETH9 Bridge address (ChainID 138)
- WETH10 Bridge address (ChainID 138)
- LINK token address (canonical)
- Mainnet bridge addresses (for reference)
- Chain selectors used
- Deployment transaction hashes
- Configuration transaction hashes
🔧 OPTIONAL ENHANCEMENTS
Status: ⏳ OPTIONAL
Priority: 🟢 LOW
Estimated Time: Variable
Task 9: Enhanced Monitoring
- Set up monitoring for bridge contracts
- Configure alerts for failed transfers
- Set up dashboard for bridge activity
- Monitor LINK token balance on bridges
Task 10: Gas Optimization
- Review gas usage in deployment scripts
- Optimize gas price calculations
- Document optimal gas settings for Besu network
Task 11: Security Audit
- Review bridge contract security
- Verify access controls
- Check for common vulnerabilities
- Document security assumptions
📊 Task Summary
| Task | Status | Priority | Estimated Time | Dependencies |
|---|---|---|---|---|
| 1. Resolve Transaction Issues | ⏳ Blocked | 🔴 Critical | 1-2 hours | None |
| 2. Deploy WETH9 Bridge | ⏳ Pending | 🔴 Critical | 15 min | Task 1 |
| 3. Deploy WETH10 Bridge | ⏳ Pending | 🔴 Critical | 15 min | Task 1 |
| 4. Configure WETH9 Destination | ⏳ Pending | 🟡 High | 15 min | Task 2 |
| 5. Configure WETH10 Destination | ⏳ Pending | 🟡 High | 15 min | Task 3 |
| 6. Deploy CREATE2 LINK | ⏳ Pending | 🟡 High | 1-2 hours | None |
| 7. Test Bidirectional | ⏳ Pending | 🟡 High | 1-2 hours | Tasks 2-5 |
| 8. Update Documentation | ⏳ Pending | 🟡 High | 30 min | Tasks 2-7 |
| 9. Enhanced Monitoring | ⏳ Optional | 🟢 Low | Variable | Task 7 |
| 10. Gas Optimization | ⏳ Optional | 🟢 Low | Variable | None |
| 11. Security Audit | ⏳ Optional | 🟢 Low | Variable | Task 7 |
Total Estimated Time (Critical + High Priority): 5-7 hours
🎯 Immediate Next Steps
-
Investigate Transaction Deployment Issues (Task 1)
- Check Besu node logs
- Verify transaction pool status
- Try alternative deployment methods
- Resolve "Replacement transaction underpriced" error
-
Once Transactions Work:
- Deploy WETH9 Bridge (Task 2)
- Deploy WETH10 Bridge (Task 3)
- Configure destinations (Tasks 4-5)
- Deploy CREATE2 LINK (Task 6)
- Test bidirectional transfers (Task 7)
- Update documentation (Task 8)
📝 Notes
Known Issues
-
"Replacement transaction underpriced" Error
- May indicate stuck transaction at same nonce
- May require higher gas price than calculated
- May require nonce override or transaction cancellation
-
Besu Network Specifics
- EIP-1559 enabled (base fee present)
- Minimum gas price: 1 gwei
- Account permissioning enabled but allowlist empty
- Blocks may not be produced continuously
-
Gas Price Calculations
- ✅ Fixed decimal errors
- ✅ Priority fee calculation corrected
- ✅ EIP-1559 support implemented
- ⚠️ May need adjustment based on network conditions
Files Modified in Last Session
- ✅
scripts/deploy-phase3-bridges-besu-complete.sh- Fixed priority fee calculation - ✅
scripts/deploy-bridges-direct-cast.sh- Created new deployment script - ✅
docs/06-besu/DECIMAL_ERRORS_FIXED.md- Documentation created
Files to Check
- Besu node logs (location TBD)
- Transaction pool:
cast rpc txpool_inspect --rpc-url $RPC - Block production: Monitor
cast block-number --rpc-url $RPC - Nonce status:
cast nonce $DEPLOYER --rpc-url $RPC
Last Updated: 2026-01-18
Next Review: After Task 1 completion