一币多市场怎么盯:Equifold eth_subscribe 开盘告警
同一枚 token,可以在 多个市场 / 报价侧 陆续开盘——ETH 报价一档,stock token 报价再一档,盘面一层层铺开。Equifold 在 Base 上线、以及 Robinhood 侧多市场讨论,语境转述自 EquiFold · Base 与 EquiFold · multi-market。这篇只做一件事:一条 eth_subscribe 挂 Factory,按 token 聚合多市场,对 首市 / 第 N 市 打优先级与速率标签。
Bags 单配对落地:币股配对发射。新池 agent:新池 Agent。开盘节奏:抢开盘怎么盯。本篇盯 一币 → 多市场聚合。
| 用途 | Base(默认) | Robinhood(可选切换) |
|---|---|---|
| 公共 HTTPS | https://base-rpc.blockreq.com/v1/rpc/public | https://robinhood-mainnet-rpc.blockreq.com/v1/rpc/public |
| 公共 WSS | wss://base-rpc.blockreq.com/v1/rpc/public | wss://robinhood-mainnet-rpc.blockreq.com/v1/rpc/public |
| 私有 | 末尾 public → {API_KEY}(Key 放本地) | 同左 |
链:Base EVM chainId = 0x2105(8453);可选 RH 0x1237(4663)。Free 3M Requests / 30 days · 公开端点 · eth_subscribe · 定价。
1. 单配对 → 一币多市场听模型
| 盘面语感 | 链上信号 | 盯什么 |
|---|---|---|
| 市场落地 | Factory create / open 类事件 | marketId、baseToken、quoteToken |
| 同一 token 再开一档 | 同 baseToken、新 quote / 新 market | 写入 marketsByToken[token] |
| 首市开盘 | 该 token 聚合表长度 = 1 | 优先级标签 P0 / first |
| 第 N 市开盘 | 长度 ≥ 2 | 标签 P1… / nth + 速率窗 |
Stock-pairs 篇盯「一侧 ∈ stock 表的 单对」;本篇盯「同一 token 下市场列表怎么长」。
2. Equifold 事件 + 报价类型
常见报价侧两类(以部署 ABI / env 为准):
| 报价类型 | 示例 | 告警侧怎么用 |
|---|---|---|
| ETH / WETH 报价 | 原生流动性档 | 首市常落在这里 → P0 |
| Stock token 报价 | AAPL / TSLA 一类 | 同 token 再开一档 → Nth 扩展 |
Factory 地址、create/open 的 topics[0] 用环境变量占位(EQUIFOLD_FACTORY、EQUIFOLD_MARKET_TOPIC0),换链或换部署只改 env。
3. 一条订阅:Factory + topic,按 token 聚合
同一条公共 WSS,订 Factory 窄 logs;每条推送解码出 base / quote / market,推进本地聚合表。
Step A · 订 Factory create/open(topic0 占位)
{
"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe",
"params": ["logs", {
"address": "${EQUIFOLD_FACTORY}",
"topics": ["${EQUIFOLD_MARKET_TOPIC0}"]
}]
}
address/topics[0]从 env 读;以 Equifold Factory ABI 为准。- 解码
baseToken/quoteToken/market(字段名以 ABI 为准)→key = baseToken.toLowerCase()。
Step B · 本地聚合 marketsByToken
| 字段 | 含义 |
|---|---|
token | baseToken(聚合键) |
markets[] | { market, quote, tx, ts, index } |
firstAt | 首市时间戳 |
count | 当前市场数 |
每条 create:count += 1,index = count;index === 1 → 首市;否则第 N 市。
Step C · 与 stock-pairs 的分工
| 篇 | 听什么 | 产出 |
|---|---|---|
| 币股配对 | PairCreated × stock 表 | 单配对卡 |
| 本篇 | Equifold Factory × token 聚合 | 首市 / 第 N 市优先级卡 |
4. 告警:首市 vs 第 N 市(优先级 · 速率标签)
用 优先级 + 速率 管推送节奏(正面标签,方便看板色块):
| 标签 | 触发(demo) | 推送策略 |
|---|---|---|
| P0 · first | index === 1 | 立即推;字段齐全 |
| P1 · nth | index ≥ 2 | 带 index、quote、距首市 Δt |
| rate · burst | 同 token 在短窗内多市连开 | 叠速率标签,合并成一簇卡 |
| rate · steady | 间隔拉长的后续市 | 单条轻量更新 |
- 市场落地 →
{ token, market, quote, index, factoryTx, ts }。 - 首市 → 同上 +
priority: "P0";Webhook / 看板高亮。 - 第 N 市 →
priority: "P1"+index+deltaFromFirstMs。 - 速率簇 → 短窗内同 token 多条 → 一张簇卡,列出
markets[]摘要。
断线:重连必重新 subscribe;空窗用 HTTPS eth_getLogs 按块段回补,再用同一套聚合 + 优先级规则回放。默认 POST → https://base-rpc.blockreq.com/v1/rpc/public;切 RH 时换表中 RH 行。
5. Free 3M + 双端点切换(StackBlitz)
默认连 BlockReq Base 公共 WSS;UI 可切换 RH。粘贴 / env 填 Factory + topic0,实时刷 marketsByToken、打 P0 / P1 / rate 标签。代码在 StackBlitz 里看,文章只嵌预览:
仓库:blockreq/blog-demos → examples/equifold-multi-market-listen。换 keyed:WSS 末尾 public → {API_KEY}。Free 3M 够短时双链试听;长期看板换 keyed。