feat(chain138): Monad CCIP, token aggregation OMNL gates, HYBX client, and PMM deploy updates.
Some checks failed
CI/CD Pipeline / Solidity Contracts (push) Failing after 1m11s
CI/CD Pipeline / Security Scanning (push) Has been cancelled
CI/CD Pipeline / Lint and Format (push) Has been cancelled
CI/CD Pipeline / Terraform Validation (push) Has been cancelled
CI/CD Pipeline / Kubernetes Validation (push) Has been cancelled
Validation / validate-genesis (push) Has been cancelled
Validation / validate-terraform (push) Has been cancelled
Validation / validate-kubernetes (push) Has been cancelled
Validation / validate-smart-contracts (push) Has been cancelled
Validation / validate-security (push) Has been cancelled
Validation / validate-documentation (push) Has been cancelled
Deploy ChainID 138 / Deploy ChainID 138 (push) Failing after 1m4s
HYBX OMNL TypeScript & anchor / token-aggregation build + reconcile artifact (push) Failing after 31s
OMNL reconcile anchor / Run omnl:reconcile and upload artifacts (push) Failing after 29s
Verify Deployment / Verify Deployment (push) Failing after 57s

Relay router, reserve system, oracle publisher, token-aggregation compliance middleware, and Monad deployment scripts.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
defiQUG
2026-06-18 00:11:33 -07:00
parent 1ec308c3a0
commit 11c97777d4
111 changed files with 5237 additions and 432 deletions

View File

@@ -12,8 +12,8 @@ CCIP_MONAD_LINK_TOKEN=0x0000000000000000000000000000000000000000
# Canonical wrapped native (use for both WETH9/WETH10 slots on Monad)
WMON_MAINNET=0x754704bc059f8c67012fed69bc8a327a5aafb603
WETH9_MONAD=0x754704bc059f8c67012fed69bc8a327a5aafb603
WETH10_MONAD=0x754704bc059f8c67012fed69bc8a327a5aafb603
WETH9_MONAD=0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A
WETH10_MONAD=0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A
# Fill after deploy-monad-ccip-stack.sh --execute
CCIPWETH9_BRIDGE_MONAD=

View File

@@ -300,7 +300,7 @@ PMM pool price can be driven by the **ReserveSystem** when base/quote tokens are
```
Use `address(0)` to disable and fall back to pool `getMidPrice()` only.
2. **getPoolPriceOrOracle(pool)** returns: oracle price (via `reserveSystem.getConversionPrice(baseToken, quoteToken)`) if ReserveSystem is set and returns a valid price; otherwise pool `getMidPrice()`.
2. **getPoolPriceOrOracle(pool)** returns oracle price from ReserveSystem **`getPrice(base)` / `getPrice(quote)`** (quote per base) when ReserveSystem is set and both feeds are valid; on live Chain 138, wire **`ReserveConversionPriceAdapter`** if the deployed ReserveSystem still has the inverted `getConversionPrice` formula. Otherwise pool **`getMidPrice()`** (DVM mids may be ~$1 — not ETH spot).
3. **DODOPMMProvider** uses `getPoolPriceOrOracle` for quotes, so liquidity provider quotes prefer the oracle when configured.

View File

@@ -49,7 +49,7 @@ References: [DEPLOYMENT_COMPLETE_GUIDE.md](../deployment/DEPLOYMENT_COMPLETE_GUI
**Policy:** Run off-chain ticks every **6 seconds** so oracle pushes, `PriceFeedKeeper` upkeep, and PMM/WETH read paths stay warm—supporting peg alignment with `DODOPMMIntegration` / optional `ReserveSystem`.
**One-shot on-chain alignment (WETH10 mock + D3Oracle + `trackAsset`):** parent repo `scripts/deployment/fix-chain138-pricing-feeds.sh` (see `docs/04-configuration/CHAIN138_PRICING_FEEDS_LIVE.md`).
**One-shot on-chain alignment (aggregator → ReserveSystem → DODO oracle path):** parent repo `scripts/deployment/fix-chain138-pricing-feeds.sh` (see `docs/04-configuration/CHAIN138_PRICING_FEEDS_LIVE.md`). Forge helper: `script/reserve/SyncChain138ReserveFromOracle.s.sol`. Live WETH pools are **DVM** (pool `i` not resettable); optional DPP-only helper: `scripts/deployment/reset-chain138-weth-pmm-pool-i.sh`.
| Component | Role |
|-----------|------|
@@ -81,8 +81,9 @@ to `.env.keeper.local` (gitignored) that sources the secret file.
## PMM and Reporting
- **DODOPMMIntegration**: Optional `setReserveSystem(ReserveSystem)`; then `getPoolPriceOrOracle(pool)` uses ReserveSystem when base/quote are registered.
- **Token-aggregation**: Set `CHAIN_138_DODO_PMM_INTEGRATION` so the pool indexer ingests PMM pools; report API then includes them in `/report/all`, `/report/coingecko`, `/report/cross-chain`.
- **DODOPMMIntegration**: Optional `setReserveSystem(address)`; **`getPoolPriceOrOracle`** uses ReserveSystem **`getPrice`** (quote per base) when both asset feeds exist. On live Chain 138, **`ReserveConversionPriceAdapter`** (`0xA740EFF8C1339ea46833A6A968F24f3183a503C4`) is wired on Stack A — deploy with **`FOUNDRY_PROFILE=chain138`** (Paris EVM). See [CHAIN138_PRICING_FEEDS_LIVE.md](../../../docs/04-configuration/CHAIN138_PRICING_FEEDS_LIVE.md).
- **Official USDT/USDC** must be wired on **OraclePriceFeed** (`RefreshChain138UsdFeedsAndWireUsdc.s.sol`) so WETH/USDT and WETH/USDC oracle paths do not fall back to DVM **`getMidPrice()`** (~$1).
- **Token-aggregation**: Set `CHAIN_138_DODO_PMM_INTEGRATION=0x86ADA6Ef91A3B450F89f2b751e93B1b7A3218895` so the pool indexer ingests PMM pools; report API then includes them in `/report/all`, `/report/coingecko`, `/report/cross-chain`.
See: [DODO_PMM_INTEGRATION.md](DODO_PMM_INTEGRATION.md#oracle-and-reporting).
## Sibling archive keeper imports (2026-06-02)