12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import { PublicKey } from '@solana/web3.js';
- import { Liquidity, LiquidityPoolKeys, LiquidityStateV4, MAINNET_PROGRAM_ID, Market } from '@raydium-io/raydium-sdk';
- import { MinimalMarketLayoutV3 } from './market';
- export function createPoolKeys(
- id: PublicKey,
- accountData: LiquidityStateV4,
- minimalMarketLayoutV3: MinimalMarketLayoutV3,
- ): LiquidityPoolKeys {
- return {
- id,
- baseMint: accountData.baseMint,
- quoteMint: accountData.quoteMint,
- lpMint: accountData.lpMint,
- baseDecimals: accountData.baseDecimal.toNumber(),
- quoteDecimals: accountData.quoteDecimal.toNumber(),
- lpDecimals: 5,
- version: 4,
- programId: MAINNET_PROGRAM_ID.AmmV4,
- authority: Liquidity.getAssociatedAuthority({
- programId: MAINNET_PROGRAM_ID.AmmV4,
- }).publicKey,
- openOrders: accountData.openOrders,
- targetOrders: accountData.targetOrders,
- baseVault: accountData.baseVault,
- quoteVault: accountData.quoteVault,
- marketVersion: 3,
- marketProgramId: accountData.marketProgramId,
- marketId: accountData.marketId,
- marketAuthority: Market.getAssociatedAuthority({
- programId: accountData.marketProgramId,
- marketId: accountData.marketId,
- }).publicKey,
- marketBaseVault: accountData.baseVault,
- marketQuoteVault: accountData.quoteVault,
- marketBids: minimalMarketLayoutV3.bids,
- marketAsks: minimalMarketLayoutV3.asks,
- marketEventQueue: minimalMarketLayoutV3.eventQueue,
- withdrawQueue: accountData.withdrawQueue,
- lpVault: accountData.lpVault,
- lookupTableAccount: PublicKey.default,
- };
- }
|