solana-token-extension-boost
Version:
SDK for Solana Token Extensions with wallet adapter support
96 lines (95 loc) • 3.33 kB
TypeScript
import { Connection, Keypair, PublicKey, TransactionInstruction } from "@solana/web3.js";
import { AccountState } from "@solana/spl-token";
/**
* TokenAccountBuilder - Helper class for creating token accounts with extensions
*
* ImmutableOwner and other extensions for token accounts
*/
export declare class TokenAccountBuilder {
private connection;
private extensions;
private mint?;
private owner?;
private defaultAccountState?;
/**
* Initialize builder with connection
*
* @param connection - Connection to Solana cluster
*/
constructor(connection: Connection);
/**
* Set basic information for token account
*
* @param mint - Mint address of the token
* @param owner - Owner of the token account
*/
setTokenAccountInfo(mint: PublicKey, owner: PublicKey): TokenAccountBuilder;
/**
* Add ImmutableOwner extension
* ImmutableOwner prevents changing the owner of the token account
*/
addImmutableOwner(): TokenAccountBuilder;
/**
* Add DefaultAccountState extension
*
* @param state - Default state of the account (frozen or unlocked)
*/
addDefaultAccountState(state: AccountState): TokenAccountBuilder;
/**
* Create instructions for standard (non-associated) token account
*
* @param payer - Public key of the transaction fee payer
* @returns Instructions, signers and token account address
*/
buildStandardAccountInstructions(payer: PublicKey): Promise<{
instructions: TransactionInstruction[];
signers: Keypair[];
tokenAccount: PublicKey;
}>;
/**
* Create standard (non-associated) token account
*
* @param payer - Transaction fee payer
* @returns Information about the created token account
*/
buildStandardAccount(payer: Keypair): Promise<{
tokenAccount: PublicKey;
tokenAccountKeypair: Keypair;
transactionSignature: string;
}>;
/**
* Create instructions for Associated Token Account with extensions
*
* Note: Not all extensions work with ATA
*
* @param payer - Public key of the transaction fee payer
* @returns Instructions and token account address
*/
buildAssociatedAccountInstructions(payer: PublicKey): {
instructions: TransactionInstruction[];
tokenAccount: PublicKey;
};
/**
* Create Associated Token Account with extensions
*
* Note: Not all extensions work with ATA
*
* @param payer - Transaction fee payer
* @returns Information about the created token account
*/
buildAssociatedAccount(payer: Keypair): Promise<{
tokenAccount: PublicKey;
transactionSignature: string;
}>;
/**
* Tạo instructions để đóng tài khoản token
*
* @param tokenAccount - Địa chỉ tài khoản token cần đóng
* @param owner - Địa chỉ của chủ sở hữu tài khoản
* @param destination - Địa chỉ nhận SOL từ việc đóng tài khoản (mặc định là owner)
* @returns Instructions để đóng tài khoản
*/
buildCloseAccountInstructions(tokenAccount: PublicKey, owner: PublicKey, destination?: PublicKey): {
instructions: TransactionInstruction[];
};
}