chore: sync workspace — configs, docs, scripts, CI, pnpm, submodules
Some checks failed
Deploy to Phoenix / validate (push) Failing after 15s
Deploy to Phoenix / deploy (push) Has been skipped

- 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
This commit is contained in:
defiQUG
2026-04-21 22:01:33 -07:00
parent e6bc7a6d7c
commit b8613905bd
231 changed files with 31657 additions and 2184 deletions

View File

@@ -2,7 +2,7 @@
> Historical note (2026-03-26): this runbook originated during the earlier three-pool PMM phase. Current canonical Chain 138 PMM addresses are `DODOPMMIntegration=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` and `DODOPMMProvider=0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381`.
**Purpose:** Add base/quote liquidity to the three DODO PMM pools on Chain 138 (cUSDT/cUSDC, cUSDT/USDT, cUSDC/USDC).
**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.
@@ -37,17 +37,20 @@ Deployer must be the **owner** of both cUSDT and cUSDC contracts (onlyOwner can
Add or set in `smom-dbis-138/.env`:
```bash
# Pool addresses (from PRE_DEPLOYMENT_CHECKLIST / create-all-pmm-pools-chain138.sh)
POOL_CUSDTCUSDC=0xff8d3b8fDF7B112759F076B69f4271D4209C0849
POOL_CUSDTUSDT=0x6fc60DEDc92a2047062294488539992710b99D71
POOL_CUSDCUSDC=0x9f74Be42725f2Aa072a9E0CdCce0E7203C510263
# 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`, etc.
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.
---

View File

@@ -0,0 +1,70 @@
# Atomic Swap dApp Submodule
**Last Updated:** 2026-04-19
**Purpose:** Defines the dedicated submodule for an ecosystem-wide swap + bridge dApp that can orchestrate atomic swap flows across the supported networks and assets.
---
## Location
- Submodule path: `atomic-swap-dapp/`
- Parent registration: `.gitmodules`
- Current bootstrap remote: local bare repo at `/home/intlc/projects/atomic-swap-dapp.git`
> Operational note: the current URL is a local bootstrap remote created to establish the submodule boundary and initial commit. Replace it with the canonical hosted remote before expecting other operators to clone it directly from the parent repo.
---
## What the submodule contains
- `README.md` — scope and usage
- `docs/ATOMIC_SWAP_EXECUTION_MODEL.md` — execution model for swap -> bridge -> destination swap flows
- `scripts/sync-ecosystem.mjs` — generates the dApp manifest from the parent repo's canonical machine-readable inventories
- `scripts/validate-manifest.mjs` — lightweight integrity check for the generated manifest
- `config/ecosystem-manifest.json` — generated coverage snapshot
---
## Canonical parent sources
The submodule intentionally derives coverage from the parent repo instead of maintaining a second source of truth:
- `config/aggregator-route-matrix.json`
- `config/routing-registry.json`
- `token-lists/lists/dbis-138.tokenlist.json`
- `cross-chain-pmm-lps/config/chains.json`
- `cross-chain-pmm-lps/config/token-map.json`
- `cross-chain-pmm-lps/config/deployment-status.json`
This lets the dApp surface:
- Chain 138 live same-chain swap routes
- bridge lanes across the routed ecosystem
- cW* and anchor-asset inventory on the public-chain mesh
- non-EVM network metadata where interoperability is modeled separately
---
## Working in the submodule
From the parent repo root:
```bash
cd atomic-swap-dapp
npm run sync:ecosystem
npm run validate:manifest
```
If the submodule is checked out outside the parent repo, set:
```bash
export PROXMOX_REPO_ROOT=/path/to/proxmox
```
---
## Immediate next build steps
1. Add the canonical hosted remote for the submodule and update `.gitmodules`.
2. Layer in a quote API and execution adapters for DODO PMM, CCIP, Alltra, and future non-EVM connectors.
3. Build UI surfaces on top of `config/ecosystem-manifest.json` so chain and asset coverage stays synced with repo-backed inventories.

View File

@@ -1,9 +1,9 @@
# Chain 138 → Solana — GRU Token Deployment Lineup
**Last updated:** 2026-04-18
**Current status:** `lineup_defined_relay_and_mints_outstanding` — see [config/solana-gru-bridge-lineup.json](../../config/solana-gru-bridge-lineup.json).
**Last updated:** 2026-04-19
**Current status:** `partial_live_causdt_lane_confirmed_lineup_and_mints_still_outstanding` — see [config/solana-gru-bridge-lineup.json](../../config/solana-gru-bridge-lineup.json).
**Purpose:** Line up deployment of **all canonical GRU base-money assets** from Chain 138 to Solana as **bridge-backed SPL representations**, using the agreed model: **custom relay** (per `token-mapping-multichain.json` notes), **SPL mints**, **hub stables on Solana**, and **execution / edge liquidity** as a separate phase (CLMM + bot, CLOB MM, or future PMM-class program).
**Purpose:** Line up deployment of **all canonical GRU base-money assets** from Chain 138 to Solana as **bridge-backed SPL representations**, using the agreed model: **custom relay** (per `token-mapping-multichain.json` notes), **SPL mints**, **hub stables on Solana**, and **execution / edge liquidity** as a separate phase (CLMM + bot, CLOB MM, or future PMM-class program). The Solana lane now also has a confirmed live send/confirm for the **`cAUSDT -> cWAUSDT`** corridor, which serves as the first repo-recorded proof that the adapter path is functioning end-to-end.
**Machine-readable manifest:** [config/solana-gru-bridge-lineup.json](../../config/solana-gru-bridge-lineup.json) (fill `solanaMint` as mints exist).
@@ -18,6 +18,25 @@
On Solana, fiat-stable GRU assets use the **`cW*`** symbol set per `config/token-mapping-multichain.json``nonEvmNetworks.Solana.approvedMirroredSymbols`.
### Live-confirmed Solana lane
The broader canonical lineup is still in rollout, but the **AUSDT corridor is no longer only planned**:
| Item | Value |
|------|-------|
| Chain 138 source token | `cAUSDT` |
| Solana destination symbol | `cWAUSDT` |
| Minted on Chain 138 | `22,000,000` raw units |
| Bridged to Solana | `9,000,000` raw units |
| Bridge request | `0x69035dfb7c0af5447da6104a8c09aa6bac7b19695517441014dda3c687d4550d` |
| Final status | `2` (`Confirmed`) |
| Solana adapter | `0x8244a5c27C0eA32fb8cB324131a04dC9F4E433f7` |
| Mint tx | `0x8d18b8df7024418bf167cc80d11e0425b0c81507ace13326973951f3dfd0f6f8` |
| Bridge tx | `0x4f6368754a5b55a43f8dae4e645bf67e9cf6c9c64bfdadb4625508c351d64319` |
| Confirm tx | `0x6cce9a740d170278c95e494052e1b031b394d1d807df05ba3bad55030a36fc68` |
This confirms that the Solana adapter path is live for at least one GRU-style corridor even though the full canonical `c* -> cW*` lineup and SPL mint inventory remain incomplete.
---
## 2. Repo anchors
@@ -44,7 +63,7 @@ Create SPL tokens; record **`solanaMint`** per asset in `solana-gru-bridge-lineu
### Phase C — Relay implementation
Replace relay stub with production path; fund SOL signers; E2E both directions on mainnet-beta when ready.
Replace relay stub with production path; fund SOL signers; E2E both directions on mainnet-beta when ready. As of **2026-04-16**, the repo now has a confirmed live `cAUSDT -> cWAUSDT` send/confirm through the deployed Solana adapter, so this phase should be treated as **partially validated in production** rather than only stubbed.
### Phase D — Execution on Solana

View File

@@ -1,7 +1,9 @@
# Chain 138 -> Wemix 1111 Bridge Completion Checklist
**Last Updated:** 2026-04-18
**Purpose:** Strict operator checklist to move WEMIX `1111` from repo-deferred state into a live `138 -> 1111` bridge path for `WETH9` / `WETH10`, then prepare GRU v2 `cW*` assets for rollout.
**Last Updated:** 2026-04-20
**Purpose:** Strict operator checklist to move WEMIX `1111` from repo-deferred state into a live bridge path, with an explicit split between:
- **inbound-only activation** for `138 -> 1111`
- **full bidirectional activation** for `138 <-> 1111`
## 1. Current Repo State
@@ -9,12 +11,15 @@
|---|---|
| Destination chain | `1111` / Wemix |
| Destination selector | `5142893604156789321` |
| Activation state | `deferred` |
| Activation state | `planned_gas_scaffold` |
| Bridge available | `false` |
| Recorded `cW*` assets | `cWBTC` |
| Recorded anchor addresses | `USDC=0xcebA9300f2b948710d2653dD7B07f33A8B32118C` |
| Recorded anchor addresses | `USDC=0xE3F5a90F9cb311505cd691a46596599aA1A0AD7D` |
The repo currently shows WEMIX as **deferred**, not live. Native WEMIX gas is the only part that is already in good shape; the missing bridge deployment and LINK funding are the actual blockers.
The repo currently shows WEMIX as **not yet live**. Native WEMIX gas and bridge deployment are already in good shape; the remaining blockers depend on the target mode:
- **inbound-only activation**: proof transfer plus machine-readable promotion
- **full bidirectional activation**: proof transfer, machine-readable promotion, and outbound fee coverage on the WEMIX-side bridges
## 2. Exact Environment Surface
@@ -24,8 +29,8 @@ The repo currently shows WEMIX as **deferred**, not live. Native WEMIX gas is th
| `LINK_TOKEN_WEMIX` | `0x80f1FcdC96B55e459BF52b998aBBE2c364935d69` |
| `WETH9_WEMIX` | `0x7D72b22a74A216Af4a002a1095C8C707d6eC1C5f` |
| `WETH10_WEMIX` | `0x7D72b22a74A216Af4a002a1095C8C707d6eC1C5f` |
| `CCIPWETH9_BRIDGE_WEMIX` | `(unset)` |
| `CCIPWETH10_BRIDGE_WEMIX` | `(unset)` |
| `CCIPWETH9_BRIDGE_WEMIX` | `0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04` |
| `CCIPWETH10_BRIDGE_WEMIX` | `0xa4B9DD039565AeD9641D45b57061f99d9cA6Df08` |
| `LINK_GAS_AVAILABLE_1111` | `0` |
| `LINK_GAS_UNAVAILABLE_CHAIN_IDS` | `25,1111` |
| `WEMIX_RPC` | `https://api.wemix.com` |
@@ -33,9 +38,13 @@ The repo currently shows WEMIX as **deferred**, not live. Native WEMIX gas is th
| `CCIPWETH9_BRIDGE_CHAIN138` | `0xcacfd227A040002e49e2e01626363071324f820a` |
| `CCIPWETH10_BRIDGE_CHAIN138` | `0xe0E93247376aa097dB308B92e6Ba36bA015535D0` |
## 3. Completion Steps
## 3. Activation Paths
### Step 1: Preflight WEMIX
### Path A: Inbound-only activation on WEMIX
Use this when the immediate goal is to make `138 -> 1111` receipt operational.
#### Step A1: Preflight WEMIX
```bash
cd smom-dbis-138
@@ -47,7 +56,9 @@ Success means:
- deployer has native WEMIX gas
- `CCIP_ROUTER_WEMIX`, `LINK_TOKEN_WEMIX`, `WETH9_WEMIX`, and `WETH10_WEMIX` are present
### Step 2: Deploy `CCIPWETH9Bridge` and `CCIPWETH10Bridge` on 1111
#### Step A2: Confirm bridge deployments on 1111
Status: completed in the current operator environment. Both bridge addresses above return deployed bytecode on Wemix.
```bash
cd smom-dbis-138
@@ -58,7 +69,7 @@ After deployment, persist the returned addresses into:
- `CCIPWETH9_BRIDGE_WEMIX`
- `CCIPWETH10_BRIDGE_WEMIX`
### Step 3: Wire destinations in both directions
#### Step A3: Confirm bidirectional wiring
```bash
cd smom-dbis-138
@@ -71,7 +82,28 @@ Required result:
- WEMIX WETH9 bridge includes `CHAIN138_SELECTOR` -> `CCIPWETH9_BRIDGE_CHAIN138`
- WEMIX WETH10 bridge includes `CHAIN138_SELECTOR` -> `CCIPWETH10_BRIDGE_CHAIN138`
### Step 4: Fund LINK on the WEMIX bridges
Status: destination wiring is already present in the current environment.
#### Step A4: Run proof transfer for `138 -> 1111`
```bash
cast call "$CCIPWETH9_BRIDGE_WEMIX" 'getDestinationChains()(uint64[])' --rpc-url "$WEMIX_RPC"
cast call "$CCIPWETH10_BRIDGE_WEMIX" 'getDestinationChains()(uint64[])' --rpc-url "$WEMIX_RPC"
```
Then run a small test transfer for `WETH9` or `WETH10` from `138 -> 1111` and confirm receipt.
Important note:
- the WEMIX-side bridges do **not** need LINK just to receive `138 -> 1111` messages
- CCIP fees are paid on the source-side `sendCrossChain(...)`, not on the destination-side `ccipReceive(...)`
### Path B: Full bidirectional activation on WEMIX
Use this when `1111 -> 138` or `1111 -> other-chain` sending must also be live.
Path B includes all inbound-only steps above, plus the outbound fee steps below.
#### Step B1: Fund outbound fee coverage on the WEMIX bridges
```bash
cd smom-dbis-138
@@ -83,16 +115,15 @@ Target:
- at least `10 LINK` on each bridge
- `LINK_GAS_AVAILABLE_1111` becomes non-zero
### Step 5: Verify bridge readiness
Bridge-specific note:
- `CCIPWETH9Bridge` can alternatively be reconfigured to use native WEMIX for outbound fees by setting `feeToken = address(0)`.
- `CCIPWETH10Bridge` cannot use native-fee mode in the current implementation and still requires LINK for outbound sends.
```bash
cast call "$CCIPWETH9_BRIDGE_WEMIX" 'getDestinationChains()(uint64[])' --rpc-url "$WEMIX_RPC"
cast call "$CCIPWETH10_BRIDGE_WEMIX" 'getDestinationChains()(uint64[])' --rpc-url "$WEMIX_RPC"
```
#### Step B2: Run proof transfer from `1111`
Then run a small test transfer for `WETH9` or `WETH10` from `138 -> 1111` and confirm receipt.
After outbound funding is available, run and record a small outbound test transfer from `1111`.
### Step 6: Prepare GRU v2 `cW*` assets for 1111
## 4. Prepare GRU v2 `cW*` assets for 1111
This step is **after** the WETH bridge path is proven live.
@@ -105,12 +136,23 @@ Before GRU v2 can be promoted on `1111`, the operator still needs to:
- wire bridge or mint authority for those assets
- only then enable DODO PMM / Uniswap V2 / other venue rollout on WEMIX
## 4. Promotion Conditions
## 5. Promotion Conditions
WEMIX `1111` can move out of deferred state only after all of the following are true:
### Promotion to inbound-only live
WEMIX `1111` can move to inbound-only live only after all of the following are true:
1. `CCIPWETH9_BRIDGE_WEMIX` and `CCIPWETH10_BRIDGE_WEMIX` are deployed and stored in `.env`.
2. Chain `138` and chain `1111` each list the other as a valid bridge destination.
3. Both WEMIX bridges hold enough LINK for operational CCIP fees.
4. A small bridge test succeeds in both configuration and receipt.
5. The GRU v2 asset rollout plan for `1111` is explicitly wired, not just implied.
3. A small `138 -> 1111` bridge test succeeds in both configuration and receipt.
### Promotion to full bidirectional live
WEMIX `1111` can move to full bidirectional live only after all of the following are true:
1. All inbound-only promotion conditions are satisfied.
2. The WEMIX outbound fee path is funded:
- `WETH9`: LINK or native WEMIX
- `WETH10`: LINK
3. A small outbound bridge test from `1111` succeeds in both configuration and receipt.
4. The GRU v2 asset rollout plan for `1111` is explicitly wired, not just implied.

View File

@@ -0,0 +1,159 @@
# cW Public Network Prices
- Generated: `2026-04-20T00:49:38Z`
- Deployment inventory: `/home/intlc/projects/proxmox/cross-chain-pmm-lps/config/deployment-status.json`
- Uniswap discovery snapshot: `/home/intlc/projects/proxmox/reports/extraction/promod-uniswap-v2-live-pair-discovery-latest.json`
- Price convention: USD per 1 token.
- `not found` means the generator could not reach the token from a live USDC/USDT anchor using the current public-pair snapshot plus live PMM mid-price reads.
| Chain | Token | Price (USD) | Derived From | Source | Notes |
|---|---|---:|---|---|---|
| `1` Ethereum Mainnet | `cWAUDC` | `0.65569108` | `cWAUDC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x6c1bD4F43c5f330E50B61DE81066dA7C61a9b5b4; midPrice=0.65569107650773755 |
| | `cWBTC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWCADC` | `0.73441926` | `cWCADC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xE0F35b5736FDd0a2F4B618621b0A08F8D8A3f92A; midPrice=0.734419257773319959 |
| | `cWCHFC` | `1.10444563` | `cWCHFC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x776Ca556deD3245984F504F4bef8Eeec55C50190; midPrice=1.104445634708087841 |
| | `cWEURC` | `1.15145921` | `cWEURC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x0bC750F9c6DbDcd76B205695A356491b1B9ef098; midPrice=1.15145920590785613 |
| | `cWEURT` | `1.08000050` | `cWEURT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x9cF3DeDAaC0984c530801b9b4881c8f99Bb329c3; midPrice=1.080000496800228528 |
| | `cWGBPC` | `1.29980755` | `cWGBPC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x5488042dF882893a3e7074453E2005CaDE4101b0; midPrice=1.299807549490125931 |
| | `cWGBPT` | `1.27000012` | `cWGBPT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xA42566bb730AD6D551Db32d50c0877132fc07c32; midPrice=1.270000120650011461 |
| | `cWJPYC` | `0.00827694` | `cWJPYC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x8A4187dF0A8FE855cC53A4F7B2D8346588Ee9794; midPrice=0.008276940018827374 |
| | `cWUSDC` | `0.24519859` | `cWUSDC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x69776fc607e9edA8042e320e7e43f54d06c68f0E; midPrice=0.245198594926143744 |
| | `cWUSDT` | `0.24377078` | `cWUSDT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x27f3aE7EE71Be3d77bAf17d4435cF8B895DD25D2; midPrice=0.243770782727164331 |
| | `cWXAUC` | `3200.00000000` | `cWXAUC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xf6470219ce7749f8860dEABe9c347Ef2c1075E08; midPrice=3200 |
| | `cWXAUT` | `3200.00000000` | `cWXAUT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x1D51a38C924382287d770AbB61deb9C39ACa96E9; midPrice=3200 |
| | | | | | Activation state: `active`; RPC configured: `True` |
| `10` Optimism | `cWAUDC` | `0.66000000` | `cWAUDC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x4B452800f6cD50326F14a6f089f4bB04e8079250; midPrice=0.66 |
| | `cWBTC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWCADC` | `0.74000000` | `cWCADC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x19e1fdd037F1651AcEE11c5A5Aa246b85FA63f8e; midPrice=0.74 |
| | `cWCHFC` | `1.11000000` | `cWCHFC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xA97D7dfB93CBf0C10243931d93FFEda745222ec6; midPrice=1.11 |
| | `cWEURC` | `1.08000000` | `cWEURC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x78C6aC6D7CbFcd85A3291D656F2154979a92c00B; midPrice=1.08 |
| | `cWEURT` | `1.08000000` | `cWEURT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x631DfC86A03cB05319d7165198f8099dacF78e56; midPrice=1.08 |
| | `cWGBPC` | `1.27000000` | `cWGBPC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x79BE2b70A94E954d095f9F537FAf0741D15dfA31; midPrice=1.27 |
| | `cWGBPT` | `1.27000000` | `cWGBPT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x5D6b5d7CA165c39c350083255774DdBf1c858e12; midPrice=1.27 |
| | `cWJPYC` | `0.00670000` | `cWJPYC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x68C1c8a945ddCF3482b73aC09b6B5D4177D564AF; midPrice=0.0067 |
| | `cWUSDC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWXAUC` | `3200.00000000` | `cWXAUC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xCE25c324e41049D75abfB81c23257984A2A97a79; midPrice=3200 |
| | `cWXAUT` | `3200.00000000` | `cWXAUT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xb3Ee650019d7F756ce0F79b69614Fa2761871775; midPrice=3200 |
| | | | | | Activation state: `active`; RPC configured: `True` |
| `25` Cronos | `cWAUDC` | `0.66000000` | `cWAUDC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0x5b5fA8664FC1eb630b2D76deAf57Dd35ef326eAE; midPrice=0.66 |
| | `cWBTC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWCADC` | `0.74000000` | `cWCADC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0xFFe56BE4628f2863Cd7c38d3fFa70d6A3255FBD3; midPrice=0.74 |
| | `cWCHFC` | `1.11000000` | `cWCHFC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0x937E86f21007C15F28081DBD419ea39ef5bc87F2; midPrice=1.11 |
| | `cWEURC` | `1.08000000` | `cWEURC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0xbe68d6ae47049ce0EA5B6a82AB1c388f4023aec8; midPrice=1.08 |
| | `cWEURT` | `1.08000000` | `cWEURT/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0xE3bb64f8F05dB65C9bb1103f5D7C445C402161Ec; midPrice=1.08 |
| | `cWGBPC` | `1.27000000` | `cWGBPC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0xDa60b22cDb3D3Ec67c309457Bd50C4e67D4611a4; midPrice=1.27 |
| | `cWGBPT` | `1.27000000` | `cWGBPT/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0x1935d14D513E158D630488f2D20Cd28CFe23aAe6; midPrice=1.27 |
| | `cWJPYC` | `0.00670000` | `cWJPYC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0x97fD4E88490D8c4bcbe1930Cece12e8DD22529bE; midPrice=0.0067 |
| | `cWUSDC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWXAUC` | `3200.00000000` | `cWXAUC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0xAA450B4Cf4EEc28C440850665546D85C67b4B2A6; midPrice=3200 |
| | `cWXAUT` | `3200.00000000` | `cWXAUT/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0x8B11f71C0ABF2f8031c47cFd20d22b2ab2799183; midPrice=3200 |
| | | | | | Activation state: `active`; RPC configured: `True` |
| `56` BSC (BNB Chain) | `cWAUDC` | `0.66000000` | `cWAUDC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0x85E2C97a931D1e5Ed31F4D6cb4094fB036AE4ED4; midPrice=0.66 |
| | `cWAUSDT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWBTC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWCADC` | `0.74000000` | `cWCADC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0xE193bd2f602CaC833330c6835f934f3958a7785b; midPrice=0.74 |
| | `cWCHFC` | `1.11000000` | `cWCHFC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0x02F70D646B57439faF5dF1B16d2B174Ee2A9F373; midPrice=1.11 |
| | `cWEURC` | `1.08000000` | `cWEURC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0xaF1EA2c0105C90C819849FBFE931D61a11De4793; midPrice=1.08 |
| | `cWEURT` | `1.08000000` | `cWEURT/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0x6b97090c974eCAf77dC4e390B044F87Ec71f5fA1; midPrice=1.08 |
| | `cWGBPC` | `1.27000000` | `cWGBPC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0x5e19913eDaAcaB436AbF635e58f2453323cB2CB3; midPrice=1.27 |
| | `cWGBPT` | `1.27000000` | `cWGBPT/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0x439C447b4FDa58fcAF587F0A042662A46029dC7c; midPrice=1.27 |
| | `cWJPYC` | `0.00670000` | `cWJPYC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0xBEceD3b25448F648a36Fa9dd6D17a68CB6e61f36; midPrice=0.0067 |
| | `cWUSDC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDW` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWXAUC` | `3200.00000000` | `cWXAUC/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0xe9306557758c19cb8FbeEb4777dc7b14f251f67c; midPrice=3200 |
| | `cWXAUT` | `3200.00000000` | `cWXAUT/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0xfB094EC50d932bCD004E4136EfB62119c0f576E1; midPrice=3200 |
| | | | | | Activation state: `active`; RPC configured: `True` |
| `100` Gnosis Chain | `cWAUDC` | `1.00000000` | `cWAUDC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xeb5A688dF70be2F790719872Be9Ecc5648aEE460; midPrice=1 |
| | `cWBTC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWCADC` | `0.74000000` | `cWCADC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x45177D998F4022aeaa046C60e734aEf8c18aCb70; midPrice=0.74 |
| | `cWCHFC` | `1.11000000` | `cWCHFC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x9ff24E16c5687330c271a52655971c7C2498FaC8; midPrice=1.11 |
| | `cWEURC` | `1.08000000` | `cWEURC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x8c8d6cc14111443Ef8572D58Df387a1E497b7C43; midPrice=1.08 |
| | `cWEURT` | `1.08000000` | `cWEURT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xB73e4C13757EE99540A1F0e973980E423987De19; midPrice=1.08 |
| | `cWGBPC` | `1.27000000` | `cWGBPC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xf060E1B29FF714f5Ac89F8Bd3869cF300C5b387f; midPrice=1.27 |
| | `cWGBPT` | `1.27000000` | `cWGBPT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x3adB3fB8451727fDEBe3D00617170dAF3725F6B4; midPrice=1.27 |
| | `cWJPYC` | `0.00670000` | `cWJPYC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xe11936EcE13B5f04156898a510B86493F2862042; midPrice=0.0067 |
| | `cWUSDC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWXAUC` | `3200.00000000` | `cWXAUC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x02BE3C506FD5541c8225dB43C6FFC5a39ADd803E; midPrice=3200 |
| | `cWXAUT` | `3200.00000000` | `cWXAUT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x7069d10A0E4496D0CEa08Ff27EaE9de0BB7D0d23; midPrice=3200 |
| | | | | | Activation state: `active`; RPC configured: `True` |
| `137` Polygon | `cWAUDC` | `1.00000000` | `cWAUDC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xbD34966FE5Eed81AFffF8081e9BB527Fc8066783; midPrice=1 |
| | `cWAUSDT` | `0.66666667` | `cWUSDC/USDC -> cWAUSDT/cWUSDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x8F1038dE06d799a30D16d8B0b0ADEe629e7d4547; midPrice=1 |
| | `cWBTC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWCADC` | `0.74000000` | `cWCADC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xc79da1E8B33E580d53C683923685B26FFC653650; midPrice=0.74 |
| | `cWCHFC` | `1.11000000` | `cWCHFC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x30dAeF9a8Dd4aEc2949013Fe18b5Ab3C2505D825; midPrice=1.11 |
| | `cWEURC` | `1.08000000` | `cWEURC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x0c6F5D3d8d52cBC52849327F6eC6aE52C8497A8D; midPrice=1.08 |
| | `cWEURT` | `1.08000000` | `cWEURT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x36aB6bef2B3335ebf6a762665978bf5e845FDEC0; midPrice=1.08 |
| | `cWGBPC` | `1.27000000` | `cWGBPC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x7a95f67E31f271A6a83219d8368D963Ee2fC106B; midPrice=1.27 |
| | `cWGBPT` | `1.27000000` | `cWGBPT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xC3645c7153b7B72556e322aA1E72D77536d9A3DE; midPrice=1.27 |
| | `cWJPYC` | `0.00670000` | `cWJPYC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x09658d8d81aa8fa7a21eD973787638f245bc3fe0; midPrice=0.0067 |
| | `cWUSDC` | `1.00000000` | `cWUSDC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x8F1038dE06d799a30D16d8B0b0ADEe629e7d4547; midPrice=1 |
| | `cWUSDT` | `1.00000000` | `cWUSDT/USDT` | `dodo_pmm` | USDT anchored at 1 USD; DODO PMM 0xFCB0b0Ac36d67EDBA91100c75C27De945357CD62; midPrice=1 |
| | `cWXAUC` | `3200.00000000` | `cWXAUC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x3c3b9Bd130fB3aBcC0E0CE6552795DD56BCCc55c; midPrice=3200 |
| | `cWXAUT` | `3200.00000000` | `cWXAUT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x37D5587Bbe17571cDe96DAB7b2e7EA234C87f525; midPrice=3200 |
| | | | | | Activation state: `active`; RPC configured: `True` |
| `1111` Wemix | `cWBTC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | | | | | Activation state: `deferred`; RPC configured: `False` |
| `8453` Base | `cWAUDC` | `0.66000000` | `cWAUDC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xE450F94Dc06036aa80055Db298948C6692819545; midPrice=0.66 |
| | `cWBTC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWCADC` | `0.74000000` | `cWCADC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x5E7448AA0e3172AEFE79439E14F7E59bc1C858E0; midPrice=0.74 |
| | `cWCHFC` | `1.11000000` | `cWCHFC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x0673Fa737f813Af2e37A0ae2CBCf7E225498ed6a; midPrice=1.11 |
| | `cWEURC` | `1.08000000` | `cWEURC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x72E6D93E9aF317321DF763a34068178c773FdA50; midPrice=1.08 |
| | `cWEURT` | `1.08000000` | `cWEURT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x51c2C4Dd1fc54E20207D0732f12802B33e0E2251; midPrice=1.08 |
| | `cWGBPC` | `1.27000000` | `cWGBPC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x5b8B474659A5BA675E74Ef364CcF559C53071B5b; midPrice=1.27 |
| | `cWGBPT` | `1.27000000` | `cWGBPT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xD035e0a6b82cDd9653261DC8259a3dbA1cF02C14; midPrice=1.27 |
| | `cWJPYC` | `0.00670000` | `cWJPYC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x64D91B738026fE1577773F3F36063d16C834F042; midPrice=0.0067 |
| | `cWUSDC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWXAUC` | `3200.00000000` | `cWXAUC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xb47776505B8E2bFC63197Cf2133857CD91e7abBb; midPrice=3200 |
| | `cWXAUT` | `3200.00000000` | `cWXAUT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xE1C2bC36438B29E3b5092C0cB80531199874080D; midPrice=3200 |
| | | | | | Activation state: `active`; RPC configured: `True` |
| `42161` Arbitrum One | `cWAUDC` | `0.66000000` | `cWAUDC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x97f78713f5899a652d955B996BAb99E2CbbEcC5c; midPrice=0.66 |
| | `cWBTC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWCADC` | `0.74000000` | `cWCADC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x6D3b55935F58b9433fc26743cd9E0F8963a4F6D8; midPrice=0.74 |
| | `cWCHFC` | `1.11000000` | `cWCHFC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x88437Cd15CB6b07Fd8cC9830f1b8fFf50275e691; midPrice=1.11 |
| | `cWEURC` | `1.08000000` | `cWEURC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x34c3Ae728a985Fd27f1887474bCf4e52847Cbb2c; midPrice=1.08 |
| | `cWEURT` | `1.08000000` | `cWEURT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xEEE8C51107aE64824c4a08a502202fA3E6213702; midPrice=1.08 |
| | `cWGBPC` | `1.27000000` | `cWGBPC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xFBa6D6d1471302Bf28CE7d94Be33f034b95d9AD0; midPrice=1.27 |
| | `cWGBPT` | `1.27000000` | `cWGBPT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xDcA29dfa59C8faF90e4437DEAe74474F78735cDe; midPrice=1.27 |
| | `cWJPYC` | `0.00670000` | `cWJPYC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xB6eaF7cEB4A6e9Bc6A57fEb51011B6Bb01632C1F; midPrice=0.0067 |
| | `cWUSDC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWXAUC` | `3200.00000000` | `cWXAUC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x41e67b8b5929e44C2b7A0D772E151FAD8D5303cd; midPrice=3200 |
| | `cWXAUT` | `3200.00000000` | `cWXAUT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xB6b15Ba233C95d164504e24209C1fAc3304059C7; midPrice=3200 |
| | | | | | Activation state: `active`; RPC configured: `True` |
| `42220` Celo | `cWAUDC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWAUSDT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWBTC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWCADC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWCHFC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWEURC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWEURT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWGBPC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWGBPT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWJPYC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDW` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWXAUC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWXAUT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | | | | | Activation state: `active`; RPC configured: `True` |
| `43114` Avalanche C-Chain | `cWAUDC` | `1.00000000` | `cWAUDC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x287edaBDA35195592d7CACe2C1A75eC66caF1D70; midPrice=1 |
| | `cWAUSDT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWBTC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWCADC` | `0.74000000` | `cWCADC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x75Ec85467927512b01C9e0481Fb1902d2d7210dC; midPrice=0.74 |
| | `cWCHFC` | `1.11000000` | `cWCHFC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x3a224eae91ac813a03E15d0c37B641bC6c2237d7; midPrice=1.11 |
| | `cWEURC` | `1.08000000` | `cWEURC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xEE2742Fa6f70A40aB16c9b613c5cF6933bA92Cc3; midPrice=1.08 |
| | `cWEURT` | `1.08000000` | `cWEURT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x8507F3F3cB121072c1e3f2D912d269CA9829eEF8; midPrice=1.08 |
| | `cWGBPC` | `1.27000000` | `cWGBPC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x73542F7B1CBd4552Eb8FeFEB3D1884527424da58; midPrice=1.27 |
| | `cWGBPT` | `1.27000000` | `cWGBPT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0xa07dEe884555f2E9D04d0039FEF0b746987a8441; midPrice=1.27 |
| | `cWJPYC` | `0.00670000` | `cWJPYC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x6175D065c602dab71A03753987D1ebEc99eFcC2e; midPrice=0.0067 |
| | `cWUSDC` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDT` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWUSDW` | `not found` | `not found` | `not_found` | No live direct or bridged price path was found from USDC/USDT anchors. |
| | `cWXAUC` | `3200.00000000` | `cWXAUC/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x5d3a4A3Dae9FEcFe979A784F55d994c9a9fBeAfB; midPrice=3200 |
| | `cWXAUT` | `3200.00000000` | `cWXAUT/USDC` | `dodo_pmm` | USDC anchored at 1 USD; DODO PMM 0x1392bb9f23F938E6c1cDaAAE5c45d29BE5f8C828; midPrice=3200 |
| | | | | | Activation state: `active`; RPC configured: `True` |

View File

@@ -0,0 +1,460 @@
# 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"
```

View File

@@ -0,0 +1,60 @@
# cW Token USD Pricing (Ethereum Mainnet)
This runbook explains how to attach **USD context** to wrapped basket tokens (`cW*`) when block explorers show **balance** but **$0 value** (no listed market price).
## Tooling
From the repo root:
```bash
./scripts/deployment/price-cw-token-mainnet.sh
./scripts/deployment/price-cw-token-mainnet.sh --json | jq .
```
The script sources `scripts/lib/load-project-env.sh` when present so addresses match your `smom-dbis-138/.env` (or overrides).
**Dependencies:** `cast` (Foundry), `python3`, and `jq` (for `--json`).
## What the script reports
1. **Accounting assumption (1 cWUSDT ≈ 1 USD)**
Use only if your policy treats the wrapper as tracking the underlying stable 1:1. Appropriate for internal books and dashboards where you need a **single consistent mark** without relying on DEX liquidity.
2. **DODO PMM integration — `getPoolPriceOrOracle` / `getPoolPrice`**
Reads `DODO_PMM_INTEGRATION_MAINNET` for the configured pool (`POOL_CWUSDT_USDC_MAINNET`). The integration returns a `uint256` scaled by **1e18** in the project docs when the oracle is aligned with “USD.”
**Important:** For stable/stable pools, the raw integration mid can disagree with **reserve-implied** prices depending on base/quote orientation and PMM parameters. Treat this as one signal, not the only mark.
3. **Implied from vault reserves**
Uses `getPoolReserves` on the same integration for **base** and **quote** raw balances, then applies **token `decimals()`** for cWUSDT and **mainnet canonical USDC** (`USDC_MAINNET`, default `0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`).
Computes **USDC per 1 cWUSDT** when base/quote order matches the pool (cWUSDT vs USDC). This is a strong **sanity check** for deep stable pools; thin or imbalanced pools skew the ratio.
4. **Chainlink ETH/USD (macro only)**
Optional reference to the standard ETH/USD feed (`CHAINLINK_ETH_USD_FEED`). This is **not** a direct cW* price; it is useful for macro context or cross-checking RPC health.
## Environment overrides
| Variable | Role |
|----------|------|
| `ETHEREUM_MAINNET_RPC` | Mainnet JSON-RPC endpoint |
| `DODO_PMM_INTEGRATION_MAINNET` | DODO PMM integration contract |
| `POOL_CWUSDT_USDC_MAINNET` | cWUSDT/USDC pool address |
| `CWUSDT_MAINNET` | cWUSDT token |
| `USDC_MAINNET` | Mainnet canonical USDC (do not substitute Chain 138 `OFFICIAL_USDC_ADDRESS` for this script) |
| `CHAINLINK_ETH_USD_FEED` | Chainlink ETH/USD aggregator |
## Etherscan and “$0 value”
Explorers derive the **Value** column from **external** price feeds (Etherscan relies heavily on **CoinGecko** / similar for Ethereum Mainnet ERC-20 USD). Custom `cW*` tokens usually have **no** listing for that contract on chain ID **1**, so **USD shows as zero** even when balances and pools are real.
- **Internal / treasury marks:** use this scripts **accounting line**, **reserve-implied** USDC ratio, or policy—not Etherscans Value column.
- **Actually changing Etherscans Value:** requires **off-chain** listing so aggregators publish a USD price for the **Mainnet** contract. Step-by-step: [ETHERSCAN_USD_VALUE_MAINNET_TOKENS.md](../04-configuration/coingecko/ETHERSCAN_USD_VALUE_MAINNET_TOKENS.md) (CoinGecko/CMC submission ties to [CMC_COINGECKO_SUBMISSION_RUNBOOK.md](../04-configuration/coingecko/CMC_COINGECKO_SUBMISSION_RUNBOOK.md)).
## Broader cW* price table
A generated multi-chain table (mid prices from PMM where available) lives in:
`docs/03-deployment/CW_PUBLIC_NETWORK_PRICES.md`
## Extending to other tokens
The shell script is parameterized by env vars for **cWUSDT** and its **USDC** pool. For other `cW*` assets, point `CWUSDT_MAINNET`, `POOL_*`, and (if needed) quote token at the correct mainnet addresses and re-run. For portfolio-level marks (CoinGecko, OTC, fund admin), use your **external** pricing process; this repo script stays **on-chain** and **policy-transparent**.

View File

@@ -1,11 +1,11 @@
# DBIS Chain 138 — Phases 1-3 Production Gate
# DeFi Oracle Meta Mainnet (Chain 138) — Phases 1-3 Production Gate
**Last updated:** 2026-03-28
**Purpose:** Convert the DBIS master plan into an operational production gate. This document records which Phase 1-3 conditions are currently satisfied, which are partially satisfied, and which still block an honest production declaration.
## Overall status
**Current conclusion:** DBIS Chain 138 has a healthy Besu production base and a working Phase 3 liveness slice, but it is **not yet fully production-complete across the broader DBIS Hyperledger stack**.
**Current conclusion:** DeFi Oracle Meta Mainnet (Chain 138) has a healthy Besu production base and a working Phase 3 liveness slice, but it is **not yet fully production-complete across the broader DBIS Hyperledger stack**.
### What is genuinely production-capable now
@@ -82,7 +82,7 @@
## Production blockers
The following items still prevent a full “DBIS Chain 138 production complete” declaration:
The following items still prevent a full “DeFi Oracle Meta Mainnet (Chain 138) production complete” declaration:
1. `6201` is not a verified active secondary FireFly node and is currently treated as retired / standby until rebuilt.
2. Fabric `6000-6002` are not active peer/orderer workloads; current evidence showed placeholder CTs only, and they have now been stopped and retained as reserve inventory.

View File

@@ -64,7 +64,7 @@ The orchestrator:
| **Chain 138** | If token-aggregation has no c*→WETH pool: fund deployer via **genesis alloc** or **validator transfer**. See [FUNDING_AND_DEPLOYMENT_CHECKLIST.md](FUNDING_AND_DEPLOYMENT_CHECKLIST.md). |
| **Protocolink (public chains)** | Use the quote/output from `protocolink-swap-to-gas.cjs`. Build transaction via [Protocolink API](https://docs.protocolink.com/protocolink-api/overview) (estimate router data, build tx); sign with deployer key and submit. |
| **Cronos (25)** | **Manual (multiple routes):** Protocolink does not support Cronos. Use any aggregator from [config/cro-wemix-swap-routes.json](../../config/cro-wemix-swap-routes.json) (SwapSpace, ChangeNOW, SimpleSwap, StealthEX) to swap ETH/BNB/USDT/USDC → CRO; send to deployer on Cronos. Required ~15 CRO. List all routes: `./scripts/deployment/acquire-cro-and-wemix-gas.sh` or `--list`. |
| **Wemix (1111)** | **Manual (multiple routes):** Use any aggregator from [config/cro-wemix-swap-routes.json](../../config/cro-wemix-swap-routes.json) (SwapSpace, ChangeNOW, SimpleSwap, StealthEX) to swap ETH/BNB/POL → WEMIX; send to deployer on chain 1111. Required ~0.4 WEMIX. List all routes: `./scripts/deployment/acquire-cro-and-wemix-gas.sh` or `--list`. Then run `deploy-bridges-config-ready-chains.sh wemix` and complete-config. See [WEMIX_ACQUISITION_TABLED.md](WEMIX_ACQUISITION_TABLED.md). |
| **Wemix (1111)** | **Manual (multiple routes, only if gas needs a top-up):** Use any aggregator from [config/cro-wemix-swap-routes.json](../../config/cro-wemix-swap-routes.json) (SwapSpace, ChangeNOW, SimpleSwap, StealthEX) to swap ETH/BNB/POL → WEMIX; send to deployer on chain 1111. Current blocker is no longer native gas by default; the live gap is LINK funding on the deployed WEMIX bridge contracts plus a proof transfer. See [WEMIX_ACQUISITION_TABLED.md](WEMIX_ACQUISITION_TABLED.md). |
---

View File

@@ -1,19 +1,19 @@
# Mr. Promod Uniswap V2 Live Pair Discovery
- Generated: `2026-04-18T17:04:47Z`
- Generated: `2026-04-22T04:59:28Z`
- Live pairs discovered: `19`
- Healthy live pairs: `7`
- Healthy live pairs: `10`
- Write mode: `False`
| Chain | Network | Env Ready | Live Pairs Found | Healthy Live Pairs |
|---|---|---|---|---|
| `1` | Ethereum Mainnet | `True` | `cWUSDC/USDC`, `cWUSDT/cWUSDC` | |
| `1` | Ethereum Mainnet | `True` | `cWUSDC/USDC`, `cWUSDT/cWUSDC` | `cWUSDT/cWUSDC` |
| `10` | Optimism | `True` | `cWUSDT/cWUSDC` | `cWUSDT/cWUSDC` |
| `25` | Cronos | `True` | `cWUSDT/cWUSDC` | `cWUSDT/cWUSDC` |
| `56` | BSC (BNB Chain) | `True` | `cWUSDT/cWUSDC`, `cWAUSDT/cWUSDT`, `cWAUSDT/cWUSDC` | `cWUSDT/cWUSDC` |
| `100` | Gnosis Chain | `True` | `cWUSDT/cWUSDC` | `cWUSDT/cWUSDC` |
| `137` | Polygon | `True` | `cWUSDT/cWUSDC`, `cWAUSDT/cWUSDT`, `cWAUSDT/cWUSDC` | |
| `137` | Polygon | `True` | `cWUSDT/cWUSDC`, `cWAUSDT/cWUSDT`, `cWAUSDT/cWUSDC` | `cWUSDT/cWUSDC` |
| `42220` | Celo | `True` | `cWUSDT/cWUSDC`, `cWAUSDT/cWUSDT`, `cWAUSDT/cWUSDC` | `cWUSDT/cWUSDC` |
| `43114` | Avalanche C-Chain | `True` | `cWUSDT/cWUSDC`, `cWAUSDT/cWUSDT`, `cWAUSDT/cWUSDC` | |
| `43114` | Avalanche C-Chain | `True` | `cWUSDT/cWUSDC`, `cWAUSDT/cWUSDT`, `cWAUSDT/cWUSDC` | `cWUSDT/cWUSDC` |
| `8453` | Base | `True` | `cWUSDT/cWUSDC` | `cWUSDT/cWUSDC` |
| `42161` | Arbitrum One | `True` | `cWUSDT/cWUSDC` | `cWUSDT/cWUSDC` |

View File

@@ -40,7 +40,7 @@ This checklist tracks **proxmox-repo automation** and **sibling repos** (`../com
| RPC `192.168.11.221:8545` / `192.168.11.211:8545` | HTTP 201 |
| SSH `root@192.168.11.10` / `.11` | OK (BatchMode) |
| `./scripts/run-completable-tasks-from-anywhere.sh` | Exit 0 |
| `./scripts/verify/check-contracts-on-chain-138.sh` | 59/59 present |
| `./scripts/verify/check-contracts-on-chain-138.sh` | 61/61 present (per current script address list) |
| `E2E_ACCEPT_502_INTERNAL=1 ./scripts/verify/verify-end-to-end-routing.sh` | 37 domains, 0 failed; report under `docs/04-configuration/verification-evidence/e2e-verification-20260325_165153/` |
| `https://phoenix.sankofa.nexus/`, `https://sankofa.nexus/` | HTTP 200 |
| `http://192.168.11.50:4000/health`, `:51:3000`, `:52:8080/health/ready` | No HTTP response from operator host (hosts ping; services may be down, firewalled, or not bound) — **re-check on Proxmox / in-container** |

View File

@@ -2,12 +2,14 @@
> Historical note (2026-03-26): this status tracker includes earlier PMM-address snapshots. The current canonical Chain 138 PMM stack is `DODOPMMIntegration=0x5BDc62f1ae7D630c37A8B363a1d49845356Ee72d` and `DODOPMMProvider=0x5CAe6Ce155b7f08D3a956F5Dc82fC9945f29B381`.
**Last Updated:** 2026-03-04
**Last Updated:** 2026-04-19
**Purpose:** Ordered list of remaining deployments to achieve **maximum effective execution across all networks** (13-chain hub model: Chain 138 + 12 edge/alt). Use after [REQUIRED_FIXES_GAPS_AND_DEPLOYMENTS_LIST](../00-meta/REQUIRED_FIXES_GAPS_AND_DEPLOYMENTS_LIST.md) and [DEPLOYMENT_ORDER_OF_OPERATIONS](DEPLOYMENT_ORDER_OF_OPERATIONS.md).
**Routing context:** [routing-matrix-13x13.json](../../smom-dbis-138/real-robinhood/data/routing-matrix-13x13.json) — 138↔Celo (42220) **B/SBS** (CCIP bridges deployed 2026-03-04); 138↔Wemix (1111) **Tabled** (see below). Full coverage = all 13 chains with bridge + liquidity where designed.
> Sync note (2026-04-19): this file is now aligned to the current generated deployment graph and audit output. Older sections below still preserve historical run context, but current truth for public-chain `cW*` deployment should be cross-checked against `cross-chain-pmm-lps/config/deployment-status.json`, `reports/status/cw-mesh-deployment-matrix-latest.json`, and `reports/extraction/promod-uniswap-v2-phase2-wave1-completion-status-latest.json`. See `reports/status/MULTI_NETWORK_DEPLOYMENT_AUDIT_20260419.md`.
**Wemix (1111) tabled:** There is no in-repo route (aggregator/DEX integration) to swap ETH, BNB, or Polygon to WEMIX. Deployer needs ~0.4 WEMIX for gas to deploy CCIP bridges on Wemix. Until an automated route exists or WEMIX is acquired manually (e.g. [SwapSpace](https://swapspace.co/exchange-pairs/wemix-bnb), [ChangeNOW](https://changenow.io/currencies/wemix-main/polygon-matic)), **all Wemix network deployments are tabled**. See [WEMIX_ACQUISITION_TABLED.md](WEMIX_ACQUISITION_TABLED.md).
**Routing context:** [routing-matrix-13x13.json](../../smom-dbis-138/real-robinhood/data/routing-matrix-13x13.json) — 138↔Celo (42220) remains in the completed set. Current repo-backed Wemix status is best described as deployed-and-wired but still incomplete until LINK funding and a proof transfer are recorded. Full coverage = all 13 chains with bridge + liquidity where designed.
**Wemix (1111) narrowed blocker:** The deployer now has native WEMIX gas and the WEMIX bridge contracts are deployed and destination-wired. The remaining blocker is **LINK funding plus a successful proof transfer** on `1111`. See [WEMIX_ACQUISITION_TABLED.md](WEMIX_ACQUISITION_TABLED.md) and [CHAIN_138_TO_WEMIX_1111_BRIDGE_COMPLETION_CHECKLIST.md](CHAIN_138_TO_WEMIX_1111_BRIDGE_COMPLETION_CHECKLIST.md).
---
@@ -18,8 +20,8 @@
| A | A.1 Mint cUSDT/cUSDC (138) | ✅ Done (2026-03-04) | Minted via `mint-for-liquidity.sh` using `GAS_PRICE_138=500000000000`; cUSDT/cUSDC mints confirmed at blocks 2551250/2551251/2551253/2551254. |
| A | A.2 Add liquidity PMM (138) | ⚠️ Historical snapshot (2026-03-04) | Earlier run referenced cUSDT/cUSDC pool `0x9fcB06Aa1FD5215DC0E91Fd098aeff4B62fEa5C8` on a superseded stack; use [LIQUIDITY_POOLS_MASTER_MAP.md](../11-references/LIQUIDITY_POOLS_MASTER_MAP.md) for current live pools. |
| B | B.1 Celo CCIP bridges | ✅ Done | Deployed; 0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04 (WETH9), 0xa4B9DD039565AeD9641D45b57061f99d9cA6Df08 (WETH10); .env updated; complete-config Celo→138 OK. |
| B | **B.2a Add Cronos (25)** | ⏳ Pending | Fund deployer with ~15 CRO ([acquire-cro-and-wemix-gas.sh](../../scripts/deployment/acquire-cro-and-wemix-gas.sh)); set CRONOS_RPC, CCIP_ROUTER_CRONOS, WETH9_CRONOS, WETH10_CRONOS in .env; run `deploy-bridges-config-ready-chains.sh cronos` then `complete-config-ready-chains.sh`. |
| B | B.2b Wemix CCIP bridges | 📋 Tabled | No route to acquire WEMIX from ETH/BNB/POLY in-repo; tabled until route exists or manual acquisition. Fund ~0.4 WEMIX ([acquire-cro-and-wemix-gas.sh](../../scripts/deployment/acquire-cro-and-wemix-gas.sh)); then `deploy-bridges-config-ready-chains.sh wemix` + complete-config. See [WEMIX_ACQUISITION_TABLED.md](WEMIX_ACQUISITION_TABLED.md). |
| B | **B.2a Add Cronos (25)** | ⚠️ Historical line item | Keep only as historical context. Current generated deployment artifacts show Cronos in the active public-chain deployment set and in the complete wave-1 wrapped-mesh set. |
| B | B.2b Wemix CCIP bridges | ⏳ Funding/proof pending | Bridge contracts are deployed and destination wiring exists. Remaining work: fund LINK on `CCIPWETH9_BRIDGE_WEMIX` and `CCIPWETH10_BRIDGE_WEMIX`, then run a small `138 -> 1111` proof transfer. |
| B | **Gnosis CCIP bridges** | ✅ Done (2026-03-04) | Deployed: WETH9 `0x4ab39b5BaB7b463435209A9039bd40Cf241F5a82`, WETH10 `0xC15ACdBAC59B3C7Cb4Ea4B3D58334A4b143B4b44`; .env updated. |
| B | B.3 Fund CCIP with LINK | ⏳ Blocked | `scripts/deployment/fund-ccip-bridges-with-link.sh` run (2026-03-04): many lanes failing with insufficient LINK or gas, Chain 138 Invalid params; top up LINK balances and gas on each chain before retry. |
| C | C.1C.2 cW* + edge pools | 📋 Runbook | [PHASE_C_CW_AND_EDGE_POOLS_RUNBOOK.md](PHASE_C_CW_AND_EDGE_POOLS_RUNBOOK.md). |
@@ -48,9 +50,9 @@
|------|--------|
| Chain 138 core + PMM | 59/59 contracts (check-contracts-on-chain-138.sh); DODOPMMIntegration + 3 pools (cUSDT/cUSDC, cUSDT/USDT, cUSDC/USDC) created; DODOPMMProvider deployed. |
| Chain 138 liquidity | **Re-verify required** — prior run reported cUSDT/cUSDC liquidity add; this checklist previously showed zero liquidity. Treat liquidity state as unknown until reconfirmed on-chain. |
| CCIP 138 → 1, 56, 137, 10, 42161, 43114, 8453, 100, 25, **42220 (Celo)** | Configured (B/SBS). Celo CCIP bridges deployed 2026-03-04; Gnosis, Cronos config-ready; Wemix (1111) **Tabled** (no ETH/BNB/POLY→WEMIX route; see [WEMIX_ACQUISITION_TABLED.md](WEMIX_ACQUISITION_TABLED.md)). |
| CCIP 138 → 1, 56, 137, 10, 42161, 43114, 8453, 100, 25, **42220 (Celo)** | Configured/live in current repo-backed status. Wemix (1111) is still the unresolved lane. |
| Alltra 138 ↔ 651940 | ALT path live. |
| cW* on public chains | Addresses in .env / design; **deployment-status.json empty** — no cW* pool addresses. |
| cW* on public chains | No longer design-only. Current machine-readable deployment artifacts show active `cW*` inventory on `1, 10, 25, 56, 100, 137, 8453, 42161, 42220, 43114`; `1111` remains deferred. |
| LINK for CCIP | Fund bridges per lane so cross-chain messages execute. |
---
@@ -71,30 +73,30 @@
## Phase B — Bridge coverage (all 13 chains)
**Goal:** Turn **TBD** into **B/SBS** for Celo and Wemix; ensure LINK-funded lanes so routes execute.
**Goal:** Keep only the truly incomplete bridge lanes and fee-funding gaps in view. Celo is already in the completed public-chain set; Wemix remains the unresolved lane in current repo-backed status.
| Step | Action | Ref |
|------|--------|-----|
| B.1 | **Celo (42220):** Deploy CCIP WETH9/WETH10 bridges on Celo; add 138↔Celo destinations on both sides; fund bridges with LINK. | [CONFIG_READY_CHAINS_COMPLETION_RUNBOOK](../07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK.md). Preflight: `./scripts/deployment/preflight-config-ready-chains.sh celo`. Deploy: `./scripts/deployment/deploy-bridges-config-ready-chains.sh celo`; then `complete-config-ready-chains.sh`. |
| B.1 | **Celo (42220):** Treat as completed for deployment coverage. Remaining work, if any, is verification/publication hygiene rather than initial deployment. | [CONFIG_READY_CHAINS_COMPLETION_RUNBOOK](../07-ccip/CONFIG_READY_CHAINS_COMPLETION_RUNBOOK.md) |
| B.2 | **Wemix (1111):** Same as B.1 for Wemix. Confirm WETH/USDT/USDC addresses on scan.wemix.com; set in token-mapping and .env. | Same runbook; `deploy-bridges-config-ready-chains.sh wemix`. [REQUIRED_FIXES_GAPS_AND_DEPLOYMENTS_LIST](../00-meta/REQUIRED_FIXES_GAPS_AND_DEPLOYMENTS_LIST.md) §2.2 (Wemix tokens). |
| B.3 | **Fund all CCIP bridges with LINK** (138 and each destination). Run `./scripts/deployment/fund-ccip-bridges-with-link.sh` (dry-run first). | [CCIP_BRIDGE_DESTINATIONS_AND_LINK_FUNDING](../../smom-dbis-138/docs/deployment/CCIP_BRIDGE_DESTINATIONS_AND_LINK_FUNDING.md) |
| B.4 | **(Optional)** LINK support on Mainnet relay for LINK transfers. | [RELAY_BRIDGE_ADD_LINK_SUPPORT_RUNBOOK](../07-ccip/RELAY_BRIDGE_ADD_LINK_SUPPORT_RUNBOOK.md) |
**Outcome:** 138↔1, 56, 137, 10, 42161, 43114, 8453, 100, 25, **42220**, **1111** all B/SBS; 138↔651940 remains ALT. Routing matrix TBD cells removed.
**Outcome:** 138↔1, 56, 137, 10, 42161, 43114, 8453, 100, 25, and **42220** are in the current completed/active set. **1111** is still not there in the repo-backed graph. 138↔651940 remains ALT.
---
## Phase C — Public-chain cW* and edge pools
**Goal:** Enable swap-bridge-swap and arbitrage on **public chains** (cW* tokens + DODO/Uniswap edge pools per pool-matrix).
**Goal:** Track the remaining gaps after substantial public-chain `cW*` rollout already landed.
| Step | Action | Ref |
|------|--------|-----|
| C.1 | **Deploy or bridge cW* tokens** per chain (1, 56, 137, 10, 42161, 8453, 43114, 100, 25, 42220, 1111). Use cross-chain-pmm-lps token-map and deployment recipe; record addresses in deployment-status.json and .env. | [PHASE_C_CW_AND_EDGE_POOLS_RUNBOOK](PHASE_C_CW_AND_EDGE_POOLS_RUNBOOK.md), [TOKEN_CONTRACT_DEPLOYMENTS_REMAINING](../11-references/TOKEN_CONTRACT_DEPLOYMENTS_REMAINING.md) §3 |
| C.2 | **Create and fund PMM edge pools** (cW*/USDC, cW*/USDT, etc.) per [pool-matrix.json](../../cross-chain-pmm-lps/config/pool-matrix.json). Populate deployment-status.json with pool addresses. | [PHASE_C_CW_AND_EDGE_POOLS_RUNBOOK](PHASE_C_CW_AND_EDGE_POOLS_RUNBOOK.md), [LIQUIDITY_POOLS_MASTER_MAP](../11-references/LIQUIDITY_POOLS_MASTER_MAP.md) § Public-chain cW* |
| C.1 | **Remaining token gaps:** focus on chains still deferred or undocumented, with Wemix first. The active set already includes `1, 10, 25, 56, 100, 137, 8453, 42161, 42220, 43114`. | [PHASE_C_CW_AND_EDGE_POOLS_RUNBOOK](PHASE_C_CW_AND_EDGE_POOLS_RUNBOOK.md), [TOKEN_CONTRACT_DEPLOYMENTS_REMAINING](../11-references/TOKEN_CONTRACT_DEPLOYMENTS_REMAINING.md) §3 |
| C.2 | **Remaining pool gaps:** do not assume public-chain edge pools are globally missing. The current generated artifacts show meaningful PMM and wrapped-mesh rollout already present; work remaining is now per-chain/per-venue and should be taken from the latest mesh matrix and phase-completion artifacts. | [PHASE_C_CW_AND_EDGE_POOLS_RUNBOOK](PHASE_C_CW_AND_EDGE_POOLS_RUNBOOK.md), [LIQUIDITY_POOLS_MASTER_MAP](../11-references/LIQUIDITY_POOLS_MASTER_MAP.md) § Public-chain cW* |
| C.3 | **Stabilization bot / peg bands** (optional): Run bot and peg-band config from cross-chain-pmm-lps for cW* peg maintenance. | [cross-chain-pmm-lps/README.md](../../cross-chain-pmm-lps/README.md) |
**Outcome:** Each public chain has cW* and edge pools so SBS and arbitrage can execute on both 138 and edge.
**Outcome:** The active public-chain set is already materially populated; remaining work is to close the deferred or contradictory lanes and normalize proof of completion.
---

View File

@@ -21,7 +21,7 @@
## On-chain verification (Chain 138)
**Last run (2026-03-01):** `./scripts/verify/check-contracts-on-chain-138.sh` (use Core RPC URL or run from LAN).
**Result:** **59 present, 0 missing** (59 addresses per check-contracts-on-chain-138.sh; list expanded 2026-03-06). TransactionMirror: `0x7131F887DBEEb2e44c1Ed267D2A68b5b83285afc`. Current canonical DODO cUSDT/cUSDC pool: `0xff8d3b8fDF7B112759F076B69f4271D4209C0849`. **DeployCompliantFiatTokens** was run 2026-02-27 (10 tokens: cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT); see [CHAIN138_TOKEN_ADDRESSES](../11-references/CHAIN138_TOKEN_ADDRESSES.md).
**Result:** **61 present, 0 missing** (61 addresses per check-contracts-on-chain-138.sh; list expanded through 2026-03-06 and later). TransactionMirror: `0x7131F887DBEEb2e44c1Ed267D2A68b5b83285afc`. Current canonical DODO cUSDT/cUSDC pool: `0xff8d3b8fDF7B112759F076B69f4271D4209C0849`. **DeployCompliantFiatTokens** was run 2026-02-27 (10 tokens: cEURC, cEURT, cGBPC, cGBPT, cAUDC, cJPYC, cCHFC, cCADC, cXAUC, cXAUT); see [CHAIN138_TOKEN_ADDRESSES](../11-references/CHAIN138_TOKEN_ADDRESSES.md).
---

View File

@@ -1,22 +1,23 @@
# Wemix (1111) deployments — tabled
**Last Updated:** 2026-03-06
**Status:** All Wemix network deployments (CCIP bridges, config, LINK funding on 1111) are **tabled** until the deployer can acquire WEMIX for gas.
**Status:** Historical gas-blocking memo. The deployer now has native WEMIX gas and the bridge contracts are deployed; the remaining blocker is LINK funding plus a successful proof transfer on `1111`.
---
## Reason
- Deployer needs **~0.4 WEMIX** (native gas) on chain 1111 to deploy and configure CCIP bridges.
- There is **no in-repo route** (aggregator/DEX integration or script) to swap **ETH**, **BNB**, or **Polygon (POL)** to WEMIX.
- [TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER](../11-references/TOKENS_AND_NETWORKS_MINTABLE_TO_DEPLOYER.md) lists Wemix as “Bridge/DEX” only — i.e. manual acquisition.
- This document recorded the earlier state where the deployer lacked native WEMIX gas.
- Current operator state has native WEMIX gas available and deployed `CCIPWETH9_BRIDGE_WEMIX` / `CCIPWETH10_BRIDGE_WEMIX`.
- The remaining live blocker is that the WEMIX bridge contracts still hold `0 LINK`, so CCIP execution cannot be promoted to live yet.
---
## Options to un-table
1. **Manual acquisition:** Use a third-party aggregator (e.g. [SwapSpace](https://swapspace.co/exchange-pairs/wemix-bnb), [ChangeNOW](https://changenow.io/currencies/wemix-main/polygon-matic)) to swap ETH/BNB/POL to WEMIX and send to the deployer address on 1111. Then run `deploy-bridges-config-ready-chains.sh wemix` and complete-config.
2. **In-repo route:** Implement or integrate an aggregator/DEX route (e.g. LiFi, Jumper, or chain 1111 DEX) that can swap ETH/BNB/POLY → WEMIX and credit the deployer; then document and run the same deploy/config steps. Placeholder script: `scripts/deployment/wemix-acquire-via-lifi.js` (outputs manual instructions and deployer address; extend when LiFi/Jumper support 1111).
1. **Fund LINK on the deployed bridges:** top up `CCIPWETH9_BRIDGE_WEMIX` and `CCIPWETH10_BRIDGE_WEMIX` with enough LINK for operational CCIP fees.
2. **Prove the lane:** run a small `138 -> 1111` bridge transfer and record the receipt as the promotion artifact.
3. **Only if gas drops again:** use a third-party aggregator (e.g. [SwapSpace](https://swapspace.co/exchange-pairs/wemix-bnb), [ChangeNOW](https://changenow.io/currencies/wemix-main/polygon-matic)) to top up native WEMIX.
**Deployer gas auto-route:** The orchestrator `./scripts/deployment/deployer-gas-auto-route.sh` includes Wemix (1111): when run, it prints manual instructions and links for WEMIX acquisition. See [DEPLOYER_GAS_AUTO_ROUTE_RUNBOOK.md](DEPLOYER_GAS_AUTO_ROUTE_RUNBOOK.md).
@@ -24,9 +25,9 @@
## What remains tabled
- B.2 Wemix CCIP bridges (`deploy-bridges-config-ready-chains.sh wemix`, complete-config 138↔1111).
- Any Phase C/D work that depends on Wemix (cW* or edge pools on 1111).
- Wemix token verification and production use until bridges are deployed.
- LINK funding on the deployed WEMIX bridges.
- A successful `138 -> 1111` bridge proof transfer.
- Any Phase C/D work that depends on a fully live `1111` lane (cW* rollout or edge pools on Wemix).
---

View File

@@ -1,35 +1,103 @@
# WEMIX Bridge Verification Status
**Last Updated:** 2026-04-18
**Last Updated:** 2026-04-20
## Current State
## Current Repo-Backed State
The WEMIX bridge contracts are:
The current repo-backed status for WEMIX `1111` is still **not fully live**, but the lane is farther along than the older checklist snapshot suggested.
- deployed live
- wired bidirectionally with Chain 138
- **not yet confirmed as explorer-verified/published**
Contracts:
The strongest current evidence in this checkout says:
- `CCIPWETH9_BRIDGE_WEMIX=0xD3AD6831aacB5386B8A25BB8D8176a6C8a026f04`
- `CCIPWETH10_BRIDGE_WEMIX=0xa4B9DD039565AeD9641D45b57061f99d9cA6Df08`
- both addresses return deployed bytecode on `https://api.wemix.com`
- Chain 138 WETH9/WETH10 bridges already include the Wemix selector `5142893604156789321`
- the Wemix WETH bridge contracts report Chain 138 as a configured destination
- the remaining gap depends on activation scope:
- for **inbound-only `138 -> 1111`**, the missing proof artifact is the main blocker
- for **full bidirectional activation**, outbound fee coverage on the WEMIX-side bridges is still missing and both WEMIX bridge contracts currently hold `0 LINK`
## Verified Blockers
What is still not true yet:
1. The repo did not previously have a WEMIX-specific verification helper.
2. WEMIX public explorer pages are behind bot protection, so direct scripted page checks are unreliable.
3. WEMIX explorer verification needs an `api-key`, and the repo did not previously expose a dedicated `WEMIXSCAN_API_KEY`.
4. The WEMIX deploy required a `paris` EVM target, so verification must use that same build profile.
- `bridgeAvailable` is not promoted to `true` in the generated deployment graph
- no machine-generated inventory yet treats the Wemix lane as live
- there is not yet a repo-backed successful bridge test receipt for `138 -> 1111`
## Repo-Native Verification Command
Primary references:
- `cross-chain-pmm-lps/config/deployment-status.json`
- `reports/status/cw-mesh-deployment-matrix-latest.json`
- `docs/03-deployment/CHAIN_138_TO_WEMIX_1111_BRIDGE_COMPLETION_CHECKLIST.md`
- `reports/status/MULTI_NETWORK_DEPLOYMENT_AUDIT_20260419.md`
## Important Contradiction
Older checklist snapshots in this repo still show the WEMIX bridge env vars as unset and treat the lane as purely undeployed.
That is no longer accurate for the current operator environment. The more precise canonical statement is:
- the WEMIX bridge contracts are deployed
- the lane is wired in both directions
- the lane is still **not promotable to the repo's current full-bidirectional live standard** because outbound fee funding and a successful bridge test are still missing
## Activation Modes
### Inbound-only activation on WEMIX
Use this mode when the immediate target is to make `138 -> 1111` receipt operational.
Required:
1. `CCIPWETH9_BRIDGE_WEMIX` and `CCIPWETH10_BRIDGE_WEMIX` are deployed.
2. The Chain 138 bridges are configured to send to the WEMIX bridges.
3. The WEMIX bridges are configured to recognize Chain 138 as a valid peer.
4. A successful `138 -> 1111` proof transfer is recorded.
Not required for receive-only activation:
- LINK balance on the WEMIX bridge contracts
- WEMIX-side outbound CCIP fee funding
Reason:
- In the current bridge implementation, CCIP fees are paid on `sendCrossChain(...)`.
- `ccipReceive(...)` on the WEMIX side validates and releases bridged assets but does not pay a fee.
### Full bidirectional activation on WEMIX
Use this mode when `1111 -> 138` or `1111 -> other-chain` sending must also be live.
Required in addition to the inbound-only conditions:
1. The WEMIX bridges can pay outbound CCIP fees.
2. `CCIPWETH9Bridge` may use LINK or native WEMIX, because `feeToken` can be updated to `address(0)`.
3. `CCIPWETH10Bridge` still requires LINK, because its constructor and `updateFeeToken(...)` both forbid `address(0)`.
4. Successful outbound proof transfer(s) are recorded from `1111`.
## What Would Change This Status
WEMIX can move to a verified-live state only after all of the following are repo-backed and consistent for the activation mode being promoted:
1. `CCIPWETH9_BRIDGE_WEMIX` and `CCIPWETH10_BRIDGE_WEMIX` remain recorded in the canonical env surface.
2. the operator checklist, routing docs, and generated inventory all agree on the same WEMIX bridge addresses and activation scope.
3. `cross-chain-pmm-lps/config/deployment-status.json` promotes `1111` out of non-live state and sets `bridgeAvailable=true`.
4. a successful proof transfer is recorded for the promoted mode.
5. if full bidirectional activation is the target, the WEMIX bridge contracts have outbound fee coverage:
- `WETH9`: LINK or native WEMIX
- `WETH10`: LINK
## Verification Helper
The repo-native verification helper still exists:
```bash
cd smom-dbis-138
./scripts/deployment/verify-wemix-bridges.sh
```
Required env:
But this should only be used after the deployment addresses themselves are first reconciled.
Required env remains:
- `WEMIXSCAN_API_KEY`
- `WEMIX_RPC`
@@ -40,9 +108,9 @@ Required env:
- `WETH10_WEMIX`
- `LINK_TOKEN_WEMIX`
## Important Build Assumption
## Build Assumption
Verification must use:
If and when WEMIX verification is attempted, the repo documents the required build profile as:
- Solidity `0.8.20`
- optimizer enabled