- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control. - Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities. - Created .gitmodules to include OpenZeppelin contracts as a submodule. - Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment. - Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks. - Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring. - Created scripts for resource import and usage validation across non-US regions. - Added tests for CCIP error handling and integration to ensure robust functionality. - Included various new files and directories for the orchestration portal and deployment scripts.
197 lines
6.2 KiB
Markdown
197 lines
6.2 KiB
Markdown
# Mirror, Two-Way, and Related Contracts Search Results
|
|
|
|
**Date**: 2025-12-11
|
|
**Search Scope**: Ethereum Mainnet deployments
|
|
|
|
---
|
|
|
|
## 🔍 Search Summary
|
|
|
|
Searched for the following contracts that may have been deployed to Ethereum Mainnet:
|
|
1. **MirrorManager** - Cross-chain mirror registry
|
|
2. **TwoWayTokenBridge** (L1 and L2) - Two-way token bridge
|
|
3. **Tether-related contracts** - No specific "Tether" contract found
|
|
|
|
---
|
|
|
|
## 📋 Contract Status
|
|
|
|
### ✅ **Deployed and Verified on Mainnet**
|
|
|
|
| Contract | Address | Status | Etherscan |
|
|
|----------|---------|--------|-----------|
|
|
| **CCIPWETH9Bridge** | `0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6` | ✅ **VERIFIED** | [View](https://etherscan.io/address/0x3304b747E565a97ec8AC220b0B6A1f6ffDB837e6) |
|
|
| **CCIPWETH10Bridge** | `0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e` | ✅ **VERIFIED** | [View](https://etherscan.io/address/0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e) |
|
|
|
|
---
|
|
|
|
### ⏳ **Not Deployed to Mainnet (But Available in Codebase)**
|
|
|
|
#### 1. MirrorManager (Kaleido Mirror Pattern)
|
|
|
|
**Contract Details:**
|
|
- **File**: `contracts/mirror/MirrorManager.sol`
|
|
- **Purpose**: Registry of mirrored token/contract addresses across chains with replay protection
|
|
- **Kaleido Pattern**: ✅ Implements Kaleido's Mirror pattern for address registry
|
|
- **Deployment Script**: `script/DeployMirrorManager.s.sol`
|
|
- **Status**: ❌ **NOT DEPLOYED** to Mainnet
|
|
- **Required Env Var**: `MIRROR_ADMIN` (not set in .env)
|
|
|
|
**Kaleido Pattern**: In Kaleido's architecture, Mirror contracts maintain address mappings across chains for cross-chain contract resolution.
|
|
|
|
**Contract Features:**
|
|
- Cross-chain address mirroring
|
|
- Replay protection
|
|
- Pausability
|
|
- Admin-controlled
|
|
|
|
**To Deploy:**
|
|
```bash
|
|
forge script script/DeployMirrorManager.s.sol \
|
|
--rpc-url $ETH_MAINNET_RPC_URL \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast \
|
|
--verify
|
|
```
|
|
|
|
---
|
|
|
|
#### 2. TwoWayTokenBridgeL1
|
|
|
|
**Contract Details:**
|
|
- **File**: `contracts/bridge/TwoWayTokenBridgeL1.sol`
|
|
- **Purpose**: L1/Main chain side - locks canonical tokens and triggers CCIP message to mint on L2
|
|
- **Deployment Script**: `script/DeployTwoWayBridge.s.sol`
|
|
- **Status**: ❌ **NOT DEPLOYED** to Mainnet
|
|
- **Required Env Vars**:
|
|
- `CCIP_ROUTER` (set)
|
|
- `CCIP_FEE_TOKEN` (LINK token address)
|
|
- `BRIDGE_L1_TOKEN` (canonical token on L1) - **NOT SET**
|
|
|
|
**Contract Features:**
|
|
- Token locking on L1
|
|
- CCIP message sending
|
|
- Destination chain configuration
|
|
- Replay protection
|
|
|
|
---
|
|
|
|
#### 3. TwoWayTokenBridgeL2
|
|
|
|
**Contract Details:**
|
|
- **File**: `contracts/bridge/TwoWayTokenBridgeL2.sol`
|
|
- **Purpose**: L2/secondary chain side - mints mirrored tokens on inbound and burns on outbound
|
|
- **Deployment Script**: `script/DeployTwoWayBridge.s.sol` (deploys both L1 and L2)
|
|
- **Status**: ❌ **NOT DEPLOYED** to Mainnet
|
|
- **Required Env Vars**:
|
|
- `CCIP_ROUTER` (set)
|
|
- `CCIP_FEE_TOKEN` (LINK token address)
|
|
- `BRIDGE_L2_TOKEN` (mintable token on L2) - **NOT SET**
|
|
|
|
**Contract Features:**
|
|
- Token minting on L2
|
|
- Token burning on outbound
|
|
- CCIP message handling
|
|
- Destination chain configuration
|
|
|
|
**To Deploy:**
|
|
```bash
|
|
# Set required environment variables first:
|
|
# BRIDGE_L1_TOKEN=<canonical_token_address>
|
|
# BRIDGE_L2_TOKEN=<mintable_token_address>
|
|
|
|
forge script script/DeployTwoWayBridge.s.sol \
|
|
--rpc-url $ETH_MAINNET_RPC_URL \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast \
|
|
--verify
|
|
```
|
|
|
|
---
|
|
|
|
### ✅ **Tether Contract (Kaleido Pattern)**
|
|
|
|
**Status**: Implemented via **TwoWayTokenBridge** following Kaleido's Tether pattern.
|
|
|
|
**Kaleido Tether Pattern**:
|
|
- In Kaleido's architecture, a "Tether" contract anchors private chain state to a public Ethereum network
|
|
- Stores signed state proofs from the private chain
|
|
- Creates immutable, verifiable records of state
|
|
|
|
**This Implementation**:
|
|
- **TwoWayTokenBridgeL1/L2** implements the Tether-like pattern
|
|
- Synchronizes state between Mainnet (L1) and Chain-138 (L2)
|
|
- Uses CCIP for secure cross-chain messaging
|
|
- Maintains token balance synchronization (lock on L1, mint on L2)
|
|
|
|
**Files**:
|
|
- `contracts/bridge/TwoWayTokenBridgeL1.sol` - L1/Mainnet side
|
|
- `contracts/bridge/TwoWayTokenBridgeL2.sol` - L2/Chain-138 side
|
|
|
|
**See**: `docs/deployment/KALEIDO_TETHER_MIRROR_PATTERN.md` for detailed explanation
|
|
|
|
---
|
|
|
|
## 🔍 Search Methods Used
|
|
|
|
1. **Broadcast Files**: Checked all Foundry broadcast JSON files for Mainnet (chain ID 1)
|
|
2. **.env File**: Searched for contract addresses in environment variables
|
|
3. **Etherscan API**: Queried for contracts created by deployer address
|
|
4. **Codebase Search**: Searched for contract files and deployment scripts
|
|
5. **Documentation**: Reviewed deployment status documents
|
|
|
|
---
|
|
|
|
## 📊 Findings
|
|
|
|
### Contracts Found in Codebase:
|
|
- ✅ MirrorManager.sol - Available
|
|
- ✅ TwoWayTokenBridgeL1.sol - Available
|
|
- ✅ TwoWayTokenBridgeL2.sol - Available
|
|
|
|
### Contracts Deployed to Mainnet:
|
|
- ✅ CCIPWETH9Bridge - Deployed and verified
|
|
- ✅ CCIPWETH10Bridge - Deployed and verified
|
|
- ❌ MirrorManager - **NOT DEPLOYED**
|
|
- ❌ TwoWayTokenBridgeL1 - **NOT DEPLOYED**
|
|
- ❌ TwoWayTokenBridgeL2 - **NOT DEPLOYED**
|
|
|
|
### Missing Environment Variables:
|
|
- `MIRROR_ADMIN` - Required for MirrorManager deployment
|
|
- `BRIDGE_L1_TOKEN` - Required for TwoWayTokenBridgeL1 deployment
|
|
- `BRIDGE_L2_TOKEN` - Required for TwoWayTokenBridgeL2 deployment
|
|
|
|
---
|
|
|
|
## 🚀 Next Steps
|
|
|
|
### To Deploy MirrorManager:
|
|
1. Set `MIRROR_ADMIN` in `.env` (multisig recommended)
|
|
2. Run deployment script
|
|
3. Verify contract on Etherscan
|
|
4. Update `.env` with deployed address
|
|
|
|
### To Deploy TwoWayTokenBridge:
|
|
1. Set `BRIDGE_L1_TOKEN` in `.env` (canonical token address on Mainnet)
|
|
2. Set `BRIDGE_L2_TOKEN` in `.env` (mintable token address on L2/Chain-138)
|
|
3. Ensure `CCIP_ROUTER` and `CCIP_FEE_TOKEN` are set
|
|
4. Run deployment script (deploys both L1 and L2)
|
|
5. Verify contracts on Etherscan
|
|
6. Update `.env` with deployed addresses
|
|
|
|
---
|
|
|
|
## 📝 Notes
|
|
|
|
- All deployment scripts are available and ready to use
|
|
- Contracts are compiled and tested
|
|
- Missing environment variables are blocking deployment
|
|
- No evidence found of MirrorManager or TwoWayTokenBridge being deployed to Mainnet
|
|
- The Etherscan API query for the deployer address did not return additional contracts beyond the two CCIP bridges
|
|
|
|
---
|
|
|
|
**Last Updated**: 2025-12-11
|
|
**Search Performed By**: Automated contract discovery script
|
|
|