From c6e7bad15ed9aec88cba018b2e3430c0a5a3e400 Mon Sep 17 00:00:00 2001 From: defiQUG Date: Fri, 27 Mar 2026 18:52:17 -0700 Subject: [PATCH] chore: operator env example and deployment script touch-ups Made-with: Cursor --- env.additions.example | 8 ++++---- .../create-all-dodo-pools-from-token-api.sh | 4 ++-- scripts/create-pmm-full-mesh-chain138.sh | 2 +- .../run-pmm-full-parity-all-phases.sh | 4 ++-- scripts/lib/deployment/dotenv.sh | 10 ++++++++++ scripts/load-env.sh | 9 +++++++++ scripts/mint-for-liquidity.sh | 2 +- scripts/run-deployment-direct.sh | 19 +++++++++++++------ 8 files changed, 42 insertions(+), 16 deletions(-) diff --git a/env.additions.example b/env.additions.example index 3e5e0ca..eadd3b0 100644 --- a/env.additions.example +++ b/env.additions.example @@ -5,18 +5,18 @@ # Or copy the needed lines into .env manually. Do NOT commit .env. # DODO PMM Provider (deployed); required for liquidity/quoting scripts -DODO_PMM_PROVIDER_ADDRESS=0x8EF6657D2a86c569F6ffc337EE6b4260Bd2e59d0 +DODO_PMM_PROVIDER_ADDRESS=0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381 # DODO PMM Integration (Chain 138) -DODO_PMM_INTEGRATION_ADDRESS=0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D +DODO_PMM_INTEGRATION_ADDRESS=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d # PMM pool addresses (optional; RegisterDODOPools reads from integration if unset) POOL_CUSDTCUSDC=0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8 -POOL_CUSDTUSDT=0xa3Ee6091696B28e5497b6F491fA1e99047250c59 +POOL_CUSDTUSDT=0x6fc60DEDc92a2047062294488539992710b99D71 POOL_CUSDCUSDC=0x90bd9Bf18Daa26Af3e814ea224032d015db58Ea5 # Token-aggregation (quote API): same integration address so indexer can index DODO pools -CHAIN_138_DODO_PMM_INTEGRATION=0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D +CHAIN_138_DODO_PMM_INTEGRATION=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d # Add liquidity (run-pmm-full-parity or AddLiquidityPMMPoolsChain138.s.sol); amounts in token units (6 decimals, e.g. 1000000e6 = 1M) # ADD_LIQUIDITY_BASE_AMOUNT=1000000e6 diff --git a/scripts/create-all-dodo-pools-from-token-api.sh b/scripts/create-all-dodo-pools-from-token-api.sh index a427605..2db5d70 100755 --- a/scripts/create-all-dodo-pools-from-token-api.sh +++ b/scripts/create-all-dodo-pools-from-token-api.sh @@ -33,9 +33,9 @@ DODO_PMM_INTEGRATION="${DODO_PMM_INTEGRATION:-${DODO_PMM_INTEGRATION_ADDRESS:-}} ENHANCED_SWAP_ROUTER="${ENHANCED_SWAP_ROUTER_ADDRESS:-}" ASSET_REGISTRY="${UNIVERSAL_ASSET_REGISTRY_ADDRESS:-}" QUOTE_TOKEN="${QUOTE_TOKEN_ADDRESS:-}" -# Default WETH for chain 138 if not set +# Chain 138 requires an explicit local quote token or an official mirror token address. if [ "$CHAIN_ID" = "138" ]; then - QUOTE_TOKEN="${QUOTE_TOKEN:-${WETH_ADDRESS_138:-}}" + QUOTE_TOKEN="${QUOTE_TOKEN:-${OFFICIAL_USDT_ADDRESS:-${COMPLIANT_USDT_ADDRESS:-}}}" fi if [ "$CHAIN_ID" = "651940" ]; then QUOTE_TOKEN="${QUOTE_TOKEN:-${WETH_ADDRESS_651940:-}}" diff --git a/scripts/create-pmm-full-mesh-chain138.sh b/scripts/create-pmm-full-mesh-chain138.sh index 8a45580..cb4cdd5 100755 --- a/scripts/create-pmm-full-mesh-chain138.sh +++ b/scripts/create-pmm-full-mesh-chain138.sh @@ -49,7 +49,7 @@ declare -a C_STAR_ADDRS=( [[ -n "$PROV" ]] || { echo "DODO_PMM_PROVIDER_ADDRESS not set"; exit 1; } # Official USDT/USDC on 138 (from integration if available) -OFFICIAL_USDT="${OFFICIAL_USDT_ADDRESS:-0x15DF1D5BFDD8Aa4b380445D4e3E9B38d34283619}" +OFFICIAL_USDT="${OFFICIAL_USDT_ADDRESS:-0x004b63A7B5b0E06f6bB6adb4a5F9f590BF3182D1}" OFFICIAL_USDC="${OFFICIAL_USDC_ADDRESS:-}" if [[ -z "$OFFICIAL_USDC" ]] && command -v cast &>/dev/null; then OFFICIAL_USDC=$(cast call "$INT" "officialUSDC()(address)" --rpc-url "$RPC" 2>/dev/null | cast --to-addr 2>/dev/null || true) diff --git a/scripts/deployment/run-pmm-full-parity-all-phases.sh b/scripts/deployment/run-pmm-full-parity-all-phases.sh index 7d3ed95..617d6f9 100755 --- a/scripts/deployment/run-pmm-full-parity-all-phases.sh +++ b/scripts/deployment/run-pmm-full-parity-all-phases.sh @@ -21,9 +21,9 @@ RUN_PHASE2="${RUN_PHASE2:-1}" DRY_RUN="${DRY_RUN:-}" RPC_138="${RPC_URL_138:-${RPC_URL:-http://192.168.11.211:8545}}" GAS_PRICE="${GAS_PRICE_138:-${GAS_PRICE:-1000000000}}" -INTEGRATION="${DODO_PMM_INTEGRATION_ADDRESS:-${DODO_PMM_INTEGRATION:-0x79cdbaFBaA0FdF9F55D26F360F54cddE5c743F7D}}" +INTEGRATION="${DODO_PMM_INTEGRATION_ADDRESS:-${DODO_PMM_INTEGRATION:-0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d}}" POOL_CUSDTCUSDC="${POOL_CUSDTCUSDC:-0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8}" -POOL_CUSDTUSDT="${POOL_CUSDTUSDT:-0xa3Ee6091696B28e5497b6F491fA1e99047250c59}" +POOL_CUSDTUSDT="${POOL_CUSDTUSDT:-0x6fc60DEDc92a2047062294488539992710b99D71}" POOL_CUSDCUSDC="${POOL_CUSDCUSDC:-0x90bd9Bf18Daa26Af3e814ea224032d015db58Ea5}" export RPC_URL_138="$RPC_138" diff --git a/scripts/lib/deployment/dotenv.sh b/scripts/lib/deployment/dotenv.sh index b53ce13..a67d75c 100644 --- a/scripts/lib/deployment/dotenv.sh +++ b/scripts/lib/deployment/dotenv.sh @@ -29,6 +29,16 @@ load_deployment_env() { source "$dotenv" set +a fi + local secure_secrets_file="${SECURE_SECRETS_FILE:-$HOME/.secure-secrets/private-keys.env}" + if [[ -f "$secure_secrets_file" ]]; then + set -a + # shellcheck disable=SC1090 + source "$secure_secrets_file" + set +a + fi + if [[ -z "${PRIVATE_KEY:-}" && -n "${DEPLOYER_PRIVATE_KEY:-}" ]]; then + export PRIVATE_KEY="$DEPLOYER_PRIVATE_KEY" + fi } # Require vars for mainnet LP funding (G4). Fails with message if missing. diff --git a/scripts/load-env.sh b/scripts/load-env.sh index bca68d3..7748c5f 100644 --- a/scripts/load-env.sh +++ b/scripts/load-env.sh @@ -14,6 +14,15 @@ if [[ -f "$ENV_FILE" ]]; then set -a source "$ENV_FILE" set +a + SECURE_SECRETS_FILE="${SECURE_SECRETS_FILE:-$HOME/.secure-secrets/private-keys.env}" + if [[ -f "$SECURE_SECRETS_FILE" ]]; then + set -a + source "$SECURE_SECRETS_FILE" + set +a + fi + if [[ -z "${PRIVATE_KEY:-}" && -n "${DEPLOYER_PRIVATE_KEY:-}" ]]; then + export PRIVATE_KEY="$DEPLOYER_PRIVATE_KEY" + fi echo "Loaded: $ENV_FILE" else echo "WARN: $ENV_FILE not found" >&2 diff --git a/scripts/mint-for-liquidity.sh b/scripts/mint-for-liquidity.sh index 0680743..cbdf9b6 100755 --- a/scripts/mint-for-liquidity.sh +++ b/scripts/mint-for-liquidity.sh @@ -94,7 +94,7 @@ if [[ "$RUN_ADD_LIQUIDITY" == true ]]; then export ADD_LIQUIDITY_BASE_AMOUNT ADD_LIQUIDITY_QUOTE_AMOUNT # Default pool addresses (Chain 138) if not in .env export POOL_CUSDTCUSDC="${POOL_CUSDTCUSDC:-0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8}" - export POOL_CUSDTUSDT="${POOL_CUSDTUSDT:-0xa3Ee6091696B28e5497b6F491fA1e99047250c59}" + export POOL_CUSDTUSDT="${POOL_CUSDTUSDT:-0x6fc60DEDc92a2047062294488539992710b99D71}" export POOL_CUSDCUSDC="${POOL_CUSDCUSDC:-0x90bd9Bf18Daa26Af3e814ea224032d015db58Ea5}" if [[ -n "${DODO_PMM_INTEGRATION:-}" || -n "${DODO_PMM_INTEGRATION_ADDRESS:-}" ]]; then # Use pending nonce so broadcast does not get -32001 "Nonce too low" (mints just used N and N+1) diff --git a/scripts/run-deployment-direct.sh b/scripts/run-deployment-direct.sh index 5fb8b08..c9ded54 100644 --- a/scripts/run-deployment-direct.sh +++ b/scripts/run-deployment-direct.sh @@ -5,16 +5,24 @@ set -e cd /home/intlc/projects/proxmox/smom-dbis-138 -# Set environment -export PRIVATE_KEY=0x5373d11ee2cad4ed82b9208526a8c358839cbfe325919fb250f062a25153d1c8 -export RPC_URL=http://192.168.11.250:8545 -export GAS_PRICE=20000000000 +# Load environment +if [[ -f ./scripts/load-env.sh ]]; then + # shellcheck disable=SC1091 + source ./scripts/load-env.sh >/dev/null +fi +export RPC_URL="${RPC_URL:-${RPC_URL_138:-http://192.168.11.211:8545}}" +export GAS_PRICE="${GAS_PRICE:-20000000000}" + +if [[ -z "${PRIVATE_KEY:-}" ]]; then + echo "PRIVATE_KEY not set. Source smom-dbis-138/.env or ~/.secure-secrets/private-keys.env first." >&2 + exit 1 +fi echo "==========================================" echo "Starting Deployment" echo "==========================================" echo "RPC URL: $RPC_URL" -echo "Deployer: $(cast wallet address $PRIVATE_KEY)" +echo "Deployer: $(cast wallet address "$PRIVATE_KEY")" echo "" # Step 1: Deploy ComplianceRegistry @@ -180,4 +188,3 @@ echo "TokenRegistry: $TOKEN_REGISTRY" echo "FeeCollector: $FEE_COLLECTOR" echo "" echo "All addresses saved to .env file" -