UNPKG

solana-token-extension-boost

Version:

SDK for Solana Token Extensions with wallet adapter support

99 lines (98 loc) 4.63 kB
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; }