init raydium create ammv4/clmm/cpmm pool func

This commit is contained in:
Rudy
2024-12-16 04:23:28 +08:00
parent ff77c6a5aa
commit 2fc0eed36a
8 changed files with 1743 additions and 1436 deletions

View File

@@ -0,0 +1,84 @@
import {
CREATE_CPMM_POOL_FEE_ACC,
CREATE_CPMM_POOL_PROGRAM,
Raydium,
TxVersion
} from '@raydium-io/raydium-sdk-v2'
import { MintLayout } from '@solana/spl-token'
import { PublicKey } from '@solana/web3.js'
import BN from 'bn.js'
import { SolanaAgentKit } from '../agent'
export async function raydiumCreateCpmm(
agent: SolanaAgentKit,
mintA: PublicKey,
mintB: PublicKey,
configId: PublicKey,
mintAAmount: BN,
mintBAmount: BN,
startTime: BN,
): Promise<string> {
const raydium = await Raydium.load({
owner: agent.wallet,
connection: agent.connection,
})
const [mintInfoA, mintInfoB] = await agent.connection.getMultipleAccountsInfo([mintA, mintB])
if (mintInfoA === null || mintInfoB === null) throw Error('fetch mint info error')
const mintDecodeInfoA = MintLayout.decode(mintInfoA.data)
const mintDecodeInfoB = MintLayout.decode(mintInfoB.data)
const mintFormatInfoA = {
chainId: 101,
address: mintA.toString(),
programId: mintInfoA.owner.toString(),
logoURI: '',
symbol: '',
name: '',
decimals: mintDecodeInfoA.decimals,
tags: [],
extensions: {}
}
const mintFormatInfoB = {
chainId: 101,
address: mintB.toString(),
programId: mintInfoB.owner.toString(),
logoURI: '',
symbol: '',
name: '',
decimals: mintDecodeInfoB.decimals,
tags: [],
extensions: {}
}
const { execute, extInfo } = await raydium.cpmm.createPool({
programId: CREATE_CPMM_POOL_PROGRAM,
poolFeeAccount: CREATE_CPMM_POOL_FEE_ACC,
mintA: mintFormatInfoA,
mintB: mintFormatInfoB,
mintAAmount,
mintBAmount,
startTime,
//@ts-ignore
feeConfig: { id: configId.toString() },
associatedOnly: false,
ownerInfo: {
useSOLBalance: true,
},
txVersion: TxVersion.V0,
// computeBudgetConfig: {
// units: 600000,
// microLamports: 46591500,
// },
})
const { txId } = await execute({ sendAndConfirm: true })
return txId
}