Uniswap 官方宣佈 StablePair Hook 主網落地,覆蓋 USDC/USDG · USDC/USDT——這篇盯 PoolManager Swap / ModifyLiquidity + hook logs:peg 漂移、動態費率、LP 進出進同一張告警面板。Base 股幣 Swap 盯盤 盯的是白名單大單成交;本篇盯 ETH 主網 StablePair 穩定池層。
公共端點開跑 · blockreq.com 註冊每月免費 3M 請求。
| 用途 | Endpoint |
|---|---|
| 公共 HTTPS | https://ethereum-rpc.blockreq.com/v1/rpc/public |
| 公共 WSS | wss://ethereum-rpc.blockreq.com/v1/rpc/public |
| 私有 | 末尾 public → {API_KEY}(Key 放本地) |
鏈:Ethereum Mainnet EVM chainId = 0x1(1)。公開端點 · eth_subscribe · 套餐 · 註冊。
1. Hook:StablePair × peg / 費率 / LP
| 盤面語感 | 鏈上訊號 | 你盯什麼 |
|---|---|---|
| 穩定池成交 | PoolManager Swap · poolId ∈ 表 | sqrtPrice · fee · amount0/1 |
| peg 漂移 | 成交後 tick / sqrtPriceX96 | 相對參考價 1:1 偏差 |
| 動態費率 | Swap 事件 fee 欄位 / hook getFee | feeE6 方向差 |
| LP 進出 | ModifyLiquidity · liquidityDelta | 加倉 / 撤出幅度 |
同族對照:Base 股幣篇收斂到 Swap 大單;ETH 本篇收斂到 StablePair peg + 費率 + LP 卡。
2. 事件:PoolManager Swap / ModifyLiquidity + hook
本地 JSON 維護:
| env | 預設(可編輯) |
|---|---|
POOL_MANAGER | 0x000000000004444c5dc75cB358380D2e3dE08A90 |
STABLEPAIR_HOOK | 0x0000113dCf4ADd69999Fad8F20F2b63F979bfcC0 |
POOL_ID_LIST | USDC/USDT · USDC/USDG poolId(官方部署表) |
PEG_BPS / LP_DELTA_MIN | 漂移與撤出閾值 |
同一條 Ethereum 公共 WSS:訂 PoolManager Swap + ModifyLiquidity,按 topics[1] = poolId 過濾;可並行訂 hook 地址 logs。
Step A · 訂 PoolManager Swap
{
"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe",
"params": ["logs", {
"address": "0x000000000004444c5dc75cB358380D2e3dE08A90",
"topics": [
"0x40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f",
["POOL_ID_USDC_USDT", "POOL_ID_USDC_USDG"]
]
}]
}
topics[0]:V4Swap(bytes32,address,int128,int128,uint160,uint128,int24,uint24)。topics[1]:indexedPoolId;解碼 amount0/1 · sqrtPriceX96 · liquidity · tick · fee → 算 peg 偏差與費率卡。
Step B · 訂 ModifyLiquidity(可並行)
{
"jsonrpc": "2.0", "id": 2, "method": "eth_subscribe",
"params": ["logs", {
"address": "0x000000000004444c5dc75cB358380D2e3dE08A90",
"topics": [
"0xf208f4912782fd25c7f114ca3723a2d5dd6f3bcc3ac8db5af63baa85f711d5ec",
["POOL_ID_USDC_USDT", "POOL_ID_USDC_USDG"]
]
}]
}
topics[0]:V4ModifyLiquidity(bytes32,address,int24,int24,int256,bytes32)。liquidityDelta < 0且幅度 ≥LP_DELTA_MIN→ LP 撤出卡;正值 → 加倉卡。
Step C · 穩定池卡欄位
{ chain: "ethereum", pad: "stablepair-hook", kind: "swap|peg|fee|lp", poolId, hook, sqrtPriceX96, tick, fee, pegBps, liquidityDelta, txHash, blockNumber, ts }
同 txHash + logIndex 去重;demo 擰 poolId 表與閾值。官方參考 poolId(部署頁可核對):
- USDC/USDT ·
0x2b21c65d9a7dc6926ee330a1c6e5a8037fd81774f3dc066536f800128e39f634 - USDC/USDG ·
0xeda62d2906d0edf26d40c793d581609552a44a87f618a98ff76ebe8dde4b7edb
3. 瀏覽器 demo(StackBlitz)
預設連 Ethereum 公共 WSS;貼上 PoolManager / StablePair hook / poolId 表 + peg·LP 閾值,點 Start 刷穩定池卡。程式碼在 StackBlitz 裡看,文章只嵌預覽:
倉庫:blockreq/blog-demos → examples/ethereum-uniswap-v4-stablepair-hook-listen(Vite+React+viem;StackBlitz 開倉庫 root)。
WSS → wss://ethereum-rpc.blockreq.com/v1/rpc/public
HTTPS→ https://ethereum-rpc.blockreq.com/v1/rpc/public
env → POOL_MANAGER · STABLEPAIR_HOOK · POOL_ID_LIST · PEG_BPS · LP_DELTA_MIN
換 keyed:WSS 末尾 public → {API_KEY}。開跑配額:blockreq.com 註冊每月免費 3M 請求。
4. 告警節奏
- Swap 到達 → 解碼 poolId · sqrtPrice · fee · amounts → pegBps / fee 卡。
- ModifyLiquidity 到達 → liquidityDelta 閾值 → LP 加倉 / 撤出卡。
- 出站 →
ETH StablePair · kind=… · pool=… · pegBps=… · fee=… · blk=…。 - 去重 → 同
txHash+logIndex只推一次。
斷線後重連並重新 subscribe;空窗 HTTPS eth_getLogs 按塊段回補同一 PoolManager。POST → https://ethereum-rpc.blockreq.com/v1/rpc/public。
5. 小結 + CTA
- 粒度:ETH StablePair 盯盤 = peg 漂移 + 動態費率 + LP 進出。
- 配方:PoolManager + Swap/ModifyLiquidity topic + poolId 表 + 閾值 → 穩定池卡。
- 可跑:瀏覽器掛 BlockReq Ethereum 公共 WSS;demos1 路徑見上。
- 開跑:公開端點 + blockreq.com 註冊每月免費 3M 請求。
下一步:固化 poolId / 閾值 JSON → Webhook → 與 Base 股幣 Swap 大單卡同屏疊層。文件 · 定價 · 註冊。