/** * Solana address validation utilities * * Solana uses Base58 encoded 32-byte public keys as addresses. * Format: FDKJvWcJNe6wecbgDYDFPCfgs14aJnVsUfWQRYWLn4Tn (32-44 characters) * * @see https://solana.com/developers/courses/intro-to-solana/interact-with-wallets */ import { SolanaPublicKey } from "./types"; /** * System program addresses and other special Solana addresses * These are valid addresses but may not represent user wallets */ export declare const SOLANA_SYSTEM_ADDRESSES: { readonly SYSTEM_PROGRAM: "11111111111111111111111111111111"; readonly TOKEN_PROGRAM: "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; readonly TOKEN_2022_PROGRAM: "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"; readonly ASSOCIATED_TOKEN_PROGRAM: "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; readonly RENT_SYSVAR: "SysvarRent111111111111111111111111111111111"; readonly CLOCK_SYSVAR: "SysvarC1ock11111111111111111111111111111111"; }; /** * Check if a string is a valid Solana address format * * This performs format validation only (length and character set). * It does NOT validate that the address is a valid point on the Ed25519 curve. * * @param value The value to check * @returns true if the value is a valid Solana address format */ export declare function isSolanaAddress(value: unknown): value is string; /** * Get a valid Solana address from a string or PublicKey * * @param address The address to validate (string or PublicKey) * @returns The address string if valid, null otherwise */ export declare function getValidSolanaAddress(address: string | SolanaPublicKey | null | undefined): string | null; /** * Check if a Solana address is a system program or well-known program address * * @param address The address to check * @returns true if the address is a system/program address */ export declare function isSolanaSystemAddress(address: string): boolean; /** * Check if a Solana address is blocked (should not emit events) * * For Solana, we block system program addresses as they don't represent user wallets. * * @param address The address to check * @returns true if the address should be blocked */ export declare function isBlockedSolanaAddress(address: string | SolanaPublicKey | null | undefined): boolean; /** * Convert a Solana PublicKey to a string address * * @param publicKey The public key to convert * @returns The Base58 encoded address string, or null if invalid */ export declare function publicKeyToAddress(publicKey: SolanaPublicKey | null | undefined): string | null; /** * Check if two Solana addresses are equal (case-sensitive comparison) * * Unlike EVM addresses, Solana addresses are case-sensitive Base58. * * @param address1 First address * @param address2 Second address * @returns true if addresses are equal */ export declare function areSolanaAddressesEqual(address1: string | SolanaPublicKey | null | undefined, address2: string | SolanaPublicKey | null | undefined): boolean; //# sourceMappingURL=address.d.ts.map