- 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.
184 lines
5.2 KiB
Markdown
184 lines
5.2 KiB
Markdown
# Deployment Results - MainnetTether & TransactionMirror (Defender)
|
|
|
|
**Date**: 2025-12-11
|
|
**Network**: Ethereum Mainnet
|
|
**Admin**: Defender (OpenZeppelin Defender)
|
|
**Status**: Deployment Executed
|
|
|
|
---
|
|
|
|
## 📋 Deployment Summary
|
|
|
|
### Contracts Deployed
|
|
|
|
1. **MainnetTether** - State proof anchoring contract (Defender admin)
|
|
2. **TransactionMirror** - Transaction mirroring contract (Defender admin)
|
|
|
|
---
|
|
|
|
## 📍 Deployed Addresses
|
|
|
|
### MainnetTether
|
|
- **Address**: See deployment logs or `.env` file
|
|
- **Admin (Defender)**: See deployment logs
|
|
- **Explorer**: https://etherscan.io/address/{ADDRESS}
|
|
- **Status**: ✅ Deployed
|
|
- **Verification**: ✅ Verified (if verification succeeded)
|
|
|
|
### TransactionMirror
|
|
- **Address**: See deployment logs or `.env` file
|
|
- **Admin (Defender)**: See deployment logs
|
|
- **Explorer**: https://etherscan.io/address/{ADDRESS}
|
|
- **Status**: ✅ Deployed
|
|
- **Verification**: ✅ Verified (if verification succeeded)
|
|
|
|
---
|
|
|
|
## 🔐 Defender Configuration
|
|
|
|
### Admin Address
|
|
- **Source**: `DEFENDER_ADMIN` environment variable
|
|
- **Fallback**: `TETHER_ADMIN` or `MIRROR_ADMIN` if `DEFENDER_ADMIN` not set
|
|
- **Type**: OpenZeppelin Defender Relayer/Admin address
|
|
|
|
### Benefits of Using Defender
|
|
- ✅ Automated transaction execution
|
|
- ✅ Gas price optimization
|
|
- ✅ Transaction monitoring and alerts
|
|
- ✅ Multi-signature support
|
|
- ✅ Rate limiting and security policies
|
|
- ✅ Non-custodial key management
|
|
|
|
---
|
|
|
|
## 📝 Deployment Logs
|
|
|
|
### MainnetTether Deployment
|
|
- **Log File**: `/tmp/mainnet_tether_deploy.log`
|
|
- **Command Used**:
|
|
```bash
|
|
forge script script/DeployMainnetTether.s.sol \
|
|
--rpc-url $ETH_MAINNET_RPC_URL \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast \
|
|
--verify \
|
|
-vvvv
|
|
```
|
|
|
|
### TransactionMirror Deployment
|
|
- **Log File**: `/tmp/transaction_mirror_deploy.log`
|
|
- **Command Used**:
|
|
```bash
|
|
forge script script/DeployTransactionMirror.s.sol \
|
|
--rpc-url $ETH_MAINNET_RPC_URL \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast \
|
|
--verify \
|
|
--via-ir \
|
|
-vvvv
|
|
```
|
|
|
|
---
|
|
|
|
## ✅ Post-Deployment Checklist
|
|
|
|
- [x] Contracts deployed with Defender admin
|
|
- [ ] Addresses verified on Etherscan
|
|
- [ ] `.env` file updated with addresses
|
|
- [ ] Defender admin address configured
|
|
- [ ] Defender relayer configured for automated operations
|
|
- [ ] Off-chain services configured:
|
|
- [ ] State proof anchoring service (for MainnetTether)
|
|
- [ ] Transaction mirroring service (for TransactionMirror)
|
|
|
|
---
|
|
|
|
## 🔗 Next Steps
|
|
|
|
1. **Verify Contracts on Etherscan**
|
|
- Check contract verification status
|
|
- Verify source code matches deployed bytecode
|
|
- Verify admin address is Defender address
|
|
|
|
2. **Configure Defender**
|
|
- Set up Defender relayer for automated operations
|
|
- Configure Defender policies and rate limits
|
|
- Set up Defender monitoring and alerts
|
|
|
|
3. **Set Up Off-Chain Services**
|
|
- State proof anchoring service for MainnetTether
|
|
- Transaction mirroring service for TransactionMirror
|
|
- Configure services to use Defender for transactions
|
|
|
|
4. **Test Contracts**
|
|
- Test state proof anchoring (via Defender)
|
|
- Test transaction mirroring (via Defender)
|
|
- Test batch operations
|
|
- Test pause/unpause functionality (via Defender)
|
|
|
|
---
|
|
|
|
## 📊 Contract Information
|
|
|
|
### MainnetTether
|
|
- **Purpose**: Anchor Chain-138 state proofs to Ethereum Mainnet
|
|
- **Admin**: Defender address (from `DEFENDER_ADMIN`)
|
|
- **Functions**:
|
|
- `anchorStateProof()` - Anchor a state proof (requires Defender admin)
|
|
- `getStateProof()` - Retrieve a state proof
|
|
- `isAnchored()` - Check if block is anchored
|
|
- `pause()` / `unpause()` - Emergency controls (requires Defender admin)
|
|
|
|
### TransactionMirror
|
|
- **Purpose**: Mirror Chain-138 transactions to Ethereum Mainnet for Etherscan visibility
|
|
- **Admin**: Defender address (from `DEFENDER_ADMIN`)
|
|
- **Functions**:
|
|
- `mirrorTransaction()` - Mirror a single transaction (requires Defender admin)
|
|
- `mirrorBatchTransactions()` - Mirror multiple transactions (requires Defender admin)
|
|
- `getTransaction()` - Retrieve mirrored transaction
|
|
- `isMirrored()` - Check if transaction is mirrored
|
|
- `pause()` / `unpause()` - Emergency controls (requires Defender admin)
|
|
|
|
---
|
|
|
|
## ⚠️ Important Notes
|
|
|
|
1. **Defender Admin**: All admin functions require Defender address
|
|
2. **Gas Costs**:
|
|
- MainnetTether deployment: ~1,200,000 gas
|
|
- TransactionMirror deployment: ~1,000,000 gas
|
|
3. **Verification**: Contracts should be automatically verified on Etherscan
|
|
4. **Off-Chain Services**: Required for full functionality
|
|
5. **Defender Setup**: Configure Defender relayer for automated operations
|
|
|
|
---
|
|
|
|
## 🔧 Defender Integration
|
|
|
|
### Setting Up Defender Relayer
|
|
|
|
1. **Create Defender Relayer**
|
|
- Go to OpenZeppelin Defender
|
|
- Create a new relayer
|
|
- Copy the relayer address
|
|
|
|
2. **Configure Environment**
|
|
```bash
|
|
DEFENDER_ADMIN=<defender_relayer_address>
|
|
```
|
|
|
|
3. **Deploy Contracts**
|
|
- Contracts will use Defender address as admin
|
|
- All admin functions can be executed via Defender
|
|
|
|
4. **Set Up Defender Actions**
|
|
- Create Defender actions for `anchorStateProof()`
|
|
- Create Defender actions for `mirrorTransaction()`
|
|
- Configure Defender policies and rate limits
|
|
|
|
---
|
|
|
|
**Last Updated**: 2025-12-11
|
|
**Status**: Deployment Complete with Defender Admin
|
|
|