Skip to main content
交易监控让您能够实时跟踪Solana上的交易执行、成功/失败状态、程序交互和代币余额变化。本指南涵盖过滤策略和使用helius-laserstream SDK的实际实现。
**先决条件:**本指南假定您已完成LaserStream gRPC 快速入门并拥有API密钥。

交易过滤选项

LaserStream 使用与 Yellowstone gRPC 相同的过滤器形状,包括 tokenAccounts (ATA 扩展) 过滤器。您将在 transactions.<label> 内设置的字段:
  • accountInclude — 如果这些账户中的任何一个出现,则匹配(逻辑“或”)
  • accountRequired — 仅当所有这些账户出现时才匹配(逻辑“与”)
  • accountExclude — 如果这些账户中的任何一个出现,则删除
  • vote / failed — 用于投票和失败交易的布尔标志
  • tokenAccounts — 选择加入关联代币账户(ATA)扩展("balanceChanged""all""none"),因此一个 accountInclude 钱包也匹配拥有 SPL 代币余额的交易。请参阅代币账户(ATA)过滤和下面的观看钱包选项卡。
监控涉及特定程序的交易跟踪所有接触您关心的程序的交易:
最佳用于: 程序特定监控、DeFi 协议跟踪、智能合约交互。

实用示例

示例1: 监控DEX交易

跟踪触及热门DEX程序的交易:

示例2: 监控失败的交易

跟踪失败的交易以揭示应用问题:

示例3: 监控高价值交易

跟踪具有重要SOL转账的交易:

示例4: 监控一个钱包(包含token转账)

通过在普通accountInclude过滤器中添加tokenAccounts,监控所有为钱包移动资金的行为——包括涉及其ATAs的SPL token转账:

交易数据结构


筛选逻辑参考

包含逻辑(或)

accountInclude: 交易必须涉及任意这些账户。["A", "B"] 匹配涉及账户 A 或 账户 B 的交易。

必需逻辑(与)

accountRequired: 交易必须涉及所有这些账户。["A", "B"] 匹配涉及账户 A 和 账户 B 的交易。

排除逻辑(非)

accountExclude: 交易不得涉及任何这些账户。

组合逻辑

最终筛选器:(accountInclude OR empty) AND (accountRequired AND all) AND NOT (accountExclude OR any)

性能考虑

交易流量可能很大。要保持同步:
  • 从具体的程序筛选器开始(不要订阅“所有交易”)
  • 当能容忍约 1.5 秒的额外延迟时,使用 confirmed 代替 processed
  • 用计数器监控你的处理能力
  • 考虑在队列后面运行并行消费者

错误处理

症状: 交易量过多。解决方案: 添加更严格的筛选器(accountRequired, accountExclude);使用更高的承诺度;实施抽样或速率限制;异步处理。
症状: 预期交易未出现。解决方案: 验证程序地址是否正确;检查交易实际存在;尝试使用 processed 获取更快的更新;放宽限制性 accountRequired/accountExclude 筛选器。
症状: 无法解析交易数据。解决方案: 处理缺失字段;在处理前验证结构;在 try/catch 内封装解析;参见解码交易数据

下一步

时隙和区块监控

跟踪网络共识和区块生成。

流传输 Pump AMM 数据

实际示例:监控 Pump.fun AMM 交易。

解码交易数据

解析二进制交易载荷为可读的 Solana 交易。

Yellowstone 协议参考

针对原始 Yellowstone gRPC 协议的相同工作流程。