UNPKG

test-raydium-sdk-v2

Version:

An SDK for building applications on top of Raydium.

122 lines (108 loc) 3.2 kB
import { PublicKey } from "@solana/web3.js"; import { findProgramAddress, METADATA_PROGRAM_ID } from "@/common"; import { i32ToBytes, u16ToBytes } from "./util"; export const AMM_CONFIG_SEED = Buffer.from("amm_config", "utf8"); export const POOL_SEED = Buffer.from("pool", "utf8"); export const POOL_VAULT_SEED = Buffer.from("pool_vault", "utf8"); export const POOL_REWARD_VAULT_SEED = Buffer.from("pool_reward_vault", "utf8"); export const POSITION_SEED = Buffer.from("position", "utf8"); export const TICK_ARRAY_SEED = Buffer.from("tick_array", "utf8"); export const OPERATION_SEED = Buffer.from("operation", "utf8"); export const POOL_TICK_ARRAY_BITMAP_SEED = Buffer.from("pool_tick_array_bitmap_extension", "utf8"); export function getPdaAmmConfigId( programId: PublicKey, index: number, ): { publicKey: PublicKey; nonce: number; } { return findProgramAddress([AMM_CONFIG_SEED, u16ToBytes(index)], programId); } export function getPdaPoolId( programId: PublicKey, ammConfigId: PublicKey, mintA: PublicKey, mintB: PublicKey, ): { publicKey: PublicKey; nonce: number; } { return findProgramAddress([POOL_SEED, ammConfigId.toBuffer(), mintA.toBuffer(), mintB.toBuffer()], programId); } export function getPdaPoolVaultId( programId: PublicKey, poolId: PublicKey, vaultMint: PublicKey, ): { publicKey: PublicKey; nonce: number; } { return findProgramAddress([POOL_VAULT_SEED, poolId.toBuffer(), vaultMint.toBuffer()], programId); } export function getPdaPoolRewardVaulId( programId: PublicKey, poolId: PublicKey, rewardMint: PublicKey, ): { publicKey: PublicKey; nonce: number; } { return findProgramAddress([POOL_REWARD_VAULT_SEED, poolId.toBuffer(), rewardMint.toBuffer()], programId); } export function getPdaTickArrayAddress( programId: PublicKey, poolId: PublicKey, startIndex: number, ): { publicKey: PublicKey; nonce: number; } { return findProgramAddress([TICK_ARRAY_SEED, poolId.toBuffer(), i32ToBytes(startIndex)], programId); } export function getPdaProtocolPositionAddress( programId: PublicKey, poolId: PublicKey, tickLower: number, tickUpper: number, ): { publicKey: PublicKey; nonce: number; } { return findProgramAddress( [POSITION_SEED, poolId.toBuffer(), i32ToBytes(tickLower), i32ToBytes(tickUpper)], programId, ); } export function getPdaPersonalPositionAddress( programId: PublicKey, nftMint: PublicKey, ): { publicKey: PublicKey; nonce: number; } { return findProgramAddress([POSITION_SEED, nftMint.toBuffer()], programId); } export function getPdaMetadataKey(mint: PublicKey): { publicKey: PublicKey; nonce: number; } { return findProgramAddress( [Buffer.from("metadata", "utf8"), METADATA_PROGRAM_ID.toBuffer(), mint.toBuffer()], METADATA_PROGRAM_ID, ); } export function getPdaOperationAccount(programId: PublicKey): { publicKey: PublicKey; nonce: number; } { return findProgramAddress([OPERATION_SEED], programId); } export function getPdaExBitmapAccount( programId: PublicKey, poolId: PublicKey, ): { publicKey: PublicKey; nonce: number; } { return findProgramAddress([POOL_TICK_ARRAY_BITMAP_SEED, poolId.toBuffer()], programId); }