solana-token-extension-boost
Version:
SDK for Solana Token Extensions with wallet adapter support
99 lines (98 loc) • 4.63 kB
TypeScript
import { Connection, PublicKey, TransactionInstruction, Keypair } from '@solana/web3.js';
/**
* Create instruction to initialize CPI Guard for mint
* @param mint - Mint address
* @param authority - (Optional) Authority address that can enable/disable CPI Guard
* @param programId - Token Extension Program ID
* @returns Instruction to initialize CPI Guard
*/
export declare function createInitializeCpiGuardInstruction(mint: PublicKey, authority?: PublicKey | null, programId?: PublicKey): TransactionInstruction;
/**
* Class for protection against CPI attacks
*/
export declare class CpiGuardExtension {
private connection;
private mint;
/**
* Create a new CpiGuardExtension instance
* @param connection - Connection to Solana cluster
* @param mint - Mint address
*/
constructor(connection: Connection, mint: PublicKey);
/**
* Create instruction to initialize CPI Guard for mint
* @param mint - Mint address
* @param authority - (Optional) Authority address that can enable/disable CPI Guard
* @param programId - Token Extension Program ID
* @returns Instruction to initialize CPI Guard
*/
static createInitializeCpiGuardInstruction(mint: PublicKey, authority?: PublicKey | null, programId?: PublicKey): TransactionInstruction;
/**
* Create instruction to enable CPI Guard for a mint
* @param mint - Mint address
* @param authority - Authority address that can enable/disable CPI Guard
* @param programId - Token Extension Program ID
* @returns Instruction to enable CPI Guard
*/
static createEnableCpiGuardInstruction(mint: PublicKey, authority: PublicKey, programId?: PublicKey): TransactionInstruction;
/**
* Create instruction to disable CPI Guard for a mint
* @param mint - Mint address
* @param authority - Authority address that can enable/disable CPI Guard
* @param programId - Token Extension Program ID
* @returns Instruction to disable CPI Guard
*/
static createDisableCpiGuardInstruction(mint: PublicKey, authority: PublicKey, programId?: PublicKey): TransactionInstruction;
/**
* Check if CPI Guard is enabled for a mint
* @param connection - Connection to Solana cluster
* @param mint - Mint address
* @param programId - Token Extension Program ID
* @returns Promise resolving to boolean indicating if CPI Guard is enabled
*/
static isCpiGuardEnabled(connection: Connection, mint: PublicKey, programId?: PublicKey): Promise<boolean>;
/**
* Get CPI Guard authority for a mint
* @param connection - Connection to Solana cluster
* @param mint - Mint address
* @param programId - Token Extension Program ID
* @returns Promise resolving to the authority public key or null if no authority
*/
static getCpiGuardAuthority(connection: Connection, mint: PublicKey, programId?: PublicKey): Promise<PublicKey | null>;
/**
* Create instructions to create a new token with CPI Guard
* @param connection - Connection to Solana cluster
* @param payer - Public key of the fee payer
* @param mintAuthority - Mint authority
* @param decimals - Number of decimals
* @param cpiGuardAuthority - (Optional) Authority that can enable/disable CPI Guard
* @returns Instructions, signers, and mint address
*/
static createTokenWithCpiGuardInstructions(connection: Connection, payer: PublicKey, mintAuthority: PublicKey, decimals: number, cpiGuardAuthority?: PublicKey): Promise<{
instructions: TransactionInstruction[];
signers: Keypair[];
mint: PublicKey;
}>;
/**
* Check if this mint has CPI Guard enabled
* @returns Promise resolving to boolean indicating if CPI Guard is enabled
*/
isCpiGuardEnabled(): Promise<boolean>;
/**
* Get the CPI Guard authority for this mint
* @returns Promise resolving to the authority public key or null if no authority
*/
getCpiGuardAuthority(): Promise<PublicKey | null>;
/**
* Create instruction to enable CPI Guard for this mint
* @param authority - Authority address that can enable/disable CPI Guard
* @returns Instruction to enable CPI Guard
*/
createEnableCpiGuardInstruction(authority: PublicKey): TransactionInstruction;
/**
* Create instruction to disable CPI Guard for this mint
* @param authority - Authority address that can enable/disable CPI Guard
* @returns Instruction to disable CPI Guard
*/
createDisableCpiGuardInstruction(authority: PublicKey): TransactionInstruction;
}