Files
proxmox/docs/06-besu/COMPLETE_TASK_REVIEW_AND_LIST.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

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:

  1. Stuck transaction at same nonce
  2. Network-specific gas price requirements
  3. Transaction pool issues on Besu
  4. 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:

  1. 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)
  2. Try alternative deployment methods

    • Use cast send directly 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)
  3. 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"

Status: PENDING
Priority: 🟡 HIGH
Estimated Time: 1-2 hours

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 addresses
  • docs/06-besu/T1_2_PHASE3_EXECUTION_PLAN.md - Mark tasks complete
  • docs/06-besu/DEPLOYMENT_STATUS.md - Update status
  • smom-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

  1. Investigate Transaction Deployment Issues (Task 1)

    • Check Besu node logs
    • Verify transaction pool status
    • Try alternative deployment methods
    • Resolve "Replacement transaction underpriced" error
  2. 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

  1. "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
  2. 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
  3. 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

  1. scripts/deploy-phase3-bridges-besu-complete.sh - Fixed priority fee calculation
  2. scripts/deploy-bridges-direct-cast.sh - Created new deployment script
  3. docs/06-besu/DECIMAL_ERRORS_FIXED.md - Documentation created

Files to Check

  1. Besu node logs (location TBD)
  2. Transaction pool: cast rpc txpool_inspect --rpc-url $RPC
  3. Block production: Monitor cast block-number --rpc-url $RPC
  4. Nonce status: cast nonce $DEPLOYER --rpc-url $RPC

Last Updated: 2026-01-18
Next Review: After Task 1 completion