solana-token-extension-boost
Version:
SDK for Solana Token Extensions with wallet adapter support
80 lines (79 loc) • 2.33 kB
TypeScript
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[];