1
查看程序
Pump.fun 通过两个指令根据版本来启动代币:检查响应的
create 和 create_v2。解析事件通过与解析 Streams 相同的 IDL 目录解码指令,因此在匹配之前,通过其 describeProgram 方法确认确切的解码名称和账户角色:Request
instructions 列表中是否有 create 和 create_v2,以及在其 roles 列表中查找所需账户——通常是新的 mint 地址,和 creator 账户角色或 creator 字段在 args 中。两个指令版本不一定共享一个形状,这就是为什么下面的代码检查参数和几个角色名称而不是假设一个的原因。2
构建请求
分页获取创建者钱包的历史记录:值得提前了解三个与流过滤器的区别:
address是必须的——不支持程序范围的扫描,所以您获取的是一个钱包的部署,而不是 Pump.fun 上的每个部署。对于信息流,使用 解析 Streams。- 请求没有服务器端指令过滤器。历史记录返回地址触及的所有内容,下一步是在客户端筛选出 Pump.fun 指令。
- 没有
includeFailed开关。历史记录返回成功和失败的交易,因此在客户端检查parsed.transactionStatus——失败的部署永远不会产生活跃的铸造。
3
分页浏览历史记录
每个结果都携带交易的每个指令。扫描
parsed.instructions 以查找 create/create_v2 命中,并继续传递 paginationToken,直到它消失:pumpfun-mint-history.js
4
提取每个部署
从解码指令中提取 mint、创建者和元数据,正如流监听器所做的那样:检查
ix.decoded 是否存在,然后才能信任 args 和 accounts ——否则,Pump.fun 程序的未识别构建将显示为 mint: null,仅能使用 rawData 和 rawAccounts。下一步
跟踪 Pump.fun 铸造
实时版本:一个重新连接安全的监听器,记录每个新部署着陆时的情况。