Files
smom-dbis-138/scripts/lib/deployment/README.md
2026-03-02 12:14:09 -08:00

2.9 KiB

Deployment script library

Reusable helpers for deployment scripts: tag-based CLI (no .env placeholders for one-off values), interactive prompts when run without args, and callable modular linking so scripts can invoke each other with arguments.

Conventions

  • Secrets and chain config stay in .env (e.g. PRIVATE_KEY, RPC URLs, contract addresses).
  • One-off or per-run values are passed via script tags (e.g. --eth 1.5, --chain bsc polygon, --lockbox), not .env.
  • Scripts that accept amounts prompt interactively when run with no args and stdin is a TTY.
  • Scripts are callable from other scripts by passing the same tags (e.g. run-all-four-gaps.sh g4 --eth 1).

Modules

File Purpose
prompts.sh Tag parsers: parse_fund_tags (--eth, --weth, --dry-run), prompt_fund_amounts, eth_to_wei, parse_phase_tags (g1, g2g3, g4), parse_chain_filter (--chain bsc polygon ...), parse_lockbox_tag (--lockbox / --no-lockbox), parse_link_tags (--link, --dry-run), parse_dry_run_tag, parse_deploy_tag (--deploy), parse_delay_tag (--delay). L2_CHAIN_NAMES, normalize_chain_name.
dotenv.sh load_deployment_env, require_fund_lp_env.
costs.sh Gas and cost helpers (existing).

Validate syntax (one command)

  • From this repo (smom-dbis-138):
    ./scripts/deployment/check-syntax.sh
  • From workspace root (e.g. proxmox):
    ./smom-dbis-138/scripts/deployment/check-syntax.sh

Checks all tag-based deployment scripts and the lib with bash -n.

Usage

# From any script in scripts/deployment:
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../lib/deployment/dotenv.sh"
source "$SCRIPT_DIR/../lib/deployment/prompts.sh"
load_deployment_env

# Parse G4 amounts from args, then prompt if still empty (TTY)
parse_fund_tags "$@"
prompt_fund_amounts
# Use FUND_ETH_AMOUNT_WEI, FUND_WETH_AMOUNT_WEI

Example: G4 fund mainnet LP

  • Standalone: ./scripts/deployment/fund-mainnet-lp.sh --eth 1.5 --weth 0.5
  • Interactive: ./scripts/deployment/fund-mainnet-lp.sh
  • From run-all: ./scripts/deployment/run-all-four-gaps.sh g4 --eth 1

No FUND_ETH_AMOUNT_WEI / FUND_WETH_AMOUNT_WEI in .env.

Other scripts (tags)

Script Tags
deploy-pmm-all-l2s.sh --chain bsc polygon ... (or DEPLOY_PMM_L2S_FILTER in .env)
live-test-trustless-bridge.sh --check (optional: print LP stats and BondManager totalEthHeld); prints cast commands for lock → claim → finalize → release
deploy-trustless-l2s.sh --chain, --lockbox / --no-lockbox
fund-ccip-bridges-with-link.sh --link amount, --dry-run
fix-nonce-and-retry.sh --chain, --script (positional still supported)
run-remaining-g2g3-with-nonce-fix.sh --delay, --lockbox / --no-lockbox
check-balances-gas-and-deploy.sh --deploy