Stabilize Chain 138 PMM router helpers

This commit is contained in:
defiQUG
2026-04-29 06:20:36 -07:00
parent 68cd541265
commit 1a14622b22
12 changed files with 136 additions and 23 deletions

View File

@@ -32,7 +32,7 @@ cmd=(
-vvv
)
export FOUNDRY_PROFILE="${FOUNDRY_PROFILE:-chain138_legacy}"
export FOUNDRY_PROFILE="${FOUNDRY_PROFILE:-chain138}"
if [[ -n "$ONLY_FAMILY" ]]; then
export GAS_FAMILY="$ONLY_FAMILY"
fi

View File

@@ -10,6 +10,8 @@ ENV_SOURCE="<none>"
RUN_FORGE_DRY_RUN=0
RUN_TIMEOUT_SECONDS="${RUN_TIMEOUT_SECONDS:-90}"
VERBOSITY="${VERBOSITY:--vv}"
EVM_VERSION_CHAIN138="${EVM_VERSION_CHAIN138:-paris}"
export FOUNDRY_PROFILE="${FOUNDRY_PROFILE:-chain138}"
while [[ $# -gt 0 ]]; do
case "$1" in
@@ -50,7 +52,6 @@ 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}"
@@ -101,6 +102,7 @@ run_forge_dry_run() {
forge script script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter
--skip test
--non-interactive
--evm-version "$EVM_VERSION_CHAIN138"
--rpc-url "$RPC_URL_138"
--private-key "$PRIVATE_KEY"
"$VERBOSITY"
@@ -111,11 +113,12 @@ run_forge_dry_run() {
(
cd "$SMOM_ROOT" || exit 1
echo "Running targeted build warm-up"
forge build contracts/bridge/trustless/EnhancedSwapRouter.sol script/bridge/trustless/DeployEnhancedSwapRouter.s.sol
command forge build --evm-version "$EVM_VERSION_CHAIN138" contracts/bridge/trustless/EnhancedSwapRouter.sol script/bridge/trustless/DeployEnhancedSwapRouter.s.sol
echo ""
echo "Running sourced non-broadcast forge script"
echo "Working directory: $SMOM_ROOT"
echo "Timeout: ${RUN_TIMEOUT_SECONDS}s"
echo "EVM version: $EVM_VERSION_CHAIN138"
echo "Verbosity: $VERBOSITY"
echo ""
@@ -168,6 +171,8 @@ fi
echo "Required env"
show_var "RPC_URL_138" "$RPC_URL_138" "Core RPC only"
show_var "PRIVATE_KEY" "<set>" "value loaded; not printed"
show_var "FOUNDRY_PROFILE" "$FOUNDRY_PROFILE" "Chain 138 profile defaults to Paris"
show_var "EVM_VERSION_CHAIN138" "$EVM_VERSION_CHAIN138" "Chain 138 Paris hard fork; avoids PUSH0/MCOPY bytecode"
echo ""
echo "Chain 138 token env used by the deploy script"
@@ -232,9 +237,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 && bash scripts/forge/scope.sh script bridge/trustless script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter --rpc-url \"$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\""
echo "cd \"$PROJECT_ROOT/smom-dbis-138\" && source scripts/lib/deployment/dotenv.sh && load_deployment_env --repo-root \"\$PWD/..\" && forge script script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter --evm-version \"$EVM_VERSION_CHAIN138\" --rpc-url \"$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\""
else
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\""
echo "cd \"$SMOM_ROOT\" && source .env && forge script script/bridge/trustless/DeployEnhancedSwapRouter.s.sol:DeployEnhancedSwapRouter --evm-version \"$EVM_VERSION_CHAIN138\" --rpc-url \"$RPC_URL_138\" --private-key \"\$PRIVATE_KEY\""
fi
echo ""
echo "Example minimal exports before dry-run"
@@ -260,6 +265,7 @@ echo " bash scripts/deployment/dry-run-enhanced-swap-router-chain138.sh --run"
echo " bash scripts/deployment/dry-run-enhanced-swap-router-chain138.sh --run --timeout-seconds 180 --verbosity -vvv"
echo ""
echo "Note: this is a safe dry-run helper only. The deploy script still warns that swapToStablecoin() needs real WETH->stable routes to be useful on Chain 138."
echo "Note: Chain 138 is Paris; do not compile Chain 138 deploy bytecode with Cancun/Shanghai opcodes."
if (( RUN_FORGE_DRY_RUN == 1 )); then
echo ""

View File

@@ -10,6 +10,8 @@ ENV_SOURCE="<none>"
RUN_FORGE_DRY_RUN=0
RUN_TIMEOUT_SECONDS="${RUN_TIMEOUT_SECONDS:-120}"
VERBOSITY="${VERBOSITY:--vv}"
EVM_VERSION_CHAIN138="${EVM_VERSION_CHAIN138:-paris}"
export FOUNDRY_PROFILE="${FOUNDRY_PROFILE:-chain138}"
while [[ $# -gt 0 ]]; do
case "$1" in
@@ -51,7 +53,7 @@ RPC_URL_138="${RPC_URL_138:-http://192.168.11.211:8545}"
WETH="${WETH:-0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}"
OFFICIAL_USDT_ADDRESS="${OFFICIAL_USDT_ADDRESS:-0x004b63A7B5b0E06f6bB6adb4a5F9f590BF3182D1}"
OFFICIAL_USDC_ADDRESS="${OFFICIAL_USDC_ADDRESS:-0x71D6687F38b93CCad569Fa6352c876eea967201b}"
DODO_PMM_PROVIDER_ADDRESS="${DODO_PMM_PROVIDER_ADDRESS:-${DODO_PMM_PROVIDER:-}}"
DODO_PMM_PROVIDER_ADDRESS="${DODO_PMM_PROVIDER_ADDRESS:-${CHAIN_138_DODO_PMM_PROVIDER:-0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381}}"
show_var() {
local name="$1" value="$2" note="${3:-}"
@@ -101,13 +103,14 @@ run_forge_dry_run() {
forge script script/bridge/trustless/DeployEnhancedSwapRouterV2.s.sol:DeployEnhancedSwapRouterV2
--skip test
--non-interactive
--evm-version "$EVM_VERSION_CHAIN138"
--rpc-url "$RPC_URL_138"
--private-key "$PRIVATE_KEY"
"$VERBOSITY"
)
(
cd "$SMOM_ROOT"
forge build contracts/bridge/trustless/EnhancedSwapRouterV2.sol script/bridge/trustless/DeployEnhancedSwapRouterV2.s.sol
forge build --evm-version "$EVM_VERSION_CHAIN138" contracts/bridge/trustless/EnhancedSwapRouterV2.sol script/bridge/trustless/DeployEnhancedSwapRouterV2.s.sol
if command -v timeout >/dev/null 2>&1; then
timeout "${RUN_TIMEOUT_SECONDS}s" "${forge_cmd[@]}"
else
@@ -124,6 +127,8 @@ echo ""
show_var "RPC_URL_138" "$RPC_URL_138" "Core RPC only"
show_secret_var "PRIVATE_KEY" "${PRIVATE_KEY:-}" "not printed when present"
show_var "FOUNDRY_PROFILE" "$FOUNDRY_PROFILE" "Chain 138 profile defaults to Paris"
show_var "EVM_VERSION_CHAIN138" "$EVM_VERSION_CHAIN138" "Chain 138 Paris hard fork; avoids PUSH0/MCOPY bytecode"
show_var "DODO_PMM_PROVIDER_ADDRESS" "${DODO_PMM_PROVIDER_ADDRESS:-<unset>}" "required"
show_var "CHAIN138_POOL_WETH_USDT" "${CHAIN138_POOL_WETH_USDT:-<unset>}" "required for swapToStablecoin readiness"
show_var "CHAIN138_POOL_WETH_USDC" "${CHAIN138_POOL_WETH_USDC:-<unset>}" "required for swapToStablecoin readiness"

View File

@@ -17,7 +17,7 @@ PLAN_JSON="${PLAN_JSON:-$SMOM_ROOT/config/chain138-eth-pmm-liquidity-plan.json}"
PROFILE="${PROFILE:-}"
EXECUTE="${EXECUTE:-0}"
RPC_URL_138="${RPC_URL_138:-${RPC_URL:-http://192.168.11.211:8545}}"
DODO_PMM_INTEGRATION_ADDRESS="${DODO_PMM_INTEGRATION_ADDRESS:-${DODO_PMM_INTEGRATION:-}}"
DODO_PMM_INTEGRATION_ADDRESS="${CHAIN_138_DODO_PMM_INTEGRATION:-${DODO_PMM_INTEGRATION_ADDRESS:-0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d}}"
PRIVATE_KEY="${PRIVATE_KEY:-}"
command -v jq >/dev/null 2>&1 || { echo "jq is required" >&2; exit 1; }

View File

@@ -27,8 +27,16 @@ fi
[[ -n "$ORIG_DODO_PMM_PROVIDER" ]] && DODO_PMM_PROVIDER="$ORIG_DODO_PMM_PROVIDER"
RPC_URL_138="${RPC_URL_138:-${RPC_URL:-http://192.168.11.211:8545}}"
DODO_PMM_INTEGRATION_ADDRESS="${DODO_PMM_INTEGRATION_ADDRESS:-${DODO_PMM_INTEGRATION:-}}"
DODO_PMM_PROVIDER_ADDRESS="${DODO_PMM_PROVIDER_ADDRESS:-${DODO_PMM_PROVIDER:-}}"
if [[ -n "$ORIG_DODO_PMM_INTEGRATION_ADDRESS" ]]; then
DODO_PMM_INTEGRATION_ADDRESS="$ORIG_DODO_PMM_INTEGRATION_ADDRESS"
else
DODO_PMM_INTEGRATION_ADDRESS="${CHAIN_138_DODO_PMM_INTEGRATION:-0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d}"
fi
if [[ -n "$ORIG_DODO_PMM_PROVIDER_ADDRESS" ]]; then
DODO_PMM_PROVIDER_ADDRESS="$ORIG_DODO_PMM_PROVIDER_ADDRESS"
else
DODO_PMM_PROVIDER_ADDRESS="${CHAIN_138_DODO_PMM_PROVIDER:-0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381}"
fi
[[ -f "$CONFIG_JSON" ]] || { echo "POOL_CONFIG_JSON not found: $CONFIG_JSON" >&2; exit 1; }
command -v jq >/dev/null 2>&1 || { echo "jq is required" >&2; exit 1; }

View File

@@ -8,8 +8,8 @@ ENV_FILE="$SMOM_ROOT/.env"
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:-}}"
DODO_PMM_PROVIDER_ADDRESS="${DODO_PMM_PROVIDER_ADDRESS:-${DODO_PMM_PROVIDER:-}}"
DODO_PMM_INTEGRATION_ADDRESS="${CHAIN_138_DODO_PMM_INTEGRATION:-${DODO_PMM_INTEGRATION_ADDRESS:-0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d}}"
DODO_PMM_PROVIDER_ADDRESS="${CHAIN_138_DODO_PMM_PROVIDER:-${DODO_PMM_PROVIDER_ADDRESS:-0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381}}"
[[ -n "$DODO_PMM_INTEGRATION_ADDRESS" ]] || { echo "DODO_PMM_INTEGRATION_ADDRESS not set"; exit 1; }
[[ -n "$DODO_PMM_PROVIDER_ADDRESS" ]] || { echo "DODO_PMM_PROVIDER_ADDRESS not set"; exit 1; }

View File

@@ -24,7 +24,7 @@ fi
command -v cast >/dev/null 2>&1 || { echo "cast is required" >&2; exit 1; }
RPC_URL_138="${RPC_URL_138:-${RPC_URL:-http://192.168.11.221:8545}}"
DODO_PMM_INTEGRATION_ADDRESS="${DODO_PMM_INTEGRATION_ADDRESS:-${DODO_PMM_INTEGRATION:-}}"
DODO_PMM_INTEGRATION_ADDRESS="${CHAIN_138_DODO_PMM_INTEGRATION:-${DODO_PMM_INTEGRATION_ADDRESS:-0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d}}"
PRIVATE_KEY="${PRIVATE_KEY:-${DEPLOYER_PRIVATE_KEY:-}}"
CHAIN_GAS_PRICE="${CHAIN_GAS_PRICE:-1000000000}"
APPROVE_GAS_LIMIT="${APPROVE_GAS_LIMIT:-200000}"

View File

@@ -53,8 +53,16 @@ fi
[[ -n "$ORIG_REGISTER_POOL_GAS_LIMIT" ]] && REGISTER_POOL_GAS_LIMIT="$ORIG_REGISTER_POOL_GAS_LIMIT"
RPC_URL_138="${RPC_URL_138:-${RPC_URL:-http://192.168.11.211:8545}}"
DODO_PMM_INTEGRATION_ADDRESS="${DODO_PMM_INTEGRATION_ADDRESS:-${DODO_PMM_INTEGRATION:-}}"
DODO_PMM_PROVIDER_ADDRESS="${DODO_PMM_PROVIDER_ADDRESS:-${DODO_PMM_PROVIDER:-}}"
if [[ -n "$ORIG_DODO_PMM_INTEGRATION_ADDRESS" ]]; then
DODO_PMM_INTEGRATION_ADDRESS="$ORIG_DODO_PMM_INTEGRATION_ADDRESS"
else
DODO_PMM_INTEGRATION_ADDRESS="${CHAIN_138_DODO_PMM_INTEGRATION:-0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d}"
fi
if [[ -n "$ORIG_DODO_PMM_PROVIDER_ADDRESS" ]]; then
DODO_PMM_PROVIDER_ADDRESS="$ORIG_DODO_PMM_PROVIDER_ADDRESS"
else
DODO_PMM_PROVIDER_ADDRESS="${CHAIN_138_DODO_PMM_PROVIDER:-0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381}"
fi
DRY_RUN="${DRY_RUN:-0}"
[[ -f "$CONFIG_JSON" ]] || { echo "POOL_CONFIG_JSON not found: $CONFIG_JSON" >&2; exit 1; }