Files
proxmox/docs/03-deployment/CW_PUBLIC_NETWORK_REPEG_PLAN.md

461 lines
26 KiB
Markdown
Raw Normal View History

# 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`
```bash
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`
```bash
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`
```bash
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`
```bash
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`
```bash
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.`
```bash
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`
```bash
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.`
```bash
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`
```bash
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`
```bash
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`
```bash
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`
```bash
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`
```bash
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`
```bash
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`
```bash
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`
```bash
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"
```