应用从 Baofa 的索引器读取列表、K 线、持有者、创作者账本与狂暴计划的记录。索引器是一个只读服务,跟随核心合约与狂暴钻石合约的事件、每枚已毕业代币的 PancakeSwap 交易对以及代币转账。索引器展示的一切都可以从链上重新计算;它存在只是为了让浏览器不必这么做。
约定#
| 约定 | 说明 |
|---|---|
| 方法 | 仅 GET |
| 响应结构 | { "data": ..., "indexed": { "block", "headBlock", "at" } } |
| 缓存 | 每个响应带 ETag;If-None-Match 以 304 应答 |
| 跨域 | Access-Control-Allow-Origin: * |
| 金额 | 十进制字符串;BNB 以计价单位(1e9 wei)计,代币以基本单位(6 位小数)计 |
| 分页 | limit 搭配 offset(列表)或 before(时间游标);响应报告实际使用的值 |
路由#
| 路由 | 返回 |
|---|---|
/v1/health |
链 ID、部署标签、核心合约地址、已索引与链头区块、最近错误、失败与重组计数 |
/v1/stats |
代币、毕业、交易与成交量总计 |
/v1/stats/series?interval=&limit= |
按时间桶的全市场成交量、成交笔数与发行数(limit 1 到 400) |
/v1/coins?sort=&stage=&q=&creator=&limit=&offset= |
代币列表,含储备、价格、市值、进度、24 小时成交量与涨跌、持有者数、元数据与走势线。sort 为 new、cap、volume、change、graduated 之一;stage 为 all、live 或 graduated;limit 1 到 200 |
/v1/coins/:coin |
单枚代币 |
/v1/coins/:coin/trades?limit=&before= |
成交记录,最新在前;before 为时间戳游标 |
/v1/coins/:coin/candles?interval=&limit= |
由一分钟桶聚合的 OHLC K 线;interval 以秒计,为 60、300、900、3600、14400、86400 之一 |
/v1/coins/:coin/holders?limit= |
余额,并标注曲线托管、交易对与创作者 |
/v1/accounts/:address/positions |
账户在各代币上的余额与净投入的 BNB |
/v1/accounts/:address/trades?limit=&before= |
账户的成交记录 |
/v1/accounts/:address/coins |
账户发行的代币 |
/v1/accounts/:address/ledger?limit= |
曲线上的创作者收益累计与领取 |
/v1/leaderboard?limit= |
按成交量排名的创作者与按七日成交量排名的交易者(limit 1 到 100) |
/v1/frenzy/summary |
狂暴计划总览:币数与开放中的窗口、计划自身的成交笔数与成交量、最近一笔成交后的净投入 BNB、已销毁的第二份供应、已归集与已提取金额,以及最近一次开关事件是否暂停了交易 |
/v1/frenzy/coins?status=&limit=&offset= |
狂暴币及其窗口、净投入 BNB、净持有币量、计划成交笔数与销毁记录;status 为 all、active 或 ended(limit 1 到 200) |
/v1/frenzy/coins/:coin |
单个狂暴币的窗口与计划状态 |
/v1/frenzy/trades?mint=&limit=&before= |
计划自身的成交,最新在前,附每笔成交后的金库与曲线状态 |
/v1/frenzy/ledger?limit= |
金库向费用接收地址的归集、管理员提取,以及暂停与恢复开关 |
新鲜度与重组#
索引器在每个有界区块段之后记录进度,重启后续跑。它保留近期区块的哈希;当最后一个已索引区块的哈希变化时,回滚到仍然匹配的最新区块,重置其上被触及的代币,并从已存储的事件重放。每个响应中 indexed.block 与 indexed.headBlock 的差值告诉你它落后链头多少,RPC 故障时 /v1/health 暴露退避状态。
毕业后的数据#
毕业后,成交来自交易对的 Swap 与 Sync 事件。交易对把路由记为发送方,所以索引器把每笔成交归属到交易的发送者。Sync 的储备以计价单位存储,使价格序列在毕业前后连续。
毕业守护程序#
索引器可以运行守护程序:每次同步之后,选出已完成且没有池子的曲线,模拟 migrate(coin),发送,并在下一次同步时结算回执。守护程序只付燃气费。被他人先行毕业的曲线会被跳过。守护程序是否在主网运行,从毕业记录本身可见,任何人也都可以从代币页触发。
自己运行#
索引器需要一个 RPC 地址与部署清单,存储到 SQLite 并提供上述路由。源码随协议仓库提供;npm ci、含 RPC_URL 与 DEPLOYMENT 的 .env、npm start 就是全部步骤。