@skeet-framework/solana-utils
Version:
Skeet Framework Plugin - Solana Utils
44 lines (40 loc) • 1.41 kB
text/typescript
import { Connection, PublicKey, ConfirmedSignatureInfo } from '@solana/web3.js'
/**
* Fetches the SPL Transfer history for a given wallet address.
*
* @param rpcUrl - The URL of the Solana RPC endpoint.
* @param accountAddress - The public key of the account to fetch the transfer history for.
* @param limit - The maximum number of transactions to fetch. Defaults to 100.
* @param beforeSignature - Fetch transactions before this signature.
* @returns An array of ConfirmedSignatureInfo for SPL transfer transactions.
*
* @example
* ```typescript
* const rpcUrl = 'https://api.mainnet-beta.solana.com';
* const accountAddress = 'TokenAccountAddress';
*
* const transfers = await getSPLTransferHistory(rpcUrl, accountAddress);
* console.log(transfers);
* ```
*/
export const getSPLTransferHistory = async (
rpcUrl: string,
accountAddress: string,
limit = 100,
beforeSignature?: string,
): Promise<ConfirmedSignatureInfo[]> => {
const connection = new Connection(rpcUrl)
const accountPublicKey = new PublicKey(accountAddress)
// Fetching the transfer history using getConfirmedSignaturesForAddress2
const params: { limit: number; before?: string } = {
limit,
}
if (beforeSignature) {
params['before'] = beforeSignature
}
const transferHistory = await connection.getConfirmedSignaturesForAddress2(
accountPublicKey,
params,
)
return transferHistory
}