UNPKG

@solsdk/jito-ts

Version:

## What is it and why do you need it?

1,490 lines (1,339 loc) 65 kB
/* eslint-disable */ import { CallOptions, ChannelCredentials, Client, ClientOptions, ClientReadableStream, ClientUnaryCall, handleServerStreamingCall, handleUnaryCall, makeGenericClientConstructor, Metadata, ServiceError, UntypedServiceImplementation, } from "@grpc/grpc-js"; import Long from "long"; import _m0 from "protobufjs/minimal"; import { ConfirmedTransaction, Reward } from "./confirmed_block"; import { Timestamp } from "./google/protobuf/timestamp"; export const protobufPackage = "solana.geyser"; export enum SlotUpdateStatus { CONFIRMED = 0, PROCESSED = 1, ROOTED = 2, UNRECOGNIZED = -1, } export function slotUpdateStatusFromJSON(object: any): SlotUpdateStatus { switch (object) { case 0: case "CONFIRMED": return SlotUpdateStatus.CONFIRMED; case 1: case "PROCESSED": return SlotUpdateStatus.PROCESSED; case 2: case "ROOTED": return SlotUpdateStatus.ROOTED; case -1: case "UNRECOGNIZED": default: return SlotUpdateStatus.UNRECOGNIZED; } } export function slotUpdateStatusToJSON(object: SlotUpdateStatus): string { switch (object) { case SlotUpdateStatus.CONFIRMED: return "CONFIRMED"; case SlotUpdateStatus.PROCESSED: return "PROCESSED"; case SlotUpdateStatus.ROOTED: return "ROOTED"; case SlotUpdateStatus.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } export interface PartialAccountUpdate { /** Slot this update occurred. */ slot: number; /** Account's pubkey. */ pubkey: Uint8Array; /** Account's owner. */ owner: Uint8Array; /** Flags whether this update was streamed as part of startup, hence not a realtime update. */ isStartup: boolean; /** * A monotonically increasing number specifying the order of this update. * Can be used to determine what the latest update for an account was at * a given slot, assuming there were multiple updates. */ seq: number; /** Transaction signature that caused this update. */ txSignature?: | string | undefined; /** AccountReplica version. */ replicaVersion: number; } export interface AccountUpdate { /** Slot this update occurred. */ slot: number; /** Account's pubkey. */ pubkey: Uint8Array; /** Account's lamports post update. */ lamports: number; /** Account's owner. */ owner: Uint8Array; /** Flags whether an account is executable. */ isExecutable: boolean; /** The epoch at which this account will next owe rent. */ rentEpoch: number; /** Account's data post update. */ data: Uint8Array; /** * A monotonically increasing number specifying the order of this update. * Can be used to determine what the latest update for an account was at * a given slot, assuming there were multiple updates. */ seq: number; /** Flags whether this update was streamed as part of startup i.e. not a real-time update. */ isStartup: boolean; /** Transaction signature that caused this update. */ txSignature?: | string | undefined; /** AccountReplica version. */ replicaVersion: number; } export interface SlotUpdate { slot: number; parentSlot?: number | undefined; status: SlotUpdateStatus; } export interface TimestampedSlotUpdate { /** Time at which the message was generated */ ts: | Date | undefined; /** Slot update */ slotUpdate: SlotUpdate | undefined; } export interface TimestampedAccountUpdate { /** Time at which the message was generated */ ts: | Date | undefined; /** Account update */ accountUpdate: AccountUpdate | undefined; } export interface SubscribeTransactionUpdatesRequest { } export interface SubscribeBlockUpdatesRequest { } export interface MaybePartialAccountUpdate { partialAccountUpdate?: PartialAccountUpdate | undefined; hb?: Heartbeat | undefined; } export interface Heartbeat { } export interface EmptyRequest { } export interface BlockUpdate { slot: number; blockhash: string; rewards: Reward[]; blockTime: Date | undefined; blockHeight?: number | undefined; executedTransactionCount?: number | undefined; entryCount?: number | undefined; } export interface TimestampedBlockUpdate { /** Time at which the message was generated */ ts: | Date | undefined; /** Block contents */ blockUpdate: BlockUpdate | undefined; } export interface TransactionUpdate { slot: number; signature: string; isVote: boolean; txIdx: number; tx: ConfirmedTransaction | undefined; } export interface TimestampedTransactionUpdate { ts: Date | undefined; transaction: TransactionUpdate | undefined; } export interface SubscribeSlotUpdateRequest { } export interface SubscribeAccountUpdatesRequest { accounts: Uint8Array[]; } export interface SubscribeProgramsUpdatesRequest { programs: Uint8Array[]; } export interface SubscribePartialAccountUpdatesRequest { /** If true, will not stream vote account updates. */ skipVoteAccounts: boolean; } export interface GetHeartbeatIntervalResponse { heartbeatIntervalMs: number; } function createBasePartialAccountUpdate(): PartialAccountUpdate { return { slot: 0, pubkey: new Uint8Array(), owner: new Uint8Array(), isStartup: false, seq: 0, txSignature: undefined, replicaVersion: 0, }; } export const PartialAccountUpdate = { encode(message: PartialAccountUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.slot !== 0) { writer.uint32(8).uint64(message.slot); } if (message.pubkey.length !== 0) { writer.uint32(18).bytes(message.pubkey); } if (message.owner.length !== 0) { writer.uint32(26).bytes(message.owner); } if (message.isStartup === true) { writer.uint32(32).bool(message.isStartup); } if (message.seq !== 0) { writer.uint32(40).uint64(message.seq); } if (message.txSignature !== undefined) { writer.uint32(50).string(message.txSignature); } if (message.replicaVersion !== 0) { writer.uint32(56).uint32(message.replicaVersion); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): PartialAccountUpdate { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBasePartialAccountUpdate(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.slot = longToNumber(reader.uint64() as Long); break; case 2: message.pubkey = reader.bytes(); break; case 3: message.owner = reader.bytes(); break; case 4: message.isStartup = reader.bool(); break; case 5: message.seq = longToNumber(reader.uint64() as Long); break; case 6: message.txSignature = reader.string(); break; case 7: message.replicaVersion = reader.uint32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): PartialAccountUpdate { return { slot: isSet(object.slot) ? Number(object.slot) : 0, pubkey: isSet(object.pubkey) ? bytesFromBase64(object.pubkey) : new Uint8Array(), owner: isSet(object.owner) ? bytesFromBase64(object.owner) : new Uint8Array(), isStartup: isSet(object.isStartup) ? Boolean(object.isStartup) : false, seq: isSet(object.seq) ? Number(object.seq) : 0, txSignature: isSet(object.txSignature) ? String(object.txSignature) : undefined, replicaVersion: isSet(object.replicaVersion) ? Number(object.replicaVersion) : 0, }; }, toJSON(message: PartialAccountUpdate): unknown { const obj: any = {}; message.slot !== undefined && (obj.slot = Math.round(message.slot)); message.pubkey !== undefined && (obj.pubkey = base64FromBytes(message.pubkey !== undefined ? message.pubkey : new Uint8Array())); message.owner !== undefined && (obj.owner = base64FromBytes(message.owner !== undefined ? message.owner : new Uint8Array())); message.isStartup !== undefined && (obj.isStartup = message.isStartup); message.seq !== undefined && (obj.seq = Math.round(message.seq)); message.txSignature !== undefined && (obj.txSignature = message.txSignature); message.replicaVersion !== undefined && (obj.replicaVersion = Math.round(message.replicaVersion)); return obj; }, create<I extends Exact<DeepPartial<PartialAccountUpdate>, I>>(base?: I): PartialAccountUpdate { return PartialAccountUpdate.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<PartialAccountUpdate>, I>>(object: I): PartialAccountUpdate { const message = createBasePartialAccountUpdate(); message.slot = object.slot ?? 0; message.pubkey = object.pubkey ?? new Uint8Array(); message.owner = object.owner ?? new Uint8Array(); message.isStartup = object.isStartup ?? false; message.seq = object.seq ?? 0; message.txSignature = object.txSignature ?? undefined; message.replicaVersion = object.replicaVersion ?? 0; return message; }, }; function createBaseAccountUpdate(): AccountUpdate { return { slot: 0, pubkey: new Uint8Array(), lamports: 0, owner: new Uint8Array(), isExecutable: false, rentEpoch: 0, data: new Uint8Array(), seq: 0, isStartup: false, txSignature: undefined, replicaVersion: 0, }; } export const AccountUpdate = { encode(message: AccountUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.slot !== 0) { writer.uint32(8).uint64(message.slot); } if (message.pubkey.length !== 0) { writer.uint32(18).bytes(message.pubkey); } if (message.lamports !== 0) { writer.uint32(24).uint64(message.lamports); } if (message.owner.length !== 0) { writer.uint32(34).bytes(message.owner); } if (message.isExecutable === true) { writer.uint32(40).bool(message.isExecutable); } if (message.rentEpoch !== 0) { writer.uint32(48).uint64(message.rentEpoch); } if (message.data.length !== 0) { writer.uint32(58).bytes(message.data); } if (message.seq !== 0) { writer.uint32(64).uint64(message.seq); } if (message.isStartup === true) { writer.uint32(72).bool(message.isStartup); } if (message.txSignature !== undefined) { writer.uint32(82).string(message.txSignature); } if (message.replicaVersion !== 0) { writer.uint32(88).uint32(message.replicaVersion); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): AccountUpdate { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseAccountUpdate(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.slot = longToNumber(reader.uint64() as Long); break; case 2: message.pubkey = reader.bytes(); break; case 3: message.lamports = longToNumber(reader.uint64() as Long); break; case 4: message.owner = reader.bytes(); break; case 5: message.isExecutable = reader.bool(); break; case 6: message.rentEpoch = longToNumber(reader.uint64() as Long); break; case 7: message.data = reader.bytes(); break; case 8: message.seq = longToNumber(reader.uint64() as Long); break; case 9: message.isStartup = reader.bool(); break; case 10: message.txSignature = reader.string(); break; case 11: message.replicaVersion = reader.uint32(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): AccountUpdate { return { slot: isSet(object.slot) ? Number(object.slot) : 0, pubkey: isSet(object.pubkey) ? bytesFromBase64(object.pubkey) : new Uint8Array(), lamports: isSet(object.lamports) ? Number(object.lamports) : 0, owner: isSet(object.owner) ? bytesFromBase64(object.owner) : new Uint8Array(), isExecutable: isSet(object.isExecutable) ? Boolean(object.isExecutable) : false, rentEpoch: isSet(object.rentEpoch) ? Number(object.rentEpoch) : 0, data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(), seq: isSet(object.seq) ? Number(object.seq) : 0, isStartup: isSet(object.isStartup) ? Boolean(object.isStartup) : false, txSignature: isSet(object.txSignature) ? String(object.txSignature) : undefined, replicaVersion: isSet(object.replicaVersion) ? Number(object.replicaVersion) : 0, }; }, toJSON(message: AccountUpdate): unknown { const obj: any = {}; message.slot !== undefined && (obj.slot = Math.round(message.slot)); message.pubkey !== undefined && (obj.pubkey = base64FromBytes(message.pubkey !== undefined ? message.pubkey : new Uint8Array())); message.lamports !== undefined && (obj.lamports = Math.round(message.lamports)); message.owner !== undefined && (obj.owner = base64FromBytes(message.owner !== undefined ? message.owner : new Uint8Array())); message.isExecutable !== undefined && (obj.isExecutable = message.isExecutable); message.rentEpoch !== undefined && (obj.rentEpoch = Math.round(message.rentEpoch)); message.data !== undefined && (obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array())); message.seq !== undefined && (obj.seq = Math.round(message.seq)); message.isStartup !== undefined && (obj.isStartup = message.isStartup); message.txSignature !== undefined && (obj.txSignature = message.txSignature); message.replicaVersion !== undefined && (obj.replicaVersion = Math.round(message.replicaVersion)); return obj; }, create<I extends Exact<DeepPartial<AccountUpdate>, I>>(base?: I): AccountUpdate { return AccountUpdate.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<AccountUpdate>, I>>(object: I): AccountUpdate { const message = createBaseAccountUpdate(); message.slot = object.slot ?? 0; message.pubkey = object.pubkey ?? new Uint8Array(); message.lamports = object.lamports ?? 0; message.owner = object.owner ?? new Uint8Array(); message.isExecutable = object.isExecutable ?? false; message.rentEpoch = object.rentEpoch ?? 0; message.data = object.data ?? new Uint8Array(); message.seq = object.seq ?? 0; message.isStartup = object.isStartup ?? false; message.txSignature = object.txSignature ?? undefined; message.replicaVersion = object.replicaVersion ?? 0; return message; }, }; function createBaseSlotUpdate(): SlotUpdate { return { slot: 0, parentSlot: undefined, status: 0 }; } export const SlotUpdate = { encode(message: SlotUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.slot !== 0) { writer.uint32(8).uint64(message.slot); } if (message.parentSlot !== undefined) { writer.uint32(16).uint64(message.parentSlot); } if (message.status !== 0) { writer.uint32(24).int32(message.status); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): SlotUpdate { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSlotUpdate(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.slot = longToNumber(reader.uint64() as Long); break; case 2: message.parentSlot = longToNumber(reader.uint64() as Long); break; case 3: message.status = reader.int32() as any; break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): SlotUpdate { return { slot: isSet(object.slot) ? Number(object.slot) : 0, parentSlot: isSet(object.parentSlot) ? Number(object.parentSlot) : undefined, status: isSet(object.status) ? slotUpdateStatusFromJSON(object.status) : 0, }; }, toJSON(message: SlotUpdate): unknown { const obj: any = {}; message.slot !== undefined && (obj.slot = Math.round(message.slot)); message.parentSlot !== undefined && (obj.parentSlot = Math.round(message.parentSlot)); message.status !== undefined && (obj.status = slotUpdateStatusToJSON(message.status)); return obj; }, create<I extends Exact<DeepPartial<SlotUpdate>, I>>(base?: I): SlotUpdate { return SlotUpdate.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<SlotUpdate>, I>>(object: I): SlotUpdate { const message = createBaseSlotUpdate(); message.slot = object.slot ?? 0; message.parentSlot = object.parentSlot ?? undefined; message.status = object.status ?? 0; return message; }, }; function createBaseTimestampedSlotUpdate(): TimestampedSlotUpdate { return { ts: undefined, slotUpdate: undefined }; } export const TimestampedSlotUpdate = { encode(message: TimestampedSlotUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.ts !== undefined) { Timestamp.encode(toTimestamp(message.ts), writer.uint32(10).fork()).ldelim(); } if (message.slotUpdate !== undefined) { SlotUpdate.encode(message.slotUpdate, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): TimestampedSlotUpdate { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTimestampedSlotUpdate(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.ts = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 2: message.slotUpdate = SlotUpdate.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): TimestampedSlotUpdate { return { ts: isSet(object.ts) ? fromJsonTimestamp(object.ts) : undefined, slotUpdate: isSet(object.slotUpdate) ? SlotUpdate.fromJSON(object.slotUpdate) : undefined, }; }, toJSON(message: TimestampedSlotUpdate): unknown { const obj: any = {}; message.ts !== undefined && (obj.ts = message.ts.toISOString()); message.slotUpdate !== undefined && (obj.slotUpdate = message.slotUpdate ? SlotUpdate.toJSON(message.slotUpdate) : undefined); return obj; }, create<I extends Exact<DeepPartial<TimestampedSlotUpdate>, I>>(base?: I): TimestampedSlotUpdate { return TimestampedSlotUpdate.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<TimestampedSlotUpdate>, I>>(object: I): TimestampedSlotUpdate { const message = createBaseTimestampedSlotUpdate(); message.ts = object.ts ?? undefined; message.slotUpdate = (object.slotUpdate !== undefined && object.slotUpdate !== null) ? SlotUpdate.fromPartial(object.slotUpdate) : undefined; return message; }, }; function createBaseTimestampedAccountUpdate(): TimestampedAccountUpdate { return { ts: undefined, accountUpdate: undefined }; } export const TimestampedAccountUpdate = { encode(message: TimestampedAccountUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.ts !== undefined) { Timestamp.encode(toTimestamp(message.ts), writer.uint32(10).fork()).ldelim(); } if (message.accountUpdate !== undefined) { AccountUpdate.encode(message.accountUpdate, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): TimestampedAccountUpdate { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTimestampedAccountUpdate(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.ts = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 2: message.accountUpdate = AccountUpdate.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): TimestampedAccountUpdate { return { ts: isSet(object.ts) ? fromJsonTimestamp(object.ts) : undefined, accountUpdate: isSet(object.accountUpdate) ? AccountUpdate.fromJSON(object.accountUpdate) : undefined, }; }, toJSON(message: TimestampedAccountUpdate): unknown { const obj: any = {}; message.ts !== undefined && (obj.ts = message.ts.toISOString()); message.accountUpdate !== undefined && (obj.accountUpdate = message.accountUpdate ? AccountUpdate.toJSON(message.accountUpdate) : undefined); return obj; }, create<I extends Exact<DeepPartial<TimestampedAccountUpdate>, I>>(base?: I): TimestampedAccountUpdate { return TimestampedAccountUpdate.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<TimestampedAccountUpdate>, I>>(object: I): TimestampedAccountUpdate { const message = createBaseTimestampedAccountUpdate(); message.ts = object.ts ?? undefined; message.accountUpdate = (object.accountUpdate !== undefined && object.accountUpdate !== null) ? AccountUpdate.fromPartial(object.accountUpdate) : undefined; return message; }, }; function createBaseSubscribeTransactionUpdatesRequest(): SubscribeTransactionUpdatesRequest { return {}; } export const SubscribeTransactionUpdatesRequest = { encode(_: SubscribeTransactionUpdatesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): SubscribeTransactionUpdatesRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSubscribeTransactionUpdatesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(_: any): SubscribeTransactionUpdatesRequest { return {}; }, toJSON(_: SubscribeTransactionUpdatesRequest): unknown { const obj: any = {}; return obj; }, create<I extends Exact<DeepPartial<SubscribeTransactionUpdatesRequest>, I>>( base?: I, ): SubscribeTransactionUpdatesRequest { return SubscribeTransactionUpdatesRequest.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<SubscribeTransactionUpdatesRequest>, I>>( _: I, ): SubscribeTransactionUpdatesRequest { const message = createBaseSubscribeTransactionUpdatesRequest(); return message; }, }; function createBaseSubscribeBlockUpdatesRequest(): SubscribeBlockUpdatesRequest { return {}; } export const SubscribeBlockUpdatesRequest = { encode(_: SubscribeBlockUpdatesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): SubscribeBlockUpdatesRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSubscribeBlockUpdatesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(_: any): SubscribeBlockUpdatesRequest { return {}; }, toJSON(_: SubscribeBlockUpdatesRequest): unknown { const obj: any = {}; return obj; }, create<I extends Exact<DeepPartial<SubscribeBlockUpdatesRequest>, I>>(base?: I): SubscribeBlockUpdatesRequest { return SubscribeBlockUpdatesRequest.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<SubscribeBlockUpdatesRequest>, I>>(_: I): SubscribeBlockUpdatesRequest { const message = createBaseSubscribeBlockUpdatesRequest(); return message; }, }; function createBaseMaybePartialAccountUpdate(): MaybePartialAccountUpdate { return { partialAccountUpdate: undefined, hb: undefined }; } export const MaybePartialAccountUpdate = { encode(message: MaybePartialAccountUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.partialAccountUpdate !== undefined) { PartialAccountUpdate.encode(message.partialAccountUpdate, writer.uint32(10).fork()).ldelim(); } if (message.hb !== undefined) { Heartbeat.encode(message.hb, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): MaybePartialAccountUpdate { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseMaybePartialAccountUpdate(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.partialAccountUpdate = PartialAccountUpdate.decode(reader, reader.uint32()); break; case 2: message.hb = Heartbeat.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): MaybePartialAccountUpdate { return { partialAccountUpdate: isSet(object.partialAccountUpdate) ? PartialAccountUpdate.fromJSON(object.partialAccountUpdate) : undefined, hb: isSet(object.hb) ? Heartbeat.fromJSON(object.hb) : undefined, }; }, toJSON(message: MaybePartialAccountUpdate): unknown { const obj: any = {}; message.partialAccountUpdate !== undefined && (obj.partialAccountUpdate = message.partialAccountUpdate ? PartialAccountUpdate.toJSON(message.partialAccountUpdate) : undefined); message.hb !== undefined && (obj.hb = message.hb ? Heartbeat.toJSON(message.hb) : undefined); return obj; }, create<I extends Exact<DeepPartial<MaybePartialAccountUpdate>, I>>(base?: I): MaybePartialAccountUpdate { return MaybePartialAccountUpdate.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<MaybePartialAccountUpdate>, I>>(object: I): MaybePartialAccountUpdate { const message = createBaseMaybePartialAccountUpdate(); message.partialAccountUpdate = (object.partialAccountUpdate !== undefined && object.partialAccountUpdate !== null) ? PartialAccountUpdate.fromPartial(object.partialAccountUpdate) : undefined; message.hb = (object.hb !== undefined && object.hb !== null) ? Heartbeat.fromPartial(object.hb) : undefined; return message; }, }; function createBaseHeartbeat(): Heartbeat { return {}; } export const Heartbeat = { encode(_: Heartbeat, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): Heartbeat { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseHeartbeat(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(_: any): Heartbeat { return {}; }, toJSON(_: Heartbeat): unknown { const obj: any = {}; return obj; }, create<I extends Exact<DeepPartial<Heartbeat>, I>>(base?: I): Heartbeat { return Heartbeat.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<Heartbeat>, I>>(_: I): Heartbeat { const message = createBaseHeartbeat(); return message; }, }; function createBaseEmptyRequest(): EmptyRequest { return {}; } export const EmptyRequest = { encode(_: EmptyRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): EmptyRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseEmptyRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(_: any): EmptyRequest { return {}; }, toJSON(_: EmptyRequest): unknown { const obj: any = {}; return obj; }, create<I extends Exact<DeepPartial<EmptyRequest>, I>>(base?: I): EmptyRequest { return EmptyRequest.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<EmptyRequest>, I>>(_: I): EmptyRequest { const message = createBaseEmptyRequest(); return message; }, }; function createBaseBlockUpdate(): BlockUpdate { return { slot: 0, blockhash: "", rewards: [], blockTime: undefined, blockHeight: undefined, executedTransactionCount: undefined, entryCount: undefined, }; } export const BlockUpdate = { encode(message: BlockUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.slot !== 0) { writer.uint32(8).uint64(message.slot); } if (message.blockhash !== "") { writer.uint32(18).string(message.blockhash); } for (const v of message.rewards) { Reward.encode(v!, writer.uint32(26).fork()).ldelim(); } if (message.blockTime !== undefined) { Timestamp.encode(toTimestamp(message.blockTime), writer.uint32(34).fork()).ldelim(); } if (message.blockHeight !== undefined) { writer.uint32(40).uint64(message.blockHeight); } if (message.executedTransactionCount !== undefined) { writer.uint32(48).uint64(message.executedTransactionCount); } if (message.entryCount !== undefined) { writer.uint32(56).uint64(message.entryCount); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): BlockUpdate { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseBlockUpdate(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.slot = longToNumber(reader.uint64() as Long); break; case 2: message.blockhash = reader.string(); break; case 3: message.rewards.push(Reward.decode(reader, reader.uint32())); break; case 4: message.blockTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 5: message.blockHeight = longToNumber(reader.uint64() as Long); break; case 6: message.executedTransactionCount = longToNumber(reader.uint64() as Long); break; case 7: message.entryCount = longToNumber(reader.uint64() as Long); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): BlockUpdate { return { slot: isSet(object.slot) ? Number(object.slot) : 0, blockhash: isSet(object.blockhash) ? String(object.blockhash) : "", rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => Reward.fromJSON(e)) : [], blockTime: isSet(object.blockTime) ? fromJsonTimestamp(object.blockTime) : undefined, blockHeight: isSet(object.blockHeight) ? Number(object.blockHeight) : undefined, executedTransactionCount: isSet(object.executedTransactionCount) ? Number(object.executedTransactionCount) : undefined, entryCount: isSet(object.entryCount) ? Number(object.entryCount) : undefined, }; }, toJSON(message: BlockUpdate): unknown { const obj: any = {}; message.slot !== undefined && (obj.slot = Math.round(message.slot)); message.blockhash !== undefined && (obj.blockhash = message.blockhash); if (message.rewards) { obj.rewards = message.rewards.map((e) => e ? Reward.toJSON(e) : undefined); } else { obj.rewards = []; } message.blockTime !== undefined && (obj.blockTime = message.blockTime.toISOString()); message.blockHeight !== undefined && (obj.blockHeight = Math.round(message.blockHeight)); message.executedTransactionCount !== undefined && (obj.executedTransactionCount = Math.round(message.executedTransactionCount)); message.entryCount !== undefined && (obj.entryCount = Math.round(message.entryCount)); return obj; }, create<I extends Exact<DeepPartial<BlockUpdate>, I>>(base?: I): BlockUpdate { return BlockUpdate.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<BlockUpdate>, I>>(object: I): BlockUpdate { const message = createBaseBlockUpdate(); message.slot = object.slot ?? 0; message.blockhash = object.blockhash ?? ""; message.rewards = object.rewards?.map((e) => Reward.fromPartial(e)) || []; message.blockTime = object.blockTime ?? undefined; message.blockHeight = object.blockHeight ?? undefined; message.executedTransactionCount = object.executedTransactionCount ?? undefined; message.entryCount = object.entryCount ?? undefined; return message; }, }; function createBaseTimestampedBlockUpdate(): TimestampedBlockUpdate { return { ts: undefined, blockUpdate: undefined }; } export const TimestampedBlockUpdate = { encode(message: TimestampedBlockUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.ts !== undefined) { Timestamp.encode(toTimestamp(message.ts), writer.uint32(10).fork()).ldelim(); } if (message.blockUpdate !== undefined) { BlockUpdate.encode(message.blockUpdate, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): TimestampedBlockUpdate { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTimestampedBlockUpdate(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.ts = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 2: message.blockUpdate = BlockUpdate.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): TimestampedBlockUpdate { return { ts: isSet(object.ts) ? fromJsonTimestamp(object.ts) : undefined, blockUpdate: isSet(object.blockUpdate) ? BlockUpdate.fromJSON(object.blockUpdate) : undefined, }; }, toJSON(message: TimestampedBlockUpdate): unknown { const obj: any = {}; message.ts !== undefined && (obj.ts = message.ts.toISOString()); message.blockUpdate !== undefined && (obj.blockUpdate = message.blockUpdate ? BlockUpdate.toJSON(message.blockUpdate) : undefined); return obj; }, create<I extends Exact<DeepPartial<TimestampedBlockUpdate>, I>>(base?: I): TimestampedBlockUpdate { return TimestampedBlockUpdate.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<TimestampedBlockUpdate>, I>>(object: I): TimestampedBlockUpdate { const message = createBaseTimestampedBlockUpdate(); message.ts = object.ts ?? undefined; message.blockUpdate = (object.blockUpdate !== undefined && object.blockUpdate !== null) ? BlockUpdate.fromPartial(object.blockUpdate) : undefined; return message; }, }; function createBaseTransactionUpdate(): TransactionUpdate { return { slot: 0, signature: "", isVote: false, txIdx: 0, tx: undefined }; } export const TransactionUpdate = { encode(message: TransactionUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.slot !== 0) { writer.uint32(8).uint64(message.slot); } if (message.signature !== "") { writer.uint32(18).string(message.signature); } if (message.isVote === true) { writer.uint32(24).bool(message.isVote); } if (message.txIdx !== 0) { writer.uint32(32).uint64(message.txIdx); } if (message.tx !== undefined) { ConfirmedTransaction.encode(message.tx, writer.uint32(42).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): TransactionUpdate { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTransactionUpdate(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.slot = longToNumber(reader.uint64() as Long); break; case 2: message.signature = reader.string(); break; case 3: message.isVote = reader.bool(); break; case 4: message.txIdx = longToNumber(reader.uint64() as Long); break; case 5: message.tx = ConfirmedTransaction.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): TransactionUpdate { return { slot: isSet(object.slot) ? Number(object.slot) : 0, signature: isSet(object.signature) ? String(object.signature) : "", isVote: isSet(object.isVote) ? Boolean(object.isVote) : false, txIdx: isSet(object.txIdx) ? Number(object.txIdx) : 0, tx: isSet(object.tx) ? ConfirmedTransaction.fromJSON(object.tx) : undefined, }; }, toJSON(message: TransactionUpdate): unknown { const obj: any = {}; message.slot !== undefined && (obj.slot = Math.round(message.slot)); message.signature !== undefined && (obj.signature = message.signature); message.isVote !== undefined && (obj.isVote = message.isVote); message.txIdx !== undefined && (obj.txIdx = Math.round(message.txIdx)); message.tx !== undefined && (obj.tx = message.tx ? ConfirmedTransaction.toJSON(message.tx) : undefined); return obj; }, create<I extends Exact<DeepPartial<TransactionUpdate>, I>>(base?: I): TransactionUpdate { return TransactionUpdate.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<TransactionUpdate>, I>>(object: I): TransactionUpdate { const message = createBaseTransactionUpdate(); message.slot = object.slot ?? 0; message.signature = object.signature ?? ""; message.isVote = object.isVote ?? false; message.txIdx = object.txIdx ?? 0; message.tx = (object.tx !== undefined && object.tx !== null) ? ConfirmedTransaction.fromPartial(object.tx) : undefined; return message; }, }; function createBaseTimestampedTransactionUpdate(): TimestampedTransactionUpdate { return { ts: undefined, transaction: undefined }; } export const TimestampedTransactionUpdate = { encode(message: TimestampedTransactionUpdate, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.ts !== undefined) { Timestamp.encode(toTimestamp(message.ts), writer.uint32(10).fork()).ldelim(); } if (message.transaction !== undefined) { TransactionUpdate.encode(message.transaction, writer.uint32(18).fork()).ldelim(); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): TimestampedTransactionUpdate { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseTimestampedTransactionUpdate(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.ts = fromTimestamp(Timestamp.decode(reader, reader.uint32())); break; case 2: message.transaction = TransactionUpdate.decode(reader, reader.uint32()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): TimestampedTransactionUpdate { return { ts: isSet(object.ts) ? fromJsonTimestamp(object.ts) : undefined, transaction: isSet(object.transaction) ? TransactionUpdate.fromJSON(object.transaction) : undefined, }; }, toJSON(message: TimestampedTransactionUpdate): unknown { const obj: any = {}; message.ts !== undefined && (obj.ts = message.ts.toISOString()); message.transaction !== undefined && (obj.transaction = message.transaction ? TransactionUpdate.toJSON(message.transaction) : undefined); return obj; }, create<I extends Exact<DeepPartial<TimestampedTransactionUpdate>, I>>(base?: I): TimestampedTransactionUpdate { return TimestampedTransactionUpdate.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<TimestampedTransactionUpdate>, I>>(object: I): TimestampedTransactionUpdate { const message = createBaseTimestampedTransactionUpdate(); message.ts = object.ts ?? undefined; message.transaction = (object.transaction !== undefined && object.transaction !== null) ? TransactionUpdate.fromPartial(object.transaction) : undefined; return message; }, }; function createBaseSubscribeSlotUpdateRequest(): SubscribeSlotUpdateRequest { return {}; } export const SubscribeSlotUpdateRequest = { encode(_: SubscribeSlotUpdateRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): SubscribeSlotUpdateRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSubscribeSlotUpdateRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(_: any): SubscribeSlotUpdateRequest { return {}; }, toJSON(_: SubscribeSlotUpdateRequest): unknown { const obj: any = {}; return obj; }, create<I extends Exact<DeepPartial<SubscribeSlotUpdateRequest>, I>>(base?: I): SubscribeSlotUpdateRequest { return SubscribeSlotUpdateRequest.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<SubscribeSlotUpdateRequest>, I>>(_: I): SubscribeSlotUpdateRequest { const message = createBaseSubscribeSlotUpdateRequest(); return message; }, }; function createBaseSubscribeAccountUpdatesRequest(): SubscribeAccountUpdatesRequest { return { accounts: [] }; } export const SubscribeAccountUpdatesRequest = { encode(message: SubscribeAccountUpdatesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.accounts) { writer.uint32(10).bytes(v!); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): SubscribeAccountUpdatesRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSubscribeAccountUpdatesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.accounts.push(reader.bytes()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): SubscribeAccountUpdatesRequest { return { accounts: Array.isArray(object?.accounts) ? object.accounts.map((e: any) => bytesFromBase64(e)) : [] }; }, toJSON(message: SubscribeAccountUpdatesRequest): unknown { const obj: any = {}; if (message.accounts) { obj.accounts = message.accounts.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array())); } else { obj.accounts = []; } return obj; }, create<I extends Exact<DeepPartial<SubscribeAccountUpdatesRequest>, I>>(base?: I): SubscribeAccountUpdatesRequest { return SubscribeAccountUpdatesRequest.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<SubscribeAccountUpdatesRequest>, I>>( object: I, ): SubscribeAccountUpdatesRequest { const message = createBaseSubscribeAccountUpdatesRequest(); message.accounts = object.accounts?.map((e) => e) || []; return message; }, }; function createBaseSubscribeProgramsUpdatesRequest(): SubscribeProgramsUpdatesRequest { return { programs: [] }; } export const SubscribeProgramsUpdatesRequest = { encode(message: SubscribeProgramsUpdatesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { for (const v of message.programs) { writer.uint32(10).bytes(v!); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): SubscribeProgramsUpdatesRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSubscribeProgramsUpdatesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.programs.push(reader.bytes()); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): SubscribeProgramsUpdatesRequest { return { programs: Array.isArray(object?.programs) ? object.programs.map((e: any) => bytesFromBase64(e)) : [] }; }, toJSON(message: SubscribeProgramsUpdatesRequest): unknown { const obj: any = {}; if (message.programs) { obj.programs = message.programs.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array())); } else { obj.programs = []; } return obj; }, create<I extends Exact<DeepPartial<SubscribeProgramsUpdatesRequest>, I>>(base?: I): SubscribeProgramsUpdatesRequest { return SubscribeProgramsUpdatesRequest.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<SubscribeProgramsUpdatesRequest>, I>>( object: I, ): SubscribeProgramsUpdatesRequest { const message = createBaseSubscribeProgramsUpdatesRequest(); message.programs = object.programs?.map((e) => e) || []; return message; }, }; function createBaseSubscribePartialAccountUpdatesRequest(): SubscribePartialAccountUpdatesRequest { return { skipVoteAccounts: false }; } export const SubscribePartialAccountUpdatesRequest = { encode(message: SubscribePartialAccountUpdatesRequest, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.skipVoteAccounts === true) { writer.uint32(8).bool(message.skipVoteAccounts); } return writer; }, decode(input: _m0.Reader | Uint8Array, length?: number): SubscribePartialAccountUpdatesRequest { const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); let end = length === undefined ? reader.len : reader.pos + length; const message = createBaseSubscribePartialAccountUpdatesRequest(); while (reader.pos < end) { const tag = reader.uint32(); switch (tag >>> 3) { case 1: message.skipVoteAccounts = reader.bool(); break; default: reader.skipType(tag & 7); break; } } return message; }, fromJSON(object: any): SubscribePartialAccountUpdatesRequest { return { skipVoteAccounts: isSet(object.skipVoteAccounts) ? Boolean(object.skipVoteAccounts) : false }; }, toJSON(message: SubscribePartialAccountUpdatesRequest): unknown { const obj: any = {}; message.skipVoteAccounts !== undefined && (obj.skipVoteAccounts = message.skipVoteAccounts); return obj; }, create<I extends Exact<DeepPartial<SubscribePartialAccountUpdatesRequest>, I>>( base?: I, ): SubscribePartialAccountUpdatesRequest { return SubscribePartialAccountUpdatesRequest.fromPartial(base ?? {}); }, fromPartial<I extends Exact<DeepPartial<SubscribePartialAccountUpdatesRequest>, I>>( object: I, ): SubscribePartialAccountUpdatesRequest { const message = createBaseSubscribePartialAccountUpdatesRequest(); message.skipVoteAccounts = object.skipVoteAccounts ?? false; return message; }, }; function createBaseGetHeartbeatIntervalResponse(): GetHeartbeatIntervalResponse { return { heartbeatIntervalMs: 0 }; } export const GetHeartbeatIntervalResponse = { encode(message: GetHeartbeatIntervalResponse, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { if (message.hea