@apibara/evm 2.1.0-beta.33 → 2.1.0-beta.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/block.ts +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/common.ts","../src/proto/common.ts","../src/proto/google/protobuf/timestamp.ts","../src/proto/data.ts","../src/proto/filter.ts","../src/block.ts","../src/filter.ts","../src/index.ts"],"sourcesContent":["import type { Codec, CodecType } from \"@apibara/protocol/codec\";\nimport type * as proto from \"./proto\";\n\nconst MAX_U64 = 0xffffffffffffffffn;\nconst MAX_U32 = 0xffffffffn;\n\n/** An Ethereum address. */\nexport const Address: Codec<`0x${string}`, proto.common.Address> = {\n encode(x) {\n const bn = BigInt(x);\n // Ethereum address is 20 bytes (160 bits)\n // Splitting into two 64-bit chunks and one 32-bit chunk\n const x2 = bn & MAX_U32;\n const x1 = (bn >> 32n) & MAX_U64;\n const x0 = (bn >> 96n) & MAX_U64;\n return { x0, x1, x2: Number(x2) };\n },\n decode(p) {\n const x0 = p.x0 ?? 0n;\n const x1 = p.x1 ?? 0n;\n const x2 = BigInt(p.x2 ?? 0);\n const bn = x2 + (x1 << 32n) + (x0 << 96n);\n return `0x${bn.toString(16).padStart(40, \"0\")}` as `0x${string}`;\n },\n};\n\nexport type Address = CodecType<typeof Address>;\n\n/** Data with length 256 bits. */\nexport const B256: Codec<`0x${string}`, proto.common.B256> = {\n encode(x) {\n const bn = BigInt(x);\n const x3 = bn & MAX_U64;\n const x2 = (bn >> 64n) & MAX_U64;\n const x1 = (bn >> 128n) & MAX_U64;\n const x0 = (bn >> 192n) & MAX_U64;\n return { x0, x1, x2, x3 };\n },\n decode(p) {\n const x0 = p.x0 ?? 0n;\n const x1 = p.x1 ?? 0n;\n const x2 = p.x2 ?? 0n;\n const x3 = p.x3 ?? 0n;\n const bn = x3 + (x2 << 64n) + (x1 << 128n) + (x0 << 192n);\n return `0x${bn.toString(16).padStart(64, \"0\")}` as `0x${string}`;\n },\n};\n\nexport type B256 = CodecType<typeof B256>;\n\n/** Data with length 256 bits. */\nexport const U256: Codec<bigint, proto.common.U256> = {\n encode(x) {\n const bn = BigInt(x);\n const x3 = bn & MAX_U64;\n const x2 = (bn >> 64n) & MAX_U64;\n const x1 = (bn >> 128n) & MAX_U64;\n const x0 = (bn >> 192n) & MAX_U64;\n return { x0, x1, x2, x3 };\n },\n decode(p) {\n const x0 = p.x0 ?? 0n;\n const x1 = p.x1 ?? 0n;\n const x2 = p.x2 ?? 0n;\n const x3 = p.x3 ?? 0n;\n return x3 + (x2 << 64n) + (x1 << 128n) + (x0 << 192n);\n },\n};\n\nexport type U256 = CodecType<typeof U256>;\n\n/** Data with length 128 bits. */\nexport const U128: Codec<bigint, proto.common.U128> = {\n encode(x) {\n const x1 = x & MAX_U64;\n const x0 = (x >> 64n) & MAX_U64;\n return { x0, x1 };\n },\n decode(p) {\n const x0 = p.x0 ?? 0n;\n const x1 = p.x1 ?? 0n;\n return x1 + (x0 << 64n);\n },\n};\n\nexport type U128 = CodecType<typeof U128>;\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.176.0\n// protoc unknown\n// source: common.proto\n\n/* eslint-disable */\nimport Long from \"long\";\nimport _m0 from \"protobufjs/minimal.js\";\n\nexport const protobufPackage = \"evm.v2\";\n\n/**\n * An address of 160 bits.\n *\n * As a separate type so that the API is clearer.\n */\nexport interface Address {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n readonly x2?: number | undefined;\n}\n\n/** A bloom filter of 256 bytes. */\nexport interface Bloom {\n readonly value?: Uint8Array | undefined;\n}\n\n/** Unsigned integer of 128 bits. */\nexport interface U128 {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n}\n\n/** Unsigned integer of 256 bits. */\nexport interface U256 {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n readonly x2?: bigint | undefined;\n readonly x3?: bigint | undefined;\n}\n\n/** Byte array of 256 bits. */\nexport interface B256 {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n readonly x2?: bigint | undefined;\n readonly x3?: bigint | undefined;\n}\n\nfunction createBaseAddress(): Address {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\"), x2: 0 };\n}\n\nexport const Address = {\n encode(message: Address, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x0) !== message.x0) {\n throw new globalThis.Error(\"value provided for field message.x0 of type fixed64 too large\");\n }\n writer.uint32(9).fixed64(message.x0.toString());\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x1) !== message.x1) {\n throw new globalThis.Error(\"value provided for field message.x1 of type fixed64 too large\");\n }\n writer.uint32(17).fixed64(message.x1.toString());\n }\n if (message.x2 !== undefined && message.x2 !== 0) {\n writer.uint32(29).fixed32(message.x2);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Address {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddress() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.x0 = longToBigint(reader.fixed64() as Long);\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.x1 = longToBigint(reader.fixed64() as Long);\n continue;\n case 3:\n if (tag !== 29) {\n break;\n }\n\n message.x2 = reader.fixed32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Address {\n return {\n x0: isSet(object.x0) ? BigInt(object.x0) : BigInt(\"0\"),\n x1: isSet(object.x1) ? BigInt(object.x1) : BigInt(\"0\"),\n x2: isSet(object.x2) ? globalThis.Number(object.x2) : 0,\n };\n },\n\n toJSON(message: Address): unknown {\n const obj: any = {};\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n obj.x0 = message.x0.toString();\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n obj.x1 = message.x1.toString();\n }\n if (message.x2 !== undefined && message.x2 !== 0) {\n obj.x2 = Math.round(message.x2);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Address>): Address {\n return Address.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Address>): Address {\n const message = createBaseAddress() as any;\n message.x0 = object.x0 ?? BigInt(\"0\");\n message.x1 = object.x1 ?? BigInt(\"0\");\n message.x2 = object.x2 ?? 0;\n return message;\n },\n};\n\nfunction createBaseBloom(): Bloom {\n return { value: new Uint8Array(0) };\n}\n\nexport const Bloom = {\n encode(message: Bloom, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.value !== undefined && message.value.length !== 0) {\n writer.uint32(10).bytes(message.value);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Bloom {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBloom() as any;\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.value = reader.bytes();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Bloom {\n return { value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array(0) };\n },\n\n toJSON(message: Bloom): unknown {\n const obj: any = {};\n if (message.value !== undefined && message.value.length !== 0) {\n obj.value = base64FromBytes(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Bloom>): Bloom {\n return Bloom.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Bloom>): Bloom {\n const message = createBaseBloom() as any;\n message.value = object.value ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBaseU128(): U128 {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\") };\n}\n\nexport const U128 = {\n encode(message: U128, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x0) !== message.x0) {\n throw new globalThis.Error(\"value provided for field message.x0 of type fixed64 too large\");\n }\n writer.uint32(9).fixed64(message.x0.toString());\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x1) !== message.x1) {\n throw new globalThis.Error(\"value provided for field message.x1 of type fixed64 too large\");\n }\n writer.uint32(17).fixed64(message.x1.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): U128 {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseU128() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.x0 = longToBigint(reader.fixed64() as Long);\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.x1 = longToBigint(reader.fixed64() as Long);\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): U128 {\n return {\n x0: isSet(object.x0) ? BigInt(object.x0) : BigInt(\"0\"),\n x1: isSet(object.x1) ? BigInt(object.x1) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: U128): unknown {\n const obj: any = {};\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n obj.x0 = message.x0.toString();\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n obj.x1 = message.x1.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<U128>): U128 {\n return U128.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<U128>): U128 {\n const message = createBaseU128() as any;\n message.x0 = object.x0 ?? BigInt(\"0\");\n message.x1 = object.x1 ?? BigInt(\"0\");\n return message;\n },\n};\n\nfunction createBaseU256(): U256 {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\"), x2: BigInt(\"0\"), x3: BigInt(\"0\") };\n}\n\nexport const U256 = {\n encode(message: U256, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x0) !== message.x0) {\n throw new globalThis.Error(\"value provided for field message.x0 of type fixed64 too large\");\n }\n writer.uint32(9).fixed64(message.x0.toString());\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x1) !== message.x1) {\n throw new globalThis.Error(\"value provided for field message.x1 of type fixed64 too large\");\n }\n writer.uint32(17).fixed64(message.x1.toString());\n }\n if (message.x2 !== undefined && message.x2 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x2) !== message.x2) {\n throw new globalThis.Error(\"value provided for field message.x2 of type fixed64 too large\");\n }\n writer.uint32(25).fixed64(message.x2.toString());\n }\n if (message.x3 !== undefined && message.x3 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x3) !== message.x3) {\n throw new globalThis.Error(\"value provided for field message.x3 of type fixed64 too large\");\n }\n writer.uint32(33).fixed64(message.x3.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): U256 {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseU256() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.x0 = longToBigint(reader.fixed64() as Long);\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.x1 = longToBigint(reader.fixed64() as Long);\n continue;\n case 3:\n if (tag !== 25) {\n break;\n }\n\n message.x2 = longToBigint(reader.fixed64() as Long);\n continue;\n case 4:\n if (tag !== 33) {\n break;\n }\n\n message.x3 = longToBigint(reader.fixed64() as Long);\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): U256 {\n return {\n x0: isSet(object.x0) ? BigInt(object.x0) : BigInt(\"0\"),\n x1: isSet(object.x1) ? BigInt(object.x1) : BigInt(\"0\"),\n x2: isSet(object.x2) ? BigInt(object.x2) : BigInt(\"0\"),\n x3: isSet(object.x3) ? BigInt(object.x3) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: U256): unknown {\n const obj: any = {};\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n obj.x0 = message.x0.toString();\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n obj.x1 = message.x1.toString();\n }\n if (message.x2 !== undefined && message.x2 !== BigInt(\"0\")) {\n obj.x2 = message.x2.toString();\n }\n if (message.x3 !== undefined && message.x3 !== BigInt(\"0\")) {\n obj.x3 = message.x3.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<U256>): U256 {\n return U256.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<U256>): U256 {\n const message = createBaseU256() as any;\n message.x0 = object.x0 ?? BigInt(\"0\");\n message.x1 = object.x1 ?? BigInt(\"0\");\n message.x2 = object.x2 ?? BigInt(\"0\");\n message.x3 = object.x3 ?? BigInt(\"0\");\n return message;\n },\n};\n\nfunction createBaseB256(): B256 {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\"), x2: BigInt(\"0\"), x3: BigInt(\"0\") };\n}\n\nexport const B256 = {\n encode(message: B256, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x0) !== message.x0) {\n throw new globalThis.Error(\"value provided for field message.x0 of type fixed64 too large\");\n }\n writer.uint32(9).fixed64(message.x0.toString());\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x1) !== message.x1) {\n throw new globalThis.Error(\"value provided for field message.x1 of type fixed64 too large\");\n }\n writer.uint32(17).fixed64(message.x1.toString());\n }\n if (message.x2 !== undefined && message.x2 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x2) !== message.x2) {\n throw new globalThis.Error(\"value provided for field message.x2 of type fixed64 too large\");\n }\n writer.uint32(25).fixed64(message.x2.toString());\n }\n if (message.x3 !== undefined && message.x3 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x3) !== message.x3) {\n throw new globalThis.Error(\"value provided for field message.x3 of type fixed64 too large\");\n }\n writer.uint32(33).fixed64(message.x3.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): B256 {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseB256() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.x0 = longToBigint(reader.fixed64() as Long);\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.x1 = longToBigint(reader.fixed64() as Long);\n continue;\n case 3:\n if (tag !== 25) {\n break;\n }\n\n message.x2 = longToBigint(reader.fixed64() as Long);\n continue;\n case 4:\n if (tag !== 33) {\n break;\n }\n\n message.x3 = longToBigint(reader.fixed64() as Long);\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): B256 {\n return {\n x0: isSet(object.x0) ? BigInt(object.x0) : BigInt(\"0\"),\n x1: isSet(object.x1) ? BigInt(object.x1) : BigInt(\"0\"),\n x2: isSet(object.x2) ? BigInt(object.x2) : BigInt(\"0\"),\n x3: isSet(object.x3) ? BigInt(object.x3) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: B256): unknown {\n const obj: any = {};\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n obj.x0 = message.x0.toString();\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n obj.x1 = message.x1.toString();\n }\n if (message.x2 !== undefined && message.x2 !== BigInt(\"0\")) {\n obj.x2 = message.x2.toString();\n }\n if (message.x3 !== undefined && message.x3 !== BigInt(\"0\")) {\n obj.x3 = message.x3.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<B256>): B256 {\n return B256.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<B256>): B256 {\n const message = createBaseB256() as any;\n message.x0 = object.x0 ?? BigInt(\"0\");\n message.x1 = object.x1 ?? BigInt(\"0\");\n message.x2 = object.x2 ?? BigInt(\"0\");\n message.x3 = object.x3 ?? BigInt(\"0\");\n return message;\n },\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 | bigint | 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 { readonly $case: string }\n ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { readonly $case: T[\"$case\"] }\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\nfunction longToBigint(long: Long) {\n return BigInt(long.toString());\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.176.0\n// protoc unknown\n// source: google/protobuf/timestamp.proto\n\n/* eslint-disable */\nimport Long from \"long\";\nimport _m0 from \"protobufjs/minimal.js\";\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://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\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 readonly seconds?:\n | bigint\n | undefined;\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 readonly nanos?: number | undefined;\n}\n\nfunction createBaseTimestamp(): Timestamp {\n return { seconds: BigInt(\"0\"), nanos: 0 };\n}\n\nexport const Timestamp = {\n encode(message: Timestamp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.seconds !== undefined && message.seconds !== BigInt(\"0\")) {\n if (BigInt.asIntN(64, message.seconds) !== message.seconds) {\n throw new globalThis.Error(\"value provided for field message.seconds of type int64 too large\");\n }\n writer.uint32(8).int64(message.seconds.toString());\n }\n if (message.nanos !== undefined && message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Timestamp {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTimestamp() as any;\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 = longToBigint(reader.int64() as Long);\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.nanos = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Timestamp {\n return {\n seconds: isSet(object.seconds) ? BigInt(object.seconds) : BigInt(\"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 !== undefined && message.seconds !== BigInt(\"0\")) {\n obj.seconds = message.seconds.toString();\n }\n if (message.nanos !== undefined && message.nanos !== 0) {\n obj.nanos = Math.round(message.nanos);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Timestamp>): Timestamp {\n return Timestamp.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Timestamp>): Timestamp {\n const message = createBaseTimestamp() as any;\n message.seconds = object.seconds ?? BigInt(\"0\");\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | 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 { readonly $case: string }\n ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { readonly $case: T[\"$case\"] }\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\nfunction longToBigint(long: Long) {\n return BigInt(long.toString());\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.176.0\n// protoc unknown\n// source: data.proto\n\n/* eslint-disable */\nimport Long from \"long\";\nimport _m0 from \"protobufjs/minimal.js\";\nimport { Address, B256, Bloom, U128, U256 } from \"./common.js\";\nimport { Timestamp } from \"./google/protobuf/timestamp.js\";\n\nexport const protobufPackage = \"evm.v2\";\n\n/** EVM DNA definitions (data). */\n\nexport enum TransactionStatus {\n UNSPECIFIED = 0,\n SUCCEEDED = 1,\n REVERTED = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function transactionStatusFromJSON(object: any): TransactionStatus {\n switch (object) {\n case 0:\n case \"TRANSACTION_STATUS_UNSPECIFIED\":\n return TransactionStatus.UNSPECIFIED;\n case 1:\n case \"TRANSACTION_STATUS_SUCCEEDED\":\n return TransactionStatus.SUCCEEDED;\n case 2:\n case \"TRANSACTION_STATUS_REVERTED\":\n return TransactionStatus.REVERTED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return TransactionStatus.UNRECOGNIZED;\n }\n}\n\nexport function transactionStatusToJSON(object: TransactionStatus): string {\n switch (object) {\n case TransactionStatus.UNSPECIFIED:\n return \"TRANSACTION_STATUS_UNSPECIFIED\";\n case TransactionStatus.SUCCEEDED:\n return \"TRANSACTION_STATUS_SUCCEEDED\";\n case TransactionStatus.REVERTED:\n return \"TRANSACTION_STATUS_REVERTED\";\n case TransactionStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum CallType {\n UNSPECIFIED = 0,\n CALL = 1,\n CALL_CODE = 2,\n DELEGATE_CALL = 3,\n STATIC_CALL = 4,\n AUTH_CALL = 5,\n UNRECOGNIZED = -1,\n}\n\nexport function callTypeFromJSON(object: any): CallType {\n switch (object) {\n case 0:\n case \"CALL_TYPE_UNSPECIFIED\":\n return CallType.UNSPECIFIED;\n case 1:\n case \"CALL_TYPE_CALL\":\n return CallType.CALL;\n case 2:\n case \"CALL_TYPE_CALL_CODE\":\n return CallType.CALL_CODE;\n case 3:\n case \"CALL_TYPE_DELEGATE_CALL\":\n return CallType.DELEGATE_CALL;\n case 4:\n case \"CALL_TYPE_STATIC_CALL\":\n return CallType.STATIC_CALL;\n case 5:\n case \"CALL_TYPE_AUTH_CALL\":\n return CallType.AUTH_CALL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CallType.UNRECOGNIZED;\n }\n}\n\nexport function callTypeToJSON(object: CallType): string {\n switch (object) {\n case CallType.UNSPECIFIED:\n return \"CALL_TYPE_UNSPECIFIED\";\n case CallType.CALL:\n return \"CALL_TYPE_CALL\";\n case CallType.CALL_CODE:\n return \"CALL_TYPE_CALL_CODE\";\n case CallType.DELEGATE_CALL:\n return \"CALL_TYPE_DELEGATE_CALL\";\n case CallType.STATIC_CALL:\n return \"CALL_TYPE_STATIC_CALL\";\n case CallType.AUTH_CALL:\n return \"CALL_TYPE_AUTH_CALL\";\n case CallType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum CreationMethod {\n UNSPECIFIED = 0,\n CREATE = 1,\n CREATE2 = 2,\n EOF_CREATE = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function creationMethodFromJSON(object: any): CreationMethod {\n switch (object) {\n case 0:\n case \"CREATION_METHOD_UNSPECIFIED\":\n return CreationMethod.UNSPECIFIED;\n case 1:\n case \"CREATION_METHOD_CREATE\":\n return CreationMethod.CREATE;\n case 2:\n case \"CREATION_METHOD_CREATE2\":\n return CreationMethod.CREATE2;\n case 3:\n case \"CREATION_METHOD_EOF_CREATE\":\n return CreationMethod.EOF_CREATE;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CreationMethod.UNRECOGNIZED;\n }\n}\n\nexport function creationMethodToJSON(object: CreationMethod): string {\n switch (object) {\n case CreationMethod.UNSPECIFIED:\n return \"CREATION_METHOD_UNSPECIFIED\";\n case CreationMethod.CREATE:\n return \"CREATION_METHOD_CREATE\";\n case CreationMethod.CREATE2:\n return \"CREATION_METHOD_CREATE2\";\n case CreationMethod.EOF_CREATE:\n return \"CREATION_METHOD_EOF_CREATE\";\n case CreationMethod.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum RewardType {\n UNSPECIFIED = 0,\n BLOCK = 1,\n UNCLE = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function rewardTypeFromJSON(object: any): RewardType {\n switch (object) {\n case 0:\n case \"REWARD_TYPE_UNSPECIFIED\":\n return RewardType.UNSPECIFIED;\n case 1:\n case \"REWARD_TYPE_BLOCK\":\n return RewardType.BLOCK;\n case 2:\n case \"REWARD_TYPE_UNCLE\":\n return RewardType.UNCLE;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return RewardType.UNRECOGNIZED;\n }\n}\n\nexport function rewardTypeToJSON(object: RewardType): string {\n switch (object) {\n case RewardType.UNSPECIFIED:\n return \"REWARD_TYPE_UNSPECIFIED\";\n case RewardType.BLOCK:\n return \"REWARD_TYPE_BLOCK\";\n case RewardType.UNCLE:\n return \"REWARD_TYPE_UNCLE\";\n case RewardType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\n/** Requested data, grouped by block. */\nexport interface Block {\n /** The header. */\n readonly header?:\n | BlockHeader\n | undefined;\n /** List of withdrawals. */\n readonly withdrawals?:\n | readonly Withdrawal[]\n | undefined;\n /** List of transactions. */\n readonly transactions?:\n | readonly Transaction[]\n | undefined;\n /** List of receipts. */\n readonly receipts?:\n | readonly TransactionReceipt[]\n | undefined;\n /** List of logs. */\n readonly logs?:\n | readonly Log[]\n | undefined;\n /** List of transaction traces. */\n readonly traces?: readonly TransactionTrace[] | undefined;\n}\n\n/** Block header. */\nexport interface BlockHeader {\n /** Block number. */\n readonly blockNumber?:\n | bigint\n | undefined;\n /** Hash of the block. */\n readonly blockHash?:\n | B256\n | undefined;\n /** Hash of the parent block. */\n readonly parentBlockHash?:\n | B256\n | undefined;\n /** Hash of the uncles. */\n readonly unclesHash?:\n | B256\n | undefined;\n /** Author of the block. */\n readonly miner?:\n | Address\n | undefined;\n /** State root hash. */\n readonly stateRoot?:\n | B256\n | undefined;\n /** Transactions root hash. */\n readonly transactionsRoot?:\n | B256\n | undefined;\n /** Receipts root hash. */\n readonly receiptsRoot?:\n | B256\n | undefined;\n /** Logs bloom. */\n readonly logsBloom?:\n | Bloom\n | undefined;\n /** Difficulty. */\n readonly difficulty?:\n | U256\n | undefined;\n /** Gas limit. */\n readonly gasLimit?:\n | U128\n | undefined;\n /** Gas used. */\n readonly gasUsed?:\n | U128\n | undefined;\n /** Timestamp. */\n readonly timestamp?:\n | Date\n | undefined;\n /** Extra data. */\n readonly extraData?:\n | Uint8Array\n | undefined;\n /** Mix hash. */\n readonly mixHash?:\n | B256\n | undefined;\n /** Nonce. */\n readonly nonce?:\n | bigint\n | undefined;\n /** Base fee per unit of gas. */\n readonly baseFeePerGas?:\n | U128\n | undefined;\n /** Withdrawals root hash. */\n readonly withdrawalsRoot?:\n | B256\n | undefined;\n /** Total difficulty. */\n readonly totalDifficulty?:\n | U256\n | undefined;\n /** Blob gas used. */\n readonly blobGasUsed?:\n | U128\n | undefined;\n /** Excess blob gas. */\n readonly excessBlobGas?:\n | U128\n | undefined;\n /** Parent beacon block root. */\n readonly parentBeaconBlockRoot?:\n | B256\n | undefined;\n /**\n * The Keccak 256-bit hash of the an RLP encoded list with each EIP-7685\n * request in the block body.\n */\n readonly requestsHash?: B256 | undefined;\n}\n\n/** A validator's withdrawal from the consensus layer. */\nexport interface Withdrawal {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Withdrawal index in the block. */\n readonly withdrawalIndex?:\n | number\n | undefined;\n /** Increasing index of the withdrawal. */\n readonly index?:\n | bigint\n | undefined;\n /** Index of the validator. */\n readonly validatorIndex?:\n | number\n | undefined;\n /** Target address of the withdrawal. */\n readonly address?:\n | Address\n | undefined;\n /** Value of the withdrawal, in gwei. */\n readonly amount?: bigint | undefined;\n}\n\nexport interface Transaction {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Transaction index in the block. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | B256\n | undefined;\n /** Nonce. */\n readonly nonce?:\n | bigint\n | undefined;\n /** Sender. */\n readonly from?:\n | Address\n | undefined;\n /** Recipient. */\n readonly to?:\n | Address\n | undefined;\n /** Amount of wei transferred. */\n readonly value?:\n | U256\n | undefined;\n /** Gas price. */\n readonly gasPrice?:\n | U128\n | undefined;\n /** Gas amount. */\n readonly gas?:\n | U128\n | undefined;\n /** Max base fee per gas the sender is willing to pay. */\n readonly maxFeePerGas?:\n | U128\n | undefined;\n /** Miner's tip. */\n readonly maxPriorityFeePerGas?:\n | U128\n | undefined;\n /** Data. */\n readonly input?:\n | Uint8Array\n | undefined;\n /** The signature's r,s,v,yParity values. */\n readonly signature?:\n | Signature\n | undefined;\n /** Chain ID. */\n readonly chainId?:\n | bigint\n | undefined;\n /** EIP-2930 access list. */\n readonly accessList?:\n | readonly AccessListItem[]\n | undefined;\n /** EIP-2718 transaction type. */\n readonly transactionType?:\n | bigint\n | undefined;\n /** EIP-4844 max gas fee per blob. */\n readonly maxFeePerBlobGas?:\n | U128\n | undefined;\n /** EIP-4844 blob hashes. */\n readonly blobVersionedHashes?:\n | readonly B256[]\n | undefined;\n /** The transaction status. */\n readonly transactionStatus?: TransactionStatus | undefined;\n}\n\nexport interface TransactionReceipt {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Index of the transaction in the block. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | B256\n | undefined;\n /** Cumulative gas used in the block after this transaction has been executed. */\n readonly cumulativeGasUsed?:\n | U128\n | undefined;\n /** Gas used by this transaction. */\n readonly gasUsed?:\n | U128\n | undefined;\n /** The price paid by the transaction. */\n readonly effectiveGasPrice?:\n | U128\n | undefined;\n /** Sender. */\n readonly from?:\n | Address\n | undefined;\n /** Recipient, if any. */\n readonly to?:\n | Address\n | undefined;\n /** Contract address created, if any. */\n readonly contractAddress?:\n | Address\n | undefined;\n /** Logs bloom. */\n readonly logsBloom?:\n | Bloom\n | undefined;\n /** EIP-2718 transaction type. */\n readonly transactionType?:\n | bigint\n | undefined;\n /** EIP-4844 blob gas used. */\n readonly blobGasUsed?:\n | U128\n | undefined;\n /** EIP-4844 blob gas paid by the transaction. */\n readonly blobGasPrice?:\n | U128\n | undefined;\n /** The transaction status. */\n readonly transactionStatus?: TransactionStatus | undefined;\n}\n\nexport interface Log {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Index of the log in the block. */\n readonly logIndex?:\n | number\n | undefined;\n /** Address of the contract that emitted the log. */\n readonly address?:\n | Address\n | undefined;\n /** Log topics. */\n readonly topics?:\n | readonly B256[]\n | undefined;\n /** Additional data. */\n readonly data?:\n | Uint8Array\n | undefined;\n /** Index of the transaction that emitted the log. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Hash of the transaction that emitted the log. */\n readonly transactionHash?:\n | B256\n | undefined;\n /** The transaction status. */\n readonly transactionStatus?:\n | TransactionStatus\n | undefined;\n /** Index of the log in the transaction. */\n readonly logIndexInTransaction?: number | undefined;\n}\n\nexport interface Signature {\n /** The signature's r value. */\n readonly r?:\n | U256\n | undefined;\n /** The signature's s value. */\n readonly s?:\n | U256\n | undefined;\n /** The signature's v value. */\n readonly v?:\n | U256\n | undefined;\n /** The signature's parity byte. */\n readonly yParity?: boolean | undefined;\n}\n\nexport interface AccessListItem {\n /** Account address to be loaded at the start of the transaction. */\n readonly address?:\n | Address\n | undefined;\n /** Storage keys to be loaded at the start of the transaction. */\n readonly storageKeys?: readonly B256[] | undefined;\n}\n\nexport interface TransactionTrace {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Index of the transaction in the block. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | B256\n | undefined;\n /** Traces. */\n readonly traces?: readonly Trace[] | undefined;\n}\n\nexport interface Trace {\n readonly action?:\n | { readonly $case: \"call\"; readonly call: CallAction }\n | { readonly $case: \"create\"; readonly create: CreateAction }\n | { readonly $case: \"selfDestruct\"; readonly selfDestruct: SelfDestructAction }\n | { readonly $case: \"reward\"; readonly reward: RewardAction }\n | undefined;\n /** Error message if the transaction failed. */\n readonly error?: string | undefined;\n readonly output?:\n | { readonly $case: \"callOutput\"; readonly callOutput: CallOutput }\n | { readonly $case: \"createOutput\"; readonly createOutput: CreateOutput }\n | undefined;\n /** Number of sub traces. */\n readonly subtraces?:\n | number\n | undefined;\n /** The identifier of this trace in the trace tree. */\n readonly traceAddress?: readonly number[] | undefined;\n}\n\nexport interface CallAction {\n /** Address of the sending account. */\n readonly fromAddress?:\n | Address\n | undefined;\n /** Call type. */\n readonly type?:\n | CallType\n | undefined;\n /** The gas available to execute the call. */\n readonly gas?:\n | bigint\n | undefined;\n /** Input data provided by the call. */\n readonly input?:\n | Uint8Array\n | undefined;\n /** Target of the destination address. */\n readonly toAddress?:\n | Address\n | undefined;\n /** Value transferred to the destination account. */\n readonly value?: U256 | undefined;\n}\n\nexport interface CreateAction {\n /** Address of the sending account. */\n readonly fromAddress?:\n | Address\n | undefined;\n /** The gas available to execute the call. */\n readonly gas?:\n | bigint\n | undefined;\n /** Input data provided by the call. */\n readonly init?:\n | Uint8Array\n | undefined;\n /** Value transferred to the ne account. */\n readonly value?:\n | U256\n | undefined;\n /** Contract creation method. */\n readonly creationMethod?: CreationMethod | undefined;\n}\n\nexport interface SelfDestructAction {\n /** The destroyed address. */\n readonly address?:\n | Address\n | undefined;\n /** Balance of the destroyed account before destruct. */\n readonly balance?:\n | U256\n | undefined;\n /** The heir address. */\n readonly refundAddress?: Address | undefined;\n}\n\nexport interface RewardAction {\n /** The author's address. */\n readonly author?:\n | Address\n | undefined;\n /** Reward type. */\n readonly type?:\n | RewardType\n | undefined;\n /** The reward's value. */\n readonly value?: U256 | undefined;\n}\n\nexport interface CallOutput {\n /** Gas used. */\n readonly gasUsed?:\n | bigint\n | undefined;\n /** Output data. */\n readonly output?: Uint8Array | undefined;\n}\n\nexport interface CreateOutput {\n /** Contract address. */\n readonly address?:\n | Address\n | undefined;\n /** Code */\n readonly code?:\n | Uint8Array\n | undefined;\n /** Gas used. */\n readonly gasUsed?: bigint | undefined;\n}\n\nfunction createBaseBlock(): Block {\n return { header: undefined, withdrawals: [], transactions: [], receipts: [], logs: [], traces: [] };\n}\n\nexport const Block = {\n encode(message: Block, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.header !== undefined) {\n BlockHeader.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n if (message.withdrawals !== undefined && message.withdrawals.length !== 0) {\n for (const v of message.withdrawals) {\n Withdrawal.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.transactions !== undefined && message.transactions.length !== 0) {\n for (const v of message.transactions) {\n Transaction.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.receipts !== undefined && message.receipts.length !== 0) {\n for (const v of message.receipts) {\n TransactionReceipt.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.logs !== undefined && message.logs.length !== 0) {\n for (const v of message.logs) {\n Log.encode(v!, writer.uint32(42).fork()).ldelim();\n }\n }\n if (message.traces !== undefined && message.traces.length !== 0) {\n for (const v of message.traces) {\n TransactionTrace.encode(v!, writer.uint32(50).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Block {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlock() as any;\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.header = BlockHeader.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.withdrawals!.push(Withdrawal.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transactions!.push(Transaction.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.receipts!.push(TransactionReceipt.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.logs!.push(Log.decode(reader, reader.uint32()));\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.traces!.push(TransactionTrace.decode(reader, reader.uint32()));\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Block {\n return {\n header: isSet(object.header) ? BlockHeader.fromJSON(object.header) : undefined,\n withdrawals: globalThis.Array.isArray(object?.withdrawals)\n ? object.withdrawals.map((e: any) => Withdrawal.fromJSON(e))\n : [],\n transactions: globalThis.Array.isArray(object?.transactions)\n ? object.transactions.map((e: any) => Transaction.fromJSON(e))\n : [],\n receipts: globalThis.Array.isArray(object?.receipts)\n ? object.receipts.map((e: any) => TransactionReceipt.fromJSON(e))\n : [],\n logs: globalThis.Array.isArray(object?.logs) ? object.logs.map((e: any) => Log.fromJSON(e)) : [],\n traces: globalThis.Array.isArray(object?.traces)\n ? object.traces.map((e: any) => TransactionTrace.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: Block): unknown {\n const obj: any = {};\n if (message.header !== undefined) {\n obj.header = BlockHeader.toJSON(message.header);\n }\n if (message.withdrawals?.length) {\n obj.withdrawals = message.withdrawals.map((e) => Withdrawal.toJSON(e));\n }\n if (message.transactions?.length) {\n obj.transactions = message.transactions.map((e) => Transaction.toJSON(e));\n }\n if (message.receipts?.length) {\n obj.receipts = message.receipts.map((e) => TransactionReceipt.toJSON(e));\n }\n if (message.logs?.length) {\n obj.logs = message.logs.map((e) => Log.toJSON(e));\n }\n if (message.traces?.length) {\n obj.traces = message.traces.map((e) => TransactionTrace.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<Block>): Block {\n return Block.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Block>): Block {\n const message = createBaseBlock() as any;\n message.header = (object.header !== undefined && object.header !== null)\n ? BlockHeader.fromPartial(object.header)\n : undefined;\n message.withdrawals = object.withdrawals?.map((e) => Withdrawal.fromPartial(e)) || [];\n message.transactions = object.transactions?.map((e) => Transaction.fromPartial(e)) || [];\n message.receipts = object.receipts?.map((e) => TransactionReceipt.fromPartial(e)) || [];\n message.logs = object.logs?.map((e) => Log.fromPartial(e)) || [];\n message.traces = object.traces?.map((e) => TransactionTrace.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseBlockHeader(): BlockHeader {\n return {\n blockNumber: BigInt(\"0\"),\n blockHash: undefined,\n parentBlockHash: undefined,\n unclesHash: undefined,\n miner: undefined,\n stateRoot: undefined,\n transactionsRoot: undefined,\n receiptsRoot: undefined,\n logsBloom: undefined,\n difficulty: undefined,\n gasLimit: undefined,\n gasUsed: undefined,\n timestamp: undefined,\n extraData: new Uint8Array(0),\n mixHash: undefined,\n nonce: undefined,\n baseFeePerGas: undefined,\n withdrawalsRoot: undefined,\n totalDifficulty: undefined,\n blobGasUsed: undefined,\n excessBlobGas: undefined,\n parentBeaconBlockRoot: undefined,\n requestsHash: undefined,\n };\n}\n\nexport const BlockHeader = {\n encode(message: BlockHeader, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.blockNumber !== undefined && message.blockNumber !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.blockNumber) !== message.blockNumber) {\n throw new globalThis.Error(\"value provided for field message.blockNumber of type uint64 too large\");\n }\n writer.uint32(8).uint64(message.blockNumber.toString());\n }\n if (message.blockHash !== undefined) {\n B256.encode(message.blockHash, writer.uint32(18).fork()).ldelim();\n }\n if (message.parentBlockHash !== undefined) {\n B256.encode(message.parentBlockHash, writer.uint32(26).fork()).ldelim();\n }\n if (message.unclesHash !== undefined) {\n B256.encode(message.unclesHash, writer.uint32(34).fork()).ldelim();\n }\n if (message.miner !== undefined) {\n Address.encode(message.miner, writer.uint32(42).fork()).ldelim();\n }\n if (message.stateRoot !== undefined) {\n B256.encode(message.stateRoot, writer.uint32(50).fork()).ldelim();\n }\n if (message.transactionsRoot !== undefined) {\n B256.encode(message.transactionsRoot, writer.uint32(58).fork()).ldelim();\n }\n if (message.receiptsRoot !== undefined) {\n B256.encode(message.receiptsRoot, writer.uint32(66).fork()).ldelim();\n }\n if (message.logsBloom !== undefined) {\n Bloom.encode(message.logsBloom, writer.uint32(74).fork()).ldelim();\n }\n if (message.difficulty !== undefined) {\n U256.encode(message.difficulty, writer.uint32(82).fork()).ldelim();\n }\n if (message.gasLimit !== undefined) {\n U128.encode(message.gasLimit, writer.uint32(90).fork()).ldelim();\n }\n if (message.gasUsed !== undefined) {\n U128.encode(message.gasUsed, writer.uint32(98).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(106).fork()).ldelim();\n }\n if (message.extraData !== undefined && message.extraData.length !== 0) {\n writer.uint32(114).bytes(message.extraData);\n }\n if (message.mixHash !== undefined) {\n B256.encode(message.mixHash, writer.uint32(122).fork()).ldelim();\n }\n if (message.nonce !== undefined) {\n if (BigInt.asUintN(64, message.nonce) !== message.nonce) {\n throw new globalThis.Error(\"value provided for field message.nonce of type uint64 too large\");\n }\n writer.uint32(128).uint64(message.nonce.toString());\n }\n if (message.baseFeePerGas !== undefined) {\n U128.encode(message.baseFeePerGas, writer.uint32(138).fork()).ldelim();\n }\n if (message.withdrawalsRoot !== undefined) {\n B256.encode(message.withdrawalsRoot, writer.uint32(146).fork()).ldelim();\n }\n if (message.totalDifficulty !== undefined) {\n U256.encode(message.totalDifficulty, writer.uint32(154).fork()).ldelim();\n }\n if (message.blobGasUsed !== undefined) {\n U128.encode(message.blobGasUsed, writer.uint32(162).fork()).ldelim();\n }\n if (message.excessBlobGas !== undefined) {\n U128.encode(message.excessBlobGas, writer.uint32(170).fork()).ldelim();\n }\n if (message.parentBeaconBlockRoot !== undefined) {\n B256.encode(message.parentBeaconBlockRoot, writer.uint32(178).fork()).ldelim();\n }\n if (message.requestsHash !== undefined) {\n B256.encode(message.requestsHash, writer.uint32(186).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): BlockHeader {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockHeader() as any;\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.blockNumber = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.blockHash = B256.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.parentBlockHash = B256.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.unclesHash = B256.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.miner = Address.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.stateRoot = B256.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.transactionsRoot = B256.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.receiptsRoot = B256.decode(reader, reader.uint32());\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.logsBloom = Bloom.decode(reader, reader.uint32());\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n\n message.difficulty = U256.decode(reader, reader.uint32());\n continue;\n case 11:\n if (tag !== 90) {\n break;\n }\n\n message.gasLimit = U128.decode(reader, reader.uint32());\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n\n message.gasUsed = U128.decode(reader, reader.uint32());\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n\n message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n case 14:\n if (tag !== 114) {\n break;\n }\n\n message.extraData = reader.bytes();\n continue;\n case 15:\n if (tag !== 122) {\n break;\n }\n\n message.mixHash = B256.decode(reader, reader.uint32());\n continue;\n case 16:\n if (tag !== 128) {\n break;\n }\n\n message.nonce = longToBigint(reader.uint64() as Long);\n continue;\n case 17:\n if (tag !== 138) {\n break;\n }\n\n message.baseFeePerGas = U128.decode(reader, reader.uint32());\n continue;\n case 18:\n if (tag !== 146) {\n break;\n }\n\n message.withdrawalsRoot = B256.decode(reader, reader.uint32());\n continue;\n case 19:\n if (tag !== 154) {\n break;\n }\n\n message.totalDifficulty = U256.decode(reader, reader.uint32());\n continue;\n case 20:\n if (tag !== 162) {\n break;\n }\n\n message.blobGasUsed = U128.decode(reader, reader.uint32());\n continue;\n case 21:\n if (tag !== 170) {\n break;\n }\n\n message.excessBlobGas = U128.decode(reader, reader.uint32());\n continue;\n case 22:\n if (tag !== 178) {\n break;\n }\n\n message.parentBeaconBlockRoot = B256.decode(reader, reader.uint32());\n continue;\n case 23:\n if (tag !== 186) {\n break;\n }\n\n message.requestsHash = B256.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): BlockHeader {\n return {\n blockNumber: isSet(object.blockNumber) ? BigInt(object.blockNumber) : BigInt(\"0\"),\n blockHash: isSet(object.blockHash) ? B256.fromJSON(object.blockHash) : undefined,\n parentBlockHash: isSet(object.parentBlockHash) ? B256.fromJSON(object.parentBlockHash) : undefined,\n unclesHash: isSet(object.unclesHash) ? B256.fromJSON(object.unclesHash) : undefined,\n miner: isSet(object.miner) ? Address.fromJSON(object.miner) : undefined,\n stateRoot: isSet(object.stateRoot) ? B256.fromJSON(object.stateRoot) : undefined,\n transactionsRoot: isSet(object.transactionsRoot) ? B256.fromJSON(object.transactionsRoot) : undefined,\n receiptsRoot: isSet(object.receiptsRoot) ? B256.fromJSON(object.receiptsRoot) : undefined,\n logsBloom: isSet(object.logsBloom) ? Bloom.fromJSON(object.logsBloom) : undefined,\n difficulty: isSet(object.difficulty) ? U256.fromJSON(object.difficulty) : undefined,\n gasLimit: isSet(object.gasLimit) ? U128.fromJSON(object.gasLimit) : undefined,\n gasUsed: isSet(object.gasUsed) ? U128.fromJSON(object.gasUsed) : undefined,\n timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : undefined,\n extraData: isSet(object.extraData) ? bytesFromBase64(object.extraData) : new Uint8Array(0),\n mixHash: isSet(object.mixHash) ? B256.fromJSON(object.mixHash) : undefined,\n nonce: isSet(object.nonce) ? BigInt(object.nonce) : undefined,\n baseFeePerGas: isSet(object.baseFeePerGas) ? U128.fromJSON(object.baseFeePerGas) : undefined,\n withdrawalsRoot: isSet(object.withdrawalsRoot) ? B256.fromJSON(object.withdrawalsRoot) : undefined,\n totalDifficulty: isSet(object.totalDifficulty) ? U256.fromJSON(object.totalDifficulty) : undefined,\n blobGasUsed: isSet(object.blobGasUsed) ? U128.fromJSON(object.blobGasUsed) : undefined,\n excessBlobGas: isSet(object.excessBlobGas) ? U128.fromJSON(object.excessBlobGas) : undefined,\n parentBeaconBlockRoot: isSet(object.parentBeaconBlockRoot)\n ? B256.fromJSON(object.parentBeaconBlockRoot)\n : undefined,\n requestsHash: isSet(object.requestsHash) ? B256.fromJSON(object.requestsHash) : undefined,\n };\n },\n\n toJSON(message: BlockHeader): unknown {\n const obj: any = {};\n if (message.blockNumber !== undefined && message.blockNumber !== BigInt(\"0\")) {\n obj.blockNumber = message.blockNumber.toString();\n }\n if (message.blockHash !== undefined) {\n obj.blockHash = B256.toJSON(message.blockHash);\n }\n if (message.parentBlockHash !== undefined) {\n obj.parentBlockHash = B256.toJSON(message.parentBlockHash);\n }\n if (message.unclesHash !== undefined) {\n obj.unclesHash = B256.toJSON(message.unclesHash);\n }\n if (message.miner !== undefined) {\n obj.miner = Address.toJSON(message.miner);\n }\n if (message.stateRoot !== undefined) {\n obj.stateRoot = B256.toJSON(message.stateRoot);\n }\n if (message.transactionsRoot !== undefined) {\n obj.transactionsRoot = B256.toJSON(message.transactionsRoot);\n }\n if (message.receiptsRoot !== undefined) {\n obj.receiptsRoot = B256.toJSON(message.receiptsRoot);\n }\n if (message.logsBloom !== undefined) {\n obj.logsBloom = Bloom.toJSON(message.logsBloom);\n }\n if (message.difficulty !== undefined) {\n obj.difficulty = U256.toJSON(message.difficulty);\n }\n if (message.gasLimit !== undefined) {\n obj.gasLimit = U128.toJSON(message.gasLimit);\n }\n if (message.gasUsed !== undefined) {\n obj.gasUsed = U128.toJSON(message.gasUsed);\n }\n if (message.timestamp !== undefined) {\n obj.timestamp = message.timestamp.toISOString();\n }\n if (message.extraData !== undefined && message.extraData.length !== 0) {\n obj.extraData = base64FromBytes(message.extraData);\n }\n if (message.mixHash !== undefined) {\n obj.mixHash = B256.toJSON(message.mixHash);\n }\n if (message.nonce !== undefined) {\n obj.nonce = message.nonce.toString();\n }\n if (message.baseFeePerGas !== undefined) {\n obj.baseFeePerGas = U128.toJSON(message.baseFeePerGas);\n }\n if (message.withdrawalsRoot !== undefined) {\n obj.withdrawalsRoot = B256.toJSON(message.withdrawalsRoot);\n }\n if (message.totalDifficulty !== undefined) {\n obj.totalDifficulty = U256.toJSON(message.totalDifficulty);\n }\n if (message.blobGasUsed !== undefined) {\n obj.blobGasUsed = U128.toJSON(message.blobGasUsed);\n }\n if (message.excessBlobGas !== undefined) {\n obj.excessBlobGas = U128.toJSON(message.excessBlobGas);\n }\n if (message.parentBeaconBlockRoot !== undefined) {\n obj.parentBeaconBlockRoot = B256.toJSON(message.parentBeaconBlockRoot);\n }\n if (message.requestsHash !== undefined) {\n obj.requestsHash = B256.toJSON(message.requestsHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<BlockHeader>): BlockHeader {\n return BlockHeader.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<BlockHeader>): BlockHeader {\n const message = createBaseBlockHeader() as any;\n message.blockNumber = object.blockNumber ?? BigInt(\"0\");\n message.blockHash = (object.blockHash !== undefined && object.blockHash !== null)\n ? B256.fromPartial(object.blockHash)\n : undefined;\n message.parentBlockHash = (object.parentBlockHash !== undefined && object.parentBlockHash !== null)\n ? B256.fromPartial(object.parentBlockHash)\n : undefined;\n message.unclesHash = (object.unclesHash !== undefined && object.unclesHash !== null)\n ? B256.fromPartial(object.unclesHash)\n : undefined;\n message.miner = (object.miner !== undefined && object.miner !== null)\n ? Address.fromPartial(object.miner)\n : undefined;\n message.stateRoot = (object.stateRoot !== undefined && object.stateRoot !== null)\n ? B256.fromPartial(object.stateRoot)\n : undefined;\n message.transactionsRoot = (object.transactionsRoot !== undefined && object.transactionsRoot !== null)\n ? B256.fromPartial(object.transactionsRoot)\n : undefined;\n message.receiptsRoot = (object.receiptsRoot !== undefined && object.receiptsRoot !== null)\n ? B256.fromPartial(object.receiptsRoot)\n : undefined;\n message.logsBloom = (object.logsBloom !== undefined && object.logsBloom !== null)\n ? Bloom.fromPartial(object.logsBloom)\n : undefined;\n message.difficulty = (object.difficulty !== undefined && object.difficulty !== null)\n ? U256.fromPartial(object.difficulty)\n : undefined;\n message.gasLimit = (object.gasLimit !== undefined && object.gasLimit !== null)\n ? U128.fromPartial(object.gasLimit)\n : undefined;\n message.gasUsed = (object.gasUsed !== undefined && object.gasUsed !== null)\n ? U128.fromPartial(object.gasUsed)\n : undefined;\n message.timestamp = object.timestamp ?? undefined;\n message.extraData = object.extraData ?? new Uint8Array(0);\n message.mixHash = (object.mixHash !== undefined && object.mixHash !== null)\n ? B256.fromPartial(object.mixHash)\n : undefined;\n message.nonce = object.nonce ?? undefined;\n message.baseFeePerGas = (object.baseFeePerGas !== undefined && object.baseFeePerGas !== null)\n ? U128.fromPartial(object.baseFeePerGas)\n : undefined;\n message.withdrawalsRoot = (object.withdrawalsRoot !== undefined && object.withdrawalsRoot !== null)\n ? B256.fromPartial(object.withdrawalsRoot)\n : undefined;\n message.totalDifficulty = (object.totalDifficulty !== undefined && object.totalDifficulty !== null)\n ? U256.fromPartial(object.totalDifficulty)\n : undefined;\n message.blobGasUsed = (object.blobGasUsed !== undefined && object.blobGasUsed !== null)\n ? U128.fromPartial(object.blobGasUsed)\n : undefined;\n message.excessBlobGas = (object.excessBlobGas !== undefined && object.excessBlobGas !== null)\n ? U128.fromPartial(object.excessBlobGas)\n : undefined;\n message.parentBeaconBlockRoot =\n (object.parentBeaconBlockRoot !== undefined && object.parentBeaconBlockRoot !== null)\n ? B256.fromPartial(object.parentBeaconBlockRoot)\n : undefined;\n message.requestsHash = (object.requestsHash !== undefined && object.requestsHash !== null)\n ? B256.fromPartial(object.requestsHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseWithdrawal(): Withdrawal {\n return {\n filterIds: [],\n withdrawalIndex: 0,\n index: BigInt(\"0\"),\n validatorIndex: 0,\n address: undefined,\n amount: BigInt(\"0\"),\n };\n}\n\nexport const Withdrawal = {\n encode(message: Withdrawal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.filterIds !== undefined && message.filterIds.length !== 0) {\n writer.uint32(10).fork();\n for (const v of message.filterIds) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.withdrawalIndex !== undefined && message.withdrawalIndex !== 0) {\n writer.uint32(16).uint32(message.withdrawalIndex);\n }\n if (message.index !== undefined && message.index !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.index) !== message.index) {\n throw new globalThis.Error(\"value provided for field message.index of type uint64 too large\");\n }\n writer.uint32(24).uint64(message.index.toString());\n }\n if (message.validatorIndex !== undefined && message.validatorIndex !== 0) {\n writer.uint32(32).uint32(message.validatorIndex);\n }\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(42).fork()).ldelim();\n }\n if (message.amount !== undefined && message.amount !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.amount) !== message.amount) {\n throw new globalThis.Error(\"value provided for field message.amount of type uint64 too large\");\n }\n writer.uint32(48).uint64(message.amount.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Withdrawal {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWithdrawal() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag === 8) {\n message.filterIds!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 10) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.filterIds!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.withdrawalIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.index = longToBigint(reader.uint64() as Long);\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.validatorIndex = reader.uint32();\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.address = Address.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.amount = longToBigint(reader.uint64() as Long);\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Withdrawal {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n withdrawalIndex: isSet(object.withdrawalIndex) ? globalThis.Number(object.withdrawalIndex) : 0,\n index: isSet(object.index) ? BigInt(object.index) : BigInt(\"0\"),\n validatorIndex: isSet(object.validatorIndex) ? globalThis.Number(object.validatorIndex) : 0,\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n amount: isSet(object.amount) ? BigInt(object.amount) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: Withdrawal): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.withdrawalIndex !== undefined && message.withdrawalIndex !== 0) {\n obj.withdrawalIndex = Math.round(message.withdrawalIndex);\n }\n if (message.index !== undefined && message.index !== BigInt(\"0\")) {\n obj.index = message.index.toString();\n }\n if (message.validatorIndex !== undefined && message.validatorIndex !== 0) {\n obj.validatorIndex = Math.round(message.validatorIndex);\n }\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.amount !== undefined && message.amount !== BigInt(\"0\")) {\n obj.amount = message.amount.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<Withdrawal>): Withdrawal {\n return Withdrawal.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Withdrawal>): Withdrawal {\n const message = createBaseWithdrawal() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.withdrawalIndex = object.withdrawalIndex ?? 0;\n message.index = object.index ?? BigInt(\"0\");\n message.validatorIndex = object.validatorIndex ?? 0;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.amount = object.amount ?? BigInt(\"0\");\n return message;\n },\n};\n\nfunction createBaseTransaction(): Transaction {\n return {\n filterIds: [],\n transactionIndex: 0,\n transactionHash: undefined,\n nonce: BigInt(\"0\"),\n from: undefined,\n to: undefined,\n value: undefined,\n gasPrice: undefined,\n gas: undefined,\n maxFeePerGas: undefined,\n maxPriorityFeePerGas: undefined,\n input: new Uint8Array(0),\n signature: undefined,\n chainId: undefined,\n accessList: [],\n transactionType: BigInt(\"0\"),\n maxFeePerBlobGas: undefined,\n blobVersionedHashes: [],\n transactionStatus: 0,\n };\n}\n\nexport const Transaction = {\n encode(message: Transaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.filterIds !== undefined && message.filterIds.length !== 0) {\n writer.uint32(10).fork();\n for (const v of message.filterIds) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(16).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n B256.encode(message.transactionHash, writer.uint32(26).fork()).ldelim();\n }\n if (message.nonce !== undefined && message.nonce !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.nonce) !== message.nonce) {\n throw new globalThis.Error(\"value provided for field message.nonce of type uint64 too large\");\n }\n writer.uint32(32).uint64(message.nonce.toString());\n }\n if (message.from !== undefined) {\n Address.encode(message.from, writer.uint32(42).fork()).ldelim();\n }\n if (message.to !== undefined) {\n Address.encode(message.to, writer.uint32(50).fork()).ldelim();\n }\n if (message.value !== undefined) {\n U256.encode(message.value, writer.uint32(58).fork()).ldelim();\n }\n if (message.gasPrice !== undefined) {\n U128.encode(message.gasPrice, writer.uint32(66).fork()).ldelim();\n }\n if (message.gas !== undefined) {\n U128.encode(message.gas, writer.uint32(74).fork()).ldelim();\n }\n if (message.maxFeePerGas !== undefined) {\n U128.encode(message.maxFeePerGas, writer.uint32(82).fork()).ldelim();\n }\n if (message.maxPriorityFeePerGas !== undefined) {\n U128.encode(message.maxPriorityFeePerGas, writer.uint32(90).fork()).ldelim();\n }\n if (message.input !== undefined && message.input.length !== 0) {\n writer.uint32(98).bytes(message.input);\n }\n if (message.signature !== undefined) {\n Signature.encode(message.signature, writer.uint32(106).fork()).ldelim();\n }\n if (message.chainId !== undefined) {\n if (BigInt.asUintN(64, message.chainId) !== message.chainId) {\n throw new globalThis.Error(\"value provided for field message.chainId of type uint64 too large\");\n }\n writer.uint32(112).uint64(message.chainId.toString());\n }\n if (message.accessList !== undefined && message.accessList.length !== 0) {\n for (const v of message.accessList) {\n AccessListItem.encode(v!, writer.uint32(122).fork()).ldelim();\n }\n }\n if (message.transactionType !== undefined && message.transactionType !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.transactionType) !== message.transactionType) {\n throw new globalThis.Error(\"value provided for field message.transactionType of type uint64 too large\");\n }\n writer.uint32(128).uint64(message.transactionType.toString());\n }\n if (message.maxFeePerBlobGas !== undefined) {\n U128.encode(message.maxFeePerBlobGas, writer.uint32(138).fork()).ldelim();\n }\n if (message.blobVersionedHashes !== undefined && message.blobVersionedHashes.length !== 0) {\n for (const v of message.blobVersionedHashes) {\n B256.encode(v!, writer.uint32(146).fork()).ldelim();\n }\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n writer.uint32(152).int32(message.transactionStatus);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Transaction {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTransaction() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag === 8) {\n message.filterIds!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 10) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.filterIds!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.transactionIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transactionHash = B256.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.nonce = longToBigint(reader.uint64() as Long);\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.from = Address.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.to = Address.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.value = U256.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.gasPrice = U128.decode(reader, reader.uint32());\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.gas = U128.decode(reader, reader.uint32());\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n\n message.maxFeePerGas = U128.decode(reader, reader.uint32());\n continue;\n case 11:\n if (tag !== 90) {\n break;\n }\n\n message.maxPriorityFeePerGas = U128.decode(reader, reader.uint32());\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n\n message.input = reader.bytes();\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n\n message.signature = Signature.decode(reader, reader.uint32());\n continue;\n case 14:\n if (tag !== 112) {\n break;\n }\n\n message.chainId = longToBigint(reader.uint64() as Long);\n continue;\n case 15:\n if (tag !== 122) {\n break;\n }\n\n message.accessList!.push(AccessListItem.decode(reader, reader.uint32()));\n continue;\n case 16:\n if (tag !== 128) {\n break;\n }\n\n message.transactionType = longToBigint(reader.uint64() as Long);\n continue;\n case 17:\n if (tag !== 138) {\n break;\n }\n\n message.maxFeePerBlobGas = U128.decode(reader, reader.uint32());\n continue;\n case 18:\n if (tag !== 146) {\n break;\n }\n\n message.blobVersionedHashes!.push(B256.decode(reader, reader.uint32()));\n continue;\n case 19:\n if (tag !== 152) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Transaction {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? B256.fromJSON(object.transactionHash) : undefined,\n nonce: isSet(object.nonce) ? BigInt(object.nonce) : BigInt(\"0\"),\n from: isSet(object.from) ? Address.fromJSON(object.from) : undefined,\n to: isSet(object.to) ? Address.fromJSON(object.to) : undefined,\n value: isSet(object.value) ? U256.fromJSON(object.value) : undefined,\n gasPrice: isSet(object.gasPrice) ? U128.fromJSON(object.gasPrice) : undefined,\n gas: isSet(object.gas) ? U128.fromJSON(object.gas) : undefined,\n maxFeePerGas: isSet(object.maxFeePerGas) ? U128.fromJSON(object.maxFeePerGas) : undefined,\n maxPriorityFeePerGas: isSet(object.maxPriorityFeePerGas) ? U128.fromJSON(object.maxPriorityFeePerGas) : undefined,\n input: isSet(object.input) ? bytesFromBase64(object.input) : new Uint8Array(0),\n signature: isSet(object.signature) ? Signature.fromJSON(object.signature) : undefined,\n chainId: isSet(object.chainId) ? BigInt(object.chainId) : undefined,\n accessList: globalThis.Array.isArray(object?.accessList)\n ? object.accessList.map((e: any) => AccessListItem.fromJSON(e))\n : [],\n transactionType: isSet(object.transactionType) ? BigInt(object.transactionType) : BigInt(\"0\"),\n maxFeePerBlobGas: isSet(object.maxFeePerBlobGas) ? U128.fromJSON(object.maxFeePerBlobGas) : undefined,\n blobVersionedHashes: globalThis.Array.isArray(object?.blobVersionedHashes)\n ? object.blobVersionedHashes.map((e: any) => B256.fromJSON(e))\n : [],\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n };\n },\n\n toJSON(message: Transaction): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = B256.toJSON(message.transactionHash);\n }\n if (message.nonce !== undefined && message.nonce !== BigInt(\"0\")) {\n obj.nonce = message.nonce.toString();\n }\n if (message.from !== undefined) {\n obj.from = Address.toJSON(message.from);\n }\n if (message.to !== undefined) {\n obj.to = Address.toJSON(message.to);\n }\n if (message.value !== undefined) {\n obj.value = U256.toJSON(message.value);\n }\n if (message.gasPrice !== undefined) {\n obj.gasPrice = U128.toJSON(message.gasPrice);\n }\n if (message.gas !== undefined) {\n obj.gas = U128.toJSON(message.gas);\n }\n if (message.maxFeePerGas !== undefined) {\n obj.maxFeePerGas = U128.toJSON(message.maxFeePerGas);\n }\n if (message.maxPriorityFeePerGas !== undefined) {\n obj.maxPriorityFeePerGas = U128.toJSON(message.maxPriorityFeePerGas);\n }\n if (message.input !== undefined && message.input.length !== 0) {\n obj.input = base64FromBytes(message.input);\n }\n if (message.signature !== undefined) {\n obj.signature = Signature.toJSON(message.signature);\n }\n if (message.chainId !== undefined) {\n obj.chainId = message.chainId.toString();\n }\n if (message.accessList?.length) {\n obj.accessList = message.accessList.map((e) => AccessListItem.toJSON(e));\n }\n if (message.transactionType !== undefined && message.transactionType !== BigInt(\"0\")) {\n obj.transactionType = message.transactionType.toString();\n }\n if (message.maxFeePerBlobGas !== undefined) {\n obj.maxFeePerBlobGas = U128.toJSON(message.maxFeePerBlobGas);\n }\n if (message.blobVersionedHashes?.length) {\n obj.blobVersionedHashes = message.blobVersionedHashes.map((e) => B256.toJSON(e));\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n obj.transactionStatus = transactionStatusToJSON(message.transactionStatus);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Transaction>): Transaction {\n return Transaction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Transaction>): Transaction {\n const message = createBaseTransaction() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? B256.fromPartial(object.transactionHash)\n : undefined;\n message.nonce = object.nonce ?? BigInt(\"0\");\n message.from = (object.from !== undefined && object.from !== null) ? Address.fromPartial(object.from) : undefined;\n message.to = (object.to !== undefined && object.to !== null) ? Address.fromPartial(object.to) : undefined;\n message.value = (object.value !== undefined && object.value !== null) ? U256.fromPartial(object.value) : undefined;\n message.gasPrice = (object.gasPrice !== undefined && object.gasPrice !== null)\n ? U128.fromPartial(object.gasPrice)\n : undefined;\n message.gas = (object.gas !== undefined && object.gas !== null) ? U128.fromPartial(object.gas) : undefined;\n message.maxFeePerGas = (object.maxFeePerGas !== undefined && object.maxFeePerGas !== null)\n ? U128.fromPartial(object.maxFeePerGas)\n : undefined;\n message.maxPriorityFeePerGas = (object.maxPriorityFeePerGas !== undefined && object.maxPriorityFeePerGas !== null)\n ? U128.fromPartial(object.maxPriorityFeePerGas)\n : undefined;\n message.input = object.input ?? new Uint8Array(0);\n message.signature = (object.signature !== undefined && object.signature !== null)\n ? Signature.fromPartial(object.signature)\n : undefined;\n message.chainId = object.chainId ?? undefined;\n message.accessList = object.accessList?.map((e) => AccessListItem.fromPartial(e)) || [];\n message.transactionType = object.transactionType ?? BigInt(\"0\");\n message.maxFeePerBlobGas = (object.maxFeePerBlobGas !== undefined && object.maxFeePerBlobGas !== null)\n ? U128.fromPartial(object.maxFeePerBlobGas)\n : undefined;\n message.blobVersionedHashes = object.blobVersionedHashes?.map((e) => B256.fromPartial(e)) || [];\n message.transactionStatus = object.transactionStatus ?? 0;\n return message;\n },\n};\n\nfunction createBaseTransactionReceipt(): TransactionReceipt {\n return {\n filterIds: [],\n transactionIndex: 0,\n transactionHash: undefined,\n cumulativeGasUsed: undefined,\n gasUsed: undefined,\n effectiveGasPrice: undefined,\n from: undefined,\n to: undefined,\n contractAddress: undefined,\n logsBloom: undefined,\n transactionType: BigInt(\"0\"),\n blobGasUsed: undefined,\n blobGasPrice: undefined,\n transactionStatus: 0,\n };\n}\n\nexport const TransactionReceipt = {\n encode(message: TransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.filterIds !== undefined && message.filterIds.length !== 0) {\n writer.uint32(10).fork();\n for (const v of message.filterIds) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(16).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n B256.encode(message.transactionHash, writer.uint32(26).fork()).ldelim();\n }\n if (message.cumulativeGasUsed !== undefined) {\n U128.encode(message.cumulativeGasUsed, writer.uint32(34).fork()).ldelim();\n }\n if (message.gasUsed !== undefined) {\n U128.encode(message.gasUsed, writer.uint32(42).fork()).ldelim();\n }\n if (message.effectiveGasPrice !== undefined) {\n U128.encode(message.effectiveGasPrice, writer.uint32(50).fork()).ldelim();\n }\n if (message.from !== undefined) {\n Address.encode(message.from, writer.uint32(58).fork()).ldelim();\n }\n if (message.to !== undefined) {\n Address.encode(message.to, writer.uint32(66).fork()).ldelim();\n }\n if (message.contractAddress !== undefined) {\n Address.encode(message.contractAddress, writer.uint32(74).fork()).ldelim();\n }\n if (message.logsBloom !== undefined) {\n Bloom.encode(message.logsBloom, writer.uint32(82).fork()).ldelim();\n }\n if (message.transactionType !== undefined && message.transactionType !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.transactionType) !== message.transactionType) {\n throw new globalThis.Error(\"value provided for field message.transactionType of type uint64 too large\");\n }\n writer.uint32(88).uint64(message.transactionType.toString());\n }\n if (message.blobGasUsed !== undefined) {\n U128.encode(message.blobGasUsed, writer.uint32(98).fork()).ldelim();\n }\n if (message.blobGasPrice !== undefined) {\n U128.encode(message.blobGasPrice, writer.uint32(106).fork()).ldelim();\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n writer.uint32(112).int32(message.transactionStatus);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TransactionReceipt {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTransactionReceipt() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag === 8) {\n message.filterIds!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 10) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.filterIds!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.transactionIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transactionHash = B256.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.cumulativeGasUsed = U128.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.gasUsed = U128.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.effectiveGasPrice = U128.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.from = Address.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.to = Address.decode(reader, reader.uint32());\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.contractAddress = Address.decode(reader, reader.uint32());\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n\n message.logsBloom = Bloom.decode(reader, reader.uint32());\n continue;\n case 11:\n if (tag !== 88) {\n break;\n }\n\n message.transactionType = longToBigint(reader.uint64() as Long);\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n\n message.blobGasUsed = U128.decode(reader, reader.uint32());\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n\n message.blobGasPrice = U128.decode(reader, reader.uint32());\n continue;\n case 14:\n if (tag !== 112) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): TransactionReceipt {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? B256.fromJSON(object.transactionHash) : undefined,\n cumulativeGasUsed: isSet(object.cumulativeGasUsed) ? U128.fromJSON(object.cumulativeGasUsed) : undefined,\n gasUsed: isSet(object.gasUsed) ? U128.fromJSON(object.gasUsed) : undefined,\n effectiveGasPrice: isSet(object.effectiveGasPrice) ? U128.fromJSON(object.effectiveGasPrice) : undefined,\n from: isSet(object.from) ? Address.fromJSON(object.from) : undefined,\n to: isSet(object.to) ? Address.fromJSON(object.to) : undefined,\n contractAddress: isSet(object.contractAddress) ? Address.fromJSON(object.contractAddress) : undefined,\n logsBloom: isSet(object.logsBloom) ? Bloom.fromJSON(object.logsBloom) : undefined,\n transactionType: isSet(object.transactionType) ? BigInt(object.transactionType) : BigInt(\"0\"),\n blobGasUsed: isSet(object.blobGasUsed) ? U128.fromJSON(object.blobGasUsed) : undefined,\n blobGasPrice: isSet(object.blobGasPrice) ? U128.fromJSON(object.blobGasPrice) : undefined,\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n };\n },\n\n toJSON(message: TransactionReceipt): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = B256.toJSON(message.transactionHash);\n }\n if (message.cumulativeGasUsed !== undefined) {\n obj.cumulativeGasUsed = U128.toJSON(message.cumulativeGasUsed);\n }\n if (message.gasUsed !== undefined) {\n obj.gasUsed = U128.toJSON(message.gasUsed);\n }\n if (message.effectiveGasPrice !== undefined) {\n obj.effectiveGasPrice = U128.toJSON(message.effectiveGasPrice);\n }\n if (message.from !== undefined) {\n obj.from = Address.toJSON(message.from);\n }\n if (message.to !== undefined) {\n obj.to = Address.toJSON(message.to);\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = Address.toJSON(message.contractAddress);\n }\n if (message.logsBloom !== undefined) {\n obj.logsBloom = Bloom.toJSON(message.logsBloom);\n }\n if (message.transactionType !== undefined && message.transactionType !== BigInt(\"0\")) {\n obj.transactionType = message.transactionType.toString();\n }\n if (message.blobGasUsed !== undefined) {\n obj.blobGasUsed = U128.toJSON(message.blobGasUsed);\n }\n if (message.blobGasPrice !== undefined) {\n obj.blobGasPrice = U128.toJSON(message.blobGasPrice);\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n obj.transactionStatus = transactionStatusToJSON(message.transactionStatus);\n }\n return obj;\n },\n\n create(base?: DeepPartial<TransactionReceipt>): TransactionReceipt {\n return TransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<TransactionReceipt>): TransactionReceipt {\n const message = createBaseTransactionReceipt() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? B256.fromPartial(object.transactionHash)\n : undefined;\n message.cumulativeGasUsed = (object.cumulativeGasUsed !== undefined && object.cumulativeGasUsed !== null)\n ? U128.fromPartial(object.cumulativeGasUsed)\n : undefined;\n message.gasUsed = (object.gasUsed !== undefined && object.gasUsed !== null)\n ? U128.fromPartial(object.gasUsed)\n : undefined;\n message.effectiveGasPrice = (object.effectiveGasPrice !== undefined && object.effectiveGasPrice !== null)\n ? U128.fromPartial(object.effectiveGasPrice)\n : undefined;\n message.from = (object.from !== undefined && object.from !== null) ? Address.fromPartial(object.from) : undefined;\n message.to = (object.to !== undefined && object.to !== null) ? Address.fromPartial(object.to) : undefined;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? Address.fromPartial(object.contractAddress)\n : undefined;\n message.logsBloom = (object.logsBloom !== undefined && object.logsBloom !== null)\n ? Bloom.fromPartial(object.logsBloom)\n : undefined;\n message.transactionType = object.transactionType ?? BigInt(\"0\");\n message.blobGasUsed = (object.blobGasUsed !== undefined && object.blobGasUsed !== null)\n ? U128.fromPartial(object.blobGasUsed)\n : undefined;\n message.blobGasPrice = (object.blobGasPrice !== undefined && object.blobGasPrice !== null)\n ? U128.fromPartial(object.blobGasPrice)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? 0;\n return message;\n },\n};\n\nfunction createBaseLog(): Log {\n return {\n filterIds: [],\n logIndex: 0,\n address: undefined,\n topics: [],\n data: new Uint8Array(0),\n transactionIndex: 0,\n transactionHash: undefined,\n transactionStatus: 0,\n logIndexInTransaction: 0,\n };\n}\n\nexport const Log = {\n encode(message: Log, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.filterIds !== undefined && message.filterIds.length !== 0) {\n writer.uint32(10).fork();\n for (const v of message.filterIds) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.logIndex !== undefined && message.logIndex !== 0) {\n writer.uint32(16).uint32(message.logIndex);\n }\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(26).fork()).ldelim();\n }\n if (message.topics !== undefined && message.topics.length !== 0) {\n for (const v of message.topics) {\n B256.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.data !== undefined && message.data.length !== 0) {\n writer.uint32(42).bytes(message.data);\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(48).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n B256.encode(message.transactionHash, writer.uint32(58).fork()).ldelim();\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n writer.uint32(64).int32(message.transactionStatus);\n }\n if (message.logIndexInTransaction !== undefined && message.logIndexInTransaction !== 0) {\n writer.uint32(72).uint32(message.logIndexInTransaction);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Log {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLog() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag === 8) {\n message.filterIds!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 10) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.filterIds!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.logIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.address = Address.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.topics!.push(B256.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.data = reader.bytes();\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.transactionIndex = reader.uint32();\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.transactionHash = B256.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.logIndexInTransaction = reader.uint32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Log {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n logIndex: isSet(object.logIndex) ? globalThis.Number(object.logIndex) : 0,\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n topics: globalThis.Array.isArray(object?.topics) ? object.topics.map((e: any) => B256.fromJSON(e)) : [],\n data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(0),\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? B256.fromJSON(object.transactionHash) : undefined,\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n logIndexInTransaction: isSet(object.logIndexInTransaction) ? globalThis.Number(object.logIndexInTransaction) : 0,\n };\n },\n\n toJSON(message: Log): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.logIndex !== undefined && message.logIndex !== 0) {\n obj.logIndex = Math.round(message.logIndex);\n }\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.topics?.length) {\n obj.topics = message.topics.map((e) => B256.toJSON(e));\n }\n if (message.data !== undefined && message.data.length !== 0) {\n obj.data = base64FromBytes(message.data);\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = B256.toJSON(message.transactionHash);\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n obj.transactionStatus = transactionStatusToJSON(message.transactionStatus);\n }\n if (message.logIndexInTransaction !== undefined && message.logIndexInTransaction !== 0) {\n obj.logIndexInTransaction = Math.round(message.logIndexInTransaction);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Log>): Log {\n return Log.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Log>): Log {\n const message = createBaseLog() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.logIndex = object.logIndex ?? 0;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.topics = object.topics?.map((e) => B256.fromPartial(e)) || [];\n message.data = object.data ?? new Uint8Array(0);\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? B256.fromPartial(object.transactionHash)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? 0;\n message.logIndexInTransaction = object.logIndexInTransaction ?? 0;\n return message;\n },\n};\n\nfunction createBaseSignature(): Signature {\n return { r: undefined, s: undefined, v: undefined, yParity: undefined };\n}\n\nexport const Signature = {\n encode(message: Signature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.r !== undefined) {\n U256.encode(message.r, writer.uint32(10).fork()).ldelim();\n }\n if (message.s !== undefined) {\n U256.encode(message.s, writer.uint32(18).fork()).ldelim();\n }\n if (message.v !== undefined) {\n U256.encode(message.v, writer.uint32(26).fork()).ldelim();\n }\n if (message.yParity !== undefined) {\n writer.uint32(32).bool(message.yParity);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Signature {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignature() as any;\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.r = U256.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.s = U256.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.v = U256.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.yParity = reader.bool();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Signature {\n return {\n r: isSet(object.r) ? U256.fromJSON(object.r) : undefined,\n s: isSet(object.s) ? U256.fromJSON(object.s) : undefined,\n v: isSet(object.v) ? U256.fromJSON(object.v) : undefined,\n yParity: isSet(object.yParity) ? globalThis.Boolean(object.yParity) : undefined,\n };\n },\n\n toJSON(message: Signature): unknown {\n const obj: any = {};\n if (message.r !== undefined) {\n obj.r = U256.toJSON(message.r);\n }\n if (message.s !== undefined) {\n obj.s = U256.toJSON(message.s);\n }\n if (message.v !== undefined) {\n obj.v = U256.toJSON(message.v);\n }\n if (message.yParity !== undefined) {\n obj.yParity = message.yParity;\n }\n return obj;\n },\n\n create(base?: DeepPartial<Signature>): Signature {\n return Signature.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Signature>): Signature {\n const message = createBaseSignature() as any;\n message.r = (object.r !== undefined && object.r !== null) ? U256.fromPartial(object.r) : undefined;\n message.s = (object.s !== undefined && object.s !== null) ? U256.fromPartial(object.s) : undefined;\n message.v = (object.v !== undefined && object.v !== null) ? U256.fromPartial(object.v) : undefined;\n message.yParity = object.yParity ?? undefined;\n return message;\n },\n};\n\nfunction createBaseAccessListItem(): AccessListItem {\n return { address: undefined, storageKeys: [] };\n}\n\nexport const AccessListItem = {\n encode(message: AccessListItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(10).fork()).ldelim();\n }\n if (message.storageKeys !== undefined && message.storageKeys.length !== 0) {\n for (const v of message.storageKeys) {\n B256.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): AccessListItem {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAccessListItem() as any;\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.address = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.storageKeys!.push(B256.decode(reader, reader.uint32()));\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AccessListItem {\n return {\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n storageKeys: globalThis.Array.isArray(object?.storageKeys)\n ? object.storageKeys.map((e: any) => B256.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: AccessListItem): unknown {\n const obj: any = {};\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.storageKeys?.length) {\n obj.storageKeys = message.storageKeys.map((e) => B256.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<AccessListItem>): AccessListItem {\n return AccessListItem.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<AccessListItem>): AccessListItem {\n const message = createBaseAccessListItem() as any;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.storageKeys = object.storageKeys?.map((e) => B256.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseTransactionTrace(): TransactionTrace {\n return { filterIds: [], transactionIndex: 0, transactionHash: undefined, traces: [] };\n}\n\nexport const TransactionTrace = {\n encode(message: TransactionTrace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.filterIds !== undefined && message.filterIds.length !== 0) {\n writer.uint32(10).fork();\n for (const v of message.filterIds) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(16).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n B256.encode(message.transactionHash, writer.uint32(26).fork()).ldelim();\n }\n if (message.traces !== undefined && message.traces.length !== 0) {\n for (const v of message.traces) {\n Trace.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TransactionTrace {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTransactionTrace() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag === 8) {\n message.filterIds!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 10) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.filterIds!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.transactionIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transactionHash = B256.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.traces!.push(Trace.decode(reader, reader.uint32()));\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): TransactionTrace {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? B256.fromJSON(object.transactionHash) : undefined,\n traces: globalThis.Array.isArray(object?.traces) ? object.traces.map((e: any) => Trace.fromJSON(e)) : [],\n };\n },\n\n toJSON(message: TransactionTrace): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = B256.toJSON(message.transactionHash);\n }\n if (message.traces?.length) {\n obj.traces = message.traces.map((e) => Trace.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<TransactionTrace>): TransactionTrace {\n return TransactionTrace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<TransactionTrace>): TransactionTrace {\n const message = createBaseTransactionTrace() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? B256.fromPartial(object.transactionHash)\n : undefined;\n message.traces = object.traces?.map((e) => Trace.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseTrace(): Trace {\n return { action: undefined, error: undefined, output: undefined, subtraces: 0, traceAddress: [] };\n}\n\nexport const Trace = {\n encode(message: Trace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n switch (message.action?.$case) {\n case \"call\":\n CallAction.encode(message.action.call, writer.uint32(10).fork()).ldelim();\n break;\n case \"create\":\n CreateAction.encode(message.action.create, writer.uint32(18).fork()).ldelim();\n break;\n case \"selfDestruct\":\n SelfDestructAction.encode(message.action.selfDestruct, writer.uint32(26).fork()).ldelim();\n break;\n case \"reward\":\n RewardAction.encode(message.action.reward, writer.uint32(34).fork()).ldelim();\n break;\n }\n if (message.error !== undefined) {\n writer.uint32(42).string(message.error);\n }\n switch (message.output?.$case) {\n case \"callOutput\":\n CallOutput.encode(message.output.callOutput, writer.uint32(50).fork()).ldelim();\n break;\n case \"createOutput\":\n CreateOutput.encode(message.output.createOutput, writer.uint32(58).fork()).ldelim();\n break;\n }\n if (message.subtraces !== undefined && message.subtraces !== 0) {\n writer.uint32(64).uint32(message.subtraces);\n }\n if (message.traceAddress !== undefined && message.traceAddress.length !== 0) {\n writer.uint32(74).fork();\n for (const v of message.traceAddress) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Trace {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTrace() as any;\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.action = { $case: \"call\", call: CallAction.decode(reader, reader.uint32()) };\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.action = { $case: \"create\", create: CreateAction.decode(reader, reader.uint32()) };\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.action = { $case: \"selfDestruct\", selfDestruct: SelfDestructAction.decode(reader, reader.uint32()) };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.action = { $case: \"reward\", reward: RewardAction.decode(reader, reader.uint32()) };\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.error = reader.string();\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.output = { $case: \"callOutput\", callOutput: CallOutput.decode(reader, reader.uint32()) };\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.output = { $case: \"createOutput\", createOutput: CreateOutput.decode(reader, reader.uint32()) };\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n\n message.subtraces = reader.uint32();\n continue;\n case 9:\n if (tag === 72) {\n message.traceAddress!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 74) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.traceAddress!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Trace {\n return {\n action: isSet(object.call)\n ? { $case: \"call\", call: CallAction.fromJSON(object.call) }\n : isSet(object.create)\n ? { $case: \"create\", create: CreateAction.fromJSON(object.create) }\n : isSet(object.selfDestruct)\n ? { $case: \"selfDestruct\", selfDestruct: SelfDestructAction.fromJSON(object.selfDestruct) }\n : isSet(object.reward)\n ? { $case: \"reward\", reward: RewardAction.fromJSON(object.reward) }\n : undefined,\n error: isSet(object.error) ? globalThis.String(object.error) : undefined,\n output: isSet(object.callOutput)\n ? { $case: \"callOutput\", callOutput: CallOutput.fromJSON(object.callOutput) }\n : isSet(object.createOutput)\n ? { $case: \"createOutput\", createOutput: CreateOutput.fromJSON(object.createOutput) }\n : undefined,\n subtraces: isSet(object.subtraces) ? globalThis.Number(object.subtraces) : 0,\n traceAddress: globalThis.Array.isArray(object?.traceAddress)\n ? object.traceAddress.map((e: any) => globalThis.Number(e))\n : [],\n };\n },\n\n toJSON(message: Trace): unknown {\n const obj: any = {};\n if (message.action?.$case === \"call\") {\n obj.call = CallAction.toJSON(message.action.call);\n }\n if (message.action?.$case === \"create\") {\n obj.create = CreateAction.toJSON(message.action.create);\n }\n if (message.action?.$case === \"selfDestruct\") {\n obj.selfDestruct = SelfDestructAction.toJSON(message.action.selfDestruct);\n }\n if (message.action?.$case === \"reward\") {\n obj.reward = RewardAction.toJSON(message.action.reward);\n }\n if (message.error !== undefined) {\n obj.error = message.error;\n }\n if (message.output?.$case === \"callOutput\") {\n obj.callOutput = CallOutput.toJSON(message.output.callOutput);\n }\n if (message.output?.$case === \"createOutput\") {\n obj.createOutput = CreateOutput.toJSON(message.output.createOutput);\n }\n if (message.subtraces !== undefined && message.subtraces !== 0) {\n obj.subtraces = Math.round(message.subtraces);\n }\n if (message.traceAddress?.length) {\n obj.traceAddress = message.traceAddress.map((e) => Math.round(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<Trace>): Trace {\n return Trace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Trace>): Trace {\n const message = createBaseTrace() as any;\n if (object.action?.$case === \"call\" && object.action?.call !== undefined && object.action?.call !== null) {\n message.action = { $case: \"call\", call: CallAction.fromPartial(object.action.call) };\n }\n if (object.action?.$case === \"create\" && object.action?.create !== undefined && object.action?.create !== null) {\n message.action = { $case: \"create\", create: CreateAction.fromPartial(object.action.create) };\n }\n if (\n object.action?.$case === \"selfDestruct\" &&\n object.action?.selfDestruct !== undefined &&\n object.action?.selfDestruct !== null\n ) {\n message.action = {\n $case: \"selfDestruct\",\n selfDestruct: SelfDestructAction.fromPartial(object.action.selfDestruct),\n };\n }\n if (object.action?.$case === \"reward\" && object.action?.reward !== undefined && object.action?.reward !== null) {\n message.action = { $case: \"reward\", reward: RewardAction.fromPartial(object.action.reward) };\n }\n message.error = object.error ?? undefined;\n if (\n object.output?.$case === \"callOutput\" &&\n object.output?.callOutput !== undefined &&\n object.output?.callOutput !== null\n ) {\n message.output = { $case: \"callOutput\", callOutput: CallOutput.fromPartial(object.output.callOutput) };\n }\n if (\n object.output?.$case === \"createOutput\" &&\n object.output?.createOutput !== undefined &&\n object.output?.createOutput !== null\n ) {\n message.output = { $case: \"createOutput\", createOutput: CreateOutput.fromPartial(object.output.createOutput) };\n }\n message.subtraces = object.subtraces ?? 0;\n message.traceAddress = object.traceAddress?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseCallAction(): CallAction {\n return {\n fromAddress: undefined,\n type: 0,\n gas: BigInt(\"0\"),\n input: new Uint8Array(0),\n toAddress: undefined,\n value: undefined,\n };\n}\n\nexport const CallAction = {\n encode(message: CallAction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.fromAddress !== undefined) {\n Address.encode(message.fromAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.type !== undefined && message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n if (message.gas !== undefined && message.gas !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.gas) !== message.gas) {\n throw new globalThis.Error(\"value provided for field message.gas of type uint64 too large\");\n }\n writer.uint32(24).uint64(message.gas.toString());\n }\n if (message.input !== undefined && message.input.length !== 0) {\n writer.uint32(34).bytes(message.input);\n }\n if (message.toAddress !== undefined) {\n Address.encode(message.toAddress, writer.uint32(42).fork()).ldelim();\n }\n if (message.value !== undefined) {\n U256.encode(message.value, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CallAction {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCallAction() as any;\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.fromAddress = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.type = reader.int32() as any;\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.gas = longToBigint(reader.uint64() as Long);\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.input = reader.bytes();\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.toAddress = Address.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.value = U256.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): CallAction {\n return {\n fromAddress: isSet(object.fromAddress) ? Address.fromJSON(object.fromAddress) : undefined,\n type: isSet(object.type) ? callTypeFromJSON(object.type) : 0,\n gas: isSet(object.gas) ? BigInt(object.gas) : BigInt(\"0\"),\n input: isSet(object.input) ? bytesFromBase64(object.input) : new Uint8Array(0),\n toAddress: isSet(object.toAddress) ? Address.fromJSON(object.toAddress) : undefined,\n value: isSet(object.value) ? U256.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: CallAction): unknown {\n const obj: any = {};\n if (message.fromAddress !== undefined) {\n obj.fromAddress = Address.toJSON(message.fromAddress);\n }\n if (message.type !== undefined && message.type !== 0) {\n obj.type = callTypeToJSON(message.type);\n }\n if (message.gas !== undefined && message.gas !== BigInt(\"0\")) {\n obj.gas = message.gas.toString();\n }\n if (message.input !== undefined && message.input.length !== 0) {\n obj.input = base64FromBytes(message.input);\n }\n if (message.toAddress !== undefined) {\n obj.toAddress = Address.toJSON(message.toAddress);\n }\n if (message.value !== undefined) {\n obj.value = U256.toJSON(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<CallAction>): CallAction {\n return CallAction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<CallAction>): CallAction {\n const message = createBaseCallAction() as any;\n message.fromAddress = (object.fromAddress !== undefined && object.fromAddress !== null)\n ? Address.fromPartial(object.fromAddress)\n : undefined;\n message.type = object.type ?? 0;\n message.gas = object.gas ?? BigInt(\"0\");\n message.input = object.input ?? new Uint8Array(0);\n message.toAddress = (object.toAddress !== undefined && object.toAddress !== null)\n ? Address.fromPartial(object.toAddress)\n : undefined;\n message.value = (object.value !== undefined && object.value !== null) ? U256.fromPartial(object.value) : undefined;\n return message;\n },\n};\n\nfunction createBaseCreateAction(): CreateAction {\n return { fromAddress: undefined, gas: BigInt(\"0\"), init: new Uint8Array(0), value: undefined, creationMethod: 0 };\n}\n\nexport const CreateAction = {\n encode(message: CreateAction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.fromAddress !== undefined) {\n Address.encode(message.fromAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.gas !== undefined && message.gas !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.gas) !== message.gas) {\n throw new globalThis.Error(\"value provided for field message.gas of type uint64 too large\");\n }\n writer.uint32(16).uint64(message.gas.toString());\n }\n if (message.init !== undefined && message.init.length !== 0) {\n writer.uint32(26).bytes(message.init);\n }\n if (message.value !== undefined) {\n U256.encode(message.value, writer.uint32(34).fork()).ldelim();\n }\n if (message.creationMethod !== undefined && message.creationMethod !== 0) {\n writer.uint32(40).int32(message.creationMethod);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CreateAction {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCreateAction() as any;\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.fromAddress = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.gas = longToBigint(reader.uint64() as Long);\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.init = reader.bytes();\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.value = U256.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.creationMethod = reader.int32() as any;\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): CreateAction {\n return {\n fromAddress: isSet(object.fromAddress) ? Address.fromJSON(object.fromAddress) : undefined,\n gas: isSet(object.gas) ? BigInt(object.gas) : BigInt(\"0\"),\n init: isSet(object.init) ? bytesFromBase64(object.init) : new Uint8Array(0),\n value: isSet(object.value) ? U256.fromJSON(object.value) : undefined,\n creationMethod: isSet(object.creationMethod) ? creationMethodFromJSON(object.creationMethod) : 0,\n };\n },\n\n toJSON(message: CreateAction): unknown {\n const obj: any = {};\n if (message.fromAddress !== undefined) {\n obj.fromAddress = Address.toJSON(message.fromAddress);\n }\n if (message.gas !== undefined && message.gas !== BigInt(\"0\")) {\n obj.gas = message.gas.toString();\n }\n if (message.init !== undefined && message.init.length !== 0) {\n obj.init = base64FromBytes(message.init);\n }\n if (message.value !== undefined) {\n obj.value = U256.toJSON(message.value);\n }\n if (message.creationMethod !== undefined && message.creationMethod !== 0) {\n obj.creationMethod = creationMethodToJSON(message.creationMethod);\n }\n return obj;\n },\n\n create(base?: DeepPartial<CreateAction>): CreateAction {\n return CreateAction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<CreateAction>): CreateAction {\n const message = createBaseCreateAction() as any;\n message.fromAddress = (object.fromAddress !== undefined && object.fromAddress !== null)\n ? Address.fromPartial(object.fromAddress)\n : undefined;\n message.gas = object.gas ?? BigInt(\"0\");\n message.init = object.init ?? new Uint8Array(0);\n message.value = (object.value !== undefined && object.value !== null) ? U256.fromPartial(object.value) : undefined;\n message.creationMethod = object.creationMethod ?? 0;\n return message;\n },\n};\n\nfunction createBaseSelfDestructAction(): SelfDestructAction {\n return { address: undefined, balance: undefined, refundAddress: undefined };\n}\n\nexport const SelfDestructAction = {\n encode(message: SelfDestructAction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== undefined) {\n U256.encode(message.balance, writer.uint32(18).fork()).ldelim();\n }\n if (message.refundAddress !== undefined) {\n Address.encode(message.refundAddress, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): SelfDestructAction {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSelfDestructAction() as any;\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.address = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.balance = U256.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.refundAddress = Address.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SelfDestructAction {\n return {\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n balance: isSet(object.balance) ? U256.fromJSON(object.balance) : undefined,\n refundAddress: isSet(object.refundAddress) ? Address.fromJSON(object.refundAddress) : undefined,\n };\n },\n\n toJSON(message: SelfDestructAction): unknown {\n const obj: any = {};\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.balance !== undefined) {\n obj.balance = U256.toJSON(message.balance);\n }\n if (message.refundAddress !== undefined) {\n obj.refundAddress = Address.toJSON(message.refundAddress);\n }\n return obj;\n },\n\n create(base?: DeepPartial<SelfDestructAction>): SelfDestructAction {\n return SelfDestructAction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<SelfDestructAction>): SelfDestructAction {\n const message = createBaseSelfDestructAction() as any;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.balance = (object.balance !== undefined && object.balance !== null)\n ? U256.fromPartial(object.balance)\n : undefined;\n message.refundAddress = (object.refundAddress !== undefined && object.refundAddress !== null)\n ? Address.fromPartial(object.refundAddress)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseRewardAction(): RewardAction {\n return { author: undefined, type: 0, value: undefined };\n}\n\nexport const RewardAction = {\n encode(message: RewardAction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.author !== undefined) {\n Address.encode(message.author, writer.uint32(10).fork()).ldelim();\n }\n if (message.type !== undefined && message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n if (message.value !== undefined) {\n U256.encode(message.value, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RewardAction {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRewardAction() as any;\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.author = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.type = reader.int32() as any;\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.value = U256.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): RewardAction {\n return {\n author: isSet(object.author) ? Address.fromJSON(object.author) : undefined,\n type: isSet(object.type) ? rewardTypeFromJSON(object.type) : 0,\n value: isSet(object.value) ? U256.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: RewardAction): unknown {\n const obj: any = {};\n if (message.author !== undefined) {\n obj.author = Address.toJSON(message.author);\n }\n if (message.type !== undefined && message.type !== 0) {\n obj.type = rewardTypeToJSON(message.type);\n }\n if (message.value !== undefined) {\n obj.value = U256.toJSON(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<RewardAction>): RewardAction {\n return RewardAction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<RewardAction>): RewardAction {\n const message = createBaseRewardAction() as any;\n message.author = (object.author !== undefined && object.author !== null)\n ? Address.fromPartial(object.author)\n : undefined;\n message.type = object.type ?? 0;\n message.value = (object.value !== undefined && object.value !== null) ? U256.fromPartial(object.value) : undefined;\n return message;\n },\n};\n\nfunction createBaseCallOutput(): CallOutput {\n return { gasUsed: BigInt(\"0\"), output: new Uint8Array(0) };\n}\n\nexport const CallOutput = {\n encode(message: CallOutput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.gasUsed !== undefined && message.gasUsed !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.gasUsed) !== message.gasUsed) {\n throw new globalThis.Error(\"value provided for field message.gasUsed of type uint64 too large\");\n }\n writer.uint32(8).uint64(message.gasUsed.toString());\n }\n if (message.output !== undefined && message.output.length !== 0) {\n writer.uint32(18).bytes(message.output);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CallOutput {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCallOutput() as any;\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.gasUsed = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.output = reader.bytes();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): CallOutput {\n return {\n gasUsed: isSet(object.gasUsed) ? BigInt(object.gasUsed) : BigInt(\"0\"),\n output: isSet(object.output) ? bytesFromBase64(object.output) : new Uint8Array(0),\n };\n },\n\n toJSON(message: CallOutput): unknown {\n const obj: any = {};\n if (message.gasUsed !== undefined && message.gasUsed !== BigInt(\"0\")) {\n obj.gasUsed = message.gasUsed.toString();\n }\n if (message.output !== undefined && message.output.length !== 0) {\n obj.output = base64FromBytes(message.output);\n }\n return obj;\n },\n\n create(base?: DeepPartial<CallOutput>): CallOutput {\n return CallOutput.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<CallOutput>): CallOutput {\n const message = createBaseCallOutput() as any;\n message.gasUsed = object.gasUsed ?? BigInt(\"0\");\n message.output = object.output ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBaseCreateOutput(): CreateOutput {\n return { address: undefined, code: new Uint8Array(0), gasUsed: BigInt(\"0\") };\n}\n\nexport const CreateOutput = {\n encode(message: CreateOutput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(10).fork()).ldelim();\n }\n if (message.code !== undefined && message.code.length !== 0) {\n writer.uint32(18).bytes(message.code);\n }\n if (message.gasUsed !== undefined && message.gasUsed !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.gasUsed) !== message.gasUsed) {\n throw new globalThis.Error(\"value provided for field message.gasUsed of type uint64 too large\");\n }\n writer.uint32(24).uint64(message.gasUsed.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CreateOutput {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCreateOutput() as any;\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.address = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.code = reader.bytes();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.gasUsed = longToBigint(reader.uint64() as Long);\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): CreateOutput {\n return {\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n code: isSet(object.code) ? bytesFromBase64(object.code) : new Uint8Array(0),\n gasUsed: isSet(object.gasUsed) ? BigInt(object.gasUsed) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: CreateOutput): unknown {\n const obj: any = {};\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.code !== undefined && message.code.length !== 0) {\n obj.code = base64FromBytes(message.code);\n }\n if (message.gasUsed !== undefined && message.gasUsed !== BigInt(\"0\")) {\n obj.gasUsed = message.gasUsed.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<CreateOutput>): CreateOutput {\n return CreateOutput.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<CreateOutput>): CreateOutput {\n const message = createBaseCreateOutput() as any;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.code = object.code ?? new Uint8Array(0);\n message.gasUsed = object.gasUsed ?? BigInt(\"0\");\n return message;\n },\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 | bigint | 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 { readonly $case: string }\n ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { readonly $case: T[\"$case\"] }\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = BigInt(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 = (globalThis.Number(t.seconds?.toString()) || 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 longToBigint(long: Long) {\n return BigInt(long.toString());\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.176.0\n// protoc unknown\n// source: filter.proto\n\n/* eslint-disable */\nimport _m0 from \"protobufjs/minimal.js\";\nimport { Address, B256 } from \"./common.js\";\n\nexport const protobufPackage = \"evm.v2\";\n\n/** EVM DNA definitions (filter). */\n\nexport enum HeaderFilter {\n UNSPECIFIED = 0,\n ALWAYS = 1,\n ON_DATA = 2,\n ON_DATA_OR_ON_NEW_BLOCK = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function headerFilterFromJSON(object: any): HeaderFilter {\n switch (object) {\n case 0:\n case \"HEADER_FILTER_UNSPECIFIED\":\n return HeaderFilter.UNSPECIFIED;\n case 1:\n case \"HEADER_FILTER_ALWAYS\":\n return HeaderFilter.ALWAYS;\n case 2:\n case \"HEADER_FILTER_ON_DATA\":\n return HeaderFilter.ON_DATA;\n case 3:\n case \"HEADER_FILTER_ON_DATA_OR_ON_NEW_BLOCK\":\n return HeaderFilter.ON_DATA_OR_ON_NEW_BLOCK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return HeaderFilter.UNRECOGNIZED;\n }\n}\n\nexport function headerFilterToJSON(object: HeaderFilter): string {\n switch (object) {\n case HeaderFilter.UNSPECIFIED:\n return \"HEADER_FILTER_UNSPECIFIED\";\n case HeaderFilter.ALWAYS:\n return \"HEADER_FILTER_ALWAYS\";\n case HeaderFilter.ON_DATA:\n return \"HEADER_FILTER_ON_DATA\";\n case HeaderFilter.ON_DATA_OR_ON_NEW_BLOCK:\n return \"HEADER_FILTER_ON_DATA_OR_ON_NEW_BLOCK\";\n case HeaderFilter.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum TransactionStatusFilter {\n UNSPECIFIED = 0,\n SUCCEEDED = 1,\n REVERTED = 2,\n ALL = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function transactionStatusFilterFromJSON(object: any): TransactionStatusFilter {\n switch (object) {\n case 0:\n case \"TRANSACTION_STATUS_FILTER_UNSPECIFIED\":\n return TransactionStatusFilter.UNSPECIFIED;\n case 1:\n case \"TRANSACTION_STATUS_FILTER_SUCCEEDED\":\n return TransactionStatusFilter.SUCCEEDED;\n case 2:\n case \"TRANSACTION_STATUS_FILTER_REVERTED\":\n return TransactionStatusFilter.REVERTED;\n case 3:\n case \"TRANSACTION_STATUS_FILTER_ALL\":\n return TransactionStatusFilter.ALL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return TransactionStatusFilter.UNRECOGNIZED;\n }\n}\n\nexport function transactionStatusFilterToJSON(object: TransactionStatusFilter): string {\n switch (object) {\n case TransactionStatusFilter.UNSPECIFIED:\n return \"TRANSACTION_STATUS_FILTER_UNSPECIFIED\";\n case TransactionStatusFilter.SUCCEEDED:\n return \"TRANSACTION_STATUS_FILTER_SUCCEEDED\";\n case TransactionStatusFilter.REVERTED:\n return \"TRANSACTION_STATUS_FILTER_REVERTED\";\n case TransactionStatusFilter.ALL:\n return \"TRANSACTION_STATUS_FILTER_ALL\";\n case TransactionStatusFilter.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport interface Filter {\n /** Include header. */\n readonly header?:\n | HeaderFilter\n | undefined;\n /** Filter withdrawals. */\n readonly withdrawals?:\n | readonly WithdrawalFilter[]\n | undefined;\n /** Filter transactions. */\n readonly transactions?:\n | readonly TransactionFilter[]\n | undefined;\n /** Filter logs. */\n readonly logs?: readonly LogFilter[] | undefined;\n}\n\nexport interface WithdrawalFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter based on the validator index. */\n readonly validatorIndex?:\n | number\n | undefined;\n /** Filter based on the withdrawal's target address. */\n readonly address?: Address | undefined;\n}\n\nexport interface TransactionFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter based on the transaction's sender address. */\n readonly from?:\n | Address\n | undefined;\n /** Filter based on the transaction's recipient address. */\n readonly to?:\n | Address\n | undefined;\n /** / Only return `create` transactions. Defaults to `false`. */\n readonly create?:\n | boolean\n | undefined;\n /**\n * Filter based on the transaction status.\n *\n * Defaults to `Succeeded`.\n */\n readonly transactionStatus?:\n | TransactionStatusFilter\n | undefined;\n /** Flag to request the transaction's receipt. Defaults to `false`. */\n readonly includeReceipt?:\n | boolean\n | undefined;\n /** Flag to request the transaction's logs. Defaults to `false`. */\n readonly includeLogs?:\n | boolean\n | undefined;\n /** Flag to request the transaction's trace. Defaults to `false`. */\n readonly includeTransactionTrace?: boolean | undefined;\n}\n\nexport interface LogFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter based on the log's contract address. */\n readonly address?:\n | Address\n | undefined;\n /** Filter based on the log's topics. */\n readonly topics?:\n | readonly Topic[]\n | undefined;\n /**\n * Only returns logs with topics of exactly the same length as the filter.\n *\n * Defaults to `false`.\n */\n readonly strict?:\n | boolean\n | undefined;\n /**\n * Filter based on the transaction status.\n *\n * Defaults to `Succeeded`.\n */\n readonly transactionStatus?:\n | TransactionStatusFilter\n | undefined;\n /** Flag to request the log's transaction. Defaults to `false`. */\n readonly includeTransaction?:\n | boolean\n | undefined;\n /** Flag to request the log's receipt. Defaults to `false`. */\n readonly includeReceipt?:\n | boolean\n | undefined;\n /**\n * Include sibling logs, that is logs emitted by the same transaction.\n *\n * Defaults to false.\n */\n readonly includeSiblings?:\n | boolean\n | undefined;\n /** Flag to request the log's trace. Defaults to `false`. */\n readonly includeTransactionTrace?: boolean | undefined;\n}\n\n/** Topic filter. */\nexport interface Topic {\n /** Topic value. Leave empty to match any topic. */\n readonly value?: B256 | undefined;\n}\n\nfunction createBaseFilter(): Filter {\n return { header: 0, withdrawals: [], transactions: [], logs: [] };\n}\n\nexport const Filter = {\n encode(message: Filter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.header !== undefined && message.header !== 0) {\n writer.uint32(8).int32(message.header);\n }\n if (message.withdrawals !== undefined && message.withdrawals.length !== 0) {\n for (const v of message.withdrawals) {\n WithdrawalFilter.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.transactions !== undefined && message.transactions.length !== 0) {\n for (const v of message.transactions) {\n TransactionFilter.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.logs !== undefined && message.logs.length !== 0) {\n for (const v of message.logs) {\n LogFilter.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Filter {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFilter() as any;\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.header = reader.int32() as any;\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.withdrawals!.push(WithdrawalFilter.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transactions!.push(TransactionFilter.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.logs!.push(LogFilter.decode(reader, reader.uint32()));\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Filter {\n return {\n header: isSet(object.header) ? headerFilterFromJSON(object.header) : 0,\n withdrawals: globalThis.Array.isArray(object?.withdrawals)\n ? object.withdrawals.map((e: any) => WithdrawalFilter.fromJSON(e))\n : [],\n transactions: globalThis.Array.isArray(object?.transactions)\n ? object.transactions.map((e: any) => TransactionFilter.fromJSON(e))\n : [],\n logs: globalThis.Array.isArray(object?.logs) ? object.logs.map((e: any) => LogFilter.fromJSON(e)) : [],\n };\n },\n\n toJSON(message: Filter): unknown {\n const obj: any = {};\n if (message.header !== undefined && message.header !== 0) {\n obj.header = headerFilterToJSON(message.header);\n }\n if (message.withdrawals?.length) {\n obj.withdrawals = message.withdrawals.map((e) => WithdrawalFilter.toJSON(e));\n }\n if (message.transactions?.length) {\n obj.transactions = message.transactions.map((e) => TransactionFilter.toJSON(e));\n }\n if (message.logs?.length) {\n obj.logs = message.logs.map((e) => LogFilter.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<Filter>): Filter {\n return Filter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Filter>): Filter {\n const message = createBaseFilter() as any;\n message.header = object.header ?? 0;\n message.withdrawals = object.withdrawals?.map((e) => WithdrawalFilter.fromPartial(e)) || [];\n message.transactions = object.transactions?.map((e) => TransactionFilter.fromPartial(e)) || [];\n message.logs = object.logs?.map((e) => LogFilter.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseWithdrawalFilter(): WithdrawalFilter {\n return { id: 0, validatorIndex: undefined, address: undefined };\n}\n\nexport const WithdrawalFilter = {\n encode(message: WithdrawalFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.id !== undefined && message.id !== 0) {\n writer.uint32(8).uint32(message.id);\n }\n if (message.validatorIndex !== undefined) {\n writer.uint32(16).uint32(message.validatorIndex);\n }\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): WithdrawalFilter {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWithdrawalFilter() as any;\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.id = reader.uint32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.validatorIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.address = Address.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): WithdrawalFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n validatorIndex: isSet(object.validatorIndex) ? globalThis.Number(object.validatorIndex) : undefined,\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n };\n },\n\n toJSON(message: WithdrawalFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.validatorIndex !== undefined) {\n obj.validatorIndex = Math.round(message.validatorIndex);\n }\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n return obj;\n },\n\n create(base?: DeepPartial<WithdrawalFilter>): WithdrawalFilter {\n return WithdrawalFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<WithdrawalFilter>): WithdrawalFilter {\n const message = createBaseWithdrawalFilter() as any;\n message.id = object.id ?? 0;\n message.validatorIndex = object.validatorIndex ?? undefined;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseTransactionFilter(): TransactionFilter {\n return {\n id: 0,\n from: undefined,\n to: undefined,\n create: undefined,\n transactionStatus: undefined,\n includeReceipt: undefined,\n includeLogs: undefined,\n includeTransactionTrace: undefined,\n };\n}\n\nexport const TransactionFilter = {\n encode(message: TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.id !== undefined && message.id !== 0) {\n writer.uint32(8).uint32(message.id);\n }\n if (message.from !== undefined) {\n Address.encode(message.from, writer.uint32(18).fork()).ldelim();\n }\n if (message.to !== undefined) {\n Address.encode(message.to, writer.uint32(26).fork()).ldelim();\n }\n if (message.create !== undefined) {\n writer.uint32(32).bool(message.create);\n }\n if (message.transactionStatus !== undefined) {\n writer.uint32(40).int32(message.transactionStatus);\n }\n if (message.includeReceipt !== undefined) {\n writer.uint32(48).bool(message.includeReceipt);\n }\n if (message.includeLogs !== undefined) {\n writer.uint32(56).bool(message.includeLogs);\n }\n if (message.includeTransactionTrace !== undefined) {\n writer.uint32(64).bool(message.includeTransactionTrace);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TransactionFilter {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTransactionFilter() as any;\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.id = reader.uint32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.from = Address.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.to = Address.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.create = reader.bool();\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.includeReceipt = reader.bool();\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n\n message.includeLogs = reader.bool();\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n\n message.includeTransactionTrace = reader.bool();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): TransactionFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n from: isSet(object.from) ? Address.fromJSON(object.from) : undefined,\n to: isSet(object.to) ? Address.fromJSON(object.to) : undefined,\n create: isSet(object.create) ? globalThis.Boolean(object.create) : undefined,\n transactionStatus: isSet(object.transactionStatus)\n ? transactionStatusFilterFromJSON(object.transactionStatus)\n : undefined,\n includeReceipt: isSet(object.includeReceipt) ? globalThis.Boolean(object.includeReceipt) : undefined,\n includeLogs: isSet(object.includeLogs) ? globalThis.Boolean(object.includeLogs) : undefined,\n includeTransactionTrace: isSet(object.includeTransactionTrace)\n ? globalThis.Boolean(object.includeTransactionTrace)\n : undefined,\n };\n },\n\n toJSON(message: TransactionFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.from !== undefined) {\n obj.from = Address.toJSON(message.from);\n }\n if (message.to !== undefined) {\n obj.to = Address.toJSON(message.to);\n }\n if (message.create !== undefined) {\n obj.create = message.create;\n }\n if (message.transactionStatus !== undefined) {\n obj.transactionStatus = transactionStatusFilterToJSON(message.transactionStatus);\n }\n if (message.includeReceipt !== undefined) {\n obj.includeReceipt = message.includeReceipt;\n }\n if (message.includeLogs !== undefined) {\n obj.includeLogs = message.includeLogs;\n }\n if (message.includeTransactionTrace !== undefined) {\n obj.includeTransactionTrace = message.includeTransactionTrace;\n }\n return obj;\n },\n\n create(base?: DeepPartial<TransactionFilter>): TransactionFilter {\n return TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<TransactionFilter>): TransactionFilter {\n const message = createBaseTransactionFilter() as any;\n message.id = object.id ?? 0;\n message.from = (object.from !== undefined && object.from !== null) ? Address.fromPartial(object.from) : undefined;\n message.to = (object.to !== undefined && object.to !== null) ? Address.fromPartial(object.to) : undefined;\n message.create = object.create ?? undefined;\n message.transactionStatus = object.transactionStatus ?? undefined;\n message.includeReceipt = object.includeReceipt ?? undefined;\n message.includeLogs = object.includeLogs ?? undefined;\n message.includeTransactionTrace = object.includeTransactionTrace ?? undefined;\n return message;\n },\n};\n\nfunction createBaseLogFilter(): LogFilter {\n return {\n id: 0,\n address: undefined,\n topics: [],\n strict: undefined,\n transactionStatus: undefined,\n includeTransaction: undefined,\n includeReceipt: undefined,\n includeSiblings: undefined,\n includeTransactionTrace: undefined,\n };\n}\n\nexport const LogFilter = {\n encode(message: LogFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.id !== undefined && message.id !== 0) {\n writer.uint32(8).uint32(message.id);\n }\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(18).fork()).ldelim();\n }\n if (message.topics !== undefined && message.topics.length !== 0) {\n for (const v of message.topics) {\n Topic.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.strict !== undefined) {\n writer.uint32(32).bool(message.strict);\n }\n if (message.transactionStatus !== undefined) {\n writer.uint32(40).int32(message.transactionStatus);\n }\n if (message.includeTransaction !== undefined) {\n writer.uint32(48).bool(message.includeTransaction);\n }\n if (message.includeReceipt !== undefined) {\n writer.uint32(56).bool(message.includeReceipt);\n }\n if (message.includeSiblings !== undefined) {\n writer.uint32(64).bool(message.includeSiblings);\n }\n if (message.includeTransactionTrace !== undefined) {\n writer.uint32(72).bool(message.includeTransactionTrace);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): LogFilter {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLogFilter() as any;\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.id = reader.uint32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.address = Address.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.topics!.push(Topic.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.strict = reader.bool();\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.includeTransaction = reader.bool();\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n\n message.includeReceipt = reader.bool();\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n\n message.includeSiblings = reader.bool();\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.includeTransactionTrace = reader.bool();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): LogFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n topics: globalThis.Array.isArray(object?.topics) ? object.topics.map((e: any) => Topic.fromJSON(e)) : [],\n strict: isSet(object.strict) ? globalThis.Boolean(object.strict) : undefined,\n transactionStatus: isSet(object.transactionStatus)\n ? transactionStatusFilterFromJSON(object.transactionStatus)\n : undefined,\n includeTransaction: isSet(object.includeTransaction) ? globalThis.Boolean(object.includeTransaction) : undefined,\n includeReceipt: isSet(object.includeReceipt) ? globalThis.Boolean(object.includeReceipt) : undefined,\n includeSiblings: isSet(object.includeSiblings) ? globalThis.Boolean(object.includeSiblings) : undefined,\n includeTransactionTrace: isSet(object.includeTransactionTrace)\n ? globalThis.Boolean(object.includeTransactionTrace)\n : undefined,\n };\n },\n\n toJSON(message: LogFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.topics?.length) {\n obj.topics = message.topics.map((e) => Topic.toJSON(e));\n }\n if (message.strict !== undefined) {\n obj.strict = message.strict;\n }\n if (message.transactionStatus !== undefined) {\n obj.transactionStatus = transactionStatusFilterToJSON(message.transactionStatus);\n }\n if (message.includeTransaction !== undefined) {\n obj.includeTransaction = message.includeTransaction;\n }\n if (message.includeReceipt !== undefined) {\n obj.includeReceipt = message.includeReceipt;\n }\n if (message.includeSiblings !== undefined) {\n obj.includeSiblings = message.includeSiblings;\n }\n if (message.includeTransactionTrace !== undefined) {\n obj.includeTransactionTrace = message.includeTransactionTrace;\n }\n return obj;\n },\n\n create(base?: DeepPartial<LogFilter>): LogFilter {\n return LogFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<LogFilter>): LogFilter {\n const message = createBaseLogFilter() as any;\n message.id = object.id ?? 0;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.topics = object.topics?.map((e) => Topic.fromPartial(e)) || [];\n message.strict = object.strict ?? undefined;\n message.transactionStatus = object.transactionStatus ?? undefined;\n message.includeTransaction = object.includeTransaction ?? undefined;\n message.includeReceipt = object.includeReceipt ?? undefined;\n message.includeSiblings = object.includeSiblings ?? undefined;\n message.includeTransactionTrace = object.includeTransactionTrace ?? undefined;\n return message;\n },\n};\n\nfunction createBaseTopic(): Topic {\n return { value: undefined };\n}\n\nexport const Topic = {\n encode(message: Topic, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.value !== undefined) {\n B256.encode(message.value, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Topic {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTopic() as any;\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.value = B256.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Topic {\n return { value: isSet(object.value) ? B256.fromJSON(object.value) : undefined };\n },\n\n toJSON(message: Topic): unknown {\n const obj: any = {};\n if (message.value !== undefined) {\n obj.value = B256.toJSON(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Topic>): Topic {\n return Topic.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Topic>): Topic {\n const message = createBaseTopic() as any;\n message.value = (object.value !== undefined && object.value !== null) ? B256.fromPartial(object.value) : undefined;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | 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 { readonly $case: string }\n ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { readonly $case: T[\"$case\"] }\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","import { BytesFromUint8Array } from \"@apibara/protocol\";\n\nimport {\n ArrayCodec,\n BigIntCodec,\n BooleanCodec,\n type Codec,\n type CodecType,\n DateCodec,\n MessageCodec,\n NumberCodec,\n OneOfCodec,\n OptionalCodec,\n StringCodec,\n} from \"@apibara/protocol/codec\";\nimport { RequiredCodec } from \"@apibara/protocol/codec\";\nimport { Address, B256, U128, U256 } from \"./common\";\nimport * as proto from \"./proto\";\n\nexport const Bloom: Codec<\n `0x${string}` | undefined,\n { value?: Uint8Array | undefined }\n> = {\n encode(x) {\n return { value: BytesFromUint8Array.encode(x) };\n },\n decode({ value }) {\n return BytesFromUint8Array.decode(value);\n },\n};\n\nexport type Bloom = CodecType<typeof Bloom>;\n\nexport const TransactionStatus: Codec<\n \"unknown\" | \"succeeded\" | \"reverted\",\n proto.data.TransactionStatus\n> = {\n encode(x) {\n const enumMap = {\n unknown: proto.data.TransactionStatus.UNSPECIFIED,\n succeeded: proto.data.TransactionStatus.SUCCEEDED,\n reverted: proto.data.TransactionStatus.REVERTED,\n } as const;\n\n return enumMap[x] ?? proto.data.TransactionStatus.UNSPECIFIED;\n },\n decode(p) {\n const enumMap = {\n [proto.data.TransactionStatus.SUCCEEDED]: \"succeeded\",\n [proto.data.TransactionStatus.REVERTED]: \"reverted\",\n [proto.data.TransactionStatus.UNSPECIFIED]: \"unknown\",\n [proto.data.TransactionStatus.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type TransactionStatus = CodecType<typeof TransactionStatus>;\n\nexport const BlockHeader = MessageCodec({\n blockNumber: RequiredCodec(BigIntCodec),\n blockHash: RequiredCodec(B256),\n parentBlockHash: RequiredCodec(B256),\n unclesHash: RequiredCodec(B256),\n miner: RequiredCodec(Address),\n stateRoot: RequiredCodec(B256),\n transactionsRoot: RequiredCodec(B256),\n receiptsRoot: RequiredCodec(B256),\n logsBloom: RequiredCodec(Bloom),\n difficulty: RequiredCodec(U256),\n gasLimit: RequiredCodec(U128),\n gasUsed: RequiredCodec(U128),\n timestamp: RequiredCodec(DateCodec),\n extraData: RequiredCodec(BytesFromUint8Array),\n mixHash: OptionalCodec(B256),\n nonce: OptionalCodec(BigIntCodec),\n baseFeePerGas: OptionalCodec(U128),\n withdrawalsRoot: OptionalCodec(B256),\n totalDifficulty: OptionalCodec(U256),\n blobGasUsed: OptionalCodec(U128),\n excessBlobGas: OptionalCodec(U128),\n parentBeaconBlockRoot: OptionalCodec(B256),\n requestsHash: OptionalCodec(B256),\n});\n\nexport type BlockHeader = CodecType<typeof BlockHeader>;\n\nexport const Withdrawal = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n withdrawalIndex: RequiredCodec(NumberCodec),\n index: RequiredCodec(BigIntCodec),\n validatorIndex: RequiredCodec(NumberCodec),\n address: RequiredCodec(Address),\n amount: RequiredCodec(BigIntCodec),\n});\n\nexport type Withdrawal = CodecType<typeof Withdrawal>;\n\nexport const AccessListItem = MessageCodec({\n address: RequiredCodec(Address),\n storageKeys: ArrayCodec(B256),\n});\n\nexport type AccessListItem = CodecType<typeof AccessListItem>;\n\nexport const Signature = MessageCodec({\n r: RequiredCodec(U256),\n s: RequiredCodec(U256),\n v: OptionalCodec(U256),\n YParity: OptionalCodec(BooleanCodec),\n});\n\nexport type Signature = CodecType<typeof Signature>;\n\nexport const Transaction = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(B256),\n nonce: RequiredCodec(BigIntCodec),\n from: RequiredCodec(Address),\n to: OptionalCodec(Address),\n value: RequiredCodec(U256),\n gasPrice: OptionalCodec(U128),\n gas: RequiredCodec(U128),\n maxFeePerGas: OptionalCodec(U128),\n maxPriorityFeePerGas: OptionalCodec(U128),\n input: RequiredCodec(BytesFromUint8Array),\n signature: OptionalCodec(Signature),\n chainId: OptionalCodec(BigIntCodec),\n accessList: ArrayCodec(AccessListItem),\n transactionType: RequiredCodec(BigIntCodec),\n maxFeePerBlobGas: OptionalCodec(U128),\n blobVersionedHashes: ArrayCodec(B256),\n transactionStatus: RequiredCodec(TransactionStatus),\n});\n\nexport type Transaction = CodecType<typeof Transaction>;\n\nexport const TransactionReceipt = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(B256),\n cumulativeGasUsed: RequiredCodec(U128),\n gasUsed: RequiredCodec(U128),\n effectiveGasPrice: RequiredCodec(U128),\n from: RequiredCodec(Address),\n to: OptionalCodec(Address),\n contractAddress: OptionalCodec(Address),\n logsBloom: RequiredCodec(Bloom),\n transactionType: RequiredCodec(BigIntCodec),\n blobGasUsed: OptionalCodec(U128),\n blobGasPrice: OptionalCodec(U128),\n transactionStatus: RequiredCodec(TransactionStatus),\n});\n\nexport type TransactionReceipt = CodecType<typeof TransactionReceipt>;\n\nexport const Log = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n address: RequiredCodec(Address),\n topics: ArrayCodec(B256),\n data: RequiredCodec(BytesFromUint8Array),\n logIndex: RequiredCodec(NumberCodec),\n logIndexInTransaction: RequiredCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(B256),\n transactionStatus: RequiredCodec(TransactionStatus),\n});\n\nexport type Log = CodecType<typeof Log>;\n\nexport const CallType: Codec<\n \"unknown\" | \"call\" | \"delegateCall\" | \"callCode\" | \"staticCall\" | \"authCall\",\n proto.data.CallType\n> = {\n encode(x) {\n const enumMap = {\n unknown: proto.data.CallType.UNSPECIFIED,\n call: proto.data.CallType.CALL,\n callCode: proto.data.CallType.CALL_CODE,\n delegateCall: proto.data.CallType.DELEGATE_CALL,\n staticCall: proto.data.CallType.STATIC_CALL,\n authCall: proto.data.CallType.AUTH_CALL,\n } as const;\n\n return enumMap[x] ?? proto.data.CallType.UNSPECIFIED;\n },\n decode(p) {\n const enumMap = {\n [proto.data.CallType.CALL]: \"call\",\n [proto.data.CallType.CALL_CODE]: \"callCode\",\n [proto.data.CallType.DELEGATE_CALL]: \"delegateCall\",\n [proto.data.CallType.STATIC_CALL]: \"staticCall\",\n [proto.data.CallType.AUTH_CALL]: \"authCall\",\n [proto.data.CallType.UNSPECIFIED]: \"unknown\",\n [proto.data.CallType.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type CallType = CodecType<typeof CallType>;\n\nexport const CreationMethod: Codec<\n \"unknown\" | \"create\" | \"create2\" | \"eofCreate\",\n proto.data.CreationMethod\n> = {\n encode(x) {\n const enumMap = {\n unknown: proto.data.CreationMethod.UNSPECIFIED,\n create: proto.data.CreationMethod.CREATE,\n create2: proto.data.CreationMethod.CREATE2,\n eofCreate: proto.data.CreationMethod.EOF_CREATE,\n } as const;\n\n return enumMap[x] ?? proto.data.CreationMethod.UNSPECIFIED;\n },\n decode(p) {\n const enumMap = {\n [proto.data.CreationMethod.CREATE]: \"create\",\n [proto.data.CreationMethod.CREATE2]: \"create2\",\n [proto.data.CreationMethod.EOF_CREATE]: \"eofCreate\",\n [proto.data.CreationMethod.UNSPECIFIED]: \"unknown\",\n [proto.data.CreationMethod.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type CreationMethod = CodecType<typeof CreationMethod>;\n\nexport const CallAction = MessageCodec({\n fromAddress: RequiredCodec(Address),\n type: RequiredCodec(CallType),\n gas: RequiredCodec(BigIntCodec),\n input: RequiredCodec(BytesFromUint8Array),\n toAddress: RequiredCodec(Address),\n value: RequiredCodec(U256),\n});\n\nexport type CallAction = CodecType<typeof CallAction>;\n\nexport const CreateAction = MessageCodec({\n fromAddress: RequiredCodec(Address),\n gas: RequiredCodec(BigIntCodec),\n init: RequiredCodec(BytesFromUint8Array),\n value: RequiredCodec(U256),\n creationMethod: RequiredCodec(CreationMethod),\n});\n\nexport type CreateAction = CodecType<typeof CreateAction>;\n\nexport const SelfDestructAction = MessageCodec({\n address: RequiredCodec(Address),\n balance: RequiredCodec(U256),\n refundAddress: RequiredCodec(Address),\n});\n\nexport type SelfDestructAction = CodecType<typeof SelfDestructAction>;\n\nexport const RewardType: Codec<\n \"unknown\" | \"block\" | \"uncle\",\n proto.data.RewardType\n> = {\n encode(x) {\n const enumMap = {\n unknown: proto.data.RewardType.UNSPECIFIED,\n block: proto.data.RewardType.BLOCK,\n uncle: proto.data.RewardType.UNCLE,\n } as const;\n\n return enumMap[x] ?? proto.data.RewardType.UNSPECIFIED;\n },\n decode(p) {\n const enumMap = {\n [proto.data.RewardType.BLOCK]: \"block\",\n [proto.data.RewardType.UNCLE]: \"uncle\",\n [proto.data.RewardType.UNSPECIFIED]: \"unknown\",\n [proto.data.RewardType.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type RewardType = CodecType<typeof RewardType>;\n\nexport const RewardAction = MessageCodec({\n author: RequiredCodec(Address),\n type: RequiredCodec(RewardType),\n value: RequiredCodec(U256),\n});\n\nexport type RewardAction = CodecType<typeof RewardAction>;\n\nexport const CallOutput = MessageCodec({\n gasUsed: RequiredCodec(BigIntCodec),\n output: RequiredCodec(BytesFromUint8Array),\n});\n\nexport type CallOutput = CodecType<typeof CallOutput>;\n\nexport const CreateOutput = MessageCodec({\n address: RequiredCodec(Address),\n code: RequiredCodec(BytesFromUint8Array),\n gasUsed: RequiredCodec(BigIntCodec),\n});\n\nexport type CreateOutput = CodecType<typeof CreateOutput>;\n\nexport const Trace = MessageCodec({\n action: RequiredCodec(\n OneOfCodec({\n call: CallAction,\n create: CreateAction,\n selfDestruct: SelfDestructAction,\n reward: RewardAction,\n }),\n ),\n error: OptionalCodec(StringCodec),\n output: OptionalCodec(\n OneOfCodec({\n callOutput: CallOutput,\n createOutput: CreateOutput,\n }),\n ),\n subtraces: RequiredCodec(NumberCodec),\n traceAddress: ArrayCodec(NumberCodec),\n});\n\nexport type Trace = CodecType<typeof Trace>;\n\nexport const TransactionTrace = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(B256),\n traces: ArrayCodec(Trace),\n});\n\nexport type TransactionTrace = CodecType<typeof TransactionTrace>;\n\nexport const Block = MessageCodec({\n header: RequiredCodec(BlockHeader),\n withdrawals: ArrayCodec(Withdrawal),\n transactions: ArrayCodec(Transaction),\n receipts: ArrayCodec(TransactionReceipt),\n logs: ArrayCodec(Log),\n traces: ArrayCodec(TransactionTrace),\n});\n\nexport type Block = CodecType<typeof Block>;\n\nexport const BlockFromBytes: Codec<Block, Uint8Array> = {\n encode(x) {\n const block = Block.encode(x);\n return proto.data.Block.encode(block).finish();\n },\n decode(p) {\n const block = proto.data.Block.decode(p);\n return Block.decode(block);\n },\n};\n","import { Address, B256 } from \"./common\";\n\nimport {\n ArrayCodec,\n BooleanCodec,\n type Codec,\n type CodecType,\n MessageCodec,\n NumberCodec,\n OptionalCodec,\n} from \"@apibara/protocol/codec\";\nimport * as proto from \"./proto\";\n\n/** Header options.\n *\n * - `always`: receive all block headers.\n * - `on_data`: receive headers only if any other filter matches.\n * - `on_data_or_on_new_block`: receive headers only if any other filter matches and for \"live\" blocks.\n */\nexport const HeaderFilter: Codec<\n \"always\" | \"on_data\" | \"on_data_or_on_new_block\" | \"unknown\",\n proto.filter.HeaderFilter\n> = {\n encode(x) {\n switch (x) {\n case \"always\":\n return proto.filter.HeaderFilter.ALWAYS;\n case \"on_data\":\n return proto.filter.HeaderFilter.ON_DATA;\n case \"on_data_or_on_new_block\":\n return proto.filter.HeaderFilter.ON_DATA_OR_ON_NEW_BLOCK;\n default:\n return proto.filter.HeaderFilter.UNSPECIFIED;\n }\n },\n decode(p) {\n const enumMap = {\n [proto.filter.HeaderFilter.ALWAYS]: \"always\",\n [proto.filter.HeaderFilter.ON_DATA]: \"on_data\",\n [proto.filter.HeaderFilter.ON_DATA_OR_ON_NEW_BLOCK]:\n \"on_data_or_on_new_block\",\n [proto.filter.HeaderFilter.UNSPECIFIED]: \"unknown\",\n [proto.filter.HeaderFilter.UNRECOGNIZED]: \"unknown\",\n } as const;\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type HeaderFilter = CodecType<typeof HeaderFilter>;\n\nexport const WithdrawalFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n validatorIndex: OptionalCodec(NumberCodec),\n address: OptionalCodec(Address),\n});\n\nexport type WithdrawalFilter = CodecType<typeof WithdrawalFilter>;\n\nexport const TransactionStatusFilter: Codec<\n \"succeeded\" | \"reverted\" | \"all\" | \"unknown\",\n proto.filter.TransactionStatusFilter\n> = {\n decode(value) {\n const enumMap = {\n [proto.filter.TransactionStatusFilter.SUCCEEDED]: \"succeeded\",\n [proto.filter.TransactionStatusFilter.REVERTED]: \"reverted\",\n [proto.filter.TransactionStatusFilter.ALL]: \"all\",\n [proto.filter.TransactionStatusFilter.UNSPECIFIED]: \"unknown\",\n [proto.filter.TransactionStatusFilter.UNRECOGNIZED]: \"unknown\",\n } as const;\n return enumMap[value] ?? \"unknown\";\n },\n encode(value) {\n switch (value) {\n case \"succeeded\":\n return proto.filter.TransactionStatusFilter.SUCCEEDED;\n case \"reverted\":\n return proto.filter.TransactionStatusFilter.REVERTED;\n case \"all\":\n return proto.filter.TransactionStatusFilter.ALL;\n default:\n return proto.filter.TransactionStatusFilter.UNSPECIFIED;\n }\n },\n};\n\nexport type TransactionStatusFilter = CodecType<typeof TransactionStatusFilter>;\n\nexport const Topic: Codec<\n B256 | null,\n { value?: proto.common.B256 | undefined }\n> = {\n encode(x) {\n if (x === null) {\n return { value: undefined };\n }\n return { value: B256.encode(x) };\n },\n decode({ value }) {\n if (value === undefined) {\n return null;\n }\n return B256.decode(value);\n },\n};\n\nexport type Topic = CodecType<typeof Topic>;\n\nexport const LogFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n address: OptionalCodec(Address),\n topics: OptionalCodec(ArrayCodec(Topic)),\n strict: OptionalCodec(BooleanCodec),\n transactionStatus: OptionalCodec(TransactionStatusFilter),\n includeTransaction: OptionalCodec(BooleanCodec),\n includeReceipt: OptionalCodec(BooleanCodec),\n includeTransactionTrace: OptionalCodec(BooleanCodec),\n});\n\nexport type LogFilter = Readonly<CodecType<typeof LogFilter>>;\n\nexport const TransactionFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n from: OptionalCodec(Address),\n to: OptionalCodec(Address),\n create: OptionalCodec(BooleanCodec),\n transactionStatus: OptionalCodec(TransactionStatusFilter),\n includeReceipt: OptionalCodec(BooleanCodec),\n includeLogs: OptionalCodec(BooleanCodec),\n includeTransactionTrace: OptionalCodec(BooleanCodec),\n});\n\nexport type TransactionFilter = Readonly<CodecType<typeof TransactionFilter>>;\n\nexport const Filter = MessageCodec({\n header: OptionalCodec(HeaderFilter),\n withdrawals: OptionalCodec(ArrayCodec(WithdrawalFilter)),\n transactions: OptionalCodec(ArrayCodec(TransactionFilter)),\n logs: OptionalCodec(ArrayCodec(LogFilter)),\n});\n\nexport type Filter = Readonly<CodecType<typeof Filter>>;\n\nexport const FilterFromBytes: Codec<Filter, Uint8Array> = {\n encode(x) {\n return proto.filter.Filter.encode(Filter.encode(x)).finish();\n },\n decode(p) {\n return Filter.decode(proto.filter.Filter.decode(p));\n },\n};\n\nexport function mergeFilter(a: Filter, b: Filter): Filter {\n const header = mergeHeaderFilter(a.header, b.header);\n return {\n header,\n withdrawals: [...(a.withdrawals ?? []), ...(b.withdrawals ?? [])],\n logs: [...(a.logs ?? []), ...(b.logs ?? [])],\n transactions: [...(a.transactions ?? []), ...(b.transactions ?? [])],\n };\n}\n\nfunction mergeHeaderFilter(\n a?: HeaderFilter,\n b?: HeaderFilter,\n): HeaderFilter | undefined {\n if (a === undefined) {\n return b;\n }\n if (b === undefined) {\n return a;\n }\n\n if (a === \"always\" || b === \"always\") {\n return \"always\";\n }\n\n if (a === \"on_data_or_on_new_block\" || b === \"on_data_or_on_new_block\") {\n return \"on_data_or_on_new_block\";\n }\n\n return \"on_data\";\n}\n","import { StreamConfig } from \"@apibara/protocol\";\nimport { BlockFromBytes } from \"./block\";\nimport { FilterFromBytes, mergeFilter } from \"./filter\";\n\nexport * as proto from \"./proto\";\n\nexport * from \"./common\";\nexport * from \"./filter\";\nexport * from \"./block\";\n\nexport const EvmStream = new StreamConfig(\n FilterFromBytes,\n BlockFromBytes,\n mergeFilter,\n \"evm\",\n);\n"],"names":["Address","B256","U256","U128","protobufPackage","_m0","longToBigint","isSet","Bloom","bytesFromBase64","base64FromBytes","Long","TransactionStatus","CallType","CreationMethod","RewardType","Block","BlockHeader","Withdrawal","Transaction","TransactionReceipt","Log","TransactionTrace","Signature","AccessListItem","Trace","CallAction","CreateAction","SelfDestructAction","RewardAction","CallOutput","CreateOutput","HeaderFilter","TransactionStatusFilter","Filter","WithdrawalFilter","TransactionFilter","LogFilter","Topic","BytesFromUint8Array","proto.data.TransactionStatus","MessageCodec","RequiredCodec","BigIntCodec","DateCodec","OptionalCodec","ArrayCodec","NumberCodec","BooleanCodec","proto.data.CallType","proto.data.CreationMethod","proto.data.RewardType","OneOfCodec","StringCodec","proto.data.Block","proto.filter.HeaderFilter","proto.filter.TransactionStatusFilter","proto.filter.Filter","StreamConfig"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/common.ts","../src/proto/common.ts","../src/proto/google/protobuf/timestamp.ts","../src/proto/data.ts","../src/proto/filter.ts","../src/block.ts","../src/filter.ts","../src/index.ts"],"sourcesContent":["import type { Codec, CodecType } from \"@apibara/protocol/codec\";\nimport type * as proto from \"./proto\";\n\nconst MAX_U64 = 0xffffffffffffffffn;\nconst MAX_U32 = 0xffffffffn;\n\n/** An Ethereum address. */\nexport const Address: Codec<`0x${string}`, proto.common.Address> = {\n encode(x) {\n const bn = BigInt(x);\n // Ethereum address is 20 bytes (160 bits)\n // Splitting into two 64-bit chunks and one 32-bit chunk\n const x2 = bn & MAX_U32;\n const x1 = (bn >> 32n) & MAX_U64;\n const x0 = (bn >> 96n) & MAX_U64;\n return { x0, x1, x2: Number(x2) };\n },\n decode(p) {\n const x0 = p.x0 ?? 0n;\n const x1 = p.x1 ?? 0n;\n const x2 = BigInt(p.x2 ?? 0);\n const bn = x2 + (x1 << 32n) + (x0 << 96n);\n return `0x${bn.toString(16).padStart(40, \"0\")}` as `0x${string}`;\n },\n};\n\nexport type Address = CodecType<typeof Address>;\n\n/** Data with length 256 bits. */\nexport const B256: Codec<`0x${string}`, proto.common.B256> = {\n encode(x) {\n const bn = BigInt(x);\n const x3 = bn & MAX_U64;\n const x2 = (bn >> 64n) & MAX_U64;\n const x1 = (bn >> 128n) & MAX_U64;\n const x0 = (bn >> 192n) & MAX_U64;\n return { x0, x1, x2, x3 };\n },\n decode(p) {\n const x0 = p.x0 ?? 0n;\n const x1 = p.x1 ?? 0n;\n const x2 = p.x2 ?? 0n;\n const x3 = p.x3 ?? 0n;\n const bn = x3 + (x2 << 64n) + (x1 << 128n) + (x0 << 192n);\n return `0x${bn.toString(16).padStart(64, \"0\")}` as `0x${string}`;\n },\n};\n\nexport type B256 = CodecType<typeof B256>;\n\n/** Data with length 256 bits. */\nexport const U256: Codec<bigint, proto.common.U256> = {\n encode(x) {\n const bn = BigInt(x);\n const x3 = bn & MAX_U64;\n const x2 = (bn >> 64n) & MAX_U64;\n const x1 = (bn >> 128n) & MAX_U64;\n const x0 = (bn >> 192n) & MAX_U64;\n return { x0, x1, x2, x3 };\n },\n decode(p) {\n const x0 = p.x0 ?? 0n;\n const x1 = p.x1 ?? 0n;\n const x2 = p.x2 ?? 0n;\n const x3 = p.x3 ?? 0n;\n return x3 + (x2 << 64n) + (x1 << 128n) + (x0 << 192n);\n },\n};\n\nexport type U256 = CodecType<typeof U256>;\n\n/** Data with length 128 bits. */\nexport const U128: Codec<bigint, proto.common.U128> = {\n encode(x) {\n const x1 = x & MAX_U64;\n const x0 = (x >> 64n) & MAX_U64;\n return { x0, x1 };\n },\n decode(p) {\n const x0 = p.x0 ?? 0n;\n const x1 = p.x1 ?? 0n;\n return x1 + (x0 << 64n);\n },\n};\n\nexport type U128 = CodecType<typeof U128>;\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.176.0\n// protoc unknown\n// source: common.proto\n\n/* eslint-disable */\nimport Long from \"long\";\nimport _m0 from \"protobufjs/minimal.js\";\n\nexport const protobufPackage = \"evm.v2\";\n\n/**\n * An address of 160 bits.\n *\n * As a separate type so that the API is clearer.\n */\nexport interface Address {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n readonly x2?: number | undefined;\n}\n\n/** A bloom filter of 256 bytes. */\nexport interface Bloom {\n readonly value?: Uint8Array | undefined;\n}\n\n/** Unsigned integer of 128 bits. */\nexport interface U128 {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n}\n\n/** Unsigned integer of 256 bits. */\nexport interface U256 {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n readonly x2?: bigint | undefined;\n readonly x3?: bigint | undefined;\n}\n\n/** Byte array of 256 bits. */\nexport interface B256 {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n readonly x2?: bigint | undefined;\n readonly x3?: bigint | undefined;\n}\n\nfunction createBaseAddress(): Address {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\"), x2: 0 };\n}\n\nexport const Address = {\n encode(message: Address, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x0) !== message.x0) {\n throw new globalThis.Error(\"value provided for field message.x0 of type fixed64 too large\");\n }\n writer.uint32(9).fixed64(message.x0.toString());\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x1) !== message.x1) {\n throw new globalThis.Error(\"value provided for field message.x1 of type fixed64 too large\");\n }\n writer.uint32(17).fixed64(message.x1.toString());\n }\n if (message.x2 !== undefined && message.x2 !== 0) {\n writer.uint32(29).fixed32(message.x2);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Address {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAddress() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.x0 = longToBigint(reader.fixed64() as Long);\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.x1 = longToBigint(reader.fixed64() as Long);\n continue;\n case 3:\n if (tag !== 29) {\n break;\n }\n\n message.x2 = reader.fixed32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Address {\n return {\n x0: isSet(object.x0) ? BigInt(object.x0) : BigInt(\"0\"),\n x1: isSet(object.x1) ? BigInt(object.x1) : BigInt(\"0\"),\n x2: isSet(object.x2) ? globalThis.Number(object.x2) : 0,\n };\n },\n\n toJSON(message: Address): unknown {\n const obj: any = {};\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n obj.x0 = message.x0.toString();\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n obj.x1 = message.x1.toString();\n }\n if (message.x2 !== undefined && message.x2 !== 0) {\n obj.x2 = Math.round(message.x2);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Address>): Address {\n return Address.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Address>): Address {\n const message = createBaseAddress() as any;\n message.x0 = object.x0 ?? BigInt(\"0\");\n message.x1 = object.x1 ?? BigInt(\"0\");\n message.x2 = object.x2 ?? 0;\n return message;\n },\n};\n\nfunction createBaseBloom(): Bloom {\n return { value: new Uint8Array(0) };\n}\n\nexport const Bloom = {\n encode(message: Bloom, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.value !== undefined && message.value.length !== 0) {\n writer.uint32(10).bytes(message.value);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Bloom {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBloom() as any;\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.value = reader.bytes();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Bloom {\n return { value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array(0) };\n },\n\n toJSON(message: Bloom): unknown {\n const obj: any = {};\n if (message.value !== undefined && message.value.length !== 0) {\n obj.value = base64FromBytes(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Bloom>): Bloom {\n return Bloom.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Bloom>): Bloom {\n const message = createBaseBloom() as any;\n message.value = object.value ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBaseU128(): U128 {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\") };\n}\n\nexport const U128 = {\n encode(message: U128, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x0) !== message.x0) {\n throw new globalThis.Error(\"value provided for field message.x0 of type fixed64 too large\");\n }\n writer.uint32(9).fixed64(message.x0.toString());\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x1) !== message.x1) {\n throw new globalThis.Error(\"value provided for field message.x1 of type fixed64 too large\");\n }\n writer.uint32(17).fixed64(message.x1.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): U128 {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseU128() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.x0 = longToBigint(reader.fixed64() as Long);\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.x1 = longToBigint(reader.fixed64() as Long);\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): U128 {\n return {\n x0: isSet(object.x0) ? BigInt(object.x0) : BigInt(\"0\"),\n x1: isSet(object.x1) ? BigInt(object.x1) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: U128): unknown {\n const obj: any = {};\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n obj.x0 = message.x0.toString();\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n obj.x1 = message.x1.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<U128>): U128 {\n return U128.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<U128>): U128 {\n const message = createBaseU128() as any;\n message.x0 = object.x0 ?? BigInt(\"0\");\n message.x1 = object.x1 ?? BigInt(\"0\");\n return message;\n },\n};\n\nfunction createBaseU256(): U256 {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\"), x2: BigInt(\"0\"), x3: BigInt(\"0\") };\n}\n\nexport const U256 = {\n encode(message: U256, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x0) !== message.x0) {\n throw new globalThis.Error(\"value provided for field message.x0 of type fixed64 too large\");\n }\n writer.uint32(9).fixed64(message.x0.toString());\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x1) !== message.x1) {\n throw new globalThis.Error(\"value provided for field message.x1 of type fixed64 too large\");\n }\n writer.uint32(17).fixed64(message.x1.toString());\n }\n if (message.x2 !== undefined && message.x2 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x2) !== message.x2) {\n throw new globalThis.Error(\"value provided for field message.x2 of type fixed64 too large\");\n }\n writer.uint32(25).fixed64(message.x2.toString());\n }\n if (message.x3 !== undefined && message.x3 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x3) !== message.x3) {\n throw new globalThis.Error(\"value provided for field message.x3 of type fixed64 too large\");\n }\n writer.uint32(33).fixed64(message.x3.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): U256 {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseU256() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.x0 = longToBigint(reader.fixed64() as Long);\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.x1 = longToBigint(reader.fixed64() as Long);\n continue;\n case 3:\n if (tag !== 25) {\n break;\n }\n\n message.x2 = longToBigint(reader.fixed64() as Long);\n continue;\n case 4:\n if (tag !== 33) {\n break;\n }\n\n message.x3 = longToBigint(reader.fixed64() as Long);\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): U256 {\n return {\n x0: isSet(object.x0) ? BigInt(object.x0) : BigInt(\"0\"),\n x1: isSet(object.x1) ? BigInt(object.x1) : BigInt(\"0\"),\n x2: isSet(object.x2) ? BigInt(object.x2) : BigInt(\"0\"),\n x3: isSet(object.x3) ? BigInt(object.x3) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: U256): unknown {\n const obj: any = {};\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n obj.x0 = message.x0.toString();\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n obj.x1 = message.x1.toString();\n }\n if (message.x2 !== undefined && message.x2 !== BigInt(\"0\")) {\n obj.x2 = message.x2.toString();\n }\n if (message.x3 !== undefined && message.x3 !== BigInt(\"0\")) {\n obj.x3 = message.x3.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<U256>): U256 {\n return U256.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<U256>): U256 {\n const message = createBaseU256() as any;\n message.x0 = object.x0 ?? BigInt(\"0\");\n message.x1 = object.x1 ?? BigInt(\"0\");\n message.x2 = object.x2 ?? BigInt(\"0\");\n message.x3 = object.x3 ?? BigInt(\"0\");\n return message;\n },\n};\n\nfunction createBaseB256(): B256 {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\"), x2: BigInt(\"0\"), x3: BigInt(\"0\") };\n}\n\nexport const B256 = {\n encode(message: B256, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x0) !== message.x0) {\n throw new globalThis.Error(\"value provided for field message.x0 of type fixed64 too large\");\n }\n writer.uint32(9).fixed64(message.x0.toString());\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x1) !== message.x1) {\n throw new globalThis.Error(\"value provided for field message.x1 of type fixed64 too large\");\n }\n writer.uint32(17).fixed64(message.x1.toString());\n }\n if (message.x2 !== undefined && message.x2 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x2) !== message.x2) {\n throw new globalThis.Error(\"value provided for field message.x2 of type fixed64 too large\");\n }\n writer.uint32(25).fixed64(message.x2.toString());\n }\n if (message.x3 !== undefined && message.x3 !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.x3) !== message.x3) {\n throw new globalThis.Error(\"value provided for field message.x3 of type fixed64 too large\");\n }\n writer.uint32(33).fixed64(message.x3.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): B256 {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseB256() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 9) {\n break;\n }\n\n message.x0 = longToBigint(reader.fixed64() as Long);\n continue;\n case 2:\n if (tag !== 17) {\n break;\n }\n\n message.x1 = longToBigint(reader.fixed64() as Long);\n continue;\n case 3:\n if (tag !== 25) {\n break;\n }\n\n message.x2 = longToBigint(reader.fixed64() as Long);\n continue;\n case 4:\n if (tag !== 33) {\n break;\n }\n\n message.x3 = longToBigint(reader.fixed64() as Long);\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): B256 {\n return {\n x0: isSet(object.x0) ? BigInt(object.x0) : BigInt(\"0\"),\n x1: isSet(object.x1) ? BigInt(object.x1) : BigInt(\"0\"),\n x2: isSet(object.x2) ? BigInt(object.x2) : BigInt(\"0\"),\n x3: isSet(object.x3) ? BigInt(object.x3) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: B256): unknown {\n const obj: any = {};\n if (message.x0 !== undefined && message.x0 !== BigInt(\"0\")) {\n obj.x0 = message.x0.toString();\n }\n if (message.x1 !== undefined && message.x1 !== BigInt(\"0\")) {\n obj.x1 = message.x1.toString();\n }\n if (message.x2 !== undefined && message.x2 !== BigInt(\"0\")) {\n obj.x2 = message.x2.toString();\n }\n if (message.x3 !== undefined && message.x3 !== BigInt(\"0\")) {\n obj.x3 = message.x3.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<B256>): B256 {\n return B256.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<B256>): B256 {\n const message = createBaseB256() as any;\n message.x0 = object.x0 ?? BigInt(\"0\");\n message.x1 = object.x1 ?? BigInt(\"0\");\n message.x2 = object.x2 ?? BigInt(\"0\");\n message.x3 = object.x3 ?? BigInt(\"0\");\n return message;\n },\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 | bigint | 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 { readonly $case: string }\n ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { readonly $case: T[\"$case\"] }\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\nfunction longToBigint(long: Long) {\n return BigInt(long.toString());\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.176.0\n// protoc unknown\n// source: google/protobuf/timestamp.proto\n\n/* eslint-disable */\nimport Long from \"long\";\nimport _m0 from \"protobufjs/minimal.js\";\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://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\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 readonly seconds?:\n | bigint\n | undefined;\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 readonly nanos?: number | undefined;\n}\n\nfunction createBaseTimestamp(): Timestamp {\n return { seconds: BigInt(\"0\"), nanos: 0 };\n}\n\nexport const Timestamp = {\n encode(message: Timestamp, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.seconds !== undefined && message.seconds !== BigInt(\"0\")) {\n if (BigInt.asIntN(64, message.seconds) !== message.seconds) {\n throw new globalThis.Error(\"value provided for field message.seconds of type int64 too large\");\n }\n writer.uint32(8).int64(message.seconds.toString());\n }\n if (message.nanos !== undefined && message.nanos !== 0) {\n writer.uint32(16).int32(message.nanos);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Timestamp {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTimestamp() as any;\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 = longToBigint(reader.int64() as Long);\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.nanos = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Timestamp {\n return {\n seconds: isSet(object.seconds) ? BigInt(object.seconds) : BigInt(\"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 !== undefined && message.seconds !== BigInt(\"0\")) {\n obj.seconds = message.seconds.toString();\n }\n if (message.nanos !== undefined && message.nanos !== 0) {\n obj.nanos = Math.round(message.nanos);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Timestamp>): Timestamp {\n return Timestamp.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Timestamp>): Timestamp {\n const message = createBaseTimestamp() as any;\n message.seconds = object.seconds ?? BigInt(\"0\");\n message.nanos = object.nanos ?? 0;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | 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 { readonly $case: string }\n ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { readonly $case: T[\"$case\"] }\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\nfunction longToBigint(long: Long) {\n return BigInt(long.toString());\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.176.0\n// protoc unknown\n// source: data.proto\n\n/* eslint-disable */\nimport Long from \"long\";\nimport _m0 from \"protobufjs/minimal.js\";\nimport { Address, B256, Bloom, U128, U256 } from \"./common.js\";\nimport { Timestamp } from \"./google/protobuf/timestamp.js\";\n\nexport const protobufPackage = \"evm.v2\";\n\n/** EVM DNA definitions (data). */\n\nexport enum TransactionStatus {\n UNSPECIFIED = 0,\n SUCCEEDED = 1,\n REVERTED = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function transactionStatusFromJSON(object: any): TransactionStatus {\n switch (object) {\n case 0:\n case \"TRANSACTION_STATUS_UNSPECIFIED\":\n return TransactionStatus.UNSPECIFIED;\n case 1:\n case \"TRANSACTION_STATUS_SUCCEEDED\":\n return TransactionStatus.SUCCEEDED;\n case 2:\n case \"TRANSACTION_STATUS_REVERTED\":\n return TransactionStatus.REVERTED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return TransactionStatus.UNRECOGNIZED;\n }\n}\n\nexport function transactionStatusToJSON(object: TransactionStatus): string {\n switch (object) {\n case TransactionStatus.UNSPECIFIED:\n return \"TRANSACTION_STATUS_UNSPECIFIED\";\n case TransactionStatus.SUCCEEDED:\n return \"TRANSACTION_STATUS_SUCCEEDED\";\n case TransactionStatus.REVERTED:\n return \"TRANSACTION_STATUS_REVERTED\";\n case TransactionStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum CallType {\n UNSPECIFIED = 0,\n CALL = 1,\n CALL_CODE = 2,\n DELEGATE_CALL = 3,\n STATIC_CALL = 4,\n AUTH_CALL = 5,\n UNRECOGNIZED = -1,\n}\n\nexport function callTypeFromJSON(object: any): CallType {\n switch (object) {\n case 0:\n case \"CALL_TYPE_UNSPECIFIED\":\n return CallType.UNSPECIFIED;\n case 1:\n case \"CALL_TYPE_CALL\":\n return CallType.CALL;\n case 2:\n case \"CALL_TYPE_CALL_CODE\":\n return CallType.CALL_CODE;\n case 3:\n case \"CALL_TYPE_DELEGATE_CALL\":\n return CallType.DELEGATE_CALL;\n case 4:\n case \"CALL_TYPE_STATIC_CALL\":\n return CallType.STATIC_CALL;\n case 5:\n case \"CALL_TYPE_AUTH_CALL\":\n return CallType.AUTH_CALL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CallType.UNRECOGNIZED;\n }\n}\n\nexport function callTypeToJSON(object: CallType): string {\n switch (object) {\n case CallType.UNSPECIFIED:\n return \"CALL_TYPE_UNSPECIFIED\";\n case CallType.CALL:\n return \"CALL_TYPE_CALL\";\n case CallType.CALL_CODE:\n return \"CALL_TYPE_CALL_CODE\";\n case CallType.DELEGATE_CALL:\n return \"CALL_TYPE_DELEGATE_CALL\";\n case CallType.STATIC_CALL:\n return \"CALL_TYPE_STATIC_CALL\";\n case CallType.AUTH_CALL:\n return \"CALL_TYPE_AUTH_CALL\";\n case CallType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum CreationMethod {\n UNSPECIFIED = 0,\n CREATE = 1,\n CREATE2 = 2,\n EOF_CREATE = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function creationMethodFromJSON(object: any): CreationMethod {\n switch (object) {\n case 0:\n case \"CREATION_METHOD_UNSPECIFIED\":\n return CreationMethod.UNSPECIFIED;\n case 1:\n case \"CREATION_METHOD_CREATE\":\n return CreationMethod.CREATE;\n case 2:\n case \"CREATION_METHOD_CREATE2\":\n return CreationMethod.CREATE2;\n case 3:\n case \"CREATION_METHOD_EOF_CREATE\":\n return CreationMethod.EOF_CREATE;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CreationMethod.UNRECOGNIZED;\n }\n}\n\nexport function creationMethodToJSON(object: CreationMethod): string {\n switch (object) {\n case CreationMethod.UNSPECIFIED:\n return \"CREATION_METHOD_UNSPECIFIED\";\n case CreationMethod.CREATE:\n return \"CREATION_METHOD_CREATE\";\n case CreationMethod.CREATE2:\n return \"CREATION_METHOD_CREATE2\";\n case CreationMethod.EOF_CREATE:\n return \"CREATION_METHOD_EOF_CREATE\";\n case CreationMethod.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum RewardType {\n UNSPECIFIED = 0,\n BLOCK = 1,\n UNCLE = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function rewardTypeFromJSON(object: any): RewardType {\n switch (object) {\n case 0:\n case \"REWARD_TYPE_UNSPECIFIED\":\n return RewardType.UNSPECIFIED;\n case 1:\n case \"REWARD_TYPE_BLOCK\":\n return RewardType.BLOCK;\n case 2:\n case \"REWARD_TYPE_UNCLE\":\n return RewardType.UNCLE;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return RewardType.UNRECOGNIZED;\n }\n}\n\nexport function rewardTypeToJSON(object: RewardType): string {\n switch (object) {\n case RewardType.UNSPECIFIED:\n return \"REWARD_TYPE_UNSPECIFIED\";\n case RewardType.BLOCK:\n return \"REWARD_TYPE_BLOCK\";\n case RewardType.UNCLE:\n return \"REWARD_TYPE_UNCLE\";\n case RewardType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\n/** Requested data, grouped by block. */\nexport interface Block {\n /** The header. */\n readonly header?:\n | BlockHeader\n | undefined;\n /** List of withdrawals. */\n readonly withdrawals?:\n | readonly Withdrawal[]\n | undefined;\n /** List of transactions. */\n readonly transactions?:\n | readonly Transaction[]\n | undefined;\n /** List of receipts. */\n readonly receipts?:\n | readonly TransactionReceipt[]\n | undefined;\n /** List of logs. */\n readonly logs?:\n | readonly Log[]\n | undefined;\n /** List of transaction traces. */\n readonly traces?: readonly TransactionTrace[] | undefined;\n}\n\n/** Block header. */\nexport interface BlockHeader {\n /** Block number. */\n readonly blockNumber?:\n | bigint\n | undefined;\n /** Hash of the block. */\n readonly blockHash?:\n | B256\n | undefined;\n /** Hash of the parent block. */\n readonly parentBlockHash?:\n | B256\n | undefined;\n /** Hash of the uncles. */\n readonly unclesHash?:\n | B256\n | undefined;\n /** Author of the block. */\n readonly miner?:\n | Address\n | undefined;\n /** State root hash. */\n readonly stateRoot?:\n | B256\n | undefined;\n /** Transactions root hash. */\n readonly transactionsRoot?:\n | B256\n | undefined;\n /** Receipts root hash. */\n readonly receiptsRoot?:\n | B256\n | undefined;\n /** Logs bloom. */\n readonly logsBloom?:\n | Bloom\n | undefined;\n /** Difficulty. */\n readonly difficulty?:\n | U256\n | undefined;\n /** Gas limit. */\n readonly gasLimit?:\n | U128\n | undefined;\n /** Gas used. */\n readonly gasUsed?:\n | U128\n | undefined;\n /** Timestamp. */\n readonly timestamp?:\n | Date\n | undefined;\n /** Extra data. */\n readonly extraData?:\n | Uint8Array\n | undefined;\n /** Mix hash. */\n readonly mixHash?:\n | B256\n | undefined;\n /** Nonce. */\n readonly nonce?:\n | bigint\n | undefined;\n /** Base fee per unit of gas. */\n readonly baseFeePerGas?:\n | U128\n | undefined;\n /** Withdrawals root hash. */\n readonly withdrawalsRoot?:\n | B256\n | undefined;\n /** Total difficulty. */\n readonly totalDifficulty?:\n | U256\n | undefined;\n /** Blob gas used. */\n readonly blobGasUsed?:\n | U128\n | undefined;\n /** Excess blob gas. */\n readonly excessBlobGas?:\n | U128\n | undefined;\n /** Parent beacon block root. */\n readonly parentBeaconBlockRoot?:\n | B256\n | undefined;\n /**\n * The Keccak 256-bit hash of the an RLP encoded list with each EIP-7685\n * request in the block body.\n */\n readonly requestsHash?: B256 | undefined;\n}\n\n/** A validator's withdrawal from the consensus layer. */\nexport interface Withdrawal {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Withdrawal index in the block. */\n readonly withdrawalIndex?:\n | number\n | undefined;\n /** Increasing index of the withdrawal. */\n readonly index?:\n | bigint\n | undefined;\n /** Index of the validator. */\n readonly validatorIndex?:\n | number\n | undefined;\n /** Target address of the withdrawal. */\n readonly address?:\n | Address\n | undefined;\n /** Value of the withdrawal, in gwei. */\n readonly amount?: bigint | undefined;\n}\n\nexport interface Transaction {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Transaction index in the block. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | B256\n | undefined;\n /** Nonce. */\n readonly nonce?:\n | bigint\n | undefined;\n /** Sender. */\n readonly from?:\n | Address\n | undefined;\n /** Recipient. */\n readonly to?:\n | Address\n | undefined;\n /** Amount of wei transferred. */\n readonly value?:\n | U256\n | undefined;\n /** Gas price. */\n readonly gasPrice?:\n | U128\n | undefined;\n /** Gas amount. */\n readonly gas?:\n | U128\n | undefined;\n /** Max base fee per gas the sender is willing to pay. */\n readonly maxFeePerGas?:\n | U128\n | undefined;\n /** Miner's tip. */\n readonly maxPriorityFeePerGas?:\n | U128\n | undefined;\n /** Data. */\n readonly input?:\n | Uint8Array\n | undefined;\n /** The signature's r,s,v,yParity values. */\n readonly signature?:\n | Signature\n | undefined;\n /** Chain ID. */\n readonly chainId?:\n | bigint\n | undefined;\n /** EIP-2930 access list. */\n readonly accessList?:\n | readonly AccessListItem[]\n | undefined;\n /** EIP-2718 transaction type. */\n readonly transactionType?:\n | bigint\n | undefined;\n /** EIP-4844 max gas fee per blob. */\n readonly maxFeePerBlobGas?:\n | U128\n | undefined;\n /** EIP-4844 blob hashes. */\n readonly blobVersionedHashes?:\n | readonly B256[]\n | undefined;\n /** The transaction status. */\n readonly transactionStatus?: TransactionStatus | undefined;\n}\n\nexport interface TransactionReceipt {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Index of the transaction in the block. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | B256\n | undefined;\n /** Cumulative gas used in the block after this transaction has been executed. */\n readonly cumulativeGasUsed?:\n | U128\n | undefined;\n /** Gas used by this transaction. */\n readonly gasUsed?:\n | U128\n | undefined;\n /** The price paid by the transaction. */\n readonly effectiveGasPrice?:\n | U128\n | undefined;\n /** Sender. */\n readonly from?:\n | Address\n | undefined;\n /** Recipient, if any. */\n readonly to?:\n | Address\n | undefined;\n /** Contract address created, if any. */\n readonly contractAddress?:\n | Address\n | undefined;\n /** Logs bloom. */\n readonly logsBloom?:\n | Bloom\n | undefined;\n /** EIP-2718 transaction type. */\n readonly transactionType?:\n | bigint\n | undefined;\n /** EIP-4844 blob gas used. */\n readonly blobGasUsed?:\n | U128\n | undefined;\n /** EIP-4844 blob gas paid by the transaction. */\n readonly blobGasPrice?:\n | U128\n | undefined;\n /** The transaction status. */\n readonly transactionStatus?: TransactionStatus | undefined;\n}\n\nexport interface Log {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Index of the log in the block. */\n readonly logIndex?:\n | number\n | undefined;\n /** Address of the contract that emitted the log. */\n readonly address?:\n | Address\n | undefined;\n /** Log topics. */\n readonly topics?:\n | readonly B256[]\n | undefined;\n /** Additional data. */\n readonly data?:\n | Uint8Array\n | undefined;\n /** Index of the transaction that emitted the log. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Hash of the transaction that emitted the log. */\n readonly transactionHash?:\n | B256\n | undefined;\n /** The transaction status. */\n readonly transactionStatus?:\n | TransactionStatus\n | undefined;\n /** Index of the log in the transaction. */\n readonly logIndexInTransaction?: number | undefined;\n}\n\nexport interface Signature {\n /** The signature's r value. */\n readonly r?:\n | U256\n | undefined;\n /** The signature's s value. */\n readonly s?:\n | U256\n | undefined;\n /** The signature's v value. */\n readonly v?:\n | U256\n | undefined;\n /** The signature's parity byte. */\n readonly yParity?: boolean | undefined;\n}\n\nexport interface AccessListItem {\n /** Account address to be loaded at the start of the transaction. */\n readonly address?:\n | Address\n | undefined;\n /** Storage keys to be loaded at the start of the transaction. */\n readonly storageKeys?: readonly B256[] | undefined;\n}\n\nexport interface TransactionTrace {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Index of the transaction in the block. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | B256\n | undefined;\n /** Traces. */\n readonly traces?: readonly Trace[] | undefined;\n}\n\nexport interface Trace {\n readonly action?:\n | { readonly $case: \"call\"; readonly call: CallAction }\n | { readonly $case: \"create\"; readonly create: CreateAction }\n | { readonly $case: \"selfDestruct\"; readonly selfDestruct: SelfDestructAction }\n | { readonly $case: \"reward\"; readonly reward: RewardAction }\n | undefined;\n /** Error message if the transaction failed. */\n readonly error?: string | undefined;\n readonly output?:\n | { readonly $case: \"callOutput\"; readonly callOutput: CallOutput }\n | { readonly $case: \"createOutput\"; readonly createOutput: CreateOutput }\n | undefined;\n /** Number of sub traces. */\n readonly subtraces?:\n | number\n | undefined;\n /** The identifier of this trace in the trace tree. */\n readonly traceAddress?: readonly number[] | undefined;\n}\n\nexport interface CallAction {\n /** Address of the sending account. */\n readonly fromAddress?:\n | Address\n | undefined;\n /** Call type. */\n readonly type?:\n | CallType\n | undefined;\n /** The gas available to execute the call. */\n readonly gas?:\n | bigint\n | undefined;\n /** Input data provided by the call. */\n readonly input?:\n | Uint8Array\n | undefined;\n /** Target of the destination address. */\n readonly toAddress?:\n | Address\n | undefined;\n /** Value transferred to the destination account. */\n readonly value?: U256 | undefined;\n}\n\nexport interface CreateAction {\n /** Address of the sending account. */\n readonly fromAddress?:\n | Address\n | undefined;\n /** The gas available to execute the call. */\n readonly gas?:\n | bigint\n | undefined;\n /** Input data provided by the call. */\n readonly init?:\n | Uint8Array\n | undefined;\n /** Value transferred to the ne account. */\n readonly value?:\n | U256\n | undefined;\n /** Contract creation method. */\n readonly creationMethod?: CreationMethod | undefined;\n}\n\nexport interface SelfDestructAction {\n /** The destroyed address. */\n readonly address?:\n | Address\n | undefined;\n /** Balance of the destroyed account before destruct. */\n readonly balance?:\n | U256\n | undefined;\n /** The heir address. */\n readonly refundAddress?: Address | undefined;\n}\n\nexport interface RewardAction {\n /** The author's address. */\n readonly author?:\n | Address\n | undefined;\n /** Reward type. */\n readonly type?:\n | RewardType\n | undefined;\n /** The reward's value. */\n readonly value?: U256 | undefined;\n}\n\nexport interface CallOutput {\n /** Gas used. */\n readonly gasUsed?:\n | bigint\n | undefined;\n /** Output data. */\n readonly output?: Uint8Array | undefined;\n}\n\nexport interface CreateOutput {\n /** Contract address. */\n readonly address?:\n | Address\n | undefined;\n /** Code */\n readonly code?:\n | Uint8Array\n | undefined;\n /** Gas used. */\n readonly gasUsed?: bigint | undefined;\n}\n\nfunction createBaseBlock(): Block {\n return { header: undefined, withdrawals: [], transactions: [], receipts: [], logs: [], traces: [] };\n}\n\nexport const Block = {\n encode(message: Block, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.header !== undefined) {\n BlockHeader.encode(message.header, writer.uint32(10).fork()).ldelim();\n }\n if (message.withdrawals !== undefined && message.withdrawals.length !== 0) {\n for (const v of message.withdrawals) {\n Withdrawal.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.transactions !== undefined && message.transactions.length !== 0) {\n for (const v of message.transactions) {\n Transaction.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.receipts !== undefined && message.receipts.length !== 0) {\n for (const v of message.receipts) {\n TransactionReceipt.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.logs !== undefined && message.logs.length !== 0) {\n for (const v of message.logs) {\n Log.encode(v!, writer.uint32(42).fork()).ldelim();\n }\n }\n if (message.traces !== undefined && message.traces.length !== 0) {\n for (const v of message.traces) {\n TransactionTrace.encode(v!, writer.uint32(50).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Block {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlock() as any;\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.header = BlockHeader.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.withdrawals!.push(Withdrawal.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transactions!.push(Transaction.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.receipts!.push(TransactionReceipt.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.logs!.push(Log.decode(reader, reader.uint32()));\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.traces!.push(TransactionTrace.decode(reader, reader.uint32()));\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Block {\n return {\n header: isSet(object.header) ? BlockHeader.fromJSON(object.header) : undefined,\n withdrawals: globalThis.Array.isArray(object?.withdrawals)\n ? object.withdrawals.map((e: any) => Withdrawal.fromJSON(e))\n : [],\n transactions: globalThis.Array.isArray(object?.transactions)\n ? object.transactions.map((e: any) => Transaction.fromJSON(e))\n : [],\n receipts: globalThis.Array.isArray(object?.receipts)\n ? object.receipts.map((e: any) => TransactionReceipt.fromJSON(e))\n : [],\n logs: globalThis.Array.isArray(object?.logs) ? object.logs.map((e: any) => Log.fromJSON(e)) : [],\n traces: globalThis.Array.isArray(object?.traces)\n ? object.traces.map((e: any) => TransactionTrace.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: Block): unknown {\n const obj: any = {};\n if (message.header !== undefined) {\n obj.header = BlockHeader.toJSON(message.header);\n }\n if (message.withdrawals?.length) {\n obj.withdrawals = message.withdrawals.map((e) => Withdrawal.toJSON(e));\n }\n if (message.transactions?.length) {\n obj.transactions = message.transactions.map((e) => Transaction.toJSON(e));\n }\n if (message.receipts?.length) {\n obj.receipts = message.receipts.map((e) => TransactionReceipt.toJSON(e));\n }\n if (message.logs?.length) {\n obj.logs = message.logs.map((e) => Log.toJSON(e));\n }\n if (message.traces?.length) {\n obj.traces = message.traces.map((e) => TransactionTrace.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<Block>): Block {\n return Block.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Block>): Block {\n const message = createBaseBlock() as any;\n message.header = (object.header !== undefined && object.header !== null)\n ? BlockHeader.fromPartial(object.header)\n : undefined;\n message.withdrawals = object.withdrawals?.map((e) => Withdrawal.fromPartial(e)) || [];\n message.transactions = object.transactions?.map((e) => Transaction.fromPartial(e)) || [];\n message.receipts = object.receipts?.map((e) => TransactionReceipt.fromPartial(e)) || [];\n message.logs = object.logs?.map((e) => Log.fromPartial(e)) || [];\n message.traces = object.traces?.map((e) => TransactionTrace.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseBlockHeader(): BlockHeader {\n return {\n blockNumber: BigInt(\"0\"),\n blockHash: undefined,\n parentBlockHash: undefined,\n unclesHash: undefined,\n miner: undefined,\n stateRoot: undefined,\n transactionsRoot: undefined,\n receiptsRoot: undefined,\n logsBloom: undefined,\n difficulty: undefined,\n gasLimit: undefined,\n gasUsed: undefined,\n timestamp: undefined,\n extraData: new Uint8Array(0),\n mixHash: undefined,\n nonce: undefined,\n baseFeePerGas: undefined,\n withdrawalsRoot: undefined,\n totalDifficulty: undefined,\n blobGasUsed: undefined,\n excessBlobGas: undefined,\n parentBeaconBlockRoot: undefined,\n requestsHash: undefined,\n };\n}\n\nexport const BlockHeader = {\n encode(message: BlockHeader, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.blockNumber !== undefined && message.blockNumber !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.blockNumber) !== message.blockNumber) {\n throw new globalThis.Error(\"value provided for field message.blockNumber of type uint64 too large\");\n }\n writer.uint32(8).uint64(message.blockNumber.toString());\n }\n if (message.blockHash !== undefined) {\n B256.encode(message.blockHash, writer.uint32(18).fork()).ldelim();\n }\n if (message.parentBlockHash !== undefined) {\n B256.encode(message.parentBlockHash, writer.uint32(26).fork()).ldelim();\n }\n if (message.unclesHash !== undefined) {\n B256.encode(message.unclesHash, writer.uint32(34).fork()).ldelim();\n }\n if (message.miner !== undefined) {\n Address.encode(message.miner, writer.uint32(42).fork()).ldelim();\n }\n if (message.stateRoot !== undefined) {\n B256.encode(message.stateRoot, writer.uint32(50).fork()).ldelim();\n }\n if (message.transactionsRoot !== undefined) {\n B256.encode(message.transactionsRoot, writer.uint32(58).fork()).ldelim();\n }\n if (message.receiptsRoot !== undefined) {\n B256.encode(message.receiptsRoot, writer.uint32(66).fork()).ldelim();\n }\n if (message.logsBloom !== undefined) {\n Bloom.encode(message.logsBloom, writer.uint32(74).fork()).ldelim();\n }\n if (message.difficulty !== undefined) {\n U256.encode(message.difficulty, writer.uint32(82).fork()).ldelim();\n }\n if (message.gasLimit !== undefined) {\n U128.encode(message.gasLimit, writer.uint32(90).fork()).ldelim();\n }\n if (message.gasUsed !== undefined) {\n U128.encode(message.gasUsed, writer.uint32(98).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(106).fork()).ldelim();\n }\n if (message.extraData !== undefined && message.extraData.length !== 0) {\n writer.uint32(114).bytes(message.extraData);\n }\n if (message.mixHash !== undefined) {\n B256.encode(message.mixHash, writer.uint32(122).fork()).ldelim();\n }\n if (message.nonce !== undefined) {\n if (BigInt.asUintN(64, message.nonce) !== message.nonce) {\n throw new globalThis.Error(\"value provided for field message.nonce of type uint64 too large\");\n }\n writer.uint32(128).uint64(message.nonce.toString());\n }\n if (message.baseFeePerGas !== undefined) {\n U128.encode(message.baseFeePerGas, writer.uint32(138).fork()).ldelim();\n }\n if (message.withdrawalsRoot !== undefined) {\n B256.encode(message.withdrawalsRoot, writer.uint32(146).fork()).ldelim();\n }\n if (message.totalDifficulty !== undefined) {\n U256.encode(message.totalDifficulty, writer.uint32(154).fork()).ldelim();\n }\n if (message.blobGasUsed !== undefined) {\n U128.encode(message.blobGasUsed, writer.uint32(162).fork()).ldelim();\n }\n if (message.excessBlobGas !== undefined) {\n U128.encode(message.excessBlobGas, writer.uint32(170).fork()).ldelim();\n }\n if (message.parentBeaconBlockRoot !== undefined) {\n B256.encode(message.parentBeaconBlockRoot, writer.uint32(178).fork()).ldelim();\n }\n if (message.requestsHash !== undefined) {\n B256.encode(message.requestsHash, writer.uint32(186).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): BlockHeader {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBlockHeader() as any;\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.blockNumber = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.blockHash = B256.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.parentBlockHash = B256.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.unclesHash = B256.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.miner = Address.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.stateRoot = B256.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.transactionsRoot = B256.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.receiptsRoot = B256.decode(reader, reader.uint32());\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.logsBloom = Bloom.decode(reader, reader.uint32());\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n\n message.difficulty = U256.decode(reader, reader.uint32());\n continue;\n case 11:\n if (tag !== 90) {\n break;\n }\n\n message.gasLimit = U128.decode(reader, reader.uint32());\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n\n message.gasUsed = U128.decode(reader, reader.uint32());\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n\n message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n case 14:\n if (tag !== 114) {\n break;\n }\n\n message.extraData = reader.bytes();\n continue;\n case 15:\n if (tag !== 122) {\n break;\n }\n\n message.mixHash = B256.decode(reader, reader.uint32());\n continue;\n case 16:\n if (tag !== 128) {\n break;\n }\n\n message.nonce = longToBigint(reader.uint64() as Long);\n continue;\n case 17:\n if (tag !== 138) {\n break;\n }\n\n message.baseFeePerGas = U128.decode(reader, reader.uint32());\n continue;\n case 18:\n if (tag !== 146) {\n break;\n }\n\n message.withdrawalsRoot = B256.decode(reader, reader.uint32());\n continue;\n case 19:\n if (tag !== 154) {\n break;\n }\n\n message.totalDifficulty = U256.decode(reader, reader.uint32());\n continue;\n case 20:\n if (tag !== 162) {\n break;\n }\n\n message.blobGasUsed = U128.decode(reader, reader.uint32());\n continue;\n case 21:\n if (tag !== 170) {\n break;\n }\n\n message.excessBlobGas = U128.decode(reader, reader.uint32());\n continue;\n case 22:\n if (tag !== 178) {\n break;\n }\n\n message.parentBeaconBlockRoot = B256.decode(reader, reader.uint32());\n continue;\n case 23:\n if (tag !== 186) {\n break;\n }\n\n message.requestsHash = B256.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): BlockHeader {\n return {\n blockNumber: isSet(object.blockNumber) ? BigInt(object.blockNumber) : BigInt(\"0\"),\n blockHash: isSet(object.blockHash) ? B256.fromJSON(object.blockHash) : undefined,\n parentBlockHash: isSet(object.parentBlockHash) ? B256.fromJSON(object.parentBlockHash) : undefined,\n unclesHash: isSet(object.unclesHash) ? B256.fromJSON(object.unclesHash) : undefined,\n miner: isSet(object.miner) ? Address.fromJSON(object.miner) : undefined,\n stateRoot: isSet(object.stateRoot) ? B256.fromJSON(object.stateRoot) : undefined,\n transactionsRoot: isSet(object.transactionsRoot) ? B256.fromJSON(object.transactionsRoot) : undefined,\n receiptsRoot: isSet(object.receiptsRoot) ? B256.fromJSON(object.receiptsRoot) : undefined,\n logsBloom: isSet(object.logsBloom) ? Bloom.fromJSON(object.logsBloom) : undefined,\n difficulty: isSet(object.difficulty) ? U256.fromJSON(object.difficulty) : undefined,\n gasLimit: isSet(object.gasLimit) ? U128.fromJSON(object.gasLimit) : undefined,\n gasUsed: isSet(object.gasUsed) ? U128.fromJSON(object.gasUsed) : undefined,\n timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : undefined,\n extraData: isSet(object.extraData) ? bytesFromBase64(object.extraData) : new Uint8Array(0),\n mixHash: isSet(object.mixHash) ? B256.fromJSON(object.mixHash) : undefined,\n nonce: isSet(object.nonce) ? BigInt(object.nonce) : undefined,\n baseFeePerGas: isSet(object.baseFeePerGas) ? U128.fromJSON(object.baseFeePerGas) : undefined,\n withdrawalsRoot: isSet(object.withdrawalsRoot) ? B256.fromJSON(object.withdrawalsRoot) : undefined,\n totalDifficulty: isSet(object.totalDifficulty) ? U256.fromJSON(object.totalDifficulty) : undefined,\n blobGasUsed: isSet(object.blobGasUsed) ? U128.fromJSON(object.blobGasUsed) : undefined,\n excessBlobGas: isSet(object.excessBlobGas) ? U128.fromJSON(object.excessBlobGas) : undefined,\n parentBeaconBlockRoot: isSet(object.parentBeaconBlockRoot)\n ? B256.fromJSON(object.parentBeaconBlockRoot)\n : undefined,\n requestsHash: isSet(object.requestsHash) ? B256.fromJSON(object.requestsHash) : undefined,\n };\n },\n\n toJSON(message: BlockHeader): unknown {\n const obj: any = {};\n if (message.blockNumber !== undefined && message.blockNumber !== BigInt(\"0\")) {\n obj.blockNumber = message.blockNumber.toString();\n }\n if (message.blockHash !== undefined) {\n obj.blockHash = B256.toJSON(message.blockHash);\n }\n if (message.parentBlockHash !== undefined) {\n obj.parentBlockHash = B256.toJSON(message.parentBlockHash);\n }\n if (message.unclesHash !== undefined) {\n obj.unclesHash = B256.toJSON(message.unclesHash);\n }\n if (message.miner !== undefined) {\n obj.miner = Address.toJSON(message.miner);\n }\n if (message.stateRoot !== undefined) {\n obj.stateRoot = B256.toJSON(message.stateRoot);\n }\n if (message.transactionsRoot !== undefined) {\n obj.transactionsRoot = B256.toJSON(message.transactionsRoot);\n }\n if (message.receiptsRoot !== undefined) {\n obj.receiptsRoot = B256.toJSON(message.receiptsRoot);\n }\n if (message.logsBloom !== undefined) {\n obj.logsBloom = Bloom.toJSON(message.logsBloom);\n }\n if (message.difficulty !== undefined) {\n obj.difficulty = U256.toJSON(message.difficulty);\n }\n if (message.gasLimit !== undefined) {\n obj.gasLimit = U128.toJSON(message.gasLimit);\n }\n if (message.gasUsed !== undefined) {\n obj.gasUsed = U128.toJSON(message.gasUsed);\n }\n if (message.timestamp !== undefined) {\n obj.timestamp = message.timestamp.toISOString();\n }\n if (message.extraData !== undefined && message.extraData.length !== 0) {\n obj.extraData = base64FromBytes(message.extraData);\n }\n if (message.mixHash !== undefined) {\n obj.mixHash = B256.toJSON(message.mixHash);\n }\n if (message.nonce !== undefined) {\n obj.nonce = message.nonce.toString();\n }\n if (message.baseFeePerGas !== undefined) {\n obj.baseFeePerGas = U128.toJSON(message.baseFeePerGas);\n }\n if (message.withdrawalsRoot !== undefined) {\n obj.withdrawalsRoot = B256.toJSON(message.withdrawalsRoot);\n }\n if (message.totalDifficulty !== undefined) {\n obj.totalDifficulty = U256.toJSON(message.totalDifficulty);\n }\n if (message.blobGasUsed !== undefined) {\n obj.blobGasUsed = U128.toJSON(message.blobGasUsed);\n }\n if (message.excessBlobGas !== undefined) {\n obj.excessBlobGas = U128.toJSON(message.excessBlobGas);\n }\n if (message.parentBeaconBlockRoot !== undefined) {\n obj.parentBeaconBlockRoot = B256.toJSON(message.parentBeaconBlockRoot);\n }\n if (message.requestsHash !== undefined) {\n obj.requestsHash = B256.toJSON(message.requestsHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<BlockHeader>): BlockHeader {\n return BlockHeader.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<BlockHeader>): BlockHeader {\n const message = createBaseBlockHeader() as any;\n message.blockNumber = object.blockNumber ?? BigInt(\"0\");\n message.blockHash = (object.blockHash !== undefined && object.blockHash !== null)\n ? B256.fromPartial(object.blockHash)\n : undefined;\n message.parentBlockHash = (object.parentBlockHash !== undefined && object.parentBlockHash !== null)\n ? B256.fromPartial(object.parentBlockHash)\n : undefined;\n message.unclesHash = (object.unclesHash !== undefined && object.unclesHash !== null)\n ? B256.fromPartial(object.unclesHash)\n : undefined;\n message.miner = (object.miner !== undefined && object.miner !== null)\n ? Address.fromPartial(object.miner)\n : undefined;\n message.stateRoot = (object.stateRoot !== undefined && object.stateRoot !== null)\n ? B256.fromPartial(object.stateRoot)\n : undefined;\n message.transactionsRoot = (object.transactionsRoot !== undefined && object.transactionsRoot !== null)\n ? B256.fromPartial(object.transactionsRoot)\n : undefined;\n message.receiptsRoot = (object.receiptsRoot !== undefined && object.receiptsRoot !== null)\n ? B256.fromPartial(object.receiptsRoot)\n : undefined;\n message.logsBloom = (object.logsBloom !== undefined && object.logsBloom !== null)\n ? Bloom.fromPartial(object.logsBloom)\n : undefined;\n message.difficulty = (object.difficulty !== undefined && object.difficulty !== null)\n ? U256.fromPartial(object.difficulty)\n : undefined;\n message.gasLimit = (object.gasLimit !== undefined && object.gasLimit !== null)\n ? U128.fromPartial(object.gasLimit)\n : undefined;\n message.gasUsed = (object.gasUsed !== undefined && object.gasUsed !== null)\n ? U128.fromPartial(object.gasUsed)\n : undefined;\n message.timestamp = object.timestamp ?? undefined;\n message.extraData = object.extraData ?? new Uint8Array(0);\n message.mixHash = (object.mixHash !== undefined && object.mixHash !== null)\n ? B256.fromPartial(object.mixHash)\n : undefined;\n message.nonce = object.nonce ?? undefined;\n message.baseFeePerGas = (object.baseFeePerGas !== undefined && object.baseFeePerGas !== null)\n ? U128.fromPartial(object.baseFeePerGas)\n : undefined;\n message.withdrawalsRoot = (object.withdrawalsRoot !== undefined && object.withdrawalsRoot !== null)\n ? B256.fromPartial(object.withdrawalsRoot)\n : undefined;\n message.totalDifficulty = (object.totalDifficulty !== undefined && object.totalDifficulty !== null)\n ? U256.fromPartial(object.totalDifficulty)\n : undefined;\n message.blobGasUsed = (object.blobGasUsed !== undefined && object.blobGasUsed !== null)\n ? U128.fromPartial(object.blobGasUsed)\n : undefined;\n message.excessBlobGas = (object.excessBlobGas !== undefined && object.excessBlobGas !== null)\n ? U128.fromPartial(object.excessBlobGas)\n : undefined;\n message.parentBeaconBlockRoot =\n (object.parentBeaconBlockRoot !== undefined && object.parentBeaconBlockRoot !== null)\n ? B256.fromPartial(object.parentBeaconBlockRoot)\n : undefined;\n message.requestsHash = (object.requestsHash !== undefined && object.requestsHash !== null)\n ? B256.fromPartial(object.requestsHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseWithdrawal(): Withdrawal {\n return {\n filterIds: [],\n withdrawalIndex: 0,\n index: BigInt(\"0\"),\n validatorIndex: 0,\n address: undefined,\n amount: BigInt(\"0\"),\n };\n}\n\nexport const Withdrawal = {\n encode(message: Withdrawal, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.filterIds !== undefined && message.filterIds.length !== 0) {\n writer.uint32(10).fork();\n for (const v of message.filterIds) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.withdrawalIndex !== undefined && message.withdrawalIndex !== 0) {\n writer.uint32(16).uint32(message.withdrawalIndex);\n }\n if (message.index !== undefined && message.index !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.index) !== message.index) {\n throw new globalThis.Error(\"value provided for field message.index of type uint64 too large\");\n }\n writer.uint32(24).uint64(message.index.toString());\n }\n if (message.validatorIndex !== undefined && message.validatorIndex !== 0) {\n writer.uint32(32).uint32(message.validatorIndex);\n }\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(42).fork()).ldelim();\n }\n if (message.amount !== undefined && message.amount !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.amount) !== message.amount) {\n throw new globalThis.Error(\"value provided for field message.amount of type uint64 too large\");\n }\n writer.uint32(48).uint64(message.amount.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Withdrawal {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWithdrawal() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag === 8) {\n message.filterIds!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 10) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.filterIds!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.withdrawalIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.index = longToBigint(reader.uint64() as Long);\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.validatorIndex = reader.uint32();\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.address = Address.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.amount = longToBigint(reader.uint64() as Long);\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Withdrawal {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n withdrawalIndex: isSet(object.withdrawalIndex) ? globalThis.Number(object.withdrawalIndex) : 0,\n index: isSet(object.index) ? BigInt(object.index) : BigInt(\"0\"),\n validatorIndex: isSet(object.validatorIndex) ? globalThis.Number(object.validatorIndex) : 0,\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n amount: isSet(object.amount) ? BigInt(object.amount) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: Withdrawal): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.withdrawalIndex !== undefined && message.withdrawalIndex !== 0) {\n obj.withdrawalIndex = Math.round(message.withdrawalIndex);\n }\n if (message.index !== undefined && message.index !== BigInt(\"0\")) {\n obj.index = message.index.toString();\n }\n if (message.validatorIndex !== undefined && message.validatorIndex !== 0) {\n obj.validatorIndex = Math.round(message.validatorIndex);\n }\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.amount !== undefined && message.amount !== BigInt(\"0\")) {\n obj.amount = message.amount.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<Withdrawal>): Withdrawal {\n return Withdrawal.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Withdrawal>): Withdrawal {\n const message = createBaseWithdrawal() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.withdrawalIndex = object.withdrawalIndex ?? 0;\n message.index = object.index ?? BigInt(\"0\");\n message.validatorIndex = object.validatorIndex ?? 0;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.amount = object.amount ?? BigInt(\"0\");\n return message;\n },\n};\n\nfunction createBaseTransaction(): Transaction {\n return {\n filterIds: [],\n transactionIndex: 0,\n transactionHash: undefined,\n nonce: BigInt(\"0\"),\n from: undefined,\n to: undefined,\n value: undefined,\n gasPrice: undefined,\n gas: undefined,\n maxFeePerGas: undefined,\n maxPriorityFeePerGas: undefined,\n input: new Uint8Array(0),\n signature: undefined,\n chainId: undefined,\n accessList: [],\n transactionType: BigInt(\"0\"),\n maxFeePerBlobGas: undefined,\n blobVersionedHashes: [],\n transactionStatus: 0,\n };\n}\n\nexport const Transaction = {\n encode(message: Transaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.filterIds !== undefined && message.filterIds.length !== 0) {\n writer.uint32(10).fork();\n for (const v of message.filterIds) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(16).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n B256.encode(message.transactionHash, writer.uint32(26).fork()).ldelim();\n }\n if (message.nonce !== undefined && message.nonce !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.nonce) !== message.nonce) {\n throw new globalThis.Error(\"value provided for field message.nonce of type uint64 too large\");\n }\n writer.uint32(32).uint64(message.nonce.toString());\n }\n if (message.from !== undefined) {\n Address.encode(message.from, writer.uint32(42).fork()).ldelim();\n }\n if (message.to !== undefined) {\n Address.encode(message.to, writer.uint32(50).fork()).ldelim();\n }\n if (message.value !== undefined) {\n U256.encode(message.value, writer.uint32(58).fork()).ldelim();\n }\n if (message.gasPrice !== undefined) {\n U128.encode(message.gasPrice, writer.uint32(66).fork()).ldelim();\n }\n if (message.gas !== undefined) {\n U128.encode(message.gas, writer.uint32(74).fork()).ldelim();\n }\n if (message.maxFeePerGas !== undefined) {\n U128.encode(message.maxFeePerGas, writer.uint32(82).fork()).ldelim();\n }\n if (message.maxPriorityFeePerGas !== undefined) {\n U128.encode(message.maxPriorityFeePerGas, writer.uint32(90).fork()).ldelim();\n }\n if (message.input !== undefined && message.input.length !== 0) {\n writer.uint32(98).bytes(message.input);\n }\n if (message.signature !== undefined) {\n Signature.encode(message.signature, writer.uint32(106).fork()).ldelim();\n }\n if (message.chainId !== undefined) {\n if (BigInt.asUintN(64, message.chainId) !== message.chainId) {\n throw new globalThis.Error(\"value provided for field message.chainId of type uint64 too large\");\n }\n writer.uint32(112).uint64(message.chainId.toString());\n }\n if (message.accessList !== undefined && message.accessList.length !== 0) {\n for (const v of message.accessList) {\n AccessListItem.encode(v!, writer.uint32(122).fork()).ldelim();\n }\n }\n if (message.transactionType !== undefined && message.transactionType !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.transactionType) !== message.transactionType) {\n throw new globalThis.Error(\"value provided for field message.transactionType of type uint64 too large\");\n }\n writer.uint32(128).uint64(message.transactionType.toString());\n }\n if (message.maxFeePerBlobGas !== undefined) {\n U128.encode(message.maxFeePerBlobGas, writer.uint32(138).fork()).ldelim();\n }\n if (message.blobVersionedHashes !== undefined && message.blobVersionedHashes.length !== 0) {\n for (const v of message.blobVersionedHashes) {\n B256.encode(v!, writer.uint32(146).fork()).ldelim();\n }\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n writer.uint32(152).int32(message.transactionStatus);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Transaction {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTransaction() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag === 8) {\n message.filterIds!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 10) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.filterIds!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.transactionIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transactionHash = B256.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.nonce = longToBigint(reader.uint64() as Long);\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.from = Address.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.to = Address.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.value = U256.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.gasPrice = U128.decode(reader, reader.uint32());\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.gas = U128.decode(reader, reader.uint32());\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n\n message.maxFeePerGas = U128.decode(reader, reader.uint32());\n continue;\n case 11:\n if (tag !== 90) {\n break;\n }\n\n message.maxPriorityFeePerGas = U128.decode(reader, reader.uint32());\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n\n message.input = reader.bytes();\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n\n message.signature = Signature.decode(reader, reader.uint32());\n continue;\n case 14:\n if (tag !== 112) {\n break;\n }\n\n message.chainId = longToBigint(reader.uint64() as Long);\n continue;\n case 15:\n if (tag !== 122) {\n break;\n }\n\n message.accessList!.push(AccessListItem.decode(reader, reader.uint32()));\n continue;\n case 16:\n if (tag !== 128) {\n break;\n }\n\n message.transactionType = longToBigint(reader.uint64() as Long);\n continue;\n case 17:\n if (tag !== 138) {\n break;\n }\n\n message.maxFeePerBlobGas = U128.decode(reader, reader.uint32());\n continue;\n case 18:\n if (tag !== 146) {\n break;\n }\n\n message.blobVersionedHashes!.push(B256.decode(reader, reader.uint32()));\n continue;\n case 19:\n if (tag !== 152) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Transaction {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? B256.fromJSON(object.transactionHash) : undefined,\n nonce: isSet(object.nonce) ? BigInt(object.nonce) : BigInt(\"0\"),\n from: isSet(object.from) ? Address.fromJSON(object.from) : undefined,\n to: isSet(object.to) ? Address.fromJSON(object.to) : undefined,\n value: isSet(object.value) ? U256.fromJSON(object.value) : undefined,\n gasPrice: isSet(object.gasPrice) ? U128.fromJSON(object.gasPrice) : undefined,\n gas: isSet(object.gas) ? U128.fromJSON(object.gas) : undefined,\n maxFeePerGas: isSet(object.maxFeePerGas) ? U128.fromJSON(object.maxFeePerGas) : undefined,\n maxPriorityFeePerGas: isSet(object.maxPriorityFeePerGas) ? U128.fromJSON(object.maxPriorityFeePerGas) : undefined,\n input: isSet(object.input) ? bytesFromBase64(object.input) : new Uint8Array(0),\n signature: isSet(object.signature) ? Signature.fromJSON(object.signature) : undefined,\n chainId: isSet(object.chainId) ? BigInt(object.chainId) : undefined,\n accessList: globalThis.Array.isArray(object?.accessList)\n ? object.accessList.map((e: any) => AccessListItem.fromJSON(e))\n : [],\n transactionType: isSet(object.transactionType) ? BigInt(object.transactionType) : BigInt(\"0\"),\n maxFeePerBlobGas: isSet(object.maxFeePerBlobGas) ? U128.fromJSON(object.maxFeePerBlobGas) : undefined,\n blobVersionedHashes: globalThis.Array.isArray(object?.blobVersionedHashes)\n ? object.blobVersionedHashes.map((e: any) => B256.fromJSON(e))\n : [],\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n };\n },\n\n toJSON(message: Transaction): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = B256.toJSON(message.transactionHash);\n }\n if (message.nonce !== undefined && message.nonce !== BigInt(\"0\")) {\n obj.nonce = message.nonce.toString();\n }\n if (message.from !== undefined) {\n obj.from = Address.toJSON(message.from);\n }\n if (message.to !== undefined) {\n obj.to = Address.toJSON(message.to);\n }\n if (message.value !== undefined) {\n obj.value = U256.toJSON(message.value);\n }\n if (message.gasPrice !== undefined) {\n obj.gasPrice = U128.toJSON(message.gasPrice);\n }\n if (message.gas !== undefined) {\n obj.gas = U128.toJSON(message.gas);\n }\n if (message.maxFeePerGas !== undefined) {\n obj.maxFeePerGas = U128.toJSON(message.maxFeePerGas);\n }\n if (message.maxPriorityFeePerGas !== undefined) {\n obj.maxPriorityFeePerGas = U128.toJSON(message.maxPriorityFeePerGas);\n }\n if (message.input !== undefined && message.input.length !== 0) {\n obj.input = base64FromBytes(message.input);\n }\n if (message.signature !== undefined) {\n obj.signature = Signature.toJSON(message.signature);\n }\n if (message.chainId !== undefined) {\n obj.chainId = message.chainId.toString();\n }\n if (message.accessList?.length) {\n obj.accessList = message.accessList.map((e) => AccessListItem.toJSON(e));\n }\n if (message.transactionType !== undefined && message.transactionType !== BigInt(\"0\")) {\n obj.transactionType = message.transactionType.toString();\n }\n if (message.maxFeePerBlobGas !== undefined) {\n obj.maxFeePerBlobGas = U128.toJSON(message.maxFeePerBlobGas);\n }\n if (message.blobVersionedHashes?.length) {\n obj.blobVersionedHashes = message.blobVersionedHashes.map((e) => B256.toJSON(e));\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n obj.transactionStatus = transactionStatusToJSON(message.transactionStatus);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Transaction>): Transaction {\n return Transaction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Transaction>): Transaction {\n const message = createBaseTransaction() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? B256.fromPartial(object.transactionHash)\n : undefined;\n message.nonce = object.nonce ?? BigInt(\"0\");\n message.from = (object.from !== undefined && object.from !== null) ? Address.fromPartial(object.from) : undefined;\n message.to = (object.to !== undefined && object.to !== null) ? Address.fromPartial(object.to) : undefined;\n message.value = (object.value !== undefined && object.value !== null) ? U256.fromPartial(object.value) : undefined;\n message.gasPrice = (object.gasPrice !== undefined && object.gasPrice !== null)\n ? U128.fromPartial(object.gasPrice)\n : undefined;\n message.gas = (object.gas !== undefined && object.gas !== null) ? U128.fromPartial(object.gas) : undefined;\n message.maxFeePerGas = (object.maxFeePerGas !== undefined && object.maxFeePerGas !== null)\n ? U128.fromPartial(object.maxFeePerGas)\n : undefined;\n message.maxPriorityFeePerGas = (object.maxPriorityFeePerGas !== undefined && object.maxPriorityFeePerGas !== null)\n ? U128.fromPartial(object.maxPriorityFeePerGas)\n : undefined;\n message.input = object.input ?? new Uint8Array(0);\n message.signature = (object.signature !== undefined && object.signature !== null)\n ? Signature.fromPartial(object.signature)\n : undefined;\n message.chainId = object.chainId ?? undefined;\n message.accessList = object.accessList?.map((e) => AccessListItem.fromPartial(e)) || [];\n message.transactionType = object.transactionType ?? BigInt(\"0\");\n message.maxFeePerBlobGas = (object.maxFeePerBlobGas !== undefined && object.maxFeePerBlobGas !== null)\n ? U128.fromPartial(object.maxFeePerBlobGas)\n : undefined;\n message.blobVersionedHashes = object.blobVersionedHashes?.map((e) => B256.fromPartial(e)) || [];\n message.transactionStatus = object.transactionStatus ?? 0;\n return message;\n },\n};\n\nfunction createBaseTransactionReceipt(): TransactionReceipt {\n return {\n filterIds: [],\n transactionIndex: 0,\n transactionHash: undefined,\n cumulativeGasUsed: undefined,\n gasUsed: undefined,\n effectiveGasPrice: undefined,\n from: undefined,\n to: undefined,\n contractAddress: undefined,\n logsBloom: undefined,\n transactionType: BigInt(\"0\"),\n blobGasUsed: undefined,\n blobGasPrice: undefined,\n transactionStatus: 0,\n };\n}\n\nexport const TransactionReceipt = {\n encode(message: TransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.filterIds !== undefined && message.filterIds.length !== 0) {\n writer.uint32(10).fork();\n for (const v of message.filterIds) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(16).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n B256.encode(message.transactionHash, writer.uint32(26).fork()).ldelim();\n }\n if (message.cumulativeGasUsed !== undefined) {\n U128.encode(message.cumulativeGasUsed, writer.uint32(34).fork()).ldelim();\n }\n if (message.gasUsed !== undefined) {\n U128.encode(message.gasUsed, writer.uint32(42).fork()).ldelim();\n }\n if (message.effectiveGasPrice !== undefined) {\n U128.encode(message.effectiveGasPrice, writer.uint32(50).fork()).ldelim();\n }\n if (message.from !== undefined) {\n Address.encode(message.from, writer.uint32(58).fork()).ldelim();\n }\n if (message.to !== undefined) {\n Address.encode(message.to, writer.uint32(66).fork()).ldelim();\n }\n if (message.contractAddress !== undefined) {\n Address.encode(message.contractAddress, writer.uint32(74).fork()).ldelim();\n }\n if (message.logsBloom !== undefined) {\n Bloom.encode(message.logsBloom, writer.uint32(82).fork()).ldelim();\n }\n if (message.transactionType !== undefined && message.transactionType !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.transactionType) !== message.transactionType) {\n throw new globalThis.Error(\"value provided for field message.transactionType of type uint64 too large\");\n }\n writer.uint32(88).uint64(message.transactionType.toString());\n }\n if (message.blobGasUsed !== undefined) {\n U128.encode(message.blobGasUsed, writer.uint32(98).fork()).ldelim();\n }\n if (message.blobGasPrice !== undefined) {\n U128.encode(message.blobGasPrice, writer.uint32(106).fork()).ldelim();\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n writer.uint32(112).int32(message.transactionStatus);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TransactionReceipt {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTransactionReceipt() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag === 8) {\n message.filterIds!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 10) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.filterIds!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.transactionIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transactionHash = B256.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.cumulativeGasUsed = U128.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.gasUsed = U128.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.effectiveGasPrice = U128.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.from = Address.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.to = Address.decode(reader, reader.uint32());\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.contractAddress = Address.decode(reader, reader.uint32());\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n\n message.logsBloom = Bloom.decode(reader, reader.uint32());\n continue;\n case 11:\n if (tag !== 88) {\n break;\n }\n\n message.transactionType = longToBigint(reader.uint64() as Long);\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n\n message.blobGasUsed = U128.decode(reader, reader.uint32());\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n\n message.blobGasPrice = U128.decode(reader, reader.uint32());\n continue;\n case 14:\n if (tag !== 112) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): TransactionReceipt {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? B256.fromJSON(object.transactionHash) : undefined,\n cumulativeGasUsed: isSet(object.cumulativeGasUsed) ? U128.fromJSON(object.cumulativeGasUsed) : undefined,\n gasUsed: isSet(object.gasUsed) ? U128.fromJSON(object.gasUsed) : undefined,\n effectiveGasPrice: isSet(object.effectiveGasPrice) ? U128.fromJSON(object.effectiveGasPrice) : undefined,\n from: isSet(object.from) ? Address.fromJSON(object.from) : undefined,\n to: isSet(object.to) ? Address.fromJSON(object.to) : undefined,\n contractAddress: isSet(object.contractAddress) ? Address.fromJSON(object.contractAddress) : undefined,\n logsBloom: isSet(object.logsBloom) ? Bloom.fromJSON(object.logsBloom) : undefined,\n transactionType: isSet(object.transactionType) ? BigInt(object.transactionType) : BigInt(\"0\"),\n blobGasUsed: isSet(object.blobGasUsed) ? U128.fromJSON(object.blobGasUsed) : undefined,\n blobGasPrice: isSet(object.blobGasPrice) ? U128.fromJSON(object.blobGasPrice) : undefined,\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n };\n },\n\n toJSON(message: TransactionReceipt): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = B256.toJSON(message.transactionHash);\n }\n if (message.cumulativeGasUsed !== undefined) {\n obj.cumulativeGasUsed = U128.toJSON(message.cumulativeGasUsed);\n }\n if (message.gasUsed !== undefined) {\n obj.gasUsed = U128.toJSON(message.gasUsed);\n }\n if (message.effectiveGasPrice !== undefined) {\n obj.effectiveGasPrice = U128.toJSON(message.effectiveGasPrice);\n }\n if (message.from !== undefined) {\n obj.from = Address.toJSON(message.from);\n }\n if (message.to !== undefined) {\n obj.to = Address.toJSON(message.to);\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = Address.toJSON(message.contractAddress);\n }\n if (message.logsBloom !== undefined) {\n obj.logsBloom = Bloom.toJSON(message.logsBloom);\n }\n if (message.transactionType !== undefined && message.transactionType !== BigInt(\"0\")) {\n obj.transactionType = message.transactionType.toString();\n }\n if (message.blobGasUsed !== undefined) {\n obj.blobGasUsed = U128.toJSON(message.blobGasUsed);\n }\n if (message.blobGasPrice !== undefined) {\n obj.blobGasPrice = U128.toJSON(message.blobGasPrice);\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n obj.transactionStatus = transactionStatusToJSON(message.transactionStatus);\n }\n return obj;\n },\n\n create(base?: DeepPartial<TransactionReceipt>): TransactionReceipt {\n return TransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<TransactionReceipt>): TransactionReceipt {\n const message = createBaseTransactionReceipt() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? B256.fromPartial(object.transactionHash)\n : undefined;\n message.cumulativeGasUsed = (object.cumulativeGasUsed !== undefined && object.cumulativeGasUsed !== null)\n ? U128.fromPartial(object.cumulativeGasUsed)\n : undefined;\n message.gasUsed = (object.gasUsed !== undefined && object.gasUsed !== null)\n ? U128.fromPartial(object.gasUsed)\n : undefined;\n message.effectiveGasPrice = (object.effectiveGasPrice !== undefined && object.effectiveGasPrice !== null)\n ? U128.fromPartial(object.effectiveGasPrice)\n : undefined;\n message.from = (object.from !== undefined && object.from !== null) ? Address.fromPartial(object.from) : undefined;\n message.to = (object.to !== undefined && object.to !== null) ? Address.fromPartial(object.to) : undefined;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? Address.fromPartial(object.contractAddress)\n : undefined;\n message.logsBloom = (object.logsBloom !== undefined && object.logsBloom !== null)\n ? Bloom.fromPartial(object.logsBloom)\n : undefined;\n message.transactionType = object.transactionType ?? BigInt(\"0\");\n message.blobGasUsed = (object.blobGasUsed !== undefined && object.blobGasUsed !== null)\n ? U128.fromPartial(object.blobGasUsed)\n : undefined;\n message.blobGasPrice = (object.blobGasPrice !== undefined && object.blobGasPrice !== null)\n ? U128.fromPartial(object.blobGasPrice)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? 0;\n return message;\n },\n};\n\nfunction createBaseLog(): Log {\n return {\n filterIds: [],\n logIndex: 0,\n address: undefined,\n topics: [],\n data: new Uint8Array(0),\n transactionIndex: 0,\n transactionHash: undefined,\n transactionStatus: 0,\n logIndexInTransaction: 0,\n };\n}\n\nexport const Log = {\n encode(message: Log, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.filterIds !== undefined && message.filterIds.length !== 0) {\n writer.uint32(10).fork();\n for (const v of message.filterIds) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.logIndex !== undefined && message.logIndex !== 0) {\n writer.uint32(16).uint32(message.logIndex);\n }\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(26).fork()).ldelim();\n }\n if (message.topics !== undefined && message.topics.length !== 0) {\n for (const v of message.topics) {\n B256.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.data !== undefined && message.data.length !== 0) {\n writer.uint32(42).bytes(message.data);\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(48).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n B256.encode(message.transactionHash, writer.uint32(58).fork()).ldelim();\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n writer.uint32(64).int32(message.transactionStatus);\n }\n if (message.logIndexInTransaction !== undefined && message.logIndexInTransaction !== 0) {\n writer.uint32(72).uint32(message.logIndexInTransaction);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Log {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLog() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag === 8) {\n message.filterIds!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 10) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.filterIds!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.logIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.address = Address.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.topics!.push(B256.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.data = reader.bytes();\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.transactionIndex = reader.uint32();\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.transactionHash = B256.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.logIndexInTransaction = reader.uint32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Log {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n logIndex: isSet(object.logIndex) ? globalThis.Number(object.logIndex) : 0,\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n topics: globalThis.Array.isArray(object?.topics) ? object.topics.map((e: any) => B256.fromJSON(e)) : [],\n data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(0),\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? B256.fromJSON(object.transactionHash) : undefined,\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n logIndexInTransaction: isSet(object.logIndexInTransaction) ? globalThis.Number(object.logIndexInTransaction) : 0,\n };\n },\n\n toJSON(message: Log): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.logIndex !== undefined && message.logIndex !== 0) {\n obj.logIndex = Math.round(message.logIndex);\n }\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.topics?.length) {\n obj.topics = message.topics.map((e) => B256.toJSON(e));\n }\n if (message.data !== undefined && message.data.length !== 0) {\n obj.data = base64FromBytes(message.data);\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = B256.toJSON(message.transactionHash);\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n obj.transactionStatus = transactionStatusToJSON(message.transactionStatus);\n }\n if (message.logIndexInTransaction !== undefined && message.logIndexInTransaction !== 0) {\n obj.logIndexInTransaction = Math.round(message.logIndexInTransaction);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Log>): Log {\n return Log.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Log>): Log {\n const message = createBaseLog() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.logIndex = object.logIndex ?? 0;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.topics = object.topics?.map((e) => B256.fromPartial(e)) || [];\n message.data = object.data ?? new Uint8Array(0);\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? B256.fromPartial(object.transactionHash)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? 0;\n message.logIndexInTransaction = object.logIndexInTransaction ?? 0;\n return message;\n },\n};\n\nfunction createBaseSignature(): Signature {\n return { r: undefined, s: undefined, v: undefined, yParity: undefined };\n}\n\nexport const Signature = {\n encode(message: Signature, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.r !== undefined) {\n U256.encode(message.r, writer.uint32(10).fork()).ldelim();\n }\n if (message.s !== undefined) {\n U256.encode(message.s, writer.uint32(18).fork()).ldelim();\n }\n if (message.v !== undefined) {\n U256.encode(message.v, writer.uint32(26).fork()).ldelim();\n }\n if (message.yParity !== undefined) {\n writer.uint32(32).bool(message.yParity);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Signature {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSignature() as any;\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.r = U256.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.s = U256.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.v = U256.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.yParity = reader.bool();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Signature {\n return {\n r: isSet(object.r) ? U256.fromJSON(object.r) : undefined,\n s: isSet(object.s) ? U256.fromJSON(object.s) : undefined,\n v: isSet(object.v) ? U256.fromJSON(object.v) : undefined,\n yParity: isSet(object.yParity) ? globalThis.Boolean(object.yParity) : undefined,\n };\n },\n\n toJSON(message: Signature): unknown {\n const obj: any = {};\n if (message.r !== undefined) {\n obj.r = U256.toJSON(message.r);\n }\n if (message.s !== undefined) {\n obj.s = U256.toJSON(message.s);\n }\n if (message.v !== undefined) {\n obj.v = U256.toJSON(message.v);\n }\n if (message.yParity !== undefined) {\n obj.yParity = message.yParity;\n }\n return obj;\n },\n\n create(base?: DeepPartial<Signature>): Signature {\n return Signature.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Signature>): Signature {\n const message = createBaseSignature() as any;\n message.r = (object.r !== undefined && object.r !== null) ? U256.fromPartial(object.r) : undefined;\n message.s = (object.s !== undefined && object.s !== null) ? U256.fromPartial(object.s) : undefined;\n message.v = (object.v !== undefined && object.v !== null) ? U256.fromPartial(object.v) : undefined;\n message.yParity = object.yParity ?? undefined;\n return message;\n },\n};\n\nfunction createBaseAccessListItem(): AccessListItem {\n return { address: undefined, storageKeys: [] };\n}\n\nexport const AccessListItem = {\n encode(message: AccessListItem, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(10).fork()).ldelim();\n }\n if (message.storageKeys !== undefined && message.storageKeys.length !== 0) {\n for (const v of message.storageKeys) {\n B256.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): AccessListItem {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseAccessListItem() as any;\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.address = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.storageKeys!.push(B256.decode(reader, reader.uint32()));\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): AccessListItem {\n return {\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n storageKeys: globalThis.Array.isArray(object?.storageKeys)\n ? object.storageKeys.map((e: any) => B256.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: AccessListItem): unknown {\n const obj: any = {};\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.storageKeys?.length) {\n obj.storageKeys = message.storageKeys.map((e) => B256.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<AccessListItem>): AccessListItem {\n return AccessListItem.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<AccessListItem>): AccessListItem {\n const message = createBaseAccessListItem() as any;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.storageKeys = object.storageKeys?.map((e) => B256.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseTransactionTrace(): TransactionTrace {\n return { filterIds: [], transactionIndex: 0, transactionHash: undefined, traces: [] };\n}\n\nexport const TransactionTrace = {\n encode(message: TransactionTrace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.filterIds !== undefined && message.filterIds.length !== 0) {\n writer.uint32(10).fork();\n for (const v of message.filterIds) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(16).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n B256.encode(message.transactionHash, writer.uint32(26).fork()).ldelim();\n }\n if (message.traces !== undefined && message.traces.length !== 0) {\n for (const v of message.traces) {\n Trace.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TransactionTrace {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTransactionTrace() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag === 8) {\n message.filterIds!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 10) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.filterIds!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.transactionIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transactionHash = B256.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.traces!.push(Trace.decode(reader, reader.uint32()));\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): TransactionTrace {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? B256.fromJSON(object.transactionHash) : undefined,\n traces: globalThis.Array.isArray(object?.traces) ? object.traces.map((e: any) => Trace.fromJSON(e)) : [],\n };\n },\n\n toJSON(message: TransactionTrace): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = B256.toJSON(message.transactionHash);\n }\n if (message.traces?.length) {\n obj.traces = message.traces.map((e) => Trace.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<TransactionTrace>): TransactionTrace {\n return TransactionTrace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<TransactionTrace>): TransactionTrace {\n const message = createBaseTransactionTrace() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? B256.fromPartial(object.transactionHash)\n : undefined;\n message.traces = object.traces?.map((e) => Trace.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseTrace(): Trace {\n return { action: undefined, error: undefined, output: undefined, subtraces: 0, traceAddress: [] };\n}\n\nexport const Trace = {\n encode(message: Trace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n switch (message.action?.$case) {\n case \"call\":\n CallAction.encode(message.action.call, writer.uint32(10).fork()).ldelim();\n break;\n case \"create\":\n CreateAction.encode(message.action.create, writer.uint32(18).fork()).ldelim();\n break;\n case \"selfDestruct\":\n SelfDestructAction.encode(message.action.selfDestruct, writer.uint32(26).fork()).ldelim();\n break;\n case \"reward\":\n RewardAction.encode(message.action.reward, writer.uint32(34).fork()).ldelim();\n break;\n }\n if (message.error !== undefined) {\n writer.uint32(42).string(message.error);\n }\n switch (message.output?.$case) {\n case \"callOutput\":\n CallOutput.encode(message.output.callOutput, writer.uint32(50).fork()).ldelim();\n break;\n case \"createOutput\":\n CreateOutput.encode(message.output.createOutput, writer.uint32(58).fork()).ldelim();\n break;\n }\n if (message.subtraces !== undefined && message.subtraces !== 0) {\n writer.uint32(64).uint32(message.subtraces);\n }\n if (message.traceAddress !== undefined && message.traceAddress.length !== 0) {\n writer.uint32(74).fork();\n for (const v of message.traceAddress) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Trace {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTrace() as any;\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.action = { $case: \"call\", call: CallAction.decode(reader, reader.uint32()) };\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.action = { $case: \"create\", create: CreateAction.decode(reader, reader.uint32()) };\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.action = { $case: \"selfDestruct\", selfDestruct: SelfDestructAction.decode(reader, reader.uint32()) };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.action = { $case: \"reward\", reward: RewardAction.decode(reader, reader.uint32()) };\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.error = reader.string();\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.output = { $case: \"callOutput\", callOutput: CallOutput.decode(reader, reader.uint32()) };\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.output = { $case: \"createOutput\", createOutput: CreateOutput.decode(reader, reader.uint32()) };\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n\n message.subtraces = reader.uint32();\n continue;\n case 9:\n if (tag === 72) {\n message.traceAddress!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 74) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.traceAddress!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Trace {\n return {\n action: isSet(object.call)\n ? { $case: \"call\", call: CallAction.fromJSON(object.call) }\n : isSet(object.create)\n ? { $case: \"create\", create: CreateAction.fromJSON(object.create) }\n : isSet(object.selfDestruct)\n ? { $case: \"selfDestruct\", selfDestruct: SelfDestructAction.fromJSON(object.selfDestruct) }\n : isSet(object.reward)\n ? { $case: \"reward\", reward: RewardAction.fromJSON(object.reward) }\n : undefined,\n error: isSet(object.error) ? globalThis.String(object.error) : undefined,\n output: isSet(object.callOutput)\n ? { $case: \"callOutput\", callOutput: CallOutput.fromJSON(object.callOutput) }\n : isSet(object.createOutput)\n ? { $case: \"createOutput\", createOutput: CreateOutput.fromJSON(object.createOutput) }\n : undefined,\n subtraces: isSet(object.subtraces) ? globalThis.Number(object.subtraces) : 0,\n traceAddress: globalThis.Array.isArray(object?.traceAddress)\n ? object.traceAddress.map((e: any) => globalThis.Number(e))\n : [],\n };\n },\n\n toJSON(message: Trace): unknown {\n const obj: any = {};\n if (message.action?.$case === \"call\") {\n obj.call = CallAction.toJSON(message.action.call);\n }\n if (message.action?.$case === \"create\") {\n obj.create = CreateAction.toJSON(message.action.create);\n }\n if (message.action?.$case === \"selfDestruct\") {\n obj.selfDestruct = SelfDestructAction.toJSON(message.action.selfDestruct);\n }\n if (message.action?.$case === \"reward\") {\n obj.reward = RewardAction.toJSON(message.action.reward);\n }\n if (message.error !== undefined) {\n obj.error = message.error;\n }\n if (message.output?.$case === \"callOutput\") {\n obj.callOutput = CallOutput.toJSON(message.output.callOutput);\n }\n if (message.output?.$case === \"createOutput\") {\n obj.createOutput = CreateOutput.toJSON(message.output.createOutput);\n }\n if (message.subtraces !== undefined && message.subtraces !== 0) {\n obj.subtraces = Math.round(message.subtraces);\n }\n if (message.traceAddress?.length) {\n obj.traceAddress = message.traceAddress.map((e) => Math.round(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<Trace>): Trace {\n return Trace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Trace>): Trace {\n const message = createBaseTrace() as any;\n if (object.action?.$case === \"call\" && object.action?.call !== undefined && object.action?.call !== null) {\n message.action = { $case: \"call\", call: CallAction.fromPartial(object.action.call) };\n }\n if (object.action?.$case === \"create\" && object.action?.create !== undefined && object.action?.create !== null) {\n message.action = { $case: \"create\", create: CreateAction.fromPartial(object.action.create) };\n }\n if (\n object.action?.$case === \"selfDestruct\" &&\n object.action?.selfDestruct !== undefined &&\n object.action?.selfDestruct !== null\n ) {\n message.action = {\n $case: \"selfDestruct\",\n selfDestruct: SelfDestructAction.fromPartial(object.action.selfDestruct),\n };\n }\n if (object.action?.$case === \"reward\" && object.action?.reward !== undefined && object.action?.reward !== null) {\n message.action = { $case: \"reward\", reward: RewardAction.fromPartial(object.action.reward) };\n }\n message.error = object.error ?? undefined;\n if (\n object.output?.$case === \"callOutput\" &&\n object.output?.callOutput !== undefined &&\n object.output?.callOutput !== null\n ) {\n message.output = { $case: \"callOutput\", callOutput: CallOutput.fromPartial(object.output.callOutput) };\n }\n if (\n object.output?.$case === \"createOutput\" &&\n object.output?.createOutput !== undefined &&\n object.output?.createOutput !== null\n ) {\n message.output = { $case: \"createOutput\", createOutput: CreateOutput.fromPartial(object.output.createOutput) };\n }\n message.subtraces = object.subtraces ?? 0;\n message.traceAddress = object.traceAddress?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseCallAction(): CallAction {\n return {\n fromAddress: undefined,\n type: 0,\n gas: BigInt(\"0\"),\n input: new Uint8Array(0),\n toAddress: undefined,\n value: undefined,\n };\n}\n\nexport const CallAction = {\n encode(message: CallAction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.fromAddress !== undefined) {\n Address.encode(message.fromAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.type !== undefined && message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n if (message.gas !== undefined && message.gas !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.gas) !== message.gas) {\n throw new globalThis.Error(\"value provided for field message.gas of type uint64 too large\");\n }\n writer.uint32(24).uint64(message.gas.toString());\n }\n if (message.input !== undefined && message.input.length !== 0) {\n writer.uint32(34).bytes(message.input);\n }\n if (message.toAddress !== undefined) {\n Address.encode(message.toAddress, writer.uint32(42).fork()).ldelim();\n }\n if (message.value !== undefined) {\n U256.encode(message.value, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CallAction {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCallAction() as any;\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.fromAddress = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.type = reader.int32() as any;\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.gas = longToBigint(reader.uint64() as Long);\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.input = reader.bytes();\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.toAddress = Address.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.value = U256.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): CallAction {\n return {\n fromAddress: isSet(object.fromAddress) ? Address.fromJSON(object.fromAddress) : undefined,\n type: isSet(object.type) ? callTypeFromJSON(object.type) : 0,\n gas: isSet(object.gas) ? BigInt(object.gas) : BigInt(\"0\"),\n input: isSet(object.input) ? bytesFromBase64(object.input) : new Uint8Array(0),\n toAddress: isSet(object.toAddress) ? Address.fromJSON(object.toAddress) : undefined,\n value: isSet(object.value) ? U256.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: CallAction): unknown {\n const obj: any = {};\n if (message.fromAddress !== undefined) {\n obj.fromAddress = Address.toJSON(message.fromAddress);\n }\n if (message.type !== undefined && message.type !== 0) {\n obj.type = callTypeToJSON(message.type);\n }\n if (message.gas !== undefined && message.gas !== BigInt(\"0\")) {\n obj.gas = message.gas.toString();\n }\n if (message.input !== undefined && message.input.length !== 0) {\n obj.input = base64FromBytes(message.input);\n }\n if (message.toAddress !== undefined) {\n obj.toAddress = Address.toJSON(message.toAddress);\n }\n if (message.value !== undefined) {\n obj.value = U256.toJSON(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<CallAction>): CallAction {\n return CallAction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<CallAction>): CallAction {\n const message = createBaseCallAction() as any;\n message.fromAddress = (object.fromAddress !== undefined && object.fromAddress !== null)\n ? Address.fromPartial(object.fromAddress)\n : undefined;\n message.type = object.type ?? 0;\n message.gas = object.gas ?? BigInt(\"0\");\n message.input = object.input ?? new Uint8Array(0);\n message.toAddress = (object.toAddress !== undefined && object.toAddress !== null)\n ? Address.fromPartial(object.toAddress)\n : undefined;\n message.value = (object.value !== undefined && object.value !== null) ? U256.fromPartial(object.value) : undefined;\n return message;\n },\n};\n\nfunction createBaseCreateAction(): CreateAction {\n return { fromAddress: undefined, gas: BigInt(\"0\"), init: new Uint8Array(0), value: undefined, creationMethod: 0 };\n}\n\nexport const CreateAction = {\n encode(message: CreateAction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.fromAddress !== undefined) {\n Address.encode(message.fromAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.gas !== undefined && message.gas !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.gas) !== message.gas) {\n throw new globalThis.Error(\"value provided for field message.gas of type uint64 too large\");\n }\n writer.uint32(16).uint64(message.gas.toString());\n }\n if (message.init !== undefined && message.init.length !== 0) {\n writer.uint32(26).bytes(message.init);\n }\n if (message.value !== undefined) {\n U256.encode(message.value, writer.uint32(34).fork()).ldelim();\n }\n if (message.creationMethod !== undefined && message.creationMethod !== 0) {\n writer.uint32(40).int32(message.creationMethod);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CreateAction {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCreateAction() as any;\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.fromAddress = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.gas = longToBigint(reader.uint64() as Long);\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.init = reader.bytes();\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.value = U256.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.creationMethod = reader.int32() as any;\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): CreateAction {\n return {\n fromAddress: isSet(object.fromAddress) ? Address.fromJSON(object.fromAddress) : undefined,\n gas: isSet(object.gas) ? BigInt(object.gas) : BigInt(\"0\"),\n init: isSet(object.init) ? bytesFromBase64(object.init) : new Uint8Array(0),\n value: isSet(object.value) ? U256.fromJSON(object.value) : undefined,\n creationMethod: isSet(object.creationMethod) ? creationMethodFromJSON(object.creationMethod) : 0,\n };\n },\n\n toJSON(message: CreateAction): unknown {\n const obj: any = {};\n if (message.fromAddress !== undefined) {\n obj.fromAddress = Address.toJSON(message.fromAddress);\n }\n if (message.gas !== undefined && message.gas !== BigInt(\"0\")) {\n obj.gas = message.gas.toString();\n }\n if (message.init !== undefined && message.init.length !== 0) {\n obj.init = base64FromBytes(message.init);\n }\n if (message.value !== undefined) {\n obj.value = U256.toJSON(message.value);\n }\n if (message.creationMethod !== undefined && message.creationMethod !== 0) {\n obj.creationMethod = creationMethodToJSON(message.creationMethod);\n }\n return obj;\n },\n\n create(base?: DeepPartial<CreateAction>): CreateAction {\n return CreateAction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<CreateAction>): CreateAction {\n const message = createBaseCreateAction() as any;\n message.fromAddress = (object.fromAddress !== undefined && object.fromAddress !== null)\n ? Address.fromPartial(object.fromAddress)\n : undefined;\n message.gas = object.gas ?? BigInt(\"0\");\n message.init = object.init ?? new Uint8Array(0);\n message.value = (object.value !== undefined && object.value !== null) ? U256.fromPartial(object.value) : undefined;\n message.creationMethod = object.creationMethod ?? 0;\n return message;\n },\n};\n\nfunction createBaseSelfDestructAction(): SelfDestructAction {\n return { address: undefined, balance: undefined, refundAddress: undefined };\n}\n\nexport const SelfDestructAction = {\n encode(message: SelfDestructAction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(10).fork()).ldelim();\n }\n if (message.balance !== undefined) {\n U256.encode(message.balance, writer.uint32(18).fork()).ldelim();\n }\n if (message.refundAddress !== undefined) {\n Address.encode(message.refundAddress, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): SelfDestructAction {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSelfDestructAction() as any;\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.address = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.balance = U256.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.refundAddress = Address.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): SelfDestructAction {\n return {\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n balance: isSet(object.balance) ? U256.fromJSON(object.balance) : undefined,\n refundAddress: isSet(object.refundAddress) ? Address.fromJSON(object.refundAddress) : undefined,\n };\n },\n\n toJSON(message: SelfDestructAction): unknown {\n const obj: any = {};\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.balance !== undefined) {\n obj.balance = U256.toJSON(message.balance);\n }\n if (message.refundAddress !== undefined) {\n obj.refundAddress = Address.toJSON(message.refundAddress);\n }\n return obj;\n },\n\n create(base?: DeepPartial<SelfDestructAction>): SelfDestructAction {\n return SelfDestructAction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<SelfDestructAction>): SelfDestructAction {\n const message = createBaseSelfDestructAction() as any;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.balance = (object.balance !== undefined && object.balance !== null)\n ? U256.fromPartial(object.balance)\n : undefined;\n message.refundAddress = (object.refundAddress !== undefined && object.refundAddress !== null)\n ? Address.fromPartial(object.refundAddress)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseRewardAction(): RewardAction {\n return { author: undefined, type: 0, value: undefined };\n}\n\nexport const RewardAction = {\n encode(message: RewardAction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.author !== undefined) {\n Address.encode(message.author, writer.uint32(10).fork()).ldelim();\n }\n if (message.type !== undefined && message.type !== 0) {\n writer.uint32(16).int32(message.type);\n }\n if (message.value !== undefined) {\n U256.encode(message.value, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): RewardAction {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRewardAction() as any;\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.author = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.type = reader.int32() as any;\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.value = U256.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): RewardAction {\n return {\n author: isSet(object.author) ? Address.fromJSON(object.author) : undefined,\n type: isSet(object.type) ? rewardTypeFromJSON(object.type) : 0,\n value: isSet(object.value) ? U256.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: RewardAction): unknown {\n const obj: any = {};\n if (message.author !== undefined) {\n obj.author = Address.toJSON(message.author);\n }\n if (message.type !== undefined && message.type !== 0) {\n obj.type = rewardTypeToJSON(message.type);\n }\n if (message.value !== undefined) {\n obj.value = U256.toJSON(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<RewardAction>): RewardAction {\n return RewardAction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<RewardAction>): RewardAction {\n const message = createBaseRewardAction() as any;\n message.author = (object.author !== undefined && object.author !== null)\n ? Address.fromPartial(object.author)\n : undefined;\n message.type = object.type ?? 0;\n message.value = (object.value !== undefined && object.value !== null) ? U256.fromPartial(object.value) : undefined;\n return message;\n },\n};\n\nfunction createBaseCallOutput(): CallOutput {\n return { gasUsed: BigInt(\"0\"), output: new Uint8Array(0) };\n}\n\nexport const CallOutput = {\n encode(message: CallOutput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.gasUsed !== undefined && message.gasUsed !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.gasUsed) !== message.gasUsed) {\n throw new globalThis.Error(\"value provided for field message.gasUsed of type uint64 too large\");\n }\n writer.uint32(8).uint64(message.gasUsed.toString());\n }\n if (message.output !== undefined && message.output.length !== 0) {\n writer.uint32(18).bytes(message.output);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CallOutput {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCallOutput() as any;\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.gasUsed = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.output = reader.bytes();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): CallOutput {\n return {\n gasUsed: isSet(object.gasUsed) ? BigInt(object.gasUsed) : BigInt(\"0\"),\n output: isSet(object.output) ? bytesFromBase64(object.output) : new Uint8Array(0),\n };\n },\n\n toJSON(message: CallOutput): unknown {\n const obj: any = {};\n if (message.gasUsed !== undefined && message.gasUsed !== BigInt(\"0\")) {\n obj.gasUsed = message.gasUsed.toString();\n }\n if (message.output !== undefined && message.output.length !== 0) {\n obj.output = base64FromBytes(message.output);\n }\n return obj;\n },\n\n create(base?: DeepPartial<CallOutput>): CallOutput {\n return CallOutput.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<CallOutput>): CallOutput {\n const message = createBaseCallOutput() as any;\n message.gasUsed = object.gasUsed ?? BigInt(\"0\");\n message.output = object.output ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBaseCreateOutput(): CreateOutput {\n return { address: undefined, code: new Uint8Array(0), gasUsed: BigInt(\"0\") };\n}\n\nexport const CreateOutput = {\n encode(message: CreateOutput, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(10).fork()).ldelim();\n }\n if (message.code !== undefined && message.code.length !== 0) {\n writer.uint32(18).bytes(message.code);\n }\n if (message.gasUsed !== undefined && message.gasUsed !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.gasUsed) !== message.gasUsed) {\n throw new globalThis.Error(\"value provided for field message.gasUsed of type uint64 too large\");\n }\n writer.uint32(24).uint64(message.gasUsed.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): CreateOutput {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCreateOutput() as any;\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.address = Address.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.code = reader.bytes();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.gasUsed = longToBigint(reader.uint64() as Long);\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): CreateOutput {\n return {\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n code: isSet(object.code) ? bytesFromBase64(object.code) : new Uint8Array(0),\n gasUsed: isSet(object.gasUsed) ? BigInt(object.gasUsed) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: CreateOutput): unknown {\n const obj: any = {};\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.code !== undefined && message.code.length !== 0) {\n obj.code = base64FromBytes(message.code);\n }\n if (message.gasUsed !== undefined && message.gasUsed !== BigInt(\"0\")) {\n obj.gasUsed = message.gasUsed.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<CreateOutput>): CreateOutput {\n return CreateOutput.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<CreateOutput>): CreateOutput {\n const message = createBaseCreateOutput() as any;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.code = object.code ?? new Uint8Array(0);\n message.gasUsed = object.gasUsed ?? BigInt(\"0\");\n return message;\n },\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 | bigint | 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 { readonly $case: string }\n ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { readonly $case: T[\"$case\"] }\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\nfunction toTimestamp(date: Date): Timestamp {\n const seconds = BigInt(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 = (globalThis.Number(t.seconds?.toString()) || 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 longToBigint(long: Long) {\n return BigInt(long.toString());\n}\n\nif (_m0.util.Long !== Long) {\n _m0.util.Long = Long as any;\n _m0.configure();\n}\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v1.176.0\n// protoc unknown\n// source: filter.proto\n\n/* eslint-disable */\nimport _m0 from \"protobufjs/minimal.js\";\nimport { Address, B256 } from \"./common.js\";\n\nexport const protobufPackage = \"evm.v2\";\n\n/** EVM DNA definitions (filter). */\n\nexport enum HeaderFilter {\n UNSPECIFIED = 0,\n ALWAYS = 1,\n ON_DATA = 2,\n ON_DATA_OR_ON_NEW_BLOCK = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function headerFilterFromJSON(object: any): HeaderFilter {\n switch (object) {\n case 0:\n case \"HEADER_FILTER_UNSPECIFIED\":\n return HeaderFilter.UNSPECIFIED;\n case 1:\n case \"HEADER_FILTER_ALWAYS\":\n return HeaderFilter.ALWAYS;\n case 2:\n case \"HEADER_FILTER_ON_DATA\":\n return HeaderFilter.ON_DATA;\n case 3:\n case \"HEADER_FILTER_ON_DATA_OR_ON_NEW_BLOCK\":\n return HeaderFilter.ON_DATA_OR_ON_NEW_BLOCK;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return HeaderFilter.UNRECOGNIZED;\n }\n}\n\nexport function headerFilterToJSON(object: HeaderFilter): string {\n switch (object) {\n case HeaderFilter.UNSPECIFIED:\n return \"HEADER_FILTER_UNSPECIFIED\";\n case HeaderFilter.ALWAYS:\n return \"HEADER_FILTER_ALWAYS\";\n case HeaderFilter.ON_DATA:\n return \"HEADER_FILTER_ON_DATA\";\n case HeaderFilter.ON_DATA_OR_ON_NEW_BLOCK:\n return \"HEADER_FILTER_ON_DATA_OR_ON_NEW_BLOCK\";\n case HeaderFilter.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum TransactionStatusFilter {\n UNSPECIFIED = 0,\n SUCCEEDED = 1,\n REVERTED = 2,\n ALL = 3,\n UNRECOGNIZED = -1,\n}\n\nexport function transactionStatusFilterFromJSON(object: any): TransactionStatusFilter {\n switch (object) {\n case 0:\n case \"TRANSACTION_STATUS_FILTER_UNSPECIFIED\":\n return TransactionStatusFilter.UNSPECIFIED;\n case 1:\n case \"TRANSACTION_STATUS_FILTER_SUCCEEDED\":\n return TransactionStatusFilter.SUCCEEDED;\n case 2:\n case \"TRANSACTION_STATUS_FILTER_REVERTED\":\n return TransactionStatusFilter.REVERTED;\n case 3:\n case \"TRANSACTION_STATUS_FILTER_ALL\":\n return TransactionStatusFilter.ALL;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return TransactionStatusFilter.UNRECOGNIZED;\n }\n}\n\nexport function transactionStatusFilterToJSON(object: TransactionStatusFilter): string {\n switch (object) {\n case TransactionStatusFilter.UNSPECIFIED:\n return \"TRANSACTION_STATUS_FILTER_UNSPECIFIED\";\n case TransactionStatusFilter.SUCCEEDED:\n return \"TRANSACTION_STATUS_FILTER_SUCCEEDED\";\n case TransactionStatusFilter.REVERTED:\n return \"TRANSACTION_STATUS_FILTER_REVERTED\";\n case TransactionStatusFilter.ALL:\n return \"TRANSACTION_STATUS_FILTER_ALL\";\n case TransactionStatusFilter.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport interface Filter {\n /** Include header. */\n readonly header?:\n | HeaderFilter\n | undefined;\n /** Filter withdrawals. */\n readonly withdrawals?:\n | readonly WithdrawalFilter[]\n | undefined;\n /** Filter transactions. */\n readonly transactions?:\n | readonly TransactionFilter[]\n | undefined;\n /** Filter logs. */\n readonly logs?: readonly LogFilter[] | undefined;\n}\n\nexport interface WithdrawalFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter based on the validator index. */\n readonly validatorIndex?:\n | number\n | undefined;\n /** Filter based on the withdrawal's target address. */\n readonly address?: Address | undefined;\n}\n\nexport interface TransactionFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter based on the transaction's sender address. */\n readonly from?:\n | Address\n | undefined;\n /** Filter based on the transaction's recipient address. */\n readonly to?:\n | Address\n | undefined;\n /** / Only return `create` transactions. Defaults to `false`. */\n readonly create?:\n | boolean\n | undefined;\n /**\n * Filter based on the transaction status.\n *\n * Defaults to `Succeeded`.\n */\n readonly transactionStatus?:\n | TransactionStatusFilter\n | undefined;\n /** Flag to request the transaction's receipt. Defaults to `false`. */\n readonly includeReceipt?:\n | boolean\n | undefined;\n /** Flag to request the transaction's logs. Defaults to `false`. */\n readonly includeLogs?:\n | boolean\n | undefined;\n /** Flag to request the transaction's trace. Defaults to `false`. */\n readonly includeTransactionTrace?: boolean | undefined;\n}\n\nexport interface LogFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter based on the log's contract address. */\n readonly address?:\n | Address\n | undefined;\n /** Filter based on the log's topics. */\n readonly topics?:\n | readonly Topic[]\n | undefined;\n /**\n * Only returns logs with topics of exactly the same length as the filter.\n *\n * Defaults to `false`.\n */\n readonly strict?:\n | boolean\n | undefined;\n /**\n * Filter based on the transaction status.\n *\n * Defaults to `Succeeded`.\n */\n readonly transactionStatus?:\n | TransactionStatusFilter\n | undefined;\n /** Flag to request the log's transaction. Defaults to `false`. */\n readonly includeTransaction?:\n | boolean\n | undefined;\n /** Flag to request the log's receipt. Defaults to `false`. */\n readonly includeReceipt?:\n | boolean\n | undefined;\n /**\n * Include sibling logs, that is logs emitted by the same transaction.\n *\n * Defaults to false.\n */\n readonly includeSiblings?:\n | boolean\n | undefined;\n /** Flag to request the log's trace. Defaults to `false`. */\n readonly includeTransactionTrace?: boolean | undefined;\n}\n\n/** Topic filter. */\nexport interface Topic {\n /** Topic value. Leave empty to match any topic. */\n readonly value?: B256 | undefined;\n}\n\nfunction createBaseFilter(): Filter {\n return { header: 0, withdrawals: [], transactions: [], logs: [] };\n}\n\nexport const Filter = {\n encode(message: Filter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.header !== undefined && message.header !== 0) {\n writer.uint32(8).int32(message.header);\n }\n if (message.withdrawals !== undefined && message.withdrawals.length !== 0) {\n for (const v of message.withdrawals) {\n WithdrawalFilter.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.transactions !== undefined && message.transactions.length !== 0) {\n for (const v of message.transactions) {\n TransactionFilter.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.logs !== undefined && message.logs.length !== 0) {\n for (const v of message.logs) {\n LogFilter.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Filter {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFilter() as any;\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.header = reader.int32() as any;\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.withdrawals!.push(WithdrawalFilter.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transactions!.push(TransactionFilter.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.logs!.push(LogFilter.decode(reader, reader.uint32()));\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Filter {\n return {\n header: isSet(object.header) ? headerFilterFromJSON(object.header) : 0,\n withdrawals: globalThis.Array.isArray(object?.withdrawals)\n ? object.withdrawals.map((e: any) => WithdrawalFilter.fromJSON(e))\n : [],\n transactions: globalThis.Array.isArray(object?.transactions)\n ? object.transactions.map((e: any) => TransactionFilter.fromJSON(e))\n : [],\n logs: globalThis.Array.isArray(object?.logs) ? object.logs.map((e: any) => LogFilter.fromJSON(e)) : [],\n };\n },\n\n toJSON(message: Filter): unknown {\n const obj: any = {};\n if (message.header !== undefined && message.header !== 0) {\n obj.header = headerFilterToJSON(message.header);\n }\n if (message.withdrawals?.length) {\n obj.withdrawals = message.withdrawals.map((e) => WithdrawalFilter.toJSON(e));\n }\n if (message.transactions?.length) {\n obj.transactions = message.transactions.map((e) => TransactionFilter.toJSON(e));\n }\n if (message.logs?.length) {\n obj.logs = message.logs.map((e) => LogFilter.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<Filter>): Filter {\n return Filter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Filter>): Filter {\n const message = createBaseFilter() as any;\n message.header = object.header ?? 0;\n message.withdrawals = object.withdrawals?.map((e) => WithdrawalFilter.fromPartial(e)) || [];\n message.transactions = object.transactions?.map((e) => TransactionFilter.fromPartial(e)) || [];\n message.logs = object.logs?.map((e) => LogFilter.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseWithdrawalFilter(): WithdrawalFilter {\n return { id: 0, validatorIndex: undefined, address: undefined };\n}\n\nexport const WithdrawalFilter = {\n encode(message: WithdrawalFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.id !== undefined && message.id !== 0) {\n writer.uint32(8).uint32(message.id);\n }\n if (message.validatorIndex !== undefined) {\n writer.uint32(16).uint32(message.validatorIndex);\n }\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): WithdrawalFilter {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseWithdrawalFilter() as any;\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.id = reader.uint32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.validatorIndex = reader.uint32();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.address = Address.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): WithdrawalFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n validatorIndex: isSet(object.validatorIndex) ? globalThis.Number(object.validatorIndex) : undefined,\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n };\n },\n\n toJSON(message: WithdrawalFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.validatorIndex !== undefined) {\n obj.validatorIndex = Math.round(message.validatorIndex);\n }\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n return obj;\n },\n\n create(base?: DeepPartial<WithdrawalFilter>): WithdrawalFilter {\n return WithdrawalFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<WithdrawalFilter>): WithdrawalFilter {\n const message = createBaseWithdrawalFilter() as any;\n message.id = object.id ?? 0;\n message.validatorIndex = object.validatorIndex ?? undefined;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseTransactionFilter(): TransactionFilter {\n return {\n id: 0,\n from: undefined,\n to: undefined,\n create: undefined,\n transactionStatus: undefined,\n includeReceipt: undefined,\n includeLogs: undefined,\n includeTransactionTrace: undefined,\n };\n}\n\nexport const TransactionFilter = {\n encode(message: TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.id !== undefined && message.id !== 0) {\n writer.uint32(8).uint32(message.id);\n }\n if (message.from !== undefined) {\n Address.encode(message.from, writer.uint32(18).fork()).ldelim();\n }\n if (message.to !== undefined) {\n Address.encode(message.to, writer.uint32(26).fork()).ldelim();\n }\n if (message.create !== undefined) {\n writer.uint32(32).bool(message.create);\n }\n if (message.transactionStatus !== undefined) {\n writer.uint32(40).int32(message.transactionStatus);\n }\n if (message.includeReceipt !== undefined) {\n writer.uint32(48).bool(message.includeReceipt);\n }\n if (message.includeLogs !== undefined) {\n writer.uint32(56).bool(message.includeLogs);\n }\n if (message.includeTransactionTrace !== undefined) {\n writer.uint32(64).bool(message.includeTransactionTrace);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TransactionFilter {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTransactionFilter() as any;\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.id = reader.uint32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.from = Address.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.to = Address.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.create = reader.bool();\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.includeReceipt = reader.bool();\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n\n message.includeLogs = reader.bool();\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n\n message.includeTransactionTrace = reader.bool();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): TransactionFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n from: isSet(object.from) ? Address.fromJSON(object.from) : undefined,\n to: isSet(object.to) ? Address.fromJSON(object.to) : undefined,\n create: isSet(object.create) ? globalThis.Boolean(object.create) : undefined,\n transactionStatus: isSet(object.transactionStatus)\n ? transactionStatusFilterFromJSON(object.transactionStatus)\n : undefined,\n includeReceipt: isSet(object.includeReceipt) ? globalThis.Boolean(object.includeReceipt) : undefined,\n includeLogs: isSet(object.includeLogs) ? globalThis.Boolean(object.includeLogs) : undefined,\n includeTransactionTrace: isSet(object.includeTransactionTrace)\n ? globalThis.Boolean(object.includeTransactionTrace)\n : undefined,\n };\n },\n\n toJSON(message: TransactionFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.from !== undefined) {\n obj.from = Address.toJSON(message.from);\n }\n if (message.to !== undefined) {\n obj.to = Address.toJSON(message.to);\n }\n if (message.create !== undefined) {\n obj.create = message.create;\n }\n if (message.transactionStatus !== undefined) {\n obj.transactionStatus = transactionStatusFilterToJSON(message.transactionStatus);\n }\n if (message.includeReceipt !== undefined) {\n obj.includeReceipt = message.includeReceipt;\n }\n if (message.includeLogs !== undefined) {\n obj.includeLogs = message.includeLogs;\n }\n if (message.includeTransactionTrace !== undefined) {\n obj.includeTransactionTrace = message.includeTransactionTrace;\n }\n return obj;\n },\n\n create(base?: DeepPartial<TransactionFilter>): TransactionFilter {\n return TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<TransactionFilter>): TransactionFilter {\n const message = createBaseTransactionFilter() as any;\n message.id = object.id ?? 0;\n message.from = (object.from !== undefined && object.from !== null) ? Address.fromPartial(object.from) : undefined;\n message.to = (object.to !== undefined && object.to !== null) ? Address.fromPartial(object.to) : undefined;\n message.create = object.create ?? undefined;\n message.transactionStatus = object.transactionStatus ?? undefined;\n message.includeReceipt = object.includeReceipt ?? undefined;\n message.includeLogs = object.includeLogs ?? undefined;\n message.includeTransactionTrace = object.includeTransactionTrace ?? undefined;\n return message;\n },\n};\n\nfunction createBaseLogFilter(): LogFilter {\n return {\n id: 0,\n address: undefined,\n topics: [],\n strict: undefined,\n transactionStatus: undefined,\n includeTransaction: undefined,\n includeReceipt: undefined,\n includeSiblings: undefined,\n includeTransactionTrace: undefined,\n };\n}\n\nexport const LogFilter = {\n encode(message: LogFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.id !== undefined && message.id !== 0) {\n writer.uint32(8).uint32(message.id);\n }\n if (message.address !== undefined) {\n Address.encode(message.address, writer.uint32(18).fork()).ldelim();\n }\n if (message.topics !== undefined && message.topics.length !== 0) {\n for (const v of message.topics) {\n Topic.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.strict !== undefined) {\n writer.uint32(32).bool(message.strict);\n }\n if (message.transactionStatus !== undefined) {\n writer.uint32(40).int32(message.transactionStatus);\n }\n if (message.includeTransaction !== undefined) {\n writer.uint32(48).bool(message.includeTransaction);\n }\n if (message.includeReceipt !== undefined) {\n writer.uint32(56).bool(message.includeReceipt);\n }\n if (message.includeSiblings !== undefined) {\n writer.uint32(64).bool(message.includeSiblings);\n }\n if (message.includeTransactionTrace !== undefined) {\n writer.uint32(72).bool(message.includeTransactionTrace);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): LogFilter {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLogFilter() as any;\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.id = reader.uint32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.address = Address.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.topics!.push(Topic.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.strict = reader.bool();\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.includeTransaction = reader.bool();\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n\n message.includeReceipt = reader.bool();\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n\n message.includeSiblings = reader.bool();\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.includeTransactionTrace = reader.bool();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): LogFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n address: isSet(object.address) ? Address.fromJSON(object.address) : undefined,\n topics: globalThis.Array.isArray(object?.topics) ? object.topics.map((e: any) => Topic.fromJSON(e)) : [],\n strict: isSet(object.strict) ? globalThis.Boolean(object.strict) : undefined,\n transactionStatus: isSet(object.transactionStatus)\n ? transactionStatusFilterFromJSON(object.transactionStatus)\n : undefined,\n includeTransaction: isSet(object.includeTransaction) ? globalThis.Boolean(object.includeTransaction) : undefined,\n includeReceipt: isSet(object.includeReceipt) ? globalThis.Boolean(object.includeReceipt) : undefined,\n includeSiblings: isSet(object.includeSiblings) ? globalThis.Boolean(object.includeSiblings) : undefined,\n includeTransactionTrace: isSet(object.includeTransactionTrace)\n ? globalThis.Boolean(object.includeTransactionTrace)\n : undefined,\n };\n },\n\n toJSON(message: LogFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.address !== undefined) {\n obj.address = Address.toJSON(message.address);\n }\n if (message.topics?.length) {\n obj.topics = message.topics.map((e) => Topic.toJSON(e));\n }\n if (message.strict !== undefined) {\n obj.strict = message.strict;\n }\n if (message.transactionStatus !== undefined) {\n obj.transactionStatus = transactionStatusFilterToJSON(message.transactionStatus);\n }\n if (message.includeTransaction !== undefined) {\n obj.includeTransaction = message.includeTransaction;\n }\n if (message.includeReceipt !== undefined) {\n obj.includeReceipt = message.includeReceipt;\n }\n if (message.includeSiblings !== undefined) {\n obj.includeSiblings = message.includeSiblings;\n }\n if (message.includeTransactionTrace !== undefined) {\n obj.includeTransactionTrace = message.includeTransactionTrace;\n }\n return obj;\n },\n\n create(base?: DeepPartial<LogFilter>): LogFilter {\n return LogFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<LogFilter>): LogFilter {\n const message = createBaseLogFilter() as any;\n message.id = object.id ?? 0;\n message.address = (object.address !== undefined && object.address !== null)\n ? Address.fromPartial(object.address)\n : undefined;\n message.topics = object.topics?.map((e) => Topic.fromPartial(e)) || [];\n message.strict = object.strict ?? undefined;\n message.transactionStatus = object.transactionStatus ?? undefined;\n message.includeTransaction = object.includeTransaction ?? undefined;\n message.includeReceipt = object.includeReceipt ?? undefined;\n message.includeSiblings = object.includeSiblings ?? undefined;\n message.includeTransactionTrace = object.includeTransactionTrace ?? undefined;\n return message;\n },\n};\n\nfunction createBaseTopic(): Topic {\n return { value: undefined };\n}\n\nexport const Topic = {\n encode(message: Topic, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.value !== undefined) {\n B256.encode(message.value, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Topic {\n const reader = input instanceof _m0.Reader ? input : _m0.Reader.create(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTopic() as any;\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.value = B256.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(object: any): Topic {\n return { value: isSet(object.value) ? B256.fromJSON(object.value) : undefined };\n },\n\n toJSON(message: Topic): unknown {\n const obj: any = {};\n if (message.value !== undefined) {\n obj.value = B256.toJSON(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Topic>): Topic {\n return Topic.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Topic>): Topic {\n const message = createBaseTopic() as any;\n message.value = (object.value !== undefined && object.value !== null) ? B256.fromPartial(object.value) : undefined;\n return message;\n },\n};\n\ntype Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | 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 { readonly $case: string }\n ? { [K in keyof Omit<T, \"$case\">]?: DeepPartial<T[K]> } & { readonly $case: T[\"$case\"] }\n : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }\n : Partial<T>;\n\nfunction isSet(value: any): boolean {\n return value !== null && value !== undefined;\n}\n","import { BytesFromUint8Array } from \"@apibara/protocol\";\n\nimport {\n ArrayCodec,\n BigIntCodec,\n BooleanCodec,\n type Codec,\n type CodecType,\n DateCodec,\n MessageCodec,\n NumberCodec,\n OneOfCodec,\n OptionalCodec,\n StringCodec,\n} from \"@apibara/protocol/codec\";\nimport { RequiredCodec } from \"@apibara/protocol/codec\";\nimport { Address, B256, U128, U256 } from \"./common\";\nimport * as proto from \"./proto\";\n\nexport const Bloom: Codec<\n `0x${string}` | undefined,\n { value?: Uint8Array | undefined }\n> = {\n encode(x) {\n return { value: BytesFromUint8Array.encode(x) };\n },\n decode({ value }) {\n return BytesFromUint8Array.decode(value);\n },\n};\n\nexport type Bloom = CodecType<typeof Bloom>;\n\nexport const TransactionStatus: Codec<\n \"unknown\" | \"succeeded\" | \"reverted\",\n proto.data.TransactionStatus\n> = {\n encode(x) {\n const enumMap = {\n unknown: proto.data.TransactionStatus.UNSPECIFIED,\n succeeded: proto.data.TransactionStatus.SUCCEEDED,\n reverted: proto.data.TransactionStatus.REVERTED,\n } as const;\n\n return enumMap[x] ?? proto.data.TransactionStatus.UNSPECIFIED;\n },\n decode(p) {\n const enumMap = {\n [proto.data.TransactionStatus.SUCCEEDED]: \"succeeded\",\n [proto.data.TransactionStatus.REVERTED]: \"reverted\",\n [proto.data.TransactionStatus.UNSPECIFIED]: \"unknown\",\n [proto.data.TransactionStatus.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type TransactionStatus = CodecType<typeof TransactionStatus>;\n\nexport const BlockHeader = MessageCodec({\n blockNumber: RequiredCodec(BigIntCodec),\n blockHash: OptionalCodec(B256),\n parentBlockHash: RequiredCodec(B256),\n unclesHash: RequiredCodec(B256),\n miner: RequiredCodec(Address),\n stateRoot: RequiredCodec(B256),\n transactionsRoot: RequiredCodec(B256),\n receiptsRoot: RequiredCodec(B256),\n logsBloom: RequiredCodec(Bloom),\n difficulty: RequiredCodec(U256),\n gasLimit: RequiredCodec(U128),\n gasUsed: RequiredCodec(U128),\n timestamp: RequiredCodec(DateCodec),\n extraData: RequiredCodec(BytesFromUint8Array),\n mixHash: OptionalCodec(B256),\n nonce: OptionalCodec(BigIntCodec),\n baseFeePerGas: OptionalCodec(U128),\n withdrawalsRoot: OptionalCodec(B256),\n totalDifficulty: OptionalCodec(U256),\n blobGasUsed: OptionalCodec(U128),\n excessBlobGas: OptionalCodec(U128),\n parentBeaconBlockRoot: OptionalCodec(B256),\n requestsHash: OptionalCodec(B256),\n});\n\nexport type BlockHeader = CodecType<typeof BlockHeader>;\n\nexport const Withdrawal = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n withdrawalIndex: RequiredCodec(NumberCodec),\n index: RequiredCodec(BigIntCodec),\n validatorIndex: RequiredCodec(NumberCodec),\n address: RequiredCodec(Address),\n amount: RequiredCodec(BigIntCodec),\n});\n\nexport type Withdrawal = CodecType<typeof Withdrawal>;\n\nexport const AccessListItem = MessageCodec({\n address: RequiredCodec(Address),\n storageKeys: ArrayCodec(B256),\n});\n\nexport type AccessListItem = CodecType<typeof AccessListItem>;\n\nexport const Signature = MessageCodec({\n r: RequiredCodec(U256),\n s: RequiredCodec(U256),\n v: OptionalCodec(U256),\n YParity: OptionalCodec(BooleanCodec),\n});\n\nexport type Signature = CodecType<typeof Signature>;\n\nexport const Transaction = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(B256),\n nonce: RequiredCodec(BigIntCodec),\n from: RequiredCodec(Address),\n to: OptionalCodec(Address),\n value: RequiredCodec(U256),\n gasPrice: OptionalCodec(U128),\n gas: RequiredCodec(U128),\n maxFeePerGas: OptionalCodec(U128),\n maxPriorityFeePerGas: OptionalCodec(U128),\n input: RequiredCodec(BytesFromUint8Array),\n signature: OptionalCodec(Signature),\n chainId: OptionalCodec(BigIntCodec),\n accessList: ArrayCodec(AccessListItem),\n transactionType: RequiredCodec(BigIntCodec),\n maxFeePerBlobGas: OptionalCodec(U128),\n blobVersionedHashes: ArrayCodec(B256),\n transactionStatus: RequiredCodec(TransactionStatus),\n});\n\nexport type Transaction = CodecType<typeof Transaction>;\n\nexport const TransactionReceipt = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(B256),\n cumulativeGasUsed: RequiredCodec(U128),\n gasUsed: RequiredCodec(U128),\n effectiveGasPrice: RequiredCodec(U128),\n from: RequiredCodec(Address),\n to: OptionalCodec(Address),\n contractAddress: OptionalCodec(Address),\n logsBloom: RequiredCodec(Bloom),\n transactionType: RequiredCodec(BigIntCodec),\n blobGasUsed: OptionalCodec(U128),\n blobGasPrice: OptionalCodec(U128),\n transactionStatus: RequiredCodec(TransactionStatus),\n});\n\nexport type TransactionReceipt = CodecType<typeof TransactionReceipt>;\n\nexport const Log = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n address: RequiredCodec(Address),\n topics: ArrayCodec(B256),\n data: RequiredCodec(BytesFromUint8Array),\n logIndex: RequiredCodec(NumberCodec),\n logIndexInTransaction: RequiredCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(B256),\n transactionStatus: RequiredCodec(TransactionStatus),\n});\n\nexport type Log = CodecType<typeof Log>;\n\nexport const CallType: Codec<\n \"unknown\" | \"call\" | \"delegateCall\" | \"callCode\" | \"staticCall\" | \"authCall\",\n proto.data.CallType\n> = {\n encode(x) {\n const enumMap = {\n unknown: proto.data.CallType.UNSPECIFIED,\n call: proto.data.CallType.CALL,\n callCode: proto.data.CallType.CALL_CODE,\n delegateCall: proto.data.CallType.DELEGATE_CALL,\n staticCall: proto.data.CallType.STATIC_CALL,\n authCall: proto.data.CallType.AUTH_CALL,\n } as const;\n\n return enumMap[x] ?? proto.data.CallType.UNSPECIFIED;\n },\n decode(p) {\n const enumMap = {\n [proto.data.CallType.CALL]: \"call\",\n [proto.data.CallType.CALL_CODE]: \"callCode\",\n [proto.data.CallType.DELEGATE_CALL]: \"delegateCall\",\n [proto.data.CallType.STATIC_CALL]: \"staticCall\",\n [proto.data.CallType.AUTH_CALL]: \"authCall\",\n [proto.data.CallType.UNSPECIFIED]: \"unknown\",\n [proto.data.CallType.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type CallType = CodecType<typeof CallType>;\n\nexport const CreationMethod: Codec<\n \"unknown\" | \"create\" | \"create2\" | \"eofCreate\",\n proto.data.CreationMethod\n> = {\n encode(x) {\n const enumMap = {\n unknown: proto.data.CreationMethod.UNSPECIFIED,\n create: proto.data.CreationMethod.CREATE,\n create2: proto.data.CreationMethod.CREATE2,\n eofCreate: proto.data.CreationMethod.EOF_CREATE,\n } as const;\n\n return enumMap[x] ?? proto.data.CreationMethod.UNSPECIFIED;\n },\n decode(p) {\n const enumMap = {\n [proto.data.CreationMethod.CREATE]: \"create\",\n [proto.data.CreationMethod.CREATE2]: \"create2\",\n [proto.data.CreationMethod.EOF_CREATE]: \"eofCreate\",\n [proto.data.CreationMethod.UNSPECIFIED]: \"unknown\",\n [proto.data.CreationMethod.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type CreationMethod = CodecType<typeof CreationMethod>;\n\nexport const CallAction = MessageCodec({\n fromAddress: RequiredCodec(Address),\n type: RequiredCodec(CallType),\n gas: RequiredCodec(BigIntCodec),\n input: RequiredCodec(BytesFromUint8Array),\n toAddress: RequiredCodec(Address),\n value: RequiredCodec(U256),\n});\n\nexport type CallAction = CodecType<typeof CallAction>;\n\nexport const CreateAction = MessageCodec({\n fromAddress: RequiredCodec(Address),\n gas: RequiredCodec(BigIntCodec),\n init: RequiredCodec(BytesFromUint8Array),\n value: RequiredCodec(U256),\n creationMethod: RequiredCodec(CreationMethod),\n});\n\nexport type CreateAction = CodecType<typeof CreateAction>;\n\nexport const SelfDestructAction = MessageCodec({\n address: RequiredCodec(Address),\n balance: RequiredCodec(U256),\n refundAddress: RequiredCodec(Address),\n});\n\nexport type SelfDestructAction = CodecType<typeof SelfDestructAction>;\n\nexport const RewardType: Codec<\n \"unknown\" | \"block\" | \"uncle\",\n proto.data.RewardType\n> = {\n encode(x) {\n const enumMap = {\n unknown: proto.data.RewardType.UNSPECIFIED,\n block: proto.data.RewardType.BLOCK,\n uncle: proto.data.RewardType.UNCLE,\n } as const;\n\n return enumMap[x] ?? proto.data.RewardType.UNSPECIFIED;\n },\n decode(p) {\n const enumMap = {\n [proto.data.RewardType.BLOCK]: \"block\",\n [proto.data.RewardType.UNCLE]: \"uncle\",\n [proto.data.RewardType.UNSPECIFIED]: \"unknown\",\n [proto.data.RewardType.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type RewardType = CodecType<typeof RewardType>;\n\nexport const RewardAction = MessageCodec({\n author: RequiredCodec(Address),\n type: RequiredCodec(RewardType),\n value: RequiredCodec(U256),\n});\n\nexport type RewardAction = CodecType<typeof RewardAction>;\n\nexport const CallOutput = MessageCodec({\n gasUsed: RequiredCodec(BigIntCodec),\n output: RequiredCodec(BytesFromUint8Array),\n});\n\nexport type CallOutput = CodecType<typeof CallOutput>;\n\nexport const CreateOutput = MessageCodec({\n address: RequiredCodec(Address),\n code: RequiredCodec(BytesFromUint8Array),\n gasUsed: RequiredCodec(BigIntCodec),\n});\n\nexport type CreateOutput = CodecType<typeof CreateOutput>;\n\nexport const Trace = MessageCodec({\n action: RequiredCodec(\n OneOfCodec({\n call: CallAction,\n create: CreateAction,\n selfDestruct: SelfDestructAction,\n reward: RewardAction,\n }),\n ),\n error: OptionalCodec(StringCodec),\n output: OptionalCodec(\n OneOfCodec({\n callOutput: CallOutput,\n createOutput: CreateOutput,\n }),\n ),\n subtraces: RequiredCodec(NumberCodec),\n traceAddress: ArrayCodec(NumberCodec),\n});\n\nexport type Trace = CodecType<typeof Trace>;\n\nexport const TransactionTrace = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(B256),\n traces: ArrayCodec(Trace),\n});\n\nexport type TransactionTrace = CodecType<typeof TransactionTrace>;\n\nexport const Block = MessageCodec({\n header: RequiredCodec(BlockHeader),\n withdrawals: ArrayCodec(Withdrawal),\n transactions: ArrayCodec(Transaction),\n receipts: ArrayCodec(TransactionReceipt),\n logs: ArrayCodec(Log),\n traces: ArrayCodec(TransactionTrace),\n});\n\nexport type Block = CodecType<typeof Block>;\n\nexport const BlockFromBytes: Codec<Block, Uint8Array> = {\n encode(x) {\n const block = Block.encode(x);\n return proto.data.Block.encode(block).finish();\n },\n decode(p) {\n const block = proto.data.Block.decode(p);\n return Block.decode(block);\n },\n};\n","import { Address, B256 } from \"./common\";\n\nimport {\n ArrayCodec,\n BooleanCodec,\n type Codec,\n type CodecType,\n MessageCodec,\n NumberCodec,\n OptionalCodec,\n} from \"@apibara/protocol/codec\";\nimport * as proto from \"./proto\";\n\n/** Header options.\n *\n * - `always`: receive all block headers.\n * - `on_data`: receive headers only if any other filter matches.\n * - `on_data_or_on_new_block`: receive headers only if any other filter matches and for \"live\" blocks.\n */\nexport const HeaderFilter: Codec<\n \"always\" | \"on_data\" | \"on_data_or_on_new_block\" | \"unknown\",\n proto.filter.HeaderFilter\n> = {\n encode(x) {\n switch (x) {\n case \"always\":\n return proto.filter.HeaderFilter.ALWAYS;\n case \"on_data\":\n return proto.filter.HeaderFilter.ON_DATA;\n case \"on_data_or_on_new_block\":\n return proto.filter.HeaderFilter.ON_DATA_OR_ON_NEW_BLOCK;\n default:\n return proto.filter.HeaderFilter.UNSPECIFIED;\n }\n },\n decode(p) {\n const enumMap = {\n [proto.filter.HeaderFilter.ALWAYS]: \"always\",\n [proto.filter.HeaderFilter.ON_DATA]: \"on_data\",\n [proto.filter.HeaderFilter.ON_DATA_OR_ON_NEW_BLOCK]:\n \"on_data_or_on_new_block\",\n [proto.filter.HeaderFilter.UNSPECIFIED]: \"unknown\",\n [proto.filter.HeaderFilter.UNRECOGNIZED]: \"unknown\",\n } as const;\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type HeaderFilter = CodecType<typeof HeaderFilter>;\n\nexport const WithdrawalFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n validatorIndex: OptionalCodec(NumberCodec),\n address: OptionalCodec(Address),\n});\n\nexport type WithdrawalFilter = CodecType<typeof WithdrawalFilter>;\n\nexport const TransactionStatusFilter: Codec<\n \"succeeded\" | \"reverted\" | \"all\" | \"unknown\",\n proto.filter.TransactionStatusFilter\n> = {\n decode(value) {\n const enumMap = {\n [proto.filter.TransactionStatusFilter.SUCCEEDED]: \"succeeded\",\n [proto.filter.TransactionStatusFilter.REVERTED]: \"reverted\",\n [proto.filter.TransactionStatusFilter.ALL]: \"all\",\n [proto.filter.TransactionStatusFilter.UNSPECIFIED]: \"unknown\",\n [proto.filter.TransactionStatusFilter.UNRECOGNIZED]: \"unknown\",\n } as const;\n return enumMap[value] ?? \"unknown\";\n },\n encode(value) {\n switch (value) {\n case \"succeeded\":\n return proto.filter.TransactionStatusFilter.SUCCEEDED;\n case \"reverted\":\n return proto.filter.TransactionStatusFilter.REVERTED;\n case \"all\":\n return proto.filter.TransactionStatusFilter.ALL;\n default:\n return proto.filter.TransactionStatusFilter.UNSPECIFIED;\n }\n },\n};\n\nexport type TransactionStatusFilter = CodecType<typeof TransactionStatusFilter>;\n\nexport const Topic: Codec<\n B256 | null,\n { value?: proto.common.B256 | undefined }\n> = {\n encode(x) {\n if (x === null) {\n return { value: undefined };\n }\n return { value: B256.encode(x) };\n },\n decode({ value }) {\n if (value === undefined) {\n return null;\n }\n return B256.decode(value);\n },\n};\n\nexport type Topic = CodecType<typeof Topic>;\n\nexport const LogFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n address: OptionalCodec(Address),\n topics: OptionalCodec(ArrayCodec(Topic)),\n strict: OptionalCodec(BooleanCodec),\n transactionStatus: OptionalCodec(TransactionStatusFilter),\n includeTransaction: OptionalCodec(BooleanCodec),\n includeReceipt: OptionalCodec(BooleanCodec),\n includeTransactionTrace: OptionalCodec(BooleanCodec),\n});\n\nexport type LogFilter = Readonly<CodecType<typeof LogFilter>>;\n\nexport const TransactionFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n from: OptionalCodec(Address),\n to: OptionalCodec(Address),\n create: OptionalCodec(BooleanCodec),\n transactionStatus: OptionalCodec(TransactionStatusFilter),\n includeReceipt: OptionalCodec(BooleanCodec),\n includeLogs: OptionalCodec(BooleanCodec),\n includeTransactionTrace: OptionalCodec(BooleanCodec),\n});\n\nexport type TransactionFilter = Readonly<CodecType<typeof TransactionFilter>>;\n\nexport const Filter = MessageCodec({\n header: OptionalCodec(HeaderFilter),\n withdrawals: OptionalCodec(ArrayCodec(WithdrawalFilter)),\n transactions: OptionalCodec(ArrayCodec(TransactionFilter)),\n logs: OptionalCodec(ArrayCodec(LogFilter)),\n});\n\nexport type Filter = Readonly<CodecType<typeof Filter>>;\n\nexport const FilterFromBytes: Codec<Filter, Uint8Array> = {\n encode(x) {\n return proto.filter.Filter.encode(Filter.encode(x)).finish();\n },\n decode(p) {\n return Filter.decode(proto.filter.Filter.decode(p));\n },\n};\n\nexport function mergeFilter(a: Filter, b: Filter): Filter {\n const header = mergeHeaderFilter(a.header, b.header);\n return {\n header,\n withdrawals: [...(a.withdrawals ?? []), ...(b.withdrawals ?? [])],\n logs: [...(a.logs ?? []), ...(b.logs ?? [])],\n transactions: [...(a.transactions ?? []), ...(b.transactions ?? [])],\n };\n}\n\nfunction mergeHeaderFilter(\n a?: HeaderFilter,\n b?: HeaderFilter,\n): HeaderFilter | undefined {\n if (a === undefined) {\n return b;\n }\n if (b === undefined) {\n return a;\n }\n\n if (a === \"always\" || b === \"always\") {\n return \"always\";\n }\n\n if (a === \"on_data_or_on_new_block\" || b === \"on_data_or_on_new_block\") {\n return \"on_data_or_on_new_block\";\n }\n\n return \"on_data\";\n}\n","import { StreamConfig } from \"@apibara/protocol\";\nimport { BlockFromBytes } from \"./block\";\nimport { FilterFromBytes, mergeFilter } from \"./filter\";\n\nexport * as proto from \"./proto\";\n\nexport * from \"./common\";\nexport * from \"./filter\";\nexport * from \"./block\";\n\nexport const EvmStream = new StreamConfig(\n FilterFromBytes,\n BlockFromBytes,\n mergeFilter,\n \"evm\",\n);\n"],"names":["Address","B256","U256","U128","protobufPackage","_m0","longToBigint","isSet","Bloom","bytesFromBase64","base64FromBytes","Long","TransactionStatus","CallType","CreationMethod","RewardType","Block","BlockHeader","Withdrawal","Transaction","TransactionReceipt","Log","TransactionTrace","Signature","AccessListItem","Trace","CallAction","CreateAction","SelfDestructAction","RewardAction","CallOutput","CreateOutput","HeaderFilter","TransactionStatusFilter","Filter","WithdrawalFilter","TransactionFilter","LogFilter","Topic","BytesFromUint8Array","proto.data.TransactionStatus","MessageCodec","RequiredCodec","BigIntCodec","OptionalCodec","DateCodec","ArrayCodec","NumberCodec","BooleanCodec","proto.data.CallType","proto.data.CreationMethod","proto.data.RewardType","OneOfCodec","StringCodec","proto.data.Block","proto.filter.HeaderFilter","proto.filter.TransactionStatusFilter","proto.filter.Filter","StreamConfig"],"mappings":"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"}
|