监控raydium v4新流动性池

本教程实现了监听solana链上raydium dex v4的新流动性池创建,通过解析交易获得了配对代币名称和数量,可以按照类似方法获得池子更多信息。

基本思路

  1. 监听Raydium Liquidity Pool V4的log,过滤出包含initialize2方法的交易

  2. 解析交易,获得流动池信息

# 用到的库
const solanaWeb3 = require('@solana/web3.js');
const splToken = require('@solana/spl-token');
const { Metadata, deprecated } = require('@metaplex-foundation/mpl-token-metadata');
const bs58 = require('bs58');
const { struct, u8, nu64 } = require('@solana/buffer-layout');

1. 监听Raydium Liquidity Pool V4的log

const connection = new solanaWeb3.Connection('{rpc}', 'confirmed'); // {rpc}处填写为自己的rpc
const raydiumV4Address = '675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8'
const raydiumV4PublicKey = new solanaWeb3.PublicKey('675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8');

connection.onLogs(
        raydiumV4PublicKey,
        ({ logs, err, signature }) => {
            if (err) return;

            if (logs && logs.some(log => log.includes("initialize2"))) {
                console.log("Signature for 'initialize2':", signature);
            }
        },
        "confirmed"
    );

这样我们就可以获取到所有刚创建池子的交易,输出应该如下:

2. 解析交易

在solscan里可以看到交易2YY7BM9NMH8fbSgNsy6YhWg6hEvnbpau4kNdmTXYcqs7UHo6NxY8MuZZH7qJke71vuNvmQmUUDA8LdkdgqYyrFP9的详细信息。

找到Instruction Details部分,找到与Raydium Liquidity Pool V4交互的指令部分,如下图

在这里,我们关注两部分:一个Input Accounts,可以获得代币信息;另一个是Instruction Data可以获得数量信息

opentime字段应该是开盘时间,有的是0(立即开盘),有的是linux时间戳,还在观察

最后打印一下结果

完整代码

最后更新于