We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I'm using the code provided in the SDK demo to create a CPMM Pool but I'm receiving the following error:
if (userVaultA === undefined || userVaultB === undefined) throw Error("you don't has some token account");
Here is the code:
config.ts import { Raydium, TxVersion, parseTokenAccountResp } from '@raydium-io/raydium-sdk-v2' import { Connection, Keypair, clusterApiUrl } from '@solana/web3.js' import { TOKEN_PROGRAM_ID, TOKEN_2022_PROGRAM_ID } from '@solana/spl-token' import bs58 from 'bs58' import 'dotenv/config' import {getKeypairFromEnvironment} from '@solana-developers/helpers' /* import * as secretKey from './wallet-keypair.json'; export const owner: Keypair = Keypair.fromSecretKey(Uint8Array.from(secretKey), {skipValidation: false}) */ export const owner: Keypair = await getKeypairFromEnvironment('SECRET_KEY'); //export const owner: Keypair = Keypair.fromSecretKey(secretKey) //export const connection = new Connection('<YOUR_RPC_URL>') //<YOUR_RPC_URL> export const connection = new Connection(clusterApiUrl('devnet')) //<YOUR_RPC_URL> export const txVersion = TxVersion.V0 // or TxVersion.LEGACY const cluster = 'devnet' // 'mainnet' | 'devnet' let raydium: Raydium | undefined export const initSdk = async (params?: { loadToken?: boolean }) => { if (raydium) return raydium if (connection.rpcEndpoint === clusterApiUrl('devnet')) console.warn('using free rpc node might cause unexpected error, strongly suggest uses paid rpc node') console.log(`connect to rpc ${connection.rpcEndpoint} in ${cluster}`) raydium = await Raydium.load({ owner, connection, cluster, disableFeatureCheck: true, disableLoadToken: !params?.loadToken, blockhashCommitment: 'finalized', // urlConfigs: { // BASE_HOST: '<API_HOST>', // api url configs, currently api doesn't support devnet // }, }) /** * By default: sdk will automatically fetch token account data when need it or any sol balace changed. * if you want to handle token account by yourself, set token account data after init sdk * code below shows how to do it. * note: after call raydium.account.updateTokenAccount, raydium will not automatically fetch token account */ /* raydium.account.updateTokenAccount(await fetchTokenAccountData()) connection.onAccountChange(owner.publicKey, async () => { raydium!.account.updateTokenAccount(await fetchTokenAccountData()) }) */ return raydium } export const fetchTokenAccountData = async () => { const solAccountResp = await connection.getAccountInfo(owner.publicKey) const tokenAccountResp = await connection.getTokenAccountsByOwner(owner.publicKey, { programId: TOKEN_PROGRAM_ID }) const token2022Req = await connection.getTokenAccountsByOwner(owner.publicKey, { programId: TOKEN_2022_PROGRAM_ID }) const tokenAccountData = parseTokenAccountResp({ owner: owner.publicKey, solAccountResp, tokenAccountResp: { context: tokenAccountResp.context, value: [...tokenAccountResp.value, ...token2022Req.value], }, }) return tokenAccountData } export const grpcUrl = '<YOUR_GRPC_URL>' export const grpcToken = '<YOUR_GRPC_TOKEN>'
createCpmmPool.ts import { CREATE_CPMM_POOL_PROGRAM, CREATE_CPMM_POOL_FEE_ACC, DEVNET_PROGRAM_ID, getCpmmPdaAmmConfigId, } from '@raydium-io/raydium-sdk-v2' import BN from 'bn.js' import { initSdk, txVersion } from '../config.ts' export const createPool = async () => { const raydium = await initSdk({ loadToken: true }) // check token list here: https://api-v3.raydium.io/mint/list // My Token const mintA = await raydium.token.getTokenInfo('AZqsAuAyzgz37pPiMGqyYtXAZa8i9UYLUkjnVpFPzwsz') // SOL const mintB = await raydium.token.getTokenInfo('So11111111111111111111111111111111111111112') /** * you also can provide mint info directly like below, then don't have to call token info api * { address: '4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R', programId: 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', decimals: 6, } */ const feeConfigs = await raydium.api.getCpmmConfigs() 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({ // poolId: // your custom publicKey, default sdk will automatically calculate pda pool id programId: DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_PROGRAM, // devnet: DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_PROGRAM poolFeeAccount: DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_FEE_ACC, // devnet: DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_FEE_ACC mintA, mintB, mintAAmount: new BN(100), mintBAmount: new BN(100), startTime: new BN(0), feeConfig: feeConfigs[0], associatedOnly: false, ownerInfo: { useSOLBalance: true, }, txVersion, // optional: set up priority fee here // computeBudgetConfig: { // units: 600000, // microLamports: 46591500, // }, }) // don't want to wait confirm, set sendAndConfirm to false or don't pass any params to execute const { txId } = await execute({ sendAndConfirm: true }) console.log('pool created', { txId, poolKeys: Object.keys(extInfo.address).reduce( (acc, cur) => ({ ...acc, [cur]: extInfo.address[cur as keyof typeof extInfo.address].toString(), }), {} ), }) process.exit() // if you don't want to end up node execution, comment this line } /** uncomment code below to execute */ createPool()
Any ideas?
The text was updated successfully, but these errors were encountered:
what's your wallet address?
Sorry, something went wrong.
No branches or pull requests
I'm using the code provided in the SDK demo to create a CPMM Pool but I'm receiving the following error:
if (userVaultA === undefined || userVaultB === undefined) throw Error("you don't has some token account");
Here is the code:
Any ideas?
The text was updated successfully, but these errors were encountered: