@validators-dao/solana-stream-sdk 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -176,5 +176,11 @@ interface MessageFns<T> {
176
176
  }
177
177
 
178
178
  declare const decodeSolanaEntries: any;
179
+ declare const ShredsClient: any;
180
+ declare enum ShredsClientCommitmentLevel {
181
+ Processed = "Processed",
182
+ Finalized = "Finalized",
183
+ Confirmed = "Confirmed"
184
+ }
179
185
 
180
- export { CommitmentLevel as ShredsCommitmentLevel, Entry as ShredsEntry, Entry as ShredsEntryFns, SubscribeEntriesRequest as ShredsSubscribeEntriesRequest, SubscribeEntriesRequest as ShredsSubscribeEntriesRequestFns, SubscribeRequestFilterAccounts as ShredsSubscribeRequestFilterAccounts, SubscribeRequestFilterSlots as ShredsSubscribeRequestFilterSlots, SubscribeRequestFilterTransactions as ShredsSubscribeRequestFilterTransactions, ShredstreamClient, ShredstreamProxyClient, decodeSolanaEntries };
186
+ export { ShredsClient, ShredsClientCommitmentLevel, CommitmentLevel as ShredsCommitmentLevel, Entry as ShredsEntry, Entry as ShredsEntryFns, SubscribeEntriesRequest as ShredsSubscribeEntriesRequest, SubscribeEntriesRequest as ShredsSubscribeEntriesRequestFns, SubscribeRequestFilterAccounts as ShredsSubscribeRequestFilterAccounts, SubscribeRequestFilterSlots as ShredsSubscribeRequestFilterSlots, SubscribeRequestFilterTransactions as ShredsSubscribeRequestFilterTransactions, ShredstreamClient, ShredstreamProxyClient, decodeSolanaEntries };
package/dist/index.js CHANGED
@@ -1313,10 +1313,19 @@ import { credentials, Metadata as Metadata2 } from "@grpc/grpc-js";
1313
1313
  import { createRequire } from "module";
1314
1314
  var require2 = createRequire(import.meta.url);
1315
1315
  var { decodeSolanaEntries } = require2("@validators-dao/solana-entry-decoder");
1316
+ var { ShredsClient } = require2("@validators-dao/solana-shreds-client");
1317
+ var ShredsClientCommitmentLevel = /* @__PURE__ */ ((ShredsClientCommitmentLevel2) => {
1318
+ ShredsClientCommitmentLevel2["Processed"] = "Processed";
1319
+ ShredsClientCommitmentLevel2["Finalized"] = "Finalized";
1320
+ ShredsClientCommitmentLevel2["Confirmed"] = "Confirmed";
1321
+ return ShredsClientCommitmentLevel2;
1322
+ })(ShredsClientCommitmentLevel || {});
1316
1323
  export {
1317
1324
  CommitmentLevel2 as CommitmentLevel,
1318
1325
  Client2 as GeyserClient,
1319
1326
  Metadata2 as Metadata,
1327
+ ShredsClient,
1328
+ ShredsClientCommitmentLevel,
1320
1329
  CommitmentLevel as ShredsCommitmentLevel,
1321
1330
  Entry as ShredsEntryFns,
1322
1331
  SubscribeEntriesRequest as ShredsSubscribeEntriesRequestFns,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/generated/shredstream.ts","../src/generated/google/protobuf/timestamp.ts","../src/generated/shared.ts"],"sourcesContent":["import Client, {\n CommitmentLevel,\n SubscribeRequestAccountsDataSlice,\n SubscribeRequestFilterAccounts,\n SubscribeRequestFilterBlocks,\n SubscribeRequestFilterBlocksMeta,\n SubscribeRequestFilterEntry,\n SubscribeRequestFilterSlots,\n SubscribeRequestFilterTransactions,\n} from '@triton-one/yellowstone-grpc'\nimport bs58 from 'bs58'\nexport {\n bs58,\n Client as GeyserClient,\n CommitmentLevel,\n SubscribeRequestAccountsDataSlice,\n SubscribeRequestFilterAccounts,\n SubscribeRequestFilterBlocks,\n SubscribeRequestFilterBlocksMeta,\n SubscribeRequestFilterEntry,\n SubscribeRequestFilterSlots,\n SubscribeRequestFilterTransactions,\n}\n\nexport {\n CommitmentLevel as ShredsCommitmentLevel,\n ShredstreamProxyClient,\n ShredstreamClient,\n SubscribeEntriesRequest as ShredsSubscribeEntriesRequestFns,\n Entry as ShredsEntryFns,\n} from './generated/shredstream'\n\nexport type {\n SubscribeEntriesRequest as ShredsSubscribeEntriesRequest,\n SubscribeRequestFilterAccounts as ShredsSubscribeRequestFilterAccounts,\n SubscribeRequestFilterTransactions as ShredsSubscribeRequestFilterTransactions,\n SubscribeRequestFilterSlots as ShredsSubscribeRequestFilterSlots,\n Entry as ShredsEntry,\n} from './generated/shredstream'\n\nexport { credentials, Metadata } from '@grpc/grpc-js'\n\nimport { createRequire } from 'node:module'\nconst require = createRequire(import.meta.url)\nconst { decodeSolanaEntries } = require('@validators-dao/solana-entry-decoder')\n\nexport { decodeSolanaEntries }\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.7.2\n// protoc v3.19.1\n// source: shredstream.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport {\n type CallOptions,\n ChannelCredentials,\n Client,\n type ClientOptions,\n type ClientReadableStream,\n type ClientUnaryCall,\n type handleServerStreamingCall,\n type handleUnaryCall,\n makeGenericClientConstructor,\n Metadata,\n type ServiceError,\n type UntypedServiceImplementation,\n} from \"@grpc/grpc-js\";\nimport { Timestamp } from \"./google/protobuf/timestamp\";\nimport { Socket } from \"./shared\";\n\nexport const protobufPackage = \"shredstream\";\n\nexport enum CommitmentLevel {\n PROCESSED = 0,\n CONFIRMED = 1,\n FINALIZED = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function commitmentLevelFromJSON(object: any): CommitmentLevel {\n switch (object) {\n case 0:\n case \"PROCESSED\":\n return CommitmentLevel.PROCESSED;\n case 1:\n case \"CONFIRMED\":\n return CommitmentLevel.CONFIRMED;\n case 2:\n case \"FINALIZED\":\n return CommitmentLevel.FINALIZED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CommitmentLevel.UNRECOGNIZED;\n }\n}\n\nexport function commitmentLevelToJSON(object: CommitmentLevel): string {\n switch (object) {\n case CommitmentLevel.PROCESSED:\n return \"PROCESSED\";\n case CommitmentLevel.CONFIRMED:\n return \"CONFIRMED\";\n case CommitmentLevel.FINALIZED:\n return \"FINALIZED\";\n case CommitmentLevel.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport interface Heartbeat {\n /**\n * don't trust IP:PORT from tcp header since it can be tampered over the wire\n * `socket.ip` must match incoming packet's ip. this prevents spamming an unwitting destination\n */\n socket:\n | Socket\n | undefined;\n /**\n * regions for shredstream proxy to receive shreds from\n * list of valid regions: https://docs.jito.wtf/lowlatencytxnsend/#api\n */\n regions: string[];\n}\n\nexport interface HeartbeatResponse {\n /** client must respond within `ttl_ms` to keep stream alive */\n ttlMs: number;\n}\n\nexport interface TraceShred {\n /** source region, one of: https://docs.jito.wtf/lowlatencytxnsend/#api */\n region: string;\n /** timestamp of creation */\n createdAt:\n | Date\n | undefined;\n /** monotonically increases, resets upon service restart */\n seqNum: number;\n}\n\nexport interface SubscribeEntriesRequest {\n accounts: { [key: string]: SubscribeRequestFilterAccounts };\n transactions: { [key: string]: SubscribeRequestFilterTransactions };\n slots: { [key: string]: SubscribeRequestFilterSlots };\n commitment?: CommitmentLevel | undefined;\n}\n\nexport interface SubscribeEntriesRequest_AccountsEntry {\n key: string;\n value: SubscribeRequestFilterAccounts | undefined;\n}\n\nexport interface SubscribeEntriesRequest_TransactionsEntry {\n key: string;\n value: SubscribeRequestFilterTransactions | undefined;\n}\n\nexport interface SubscribeEntriesRequest_SlotsEntry {\n key: string;\n value: SubscribeRequestFilterSlots | undefined;\n}\n\nexport interface SubscribeRequestFilterAccounts {\n account: string[];\n owner: string[];\n filters: SubscribeRequestFilterAccountsFilter[];\n nonemptyTxnSignature?: boolean | undefined;\n}\n\nexport interface SubscribeRequestFilterAccountsFilter {\n memcmp?: SubscribeRequestFilterAccountsFilterMemcmp | undefined;\n datasize?: number | undefined;\n tokenAccountState?: boolean | undefined;\n lamports?: SubscribeRequestFilterAccountsFilterLamports | undefined;\n}\n\nexport interface SubscribeRequestFilterAccountsFilterMemcmp {\n offset: number;\n bytes?: Uint8Array | undefined;\n base58?: string | undefined;\n base64?: string | undefined;\n}\n\nexport interface SubscribeRequestFilterAccountsFilterLamports {\n eq?: number | undefined;\n ne?: number | undefined;\n lt?: number | undefined;\n gt?: number | undefined;\n}\n\nexport interface SubscribeRequestFilterSlots {\n filterByCommitment?: boolean | undefined;\n interslotUpdates?: boolean | undefined;\n}\n\nexport interface SubscribeRequestFilterTransactions {\n accountInclude: string[];\n accountExclude: string[];\n accountRequired: string[];\n}\n\nexport interface Entry {\n /** the slot that the entry is from */\n slot: number;\n /** Serialized bytes of Vec<Entry>: https://docs.rs/solana-entry/latest/solana_entry/entry/struct.Entry.html */\n entries: Uint8Array;\n}\n\nfunction createBaseHeartbeat(): Heartbeat {\n return { socket: undefined, regions: [] };\n}\n\nexport const Heartbeat: MessageFns<Heartbeat> = {\n encode(message: Heartbeat, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.socket !== undefined) {\n Socket.encode(message.socket, writer.uint32(10).fork()).join();\n }\n for (const v of message.regions) {\n writer.uint32(18).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Heartbeat {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeartbeat();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.socket = Socket.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.regions.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Heartbeat {\n return {\n socket: isSet(object.socket) ? Socket.fromJSON(object.socket) : undefined,\n regions: globalThis.Array.isArray(object?.regions) ? object.regions.map((e: any) => globalThis.String(e)) : [],\n };\n },\n\n toJSON(message: Heartbeat): unknown {\n const obj: any = {};\n if (message.socket !== undefined) {\n obj.socket = Socket.toJSON(message.socket);\n }\n if (message.regions?.length) {\n obj.regions = message.regions;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Heartbeat>, I>>(base?: I): Heartbeat {\n return Heartbeat.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Heartbeat>, I>>(object: I): Heartbeat {\n const message = createBaseHeartbeat();\n message.socket = (object.socket !== undefined && object.socket !== null)\n ? Socket.fromPartial(object.socket)\n : undefined;\n message.regions = object.regions?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseHeartbeatResponse(): HeartbeatResponse {\n return { ttlMs: 0 };\n}\n\nexport const HeartbeatResponse: MessageFns<HeartbeatResponse> = {\n encode(message: HeartbeatResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ttlMs !== 0) {\n writer.uint32(8).uint32(message.ttlMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): HeartbeatResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeartbeatResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.ttlMs = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): HeartbeatResponse {\n return { ttlMs: isSet(object.ttlMs) ? globalThis.Number(object.ttlMs) : 0 };\n },\n\n toJSON(message: HeartbeatResponse): unknown {\n const obj: any = {};\n if (message.ttlMs !== 0) {\n obj.ttlMs = Math.round(message.ttlMs);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<HeartbeatResponse>, I>>(base?: I): HeartbeatResponse {\n return HeartbeatResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<HeartbeatResponse>, I>>(object: I): HeartbeatResponse {\n const message = createBaseHeartbeatResponse();\n message.ttlMs = object.ttlMs ?? 0;\n return message;\n },\n};\n\nfunction createBaseTraceShred(): TraceShred {\n return { region: \"\", createdAt: undefined, seqNum: 0 };\n}\n\nexport const TraceShred: MessageFns<TraceShred> = {\n encode(message: TraceShred, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.region !== \"\") {\n writer.uint32(10).string(message.region);\n }\n if (message.createdAt !== undefined) {\n Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(18).fork()).join();\n }\n if (message.seqNum !== 0) {\n writer.uint32(24).uint32(message.seqNum);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): TraceShred {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTraceShred();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.region = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.seqNum = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): TraceShred {\n return {\n region: isSet(object.region) ? globalThis.String(object.region) : \"\",\n createdAt: isSet(object.createdAt) ? fromJsonTimestamp(object.createdAt) : undefined,\n seqNum: isSet(object.seqNum) ? globalThis.Number(object.seqNum) : 0,\n };\n },\n\n toJSON(message: TraceShred): unknown {\n const obj: any = {};\n if (message.region !== \"\") {\n obj.region = message.region;\n }\n if (message.createdAt !== undefined) {\n obj.createdAt = message.createdAt.toISOString();\n }\n if (message.seqNum !== 0) {\n obj.seqNum = Math.round(message.seqNum);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<TraceShred>, I>>(base?: I): TraceShred {\n return TraceShred.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<TraceShred>, I>>(object: I): TraceShred {\n const message = createBaseTraceShred();\n message.region = object.region ?? \"\";\n message.createdAt = object.createdAt ?? undefined;\n message.seqNum = object.seqNum ?? 0;\n return message;\n },\n};\n\nfunction createBaseSubscribeEntriesRequest(): SubscribeEntriesRequest {\n return { accounts: {}, transactions: {}, slots: {}, commitment: undefined };\n}\n\nexport const SubscribeEntriesRequest: MessageFns<SubscribeEntriesRequest> = {\n encode(message: SubscribeEntriesRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n Object.entries(message.accounts).forEach(([key, value]) => {\n SubscribeEntriesRequest_AccountsEntry.encode({ key: key as any, value }, writer.uint32(10).fork()).join();\n });\n Object.entries(message.transactions).forEach(([key, value]) => {\n SubscribeEntriesRequest_TransactionsEntry.encode({ key: key as any, value }, writer.uint32(26).fork()).join();\n });\n Object.entries(message.slots).forEach(([key, value]) => {\n SubscribeEntriesRequest_SlotsEntry.encode({ key: key as any, value }, writer.uint32(18).fork()).join();\n });\n if (message.commitment !== undefined) {\n writer.uint32(48).int32(message.commitment);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeEntriesRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeEntriesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n const entry1 = SubscribeEntriesRequest_AccountsEntry.decode(reader, reader.uint32());\n if (entry1.value !== undefined) {\n message.accounts[entry1.key] = entry1.value;\n }\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n const entry3 = SubscribeEntriesRequest_TransactionsEntry.decode(reader, reader.uint32());\n if (entry3.value !== undefined) {\n message.transactions[entry3.key] = entry3.value;\n }\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n const entry2 = SubscribeEntriesRequest_SlotsEntry.decode(reader, reader.uint32());\n if (entry2.value !== undefined) {\n message.slots[entry2.key] = entry2.value;\n }\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.commitment = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeEntriesRequest {\n return {\n accounts: isObject(object.accounts)\n ? Object.entries(object.accounts).reduce<{ [key: string]: SubscribeRequestFilterAccounts }>(\n (acc, [key, value]) => {\n acc[key] = SubscribeRequestFilterAccounts.fromJSON(value);\n return acc;\n },\n {},\n )\n : {},\n transactions: isObject(object.transactions)\n ? Object.entries(object.transactions).reduce<{ [key: string]: SubscribeRequestFilterTransactions }>(\n (acc, [key, value]) => {\n acc[key] = SubscribeRequestFilterTransactions.fromJSON(value);\n return acc;\n },\n {},\n )\n : {},\n slots: isObject(object.slots)\n ? Object.entries(object.slots).reduce<{ [key: string]: SubscribeRequestFilterSlots }>((acc, [key, value]) => {\n acc[key] = SubscribeRequestFilterSlots.fromJSON(value);\n return acc;\n }, {})\n : {},\n commitment: isSet(object.commitment) ? commitmentLevelFromJSON(object.commitment) : undefined,\n };\n },\n\n toJSON(message: SubscribeEntriesRequest): unknown {\n const obj: any = {};\n if (message.accounts) {\n const entries = Object.entries(message.accounts);\n if (entries.length > 0) {\n obj.accounts = {};\n entries.forEach(([k, v]) => {\n obj.accounts[k] = SubscribeRequestFilterAccounts.toJSON(v);\n });\n }\n }\n if (message.transactions) {\n const entries = Object.entries(message.transactions);\n if (entries.length > 0) {\n obj.transactions = {};\n entries.forEach(([k, v]) => {\n obj.transactions[k] = SubscribeRequestFilterTransactions.toJSON(v);\n });\n }\n }\n if (message.slots) {\n const entries = Object.entries(message.slots);\n if (entries.length > 0) {\n obj.slots = {};\n entries.forEach(([k, v]) => {\n obj.slots[k] = SubscribeRequestFilterSlots.toJSON(v);\n });\n }\n }\n if (message.commitment !== undefined) {\n obj.commitment = commitmentLevelToJSON(message.commitment);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeEntriesRequest>, I>>(base?: I): SubscribeEntriesRequest {\n return SubscribeEntriesRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeEntriesRequest>, I>>(object: I): SubscribeEntriesRequest {\n const message = createBaseSubscribeEntriesRequest();\n message.accounts = Object.entries(object.accounts ?? {}).reduce<{ [key: string]: SubscribeRequestFilterAccounts }>(\n (acc, [key, value]) => {\n if (value !== undefined) {\n acc[key] = SubscribeRequestFilterAccounts.fromPartial(value);\n }\n return acc;\n },\n {},\n );\n message.transactions = Object.entries(object.transactions ?? {}).reduce<\n { [key: string]: SubscribeRequestFilterTransactions }\n >((acc, [key, value]) => {\n if (value !== undefined) {\n acc[key] = SubscribeRequestFilterTransactions.fromPartial(value);\n }\n return acc;\n }, {});\n message.slots = Object.entries(object.slots ?? {}).reduce<{ [key: string]: SubscribeRequestFilterSlots }>(\n (acc, [key, value]) => {\n if (value !== undefined) {\n acc[key] = SubscribeRequestFilterSlots.fromPartial(value);\n }\n return acc;\n },\n {},\n );\n message.commitment = object.commitment ?? undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeEntriesRequest_AccountsEntry(): SubscribeEntriesRequest_AccountsEntry {\n return { key: \"\", value: undefined };\n}\n\nexport const SubscribeEntriesRequest_AccountsEntry: MessageFns<SubscribeEntriesRequest_AccountsEntry> = {\n encode(message: SubscribeEntriesRequest_AccountsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== undefined) {\n SubscribeRequestFilterAccounts.encode(message.value, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeEntriesRequest_AccountsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeEntriesRequest_AccountsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = SubscribeRequestFilterAccounts.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeEntriesRequest_AccountsEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? SubscribeRequestFilterAccounts.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: SubscribeEntriesRequest_AccountsEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== undefined) {\n obj.value = SubscribeRequestFilterAccounts.toJSON(message.value);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeEntriesRequest_AccountsEntry>, I>>(\n base?: I,\n ): SubscribeEntriesRequest_AccountsEntry {\n return SubscribeEntriesRequest_AccountsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeEntriesRequest_AccountsEntry>, I>>(\n object: I,\n ): SubscribeEntriesRequest_AccountsEntry {\n const message = createBaseSubscribeEntriesRequest_AccountsEntry();\n message.key = object.key ?? \"\";\n message.value = (object.value !== undefined && object.value !== null)\n ? SubscribeRequestFilterAccounts.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeEntriesRequest_TransactionsEntry(): SubscribeEntriesRequest_TransactionsEntry {\n return { key: \"\", value: undefined };\n}\n\nexport const SubscribeEntriesRequest_TransactionsEntry: MessageFns<SubscribeEntriesRequest_TransactionsEntry> = {\n encode(message: SubscribeEntriesRequest_TransactionsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== undefined) {\n SubscribeRequestFilterTransactions.encode(message.value, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeEntriesRequest_TransactionsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeEntriesRequest_TransactionsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = SubscribeRequestFilterTransactions.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeEntriesRequest_TransactionsEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? SubscribeRequestFilterTransactions.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: SubscribeEntriesRequest_TransactionsEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== undefined) {\n obj.value = SubscribeRequestFilterTransactions.toJSON(message.value);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeEntriesRequest_TransactionsEntry>, I>>(\n base?: I,\n ): SubscribeEntriesRequest_TransactionsEntry {\n return SubscribeEntriesRequest_TransactionsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeEntriesRequest_TransactionsEntry>, I>>(\n object: I,\n ): SubscribeEntriesRequest_TransactionsEntry {\n const message = createBaseSubscribeEntriesRequest_TransactionsEntry();\n message.key = object.key ?? \"\";\n message.value = (object.value !== undefined && object.value !== null)\n ? SubscribeRequestFilterTransactions.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeEntriesRequest_SlotsEntry(): SubscribeEntriesRequest_SlotsEntry {\n return { key: \"\", value: undefined };\n}\n\nexport const SubscribeEntriesRequest_SlotsEntry: MessageFns<SubscribeEntriesRequest_SlotsEntry> = {\n encode(message: SubscribeEntriesRequest_SlotsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== undefined) {\n SubscribeRequestFilterSlots.encode(message.value, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeEntriesRequest_SlotsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeEntriesRequest_SlotsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = SubscribeRequestFilterSlots.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeEntriesRequest_SlotsEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? SubscribeRequestFilterSlots.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: SubscribeEntriesRequest_SlotsEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== undefined) {\n obj.value = SubscribeRequestFilterSlots.toJSON(message.value);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeEntriesRequest_SlotsEntry>, I>>(\n base?: I,\n ): SubscribeEntriesRequest_SlotsEntry {\n return SubscribeEntriesRequest_SlotsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeEntriesRequest_SlotsEntry>, I>>(\n object: I,\n ): SubscribeEntriesRequest_SlotsEntry {\n const message = createBaseSubscribeEntriesRequest_SlotsEntry();\n message.key = object.key ?? \"\";\n message.value = (object.value !== undefined && object.value !== null)\n ? SubscribeRequestFilterSlots.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterAccounts(): SubscribeRequestFilterAccounts {\n return { account: [], owner: [], filters: [], nonemptyTxnSignature: undefined };\n}\n\nexport const SubscribeRequestFilterAccounts: MessageFns<SubscribeRequestFilterAccounts> = {\n encode(message: SubscribeRequestFilterAccounts, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.account) {\n writer.uint32(18).string(v!);\n }\n for (const v of message.owner) {\n writer.uint32(26).string(v!);\n }\n for (const v of message.filters) {\n SubscribeRequestFilterAccountsFilter.encode(v!, writer.uint32(34).fork()).join();\n }\n if (message.nonemptyTxnSignature !== undefined) {\n writer.uint32(40).bool(message.nonemptyTxnSignature);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterAccounts {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterAccounts();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.account.push(reader.string());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.owner.push(reader.string());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.filters.push(SubscribeRequestFilterAccountsFilter.decode(reader, reader.uint32()));\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.nonemptyTxnSignature = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterAccounts {\n return {\n account: globalThis.Array.isArray(object?.account) ? object.account.map((e: any) => globalThis.String(e)) : [],\n owner: globalThis.Array.isArray(object?.owner) ? object.owner.map((e: any) => globalThis.String(e)) : [],\n filters: globalThis.Array.isArray(object?.filters)\n ? object.filters.map((e: any) => SubscribeRequestFilterAccountsFilter.fromJSON(e))\n : [],\n nonemptyTxnSignature: isSet(object.nonemptyTxnSignature)\n ? globalThis.Boolean(object.nonemptyTxnSignature)\n : undefined,\n };\n },\n\n toJSON(message: SubscribeRequestFilterAccounts): unknown {\n const obj: any = {};\n if (message.account?.length) {\n obj.account = message.account;\n }\n if (message.owner?.length) {\n obj.owner = message.owner;\n }\n if (message.filters?.length) {\n obj.filters = message.filters.map((e) => SubscribeRequestFilterAccountsFilter.toJSON(e));\n }\n if (message.nonemptyTxnSignature !== undefined) {\n obj.nonemptyTxnSignature = message.nonemptyTxnSignature;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterAccounts>, I>>(base?: I): SubscribeRequestFilterAccounts {\n return SubscribeRequestFilterAccounts.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterAccounts>, I>>(\n object: I,\n ): SubscribeRequestFilterAccounts {\n const message = createBaseSubscribeRequestFilterAccounts();\n message.account = object.account?.map((e) => e) || [];\n message.owner = object.owner?.map((e) => e) || [];\n message.filters = object.filters?.map((e) => SubscribeRequestFilterAccountsFilter.fromPartial(e)) || [];\n message.nonemptyTxnSignature = object.nonemptyTxnSignature ?? undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterAccountsFilter(): SubscribeRequestFilterAccountsFilter {\n return { memcmp: undefined, datasize: undefined, tokenAccountState: undefined, lamports: undefined };\n}\n\nexport const SubscribeRequestFilterAccountsFilter: MessageFns<SubscribeRequestFilterAccountsFilter> = {\n encode(message: SubscribeRequestFilterAccountsFilter, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.memcmp !== undefined) {\n SubscribeRequestFilterAccountsFilterMemcmp.encode(message.memcmp, writer.uint32(10).fork()).join();\n }\n if (message.datasize !== undefined) {\n writer.uint32(16).uint64(message.datasize);\n }\n if (message.tokenAccountState !== undefined) {\n writer.uint32(24).bool(message.tokenAccountState);\n }\n if (message.lamports !== undefined) {\n SubscribeRequestFilterAccountsFilterLamports.encode(message.lamports, writer.uint32(34).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterAccountsFilter {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterAccountsFilter();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.memcmp = SubscribeRequestFilterAccountsFilterMemcmp.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.datasize = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.tokenAccountState = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.lamports = SubscribeRequestFilterAccountsFilterLamports.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterAccountsFilter {\n return {\n memcmp: isSet(object.memcmp) ? SubscribeRequestFilterAccountsFilterMemcmp.fromJSON(object.memcmp) : undefined,\n datasize: isSet(object.datasize) ? globalThis.Number(object.datasize) : undefined,\n tokenAccountState: isSet(object.tokenAccountState) ? globalThis.Boolean(object.tokenAccountState) : undefined,\n lamports: isSet(object.lamports)\n ? SubscribeRequestFilterAccountsFilterLamports.fromJSON(object.lamports)\n : undefined,\n };\n },\n\n toJSON(message: SubscribeRequestFilterAccountsFilter): unknown {\n const obj: any = {};\n if (message.memcmp !== undefined) {\n obj.memcmp = SubscribeRequestFilterAccountsFilterMemcmp.toJSON(message.memcmp);\n }\n if (message.datasize !== undefined) {\n obj.datasize = Math.round(message.datasize);\n }\n if (message.tokenAccountState !== undefined) {\n obj.tokenAccountState = message.tokenAccountState;\n }\n if (message.lamports !== undefined) {\n obj.lamports = SubscribeRequestFilterAccountsFilterLamports.toJSON(message.lamports);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilter>, I>>(\n base?: I,\n ): SubscribeRequestFilterAccountsFilter {\n return SubscribeRequestFilterAccountsFilter.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilter>, I>>(\n object: I,\n ): SubscribeRequestFilterAccountsFilter {\n const message = createBaseSubscribeRequestFilterAccountsFilter();\n message.memcmp = (object.memcmp !== undefined && object.memcmp !== null)\n ? SubscribeRequestFilterAccountsFilterMemcmp.fromPartial(object.memcmp)\n : undefined;\n message.datasize = object.datasize ?? undefined;\n message.tokenAccountState = object.tokenAccountState ?? undefined;\n message.lamports = (object.lamports !== undefined && object.lamports !== null)\n ? SubscribeRequestFilterAccountsFilterLamports.fromPartial(object.lamports)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterAccountsFilterMemcmp(): SubscribeRequestFilterAccountsFilterMemcmp {\n return { offset: 0, bytes: undefined, base58: undefined, base64: undefined };\n}\n\nexport const SubscribeRequestFilterAccountsFilterMemcmp: MessageFns<SubscribeRequestFilterAccountsFilterMemcmp> = {\n encode(message: SubscribeRequestFilterAccountsFilterMemcmp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.offset !== 0) {\n writer.uint32(8).uint64(message.offset);\n }\n if (message.bytes !== undefined) {\n writer.uint32(18).bytes(message.bytes);\n }\n if (message.base58 !== undefined) {\n writer.uint32(26).string(message.base58);\n }\n if (message.base64 !== undefined) {\n writer.uint32(34).string(message.base64);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterAccountsFilterMemcmp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterAccountsFilterMemcmp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.offset = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.bytes = reader.bytes();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.base58 = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.base64 = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterAccountsFilterMemcmp {\n return {\n offset: isSet(object.offset) ? globalThis.Number(object.offset) : 0,\n bytes: isSet(object.bytes) ? bytesFromBase64(object.bytes) : undefined,\n base58: isSet(object.base58) ? globalThis.String(object.base58) : undefined,\n base64: isSet(object.base64) ? globalThis.String(object.base64) : undefined,\n };\n },\n\n toJSON(message: SubscribeRequestFilterAccountsFilterMemcmp): unknown {\n const obj: any = {};\n if (message.offset !== 0) {\n obj.offset = Math.round(message.offset);\n }\n if (message.bytes !== undefined) {\n obj.bytes = base64FromBytes(message.bytes);\n }\n if (message.base58 !== undefined) {\n obj.base58 = message.base58;\n }\n if (message.base64 !== undefined) {\n obj.base64 = message.base64;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilterMemcmp>, I>>(\n base?: I,\n ): SubscribeRequestFilterAccountsFilterMemcmp {\n return SubscribeRequestFilterAccountsFilterMemcmp.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilterMemcmp>, I>>(\n object: I,\n ): SubscribeRequestFilterAccountsFilterMemcmp {\n const message = createBaseSubscribeRequestFilterAccountsFilterMemcmp();\n message.offset = object.offset ?? 0;\n message.bytes = object.bytes ?? undefined;\n message.base58 = object.base58 ?? undefined;\n message.base64 = object.base64 ?? undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterAccountsFilterLamports(): SubscribeRequestFilterAccountsFilterLamports {\n return { eq: undefined, ne: undefined, lt: undefined, gt: undefined };\n}\n\nexport const SubscribeRequestFilterAccountsFilterLamports: MessageFns<SubscribeRequestFilterAccountsFilterLamports> = {\n encode(\n message: SubscribeRequestFilterAccountsFilterLamports,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.eq !== undefined) {\n writer.uint32(8).uint64(message.eq);\n }\n if (message.ne !== undefined) {\n writer.uint32(16).uint64(message.ne);\n }\n if (message.lt !== undefined) {\n writer.uint32(24).uint64(message.lt);\n }\n if (message.gt !== undefined) {\n writer.uint32(32).uint64(message.gt);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterAccountsFilterLamports {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterAccountsFilterLamports();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.eq = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.ne = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.lt = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.gt = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterAccountsFilterLamports {\n return {\n eq: isSet(object.eq) ? globalThis.Number(object.eq) : undefined,\n ne: isSet(object.ne) ? globalThis.Number(object.ne) : undefined,\n lt: isSet(object.lt) ? globalThis.Number(object.lt) : undefined,\n gt: isSet(object.gt) ? globalThis.Number(object.gt) : undefined,\n };\n },\n\n toJSON(message: SubscribeRequestFilterAccountsFilterLamports): unknown {\n const obj: any = {};\n if (message.eq !== undefined) {\n obj.eq = Math.round(message.eq);\n }\n if (message.ne !== undefined) {\n obj.ne = Math.round(message.ne);\n }\n if (message.lt !== undefined) {\n obj.lt = Math.round(message.lt);\n }\n if (message.gt !== undefined) {\n obj.gt = Math.round(message.gt);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilterLamports>, I>>(\n base?: I,\n ): SubscribeRequestFilterAccountsFilterLamports {\n return SubscribeRequestFilterAccountsFilterLamports.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilterLamports>, I>>(\n object: I,\n ): SubscribeRequestFilterAccountsFilterLamports {\n const message = createBaseSubscribeRequestFilterAccountsFilterLamports();\n message.eq = object.eq ?? undefined;\n message.ne = object.ne ?? undefined;\n message.lt = object.lt ?? undefined;\n message.gt = object.gt ?? undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterSlots(): SubscribeRequestFilterSlots {\n return { filterByCommitment: undefined, interslotUpdates: undefined };\n}\n\nexport const SubscribeRequestFilterSlots: MessageFns<SubscribeRequestFilterSlots> = {\n encode(message: SubscribeRequestFilterSlots, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.filterByCommitment !== undefined) {\n writer.uint32(8).bool(message.filterByCommitment);\n }\n if (message.interslotUpdates !== undefined) {\n writer.uint32(16).bool(message.interslotUpdates);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterSlots {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterSlots();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.filterByCommitment = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.interslotUpdates = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterSlots {\n return {\n filterByCommitment: isSet(object.filterByCommitment) ? globalThis.Boolean(object.filterByCommitment) : undefined,\n interslotUpdates: isSet(object.interslotUpdates) ? globalThis.Boolean(object.interslotUpdates) : undefined,\n };\n },\n\n toJSON(message: SubscribeRequestFilterSlots): unknown {\n const obj: any = {};\n if (message.filterByCommitment !== undefined) {\n obj.filterByCommitment = message.filterByCommitment;\n }\n if (message.interslotUpdates !== undefined) {\n obj.interslotUpdates = message.interslotUpdates;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterSlots>, I>>(base?: I): SubscribeRequestFilterSlots {\n return SubscribeRequestFilterSlots.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterSlots>, I>>(object: I): SubscribeRequestFilterSlots {\n const message = createBaseSubscribeRequestFilterSlots();\n message.filterByCommitment = object.filterByCommitment ?? undefined;\n message.interslotUpdates = object.interslotUpdates ?? undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterTransactions(): SubscribeRequestFilterTransactions {\n return { accountInclude: [], accountExclude: [], accountRequired: [] };\n}\n\nexport const SubscribeRequestFilterTransactions: MessageFns<SubscribeRequestFilterTransactions> = {\n encode(message: SubscribeRequestFilterTransactions, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.accountInclude) {\n writer.uint32(26).string(v!);\n }\n for (const v of message.accountExclude) {\n writer.uint32(34).string(v!);\n }\n for (const v of message.accountRequired) {\n writer.uint32(50).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterTransactions {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterTransactions();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.accountInclude.push(reader.string());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.accountExclude.push(reader.string());\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.accountRequired.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterTransactions {\n return {\n accountInclude: globalThis.Array.isArray(object?.accountInclude)\n ? object.accountInclude.map((e: any) => globalThis.String(e))\n : [],\n accountExclude: globalThis.Array.isArray(object?.accountExclude)\n ? object.accountExclude.map((e: any) => globalThis.String(e))\n : [],\n accountRequired: globalThis.Array.isArray(object?.accountRequired)\n ? object.accountRequired.map((e: any) => globalThis.String(e))\n : [],\n };\n },\n\n toJSON(message: SubscribeRequestFilterTransactions): unknown {\n const obj: any = {};\n if (message.accountInclude?.length) {\n obj.accountInclude = message.accountInclude;\n }\n if (message.accountExclude?.length) {\n obj.accountExclude = message.accountExclude;\n }\n if (message.accountRequired?.length) {\n obj.accountRequired = message.accountRequired;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterTransactions>, I>>(\n base?: I,\n ): SubscribeRequestFilterTransactions {\n return SubscribeRequestFilterTransactions.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterTransactions>, I>>(\n object: I,\n ): SubscribeRequestFilterTransactions {\n const message = createBaseSubscribeRequestFilterTransactions();\n message.accountInclude = object.accountInclude?.map((e) => e) || [];\n message.accountExclude = object.accountExclude?.map((e) => e) || [];\n message.accountRequired = object.accountRequired?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseEntry(): Entry {\n return { slot: 0, entries: new Uint8Array(0) };\n}\n\nexport const Entry: MessageFns<Entry> = {\n encode(message: Entry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.slot !== 0) {\n writer.uint32(8).uint64(message.slot);\n }\n if (message.entries.length !== 0) {\n writer.uint32(18).bytes(message.entries);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Entry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.entries = reader.bytes();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Entry {\n return {\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n entries: isSet(object.entries) ? bytesFromBase64(object.entries) : new Uint8Array(0),\n };\n },\n\n toJSON(message: Entry): unknown {\n const obj: any = {};\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n if (message.entries.length !== 0) {\n obj.entries = base64FromBytes(message.entries);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Entry>, I>>(base?: I): Entry {\n return Entry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Entry>, I>>(object: I): Entry {\n const message = createBaseEntry();\n message.slot = object.slot ?? 0;\n message.entries = object.entries ?? new Uint8Array(0);\n return message;\n },\n};\n\nexport type ShredstreamService = typeof ShredstreamService;\nexport const ShredstreamService = {\n /** RPC endpoint to send heartbeats to keep shreds flowing */\n sendHeartbeat: {\n path: \"/shredstream.Shredstream/SendHeartbeat\",\n requestStream: false,\n responseStream: false,\n requestSerialize: (value: Heartbeat) => Buffer.from(Heartbeat.encode(value).finish()),\n requestDeserialize: (value: Buffer) => Heartbeat.decode(value),\n responseSerialize: (value: HeartbeatResponse) => Buffer.from(HeartbeatResponse.encode(value).finish()),\n responseDeserialize: (value: Buffer) => HeartbeatResponse.decode(value),\n },\n} as const;\n\nexport interface ShredstreamServer extends UntypedServiceImplementation {\n /** RPC endpoint to send heartbeats to keep shreds flowing */\n sendHeartbeat: handleUnaryCall<Heartbeat, HeartbeatResponse>;\n}\n\nexport interface ShredstreamClient extends Client {\n /** RPC endpoint to send heartbeats to keep shreds flowing */\n sendHeartbeat(\n request: Heartbeat,\n callback: (error: ServiceError | null, response: HeartbeatResponse) => void,\n ): ClientUnaryCall;\n sendHeartbeat(\n request: Heartbeat,\n metadata: Metadata,\n callback: (error: ServiceError | null, response: HeartbeatResponse) => void,\n ): ClientUnaryCall;\n sendHeartbeat(\n request: Heartbeat,\n metadata: Metadata,\n options: Partial<CallOptions>,\n callback: (error: ServiceError | null, response: HeartbeatResponse) => void,\n ): ClientUnaryCall;\n}\n\nexport const ShredstreamClient = makeGenericClientConstructor(\n ShredstreamService,\n \"shredstream.Shredstream\",\n) as unknown as {\n new (address: string, credentials: ChannelCredentials, options?: Partial<ClientOptions>): ShredstreamClient;\n service: typeof ShredstreamService;\n serviceName: string;\n};\n\nexport type ShredstreamProxyService = typeof ShredstreamProxyService;\nexport const ShredstreamProxyService = {\n subscribeEntries: {\n path: \"/shredstream.ShredstreamProxy/SubscribeEntries\",\n requestStream: false,\n responseStream: true,\n requestSerialize: (value: SubscribeEntriesRequest) => Buffer.from(SubscribeEntriesRequest.encode(value).finish()),\n requestDeserialize: (value: Buffer) => SubscribeEntriesRequest.decode(value),\n responseSerialize: (value: Entry) => Buffer.from(Entry.encode(value).finish()),\n responseDeserialize: (value: Buffer) => Entry.decode(value),\n },\n} as const;\n\nexport interface ShredstreamProxyServer extends UntypedServiceImplementation {\n subscribeEntries: handleServerStreamingCall<SubscribeEntriesRequest, Entry>;\n}\n\nexport interface ShredstreamProxyClient extends Client {\n subscribeEntries(request: SubscribeEntriesRequest, options?: Partial<CallOptions>): ClientReadableStream<Entry>;\n subscribeEntries(\n request: SubscribeEntriesRequest,\n metadata?: Metadata,\n options?: Partial<CallOptions>,\n ): ClientReadableStream<Entry>;\n}\n\nexport const ShredstreamProxyClient = makeGenericClientConstructor(\n ShredstreamProxyService,\n \"shredstream.ShredstreamProxy\",\n) as unknown as {\n new (address: string, credentials: ChannelCredentials, options?: Partial<ClientOptions>): ShredstreamProxyClient;\n service: typeof ShredstreamProxyService;\n serviceName: string;\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from(globalThis.Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\nfunction base64FromBytes(arr: Uint8Array): string {\n if ((globalThis as any).Buffer) {\n return globalThis.Buffer.from(arr).toString(\"base64\");\n } else {\n const bin: string[] = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin ? T\n : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000);\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = (t.seconds || 0) * 1_000;\n millis += (t.nanos || 0) / 1_000_000;\n return new globalThis.Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Date {\n if (o instanceof globalThis.Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new globalThis.Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isObject(value: any): boolean {\n return typeof value === \"object\" && value !== null;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns<T> {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;\n fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.7.2\n// protoc v3.19.1\n// source: google/protobuf/timestamp.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"google.protobuf\";\n\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * Example 5: Compute Timestamp from Java `Instant.now()`.\n *\n * Instant now = Instant.now();\n *\n * Timestamp timestamp =\n * Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n * .setNanos(now.getNano()).build();\n *\n * Example 6: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D\n * ) to obtain a formatter capable of generating timestamps in this format.\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n */\n seconds: number;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n */\n nanos: number;\n}\n\nfunction createBaseTimestamp(): Timestamp {\n return { seconds: 0, nanos: 0 };\n}\n\nexport const Timestamp: MessageFns<Timestamp> = {\n encode(message: Timestamp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.seconds !== 0) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Timestamp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTimestamp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.seconds = longToNumber(reader.int64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.nanos = reader.int32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Timestamp {\n return {\n seconds: isSet(object.seconds) ? globalThis.Number(object.seconds) : 0,\n nanos: isSet(object.nanos) ? globalThis.Number(object.nanos) : 0,\n };\n },\n\n toJSON(message: Timestamp): unknown {\n const obj: any = {};\n if (message.seconds !== 0) {\n obj.seconds = Math.round(message.seconds);\n }\n if (message.nanos !== 0) {\n obj.nanos = Math.round(message.nanos);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Timestamp>, I>>(base?: I): Timestamp {\n return Timestamp.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Timestamp>, I>>(object: I): Timestamp {\n const message = createBaseTimestamp();\n message.seconds = object.seconds ?? 0;\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin ? T\n : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns<T> {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;\n fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.7.2\n// protoc v3.19.1\n// source: shared.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Timestamp } from \"./google/protobuf/timestamp\";\n\nexport const protobufPackage = \"shared\";\n\nexport interface Header {\n ts: Date | undefined;\n}\n\nexport interface Heartbeat {\n count: number;\n}\n\nexport interface Socket {\n ip: string;\n port: number;\n}\n\nfunction createBaseHeader(): Header {\n return { ts: undefined };\n}\n\nexport const Header: MessageFns<Header> = {\n encode(message: Header, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ts !== undefined) {\n Timestamp.encode(toTimestamp(message.ts), writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Header {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ts = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Header {\n return { ts: isSet(object.ts) ? fromJsonTimestamp(object.ts) : undefined };\n },\n\n toJSON(message: Header): unknown {\n const obj: any = {};\n if (message.ts !== undefined) {\n obj.ts = message.ts.toISOString();\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Header>, I>>(base?: I): Header {\n return Header.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Header>, I>>(object: I): Header {\n const message = createBaseHeader();\n message.ts = object.ts ?? undefined;\n return message;\n },\n};\n\nfunction createBaseHeartbeat(): Heartbeat {\n return { count: 0 };\n}\n\nexport const Heartbeat: MessageFns<Heartbeat> = {\n encode(message: Heartbeat, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.count !== 0) {\n writer.uint32(8).uint64(message.count);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Heartbeat {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeartbeat();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.count = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Heartbeat {\n return { count: isSet(object.count) ? globalThis.Number(object.count) : 0 };\n },\n\n toJSON(message: Heartbeat): unknown {\n const obj: any = {};\n if (message.count !== 0) {\n obj.count = Math.round(message.count);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Heartbeat>, I>>(base?: I): Heartbeat {\n return Heartbeat.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Heartbeat>, I>>(object: I): Heartbeat {\n const message = createBaseHeartbeat();\n message.count = object.count ?? 0;\n return message;\n },\n};\n\nfunction createBaseSocket(): Socket {\n return { ip: \"\", port: 0 };\n}\n\nexport const Socket: MessageFns<Socket> = {\n encode(message: Socket, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ip !== \"\") {\n writer.uint32(10).string(message.ip);\n }\n if (message.port !== 0) {\n writer.uint32(16).int64(message.port);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Socket {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSocket();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ip = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.port = longToNumber(reader.int64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Socket {\n return {\n ip: isSet(object.ip) ? globalThis.String(object.ip) : \"\",\n port: isSet(object.port) ? globalThis.Number(object.port) : 0,\n };\n },\n\n toJSON(message: Socket): unknown {\n const obj: any = {};\n if (message.ip !== \"\") {\n obj.ip = message.ip;\n }\n if (message.port !== 0) {\n obj.port = Math.round(message.port);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Socket>, I>>(base?: I): Socket {\n return Socket.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Socket>, I>>(object: I): Socket {\n const message = createBaseSocket();\n message.ip = object.ip ?? \"\";\n message.port = object.port ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin ? T\n : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000);\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = (t.seconds || 0) * 1_000;\n millis += (t.nanos || 0) / 1_000_000;\n return new globalThis.Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Date {\n if (o instanceof globalThis.Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new globalThis.Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns<T> {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;\n fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;\n}\n"],"mappings":"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","names":["Client","CommitmentLevel","SubscribeRequestFilterAccounts","SubscribeRequestFilterSlots","SubscribeRequestFilterTransactions","BinaryReader","BinaryWriter","BinaryReader","BinaryWriter","BinaryWriter","BinaryReader","CommitmentLevel","BinaryWriter","BinaryReader","isSet","BinaryWriter","BinaryReader","isSet","longToNumber","longToNumber","isSet","Metadata","require"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/generated/shredstream.ts","../src/generated/google/protobuf/timestamp.ts","../src/generated/shared.ts"],"sourcesContent":["import Client, {\n CommitmentLevel,\n SubscribeRequestAccountsDataSlice,\n SubscribeRequestFilterAccounts,\n SubscribeRequestFilterBlocks,\n SubscribeRequestFilterBlocksMeta,\n SubscribeRequestFilterEntry,\n SubscribeRequestFilterSlots,\n SubscribeRequestFilterTransactions,\n} from '@triton-one/yellowstone-grpc'\nimport bs58 from 'bs58'\nexport {\n bs58,\n Client as GeyserClient,\n CommitmentLevel,\n SubscribeRequestAccountsDataSlice,\n SubscribeRequestFilterAccounts,\n SubscribeRequestFilterBlocks,\n SubscribeRequestFilterBlocksMeta,\n SubscribeRequestFilterEntry,\n SubscribeRequestFilterSlots,\n SubscribeRequestFilterTransactions,\n}\n\nexport {\n CommitmentLevel as ShredsCommitmentLevel,\n ShredstreamProxyClient,\n ShredstreamClient,\n SubscribeEntriesRequest as ShredsSubscribeEntriesRequestFns,\n Entry as ShredsEntryFns,\n} from './generated/shredstream'\n\nexport type {\n SubscribeEntriesRequest as ShredsSubscribeEntriesRequest,\n SubscribeRequestFilterAccounts as ShredsSubscribeRequestFilterAccounts,\n SubscribeRequestFilterTransactions as ShredsSubscribeRequestFilterTransactions,\n SubscribeRequestFilterSlots as ShredsSubscribeRequestFilterSlots,\n Entry as ShredsEntry,\n} from './generated/shredstream'\n\nexport { credentials, Metadata } from '@grpc/grpc-js'\n\nimport { createRequire } from 'node:module'\nconst require = createRequire(import.meta.url)\nconst { decodeSolanaEntries } = require('@validators-dao/solana-entry-decoder')\n\nconst { ShredsClient } = require('@validators-dao/solana-shreds-client')\n\nenum ShredsClientCommitmentLevel {\n Processed = 'Processed',\n Finalized = 'Finalized',\n Confirmed = 'Confirmed',\n}\n\nexport { decodeSolanaEntries, ShredsClient, ShredsClientCommitmentLevel }\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.7.2\n// protoc v3.19.1\n// source: shredstream.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport {\n type CallOptions,\n ChannelCredentials,\n Client,\n type ClientOptions,\n type ClientReadableStream,\n type ClientUnaryCall,\n type handleServerStreamingCall,\n type handleUnaryCall,\n makeGenericClientConstructor,\n Metadata,\n type ServiceError,\n type UntypedServiceImplementation,\n} from \"@grpc/grpc-js\";\nimport { Timestamp } from \"./google/protobuf/timestamp\";\nimport { Socket } from \"./shared\";\n\nexport const protobufPackage = \"shredstream\";\n\nexport enum CommitmentLevel {\n PROCESSED = 0,\n CONFIRMED = 1,\n FINALIZED = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function commitmentLevelFromJSON(object: any): CommitmentLevel {\n switch (object) {\n case 0:\n case \"PROCESSED\":\n return CommitmentLevel.PROCESSED;\n case 1:\n case \"CONFIRMED\":\n return CommitmentLevel.CONFIRMED;\n case 2:\n case \"FINALIZED\":\n return CommitmentLevel.FINALIZED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CommitmentLevel.UNRECOGNIZED;\n }\n}\n\nexport function commitmentLevelToJSON(object: CommitmentLevel): string {\n switch (object) {\n case CommitmentLevel.PROCESSED:\n return \"PROCESSED\";\n case CommitmentLevel.CONFIRMED:\n return \"CONFIRMED\";\n case CommitmentLevel.FINALIZED:\n return \"FINALIZED\";\n case CommitmentLevel.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport interface Heartbeat {\n /**\n * don't trust IP:PORT from tcp header since it can be tampered over the wire\n * `socket.ip` must match incoming packet's ip. this prevents spamming an unwitting destination\n */\n socket:\n | Socket\n | undefined;\n /**\n * regions for shredstream proxy to receive shreds from\n * list of valid regions: https://docs.jito.wtf/lowlatencytxnsend/#api\n */\n regions: string[];\n}\n\nexport interface HeartbeatResponse {\n /** client must respond within `ttl_ms` to keep stream alive */\n ttlMs: number;\n}\n\nexport interface TraceShred {\n /** source region, one of: https://docs.jito.wtf/lowlatencytxnsend/#api */\n region: string;\n /** timestamp of creation */\n createdAt:\n | Date\n | undefined;\n /** monotonically increases, resets upon service restart */\n seqNum: number;\n}\n\nexport interface SubscribeEntriesRequest {\n accounts: { [key: string]: SubscribeRequestFilterAccounts };\n transactions: { [key: string]: SubscribeRequestFilterTransactions };\n slots: { [key: string]: SubscribeRequestFilterSlots };\n commitment?: CommitmentLevel | undefined;\n}\n\nexport interface SubscribeEntriesRequest_AccountsEntry {\n key: string;\n value: SubscribeRequestFilterAccounts | undefined;\n}\n\nexport interface SubscribeEntriesRequest_TransactionsEntry {\n key: string;\n value: SubscribeRequestFilterTransactions | undefined;\n}\n\nexport interface SubscribeEntriesRequest_SlotsEntry {\n key: string;\n value: SubscribeRequestFilterSlots | undefined;\n}\n\nexport interface SubscribeRequestFilterAccounts {\n account: string[];\n owner: string[];\n filters: SubscribeRequestFilterAccountsFilter[];\n nonemptyTxnSignature?: boolean | undefined;\n}\n\nexport interface SubscribeRequestFilterAccountsFilter {\n memcmp?: SubscribeRequestFilterAccountsFilterMemcmp | undefined;\n datasize?: number | undefined;\n tokenAccountState?: boolean | undefined;\n lamports?: SubscribeRequestFilterAccountsFilterLamports | undefined;\n}\n\nexport interface SubscribeRequestFilterAccountsFilterMemcmp {\n offset: number;\n bytes?: Uint8Array | undefined;\n base58?: string | undefined;\n base64?: string | undefined;\n}\n\nexport interface SubscribeRequestFilterAccountsFilterLamports {\n eq?: number | undefined;\n ne?: number | undefined;\n lt?: number | undefined;\n gt?: number | undefined;\n}\n\nexport interface SubscribeRequestFilterSlots {\n filterByCommitment?: boolean | undefined;\n interslotUpdates?: boolean | undefined;\n}\n\nexport interface SubscribeRequestFilterTransactions {\n accountInclude: string[];\n accountExclude: string[];\n accountRequired: string[];\n}\n\nexport interface Entry {\n /** the slot that the entry is from */\n slot: number;\n /** Serialized bytes of Vec<Entry>: https://docs.rs/solana-entry/latest/solana_entry/entry/struct.Entry.html */\n entries: Uint8Array;\n}\n\nfunction createBaseHeartbeat(): Heartbeat {\n return { socket: undefined, regions: [] };\n}\n\nexport const Heartbeat: MessageFns<Heartbeat> = {\n encode(message: Heartbeat, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.socket !== undefined) {\n Socket.encode(message.socket, writer.uint32(10).fork()).join();\n }\n for (const v of message.regions) {\n writer.uint32(18).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Heartbeat {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeartbeat();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.socket = Socket.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.regions.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Heartbeat {\n return {\n socket: isSet(object.socket) ? Socket.fromJSON(object.socket) : undefined,\n regions: globalThis.Array.isArray(object?.regions) ? object.regions.map((e: any) => globalThis.String(e)) : [],\n };\n },\n\n toJSON(message: Heartbeat): unknown {\n const obj: any = {};\n if (message.socket !== undefined) {\n obj.socket = Socket.toJSON(message.socket);\n }\n if (message.regions?.length) {\n obj.regions = message.regions;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Heartbeat>, I>>(base?: I): Heartbeat {\n return Heartbeat.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Heartbeat>, I>>(object: I): Heartbeat {\n const message = createBaseHeartbeat();\n message.socket = (object.socket !== undefined && object.socket !== null)\n ? Socket.fromPartial(object.socket)\n : undefined;\n message.regions = object.regions?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseHeartbeatResponse(): HeartbeatResponse {\n return { ttlMs: 0 };\n}\n\nexport const HeartbeatResponse: MessageFns<HeartbeatResponse> = {\n encode(message: HeartbeatResponse, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ttlMs !== 0) {\n writer.uint32(8).uint32(message.ttlMs);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): HeartbeatResponse {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeartbeatResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.ttlMs = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): HeartbeatResponse {\n return { ttlMs: isSet(object.ttlMs) ? globalThis.Number(object.ttlMs) : 0 };\n },\n\n toJSON(message: HeartbeatResponse): unknown {\n const obj: any = {};\n if (message.ttlMs !== 0) {\n obj.ttlMs = Math.round(message.ttlMs);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<HeartbeatResponse>, I>>(base?: I): HeartbeatResponse {\n return HeartbeatResponse.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<HeartbeatResponse>, I>>(object: I): HeartbeatResponse {\n const message = createBaseHeartbeatResponse();\n message.ttlMs = object.ttlMs ?? 0;\n return message;\n },\n};\n\nfunction createBaseTraceShred(): TraceShred {\n return { region: \"\", createdAt: undefined, seqNum: 0 };\n}\n\nexport const TraceShred: MessageFns<TraceShred> = {\n encode(message: TraceShred, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.region !== \"\") {\n writer.uint32(10).string(message.region);\n }\n if (message.createdAt !== undefined) {\n Timestamp.encode(toTimestamp(message.createdAt), writer.uint32(18).fork()).join();\n }\n if (message.seqNum !== 0) {\n writer.uint32(24).uint32(message.seqNum);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): TraceShred {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTraceShred();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.region = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.createdAt = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.seqNum = reader.uint32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): TraceShred {\n return {\n region: isSet(object.region) ? globalThis.String(object.region) : \"\",\n createdAt: isSet(object.createdAt) ? fromJsonTimestamp(object.createdAt) : undefined,\n seqNum: isSet(object.seqNum) ? globalThis.Number(object.seqNum) : 0,\n };\n },\n\n toJSON(message: TraceShred): unknown {\n const obj: any = {};\n if (message.region !== \"\") {\n obj.region = message.region;\n }\n if (message.createdAt !== undefined) {\n obj.createdAt = message.createdAt.toISOString();\n }\n if (message.seqNum !== 0) {\n obj.seqNum = Math.round(message.seqNum);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<TraceShred>, I>>(base?: I): TraceShred {\n return TraceShred.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<TraceShred>, I>>(object: I): TraceShred {\n const message = createBaseTraceShred();\n message.region = object.region ?? \"\";\n message.createdAt = object.createdAt ?? undefined;\n message.seqNum = object.seqNum ?? 0;\n return message;\n },\n};\n\nfunction createBaseSubscribeEntriesRequest(): SubscribeEntriesRequest {\n return { accounts: {}, transactions: {}, slots: {}, commitment: undefined };\n}\n\nexport const SubscribeEntriesRequest: MessageFns<SubscribeEntriesRequest> = {\n encode(message: SubscribeEntriesRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n Object.entries(message.accounts).forEach(([key, value]) => {\n SubscribeEntriesRequest_AccountsEntry.encode({ key: key as any, value }, writer.uint32(10).fork()).join();\n });\n Object.entries(message.transactions).forEach(([key, value]) => {\n SubscribeEntriesRequest_TransactionsEntry.encode({ key: key as any, value }, writer.uint32(26).fork()).join();\n });\n Object.entries(message.slots).forEach(([key, value]) => {\n SubscribeEntriesRequest_SlotsEntry.encode({ key: key as any, value }, writer.uint32(18).fork()).join();\n });\n if (message.commitment !== undefined) {\n writer.uint32(48).int32(message.commitment);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeEntriesRequest {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeEntriesRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n const entry1 = SubscribeEntriesRequest_AccountsEntry.decode(reader, reader.uint32());\n if (entry1.value !== undefined) {\n message.accounts[entry1.key] = entry1.value;\n }\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n const entry3 = SubscribeEntriesRequest_TransactionsEntry.decode(reader, reader.uint32());\n if (entry3.value !== undefined) {\n message.transactions[entry3.key] = entry3.value;\n }\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n const entry2 = SubscribeEntriesRequest_SlotsEntry.decode(reader, reader.uint32());\n if (entry2.value !== undefined) {\n message.slots[entry2.key] = entry2.value;\n }\n continue;\n }\n case 6: {\n if (tag !== 48) {\n break;\n }\n\n message.commitment = reader.int32() as any;\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeEntriesRequest {\n return {\n accounts: isObject(object.accounts)\n ? Object.entries(object.accounts).reduce<{ [key: string]: SubscribeRequestFilterAccounts }>(\n (acc, [key, value]) => {\n acc[key] = SubscribeRequestFilterAccounts.fromJSON(value);\n return acc;\n },\n {},\n )\n : {},\n transactions: isObject(object.transactions)\n ? Object.entries(object.transactions).reduce<{ [key: string]: SubscribeRequestFilterTransactions }>(\n (acc, [key, value]) => {\n acc[key] = SubscribeRequestFilterTransactions.fromJSON(value);\n return acc;\n },\n {},\n )\n : {},\n slots: isObject(object.slots)\n ? Object.entries(object.slots).reduce<{ [key: string]: SubscribeRequestFilterSlots }>((acc, [key, value]) => {\n acc[key] = SubscribeRequestFilterSlots.fromJSON(value);\n return acc;\n }, {})\n : {},\n commitment: isSet(object.commitment) ? commitmentLevelFromJSON(object.commitment) : undefined,\n };\n },\n\n toJSON(message: SubscribeEntriesRequest): unknown {\n const obj: any = {};\n if (message.accounts) {\n const entries = Object.entries(message.accounts);\n if (entries.length > 0) {\n obj.accounts = {};\n entries.forEach(([k, v]) => {\n obj.accounts[k] = SubscribeRequestFilterAccounts.toJSON(v);\n });\n }\n }\n if (message.transactions) {\n const entries = Object.entries(message.transactions);\n if (entries.length > 0) {\n obj.transactions = {};\n entries.forEach(([k, v]) => {\n obj.transactions[k] = SubscribeRequestFilterTransactions.toJSON(v);\n });\n }\n }\n if (message.slots) {\n const entries = Object.entries(message.slots);\n if (entries.length > 0) {\n obj.slots = {};\n entries.forEach(([k, v]) => {\n obj.slots[k] = SubscribeRequestFilterSlots.toJSON(v);\n });\n }\n }\n if (message.commitment !== undefined) {\n obj.commitment = commitmentLevelToJSON(message.commitment);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeEntriesRequest>, I>>(base?: I): SubscribeEntriesRequest {\n return SubscribeEntriesRequest.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeEntriesRequest>, I>>(object: I): SubscribeEntriesRequest {\n const message = createBaseSubscribeEntriesRequest();\n message.accounts = Object.entries(object.accounts ?? {}).reduce<{ [key: string]: SubscribeRequestFilterAccounts }>(\n (acc, [key, value]) => {\n if (value !== undefined) {\n acc[key] = SubscribeRequestFilterAccounts.fromPartial(value);\n }\n return acc;\n },\n {},\n );\n message.transactions = Object.entries(object.transactions ?? {}).reduce<\n { [key: string]: SubscribeRequestFilterTransactions }\n >((acc, [key, value]) => {\n if (value !== undefined) {\n acc[key] = SubscribeRequestFilterTransactions.fromPartial(value);\n }\n return acc;\n }, {});\n message.slots = Object.entries(object.slots ?? {}).reduce<{ [key: string]: SubscribeRequestFilterSlots }>(\n (acc, [key, value]) => {\n if (value !== undefined) {\n acc[key] = SubscribeRequestFilterSlots.fromPartial(value);\n }\n return acc;\n },\n {},\n );\n message.commitment = object.commitment ?? undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeEntriesRequest_AccountsEntry(): SubscribeEntriesRequest_AccountsEntry {\n return { key: \"\", value: undefined };\n}\n\nexport const SubscribeEntriesRequest_AccountsEntry: MessageFns<SubscribeEntriesRequest_AccountsEntry> = {\n encode(message: SubscribeEntriesRequest_AccountsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== undefined) {\n SubscribeRequestFilterAccounts.encode(message.value, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeEntriesRequest_AccountsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeEntriesRequest_AccountsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = SubscribeRequestFilterAccounts.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeEntriesRequest_AccountsEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? SubscribeRequestFilterAccounts.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: SubscribeEntriesRequest_AccountsEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== undefined) {\n obj.value = SubscribeRequestFilterAccounts.toJSON(message.value);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeEntriesRequest_AccountsEntry>, I>>(\n base?: I,\n ): SubscribeEntriesRequest_AccountsEntry {\n return SubscribeEntriesRequest_AccountsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeEntriesRequest_AccountsEntry>, I>>(\n object: I,\n ): SubscribeEntriesRequest_AccountsEntry {\n const message = createBaseSubscribeEntriesRequest_AccountsEntry();\n message.key = object.key ?? \"\";\n message.value = (object.value !== undefined && object.value !== null)\n ? SubscribeRequestFilterAccounts.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeEntriesRequest_TransactionsEntry(): SubscribeEntriesRequest_TransactionsEntry {\n return { key: \"\", value: undefined };\n}\n\nexport const SubscribeEntriesRequest_TransactionsEntry: MessageFns<SubscribeEntriesRequest_TransactionsEntry> = {\n encode(message: SubscribeEntriesRequest_TransactionsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== undefined) {\n SubscribeRequestFilterTransactions.encode(message.value, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeEntriesRequest_TransactionsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeEntriesRequest_TransactionsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = SubscribeRequestFilterTransactions.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeEntriesRequest_TransactionsEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? SubscribeRequestFilterTransactions.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: SubscribeEntriesRequest_TransactionsEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== undefined) {\n obj.value = SubscribeRequestFilterTransactions.toJSON(message.value);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeEntriesRequest_TransactionsEntry>, I>>(\n base?: I,\n ): SubscribeEntriesRequest_TransactionsEntry {\n return SubscribeEntriesRequest_TransactionsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeEntriesRequest_TransactionsEntry>, I>>(\n object: I,\n ): SubscribeEntriesRequest_TransactionsEntry {\n const message = createBaseSubscribeEntriesRequest_TransactionsEntry();\n message.key = object.key ?? \"\";\n message.value = (object.value !== undefined && object.value !== null)\n ? SubscribeRequestFilterTransactions.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeEntriesRequest_SlotsEntry(): SubscribeEntriesRequest_SlotsEntry {\n return { key: \"\", value: undefined };\n}\n\nexport const SubscribeEntriesRequest_SlotsEntry: MessageFns<SubscribeEntriesRequest_SlotsEntry> = {\n encode(message: SubscribeEntriesRequest_SlotsEntry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== undefined) {\n SubscribeRequestFilterSlots.encode(message.value, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeEntriesRequest_SlotsEntry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeEntriesRequest_SlotsEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.key = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.value = SubscribeRequestFilterSlots.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeEntriesRequest_SlotsEntry {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? SubscribeRequestFilterSlots.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: SubscribeEntriesRequest_SlotsEntry): unknown {\n const obj: any = {};\n if (message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== undefined) {\n obj.value = SubscribeRequestFilterSlots.toJSON(message.value);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeEntriesRequest_SlotsEntry>, I>>(\n base?: I,\n ): SubscribeEntriesRequest_SlotsEntry {\n return SubscribeEntriesRequest_SlotsEntry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeEntriesRequest_SlotsEntry>, I>>(\n object: I,\n ): SubscribeEntriesRequest_SlotsEntry {\n const message = createBaseSubscribeEntriesRequest_SlotsEntry();\n message.key = object.key ?? \"\";\n message.value = (object.value !== undefined && object.value !== null)\n ? SubscribeRequestFilterSlots.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterAccounts(): SubscribeRequestFilterAccounts {\n return { account: [], owner: [], filters: [], nonemptyTxnSignature: undefined };\n}\n\nexport const SubscribeRequestFilterAccounts: MessageFns<SubscribeRequestFilterAccounts> = {\n encode(message: SubscribeRequestFilterAccounts, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.account) {\n writer.uint32(18).string(v!);\n }\n for (const v of message.owner) {\n writer.uint32(26).string(v!);\n }\n for (const v of message.filters) {\n SubscribeRequestFilterAccountsFilter.encode(v!, writer.uint32(34).fork()).join();\n }\n if (message.nonemptyTxnSignature !== undefined) {\n writer.uint32(40).bool(message.nonemptyTxnSignature);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterAccounts {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterAccounts();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.account.push(reader.string());\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.owner.push(reader.string());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.filters.push(SubscribeRequestFilterAccountsFilter.decode(reader, reader.uint32()));\n continue;\n }\n case 5: {\n if (tag !== 40) {\n break;\n }\n\n message.nonemptyTxnSignature = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterAccounts {\n return {\n account: globalThis.Array.isArray(object?.account) ? object.account.map((e: any) => globalThis.String(e)) : [],\n owner: globalThis.Array.isArray(object?.owner) ? object.owner.map((e: any) => globalThis.String(e)) : [],\n filters: globalThis.Array.isArray(object?.filters)\n ? object.filters.map((e: any) => SubscribeRequestFilterAccountsFilter.fromJSON(e))\n : [],\n nonemptyTxnSignature: isSet(object.nonemptyTxnSignature)\n ? globalThis.Boolean(object.nonemptyTxnSignature)\n : undefined,\n };\n },\n\n toJSON(message: SubscribeRequestFilterAccounts): unknown {\n const obj: any = {};\n if (message.account?.length) {\n obj.account = message.account;\n }\n if (message.owner?.length) {\n obj.owner = message.owner;\n }\n if (message.filters?.length) {\n obj.filters = message.filters.map((e) => SubscribeRequestFilterAccountsFilter.toJSON(e));\n }\n if (message.nonemptyTxnSignature !== undefined) {\n obj.nonemptyTxnSignature = message.nonemptyTxnSignature;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterAccounts>, I>>(base?: I): SubscribeRequestFilterAccounts {\n return SubscribeRequestFilterAccounts.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterAccounts>, I>>(\n object: I,\n ): SubscribeRequestFilterAccounts {\n const message = createBaseSubscribeRequestFilterAccounts();\n message.account = object.account?.map((e) => e) || [];\n message.owner = object.owner?.map((e) => e) || [];\n message.filters = object.filters?.map((e) => SubscribeRequestFilterAccountsFilter.fromPartial(e)) || [];\n message.nonemptyTxnSignature = object.nonemptyTxnSignature ?? undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterAccountsFilter(): SubscribeRequestFilterAccountsFilter {\n return { memcmp: undefined, datasize: undefined, tokenAccountState: undefined, lamports: undefined };\n}\n\nexport const SubscribeRequestFilterAccountsFilter: MessageFns<SubscribeRequestFilterAccountsFilter> = {\n encode(message: SubscribeRequestFilterAccountsFilter, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.memcmp !== undefined) {\n SubscribeRequestFilterAccountsFilterMemcmp.encode(message.memcmp, writer.uint32(10).fork()).join();\n }\n if (message.datasize !== undefined) {\n writer.uint32(16).uint64(message.datasize);\n }\n if (message.tokenAccountState !== undefined) {\n writer.uint32(24).bool(message.tokenAccountState);\n }\n if (message.lamports !== undefined) {\n SubscribeRequestFilterAccountsFilterLamports.encode(message.lamports, writer.uint32(34).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterAccountsFilter {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterAccountsFilter();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.memcmp = SubscribeRequestFilterAccountsFilterMemcmp.decode(reader, reader.uint32());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.datasize = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.tokenAccountState = reader.bool();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.lamports = SubscribeRequestFilterAccountsFilterLamports.decode(reader, reader.uint32());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterAccountsFilter {\n return {\n memcmp: isSet(object.memcmp) ? SubscribeRequestFilterAccountsFilterMemcmp.fromJSON(object.memcmp) : undefined,\n datasize: isSet(object.datasize) ? globalThis.Number(object.datasize) : undefined,\n tokenAccountState: isSet(object.tokenAccountState) ? globalThis.Boolean(object.tokenAccountState) : undefined,\n lamports: isSet(object.lamports)\n ? SubscribeRequestFilterAccountsFilterLamports.fromJSON(object.lamports)\n : undefined,\n };\n },\n\n toJSON(message: SubscribeRequestFilterAccountsFilter): unknown {\n const obj: any = {};\n if (message.memcmp !== undefined) {\n obj.memcmp = SubscribeRequestFilterAccountsFilterMemcmp.toJSON(message.memcmp);\n }\n if (message.datasize !== undefined) {\n obj.datasize = Math.round(message.datasize);\n }\n if (message.tokenAccountState !== undefined) {\n obj.tokenAccountState = message.tokenAccountState;\n }\n if (message.lamports !== undefined) {\n obj.lamports = SubscribeRequestFilterAccountsFilterLamports.toJSON(message.lamports);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilter>, I>>(\n base?: I,\n ): SubscribeRequestFilterAccountsFilter {\n return SubscribeRequestFilterAccountsFilter.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilter>, I>>(\n object: I,\n ): SubscribeRequestFilterAccountsFilter {\n const message = createBaseSubscribeRequestFilterAccountsFilter();\n message.memcmp = (object.memcmp !== undefined && object.memcmp !== null)\n ? SubscribeRequestFilterAccountsFilterMemcmp.fromPartial(object.memcmp)\n : undefined;\n message.datasize = object.datasize ?? undefined;\n message.tokenAccountState = object.tokenAccountState ?? undefined;\n message.lamports = (object.lamports !== undefined && object.lamports !== null)\n ? SubscribeRequestFilterAccountsFilterLamports.fromPartial(object.lamports)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterAccountsFilterMemcmp(): SubscribeRequestFilterAccountsFilterMemcmp {\n return { offset: 0, bytes: undefined, base58: undefined, base64: undefined };\n}\n\nexport const SubscribeRequestFilterAccountsFilterMemcmp: MessageFns<SubscribeRequestFilterAccountsFilterMemcmp> = {\n encode(message: SubscribeRequestFilterAccountsFilterMemcmp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.offset !== 0) {\n writer.uint32(8).uint64(message.offset);\n }\n if (message.bytes !== undefined) {\n writer.uint32(18).bytes(message.bytes);\n }\n if (message.base58 !== undefined) {\n writer.uint32(26).string(message.base58);\n }\n if (message.base64 !== undefined) {\n writer.uint32(34).string(message.base64);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterAccountsFilterMemcmp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterAccountsFilterMemcmp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.offset = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.bytes = reader.bytes();\n continue;\n }\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.base58 = reader.string();\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.base64 = reader.string();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterAccountsFilterMemcmp {\n return {\n offset: isSet(object.offset) ? globalThis.Number(object.offset) : 0,\n bytes: isSet(object.bytes) ? bytesFromBase64(object.bytes) : undefined,\n base58: isSet(object.base58) ? globalThis.String(object.base58) : undefined,\n base64: isSet(object.base64) ? globalThis.String(object.base64) : undefined,\n };\n },\n\n toJSON(message: SubscribeRequestFilterAccountsFilterMemcmp): unknown {\n const obj: any = {};\n if (message.offset !== 0) {\n obj.offset = Math.round(message.offset);\n }\n if (message.bytes !== undefined) {\n obj.bytes = base64FromBytes(message.bytes);\n }\n if (message.base58 !== undefined) {\n obj.base58 = message.base58;\n }\n if (message.base64 !== undefined) {\n obj.base64 = message.base64;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilterMemcmp>, I>>(\n base?: I,\n ): SubscribeRequestFilterAccountsFilterMemcmp {\n return SubscribeRequestFilterAccountsFilterMemcmp.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilterMemcmp>, I>>(\n object: I,\n ): SubscribeRequestFilterAccountsFilterMemcmp {\n const message = createBaseSubscribeRequestFilterAccountsFilterMemcmp();\n message.offset = object.offset ?? 0;\n message.bytes = object.bytes ?? undefined;\n message.base58 = object.base58 ?? undefined;\n message.base64 = object.base64 ?? undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterAccountsFilterLamports(): SubscribeRequestFilterAccountsFilterLamports {\n return { eq: undefined, ne: undefined, lt: undefined, gt: undefined };\n}\n\nexport const SubscribeRequestFilterAccountsFilterLamports: MessageFns<SubscribeRequestFilterAccountsFilterLamports> = {\n encode(\n message: SubscribeRequestFilterAccountsFilterLamports,\n writer: BinaryWriter = new BinaryWriter(),\n ): BinaryWriter {\n if (message.eq !== undefined) {\n writer.uint32(8).uint64(message.eq);\n }\n if (message.ne !== undefined) {\n writer.uint32(16).uint64(message.ne);\n }\n if (message.lt !== undefined) {\n writer.uint32(24).uint64(message.lt);\n }\n if (message.gt !== undefined) {\n writer.uint32(32).uint64(message.gt);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterAccountsFilterLamports {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterAccountsFilterLamports();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.eq = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.ne = longToNumber(reader.uint64());\n continue;\n }\n case 3: {\n if (tag !== 24) {\n break;\n }\n\n message.lt = longToNumber(reader.uint64());\n continue;\n }\n case 4: {\n if (tag !== 32) {\n break;\n }\n\n message.gt = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterAccountsFilterLamports {\n return {\n eq: isSet(object.eq) ? globalThis.Number(object.eq) : undefined,\n ne: isSet(object.ne) ? globalThis.Number(object.ne) : undefined,\n lt: isSet(object.lt) ? globalThis.Number(object.lt) : undefined,\n gt: isSet(object.gt) ? globalThis.Number(object.gt) : undefined,\n };\n },\n\n toJSON(message: SubscribeRequestFilterAccountsFilterLamports): unknown {\n const obj: any = {};\n if (message.eq !== undefined) {\n obj.eq = Math.round(message.eq);\n }\n if (message.ne !== undefined) {\n obj.ne = Math.round(message.ne);\n }\n if (message.lt !== undefined) {\n obj.lt = Math.round(message.lt);\n }\n if (message.gt !== undefined) {\n obj.gt = Math.round(message.gt);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilterLamports>, I>>(\n base?: I,\n ): SubscribeRequestFilterAccountsFilterLamports {\n return SubscribeRequestFilterAccountsFilterLamports.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterAccountsFilterLamports>, I>>(\n object: I,\n ): SubscribeRequestFilterAccountsFilterLamports {\n const message = createBaseSubscribeRequestFilterAccountsFilterLamports();\n message.eq = object.eq ?? undefined;\n message.ne = object.ne ?? undefined;\n message.lt = object.lt ?? undefined;\n message.gt = object.gt ?? undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterSlots(): SubscribeRequestFilterSlots {\n return { filterByCommitment: undefined, interslotUpdates: undefined };\n}\n\nexport const SubscribeRequestFilterSlots: MessageFns<SubscribeRequestFilterSlots> = {\n encode(message: SubscribeRequestFilterSlots, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.filterByCommitment !== undefined) {\n writer.uint32(8).bool(message.filterByCommitment);\n }\n if (message.interslotUpdates !== undefined) {\n writer.uint32(16).bool(message.interslotUpdates);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterSlots {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterSlots();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.filterByCommitment = reader.bool();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.interslotUpdates = reader.bool();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterSlots {\n return {\n filterByCommitment: isSet(object.filterByCommitment) ? globalThis.Boolean(object.filterByCommitment) : undefined,\n interslotUpdates: isSet(object.interslotUpdates) ? globalThis.Boolean(object.interslotUpdates) : undefined,\n };\n },\n\n toJSON(message: SubscribeRequestFilterSlots): unknown {\n const obj: any = {};\n if (message.filterByCommitment !== undefined) {\n obj.filterByCommitment = message.filterByCommitment;\n }\n if (message.interslotUpdates !== undefined) {\n obj.interslotUpdates = message.interslotUpdates;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterSlots>, I>>(base?: I): SubscribeRequestFilterSlots {\n return SubscribeRequestFilterSlots.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterSlots>, I>>(object: I): SubscribeRequestFilterSlots {\n const message = createBaseSubscribeRequestFilterSlots();\n message.filterByCommitment = object.filterByCommitment ?? undefined;\n message.interslotUpdates = object.interslotUpdates ?? undefined;\n return message;\n },\n};\n\nfunction createBaseSubscribeRequestFilterTransactions(): SubscribeRequestFilterTransactions {\n return { accountInclude: [], accountExclude: [], accountRequired: [] };\n}\n\nexport const SubscribeRequestFilterTransactions: MessageFns<SubscribeRequestFilterTransactions> = {\n encode(message: SubscribeRequestFilterTransactions, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n for (const v of message.accountInclude) {\n writer.uint32(26).string(v!);\n }\n for (const v of message.accountExclude) {\n writer.uint32(34).string(v!);\n }\n for (const v of message.accountRequired) {\n writer.uint32(50).string(v!);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): SubscribeRequestFilterTransactions {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSubscribeRequestFilterTransactions();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 3: {\n if (tag !== 26) {\n break;\n }\n\n message.accountInclude.push(reader.string());\n continue;\n }\n case 4: {\n if (tag !== 34) {\n break;\n }\n\n message.accountExclude.push(reader.string());\n continue;\n }\n case 6: {\n if (tag !== 50) {\n break;\n }\n\n message.accountRequired.push(reader.string());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SubscribeRequestFilterTransactions {\n return {\n accountInclude: globalThis.Array.isArray(object?.accountInclude)\n ? object.accountInclude.map((e: any) => globalThis.String(e))\n : [],\n accountExclude: globalThis.Array.isArray(object?.accountExclude)\n ? object.accountExclude.map((e: any) => globalThis.String(e))\n : [],\n accountRequired: globalThis.Array.isArray(object?.accountRequired)\n ? object.accountRequired.map((e: any) => globalThis.String(e))\n : [],\n };\n },\n\n toJSON(message: SubscribeRequestFilterTransactions): unknown {\n const obj: any = {};\n if (message.accountInclude?.length) {\n obj.accountInclude = message.accountInclude;\n }\n if (message.accountExclude?.length) {\n obj.accountExclude = message.accountExclude;\n }\n if (message.accountRequired?.length) {\n obj.accountRequired = message.accountRequired;\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<SubscribeRequestFilterTransactions>, I>>(\n base?: I,\n ): SubscribeRequestFilterTransactions {\n return SubscribeRequestFilterTransactions.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<SubscribeRequestFilterTransactions>, I>>(\n object: I,\n ): SubscribeRequestFilterTransactions {\n const message = createBaseSubscribeRequestFilterTransactions();\n message.accountInclude = object.accountInclude?.map((e) => e) || [];\n message.accountExclude = object.accountExclude?.map((e) => e) || [];\n message.accountRequired = object.accountRequired?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseEntry(): Entry {\n return { slot: 0, entries: new Uint8Array(0) };\n}\n\nexport const Entry: MessageFns<Entry> = {\n encode(message: Entry, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.slot !== 0) {\n writer.uint32(8).uint64(message.slot);\n }\n if (message.entries.length !== 0) {\n writer.uint32(18).bytes(message.entries);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Entry {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEntry();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.slot = longToNumber(reader.uint64());\n continue;\n }\n case 2: {\n if (tag !== 18) {\n break;\n }\n\n message.entries = reader.bytes();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Entry {\n return {\n slot: isSet(object.slot) ? globalThis.Number(object.slot) : 0,\n entries: isSet(object.entries) ? bytesFromBase64(object.entries) : new Uint8Array(0),\n };\n },\n\n toJSON(message: Entry): unknown {\n const obj: any = {};\n if (message.slot !== 0) {\n obj.slot = Math.round(message.slot);\n }\n if (message.entries.length !== 0) {\n obj.entries = base64FromBytes(message.entries);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Entry>, I>>(base?: I): Entry {\n return Entry.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Entry>, I>>(object: I): Entry {\n const message = createBaseEntry();\n message.slot = object.slot ?? 0;\n message.entries = object.entries ?? new Uint8Array(0);\n return message;\n },\n};\n\nexport type ShredstreamService = typeof ShredstreamService;\nexport const ShredstreamService = {\n /** RPC endpoint to send heartbeats to keep shreds flowing */\n sendHeartbeat: {\n path: \"/shredstream.Shredstream/SendHeartbeat\",\n requestStream: false,\n responseStream: false,\n requestSerialize: (value: Heartbeat) => Buffer.from(Heartbeat.encode(value).finish()),\n requestDeserialize: (value: Buffer) => Heartbeat.decode(value),\n responseSerialize: (value: HeartbeatResponse) => Buffer.from(HeartbeatResponse.encode(value).finish()),\n responseDeserialize: (value: Buffer) => HeartbeatResponse.decode(value),\n },\n} as const;\n\nexport interface ShredstreamServer extends UntypedServiceImplementation {\n /** RPC endpoint to send heartbeats to keep shreds flowing */\n sendHeartbeat: handleUnaryCall<Heartbeat, HeartbeatResponse>;\n}\n\nexport interface ShredstreamClient extends Client {\n /** RPC endpoint to send heartbeats to keep shreds flowing */\n sendHeartbeat(\n request: Heartbeat,\n callback: (error: ServiceError | null, response: HeartbeatResponse) => void,\n ): ClientUnaryCall;\n sendHeartbeat(\n request: Heartbeat,\n metadata: Metadata,\n callback: (error: ServiceError | null, response: HeartbeatResponse) => void,\n ): ClientUnaryCall;\n sendHeartbeat(\n request: Heartbeat,\n metadata: Metadata,\n options: Partial<CallOptions>,\n callback: (error: ServiceError | null, response: HeartbeatResponse) => void,\n ): ClientUnaryCall;\n}\n\nexport const ShredstreamClient = makeGenericClientConstructor(\n ShredstreamService,\n \"shredstream.Shredstream\",\n) as unknown as {\n new (address: string, credentials: ChannelCredentials, options?: Partial<ClientOptions>): ShredstreamClient;\n service: typeof ShredstreamService;\n serviceName: string;\n};\n\nexport type ShredstreamProxyService = typeof ShredstreamProxyService;\nexport const ShredstreamProxyService = {\n subscribeEntries: {\n path: \"/shredstream.ShredstreamProxy/SubscribeEntries\",\n requestStream: false,\n responseStream: true,\n requestSerialize: (value: SubscribeEntriesRequest) => Buffer.from(SubscribeEntriesRequest.encode(value).finish()),\n requestDeserialize: (value: Buffer) => SubscribeEntriesRequest.decode(value),\n responseSerialize: (value: Entry) => Buffer.from(Entry.encode(value).finish()),\n responseDeserialize: (value: Buffer) => Entry.decode(value),\n },\n} as const;\n\nexport interface ShredstreamProxyServer extends UntypedServiceImplementation {\n subscribeEntries: handleServerStreamingCall<SubscribeEntriesRequest, Entry>;\n}\n\nexport interface ShredstreamProxyClient extends Client {\n subscribeEntries(request: SubscribeEntriesRequest, options?: Partial<CallOptions>): ClientReadableStream<Entry>;\n subscribeEntries(\n request: SubscribeEntriesRequest,\n metadata?: Metadata,\n options?: Partial<CallOptions>,\n ): ClientReadableStream<Entry>;\n}\n\nexport const ShredstreamProxyClient = makeGenericClientConstructor(\n ShredstreamProxyService,\n \"shredstream.ShredstreamProxy\",\n) as unknown as {\n new (address: string, credentials: ChannelCredentials, options?: Partial<ClientOptions>): ShredstreamProxyClient;\n service: typeof ShredstreamProxyService;\n serviceName: string;\n};\n\nfunction bytesFromBase64(b64: string): Uint8Array {\n if ((globalThis as any).Buffer) {\n return Uint8Array.from(globalThis.Buffer.from(b64, \"base64\"));\n } else {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n }\n}\n\nfunction base64FromBytes(arr: Uint8Array): string {\n if ((globalThis as any).Buffer) {\n return globalThis.Buffer.from(arr).toString(\"base64\");\n } else {\n const bin: string[] = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n }\n}\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin ? T\n : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000);\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = (t.seconds || 0) * 1_000;\n millis += (t.nanos || 0) / 1_000_000;\n return new globalThis.Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Date {\n if (o instanceof globalThis.Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new globalThis.Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isObject(value: any): boolean {\n return typeof value === \"object\" && value !== null;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns<T> {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;\n fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.7.2\n// protoc v3.19.1\n// source: google/protobuf/timestamp.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\n\nexport const protobufPackage = \"google.protobuf\";\n\n/**\n * A Timestamp represents a point in time independent of any time zone or local\n * calendar, encoded as a count of seconds and fractions of seconds at\n * nanosecond resolution. The count is relative to an epoch at UTC midnight on\n * January 1, 1970, in the proleptic Gregorian calendar which extends the\n * Gregorian calendar backwards to year one.\n *\n * All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n * second table is needed for interpretation, using a [24-hour linear\n * smear](https://developers.google.com/time/smear).\n *\n * The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n * restricting to that range, we ensure that we can convert to and from [RFC\n * 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n *\n * # Examples\n *\n * Example 1: Compute Timestamp from POSIX `time()`.\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(time(NULL));\n * timestamp.set_nanos(0);\n *\n * Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n *\n * struct timeval tv;\n * gettimeofday(&tv, NULL);\n *\n * Timestamp timestamp;\n * timestamp.set_seconds(tv.tv_sec);\n * timestamp.set_nanos(tv.tv_usec * 1000);\n *\n * Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n *\n * FILETIME ft;\n * GetSystemTimeAsFileTime(&ft);\n * UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;\n *\n * // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n * // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n * Timestamp timestamp;\n * timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n * timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n *\n * Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n *\n * long millis = System.currentTimeMillis();\n *\n * Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n * .setNanos((int) ((millis % 1000) * 1000000)).build();\n *\n * Example 5: Compute Timestamp from Java `Instant.now()`.\n *\n * Instant now = Instant.now();\n *\n * Timestamp timestamp =\n * Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n * .setNanos(now.getNano()).build();\n *\n * Example 6: Compute Timestamp from current time in Python.\n *\n * timestamp = Timestamp()\n * timestamp.GetCurrentTime()\n *\n * # JSON Mapping\n *\n * In JSON format, the Timestamp type is encoded as a string in the\n * [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n * format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n * where {year} is always expressed using four digits while {month}, {day},\n * {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n * seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n * are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n * is required. A proto3 JSON serializer should always use UTC (as indicated by\n * \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n * able to accept both UTC and other timezones (as indicated by an offset).\n *\n * For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n * 01:30 UTC on January 15, 2017.\n *\n * In JavaScript, one can convert a Date object to this format using the\n * standard\n * [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n * method. In Python, a standard `datetime.datetime` object can be converted\n * to this format using\n * [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n * the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n * the Joda Time's [`ISODateTimeFormat.dateTime()`](\n * http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D\n * ) to obtain a formatter capable of generating timestamps in this format.\n */\nexport interface Timestamp {\n /**\n * Represents seconds of UTC time since Unix epoch\n * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n * 9999-12-31T23:59:59Z inclusive.\n */\n seconds: number;\n /**\n * Non-negative fractions of a second at nanosecond resolution. Negative\n * second values with fractions must still have non-negative nanos values\n * that count forward in time. Must be from 0 to 999,999,999\n * inclusive.\n */\n nanos: number;\n}\n\nfunction createBaseTimestamp(): Timestamp {\n return { seconds: 0, nanos: 0 };\n}\n\nexport const Timestamp: MessageFns<Timestamp> = {\n encode(message: Timestamp, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.seconds !== 0) {\n writer.uint32(8).int64(message.seconds);\n }\n if (message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Timestamp {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTimestamp();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.seconds = longToNumber(reader.int64());\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.nanos = reader.int32();\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Timestamp {\n return {\n seconds: isSet(object.seconds) ? globalThis.Number(object.seconds) : 0,\n nanos: isSet(object.nanos) ? globalThis.Number(object.nanos) : 0,\n };\n },\n\n toJSON(message: Timestamp): unknown {\n const obj: any = {};\n if (message.seconds !== 0) {\n obj.seconds = Math.round(message.seconds);\n }\n if (message.nanos !== 0) {\n obj.nanos = Math.round(message.nanos);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Timestamp>, I>>(base?: I): Timestamp {\n return Timestamp.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Timestamp>, I>>(object: I): Timestamp {\n const message = createBaseTimestamp();\n message.seconds = object.seconds ?? 0;\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin ? T\n : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns<T> {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;\n fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.7.2\n// protoc v3.19.1\n// source: shared.proto\n\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { Timestamp } from \"./google/protobuf/timestamp\";\n\nexport const protobufPackage = \"shared\";\n\nexport interface Header {\n ts: Date | undefined;\n}\n\nexport interface Heartbeat {\n count: number;\n}\n\nexport interface Socket {\n ip: string;\n port: number;\n}\n\nfunction createBaseHeader(): Header {\n return { ts: undefined };\n}\n\nexport const Header: MessageFns<Header> = {\n encode(message: Header, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ts !== undefined) {\n Timestamp.encode(toTimestamp(message.ts), writer.uint32(10).fork()).join();\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Header {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ts = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Header {\n return { ts: isSet(object.ts) ? fromJsonTimestamp(object.ts) : undefined };\n },\n\n toJSON(message: Header): unknown {\n const obj: any = {};\n if (message.ts !== undefined) {\n obj.ts = message.ts.toISOString();\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Header>, I>>(base?: I): Header {\n return Header.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Header>, I>>(object: I): Header {\n const message = createBaseHeader();\n message.ts = object.ts ?? undefined;\n return message;\n },\n};\n\nfunction createBaseHeartbeat(): Heartbeat {\n return { count: 0 };\n}\n\nexport const Heartbeat: MessageFns<Heartbeat> = {\n encode(message: Heartbeat, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.count !== 0) {\n writer.uint32(8).uint64(message.count);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Heartbeat {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHeartbeat();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 8) {\n break;\n }\n\n message.count = longToNumber(reader.uint64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Heartbeat {\n return { count: isSet(object.count) ? globalThis.Number(object.count) : 0 };\n },\n\n toJSON(message: Heartbeat): unknown {\n const obj: any = {};\n if (message.count !== 0) {\n obj.count = Math.round(message.count);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Heartbeat>, I>>(base?: I): Heartbeat {\n return Heartbeat.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Heartbeat>, I>>(object: I): Heartbeat {\n const message = createBaseHeartbeat();\n message.count = object.count ?? 0;\n return message;\n },\n};\n\nfunction createBaseSocket(): Socket {\n return { ip: \"\", port: 0 };\n}\n\nexport const Socket: MessageFns<Socket> = {\n encode(message: Socket, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {\n if (message.ip !== \"\") {\n writer.uint32(10).string(message.ip);\n }\n if (message.port !== 0) {\n writer.uint32(16).int64(message.port);\n }\n return writer;\n },\n\n decode(input: BinaryReader | Uint8Array, length?: number): Socket {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSocket();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1: {\n if (tag !== 10) {\n break;\n }\n\n message.ip = reader.string();\n continue;\n }\n case 2: {\n if (tag !== 16) {\n break;\n }\n\n message.port = longToNumber(reader.int64());\n continue;\n }\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Socket {\n return {\n ip: isSet(object.ip) ? globalThis.String(object.ip) : \"\",\n port: isSet(object.port) ? globalThis.Number(object.port) : 0,\n };\n },\n\n toJSON(message: Socket): unknown {\n const obj: any = {};\n if (message.ip !== \"\") {\n obj.ip = message.ip;\n }\n if (message.port !== 0) {\n obj.port = Math.round(message.port);\n }\n return obj;\n },\n\n create<I extends Exact<DeepPartial<Socket>, I>>(base?: I): Socket {\n return Socket.fromPartial(base ?? ({} as any));\n },\n fromPartial<I extends Exact<DeepPartial<Socket>, I>>(object: I): Socket {\n const message = createBaseSocket();\n message.ip = object.ip ?? \"\";\n message.port = object.port ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;\n\nexport type DeepPartial<T> = T extends Builtin ? T\n : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>\n : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\ntype KeysOfUnion<T> = T extends T ? keyof T : never;\nexport type Exact<P, I extends P> = P extends Builtin ? P\n : P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = Math.trunc(date.getTime() / 1_000);\n const nanos = (date.getTime() % 1_000) * 1_000_000;\n return { seconds, nanos };\n}\n\nfunction fromTimestamp(t: Timestamp): Date {\n let millis = (t.seconds || 0) * 1_000;\n millis += (t.nanos || 0) / 1_000_000;\n return new globalThis.Date(millis);\n}\n\nfunction fromJsonTimestamp(o: any): Date {\n if (o instanceof globalThis.Date) {\n return o;\n } else if (typeof o === \"string\") {\n return new globalThis.Date(o);\n } else {\n return fromTimestamp(Timestamp.fromJSON(o));\n }\n}\n\nfunction longToNumber(int64: { toString(): string }): number {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n\nexport interface MessageFns<T> {\n encode(message: T, writer?: BinaryWriter): BinaryWriter;\n decode(input: BinaryReader | Uint8Array, length?: number): T;\n fromJSON(object: any): T;\n toJSON(message: T): unknown;\n create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;\n fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;\n}\n"],"mappings":"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","names":["Client","CommitmentLevel","SubscribeRequestFilterAccounts","SubscribeRequestFilterSlots","SubscribeRequestFilterTransactions","BinaryReader","BinaryWriter","BinaryReader","BinaryWriter","BinaryWriter","BinaryReader","CommitmentLevel","BinaryWriter","BinaryReader","isSet","BinaryWriter","BinaryReader","isSet","longToNumber","longToNumber","isSet","Metadata","require","ShredsClientCommitmentLevel"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@validators-dao/solana-stream-sdk",
3
3
  "description": "Solana Stream SDK by Validators DAO",
4
- "version": "0.7.0",
4
+ "version": "0.8.0",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -30,7 +30,8 @@
30
30
  "@solana/web3.js": "1.98.2",
31
31
  "@triton-one/yellowstone-grpc": "4.0.2",
32
32
  "bs58": "6.0.0",
33
- "@validators-dao/solana-entry-decoder": "2.2.0"
33
+ "@validators-dao/solana-entry-decoder": "2.2.0",
34
+ "@validators-dao/solana-shreds-client": "1.0.0"
34
35
  },
35
36
  "devDependencies": {
36
37
  "@types/node": "22.15.27",