- 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
3.4 KiB
Add Liquidity to PMM Pools (Chain 138) — Runbook
Historical note (2026-03-26): this runbook originated during the earlier three-pool PMM phase. Current canonical Chain 138 PMM addresses are
DODOPMMIntegration=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72dandDODOPMMProvider=0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381.
Purpose: Add base/quote liquidity to the canonical DODO PMM pools on Chain 138, including the live stable/WETH pools.
Prerequisites:
- Deployer is owner of cUSDT and cUSDC contracts (to mint), or already has balance.
smom-dbis-138/.envhas:PRIVATE_KEY,RPC_URL_138,DODO_PMM_INTEGRATION_ADDRESS(orDODO_PMM_INTEGRATION), pool addresses and amounts.
0. Mint tokens for liquidity (if deployer has no balance)
From smom-dbis-138/:
source .env
# Mint 1M cUSDT and 1M cUSDC to deployer (default)
./scripts/mint-for-liquidity.sh
# Mint custom amounts (human units)
MINT_CUSDT_AMOUNT=2000000 MINT_CUSDC_AMOUNT=2000000 ./scripts/mint-for-liquidity.sh
# Mint then add liquidity in one go (uses half of minted for cUSDT/cUSDC pool)
./scripts/mint-for-liquidity.sh --add-liquidity
Deployer must be the owner of both cUSDT and cUSDC contracts (onlyOwner can mint). Amounts use 6 decimals internally (1M tokens = 1_000_000 × 10^6 base units).
If mint fails: Ensure RPC_URL_138 is reachable and deployer is owner (cast call <CUSDT> "owner()(address)" --rpc-url $RPC_URL_138). Alternative: use ./scripts/mint-to-750m.sh both <deployer_address> to mint 749M each (one-time top-up to 750M supply).
1. Set pool addresses and amounts in .env
Add or set in smom-dbis-138/.env:
# Pool addresses
POOL_CUSDTCUSDC=0x9e89bAe009adf128782E19e8341996c596ac40dC
POOL_CUSDTUSDT=0x866Cb44b59303d8dc5f4F9E3E7A8e8b0bf238d66
POOL_CUSDCUSDC=0xc39B7D0F40838cbFb54649d327f49a6DAC964062
POOL_CUSDTWETH=0xaE38a008Ba4Dbf8D9F141D03e9dC8f7Dbe0ce17c
POOL_CUSDCWETH=0xAAE68830a55767722618E869882c6Ed064Cc1eb2
POOL_CEURTWETH=0x4a64c886cedF00db42ea5B946D6b304121ad9529
# Amounts in base units (6 decimals): 1M tokens = 1000000000000
ADD_LIQUIDITY_BASE_AMOUNT=1000000000000
ADD_LIQUIDITY_QUOTE_AMOUNT=1000000000000
Optional per-pool overrides: ADD_LIQUIDITY_CUSDTCUSDC_BASE, ADD_LIQUIDITY_CUSDTCUSDC_QUOTE, ADD_LIQUIDITY_CUSDTWETH_BASE, ADD_LIQUIDITY_CUSDTWETH_QUOTE, ADD_LIQUIDITY_CUSDCWETH_BASE, ADD_LIQUIDITY_CUSDCWETH_QUOTE, ADD_LIQUIDITY_CEURTWETH_BASE, ADD_LIQUIDITY_CEURTWETH_QUOTE, etc.
2. Run the add-liquidity script
From repo root (or from smom-dbis-138 with RPC_URL_138 and DODO_PMM_INTEGRATION set):
cd smom-dbis-138
source .env
forge script script/dex/AddLiquidityPMMPoolsChain138.s.sol:AddLiquidityPMMPoolsChain138 \
--rpc-url "$RPC_URL_138" --broadcast --private-key "$PRIVATE_KEY" --with-gas-price 1000000000
Ensure the deployer has approved (or the script will approve) base/quote tokens to DODOPMMIntegration and has sufficient balance for the chosen amounts.
3. References
- PMM_POOLS_FUNDING_PLAN.md — Full funding plan (three pools, amounts, cast commands, checklist)
- DODO_PMM_INTEGRATION.md —
addLiquidity(pool, baseAmount, quoteAmount) - PRE_DEPLOYMENT_CHECKLIST § Step 3
- DEPLOYMENT_ORDER_OF_OPERATIONS § Phase 3.1