用Go监控PumpSwap流动性:三步搞定
最近我基于 Pump.fun 的 pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA.json IDL,用我的 solana-anchor-go 项目写了个简单工具,实时监控 PumpSwap 的流动性事件(比如新池子创建),特别适合抢开盘或分析市场。我把过程浓缩成三步,代码清晰又实用。如果觉得不错,欢迎到 solana-anchor-go 点个 star 支持!
环境:Go 1.18+,Solana RPC 节点(推荐 helius 申请个免费的账号,或者https://api.mainnet-beta.solana.com)。
依赖:安装我的 solana-anchor-go:
go install github.com/daog1/solana-anchor-go@latest
IDL:PumpSwap 的 IDL 文件,在 github 仓库里面有(假设你已下载为 pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA.json)。
用 solana-anchor-go 把 pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA.json 转换为 Go 代码,生成 PumpSwap 的接口。
运行以下命令:
solana-anchor-go -src=pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA.json
这会生成 generated/pump_amm包,包里面的内容和idl文件中的指令定义、账号、事件一一对应.比如 CreatePoolEventEventData(新池创建事件)。
PumpSwap 的程序 ID 是 pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA。我们用 Go 订阅它的日志。
代码如下:
package main
import (
"context"
"log"
"github.com/gagliardetto/solana-go"
"github.com/gagliardetto/solana-go/rpc"
"github.com/gagliardetto/solana-go/rpc/ws"
)
func main() {
// 连接 WebSocket
client, err := ws.Connect(context.Background(), "wss://api.mainnet-beta.solana.com")
if err != nil {
log.Fatalf("连接失败: %v", err)
}
defer client.Close()
// PumpSwap 程序 ID
programID := solana.MustPublicKeyFromBase58("pAMMBay6oceH9fJKBR...
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!