refactor(archive): move historical contracts and adapters to archive directory

- Archived multiple non-EVM adapters (Algorand, Hedera, Tron, TON, Cosmos, Solana) and compliance contracts (IndyVerifier) to `archive/solidity/contracts/`.
- Updated documentation to reflect the historical status of archived components.
- Adjusted `foundry.toml` and `README.md` for clarity on historical dependencies and configurations.
- Enhanced Makefile and package.json scripts for improved contract testing and building processes.
- Removed obsolete contracts (AlltraCustomBridge, CommodityCCIPBridge, ISO4217WCCIPBridge, VaultBridgeAdapter) from the main directory.
- Updated implementation reports to indicate archived status for various components.
This commit is contained in:
defiQUG
2026-04-12 18:21:05 -07:00
parent 8ec6af94d5
commit 2b52cc6e32
146 changed files with 2010 additions and 423 deletions

View File

@@ -3,7 +3,11 @@
set -e
cd "$(dirname "$0")/../.."
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
source "$SCRIPT_DIR/../lib/init.sh"
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
echo "=== Compiling and Testing Mainnet Contracts ==="

View File

@@ -3,7 +3,11 @@
set -e
cd "$(dirname "$0")/../.."
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
source "$SCRIPT_DIR/../lib/init.sh"
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
# Color codes

View File

@@ -8,6 +8,7 @@ set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
FORGE_SCOPE_RUNNER=(bash "$PROJECT_ROOT/scripts/forge/scope.sh")
# Load .env via dotenv (RPC CR/LF trim). Fallback: raw source.
if [[ -f "$SCRIPT_DIR/../lib/deployment/dotenv.sh" ]]; then
# shellcheck disable=SC1090
@@ -65,7 +66,7 @@ run_ccip_remaining_mainnets() {
continue
fi
echo -e "${YELLOW}DeployAll to $name (chain $chain_id)...${NC}"
forge script script/DeployAll.s.sol:DeployAll \
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployAll.s.sol:DeployAll \
--rpc-url "$rpc" --chain-id "$chain_id" --private-key "$PRIVATE_KEY" \
--broadcast --slow -vvv || echo -e "${RED}$name DeployAll failed${NC}"
echo ""
@@ -78,12 +79,12 @@ run_trustless() {
echo -e "${YELLOW}=== Trustless Bridge (Chain 138 + Ethereum) ===${NC}"
require_env PRIVATE_KEY RPC_URL_138 || return 1
echo "Deploying Trustless (Lockbox) on Chain 138..."
forge script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge \
"${FORGE_SCOPE_RUNNER[@]}" script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge \
--rpc-url "$RPC_URL_138" --broadcast --via-ir --private-key "$PRIVATE_KEY" -vvv || true
require_env ETHEREUM_MAINNET_RPC || return 1
MAINNET_RPC=$(ensure_rpc "$ETHEREUM_MAINNET_RPC")
echo "Deploying Trustless (BondManager, ChallengeManager, LP, Inbox, SwapRouter, Coordinator) on Ethereum..."
forge script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge \
"${FORGE_SCOPE_RUNNER[@]}" script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge \
--rpc-url "$MAINNET_RPC" --broadcast --via-ir --private-key "$PRIVATE_KEY" \
${ETHERSCAN_API_KEY:+--verify --etherscan-api-key "$ETHERSCAN_API_KEY"} -vvv || true
echo -e "${GREEN}Trustless phase done.${NC}"
@@ -93,7 +94,7 @@ run_trustless() {
run_oracle() {
echo -e "${YELLOW}=== Oracle (Chain 138) ===${NC}"
require_env PRIVATE_KEY RPC_URL_138 || return 1
forge script script/DeployOracle.s.sol:DeployOracle \
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployOracle.s.sol:DeployOracle \
--rpc-url "$RPC_URL_138" --broadcast --private-key "$PRIVATE_KEY" \
--with-gas-price "${GAS_PRICE_138:-1000000000}" --legacy -vvv || true
echo -e "${GREEN}Oracle phase done.${NC}"
@@ -105,7 +106,7 @@ run_mapper() {
require_env PRIVATE_KEY || return 1
if [ -n "${RPC_URL_138:-}" ]; then
echo "Deploying AddressMapper on Chain 138..."
forge script script/DeployAddressMapper.s.sol:DeployAddressMapper \
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployAddressMapper.s.sol:DeployAddressMapper \
--rpc-url "$RPC_URL_138" --broadcast --private-key "$PRIVATE_KEY" \
--with-gas-price "${GAS_PRICE_138:-1000000000}" --legacy -vvv || true
fi
@@ -116,7 +117,7 @@ run_mapper() {
[ -z "$rpc" ] && continue
rpc=$(ensure_rpc "$rpc")
echo "Deploying AddressMapperEmpty on chain $chain_id..."
forge script script/DeployAddressMapperOtherChain.s.sol:DeployAddressMapperOtherChain \
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployAddressMapperOtherChain.s.sol:DeployAddressMapperOtherChain \
--rpc-url "$rpc" --chain-id "$chain_id" --broadcast --private-key "$PRIVATE_KEY" -vvv || true
done
echo -e "${GREEN}Mapper phase done.${NC}"
@@ -128,7 +129,7 @@ run_pmm() {
require_env PRIVATE_KEY RPC_URL_138 || return 1
if [ -z "${DODO_PMM_INTEGRATION:-}" ] && [ -n "${DODO_VENDING_MACHINE_ADDRESS:-}" ]; then
echo "Deploying DODOPMMIntegration on Chain 138..."
forge script script/dex/DeployDODOPMMIntegration.s.sol:DeployDODOPMMIntegration \
"${FORGE_SCOPE_RUNNER[@]}" script script/dex/DeployDODOPMMIntegration.s.sol:DeployDODOPMMIntegration \
--rpc-url "$RPC_URL_138" --broadcast --private-key "$PRIVATE_KEY" \
--with-gas-price "${GAS_PRICE_138:-1000000000}" --legacy -vvv || true
else
@@ -136,7 +137,7 @@ run_pmm() {
fi
if [ -n "${DODO_PMM_INTEGRATION:-}" ] && [ -n "${XAU_ADDRESS:-}" ]; then
echo "Creating XAU-anchored pools..."
forge script script/dex/DeployPrivatePoolRegistryAndPools.s.sol:DeployPrivatePoolRegistryAndPools \
"${FORGE_SCOPE_RUNNER[@]}" script script/dex/DeployPrivatePoolRegistryAndPools.s.sol:DeployPrivatePoolRegistryAndPools \
--rpc-url "$RPC_URL_138" --broadcast --private-key "$PRIVATE_KEY" \
--with-gas-price "${GAS_PRICE_138:-1000000000}" --legacy -vvv || true
fi

View File

@@ -154,7 +154,7 @@ deploy_contract() {
log_warn "Deploying ${contract_name}..."
# Run deployment script
local output=$(forge script "$script_name" \
local output=$(forge_scoped script "$script_name" \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -220,7 +220,7 @@ if [ -z "$CCIP_ROUTER" ] || [ "$CCIP_ROUTER" = "0x000000000000000000000000000000
DATA_FEE_PER_BYTE=${CCIP_DATA_FEE_PER_BYTE:-"1000000000"} # 1 gwei per byte
# Deploy CCIP Router
CCIP_ROUTER_ADDRESS=$(forge script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
CCIP_ROUTER_ADDRESS=$(forge_scoped script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
--sig "run(address,uint256,uint256)" "$CCIP_FEE_TOKEN" "$BASE_FEE" "$DATA_FEE_PER_BYTE" \
--rpc-url "$RPC_URL" \
--broadcast \
@@ -373,4 +373,3 @@ ORACLE_AGGREGATOR_ADDRESS=$ORACLE_ADDRESS
EOF
log_success "Deployment addresses saved to: ${DEPLOYMENT_FILE}"

View File

@@ -95,34 +95,34 @@ echo ""
# Phase 1: Phased core (registry + governance)
run_phase 1 "Phased core (01_DeployCore)" "UNIVERSAL_ASSET_REGISTRY" \
"forge script script/deploy/01_DeployCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/01_DeployCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 2: Phased bridges (CCIP bridge + orchestrator)
run_phase 2 "Phased bridges (02_DeployBridges)" "UNIVERSAL_CCIP_BRIDGE" \
"forge script script/deploy/02_DeployBridges.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/02_DeployBridges.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 3: Channel managers
run_phase 3 "PaymentChannelManager" "PAYMENT_CHANNEL_MANAGER" \
"forge script script/DeployPaymentChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/DeployPaymentChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
run_phase 3 "GenericStateChannelManager" "GENERIC_STATE_CHANNEL_MANAGER" \
"forge script script/DeployGenericStateChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/DeployGenericStateChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 4: Deterministic core (CREATE2)
run_phase 4 "Deterministic core (DeployDeterministicCore)" "CREATE2_FACTORY" \
"forge script script/deploy/DeployDeterministicCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/DeployDeterministicCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 5: Vault system
run_phase 5 "Vault system (DeployVaultSystem)" "VAULT_FACTORY" \
"forge script script/deploy/vault/DeployVaultSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/vault/DeployVaultSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 6: Reserve system (requires TOKEN_FACTORY in .env)
run_phase 6 "Reserve system (DeployReserveSystem)" "RESERVE_SYSTEM" \
"forge script script/reserve/DeployReserveSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/reserve/DeployReserveSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 7: Trustless bridge (Lockbox138 on Chain 138)
run_phase 7 "Trustless bridge (Lockbox138)" "LOCKBOX_138" \
"forge script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
echo ""
echo "============================================"

View File

@@ -9,6 +9,7 @@ set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../lib/init.sh"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
FORGE_SCOPE_RUNNER=(bash "${PROJECT_ROOT}/scripts/forge/scope.sh")
# Load .env via dotenv (RPC CR/LF trim). Fallback: raw source.
if [[ -f "$SCRIPT_DIR/../lib/deployment/dotenv.sh" ]]; then
# shellcheck disable=SC1090
@@ -237,7 +238,7 @@ deploy_contracts() {
# Deploy WETH
log "Deploying WETH..."
WETH_ADDRESS=$(forge script script/DeployWETH.s.sol \
WETH_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/DeployWETH.s.sol \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -253,7 +254,7 @@ deploy_contracts() {
# Deploy Multicall individually (if not using Deploy.s.sol)
if [ -z "$MULTICALL_ADDRESS" ] || [ "$MULTICALL_ADDRESS" = "null" ]; then
log "Deploying Multicall..."
DEPLOY_OUTPUT=$(forge script script/DeployMulticall.s.sol \
DEPLOY_OUTPUT=$("${FORGE_SCOPE_RUNNER[@]}" script script/DeployMulticall.s.sol \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -274,7 +275,7 @@ deploy_contracts() {
# Deploy Oracle Aggregator individually (if not using Deploy.s.sol)
if [ -z "$ORACLE_ADDRESS" ] || [ "$ORACLE_ADDRESS" = "null" ]; then
log "Deploying Oracle Aggregator..."
DEPLOY_OUTPUT=$(forge script script/DeployOracle.s.sol \
DEPLOY_OUTPUT=$("${FORGE_SCOPE_RUNNER[@]}" script script/DeployOracle.s.sol \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -308,7 +309,7 @@ deploy_contracts() {
# Deploy CCIP Router (optional)
if [ -f "${PROJECT_ROOT}/script/DeployCCIPRouter.s.sol" ]; then
log "Deploying CCIP Router..."
DEPLOY_OUTPUT=$(forge script script/DeployCCIPRouter.s.sol \
DEPLOY_OUTPUT=$("${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPRouter.s.sol \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -560,4 +561,3 @@ main() {
# Run main function
main "$@"

View File

@@ -10,6 +10,9 @@ YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
FORGE_SCOPE_RUNNER=(bash "$PROJECT_ROOT/scripts/forge/scope.sh")
RPC_URL="${CHAIN_138_RPC_URL:-http://localhost:8545}"
PRIVATE_KEY="${DEPLOYER_PRIVATE_KEY}"
ADMIN_ADDRESS="${ADMIN_ADDRESS}"
@@ -30,7 +33,7 @@ echo "Admin Address: $ADMIN_ADDRESS"
# Deploy contracts
echo -e "${YELLOW}Deploying BridgeRegistry...${NC}"
REGISTRY_ADDRESS=$(forge script script/bridge/interop/DeployBridgeRegistry.s.sol \
REGISTRY_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/DeployBridgeRegistry.s.sol \
--rpc-url "$RPC_URL" \
--private-key "$PRIVATE_KEY" \
--broadcast \
@@ -39,7 +42,7 @@ REGISTRY_ADDRESS=$(forge script script/bridge/interop/DeployBridgeRegistry.s.sol
echo "BridgeRegistry deployed at: $REGISTRY_ADDRESS"
echo -e "${YELLOW}Deploying BridgeEscrowVault...${NC}"
VAULT_ADDRESS=$(forge script script/bridge/interop/DeployBridgeEscrowVault.s.sol \
VAULT_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/DeployBridgeEscrowVault.s.sol \
--rpc-url "$RPC_URL" \
--private-key "$PRIVATE_KEY" \
--broadcast \
@@ -49,7 +52,7 @@ VAULT_ADDRESS=$(forge script script/bridge/interop/DeployBridgeEscrowVault.s.sol
echo "BridgeEscrowVault deployed at: $VAULT_ADDRESS"
echo -e "${YELLOW}Deploying wXRP Token...${NC}"
WXRP_ADDRESS=$(forge script script/bridge/interop/DeployWXRP.s.sol \
WXRP_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/DeployWXRP.s.sol \
--rpc-url "$RPC_URL" \
--private-key "$PRIVATE_KEY" \
--broadcast \
@@ -64,7 +67,7 @@ if [ -z "$HSM_SIGNER_ADDRESS" ]; then
HSM_SIGNER_ADDRESS="$ADMIN_ADDRESS"
fi
CONTROLLER_ADDRESS=$(forge script script/bridge/interop/DeployMintBurnController.s.sol \
CONTROLLER_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/DeployMintBurnController.s.sol \
--rpc-url "$RPC_URL" \
--private-key "$PRIVATE_KEY" \
--broadcast \
@@ -74,7 +77,7 @@ CONTROLLER_ADDRESS=$(forge script script/bridge/interop/DeployMintBurnController
echo "MintBurnController deployed at: $CONTROLLER_ADDRESS"
echo -e "${YELLOW}Deploying BridgeVerifier...${NC}"
VERIFIER_ADDRESS=$(forge script script/bridge/interop/DeployBridgeVerifier.s.sol \
VERIFIER_ADDRESS=$("${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/DeployBridgeVerifier.s.sol \
--rpc-url "$RPC_URL" \
--private-key "$PRIVATE_KEY" \
--broadcast \
@@ -105,7 +108,7 @@ echo "Addresses saved to .bridge-deployment.json"
# Initialize registry with default destinations
echo -e "${YELLOW}Initializing registry...${NC}"
forge script script/bridge/interop/InitializeRegistry.s.sol \
"${FORGE_SCOPE_RUNNER[@]}" script script/bridge/interop/InitializeRegistry.s.sol \
--rpc-url "$RPC_URL" \
--private-key "$PRIVATE_KEY" \
--broadcast \

View File

@@ -124,19 +124,15 @@ else
ERRORS=$((ERRORS + 1))
fi
# Step 5: Deploy CCIPTxReporter
log_info "Step 5: Deploying CCIPTxReporter"
# Step 5: Verify historical CCIPTxReporter
log_info "Step 5: Checking CCIPTxReporter"
if [ -z "$CHAIN138_CCIP_REPORTER" ] || [ "$CHAIN138_CCIP_REPORTER" = "" ]; then
if [ -f "scripts/ccip-deployment/deploy-ccip-reporter.js" ]; then
log_warn "⚠️ CCIPTxReporter not deployed"
echo " To deploy, run:"
echo " npm run deploy:reporter:chain138"
echo " Or:"
echo " npx hardhat run scripts/ccip-deployment/deploy-ccip-reporter.js --network chain138"
else
log_warn "⚠️ CCIPTxReporter deployment script not found"
fi
log_warn "⚠️ CCIPTxReporter not configured"
echo " Historical source archive:"
echo " archive/solidity/contracts/ccip-integration/CCIPTxReporter.sol"
echo " If you still rely on this flow, set CHAIN138_CCIP_REPORTER to the deployed address."
echo " Restore the archived source before attempting a fresh redeploy."
else
log_success "✅ CCIPTxReporter address: $CHAIN138_CCIP_REPORTER"

View File

@@ -7,6 +7,7 @@ set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
FORGE_SCOPE_RUNNER=(bash "$PROJECT_ROOT/scripts/forge/scope.sh")
# Load .env via dotenv (RPC CR/LF trim). Fallback: raw source.
if [[ -f "$SCRIPT_DIR/../lib/deployment/dotenv.sh" ]]; then
# shellcheck disable=SC1090
@@ -80,7 +81,7 @@ echo "━━━━━━━━━━━━━━━━━━━━━━━━
echo ""
echo "📋 2.1: Deploy CCIP Router..."
forge script script/DeployCCIPRouter.s.sol:DeployCCIPRouter --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-router.log | grep -E "CCIP Router deployed|deployed at:|Error" | head -3
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPRouter.s.sol:DeployCCIPRouter --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-router.log | grep -E "CCIP Router deployed|deployed at:|Error" | head -3
CCIP_ROUTER=$(grep -oE "0x[a-fA-F0-9]{40}" /tmp/ccip-router.log 2>/dev/null | head -1)
if [ -n "$CCIP_ROUTER" ]; then
echo " ✅ CCIP Router: $CCIP_ROUTER"
@@ -90,7 +91,7 @@ fi
echo ""
echo "📋 2.2: Deploy CCIP Sender..."
forge script script/DeployCCIPSender.s.sol:DeployCCIPSender --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-sender.log | grep -E "CCIPSender deployed|deployed at:|Error" | head -3
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPSender.s.sol:DeployCCIPSender --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-sender.log | grep -E "CCIPSender deployed|deployed at:|Error" | head -3
CCIP_SENDER=$(grep -oE "0x[a-fA-F0-9]{40}" /tmp/ccip-sender.log 2>/dev/null | head -1)
if [ -n "$CCIP_SENDER" ]; then
echo " ✅ CCIP Sender: $CCIP_SENDER"
@@ -99,7 +100,7 @@ fi
echo ""
echo "📋 2.3: Deploy CCIP Receiver..."
forge script script/DeployCCIPReceiver.s.sol:DeployCCIPReceiver --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-receiver.log | grep -E "CCIPReceiver deployed|deployed at:|Error" | head -3
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPReceiver.s.sol:DeployCCIPReceiver --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-receiver.log | grep -E "CCIPReceiver deployed|deployed at:|Error" | head -3
CCIP_RECEIVER=$(grep -oE "0x[a-fA-F0-9]{40}" /tmp/ccip-receiver.log 2>/dev/null | head -1)
if [ -n "$CCIP_RECEIVER" ]; then
echo " ✅ CCIP Receiver: $CCIP_RECEIVER"
@@ -108,7 +109,7 @@ fi
echo ""
echo "📋 2.4: Deploy CCIP WETH9 Bridge..."
forge script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-weth9-bridge.log | grep -E "CCIPWETH9Bridge deployed|deployed at:|Error" | head -3
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-weth9-bridge.log | grep -E "CCIPWETH9Bridge deployed|deployed at:|Error" | head -3
WETH9_BRIDGE=$(grep -oE "0x[a-fA-F0-9]{40}" /tmp/ccip-weth9-bridge.log 2>/dev/null | head -1)
if [ -n "$WETH9_BRIDGE" ]; then
echo " ✅ CCIP WETH9 Bridge: $WETH9_BRIDGE"
@@ -117,7 +118,7 @@ fi
echo ""
echo "📋 2.5: Deploy CCIP WETH10 Bridge..."
forge script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-weth10-bridge.log | grep -E "CCIPWETH10Bridge deployed|deployed at:|Error" | head -3
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/ccip-weth10-bridge.log | grep -E "CCIPWETH10Bridge deployed|deployed at:|Error" | head -3
WETH10_BRIDGE=$(grep -oE "0x[a-fA-F0-9]{40}" /tmp/ccip-weth10-bridge.log 2>/dev/null | head -1)
if [ -n "$WETH10_BRIDGE" ]; then
echo " ✅ CCIP WETH10 Bridge: $WETH10_BRIDGE"
@@ -132,15 +133,15 @@ echo "━━━━━━━━━━━━━━━━━━━━━━━━
echo ""
echo "📋 3.1: Deploy Multicall..."
forge script script/DeployMulticall.s.sol:DeployMulticall --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/multicall.log | grep -E "Multicall deployed|deployed at:|Error" | head -3
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployMulticall.s.sol:DeployMulticall --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/multicall.log | grep -E "Multicall deployed|deployed at:|Error" | head -3
echo ""
echo "📋 3.2: Deploy Oracle..."
forge script script/DeployOracle.s.sol:DeployOracle --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/oracle.log | grep -E "Aggregator|Proxy|deployed at:|Error" | head -5
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployOracle.s.sol:DeployOracle --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/oracle.log | grep -E "Aggregator|Proxy|deployed at:|Error" | head -5
echo ""
echo "📋 3.3: Deploy MultiSig..."
forge script script/DeployMultiSig.s.sol:DeployMultiSig --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/multisig.log | grep -E "MultiSig|deployed at:|Error" | head -3
"${FORGE_SCOPE_RUNNER[@]}" script script/DeployMultiSig.s.sol:DeployMultiSig --rpc-url "$RPC_URL" --broadcast --private-key "$PRIVATE_KEY" --legacy -vvv 2>&1 | tee /tmp/multisig.log | grep -E "MultiSig|deployed at:|Error" | head -3
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"

View File

@@ -80,7 +80,7 @@ deploy_contract() {
log_warn "Deploying ${contract_name}..."
# Run deployment script
local output=$(forge script "$script_name" \
local output=$(forge_scoped script "$script_name" \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -132,7 +132,7 @@ if [ -z "$CCIP_ROUTER" ] || [ "$CCIP_ROUTER" = "0x000000000000000000000000000000
log_warn "Warning: CCIP_FEE_TOKEN not set. Using zero address (native token)"
fi
CCIP_ROUTER_ADDRESS=$(forge script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
CCIP_ROUTER_ADDRESS=$(forge_scoped script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
--sig "run(address,uint256,uint256)" "$FEE_TOKEN" "$BASE_FEE" "$DATA_FEE_PER_BYTE" \
--rpc-url "$RPC_URL" \
--broadcast \
@@ -269,4 +269,3 @@ log_success "Oracle Aggregator: ${ORACLE_ADDRESS}"
log_success "=== Deployment Complete ==="
log_success "All contract addresses have been updated in .env file"

View File

@@ -89,7 +89,7 @@ log_warn "Phase 1: Deploying independent contracts in parallel..."
# Deploy Multicall, WETH9, and WETH10 in parallel
{
log_warn "Deploying Multicall..."
MULTICALL_OUTPUT=$(forge script script/DeployMulticall.s.sol:DeployMulticall \
MULTICALL_OUTPUT=$(forge_scoped script script/DeployMulticall.s.sol:DeployMulticall \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -104,7 +104,7 @@ MULTICALL_PID=$!
{
log_warn "Deploying WETH9..."
WETH9_OUTPUT=$(forge script script/DeployWETH.s.sol:DeployWETH \
WETH9_OUTPUT=$(forge_scoped script script/DeployWETH.s.sol:DeployWETH \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -119,7 +119,7 @@ WETH9_PID=$!
{
log_warn "Deploying WETH10..."
WETH10_OUTPUT=$(forge script script/DeployWETH10.s.sol:DeployWETH10 \
WETH10_OUTPUT=$(forge_scoped script script/DeployWETH10.s.sol:DeployWETH10 \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -143,7 +143,7 @@ source .env
# Phase 2: CCIP Router (if needed)
if [ -z "$CCIP_ROUTER" ] || [ "$CCIP_ROUTER" = "0x0000000000000000000000000000000000000000" ]; then
log_warn "Phase 2: Deploying CCIP Router..."
CCIP_ROUTER_OUTPUT=$(forge script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
CCIP_ROUTER_OUTPUT=$(forge_scoped script script/DeployCCIPRouter.s.sol:DeployCCIPRouter \
--sig "run(address,uint256,uint256)" \
"$CCIP_FEE_TOKEN" \
"1000000000000000" \
@@ -171,7 +171,7 @@ if [ "${DEPLOY_BRIDGES:-true}" = "true" ] && [ -n "$CCIP_ROUTER" ] && [ -n "$WET
{
log_warn "Deploying CCIPWETH9Bridge..."
export CCIP_ROUTER WETH9_ADDRESS CCIP_FEE_TOKEN
BRIDGE9_OUTPUT=$(forge script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge \
BRIDGE9_OUTPUT=$(forge_scoped script script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -187,7 +187,7 @@ if [ "${DEPLOY_BRIDGES:-true}" = "true" ] && [ -n "$CCIP_ROUTER" ] && [ -n "$WET
{
log_warn "Deploying CCIPWETH10Bridge..."
export CCIP_ROUTER WETH10_ADDRESS CCIP_FEE_TOKEN
BRIDGE10_OUTPUT=$(forge script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge \
BRIDGE10_OUTPUT=$(forge_scoped script script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -212,7 +212,7 @@ log_warn "Phase 4: Deploying Oracle and MultiSig in parallel..."
# Deploy Oracle (independent)
{
export ORACLE_DESCRIPTION ORACLE_HEARTBEAT ORACLE_DEVIATION_THRESHOLD
ORACLE_OUTPUT=$(forge script script/DeployOracle.s.sol:DeployOracle \
ORACLE_OUTPUT=$(forge_scoped script script/DeployOracle.s.sol:DeployOracle \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -241,7 +241,7 @@ if [ -z "$MULTISIG_OWNERS" ]; then
else
{
export OWNERS="$MULTISIG_OWNERS"
MULTISIG_OUTPUT=$(forge script script/DeployMultiSig.s.sol:DeployMultiSig \
MULTISIG_OUTPUT=$(forge_scoped script script/DeployMultiSig.s.sol:DeployMultiSig \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \
@@ -279,4 +279,3 @@ log_success "MultiSig: ${MULTISIG_ADDRESS:-N/A}"
log_success ""
log_success "=== Parallel Deployment Complete ==="
log_success "All addresses have been updated in .env file"

View File

@@ -8,6 +8,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../lib/init.sh"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
FORGE_SCOPE_RUNNER=(bash "$PROJECT_ROOT/scripts/forge/scope.sh")
# Load .env via dotenv (RPC CR/LF trim). Fallback: raw source.
if [[ -f "$SCRIPT_DIR/../lib/deployment/dotenv.sh" ]]; then
# shellcheck disable=SC1090
@@ -146,7 +147,7 @@ deploy_contract() {
return
fi
forge script "$script" \
"${FORGE_SCOPE_RUNNER[@]}" script "$script" \
--rpc-url "$RPC_URL" \
--broadcast \
--private-key "$PRIVATE_KEY" \

View File

@@ -108,44 +108,44 @@ echo ""
# Phase 1: CREATE2 / Deterministic core
run_phase 1 "Deterministic core (DeployDeterministicCore)" "CREATE2_FACTORY" \
"forge script script/deploy/DeployDeterministicCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/DeployDeterministicCore.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 2: Vault system
run_phase 2 "Vault system (DeployVaultSystem)" "VAULT_FACTORY" \
"forge script script/deploy/vault/DeployVaultSystem.s.sol:DeployVaultSystem --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/deploy/vault/DeployVaultSystem.s.sol:DeployVaultSystem --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 3: Reserve system (requires TOKEN_FACTORY)
run_phase 3 "Reserve system (DeployReserveSystem)" "RESERVE_SYSTEM" \
"forge script script/reserve/DeployReserveSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/reserve/DeployReserveSystem.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 4: Reserve Keeper (requires ORACLE_PRICE_FEED unless RESERVE_KEEPER already set)
run_phase 4 "Reserve Keeper (DeployKeeper)" "RESERVE_KEEPER" \
"forge script script/reserve/DeployKeeper.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\"" \
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/reserve/DeployKeeper.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\"" \
"ORACLE_PRICE_FEED"
# Phase 5: PaymentChannelManager + GenericStateChannelManager
run_phase 5a "PaymentChannelManager" "PAYMENT_CHANNEL_MANAGER" \
"forge script script/DeployPaymentChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/DeployPaymentChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
run_phase 5b "GenericStateChannelManager" "GENERIC_STATE_CHANNEL_MANAGER" \
"forge script script/DeployGenericStateChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/DeployGenericStateChannelManager.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 6: Trustless bridge (Lockbox138 on Chain 138)
run_phase 6 "Trustless bridge (Lockbox138)" "LOCKBOX_138" \
"forge script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/bridge/trustless/DeployTrustlessBridge.s.sol:DeployTrustlessBridge --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 7: DODO / Swap (requires DODO_VENDING_MACHINE_ADDRESS, COMPLIANT_USDT_ADDRESS, COMPLIANT_USDC_ADDRESS)
run_phase 7 "DODO PMM Integration" "DODOPMM_INTEGRATION_ADDRESS" \
"forge script script/dex/DeployDODOPMMIntegration.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\"" \
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/dex/DeployDODOPMMIntegration.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\"" \
"DODO_VENDING_MACHINE_ADDRESS"
# Phase 8: eMoney (Chain 138)
run_phase 8 "eMoney (DeployChain138)" "TOKEN_FACTORY_138" \
"forge script script/emoney/DeployChain138.s.sol:DeployChain138 --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/emoney/DeployChain138.s.sol:DeployChain138 --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
# Phase 9: Smart accounts (informational — actual deploy from ERC-4337 impl)
run_phase 9 "Smart accounts kit (informational)" "" \
"forge script script/smart-accounts/DeploySmartAccountsKit.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
"bash \"$PROJECT_ROOT/scripts/forge/scope.sh\" script script/smart-accounts/DeploySmartAccountsKit.s.sol --rpc-url \"$RPC\" --broadcast --private-key \"$PRIVATE_KEY\" --with-gas-price \"$GAS_PRICE\""
echo ""
echo "============================================"

View File

@@ -3,6 +3,11 @@
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
@@ -11,10 +16,11 @@ NC='\033[0m' # No Color
# Configuration
FABRIC_NETWORK="${FABRIC_NETWORK:-fabric-network}"
CHAIN_138_RPC_URL="${CHAIN_138_RPC_URL:-http://localhost:8545}"
CHAIN_138_RPC_URL="${CHAIN_138_RPC_URL:-${RPC_URL_138:-http://localhost:8545}}"
FIREFLY_API_URL="${FIREFLY_API_URL:-http://localhost:5000}"
CACTI_API_URL="${CACTI_API_URL:-http://localhost:4000}"
INDY_API_URL="${INDY_API_URL:-http://localhost:9000}"
DEPLOYER_PRIVATE_KEY="${DEPLOYER_PRIVATE_KEY:-${PRIVATE_KEY:-}}"
echo -e "${GREEN}Deploying Tokenization System...${NC}"
@@ -61,6 +67,18 @@ if [ -z "$DEPLOYER_PRIVATE_KEY" ]; then
exit 1
fi
for required_script in \
script/tokenization/DeployTokenizedEUR.s.sol \
script/tokenization/DeployTokenRegistry.s.sol \
script/tokenization/RegisterToken.s.sol
do
if [ ! -f "$required_script" ]; then
echo -e "${RED}Error: missing required script $required_script${NC}"
echo -e "${YELLOW}This deployment wrapper is stale relative to the current repo layout and needs refreshed tokenization scripts before it can run.${NC}"
exit 1
fi
done
TOKENIZED_EUR_ADDRESS=$(forge script script/tokenization/DeployTokenizedEUR.s.sol \
--rpc-url "$CHAIN_138_RPC_URL" \
--private-key "$DEPLOYER_PRIVATE_KEY" \

View File

@@ -50,6 +50,7 @@ elif [[ -f "$ENV_FILE" ]]; then
set +a
ENV_SOURCE="$ENV_FILE"
fi
source "$SMOM_ROOT/scripts/lib/forge-scope.sh"
RPC_URL_138="${RPC_URL_138:-http://192.168.11.211:8545}"
WETH="${WETH:-$CHAIN138_WETH_DEFAULT}"
@@ -231,9 +232,9 @@ echo ""
echo "Exact dry-run command"
if [[ -f "$PROJECT_ENV_LOADER" ]]; then
echo "cd \"$PROJECT_ROOT\" && source scripts/lib/load-project-env.sh && cd smom-dbis-138 && forge script script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter --rpc-url \"$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\""
echo "cd \"$PROJECT_ROOT\" && source scripts/lib/load-project-env.sh && cd smom-dbis-138 && bash scripts/forge/scope.sh script bridge/trustless script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter --rpc-url \"$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\""
else
echo "cd \"$SMOM_ROOT\" && source .env && forge script script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter --rpc-url \"$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\""
echo "cd \"$SMOM_ROOT\" && source .env && bash scripts/forge/scope.sh script bridge/trustless script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter --rpc-url \"$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\""
fi
echo ""
echo "Example minimal exports before dry-run"

View File

@@ -45,6 +45,7 @@ elif [[ -f "$ENV_FILE" ]]; then
set +a
ENV_SOURCE="$ENV_FILE"
fi
source "$SMOM_ROOT/scripts/lib/forge-scope.sh"
RPC_URL_138="${RPC_URL_138:-http://192.168.11.211:8545}"
WETH="${WETH:-0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}"

View File

@@ -3,7 +3,11 @@
set -e
cd "$(dirname "$0")/../.."
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
source "$SCRIPT_DIR/../lib/init.sh"
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
# Color codes
@@ -49,8 +53,8 @@ declare -A CONTRACT_DEPS=(
declare -A CONTRACT_SCRIPTS=(
["CCIPLogger"]="npx hardhat run scripts/ccip-deployment/deploy-ccip-logger.js --network mainnet"
["CCIPWETH9Bridge"]="forge script script/DeployCCIPWETH9Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
["CCIPWETH10Bridge"]="forge script script/DeployCCIPWETH10Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
["CCIPWETH9Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
["CCIPWETH10Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
)
TOTAL_COST_WEI=0
@@ -80,7 +84,7 @@ COSTS["CCIPWETH9Bridge"]=$cost_eth
TOTAL_COST_WEI=$(echo "$TOTAL_COST_WEI + $cost_wei" | bc 2>/dev/null)
echo " Estimated Cost: $cost_eth ETH"
echo " Dependencies: CCIPRouter"
echo " Script: forge script script/DeployCCIPWETH9Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
echo " Script: bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
echo "3. CCIPWETH10Bridge"
echo " Location: contracts/ccip/CCIPWETH10Bridge.sol"
@@ -93,7 +97,7 @@ COSTS["CCIPWETH10Bridge"]=$cost_eth
TOTAL_COST_WEI=$(echo "$TOTAL_COST_WEI + $cost_wei" | bc 2>/dev/null)
echo " Estimated Cost: $cost_eth ETH"
echo " Dependencies: CCIPRouter"
echo " Script: forge script script/DeployCCIPWETH10Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
echo " Script: bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
TOTAL_COST_ETH=$(echo "scale=10; $TOTAL_COST_WEI / 1000000000000000000" | bc 2>/dev/null)

View File

@@ -3,7 +3,11 @@
set -e
cd "$(dirname "$0")/../.."
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
source "$SCRIPT_DIR/../lib/init.sh"
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
# Color codes
@@ -35,8 +39,8 @@ declare -A CONTRACT_DEPS=(
declare -A CONTRACT_SCRIPTS=(
["CCIPLogger"]="npx hardhat run scripts/ccip-deployment/deploy-ccip-logger.js --network mainnet"
["CCIPWETH9Bridge"]="forge script script/DeployCCIPWETH9Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
["CCIPWETH10Bridge"]="forge script script/DeployCCIPWETH10Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
["CCIPWETH9Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
["CCIPWETH10Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
)
log_success "Remaining Contracts for Mainnet Deployment:"

View File

@@ -5,12 +5,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SMOM_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
ENV_FILE="$SMOM_ROOT/.env"
if [[ -f "$ENV_FILE" ]]; then
set -a
# shellcheck disable=SC1090
source "$ENV_FILE"
set +a
fi
source "$SMOM_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
RPC_URL_138="${RPC_URL_138:-http://192.168.11.211:8545}"
DODO_PMM_INTEGRATION_ADDRESS="${DODO_PMM_INTEGRATION_ADDRESS:-${DODO_PMM_INTEGRATION:-}}"
@@ -114,7 +109,7 @@ for pool in "${pools[@]}"; do
done
echo "Dry-run command:"
echo " cd \"$SMOM_ROOT\" && source .env && bash scripts/deployment/inventory-register-dodo-pools-chain138.sh"
echo " cd \"$SMOM_ROOT\" && source scripts/load-env.sh && bash scripts/deployment/inventory-register-dodo-pools-chain138.sh"
echo ""
echo "Broadcast command:"
echo " cd \"$SMOM_ROOT\" && source .env && forge script script/liquidity/RegisterDODOPools.s.sol:RegisterDODOPools --rpc-url \"\$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\" --broadcast --slow --with-gas-price 1000000000"
echo " cd \"$SMOM_ROOT\" && source scripts/load-env.sh && bash scripts/forge/scope.sh script liquidity script/liquidity/RegisterDODOPools.s.sol:RegisterDODOPools --rpc-url \"\$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\" --broadcast --slow --with-gas-price 1000000000"

View File

@@ -39,12 +39,10 @@ echo " - WETH10: Predeployed at 0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f"
echo " - Status: Already exist on Mainnet (no deployment needed)"
log_info "4. CCIPTxReporter"
echo " - CCIPTxReporter.sol (Chain-138 sender)"
echo " Location: contracts/ccip-integration/CCIPTxReporter.sol"
echo " Deployment: Hardhat script"
echo " Script: scripts/ccip-deployment/deploy-ccip-reporter.js"
echo " Status: Deploys to Chain-138 (not Mainnet)"
echo " Note: This contract is deployed on Chain-138, not Mainnet"
echo " - Historical Chain-138 sender"
echo " Source archive: archive/solidity/contracts/ccip-integration/CCIPTxReporter.sol"
echo " Status: Not part of the active Mainnet deployment set"
echo " Note: Use CHAIN138_CCIP_REPORTER for the existing deployment if this flow is still needed"
log_warn "Summary:"
echo " Total contracts for Mainnet: 3"

View File

@@ -5,12 +5,12 @@
set -e
echo "=== Phase 2: Deploy Core Bridge Contracts ==="
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
# Load environment variables
if [ -f .env ]; then
export $(cat .env | grep -v '^#' | grep -v '^$' | xargs)
fi
echo "=== Phase 2: Deploy Core Bridge Contracts ==="
# Check required variables
REQUIRED_VARS=(
@@ -72,4 +72,3 @@ echo ""
echo "=== Phase 2 Complete ==="
echo "Core bridge contracts deployed"
echo "⚠️ Remember to update .env with all contract addresses"

View File

@@ -5,12 +5,12 @@
set -e
echo "=== Phase 3: Deploy EnhancedSwapRouter ==="
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
# Load environment variables
if [ -f .env ]; then
export $(cat .env | grep -v '^#' | grep -v '^$' | xargs)
fi
echo "=== Phase 3: Deploy EnhancedSwapRouter ==="
# Check required variables
REQUIRED_VARS=(
@@ -55,4 +55,3 @@ echo ""
echo "=== Phase 3 Complete ==="
echo "EnhancedSwapRouter deployed"
echo "⚠️ Remember to update .env with ENHANCED_SWAP_ROUTER address"

View File

@@ -5,12 +5,12 @@
set -e
echo "=== Phase 4: Deploy Integration Contracts ==="
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
# Load environment variables
if [ -f .env ]; then
export $(cat .env | grep -v '^#' | grep -v '^$' | xargs)
fi
echo "=== Phase 4: Deploy Integration Contracts ==="
# Check required variables
REQUIRED_VARS=(
@@ -52,4 +52,3 @@ echo ""
echo "=== Phase 4 Complete ==="
echo "Integration contracts deployed"
echo "⚠️ Remember to update .env with all contract addresses"

View File

@@ -5,12 +5,12 @@
set -e
echo "=== Phase 5: Initialize System ==="
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
# Load environment variables
if [ -f .env ]; then
export $(cat .env | grep -v '^#' | grep -v '^$' | xargs)
fi
echo "=== Phase 5: Initialize System ==="
# Check required variables
REQUIRED_VARS=(
@@ -39,4 +39,3 @@ forge script script/bridge/trustless/InitializeBridgeSystem.s.sol:InitializeBrid
echo ""
echo "=== Phase 5 Complete ==="
echo "System initialized and configured"

View File

@@ -3,7 +3,11 @@
set -e
cd "$(dirname "$0")/../.."
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
source "$SCRIPT_DIR/../lib/init.sh"
source "$PROJECT_ROOT/scripts/load-env.sh" >/dev/null 2>&1 || true
echo "=== Mainnet Deployment Prioritization ==="
@@ -32,8 +36,8 @@ declare -A CONTRACT_DEPS=(
# Contract deployment scripts
declare -A CONTRACT_SCRIPTS=(
["CCIPLogger"]="npx hardhat run scripts/ccip-deployment/deploy-ccip-logger.js --network mainnet"
["CCIPWETH9Bridge"]="forge script script/DeployCCIPWETH9Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
["CCIPWETH10Bridge"]="forge script script/DeployCCIPWETH10Bridge.s.sol --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
["CCIPWETH9Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH9Bridge.s.sol:DeployCCIPWETH9Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
["CCIPWETH10Bridge"]="bash scripts/forge/scope.sh script ccip script/DeployCCIPWETH10Bridge.s.sol:DeployCCIPWETH10Bridge --rpc-url \$ETHEREUM_MAINNET_RPC --broadcast --private-key \$PRIVATE_KEY"
)
log_info "Wallet Balance: $WALLET_BALANCE ETH"

View File

@@ -58,5 +58,6 @@ fi
log_success "✅ Chain-138 environment setup complete"
echo "Next steps:"
echo " 1. Verify RPC connectivity: ./scripts/deployment/verify-chain138-full-deployment.sh"
echo " 2. Deploy CCIPTxReporter: npm run deploy:reporter:chain138"
echo " 2. If you use the historical CCIPTxReporter flow, set CHAIN138_CCIP_REPORTER in .env"
echo " Source archive: archive/solidity/contracts/ccip-integration/CCIPTxReporter.sol"
echo " 3. Run verification: ./scripts/deployment/verify-chain138-complete.sh"