108 lines
3.1 KiB
Markdown
108 lines
3.1 KiB
Markdown
|
|
# Task 6: TransactionMirror Verification on Etherscan
|
||
|
|
|
||
|
|
**Date**: 2025-01-18
|
||
|
|
**Status**: ⏳ VERIFICATION COMMAND DOCUMENTED
|
||
|
|
**Priority**: 🟡 MEDIUM
|
||
|
|
|
||
|
|
## Status
|
||
|
|
|
||
|
|
⚠️ **TransactionMirror may need manual Etherscan verification** if auto-verification failed during deployment.
|
||
|
|
|
||
|
|
## Contract Details
|
||
|
|
|
||
|
|
- **Address**: `0x4CF42c4F1dBa748601b8938be3E7ABD732E87cE9`
|
||
|
|
- **Network**: Ethereum Mainnet (Chain ID: 1)
|
||
|
|
- **Explorer**: https://etherscan.io/address/0x4CF42c4F1dBa748601b8938be3E7ABD732E87cE9
|
||
|
|
- **Admin**: `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||
|
|
|
||
|
|
## Verification Status
|
||
|
|
|
||
|
|
**From Deployment Documentation**: Auto-verification may have failed during deployment.
|
||
|
|
|
||
|
|
**Action Required**: Check Etherscan to confirm if contract is verified. If not verified, use manual verification command below.
|
||
|
|
|
||
|
|
## Manual Verification Command
|
||
|
|
|
||
|
|
### Foundry Verification
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /home/intlc/projects/proxmox/smom-dbis-138
|
||
|
|
|
||
|
|
forge verify-contract \
|
||
|
|
--chain-id 1 \
|
||
|
|
--num-of-optimizations 200 \
|
||
|
|
--via-ir \
|
||
|
|
0x4CF42c4F1dBa748601b8938be3E7ABD732E87cE9 \
|
||
|
|
contracts/mirror/TransactionMirror.sol:TransactionMirror \
|
||
|
|
$ETHERSCAN_API_KEY \
|
||
|
|
--constructor-args $(cast abi-encode "constructor(address)" 0x4A666F96fC8764181194447A7dFdb7d471b301C8)
|
||
|
|
```
|
||
|
|
|
||
|
|
### Required Environment Variables
|
||
|
|
|
||
|
|
- `ETHERSCAN_API_KEY` - Etherscan API key
|
||
|
|
|
||
|
|
### Compiler Settings
|
||
|
|
|
||
|
|
- **Solidity Version**: 0.8.19
|
||
|
|
- **Optimizations**: 200 runs
|
||
|
|
- **Via IR**: Yes (required due to "Stack too deep")
|
||
|
|
- **EVM Version**: London (default)
|
||
|
|
|
||
|
|
### Constructor Arguments
|
||
|
|
|
||
|
|
- **Admin Address**: `0x4A666F96fC8764181194447A7dFdb7d471b301C8`
|
||
|
|
|
||
|
|
## Verification Steps
|
||
|
|
|
||
|
|
1. **Check Current Verification Status**:
|
||
|
|
- Visit: https://etherscan.io/address/0x4CF42c4F1dBa748601b8938be3E7ABD732E87cE9
|
||
|
|
- Check if "Contract" tab shows verified source code
|
||
|
|
|
||
|
|
2. **If Not Verified**:
|
||
|
|
- Set `ETHERSCAN_API_KEY` in environment
|
||
|
|
- Run verification command above
|
||
|
|
- Wait for Etherscan verification (usually 30-60 seconds)
|
||
|
|
- Verify on Etherscan that contract is now verified
|
||
|
|
|
||
|
|
3. **If Verification Fails**:
|
||
|
|
- Check compiler settings match deployment
|
||
|
|
- Verify constructor arguments are correct
|
||
|
|
- Check contract source code path
|
||
|
|
- Try verification via Etherscan UI manually
|
||
|
|
|
||
|
|
## Expected Result
|
||
|
|
|
||
|
|
After successful verification:
|
||
|
|
- Contract source code visible on Etherscan
|
||
|
|
- Contract functions can be read/called via Etherscan
|
||
|
|
- Contract events can be viewed
|
||
|
|
- Contract ABI available
|
||
|
|
|
||
|
|
## Alternative: Etherscan UI Verification
|
||
|
|
|
||
|
|
If Foundry verification fails, use Etherscan UI:
|
||
|
|
|
||
|
|
1. Go to contract address on Etherscan
|
||
|
|
2. Click "Contract" tab
|
||
|
|
3. Click "Verify and Publish"
|
||
|
|
4. Select:
|
||
|
|
- Compiler Type: Solidity (Single file) or Standard JSON Input
|
||
|
|
- Compiler Version: 0.8.19
|
||
|
|
- Open Source License: MIT
|
||
|
|
- Optimization: Yes, 200
|
||
|
|
5. Enter constructor arguments: `0000000000000000000000004a666f96fc8764181194447a7dfdb7d471b301c8`
|
||
|
|
6. Paste contract source code
|
||
|
|
7. Submit verification
|
||
|
|
|
||
|
|
## Next Steps
|
||
|
|
|
||
|
|
1. **Check Etherscan** to confirm verification status
|
||
|
|
2. **Run verification command** if not verified
|
||
|
|
3. **Verify success** on Etherscan
|
||
|
|
4. **Update documentation** with verification status
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Status**: ⏳ **VERIFICATION COMMAND READY - AWAITING EXECUTION**
|