[英]How to create a liquidity pool on Raydium on Solana devnet?
誰能給我任何關於如何在 Solana devnet 上創建 LP 池的建議?
我計划這項工作是為了使用 Raydium 協議測試 devnet 上特定兩個令牌之間的交換。
所以,我需要先在 devnet 上創建一個交換池。 為了實現這一點,我像下面那樣做了。
首先,為了在血清市場上市,我在我的mac上克隆了Raydium-Dex存儲庫,並將Serum dex的程序ID從主網更改為devnet,並在devnet血清上成功注冊。 (帶有 SOL 對的自定義令牌)結果,我得到了一個血清市場程序 ID。
之后,我克隆了 Raydium 前端存儲庫以創建流動資金池。 並修改wellknownToken.config.ts
以便我的自定義令牌可以創建一個新池。
最后,我可以從 localhost Web UI 訪問創建池 UI。 我單擊了 UI 上的 Initialize Liquidity Pool 按鈕,並收到一條 Toast 消息Create a new pool Transaction Sent
顯然。
但是,它效果不佳。 因為我在 Solscan 網站上找不到交易哈希。 我跟蹤了按鈕的點擊事件代碼,我發現了一件事。
Liquidity.makeCreatePoolTransaction
函數的結果值之一為空值,尤其是 feePayer。
const { transaction: sdkTransaction1, signers: sdkSigners1 } = Liquidity.makeCreatePoolTransaction({
poolKeys: sdkAssociatedPoolKeys,
userKeys: { payer: owner }
})
const testTx = await loadTransaction({ transaction: sdkTransaction1, signers: sdkSigners1 })
console.log('feepayer', testTx.feePayer?.toBase58()) // null
我覺得這不是在 Solana devnet 上創建交換池的首選(好)方法,但我找不到更好的方法來完成這項任務。
我錯過了什么? 或者我應該閱讀或學習什么? 請給我一些建議,告訴我如何讓它發揮作用。
謝謝。
看起來使用Liquidity.makeCreatePoolTransaction
創建的交易尚未發送到網絡,因此它不存在於任何地方。 請務必在嘗試加載之前發送並確認交易。 你可以使用類似的東西:
const { transaction: sdkTransaction1, signers: sdkSigners1 } = Liquidity.makeCreatePoolTransaction({
poolKeys: sdkAssociatedPoolKeys,
userKeys: { payer: owner }
});
await sendAndConfirmTransaction(connection, transaction, [wallet]);
請注意,這需要connection
發送和wallet
簽名。 更多信息請訪問https://github.com/solana-labs/solana/blob/9ac2245970de90af30bff9d1f7f35cd2d8f2bf6d/web3.js/src/util/send-and-confirm-transaction.ts#L18
不過,您可能會遇到其他問題,因為 Raydium 程序未部署到 devnet: https ://explorer.solana.com/address/675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8?cluster=devnet
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.