/* auto-generated by NAPI-RS */ /* eslint-disable */ /** * DuplexStream Engine * * The inner engine for a custom implementation of stream.Duplex * on the JS runtime. * * This is not meant to be directly interacted with by the user * rather an underlying stream implementation where stream.Duplex * will `_read()` from and `_write()` to. */ export declare class DuplexStream { /** * Read JS Accesspoint. * * Retrieve one `SubscribeUpdate` from the worker and convert it to * the generated N-API JS representation (`JsSubscribeUpdate`). */ read(): Promise /** * Write JS Accesspoint. * * Accept a JS request object, convert to protobuf, then enqueue for the * worker to forward to the gRPC request sink. */ close(): void write(request: JsSubscribeRequest): void writeRaw(requestBytes: Buffer): void } /** * DuplexStreamDeshred Engine. * * Similar to `DuplexStream`, but targets the deshred pre-execution stream. */ export declare class DuplexStreamDeshred { /** Retrieve one `SubscribeUpdateDeshred` and convert it to generated N-API JS shape. */ read(): Promise close(): void write(request: JsSubscribeDeshredRequest): void writeRaw(requestBytes: Buffer): void } /** * Main client struct exposed to JavaScript via NAPI. * * The client maintains a persistent gRPC connection that is created once * in the constructor and reused for all subsequent operations. */ export declare class GrpcClient { /** * Creates a new gRPC client and establishes a connection. * * This is an async factory method that: * 1. Initializes the crypto provider (required for TLS) * 2. Builds the client with the provided configuration * 3. Establishes the gRPC connection * 4. Wraps the client for safe concurrent access * * The connection is persistent and will be reused for all subsequent operations. */ static new(endpoint: string, xToken?: string | undefined | null, channelOptions?: JsChannelOptions | undefined | null): Promise getLatestBlockhash(request: JsGetLatestBlockhashRequest): Promise ping(request: JsPingRequest): Promise getBlockHeight(request: JsGetBlockHeightRequest): Promise getSlot(request: JsGetSlotRequest): Promise isBlockhashValid(request: JsIsBlockhashValidRequest): Promise getVersion(getVersionRequest: JsGetVersionRequest): Promise subscribeReplayInfo(subscribeReplayInfoRequest: JsSubscribeReplayInfoRequest): Promise /** * Creates a subscription stream bound to this client connection. * * The returned value is consumed by the JS SDK `ClientDuplexStream` wrapper, * which handles Node stream lifecycle and protobuf-shape normalization. */ subscribe(): Promise /** * Creates a deshred subscription stream bound to this client connection. * * Unlike `subscribe()`, this method opens the underlying gRPC stream before * resolving, so server-side `UNIMPLEMENTED` errors bubble to TypeScript * callers through the returned Promise. */ subscribeDeshred(): Promise } export declare function decodeTxError(err: Array): string export declare function encodeDeshredTx(data: Uint8Array, encoding: WasmUiTransactionEncoding): string export declare function encodeTx(data: Uint8Array, encoding: WasmUiTransactionEncoding, maxSupportedTransactionVersion: number | undefined | null, showRewards: boolean): string export interface JsBlockHeight { blockHeight: string } /** * ChannelOptions from JS. * * Struct to hold the channel options configuration * passed from JS. * * Note: * The type u32 is being used because of napi's built-in * support for u32 to number (JS) conversion. */ export interface JsChannelOptions { grpcConnectTimeout?: number grpcBufferSize?: number grpcHttp2KeepAliveInterval?: number grpcInitialConnectionWindowSize?: number grpcInitialStreamWindowSize?: number grpcKeepAliveTimeout?: number grpcTcpKeepalive?: number grpcTimeout?: number grpcMaxDecodingMessageSize?: number grpcMaxEncodingMessageSize?: number grpcDefaultCompressionAlgorithm?: JsCompressionAlgorithm grpcSetXRequestSnapshot?: boolean grpcHttp2AdaptiveWindow?: boolean grpcKeepAliveWhileIdle?: boolean grpcTcpNodelay?: boolean } export interface JsCompiledInstruction { programIdIndex: number accounts: Buffer data: Buffer } export declare const enum JsCompressionAlgorithm { Gzip = 0, Zstd = 1 } export interface JsConfirmedBlock { previousBlockhash: string blockhash: string parentSlot: string transactions: Array rewards: Array blockTime?: JsUnixTimestamp blockHeight?: JsBlockHeight numPartitions?: JsNumPartitions } export interface JsConfirmedTransaction { transaction?: JsTransaction meta?: JsTransactionStatusMeta } export interface JsGetBlockHeightRequest { commitment?: number } export interface JsGetBlockHeightResponse { blockHeight: string } export interface JsGetLatestBlockhashRequest { commitment?: number } export interface JsGetLatestBlockhashResponse { slot: string blockhash: string lastValidBlockHeight: string } export interface JsGetSlotRequest { commitment?: number } export interface JsGetSlotResponse { slot: string } export interface JsGetVersionRequest { } export interface JsGetVersionResponse { version: string } export interface JsInnerInstruction { programIdIndex: number accounts: Buffer data: Buffer stackHeight?: number } export interface JsInnerInstructions { index: number instructions: Array } export interface JsIsBlockhashValidRequest { blockhash: string commitment?: number } export interface JsIsBlockhashValidResponse { slot: string valid: boolean } export interface JsMessage { header?: JsMessageHeader accountKeys: Array recentBlockhash: Buffer instructions: Array versioned: boolean addressTableLookups: Array } export interface JsMessageAddressTableLookup { accountKey: Buffer writableIndexes: Buffer readonlyIndexes: Buffer } export interface JsMessageHeader { numRequiredSignatures: number numReadonlySignedAccounts: number numReadonlyUnsignedAccounts: number } export interface JsNumPartitions { numPartitions: string } export interface JsPingRequest { count: number } export interface JsPongResponse { count: number } export interface JsReturnData { programId: Buffer data: Buffer } export interface JsReward { pubkey: string lamports: string postBalance: string rewardType: number commission: string } export interface JsRewards { rewards: Array numPartitions?: JsNumPartitions } export interface JsSubscribeDeshredRequest { deshredTransactions: Record ping?: JsSubscribeRequestPing } export interface JsSubscribeReplayInfoRequest { } export interface JsSubscribeReplayInfoResponse { firstAvailable?: string } export interface JsSubscribeRequest { accounts: Record slots: Record transactions: Record transactionsStatus: Record blocks: Record blocksMeta: Record entry: Record commitment?: number accountsDataSlice: Array ping?: JsSubscribeRequestPing fromSlot?: string } export interface JsSubscribeRequestAccountsDataSlice { offset: string length: string } export interface JsSubscribeRequestFilterAccounts { account: Array owner: Array filters: Array nonemptyTxnSignature?: boolean } export interface JsSubscribeRequestFilterAccountsFilter { filter?: JsSubscribeRequestFilterAccountsFilterFilter } export interface JsSubscribeRequestFilterAccountsFilterFilter { memcmp?: JsSubscribeRequestFilterAccountsFilterMemcmp datasize?: string tokenAccountState?: boolean lamports?: JsSubscribeRequestFilterAccountsFilterLamports } export interface JsSubscribeRequestFilterAccountsFilterLamports { cmp?: JsSubscribeRequestFilterAccountsFilterLamportsCmp } export interface JsSubscribeRequestFilterAccountsFilterLamportsCmp { eq?: string ne?: string lt?: string gt?: string } export interface JsSubscribeRequestFilterAccountsFilterMemcmp { offset: string data?: JsSubscribeRequestFilterAccountsFilterMemcmpData } export interface JsSubscribeRequestFilterAccountsFilterMemcmpData { bytes?: Buffer base58?: string base64?: string } export interface JsSubscribeRequestFilterBlocks { accountInclude: Array includeTransactions?: boolean includeAccounts?: boolean includeEntries?: boolean } export interface JsSubscribeRequestFilterBlocksMeta { } export interface JsSubscribeRequestFilterDeshredTransactions { vote?: boolean accountInclude: Array accountExclude: Array accountRequired: Array } export interface JsSubscribeRequestFilterEntry { } export interface JsSubscribeRequestFilterSlots { filterByCommitment?: boolean interslotUpdates?: boolean } export interface JsSubscribeRequestFilterTransactions { vote?: boolean failed?: boolean signature?: string accountInclude: Array accountExclude: Array accountRequired: Array } export interface JsSubscribeRequestPing { id: number } export interface JsSubscribeUpdate { filters: Array createdAt?: Date updateOneof?: JsSubscribeUpdateUpdateOneof } export interface JsSubscribeUpdateAccount { account?: JsSubscribeUpdateAccountInfo slot: string isStartup: boolean } export interface JsSubscribeUpdateAccountInfo { pubkey: Buffer lamports: string owner: Buffer executable: boolean rentEpoch: string data: Buffer writeVersion: string txnSignature?: Buffer } export interface JsSubscribeUpdateBlock { slot: string blockhash: string rewards?: JsRewards blockTime?: JsUnixTimestamp blockHeight?: JsBlockHeight parentSlot: string parentBlockhash: string executedTransactionCount: string transactions: Array updatedAccountCount: string accounts: Array entriesCount: string entries: Array } export interface JsSubscribeUpdateBlockMeta { slot: string blockhash: string rewards?: JsRewards blockTime?: JsUnixTimestamp blockHeight?: JsBlockHeight parentSlot: string parentBlockhash: string executedTransactionCount: string entriesCount: string } export interface JsSubscribeUpdateDeshred { filters: Array createdAt?: Date updateOneof?: JsSubscribeUpdateDeshredUpdateOneof } export interface JsSubscribeUpdateDeshredTransaction { transaction?: JsSubscribeUpdateDeshredTransactionInfo slot: string } export interface JsSubscribeUpdateDeshredTransactionInfo { signature: Buffer isVote: boolean transaction?: JsTransaction loadedWritableAddresses: Array loadedReadonlyAddresses: Array } export interface JsSubscribeUpdateDeshredUpdateOneof { deshredTransaction?: JsSubscribeUpdateDeshredTransaction ping?: JsSubscribeUpdatePing pong?: JsSubscribeUpdatePong } export interface JsSubscribeUpdateEntry { slot: string index: string numHashes: string hash: Buffer executedTransactionCount: string startingTransactionIndex: string } export interface JsSubscribeUpdatePing { } export interface JsSubscribeUpdatePong { id: number } export interface JsSubscribeUpdateSlot { slot: string parent?: string status: number deadError?: string } export interface JsSubscribeUpdateTransaction { transaction?: JsSubscribeUpdateTransactionInfo slot: string } export interface JsSubscribeUpdateTransactionInfo { signature: Buffer isVote: boolean transaction?: JsTransaction meta?: JsTransactionStatusMeta index: string } export interface JsSubscribeUpdateTransactionStatus { slot: string signature: Buffer isVote: boolean index: string err?: JsTransactionError } export interface JsSubscribeUpdateUpdateOneof { account?: JsSubscribeUpdateAccount slot?: JsSubscribeUpdateSlot transaction?: JsSubscribeUpdateTransaction transactionStatus?: JsSubscribeUpdateTransactionStatus block?: JsSubscribeUpdateBlock ping?: JsSubscribeUpdatePing pong?: JsSubscribeUpdatePong blockMeta?: JsSubscribeUpdateBlockMeta entry?: JsSubscribeUpdateEntry } export interface JsTokenBalance { accountIndex: number mint: string uiTokenAmount?: JsUiTokenAmount owner: string programId: string } export interface JsTransaction { signatures: Array message?: JsMessage } export interface JsTransactionError { err: Buffer } export interface JsTransactionStatusMeta { err?: JsTransactionError fee: string preBalances: Array postBalances: Array innerInstructions: Array innerInstructionsNone: boolean logMessages: Array logMessagesNone: boolean preTokenBalances: Array postTokenBalances: Array rewards: Array loadedWritableAddresses: Array loadedReadonlyAddresses: Array returnData?: JsReturnData returnDataNone: boolean computeUnitsConsumed?: string costUnits?: string } export interface JsUiTokenAmount { uiAmount: number decimals: number amount: string uiAmountString: string } export interface JsUnixTimestamp { timestamp: string } export declare const enum WasmUiTransactionEncoding { Binary = 0, Base64 = 1, Base58 = 2, Json = 3, JsonParsed = 4 }