коллеги, привет
нужно найти адрес пула по минт адресу токена в соли через памп свап сдк
там есть метод poolKey() только он возвращает какую то белеберду а не адрес пула
вот тут ниже пример
к чему тут индекс ему давать, тоже не очень понятно
import { BN } from '@coral-xyz/anchor';
import { bs58 } from '@coral-xyz/anchor/dist/cjs/utils/bytes';
import {
PumpAmmSdk,
sendAndConfirmTransaction,
transactionFromInstructions,
} from '@pump-fun/pump-swap-sdk';
import { Connection, PublicKey } from '@solana/web3.js';
const url =
'https://mainnet.helius-rpc.com/?api-key=7e3208a7-a7a3-4a0f-9352-45ba2c6f059a';
const connection = new Connection(url);
const pump = new PumpAmmSdk(connection);
const pumpAuthority = new PublicKey(
'pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA',
);
export const swap = async () => {
const pool = new PublicKey('4p4GEsRtSkWeyQawRyPbAC6Sh3yAbiadQKt7kJww2dmS');
const quoteDsecimalsWSOL = 9;
const quote = new BN(1 * Math.pow(10, quoteDsecimalsWSOL - 5));
const pub = new PublicKey('МНОГО_СОЛАНЫ_ТУТ');
const baseAmount = await pump.swapAutocompleteBaseFromQuote(
pool,
quote,
10,
'quoteToBase',
);
const swapInstructions = await pump.swapBaseInstructions(
pool,
baseAmount,
10,
'quoteToBase',
pub,
);
const secretKey = bs58.decode(
'МНОГО_СОЛАНЫ',
);
const signer = {
publicKey: pub,
secretKey,
};
const latestBlockhash = await connection.getLatestBlockhash();
const tx = transactionFromInstructions(
pub,
swapInstructions,
latestBlockhash.blockhash,
[signer],
);
const signature = await sendAndConfirmTransaction(
connection,
pub,
swapInstructions,
[signer],
);
};
export const findPoolAddress = async (options: {
base: PublicKey;
quote: PublicKey;
}) => {
return pump.poolKey(1, pumpAuthority, options.base, options.quote);
};
const test = async () => {
const [address] = await findPoolAddress({
base: new PublicKey('So11111111111111111111111111111111111111112'),
quote: new PublicKey('6mmEpBUYdfNdWN4nByn1uuN7pry5SZKsaBp3Ea23pump'),
});
console.log(address.toBase58());
};
test();
;