import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import { BlockHeight, Rewards, Transaction, TransactionError, TransactionStatusMeta, UnixTimestamp } from "./solana-storage"; export declare const protobufPackage = "geyser"; export declare enum CommitmentLevel { PROCESSED = 0, CONFIRMED = 1, FINALIZED = 2, UNRECOGNIZED = -1 } export declare function commitmentLevelFromJSON(object: any): CommitmentLevel; export declare function commitmentLevelToJSON(object: CommitmentLevel): string; export declare enum SlotStatus { SLOT_PROCESSED = 0, SLOT_CONFIRMED = 1, SLOT_FINALIZED = 2, SLOT_FIRST_SHRED_RECEIVED = 3, SLOT_COMPLETED = 4, SLOT_CREATED_BANK = 5, SLOT_DEAD = 6, UNRECOGNIZED = -1 } export declare function slotStatusFromJSON(object: any): SlotStatus; export declare function slotStatusToJSON(object: SlotStatus): string; export interface SubscribeRequest { accounts: { [key: string]: SubscribeRequestFilterAccounts; }; slots: { [key: string]: SubscribeRequestFilterSlots; }; transactions: { [key: string]: SubscribeRequestFilterTransactions; }; transactionsStatus: { [key: string]: SubscribeRequestFilterTransactions; }; blocks: { [key: string]: SubscribeRequestFilterBlocks; }; blocksMeta: { [key: string]: SubscribeRequestFilterBlocksMeta; }; entry: { [key: string]: SubscribeRequestFilterEntry; }; commitment?: CommitmentLevel | undefined; accountsDataSlice: SubscribeRequestAccountsDataSlice[]; ping?: SubscribeRequestPing | undefined; fromSlot?: string | undefined; } export interface SubscribeRequest_AccountsEntry { key: string; value: SubscribeRequestFilterAccounts | undefined; } export interface SubscribeRequest_SlotsEntry { key: string; value: SubscribeRequestFilterSlots | undefined; } export interface SubscribeRequest_TransactionsEntry { key: string; value: SubscribeRequestFilterTransactions | undefined; } export interface SubscribeRequest_TransactionsStatusEntry { key: string; value: SubscribeRequestFilterTransactions | undefined; } export interface SubscribeRequest_BlocksEntry { key: string; value: SubscribeRequestFilterBlocks | undefined; } export interface SubscribeRequest_BlocksMetaEntry { key: string; value: SubscribeRequestFilterBlocksMeta | undefined; } export interface SubscribeRequest_EntryEntry { key: string; value: SubscribeRequestFilterEntry | undefined; } export interface SubscribeRequestFilterAccounts { account: string[]; owner: string[]; filters: SubscribeRequestFilterAccountsFilter[]; nonemptyTxnSignature?: boolean | undefined; } export interface SubscribeRequestFilterAccountsFilter { memcmp?: SubscribeRequestFilterAccountsFilterMemcmp | undefined; datasize?: string | undefined; tokenAccountState?: boolean | undefined; lamports?: SubscribeRequestFilterAccountsFilterLamports | undefined; } export interface SubscribeRequestFilterAccountsFilterMemcmp { offset: string; bytes?: Uint8Array | undefined; base58?: string | undefined; base64?: string | undefined; } export interface SubscribeRequestFilterAccountsFilterLamports { eq?: string | undefined; ne?: string | undefined; lt?: string | undefined; gt?: string | undefined; } export interface SubscribeRequestFilterSlots { filterByCommitment?: boolean | undefined; interslotUpdates?: boolean | undefined; } export interface SubscribeRequestFilterTransactions { vote?: boolean | undefined; failed?: boolean | undefined; signature?: string | undefined; accountInclude: string[]; accountExclude: string[]; accountRequired: string[]; } export interface SubscribeRequestFilterBlocks { accountInclude: string[]; includeTransactions?: boolean | undefined; includeAccounts?: boolean | undefined; includeEntries?: boolean | undefined; } export interface SubscribeRequestFilterBlocksMeta { } export interface SubscribeRequestFilterEntry { } /** * Filter for deshred transactions (transactions received before execution). * Deshred transactions are received when entries are formed from shreds, * BEFORE any execution occurs. No TransactionStatusMeta is available. * Address lookup tables are resolved, so both static account keys and * dynamically loaded addresses (from ALTs) are available for filtering. */ export interface SubscribeRequestFilterDeshredTransactions { vote?: boolean | undefined; accountInclude: string[]; accountExclude: string[]; accountRequired: string[]; } export interface SubscribeRequestAccountsDataSlice { offset: string; length: string; } export interface SubscribeRequestPing { id: number; } /** * Request message for the SubscribeDeshred RPC. * Subscribes to deshred transactions (transactions received before execution). * Deshred transactions are received when entries are formed from shreds, * BEFORE any execution occurs. No TransactionStatusMeta is available. * Address lookup tables are resolved, so both static and loaded addresses * are available for filtering. */ export interface SubscribeDeshredRequest { deshredTransactions: { [key: string]: SubscribeRequestFilterDeshredTransactions; }; ping?: SubscribeRequestPing | undefined; } export interface SubscribeDeshredRequest_DeshredTransactionsEntry { key: string; value: SubscribeRequestFilterDeshredTransactions | undefined; } export interface SubscribeUpdate { filters: string[]; account?: SubscribeUpdateAccount | undefined; slot?: SubscribeUpdateSlot | undefined; transaction?: SubscribeUpdateTransaction | undefined; transactionStatus?: SubscribeUpdateTransactionStatus | undefined; block?: SubscribeUpdateBlock | undefined; ping?: SubscribeUpdatePing | undefined; pong?: SubscribeUpdatePong | undefined; blockMeta?: SubscribeUpdateBlockMeta | undefined; entry?: SubscribeUpdateEntry | undefined; createdAt: Date | undefined; } export interface SubscribeUpdateAccount { account: SubscribeUpdateAccountInfo | undefined; slot: string; isStartup: boolean; } export interface SubscribeUpdateAccountInfo { pubkey: Uint8Array; lamports: string; owner: Uint8Array; executable: boolean; rentEpoch: string; data: Uint8Array; writeVersion: string; txnSignature?: Uint8Array | undefined; } export interface SubscribeUpdateSlot { slot: string; parent?: string | undefined; status: SlotStatus; deadError?: string | undefined; } export interface SubscribeUpdateTransaction { transaction: SubscribeUpdateTransactionInfo | undefined; slot: string; } export interface SubscribeUpdateTransactionInfo { signature: Uint8Array; isVote: boolean; transaction: Transaction | undefined; meta: TransactionStatusMeta | undefined; index: string; } export interface SubscribeUpdateTransactionStatus { slot: string; signature: Uint8Array; isVote: boolean; index: string; err: TransactionError | undefined; } export interface SubscribeUpdateBlock { slot: string; blockhash: string; rewards: Rewards | undefined; blockTime: UnixTimestamp | undefined; blockHeight: BlockHeight | undefined; parentSlot: string; parentBlockhash: string; executedTransactionCount: string; transactions: SubscribeUpdateTransactionInfo[]; updatedAccountCount: string; accounts: SubscribeUpdateAccountInfo[]; entriesCount: string; entries: SubscribeUpdateEntry[]; } export interface SubscribeUpdateBlockMeta { slot: string; blockhash: string; rewards: Rewards | undefined; blockTime: UnixTimestamp | undefined; blockHeight: BlockHeight | undefined; parentSlot: string; parentBlockhash: string; executedTransactionCount: string; entriesCount: string; } export interface SubscribeUpdateEntry { slot: string; index: string; numHashes: string; hash: Uint8Array; executedTransactionCount: string; /** added in v1.18, for solana 1.17 value is always 0 */ startingTransactionIndex: string; } export interface SubscribeUpdateDeshredTransaction { transaction: SubscribeUpdateDeshredTransactionInfo | undefined; slot: string; } export interface SubscribeUpdateDeshredTransactionInfo { signature: Uint8Array; isVote: boolean; transaction: Transaction | undefined; loadedWritableAddresses: Uint8Array[]; loadedReadonlyAddresses: Uint8Array[]; } export interface SubscribeUpdatePing { } export interface SubscribeUpdatePong { id: number; } export interface SubscribeUpdateDeshred { filters: string[]; deshredTransaction?: SubscribeUpdateDeshredTransaction | undefined; ping?: SubscribeUpdatePing | undefined; pong?: SubscribeUpdatePong | undefined; createdAt: Date | undefined; } export interface SubscribeReplayInfoRequest { } export interface SubscribeReplayInfoResponse { firstAvailable?: string | undefined; } export interface PingRequest { count: number; } export interface PongResponse { count: number; } export interface GetLatestBlockhashRequest { commitment?: CommitmentLevel | undefined; } export interface GetLatestBlockhashResponse { slot: string; blockhash: string; lastValidBlockHeight: string; } export interface GetBlockHeightRequest { commitment?: CommitmentLevel | undefined; } export interface GetBlockHeightResponse { blockHeight: string; } export interface GetSlotRequest { commitment?: CommitmentLevel | undefined; } export interface GetSlotResponse { slot: string; } export interface GetVersionRequest { } export interface GetVersionResponse { version: string; } export interface IsBlockhashValidRequest { blockhash: string; commitment?: CommitmentLevel | undefined; } export interface IsBlockhashValidResponse { slot: string; valid: boolean; } export declare const SubscribeRequest: MessageFns; export declare const SubscribeRequest_AccountsEntry: MessageFns; export declare const SubscribeRequest_SlotsEntry: MessageFns; export declare const SubscribeRequest_TransactionsEntry: MessageFns; export declare const SubscribeRequest_TransactionsStatusEntry: MessageFns; export declare const SubscribeRequest_BlocksEntry: MessageFns; export declare const SubscribeRequest_BlocksMetaEntry: MessageFns; export declare const SubscribeRequest_EntryEntry: MessageFns; export declare const SubscribeRequestFilterAccounts: MessageFns; export declare const SubscribeRequestFilterAccountsFilter: MessageFns; export declare const SubscribeRequestFilterAccountsFilterMemcmp: MessageFns; export declare const SubscribeRequestFilterAccountsFilterLamports: MessageFns; export declare const SubscribeRequestFilterSlots: MessageFns; export declare const SubscribeRequestFilterTransactions: MessageFns; export declare const SubscribeRequestFilterBlocks: MessageFns; export declare const SubscribeRequestFilterBlocksMeta: MessageFns; export declare const SubscribeRequestFilterEntry: MessageFns; export declare const SubscribeRequestFilterDeshredTransactions: MessageFns; export declare const SubscribeRequestAccountsDataSlice: MessageFns; export declare const SubscribeRequestPing: MessageFns; export declare const SubscribeDeshredRequest: MessageFns; export declare const SubscribeDeshredRequest_DeshredTransactionsEntry: MessageFns; export declare const SubscribeUpdate: MessageFns; export declare const SubscribeUpdateAccount: MessageFns; export declare const SubscribeUpdateAccountInfo: MessageFns; export declare const SubscribeUpdateSlot: MessageFns; export declare const SubscribeUpdateTransaction: MessageFns; export declare const SubscribeUpdateTransactionInfo: MessageFns; export declare const SubscribeUpdateTransactionStatus: MessageFns; export declare const SubscribeUpdateBlock: MessageFns; export declare const SubscribeUpdateBlockMeta: MessageFns; export declare const SubscribeUpdateEntry: MessageFns; export declare const SubscribeUpdateDeshredTransaction: MessageFns; export declare const SubscribeUpdateDeshredTransactionInfo: MessageFns; export declare const SubscribeUpdatePing: MessageFns; export declare const SubscribeUpdatePong: MessageFns; export declare const SubscribeUpdateDeshred: MessageFns; export declare const SubscribeReplayInfoRequest: MessageFns; export declare const SubscribeReplayInfoResponse: MessageFns; export declare const PingRequest: MessageFns; export declare const PongResponse: MessageFns; export declare const GetLatestBlockhashRequest: MessageFns; export declare const GetLatestBlockhashResponse: MessageFns; export declare const GetBlockHeightRequest: MessageFns; export declare const GetBlockHeightResponse: MessageFns; export declare const GetSlotRequest: MessageFns; export declare const GetSlotResponse: MessageFns; export declare const GetVersionRequest: MessageFns; export declare const GetVersionResponse: MessageFns; export declare const IsBlockhashValidRequest: MessageFns; export declare const IsBlockhashValidResponse: MessageFns; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends globalThis.Array ? globalThis.Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; type KeysOfUnion = T extends T ? keyof T : never; export type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & { [K in Exclude>]: never; }; export interface MessageFns { encode(message: T, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): T; fromJSON(object: any): T; toJSON(message: T): unknown; create, I>>(base?: I): T; fromPartial, I>>(object: I): T; } export {};