- Organized 252 files across project - Root directory: 187 → 2 files (98.9% reduction) - Moved configuration guides to docs/04-configuration/ - Moved troubleshooting guides to docs/09-troubleshooting/ - Moved quick start guides to docs/01-getting-started/ - Moved reports to reports/ directory - Archived temporary files - Generated comprehensive reports and documentation - Created maintenance scripts and guides All files organized according to established standards.
3.0 KiB
3.0 KiB
WETH → USDT Bridge Verification Scripts
Overview
This directory contains verification scripts for bridging WETH from ChainID 138 to USDT on Ethereum Mainnet via thirdweb Bridge.
Critical Finding
⚠️ WETH is NOT at the canonical address on ChainID 138
- Canonical Address:
0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2(no bytecode) - Actual Deployed Address:
0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6(has bytecode)
Reason: Cannot recreate CREATE-deployed contracts with CREATE2.
Scripts
1. verify-weth-usdt-bridge.sh
Basic verification script that checks:
- Bytecode at canonical address
- ERC-20 compliance
- thirdweb Bridge route availability
Usage:
./scripts/verify-weth-usdt-bridge.sh
2. verify-weth-usdt-bridge-enhanced.sh ⭐ Recommended
Enhanced verification script that checks:
- Bytecode at both canonical and actual addresses
- ERC-20 compliance at actual deployed address
- thirdweb Bridge route with actual address
- Alternative routes analysis
Usage:
./scripts/verify-weth-usdt-bridge-enhanced.sh
3. verify-weth-usdt-bridge.js
Node.js verification script using:
- ethers.js for contract interaction
- thirdweb SDK for bridge verification
- Better error handling and reporting
Usage:
node scripts/verify-weth-usdt-bridge.js
Prerequisites:
npm install @thirdweb-dev/sdk ethers
Verification Results
Bytecode Verification
- ❌ Canonical address: No bytecode (expected)
- ⚠️ Actual address: Verification inconclusive (RPC connectivity issues)
ERC-20 Compliance
- ⚠️ Inconclusive (depends on bytecode verification)
thirdweb Bridge Route
- ❌ Route verification failed
- Reasons:
- ChainID 138 may not be supported
- Non-canonical address may not be recognized
- API requires authentication
Recommendation
✅ Use CCIP Bridge instead of thirdweb Bridge
CCIP Bridge Contract (ChainID 138):
- Address:
0x89dd12025bfCD38A168455A44B400e913ED33BE2 - Already deployed and configured
- Supports actual WETH address
- Secure and audited (Chainlink CCIP)
Documentation
- Full Report:
docs/WETH_USDT_BRIDGE_VERIFICATION_REPORT.md - Go/No-Go Summary:
docs/WETH_USDT_BRIDGE_GO_NOGO_SUMMARY.md
Quick Start
-
Run enhanced verification:
./scripts/verify-weth-usdt-bridge-enhanced.sh -
Review results and recommendations
-
Use CCIP Bridge for actual bridging:
CCIPWETH9Bridge.bridge(amount, destinationSelector, recipient);
Troubleshooting
RPC Connectivity Issues
If scripts fail with RPC errors:
- Check RPC endpoint:
https://rpc-http-pub.d-bis.org - Verify network connectivity
- Try alternative RPC:
https://rpc-http-prv.d-bis.org
Missing Dependencies
For Node.js script:
npm install @thirdweb-dev/sdk ethers
For bash scripts:
- Requires
cast(foundry):curl -L https://foundry.paradigm.xyz | bash - Requires
jq:sudo apt-get install jq
Last Updated: 2025-01-27