Files
explorer-monorepo/docs/DEPLOYMENT_SCRIPT_FIX.md

106 lines
2.5 KiB
Markdown

# Deployment Script Fix
**Date**: 2025-01-12
**Issue**: Deployment scripts running in dry-run mode
**Status**: ✅ **FIXED**
---
## Problem
The deployment scripts were reporting "SUCCESS" but no transactions were actually being broadcast to the network. The scripts were running in dry-run/simulation mode by default.
### Root Cause
1. **forge script**: Required `--broadcast` flag (was present but may not have been effective)
2. **forge create**: Missing `--broadcast` flag entirely
3. No verification that broadcast actually occurred
---
## Solution
### Fix 1: Added --broadcast to forge create
**File**: `scripts/force-deploy-link.sh`
**Method 2** (forge create) now includes `--broadcast`:
```bash
forge create src/MockLinkToken.sol:MockLinkToken \
--rpc-url "$RPC_URL" \
--private-key "$PRIVATE_KEY" \
--gas-price "$FORCE_GAS" \
--legacy \
--broadcast \ # ← ADDED
2>&1
```
### Fix 2: Added Broadcast Verification
**Method 1** (forge script) now includes verification:
```bash
# Verify broadcast actually happened
if echo "$DEPLOY_OUTPUT" | grep -qi "dry run\|simulation only\|not broadcasting"; then
echo "⚠️ WARNING: Script may have run in dry-run mode despite --broadcast flag"
echo "Output contains dry-run indicators"
fi
```
---
## Direct Deployment Command
For immediate deployment, use:
```bash
forge create src/MockLinkToken.sol:MockLinkToken \
--rpc-url $RPC_URL \
--private-key $PRIVATE_KEY \
--gas-price 20000000000 \
--legacy \
--broadcast
```
**Required Flags**:
- `--rpc-url`: Network RPC endpoint
- `--private-key`: Deployer private key
- `--gas-price`: Gas price in wei (20 gwei = 20000000000)
- `--legacy`: Use legacy transaction format
- `--broadcast`: **CRITICAL** - Actually broadcast the transaction
---
## Verification
After deployment, verify:
1. **Check contract bytecode**:
```bash
cast code <DEPLOYED_ADDRESS> --rpc-url $RPC_URL
```
2. **Check token functions**:
```bash
cast call <DEPLOYED_ADDRESS> "name()" --rpc-url $RPC_URL
cast call <DEPLOYED_ADDRESS> "symbol()" --rpc-url $RPC_URL
```
3. **Check block explorer**:
- Visit: https://explorer.d-bis.org/address/<DEPLOYED_ADDRESS>
- Verify contract exists and is confirmed
---
## Status
✅ **Script Fixed**: `force-deploy-link.sh` now includes `--broadcast` for all methods
**Verification Added**: Script now checks for dry-run indicators
**Direct Command**: Provided for immediate deployment
---
**Last Updated**: 2025-01-12