143 lines
3.1 KiB
Markdown
143 lines
3.1 KiB
Markdown
|
|
# Defender Deployment - Ready Status
|
||
|
|
|
||
|
|
**Date**: 2025-12-11
|
||
|
|
**Status**: ✅ Scripts Updated - Configuration Needed
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ What's Been Done
|
||
|
|
|
||
|
|
### Deployment Scripts Updated
|
||
|
|
|
||
|
|
Both deployment scripts have been updated to use Defender:
|
||
|
|
|
||
|
|
1. **DeployMainnetTether.s.sol**
|
||
|
|
- Now checks for `DEFENDER_ADMIN` first
|
||
|
|
- Falls back to `TETHER_ADMIN` if Defender not set
|
||
|
|
- Logs Defender admin address on deployment
|
||
|
|
|
||
|
|
2. **DeployTransactionMirror.s.sol**
|
||
|
|
- Now checks for `DEFENDER_ADMIN` first
|
||
|
|
- Falls back to `MIRROR_ADMIN` if Defender not set
|
||
|
|
- Logs Defender admin address on deployment
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚠️ Configuration Required
|
||
|
|
|
||
|
|
### 1. Set Defender Admin Address
|
||
|
|
|
||
|
|
Add to `.env` file:
|
||
|
|
```bash
|
||
|
|
DEFENDER_ADMIN=0x... # Your Defender relayer address
|
||
|
|
```
|
||
|
|
|
||
|
|
**How to get Defender address:**
|
||
|
|
1. Go to OpenZeppelin Defender: https://defender.openzeppelin.com/
|
||
|
|
2. Create or select a relayer
|
||
|
|
3. Copy the relayer address
|
||
|
|
4. Add to `.env` as `DEFENDER_ADMIN`
|
||
|
|
|
||
|
|
### 2. Update RPC URL
|
||
|
|
|
||
|
|
The current RPC URL has a placeholder. Update in `.env`:
|
||
|
|
```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 Configuration)
|
||
|
|
|
||
|
|
Once `.env` is configured:
|
||
|
|
|
||
|
|
### 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
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ Verification Steps
|
||
|
|
|
||
|
|
After updating `.env`:
|
||
|
|
|
||
|
|
1. **Test RPC Connection:**
|
||
|
|
```bash
|
||
|
|
cast block-number --rpc-url $ETH_MAINNET_RPC_URL
|
||
|
|
```
|
||
|
|
Should return current block number.
|
||
|
|
|
||
|
|
2. **Verify Defender Address:**
|
||
|
|
```bash
|
||
|
|
echo $DEFENDER_ADMIN
|
||
|
|
```
|
||
|
|
Should show your Defender relayer address.
|
||
|
|
|
||
|
|
3. **Check Deployer Balance:**
|
||
|
|
```bash
|
||
|
|
cast balance $(cast wallet address $PRIVATE_KEY) --rpc-url $ETH_MAINNET_RPC_URL
|
||
|
|
```
|
||
|
|
Should show sufficient ETH for gas.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📝 Environment Variables Summary
|
||
|
|
|
||
|
|
Required in `.env`:
|
||
|
|
- ✅ `PRIVATE_KEY` - Already set
|
||
|
|
- ✅ `ETH_MAINNET_RPC_URL` - Needs actual API key (currently has placeholder)
|
||
|
|
- ✅ `ETHERSCAN_API_KEY` - Already set
|
||
|
|
- ⚠️ `DEFENDER_ADMIN` - Needs to be added
|
||
|
|
|
||
|
|
Optional (fallback):
|
||
|
|
- `TETHER_ADMIN` - Used if `DEFENDER_ADMIN` not set
|
||
|
|
- `MIRROR_ADMIN` - Used if `DEFENDER_ADMIN` not set
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔐 Defender Benefits
|
||
|
|
|
||
|
|
Using Defender as admin provides:
|
||
|
|
- ✅ Automated transaction execution
|
||
|
|
- ✅ Gas price optimization
|
||
|
|
- ✅ Transaction monitoring and alerts
|
||
|
|
- ✅ Multi-signature support
|
||
|
|
- ✅ Rate limiting and security policies
|
||
|
|
- ✅ Non-custodial key management
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📄 Related Documentation
|
||
|
|
|
||
|
|
- `DEPLOYMENT_RESULTS_DEFENDER.md` - Deployment results (after deployment)
|
||
|
|
- `DEPLOYMENT_ISSUES_AND_FIXES.md` - Troubleshooting guide
|
||
|
|
- `FINAL_PRE_DEPLOYMENT_CHECKLIST.md` - Pre-deployment checklist
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Last Updated**: 2025-12-11
|
||
|
|
**Status**: Scripts Ready - Configuration Needed
|
||
|
|
|