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

@@ -1,6 +1,6 @@
{
"description": "Reference inventory moved out of smom-dbis-138/.env during dotenv cleanup. These are deployed/inventory addresses, not the minimal runtime env surface.",
"updated": "2026-04-03",
"updated": "2026-04-29",
"chain138Inventory": {
"COMPLIANCE_REGISTRY": "0xbc54fe2b6fda157c59d59826bcfdbcc654ec9ea1",
"COMPLIANCE_REGISTRY_ADDRESS": "0xbc54fe2b6fda157c59d59826bcfdbcc654ec9ea1",
@@ -71,7 +71,7 @@
"MIRROR_REGISTRY": "0x6427F9739e6B6c3dDb4E94fEfeBcdF35549549d8",
"ALLTRA_ADAPTER": "0x66FEBA2fC9a0B47F26DD4284DAd24F970436B8Dc",
"DODO_DVM_FACTORY": "0xc93870594C7f83A0aE076c2e30b494Efc526b68E",
"DODO_VENDING_MACHINE_ADDRESS": "0xb6D9EF3575bc48De3f011C310DC24d87bEC6087C",
"DODO_VENDING_MACHINE_ADDRESS": "0xB16c3D48A111714B1795E58341FeFDd643Ab01ab",
"DODO_PMM_INTEGRATION": "0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895",
"DODO_PMM_PROVIDER": "0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e",
"CAUSDT_ADDRESS_138": "0x5fdDF65733e3d590463F68f93Cf16E8c04081271",
@@ -84,6 +84,17 @@
"WXRP_TOKEN_CHAIN138": "0xe8572f3ABD73Eff0A2e8AC5C88C2b6D180735f97",
"MINT_BURN_CONTROLLER_CHAIN138": "0x44F79a3cec3fb829973d9b8d630839726D19e9c5",
"TRON_ADAPTER_CHAIN138": "0x28a94FB4bC415Ac3273211429338f768074CBEF6",
"PRICE_FEED_KEEPER_ADDRESS": "0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04"
"PRICE_FEED_KEEPER_ADDRESS": "0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04",
"ENHANCED_SWAP_ROUTER_CHAIN138": "0xE6Cc7643ae2A4C720A28D8263BC4972905d7DE0f",
"ENHANCED_SWAP_ROUTER_ADDRESS": "0xE6Cc7643ae2A4C720A28D8263BC4972905d7DE0f",
"ENHANCED_SWAP_ROUTER_V1_ADDRESS": "0xE6Cc7643ae2A4C720A28D8263BC4972905d7DE0f",
"DODO_PMM_INTEGRATION_ADDRESS": "0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895",
"DODOEX_ROUTER": "0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895",
"DODO_PMM_PROVIDER_ADDRESS": "0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e",
"POOL_CUSDT_XAU_PUBLIC": "0x1AA55E2001E5651349aFf5a63FD7a7ae44f0f1b0",
"POOL_CUSDC_XAU_PUBLIC": "0xEa9AC6357CaCB42a83b9082B870610363b177CbA",
"POOL_CEURT_XAU_PUBLIC": "0xba99bc1eAac164569d5aca96c806934dDaf970CF",
"CHAIN138_POOL_WETH_USDT": "0xe227f6c0520c0c6e8786fe56fa76c4914f861533",
"CHAIN138_POOL_WETH_USDC": "0xb53a0508940b1ff90f1aad4f6cb50a7012fe5593"
}
}

View File

@@ -1,15 +1,18 @@
{
"description": "Canonical runtime-used Chain 138 env surface for token-aggregation and PMM-aware services.",
"updated": "2026-04-03",
"updated": "2026-04-29",
"runtimeUsed": {
"DODO_PMM_INTEGRATION": "0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895",
"DODO_PMM_INTEGRATION_ADDRESS": "0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895",
"DODO_PMM_PROVIDER": "0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e",
"DODO_PMM_PROVIDER_ADDRESS": "0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e",
"OFFICIAL_USDT_ADDRESS": "0x004b63A7B5b0E06f6bB6adb4a5F9f590BF3182D1",
"OFFICIAL_USDC_ADDRESS": "0x71D6687F38b93CCad569Fa6352c876eea967201b",
"CCIPWETH9_BRIDGE_CHAIN138": "0xcacfd227A040002e49e2e01626363071324f820a",
"CCIPWETH10_BRIDGE_CHAIN138": "0xe0E93247376aa097dB308B92e6Ba36bA015535D0",
"CHAIN_138_DODO_PMM_INTEGRATION": "0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895",
"CHAIN_138_DODO_VENDING_MACHINE": "0xb6D9EF3575bc48De3f011C310DC24d87bEC6087C",
"CHAIN_138_DODO_PMM_PROVIDER": "0x3f729632E9553EBacCdE2e9b4c8F2B285b014F2e",
"CHAIN_138_DODO_VENDING_MACHINE": "0xB16c3D48A111714B1795E58341FeFDd643Ab01ab",
"UNIVERSAL_CCIP_BRIDGE": "0xCd42e8eD79Dc50599535d1de48d3dAFa0BE156F8",
"UNISWAP_V3_ROUTER": "0xde9cD8ee2811E6E64a41D5F68Be315d33995975E",
"UNISWAP_QUOTER_ADDRESS": "0x6abbB1CEb2468e748a03A00CD6aA9BFE893AFa1f",
@@ -33,6 +36,9 @@
"CCHFC_ADDRESS_138": "0x873990849DDa5117d7C644f0aF24370797C03885",
"CCADC_ADDRESS_138": "0x54dBd40cF05e15906A2C21f600937e96787f5679",
"CXAUC_ADDRESS_138": "0x290E52a8819A4fbD0714E517225429aA2B70EC6b",
"CXAUT_ADDRESS_138": "0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E"
"CXAUT_ADDRESS_138": "0x94e408E26c6FD8F4ee00b54dF19082FDA07dC96E",
"ENHANCED_SWAP_ROUTER_CHAIN138": "0xE6Cc7643ae2A4C720A28D8263BC4972905d7DE0f",
"ENHANCED_SWAP_ROUTER_ADDRESS": "0xE6Cc7643ae2A4C720A28D8263BC4972905d7DE0f",
"ENHANCED_SWAP_ROUTER_V1_ADDRESS": "0xE6Cc7643ae2A4C720A28D8263BC4972905d7DE0f"
}
}

View File

@@ -0,0 +1,61 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
interface IDODOPMMSwapPool {
function _BASE_TOKEN_() external view returns (address);
function _QUOTE_TOKEN_() external view returns (address);
function sellBase(address to) external returns (uint256 receiveQuoteAmount);
function sellQuote(address to) external returns (uint256 receiveBaseAmount);
}
/**
* @notice Minimal public adapter for DVM-style Chain 138 PMM pools.
* @dev Keeps the atomic-swap dapp's existing swapExactIn surface while using
* the pool execution selectors exposed by the Chain 138 PMM pools.
*/
contract DODOPMMSwapAdapter is ReentrancyGuard {
using SafeERC20 for IERC20;
event SwapExecuted(
address indexed pool,
address indexed tokenIn,
address indexed tokenOut,
uint256 amountIn,
uint256 amountOut,
address trader
);
function swapExactIn(
address pool,
address tokenIn,
uint256 amountIn,
uint256 minAmountOut
) external nonReentrant returns (uint256 amountOut) {
require(pool != address(0), "DODOPMMSwapAdapter: zero pool");
require(tokenIn != address(0), "DODOPMMSwapAdapter: zero token");
require(amountIn > 0, "DODOPMMSwapAdapter: zero amount");
address baseToken = IDODOPMMSwapPool(pool)._BASE_TOKEN_();
address quoteToken = IDODOPMMSwapPool(pool)._QUOTE_TOKEN_();
address tokenOut;
if (tokenIn == baseToken) {
tokenOut = quoteToken;
IERC20(tokenIn).safeTransferFrom(msg.sender, pool, amountIn);
amountOut = IDODOPMMSwapPool(pool).sellBase(msg.sender);
} else if (tokenIn == quoteToken) {
tokenOut = baseToken;
IERC20(tokenIn).safeTransferFrom(msg.sender, pool, amountIn);
amountOut = IDODOPMMSwapPool(pool).sellQuote(msg.sender);
} else {
revert("DODOPMMSwapAdapter: token not in pool");
}
require(amountOut >= minAmountOut, "DODOPMMSwapAdapter: insufficient output");
emit SwapExecuted(pool, tokenIn, tokenOut, amountIn, amountOut, msg.sender);
}
}

View File

@@ -60,9 +60,17 @@ evm_version = "cancun"
optimizer = true
optimizer_runs = 100
via_ir = true
# Match default execution target (Chain 138 / Besu uses Cancun-capable clients).
# Generic deploy profile for post-Dencun EVMs. Do not use for Chain 138.
evm_version = "cancun"
[profile.chain138]
optimizer = true
optimizer_runs = 100
via_ir = true
# Chain 138 Besu v25.12 is configured for Paris. Shanghai/Cancun bytecode
# (PUSH0/MCOPY) is rejected on-chain, so all Chain 138 deploys must target Paris.
evm_version = "paris"
[profile.cronos_legacy]
optimizer = true
optimizer_runs = 100
@@ -74,7 +82,7 @@ evm_version = "paris"
optimizer = true
optimizer_runs = 100
via_ir = true
# Chain 138 currently rejects PUSH0 bytecode as well; target Paris for gas-canonical deployment flows.
# Backwards-compatible alias for older scripts; prefer profile.chain138.
evm_version = "paris"
# RPC endpoints — use: forge create ... --rpc-url chain138

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; }