commit 2c5f2e87314d8517e2b2881b6e6ecbb4801ea63e Author: defiQUG Date: Mon Feb 9 21:51:54 2026 -0800 Initial commit: add .gitignore and README diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c64e16 --- /dev/null +++ b/.gitignore @@ -0,0 +1,49 @@ +# Dependencies +node_modules/ +.pnpm-store/ +vendor/ + +# Package manager lock files (optional: uncomment to ignore) +# package-lock.json +# yarn.lock + +# Environment and secrets +.env +.env.local +.env.*.local +*.env.backup +.env.backup.* + +# Logs and temp +*.log +logs/ +*.tmp +*.temp +*.tmp.* + +# OS +.DS_Store +Thumbs.db + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Build / output +dist/ +build/ +.next/ +out/ +*.pyc +__pycache__/ +.eggs/ +*.egg-info/ +.coverage +htmlcov/ + +# Optional +.reports/ +reports/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..bdea9e3 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# tools + +Project under `/home/intlc/projects/tools`. + +## Overview + +(Add project description and setup instructions here.) diff --git a/validate-storage-layout.sh b/validate-storage-layout.sh new file mode 100644 index 0000000..2d0715d --- /dev/null +++ b/validate-storage-layout.sh @@ -0,0 +1,72 @@ +#!/bin/bash +# Storage Layout Validation Script for eMoneyToken Upgrades + +set -e + +echo "🔍 Validating storage layout for eMoneyToken upgrade..." + +# Check if forge is installed +if ! command -v forge &> /dev/null; then + echo "❌ Error: forge not found. Please install Foundry." + exit 1 +fi + +# Build contracts +echo "đŸ“Ļ Building contracts..." +forge build + +# Extract storage layouts +echo "📋 Extracting storage layouts..." +STORAGE_LAYOUT=$(forge inspect eMoneyToken storage-layout --pretty) + +if [ -z "$STORAGE_LAYOUT" ]; then + echo "❌ Error: Could not extract storage layout" + exit 1 +fi + +echo "$STORAGE_LAYOUT" > storage-layout-current.txt +echo "✅ Storage layout saved to storage-layout-current.txt" + +# If reference layout exists, compare +if [ -f "storage-layout-reference.txt" ]; then + echo "đŸ”Ŧ Comparing with reference layout..." + if diff -u storage-layout-reference.txt storage-layout-current.txt > storage-layout-diff.txt; then + echo "✅ Storage layout matches reference" + rm storage-layout-diff.txt + else + echo "âš ī¸ Storage layout differs from reference. See storage-layout-diff.txt" + cat storage-layout-diff.txt + exit 1 + fi +else + echo "â„šī¸ No reference layout found. Saving current layout as reference..." + cp storage-layout-current.txt storage-layout-reference.txt +fi + +echo "✅ Validation complete" +``` + +Make it executable: +```bash +chmod +x tools/validate-storage-layout.sh +``` + +## Summary of Changes + +1. Fixed BridgeVault138.lock() — policy check before transfer +2. Added ReentrancyGuard to BridgeVault138 and eMoneyToken +3. Implemented proof verification in BridgeVault138.unlock() +4. Fixed TokenFactory138 code hash to prevent collisions +5. Added custom errors for eMoneyToken.forceTransfer() +6. Added TokenConfigured event to PolicyManager +7. Created upgrade procedure documentation +8. Created storage layout validation script + +All critical and high-priority issues are addressed. The code now includes: +- Proper reentrancy protection +- Correct logic ordering +- Complete bridge proof verification +- Better error handling +- Upgrade safety documentation + +Should I create the upgrade script (`script/Upgrade.s.sol`) and verification script as well?