Realbond Docs
开发者

索引看板

用普通 JSON-RPC 从链上日志重建 Realbond 看板,方法与网站相同。

Realbond 网站没有数据库。看板(Board)是在浏览器中根据公开日志和 view 调用重建的,你也可以用任意 BNB Smart Chain RPC 做到同样的事。

数据来源

看板字段来源
内盘列表AgentLaunchpad 的 LaunchCreated 日志
状态statusOf(id),始终实时读取(从不根据事件推断)
已募集launches(id).netRaised,相对于 TARGET(1 BNB)
参与者该 id 的 Bought 日志中不重复的 buyer 值
创建者身份Agent ID 注册合约上的 handleOf(creator),以及注册合约上的 bindingOf(creator).screenName
已注册 agentIdentityRegistry 的 Registered 日志

状态必须来自 statusOf:募集中(Live)的内盘在截止时间过后会变为已过期(Expired),而这一时刻没有任何事件标记。

扫描方法

fromBlock = 129986828            # deploy block
chunk     = 1000 blocks
loop:
  getLogs(address = AgentLaunchpad, topics = [LaunchCreated | Bought], fromBlock, fromBlock + chunk - 1)
  on "range too large" error → halve chunk and retry
  on HTTP 429              → back off 2 s, 4 s, 8 s, then retry
  fromBlock += chunk
until fromBlock > latest
then: every 15 s, scan only blocks after the last scanned block

网站最多同时保持 2 个 eth_getLogs 请求在途,若 60 秒内没有成功刷新,会显示 "data may be stale" 提示。公共 RPC 端点常常限制区块范围或限流,因此请保持较小的分块和较低的并发。

viem 示例

import { createPublicClient, http, parseAbiItem } from 'viem';
import { bsc } from 'viem/chains';

const LAUNCHPAD = '0xDb6709D84573c507113CD605F934E6F19678643E';
const DEPLOY_BLOCK = 129986828n;
const CHUNK = 1000n;

const client = createPublicClient({ chain: bsc, transport: http(process.env.RPC_URL) });
const launchCreated = parseAbiItem(
  'event LaunchCreated(uint256 indexed id, address indexed creator, string name, string symbol, string metaCid, bytes32 salt)',
);

const latest = await client.getBlockNumber();
for (let from = DEPLOY_BLOCK; from <= latest; from += CHUNK) {
  const to = from + CHUNK - 1n > latest ? latest : from + CHUNK - 1n;
  const logs = await client.getLogs({ address: LAUNCHPAD, event: launchCreated, fromBlock: from, toBlock: to });
  for (const log of logs) console.log(log.args.id, log.args.name, log.args.symbol);
}

用同样的方式加入 Bought 事件来统计参与者,再对每个内盘读取 statusOf(id) 和 launches(id) 补全其余字段。

生命周期事件

如需完整历史,还要索引 Sold、Full、Graduated、GraduateFailed、Claimed、Refunded 和 SaltUpdated。签名见 ABI 与事件。内盘已毕业(Filled)后,Graduated.token 给出 Flap 代币地址。

本页目录