@validators-dao/solana-stream-sdk 0.2.0 → 0.3.1
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/LICENSE.txt +67 -0
- package/README.md +170 -14
- package/dist/index.d.ts +180 -4
- package/dist/index.js +1335 -3
- package/dist/index.js.map +1 -1
- package/package.json +23 -12
- package/LICENSE +0 -21
- package/dist/index.d.ts.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EACb,eAAe,EACf,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,8BAA8B,CAAA;AACrC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EACL,IAAI,EACJ,MAAM,IAAI,YAAY,EACtB,eAAe,EACf,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,2BAA2B,EAC3B,kCAAkC,GACnC,CAAA"}
|
|
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"]}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@validators-dao/solana-stream-sdk",
|
|
3
3
|
"description": "Solana Stream SDK by Validators DAO",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"license": "
|
|
4
|
+
"version": "0.3.1",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"type": "module",
|
|
@@ -16,26 +16,37 @@
|
|
|
16
16
|
"url": "https://github.com/ValidatorsDAO/solana-stream.git"
|
|
17
17
|
},
|
|
18
18
|
"bugs": {
|
|
19
|
-
"url": "https://discord.gg/
|
|
19
|
+
"url": "https://discord.gg/C7ZQSrCkYR"
|
|
20
20
|
},
|
|
21
21
|
"files": [
|
|
22
22
|
"dist/**/*",
|
|
23
23
|
"README.md",
|
|
24
24
|
"LICENSE"
|
|
25
25
|
],
|
|
26
|
-
"scripts": {
|
|
27
|
-
"build": "tsc",
|
|
28
|
-
"clean": "rm -rf dist",
|
|
29
|
-
"prepublishOnly": "pnpm run clean && pnpm run build",
|
|
30
|
-
"lint": "eslint --ext .ts,.js --fix .",
|
|
31
|
-
"format": "prettier --write ."
|
|
32
|
-
},
|
|
33
26
|
"dependencies": {
|
|
27
|
+
"@bufbuild/protobuf": "2.5.1",
|
|
28
|
+
"@grpc/grpc-js": "1.13.4",
|
|
29
|
+
"@grpc/proto-loader": "0.7.15",
|
|
30
|
+
"@solana/web3.js": "1.98.2",
|
|
34
31
|
"@triton-one/yellowstone-grpc": "4.0.2",
|
|
35
|
-
"bs58": "6.0.0"
|
|
32
|
+
"bs58": "6.0.0",
|
|
33
|
+
"@validators-dao/solana-entry-decoder": "1.0.1"
|
|
36
34
|
},
|
|
37
35
|
"devDependencies": {
|
|
36
|
+
"@types/node": "22.15.27",
|
|
37
|
+
"grpc-tools": "1.13.0",
|
|
38
38
|
"prettier": "3.5.3",
|
|
39
|
+
"ts-proto": "2.7.2",
|
|
40
|
+
"tsup": "8.5.0",
|
|
39
41
|
"typescript": "5.8.3"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"generate": "pnpm proto:generate",
|
|
45
|
+
"proto:generate": "pnpm proto:clean && mkdir -p src/generated && pnpm --package=grpc-tools dlx grpc_tools_node_protoc --plugin=protoc-gen-ts_proto=$(pnpm bin)/protoc-gen-ts_proto --ts_proto_out=./src/generated --ts_proto_opt=esModuleInterop=true --ts_proto_opt=outputServices=grpc-js --proto_path=./protos protos/*.proto",
|
|
46
|
+
"proto:clean": "rm -rf src/generated",
|
|
47
|
+
"build": "pnpm proto:generate && tsup",
|
|
48
|
+
"clean": "rm -rf dist",
|
|
49
|
+
"lint": "eslint --ext .ts,.js --fix .",
|
|
50
|
+
"format": "prettier --write ."
|
|
40
51
|
}
|
|
41
|
-
}
|
|
52
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Validators DAO
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EACb,eAAe,EACf,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,2BAA2B,EAC3B,kCAAkC,EACnC,MAAM,8BAA8B,CAAA;AACrC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EACL,IAAI,EACJ,MAAM,IAAI,YAAY,EACtB,eAAe,EACf,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,2BAA2B,EAC3B,kCAAkC,GACnC,CAAA"}
|