Files
smom-dbis-138/docs/deployment/MIRROR_TWOWAY_CONTRACTS_SEARCH.md
T
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- 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.
2025-12-12 14:57:48 -08:00

6.2 KiB

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
CCIPWETH10Bridge 0x8078A09637e47Fa5Ed34F626046Ea2094a5CDE5e ✅ VERIFIED View

⏳ 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:

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:

# 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