监听Raydium流动池的创建

在此指南中,我们将学习如何使用Solana WebSockets监听Solana区块链上的新流动资金池。

监听Raydium流动池的创建
一键发币: SUI | SOL | BNB | ETH | BASE | ARB | OP | POLYGON | AVAX | FTM | OK

随着Solana区块链上DeFi活动和Memecoins的增加,人们越来越有兴趣找到追踪在Raydium DEX上创建的新流动资金池的方法。在此指南中,我们将学习如何使用Solana WebSockets监听Solana区块链上的新流动资金池。

什么是Raydium?

Raydium是建立在Solana区块链上的去中心化交易所(DEX)和自动化做市商(AMM)。它的设计目的是为用户提供快速且低成本的交易服务。Raydium是Solana DeFi生态系统中的关键参与者,并且一直是用户交易和提供各种代币流动性的热门选择。

什么是流动资金池?

流动资金池是去中心化交易所DeFi的重要组成部分。它们用于促进交易并为各种代币提供流动性。流动资金池由一对代币组成,并用于DEX上的交易。用户通常可以向这些池提供流动性并获得费用回报。

1、创建新项目

在终端中创建一个新的项目目录:

mkdir raydium-lp-tracker  
cd raydium-lp-tracker  

为您的应用程序创建一个文件,app.ts

echo > app.ts  

使用“yes”标志初始化您的项目,以使用新的包的默认值:

yarn init --yes  
#或  
npm init --yes  

安装Solana web3.js库:

yarn add @solana/web3.js@1  
#或  
npm install @solana/web3.js@1  

2、获取Solana API端点

要在Solana上构建,您需要一个API端点来连接网络。你可以使用公共节点或部署和管理自己的基础设施;但是,如果你想要8倍的响应速度,可以使用QuickNode或Helius等收费服务。

3、导入所需库

打开app.ts并导入所需的库:

import { Connection, PublicKey } from '@solana/web3.js';  

4、定义常量

为Raydium DEX和你的Solana端点定义常量:

const RAYDIUM_PUBLIC_KEY = "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8";  
const HTTP_URL = "YOUR_SOLANA_HTTP_ENDPOINT";  
const WSS_URL = "YOUR_SOLANA_WSS_ENDPOINT";  
const RAYDIUM = new PublicKey(RAYDIUM_PUBLIC_KEY);  
const INSTRUCTION_NAME = "initialize2";  
  
const connection = new Connection(HTTP_URL, {  
    wsEndpoint: WSS_URL  
});  

在这里,我们只是定义了Raydium LP程序的公钥,并建立了与Solana主网的连接。我们还定义了将在日志中查找的指令名称。我们正在寻找名为*"initialize2"*的指令,该指令是负责创建新流动资金池的Raydium LP程序指令。

5、创建WebSocket连接

创建一个函数,使用WebSockets连接到Solana区块链:

async function startConnection(connection: Connection, programAddress: PublicKey, searchInstruction: string): Promise<void> {  
    console.log("监控程序日志:", programAddress.toString());  
    connection.onLogs(  
        programAddress,  
        ({ logs, err, signature }) => {  
            if (err) return;  
  
            if (logs && logs.some(log => log.includes(searchInstruction))) {  
                console.log("搜索指令签名:", `https://explorer.solana.com/tx/${signature}`);  
                fetchRaydiumMints(signature, connection);  
            }  
        },  
        "finalized"  
    );  
}  

此函数通过WebSockets简单地连接到Solana区块链,并使用onLogs方法监听来自Raydium DEX程序的日志。

当找到包含 searchInstruction 的日志时,我们将根据交易获取相关的代币铸造信息(我们将在下一步定义此功能)。

6、获取LP铸造信息

我们现在需要一种从交易签名中获取我们的代币铸造信息的方法。我们需要获取签名详情并解析结果以找到相关信息。在你的程序中,创建一个新函数,fetchRaydiumMints

async function fetchRaydiumMints(txId: string, connection: Connection) {  
    try {  
        const tx = await connection.getParsedTransaction(  
            txId,  
            {  
                maxSupportedTransactionVersion: 0,  
                commitment: 'confirmed'  
            });  
  
        //@ts-ignore  
        const accounts = (tx?.transaction.message.instructions).find(ix => ix.programId.toBase58() === RAYDIUM_PUBLIC_KEY).accounts as PublicKey[];  
      
        if (!accounts) {  
            console.log("交易中未找到任何账户。");  
            return;  
        }  
      
        const tokenAIndex = 8;  
        const tokenBIndex = 9;  
      
        const tokenAAccount = accounts[tokenAIndex];  
        const tokenBAccount = accounts[tokenBIndex];  
      
        const displayData = [  
            { "Token": "A", "Account Public Key": tokenAAccount.toBase58() },  
            { "Token": "B", "Account Public Key": tokenBAccount.toBase58() }  
        ];  
  
        console.log("发现新LP");  
        console.table(displayData);  
      
    } catch {  
        console.log("获取交易错误:", txId);  
        return;  
    }  
}  

这里有大量内容,但并不复杂。

  • 首先,我们使用getParsedTransaction方法获取交易详情。
  • 接下来,我们在指令数组中查找Raydium程序ID并提取与交易相关的账户。
  • 如果找到了账户,我们从数组中的预期位置(8和9)提取代币铸造信息。
  • 最后,我们将代币铸造信息记录到控制台。

7、启动连接

现在我们已经定义了函数,我们可以启动连接并监听新的流动资金池:

startConnection(connection, RAYDIUM, INSTRUCTION_NAME).catch(console.error);  

8、运行程序

要运行程序,请使用以下命令:

ts-node app.ts  

现在,坐下来观看在Raydium DEX上创建的新流动资金池吧!你应该会在终端中看到每次有新的LP创建时的通知,符合我们的搜索标准:

Raydium LP追踪器

9、结束语

做得很好!你现在有了一个可以监听Raydium DEX上新流动资金池的LP追踪器。您可以将其作为起点,构建更复杂的跟踪和监控Solana区块链上DeFi活动的应用程序,或者在新的流动资金池创建时实现自定义逻辑。


原文链接:How to Track New Liquidity Pools Created on Solana Raydium DEX

DefiPlot翻译整理,转载请标明出处

免责声明:本站资源仅用于学习目的,也不应被视为投资建议,读者在采取任何行动之前应自行研究并对自己的决定承担全部责任。
通过 NowPayments 打赏