プールの作成
方法
SDK メソッド
呼び出し可能な人
Creator fees
手数料設定の取得
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 から config 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,
// optional: ここで priority fee を設定
// 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()パラメータ
パラメータ
型
説明
戻り値
フィールド
説明
permission 付きのプール作成 (creator fees)
追加パラメータ (permissionless と比較)
パラメータ
型
説明
FeeOn enum
FeeOn enum値
動作
permissionless との主な違い
最終更新
役に立ちましたか?