Files
proxmox/docs/03-deployment/CW_PUBLIC_NETWORK_REPEG_PLAN.md
defiQUG b8613905bd
Some checks failed
Deploy to Phoenix / validate (push) Failing after 15s
Deploy to Phoenix / deploy (push) Has been skipped
chore: sync workspace — configs, docs, scripts, CI, pnpm, submodules
- Submodule pins: dbis_core, cross-chain-pmm-lps, mcp-proxmox (local, push may be pending), metamask-integration, smom-dbis-138
- Atomic swap + cross-chain-pmm-lops-publish, deploy-portal workflow, phoenix deploy-targets, routing/aggregator matrices
- Docs, token-lists, forge proxy, phoenix API, runbooks, verify scripts

Made-with: Cursor
2026-04-21 22:01:33 -07:00

26 KiB

cW Public Network Repeg Plan

  • Generated: 2026-04-20T00:49:46Z
  • Price report: /home/intlc/projects/proxmox/reports/status/cw-public-prices-latest.json
  • Deployment inventory: /home/intlc/projects/proxmox/cross-chain-pmm-lps/config/deployment-status.json
  • Uniswap discovery: /home/intlc/projects/proxmox/reports/extraction/promod-uniswap-v2-live-pair-discovery-latest.json
  • Scope: current off-peg or unreadable public-network cW* pools only.
  • PMM rule: if current price is below target, fund quote and buy base; if current price is above target, fund base and sell base.
  • Uniswap rule: remove bad LP or ignore stale LP, then reseed at the target reserve ratio.

Off-Peg DODO PMM Pools

Chain Pair Pool Current Target Deviation Repair Path
1 Ethereum Mainnet cWEURC/USDC 0x0bC750F9c6DbDcd76B205695A356491b1B9ef098 1.15145921 1.08000000 +6.62% Fund base side and sell base into cWEURC/USDC until getMidPrice() returns target.
1 Ethereum Mainnet cWGBPC/USDC 0x5488042dF882893a3e7074453E2005CaDE4101b0 1.29980755 1.27000000 +2.35% Fund base side and sell base into cWGBPC/USDC until getMidPrice() returns target.
1 Ethereum Mainnet cWJPYC/USDC 0x8A4187dF0A8FE855cC53A4F7B2D8346588Ee9794 0.00827694 0.00670000 +23.54% Fund base side and sell base into cWJPYC/USDC until getMidPrice() returns target.
1 Ethereum Mainnet cWUSDC/USDC 0x69776fc607e9edA8042e320e7e43f54d06c68f0E 0.24519859 1.00000000 -75.48% Fund quote side and buy base through cWUSDC/USDC until getMidPrice() returns target.
1 Ethereum Mainnet cWUSDT/USDC 0x27f3aE7EE71Be3d77bAf17d4435cF8B895DD25D2 0.24377078 1.00000000 -75.62% Fund quote side and buy base through cWUSDT/USDC until getMidPrice() returns target.
100 Gnosis Chain cWAUDC/USDC 0xeb5A688dF70be2F790719872Be9Ecc5648aEE460 1.00000000 0.66000000 +51.52% Fund base side and sell base into cWAUDC/USDC until getMidPrice() returns target.
137 Polygon cWAUDC/USDC 0xbD34966FE5Eed81AFffF8081e9BB527Fc8066783 1.00000000 0.66000000 +51.52% Fund base side and sell base into cWAUDC/USDC until getMidPrice() returns target.
43114 Avalanche C-Chain cWAUDC/USDC 0x287edaBDA35195592d7CACe2C1A75eC66caF1D70 1.00000000 0.66000000 +51.52% Fund base side and sell base into cWAUDC/USDC until getMidPrice() returns target.

Broken Uniswap Pairs

Chain Pair Pool Current Ratio Target Deviation Repair Path
56 BSC (BNB Chain) cWAUSDT/cWUSDC 0x639D7e64C6f1fC676226f20a0C42aEcDD66545E8 0.66666667 1.00000000 -33.33% Withdraw or ignore bad LP, then reseed cWAUSDT/cWUSDC through the chain router at target ratio 1 with balanced reserves.
56 BSC (BNB Chain) cWAUSDT/cWUSDT 0xe9b082bAa73Fa4DEc7CB3CbD99B19D30BbfE1523 0.66666667 1.00000000 -33.33% Withdraw or ignore bad LP, then reseed cWAUSDT/cWUSDT through the chain router at target ratio 1 with balanced reserves.
137 Polygon cWAUSDT/cWUSDC 0xe6a5Cb164D4AF7E9794AEd09EC373392D0E7216c 0.66666667 1.00000000 -33.33% Withdraw or ignore bad LP, then reseed cWAUSDT/cWUSDC through the chain router at target ratio 1 with balanced reserves.
137 Polygon cWAUSDT/cWUSDT 0x8cD2Cb42B81F894eb10D15446DB22A3B31d6fB2E 0.66666667 1.00000000 -33.33% Withdraw or ignore bad LP, then reseed cWAUSDT/cWUSDT through the chain router at target ratio 1 with balanced reserves.
42220 Celo cWAUSDT/cWUSDC 0xd3B55d6d7C08fDbF5F201e486992643cfF410d91 0.66666667 1.00000000 -33.33% Withdraw or ignore bad LP, then reseed cWAUSDT/cWUSDC through the chain router at target ratio 1 with balanced reserves.
42220 Celo cWAUSDT/cWUSDT 0xEe9eEBf89C1424e63eFc888929E43a9423357D39 0.66666667 1.00000000 -33.33% Withdraw or ignore bad LP, then reseed cWAUSDT/cWUSDT through the chain router at target ratio 1 with balanced reserves.
43114 Avalanche C-Chain cWAUSDT/cWUSDC 0xaaD6aed8d28B0195D19B4d17F8ee9A1837ff2DCE 0.66666667 1.00000000 -33.33% Withdraw or ignore bad LP, then reseed cWAUSDT/cWUSDC through the chain router at target ratio 1 with balanced reserves.
43114 Avalanche C-Chain cWAUSDT/cWUSDT 0x418322F48D857277ec4BCc96Bc1580aCCB7EA253 0.66666667 1.00000000 -33.33% Withdraw or ignore bad LP, then reseed cWAUSDT/cWUSDT through the chain router at target ratio 1 with balanced reserves.

Unpriced Targets

Chain Token Target Status
10 Optimism cWUSDC 1.00000000 no live price path found from current public snapshot
10 Optimism cWUSDT 1.00000000 no live price path found from current public snapshot
25 Cronos cWUSDC 1.00000000 no live price path found from current public snapshot
25 Cronos cWUSDT 1.00000000 no live price path found from current public snapshot
56 BSC (BNB Chain) cWAUSDT 1.00000000 no live price path found from current public snapshot
56 BSC (BNB Chain) cWUSDC 1.00000000 no live price path found from current public snapshot
56 BSC (BNB Chain) cWUSDT 1.00000000 no live price path found from current public snapshot
56 BSC (BNB Chain) cWUSDW 1.00000000 no live price path found from current public snapshot
100 Gnosis Chain cWUSDC 1.00000000 no live price path found from current public snapshot
100 Gnosis Chain cWUSDT 1.00000000 no live price path found from current public snapshot
8453 Base cWUSDC 1.00000000 no live price path found from current public snapshot
8453 Base cWUSDT 1.00000000 no live price path found from current public snapshot
42161 Arbitrum One cWUSDC 1.00000000 no live price path found from current public snapshot
42161 Arbitrum One cWUSDT 1.00000000 no live price path found from current public snapshot
42220 Celo cWAUDC 0.66000000 no live price path found from current public snapshot
42220 Celo cWAUSDT 1.00000000 no live price path found from current public snapshot
42220 Celo cWCADC 0.74000000 no live price path found from current public snapshot
42220 Celo cWCHFC 1.11000000 no live price path found from current public snapshot
42220 Celo cWEURC 1.08000000 no live price path found from current public snapshot
42220 Celo cWEURT 1.08000000 no live price path found from current public snapshot
42220 Celo cWGBPC 1.27000000 no live price path found from current public snapshot
42220 Celo cWGBPT 1.27000000 no live price path found from current public snapshot
42220 Celo cWJPYC 0.00670000 no live price path found from current public snapshot
42220 Celo cWUSDC 1.00000000 no live price path found from current public snapshot
42220 Celo cWUSDT 1.00000000 no live price path found from current public snapshot
42220 Celo cWUSDW 1.00000000 no live price path found from current public snapshot
42220 Celo cWXAUC 3200.00000000 no live price path found from current public snapshot
42220 Celo cWXAUT 3200.00000000 no live price path found from current public snapshot
43114 Avalanche C-Chain cWAUSDT 1.00000000 no live price path found from current public snapshot
43114 Avalanche C-Chain cWUSDC 1.00000000 no live price path found from current public snapshot
43114 Avalanche C-Chain cWUSDT 1.00000000 no live price path found from current public snapshot
43114 Avalanche C-Chain cWUSDW 1.00000000 no live price path found from current public snapshot

1 Ethereum Mainnet cWEURC/USDC

  • Suggested funding side: cWEURC
  • Suggested trade raw: 82716
  • Suggested trade units: 0.082716
  • Gap fraction: 0.066166
  • Deployer balance on funding side: 0.004987 cWEURC
  • Deployer shortfall: 0.077729 cWEURC
  • Covered: False
source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${ETHEREUM_MAINNET_RPC}"
export INTEGRATION="0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84"
export POOL="0x0bC750F9c6DbDcd76B205695A356491b1B9ef098"
export BASE_TOKEN="0xD4aEAa8cD3fB41Dc8437FaC7639B6d91B60A5e8d"
export QUOTE_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
export BASE_IN_RAW=REPLACE_BASE_IN_RAW
export MIN_QUOTE_OUT_RAW=REPLACE_MIN_QUOTE_OUT_RAW
cast send "$BASE_TOKEN" 'approve(address,uint256)(bool)' "$INTEGRATION" "$BASE_IN_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$INTEGRATION" 'swapExactIn(address,address,uint256,uint256)' "$POOL" "$BASE_TOKEN" "$BASE_IN_RAW" "$MIN_QUOTE_OUT_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

1 Ethereum Mainnet cWGBPC/USDC

  • Suggested funding side: cWGBPC
  • Suggested trade raw: 2939
  • Suggested trade units: 0.002939
  • Gap fraction: 0.023471
  • Deployer balance on funding side: 0.000478 cWGBPC
  • Deployer shortfall: 0.002461 cWGBPC
  • Covered: False
source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${ETHEREUM_MAINNET_RPC}"
export INTEGRATION="0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84"
export POOL="0x5488042dF882893a3e7074453E2005CaDE4101b0"
export BASE_TOKEN="0xc074007dc0bfb384b1cf6426a56287ed23fe4d52"
export QUOTE_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
export BASE_IN_RAW=REPLACE_BASE_IN_RAW
export MIN_QUOTE_OUT_RAW=REPLACE_MIN_QUOTE_OUT_RAW
cast send "$BASE_TOKEN" 'approve(address,uint256)(bool)' "$INTEGRATION" "$BASE_IN_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$INTEGRATION" 'swapExactIn(address,address,uint256,uint256)' "$POOL" "$BASE_TOKEN" "$BASE_IN_RAW" "$MIN_QUOTE_OUT_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

1 Ethereum Mainnet cWJPYC/USDC

  • Suggested funding side: cWJPYC
  • Suggested trade raw: 26502
  • Suggested trade units: 0.026502
  • Gap fraction: 0.235364
  • Deployer balance on funding side: 0 cWJPYC
  • Deployer shortfall: 0.026502 cWJPYC
  • Covered: False
source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${ETHEREUM_MAINNET_RPC}"
export INTEGRATION="0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84"
export POOL="0x8A4187dF0A8FE855cC53A4F7B2D8346588Ee9794"
export BASE_TOKEN="0x07EEd0D7dD40984e47B9D3a3bdded1c536435582"
export QUOTE_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
export BASE_IN_RAW=REPLACE_BASE_IN_RAW
export MIN_QUOTE_OUT_RAW=REPLACE_MIN_QUOTE_OUT_RAW
cast send "$BASE_TOKEN" 'approve(address,uint256)(bool)' "$INTEGRATION" "$BASE_IN_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$INTEGRATION" 'swapExactIn(address,address,uint256,uint256)' "$POOL" "$BASE_TOKEN" "$BASE_IN_RAW" "$MIN_QUOTE_OUT_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

1 Ethereum Mainnet cWUSDC/USDC

  • Suggested funding side: USDC
  • Suggested trade raw: 665998742
  • Suggested trade units: 665.998742
  • Gap fraction: 0.754801
  • Deployer balance on funding side: 52.51225 USDC
  • Deployer shortfall: 613.486492 USDC
  • Covered: False
source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${ETHEREUM_MAINNET_RPC}"
export INTEGRATION="0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84"
export POOL="0x69776fc607e9edA8042e320e7e43f54d06c68f0E"
export BASE_TOKEN="0x2de5F116bFcE3d0f922d9C8351e0c5Fc24b9284a"
export QUOTE_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
export QUOTE_IN_RAW=REPLACE_QUOTE_IN_RAW
export MIN_BASE_OUT_RAW=REPLACE_MIN_BASE_OUT_RAW
cast send "$QUOTE_TOKEN" 'approve(address,uint256)(bool)' "$INTEGRATION" "$QUOTE_IN_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$INTEGRATION" 'swapExactIn(address,address,uint256,uint256)' "$POOL" "$QUOTE_TOKEN" "$QUOTE_IN_RAW" "$MIN_BASE_OUT_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

1 Ethereum Mainnet cWUSDT/USDC

  • Suggested funding side: USDC
  • Suggested trade raw: 7071662
  • Suggested trade units: 7.071662
  • Gap fraction: 0.756229
  • Deployer balance on funding side: 52.51225 USDC
  • Deployer shortfall: 0 USDC
  • Covered: True
source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${ETHEREUM_MAINNET_RPC}"
export INTEGRATION="0xa9F284eD010f4F7d7F8F201742b49b9f58e29b84"
export POOL="0x27f3aE7EE71Be3d77bAf17d4435cF8B895DD25D2"
export BASE_TOKEN="0xaF5017d0163ecb99D9B5D94e3b4D7b09Af44D8AE"
export QUOTE_TOKEN="0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
export QUOTE_IN_RAW=REPLACE_QUOTE_IN_RAW
export MIN_BASE_OUT_RAW=REPLACE_MIN_BASE_OUT_RAW
cast send "$QUOTE_TOKEN" 'approve(address,uint256)(bool)' "$INTEGRATION" "$QUOTE_IN_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$INTEGRATION" 'swapExactIn(address,address,uint256,uint256)' "$POOL" "$QUOTE_TOKEN" "$QUOTE_IN_RAW" "$MIN_BASE_OUT_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

100 Gnosis Chain cWAUDC/USDC

  • Suggested funding side: cWAUDC
  • Suggested trade raw: 0
  • Suggested trade units: 0
  • Gap fraction: 0.515152
  • Deployer balance on funding side: 0 cWAUDC
  • Deployer shortfall: 0 cWAUDC
  • Covered: True
  • Reserve snapshot: baseRaw=0 quoteRaw=0
  • Sizing note: Pool reports zero vault reserves; heuristic trade size is informational only.
source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${GNOSIS_RPC_URL}"
export INTEGRATION="0x5866c2CeAfcdB36375A731532B434c370885678a"
export POOL="0xeb5A688dF70be2F790719872Be9Ecc5648aEE460"
export BASE_TOKEN="0xddc4063f770f7c49d00b5a10fb552e922aa39b2c"
export QUOTE_TOKEN="0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83"
export BASE_IN_RAW=REPLACE_BASE_IN_RAW
export MIN_QUOTE_OUT_RAW=REPLACE_MIN_QUOTE_OUT_RAW
cast send "$BASE_TOKEN" 'approve(address,uint256)(bool)' "$INTEGRATION" "$BASE_IN_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$INTEGRATION" 'swapExactIn(address,address,uint256,uint256)' "$POOL" "$BASE_TOKEN" "$BASE_IN_RAW" "$MIN_QUOTE_OUT_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

137 Polygon cWAUDC/USDC

  • Suggested funding side: unknown
  • Suggested trade raw: unknown
  • Suggested trade units: unknown
  • Gap fraction: unknown
  • Deployer balance on funding side: unknown ``
  • Deployer shortfall: unknown ``
  • Covered: unknown
  • Sizing note: Error: contract 0xc21223249ca28397b4b6541dffaecc539bff0c59 does not have any code
source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${POLYGON_MAINNET_RPC}"
export INTEGRATION="0x84353eD1f0C7a703a17aBAd19b0dB15Bc9A5e3e5"
export POOL="0xbD34966FE5Eed81AFffF8081e9BB527Fc8066783"
export BASE_TOKEN="0xFb4B6Cc81211F7d886950158294A44C312abCA29"
export QUOTE_TOKEN="0xc21223249CA28397B4B6541dfFaEcC539BfF0c59"
export BASE_IN_RAW=REPLACE_BASE_IN_RAW
export MIN_QUOTE_OUT_RAW=REPLACE_MIN_QUOTE_OUT_RAW
cast send "$BASE_TOKEN" 'approve(address,uint256)(bool)' "$INTEGRATION" "$BASE_IN_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$INTEGRATION" 'swapExactIn(address,address,uint256,uint256)' "$POOL" "$BASE_TOKEN" "$BASE_IN_RAW" "$MIN_QUOTE_OUT_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

43114 Avalanche C-Chain cWAUDC/USDC

  • Suggested funding side: cWAUDC
  • Suggested trade raw: 0
  • Suggested trade units: 0
  • Gap fraction: 0.515152
  • Deployer balance on funding side: 0 cWAUDC
  • Deployer shortfall: 0 cWAUDC
  • Covered: True
  • Reserve snapshot: baseRaw=0 quoteRaw=0
  • Sizing note: Pool reports zero vault reserves; heuristic trade size is informational only.
source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${AVALANCHE_RPC_URL}"
export INTEGRATION="0xf1B771c95573113E993374c0c7cB2dc1a7908B12"
export POOL="0x287edaBDA35195592d7CACe2C1A75eC66caF1D70"
export BASE_TOKEN="0x04e1e22b0d41e99f4275bd40a50480219bc9a223"
export QUOTE_TOKEN="0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E"
export BASE_IN_RAW=REPLACE_BASE_IN_RAW
export MIN_QUOTE_OUT_RAW=REPLACE_MIN_QUOTE_OUT_RAW
cast send "$BASE_TOKEN" 'approve(address,uint256)(bool)' "$INTEGRATION" "$BASE_IN_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$INTEGRATION" 'swapExactIn(address,address,uint256,uint256)' "$POOL" "$BASE_TOKEN" "$BASE_IN_RAW" "$MIN_QUOTE_OUT_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

56 BSC (BNB Chain) cWAUSDT/cWUSDC

source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${BSC_RPC_URL}"
export ROUTER="0x10ED43C718714eb63d5aA57B78B54704E256024E"
export PAIR="0x639D7e64C6f1fC676226f20a0C42aEcDD66545E8"
export TOKEN_A="0xe1a51Bc037a79AB36767561B147eb41780124934"
export TOKEN_B="0x5355148C4740fcc3D7a96F05EdD89AB14851206b"
export AMOUNT_A_RAW=REPLACE_AMOUNT_A_RAW
export AMOUNT_B_RAW=REPLACE_AMOUNT_B_RAW
export DEADLINE="$(( $(date +%s) + 3600 ))"
export SIGNER="$(cast wallet address --private-key "$PRIVATE_KEY")"
# Optional: remove bad LP first if you control LP tokens for this pair.
cast send "$TOKEN_A" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_A_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$TOKEN_B" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_B_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$ROUTER" 'addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)' \
  "$TOKEN_A" "$TOKEN_B" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$SIGNER" "$DEADLINE" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

56 BSC (BNB Chain) cWAUSDT/cWUSDT

source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${BSC_RPC_URL}"
export ROUTER="0x10ED43C718714eb63d5aA57B78B54704E256024E"
export PAIR="0xe9b082bAa73Fa4DEc7CB3CbD99B19D30BbfE1523"
export TOKEN_A="0xe1a51Bc037a79AB36767561B147eb41780124934"
export TOKEN_B="0x9a1D0dBEE997929ED02fD19E0E199704d20914dB"
export AMOUNT_A_RAW=REPLACE_AMOUNT_A_RAW
export AMOUNT_B_RAW=REPLACE_AMOUNT_B_RAW
export DEADLINE="$(( $(date +%s) + 3600 ))"
export SIGNER="$(cast wallet address --private-key "$PRIVATE_KEY")"
# Optional: remove bad LP first if you control LP tokens for this pair.
cast send "$TOKEN_A" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_A_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$TOKEN_B" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_B_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$ROUTER" 'addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)' \
  "$TOKEN_A" "$TOKEN_B" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$SIGNER" "$DEADLINE" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

137 Polygon cWAUSDT/cWUSDC

source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${POLYGON_MAINNET_RPC}"
export ROUTER="0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff"
export PAIR="0xe6a5Cb164D4AF7E9794AEd09EC373392D0E7216c"
export TOKEN_A="0xf12e262F85107df26741726b074606CaFa24AAe7"
export TOKEN_B="0xd6969bC19b53f866C64f2148aE271B2Dae0C58E4"
export AMOUNT_A_RAW=REPLACE_AMOUNT_A_RAW
export AMOUNT_B_RAW=REPLACE_AMOUNT_B_RAW
export DEADLINE="$(( $(date +%s) + 3600 ))"
export SIGNER="$(cast wallet address --private-key "$PRIVATE_KEY")"
# Optional: remove bad LP first if you control LP tokens for this pair.
cast send "$TOKEN_A" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_A_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$TOKEN_B" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_B_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$ROUTER" 'addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)' \
  "$TOKEN_A" "$TOKEN_B" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$SIGNER" "$DEADLINE" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

137 Polygon cWAUSDT/cWUSDT

source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${POLYGON_MAINNET_RPC}"
export ROUTER="0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff"
export PAIR="0x8cD2Cb42B81F894eb10D15446DB22A3B31d6fB2E"
export TOKEN_A="0xf12e262F85107df26741726b074606CaFa24AAe7"
export TOKEN_B="0x0cb0192C056aa425C557BdeAD8E56C7eEabf7acF"
export AMOUNT_A_RAW=REPLACE_AMOUNT_A_RAW
export AMOUNT_B_RAW=REPLACE_AMOUNT_B_RAW
export DEADLINE="$(( $(date +%s) + 3600 ))"
export SIGNER="$(cast wallet address --private-key "$PRIVATE_KEY")"
# Optional: remove bad LP first if you control LP tokens for this pair.
cast send "$TOKEN_A" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_A_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$TOKEN_B" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_B_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$ROUTER" 'addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)' \
  "$TOKEN_A" "$TOKEN_B" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$SIGNER" "$DEADLINE" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

42220 Celo cWAUSDT/cWUSDC

source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${CELO_RPC_URL}"
export ROUTER="0xE3D8bd6Aed4F159bc8000a9cD47CffDb95F96121"
export PAIR="0xd3B55d6d7C08fDbF5F201e486992643cfF410d91"
export TOKEN_A="0xC158b6cD3A3088C52F797D41f5Aa02825361629e"
export TOKEN_B="0x4C38F9A5ed68A04cd28a72E8c68C459Ec34576f3"
export AMOUNT_A_RAW=REPLACE_AMOUNT_A_RAW
export AMOUNT_B_RAW=REPLACE_AMOUNT_B_RAW
export DEADLINE="$(( $(date +%s) + 3600 ))"
export SIGNER="$(cast wallet address --private-key "$PRIVATE_KEY")"
# Optional: remove bad LP first if you control LP tokens for this pair.
cast send "$TOKEN_A" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_A_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$TOKEN_B" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_B_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$ROUTER" 'addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)' \
  "$TOKEN_A" "$TOKEN_B" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$SIGNER" "$DEADLINE" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

42220 Celo cWAUSDT/cWUSDT

source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${CELO_RPC_URL}"
export ROUTER="0xE3D8bd6Aed4F159bc8000a9cD47CffDb95F96121"
export PAIR="0xEe9eEBf89C1424e63eFc888929E43a9423357D39"
export TOKEN_A="0xC158b6cD3A3088C52F797D41f5Aa02825361629e"
export TOKEN_B="0x73376eB92c16977B126dB9112936A20Fa0De3442"
export AMOUNT_A_RAW=REPLACE_AMOUNT_A_RAW
export AMOUNT_B_RAW=REPLACE_AMOUNT_B_RAW
export DEADLINE="$(( $(date +%s) + 3600 ))"
export SIGNER="$(cast wallet address --private-key "$PRIVATE_KEY")"
# Optional: remove bad LP first if you control LP tokens for this pair.
cast send "$TOKEN_A" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_A_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$TOKEN_B" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_B_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$ROUTER" 'addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)' \
  "$TOKEN_A" "$TOKEN_B" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$SIGNER" "$DEADLINE" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

43114 Avalanche C-Chain cWAUSDT/cWUSDC

source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${AVALANCHE_RPC_URL}"
export ROUTER="0x60aE616a2155Ee3d9A68541Ba4544862310933d4"
export PAIR="0xaaD6aed8d28B0195D19B4d17F8ee9A1837ff2DCE"
export TOKEN_A="0xff3084410A732231472Ee9f93F5855dA89CC5254"
export TOKEN_B="0x0C242b513008Cd49C89078F5aFb237A3112251EB"
export AMOUNT_A_RAW=REPLACE_AMOUNT_A_RAW
export AMOUNT_B_RAW=REPLACE_AMOUNT_B_RAW
export DEADLINE="$(( $(date +%s) + 3600 ))"
export SIGNER="$(cast wallet address --private-key "$PRIVATE_KEY")"
# Optional: remove bad LP first if you control LP tokens for this pair.
cast send "$TOKEN_A" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_A_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$TOKEN_B" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_B_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$ROUTER" 'addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)' \
  "$TOKEN_A" "$TOKEN_B" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$SIGNER" "$DEADLINE" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"

43114 Avalanche C-Chain cWAUSDT/cWUSDT

source smom-dbis-138/scripts/load-env.sh >/dev/null
export RPC_URL="${AVALANCHE_RPC_URL}"
export ROUTER="0x60aE616a2155Ee3d9A68541Ba4544862310933d4"
export PAIR="0x418322F48D857277ec4BCc96Bc1580aCCB7EA253"
export TOKEN_A="0xff3084410A732231472Ee9f93F5855dA89CC5254"
export TOKEN_B="0x8142BA530B08f3950128601F00DaaA678213DFdf"
export AMOUNT_A_RAW=REPLACE_AMOUNT_A_RAW
export AMOUNT_B_RAW=REPLACE_AMOUNT_B_RAW
export DEADLINE="$(( $(date +%s) + 3600 ))"
export SIGNER="$(cast wallet address --private-key "$PRIVATE_KEY")"
# Optional: remove bad LP first if you control LP tokens for this pair.
cast send "$TOKEN_A" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_A_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$TOKEN_B" 'approve(address,uint256)(bool)' "$ROUTER" "$AMOUNT_B_RAW" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"
cast send "$ROUTER" 'addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)' \
  "$TOKEN_A" "$TOKEN_B" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$AMOUNT_A_RAW" "$AMOUNT_B_RAW" "$SIGNER" "$DEADLINE" \
  --private-key "$PRIVATE_KEY" --rpc-url "$RPC_URL"