Files
smom-dbis-138/docs/archive/status-reports/docs-root-legacy/NEXT_STEPS_SUMMARY.md

7.1 KiB

Next Steps Summary

Date: 2025-01-12
Status: Implementation Checklist Complete


Completed Items

1. Verification Script Created

  • File: smom-dbis-138/scripts/verify-bridge-setup-checklist.sh
  • Purpose: Verifies all checklist items:
    • LINK token deployment
    • Router fee token recognition
    • Destination chain configuration
    • Bridge contract function signature
  • Usage: ./scripts/verify-bridge-setup-checklist.sh

2. BridgeButtons Component Implemented

  • File: smom-dbis-138/frontend-dapp/src/components/bridge/BridgeButtons.tsx
  • Features:
    • Wrap button (deposit ETH to WETH9)
    • Approve button (approve WETH9 and LINK)
    • Bridge button (sendCrossChain)
    • Balance display (ETH, WETH9, LINK)
    • Fee calculation display
    • Error handling
    • Loading states

3. Configuration File Created

  • File: smom-dbis-138/frontend-dapp/src/config/bridge.ts
  • Contents:
    • Contract addresses
    • Chain selectors
    • ABI definitions
    • TypeScript types

4. Documentation Created

  • File: smom-dbis-138/docs/BRIDGE_IMPLEMENTATION_REVIEW.md
  • Contents: Complete review and implementation guide

⚠️ Pending Items

1. Run Verification Script

Action: Execute verification script to check current state

cd smom-dbis-138
./scripts/verify-bridge-setup-checklist.sh

Expected Checks:

  • LINK token deployed on Chain 138
  • Router recognizes LINK as fee token
  • destinations[5009297550715157269] is configured
  • Bridge contract exists

If checks fail:

  • Deploy LINK token if missing
  • Configure destination chain if not set
  • Verify contract addresses

2. Integrate BridgeButtons into UI

Action: Add BridgeButtons component to the frontend

Option A: Update BridgePage.tsx

import BridgeButtons from '../components/bridge/BridgeButtons';

export default function BridgePage() {
  return (
    <div>
      <BridgeButtons />
    </div>
  );
}

Option B: Create new route/page

  • Add route in router configuration
  • Create dedicated bridge page

Option C: Replace ThirdwebBridgeWidget

  • Update existing widget to use BridgeButtons
  • Or create toggle between widgets

Recommendation: Option A - Update BridgePage.tsx


3. Verify Contract Addresses

Action: Confirm all addresses in bridge.ts are correct

Check:

  • WETH9 address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
  • Bridge address: 0x89dd12025bfCD38A168455A44B400e913ED33BE2
  • LINK token: 0x514910771AF9Ca656af840dff83E8264EcF986CA
  • CCIP Router: 0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D (verify)

Update: If addresses differ, update smom-dbis-138/frontend-dapp/src/config/bridge.ts


4. Test Functionality

Action: Test all three buttons in the UI

Test Cases:

  1. Wrap Button:

    • Connect wallet
    • Enter amount
    • Click Wrap
    • Verify ETH is wrapped to WETH9
    • Check balance updates
  2. Approve Button:

    • Enter amount
    • Click Approve
    • Verify WETH9 allowance is set
    • Verify LINK allowance is set (if fee > 0)
    • Check allowance updates
  3. Bridge Button:

    • Ensure WETH9 balance sufficient
    • Ensure allowance sufficient
    • Enter recipient address
    • Click Bridge
    • Verify transaction sent
    • Check transaction hash returned

Error Cases:

  • Insufficient ETH balance
  • Insufficient WETH9 balance
  • Insufficient LINK for fees
  • Invalid recipient address
  • Wallet not connected

5. Environment Variables

Action: Set up environment variables for frontend

File: smom-dbis-138/frontend-dapp/.env or .env.local

VITE_RPC_URL_138=http://192.168.11.250:8545
# Or
VITE_RPC_URL_138=https://rpc.d-bis.org

Update: bridge.ts uses import.meta.env.VITE_RPC_URL_138


6. Thirdweb Provider Setup

Action: Ensure ThirdwebProvider is configured

Check: smom-dbis-138/frontend-dapp/src/App.tsx or main entry point

import { ThirdwebProvider } from '@thirdweb-dev/react';

function App() {
  return (
    <ThirdwebProvider clientId="your-client-id">
      {/* Your app */}
    </ThirdwebProvider>
  );
}

Required: Thirdweb client ID from dashboard


📋 Implementation Checklist

Pre-Implementation

  • Create verification script
  • Create BridgeButtons component
  • Create configuration file
  • Document implementation

Integration

  • Run verification script
  • Verify contract addresses
  • Integrate BridgeButtons into UI
  • Set up environment variables
  • Configure ThirdwebProvider

Testing

  • Test Wrap button
  • Test Approve button
  • Test Bridge button
  • Test error cases
  • Test with different amounts
  • Test with different recipient addresses

Deployment

  • Build frontend
  • Deploy to staging
  • Test on staging
  • Deploy to production

🔧 Quick Start

1. Verify Setup

cd smom-dbis-138
./scripts/verify-bridge-setup-checklist.sh

2. Update BridgePage

// smom-dbis-138/frontend-dapp/src/pages/BridgePage.tsx
import BridgeButtons from '../components/bridge/BridgeButtons';

export default function BridgePage() {
  return <BridgeButtons />;
}

3. Run Frontend

cd smom-dbis-138/frontend-dapp
npm install
npm run dev

4. Test

  • Open browser to frontend URL
  • Connect wallet
  • Test Wrap, Approve, and Bridge buttons

📝 Notes

  1. Function Name: The bridge function is sendCrossChain, not bridge
  2. LINK Fees: LINK token must be approved separately for CCIP fees
  3. Balances: User needs both WETH9 and LINK balances
  4. Fee Calculation: Fee is calculated automatically via calculateFee function
  5. Recipient: Defaults to connected wallet address but can be changed

🐛 Troubleshooting

Issue: "Contract not found"

Solution: Verify contract addresses in bridge.ts match deployed addresses

Issue: "Insufficient balance"

Solution: Ensure user has enough ETH, WETH9, and LINK

Issue: "Destination not configured"

Solution: Run bridge configuration script:

./scripts/deployment/configure-bridge-destinations.sh

Issue: "Router fee token not recognized"

Solution: Verify LINK token is deployed and router is configured


  • smom-dbis-138/scripts/verify-bridge-setup-checklist.sh - Verification script
  • smom-dbis-138/frontend-dapp/src/components/bridge/BridgeButtons.tsx - UI component
  • smom-dbis-138/frontend-dapp/src/config/bridge.ts - Configuration
  • smom-dbis-138/docs/BRIDGE_IMPLEMENTATION_REVIEW.md - Review document
  • smom-dbis-138/contracts/ccip/CCIPWETH9Bridge.sol - Bridge contract

Success Criteria

All items complete when:

  • Verification script created
  • BridgeButtons component implemented
  • Configuration file created
  • Verification script passes all checks
  • BridgeButtons integrated into UI
  • All three buttons tested and working
  • Error handling verified
  • Documentation complete