- 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.
499 lines
13 KiB
Markdown
499 lines
13 KiB
Markdown
# Complete Implementation Plan - All Remaining Tasks
|
|
|
|
**Date**: $(date)
|
|
**Status**: 📋 **PLANNING PHASE**
|
|
**Goal**: Complete all remaining tasks for full cross-chain functionality
|
|
|
|
---
|
|
|
|
## 📊 Current Status Summary
|
|
|
|
### ✅ Completed
|
|
|
|
1. **Core Infrastructure**
|
|
- ✅ CCIP Router deployed: `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e`
|
|
- ✅ CCIP Sender deployed: `0x105F8A15b819948a89153505762444Ee9f324684`
|
|
- ✅ Oracle Proxy deployed: `0x3304b747e565a97ec8ac220b0b6a1f6ffdb837e6`
|
|
- ✅ Oracle Aggregator deployed: `0x99b3511a2d315a497c8112c1fdd8d508d4b1e506`
|
|
- ✅ Price Feed Keeper deployed: `0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04`
|
|
|
|
2. **Pre-deployed Contracts**
|
|
- ✅ WETH9: `0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2`
|
|
- ✅ WETH10: `0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f`
|
|
|
|
3. **Services**
|
|
- ✅ Oracle Publisher (VMID 3500): Configured
|
|
- ✅ CCIP Monitor (VMID 3501): Configured
|
|
- ✅ Firefly (VMID 6200): Running
|
|
- ✅ Blockscout (VMID 5000): Running
|
|
|
|
4. **Documentation**
|
|
- ✅ Contract addresses documented
|
|
- ✅ Deployment guides created
|
|
- ✅ Integration guides created
|
|
|
|
### ⏳ Remaining Tasks
|
|
|
|
1. **Bridge Contracts Deployment** (Priority 1)
|
|
- ⏳ Deploy CCIPWETH9Bridge on ChainID 138
|
|
- ⏳ Deploy CCIPWETH10Bridge on ChainID 138
|
|
|
|
2. **Bridge Configuration** (Priority 1)
|
|
- ⏳ Configure all destination chains for WETH9 bridge
|
|
- ⏳ Configure all destination chains for WETH10 bridge
|
|
|
|
3. **Documentation Updates** (Priority 2)
|
|
- ⏳ Create cross-chain bridge address reference
|
|
- ⏳ Update user flow documentation
|
|
- ⏳ Create configuration scripts
|
|
|
|
4. **Testing** (Priority 3)
|
|
- ⏳ Test cross-chain transfers to each destination
|
|
- ⏳ Verify bridge functionality
|
|
- ⏳ Monitor transfer events
|
|
|
|
---
|
|
|
|
## 🎯 Detailed Implementation Plan
|
|
|
|
### Phase 1: Bridge Contracts Deployment
|
|
|
|
#### Task 1.1: Deploy CCIPWETH9Bridge
|
|
|
|
**Objective**: Deploy WETH9 bridge contract on ChainID 138
|
|
|
|
**Prerequisites**:
|
|
- ✅ CCIP Router deployed
|
|
- ✅ WETH9 contract address known
|
|
- ✅ LINK token address or native ETH for fees
|
|
|
|
**Steps**:
|
|
1. Verify environment variables in source project `.env`:
|
|
```bash
|
|
CCIP_CHAIN138_ROUTER=0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e
|
|
WETH9_ADDRESS=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
|
|
LINK_TOKEN_ADDRESS=0x0000000000000000000000000000000000000000 # or actual LINK address
|
|
```
|
|
|
|
2. Deploy bridge contract:
|
|
```bash
|
|
cd /home/intlc/projects/smom-dbis-138
|
|
forge script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge \
|
|
--rpc-url https://rpc-core.d-bis.org \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast \
|
|
--legacy \
|
|
--via-ir
|
|
```
|
|
|
|
3. Extract deployed address from broadcast file
|
|
|
|
4. Update `.env` with bridge address:
|
|
```bash
|
|
CCIPWETH9_BRIDGE_CHAIN138=<deployed_address>
|
|
```
|
|
|
|
**Expected Output**:
|
|
- Bridge contract deployed
|
|
- Address saved to `.env`
|
|
- Contract verified on explorer (if configured)
|
|
|
|
**Estimated Time**: 15 minutes
|
|
|
|
---
|
|
|
|
#### Task 1.2: Deploy CCIPWETH10Bridge
|
|
|
|
**Objective**: Deploy WETH10 bridge contract on ChainID 138
|
|
|
|
**Prerequisites**:
|
|
- ✅ CCIP Router deployed
|
|
- ✅ WETH10 contract address known
|
|
- ✅ LINK token address or native ETH for fees
|
|
|
|
**Steps**:
|
|
1. Verify environment variables in source project `.env`:
|
|
```bash
|
|
CCIP_CHAIN138_ROUTER=0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e
|
|
WETH10_ADDRESS=0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f
|
|
LINK_TOKEN_ADDRESS=0x0000000000000000000000000000000000000000 # or actual LINK address
|
|
```
|
|
|
|
2. Deploy bridge contract:
|
|
```bash
|
|
cd /home/intlc/projects/smom-dbis-138
|
|
forge script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge \
|
|
--rpc-url https://rpc-core.d-bis.org \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast \
|
|
--legacy \
|
|
--via-ir
|
|
```
|
|
|
|
3. Extract deployed address from broadcast file
|
|
|
|
4. Update `.env` with bridge address:
|
|
```bash
|
|
CCIPWETH10_BRIDGE_CHAIN138=<deployed_address>
|
|
```
|
|
|
|
**Expected Output**:
|
|
- Bridge contract deployed
|
|
- Address saved to `.env`
|
|
- Contract verified on explorer (if configured)
|
|
|
|
**Estimated Time**: 15 minutes
|
|
|
|
---
|
|
|
|
### Phase 2: Bridge Configuration
|
|
|
|
#### Task 2.1: Get ChainID 138 Selector
|
|
|
|
**Objective**: Get the chain selector for ChainID 138 from CCIP Router
|
|
|
|
**Steps**:
|
|
1. Query CCIP Router for chain selector:
|
|
```bash
|
|
cast call 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e \
|
|
"getChainSelector()" \
|
|
--rpc-url https://rpc-core.d-bis.org
|
|
```
|
|
|
|
2. Save selector to `.env`:
|
|
```bash
|
|
CHAIN138_SELECTOR=<selector_value>
|
|
```
|
|
|
|
**Expected Output**: Chain selector value (likely `138` or hex representation)
|
|
|
|
**Estimated Time**: 2 minutes
|
|
|
|
---
|
|
|
|
#### Task 2.2: Configure WETH9 Bridge Destinations
|
|
|
|
**Objective**: Configure all destination chains for WETH9 bridge
|
|
|
|
**Destination Chains**:
|
|
- BSC (Selector: `11344663589394136015`, Bridge: `0x8078a09637e47fa5ed34f626046ea2094a5cde5e`)
|
|
- Polygon (Selector: `4051577828743386545`, Bridge: `0xa780ef19a041745d353c9432f2a7f5a241335ffe`)
|
|
- Avalanche (Selector: `6433500567565415381`, Bridge: `0x8078a09637e47fa5ed34f626046ea2094a5cde5e`)
|
|
- Base (Selector: `15971525489660198786`, Bridge: `0x8078a09637e47fa5ed34f626046ea2094a5cde5e`)
|
|
- Arbitrum (Selector: `4949039107694359620`, Bridge: `0x8078a09637e47fa5ed34f626046ea2094a5cde5e`)
|
|
- Optimism (Selector: `3734403246176062136`, Bridge: `0x8078a09637e47fa5ed34f626046ea2094a5cde5e`)
|
|
|
|
**Steps**:
|
|
1. For each destination chain, call `addDestination()`:
|
|
```bash
|
|
cast send $CCIPWETH9_BRIDGE_CHAIN138 \
|
|
"addDestination(uint64,address)" \
|
|
<chain_selector> \
|
|
<destination_bridge_address> \
|
|
--rpc-url https://rpc-core.d-bis.org \
|
|
--private-key $PRIVATE_KEY
|
|
```
|
|
|
|
2. Verify each destination was added:
|
|
```bash
|
|
cast call $CCIPWETH9_BRIDGE_CHAIN138 \
|
|
"destinations(uint64)" \
|
|
<chain_selector> \
|
|
--rpc-url https://rpc-core.d-bis.org
|
|
```
|
|
|
|
**Expected Output**:
|
|
- All 6 destinations configured
|
|
- Each destination verified as enabled
|
|
|
|
**Estimated Time**: 30 minutes (5 minutes per destination)
|
|
|
|
---
|
|
|
|
#### Task 2.3: Configure WETH10 Bridge Destinations
|
|
|
|
**Objective**: Configure all destination chains for WETH10 bridge
|
|
|
|
**Destination Chains**:
|
|
- BSC (Selector: `11344663589394136015`, Bridge: `0x105f8a15b819948a89153505762444ee9f324684`)
|
|
- Polygon (Selector: `4051577828743386545`, Bridge: `0xdab0591e5e89295ffad75a71dcfc30c5625c4fa2`)
|
|
- Avalanche (Selector: `6433500567565415381`, Bridge: `0x105f8a15b819948a89153505762444ee9f324684`)
|
|
- Base (Selector: `15971525489660198786`, Bridge: `0x105f8a15b819948a89153505762444ee9f324684`)
|
|
- Arbitrum (Selector: `4949039107694359620`, Bridge: `0x105f8a15b819948a89153505762444ee9f324684`)
|
|
- Optimism (Selector: `3734403246176062136`, Bridge: `0x105f8a15b819948a89153505762444ee9f324684`)
|
|
|
|
**Steps**:
|
|
1. For each destination chain, call `addDestination()`:
|
|
```bash
|
|
cast send $CCIPWETH10_BRIDGE_CHAIN138 \
|
|
"addDestination(uint64,address)" \
|
|
<chain_selector> \
|
|
<destination_bridge_address> \
|
|
--rpc-url https://rpc-core.d-bis.org \
|
|
--private-key $PRIVATE_KEY
|
|
```
|
|
|
|
2. Verify each destination was added:
|
|
```bash
|
|
cast call $CCIPWETH10_BRIDGE_CHAIN138 \
|
|
"destinations(uint64)" \
|
|
<chain_selector> \
|
|
--rpc-url https://rpc-core.d-bis.org
|
|
```
|
|
|
|
**Expected Output**:
|
|
- All 6 destinations configured
|
|
- Each destination verified as enabled
|
|
|
|
**Estimated Time**: 30 minutes (5 minutes per destination)
|
|
|
|
---
|
|
|
|
### Phase 3: Documentation & Scripts
|
|
|
|
#### Task 3.1: Create Cross-Chain Bridge Address Reference
|
|
|
|
**Objective**: Create comprehensive reference document with all bridge addresses
|
|
|
|
**Content**:
|
|
- ChainID 138 bridge addresses (once deployed)
|
|
- All destination chain bridge addresses
|
|
- Chain selectors for all networks
|
|
- Configuration examples
|
|
|
|
**File**: `docs/CROSS_CHAIN_BRIDGE_ADDRESSES.md`
|
|
|
|
**Estimated Time**: 20 minutes
|
|
|
|
---
|
|
|
|
#### Task 3.2: Create Bridge Configuration Script
|
|
|
|
**Objective**: Create automated script to configure all bridge destinations
|
|
|
|
**Features**:
|
|
- Configure WETH9 bridge destinations
|
|
- Configure WETH10 bridge destinations
|
|
- Verify all configurations
|
|
- Error handling and logging
|
|
|
|
**File**: `scripts/configure-bridge-destinations.sh`
|
|
|
|
**Estimated Time**: 30 minutes
|
|
|
|
---
|
|
|
|
#### Task 3.3: Create Bridge Deployment Script
|
|
|
|
**Objective**: Create automated script to deploy both bridge contracts
|
|
|
|
**Features**:
|
|
- Deploy CCIPWETH9Bridge
|
|
- Deploy CCIPWETH10Bridge
|
|
- Extract addresses
|
|
- Update `.env` files
|
|
- Verify deployments
|
|
|
|
**File**: `scripts/deploy-bridge-contracts.sh`
|
|
|
|
**Estimated Time**: 30 minutes
|
|
|
|
---
|
|
|
|
#### Task 3.4: Update User Flow Documentation
|
|
|
|
**Objective**: Update user flow documentation with actual addresses
|
|
|
|
**Files to Update**:
|
|
- `docs/COMPLETE_CONNECTIONS_CONTRACTS_CONTAINERS.md`
|
|
- `docs/user-guides/CCIP_BRIDGE_USER_GUIDE.md` (in source project)
|
|
|
|
**Content**:
|
|
- Actual bridge addresses
|
|
- Complete step-by-step examples
|
|
- Code examples with real addresses
|
|
|
|
**Estimated Time**: 30 minutes
|
|
|
|
---
|
|
|
|
### Phase 4: Testing & Verification
|
|
|
|
#### Task 4.1: Test WETH9 Bridge to Each Destination
|
|
|
|
**Objective**: Test cross-chain transfer for WETH9 to each destination chain
|
|
|
|
**Test Plan**:
|
|
1. Wrap small amount of ETH to WETH9
|
|
2. Approve bridge to spend WETH9
|
|
3. Calculate fee for destination
|
|
4. Send cross-chain transfer
|
|
5. Monitor transfer status
|
|
6. Verify receipt on destination chain
|
|
|
|
**Test Amount**: 0.01 ETH (or minimum viable amount)
|
|
|
|
**Destinations to Test**:
|
|
- BSC
|
|
- Polygon
|
|
- Avalanche
|
|
- Base
|
|
- Arbitrum
|
|
- Optimism
|
|
|
|
**Estimated Time**: 2 hours (20 minutes per destination)
|
|
|
|
---
|
|
|
|
#### Task 4.2: Test WETH10 Bridge to Each Destination
|
|
|
|
**Objective**: Test cross-chain transfer for WETH10 to each destination chain
|
|
|
|
**Test Plan**: Same as Task 4.1, but for WETH10
|
|
|
|
**Estimated Time**: 2 hours (20 minutes per destination)
|
|
|
|
---
|
|
|
|
#### Task 4.3: Create Test Script
|
|
|
|
**Objective**: Create automated test script for bridge transfers
|
|
|
|
**Features**:
|
|
- Test WETH9 transfers
|
|
- Test WETH10 transfers
|
|
- Monitor transfer status
|
|
- Verify receipts
|
|
- Generate test report
|
|
|
|
**File**: `scripts/test-bridge-transfers.sh`
|
|
|
|
**Estimated Time**: 45 minutes
|
|
|
|
---
|
|
|
|
### Phase 5: Service Configuration Updates
|
|
|
|
#### Task 5.1: Update CCIP Monitor Service
|
|
|
|
**Objective**: Update CCIP Monitor service with bridge addresses
|
|
|
|
**Steps**:
|
|
1. Update `.env` file in VMID 3501:
|
|
```bash
|
|
CCIPWETH9_BRIDGE_CHAIN138=<deployed_address>
|
|
CCIPWETH10_BRIDGE_CHAIN138=<deployed_address>
|
|
```
|
|
|
|
2. Restart service if needed
|
|
|
|
**Estimated Time**: 10 minutes
|
|
|
|
---
|
|
|
|
#### Task 5.2: Update All Service Configurations
|
|
|
|
**Objective**: Update all service `.env` files with bridge addresses
|
|
|
|
**Services**:
|
|
- Oracle Publisher (3500)
|
|
- CCIP Monitor (3501)
|
|
- Keeper (3502) - if needed
|
|
- Financial Tokenization (3503) - if needed
|
|
|
|
**Estimated Time**: 15 minutes
|
|
|
|
---
|
|
|
|
## 📋 Implementation Checklist
|
|
|
|
### Phase 1: Bridge Deployment
|
|
- [ ] Task 1.1: Deploy CCIPWETH9Bridge
|
|
- [ ] Task 1.2: Deploy CCIPWETH10Bridge
|
|
|
|
### Phase 2: Bridge Configuration
|
|
- [ ] Task 2.1: Get ChainID 138 Selector
|
|
- [ ] Task 2.2: Configure WETH9 Bridge Destinations (6 destinations)
|
|
- [ ] Task 2.3: Configure WETH10 Bridge Destinations (6 destinations)
|
|
|
|
### Phase 3: Documentation & Scripts
|
|
- [ ] Task 3.1: Create Cross-Chain Bridge Address Reference
|
|
- [ ] Task 3.2: Create Bridge Configuration Script
|
|
- [ ] Task 3.3: Create Bridge Deployment Script
|
|
- [ ] Task 3.4: Update User Flow Documentation
|
|
|
|
### Phase 4: Testing & Verification
|
|
- [ ] Task 4.1: Test WETH9 Bridge to Each Destination (6 tests)
|
|
- [ ] Task 4.2: Test WETH10 Bridge to Each Destination (6 tests)
|
|
- [ ] Task 4.3: Create Test Script
|
|
|
|
### Phase 5: Service Configuration
|
|
- [ ] Task 5.1: Update CCIP Monitor Service
|
|
- [ ] Task 5.2: Update All Service Configurations
|
|
|
|
---
|
|
|
|
## ⏱️ Time Estimates
|
|
|
|
| Phase | Tasks | Estimated Time |
|
|
|-------|-------|----------------|
|
|
| Phase 1: Bridge Deployment | 2 tasks | 30 minutes |
|
|
| Phase 2: Bridge Configuration | 3 tasks | 62 minutes |
|
|
| Phase 3: Documentation & Scripts | 4 tasks | 110 minutes |
|
|
| Phase 4: Testing & Verification | 3 tasks | 285 minutes |
|
|
| Phase 5: Service Configuration | 2 tasks | 25 minutes |
|
|
| **Total** | **14 tasks** | **~8.5 hours** |
|
|
|
|
---
|
|
|
|
## 🚀 Quick Start Commands
|
|
|
|
### Deploy Bridges
|
|
```bash
|
|
cd /home/intlc/projects/proxmox
|
|
bash scripts/deploy-bridge-contracts.sh
|
|
```
|
|
|
|
### Configure Destinations
|
|
```bash
|
|
cd /home/intlc/projects/proxmox
|
|
bash scripts/configure-bridge-destinations.sh
|
|
```
|
|
|
|
### Test Transfers
|
|
```bash
|
|
cd /home/intlc/projects/proxmox
|
|
bash scripts/test-bridge-transfers.sh
|
|
```
|
|
|
|
---
|
|
|
|
## 📝 Notes
|
|
|
|
1. **Gas Costs**: Each bridge deployment and configuration transaction will cost gas. Budget accordingly.
|
|
|
|
2. **Testing**: Start with small test amounts (0.01 ETH) before larger transfers.
|
|
|
|
3. **Verification**: Verify all contract addresses before use.
|
|
|
|
4. **Monitoring**: Monitor CCIP Monitor service (VMID 3501) for cross-chain events.
|
|
|
|
5. **Documentation**: Keep all addresses and configurations documented for future reference.
|
|
|
|
---
|
|
|
|
## ✅ Success Criteria
|
|
|
|
1. ✅ Both bridge contracts deployed on ChainID 138
|
|
2. ✅ All 6 destination chains configured for both bridges
|
|
3. ✅ Test transfers successful to at least 2 destination chains
|
|
4. ✅ All documentation updated with actual addresses
|
|
5. ✅ All scripts created and tested
|
|
6. ✅ Services configured with bridge addresses
|
|
|
|
---
|
|
|
|
**Last Updated**: $(date)
|
|
**Status**: 📋 Ready for Implementation
|
|
|