import type { Connection, Transaction, VersionedTransaction } from '@solana/web3.js'; /** * DS3-0414: does the transaction already carry a REAL signer signature? A Solana * signature is computed over the compiled message, which INCLUDES recentBlockhash, so * the blockhash must not be rewritten once any signer (sponsor / multisig / co-signer) * has signed - a rewrite silently invalidates their signature. Legacy signatures are * `{ signature: Buffer | null }` entries; versioned signatures are 64-byte arrays that * stay all-zero placeholders until a signer fills them. Mirrors turnkey-signer-bridge.ts. */ export declare function transactionHasSignature(transaction: Transaction | VersionedTransaction): boolean; /** * Extracts a human-readable error message from Solana transaction logs. */ export declare function extractTransactionError(err: any, logMessages?: string[] | null): string; /** The highest Solana transaction version this SDK reads back (SIMD-0385 v1). */ export declare const SOLANA_MAX_SUPPORTED_TRANSACTION_VERSION = 1; /** * getParsedTransaction that survives a SIMD-0385 v1 transaction. @solana/web3.js * 1.98.x validates the response `version` against `0 | 'legacy'` and throws on 1 * even when the request raised the ceiling, so when web3.js refuses to parse and * the connection exposes its endpoint, the same jsonParsed result is read as raw * JSON-RPC. Legacy and v0 responses keep coming back as web3.js parsed objects. */ export declare function getParsedTransactionCompat(connection: Connection, signature: string): Promise; /** * Polls getSignatureStatuses until the transaction is confirmed, then checks for errors. * Throws if the transaction failed on-chain. Returns parsed transaction info on success. */ export declare function confirmAndCheckTransaction(connection: Connection, signature: string): Promise;