创建池
方法
SDK 方法
谁可以调用
创建者费用
获取费用配置
const feeConfigs = await raydium.api.getCpmmConfigs()创建池
import {
CREATE_CPMM_POOL_PROGRAM,
CREATE_CPMM_POOL_FEE_ACC,
DEVNET_PROGRAM_ID,
getCpmmPdaAmmConfigId,
TxVersion,
} from '@raydium-io/raydium-sdk-v2'
import BN from 'bn.js'
import { initSdk } from '../config'
const createPool = async () => {
const raydium = await initSdk({ loadToken: true })
const mintA = await raydium.token.getTokenInfo('So11111111111111111111111111111111111111112')
const mintB = await raydium.token.getTokenInfo('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v')
/**
* 你也可以直接提供 mint 信息,而不是先获取:
* {
* address: '4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R',
* programId: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
* decimals: 6,
* }
*/
const feeConfigs = await raydium.api.getCpmmConfigs()
// 在 devnet 上,从 devnet program 重新推导配置 ID
if (raydium.cluster === 'devnet') {
feeConfigs.forEach((config) => {
config.id = getCpmmPdaAmmConfigId(
DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_PROGRAM,
config.index
).publicKey.toBase58()
})
}
const { execute, extInfo } = await raydium.cpmm.createPool({
programId: CREATE_CPMM_POOL_PROGRAM,
// devnet: DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_PROGRAM
poolFeeAccount: CREATE_CPMM_POOL_FEE_ACC,
// devnet: DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_FEE_ACC
mintA,
mintB,
mintAAmount: new BN(1_000_000),
mintBAmount: new BN(1_000_000),
startTime: new BN(0),
feeConfig: feeConfigs[0],
associatedOnly: false,
ownerInfo: {
useSOLBalance: true,
},
txVersion: TxVersion.V0,
// 可选:在此设置优先费用
// computeBudgetConfig: {
// units: 600000,
// microLamports: 46591500,
// },
})
const { txId } = await execute({ sendAndConfirm: true })
console.log('pool created', {
txId: `https://explorer.solana.com/tx/${txId}`,
poolId: extInfo.address.poolId.toBase58(),
})
}
createPool()参数
参数
类型
说明
返回值
字段
说明
通过授权创建池(创建者费用)
附加参数(相对于无权限)
参数
类型
说明
FeeOn enum
FeeOn enum值
行为
与无权限方式的关键差异
最后更新于
这有帮助吗?