@solana/pay
Version:
`@solana/pay` is a JavaScript library for facilitating commerce on Solana by using a token transfer URL scheme. The URL scheme ensures that no matter the wallet or service used, the payment request must be created and interpreted in one standard way.
62 lines • 2.46 kB
TypeScript
import type { Address, Base64EncodedDataResponse, GetTransactionApi, Lamports, Rpc, Signature, TokenBalance } from '@solana/kit';
import type { Finality, TransferFields } from './types.js';
/**
* Thrown when a transaction doesn't contain a valid Solana Pay transfer.
*/
export declare class ValidateTransferError extends Error {
name: string;
}
/**
* Check that a given transaction contains a valid Solana Pay transfer.
*
* @param rpc - An RPC client supporting `getTransaction`.
* @param signature - The signature of the transaction to validate.
* @param fields - Fields of a Solana Pay transfer request to validate.
* @param options - Options for `getTransaction`.
*
* @throws {ValidateTransferError}
*/
export declare function validateTransfer(rpc: Rpc<GetTransactionApi>, signature: Signature, { recipient, amount, splToken, reference, memo }: TransferFields, options?: {
commitment?: Finality;
}): Promise<Readonly<{
blockTime: import("@solana/kit").UnixTimestamp | null;
slot: import("@solana/kit").Slot;
}> & ((Record<string, never> | {
version: import("@solana/kit").TransactionVersion;
}) & {
meta: (Readonly<{
computeUnitsConsumed?: bigint;
err: import("@solana/kit").TransactionError | null;
fee: Lamports;
logMessages: readonly string[] | null;
postBalances: readonly Lamports[];
postTokenBalances?: readonly TokenBalance[];
preBalances: readonly Lamports[];
preTokenBalances?: readonly TokenBalance[];
returnData?: {
data: Base64EncodedDataResponse;
programId: Address;
};
rewards: readonly import("@solana/kit").Reward[] | null;
status: import("@solana/kit").TransactionStatus;
}> & (Readonly<{
innerInstructions?: readonly Readonly<{
index: number;
instructions: readonly (Readonly<{
data: import("@solana/kit").Base58EncodedBytes;
}> & Partial<Readonly<{
stackHeight: number;
}>> & Readonly<{
accounts: readonly number[];
programIdIndex: number;
}>)[];
}>[] | null;
}> & (Record<string, never> | Readonly<{
loadedAddresses: {
readonly: readonly Address[];
writable: readonly Address[];
};
}>))) | null;
transaction: Base64EncodedDataResponse;
})>;
//# sourceMappingURL=validateTransfer.d.ts.map