UNPKG

solana-token-extension-boost

Version:

SDK for Solana Token Extensions with wallet adapter support

80 lines (79 loc) 2.33 kB
import { Connection, PublicKey } from "@solana/web3.js"; import { ExtensionType } from "@solana/spl-token"; export interface ExtensionInfo { type: number; name: string; present: boolean; } export declare const EXTENSION_TYPES: { TransferFeeConfig: number; TransferFeeAmount: number; MintCloseAuthority: number; ConfidentialTransferMint: number; ConfidentialTransferAccount: number; DefaultAccountState: number; ImmutableOwner: number; MemoTransfer: number; NonTransferable: number; InterestBearingConfig: number; CpiGuard: number; PermanentDelegate: number; NonTransferableAccount: number; TransferHook: number; MetadataPointer: number; TokenMetadata: number; }; export declare const ExtensionTypeByte: { TransferFeeConfig: number; TransferFeeAmount: number; MintCloseAuthority: number; ConfidentialTransferMint: number; ConfidentialTransferAccount: number; DefaultAccountState: number; ImmutableOwner: number; MemoTransfer: number; NonTransferable: number; InterestBearingConfig: number; CpiGuard: number; PermanentDelegate: number; NonTransferableAccount: number; TransferHook: number; MetadataPointer: number; TokenMetadata: number; GroupPointer: number; MemberPointer: number; }; export declare const ExtensionTypeString: { 0: string; 1: string; 2: string; 3: string; 4: string; 5: string; 6: string; 7: string; 8: string; 9: string; 10: string; 11: string; 12: string; 13: string; 14: string; 15: string; 20: string; 21: string; }; export declare function getExtensionName(type: number): string; export declare function isToken2022(connection: Connection, mint: PublicKey): Promise<boolean>; export declare function getTokenInfo(connection: Connection, mint: PublicKey): Promise<{ isProgramToken2022: boolean; extensions: ExtensionInfo[]; }>; /** * Find the optimal initialization order for extensions * Some extensions must be initialized before the mint, others must be after. * * @param extensionTypes - Array of extension types to sort * @returns Sorted array in optimal order */ export declare function getOptimalInitializationOrder(extensionTypes: ExtensionType[]): ExtensionType[];