- 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.
157 lines
3.5 KiB
Markdown
157 lines
3.5 KiB
Markdown
# EOA Deployment - Ready Status
|
|
|
|
**Date**: 2025-12-11
|
|
**Status**: ✅ Scripts Ready - RPC Configuration Needed
|
|
|
|
---
|
|
|
|
## ✅ What's Ready
|
|
|
|
### Deployment Scripts Updated
|
|
|
|
Both deployment scripts have been updated to support EOA (Externally Owned Account) admin:
|
|
|
|
1. **DeployMainnetTether.s.sol**
|
|
- Uses `TETHER_ADMIN` from `.env` if set
|
|
- Falls back to deployer address if not set
|
|
- No multisig required
|
|
|
|
2. **DeployTransactionMirror.s.sol**
|
|
- Uses `MIRROR_ADMIN` from `.env` if set
|
|
- Falls back to deployer address if not set
|
|
- No multisig required
|
|
|
|
### Admin Configuration
|
|
|
|
- **Type**: EOA (Externally Owned Account)
|
|
- **Default**: Deployer address (if `TETHER_ADMIN`/`MIRROR_ADMIN` not set)
|
|
- **Custom**: Set `TETHER_ADMIN`/`MIRROR_ADMIN` in `.env` for different admin
|
|
|
|
---
|
|
|
|
## ⚠️ Remaining Issue
|
|
|
|
### RPC Authentication Error
|
|
|
|
**Error**: `HTTP error 401 with body: Must be authenticated!`
|
|
|
|
**Cause**: `ETH_MAINNET_RPC_URL` contains placeholder `YOUR_KEY` instead of actual API key
|
|
|
|
**Fix**: Update `.env` file:
|
|
```bash
|
|
ETH_MAINNET_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/YOUR_ACTUAL_API_KEY
|
|
```
|
|
|
|
Replace `YOUR_ACTUAL_API_KEY` with your real Alchemy API key.
|
|
|
|
---
|
|
|
|
## 🚀 Deployment Commands (After RPC Fix)
|
|
|
|
Once `ETH_MAINNET_RPC_URL` is updated with actual API key:
|
|
|
|
### Deploy MainnetTether
|
|
```bash
|
|
cd /home/intlc/projects/smom-dbis-138
|
|
source .env
|
|
|
|
forge script script/DeployMainnetTether.s.sol \
|
|
--rpc-url $ETH_MAINNET_RPC_URL \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast \
|
|
--verify \
|
|
-vvvv
|
|
```
|
|
|
|
### Deploy TransactionMirror
|
|
```bash
|
|
forge script script/DeployTransactionMirror.s.sol \
|
|
--rpc-url $ETH_MAINNET_RPC_URL \
|
|
--private-key $PRIVATE_KEY \
|
|
--broadcast \
|
|
--verify \
|
|
--via-ir \
|
|
-vvvv
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 Configuration Summary
|
|
|
|
### Required in `.env`
|
|
- ✅ `PRIVATE_KEY` - Already set
|
|
- ⚠️ `ETH_MAINNET_RPC_URL` - Needs actual API key (currently has placeholder)
|
|
- ✅ `ETHERSCAN_API_KEY` - Already set
|
|
|
|
### Optional in `.env`
|
|
- `TETHER_ADMIN` - Custom admin address (defaults to deployer if not set)
|
|
- `MIRROR_ADMIN` - Custom admin address (defaults to deployer if not set)
|
|
|
|
---
|
|
|
|
## ✅ Verification Steps
|
|
|
|
After updating RPC URL:
|
|
|
|
1. **Test RPC Connection:**
|
|
```bash
|
|
cast block-number --rpc-url $ETH_MAINNET_RPC_URL
|
|
```
|
|
Should return current block number.
|
|
|
|
2. **Check Deployer Balance:**
|
|
```bash
|
|
cast balance $(cast wallet address $PRIVATE_KEY) --rpc-url $ETH_MAINNET_RPC_URL
|
|
```
|
|
Should show sufficient ETH for gas.
|
|
|
|
3. **Deploy Contracts:**
|
|
Run deployment commands above.
|
|
|
|
---
|
|
|
|
## 🔐 Admin Address
|
|
|
|
### Default Behavior
|
|
|
|
If `TETHER_ADMIN` and `MIRROR_ADMIN` are not set:
|
|
- **Admin**: Deployer address (`0x4A666F96fC8764181194447A7dFdb7d471b301C8`)
|
|
- **Type**: EOA (Externally Owned Account)
|
|
- **Control**: Single private key
|
|
|
|
### Custom Admin
|
|
|
|
To use a different admin address:
|
|
```bash
|
|
TETHER_ADMIN=0x... # Your admin address
|
|
MIRROR_ADMIN=0x... # Can be same or different
|
|
```
|
|
|
|
---
|
|
|
|
## 📝 Post-Deployment
|
|
|
|
After successful deployment:
|
|
|
|
1. **Verify Contracts on Etherscan**
|
|
2. **Test Admin Functions**
|
|
3. **Set Up Off-Chain Services**
|
|
4. **Document Admin Address**
|
|
5. **Secure Admin Private Key**
|
|
|
|
---
|
|
|
|
## ⚠️ Security Notes
|
|
|
|
- **EOA Admin**: Single private key controls all admin functions
|
|
- **Recommendation**: Use hardware wallet for admin private key
|
|
- **Storage**: Never commit private keys to git
|
|
- **Recovery**: Document recovery procedures
|
|
- **Upgrade Path**: Can transfer admin to multisig later if needed
|
|
|
|
---
|
|
|
|
**Last Updated**: 2025-12-11
|
|
**Status**: Scripts Ready - RPC Configuration Needed
|
|
|