@apibara/starknet 2.1.0-beta.33 → 2.1.0-beta.35

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.
@@ -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/access.ts","../src/abi.ts","../src/abi-wan-helpers.ts","../src/event.ts","../src/index.ts"],"sourcesContent":["import type { Codec, CodecType } from \"@apibara/protocol/codec\";\nimport type * as proto from \"./proto\";\n\nconst MAX_U64 = 0xffffffffffffffffn;\n\nexport const FieldElement: Codec<`0x${string}`, proto.common.FieldElement> = {\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 FieldElement = CodecType<typeof FieldElement>;\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 = \"starknet.v2\";\n\n/** A field element. */\nexport interface FieldElement {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n readonly x2?: bigint | undefined;\n readonly x3?: bigint | undefined;\n}\n\nfunction createBaseFieldElement(): FieldElement {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\"), x2: BigInt(\"0\"), x3: BigInt(\"0\") };\n}\n\nexport const FieldElement = {\n encode(message: FieldElement, 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): FieldElement {\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 = createBaseFieldElement() 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): FieldElement {\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: FieldElement): 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<FieldElement>): FieldElement {\n return FieldElement.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<FieldElement>): FieldElement {\n const message = createBaseFieldElement() 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\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 { FieldElement } from \"./common.js\";\nimport { Timestamp } from \"./google/protobuf/timestamp.js\";\n\nexport const protobufPackage = \"starknet.v2\";\n\n/** Starknet 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 L1DataAvailabilityMode {\n /** UNSPECIFIED - Unknown DA. */\n UNSPECIFIED = 0,\n /** BLOB - Data published via blobs. */\n BLOB = 1,\n /** CALLDATA - Data published via calldata. */\n CALLDATA = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function l1DataAvailabilityModeFromJSON(object: any): L1DataAvailabilityMode {\n switch (object) {\n case 0:\n case \"L1_DATA_AVAILABILITY_MODE_UNSPECIFIED\":\n return L1DataAvailabilityMode.UNSPECIFIED;\n case 1:\n case \"L1_DATA_AVAILABILITY_MODE_BLOB\":\n return L1DataAvailabilityMode.BLOB;\n case 2:\n case \"L1_DATA_AVAILABILITY_MODE_CALLDATA\":\n return L1DataAvailabilityMode.CALLDATA;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return L1DataAvailabilityMode.UNRECOGNIZED;\n }\n}\n\nexport function l1DataAvailabilityModeToJSON(object: L1DataAvailabilityMode): string {\n switch (object) {\n case L1DataAvailabilityMode.UNSPECIFIED:\n return \"L1_DATA_AVAILABILITY_MODE_UNSPECIFIED\";\n case L1DataAvailabilityMode.BLOB:\n return \"L1_DATA_AVAILABILITY_MODE_BLOB\";\n case L1DataAvailabilityMode.CALLDATA:\n return \"L1_DATA_AVAILABILITY_MODE_CALLDATA\";\n case L1DataAvailabilityMode.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\n/** Transaction execution status. */\nexport enum ExecutionStatus {\n /** UNSPECIFIED - Unknown execution status. */\n UNSPECIFIED = 0,\n /** SUCCEEDED - Transaction succeeded. */\n SUCCEEDED = 1,\n /** REVERTED - Transaction reverted. */\n REVERTED = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function executionStatusFromJSON(object: any): ExecutionStatus {\n switch (object) {\n case 0:\n case \"EXECUTION_STATUS_UNSPECIFIED\":\n return ExecutionStatus.UNSPECIFIED;\n case 1:\n case \"EXECUTION_STATUS_SUCCEEDED\":\n return ExecutionStatus.SUCCEEDED;\n case 2:\n case \"EXECUTION_STATUS_REVERTED\":\n return ExecutionStatus.REVERTED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ExecutionStatus.UNRECOGNIZED;\n }\n}\n\nexport function executionStatusToJSON(object: ExecutionStatus): string {\n switch (object) {\n case ExecutionStatus.UNSPECIFIED:\n return \"EXECUTION_STATUS_UNSPECIFIED\";\n case ExecutionStatus.SUCCEEDED:\n return \"EXECUTION_STATUS_SUCCEEDED\";\n case ExecutionStatus.REVERTED:\n return \"EXECUTION_STATUS_REVERTED\";\n case ExecutionStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\n/** Price unit. */\nexport enum PriceUnit {\n /** UNSPECIFIED - Unknown price unit. */\n UNSPECIFIED = 0,\n /** WEI - WEI. */\n WEI = 1,\n /** FRI - FRI. */\n FRI = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function priceUnitFromJSON(object: any): PriceUnit {\n switch (object) {\n case 0:\n case \"PRICE_UNIT_UNSPECIFIED\":\n return PriceUnit.UNSPECIFIED;\n case 1:\n case \"PRICE_UNIT_WEI\":\n return PriceUnit.WEI;\n case 2:\n case \"PRICE_UNIT_FRI\":\n return PriceUnit.FRI;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return PriceUnit.UNRECOGNIZED;\n }\n}\n\nexport function priceUnitToJSON(object: PriceUnit): string {\n switch (object) {\n case PriceUnit.UNSPECIFIED:\n return \"PRICE_UNIT_UNSPECIFIED\";\n case PriceUnit.WEI:\n return \"PRICE_UNIT_WEI\";\n case PriceUnit.FRI:\n return \"PRICE_UNIT_FRI\";\n case PriceUnit.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\n/** DA mode. */\nexport enum DataAvailabilityMode {\n /** UNSPECIFIED - Unknown DA. */\n UNSPECIFIED = 0,\n /** L1 - L1. */\n L1 = 1,\n /** L2 - L2. */\n L2 = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function dataAvailabilityModeFromJSON(object: any): DataAvailabilityMode {\n switch (object) {\n case 0:\n case \"DATA_AVAILABILITY_MODE_UNSPECIFIED\":\n return DataAvailabilityMode.UNSPECIFIED;\n case 1:\n case \"DATA_AVAILABILITY_MODE_L1\":\n return DataAvailabilityMode.L1;\n case 2:\n case \"DATA_AVAILABILITY_MODE_L2\":\n return DataAvailabilityMode.L2;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return DataAvailabilityMode.UNRECOGNIZED;\n }\n}\n\nexport function dataAvailabilityModeToJSON(object: DataAvailabilityMode): string {\n switch (object) {\n case DataAvailabilityMode.UNSPECIFIED:\n return \"DATA_AVAILABILITY_MODE_UNSPECIFIED\";\n case DataAvailabilityMode.L1:\n return \"DATA_AVAILABILITY_MODE_L1\";\n case DataAvailabilityMode.L2:\n return \"DATA_AVAILABILITY_MODE_L2\";\n case DataAvailabilityMode.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum CallType {\n UNSPECIFIED = 0,\n LIBRARY_CALL = 1,\n CALL = 2,\n DELEGATE = 3,\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_LIBRARY_CALL\":\n return CallType.LIBRARY_CALL;\n case 2:\n case \"CALL_TYPE_CALL\":\n return CallType.CALL;\n case 3:\n case \"CALL_TYPE_DELEGATE\":\n return CallType.DELEGATE;\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.LIBRARY_CALL:\n return \"CALL_TYPE_LIBRARY_CALL\";\n case CallType.CALL:\n return \"CALL_TYPE_CALL\";\n case CallType.DELEGATE:\n return \"CALL_TYPE_DELEGATE\";\n case CallType.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 transactions. */\n readonly transactions?:\n | readonly Transaction[]\n | undefined;\n /** List of transactions receipts. */\n readonly receipts?:\n | readonly TransactionReceipt[]\n | undefined;\n /** List of events. */\n readonly events?:\n | readonly Event[]\n | undefined;\n /** List of messages. */\n readonly messages?:\n | readonly MessageToL1[]\n | undefined;\n /** List of storage changes by contract. */\n readonly storageDiffs?:\n | readonly StorageDiff[]\n | undefined;\n /** List of contract/class changes. */\n readonly contractChanges?:\n | readonly ContractChange[]\n | undefined;\n /** List of nonce updates. */\n readonly nonceUpdates?:\n | readonly NonceUpdate[]\n | undefined;\n /** List of transaction traces. */\n readonly traces?: readonly TransactionTrace[] | undefined;\n}\n\n/** Block header. */\nexport interface BlockHeader {\n /** Hash of the block. */\n readonly blockHash?:\n | FieldElement\n | undefined;\n /** Hash of the block's parent. */\n readonly parentBlockHash?:\n | FieldElement\n | undefined;\n /** Block height. */\n readonly blockNumber?:\n | bigint\n | undefined;\n /** Sequencer address. */\n readonly sequencerAddress?:\n | FieldElement\n | undefined;\n /** New state root after the block. */\n readonly newRoot?:\n | FieldElement\n | undefined;\n /** Timestamp when block was produced. */\n readonly timestamp?:\n | Date\n | undefined;\n /** Starknet version. */\n readonly starknetVersion?:\n | string\n | undefined;\n /** Price of L1 gas in the block. */\n readonly l1GasPrice?:\n | ResourcePrice\n | undefined;\n /** Price of L1 data gas in the block. */\n readonly l1DataGasPrice?:\n | ResourcePrice\n | undefined;\n /** L1 data availability mode. */\n readonly l1DataAvailabilityMode?: L1DataAvailabilityMode | undefined;\n}\n\n/** A transaction. */\nexport interface Transaction {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Common transaction metadata. */\n readonly meta?: TransactionMeta | undefined;\n readonly transaction?:\n | { readonly $case: \"invokeV0\"; readonly invokeV0: InvokeTransactionV0 }\n | { readonly $case: \"invokeV1\"; readonly invokeV1: InvokeTransactionV1 }\n | { readonly $case: \"invokeV3\"; readonly invokeV3: InvokeTransactionV3 }\n | { readonly $case: \"l1Handler\"; readonly l1Handler: L1HandlerTransaction }\n | { readonly $case: \"deploy\"; readonly deploy: DeployTransaction }\n | { readonly $case: \"declareV0\"; readonly declareV0: DeclareTransactionV0 }\n | { readonly $case: \"declareV1\"; readonly declareV1: DeclareTransactionV1 }\n | { readonly $case: \"declareV2\"; readonly declareV2: DeclareTransactionV2 }\n | { readonly $case: \"declareV3\"; readonly declareV3: DeclareTransactionV3 }\n | { readonly $case: \"deployAccountV1\"; readonly deployAccountV1: DeployAccountTransactionV1 }\n | { readonly $case: \"deployAccountV3\"; readonly deployAccountV3: DeployAccountTransactionV3 }\n | undefined;\n}\n\nexport interface TransactionMeta {\n /** Transaction index. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | FieldElement\n | undefined;\n /** Transaction status. */\n readonly transactionStatus?: TransactionStatus | undefined;\n}\n\nexport interface InvokeTransactionV0 {\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly contractAddress?: FieldElement | undefined;\n readonly entryPointSelector?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n}\n\nexport interface InvokeTransactionV1 {\n readonly senderAddress?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n}\n\nexport interface InvokeTransactionV3 {\n readonly senderAddress?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly resourceBounds?: ResourceBoundsMapping | undefined;\n readonly tip?: bigint | undefined;\n readonly paymasterData?: readonly FieldElement[] | undefined;\n readonly accountDeploymentData?: readonly FieldElement[] | undefined;\n readonly nonceDataAvailabilityMode?: DataAvailabilityMode | undefined;\n readonly feeDataAvailabilityMode?: DataAvailabilityMode | undefined;\n}\n\nexport interface L1HandlerTransaction {\n readonly nonce?: bigint | undefined;\n readonly contractAddress?: FieldElement | undefined;\n readonly entryPointSelector?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n}\n\nexport interface DeployTransaction {\n readonly contractAddressSalt?: FieldElement | undefined;\n readonly constructorCalldata?: readonly FieldElement[] | undefined;\n readonly classHash?: FieldElement | undefined;\n}\n\nexport interface DeclareTransactionV0 {\n readonly senderAddress?: FieldElement | undefined;\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly classHash?: FieldElement | undefined;\n}\n\nexport interface DeclareTransactionV1 {\n readonly senderAddress?: FieldElement | undefined;\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly classHash?: FieldElement | undefined;\n}\n\nexport interface DeclareTransactionV2 {\n readonly senderAddress?: FieldElement | undefined;\n readonly compiledClassHash?: FieldElement | undefined;\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly classHash?: FieldElement | undefined;\n}\n\nexport interface DeclareTransactionV3 {\n readonly senderAddress?: FieldElement | undefined;\n readonly compiledClassHash?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly classHash?: FieldElement | undefined;\n readonly resourceBounds?: ResourceBoundsMapping | undefined;\n readonly tip?: bigint | undefined;\n readonly paymasterData?: readonly FieldElement[] | undefined;\n readonly accountDeploymentData?: readonly FieldElement[] | undefined;\n readonly nonceDataAvailabilityMode?: DataAvailabilityMode | undefined;\n readonly feeDataAvailabilityMode?: DataAvailabilityMode | undefined;\n}\n\nexport interface DeployAccountTransactionV1 {\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly contractAddressSalt?: FieldElement | undefined;\n readonly constructorCalldata?: readonly FieldElement[] | undefined;\n readonly classHash?: FieldElement | undefined;\n}\n\nexport interface DeployAccountTransactionV3 {\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly contractAddressSalt?: FieldElement | undefined;\n readonly constructorCalldata?: readonly FieldElement[] | undefined;\n readonly classHash?: FieldElement | undefined;\n readonly resourceBounds?: ResourceBoundsMapping | undefined;\n readonly tip?: bigint | undefined;\n readonly paymasterData?: readonly FieldElement[] | undefined;\n readonly nonceDataAvailabilityMode?: DataAvailabilityMode | undefined;\n readonly feeDataAvailabilityMode?: DataAvailabilityMode | undefined;\n}\n\nexport interface TransactionReceipt {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Common transaction receipt metadata. */\n readonly meta?: TransactionReceiptMeta | undefined;\n readonly receipt?:\n | { readonly $case: \"invoke\"; readonly invoke: InvokeTransactionReceipt }\n | { readonly $case: \"l1Handler\"; readonly l1Handler: L1HandlerTransactionReceipt }\n | { readonly $case: \"declare\"; readonly declare: DeclareTransactionReceipt }\n | { readonly $case: \"deploy\"; readonly deploy: DeployTransactionReceipt }\n | { readonly $case: \"deployAccount\"; readonly deployAccount: DeployAccountTransactionReceipt }\n | undefined;\n}\n\nexport interface TransactionReceiptMeta {\n readonly transactionIndex?: number | undefined;\n readonly transactionHash?: FieldElement | undefined;\n readonly actualFee?: FeePayment | undefined;\n readonly executionResources?: ExecutionResources | undefined;\n readonly executionResult?: { readonly $case: \"succeeded\"; readonly succeeded: ExecutionSucceeded } | {\n readonly $case: \"reverted\";\n readonly reverted: ExecutionReverted;\n } | undefined;\n}\n\nexport interface ExecutionSucceeded {\n}\n\nexport interface ExecutionReverted {\n readonly reason?: string | undefined;\n}\n\nexport interface InvokeTransactionReceipt {\n}\n\nexport interface L1HandlerTransactionReceipt {\n readonly messageHash?: Uint8Array | undefined;\n}\n\nexport interface DeclareTransactionReceipt {\n}\n\nexport interface DeployTransactionReceipt {\n readonly contractAddress?: FieldElement | undefined;\n}\n\nexport interface DeployAccountTransactionReceipt {\n readonly contractAddress?: FieldElement | undefined;\n}\n\n/** Transaction events. */\nexport interface Event {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** The contract that emitted the event. */\n readonly address?:\n | FieldElement\n | undefined;\n /** The event keys. */\n readonly keys?:\n | readonly FieldElement[]\n | undefined;\n /** The event data. */\n readonly data?:\n | readonly FieldElement[]\n | undefined;\n /** The event index. */\n readonly eventIndex?:\n | number\n | undefined;\n /** Transaction index. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | FieldElement\n | undefined;\n /** Transaction status. */\n readonly transactionStatus?:\n | TransactionStatus\n | undefined;\n /** Event index in the transaction. */\n readonly eventIndexInTransaction?: number | undefined;\n}\n\nexport interface MessageToL1 {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** The contract sending the message. */\n readonly fromAddress?:\n | FieldElement\n | undefined;\n /** Target address. */\n readonly toAddress?:\n | FieldElement\n | undefined;\n /** Message payload. */\n readonly payload?:\n | readonly FieldElement[]\n | undefined;\n /** Message index. */\n readonly messageIndex?:\n | number\n | undefined;\n /** Transaction index. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | FieldElement\n | undefined;\n /** Transaction status. */\n readonly transactionStatus?:\n | TransactionStatus\n | undefined;\n /** Message index in the transaction. */\n readonly messageIndexInTransaction?: number | undefined;\n}\n\n/** Price of a unit of a resource. */\nexport interface ResourcePrice {\n /** Price in fri (10^-18 strk). */\n readonly priceInFri?:\n | FieldElement\n | undefined;\n /** Price in wei (10^-18 eth). */\n readonly priceInWei?: FieldElement | undefined;\n}\n\n/** A Starknet fee payment. */\nexport interface FeePayment {\n /** Amount paid. */\n readonly amount?:\n | FieldElement\n | undefined;\n /** Unit of the amount. */\n readonly unit?: PriceUnit | undefined;\n}\n\n/** Execution resources. */\nexport interface ExecutionResources {\n /** Computation resources. */\n readonly computation?:\n | ComputationResources\n | undefined;\n /** Data availability resources. */\n readonly dataAvailability?: DataAvailabilityResources | undefined;\n}\n\n/** Computation resources. */\nexport interface ComputationResources {\n /** The number of Cairo steps used. */\n readonly steps?:\n | bigint\n | undefined;\n /** The number of unused memory cells. */\n readonly memoryHoles?:\n | bigint\n | undefined;\n /** The number of RANGE_CHECK builtin instances. */\n readonly rangeCheckBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of Pedersen builtin instances. */\n readonly pedersenBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of Poseidon builtin instances. */\n readonly poseidonBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of EC_OP builtin instances. */\n readonly ecOpBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of ECDSA builtin instances. */\n readonly ecdsaBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of BITWISE builtin instances. */\n readonly bitwiseBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of KECCAK builtin instances. */\n readonly keccakBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of accesses to the segment arena. */\n readonly segmentArenaBuiltin?: bigint | undefined;\n}\n\nexport interface DataAvailabilityResources {\n /** The gas consumed by this transaction's data, 0 if it uses data gas for DA. */\n readonly l1Gas?:\n | bigint\n | undefined;\n /** The data gas consumed by this transaction's data, 0 if it uses gas for DA. */\n readonly l1DataGas?: bigint | undefined;\n}\n\nexport interface ResourceBoundsMapping {\n /** Maximum amount and price of L1 gas. */\n readonly l1Gas?:\n | ResourceBounds\n | undefined;\n /** Maximum amount and price of L2 gas. */\n readonly l2Gas?: ResourceBounds | undefined;\n}\n\nexport interface ResourceBounds {\n /** The maximum amount of resources that can be consumed by a transaction. */\n readonly maxAmount?:\n | bigint\n | undefined;\n /** / The max price per unit of resource. */\n readonly maxPricePerUnit?: Uint128 | undefined;\n}\n\nexport interface Uint128 {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n}\n\n/** Difference in storage values for a contract. */\nexport interface StorageDiff {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** The contract address. */\n readonly contractAddress?:\n | FieldElement\n | undefined;\n /** Entries that changed. */\n readonly storageEntries?: readonly StorageEntry[] | undefined;\n}\n\n/** Storage entry. */\nexport interface StorageEntry {\n /** Storage location. */\n readonly key?:\n | FieldElement\n | undefined;\n /** Storage value. */\n readonly value?: FieldElement | undefined;\n}\n\n/** A class/contract change. */\nexport interface ContractChange {\n readonly filterIds?: readonly number[] | undefined;\n readonly change?:\n | { readonly $case: \"declaredClass\"; readonly declaredClass: DeclaredClass }\n | { readonly $case: \"replacedClass\"; readonly replacedClass: ReplacedClass }\n | { readonly $case: \"deployedContract\"; readonly deployedContract: DeployedContract }\n | undefined;\n}\n\n/** Class declared. */\nexport interface DeclaredClass {\n /** Class hash of the newly declared class. */\n readonly classHash?:\n | FieldElement\n | undefined;\n /**\n * Hash of the cairo assembly resulting from the sierra compilation.\n *\n * If undefined, it's the result of a deprecated Cairo 0 declaration.\n */\n readonly compiledClassHash?: FieldElement | undefined;\n}\n\n/** Class replaced. */\nexport interface ReplacedClass {\n /** The address of the contract whose class was replaced. */\n readonly contractAddress?:\n | FieldElement\n | undefined;\n /** The new class hash. */\n readonly classHash?: FieldElement | undefined;\n}\n\n/** Contract deployed. */\nexport interface DeployedContract {\n /** Address of the newly deployed contract. */\n readonly contractAddress?:\n | FieldElement\n | undefined;\n /** Class hash of the deployed contract. */\n readonly classHash?: FieldElement | undefined;\n}\n\n/** Nonce update. */\nexport interface NonceUpdate {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Contract address. */\n readonly contractAddress?:\n | FieldElement\n | undefined;\n /** New nonce value. */\n readonly nonce?: FieldElement | 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?: FieldElement | undefined;\n readonly traceRoot?:\n | { readonly $case: \"invoke\"; readonly invoke: InvokeTransactionTrace }\n | { readonly $case: \"declare\"; readonly declare: DeclareTransactionTrace }\n | { readonly $case: \"deployAccount\"; readonly deployAccount: DeployAccountTransactionTrace }\n | { readonly $case: \"l1Handler\"; readonly l1Handler: L1HandlerTransactionTrace }\n | undefined;\n}\n\nexport interface InvokeTransactionTrace {\n readonly validateInvocation?: FunctionInvocation | undefined;\n readonly executeInvocation?: { readonly $case: \"success\"; readonly success: FunctionInvocation } | {\n readonly $case: \"reverted\";\n readonly reverted: ExecutionReverted;\n } | undefined;\n readonly feeTransferInvocation?: FunctionInvocation | undefined;\n}\n\nexport interface DeclareTransactionTrace {\n readonly validateInvocation?: FunctionInvocation | undefined;\n readonly feeTransferInvocation?: FunctionInvocation | undefined;\n}\n\nexport interface DeployAccountTransactionTrace {\n readonly validateInvocation?: FunctionInvocation | undefined;\n readonly constructorInvocation?: FunctionInvocation | undefined;\n readonly feeTransferInvocation?: FunctionInvocation | undefined;\n}\n\nexport interface L1HandlerTransactionTrace {\n readonly functionInvocation?: FunctionInvocation | undefined;\n}\n\nexport interface FunctionInvocation {\n readonly contractAddress?: FieldElement | undefined;\n readonly entryPointSelector?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n readonly callerAddress?: FieldElement | undefined;\n readonly classHash?: FieldElement | undefined;\n readonly callType?: CallType | undefined;\n readonly result?: readonly FieldElement[] | undefined;\n readonly calls?: readonly FunctionInvocation[] | undefined;\n readonly events?: readonly number[] | undefined;\n readonly messages?: readonly number[] | undefined;\n}\n\nexport interface FunctionCall {\n readonly contractAddress?: FieldElement | undefined;\n readonly entryPointSelector?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n}\n\nfunction createBaseBlock(): Block {\n return {\n header: undefined,\n transactions: [],\n receipts: [],\n events: [],\n messages: [],\n storageDiffs: [],\n contractChanges: [],\n nonceUpdates: [],\n traces: [],\n };\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.transactions !== undefined && message.transactions.length !== 0) {\n for (const v of message.transactions) {\n Transaction.encode(v!, writer.uint32(18).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(26).fork()).ldelim();\n }\n }\n if (message.events !== undefined && message.events.length !== 0) {\n for (const v of message.events) {\n Event.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.messages !== undefined && message.messages.length !== 0) {\n for (const v of message.messages) {\n MessageToL1.encode(v!, writer.uint32(42).fork()).ldelim();\n }\n }\n if (message.storageDiffs !== undefined && message.storageDiffs.length !== 0) {\n for (const v of message.storageDiffs) {\n StorageDiff.encode(v!, writer.uint32(50).fork()).ldelim();\n }\n }\n if (message.contractChanges !== undefined && message.contractChanges.length !== 0) {\n for (const v of message.contractChanges) {\n ContractChange.encode(v!, writer.uint32(58).fork()).ldelim();\n }\n }\n if (message.nonceUpdates !== undefined && message.nonceUpdates.length !== 0) {\n for (const v of message.nonceUpdates) {\n NonceUpdate.encode(v!, writer.uint32(66).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(74).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.transactions!.push(Transaction.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.receipts!.push(TransactionReceipt.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.events!.push(Event.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.messages!.push(MessageToL1.decode(reader, reader.uint32()));\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.storageDiffs!.push(StorageDiff.decode(reader, reader.uint32()));\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.contractChanges!.push(ContractChange.decode(reader, reader.uint32()));\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.nonceUpdates!.push(NonceUpdate.decode(reader, reader.uint32()));\n continue;\n case 9:\n if (tag !== 74) {\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 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 events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [],\n messages: globalThis.Array.isArray(object?.messages)\n ? object.messages.map((e: any) => MessageToL1.fromJSON(e))\n : [],\n storageDiffs: globalThis.Array.isArray(object?.storageDiffs)\n ? object.storageDiffs.map((e: any) => StorageDiff.fromJSON(e))\n : [],\n contractChanges: globalThis.Array.isArray(object?.contractChanges)\n ? object.contractChanges.map((e: any) => ContractChange.fromJSON(e))\n : [],\n nonceUpdates: globalThis.Array.isArray(object?.nonceUpdates)\n ? object.nonceUpdates.map((e: any) => NonceUpdate.fromJSON(e))\n : [],\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.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.events?.length) {\n obj.events = message.events.map((e) => Event.toJSON(e));\n }\n if (message.messages?.length) {\n obj.messages = message.messages.map((e) => MessageToL1.toJSON(e));\n }\n if (message.storageDiffs?.length) {\n obj.storageDiffs = message.storageDiffs.map((e) => StorageDiff.toJSON(e));\n }\n if (message.contractChanges?.length) {\n obj.contractChanges = message.contractChanges.map((e) => ContractChange.toJSON(e));\n }\n if (message.nonceUpdates?.length) {\n obj.nonceUpdates = message.nonceUpdates.map((e) => NonceUpdate.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.transactions = object.transactions?.map((e) => Transaction.fromPartial(e)) || [];\n message.receipts = object.receipts?.map((e) => TransactionReceipt.fromPartial(e)) || [];\n message.events = object.events?.map((e) => Event.fromPartial(e)) || [];\n message.messages = object.messages?.map((e) => MessageToL1.fromPartial(e)) || [];\n message.storageDiffs = object.storageDiffs?.map((e) => StorageDiff.fromPartial(e)) || [];\n message.contractChanges = object.contractChanges?.map((e) => ContractChange.fromPartial(e)) || [];\n message.nonceUpdates = object.nonceUpdates?.map((e) => NonceUpdate.fromPartial(e)) || [];\n message.traces = object.traces?.map((e) => TransactionTrace.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseBlockHeader(): BlockHeader {\n return {\n blockHash: undefined,\n parentBlockHash: undefined,\n blockNumber: BigInt(\"0\"),\n sequencerAddress: undefined,\n newRoot: undefined,\n timestamp: undefined,\n starknetVersion: \"\",\n l1GasPrice: undefined,\n l1DataGasPrice: undefined,\n l1DataAvailabilityMode: 0,\n };\n}\n\nexport const BlockHeader = {\n encode(message: BlockHeader, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.blockHash !== undefined) {\n FieldElement.encode(message.blockHash, writer.uint32(10).fork()).ldelim();\n }\n if (message.parentBlockHash !== undefined) {\n FieldElement.encode(message.parentBlockHash, writer.uint32(18).fork()).ldelim();\n }\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(24).uint64(message.blockNumber.toString());\n }\n if (message.sequencerAddress !== undefined) {\n FieldElement.encode(message.sequencerAddress, writer.uint32(34).fork()).ldelim();\n }\n if (message.newRoot !== undefined) {\n FieldElement.encode(message.newRoot, writer.uint32(42).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(50).fork()).ldelim();\n }\n if (message.starknetVersion !== undefined && message.starknetVersion !== \"\") {\n writer.uint32(58).string(message.starknetVersion);\n }\n if (message.l1GasPrice !== undefined) {\n ResourcePrice.encode(message.l1GasPrice, writer.uint32(66).fork()).ldelim();\n }\n if (message.l1DataGasPrice !== undefined) {\n ResourcePrice.encode(message.l1DataGasPrice, writer.uint32(74).fork()).ldelim();\n }\n if (message.l1DataAvailabilityMode !== undefined && message.l1DataAvailabilityMode !== 0) {\n writer.uint32(80).int32(message.l1DataAvailabilityMode);\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 !== 10) {\n break;\n }\n\n message.blockHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.parentBlockHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.blockNumber = longToBigint(reader.uint64() as Long);\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.sequencerAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.newRoot = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.starknetVersion = reader.string();\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.l1GasPrice = ResourcePrice.decode(reader, reader.uint32());\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.l1DataGasPrice = ResourcePrice.decode(reader, reader.uint32());\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n\n message.l1DataAvailabilityMode = 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): BlockHeader {\n return {\n blockHash: isSet(object.blockHash) ? FieldElement.fromJSON(object.blockHash) : undefined,\n parentBlockHash: isSet(object.parentBlockHash) ? FieldElement.fromJSON(object.parentBlockHash) : undefined,\n blockNumber: isSet(object.blockNumber) ? BigInt(object.blockNumber) : BigInt(\"0\"),\n sequencerAddress: isSet(object.sequencerAddress) ? FieldElement.fromJSON(object.sequencerAddress) : undefined,\n newRoot: isSet(object.newRoot) ? FieldElement.fromJSON(object.newRoot) : undefined,\n timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : undefined,\n starknetVersion: isSet(object.starknetVersion) ? globalThis.String(object.starknetVersion) : \"\",\n l1GasPrice: isSet(object.l1GasPrice) ? ResourcePrice.fromJSON(object.l1GasPrice) : undefined,\n l1DataGasPrice: isSet(object.l1DataGasPrice) ? ResourcePrice.fromJSON(object.l1DataGasPrice) : undefined,\n l1DataAvailabilityMode: isSet(object.l1DataAvailabilityMode)\n ? l1DataAvailabilityModeFromJSON(object.l1DataAvailabilityMode)\n : 0,\n };\n },\n\n toJSON(message: BlockHeader): unknown {\n const obj: any = {};\n if (message.blockHash !== undefined) {\n obj.blockHash = FieldElement.toJSON(message.blockHash);\n }\n if (message.parentBlockHash !== undefined) {\n obj.parentBlockHash = FieldElement.toJSON(message.parentBlockHash);\n }\n if (message.blockNumber !== undefined && message.blockNumber !== BigInt(\"0\")) {\n obj.blockNumber = message.blockNumber.toString();\n }\n if (message.sequencerAddress !== undefined) {\n obj.sequencerAddress = FieldElement.toJSON(message.sequencerAddress);\n }\n if (message.newRoot !== undefined) {\n obj.newRoot = FieldElement.toJSON(message.newRoot);\n }\n if (message.timestamp !== undefined) {\n obj.timestamp = message.timestamp.toISOString();\n }\n if (message.starknetVersion !== undefined && message.starknetVersion !== \"\") {\n obj.starknetVersion = message.starknetVersion;\n }\n if (message.l1GasPrice !== undefined) {\n obj.l1GasPrice = ResourcePrice.toJSON(message.l1GasPrice);\n }\n if (message.l1DataGasPrice !== undefined) {\n obj.l1DataGasPrice = ResourcePrice.toJSON(message.l1DataGasPrice);\n }\n if (message.l1DataAvailabilityMode !== undefined && message.l1DataAvailabilityMode !== 0) {\n obj.l1DataAvailabilityMode = l1DataAvailabilityModeToJSON(message.l1DataAvailabilityMode);\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.blockHash = (object.blockHash !== undefined && object.blockHash !== null)\n ? FieldElement.fromPartial(object.blockHash)\n : undefined;\n message.parentBlockHash = (object.parentBlockHash !== undefined && object.parentBlockHash !== null)\n ? FieldElement.fromPartial(object.parentBlockHash)\n : undefined;\n message.blockNumber = object.blockNumber ?? BigInt(\"0\");\n message.sequencerAddress = (object.sequencerAddress !== undefined && object.sequencerAddress !== null)\n ? FieldElement.fromPartial(object.sequencerAddress)\n : undefined;\n message.newRoot = (object.newRoot !== undefined && object.newRoot !== null)\n ? FieldElement.fromPartial(object.newRoot)\n : undefined;\n message.timestamp = object.timestamp ?? undefined;\n message.starknetVersion = object.starknetVersion ?? \"\";\n message.l1GasPrice = (object.l1GasPrice !== undefined && object.l1GasPrice !== null)\n ? ResourcePrice.fromPartial(object.l1GasPrice)\n : undefined;\n message.l1DataGasPrice = (object.l1DataGasPrice !== undefined && object.l1DataGasPrice !== null)\n ? ResourcePrice.fromPartial(object.l1DataGasPrice)\n : undefined;\n message.l1DataAvailabilityMode = object.l1DataAvailabilityMode ?? 0;\n return message;\n },\n};\n\nfunction createBaseTransaction(): Transaction {\n return { filterIds: [], meta: undefined, transaction: undefined };\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.meta !== undefined) {\n TransactionMeta.encode(message.meta, writer.uint32(18).fork()).ldelim();\n }\n switch (message.transaction?.$case) {\n case \"invokeV0\":\n InvokeTransactionV0.encode(message.transaction.invokeV0, writer.uint32(26).fork()).ldelim();\n break;\n case \"invokeV1\":\n InvokeTransactionV1.encode(message.transaction.invokeV1, writer.uint32(34).fork()).ldelim();\n break;\n case \"invokeV3\":\n InvokeTransactionV3.encode(message.transaction.invokeV3, writer.uint32(42).fork()).ldelim();\n break;\n case \"l1Handler\":\n L1HandlerTransaction.encode(message.transaction.l1Handler, writer.uint32(50).fork()).ldelim();\n break;\n case \"deploy\":\n DeployTransaction.encode(message.transaction.deploy, writer.uint32(58).fork()).ldelim();\n break;\n case \"declareV0\":\n DeclareTransactionV0.encode(message.transaction.declareV0, writer.uint32(66).fork()).ldelim();\n break;\n case \"declareV1\":\n DeclareTransactionV1.encode(message.transaction.declareV1, writer.uint32(74).fork()).ldelim();\n break;\n case \"declareV2\":\n DeclareTransactionV2.encode(message.transaction.declareV2, writer.uint32(82).fork()).ldelim();\n break;\n case \"declareV3\":\n DeclareTransactionV3.encode(message.transaction.declareV3, writer.uint32(90).fork()).ldelim();\n break;\n case \"deployAccountV1\":\n DeployAccountTransactionV1.encode(message.transaction.deployAccountV1, writer.uint32(98).fork()).ldelim();\n break;\n case \"deployAccountV3\":\n DeployAccountTransactionV3.encode(message.transaction.deployAccountV3, writer.uint32(106).fork()).ldelim();\n break;\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 !== 18) {\n break;\n }\n\n message.meta = TransactionMeta.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transaction = { $case: \"invokeV0\", invokeV0: InvokeTransactionV0.decode(reader, reader.uint32()) };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.transaction = { $case: \"invokeV1\", invokeV1: InvokeTransactionV1.decode(reader, reader.uint32()) };\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.transaction = { $case: \"invokeV3\", invokeV3: InvokeTransactionV3.decode(reader, reader.uint32()) };\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.transaction = { $case: \"l1Handler\", l1Handler: L1HandlerTransaction.decode(reader, reader.uint32()) };\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.transaction = { $case: \"deploy\", deploy: DeployTransaction.decode(reader, reader.uint32()) };\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.transaction = { $case: \"declareV0\", declareV0: DeclareTransactionV0.decode(reader, reader.uint32()) };\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.transaction = { $case: \"declareV1\", declareV1: DeclareTransactionV1.decode(reader, reader.uint32()) };\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n\n message.transaction = { $case: \"declareV2\", declareV2: DeclareTransactionV2.decode(reader, reader.uint32()) };\n continue;\n case 11:\n if (tag !== 90) {\n break;\n }\n\n message.transaction = { $case: \"declareV3\", declareV3: DeclareTransactionV3.decode(reader, reader.uint32()) };\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n\n message.transaction = {\n $case: \"deployAccountV1\",\n deployAccountV1: DeployAccountTransactionV1.decode(reader, reader.uint32()),\n };\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n\n message.transaction = {\n $case: \"deployAccountV3\",\n deployAccountV3: DeployAccountTransactionV3.decode(reader, reader.uint32()),\n };\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 meta: isSet(object.meta) ? TransactionMeta.fromJSON(object.meta) : undefined,\n transaction: isSet(object.invokeV0)\n ? { $case: \"invokeV0\", invokeV0: InvokeTransactionV0.fromJSON(object.invokeV0) }\n : isSet(object.invokeV1)\n ? { $case: \"invokeV1\", invokeV1: InvokeTransactionV1.fromJSON(object.invokeV1) }\n : isSet(object.invokeV3)\n ? { $case: \"invokeV3\", invokeV3: InvokeTransactionV3.fromJSON(object.invokeV3) }\n : isSet(object.l1Handler)\n ? { $case: \"l1Handler\", l1Handler: L1HandlerTransaction.fromJSON(object.l1Handler) }\n : isSet(object.deploy)\n ? { $case: \"deploy\", deploy: DeployTransaction.fromJSON(object.deploy) }\n : isSet(object.declareV0)\n ? { $case: \"declareV0\", declareV0: DeclareTransactionV0.fromJSON(object.declareV0) }\n : isSet(object.declareV1)\n ? { $case: \"declareV1\", declareV1: DeclareTransactionV1.fromJSON(object.declareV1) }\n : isSet(object.declareV2)\n ? { $case: \"declareV2\", declareV2: DeclareTransactionV2.fromJSON(object.declareV2) }\n : isSet(object.declareV3)\n ? { $case: \"declareV3\", declareV3: DeclareTransactionV3.fromJSON(object.declareV3) }\n : isSet(object.deployAccountV1)\n ? { $case: \"deployAccountV1\", deployAccountV1: DeployAccountTransactionV1.fromJSON(object.deployAccountV1) }\n : isSet(object.deployAccountV3)\n ? { $case: \"deployAccountV3\", deployAccountV3: DeployAccountTransactionV3.fromJSON(object.deployAccountV3) }\n : undefined,\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.meta !== undefined) {\n obj.meta = TransactionMeta.toJSON(message.meta);\n }\n if (message.transaction?.$case === \"invokeV0\") {\n obj.invokeV0 = InvokeTransactionV0.toJSON(message.transaction.invokeV0);\n }\n if (message.transaction?.$case === \"invokeV1\") {\n obj.invokeV1 = InvokeTransactionV1.toJSON(message.transaction.invokeV1);\n }\n if (message.transaction?.$case === \"invokeV3\") {\n obj.invokeV3 = InvokeTransactionV3.toJSON(message.transaction.invokeV3);\n }\n if (message.transaction?.$case === \"l1Handler\") {\n obj.l1Handler = L1HandlerTransaction.toJSON(message.transaction.l1Handler);\n }\n if (message.transaction?.$case === \"deploy\") {\n obj.deploy = DeployTransaction.toJSON(message.transaction.deploy);\n }\n if (message.transaction?.$case === \"declareV0\") {\n obj.declareV0 = DeclareTransactionV0.toJSON(message.transaction.declareV0);\n }\n if (message.transaction?.$case === \"declareV1\") {\n obj.declareV1 = DeclareTransactionV1.toJSON(message.transaction.declareV1);\n }\n if (message.transaction?.$case === \"declareV2\") {\n obj.declareV2 = DeclareTransactionV2.toJSON(message.transaction.declareV2);\n }\n if (message.transaction?.$case === \"declareV3\") {\n obj.declareV3 = DeclareTransactionV3.toJSON(message.transaction.declareV3);\n }\n if (message.transaction?.$case === \"deployAccountV1\") {\n obj.deployAccountV1 = DeployAccountTransactionV1.toJSON(message.transaction.deployAccountV1);\n }\n if (message.transaction?.$case === \"deployAccountV3\") {\n obj.deployAccountV3 = DeployAccountTransactionV3.toJSON(message.transaction.deployAccountV3);\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.meta = (object.meta !== undefined && object.meta !== null)\n ? TransactionMeta.fromPartial(object.meta)\n : undefined;\n if (\n object.transaction?.$case === \"invokeV0\" &&\n object.transaction?.invokeV0 !== undefined &&\n object.transaction?.invokeV0 !== null\n ) {\n message.transaction = {\n $case: \"invokeV0\",\n invokeV0: InvokeTransactionV0.fromPartial(object.transaction.invokeV0),\n };\n }\n if (\n object.transaction?.$case === \"invokeV1\" &&\n object.transaction?.invokeV1 !== undefined &&\n object.transaction?.invokeV1 !== null\n ) {\n message.transaction = {\n $case: \"invokeV1\",\n invokeV1: InvokeTransactionV1.fromPartial(object.transaction.invokeV1),\n };\n }\n if (\n object.transaction?.$case === \"invokeV3\" &&\n object.transaction?.invokeV3 !== undefined &&\n object.transaction?.invokeV3 !== null\n ) {\n message.transaction = {\n $case: \"invokeV3\",\n invokeV3: InvokeTransactionV3.fromPartial(object.transaction.invokeV3),\n };\n }\n if (\n object.transaction?.$case === \"l1Handler\" &&\n object.transaction?.l1Handler !== undefined &&\n object.transaction?.l1Handler !== null\n ) {\n message.transaction = {\n $case: \"l1Handler\",\n l1Handler: L1HandlerTransaction.fromPartial(object.transaction.l1Handler),\n };\n }\n if (\n object.transaction?.$case === \"deploy\" &&\n object.transaction?.deploy !== undefined &&\n object.transaction?.deploy !== null\n ) {\n message.transaction = { $case: \"deploy\", deploy: DeployTransaction.fromPartial(object.transaction.deploy) };\n }\n if (\n object.transaction?.$case === \"declareV0\" &&\n object.transaction?.declareV0 !== undefined &&\n object.transaction?.declareV0 !== null\n ) {\n message.transaction = {\n $case: \"declareV0\",\n declareV0: DeclareTransactionV0.fromPartial(object.transaction.declareV0),\n };\n }\n if (\n object.transaction?.$case === \"declareV1\" &&\n object.transaction?.declareV1 !== undefined &&\n object.transaction?.declareV1 !== null\n ) {\n message.transaction = {\n $case: \"declareV1\",\n declareV1: DeclareTransactionV1.fromPartial(object.transaction.declareV1),\n };\n }\n if (\n object.transaction?.$case === \"declareV2\" &&\n object.transaction?.declareV2 !== undefined &&\n object.transaction?.declareV2 !== null\n ) {\n message.transaction = {\n $case: \"declareV2\",\n declareV2: DeclareTransactionV2.fromPartial(object.transaction.declareV2),\n };\n }\n if (\n object.transaction?.$case === \"declareV3\" &&\n object.transaction?.declareV3 !== undefined &&\n object.transaction?.declareV3 !== null\n ) {\n message.transaction = {\n $case: \"declareV3\",\n declareV3: DeclareTransactionV3.fromPartial(object.transaction.declareV3),\n };\n }\n if (\n object.transaction?.$case === \"deployAccountV1\" &&\n object.transaction?.deployAccountV1 !== undefined &&\n object.transaction?.deployAccountV1 !== null\n ) {\n message.transaction = {\n $case: \"deployAccountV1\",\n deployAccountV1: DeployAccountTransactionV1.fromPartial(object.transaction.deployAccountV1),\n };\n }\n if (\n object.transaction?.$case === \"deployAccountV3\" &&\n object.transaction?.deployAccountV3 !== undefined &&\n object.transaction?.deployAccountV3 !== null\n ) {\n message.transaction = {\n $case: \"deployAccountV3\",\n deployAccountV3: DeployAccountTransactionV3.fromPartial(object.transaction.deployAccountV3),\n };\n }\n return message;\n },\n};\n\nfunction createBaseTransactionMeta(): TransactionMeta {\n return { transactionIndex: 0, transactionHash: undefined, transactionStatus: 0 };\n}\n\nexport const TransactionMeta = {\n encode(message: TransactionMeta, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(8).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n FieldElement.encode(message.transactionHash, writer.uint32(18).fork()).ldelim();\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n writer.uint32(24).int32(message.transactionStatus);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TransactionMeta {\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 = createBaseTransactionMeta() 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.transactionIndex = reader.uint32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.transactionHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 24) {\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): TransactionMeta {\n return {\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? FieldElement.fromJSON(object.transactionHash) : undefined,\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n };\n },\n\n toJSON(message: TransactionMeta): unknown {\n const obj: any = {};\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = FieldElement.toJSON(message.transactionHash);\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<TransactionMeta>): TransactionMeta {\n return TransactionMeta.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<TransactionMeta>): TransactionMeta {\n const message = createBaseTransactionMeta() as any;\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? FieldElement.fromPartial(object.transactionHash)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? 0;\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV0(): InvokeTransactionV0 {\n return { maxFee: undefined, signature: [], contractAddress: undefined, entryPointSelector: undefined, calldata: [] };\n}\n\nexport const InvokeTransactionV0 = {\n encode(message: InvokeTransactionV0, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(10).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(26).fork()).ldelim();\n }\n if (message.entryPointSelector !== undefined) {\n FieldElement.encode(message.entryPointSelector, writer.uint32(34).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(50).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV0 {\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 = createBaseInvokeTransactionV0() 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.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.entryPointSelector = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.calldata!.push(FieldElement.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): InvokeTransactionV0 {\n return {\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n entryPointSelector: isSet(object.entryPointSelector)\n ? FieldElement.fromJSON(object.entryPointSelector)\n : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: InvokeTransactionV0): unknown {\n const obj: any = {};\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.entryPointSelector !== undefined) {\n obj.entryPointSelector = FieldElement.toJSON(message.entryPointSelector);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV0>): InvokeTransactionV0 {\n return InvokeTransactionV0.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<InvokeTransactionV0>): InvokeTransactionV0 {\n const message = createBaseInvokeTransactionV0() as any;\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.entryPointSelector = (object.entryPointSelector !== undefined && object.entryPointSelector !== null)\n ? FieldElement.fromPartial(object.entryPointSelector)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV1(): InvokeTransactionV1 {\n return { senderAddress: undefined, calldata: [], maxFee: undefined, signature: [], nonce: undefined };\n}\n\nexport const InvokeTransactionV1 = {\n encode(message: InvokeTransactionV1, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(26).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV1 {\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 = createBaseInvokeTransactionV1() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.calldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.nonce = FieldElement.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): InvokeTransactionV1 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n };\n },\n\n toJSON(message: InvokeTransactionV1): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV1>): InvokeTransactionV1 {\n return InvokeTransactionV1.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<InvokeTransactionV1>): InvokeTransactionV1 {\n const message = createBaseInvokeTransactionV1() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV3(): InvokeTransactionV3 {\n return {\n senderAddress: undefined,\n calldata: [],\n signature: [],\n nonce: undefined,\n resourceBounds: undefined,\n tip: BigInt(\"0\"),\n paymasterData: [],\n accountDeploymentData: [],\n nonceDataAvailabilityMode: 0,\n feeDataAvailabilityMode: 0,\n };\n}\n\nexport const InvokeTransactionV3 = {\n encode(message: InvokeTransactionV3, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(34).fork()).ldelim();\n }\n if (message.resourceBounds !== undefined) {\n ResourceBoundsMapping.encode(message.resourceBounds, writer.uint32(42).fork()).ldelim();\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.tip) !== message.tip) {\n throw new globalThis.Error(\"value provided for field message.tip of type uint64 too large\");\n }\n writer.uint32(48).uint64(message.tip.toString());\n }\n if (message.paymasterData !== undefined && message.paymasterData.length !== 0) {\n for (const v of message.paymasterData) {\n FieldElement.encode(v!, writer.uint32(58).fork()).ldelim();\n }\n }\n if (message.accountDeploymentData !== undefined && message.accountDeploymentData.length !== 0) {\n for (const v of message.accountDeploymentData) {\n FieldElement.encode(v!, writer.uint32(66).fork()).ldelim();\n }\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n writer.uint32(72).int32(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n writer.uint32(80).int32(message.feeDataAvailabilityMode);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV3 {\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 = createBaseInvokeTransactionV3() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.calldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.resourceBounds = ResourceBoundsMapping.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.tip = longToBigint(reader.uint64() as Long);\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.paymasterData!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.accountDeploymentData!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.nonceDataAvailabilityMode = reader.int32() as any;\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n\n message.feeDataAvailabilityMode = 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): InvokeTransactionV3 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n resourceBounds: isSet(object.resourceBounds) ? ResourceBoundsMapping.fromJSON(object.resourceBounds) : undefined,\n tip: isSet(object.tip) ? BigInt(object.tip) : BigInt(\"0\"),\n paymasterData: globalThis.Array.isArray(object?.paymasterData)\n ? object.paymasterData.map((e: any) => FieldElement.fromJSON(e))\n : [],\n accountDeploymentData: globalThis.Array.isArray(object?.accountDeploymentData)\n ? object.accountDeploymentData.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonceDataAvailabilityMode: isSet(object.nonceDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.nonceDataAvailabilityMode)\n : 0,\n feeDataAvailabilityMode: isSet(object.feeDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.feeDataAvailabilityMode)\n : 0,\n };\n },\n\n toJSON(message: InvokeTransactionV3): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.resourceBounds !== undefined) {\n obj.resourceBounds = ResourceBoundsMapping.toJSON(message.resourceBounds);\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n obj.tip = message.tip.toString();\n }\n if (message.paymasterData?.length) {\n obj.paymasterData = message.paymasterData.map((e) => FieldElement.toJSON(e));\n }\n if (message.accountDeploymentData?.length) {\n obj.accountDeploymentData = message.accountDeploymentData.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n obj.nonceDataAvailabilityMode = dataAvailabilityModeToJSON(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n obj.feeDataAvailabilityMode = dataAvailabilityModeToJSON(message.feeDataAvailabilityMode);\n }\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV3>): InvokeTransactionV3 {\n return InvokeTransactionV3.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<InvokeTransactionV3>): InvokeTransactionV3 {\n const message = createBaseInvokeTransactionV3() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.resourceBounds = (object.resourceBounds !== undefined && object.resourceBounds !== null)\n ? ResourceBoundsMapping.fromPartial(object.resourceBounds)\n : undefined;\n message.tip = object.tip ?? BigInt(\"0\");\n message.paymasterData = object.paymasterData?.map((e) => FieldElement.fromPartial(e)) || [];\n message.accountDeploymentData = object.accountDeploymentData?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonceDataAvailabilityMode = object.nonceDataAvailabilityMode ?? 0;\n message.feeDataAvailabilityMode = object.feeDataAvailabilityMode ?? 0;\n return message;\n },\n};\n\nfunction createBaseL1HandlerTransaction(): L1HandlerTransaction {\n return { nonce: BigInt(\"0\"), contractAddress: undefined, entryPointSelector: undefined, calldata: [] };\n}\n\nexport const L1HandlerTransaction = {\n encode(message: L1HandlerTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\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(8).uint64(message.nonce.toString());\n }\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(18).fork()).ldelim();\n }\n if (message.entryPointSelector !== undefined) {\n FieldElement.encode(message.entryPointSelector, writer.uint32(26).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): L1HandlerTransaction {\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 = createBaseL1HandlerTransaction() 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.nonce = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.entryPointSelector = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.calldata!.push(FieldElement.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): L1HandlerTransaction {\n return {\n nonce: isSet(object.nonce) ? BigInt(object.nonce) : BigInt(\"0\"),\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n entryPointSelector: isSet(object.entryPointSelector)\n ? FieldElement.fromJSON(object.entryPointSelector)\n : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: L1HandlerTransaction): unknown {\n const obj: any = {};\n if (message.nonce !== undefined && message.nonce !== BigInt(\"0\")) {\n obj.nonce = message.nonce.toString();\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.entryPointSelector !== undefined) {\n obj.entryPointSelector = FieldElement.toJSON(message.entryPointSelector);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<L1HandlerTransaction>): L1HandlerTransaction {\n return L1HandlerTransaction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<L1HandlerTransaction>): L1HandlerTransaction {\n const message = createBaseL1HandlerTransaction() as any;\n message.nonce = object.nonce ?? BigInt(\"0\");\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.entryPointSelector = (object.entryPointSelector !== undefined && object.entryPointSelector !== null)\n ? FieldElement.fromPartial(object.entryPointSelector)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseDeployTransaction(): DeployTransaction {\n return { contractAddressSalt: undefined, constructorCalldata: [], classHash: undefined };\n}\n\nexport const DeployTransaction = {\n encode(message: DeployTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddressSalt !== undefined) {\n FieldElement.encode(message.contractAddressSalt, writer.uint32(10).fork()).ldelim();\n }\n if (message.constructorCalldata !== undefined && message.constructorCalldata.length !== 0) {\n for (const v of message.constructorCalldata) {\n FieldElement.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployTransaction {\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 = createBaseDeployTransaction() 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.contractAddressSalt = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.constructorCalldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.classHash = FieldElement.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): DeployTransaction {\n return {\n contractAddressSalt: isSet(object.contractAddressSalt)\n ? FieldElement.fromJSON(object.contractAddressSalt)\n : undefined,\n constructorCalldata: globalThis.Array.isArray(object?.constructorCalldata)\n ? object.constructorCalldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeployTransaction): unknown {\n const obj: any = {};\n if (message.contractAddressSalt !== undefined) {\n obj.contractAddressSalt = FieldElement.toJSON(message.contractAddressSalt);\n }\n if (message.constructorCalldata?.length) {\n obj.constructorCalldata = message.constructorCalldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployTransaction>): DeployTransaction {\n return DeployTransaction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployTransaction>): DeployTransaction {\n const message = createBaseDeployTransaction() as any;\n message.contractAddressSalt = (object.contractAddressSalt !== undefined && object.contractAddressSalt !== null)\n ? FieldElement.fromPartial(object.contractAddressSalt)\n : undefined;\n message.constructorCalldata = object.constructorCalldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionV0(): DeclareTransactionV0 {\n return { senderAddress: undefined, maxFee: undefined, signature: [], classHash: undefined };\n}\n\nexport const DeclareTransactionV0 = {\n encode(message: DeclareTransactionV0, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(18).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionV0 {\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 = createBaseDeclareTransactionV0() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.classHash = FieldElement.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): DeclareTransactionV0 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeclareTransactionV0): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionV0>): DeclareTransactionV0 {\n return DeclareTransactionV0.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclareTransactionV0>): DeclareTransactionV0 {\n const message = createBaseDeclareTransactionV0() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionV1(): DeclareTransactionV1 {\n return { senderAddress: undefined, maxFee: undefined, signature: [], nonce: undefined, classHash: undefined };\n}\n\nexport const DeclareTransactionV1 = {\n encode(message: DeclareTransactionV1, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(18).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(34).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionV1 {\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 = createBaseDeclareTransactionV1() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.classHash = FieldElement.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): DeclareTransactionV1 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeclareTransactionV1): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionV1>): DeclareTransactionV1 {\n return DeclareTransactionV1.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclareTransactionV1>): DeclareTransactionV1 {\n const message = createBaseDeclareTransactionV1() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionV2(): DeclareTransactionV2 {\n return {\n senderAddress: undefined,\n compiledClassHash: undefined,\n maxFee: undefined,\n signature: [],\n nonce: undefined,\n classHash: undefined,\n };\n}\n\nexport const DeclareTransactionV2 = {\n encode(message: DeclareTransactionV2, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.compiledClassHash !== undefined) {\n FieldElement.encode(message.compiledClassHash, writer.uint32(18).fork()).ldelim();\n }\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(26).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(42).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionV2 {\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 = createBaseDeclareTransactionV2() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.compiledClassHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.classHash = FieldElement.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): DeclareTransactionV2 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n compiledClassHash: isSet(object.compiledClassHash) ? FieldElement.fromJSON(object.compiledClassHash) : undefined,\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeclareTransactionV2): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.compiledClassHash !== undefined) {\n obj.compiledClassHash = FieldElement.toJSON(message.compiledClassHash);\n }\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionV2>): DeclareTransactionV2 {\n return DeclareTransactionV2.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclareTransactionV2>): DeclareTransactionV2 {\n const message = createBaseDeclareTransactionV2() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.compiledClassHash = (object.compiledClassHash !== undefined && object.compiledClassHash !== null)\n ? FieldElement.fromPartial(object.compiledClassHash)\n : undefined;\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionV3(): DeclareTransactionV3 {\n return {\n senderAddress: undefined,\n compiledClassHash: undefined,\n signature: [],\n nonce: undefined,\n classHash: undefined,\n resourceBounds: undefined,\n tip: BigInt(\"0\"),\n paymasterData: [],\n accountDeploymentData: [],\n nonceDataAvailabilityMode: 0,\n feeDataAvailabilityMode: 0,\n };\n}\n\nexport const DeclareTransactionV3 = {\n encode(message: DeclareTransactionV3, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.compiledClassHash !== undefined) {\n FieldElement.encode(message.compiledClassHash, writer.uint32(18).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(34).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(42).fork()).ldelim();\n }\n if (message.resourceBounds !== undefined) {\n ResourceBoundsMapping.encode(message.resourceBounds, writer.uint32(50).fork()).ldelim();\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.tip) !== message.tip) {\n throw new globalThis.Error(\"value provided for field message.tip of type uint64 too large\");\n }\n writer.uint32(56).uint64(message.tip.toString());\n }\n if (message.paymasterData !== undefined && message.paymasterData.length !== 0) {\n for (const v of message.paymasterData) {\n FieldElement.encode(v!, writer.uint32(66).fork()).ldelim();\n }\n }\n if (message.accountDeploymentData !== undefined && message.accountDeploymentData.length !== 0) {\n for (const v of message.accountDeploymentData) {\n FieldElement.encode(v!, writer.uint32(74).fork()).ldelim();\n }\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n writer.uint32(80).int32(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n writer.uint32(88).int32(message.feeDataAvailabilityMode);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionV3 {\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 = createBaseDeclareTransactionV3() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.compiledClassHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.classHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.resourceBounds = ResourceBoundsMapping.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n\n message.tip = longToBigint(reader.uint64() as Long);\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.paymasterData!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.accountDeploymentData!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n\n message.nonceDataAvailabilityMode = reader.int32() as any;\n continue;\n case 11:\n if (tag !== 88) {\n break;\n }\n\n message.feeDataAvailabilityMode = 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): DeclareTransactionV3 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n compiledClassHash: isSet(object.compiledClassHash) ? FieldElement.fromJSON(object.compiledClassHash) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n resourceBounds: isSet(object.resourceBounds) ? ResourceBoundsMapping.fromJSON(object.resourceBounds) : undefined,\n tip: isSet(object.tip) ? BigInt(object.tip) : BigInt(\"0\"),\n paymasterData: globalThis.Array.isArray(object?.paymasterData)\n ? object.paymasterData.map((e: any) => FieldElement.fromJSON(e))\n : [],\n accountDeploymentData: globalThis.Array.isArray(object?.accountDeploymentData)\n ? object.accountDeploymentData.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonceDataAvailabilityMode: isSet(object.nonceDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.nonceDataAvailabilityMode)\n : 0,\n feeDataAvailabilityMode: isSet(object.feeDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.feeDataAvailabilityMode)\n : 0,\n };\n },\n\n toJSON(message: DeclareTransactionV3): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.compiledClassHash !== undefined) {\n obj.compiledClassHash = FieldElement.toJSON(message.compiledClassHash);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n if (message.resourceBounds !== undefined) {\n obj.resourceBounds = ResourceBoundsMapping.toJSON(message.resourceBounds);\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n obj.tip = message.tip.toString();\n }\n if (message.paymasterData?.length) {\n obj.paymasterData = message.paymasterData.map((e) => FieldElement.toJSON(e));\n }\n if (message.accountDeploymentData?.length) {\n obj.accountDeploymentData = message.accountDeploymentData.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n obj.nonceDataAvailabilityMode = dataAvailabilityModeToJSON(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n obj.feeDataAvailabilityMode = dataAvailabilityModeToJSON(message.feeDataAvailabilityMode);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionV3>): DeclareTransactionV3 {\n return DeclareTransactionV3.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclareTransactionV3>): DeclareTransactionV3 {\n const message = createBaseDeclareTransactionV3() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.compiledClassHash = (object.compiledClassHash !== undefined && object.compiledClassHash !== null)\n ? FieldElement.fromPartial(object.compiledClassHash)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n message.resourceBounds = (object.resourceBounds !== undefined && object.resourceBounds !== null)\n ? ResourceBoundsMapping.fromPartial(object.resourceBounds)\n : undefined;\n message.tip = object.tip ?? BigInt(\"0\");\n message.paymasterData = object.paymasterData?.map((e) => FieldElement.fromPartial(e)) || [];\n message.accountDeploymentData = object.accountDeploymentData?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonceDataAvailabilityMode = object.nonceDataAvailabilityMode ?? 0;\n message.feeDataAvailabilityMode = object.feeDataAvailabilityMode ?? 0;\n return message;\n },\n};\n\nfunction createBaseDeployAccountTransactionV1(): DeployAccountTransactionV1 {\n return {\n maxFee: undefined,\n signature: [],\n nonce: undefined,\n contractAddressSalt: undefined,\n constructorCalldata: [],\n classHash: undefined,\n };\n}\n\nexport const DeployAccountTransactionV1 = {\n encode(message: DeployAccountTransactionV1, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(10).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(26).fork()).ldelim();\n }\n if (message.contractAddressSalt !== undefined) {\n FieldElement.encode(message.contractAddressSalt, writer.uint32(34).fork()).ldelim();\n }\n if (message.constructorCalldata !== undefined && message.constructorCalldata.length !== 0) {\n for (const v of message.constructorCalldata) {\n FieldElement.encode(v!, writer.uint32(42).fork()).ldelim();\n }\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountTransactionV1 {\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 = createBaseDeployAccountTransactionV1() 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.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.contractAddressSalt = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.constructorCalldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.classHash = FieldElement.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): DeployAccountTransactionV1 {\n return {\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n contractAddressSalt: isSet(object.contractAddressSalt)\n ? FieldElement.fromJSON(object.contractAddressSalt)\n : undefined,\n constructorCalldata: globalThis.Array.isArray(object?.constructorCalldata)\n ? object.constructorCalldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeployAccountTransactionV1): unknown {\n const obj: any = {};\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.contractAddressSalt !== undefined) {\n obj.contractAddressSalt = FieldElement.toJSON(message.contractAddressSalt);\n }\n if (message.constructorCalldata?.length) {\n obj.constructorCalldata = message.constructorCalldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountTransactionV1>): DeployAccountTransactionV1 {\n return DeployAccountTransactionV1.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployAccountTransactionV1>): DeployAccountTransactionV1 {\n const message = createBaseDeployAccountTransactionV1() as any;\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.contractAddressSalt = (object.contractAddressSalt !== undefined && object.contractAddressSalt !== null)\n ? FieldElement.fromPartial(object.contractAddressSalt)\n : undefined;\n message.constructorCalldata = object.constructorCalldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeployAccountTransactionV3(): DeployAccountTransactionV3 {\n return {\n signature: [],\n nonce: undefined,\n contractAddressSalt: undefined,\n constructorCalldata: [],\n classHash: undefined,\n resourceBounds: undefined,\n tip: BigInt(\"0\"),\n paymasterData: [],\n nonceDataAvailabilityMode: 0,\n feeDataAvailabilityMode: 0,\n };\n}\n\nexport const DeployAccountTransactionV3 = {\n encode(message: DeployAccountTransactionV3, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(18).fork()).ldelim();\n }\n if (message.contractAddressSalt !== undefined) {\n FieldElement.encode(message.contractAddressSalt, writer.uint32(26).fork()).ldelim();\n }\n if (message.constructorCalldata !== undefined && message.constructorCalldata.length !== 0) {\n for (const v of message.constructorCalldata) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(42).fork()).ldelim();\n }\n if (message.resourceBounds !== undefined) {\n ResourceBoundsMapping.encode(message.resourceBounds, writer.uint32(50).fork()).ldelim();\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.tip) !== message.tip) {\n throw new globalThis.Error(\"value provided for field message.tip of type uint64 too large\");\n }\n writer.uint32(56).uint64(message.tip.toString());\n }\n if (message.paymasterData !== undefined && message.paymasterData.length !== 0) {\n for (const v of message.paymasterData) {\n FieldElement.encode(v!, writer.uint32(66).fork()).ldelim();\n }\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n writer.uint32(72).int32(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n writer.uint32(80).int32(message.feeDataAvailabilityMode);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountTransactionV3 {\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 = createBaseDeployAccountTransactionV3() 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.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.contractAddressSalt = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.constructorCalldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.classHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.resourceBounds = ResourceBoundsMapping.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n\n message.tip = longToBigint(reader.uint64() as Long);\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.paymasterData!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.nonceDataAvailabilityMode = reader.int32() as any;\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n\n message.feeDataAvailabilityMode = 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): DeployAccountTransactionV3 {\n return {\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n contractAddressSalt: isSet(object.contractAddressSalt)\n ? FieldElement.fromJSON(object.contractAddressSalt)\n : undefined,\n constructorCalldata: globalThis.Array.isArray(object?.constructorCalldata)\n ? object.constructorCalldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n resourceBounds: isSet(object.resourceBounds) ? ResourceBoundsMapping.fromJSON(object.resourceBounds) : undefined,\n tip: isSet(object.tip) ? BigInt(object.tip) : BigInt(\"0\"),\n paymasterData: globalThis.Array.isArray(object?.paymasterData)\n ? object.paymasterData.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonceDataAvailabilityMode: isSet(object.nonceDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.nonceDataAvailabilityMode)\n : 0,\n feeDataAvailabilityMode: isSet(object.feeDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.feeDataAvailabilityMode)\n : 0,\n };\n },\n\n toJSON(message: DeployAccountTransactionV3): unknown {\n const obj: any = {};\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.contractAddressSalt !== undefined) {\n obj.contractAddressSalt = FieldElement.toJSON(message.contractAddressSalt);\n }\n if (message.constructorCalldata?.length) {\n obj.constructorCalldata = message.constructorCalldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n if (message.resourceBounds !== undefined) {\n obj.resourceBounds = ResourceBoundsMapping.toJSON(message.resourceBounds);\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n obj.tip = message.tip.toString();\n }\n if (message.paymasterData?.length) {\n obj.paymasterData = message.paymasterData.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n obj.nonceDataAvailabilityMode = dataAvailabilityModeToJSON(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n obj.feeDataAvailabilityMode = dataAvailabilityModeToJSON(message.feeDataAvailabilityMode);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountTransactionV3>): DeployAccountTransactionV3 {\n return DeployAccountTransactionV3.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployAccountTransactionV3>): DeployAccountTransactionV3 {\n const message = createBaseDeployAccountTransactionV3() as any;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.contractAddressSalt = (object.contractAddressSalt !== undefined && object.contractAddressSalt !== null)\n ? FieldElement.fromPartial(object.contractAddressSalt)\n : undefined;\n message.constructorCalldata = object.constructorCalldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n message.resourceBounds = (object.resourceBounds !== undefined && object.resourceBounds !== null)\n ? ResourceBoundsMapping.fromPartial(object.resourceBounds)\n : undefined;\n message.tip = object.tip ?? BigInt(\"0\");\n message.paymasterData = object.paymasterData?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonceDataAvailabilityMode = object.nonceDataAvailabilityMode ?? 0;\n message.feeDataAvailabilityMode = object.feeDataAvailabilityMode ?? 0;\n return message;\n },\n};\n\nfunction createBaseTransactionReceipt(): TransactionReceipt {\n return { filterIds: [], meta: undefined, receipt: undefined };\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.meta !== undefined) {\n TransactionReceiptMeta.encode(message.meta, writer.uint32(18).fork()).ldelim();\n }\n switch (message.receipt?.$case) {\n case \"invoke\":\n InvokeTransactionReceipt.encode(message.receipt.invoke, writer.uint32(26).fork()).ldelim();\n break;\n case \"l1Handler\":\n L1HandlerTransactionReceipt.encode(message.receipt.l1Handler, writer.uint32(34).fork()).ldelim();\n break;\n case \"declare\":\n DeclareTransactionReceipt.encode(message.receipt.declare, writer.uint32(42).fork()).ldelim();\n break;\n case \"deploy\":\n DeployTransactionReceipt.encode(message.receipt.deploy, writer.uint32(50).fork()).ldelim();\n break;\n case \"deployAccount\":\n DeployAccountTransactionReceipt.encode(message.receipt.deployAccount, writer.uint32(58).fork()).ldelim();\n break;\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 !== 18) {\n break;\n }\n\n message.meta = TransactionReceiptMeta.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.receipt = { $case: \"invoke\", invoke: InvokeTransactionReceipt.decode(reader, reader.uint32()) };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.receipt = {\n $case: \"l1Handler\",\n l1Handler: L1HandlerTransactionReceipt.decode(reader, reader.uint32()),\n };\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.receipt = { $case: \"declare\", declare: DeclareTransactionReceipt.decode(reader, reader.uint32()) };\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.receipt = { $case: \"deploy\", deploy: DeployTransactionReceipt.decode(reader, reader.uint32()) };\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.receipt = {\n $case: \"deployAccount\",\n deployAccount: DeployAccountTransactionReceipt.decode(reader, reader.uint32()),\n };\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 meta: isSet(object.meta) ? TransactionReceiptMeta.fromJSON(object.meta) : undefined,\n receipt: isSet(object.invoke)\n ? { $case: \"invoke\", invoke: InvokeTransactionReceipt.fromJSON(object.invoke) }\n : isSet(object.l1Handler)\n ? { $case: \"l1Handler\", l1Handler: L1HandlerTransactionReceipt.fromJSON(object.l1Handler) }\n : isSet(object.declare)\n ? { $case: \"declare\", declare: DeclareTransactionReceipt.fromJSON(object.declare) }\n : isSet(object.deploy)\n ? { $case: \"deploy\", deploy: DeployTransactionReceipt.fromJSON(object.deploy) }\n : isSet(object.deployAccount)\n ? { $case: \"deployAccount\", deployAccount: DeployAccountTransactionReceipt.fromJSON(object.deployAccount) }\n : undefined,\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.meta !== undefined) {\n obj.meta = TransactionReceiptMeta.toJSON(message.meta);\n }\n if (message.receipt?.$case === \"invoke\") {\n obj.invoke = InvokeTransactionReceipt.toJSON(message.receipt.invoke);\n }\n if (message.receipt?.$case === \"l1Handler\") {\n obj.l1Handler = L1HandlerTransactionReceipt.toJSON(message.receipt.l1Handler);\n }\n if (message.receipt?.$case === \"declare\") {\n obj.declare = DeclareTransactionReceipt.toJSON(message.receipt.declare);\n }\n if (message.receipt?.$case === \"deploy\") {\n obj.deploy = DeployTransactionReceipt.toJSON(message.receipt.deploy);\n }\n if (message.receipt?.$case === \"deployAccount\") {\n obj.deployAccount = DeployAccountTransactionReceipt.toJSON(message.receipt.deployAccount);\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.meta = (object.meta !== undefined && object.meta !== null)\n ? TransactionReceiptMeta.fromPartial(object.meta)\n : undefined;\n if (object.receipt?.$case === \"invoke\" && object.receipt?.invoke !== undefined && object.receipt?.invoke !== null) {\n message.receipt = { $case: \"invoke\", invoke: InvokeTransactionReceipt.fromPartial(object.receipt.invoke) };\n }\n if (\n object.receipt?.$case === \"l1Handler\" &&\n object.receipt?.l1Handler !== undefined &&\n object.receipt?.l1Handler !== null\n ) {\n message.receipt = {\n $case: \"l1Handler\",\n l1Handler: L1HandlerTransactionReceipt.fromPartial(object.receipt.l1Handler),\n };\n }\n if (\n object.receipt?.$case === \"declare\" && object.receipt?.declare !== undefined && object.receipt?.declare !== null\n ) {\n message.receipt = { $case: \"declare\", declare: DeclareTransactionReceipt.fromPartial(object.receipt.declare) };\n }\n if (object.receipt?.$case === \"deploy\" && object.receipt?.deploy !== undefined && object.receipt?.deploy !== null) {\n message.receipt = { $case: \"deploy\", deploy: DeployTransactionReceipt.fromPartial(object.receipt.deploy) };\n }\n if (\n object.receipt?.$case === \"deployAccount\" &&\n object.receipt?.deployAccount !== undefined &&\n object.receipt?.deployAccount !== null\n ) {\n message.receipt = {\n $case: \"deployAccount\",\n deployAccount: DeployAccountTransactionReceipt.fromPartial(object.receipt.deployAccount),\n };\n }\n return message;\n },\n};\n\nfunction createBaseTransactionReceiptMeta(): TransactionReceiptMeta {\n return {\n transactionIndex: 0,\n transactionHash: undefined,\n actualFee: undefined,\n executionResources: undefined,\n executionResult: undefined,\n };\n}\n\nexport const TransactionReceiptMeta = {\n encode(message: TransactionReceiptMeta, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(8).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n FieldElement.encode(message.transactionHash, writer.uint32(18).fork()).ldelim();\n }\n if (message.actualFee !== undefined) {\n FeePayment.encode(message.actualFee, writer.uint32(26).fork()).ldelim();\n }\n if (message.executionResources !== undefined) {\n ExecutionResources.encode(message.executionResources, writer.uint32(34).fork()).ldelim();\n }\n switch (message.executionResult?.$case) {\n case \"succeeded\":\n ExecutionSucceeded.encode(message.executionResult.succeeded, writer.uint32(42).fork()).ldelim();\n break;\n case \"reverted\":\n ExecutionReverted.encode(message.executionResult.reverted, writer.uint32(50).fork()).ldelim();\n break;\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TransactionReceiptMeta {\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 = createBaseTransactionReceiptMeta() 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.transactionIndex = reader.uint32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.transactionHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.actualFee = FeePayment.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.executionResources = ExecutionResources.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.executionResult = {\n $case: \"succeeded\",\n succeeded: ExecutionSucceeded.decode(reader, reader.uint32()),\n };\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.executionResult = { $case: \"reverted\", reverted: ExecutionReverted.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): TransactionReceiptMeta {\n return {\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? FieldElement.fromJSON(object.transactionHash) : undefined,\n actualFee: isSet(object.actualFee) ? FeePayment.fromJSON(object.actualFee) : undefined,\n executionResources: isSet(object.executionResources)\n ? ExecutionResources.fromJSON(object.executionResources)\n : undefined,\n executionResult: isSet(object.succeeded)\n ? { $case: \"succeeded\", succeeded: ExecutionSucceeded.fromJSON(object.succeeded) }\n : isSet(object.reverted)\n ? { $case: \"reverted\", reverted: ExecutionReverted.fromJSON(object.reverted) }\n : undefined,\n };\n },\n\n toJSON(message: TransactionReceiptMeta): unknown {\n const obj: any = {};\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = FieldElement.toJSON(message.transactionHash);\n }\n if (message.actualFee !== undefined) {\n obj.actualFee = FeePayment.toJSON(message.actualFee);\n }\n if (message.executionResources !== undefined) {\n obj.executionResources = ExecutionResources.toJSON(message.executionResources);\n }\n if (message.executionResult?.$case === \"succeeded\") {\n obj.succeeded = ExecutionSucceeded.toJSON(message.executionResult.succeeded);\n }\n if (message.executionResult?.$case === \"reverted\") {\n obj.reverted = ExecutionReverted.toJSON(message.executionResult.reverted);\n }\n return obj;\n },\n\n create(base?: DeepPartial<TransactionReceiptMeta>): TransactionReceiptMeta {\n return TransactionReceiptMeta.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<TransactionReceiptMeta>): TransactionReceiptMeta {\n const message = createBaseTransactionReceiptMeta() as any;\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? FieldElement.fromPartial(object.transactionHash)\n : undefined;\n message.actualFee = (object.actualFee !== undefined && object.actualFee !== null)\n ? FeePayment.fromPartial(object.actualFee)\n : undefined;\n message.executionResources = (object.executionResources !== undefined && object.executionResources !== null)\n ? ExecutionResources.fromPartial(object.executionResources)\n : undefined;\n if (\n object.executionResult?.$case === \"succeeded\" &&\n object.executionResult?.succeeded !== undefined &&\n object.executionResult?.succeeded !== null\n ) {\n message.executionResult = {\n $case: \"succeeded\",\n succeeded: ExecutionSucceeded.fromPartial(object.executionResult.succeeded),\n };\n }\n if (\n object.executionResult?.$case === \"reverted\" &&\n object.executionResult?.reverted !== undefined &&\n object.executionResult?.reverted !== null\n ) {\n message.executionResult = {\n $case: \"reverted\",\n reverted: ExecutionReverted.fromPartial(object.executionResult.reverted),\n };\n }\n return message;\n },\n};\n\nfunction createBaseExecutionSucceeded(): ExecutionSucceeded {\n return {};\n}\n\nexport const ExecutionSucceeded = {\n encode(_: ExecutionSucceeded, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ExecutionSucceeded {\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 = createBaseExecutionSucceeded() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): ExecutionSucceeded {\n return {};\n },\n\n toJSON(_: ExecutionSucceeded): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<ExecutionSucceeded>): ExecutionSucceeded {\n return ExecutionSucceeded.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<ExecutionSucceeded>): ExecutionSucceeded {\n const message = createBaseExecutionSucceeded() as any;\n return message;\n },\n};\n\nfunction createBaseExecutionReverted(): ExecutionReverted {\n return { reason: \"\" };\n}\n\nexport const ExecutionReverted = {\n encode(message: ExecutionReverted, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.reason !== undefined && message.reason !== \"\") {\n writer.uint32(10).string(message.reason);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ExecutionReverted {\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 = createBaseExecutionReverted() 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.reason = reader.string();\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): ExecutionReverted {\n return { reason: isSet(object.reason) ? globalThis.String(object.reason) : \"\" };\n },\n\n toJSON(message: ExecutionReverted): unknown {\n const obj: any = {};\n if (message.reason !== undefined && message.reason !== \"\") {\n obj.reason = message.reason;\n }\n return obj;\n },\n\n create(base?: DeepPartial<ExecutionReverted>): ExecutionReverted {\n return ExecutionReverted.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ExecutionReverted>): ExecutionReverted {\n const message = createBaseExecutionReverted() as any;\n message.reason = object.reason ?? \"\";\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionReceipt(): InvokeTransactionReceipt {\n return {};\n}\n\nexport const InvokeTransactionReceipt = {\n encode(_: InvokeTransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionReceipt {\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 = createBaseInvokeTransactionReceipt() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): InvokeTransactionReceipt {\n return {};\n },\n\n toJSON(_: InvokeTransactionReceipt): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionReceipt>): InvokeTransactionReceipt {\n return InvokeTransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<InvokeTransactionReceipt>): InvokeTransactionReceipt {\n const message = createBaseInvokeTransactionReceipt() as any;\n return message;\n },\n};\n\nfunction createBaseL1HandlerTransactionReceipt(): L1HandlerTransactionReceipt {\n return { messageHash: new Uint8Array(0) };\n}\n\nexport const L1HandlerTransactionReceipt = {\n encode(message: L1HandlerTransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.messageHash !== undefined && message.messageHash.length !== 0) {\n writer.uint32(10).bytes(message.messageHash);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): L1HandlerTransactionReceipt {\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 = createBaseL1HandlerTransactionReceipt() 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.messageHash = 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): L1HandlerTransactionReceipt {\n return { messageHash: isSet(object.messageHash) ? bytesFromBase64(object.messageHash) : new Uint8Array(0) };\n },\n\n toJSON(message: L1HandlerTransactionReceipt): unknown {\n const obj: any = {};\n if (message.messageHash !== undefined && message.messageHash.length !== 0) {\n obj.messageHash = base64FromBytes(message.messageHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<L1HandlerTransactionReceipt>): L1HandlerTransactionReceipt {\n return L1HandlerTransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<L1HandlerTransactionReceipt>): L1HandlerTransactionReceipt {\n const message = createBaseL1HandlerTransactionReceipt() as any;\n message.messageHash = object.messageHash ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionReceipt(): DeclareTransactionReceipt {\n return {};\n}\n\nexport const DeclareTransactionReceipt = {\n encode(_: DeclareTransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionReceipt {\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 = createBaseDeclareTransactionReceipt() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclareTransactionReceipt {\n return {};\n },\n\n toJSON(_: DeclareTransactionReceipt): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionReceipt>): DeclareTransactionReceipt {\n return DeclareTransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclareTransactionReceipt>): DeclareTransactionReceipt {\n const message = createBaseDeclareTransactionReceipt() as any;\n return message;\n },\n};\n\nfunction createBaseDeployTransactionReceipt(): DeployTransactionReceipt {\n return { contractAddress: undefined };\n}\n\nexport const DeployTransactionReceipt = {\n encode(message: DeployTransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployTransactionReceipt {\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 = createBaseDeployTransactionReceipt() 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.contractAddress = FieldElement.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): DeployTransactionReceipt {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n };\n },\n\n toJSON(message: DeployTransactionReceipt): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployTransactionReceipt>): DeployTransactionReceipt {\n return DeployTransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployTransactionReceipt>): DeployTransactionReceipt {\n const message = createBaseDeployTransactionReceipt() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeployAccountTransactionReceipt(): DeployAccountTransactionReceipt {\n return { contractAddress: undefined };\n}\n\nexport const DeployAccountTransactionReceipt = {\n encode(message: DeployAccountTransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountTransactionReceipt {\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 = createBaseDeployAccountTransactionReceipt() 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.contractAddress = FieldElement.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): DeployAccountTransactionReceipt {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n };\n },\n\n toJSON(message: DeployAccountTransactionReceipt): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountTransactionReceipt>): DeployAccountTransactionReceipt {\n return DeployAccountTransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployAccountTransactionReceipt>): DeployAccountTransactionReceipt {\n const message = createBaseDeployAccountTransactionReceipt() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEvent(): Event {\n return {\n filterIds: [],\n address: undefined,\n keys: [],\n data: [],\n eventIndex: 0,\n transactionIndex: 0,\n transactionHash: undefined,\n transactionStatus: 0,\n eventIndexInTransaction: 0,\n };\n}\n\nexport const Event = {\n encode(message: Event, 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.address !== undefined) {\n FieldElement.encode(message.address, writer.uint32(18).fork()).ldelim();\n }\n if (message.keys !== undefined && message.keys.length !== 0) {\n for (const v of message.keys) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.data !== undefined && message.data.length !== 0) {\n for (const v of message.data) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.eventIndex !== undefined && message.eventIndex !== 0) {\n writer.uint32(40).uint32(message.eventIndex);\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(48).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n FieldElement.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.eventIndexInTransaction !== undefined && message.eventIndexInTransaction !== 0) {\n writer.uint32(72).uint32(message.eventIndexInTransaction);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Event {\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 = createBaseEvent() 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 !== 18) {\n break;\n }\n\n message.address = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.keys!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.data!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.eventIndex = reader.uint32();\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 = FieldElement.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.eventIndexInTransaction = 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): Event {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n address: isSet(object.address) ? FieldElement.fromJSON(object.address) : undefined,\n keys: globalThis.Array.isArray(object?.keys) ? object.keys.map((e: any) => FieldElement.fromJSON(e)) : [],\n data: globalThis.Array.isArray(object?.data) ? object.data.map((e: any) => FieldElement.fromJSON(e)) : [],\n eventIndex: isSet(object.eventIndex) ? globalThis.Number(object.eventIndex) : 0,\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? FieldElement.fromJSON(object.transactionHash) : undefined,\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n eventIndexInTransaction: isSet(object.eventIndexInTransaction)\n ? globalThis.Number(object.eventIndexInTransaction)\n : 0,\n };\n },\n\n toJSON(message: Event): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.address !== undefined) {\n obj.address = FieldElement.toJSON(message.address);\n }\n if (message.keys?.length) {\n obj.keys = message.keys.map((e) => FieldElement.toJSON(e));\n }\n if (message.data?.length) {\n obj.data = message.data.map((e) => FieldElement.toJSON(e));\n }\n if (message.eventIndex !== undefined && message.eventIndex !== 0) {\n obj.eventIndex = Math.round(message.eventIndex);\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 = FieldElement.toJSON(message.transactionHash);\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n obj.transactionStatus = transactionStatusToJSON(message.transactionStatus);\n }\n if (message.eventIndexInTransaction !== undefined && message.eventIndexInTransaction !== 0) {\n obj.eventIndexInTransaction = Math.round(message.eventIndexInTransaction);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Event>): Event {\n return Event.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Event>): Event {\n const message = createBaseEvent() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.address = (object.address !== undefined && object.address !== null)\n ? FieldElement.fromPartial(object.address)\n : undefined;\n message.keys = object.keys?.map((e) => FieldElement.fromPartial(e)) || [];\n message.data = object.data?.map((e) => FieldElement.fromPartial(e)) || [];\n message.eventIndex = object.eventIndex ?? 0;\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? FieldElement.fromPartial(object.transactionHash)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? 0;\n message.eventIndexInTransaction = object.eventIndexInTransaction ?? 0;\n return message;\n },\n};\n\nfunction createBaseMessageToL1(): MessageToL1 {\n return {\n filterIds: [],\n fromAddress: undefined,\n toAddress: undefined,\n payload: [],\n messageIndex: 0,\n transactionIndex: 0,\n transactionHash: undefined,\n transactionStatus: 0,\n messageIndexInTransaction: 0,\n };\n}\n\nexport const MessageToL1 = {\n encode(message: MessageToL1, 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.fromAddress !== undefined) {\n FieldElement.encode(message.fromAddress, writer.uint32(18).fork()).ldelim();\n }\n if (message.toAddress !== undefined) {\n FieldElement.encode(message.toAddress, writer.uint32(26).fork()).ldelim();\n }\n if (message.payload !== undefined && message.payload.length !== 0) {\n for (const v of message.payload) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.messageIndex !== undefined && message.messageIndex !== 0) {\n writer.uint32(40).uint32(message.messageIndex);\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(48).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n FieldElement.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.messageIndexInTransaction !== undefined && message.messageIndexInTransaction !== 0) {\n writer.uint32(72).uint32(message.messageIndexInTransaction);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MessageToL1 {\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 = createBaseMessageToL1() 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 !== 18) {\n break;\n }\n\n message.fromAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.toAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.payload!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.messageIndex = reader.uint32();\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 = FieldElement.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.messageIndexInTransaction = 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): MessageToL1 {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n fromAddress: isSet(object.fromAddress) ? FieldElement.fromJSON(object.fromAddress) : undefined,\n toAddress: isSet(object.toAddress) ? FieldElement.fromJSON(object.toAddress) : undefined,\n payload: globalThis.Array.isArray(object?.payload)\n ? object.payload.map((e: any) => FieldElement.fromJSON(e))\n : [],\n messageIndex: isSet(object.messageIndex) ? globalThis.Number(object.messageIndex) : 0,\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? FieldElement.fromJSON(object.transactionHash) : undefined,\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n messageIndexInTransaction: isSet(object.messageIndexInTransaction)\n ? globalThis.Number(object.messageIndexInTransaction)\n : 0,\n };\n },\n\n toJSON(message: MessageToL1): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.fromAddress !== undefined) {\n obj.fromAddress = FieldElement.toJSON(message.fromAddress);\n }\n if (message.toAddress !== undefined) {\n obj.toAddress = FieldElement.toJSON(message.toAddress);\n }\n if (message.payload?.length) {\n obj.payload = message.payload.map((e) => FieldElement.toJSON(e));\n }\n if (message.messageIndex !== undefined && message.messageIndex !== 0) {\n obj.messageIndex = Math.round(message.messageIndex);\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 = FieldElement.toJSON(message.transactionHash);\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n obj.transactionStatus = transactionStatusToJSON(message.transactionStatus);\n }\n if (message.messageIndexInTransaction !== undefined && message.messageIndexInTransaction !== 0) {\n obj.messageIndexInTransaction = Math.round(message.messageIndexInTransaction);\n }\n return obj;\n },\n\n create(base?: DeepPartial<MessageToL1>): MessageToL1 {\n return MessageToL1.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<MessageToL1>): MessageToL1 {\n const message = createBaseMessageToL1() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.fromAddress = (object.fromAddress !== undefined && object.fromAddress !== null)\n ? FieldElement.fromPartial(object.fromAddress)\n : undefined;\n message.toAddress = (object.toAddress !== undefined && object.toAddress !== null)\n ? FieldElement.fromPartial(object.toAddress)\n : undefined;\n message.payload = object.payload?.map((e) => FieldElement.fromPartial(e)) || [];\n message.messageIndex = object.messageIndex ?? 0;\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? FieldElement.fromPartial(object.transactionHash)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? 0;\n message.messageIndexInTransaction = object.messageIndexInTransaction ?? 0;\n return message;\n },\n};\n\nfunction createBaseResourcePrice(): ResourcePrice {\n return { priceInFri: undefined, priceInWei: undefined };\n}\n\nexport const ResourcePrice = {\n encode(message: ResourcePrice, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.priceInFri !== undefined) {\n FieldElement.encode(message.priceInFri, writer.uint32(10).fork()).ldelim();\n }\n if (message.priceInWei !== undefined) {\n FieldElement.encode(message.priceInWei, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResourcePrice {\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 = createBaseResourcePrice() 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.priceInFri = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.priceInWei = FieldElement.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): ResourcePrice {\n return {\n priceInFri: isSet(object.priceInFri) ? FieldElement.fromJSON(object.priceInFri) : undefined,\n priceInWei: isSet(object.priceInWei) ? FieldElement.fromJSON(object.priceInWei) : undefined,\n };\n },\n\n toJSON(message: ResourcePrice): unknown {\n const obj: any = {};\n if (message.priceInFri !== undefined) {\n obj.priceInFri = FieldElement.toJSON(message.priceInFri);\n }\n if (message.priceInWei !== undefined) {\n obj.priceInWei = FieldElement.toJSON(message.priceInWei);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ResourcePrice>): ResourcePrice {\n return ResourcePrice.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ResourcePrice>): ResourcePrice {\n const message = createBaseResourcePrice() as any;\n message.priceInFri = (object.priceInFri !== undefined && object.priceInFri !== null)\n ? FieldElement.fromPartial(object.priceInFri)\n : undefined;\n message.priceInWei = (object.priceInWei !== undefined && object.priceInWei !== null)\n ? FieldElement.fromPartial(object.priceInWei)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseFeePayment(): FeePayment {\n return { amount: undefined, unit: 0 };\n}\n\nexport const FeePayment = {\n encode(message: FeePayment, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.amount !== undefined) {\n FieldElement.encode(message.amount, writer.uint32(10).fork()).ldelim();\n }\n if (message.unit !== undefined && message.unit !== 0) {\n writer.uint32(16).int32(message.unit);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): FeePayment {\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 = createBaseFeePayment() 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.amount = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.unit = 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): FeePayment {\n return {\n amount: isSet(object.amount) ? FieldElement.fromJSON(object.amount) : undefined,\n unit: isSet(object.unit) ? priceUnitFromJSON(object.unit) : 0,\n };\n },\n\n toJSON(message: FeePayment): unknown {\n const obj: any = {};\n if (message.amount !== undefined) {\n obj.amount = FieldElement.toJSON(message.amount);\n }\n if (message.unit !== undefined && message.unit !== 0) {\n obj.unit = priceUnitToJSON(message.unit);\n }\n return obj;\n },\n\n create(base?: DeepPartial<FeePayment>): FeePayment {\n return FeePayment.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<FeePayment>): FeePayment {\n const message = createBaseFeePayment() as any;\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? FieldElement.fromPartial(object.amount)\n : undefined;\n message.unit = object.unit ?? 0;\n return message;\n },\n};\n\nfunction createBaseExecutionResources(): ExecutionResources {\n return { computation: undefined, dataAvailability: undefined };\n}\n\nexport const ExecutionResources = {\n encode(message: ExecutionResources, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.computation !== undefined) {\n ComputationResources.encode(message.computation, writer.uint32(10).fork()).ldelim();\n }\n if (message.dataAvailability !== undefined) {\n DataAvailabilityResources.encode(message.dataAvailability, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ExecutionResources {\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 = createBaseExecutionResources() 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.computation = ComputationResources.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.dataAvailability = DataAvailabilityResources.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): ExecutionResources {\n return {\n computation: isSet(object.computation) ? ComputationResources.fromJSON(object.computation) : undefined,\n dataAvailability: isSet(object.dataAvailability)\n ? DataAvailabilityResources.fromJSON(object.dataAvailability)\n : undefined,\n };\n },\n\n toJSON(message: ExecutionResources): unknown {\n const obj: any = {};\n if (message.computation !== undefined) {\n obj.computation = ComputationResources.toJSON(message.computation);\n }\n if (message.dataAvailability !== undefined) {\n obj.dataAvailability = DataAvailabilityResources.toJSON(message.dataAvailability);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ExecutionResources>): ExecutionResources {\n return ExecutionResources.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ExecutionResources>): ExecutionResources {\n const message = createBaseExecutionResources() as any;\n message.computation = (object.computation !== undefined && object.computation !== null)\n ? ComputationResources.fromPartial(object.computation)\n : undefined;\n message.dataAvailability = (object.dataAvailability !== undefined && object.dataAvailability !== null)\n ? DataAvailabilityResources.fromPartial(object.dataAvailability)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseComputationResources(): ComputationResources {\n return {\n steps: BigInt(\"0\"),\n memoryHoles: undefined,\n rangeCheckBuiltinApplications: undefined,\n pedersenBuiltinApplications: undefined,\n poseidonBuiltinApplications: undefined,\n ecOpBuiltinApplications: undefined,\n ecdsaBuiltinApplications: undefined,\n bitwiseBuiltinApplications: undefined,\n keccakBuiltinApplications: undefined,\n segmentArenaBuiltin: undefined,\n };\n}\n\nexport const ComputationResources = {\n encode(message: ComputationResources, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.steps !== undefined && message.steps !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.steps) !== message.steps) {\n throw new globalThis.Error(\"value provided for field message.steps of type uint64 too large\");\n }\n writer.uint32(8).uint64(message.steps.toString());\n }\n if (message.memoryHoles !== undefined) {\n if (BigInt.asUintN(64, message.memoryHoles) !== message.memoryHoles) {\n throw new globalThis.Error(\"value provided for field message.memoryHoles of type uint64 too large\");\n }\n writer.uint32(16).uint64(message.memoryHoles.toString());\n }\n if (message.rangeCheckBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.rangeCheckBuiltinApplications) !== message.rangeCheckBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.rangeCheckBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(24).uint64(message.rangeCheckBuiltinApplications.toString());\n }\n if (message.pedersenBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.pedersenBuiltinApplications) !== message.pedersenBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.pedersenBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(32).uint64(message.pedersenBuiltinApplications.toString());\n }\n if (message.poseidonBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.poseidonBuiltinApplications) !== message.poseidonBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.poseidonBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(40).uint64(message.poseidonBuiltinApplications.toString());\n }\n if (message.ecOpBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.ecOpBuiltinApplications) !== message.ecOpBuiltinApplications) {\n throw new globalThis.Error(\"value provided for field message.ecOpBuiltinApplications of type uint64 too large\");\n }\n writer.uint32(48).uint64(message.ecOpBuiltinApplications.toString());\n }\n if (message.ecdsaBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.ecdsaBuiltinApplications) !== message.ecdsaBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.ecdsaBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(56).uint64(message.ecdsaBuiltinApplications.toString());\n }\n if (message.bitwiseBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.bitwiseBuiltinApplications) !== message.bitwiseBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.bitwiseBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(64).uint64(message.bitwiseBuiltinApplications.toString());\n }\n if (message.keccakBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.keccakBuiltinApplications) !== message.keccakBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.keccakBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(72).uint64(message.keccakBuiltinApplications.toString());\n }\n if (message.segmentArenaBuiltin !== undefined) {\n if (BigInt.asUintN(64, message.segmentArenaBuiltin) !== message.segmentArenaBuiltin) {\n throw new globalThis.Error(\"value provided for field message.segmentArenaBuiltin of type uint64 too large\");\n }\n writer.uint32(80).uint64(message.segmentArenaBuiltin.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ComputationResources {\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 = createBaseComputationResources() 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.steps = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.memoryHoles = longToBigint(reader.uint64() as Long);\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.rangeCheckBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.pedersenBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.poseidonBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.ecOpBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n\n message.ecdsaBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n\n message.bitwiseBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.keccakBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n\n message.segmentArenaBuiltin = 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): ComputationResources {\n return {\n steps: isSet(object.steps) ? BigInt(object.steps) : BigInt(\"0\"),\n memoryHoles: isSet(object.memoryHoles) ? BigInt(object.memoryHoles) : undefined,\n rangeCheckBuiltinApplications: isSet(object.rangeCheckBuiltinApplications)\n ? BigInt(object.rangeCheckBuiltinApplications)\n : undefined,\n pedersenBuiltinApplications: isSet(object.pedersenBuiltinApplications)\n ? BigInt(object.pedersenBuiltinApplications)\n : undefined,\n poseidonBuiltinApplications: isSet(object.poseidonBuiltinApplications)\n ? BigInt(object.poseidonBuiltinApplications)\n : undefined,\n ecOpBuiltinApplications: isSet(object.ecOpBuiltinApplications)\n ? BigInt(object.ecOpBuiltinApplications)\n : undefined,\n ecdsaBuiltinApplications: isSet(object.ecdsaBuiltinApplications)\n ? BigInt(object.ecdsaBuiltinApplications)\n : undefined,\n bitwiseBuiltinApplications: isSet(object.bitwiseBuiltinApplications)\n ? BigInt(object.bitwiseBuiltinApplications)\n : undefined,\n keccakBuiltinApplications: isSet(object.keccakBuiltinApplications)\n ? BigInt(object.keccakBuiltinApplications)\n : undefined,\n segmentArenaBuiltin: isSet(object.segmentArenaBuiltin) ? BigInt(object.segmentArenaBuiltin) : undefined,\n };\n },\n\n toJSON(message: ComputationResources): unknown {\n const obj: any = {};\n if (message.steps !== undefined && message.steps !== BigInt(\"0\")) {\n obj.steps = message.steps.toString();\n }\n if (message.memoryHoles !== undefined) {\n obj.memoryHoles = message.memoryHoles.toString();\n }\n if (message.rangeCheckBuiltinApplications !== undefined) {\n obj.rangeCheckBuiltinApplications = message.rangeCheckBuiltinApplications.toString();\n }\n if (message.pedersenBuiltinApplications !== undefined) {\n obj.pedersenBuiltinApplications = message.pedersenBuiltinApplications.toString();\n }\n if (message.poseidonBuiltinApplications !== undefined) {\n obj.poseidonBuiltinApplications = message.poseidonBuiltinApplications.toString();\n }\n if (message.ecOpBuiltinApplications !== undefined) {\n obj.ecOpBuiltinApplications = message.ecOpBuiltinApplications.toString();\n }\n if (message.ecdsaBuiltinApplications !== undefined) {\n obj.ecdsaBuiltinApplications = message.ecdsaBuiltinApplications.toString();\n }\n if (message.bitwiseBuiltinApplications !== undefined) {\n obj.bitwiseBuiltinApplications = message.bitwiseBuiltinApplications.toString();\n }\n if (message.keccakBuiltinApplications !== undefined) {\n obj.keccakBuiltinApplications = message.keccakBuiltinApplications.toString();\n }\n if (message.segmentArenaBuiltin !== undefined) {\n obj.segmentArenaBuiltin = message.segmentArenaBuiltin.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<ComputationResources>): ComputationResources {\n return ComputationResources.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ComputationResources>): ComputationResources {\n const message = createBaseComputationResources() as any;\n message.steps = object.steps ?? BigInt(\"0\");\n message.memoryHoles = object.memoryHoles ?? undefined;\n message.rangeCheckBuiltinApplications = object.rangeCheckBuiltinApplications ?? undefined;\n message.pedersenBuiltinApplications = object.pedersenBuiltinApplications ?? undefined;\n message.poseidonBuiltinApplications = object.poseidonBuiltinApplications ?? undefined;\n message.ecOpBuiltinApplications = object.ecOpBuiltinApplications ?? undefined;\n message.ecdsaBuiltinApplications = object.ecdsaBuiltinApplications ?? undefined;\n message.bitwiseBuiltinApplications = object.bitwiseBuiltinApplications ?? undefined;\n message.keccakBuiltinApplications = object.keccakBuiltinApplications ?? undefined;\n message.segmentArenaBuiltin = object.segmentArenaBuiltin ?? undefined;\n return message;\n },\n};\n\nfunction createBaseDataAvailabilityResources(): DataAvailabilityResources {\n return { l1Gas: BigInt(\"0\"), l1DataGas: BigInt(\"0\") };\n}\n\nexport const DataAvailabilityResources = {\n encode(message: DataAvailabilityResources, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.l1Gas !== undefined && message.l1Gas !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.l1Gas) !== message.l1Gas) {\n throw new globalThis.Error(\"value provided for field message.l1Gas of type uint64 too large\");\n }\n writer.uint32(8).uint64(message.l1Gas.toString());\n }\n if (message.l1DataGas !== undefined && message.l1DataGas !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.l1DataGas) !== message.l1DataGas) {\n throw new globalThis.Error(\"value provided for field message.l1DataGas of type uint64 too large\");\n }\n writer.uint32(16).uint64(message.l1DataGas.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DataAvailabilityResources {\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 = createBaseDataAvailabilityResources() 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.l1Gas = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.l1DataGas = 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): DataAvailabilityResources {\n return {\n l1Gas: isSet(object.l1Gas) ? BigInt(object.l1Gas) : BigInt(\"0\"),\n l1DataGas: isSet(object.l1DataGas) ? BigInt(object.l1DataGas) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: DataAvailabilityResources): unknown {\n const obj: any = {};\n if (message.l1Gas !== undefined && message.l1Gas !== BigInt(\"0\")) {\n obj.l1Gas = message.l1Gas.toString();\n }\n if (message.l1DataGas !== undefined && message.l1DataGas !== BigInt(\"0\")) {\n obj.l1DataGas = message.l1DataGas.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<DataAvailabilityResources>): DataAvailabilityResources {\n return DataAvailabilityResources.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DataAvailabilityResources>): DataAvailabilityResources {\n const message = createBaseDataAvailabilityResources() as any;\n message.l1Gas = object.l1Gas ?? BigInt(\"0\");\n message.l1DataGas = object.l1DataGas ?? BigInt(\"0\");\n return message;\n },\n};\n\nfunction createBaseResourceBoundsMapping(): ResourceBoundsMapping {\n return { l1Gas: undefined, l2Gas: undefined };\n}\n\nexport const ResourceBoundsMapping = {\n encode(message: ResourceBoundsMapping, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.l1Gas !== undefined) {\n ResourceBounds.encode(message.l1Gas, writer.uint32(10).fork()).ldelim();\n }\n if (message.l2Gas !== undefined) {\n ResourceBounds.encode(message.l2Gas, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResourceBoundsMapping {\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 = createBaseResourceBoundsMapping() 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.l1Gas = ResourceBounds.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.l2Gas = ResourceBounds.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): ResourceBoundsMapping {\n return {\n l1Gas: isSet(object.l1Gas) ? ResourceBounds.fromJSON(object.l1Gas) : undefined,\n l2Gas: isSet(object.l2Gas) ? ResourceBounds.fromJSON(object.l2Gas) : undefined,\n };\n },\n\n toJSON(message: ResourceBoundsMapping): unknown {\n const obj: any = {};\n if (message.l1Gas !== undefined) {\n obj.l1Gas = ResourceBounds.toJSON(message.l1Gas);\n }\n if (message.l2Gas !== undefined) {\n obj.l2Gas = ResourceBounds.toJSON(message.l2Gas);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ResourceBoundsMapping>): ResourceBoundsMapping {\n return ResourceBoundsMapping.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ResourceBoundsMapping>): ResourceBoundsMapping {\n const message = createBaseResourceBoundsMapping() as any;\n message.l1Gas = (object.l1Gas !== undefined && object.l1Gas !== null)\n ? ResourceBounds.fromPartial(object.l1Gas)\n : undefined;\n message.l2Gas = (object.l2Gas !== undefined && object.l2Gas !== null)\n ? ResourceBounds.fromPartial(object.l2Gas)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseResourceBounds(): ResourceBounds {\n return { maxAmount: BigInt(\"0\"), maxPricePerUnit: undefined };\n}\n\nexport const ResourceBounds = {\n encode(message: ResourceBounds, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.maxAmount !== undefined && message.maxAmount !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.maxAmount) !== message.maxAmount) {\n throw new globalThis.Error(\"value provided for field message.maxAmount of type uint64 too large\");\n }\n writer.uint32(8).uint64(message.maxAmount.toString());\n }\n if (message.maxPricePerUnit !== undefined) {\n Uint128.encode(message.maxPricePerUnit, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResourceBounds {\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 = createBaseResourceBounds() 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.maxAmount = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.maxPricePerUnit = Uint128.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): ResourceBounds {\n return {\n maxAmount: isSet(object.maxAmount) ? BigInt(object.maxAmount) : BigInt(\"0\"),\n maxPricePerUnit: isSet(object.maxPricePerUnit) ? Uint128.fromJSON(object.maxPricePerUnit) : undefined,\n };\n },\n\n toJSON(message: ResourceBounds): unknown {\n const obj: any = {};\n if (message.maxAmount !== undefined && message.maxAmount !== BigInt(\"0\")) {\n obj.maxAmount = message.maxAmount.toString();\n }\n if (message.maxPricePerUnit !== undefined) {\n obj.maxPricePerUnit = Uint128.toJSON(message.maxPricePerUnit);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ResourceBounds>): ResourceBounds {\n return ResourceBounds.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ResourceBounds>): ResourceBounds {\n const message = createBaseResourceBounds() as any;\n message.maxAmount = object.maxAmount ?? BigInt(\"0\");\n message.maxPricePerUnit = (object.maxPricePerUnit !== undefined && object.maxPricePerUnit !== null)\n ? Uint128.fromPartial(object.maxPricePerUnit)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseUint128(): Uint128 {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\") };\n}\n\nexport const Uint128 = {\n encode(message: Uint128, 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 uint64 too large\");\n }\n writer.uint32(8).uint64(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 uint64 too large\");\n }\n writer.uint32(16).uint64(message.x1.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Uint128 {\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 = createBaseUint128() 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.x0 = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.x1 = 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): Uint128 {\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: Uint128): 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<Uint128>): Uint128 {\n return Uint128.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Uint128>): Uint128 {\n const message = createBaseUint128() as any;\n message.x0 = object.x0 ?? BigInt(\"0\");\n message.x1 = object.x1 ?? BigInt(\"0\");\n return message;\n },\n};\n\nfunction createBaseStorageDiff(): StorageDiff {\n return { filterIds: [], contractAddress: undefined, storageEntries: [] };\n}\n\nexport const StorageDiff = {\n encode(message: StorageDiff, 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.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(18).fork()).ldelim();\n }\n if (message.storageEntries !== undefined && message.storageEntries.length !== 0) {\n for (const v of message.storageEntries) {\n StorageEntry.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): StorageDiff {\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 = createBaseStorageDiff() 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 !== 18) {\n break;\n }\n\n message.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.storageEntries!.push(StorageEntry.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): StorageDiff {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n storageEntries: globalThis.Array.isArray(object?.storageEntries)\n ? object.storageEntries.map((e: any) => StorageEntry.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: StorageDiff): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.storageEntries?.length) {\n obj.storageEntries = message.storageEntries.map((e) => StorageEntry.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<StorageDiff>): StorageDiff {\n return StorageDiff.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<StorageDiff>): StorageDiff {\n const message = createBaseStorageDiff() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.storageEntries = object.storageEntries?.map((e) => StorageEntry.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseStorageEntry(): StorageEntry {\n return { key: undefined, value: undefined };\n}\n\nexport const StorageEntry = {\n encode(message: StorageEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.key !== undefined) {\n FieldElement.encode(message.key, writer.uint32(10).fork()).ldelim();\n }\n if (message.value !== undefined) {\n FieldElement.encode(message.value, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): StorageEntry {\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 = createBaseStorageEntry() 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.key = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.value = FieldElement.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): StorageEntry {\n return {\n key: isSet(object.key) ? FieldElement.fromJSON(object.key) : undefined,\n value: isSet(object.value) ? FieldElement.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: StorageEntry): unknown {\n const obj: any = {};\n if (message.key !== undefined) {\n obj.key = FieldElement.toJSON(message.key);\n }\n if (message.value !== undefined) {\n obj.value = FieldElement.toJSON(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<StorageEntry>): StorageEntry {\n return StorageEntry.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<StorageEntry>): StorageEntry {\n const message = createBaseStorageEntry() as any;\n message.key = (object.key !== undefined && object.key !== null) ? FieldElement.fromPartial(object.key) : undefined;\n message.value = (object.value !== undefined && object.value !== null)\n ? FieldElement.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseContractChange(): ContractChange {\n return { filterIds: [], change: undefined };\n}\n\nexport const ContractChange = {\n encode(message: ContractChange, 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 switch (message.change?.$case) {\n case \"declaredClass\":\n DeclaredClass.encode(message.change.declaredClass, writer.uint32(18).fork()).ldelim();\n break;\n case \"replacedClass\":\n ReplacedClass.encode(message.change.replacedClass, writer.uint32(26).fork()).ldelim();\n break;\n case \"deployedContract\":\n DeployedContract.encode(message.change.deployedContract, writer.uint32(34).fork()).ldelim();\n break;\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ContractChange {\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 = createBaseContractChange() 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 !== 18) {\n break;\n }\n\n message.change = { $case: \"declaredClass\", declaredClass: DeclaredClass.decode(reader, reader.uint32()) };\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.change = { $case: \"replacedClass\", replacedClass: ReplacedClass.decode(reader, reader.uint32()) };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.change = {\n $case: \"deployedContract\",\n deployedContract: DeployedContract.decode(reader, reader.uint32()),\n };\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): ContractChange {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n change: isSet(object.declaredClass)\n ? { $case: \"declaredClass\", declaredClass: DeclaredClass.fromJSON(object.declaredClass) }\n : isSet(object.replacedClass)\n ? { $case: \"replacedClass\", replacedClass: ReplacedClass.fromJSON(object.replacedClass) }\n : isSet(object.deployedContract)\n ? { $case: \"deployedContract\", deployedContract: DeployedContract.fromJSON(object.deployedContract) }\n : undefined,\n };\n },\n\n toJSON(message: ContractChange): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.change?.$case === \"declaredClass\") {\n obj.declaredClass = DeclaredClass.toJSON(message.change.declaredClass);\n }\n if (message.change?.$case === \"replacedClass\") {\n obj.replacedClass = ReplacedClass.toJSON(message.change.replacedClass);\n }\n if (message.change?.$case === \"deployedContract\") {\n obj.deployedContract = DeployedContract.toJSON(message.change.deployedContract);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ContractChange>): ContractChange {\n return ContractChange.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ContractChange>): ContractChange {\n const message = createBaseContractChange() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n if (\n object.change?.$case === \"declaredClass\" &&\n object.change?.declaredClass !== undefined &&\n object.change?.declaredClass !== null\n ) {\n message.change = {\n $case: \"declaredClass\",\n declaredClass: DeclaredClass.fromPartial(object.change.declaredClass),\n };\n }\n if (\n object.change?.$case === \"replacedClass\" &&\n object.change?.replacedClass !== undefined &&\n object.change?.replacedClass !== null\n ) {\n message.change = {\n $case: \"replacedClass\",\n replacedClass: ReplacedClass.fromPartial(object.change.replacedClass),\n };\n }\n if (\n object.change?.$case === \"deployedContract\" &&\n object.change?.deployedContract !== undefined &&\n object.change?.deployedContract !== null\n ) {\n message.change = {\n $case: \"deployedContract\",\n deployedContract: DeployedContract.fromPartial(object.change.deployedContract),\n };\n }\n return message;\n },\n};\n\nfunction createBaseDeclaredClass(): DeclaredClass {\n return { classHash: undefined, compiledClassHash: undefined };\n}\n\nexport const DeclaredClass = {\n encode(message: DeclaredClass, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(10).fork()).ldelim();\n }\n if (message.compiledClassHash !== undefined) {\n FieldElement.encode(message.compiledClassHash, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclaredClass {\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 = createBaseDeclaredClass() 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.classHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.compiledClassHash = FieldElement.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): DeclaredClass {\n return {\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n compiledClassHash: isSet(object.compiledClassHash) ? FieldElement.fromJSON(object.compiledClassHash) : undefined,\n };\n },\n\n toJSON(message: DeclaredClass): unknown {\n const obj: any = {};\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n if (message.compiledClassHash !== undefined) {\n obj.compiledClassHash = FieldElement.toJSON(message.compiledClassHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclaredClass>): DeclaredClass {\n return DeclaredClass.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclaredClass>): DeclaredClass {\n const message = createBaseDeclaredClass() as any;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n message.compiledClassHash = (object.compiledClassHash !== undefined && object.compiledClassHash !== null)\n ? FieldElement.fromPartial(object.compiledClassHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseReplacedClass(): ReplacedClass {\n return { contractAddress: undefined, classHash: undefined };\n}\n\nexport const ReplacedClass = {\n encode(message: ReplacedClass, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ReplacedClass {\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 = createBaseReplacedClass() 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.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.classHash = FieldElement.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): ReplacedClass {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: ReplacedClass): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ReplacedClass>): ReplacedClass {\n return ReplacedClass.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ReplacedClass>): ReplacedClass {\n const message = createBaseReplacedClass() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeployedContract(): DeployedContract {\n return { contractAddress: undefined, classHash: undefined };\n}\n\nexport const DeployedContract = {\n encode(message: DeployedContract, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployedContract {\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 = createBaseDeployedContract() 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.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.classHash = FieldElement.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): DeployedContract {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeployedContract): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployedContract>): DeployedContract {\n return DeployedContract.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployedContract>): DeployedContract {\n const message = createBaseDeployedContract() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseNonceUpdate(): NonceUpdate {\n return { filterIds: [], contractAddress: undefined, nonce: undefined };\n}\n\nexport const NonceUpdate = {\n encode(message: NonceUpdate, 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.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(18).fork()).ldelim();\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): NonceUpdate {\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 = createBaseNonceUpdate() 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 !== 18) {\n break;\n }\n\n message.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.nonce = FieldElement.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): NonceUpdate {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n };\n },\n\n toJSON(message: NonceUpdate): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n return obj;\n },\n\n create(base?: DeepPartial<NonceUpdate>): NonceUpdate {\n return NonceUpdate.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<NonceUpdate>): NonceUpdate {\n const message = createBaseNonceUpdate() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseTransactionTrace(): TransactionTrace {\n return { filterIds: [], transactionIndex: 0, transactionHash: undefined, traceRoot: undefined };\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 FieldElement.encode(message.transactionHash, writer.uint32(26).fork()).ldelim();\n }\n switch (message.traceRoot?.$case) {\n case \"invoke\":\n InvokeTransactionTrace.encode(message.traceRoot.invoke, writer.uint32(34).fork()).ldelim();\n break;\n case \"declare\":\n DeclareTransactionTrace.encode(message.traceRoot.declare, writer.uint32(42).fork()).ldelim();\n break;\n case \"deployAccount\":\n DeployAccountTransactionTrace.encode(message.traceRoot.deployAccount, writer.uint32(50).fork()).ldelim();\n break;\n case \"l1Handler\":\n L1HandlerTransactionTrace.encode(message.traceRoot.l1Handler, writer.uint32(58).fork()).ldelim();\n break;\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 = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.traceRoot = { $case: \"invoke\", invoke: InvokeTransactionTrace.decode(reader, reader.uint32()) };\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.traceRoot = { $case: \"declare\", declare: DeclareTransactionTrace.decode(reader, reader.uint32()) };\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.traceRoot = {\n $case: \"deployAccount\",\n deployAccount: DeployAccountTransactionTrace.decode(reader, reader.uint32()),\n };\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.traceRoot = {\n $case: \"l1Handler\",\n l1Handler: L1HandlerTransactionTrace.decode(reader, reader.uint32()),\n };\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) ? FieldElement.fromJSON(object.transactionHash) : undefined,\n traceRoot: isSet(object.invoke)\n ? { $case: \"invoke\", invoke: InvokeTransactionTrace.fromJSON(object.invoke) }\n : isSet(object.declare)\n ? { $case: \"declare\", declare: DeclareTransactionTrace.fromJSON(object.declare) }\n : isSet(object.deployAccount)\n ? { $case: \"deployAccount\", deployAccount: DeployAccountTransactionTrace.fromJSON(object.deployAccount) }\n : isSet(object.l1Handler)\n ? { $case: \"l1Handler\", l1Handler: L1HandlerTransactionTrace.fromJSON(object.l1Handler) }\n : undefined,\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 = FieldElement.toJSON(message.transactionHash);\n }\n if (message.traceRoot?.$case === \"invoke\") {\n obj.invoke = InvokeTransactionTrace.toJSON(message.traceRoot.invoke);\n }\n if (message.traceRoot?.$case === \"declare\") {\n obj.declare = DeclareTransactionTrace.toJSON(message.traceRoot.declare);\n }\n if (message.traceRoot?.$case === \"deployAccount\") {\n obj.deployAccount = DeployAccountTransactionTrace.toJSON(message.traceRoot.deployAccount);\n }\n if (message.traceRoot?.$case === \"l1Handler\") {\n obj.l1Handler = L1HandlerTransactionTrace.toJSON(message.traceRoot.l1Handler);\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 ? FieldElement.fromPartial(object.transactionHash)\n : undefined;\n if (\n object.traceRoot?.$case === \"invoke\" &&\n object.traceRoot?.invoke !== undefined &&\n object.traceRoot?.invoke !== null\n ) {\n message.traceRoot = { $case: \"invoke\", invoke: InvokeTransactionTrace.fromPartial(object.traceRoot.invoke) };\n }\n if (\n object.traceRoot?.$case === \"declare\" &&\n object.traceRoot?.declare !== undefined &&\n object.traceRoot?.declare !== null\n ) {\n message.traceRoot = { $case: \"declare\", declare: DeclareTransactionTrace.fromPartial(object.traceRoot.declare) };\n }\n if (\n object.traceRoot?.$case === \"deployAccount\" &&\n object.traceRoot?.deployAccount !== undefined &&\n object.traceRoot?.deployAccount !== null\n ) {\n message.traceRoot = {\n $case: \"deployAccount\",\n deployAccount: DeployAccountTransactionTrace.fromPartial(object.traceRoot.deployAccount),\n };\n }\n if (\n object.traceRoot?.$case === \"l1Handler\" &&\n object.traceRoot?.l1Handler !== undefined &&\n object.traceRoot?.l1Handler !== null\n ) {\n message.traceRoot = {\n $case: \"l1Handler\",\n l1Handler: L1HandlerTransactionTrace.fromPartial(object.traceRoot.l1Handler),\n };\n }\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionTrace(): InvokeTransactionTrace {\n return { validateInvocation: undefined, executeInvocation: undefined, feeTransferInvocation: undefined };\n}\n\nexport const InvokeTransactionTrace = {\n encode(message: InvokeTransactionTrace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.validateInvocation !== undefined) {\n FunctionInvocation.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();\n }\n switch (message.executeInvocation?.$case) {\n case \"success\":\n FunctionInvocation.encode(message.executeInvocation.success, writer.uint32(18).fork()).ldelim();\n break;\n case \"reverted\":\n ExecutionReverted.encode(message.executeInvocation.reverted, writer.uint32(26).fork()).ldelim();\n break;\n }\n if (message.feeTransferInvocation !== undefined) {\n FunctionInvocation.encode(message.feeTransferInvocation, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionTrace {\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 = createBaseInvokeTransactionTrace() 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.validateInvocation = FunctionInvocation.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.executeInvocation = { $case: \"success\", success: FunctionInvocation.decode(reader, reader.uint32()) };\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.executeInvocation = {\n $case: \"reverted\",\n reverted: ExecutionReverted.decode(reader, reader.uint32()),\n };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.feeTransferInvocation = FunctionInvocation.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): InvokeTransactionTrace {\n return {\n validateInvocation: isSet(object.validateInvocation)\n ? FunctionInvocation.fromJSON(object.validateInvocation)\n : undefined,\n executeInvocation: isSet(object.success)\n ? { $case: \"success\", success: FunctionInvocation.fromJSON(object.success) }\n : isSet(object.reverted)\n ? { $case: \"reverted\", reverted: ExecutionReverted.fromJSON(object.reverted) }\n : undefined,\n feeTransferInvocation: isSet(object.feeTransferInvocation)\n ? FunctionInvocation.fromJSON(object.feeTransferInvocation)\n : undefined,\n };\n },\n\n toJSON(message: InvokeTransactionTrace): unknown {\n const obj: any = {};\n if (message.validateInvocation !== undefined) {\n obj.validateInvocation = FunctionInvocation.toJSON(message.validateInvocation);\n }\n if (message.executeInvocation?.$case === \"success\") {\n obj.success = FunctionInvocation.toJSON(message.executeInvocation.success);\n }\n if (message.executeInvocation?.$case === \"reverted\") {\n obj.reverted = ExecutionReverted.toJSON(message.executeInvocation.reverted);\n }\n if (message.feeTransferInvocation !== undefined) {\n obj.feeTransferInvocation = FunctionInvocation.toJSON(message.feeTransferInvocation);\n }\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionTrace>): InvokeTransactionTrace {\n return InvokeTransactionTrace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<InvokeTransactionTrace>): InvokeTransactionTrace {\n const message = createBaseInvokeTransactionTrace() as any;\n message.validateInvocation = (object.validateInvocation !== undefined && object.validateInvocation !== null)\n ? FunctionInvocation.fromPartial(object.validateInvocation)\n : undefined;\n if (\n object.executeInvocation?.$case === \"success\" &&\n object.executeInvocation?.success !== undefined &&\n object.executeInvocation?.success !== null\n ) {\n message.executeInvocation = {\n $case: \"success\",\n success: FunctionInvocation.fromPartial(object.executeInvocation.success),\n };\n }\n if (\n object.executeInvocation?.$case === \"reverted\" &&\n object.executeInvocation?.reverted !== undefined &&\n object.executeInvocation?.reverted !== null\n ) {\n message.executeInvocation = {\n $case: \"reverted\",\n reverted: ExecutionReverted.fromPartial(object.executeInvocation.reverted),\n };\n }\n message.feeTransferInvocation =\n (object.feeTransferInvocation !== undefined && object.feeTransferInvocation !== null)\n ? FunctionInvocation.fromPartial(object.feeTransferInvocation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionTrace(): DeclareTransactionTrace {\n return { validateInvocation: undefined, feeTransferInvocation: undefined };\n}\n\nexport const DeclareTransactionTrace = {\n encode(message: DeclareTransactionTrace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.validateInvocation !== undefined) {\n FunctionInvocation.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();\n }\n if (message.feeTransferInvocation !== undefined) {\n FunctionInvocation.encode(message.feeTransferInvocation, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionTrace {\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 = createBaseDeclareTransactionTrace() 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.validateInvocation = FunctionInvocation.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.feeTransferInvocation = FunctionInvocation.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): DeclareTransactionTrace {\n return {\n validateInvocation: isSet(object.validateInvocation)\n ? FunctionInvocation.fromJSON(object.validateInvocation)\n : undefined,\n feeTransferInvocation: isSet(object.feeTransferInvocation)\n ? FunctionInvocation.fromJSON(object.feeTransferInvocation)\n : undefined,\n };\n },\n\n toJSON(message: DeclareTransactionTrace): unknown {\n const obj: any = {};\n if (message.validateInvocation !== undefined) {\n obj.validateInvocation = FunctionInvocation.toJSON(message.validateInvocation);\n }\n if (message.feeTransferInvocation !== undefined) {\n obj.feeTransferInvocation = FunctionInvocation.toJSON(message.feeTransferInvocation);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionTrace>): DeclareTransactionTrace {\n return DeclareTransactionTrace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclareTransactionTrace>): DeclareTransactionTrace {\n const message = createBaseDeclareTransactionTrace() as any;\n message.validateInvocation = (object.validateInvocation !== undefined && object.validateInvocation !== null)\n ? FunctionInvocation.fromPartial(object.validateInvocation)\n : undefined;\n message.feeTransferInvocation =\n (object.feeTransferInvocation !== undefined && object.feeTransferInvocation !== null)\n ? FunctionInvocation.fromPartial(object.feeTransferInvocation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeployAccountTransactionTrace(): DeployAccountTransactionTrace {\n return { validateInvocation: undefined, constructorInvocation: undefined, feeTransferInvocation: undefined };\n}\n\nexport const DeployAccountTransactionTrace = {\n encode(message: DeployAccountTransactionTrace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.validateInvocation !== undefined) {\n FunctionInvocation.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();\n }\n if (message.constructorInvocation !== undefined) {\n FunctionInvocation.encode(message.constructorInvocation, writer.uint32(18).fork()).ldelim();\n }\n if (message.feeTransferInvocation !== undefined) {\n FunctionInvocation.encode(message.feeTransferInvocation, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountTransactionTrace {\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 = createBaseDeployAccountTransactionTrace() 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.validateInvocation = FunctionInvocation.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.constructorInvocation = FunctionInvocation.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.feeTransferInvocation = FunctionInvocation.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): DeployAccountTransactionTrace {\n return {\n validateInvocation: isSet(object.validateInvocation)\n ? FunctionInvocation.fromJSON(object.validateInvocation)\n : undefined,\n constructorInvocation: isSet(object.constructorInvocation)\n ? FunctionInvocation.fromJSON(object.constructorInvocation)\n : undefined,\n feeTransferInvocation: isSet(object.feeTransferInvocation)\n ? FunctionInvocation.fromJSON(object.feeTransferInvocation)\n : undefined,\n };\n },\n\n toJSON(message: DeployAccountTransactionTrace): unknown {\n const obj: any = {};\n if (message.validateInvocation !== undefined) {\n obj.validateInvocation = FunctionInvocation.toJSON(message.validateInvocation);\n }\n if (message.constructorInvocation !== undefined) {\n obj.constructorInvocation = FunctionInvocation.toJSON(message.constructorInvocation);\n }\n if (message.feeTransferInvocation !== undefined) {\n obj.feeTransferInvocation = FunctionInvocation.toJSON(message.feeTransferInvocation);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountTransactionTrace>): DeployAccountTransactionTrace {\n return DeployAccountTransactionTrace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployAccountTransactionTrace>): DeployAccountTransactionTrace {\n const message = createBaseDeployAccountTransactionTrace() as any;\n message.validateInvocation = (object.validateInvocation !== undefined && object.validateInvocation !== null)\n ? FunctionInvocation.fromPartial(object.validateInvocation)\n : undefined;\n message.constructorInvocation =\n (object.constructorInvocation !== undefined && object.constructorInvocation !== null)\n ? FunctionInvocation.fromPartial(object.constructorInvocation)\n : undefined;\n message.feeTransferInvocation =\n (object.feeTransferInvocation !== undefined && object.feeTransferInvocation !== null)\n ? FunctionInvocation.fromPartial(object.feeTransferInvocation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseL1HandlerTransactionTrace(): L1HandlerTransactionTrace {\n return { functionInvocation: undefined };\n}\n\nexport const L1HandlerTransactionTrace = {\n encode(message: L1HandlerTransactionTrace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.functionInvocation !== undefined) {\n FunctionInvocation.encode(message.functionInvocation, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): L1HandlerTransactionTrace {\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 = createBaseL1HandlerTransactionTrace() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.functionInvocation = FunctionInvocation.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): L1HandlerTransactionTrace {\n return {\n functionInvocation: isSet(object.functionInvocation)\n ? FunctionInvocation.fromJSON(object.functionInvocation)\n : undefined,\n };\n },\n\n toJSON(message: L1HandlerTransactionTrace): unknown {\n const obj: any = {};\n if (message.functionInvocation !== undefined) {\n obj.functionInvocation = FunctionInvocation.toJSON(message.functionInvocation);\n }\n return obj;\n },\n\n create(base?: DeepPartial<L1HandlerTransactionTrace>): L1HandlerTransactionTrace {\n return L1HandlerTransactionTrace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<L1HandlerTransactionTrace>): L1HandlerTransactionTrace {\n const message = createBaseL1HandlerTransactionTrace() as any;\n message.functionInvocation = (object.functionInvocation !== undefined && object.functionInvocation !== null)\n ? FunctionInvocation.fromPartial(object.functionInvocation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseFunctionInvocation(): FunctionInvocation {\n return {\n contractAddress: undefined,\n entryPointSelector: undefined,\n calldata: [],\n callerAddress: undefined,\n classHash: undefined,\n callType: 0,\n result: [],\n calls: [],\n events: [],\n messages: [],\n };\n}\n\nexport const FunctionInvocation = {\n encode(message: FunctionInvocation, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.entryPointSelector !== undefined) {\n FieldElement.encode(message.entryPointSelector, writer.uint32(18).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.callerAddress !== undefined) {\n FieldElement.encode(message.callerAddress, writer.uint32(34).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(42).fork()).ldelim();\n }\n if (message.callType !== undefined && message.callType !== 0) {\n writer.uint32(48).int32(message.callType);\n }\n if (message.result !== undefined && message.result.length !== 0) {\n for (const v of message.result) {\n FieldElement.encode(v!, writer.uint32(58).fork()).ldelim();\n }\n }\n if (message.calls !== undefined && message.calls.length !== 0) {\n for (const v of message.calls) {\n FunctionInvocation.encode(v!, writer.uint32(66).fork()).ldelim();\n }\n }\n if (message.events !== undefined && message.events.length !== 0) {\n writer.uint32(74).fork();\n for (const v of message.events) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.messages !== undefined && message.messages.length !== 0) {\n writer.uint32(82).fork();\n for (const v of message.messages) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): FunctionInvocation {\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 = createBaseFunctionInvocation() 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.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.entryPointSelector = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.calldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.callerAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.classHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.callType = reader.int32() as any;\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.result!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.calls!.push(FunctionInvocation.decode(reader, reader.uint32()));\n continue;\n case 9:\n if (tag === 72) {\n message.events!.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.events!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 10:\n if (tag === 80) {\n message.messages!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 82) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.messages!.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): FunctionInvocation {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n entryPointSelector: isSet(object.entryPointSelector)\n ? FieldElement.fromJSON(object.entryPointSelector)\n : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n callerAddress: isSet(object.callerAddress) ? FieldElement.fromJSON(object.callerAddress) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n callType: isSet(object.callType) ? callTypeFromJSON(object.callType) : 0,\n result: globalThis.Array.isArray(object?.result) ? object.result.map((e: any) => FieldElement.fromJSON(e)) : [],\n calls: globalThis.Array.isArray(object?.calls)\n ? object.calls.map((e: any) => FunctionInvocation.fromJSON(e))\n : [],\n events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => globalThis.Number(e)) : [],\n messages: globalThis.Array.isArray(object?.messages) ? object.messages.map((e: any) => globalThis.Number(e)) : [],\n };\n },\n\n toJSON(message: FunctionInvocation): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.entryPointSelector !== undefined) {\n obj.entryPointSelector = FieldElement.toJSON(message.entryPointSelector);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.callerAddress !== undefined) {\n obj.callerAddress = FieldElement.toJSON(message.callerAddress);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n if (message.callType !== undefined && message.callType !== 0) {\n obj.callType = callTypeToJSON(message.callType);\n }\n if (message.result?.length) {\n obj.result = message.result.map((e) => FieldElement.toJSON(e));\n }\n if (message.calls?.length) {\n obj.calls = message.calls.map((e) => FunctionInvocation.toJSON(e));\n }\n if (message.events?.length) {\n obj.events = message.events.map((e) => Math.round(e));\n }\n if (message.messages?.length) {\n obj.messages = message.messages.map((e) => Math.round(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<FunctionInvocation>): FunctionInvocation {\n return FunctionInvocation.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<FunctionInvocation>): FunctionInvocation {\n const message = createBaseFunctionInvocation() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.entryPointSelector = (object.entryPointSelector !== undefined && object.entryPointSelector !== null)\n ? FieldElement.fromPartial(object.entryPointSelector)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.callerAddress = (object.callerAddress !== undefined && object.callerAddress !== null)\n ? FieldElement.fromPartial(object.callerAddress)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n message.callType = object.callType ?? 0;\n message.result = object.result?.map((e) => FieldElement.fromPartial(e)) || [];\n message.calls = object.calls?.map((e) => FunctionInvocation.fromPartial(e)) || [];\n message.events = object.events?.map((e) => e) || [];\n message.messages = object.messages?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseFunctionCall(): FunctionCall {\n return { contractAddress: undefined, entryPointSelector: undefined, calldata: [] };\n}\n\nexport const FunctionCall = {\n encode(message: FunctionCall, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.entryPointSelector !== undefined) {\n FieldElement.encode(message.entryPointSelector, writer.uint32(18).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): FunctionCall {\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 = createBaseFunctionCall() 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.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.entryPointSelector = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.calldata!.push(FieldElement.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): FunctionCall {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n entryPointSelector: isSet(object.entryPointSelector)\n ? FieldElement.fromJSON(object.entryPointSelector)\n : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: FunctionCall): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.entryPointSelector !== undefined) {\n obj.entryPointSelector = FieldElement.toJSON(message.entryPointSelector);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<FunctionCall>): FunctionCall {\n return FunctionCall.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<FunctionCall>): FunctionCall {\n const message = createBaseFunctionCall() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.entryPointSelector = (object.entryPointSelector !== undefined && object.entryPointSelector !== null)\n ? FieldElement.fromPartial(object.entryPointSelector)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\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 { FieldElement } from \"./common.js\";\n\nexport const protobufPackage = \"starknet.v2\";\n\n/** Starknet 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 transactions. */\n readonly transactions?:\n | readonly TransactionFilter[]\n | undefined;\n /** Filter events. */\n readonly events?:\n | readonly EventFilter[]\n | undefined;\n /** Filter messages to L1. */\n readonly messages?:\n | readonly MessageToL1Filter[]\n | undefined;\n /** Filter storage diffs. */\n readonly storageDiffs?:\n | readonly StorageDiffFilter[]\n | undefined;\n /** Filter contract changes. */\n readonly contractChanges?:\n | readonly ContractChangeFilter[]\n | undefined;\n /** Filter nonce updates. */\n readonly nonceUpdates?: readonly NonceUpdateFilter[] | undefined;\n}\n\n/** Filter events. */\nexport interface EventFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter by contract emitting the event. */\n readonly address?:\n | FieldElement\n | undefined;\n /** Filter keys that prefix-match the given data. */\n readonly keys?:\n | readonly Key[]\n | undefined;\n /**\n * Only returns events with keys 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 /**\n * Include the transaction that emitted the event.\n *\n * Defaults to false.\n */\n readonly includeTransaction?:\n | boolean\n | undefined;\n /**\n * Include the receipt of the transaction that emitted the event.\n *\n * Defaults to false.\n */\n readonly includeReceipt?:\n | boolean\n | undefined;\n /**\n * Include the messages to L1 sent by the transaction that emitted the event.\n *\n * Defaults to false.\n */\n readonly includeMessages?:\n | boolean\n | undefined;\n /**\n * Include sibling events, that is events emitted by the same transaction.\n *\n * Defaults to false.\n */\n readonly includeSiblings?:\n | boolean\n | undefined;\n /**\n * Include the trace of the transaction that emitted the event.\n *\n * Defaults to false.\n */\n readonly includeTransactionTrace?: boolean | undefined;\n}\n\nexport interface Key {\n /** The event key. If empty, matches any event key. */\n readonly value?: FieldElement | undefined;\n}\n\n/** Filter messages to L1. */\nexport interface MessageToL1Filter {\n readonly id?:\n | number\n | undefined;\n /** Filter by sender address. */\n readonly fromAddress?:\n | FieldElement\n | undefined;\n /** Filter by destination address. */\n readonly toAddress?:\n | FieldElement\n | undefined;\n /**\n * Filter based on the transaction status.\n *\n * Defaults to `Succeeded`.\n */\n readonly transactionStatus?:\n | TransactionStatusFilter\n | undefined;\n /**\n * Include the transaction that sent the message.\n *\n * Defaults to false.\n */\n readonly includeTransaction?:\n | boolean\n | undefined;\n /**\n * Include the receipt of the transaction that sent the message.\n *\n * Defaults to false.\n */\n readonly includeReceipt?:\n | boolean\n | undefined;\n /**\n * Include the events of the transaction that sent the message.\n *\n * Defaults to false.\n */\n readonly includeEvents?:\n | boolean\n | undefined;\n /**\n * Include the messages of the transaction that sent the message.\n *\n * Defaults to false.\n */\n readonly includeSiblings?:\n | boolean\n | undefined;\n /**\n * Include the trace of the transaction that sent the message.\n *\n * Defaults to false.\n */\n readonly includeTransactionTrace?: boolean | undefined;\n}\n\n/** Filter transactions. */\nexport interface TransactionFilter {\n readonly id?:\n | number\n | undefined;\n /**\n * Filter based on the transaction status.\n *\n * Defaults to `Succeeded`.\n */\n readonly transactionStatus?:\n | TransactionStatusFilter\n | undefined;\n /**\n * Flag to request the transaction's receipt.\n *\n * Defaults to `false`.\n */\n readonly includeReceipt?:\n | boolean\n | undefined;\n /**\n * Flag to request the transaction's events.\n *\n * Defaults to `false`.\n */\n readonly includeEvents?:\n | boolean\n | undefined;\n /**\n * Flag to request the transaction's messages to L1.\n *\n * Defaults to `false`.\n */\n readonly includeMessages?: boolean | undefined;\n readonly inner?:\n | { readonly $case: \"invokeV0\"; readonly invokeV0: InvokeTransactionV0Filter }\n | { readonly $case: \"invokeV1\"; readonly invokeV1: InvokeTransactionV1Filter }\n | { readonly $case: \"invokeV3\"; readonly invokeV3: InvokeTransactionV3Filter }\n | { readonly $case: \"deploy\"; readonly deploy: DeployTransactionFilter }\n | { readonly $case: \"declareV0\"; readonly declareV0: DeclareV0TransactionFilter }\n | { readonly $case: \"declareV1\"; readonly declareV1: DeclareV1TransactionFilter }\n | { readonly $case: \"declareV2\"; readonly declareV2: DeclareV2TransactionFilter }\n | { readonly $case: \"declareV3\"; readonly declareV3: DeclareV3TransactionFilter }\n | { readonly $case: \"l1Handler\"; readonly l1Handler: L1HandlerTransactionFilter }\n | { readonly $case: \"deployAccountV1\"; readonly deployAccountV1: DeployAccountV1TransactionFilter }\n | { readonly $case: \"deployAccountV3\"; readonly deployAccountV3: DeployAccountV3TransactionFilter }\n | undefined;\n /**\n * Flag to request the transaction's trace.\n *\n * Defaults to `false``.\n */\n readonly includeTrace?: boolean | undefined;\n}\n\nexport interface InvokeTransactionV0Filter {\n}\n\nexport interface InvokeTransactionV1Filter {\n}\n\nexport interface InvokeTransactionV3Filter {\n}\n\nexport interface DeployTransactionFilter {\n}\n\nexport interface DeclareV0TransactionFilter {\n}\n\nexport interface DeclareV1TransactionFilter {\n}\n\nexport interface DeclareV2TransactionFilter {\n}\n\nexport interface DeclareV3TransactionFilter {\n}\n\nexport interface L1HandlerTransactionFilter {\n}\n\nexport interface DeployAccountV1TransactionFilter {\n}\n\nexport interface DeployAccountV3TransactionFilter {\n}\n\nexport interface StorageDiffFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter by contract address. */\n readonly contractAddress?: FieldElement | undefined;\n}\n\nexport interface ContractChangeFilter {\n readonly id?: number | undefined;\n readonly change?:\n | { readonly $case: \"declaredClass\"; readonly declaredClass: DeclaredClassFilter }\n | { readonly $case: \"replacedClass\"; readonly replacedClass: ReplacedClassFilter }\n | { readonly $case: \"deployedContract\"; readonly deployedContract: DeployedContractFilter }\n | undefined;\n}\n\nexport interface DeclaredClassFilter {\n}\n\nexport interface ReplacedClassFilter {\n}\n\nexport interface DeployedContractFilter {\n}\n\nexport interface NonceUpdateFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter by contract address. */\n readonly contractAddress?: FieldElement | undefined;\n}\n\nfunction createBaseFilter(): Filter {\n return {\n header: 0,\n transactions: [],\n events: [],\n messages: [],\n storageDiffs: [],\n contractChanges: [],\n nonceUpdates: [],\n };\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.transactions !== undefined && message.transactions.length !== 0) {\n for (const v of message.transactions) {\n TransactionFilter.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.events !== undefined && message.events.length !== 0) {\n for (const v of message.events) {\n EventFilter.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.messages !== undefined && message.messages.length !== 0) {\n for (const v of message.messages) {\n MessageToL1Filter.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.storageDiffs !== undefined && message.storageDiffs.length !== 0) {\n for (const v of message.storageDiffs) {\n StorageDiffFilter.encode(v!, writer.uint32(42).fork()).ldelim();\n }\n }\n if (message.contractChanges !== undefined && message.contractChanges.length !== 0) {\n for (const v of message.contractChanges) {\n ContractChangeFilter.encode(v!, writer.uint32(50).fork()).ldelim();\n }\n }\n if (message.nonceUpdates !== undefined && message.nonceUpdates.length !== 0) {\n for (const v of message.nonceUpdates) {\n NonceUpdateFilter.encode(v!, writer.uint32(58).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.transactions!.push(TransactionFilter.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.events!.push(EventFilter.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.messages!.push(MessageToL1Filter.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.storageDiffs!.push(StorageDiffFilter.decode(reader, reader.uint32()));\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.contractChanges!.push(ContractChangeFilter.decode(reader, reader.uint32()));\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.nonceUpdates!.push(NonceUpdateFilter.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 transactions: globalThis.Array.isArray(object?.transactions)\n ? object.transactions.map((e: any) => TransactionFilter.fromJSON(e))\n : [],\n events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => EventFilter.fromJSON(e)) : [],\n messages: globalThis.Array.isArray(object?.messages)\n ? object.messages.map((e: any) => MessageToL1Filter.fromJSON(e))\n : [],\n storageDiffs: globalThis.Array.isArray(object?.storageDiffs)\n ? object.storageDiffs.map((e: any) => StorageDiffFilter.fromJSON(e))\n : [],\n contractChanges: globalThis.Array.isArray(object?.contractChanges)\n ? object.contractChanges.map((e: any) => ContractChangeFilter.fromJSON(e))\n : [],\n nonceUpdates: globalThis.Array.isArray(object?.nonceUpdates)\n ? object.nonceUpdates.map((e: any) => NonceUpdateFilter.fromJSON(e))\n : [],\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.transactions?.length) {\n obj.transactions = message.transactions.map((e) => TransactionFilter.toJSON(e));\n }\n if (message.events?.length) {\n obj.events = message.events.map((e) => EventFilter.toJSON(e));\n }\n if (message.messages?.length) {\n obj.messages = message.messages.map((e) => MessageToL1Filter.toJSON(e));\n }\n if (message.storageDiffs?.length) {\n obj.storageDiffs = message.storageDiffs.map((e) => StorageDiffFilter.toJSON(e));\n }\n if (message.contractChanges?.length) {\n obj.contractChanges = message.contractChanges.map((e) => ContractChangeFilter.toJSON(e));\n }\n if (message.nonceUpdates?.length) {\n obj.nonceUpdates = message.nonceUpdates.map((e) => NonceUpdateFilter.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.transactions = object.transactions?.map((e) => TransactionFilter.fromPartial(e)) || [];\n message.events = object.events?.map((e) => EventFilter.fromPartial(e)) || [];\n message.messages = object.messages?.map((e) => MessageToL1Filter.fromPartial(e)) || [];\n message.storageDiffs = object.storageDiffs?.map((e) => StorageDiffFilter.fromPartial(e)) || [];\n message.contractChanges = object.contractChanges?.map((e) => ContractChangeFilter.fromPartial(e)) || [];\n message.nonceUpdates = object.nonceUpdates?.map((e) => NonceUpdateFilter.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseEventFilter(): EventFilter {\n return {\n id: 0,\n address: undefined,\n keys: [],\n strict: undefined,\n transactionStatus: undefined,\n includeTransaction: undefined,\n includeReceipt: undefined,\n includeMessages: undefined,\n includeSiblings: undefined,\n includeTransactionTrace: undefined,\n };\n}\n\nexport const EventFilter = {\n encode(message: EventFilter, 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 FieldElement.encode(message.address, writer.uint32(18).fork()).ldelim();\n }\n if (message.keys !== undefined && message.keys.length !== 0) {\n for (const v of message.keys) {\n Key.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.includeMessages !== undefined) {\n writer.uint32(64).bool(message.includeMessages);\n }\n if (message.includeSiblings !== undefined) {\n writer.uint32(72).bool(message.includeSiblings);\n }\n if (message.includeTransactionTrace !== undefined) {\n writer.uint32(80).bool(message.includeTransactionTrace);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): EventFilter {\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 = createBaseEventFilter() 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 = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.keys!.push(Key.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.includeMessages = reader.bool();\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.includeSiblings = reader.bool();\n continue;\n case 10:\n if (tag !== 80) {\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): EventFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n address: isSet(object.address) ? FieldElement.fromJSON(object.address) : undefined,\n keys: globalThis.Array.isArray(object?.keys) ? object.keys.map((e: any) => Key.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 includeMessages: isSet(object.includeMessages) ? globalThis.Boolean(object.includeMessages) : 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: EventFilter): 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 = FieldElement.toJSON(message.address);\n }\n if (message.keys?.length) {\n obj.keys = message.keys.map((e) => Key.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.includeMessages !== undefined) {\n obj.includeMessages = message.includeMessages;\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<EventFilter>): EventFilter {\n return EventFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<EventFilter>): EventFilter {\n const message = createBaseEventFilter() as any;\n message.id = object.id ?? 0;\n message.address = (object.address !== undefined && object.address !== null)\n ? FieldElement.fromPartial(object.address)\n : undefined;\n message.keys = object.keys?.map((e) => Key.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.includeMessages = object.includeMessages ?? undefined;\n message.includeSiblings = object.includeSiblings ?? undefined;\n message.includeTransactionTrace = object.includeTransactionTrace ?? undefined;\n return message;\n },\n};\n\nfunction createBaseKey(): Key {\n return { value: undefined };\n}\n\nexport const Key = {\n encode(message: Key, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.value !== undefined) {\n FieldElement.encode(message.value, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Key {\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 = createBaseKey() 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 = FieldElement.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): Key {\n return { value: isSet(object.value) ? FieldElement.fromJSON(object.value) : undefined };\n },\n\n toJSON(message: Key): unknown {\n const obj: any = {};\n if (message.value !== undefined) {\n obj.value = FieldElement.toJSON(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Key>): Key {\n return Key.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Key>): Key {\n const message = createBaseKey() as any;\n message.value = (object.value !== undefined && object.value !== null)\n ? FieldElement.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMessageToL1Filter(): MessageToL1Filter {\n return {\n id: 0,\n fromAddress: undefined,\n toAddress: undefined,\n transactionStatus: undefined,\n includeTransaction: undefined,\n includeReceipt: undefined,\n includeEvents: undefined,\n includeSiblings: undefined,\n includeTransactionTrace: undefined,\n };\n}\n\nexport const MessageToL1Filter = {\n encode(message: MessageToL1Filter, 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.fromAddress !== undefined) {\n FieldElement.encode(message.fromAddress, writer.uint32(18).fork()).ldelim();\n }\n if (message.toAddress !== undefined) {\n FieldElement.encode(message.toAddress, writer.uint32(26).fork()).ldelim();\n }\n if (message.transactionStatus !== undefined) {\n writer.uint32(32).int32(message.transactionStatus);\n }\n if (message.includeTransaction !== undefined) {\n writer.uint32(40).bool(message.includeTransaction);\n }\n if (message.includeReceipt !== undefined) {\n writer.uint32(48).bool(message.includeReceipt);\n }\n if (message.includeEvents !== undefined) {\n writer.uint32(56).bool(message.includeEvents);\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): MessageToL1Filter {\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 = createBaseMessageToL1Filter() 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.fromAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.toAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.includeTransaction = reader.bool();\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.includeEvents = 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): MessageToL1Filter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n fromAddress: isSet(object.fromAddress) ? FieldElement.fromJSON(object.fromAddress) : undefined,\n toAddress: isSet(object.toAddress) ? FieldElement.fromJSON(object.toAddress) : 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 includeEvents: isSet(object.includeEvents) ? globalThis.Boolean(object.includeEvents) : 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: MessageToL1Filter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.fromAddress !== undefined) {\n obj.fromAddress = FieldElement.toJSON(message.fromAddress);\n }\n if (message.toAddress !== undefined) {\n obj.toAddress = FieldElement.toJSON(message.toAddress);\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.includeEvents !== undefined) {\n obj.includeEvents = message.includeEvents;\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<MessageToL1Filter>): MessageToL1Filter {\n return MessageToL1Filter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<MessageToL1Filter>): MessageToL1Filter {\n const message = createBaseMessageToL1Filter() as any;\n message.id = object.id ?? 0;\n message.fromAddress = (object.fromAddress !== undefined && object.fromAddress !== null)\n ? FieldElement.fromPartial(object.fromAddress)\n : undefined;\n message.toAddress = (object.toAddress !== undefined && object.toAddress !== null)\n ? FieldElement.fromPartial(object.toAddress)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? undefined;\n message.includeTransaction = object.includeTransaction ?? undefined;\n message.includeReceipt = object.includeReceipt ?? undefined;\n message.includeEvents = object.includeEvents ?? undefined;\n message.includeSiblings = object.includeSiblings ?? undefined;\n message.includeTransactionTrace = object.includeTransactionTrace ?? undefined;\n return message;\n },\n};\n\nfunction createBaseTransactionFilter(): TransactionFilter {\n return {\n id: 0,\n transactionStatus: undefined,\n includeReceipt: undefined,\n includeEvents: undefined,\n includeMessages: undefined,\n inner: undefined,\n includeTrace: 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.transactionStatus !== undefined) {\n writer.uint32(16).int32(message.transactionStatus);\n }\n if (message.includeReceipt !== undefined) {\n writer.uint32(24).bool(message.includeReceipt);\n }\n if (message.includeEvents !== undefined) {\n writer.uint32(32).bool(message.includeEvents);\n }\n if (message.includeMessages !== undefined) {\n writer.uint32(40).bool(message.includeMessages);\n }\n switch (message.inner?.$case) {\n case \"invokeV0\":\n InvokeTransactionV0Filter.encode(message.inner.invokeV0, writer.uint32(50).fork()).ldelim();\n break;\n case \"invokeV1\":\n InvokeTransactionV1Filter.encode(message.inner.invokeV1, writer.uint32(58).fork()).ldelim();\n break;\n case \"invokeV3\":\n InvokeTransactionV3Filter.encode(message.inner.invokeV3, writer.uint32(66).fork()).ldelim();\n break;\n case \"deploy\":\n DeployTransactionFilter.encode(message.inner.deploy, writer.uint32(74).fork()).ldelim();\n break;\n case \"declareV0\":\n DeclareV0TransactionFilter.encode(message.inner.declareV0, writer.uint32(82).fork()).ldelim();\n break;\n case \"declareV1\":\n DeclareV1TransactionFilter.encode(message.inner.declareV1, writer.uint32(90).fork()).ldelim();\n break;\n case \"declareV2\":\n DeclareV2TransactionFilter.encode(message.inner.declareV2, writer.uint32(98).fork()).ldelim();\n break;\n case \"declareV3\":\n DeclareV3TransactionFilter.encode(message.inner.declareV3, writer.uint32(106).fork()).ldelim();\n break;\n case \"l1Handler\":\n L1HandlerTransactionFilter.encode(message.inner.l1Handler, writer.uint32(114).fork()).ldelim();\n break;\n case \"deployAccountV1\":\n DeployAccountV1TransactionFilter.encode(message.inner.deployAccountV1, writer.uint32(122).fork()).ldelim();\n break;\n case \"deployAccountV3\":\n DeployAccountV3TransactionFilter.encode(message.inner.deployAccountV3, writer.uint32(130).fork()).ldelim();\n break;\n }\n if (message.includeTrace !== undefined) {\n writer.uint32(136).bool(message.includeTrace);\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 !== 16) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.includeReceipt = reader.bool();\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.includeEvents = reader.bool();\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.includeMessages = reader.bool();\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.inner = { $case: \"invokeV0\", invokeV0: InvokeTransactionV0Filter.decode(reader, reader.uint32()) };\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.inner = { $case: \"invokeV1\", invokeV1: InvokeTransactionV1Filter.decode(reader, reader.uint32()) };\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.inner = { $case: \"invokeV3\", invokeV3: InvokeTransactionV3Filter.decode(reader, reader.uint32()) };\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.inner = { $case: \"deploy\", deploy: DeployTransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n\n message.inner = { $case: \"declareV0\", declareV0: DeclareV0TransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 11:\n if (tag !== 90) {\n break;\n }\n\n message.inner = { $case: \"declareV1\", declareV1: DeclareV1TransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n\n message.inner = { $case: \"declareV2\", declareV2: DeclareV2TransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n\n message.inner = { $case: \"declareV3\", declareV3: DeclareV3TransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 14:\n if (tag !== 114) {\n break;\n }\n\n message.inner = { $case: \"l1Handler\", l1Handler: L1HandlerTransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 15:\n if (tag !== 122) {\n break;\n }\n\n message.inner = {\n $case: \"deployAccountV1\",\n deployAccountV1: DeployAccountV1TransactionFilter.decode(reader, reader.uint32()),\n };\n continue;\n case 16:\n if (tag !== 130) {\n break;\n }\n\n message.inner = {\n $case: \"deployAccountV3\",\n deployAccountV3: DeployAccountV3TransactionFilter.decode(reader, reader.uint32()),\n };\n continue;\n case 17:\n if (tag !== 136) {\n break;\n }\n\n message.includeTrace = 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 transactionStatus: isSet(object.transactionStatus)\n ? transactionStatusFilterFromJSON(object.transactionStatus)\n : undefined,\n includeReceipt: isSet(object.includeReceipt) ? globalThis.Boolean(object.includeReceipt) : undefined,\n includeEvents: isSet(object.includeEvents) ? globalThis.Boolean(object.includeEvents) : undefined,\n includeMessages: isSet(object.includeMessages) ? globalThis.Boolean(object.includeMessages) : undefined,\n inner: isSet(object.invokeV0)\n ? { $case: \"invokeV0\", invokeV0: InvokeTransactionV0Filter.fromJSON(object.invokeV0) }\n : isSet(object.invokeV1)\n ? { $case: \"invokeV1\", invokeV1: InvokeTransactionV1Filter.fromJSON(object.invokeV1) }\n : isSet(object.invokeV3)\n ? { $case: \"invokeV3\", invokeV3: InvokeTransactionV3Filter.fromJSON(object.invokeV3) }\n : isSet(object.deploy)\n ? { $case: \"deploy\", deploy: DeployTransactionFilter.fromJSON(object.deploy) }\n : isSet(object.declareV0)\n ? { $case: \"declareV0\", declareV0: DeclareV0TransactionFilter.fromJSON(object.declareV0) }\n : isSet(object.declareV1)\n ? { $case: \"declareV1\", declareV1: DeclareV1TransactionFilter.fromJSON(object.declareV1) }\n : isSet(object.declareV2)\n ? { $case: \"declareV2\", declareV2: DeclareV2TransactionFilter.fromJSON(object.declareV2) }\n : isSet(object.declareV3)\n ? { $case: \"declareV3\", declareV3: DeclareV3TransactionFilter.fromJSON(object.declareV3) }\n : isSet(object.l1Handler)\n ? { $case: \"l1Handler\", l1Handler: L1HandlerTransactionFilter.fromJSON(object.l1Handler) }\n : isSet(object.deployAccountV1)\n ? {\n $case: \"deployAccountV1\",\n deployAccountV1: DeployAccountV1TransactionFilter.fromJSON(object.deployAccountV1),\n }\n : isSet(object.deployAccountV3)\n ? {\n $case: \"deployAccountV3\",\n deployAccountV3: DeployAccountV3TransactionFilter.fromJSON(object.deployAccountV3),\n }\n : undefined,\n includeTrace: isSet(object.includeTrace) ? globalThis.Boolean(object.includeTrace) : 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.transactionStatus !== undefined) {\n obj.transactionStatus = transactionStatusFilterToJSON(message.transactionStatus);\n }\n if (message.includeReceipt !== undefined) {\n obj.includeReceipt = message.includeReceipt;\n }\n if (message.includeEvents !== undefined) {\n obj.includeEvents = message.includeEvents;\n }\n if (message.includeMessages !== undefined) {\n obj.includeMessages = message.includeMessages;\n }\n if (message.inner?.$case === \"invokeV0\") {\n obj.invokeV0 = InvokeTransactionV0Filter.toJSON(message.inner.invokeV0);\n }\n if (message.inner?.$case === \"invokeV1\") {\n obj.invokeV1 = InvokeTransactionV1Filter.toJSON(message.inner.invokeV1);\n }\n if (message.inner?.$case === \"invokeV3\") {\n obj.invokeV3 = InvokeTransactionV3Filter.toJSON(message.inner.invokeV3);\n }\n if (message.inner?.$case === \"deploy\") {\n obj.deploy = DeployTransactionFilter.toJSON(message.inner.deploy);\n }\n if (message.inner?.$case === \"declareV0\") {\n obj.declareV0 = DeclareV0TransactionFilter.toJSON(message.inner.declareV0);\n }\n if (message.inner?.$case === \"declareV1\") {\n obj.declareV1 = DeclareV1TransactionFilter.toJSON(message.inner.declareV1);\n }\n if (message.inner?.$case === \"declareV2\") {\n obj.declareV2 = DeclareV2TransactionFilter.toJSON(message.inner.declareV2);\n }\n if (message.inner?.$case === \"declareV3\") {\n obj.declareV3 = DeclareV3TransactionFilter.toJSON(message.inner.declareV3);\n }\n if (message.inner?.$case === \"l1Handler\") {\n obj.l1Handler = L1HandlerTransactionFilter.toJSON(message.inner.l1Handler);\n }\n if (message.inner?.$case === \"deployAccountV1\") {\n obj.deployAccountV1 = DeployAccountV1TransactionFilter.toJSON(message.inner.deployAccountV1);\n }\n if (message.inner?.$case === \"deployAccountV3\") {\n obj.deployAccountV3 = DeployAccountV3TransactionFilter.toJSON(message.inner.deployAccountV3);\n }\n if (message.includeTrace !== undefined) {\n obj.includeTrace = message.includeTrace;\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.transactionStatus = object.transactionStatus ?? undefined;\n message.includeReceipt = object.includeReceipt ?? undefined;\n message.includeEvents = object.includeEvents ?? undefined;\n message.includeMessages = object.includeMessages ?? undefined;\n if (object.inner?.$case === \"invokeV0\" && object.inner?.invokeV0 !== undefined && object.inner?.invokeV0 !== null) {\n message.inner = { $case: \"invokeV0\", invokeV0: InvokeTransactionV0Filter.fromPartial(object.inner.invokeV0) };\n }\n if (object.inner?.$case === \"invokeV1\" && object.inner?.invokeV1 !== undefined && object.inner?.invokeV1 !== null) {\n message.inner = { $case: \"invokeV1\", invokeV1: InvokeTransactionV1Filter.fromPartial(object.inner.invokeV1) };\n }\n if (object.inner?.$case === \"invokeV3\" && object.inner?.invokeV3 !== undefined && object.inner?.invokeV3 !== null) {\n message.inner = { $case: \"invokeV3\", invokeV3: InvokeTransactionV3Filter.fromPartial(object.inner.invokeV3) };\n }\n if (object.inner?.$case === \"deploy\" && object.inner?.deploy !== undefined && object.inner?.deploy !== null) {\n message.inner = { $case: \"deploy\", deploy: DeployTransactionFilter.fromPartial(object.inner.deploy) };\n }\n if (\n object.inner?.$case === \"declareV0\" && object.inner?.declareV0 !== undefined && object.inner?.declareV0 !== null\n ) {\n message.inner = { $case: \"declareV0\", declareV0: DeclareV0TransactionFilter.fromPartial(object.inner.declareV0) };\n }\n if (\n object.inner?.$case === \"declareV1\" && object.inner?.declareV1 !== undefined && object.inner?.declareV1 !== null\n ) {\n message.inner = { $case: \"declareV1\", declareV1: DeclareV1TransactionFilter.fromPartial(object.inner.declareV1) };\n }\n if (\n object.inner?.$case === \"declareV2\" && object.inner?.declareV2 !== undefined && object.inner?.declareV2 !== null\n ) {\n message.inner = { $case: \"declareV2\", declareV2: DeclareV2TransactionFilter.fromPartial(object.inner.declareV2) };\n }\n if (\n object.inner?.$case === \"declareV3\" && object.inner?.declareV3 !== undefined && object.inner?.declareV3 !== null\n ) {\n message.inner = { $case: \"declareV3\", declareV3: DeclareV3TransactionFilter.fromPartial(object.inner.declareV3) };\n }\n if (\n object.inner?.$case === \"l1Handler\" && object.inner?.l1Handler !== undefined && object.inner?.l1Handler !== null\n ) {\n message.inner = { $case: \"l1Handler\", l1Handler: L1HandlerTransactionFilter.fromPartial(object.inner.l1Handler) };\n }\n if (\n object.inner?.$case === \"deployAccountV1\" &&\n object.inner?.deployAccountV1 !== undefined &&\n object.inner?.deployAccountV1 !== null\n ) {\n message.inner = {\n $case: \"deployAccountV1\",\n deployAccountV1: DeployAccountV1TransactionFilter.fromPartial(object.inner.deployAccountV1),\n };\n }\n if (\n object.inner?.$case === \"deployAccountV3\" &&\n object.inner?.deployAccountV3 !== undefined &&\n object.inner?.deployAccountV3 !== null\n ) {\n message.inner = {\n $case: \"deployAccountV3\",\n deployAccountV3: DeployAccountV3TransactionFilter.fromPartial(object.inner.deployAccountV3),\n };\n }\n message.includeTrace = object.includeTrace ?? undefined;\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV0Filter(): InvokeTransactionV0Filter {\n return {};\n}\n\nexport const InvokeTransactionV0Filter = {\n encode(_: InvokeTransactionV0Filter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV0Filter {\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 = createBaseInvokeTransactionV0Filter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): InvokeTransactionV0Filter {\n return {};\n },\n\n toJSON(_: InvokeTransactionV0Filter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV0Filter>): InvokeTransactionV0Filter {\n return InvokeTransactionV0Filter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<InvokeTransactionV0Filter>): InvokeTransactionV0Filter {\n const message = createBaseInvokeTransactionV0Filter() as any;\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV1Filter(): InvokeTransactionV1Filter {\n return {};\n}\n\nexport const InvokeTransactionV1Filter = {\n encode(_: InvokeTransactionV1Filter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV1Filter {\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 = createBaseInvokeTransactionV1Filter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): InvokeTransactionV1Filter {\n return {};\n },\n\n toJSON(_: InvokeTransactionV1Filter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV1Filter>): InvokeTransactionV1Filter {\n return InvokeTransactionV1Filter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<InvokeTransactionV1Filter>): InvokeTransactionV1Filter {\n const message = createBaseInvokeTransactionV1Filter() as any;\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV3Filter(): InvokeTransactionV3Filter {\n return {};\n}\n\nexport const InvokeTransactionV3Filter = {\n encode(_: InvokeTransactionV3Filter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV3Filter {\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 = createBaseInvokeTransactionV3Filter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): InvokeTransactionV3Filter {\n return {};\n },\n\n toJSON(_: InvokeTransactionV3Filter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV3Filter>): InvokeTransactionV3Filter {\n return InvokeTransactionV3Filter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<InvokeTransactionV3Filter>): InvokeTransactionV3Filter {\n const message = createBaseInvokeTransactionV3Filter() as any;\n return message;\n },\n};\n\nfunction createBaseDeployTransactionFilter(): DeployTransactionFilter {\n return {};\n}\n\nexport const DeployTransactionFilter = {\n encode(_: DeployTransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployTransactionFilter {\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 = createBaseDeployTransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeployTransactionFilter {\n return {};\n },\n\n toJSON(_: DeployTransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeployTransactionFilter>): DeployTransactionFilter {\n return DeployTransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeployTransactionFilter>): DeployTransactionFilter {\n const message = createBaseDeployTransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeclareV0TransactionFilter(): DeclareV0TransactionFilter {\n return {};\n}\n\nexport const DeclareV0TransactionFilter = {\n encode(_: DeclareV0TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareV0TransactionFilter {\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 = createBaseDeclareV0TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclareV0TransactionFilter {\n return {};\n },\n\n toJSON(_: DeclareV0TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclareV0TransactionFilter>): DeclareV0TransactionFilter {\n return DeclareV0TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclareV0TransactionFilter>): DeclareV0TransactionFilter {\n const message = createBaseDeclareV0TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeclareV1TransactionFilter(): DeclareV1TransactionFilter {\n return {};\n}\n\nexport const DeclareV1TransactionFilter = {\n encode(_: DeclareV1TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareV1TransactionFilter {\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 = createBaseDeclareV1TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclareV1TransactionFilter {\n return {};\n },\n\n toJSON(_: DeclareV1TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclareV1TransactionFilter>): DeclareV1TransactionFilter {\n return DeclareV1TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclareV1TransactionFilter>): DeclareV1TransactionFilter {\n const message = createBaseDeclareV1TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeclareV2TransactionFilter(): DeclareV2TransactionFilter {\n return {};\n}\n\nexport const DeclareV2TransactionFilter = {\n encode(_: DeclareV2TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareV2TransactionFilter {\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 = createBaseDeclareV2TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclareV2TransactionFilter {\n return {};\n },\n\n toJSON(_: DeclareV2TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclareV2TransactionFilter>): DeclareV2TransactionFilter {\n return DeclareV2TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclareV2TransactionFilter>): DeclareV2TransactionFilter {\n const message = createBaseDeclareV2TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeclareV3TransactionFilter(): DeclareV3TransactionFilter {\n return {};\n}\n\nexport const DeclareV3TransactionFilter = {\n encode(_: DeclareV3TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareV3TransactionFilter {\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 = createBaseDeclareV3TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclareV3TransactionFilter {\n return {};\n },\n\n toJSON(_: DeclareV3TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclareV3TransactionFilter>): DeclareV3TransactionFilter {\n return DeclareV3TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclareV3TransactionFilter>): DeclareV3TransactionFilter {\n const message = createBaseDeclareV3TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseL1HandlerTransactionFilter(): L1HandlerTransactionFilter {\n return {};\n}\n\nexport const L1HandlerTransactionFilter = {\n encode(_: L1HandlerTransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): L1HandlerTransactionFilter {\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 = createBaseL1HandlerTransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): L1HandlerTransactionFilter {\n return {};\n },\n\n toJSON(_: L1HandlerTransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<L1HandlerTransactionFilter>): L1HandlerTransactionFilter {\n return L1HandlerTransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<L1HandlerTransactionFilter>): L1HandlerTransactionFilter {\n const message = createBaseL1HandlerTransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeployAccountV1TransactionFilter(): DeployAccountV1TransactionFilter {\n return {};\n}\n\nexport const DeployAccountV1TransactionFilter = {\n encode(_: DeployAccountV1TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountV1TransactionFilter {\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 = createBaseDeployAccountV1TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeployAccountV1TransactionFilter {\n return {};\n },\n\n toJSON(_: DeployAccountV1TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountV1TransactionFilter>): DeployAccountV1TransactionFilter {\n return DeployAccountV1TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeployAccountV1TransactionFilter>): DeployAccountV1TransactionFilter {\n const message = createBaseDeployAccountV1TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeployAccountV3TransactionFilter(): DeployAccountV3TransactionFilter {\n return {};\n}\n\nexport const DeployAccountV3TransactionFilter = {\n encode(_: DeployAccountV3TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountV3TransactionFilter {\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 = createBaseDeployAccountV3TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeployAccountV3TransactionFilter {\n return {};\n },\n\n toJSON(_: DeployAccountV3TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountV3TransactionFilter>): DeployAccountV3TransactionFilter {\n return DeployAccountV3TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeployAccountV3TransactionFilter>): DeployAccountV3TransactionFilter {\n const message = createBaseDeployAccountV3TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseStorageDiffFilter(): StorageDiffFilter {\n return { id: 0, contractAddress: undefined };\n}\n\nexport const StorageDiffFilter = {\n encode(message: StorageDiffFilter, 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.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): StorageDiffFilter {\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 = createBaseStorageDiffFilter() 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.contractAddress = FieldElement.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): StorageDiffFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n };\n },\n\n toJSON(message: StorageDiffFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n return obj;\n },\n\n create(base?: DeepPartial<StorageDiffFilter>): StorageDiffFilter {\n return StorageDiffFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<StorageDiffFilter>): StorageDiffFilter {\n const message = createBaseStorageDiffFilter() as any;\n message.id = object.id ?? 0;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseContractChangeFilter(): ContractChangeFilter {\n return { id: 0, change: undefined };\n}\n\nexport const ContractChangeFilter = {\n encode(message: ContractChangeFilter, 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 switch (message.change?.$case) {\n case \"declaredClass\":\n DeclaredClassFilter.encode(message.change.declaredClass, writer.uint32(18).fork()).ldelim();\n break;\n case \"replacedClass\":\n ReplacedClassFilter.encode(message.change.replacedClass, writer.uint32(26).fork()).ldelim();\n break;\n case \"deployedContract\":\n DeployedContractFilter.encode(message.change.deployedContract, writer.uint32(34).fork()).ldelim();\n break;\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ContractChangeFilter {\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 = createBaseContractChangeFilter() 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.change = {\n $case: \"declaredClass\",\n declaredClass: DeclaredClassFilter.decode(reader, reader.uint32()),\n };\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.change = {\n $case: \"replacedClass\",\n replacedClass: ReplacedClassFilter.decode(reader, reader.uint32()),\n };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.change = {\n $case: \"deployedContract\",\n deployedContract: DeployedContractFilter.decode(reader, reader.uint32()),\n };\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): ContractChangeFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n change: isSet(object.declaredClass)\n ? { $case: \"declaredClass\", declaredClass: DeclaredClassFilter.fromJSON(object.declaredClass) }\n : isSet(object.replacedClass)\n ? { $case: \"replacedClass\", replacedClass: ReplacedClassFilter.fromJSON(object.replacedClass) }\n : isSet(object.deployedContract)\n ? { $case: \"deployedContract\", deployedContract: DeployedContractFilter.fromJSON(object.deployedContract) }\n : undefined,\n };\n },\n\n toJSON(message: ContractChangeFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.change?.$case === \"declaredClass\") {\n obj.declaredClass = DeclaredClassFilter.toJSON(message.change.declaredClass);\n }\n if (message.change?.$case === \"replacedClass\") {\n obj.replacedClass = ReplacedClassFilter.toJSON(message.change.replacedClass);\n }\n if (message.change?.$case === \"deployedContract\") {\n obj.deployedContract = DeployedContractFilter.toJSON(message.change.deployedContract);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ContractChangeFilter>): ContractChangeFilter {\n return ContractChangeFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ContractChangeFilter>): ContractChangeFilter {\n const message = createBaseContractChangeFilter() as any;\n message.id = object.id ?? 0;\n if (\n object.change?.$case === \"declaredClass\" &&\n object.change?.declaredClass !== undefined &&\n object.change?.declaredClass !== null\n ) {\n message.change = {\n $case: \"declaredClass\",\n declaredClass: DeclaredClassFilter.fromPartial(object.change.declaredClass),\n };\n }\n if (\n object.change?.$case === \"replacedClass\" &&\n object.change?.replacedClass !== undefined &&\n object.change?.replacedClass !== null\n ) {\n message.change = {\n $case: \"replacedClass\",\n replacedClass: ReplacedClassFilter.fromPartial(object.change.replacedClass),\n };\n }\n if (\n object.change?.$case === \"deployedContract\" &&\n object.change?.deployedContract !== undefined &&\n object.change?.deployedContract !== null\n ) {\n message.change = {\n $case: \"deployedContract\",\n deployedContract: DeployedContractFilter.fromPartial(object.change.deployedContract),\n };\n }\n return message;\n },\n};\n\nfunction createBaseDeclaredClassFilter(): DeclaredClassFilter {\n return {};\n}\n\nexport const DeclaredClassFilter = {\n encode(_: DeclaredClassFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclaredClassFilter {\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 = createBaseDeclaredClassFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclaredClassFilter {\n return {};\n },\n\n toJSON(_: DeclaredClassFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclaredClassFilter>): DeclaredClassFilter {\n return DeclaredClassFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclaredClassFilter>): DeclaredClassFilter {\n const message = createBaseDeclaredClassFilter() as any;\n return message;\n },\n};\n\nfunction createBaseReplacedClassFilter(): ReplacedClassFilter {\n return {};\n}\n\nexport const ReplacedClassFilter = {\n encode(_: ReplacedClassFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ReplacedClassFilter {\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 = createBaseReplacedClassFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): ReplacedClassFilter {\n return {};\n },\n\n toJSON(_: ReplacedClassFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<ReplacedClassFilter>): ReplacedClassFilter {\n return ReplacedClassFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<ReplacedClassFilter>): ReplacedClassFilter {\n const message = createBaseReplacedClassFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeployedContractFilter(): DeployedContractFilter {\n return {};\n}\n\nexport const DeployedContractFilter = {\n encode(_: DeployedContractFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployedContractFilter {\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 = createBaseDeployedContractFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeployedContractFilter {\n return {};\n },\n\n toJSON(_: DeployedContractFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeployedContractFilter>): DeployedContractFilter {\n return DeployedContractFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeployedContractFilter>): DeployedContractFilter {\n const message = createBaseDeployedContractFilter() as any;\n return message;\n },\n};\n\nfunction createBaseNonceUpdateFilter(): NonceUpdateFilter {\n return { id: 0, contractAddress: undefined };\n}\n\nexport const NonceUpdateFilter = {\n encode(message: NonceUpdateFilter, 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.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): NonceUpdateFilter {\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 = createBaseNonceUpdateFilter() 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.contractAddress = FieldElement.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): NonceUpdateFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n };\n },\n\n toJSON(message: NonceUpdateFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n return obj;\n },\n\n create(base?: DeepPartial<NonceUpdateFilter>): NonceUpdateFilter {\n return NonceUpdateFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<NonceUpdateFilter>): NonceUpdateFilter {\n const message = createBaseNonceUpdateFilter() as any;\n message.id = object.id ?? 0;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : 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 {\n ArrayCodec,\n BigIntCodec,\n type Codec,\n type CodecType,\n DateCodec,\n type Evaluate,\n MessageCodec,\n NumberCodec,\n OneOfCodec,\n OptionalCodec,\n RequiredCodec,\n StringCodec,\n Uint8ArrayCodec,\n} from \"@apibara/protocol/codec\";\nimport { FieldElement } from \"./common\";\nimport * as proto from \"./proto\";\n\n/** Price of a unit of resource.\n *\n * @prop priceInFri The price in Fri (1e-18 STRK).\n * @prop priceInWei The price in Wei (1e-18 ETH).\n */\nexport const ResourcePrice = MessageCodec({\n priceInFri: OptionalCodec(FieldElement),\n priceInWei: OptionalCodec(FieldElement),\n});\n\nexport type ResourcePrice = Readonly<CodecType<typeof ResourcePrice>>;\n\n// -----------------------------------------------------\n\n/** How data is posted to L1. */\nexport const L1DataAvailabilityMode: Codec<\n \"blob\" | \"calldata\" | \"unknown\",\n proto.data.L1DataAvailabilityMode\n> = {\n encode(x) {\n switch (x) {\n case \"calldata\":\n return proto.data.L1DataAvailabilityMode.CALLDATA;\n case \"blob\":\n return proto.data.L1DataAvailabilityMode.BLOB;\n case \"unknown\":\n return proto.data.L1DataAvailabilityMode.UNSPECIFIED;\n default:\n return proto.data.L1DataAvailabilityMode.UNRECOGNIZED;\n }\n },\n decode(p) {\n const enumMap = {\n [proto.data.L1DataAvailabilityMode.CALLDATA]: \"calldata\",\n [proto.data.L1DataAvailabilityMode.BLOB]: \"blob\",\n [proto.data.L1DataAvailabilityMode.UNSPECIFIED]: \"unknown\",\n [proto.data.L1DataAvailabilityMode.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type L1DataAvailabilityMode = CodecType<typeof L1DataAvailabilityMode>;\n\n// -----------------------------------------------------\n\n/** Status of a transaction. */\nexport const TransactionStatus: Codec<\n \"unknown\" | \"succeeded\" | \"reverted\",\n proto.data.TransactionStatus\n> = {\n encode(x) {\n switch (x) {\n case \"succeeded\":\n return proto.data.TransactionStatus.SUCCEEDED;\n case \"reverted\":\n return proto.data.TransactionStatus.REVERTED;\n case \"unknown\":\n return proto.data.TransactionStatus.UNSPECIFIED;\n default:\n return proto.data.TransactionStatus.UNRECOGNIZED;\n }\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\n// -----------------------------------------------------\n\n/** 128-bit unsigned integer. */\nexport const U128: Codec<bigint, proto.data.Uint128> = {\n // TODO: double check if this is correct\n encode(x) {\n const low = x.toString(16).padStart(16, \"0\");\n const high = (x >> 128n).toString(16).padStart(16, \"0\");\n return { x0: BigInt(`0x${low}`), x1: BigInt(`0x${high}`) };\n },\n decode(p) {\n const low = (p.x0 ?? 0n).toString(16).padStart(16, \"0\");\n const high = (p.x1 ?? 0n).toString(16).padStart(16, \"0\");\n return BigInt(`0x${low}${high}`);\n },\n};\n\nexport type U128 = CodecType<typeof U128>;\n\n// -----------------------------------------------------\n\n/** Resource bounds. */\nexport const ResourceBounds = MessageCodec({\n maxAmount: RequiredCodec(BigIntCodec),\n maxPricePerUnit: RequiredCodec(U128),\n});\n\nexport type ResourceBounds = Readonly<CodecType<typeof ResourceBounds>>;\n\n// -----------------------------------------------------\n\n/** Resource bounds mapping. */\nexport const ResourceBoundsMapping = MessageCodec({\n l1Gas: RequiredCodec(ResourceBounds),\n l2Gas: RequiredCodec(ResourceBounds),\n});\n\nexport type ResourceBoundsMapping = Readonly<\n CodecType<typeof ResourceBoundsMapping>\n>;\n\n// -----------------------------------------------------\n\n/** Data availability mode. */\nexport const DataAvailabilityMode: Codec<\n \"l1\" | \"l2\" | \"unknown\",\n proto.data.DataAvailabilityMode\n> = {\n encode(x) {\n switch (x) {\n case \"l1\":\n return proto.data.DataAvailabilityMode.L1;\n case \"l2\":\n return proto.data.DataAvailabilityMode.L2;\n case \"unknown\":\n return proto.data.DataAvailabilityMode.UNSPECIFIED;\n default:\n return proto.data.DataAvailabilityMode.UNRECOGNIZED;\n }\n },\n decode(p) {\n const enumMap = {\n [proto.data.DataAvailabilityMode.L1]: \"l1\",\n [proto.data.DataAvailabilityMode.L2]: \"l2\",\n [proto.data.DataAvailabilityMode.UNSPECIFIED]: \"unknown\",\n [proto.data.DataAvailabilityMode.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type DataAvailabilityMode = CodecType<typeof DataAvailabilityMode>;\n\n// -----------------------------------------------------\n\n/** Starknet block header.\n *\n * @prop blockHash The hash of the block.\n * @prop parentBlockHash The hash of the parent block.\n * @prop blockNumber The block number.\n * @prop sequencerAddress The address of the sequencer.\n * @prop newRoot The new state root.\n * @prop timestamp The block timestamp.\n * @prop starknetVersion The Starknet version string.\n * @prop l1GasPrice Calldata gas price.\n * @prop l1DataGasPrice Blob gas price.\n * @prop l1DataAvailabilityMode How data is posted to L1.\n */\nexport const BlockHeader = MessageCodec({\n blockHash: RequiredCodec(FieldElement),\n parentBlockHash: RequiredCodec(FieldElement),\n blockNumber: RequiredCodec(BigIntCodec),\n sequencerAddress: RequiredCodec(FieldElement),\n newRoot: OptionalCodec(FieldElement),\n timestamp: RequiredCodec(DateCodec),\n starknetVersion: RequiredCodec(StringCodec),\n l1GasPrice: RequiredCodec(ResourcePrice),\n l1DataGasPrice: RequiredCodec(ResourcePrice),\n l1DataAvailabilityMode: RequiredCodec(L1DataAvailabilityMode),\n});\n\nexport type BlockHeader = Readonly<CodecType<typeof BlockHeader>>;\n\n// -----------------------------------------------------\n\n/** Transaction metadata.\n *\n * This is the information that is common between all transaction types.\n *\n * @prop transactionIndex The transaction index in the block.\n * @prop transactionHash The transaction hash.\n * @prop transactionStatus The transaction status.\n */\nexport const TransactionMeta = MessageCodec({\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(FieldElement),\n transactionStatus: RequiredCodec(TransactionStatus),\n});\n\nexport type TransactionMeta = Readonly<CodecType<typeof TransactionMeta>>;\n\n// -----------------------------------------------------\n\n/** Invoke transaction v0.\n *\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop contractAddress The contract address.\n * @prop entryPointSelector The entry point selector.\n * @prop calldata The calldata.\n */\nexport const InvokeTransactionV0 = MessageCodec({\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n contractAddress: RequiredCodec(FieldElement),\n entryPointSelector: RequiredCodec(FieldElement),\n calldata: ArrayCodec(FieldElement),\n});\n\nexport type InvokeTransactionV0 = Readonly<\n CodecType<typeof InvokeTransactionV0>\n>;\n\n// -----------------------------------------------------\n\n/** Invoke transaction v1.\n *\n * @prop senderAddress The sender address.\n * @prop calldata The calldata.\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop nonce The nonce.\n */\nexport const InvokeTransactionV1 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n calldata: ArrayCodec(FieldElement),\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n});\n\nexport type InvokeTransactionV1 = Readonly<\n CodecType<typeof InvokeTransactionV1>\n>;\n\n// -----------------------------------------------------\n\n/** Invoke transaction v3.\n *\n * @prop senderAddress The sender address.\n * @prop calldata The calldata.\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop resourceBounds The resource bounds.\n * @prop tip The tip.\n * @prop paymasterData The paymaster data.\n * @prop accountDeploymentData The account deployment data.\n * @prop nonceDataAvailabilityMode How nonce data is posted to L1.\n * @prop feeDataAvailabilityMode How fee data is posted to L1.\n */\nexport const InvokeTransactionV3 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n calldata: ArrayCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n resourceBounds: RequiredCodec(ResourceBoundsMapping),\n tip: RequiredCodec(BigIntCodec),\n paymasterData: ArrayCodec(FieldElement),\n accountDeploymentData: ArrayCodec(FieldElement),\n nonceDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n feeDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n});\n\nexport type InvokeTransactionV3 = Readonly<\n CodecType<typeof InvokeTransactionV3>\n>;\n\n// -----------------------------------------------------\n\n/** L1 handler transaction.\n *\n * @prop nonce The nonce.\n * @prop contractAddress The contract address.\n * @prop entryPointSelector The entry point selector.\n * @prop calldata The calldata.\n */\nexport const L1HandlerTransaction = MessageCodec({\n nonce: RequiredCodec(BigIntCodec),\n contractAddress: RequiredCodec(FieldElement),\n entryPointSelector: RequiredCodec(FieldElement),\n calldata: ArrayCodec(FieldElement),\n});\n\nexport type L1HandlerTransaction = Readonly<\n CodecType<typeof L1HandlerTransaction>\n>;\n\n// -----------------------------------------------------\n\n/** Deploy transaction.\n *\n * @prop contractAddressSalt The contract address salt.\n * @prop constructorCalldata The constructor calldata.\n * @prop classHash The class hash.\n */\nexport const DeployTransaction = MessageCodec({\n contractAddressSalt: RequiredCodec(FieldElement),\n constructorCalldata: ArrayCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n});\n\nexport type DeployTransaction = Readonly<CodecType<typeof DeployTransaction>>;\n\n// -----------------------------------------------------\n\n/** Declare transaction v0.\n *\n * @prop senderAddress The sender address.\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop classHash The class hash.\n */\nexport const DeclareTransactionV0 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n});\n\nexport type DeclareTransactionV0 = Readonly<\n CodecType<typeof DeclareTransactionV0>\n>;\n\n// -----------------------------------------------------\n\n/** Declare transaction v1.\n *\n * @prop senderAddress The sender address.\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop classHash The class hash.\n */\nexport const DeclareTransactionV1 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n});\n\nexport type DeclareTransactionV1 = Readonly<\n CodecType<typeof DeclareTransactionV1>\n>;\n\n// -----------------------------------------------------\n\n/** Declare transaction v2.\n *\n * @prop senderAddress The sender address.\n * @prop compiledClassHash The compiled class hash.\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop classHash The class hash.\n */\nexport const DeclareTransactionV2 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n compiledClassHash: RequiredCodec(FieldElement),\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n});\n\nexport type DeclareTransactionV2 = Readonly<\n CodecType<typeof DeclareTransactionV2>\n>;\n\n// -----------------------------------------------------\n\n/** Declare transaction v3.\n *\n * @prop senderAddress The sender address.\n * @prop compiledClassHash The compiled class hash.\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop classHash The class hash.\n * @prop resourceBounds The resource bounds.\n * @prop tip The tip.\n * @prop paymasterData The paymaster data.\n * @prop nonceDataAvailabilityMode How nonce data is posted to L1.\n * @prop feeDataAvailabilityMode How fee data is posted to L1.\n */\nexport const DeclareTransactionV3 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n compiledClassHash: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n resourceBounds: RequiredCodec(ResourceBoundsMapping),\n tip: RequiredCodec(BigIntCodec),\n paymasterData: ArrayCodec(FieldElement),\n accountDeploymentData: ArrayCodec(FieldElement),\n nonceDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n feeDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n});\n\nexport type DeclareTransactionV3 = Readonly<\n CodecType<typeof DeclareTransactionV3>\n>;\n\n// -----------------------------------------------------\n\n/** Deploy account transaction v1.\n *\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop contractAddressSalt The contract address salt.\n * @prop constructorCalldata The constructor calldata.\n * @prop classHash The class hash.\n */\nexport const DeployAccountTransactionV1 = MessageCodec({\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n contractAddressSalt: RequiredCodec(FieldElement),\n constructorCalldata: ArrayCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n});\n\nexport type DeployAccountTransactionV1 = Readonly<\n CodecType<typeof DeployAccountTransactionV1>\n>;\n\n// -----------------------------------------------------\n\n/** Deploy account transaction v3.\n *\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop contractAddressSalt The contract address salt.\n * @prop constructorCalldata The constructor calldata.\n * @prop classHash The class hash.\n * @prop resourceBounds The resource bounds.\n * @prop tip The tip.\n * @prop paymasterData The paymaster data.\n * @prop nonceDataAvailabilityMode How nonce data is posted to L1.\n * @prop feeDataAvailabilityMode How fee data is posted to L1.\n */\nexport const DeployAccountTransactionV3 = MessageCodec({\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n contractAddressSalt: RequiredCodec(FieldElement),\n constructorCalldata: ArrayCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n resourceBounds: RequiredCodec(ResourceBoundsMapping),\n tip: RequiredCodec(BigIntCodec),\n paymasterData: ArrayCodec(FieldElement),\n nonceDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n feeDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n});\n\nexport type DeployAccountTransactionV3 = Readonly<\n CodecType<typeof DeployAccountTransactionV3>\n>;\n\n// -----------------------------------------------------\n\n/** A transaction.\n *\n * @prop filterIds The filter IDs.\n * @prop meta The transaction metadata.\n */\nexport const Transaction = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n meta: RequiredCodec(TransactionMeta),\n transaction: RequiredCodec(\n OneOfCodec({\n invokeV0: InvokeTransactionV0,\n invokeV1: InvokeTransactionV1,\n invokeV3: InvokeTransactionV3,\n l1Handler: L1HandlerTransaction,\n deploy: DeployTransaction,\n declareV0: DeclareTransactionV0,\n declareV1: DeclareTransactionV1,\n declareV2: DeclareTransactionV2,\n declareV3: DeclareTransactionV3,\n deployAccountV1: DeployAccountTransactionV1,\n deployAccountV3: DeployAccountTransactionV3,\n }),\n ),\n});\n\nexport type Transaction = Readonly<CodecType<typeof Transaction>>;\n\n// -----------------------------------------------------\n\nexport const PriceUnit: Codec<\"wei\" | \"fri\" | \"unknown\", proto.data.PriceUnit> =\n {\n encode(x) {\n switch (x) {\n case \"wei\":\n return proto.data.PriceUnit.WEI;\n case \"fri\":\n return proto.data.PriceUnit.FRI;\n case \"unknown\":\n return proto.data.PriceUnit.UNSPECIFIED;\n default:\n return proto.data.PriceUnit.UNRECOGNIZED;\n }\n },\n decode(p) {\n const enumMap = {\n [proto.data.PriceUnit.WEI]: \"wei\",\n [proto.data.PriceUnit.FRI]: \"fri\",\n [proto.data.PriceUnit.UNSPECIFIED]: \"unknown\",\n [proto.data.PriceUnit.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n };\n\nexport type PriceUnit = CodecType<typeof PriceUnit>;\n\n// -----------------------------------------------------\n\nexport const FeePayment = MessageCodec({\n amount: RequiredCodec(FieldElement),\n unit: RequiredCodec(PriceUnit),\n});\n\nexport type FeePayment = Readonly<CodecType<typeof FeePayment>>;\n\n// -----------------------------------------------------\n\nexport const ComputationResources = MessageCodec({\n steps: RequiredCodec(BigIntCodec),\n memoryHoles: OptionalCodec(BigIntCodec),\n rangeCheckBuiltinApplications: OptionalCodec(BigIntCodec),\n pedersenBuiltinApplications: OptionalCodec(BigIntCodec),\n poseidonBuiltinApplications: OptionalCodec(BigIntCodec),\n ecOpBuiltinApplications: OptionalCodec(BigIntCodec),\n ecdsaBuiltinApplications: OptionalCodec(BigIntCodec),\n bitwiseBuiltinApplications: OptionalCodec(BigIntCodec),\n keccakBuiltinApplications: OptionalCodec(BigIntCodec),\n segmentArenaBuiltin: OptionalCodec(BigIntCodec),\n});\n\nexport type ComputationResources = Readonly<\n CodecType<typeof ComputationResources>\n>;\n\n// -----------------------------------------------------\n\nexport const DataAvailabilityResources = MessageCodec({\n l1Gas: RequiredCodec(BigIntCodec),\n l1DataGas: RequiredCodec(BigIntCodec),\n});\n\nexport type DataAvailabilityResources = Readonly<\n CodecType<typeof DataAvailabilityResources>\n>;\n\n// -----------------------------------------------------\n\nexport const ExecutionResources = MessageCodec({\n computation: RequiredCodec(ComputationResources),\n dataAvailability: RequiredCodec(DataAvailabilityResources),\n});\n\nexport type ExecutionResources = Readonly<CodecType<typeof ExecutionResources>>;\n\n// -----------------------------------------------------\n\nexport const ExecutionSucceeded = MessageCodec({});\n\nexport type ExecutionSucceeded = Readonly<CodecType<typeof ExecutionSucceeded>>;\n\n// -----------------------------------------------------\n\nexport const ExecutionReverted = MessageCodec({\n reason: OptionalCodec(StringCodec),\n});\n\nexport type ExecutionReverted = Readonly<CodecType<typeof ExecutionReverted>>;\n\n// -----------------------------------------------------\n\nexport const TransactionReceiptMeta = MessageCodec({\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(FieldElement),\n actualFee: RequiredCodec(FeePayment),\n executionResources: RequiredCodec(ExecutionResources),\n executionResult: RequiredCodec(\n OneOfCodec({\n succeeded: ExecutionSucceeded,\n reverted: ExecutionReverted,\n }),\n ),\n});\n\nexport type TransactionReceiptMeta = Readonly<\n CodecType<typeof TransactionReceiptMeta>\n>;\n\n// -----------------------------------------------------\n\nexport const InvokeTransactionReceipt = MessageCodec({});\n\nexport type InvokeTransactionReceipt = Readonly<\n CodecType<typeof InvokeTransactionReceipt>\n>;\n\n// -----------------------------------------------------\n\nexport const L1HandlerTransactionReceipt = MessageCodec({\n messageHash: RequiredCodec(Uint8ArrayCodec),\n});\n\nexport type L1HandlerTransactionReceipt = Readonly<\n CodecType<typeof L1HandlerTransactionReceipt>\n>;\n\n// -----------------------------------------------------\n\nexport const DeclareTransactionReceipt = MessageCodec({});\n\nexport type DeclareTransactionReceipt = Readonly<\n CodecType<typeof DeclareTransactionReceipt>\n>;\n\n// -----------------------------------------------------\n\nexport const DeployTransactionReceipt = MessageCodec({\n contractAddress: RequiredCodec(FieldElement),\n});\n\nexport type DeployTransactionReceipt = Readonly<\n CodecType<typeof DeployTransactionReceipt>\n>;\n\n// -----------------------------------------------------\n\nexport const DeployAccountTransactionReceipt = MessageCodec({\n contractAddress: RequiredCodec(FieldElement),\n});\n\nexport type DeployAccountTransactionReceipt = Readonly<\n CodecType<typeof DeployAccountTransactionReceipt>\n>;\n\n// -----------------------------------------------------\n\n/** A transaction receipt.\n *\n * @prop meta Transaction receipt metadata.\n * @prop receipt Transaction-specific receipt.\n */\nexport const TransactionReceipt = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n meta: RequiredCodec(TransactionReceiptMeta),\n receipt: RequiredCodec(\n OneOfCodec({\n invoke: InvokeTransactionReceipt,\n l1Handler: L1HandlerTransactionReceipt,\n declare: DeclareTransactionReceipt,\n deploy: DeployTransactionReceipt,\n deployAccount: DeployAccountTransactionReceipt,\n }),\n ),\n});\n\nexport type TransactionReceipt = Readonly<CodecType<typeof TransactionReceipt>>;\n\n// -----------------------------------------------------\n\n/** A transaction event.\n *\n * @prop fromAddress The address that emitted the event.\n * @prop keys Indexed fields of the event.\n * @prop data Non-indexed fields of the event.\n * @prop eventIndex The event index in the block.\n * @prop transactionIndex The transaction index in the block.\n * @prop transactionHash The transaction hash.\n * @prop transactionStatus The transaction status.\n * @prop eventIndexInTransaction The event index in the transaction.\n */\nexport const Event = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n address: RequiredCodec(FieldElement),\n keys: ArrayCodec(FieldElement),\n data: ArrayCodec(FieldElement),\n eventIndex: RequiredCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(FieldElement),\n transactionStatus: RequiredCodec(TransactionStatus),\n eventIndexInTransaction: RequiredCodec(NumberCodec),\n});\n\nexport type Event = Readonly<CodecType<typeof Event>>;\n\n// -----------------------------------------------------\n\n/** A message from the L2 to the L1.\n *\n * @prop filterIds The filter IDs.\n * @prop fromAddress The address on L2 that sent the message.\n * @prop toAddress The address on L1 that will receive the message.\n * @prop payload The message payload.\n * @prop messageIndex The message index in the block.\n * @prop transactionIndex The transaction index in the block.\n * @prop transactionHash The transaction hash.\n * @prop transactionStatus The transaction status.\n * @prop messageIndexInTransaction The message index in the transaction.\n */\nexport const MessageToL1 = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n fromAddress: RequiredCodec(FieldElement),\n toAddress: RequiredCodec(FieldElement),\n payload: ArrayCodec(FieldElement),\n messageIndex: RequiredCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(FieldElement),\n transactionStatus: RequiredCodec(TransactionStatus),\n messageIndexInTransaction: RequiredCodec(NumberCodec),\n});\n\nexport type MessageToL1 = Readonly<CodecType<typeof MessageToL1>>;\n\n// -----------------------------------------------------\n\n/** An entry in the storage diff.\n *\n * @prop key The storage location.\n * @prop value The new value at the storage location.\n */\nexport const StorageEntry = MessageCodec({\n key: RequiredCodec(FieldElement),\n value: RequiredCodec(FieldElement),\n});\n\nexport type StorageEntry = Readonly<CodecType<typeof StorageEntry>>;\n\n// -----------------------------------------------------\n\n/** Storage diff.\n *\n * @prop contractAddress The contract address.\n * @prop storageEntries The entries that changed.\n */\nexport const StorageDiff = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n contractAddress: RequiredCodec(FieldElement),\n storageEntries: ArrayCodec(StorageEntry),\n});\n\nexport type StorageDiff = Readonly<CodecType<typeof StorageDiff>>;\n\n// -----------------------------------------------------\n\n/** A new class declared.\n *\n * @prop classHash The class hash.\n * @prop compiledClassHash The compiled class hash. If undefined, it's the result of a deprecated Cairo 0 declaration.\n */\nexport const DeclaredClass = MessageCodec({\n classHash: OptionalCodec(FieldElement),\n compiledClassHash: OptionalCodec(FieldElement),\n});\n\nexport type DeclaredClass = Readonly<CodecType<typeof DeclaredClass>>;\n\n// -----------------------------------------------------\n\n/** A class replaced.\n *\n * @prop contractAddress The contract address.\n * @prop classHash The class new hash.\n */\nexport const ReplacedClass = MessageCodec({\n contractAddress: OptionalCodec(FieldElement),\n classHash: OptionalCodec(FieldElement),\n});\n\nexport type ReplacedClass = Readonly<CodecType<typeof ReplacedClass>>;\n\n// -----------------------------------------------------\n\n/** A contract deployed.\n *\n * @prop contractAddress The contract address.\n * @prop classHash The class hash.\n */\nexport const DeployedContract = MessageCodec({\n contractAddress: OptionalCodec(FieldElement),\n classHash: OptionalCodec(FieldElement),\n});\n\nexport type DeployedContract = Readonly<CodecType<typeof DeployedContract>>;\n\n// -----------------------------------------------------\n\n/** A contract change.\n *\n * @prop filterIds The filter IDs.\n * @prop change The change.\n */\nexport const ContractChange = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n change: RequiredCodec(\n OneOfCodec({\n declaredClass: DeclaredClass,\n replacedClass: ReplacedClass,\n deployedContract: DeployedContract,\n }),\n ),\n});\n\nexport type ContractChange = Readonly<CodecType<typeof ContractChange>>;\n\n// -----------------------------------------------------\n\n/** A nonce update.\n *\n * @prop contractAddress The contract address.\n * @prop nonce The new nonce.\n */\nexport const NonceUpdate = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n contractAddress: RequiredCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n});\n\nexport type NonceUpdate = Readonly<CodecType<typeof NonceUpdate>>;\n\n// -----------------------------------------------------\n\nexport const CallType: Codec<\n \"libraryCall\" | \"call\" | \"delegate\" | \"unknown\",\n proto.data.CallType\n> = {\n encode(x) {\n switch (x) {\n case \"libraryCall\":\n return proto.data.CallType.LIBRARY_CALL;\n case \"call\":\n return proto.data.CallType.CALL;\n case \"delegate\":\n return proto.data.CallType.DELEGATE;\n case \"unknown\":\n return proto.data.CallType.UNSPECIFIED;\n default:\n return proto.data.CallType.UNRECOGNIZED;\n }\n },\n decode(p) {\n const enumMap = {\n [proto.data.CallType.LIBRARY_CALL]: \"libraryCall\",\n [proto.data.CallType.CALL]: \"call\",\n [proto.data.CallType.DELEGATE]: \"delegate\",\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\n// -----------------------------------------------------\n\nconst _FunctionInvocationCodec = MessageCodec({\n contractAddress: RequiredCodec(FieldElement),\n entryPointSelector: RequiredCodec(FieldElement),\n calldata: ArrayCodec(FieldElement),\n callerAddress: RequiredCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n callType: RequiredCodec(CallType),\n result: ArrayCodec(FieldElement),\n events: ArrayCodec(NumberCodec),\n messages: ArrayCodec(NumberCodec),\n});\n\n/**\n * @note This is a recursive type.\n */\nexport type FunctionInvocation = Evaluate<\n CodecType<typeof _FunctionInvocationCodec> & {\n calls: FunctionInvocation[];\n }\n>;\n\n/** A function invocation.\n *\n * @prop contractAddress The contract address.\n * @prop entryPointSelector The entry point selector.\n * @prop calldata The calldata.\n * @prop callerAddress The caller address.\n * @prop classHash The class hash.\n * @prop callType The call type.\n * @prop result The function invocation result.\n * @prop calls The nested function invocations.\n * @prop events The events index in the current transaction.\n * @prop messages The messages index in the current transaction.\n */\nconst FunctionInvocationCodec: Codec<\n FunctionInvocation,\n proto.data.FunctionInvocation\n> = {\n encode(x) {\n const { calls, ...rest } = x;\n const encodedCalls = calls.map(FunctionInvocationCodec.encode);\n const encodedRest = _FunctionInvocationCodec.encode(rest);\n return { calls: encodedCalls, ...encodedRest };\n },\n decode(p) {\n const { calls = [], ...rest } = p;\n const decodedCalls = calls.map(FunctionInvocationCodec.decode);\n const decodedRest = _FunctionInvocationCodec.decode(rest);\n return { ...decodedRest, calls: decodedCalls };\n },\n};\n\n// -----------------------------------------------------\n\n/** A successful invocation of the __execute__ call.\n *\n * The call.\n */\nexport const ExecuteInvocationSuccess = FunctionInvocationCodec;\n\n// -----------------------------------------------------\n\n/** A failed invocation of the __execute__ call.\n *\n * @prop reason The reason for the failure.\n */\nexport const ExecuteInvocationReverted = MessageCodec({\n reason: OptionalCodec(StringCodec),\n});\n\n// -----------------------------------------------------\n\n/** Trace for invoke transactions.\n *\n * @prop validateInvocation The __validate__ call.\n * @prop executeInvocation The __execute__ call.\n * @prop feeTransferInvocation The __fee_transfer__ call.\n */\nexport const InvokeTransactionTrace = MessageCodec({\n validateInvocation: OptionalCodec(FunctionInvocationCodec),\n executeInvocation: RequiredCodec(\n OneOfCodec({\n success: ExecuteInvocationSuccess,\n reverted: ExecuteInvocationReverted,\n }),\n ),\n feeTransferInvocation: OptionalCodec(FunctionInvocationCodec),\n});\n\nexport type InvokeTransactionTrace = Readonly<\n CodecType<typeof InvokeTransactionTrace>\n>;\n\n// -----------------------------------------------------\n\n/** Trace for declare transactions.\n *\n * @prop validateInvocation The __validate__ call.\n * @prop feeTransferInvocation The __fee_transfer__ call.\n */\nexport const DeclareTransactionTrace = MessageCodec({\n validateInvocation: OptionalCodec(FunctionInvocationCodec),\n feeTransferInvocation: OptionalCodec(FunctionInvocationCodec),\n});\n\nexport type DeclareTransactionTrace = Readonly<\n CodecType<typeof DeclareTransactionTrace>\n>;\n\n// -----------------------------------------------------\n\n/** Trace for deploy account transactions.\n *\n * @prop validateInvocation The __validate__ call.\n * @prop constructorInvocation The __constructor__ invocation.\n * @prop feeTransferInvocation The __fee_transfer__ call.\n */\nexport const DeployAccountTransactionTrace = MessageCodec({\n validateInvocation: OptionalCodec(FunctionInvocationCodec),\n constructorInvocation: OptionalCodec(FunctionInvocationCodec),\n feeTransferInvocation: OptionalCodec(FunctionInvocationCodec),\n});\n\nexport type DeployAccountTransactionTrace = Readonly<\n CodecType<typeof DeployAccountTransactionTrace>\n>;\n\n// -----------------------------------------------------\n\n/** Trace for L1 handler transactions.\n *\n * @prop functionInvocation The L1 handler function invocation.\n */\nexport const L1HandlerTransactionTrace = MessageCodec({\n functionInvocation: OptionalCodec(FunctionInvocationCodec),\n});\n\nexport type L1HandlerTransactionTrace = Readonly<\n CodecType<typeof L1HandlerTransactionTrace>\n>;\n\n// -----------------------------------------------------\n\n/** A transaction trace.\n *\n * @prop filterIds The filter IDs.\n * @prop transactionIndex The transaction index.\n * @prop transactionHash The transaction hash.\n * @prop traceRoot The trace root.\n */\nexport const TransactionTrace = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(FieldElement),\n traceRoot: RequiredCodec(\n OneOfCodec({\n invoke: InvokeTransactionTrace,\n declare: DeclareTransactionTrace,\n deployAccount: DeployAccountTransactionTrace,\n l1Handler: L1HandlerTransactionTrace,\n }),\n ),\n});\n\nexport type TransactionTrace = Readonly<CodecType<typeof TransactionTrace>>;\n\n// -----------------------------------------------------\n\n/** A block.\n *\n * @prop header The block header.\n * @prop transactions The transactions in the block.\n * @prop receipts The receipts of the transactions.\n * @prop events The events emitted by the transactions.\n * @prop messages The messages sent to L1 by the transactions.\n * @prop traces The transaction traces.\n * @prop storageDiffs The changes to the storage.\n * @prop contractChanges The changes to contracts and classes.\n * @prop nonceUpdates The nonce updates.\n */\nexport const Block = MessageCodec({\n header: RequiredCodec(BlockHeader),\n transactions: ArrayCodec(Transaction),\n receipts: ArrayCodec(TransactionReceipt),\n events: ArrayCodec(Event),\n messages: ArrayCodec(MessageToL1),\n traces: ArrayCodec(TransactionTrace),\n storageDiffs: ArrayCodec(StorageDiff),\n contractChanges: ArrayCodec(ContractChange),\n nonceUpdates: ArrayCodec(NonceUpdate),\n});\n\nexport type Block = Readonly<CodecType<typeof Block>>;\n\n// -----------------------------------------------------\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 {\n ArrayCodec,\n BooleanCodec,\n type Codec,\n type CodecType,\n MessageCodec,\n NumberCodec,\n OneOfCodec,\n OptionalCodec,\n} from \"@apibara/protocol/codec\";\nimport { FieldElement } from \"./common\";\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\n/** An event key filter. Use `null` to match any event key. */\nexport const Key: Codec<\n FieldElement | null,\n { value?: proto.common.FieldElement | undefined }\n> = {\n encode(x) {\n if (x === null) {\n return { value: undefined };\n }\n return { value: FieldElement.encode(x) };\n },\n decode(p) {\n if (p.value === undefined) {\n return null;\n }\n return FieldElement.decode(p.value);\n },\n};\n\nexport type Key = CodecType<typeof Key>;\n\nexport const TransactionStatusFilter: Codec<\n \"succeeded\" | \"reverted\" | \"all\" | \"unknown\",\n proto.filter.TransactionStatusFilter\n> = {\n encode(x) {\n switch (x) {\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 decode(p) {\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[p] ?? \"unknown\";\n },\n};\n\nexport type TransactionStatusFilter = CodecType<typeof TransactionStatusFilter>;\n\n/** Filter events.\n *\n * @prop address Filter events by the sender address.\n * @prop keys Filter events by the event keys. Use `null` to match any key.\n * @prop strict If `true`, then the filter will only match events that have exactly the\n * same number of keys as specified in `keys`.\n * @prop transactionStatus Filter based on the transaction status.\n * @prop includeTransaction Include the transaction that emitted the event.\n * @prop includeReceipt Include the transaction receipt.\n * @prop includeMessages Include the messages that were sent to L1 in the same transaction.\n * @prop includeSiblings Include the sibling events of the matched events.\n * @prop includeTransactionTrace Include the trace of the transaction that emitted the event.\n */\nexport const EventFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n address: OptionalCodec(FieldElement),\n keys: OptionalCodec(ArrayCodec(Key)),\n strict: OptionalCodec(BooleanCodec),\n transactionStatus: OptionalCodec(TransactionStatusFilter),\n includeTransaction: OptionalCodec(BooleanCodec),\n includeReceipt: OptionalCodec(BooleanCodec),\n includeMessages: OptionalCodec(BooleanCodec),\n includeSiblings: OptionalCodec(BooleanCodec),\n includeTransactionTrace: OptionalCodec(BooleanCodec),\n});\n\nexport type EventFilter = Readonly<CodecType<typeof EventFilter>>;\n\n/** Filter messages to L1.\n *\n * @prop fromAddress Filter messages by the sender address (on L2).\n * @prop toAddress Filter messages by the recipient address (on L1).\n * @prop transactionStatus Filter based on the transaction status.\n * @prop includeTransaction Include the transaction that sent the message.\n * @prop includeReceipt Include the transaction receipt.\n * @prop includeEvents Include events from the same transaction.\n * @prop includeTransactionTrace Include the trace of the transaction that sent the message.\n */\nexport const MessageToL1Filter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n fromAddress: OptionalCodec(FieldElement),\n toAddress: OptionalCodec(FieldElement),\n transactionStatus: OptionalCodec(TransactionStatusFilter),\n includeTransaction: OptionalCodec(BooleanCodec),\n includeReceipt: OptionalCodec(BooleanCodec),\n includeEvents: OptionalCodec(BooleanCodec),\n includeTransactionTrace: OptionalCodec(BooleanCodec),\n});\n\nexport type MessageToL1Filter = Readonly<CodecType<typeof MessageToL1Filter>>;\n\n// Transaction type filters\nexport const InvokeTransactionV0Filter = MessageCodec({});\nexport type InvokeTransactionV0Filter = Readonly<\n CodecType<typeof InvokeTransactionV0Filter>\n>;\n\nexport const InvokeTransactionV1Filter = MessageCodec({});\nexport type InvokeTransactionV1Filter = Readonly<\n CodecType<typeof InvokeTransactionV1Filter>\n>;\n\nexport const InvokeTransactionV3Filter = MessageCodec({});\nexport type InvokeTransactionV3Filter = Readonly<\n CodecType<typeof InvokeTransactionV3Filter>\n>;\n\nexport const DeployTransactionFilter = MessageCodec({});\nexport type DeployTransactionFilter = Readonly<\n CodecType<typeof DeployTransactionFilter>\n>;\n\nexport const DeclareV0TransactionFilter = MessageCodec({});\nexport type DeclareV0TransactionFilter = Readonly<\n CodecType<typeof DeclareV0TransactionFilter>\n>;\n\nexport const DeclareV1TransactionFilter = MessageCodec({});\nexport type DeclareV1TransactionFilter = Readonly<\n CodecType<typeof DeclareV1TransactionFilter>\n>;\n\nexport const DeclareV2TransactionFilter = MessageCodec({});\nexport type DeclareV2TransactionFilter = Readonly<\n CodecType<typeof DeclareV2TransactionFilter>\n>;\n\nexport const DeclareV3TransactionFilter = MessageCodec({});\nexport type DeclareV3TransactionFilter = Readonly<\n CodecType<typeof DeclareV3TransactionFilter>\n>;\n\nexport const L1HandlerTransactionFilter = MessageCodec({});\nexport type L1HandlerTransactionFilter = Readonly<\n CodecType<typeof L1HandlerTransactionFilter>\n>;\n\nexport const DeployAccountV1TransactionFilter = MessageCodec({});\nexport type DeployAccountV1TransactionFilter = Readonly<\n CodecType<typeof DeployAccountV1TransactionFilter>\n>;\n\nexport const DeployAccountV3TransactionFilter = MessageCodec({});\nexport type DeployAccountV3TransactionFilter = Readonly<\n CodecType<typeof DeployAccountV3TransactionFilter>\n>;\n\n/** Filter transactions.\n *\n * @prop transactionStatus Filter based on the transaction status.\n * @prop includeReceipt Include the transaction receipt.\n * @prop includeEvents Include events from the same transaction.\n * @prop includeMessages Include messages sent in the transaction.\n * @prop includeTrace Include the transaction's trace.\n */\nexport const TransactionFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n transactionStatus: OptionalCodec(TransactionStatusFilter),\n includeReceipt: OptionalCodec(BooleanCodec),\n includeMessages: OptionalCodec(BooleanCodec),\n includeEvents: OptionalCodec(BooleanCodec),\n includeTrace: OptionalCodec(BooleanCodec),\n transactionType: OptionalCodec(\n OneOfCodec({\n invokeV0: InvokeTransactionV0Filter,\n invokeV1: InvokeTransactionV1Filter,\n invokeV3: InvokeTransactionV3Filter,\n deploy: DeployTransactionFilter,\n declareV0: DeclareV0TransactionFilter,\n declareV1: DeclareV1TransactionFilter,\n declareV2: DeclareV2TransactionFilter,\n declareV3: DeclareV3TransactionFilter,\n l1Handler: L1HandlerTransactionFilter,\n deployAccountV1: DeployAccountV1TransactionFilter,\n deployAccountV3: DeployAccountV3TransactionFilter,\n }),\n ),\n});\n\nexport type TransactionFilter = Readonly<CodecType<typeof TransactionFilter>>;\n\n/** Filter storage diffs.\n *\n * @prop contractAddress Filter by contract address.\n */\nexport const StorageDiffFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n contractAddress: OptionalCodec(FieldElement),\n});\n\nexport type StorageDiffFilter = Readonly<CodecType<typeof StorageDiffFilter>>;\n\n/** Filter declared classes. */\nexport const DeclaredClassFilter = MessageCodec({});\nexport type DeclaredClassFilter = Readonly<\n CodecType<typeof DeclaredClassFilter>\n>;\n\nexport const ReplacedClassFilter = MessageCodec({});\nexport type ReplacedClassFilter = Readonly<\n CodecType<typeof ReplacedClassFilter>\n>;\n\nexport const DeployedContractFilter = MessageCodec({});\nexport type DeployedContractFilter = Readonly<\n CodecType<typeof DeployedContractFilter>\n>;\n\n/** Filter contract changes. */\nexport const ContractChangeFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n change: OptionalCodec(\n OneOfCodec({\n declaredClass: DeclaredClassFilter,\n replacedClass: ReplacedClassFilter,\n deployedContract: DeployedContractFilter,\n }),\n ),\n});\n\nexport type ContractChangeFilter = Readonly<\n CodecType<typeof ContractChangeFilter>\n>;\n\n/** Filter updates to nonces.\n *\n * @prop contractAddress Filter by contract address.\n */\nexport const NonceUpdateFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n contractAddress: OptionalCodec(FieldElement),\n});\n\nexport type NonceUpdateFilter = Readonly<CodecType<typeof NonceUpdateFilter>>;\n\nexport const Filter = MessageCodec({\n header: OptionalCodec(HeaderFilter),\n transactions: OptionalCodec(ArrayCodec(TransactionFilter)),\n events: OptionalCodec(ArrayCodec(EventFilter)),\n messages: OptionalCodec(ArrayCodec(MessageToL1Filter)),\n storageDiffs: OptionalCodec(ArrayCodec(StorageDiffFilter)),\n contractChanges: OptionalCodec(ArrayCodec(ContractChangeFilter)),\n nonceUpdates: OptionalCodec(ArrayCodec(NonceUpdateFilter)),\n});\n\nexport type Filter = Readonly<CodecType<typeof Filter>>;\n\nexport const FilterFromBytes: Codec<Filter, Uint8Array> = {\n encode(x) {\n const filter = Filter.encode(x);\n return proto.filter.Filter.encode(filter).finish();\n },\n decode(p) {\n const filter = proto.filter.Filter.decode(p);\n return Filter.decode(filter);\n },\n};\n\nexport function mergeFilter(a: Filter, b: Filter): Filter {\n const header = mergeHeaderFilter(a.header, b.header);\n return {\n header,\n transactions: [...(a.transactions ?? []), ...(b.transactions ?? [])],\n events: [...(a.events ?? []), ...(b.events ?? [])],\n messages: [...(a.messages ?? []), ...(b.messages ?? [])],\n storageDiffs: [...(a.storageDiffs ?? []), ...(b.storageDiffs ?? [])],\n contractChanges: [\n ...(a.contractChanges ?? []),\n ...(b.contractChanges ?? []),\n ],\n nonceUpdates: [...(a.nonceUpdates ?? []), ...(b.nonceUpdates ?? [])],\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 type { Transaction, TransactionReceipt } from \"./block\";\n\n/** Returns the transaction receipt for the given transaction index. */\nexport function getReceipt(\n transactionIndex: number,\n params:\n | { receipts: readonly TransactionReceipt[] }\n | readonly TransactionReceipt[],\n): TransactionReceipt | undefined {\n const receipts = \"receipts\" in params ? params.receipts : params;\n return binarySearch(\n transactionIndex,\n receipts,\n (receipt) => receipt.meta?.transactionIndex ?? 0,\n );\n}\n\n/** Returns the transaction for the given transaction index. */\nexport function getTransaction(\n transactionIndex: number,\n params: { transactions: readonly Transaction[] } | readonly Transaction[],\n): Transaction | undefined {\n const transactions = \"transactions\" in params ? params.transactions : params;\n return binarySearch(\n transactionIndex,\n transactions,\n (transaction) => transaction.meta?.transactionIndex ?? 0,\n );\n}\n\nfunction binarySearch<T>(\n index: number,\n arr: readonly T[],\n getIndex: (item: T) => number,\n): T | undefined {\n let left = 0;\n let right = arr.length - 1;\n\n while (left <= right) {\n const mid = Math.floor((left + right) / 2);\n const item = arr[mid];\n const itemIndex = getIndex(item);\n\n if (itemIndex === index) {\n return item;\n }\n\n if (itemIndex < index) {\n left = mid + 1;\n } else {\n right = mid - 1;\n }\n }\n}\n","import { keccak } from \"@scure/starknet\";\n\nimport type { FieldElement } from \"./common\";\nimport {\n parseBool,\n parseContractAddress,\n parseFelt252,\n parseU8,\n parseU16,\n parseU32,\n parseU64,\n parseU128,\n parseU256,\n} from \"./parser\";\n\n/** Returns the selector of the provided `name` as a bigint. */\nexport function getBigIntSelector(name: string): bigint {\n const asBytes = new TextEncoder().encode(name);\n return keccak(asBytes);\n}\n\n/** Returns the selector of the provided `name` as a FieldElement. */\nexport function getSelector(name: string): FieldElement {\n const bn = getBigIntSelector(name);\n return `0x${bn.toString(16).padStart(64, \"0\")}`;\n}\n\n/** Returns the selector of the provided event with `name` as a FieldElement.\n *\n * If the name is fully qualified, only the last part is used to compute the selector.\n */\nexport function getEventSelector(name: string): FieldElement {\n const parts = name.split(\"::\");\n return getSelector(parts[parts.length - 1]);\n}\n\nexport const PrimitiveTypeParsers = {\n \"core::bool\": parseBool,\n \"core::felt252\": parseFelt252,\n \"core::integer::u8\": parseU8,\n \"core::integer::u16\": parseU16,\n \"core::integer::u32\": parseU32,\n \"core::integer::u64\": parseU64,\n \"core::integer::u128\": parseU128,\n \"core::integer::u256\": parseU256,\n \"core::starknet::contract_address::ContractAddress\": parseContractAddress,\n};\n\nexport function isPrimitiveType(type: string) {\n return type in PrimitiveTypeParsers;\n}\n\nexport function isArrayType(type: string) {\n return type.startsWith(\"core::array::Array::<\") && type.endsWith(\">\");\n}\n\nexport function getArrayElementType(type: string) {\n return type.slice(\"core::array::Array::<\".length, -1);\n}\n\nexport function isSpanType(type: string) {\n return type.startsWith(\"core::array::Span::<\") && type.endsWith(\">\");\n}\n\nexport function getSpanType(type: string) {\n return type.slice(\"core::array::Span::<\".length, -1);\n}\n\nexport function isOptionType(type: string) {\n return type.startsWith(\"core::option::Option::<\") && type.endsWith(\">\");\n}\n\nexport function getOptionType(type: string) {\n return type.slice(\"core::option::Option::<\".length, -1);\n}\n\nexport function isEmptyType(type: string) {\n return type === \"()\";\n}\n","/*\n\nThis file extends \"abi-wan-kanabi\" to provide a more type-safe way to decode events.\n\nhttps://github.com/keep-starknet-strange/abi-wan-kanabi\n\nThis is free and unencumbered software released into the public domain.\nAnyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.\nIn jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nFor more information, please refer to https://unlicense.org\n\n*/\n\nimport type { Abi } from \"abi-wan-kanabi\";\nimport type {\n AbiEventMember,\n ExtractAbiEvent,\n ExtractAbiEventNames,\n StringToPrimitiveType,\n} from \"abi-wan-kanabi/kanabi\";\n\nexport type AbiEventStruct = {\n type: \"event\";\n name: string;\n kind: \"struct\";\n members: AbiEventMember[];\n};\n\nexport type AbiMember = {\n name: string;\n type: string;\n};\n\nexport type AbiEventEnum = {\n type: \"event\";\n name: string;\n kind: \"enum\";\n variants: AbiEventMember[];\n};\n\nexport type AbiEvent = AbiEventStruct | AbiEventEnum;\n\nexport type AbiItem = Abi[number];\n\nexport type DecodeEventArgs<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n TStrict extends boolean = true,\n> = {\n abi: TAbi;\n eventName: TEventName;\n event: Event;\n strict?: TStrict;\n};\n\nexport type DecodedEvent<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n> = Event & {\n eventName: TEventName;\n args: EventToPrimitiveType<TAbi, TEventName>;\n};\n\nexport type DecodeEventReturn<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n TStrict extends boolean = true,\n> = TStrict extends true\n ? DecodedEvent<TAbi, TEventName>\n : DecodedEvent<TAbi, TEventName> | null;\n\n// Helper type to resolve the payload type of a nested variant.\n// when the type name corresponds to an event; resolves it using EventToPrimitiveType,\nexport type ResolveNestedVariantType<\n TAbi extends Abi,\n TTypeName extends string,\n> = EventToPrimitiveType<TAbi, TTypeName>; // resolve its structure recursively\n\n// Helper type to convert a variant member (nested or flat) into its corresponding tagged union part(s).\nexport type VariantToTaggedUnion<\n TAbi extends Abi,\n TVariant extends AbiEventMember,\n> = TVariant extends { kind: \"nested\" }\n ? // Nested: Use the helper to resolve the payload type.\n { _tag: TVariant[\"name\"] } & {\n [K in TVariant[\"name\"]]: ResolveNestedVariantType<TAbi, TVariant[\"type\"]>;\n }\n : TVariant extends { kind: \"flat\" }\n ? // Flat: Recursively call EventToPrimitiveType on the referenced event type.\n // This will return the union of tagged types for the nested event.\n EventToPrimitiveType<TAbi, TVariant[\"type\"]>\n : never; // Should not happen for valid ABIs\n\n// Main type to convert an event definition (struct or enum) to its TS representation.\nexport type EventToPrimitiveType<\n TAbi extends Abi,\n TEventName extends ExtractAbiEventNames<TAbi>,\n> = ExtractAbiEvent<TAbi, TEventName> extends infer TEventDef\n ? TEventDef extends {\n type: \"event\";\n kind: \"struct\";\n members: infer TMembers extends readonly AbiEventMember[];\n }\n ? // Struct Event: A simple object with member names as keys and their primitive types as values.\n {\n [Member in TMembers[number] as Member[\"name\"]]: StringToPrimitiveType<\n TAbi,\n Member[\"type\"]\n >;\n }\n : TEventDef extends {\n type: \"event\";\n kind: \"enum\";\n variants: infer TVariants extends readonly AbiEventMember[];\n }\n ? // Enum Event: Create a union of all possible tagged types derived from its variants.\n {\n // Map each variant to its corresponding tagged union structure(s).\n [Idx in keyof TVariants]: VariantToTaggedUnion<TAbi, TVariants[Idx]>;\n }[number] // Indexing with [number] converts the tuple of union parts into a single union type.\n : // Explicitly handle empty enum events to ensure the `extends never` check works reliably.\n TEventDef extends { type: \"event\"; kind: \"enum\"; variants: [] }\n ? never\n : // Not an event definition found for TEventName -> never\n never\n : // If the event name is not found in the ABI, return never.\n never;\n\nexport function isEventAbi(item: AbiItem): item is AbiEvent {\n return item.type === \"event\";\n}\n\nexport function isStructEventAbi(item: AbiItem): item is AbiEventStruct {\n return isEventAbi(item) && item.kind === \"struct\";\n}\n\nexport function isEnumEventAbi(item: AbiItem): item is AbiEventEnum {\n return isEventAbi(item) && item.kind === \"enum\";\n}\n","import type { Abi } from \"abi-wan-kanabi\";\nimport type {\n AbiEventMember,\n ExtractAbiEventNames,\n} from \"abi-wan-kanabi/kanabi\";\nimport {\n PrimitiveTypeParsers,\n getArrayElementType,\n getEventSelector,\n getOptionType,\n getSpanType,\n isArrayType,\n isEmptyType,\n isOptionType,\n isPrimitiveType,\n isSpanType,\n} from \"./abi\";\nimport {\n type AbiEvent,\n type AbiEventEnum,\n type AbiEventStruct,\n type AbiMember,\n type EventToPrimitiveType,\n isEnumEventAbi,\n isEventAbi,\n isStructEventAbi,\n} from \"./abi-wan-helpers\";\nimport type { Event } from \"./block\";\nimport {\n ParseError,\n type Parser,\n parseArray,\n parseEmpty,\n parseOption,\n parseSpan,\n parseStruct,\n} from \"./parser\";\n\nexport class DecodeEventError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"DecodeEventError\";\n }\n}\n\nexport type DecodeEventArgs<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n TStrict extends boolean = true,\n> = {\n abi: TAbi;\n eventName: TEventName;\n event: Event;\n strict?: TStrict;\n};\n\nexport type DecodedEvent<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n> = Event & {\n eventName: TEventName;\n args: EventToPrimitiveType<TAbi, TEventName>;\n};\n\nexport type DecodeEventReturn<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n TStrict extends boolean = true,\n> = TStrict extends true\n ? DecodedEvent<TAbi, TEventName>\n : DecodedEvent<TAbi, TEventName> | null;\n\n/** Decodes a single event.\n *\n * If `strict: true`, this function throws on failure. Otherwise, returns null.\n */\nexport function decodeEvent<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n TStrict extends boolean = true,\n>(\n args: DecodeEventArgs<TAbi, TEventName, TStrict>,\n): DecodeEventReturn<TAbi, TEventName, TStrict> {\n const { abi, event, eventName, strict = true } = args;\n\n const eventAbi = abi.find(\n (item) => item.name === eventName && item.type === \"event\",\n );\n\n if (!eventAbi || !isEventAbi(eventAbi)) {\n if (strict) {\n throw new DecodeEventError(`Event ${eventName} not found in ABI`);\n }\n return null as DecodeEventReturn<TAbi, TEventName, TStrict>;\n }\n\n try {\n if (isStructEventAbi(eventAbi)) {\n return decodeStructEvent(abi, eventAbi, event, eventName);\n }\n\n if (isEnumEventAbi(eventAbi)) {\n return decodeEnumEvent(abi, eventAbi, event, eventName);\n }\n\n throw new DecodeEventError(\n `Unsupported event kind: ${(eventAbi as AbiEvent)?.kind}`,\n );\n } catch (error) {\n if (\n (error instanceof DecodeEventError || error instanceof ParseError) &&\n !strict\n ) {\n return null as DecodeEventReturn<TAbi, TEventName, TStrict>;\n }\n\n throw error;\n }\n}\n\nfunction decodeStructEvent<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n>(\n abi: TAbi,\n eventAbi: AbiEventStruct,\n event: Event,\n eventName: TEventName,\n): DecodedEvent<TAbi, TEventName> {\n const selector = BigInt(getEventSelector(eventName));\n if ((event.keys && selector !== BigInt(event.keys[0])) || !event.keys) {\n throw new DecodeEventError(\n `Selector mismatch. Expected ${selector}, got ${event.keys?.[0]}`,\n );\n }\n\n const keysAbi = eventAbi.members.filter((m) => m.kind === \"key\");\n const dataAbi = eventAbi.members.filter((m) => m.kind === \"data\");\n\n const keysParser = compileEventMembers(abi, keysAbi);\n const dataParser = compileEventMembers(abi, dataAbi);\n\n const keysWithoutSelector = event.keys?.slice(1) ?? [];\n\n const { out: decodedKeys } = keysParser(keysWithoutSelector, 0);\n const { out: decodedData } = dataParser(event.data ?? [], 0);\n\n const decoded = {\n ...decodedKeys,\n ...decodedData,\n } as EventToPrimitiveType<TAbi, TEventName>;\n\n return {\n ...event,\n eventName,\n args: decoded,\n } as DecodedEvent<TAbi, TEventName>;\n}\n\nfunction decodeEnumEvent<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n>(\n abi: TAbi,\n eventAbi: AbiEventEnum,\n event: Event,\n eventName: TEventName,\n): DecodedEvent<TAbi, TEventName> {\n if (!event.keys || event.keys.length === 0) {\n throw new DecodeEventError(\n \"Event has no keys; cannot determine variant selector\",\n );\n }\n\n const variants = eventAbi.variants;\n\n const variantSelector = event.keys[0];\n\n // Create a map of all possible selectors to their variant paths\n const selectorToVariant = buildVariantSelectorMap(abi, variants);\n\n // Find the matching variant and path\n const matchingVariant = selectorToVariant[variantSelector];\n\n if (!matchingVariant) {\n throw new DecodeEventError(\n `No matching variant found for selector: ${variantSelector}`,\n );\n }\n\n const structEventAbi = abi.find(\n (item) =>\n item.name === matchingVariant.variant.type && item.type === \"event\",\n );\n\n if (!structEventAbi || !isStructEventAbi(structEventAbi)) {\n throw new DecodeEventError(\n `Nested event type not found or not a struct: ${matchingVariant.variant.type}`,\n );\n }\n\n const decodedStruct = decodeStructEvent(\n abi,\n structEventAbi,\n event,\n matchingVariant.variant.name,\n );\n\n return {\n ...event,\n eventName,\n args: {\n _tag: matchingVariant.variant.name,\n [matchingVariant.variant.name]: decodedStruct.args,\n },\n } as DecodedEvent<TAbi, TEventName>;\n}\n\ntype EnumFlatVariantMap = Record<\n string,\n { variant: AbiEventMember; path: string[] }\n>;\n\n// Helper to build a map of all possible selectors to their variant paths\nfunction buildVariantSelectorMap(\n abi: Abi,\n variants: AbiEventMember[],\n): EnumFlatVariantMap {\n const selectorMap: EnumFlatVariantMap = {};\n\n for (const variant of variants) {\n // For nested events, just map the variant's own selector\n if (variant.kind === \"nested\") {\n const selector = getEventSelector(variant.name);\n selectorMap[selector] = { variant, path: [variant.name] };\n }\n // For flat events, recursively map all possible selectors from the event hierarchy\n else if (variant.kind === \"flat\") {\n const flatEventName = variant.type;\n const flatEventAbi = abi.find(\n (item) => item.name === flatEventName && item.type === \"event\",\n );\n\n // Skip if the flat event type is not found\n if (!flatEventAbi) {\n continue;\n }\n\n if (isEnumEventAbi(flatEventAbi)) {\n // For enum events, recursively map all their variants\n const nestedMap = buildVariantSelectorMap(abi, flatEventAbi.variants);\n\n // Add this variant to the path for all nested selectors\n for (const [\n nestedSelector,\n { variant: nestedVariant, path: nestedPath },\n ] of Object.entries(nestedMap)) {\n selectorMap[nestedSelector] = {\n variant: nestedVariant,\n path: [variant.name, ...nestedPath],\n };\n }\n }\n }\n }\n\n return selectorMap;\n}\n\nfunction compileEventMembers<T extends Record<string, unknown>>(\n abi: Abi,\n members: AbiEventMember[],\n): Parser<T> {\n return compileStructParser(abi, members) as Parser<T>;\n}\n\nfunction compileTypeParser(abi: Abi, type: string): Parser<unknown> {\n if (isPrimitiveType(type)) {\n return PrimitiveTypeParsers[type as keyof typeof PrimitiveTypeParsers];\n }\n\n if (isArrayType(type)) {\n const elementType = getArrayElementType(type);\n return parseArray(compileTypeParser(abi, elementType));\n }\n\n if (isSpanType(type)) {\n const elementType = getSpanType(type);\n return parseSpan(compileTypeParser(abi, elementType));\n }\n\n if (isOptionType(type)) {\n const elementType = getOptionType(type);\n return parseOption(compileTypeParser(abi, elementType));\n }\n\n if (isEmptyType(type)) {\n return parseEmpty;\n }\n\n // Not a well-known type. Look it up in the ABI.\n const typeAbi = abi.find((item) => item.name === type);\n if (!typeAbi) {\n throw new DecodeEventError(`Type ${type} not found in ABI`);\n }\n\n switch (typeAbi.type) {\n case \"struct\": {\n return compileStructParser(abi, typeAbi.members);\n }\n case \"enum\": {\n // This should never happen anyways as compileTypeParser is only called\n // primitive types or to compile structs parsers.\n throw new DecodeEventError(`Enum types are not supported: ${type}`);\n }\n default:\n throw new DecodeEventError(`Invalid type ${typeAbi.type}`);\n }\n}\n\nfunction compileStructParser(\n abi: Abi,\n members: readonly AbiMember[],\n): Parser<unknown> {\n const parsers: Record<string, { index: number; parser: Parser<unknown> }> =\n {};\n for (const [index, member] of members.entries()) {\n parsers[member.name] = {\n index,\n parser: compileTypeParser(abi, member.type),\n };\n }\n return parseStruct(parsers);\n}\n","import { StreamConfig } from \"@apibara/protocol\";\nexport type { Abi } from \"abi-wan-kanabi\";\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 * from \"./access\";\nexport * from \"./event\";\nexport { getBigIntSelector, getEventSelector, getSelector } from \"./abi\";\n\ndeclare module \"abi-wan-kanabi\" {\n interface Config {\n AddressType: `0x${string}`;\n ClassHashType: `0x${string}`;\n FeltType: bigint;\n BigIntType: bigint;\n U256Type: bigint;\n }\n}\n\nexport const StarknetStream = new StreamConfig(\n FilterFromBytes,\n BlockFromBytes,\n mergeFilter,\n \"starknet\",\n);\n"],"names":["FieldElement","protobufPackage","_m0","longToBigint","isSet","Long","TransactionStatus","L1DataAvailabilityMode","ExecutionStatus","PriceUnit","DataAvailabilityMode","CallType","Block","BlockHeader","Transaction","TransactionReceipt","Event","MessageToL1","StorageDiff","ContractChange","NonceUpdate","TransactionTrace","ResourcePrice","TransactionMeta","InvokeTransactionV0","InvokeTransactionV1","InvokeTransactionV3","L1HandlerTransaction","DeployTransaction","DeclareTransactionV0","DeclareTransactionV1","DeclareTransactionV2","DeclareTransactionV3","DeployAccountTransactionV1","DeployAccountTransactionV3","ResourceBoundsMapping","TransactionReceiptMeta","InvokeTransactionReceipt","L1HandlerTransactionReceipt","DeclareTransactionReceipt","DeployTransactionReceipt","DeployAccountTransactionReceipt","FeePayment","ExecutionResources","ExecutionSucceeded","ExecutionReverted","ComputationResources","DataAvailabilityResources","ResourceBounds","StorageEntry","DeclaredClass","ReplacedClass","DeployedContract","InvokeTransactionTrace","DeclareTransactionTrace","DeployAccountTransactionTrace","L1HandlerTransactionTrace","HeaderFilter","TransactionStatusFilter","Filter","TransactionFilter","EventFilter","MessageToL1Filter","StorageDiffFilter","ContractChangeFilter","NonceUpdateFilter","Key","InvokeTransactionV0Filter","InvokeTransactionV1Filter","InvokeTransactionV3Filter","DeployTransactionFilter","DeclareV0TransactionFilter","DeclareV1TransactionFilter","DeclareV2TransactionFilter","DeclareV3TransactionFilter","L1HandlerTransactionFilter","DeployAccountV1TransactionFilter","DeployAccountV3TransactionFilter","DeclaredClassFilter","ReplacedClassFilter","DeployedContractFilter","MessageCodec","OptionalCodec","proto.data.L1DataAvailabilityMode","proto.data.TransactionStatus","RequiredCodec","BigIntCodec","proto.data.DataAvailabilityMode","DateCodec","StringCodec","NumberCodec","ArrayCodec","OneOfCodec","proto.data.PriceUnit","Uint8ArrayCodec","proto.data.CallType","proto.data.Block","proto.filter.HeaderFilter","proto.filter.TransactionStatusFilter","BooleanCodec","proto.filter.Filter","keccak","parseBool","parseFelt252","parseU8","parseU16","parseU32","parseU64","parseU128","parseU256","parseContractAddress","ParseError","parseArray","parseSpan","parseOption","parseEmpty","parseStruct","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/access.ts","../src/abi.ts","../src/abi-wan-helpers.ts","../src/event.ts","../src/index.ts"],"sourcesContent":["import type { Codec, CodecType } from \"@apibara/protocol/codec\";\nimport type * as proto from \"./proto\";\n\nconst MAX_U64 = 0xffffffffffffffffn;\n\nexport const FieldElement: Codec<`0x${string}`, proto.common.FieldElement> = {\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 FieldElement = CodecType<typeof FieldElement>;\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 = \"starknet.v2\";\n\n/** A field element. */\nexport interface FieldElement {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n readonly x2?: bigint | undefined;\n readonly x3?: bigint | undefined;\n}\n\nfunction createBaseFieldElement(): FieldElement {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\"), x2: BigInt(\"0\"), x3: BigInt(\"0\") };\n}\n\nexport const FieldElement = {\n encode(message: FieldElement, 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): FieldElement {\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 = createBaseFieldElement() 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): FieldElement {\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: FieldElement): 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<FieldElement>): FieldElement {\n return FieldElement.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<FieldElement>): FieldElement {\n const message = createBaseFieldElement() 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\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 { FieldElement } from \"./common.js\";\nimport { Timestamp } from \"./google/protobuf/timestamp.js\";\n\nexport const protobufPackage = \"starknet.v2\";\n\n/** Starknet 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 L1DataAvailabilityMode {\n /** UNSPECIFIED - Unknown DA. */\n UNSPECIFIED = 0,\n /** BLOB - Data published via blobs. */\n BLOB = 1,\n /** CALLDATA - Data published via calldata. */\n CALLDATA = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function l1DataAvailabilityModeFromJSON(object: any): L1DataAvailabilityMode {\n switch (object) {\n case 0:\n case \"L1_DATA_AVAILABILITY_MODE_UNSPECIFIED\":\n return L1DataAvailabilityMode.UNSPECIFIED;\n case 1:\n case \"L1_DATA_AVAILABILITY_MODE_BLOB\":\n return L1DataAvailabilityMode.BLOB;\n case 2:\n case \"L1_DATA_AVAILABILITY_MODE_CALLDATA\":\n return L1DataAvailabilityMode.CALLDATA;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return L1DataAvailabilityMode.UNRECOGNIZED;\n }\n}\n\nexport function l1DataAvailabilityModeToJSON(object: L1DataAvailabilityMode): string {\n switch (object) {\n case L1DataAvailabilityMode.UNSPECIFIED:\n return \"L1_DATA_AVAILABILITY_MODE_UNSPECIFIED\";\n case L1DataAvailabilityMode.BLOB:\n return \"L1_DATA_AVAILABILITY_MODE_BLOB\";\n case L1DataAvailabilityMode.CALLDATA:\n return \"L1_DATA_AVAILABILITY_MODE_CALLDATA\";\n case L1DataAvailabilityMode.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\n/** Transaction execution status. */\nexport enum ExecutionStatus {\n /** UNSPECIFIED - Unknown execution status. */\n UNSPECIFIED = 0,\n /** SUCCEEDED - Transaction succeeded. */\n SUCCEEDED = 1,\n /** REVERTED - Transaction reverted. */\n REVERTED = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function executionStatusFromJSON(object: any): ExecutionStatus {\n switch (object) {\n case 0:\n case \"EXECUTION_STATUS_UNSPECIFIED\":\n return ExecutionStatus.UNSPECIFIED;\n case 1:\n case \"EXECUTION_STATUS_SUCCEEDED\":\n return ExecutionStatus.SUCCEEDED;\n case 2:\n case \"EXECUTION_STATUS_REVERTED\":\n return ExecutionStatus.REVERTED;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ExecutionStatus.UNRECOGNIZED;\n }\n}\n\nexport function executionStatusToJSON(object: ExecutionStatus): string {\n switch (object) {\n case ExecutionStatus.UNSPECIFIED:\n return \"EXECUTION_STATUS_UNSPECIFIED\";\n case ExecutionStatus.SUCCEEDED:\n return \"EXECUTION_STATUS_SUCCEEDED\";\n case ExecutionStatus.REVERTED:\n return \"EXECUTION_STATUS_REVERTED\";\n case ExecutionStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\n/** Price unit. */\nexport enum PriceUnit {\n /** UNSPECIFIED - Unknown price unit. */\n UNSPECIFIED = 0,\n /** WEI - WEI. */\n WEI = 1,\n /** FRI - FRI. */\n FRI = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function priceUnitFromJSON(object: any): PriceUnit {\n switch (object) {\n case 0:\n case \"PRICE_UNIT_UNSPECIFIED\":\n return PriceUnit.UNSPECIFIED;\n case 1:\n case \"PRICE_UNIT_WEI\":\n return PriceUnit.WEI;\n case 2:\n case \"PRICE_UNIT_FRI\":\n return PriceUnit.FRI;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return PriceUnit.UNRECOGNIZED;\n }\n}\n\nexport function priceUnitToJSON(object: PriceUnit): string {\n switch (object) {\n case PriceUnit.UNSPECIFIED:\n return \"PRICE_UNIT_UNSPECIFIED\";\n case PriceUnit.WEI:\n return \"PRICE_UNIT_WEI\";\n case PriceUnit.FRI:\n return \"PRICE_UNIT_FRI\";\n case PriceUnit.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\n/** DA mode. */\nexport enum DataAvailabilityMode {\n /** UNSPECIFIED - Unknown DA. */\n UNSPECIFIED = 0,\n /** L1 - L1. */\n L1 = 1,\n /** L2 - L2. */\n L2 = 2,\n UNRECOGNIZED = -1,\n}\n\nexport function dataAvailabilityModeFromJSON(object: any): DataAvailabilityMode {\n switch (object) {\n case 0:\n case \"DATA_AVAILABILITY_MODE_UNSPECIFIED\":\n return DataAvailabilityMode.UNSPECIFIED;\n case 1:\n case \"DATA_AVAILABILITY_MODE_L1\":\n return DataAvailabilityMode.L1;\n case 2:\n case \"DATA_AVAILABILITY_MODE_L2\":\n return DataAvailabilityMode.L2;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return DataAvailabilityMode.UNRECOGNIZED;\n }\n}\n\nexport function dataAvailabilityModeToJSON(object: DataAvailabilityMode): string {\n switch (object) {\n case DataAvailabilityMode.UNSPECIFIED:\n return \"DATA_AVAILABILITY_MODE_UNSPECIFIED\";\n case DataAvailabilityMode.L1:\n return \"DATA_AVAILABILITY_MODE_L1\";\n case DataAvailabilityMode.L2:\n return \"DATA_AVAILABILITY_MODE_L2\";\n case DataAvailabilityMode.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n\nexport enum CallType {\n UNSPECIFIED = 0,\n LIBRARY_CALL = 1,\n CALL = 2,\n DELEGATE = 3,\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_LIBRARY_CALL\":\n return CallType.LIBRARY_CALL;\n case 2:\n case \"CALL_TYPE_CALL\":\n return CallType.CALL;\n case 3:\n case \"CALL_TYPE_DELEGATE\":\n return CallType.DELEGATE;\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.LIBRARY_CALL:\n return \"CALL_TYPE_LIBRARY_CALL\";\n case CallType.CALL:\n return \"CALL_TYPE_CALL\";\n case CallType.DELEGATE:\n return \"CALL_TYPE_DELEGATE\";\n case CallType.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 transactions. */\n readonly transactions?:\n | readonly Transaction[]\n | undefined;\n /** List of transactions receipts. */\n readonly receipts?:\n | readonly TransactionReceipt[]\n | undefined;\n /** List of events. */\n readonly events?:\n | readonly Event[]\n | undefined;\n /** List of messages. */\n readonly messages?:\n | readonly MessageToL1[]\n | undefined;\n /** List of storage changes by contract. */\n readonly storageDiffs?:\n | readonly StorageDiff[]\n | undefined;\n /** List of contract/class changes. */\n readonly contractChanges?:\n | readonly ContractChange[]\n | undefined;\n /** List of nonce updates. */\n readonly nonceUpdates?:\n | readonly NonceUpdate[]\n | undefined;\n /** List of transaction traces. */\n readonly traces?: readonly TransactionTrace[] | undefined;\n}\n\n/** Block header. */\nexport interface BlockHeader {\n /** Hash of the block. */\n readonly blockHash?:\n | FieldElement\n | undefined;\n /** Hash of the block's parent. */\n readonly parentBlockHash?:\n | FieldElement\n | undefined;\n /** Block height. */\n readonly blockNumber?:\n | bigint\n | undefined;\n /** Sequencer address. */\n readonly sequencerAddress?:\n | FieldElement\n | undefined;\n /** New state root after the block. */\n readonly newRoot?:\n | FieldElement\n | undefined;\n /** Timestamp when block was produced. */\n readonly timestamp?:\n | Date\n | undefined;\n /** Starknet version. */\n readonly starknetVersion?:\n | string\n | undefined;\n /** Price of L1 gas in the block. */\n readonly l1GasPrice?:\n | ResourcePrice\n | undefined;\n /** Price of L1 data gas in the block. */\n readonly l1DataGasPrice?:\n | ResourcePrice\n | undefined;\n /** L1 data availability mode. */\n readonly l1DataAvailabilityMode?: L1DataAvailabilityMode | undefined;\n}\n\n/** A transaction. */\nexport interface Transaction {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Common transaction metadata. */\n readonly meta?: TransactionMeta | undefined;\n readonly transaction?:\n | { readonly $case: \"invokeV0\"; readonly invokeV0: InvokeTransactionV0 }\n | { readonly $case: \"invokeV1\"; readonly invokeV1: InvokeTransactionV1 }\n | { readonly $case: \"invokeV3\"; readonly invokeV3: InvokeTransactionV3 }\n | { readonly $case: \"l1Handler\"; readonly l1Handler: L1HandlerTransaction }\n | { readonly $case: \"deploy\"; readonly deploy: DeployTransaction }\n | { readonly $case: \"declareV0\"; readonly declareV0: DeclareTransactionV0 }\n | { readonly $case: \"declareV1\"; readonly declareV1: DeclareTransactionV1 }\n | { readonly $case: \"declareV2\"; readonly declareV2: DeclareTransactionV2 }\n | { readonly $case: \"declareV3\"; readonly declareV3: DeclareTransactionV3 }\n | { readonly $case: \"deployAccountV1\"; readonly deployAccountV1: DeployAccountTransactionV1 }\n | { readonly $case: \"deployAccountV3\"; readonly deployAccountV3: DeployAccountTransactionV3 }\n | undefined;\n}\n\nexport interface TransactionMeta {\n /** Transaction index. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | FieldElement\n | undefined;\n /** Transaction status. */\n readonly transactionStatus?: TransactionStatus | undefined;\n}\n\nexport interface InvokeTransactionV0 {\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly contractAddress?: FieldElement | undefined;\n readonly entryPointSelector?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n}\n\nexport interface InvokeTransactionV1 {\n readonly senderAddress?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n}\n\nexport interface InvokeTransactionV3 {\n readonly senderAddress?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly resourceBounds?: ResourceBoundsMapping | undefined;\n readonly tip?: bigint | undefined;\n readonly paymasterData?: readonly FieldElement[] | undefined;\n readonly accountDeploymentData?: readonly FieldElement[] | undefined;\n readonly nonceDataAvailabilityMode?: DataAvailabilityMode | undefined;\n readonly feeDataAvailabilityMode?: DataAvailabilityMode | undefined;\n}\n\nexport interface L1HandlerTransaction {\n readonly nonce?: bigint | undefined;\n readonly contractAddress?: FieldElement | undefined;\n readonly entryPointSelector?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n}\n\nexport interface DeployTransaction {\n readonly contractAddressSalt?: FieldElement | undefined;\n readonly constructorCalldata?: readonly FieldElement[] | undefined;\n readonly classHash?: FieldElement | undefined;\n}\n\nexport interface DeclareTransactionV0 {\n readonly senderAddress?: FieldElement | undefined;\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly classHash?: FieldElement | undefined;\n}\n\nexport interface DeclareTransactionV1 {\n readonly senderAddress?: FieldElement | undefined;\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly classHash?: FieldElement | undefined;\n}\n\nexport interface DeclareTransactionV2 {\n readonly senderAddress?: FieldElement | undefined;\n readonly compiledClassHash?: FieldElement | undefined;\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly classHash?: FieldElement | undefined;\n}\n\nexport interface DeclareTransactionV3 {\n readonly senderAddress?: FieldElement | undefined;\n readonly compiledClassHash?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly classHash?: FieldElement | undefined;\n readonly resourceBounds?: ResourceBoundsMapping | undefined;\n readonly tip?: bigint | undefined;\n readonly paymasterData?: readonly FieldElement[] | undefined;\n readonly accountDeploymentData?: readonly FieldElement[] | undefined;\n readonly nonceDataAvailabilityMode?: DataAvailabilityMode | undefined;\n readonly feeDataAvailabilityMode?: DataAvailabilityMode | undefined;\n}\n\nexport interface DeployAccountTransactionV1 {\n readonly maxFee?: FieldElement | undefined;\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly contractAddressSalt?: FieldElement | undefined;\n readonly constructorCalldata?: readonly FieldElement[] | undefined;\n readonly classHash?: FieldElement | undefined;\n}\n\nexport interface DeployAccountTransactionV3 {\n readonly signature?: readonly FieldElement[] | undefined;\n readonly nonce?: FieldElement | undefined;\n readonly contractAddressSalt?: FieldElement | undefined;\n readonly constructorCalldata?: readonly FieldElement[] | undefined;\n readonly classHash?: FieldElement | undefined;\n readonly resourceBounds?: ResourceBoundsMapping | undefined;\n readonly tip?: bigint | undefined;\n readonly paymasterData?: readonly FieldElement[] | undefined;\n readonly nonceDataAvailabilityMode?: DataAvailabilityMode | undefined;\n readonly feeDataAvailabilityMode?: DataAvailabilityMode | undefined;\n}\n\nexport interface TransactionReceipt {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Common transaction receipt metadata. */\n readonly meta?: TransactionReceiptMeta | undefined;\n readonly receipt?:\n | { readonly $case: \"invoke\"; readonly invoke: InvokeTransactionReceipt }\n | { readonly $case: \"l1Handler\"; readonly l1Handler: L1HandlerTransactionReceipt }\n | { readonly $case: \"declare\"; readonly declare: DeclareTransactionReceipt }\n | { readonly $case: \"deploy\"; readonly deploy: DeployTransactionReceipt }\n | { readonly $case: \"deployAccount\"; readonly deployAccount: DeployAccountTransactionReceipt }\n | undefined;\n}\n\nexport interface TransactionReceiptMeta {\n readonly transactionIndex?: number | undefined;\n readonly transactionHash?: FieldElement | undefined;\n readonly actualFee?: FeePayment | undefined;\n readonly executionResources?: ExecutionResources | undefined;\n readonly executionResult?: { readonly $case: \"succeeded\"; readonly succeeded: ExecutionSucceeded } | {\n readonly $case: \"reverted\";\n readonly reverted: ExecutionReverted;\n } | undefined;\n}\n\nexport interface ExecutionSucceeded {\n}\n\nexport interface ExecutionReverted {\n readonly reason?: string | undefined;\n}\n\nexport interface InvokeTransactionReceipt {\n}\n\nexport interface L1HandlerTransactionReceipt {\n readonly messageHash?: Uint8Array | undefined;\n}\n\nexport interface DeclareTransactionReceipt {\n}\n\nexport interface DeployTransactionReceipt {\n readonly contractAddress?: FieldElement | undefined;\n}\n\nexport interface DeployAccountTransactionReceipt {\n readonly contractAddress?: FieldElement | undefined;\n}\n\n/** Transaction events. */\nexport interface Event {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** The contract that emitted the event. */\n readonly address?:\n | FieldElement\n | undefined;\n /** The event keys. */\n readonly keys?:\n | readonly FieldElement[]\n | undefined;\n /** The event data. */\n readonly data?:\n | readonly FieldElement[]\n | undefined;\n /** The event index. */\n readonly eventIndex?:\n | number\n | undefined;\n /** Transaction index. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | FieldElement\n | undefined;\n /** Transaction status. */\n readonly transactionStatus?:\n | TransactionStatus\n | undefined;\n /** Event index in the transaction. */\n readonly eventIndexInTransaction?: number | undefined;\n}\n\nexport interface MessageToL1 {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** The contract sending the message. */\n readonly fromAddress?:\n | FieldElement\n | undefined;\n /** Target address. */\n readonly toAddress?:\n | FieldElement\n | undefined;\n /** Message payload. */\n readonly payload?:\n | readonly FieldElement[]\n | undefined;\n /** Message index. */\n readonly messageIndex?:\n | number\n | undefined;\n /** Transaction index. */\n readonly transactionIndex?:\n | number\n | undefined;\n /** Transaction hash. */\n readonly transactionHash?:\n | FieldElement\n | undefined;\n /** Transaction status. */\n readonly transactionStatus?:\n | TransactionStatus\n | undefined;\n /** Message index in the transaction. */\n readonly messageIndexInTransaction?: number | undefined;\n}\n\n/** Price of a unit of a resource. */\nexport interface ResourcePrice {\n /** Price in fri (10^-18 strk). */\n readonly priceInFri?:\n | FieldElement\n | undefined;\n /** Price in wei (10^-18 eth). */\n readonly priceInWei?: FieldElement | undefined;\n}\n\n/** A Starknet fee payment. */\nexport interface FeePayment {\n /** Amount paid. */\n readonly amount?:\n | FieldElement\n | undefined;\n /** Unit of the amount. */\n readonly unit?: PriceUnit | undefined;\n}\n\n/** Execution resources. */\nexport interface ExecutionResources {\n /** Computation resources. */\n readonly computation?:\n | ComputationResources\n | undefined;\n /** Data availability resources. */\n readonly dataAvailability?: DataAvailabilityResources | undefined;\n}\n\n/** Computation resources. */\nexport interface ComputationResources {\n /** The number of Cairo steps used. */\n readonly steps?:\n | bigint\n | undefined;\n /** The number of unused memory cells. */\n readonly memoryHoles?:\n | bigint\n | undefined;\n /** The number of RANGE_CHECK builtin instances. */\n readonly rangeCheckBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of Pedersen builtin instances. */\n readonly pedersenBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of Poseidon builtin instances. */\n readonly poseidonBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of EC_OP builtin instances. */\n readonly ecOpBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of ECDSA builtin instances. */\n readonly ecdsaBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of BITWISE builtin instances. */\n readonly bitwiseBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of KECCAK builtin instances. */\n readonly keccakBuiltinApplications?:\n | bigint\n | undefined;\n /** The number of accesses to the segment arena. */\n readonly segmentArenaBuiltin?: bigint | undefined;\n}\n\nexport interface DataAvailabilityResources {\n /** The gas consumed by this transaction's data, 0 if it uses data gas for DA. */\n readonly l1Gas?:\n | bigint\n | undefined;\n /** The data gas consumed by this transaction's data, 0 if it uses gas for DA. */\n readonly l1DataGas?: bigint | undefined;\n}\n\nexport interface ResourceBoundsMapping {\n /** Maximum amount and price of L1 gas. */\n readonly l1Gas?:\n | ResourceBounds\n | undefined;\n /** Maximum amount and price of L2 gas. */\n readonly l2Gas?: ResourceBounds | undefined;\n}\n\nexport interface ResourceBounds {\n /** The maximum amount of resources that can be consumed by a transaction. */\n readonly maxAmount?:\n | bigint\n | undefined;\n /** / The max price per unit of resource. */\n readonly maxPricePerUnit?: Uint128 | undefined;\n}\n\nexport interface Uint128 {\n readonly x0?: bigint | undefined;\n readonly x1?: bigint | undefined;\n}\n\n/** Difference in storage values for a contract. */\nexport interface StorageDiff {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** The contract address. */\n readonly contractAddress?:\n | FieldElement\n | undefined;\n /** Entries that changed. */\n readonly storageEntries?: readonly StorageEntry[] | undefined;\n}\n\n/** Storage entry. */\nexport interface StorageEntry {\n /** Storage location. */\n readonly key?:\n | FieldElement\n | undefined;\n /** Storage value. */\n readonly value?: FieldElement | undefined;\n}\n\n/** A class/contract change. */\nexport interface ContractChange {\n readonly filterIds?: readonly number[] | undefined;\n readonly change?:\n | { readonly $case: \"declaredClass\"; readonly declaredClass: DeclaredClass }\n | { readonly $case: \"replacedClass\"; readonly replacedClass: ReplacedClass }\n | { readonly $case: \"deployedContract\"; readonly deployedContract: DeployedContract }\n | undefined;\n}\n\n/** Class declared. */\nexport interface DeclaredClass {\n /** Class hash of the newly declared class. */\n readonly classHash?:\n | FieldElement\n | undefined;\n /**\n * Hash of the cairo assembly resulting from the sierra compilation.\n *\n * If undefined, it's the result of a deprecated Cairo 0 declaration.\n */\n readonly compiledClassHash?: FieldElement | undefined;\n}\n\n/** Class replaced. */\nexport interface ReplacedClass {\n /** The address of the contract whose class was replaced. */\n readonly contractAddress?:\n | FieldElement\n | undefined;\n /** The new class hash. */\n readonly classHash?: FieldElement | undefined;\n}\n\n/** Contract deployed. */\nexport interface DeployedContract {\n /** Address of the newly deployed contract. */\n readonly contractAddress?:\n | FieldElement\n | undefined;\n /** Class hash of the deployed contract. */\n readonly classHash?: FieldElement | undefined;\n}\n\n/** Nonce update. */\nexport interface NonceUpdate {\n readonly filterIds?:\n | readonly number[]\n | undefined;\n /** Contract address. */\n readonly contractAddress?:\n | FieldElement\n | undefined;\n /** New nonce value. */\n readonly nonce?: FieldElement | 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?: FieldElement | undefined;\n readonly traceRoot?:\n | { readonly $case: \"invoke\"; readonly invoke: InvokeTransactionTrace }\n | { readonly $case: \"declare\"; readonly declare: DeclareTransactionTrace }\n | { readonly $case: \"deployAccount\"; readonly deployAccount: DeployAccountTransactionTrace }\n | { readonly $case: \"l1Handler\"; readonly l1Handler: L1HandlerTransactionTrace }\n | undefined;\n}\n\nexport interface InvokeTransactionTrace {\n readonly validateInvocation?: FunctionInvocation | undefined;\n readonly executeInvocation?: { readonly $case: \"success\"; readonly success: FunctionInvocation } | {\n readonly $case: \"reverted\";\n readonly reverted: ExecutionReverted;\n } | undefined;\n readonly feeTransferInvocation?: FunctionInvocation | undefined;\n}\n\nexport interface DeclareTransactionTrace {\n readonly validateInvocation?: FunctionInvocation | undefined;\n readonly feeTransferInvocation?: FunctionInvocation | undefined;\n}\n\nexport interface DeployAccountTransactionTrace {\n readonly validateInvocation?: FunctionInvocation | undefined;\n readonly constructorInvocation?: FunctionInvocation | undefined;\n readonly feeTransferInvocation?: FunctionInvocation | undefined;\n}\n\nexport interface L1HandlerTransactionTrace {\n readonly functionInvocation?: FunctionInvocation | undefined;\n}\n\nexport interface FunctionInvocation {\n readonly contractAddress?: FieldElement | undefined;\n readonly entryPointSelector?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n readonly callerAddress?: FieldElement | undefined;\n readonly classHash?: FieldElement | undefined;\n readonly callType?: CallType | undefined;\n readonly result?: readonly FieldElement[] | undefined;\n readonly calls?: readonly FunctionInvocation[] | undefined;\n readonly events?: readonly number[] | undefined;\n readonly messages?: readonly number[] | undefined;\n}\n\nexport interface FunctionCall {\n readonly contractAddress?: FieldElement | undefined;\n readonly entryPointSelector?: FieldElement | undefined;\n readonly calldata?: readonly FieldElement[] | undefined;\n}\n\nfunction createBaseBlock(): Block {\n return {\n header: undefined,\n transactions: [],\n receipts: [],\n events: [],\n messages: [],\n storageDiffs: [],\n contractChanges: [],\n nonceUpdates: [],\n traces: [],\n };\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.transactions !== undefined && message.transactions.length !== 0) {\n for (const v of message.transactions) {\n Transaction.encode(v!, writer.uint32(18).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(26).fork()).ldelim();\n }\n }\n if (message.events !== undefined && message.events.length !== 0) {\n for (const v of message.events) {\n Event.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.messages !== undefined && message.messages.length !== 0) {\n for (const v of message.messages) {\n MessageToL1.encode(v!, writer.uint32(42).fork()).ldelim();\n }\n }\n if (message.storageDiffs !== undefined && message.storageDiffs.length !== 0) {\n for (const v of message.storageDiffs) {\n StorageDiff.encode(v!, writer.uint32(50).fork()).ldelim();\n }\n }\n if (message.contractChanges !== undefined && message.contractChanges.length !== 0) {\n for (const v of message.contractChanges) {\n ContractChange.encode(v!, writer.uint32(58).fork()).ldelim();\n }\n }\n if (message.nonceUpdates !== undefined && message.nonceUpdates.length !== 0) {\n for (const v of message.nonceUpdates) {\n NonceUpdate.encode(v!, writer.uint32(66).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(74).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.transactions!.push(Transaction.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.receipts!.push(TransactionReceipt.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.events!.push(Event.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.messages!.push(MessageToL1.decode(reader, reader.uint32()));\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.storageDiffs!.push(StorageDiff.decode(reader, reader.uint32()));\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.contractChanges!.push(ContractChange.decode(reader, reader.uint32()));\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.nonceUpdates!.push(NonceUpdate.decode(reader, reader.uint32()));\n continue;\n case 9:\n if (tag !== 74) {\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 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 events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => Event.fromJSON(e)) : [],\n messages: globalThis.Array.isArray(object?.messages)\n ? object.messages.map((e: any) => MessageToL1.fromJSON(e))\n : [],\n storageDiffs: globalThis.Array.isArray(object?.storageDiffs)\n ? object.storageDiffs.map((e: any) => StorageDiff.fromJSON(e))\n : [],\n contractChanges: globalThis.Array.isArray(object?.contractChanges)\n ? object.contractChanges.map((e: any) => ContractChange.fromJSON(e))\n : [],\n nonceUpdates: globalThis.Array.isArray(object?.nonceUpdates)\n ? object.nonceUpdates.map((e: any) => NonceUpdate.fromJSON(e))\n : [],\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.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.events?.length) {\n obj.events = message.events.map((e) => Event.toJSON(e));\n }\n if (message.messages?.length) {\n obj.messages = message.messages.map((e) => MessageToL1.toJSON(e));\n }\n if (message.storageDiffs?.length) {\n obj.storageDiffs = message.storageDiffs.map((e) => StorageDiff.toJSON(e));\n }\n if (message.contractChanges?.length) {\n obj.contractChanges = message.contractChanges.map((e) => ContractChange.toJSON(e));\n }\n if (message.nonceUpdates?.length) {\n obj.nonceUpdates = message.nonceUpdates.map((e) => NonceUpdate.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.transactions = object.transactions?.map((e) => Transaction.fromPartial(e)) || [];\n message.receipts = object.receipts?.map((e) => TransactionReceipt.fromPartial(e)) || [];\n message.events = object.events?.map((e) => Event.fromPartial(e)) || [];\n message.messages = object.messages?.map((e) => MessageToL1.fromPartial(e)) || [];\n message.storageDiffs = object.storageDiffs?.map((e) => StorageDiff.fromPartial(e)) || [];\n message.contractChanges = object.contractChanges?.map((e) => ContractChange.fromPartial(e)) || [];\n message.nonceUpdates = object.nonceUpdates?.map((e) => NonceUpdate.fromPartial(e)) || [];\n message.traces = object.traces?.map((e) => TransactionTrace.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseBlockHeader(): BlockHeader {\n return {\n blockHash: undefined,\n parentBlockHash: undefined,\n blockNumber: BigInt(\"0\"),\n sequencerAddress: undefined,\n newRoot: undefined,\n timestamp: undefined,\n starknetVersion: \"\",\n l1GasPrice: undefined,\n l1DataGasPrice: undefined,\n l1DataAvailabilityMode: 0,\n };\n}\n\nexport const BlockHeader = {\n encode(message: BlockHeader, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.blockHash !== undefined) {\n FieldElement.encode(message.blockHash, writer.uint32(10).fork()).ldelim();\n }\n if (message.parentBlockHash !== undefined) {\n FieldElement.encode(message.parentBlockHash, writer.uint32(18).fork()).ldelim();\n }\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(24).uint64(message.blockNumber.toString());\n }\n if (message.sequencerAddress !== undefined) {\n FieldElement.encode(message.sequencerAddress, writer.uint32(34).fork()).ldelim();\n }\n if (message.newRoot !== undefined) {\n FieldElement.encode(message.newRoot, writer.uint32(42).fork()).ldelim();\n }\n if (message.timestamp !== undefined) {\n Timestamp.encode(toTimestamp(message.timestamp), writer.uint32(50).fork()).ldelim();\n }\n if (message.starknetVersion !== undefined && message.starknetVersion !== \"\") {\n writer.uint32(58).string(message.starknetVersion);\n }\n if (message.l1GasPrice !== undefined) {\n ResourcePrice.encode(message.l1GasPrice, writer.uint32(66).fork()).ldelim();\n }\n if (message.l1DataGasPrice !== undefined) {\n ResourcePrice.encode(message.l1DataGasPrice, writer.uint32(74).fork()).ldelim();\n }\n if (message.l1DataAvailabilityMode !== undefined && message.l1DataAvailabilityMode !== 0) {\n writer.uint32(80).int32(message.l1DataAvailabilityMode);\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 !== 10) {\n break;\n }\n\n message.blockHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.parentBlockHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.blockNumber = longToBigint(reader.uint64() as Long);\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.sequencerAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.newRoot = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.timestamp = fromTimestamp(Timestamp.decode(reader, reader.uint32()));\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.starknetVersion = reader.string();\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.l1GasPrice = ResourcePrice.decode(reader, reader.uint32());\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.l1DataGasPrice = ResourcePrice.decode(reader, reader.uint32());\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n\n message.l1DataAvailabilityMode = 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): BlockHeader {\n return {\n blockHash: isSet(object.blockHash) ? FieldElement.fromJSON(object.blockHash) : undefined,\n parentBlockHash: isSet(object.parentBlockHash) ? FieldElement.fromJSON(object.parentBlockHash) : undefined,\n blockNumber: isSet(object.blockNumber) ? BigInt(object.blockNumber) : BigInt(\"0\"),\n sequencerAddress: isSet(object.sequencerAddress) ? FieldElement.fromJSON(object.sequencerAddress) : undefined,\n newRoot: isSet(object.newRoot) ? FieldElement.fromJSON(object.newRoot) : undefined,\n timestamp: isSet(object.timestamp) ? fromJsonTimestamp(object.timestamp) : undefined,\n starknetVersion: isSet(object.starknetVersion) ? globalThis.String(object.starknetVersion) : \"\",\n l1GasPrice: isSet(object.l1GasPrice) ? ResourcePrice.fromJSON(object.l1GasPrice) : undefined,\n l1DataGasPrice: isSet(object.l1DataGasPrice) ? ResourcePrice.fromJSON(object.l1DataGasPrice) : undefined,\n l1DataAvailabilityMode: isSet(object.l1DataAvailabilityMode)\n ? l1DataAvailabilityModeFromJSON(object.l1DataAvailabilityMode)\n : 0,\n };\n },\n\n toJSON(message: BlockHeader): unknown {\n const obj: any = {};\n if (message.blockHash !== undefined) {\n obj.blockHash = FieldElement.toJSON(message.blockHash);\n }\n if (message.parentBlockHash !== undefined) {\n obj.parentBlockHash = FieldElement.toJSON(message.parentBlockHash);\n }\n if (message.blockNumber !== undefined && message.blockNumber !== BigInt(\"0\")) {\n obj.blockNumber = message.blockNumber.toString();\n }\n if (message.sequencerAddress !== undefined) {\n obj.sequencerAddress = FieldElement.toJSON(message.sequencerAddress);\n }\n if (message.newRoot !== undefined) {\n obj.newRoot = FieldElement.toJSON(message.newRoot);\n }\n if (message.timestamp !== undefined) {\n obj.timestamp = message.timestamp.toISOString();\n }\n if (message.starknetVersion !== undefined && message.starknetVersion !== \"\") {\n obj.starknetVersion = message.starknetVersion;\n }\n if (message.l1GasPrice !== undefined) {\n obj.l1GasPrice = ResourcePrice.toJSON(message.l1GasPrice);\n }\n if (message.l1DataGasPrice !== undefined) {\n obj.l1DataGasPrice = ResourcePrice.toJSON(message.l1DataGasPrice);\n }\n if (message.l1DataAvailabilityMode !== undefined && message.l1DataAvailabilityMode !== 0) {\n obj.l1DataAvailabilityMode = l1DataAvailabilityModeToJSON(message.l1DataAvailabilityMode);\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.blockHash = (object.blockHash !== undefined && object.blockHash !== null)\n ? FieldElement.fromPartial(object.blockHash)\n : undefined;\n message.parentBlockHash = (object.parentBlockHash !== undefined && object.parentBlockHash !== null)\n ? FieldElement.fromPartial(object.parentBlockHash)\n : undefined;\n message.blockNumber = object.blockNumber ?? BigInt(\"0\");\n message.sequencerAddress = (object.sequencerAddress !== undefined && object.sequencerAddress !== null)\n ? FieldElement.fromPartial(object.sequencerAddress)\n : undefined;\n message.newRoot = (object.newRoot !== undefined && object.newRoot !== null)\n ? FieldElement.fromPartial(object.newRoot)\n : undefined;\n message.timestamp = object.timestamp ?? undefined;\n message.starknetVersion = object.starknetVersion ?? \"\";\n message.l1GasPrice = (object.l1GasPrice !== undefined && object.l1GasPrice !== null)\n ? ResourcePrice.fromPartial(object.l1GasPrice)\n : undefined;\n message.l1DataGasPrice = (object.l1DataGasPrice !== undefined && object.l1DataGasPrice !== null)\n ? ResourcePrice.fromPartial(object.l1DataGasPrice)\n : undefined;\n message.l1DataAvailabilityMode = object.l1DataAvailabilityMode ?? 0;\n return message;\n },\n};\n\nfunction createBaseTransaction(): Transaction {\n return { filterIds: [], meta: undefined, transaction: undefined };\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.meta !== undefined) {\n TransactionMeta.encode(message.meta, writer.uint32(18).fork()).ldelim();\n }\n switch (message.transaction?.$case) {\n case \"invokeV0\":\n InvokeTransactionV0.encode(message.transaction.invokeV0, writer.uint32(26).fork()).ldelim();\n break;\n case \"invokeV1\":\n InvokeTransactionV1.encode(message.transaction.invokeV1, writer.uint32(34).fork()).ldelim();\n break;\n case \"invokeV3\":\n InvokeTransactionV3.encode(message.transaction.invokeV3, writer.uint32(42).fork()).ldelim();\n break;\n case \"l1Handler\":\n L1HandlerTransaction.encode(message.transaction.l1Handler, writer.uint32(50).fork()).ldelim();\n break;\n case \"deploy\":\n DeployTransaction.encode(message.transaction.deploy, writer.uint32(58).fork()).ldelim();\n break;\n case \"declareV0\":\n DeclareTransactionV0.encode(message.transaction.declareV0, writer.uint32(66).fork()).ldelim();\n break;\n case \"declareV1\":\n DeclareTransactionV1.encode(message.transaction.declareV1, writer.uint32(74).fork()).ldelim();\n break;\n case \"declareV2\":\n DeclareTransactionV2.encode(message.transaction.declareV2, writer.uint32(82).fork()).ldelim();\n break;\n case \"declareV3\":\n DeclareTransactionV3.encode(message.transaction.declareV3, writer.uint32(90).fork()).ldelim();\n break;\n case \"deployAccountV1\":\n DeployAccountTransactionV1.encode(message.transaction.deployAccountV1, writer.uint32(98).fork()).ldelim();\n break;\n case \"deployAccountV3\":\n DeployAccountTransactionV3.encode(message.transaction.deployAccountV3, writer.uint32(106).fork()).ldelim();\n break;\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 !== 18) {\n break;\n }\n\n message.meta = TransactionMeta.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.transaction = { $case: \"invokeV0\", invokeV0: InvokeTransactionV0.decode(reader, reader.uint32()) };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.transaction = { $case: \"invokeV1\", invokeV1: InvokeTransactionV1.decode(reader, reader.uint32()) };\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.transaction = { $case: \"invokeV3\", invokeV3: InvokeTransactionV3.decode(reader, reader.uint32()) };\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.transaction = { $case: \"l1Handler\", l1Handler: L1HandlerTransaction.decode(reader, reader.uint32()) };\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.transaction = { $case: \"deploy\", deploy: DeployTransaction.decode(reader, reader.uint32()) };\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.transaction = { $case: \"declareV0\", declareV0: DeclareTransactionV0.decode(reader, reader.uint32()) };\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.transaction = { $case: \"declareV1\", declareV1: DeclareTransactionV1.decode(reader, reader.uint32()) };\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n\n message.transaction = { $case: \"declareV2\", declareV2: DeclareTransactionV2.decode(reader, reader.uint32()) };\n continue;\n case 11:\n if (tag !== 90) {\n break;\n }\n\n message.transaction = { $case: \"declareV3\", declareV3: DeclareTransactionV3.decode(reader, reader.uint32()) };\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n\n message.transaction = {\n $case: \"deployAccountV1\",\n deployAccountV1: DeployAccountTransactionV1.decode(reader, reader.uint32()),\n };\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n\n message.transaction = {\n $case: \"deployAccountV3\",\n deployAccountV3: DeployAccountTransactionV3.decode(reader, reader.uint32()),\n };\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 meta: isSet(object.meta) ? TransactionMeta.fromJSON(object.meta) : undefined,\n transaction: isSet(object.invokeV0)\n ? { $case: \"invokeV0\", invokeV0: InvokeTransactionV0.fromJSON(object.invokeV0) }\n : isSet(object.invokeV1)\n ? { $case: \"invokeV1\", invokeV1: InvokeTransactionV1.fromJSON(object.invokeV1) }\n : isSet(object.invokeV3)\n ? { $case: \"invokeV3\", invokeV3: InvokeTransactionV3.fromJSON(object.invokeV3) }\n : isSet(object.l1Handler)\n ? { $case: \"l1Handler\", l1Handler: L1HandlerTransaction.fromJSON(object.l1Handler) }\n : isSet(object.deploy)\n ? { $case: \"deploy\", deploy: DeployTransaction.fromJSON(object.deploy) }\n : isSet(object.declareV0)\n ? { $case: \"declareV0\", declareV0: DeclareTransactionV0.fromJSON(object.declareV0) }\n : isSet(object.declareV1)\n ? { $case: \"declareV1\", declareV1: DeclareTransactionV1.fromJSON(object.declareV1) }\n : isSet(object.declareV2)\n ? { $case: \"declareV2\", declareV2: DeclareTransactionV2.fromJSON(object.declareV2) }\n : isSet(object.declareV3)\n ? { $case: \"declareV3\", declareV3: DeclareTransactionV3.fromJSON(object.declareV3) }\n : isSet(object.deployAccountV1)\n ? { $case: \"deployAccountV1\", deployAccountV1: DeployAccountTransactionV1.fromJSON(object.deployAccountV1) }\n : isSet(object.deployAccountV3)\n ? { $case: \"deployAccountV3\", deployAccountV3: DeployAccountTransactionV3.fromJSON(object.deployAccountV3) }\n : undefined,\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.meta !== undefined) {\n obj.meta = TransactionMeta.toJSON(message.meta);\n }\n if (message.transaction?.$case === \"invokeV0\") {\n obj.invokeV0 = InvokeTransactionV0.toJSON(message.transaction.invokeV0);\n }\n if (message.transaction?.$case === \"invokeV1\") {\n obj.invokeV1 = InvokeTransactionV1.toJSON(message.transaction.invokeV1);\n }\n if (message.transaction?.$case === \"invokeV3\") {\n obj.invokeV3 = InvokeTransactionV3.toJSON(message.transaction.invokeV3);\n }\n if (message.transaction?.$case === \"l1Handler\") {\n obj.l1Handler = L1HandlerTransaction.toJSON(message.transaction.l1Handler);\n }\n if (message.transaction?.$case === \"deploy\") {\n obj.deploy = DeployTransaction.toJSON(message.transaction.deploy);\n }\n if (message.transaction?.$case === \"declareV0\") {\n obj.declareV0 = DeclareTransactionV0.toJSON(message.transaction.declareV0);\n }\n if (message.transaction?.$case === \"declareV1\") {\n obj.declareV1 = DeclareTransactionV1.toJSON(message.transaction.declareV1);\n }\n if (message.transaction?.$case === \"declareV2\") {\n obj.declareV2 = DeclareTransactionV2.toJSON(message.transaction.declareV2);\n }\n if (message.transaction?.$case === \"declareV3\") {\n obj.declareV3 = DeclareTransactionV3.toJSON(message.transaction.declareV3);\n }\n if (message.transaction?.$case === \"deployAccountV1\") {\n obj.deployAccountV1 = DeployAccountTransactionV1.toJSON(message.transaction.deployAccountV1);\n }\n if (message.transaction?.$case === \"deployAccountV3\") {\n obj.deployAccountV3 = DeployAccountTransactionV3.toJSON(message.transaction.deployAccountV3);\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.meta = (object.meta !== undefined && object.meta !== null)\n ? TransactionMeta.fromPartial(object.meta)\n : undefined;\n if (\n object.transaction?.$case === \"invokeV0\" &&\n object.transaction?.invokeV0 !== undefined &&\n object.transaction?.invokeV0 !== null\n ) {\n message.transaction = {\n $case: \"invokeV0\",\n invokeV0: InvokeTransactionV0.fromPartial(object.transaction.invokeV0),\n };\n }\n if (\n object.transaction?.$case === \"invokeV1\" &&\n object.transaction?.invokeV1 !== undefined &&\n object.transaction?.invokeV1 !== null\n ) {\n message.transaction = {\n $case: \"invokeV1\",\n invokeV1: InvokeTransactionV1.fromPartial(object.transaction.invokeV1),\n };\n }\n if (\n object.transaction?.$case === \"invokeV3\" &&\n object.transaction?.invokeV3 !== undefined &&\n object.transaction?.invokeV3 !== null\n ) {\n message.transaction = {\n $case: \"invokeV3\",\n invokeV3: InvokeTransactionV3.fromPartial(object.transaction.invokeV3),\n };\n }\n if (\n object.transaction?.$case === \"l1Handler\" &&\n object.transaction?.l1Handler !== undefined &&\n object.transaction?.l1Handler !== null\n ) {\n message.transaction = {\n $case: \"l1Handler\",\n l1Handler: L1HandlerTransaction.fromPartial(object.transaction.l1Handler),\n };\n }\n if (\n object.transaction?.$case === \"deploy\" &&\n object.transaction?.deploy !== undefined &&\n object.transaction?.deploy !== null\n ) {\n message.transaction = { $case: \"deploy\", deploy: DeployTransaction.fromPartial(object.transaction.deploy) };\n }\n if (\n object.transaction?.$case === \"declareV0\" &&\n object.transaction?.declareV0 !== undefined &&\n object.transaction?.declareV0 !== null\n ) {\n message.transaction = {\n $case: \"declareV0\",\n declareV0: DeclareTransactionV0.fromPartial(object.transaction.declareV0),\n };\n }\n if (\n object.transaction?.$case === \"declareV1\" &&\n object.transaction?.declareV1 !== undefined &&\n object.transaction?.declareV1 !== null\n ) {\n message.transaction = {\n $case: \"declareV1\",\n declareV1: DeclareTransactionV1.fromPartial(object.transaction.declareV1),\n };\n }\n if (\n object.transaction?.$case === \"declareV2\" &&\n object.transaction?.declareV2 !== undefined &&\n object.transaction?.declareV2 !== null\n ) {\n message.transaction = {\n $case: \"declareV2\",\n declareV2: DeclareTransactionV2.fromPartial(object.transaction.declareV2),\n };\n }\n if (\n object.transaction?.$case === \"declareV3\" &&\n object.transaction?.declareV3 !== undefined &&\n object.transaction?.declareV3 !== null\n ) {\n message.transaction = {\n $case: \"declareV3\",\n declareV3: DeclareTransactionV3.fromPartial(object.transaction.declareV3),\n };\n }\n if (\n object.transaction?.$case === \"deployAccountV1\" &&\n object.transaction?.deployAccountV1 !== undefined &&\n object.transaction?.deployAccountV1 !== null\n ) {\n message.transaction = {\n $case: \"deployAccountV1\",\n deployAccountV1: DeployAccountTransactionV1.fromPartial(object.transaction.deployAccountV1),\n };\n }\n if (\n object.transaction?.$case === \"deployAccountV3\" &&\n object.transaction?.deployAccountV3 !== undefined &&\n object.transaction?.deployAccountV3 !== null\n ) {\n message.transaction = {\n $case: \"deployAccountV3\",\n deployAccountV3: DeployAccountTransactionV3.fromPartial(object.transaction.deployAccountV3),\n };\n }\n return message;\n },\n};\n\nfunction createBaseTransactionMeta(): TransactionMeta {\n return { transactionIndex: 0, transactionHash: undefined, transactionStatus: 0 };\n}\n\nexport const TransactionMeta = {\n encode(message: TransactionMeta, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(8).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n FieldElement.encode(message.transactionHash, writer.uint32(18).fork()).ldelim();\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n writer.uint32(24).int32(message.transactionStatus);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TransactionMeta {\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 = createBaseTransactionMeta() 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.transactionIndex = reader.uint32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.transactionHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 24) {\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): TransactionMeta {\n return {\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? FieldElement.fromJSON(object.transactionHash) : undefined,\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n };\n },\n\n toJSON(message: TransactionMeta): unknown {\n const obj: any = {};\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = FieldElement.toJSON(message.transactionHash);\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<TransactionMeta>): TransactionMeta {\n return TransactionMeta.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<TransactionMeta>): TransactionMeta {\n const message = createBaseTransactionMeta() as any;\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? FieldElement.fromPartial(object.transactionHash)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? 0;\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV0(): InvokeTransactionV0 {\n return { maxFee: undefined, signature: [], contractAddress: undefined, entryPointSelector: undefined, calldata: [] };\n}\n\nexport const InvokeTransactionV0 = {\n encode(message: InvokeTransactionV0, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(10).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(26).fork()).ldelim();\n }\n if (message.entryPointSelector !== undefined) {\n FieldElement.encode(message.entryPointSelector, writer.uint32(34).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(50).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV0 {\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 = createBaseInvokeTransactionV0() 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.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.entryPointSelector = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.calldata!.push(FieldElement.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): InvokeTransactionV0 {\n return {\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n entryPointSelector: isSet(object.entryPointSelector)\n ? FieldElement.fromJSON(object.entryPointSelector)\n : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: InvokeTransactionV0): unknown {\n const obj: any = {};\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.entryPointSelector !== undefined) {\n obj.entryPointSelector = FieldElement.toJSON(message.entryPointSelector);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV0>): InvokeTransactionV0 {\n return InvokeTransactionV0.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<InvokeTransactionV0>): InvokeTransactionV0 {\n const message = createBaseInvokeTransactionV0() as any;\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.entryPointSelector = (object.entryPointSelector !== undefined && object.entryPointSelector !== null)\n ? FieldElement.fromPartial(object.entryPointSelector)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV1(): InvokeTransactionV1 {\n return { senderAddress: undefined, calldata: [], maxFee: undefined, signature: [], nonce: undefined };\n}\n\nexport const InvokeTransactionV1 = {\n encode(message: InvokeTransactionV1, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(26).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV1 {\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 = createBaseInvokeTransactionV1() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.calldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.nonce = FieldElement.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): InvokeTransactionV1 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n };\n },\n\n toJSON(message: InvokeTransactionV1): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV1>): InvokeTransactionV1 {\n return InvokeTransactionV1.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<InvokeTransactionV1>): InvokeTransactionV1 {\n const message = createBaseInvokeTransactionV1() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV3(): InvokeTransactionV3 {\n return {\n senderAddress: undefined,\n calldata: [],\n signature: [],\n nonce: undefined,\n resourceBounds: undefined,\n tip: BigInt(\"0\"),\n paymasterData: [],\n accountDeploymentData: [],\n nonceDataAvailabilityMode: 0,\n feeDataAvailabilityMode: 0,\n };\n}\n\nexport const InvokeTransactionV3 = {\n encode(message: InvokeTransactionV3, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(34).fork()).ldelim();\n }\n if (message.resourceBounds !== undefined) {\n ResourceBoundsMapping.encode(message.resourceBounds, writer.uint32(42).fork()).ldelim();\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.tip) !== message.tip) {\n throw new globalThis.Error(\"value provided for field message.tip of type uint64 too large\");\n }\n writer.uint32(48).uint64(message.tip.toString());\n }\n if (message.paymasterData !== undefined && message.paymasterData.length !== 0) {\n for (const v of message.paymasterData) {\n FieldElement.encode(v!, writer.uint32(58).fork()).ldelim();\n }\n }\n if (message.accountDeploymentData !== undefined && message.accountDeploymentData.length !== 0) {\n for (const v of message.accountDeploymentData) {\n FieldElement.encode(v!, writer.uint32(66).fork()).ldelim();\n }\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n writer.uint32(72).int32(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n writer.uint32(80).int32(message.feeDataAvailabilityMode);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV3 {\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 = createBaseInvokeTransactionV3() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.calldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.resourceBounds = ResourceBoundsMapping.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.tip = longToBigint(reader.uint64() as Long);\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.paymasterData!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.accountDeploymentData!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.nonceDataAvailabilityMode = reader.int32() as any;\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n\n message.feeDataAvailabilityMode = 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): InvokeTransactionV3 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n resourceBounds: isSet(object.resourceBounds) ? ResourceBoundsMapping.fromJSON(object.resourceBounds) : undefined,\n tip: isSet(object.tip) ? BigInt(object.tip) : BigInt(\"0\"),\n paymasterData: globalThis.Array.isArray(object?.paymasterData)\n ? object.paymasterData.map((e: any) => FieldElement.fromJSON(e))\n : [],\n accountDeploymentData: globalThis.Array.isArray(object?.accountDeploymentData)\n ? object.accountDeploymentData.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonceDataAvailabilityMode: isSet(object.nonceDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.nonceDataAvailabilityMode)\n : 0,\n feeDataAvailabilityMode: isSet(object.feeDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.feeDataAvailabilityMode)\n : 0,\n };\n },\n\n toJSON(message: InvokeTransactionV3): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.resourceBounds !== undefined) {\n obj.resourceBounds = ResourceBoundsMapping.toJSON(message.resourceBounds);\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n obj.tip = message.tip.toString();\n }\n if (message.paymasterData?.length) {\n obj.paymasterData = message.paymasterData.map((e) => FieldElement.toJSON(e));\n }\n if (message.accountDeploymentData?.length) {\n obj.accountDeploymentData = message.accountDeploymentData.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n obj.nonceDataAvailabilityMode = dataAvailabilityModeToJSON(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n obj.feeDataAvailabilityMode = dataAvailabilityModeToJSON(message.feeDataAvailabilityMode);\n }\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV3>): InvokeTransactionV3 {\n return InvokeTransactionV3.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<InvokeTransactionV3>): InvokeTransactionV3 {\n const message = createBaseInvokeTransactionV3() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.resourceBounds = (object.resourceBounds !== undefined && object.resourceBounds !== null)\n ? ResourceBoundsMapping.fromPartial(object.resourceBounds)\n : undefined;\n message.tip = object.tip ?? BigInt(\"0\");\n message.paymasterData = object.paymasterData?.map((e) => FieldElement.fromPartial(e)) || [];\n message.accountDeploymentData = object.accountDeploymentData?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonceDataAvailabilityMode = object.nonceDataAvailabilityMode ?? 0;\n message.feeDataAvailabilityMode = object.feeDataAvailabilityMode ?? 0;\n return message;\n },\n};\n\nfunction createBaseL1HandlerTransaction(): L1HandlerTransaction {\n return { nonce: BigInt(\"0\"), contractAddress: undefined, entryPointSelector: undefined, calldata: [] };\n}\n\nexport const L1HandlerTransaction = {\n encode(message: L1HandlerTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\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(8).uint64(message.nonce.toString());\n }\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(18).fork()).ldelim();\n }\n if (message.entryPointSelector !== undefined) {\n FieldElement.encode(message.entryPointSelector, writer.uint32(26).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): L1HandlerTransaction {\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 = createBaseL1HandlerTransaction() 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.nonce = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.entryPointSelector = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.calldata!.push(FieldElement.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): L1HandlerTransaction {\n return {\n nonce: isSet(object.nonce) ? BigInt(object.nonce) : BigInt(\"0\"),\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n entryPointSelector: isSet(object.entryPointSelector)\n ? FieldElement.fromJSON(object.entryPointSelector)\n : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: L1HandlerTransaction): unknown {\n const obj: any = {};\n if (message.nonce !== undefined && message.nonce !== BigInt(\"0\")) {\n obj.nonce = message.nonce.toString();\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.entryPointSelector !== undefined) {\n obj.entryPointSelector = FieldElement.toJSON(message.entryPointSelector);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<L1HandlerTransaction>): L1HandlerTransaction {\n return L1HandlerTransaction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<L1HandlerTransaction>): L1HandlerTransaction {\n const message = createBaseL1HandlerTransaction() as any;\n message.nonce = object.nonce ?? BigInt(\"0\");\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.entryPointSelector = (object.entryPointSelector !== undefined && object.entryPointSelector !== null)\n ? FieldElement.fromPartial(object.entryPointSelector)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseDeployTransaction(): DeployTransaction {\n return { contractAddressSalt: undefined, constructorCalldata: [], classHash: undefined };\n}\n\nexport const DeployTransaction = {\n encode(message: DeployTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddressSalt !== undefined) {\n FieldElement.encode(message.contractAddressSalt, writer.uint32(10).fork()).ldelim();\n }\n if (message.constructorCalldata !== undefined && message.constructorCalldata.length !== 0) {\n for (const v of message.constructorCalldata) {\n FieldElement.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployTransaction {\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 = createBaseDeployTransaction() 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.contractAddressSalt = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.constructorCalldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.classHash = FieldElement.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): DeployTransaction {\n return {\n contractAddressSalt: isSet(object.contractAddressSalt)\n ? FieldElement.fromJSON(object.contractAddressSalt)\n : undefined,\n constructorCalldata: globalThis.Array.isArray(object?.constructorCalldata)\n ? object.constructorCalldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeployTransaction): unknown {\n const obj: any = {};\n if (message.contractAddressSalt !== undefined) {\n obj.contractAddressSalt = FieldElement.toJSON(message.contractAddressSalt);\n }\n if (message.constructorCalldata?.length) {\n obj.constructorCalldata = message.constructorCalldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployTransaction>): DeployTransaction {\n return DeployTransaction.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployTransaction>): DeployTransaction {\n const message = createBaseDeployTransaction() as any;\n message.contractAddressSalt = (object.contractAddressSalt !== undefined && object.contractAddressSalt !== null)\n ? FieldElement.fromPartial(object.contractAddressSalt)\n : undefined;\n message.constructorCalldata = object.constructorCalldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionV0(): DeclareTransactionV0 {\n return { senderAddress: undefined, maxFee: undefined, signature: [], classHash: undefined };\n}\n\nexport const DeclareTransactionV0 = {\n encode(message: DeclareTransactionV0, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(18).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionV0 {\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 = createBaseDeclareTransactionV0() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.classHash = FieldElement.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): DeclareTransactionV0 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeclareTransactionV0): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionV0>): DeclareTransactionV0 {\n return DeclareTransactionV0.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclareTransactionV0>): DeclareTransactionV0 {\n const message = createBaseDeclareTransactionV0() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionV1(): DeclareTransactionV1 {\n return { senderAddress: undefined, maxFee: undefined, signature: [], nonce: undefined, classHash: undefined };\n}\n\nexport const DeclareTransactionV1 = {\n encode(message: DeclareTransactionV1, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(18).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(34).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(42).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionV1 {\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 = createBaseDeclareTransactionV1() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.classHash = FieldElement.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): DeclareTransactionV1 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeclareTransactionV1): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionV1>): DeclareTransactionV1 {\n return DeclareTransactionV1.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclareTransactionV1>): DeclareTransactionV1 {\n const message = createBaseDeclareTransactionV1() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionV2(): DeclareTransactionV2 {\n return {\n senderAddress: undefined,\n compiledClassHash: undefined,\n maxFee: undefined,\n signature: [],\n nonce: undefined,\n classHash: undefined,\n };\n}\n\nexport const DeclareTransactionV2 = {\n encode(message: DeclareTransactionV2, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.compiledClassHash !== undefined) {\n FieldElement.encode(message.compiledClassHash, writer.uint32(18).fork()).ldelim();\n }\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(26).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(42).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionV2 {\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 = createBaseDeclareTransactionV2() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.compiledClassHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.classHash = FieldElement.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): DeclareTransactionV2 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n compiledClassHash: isSet(object.compiledClassHash) ? FieldElement.fromJSON(object.compiledClassHash) : undefined,\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeclareTransactionV2): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.compiledClassHash !== undefined) {\n obj.compiledClassHash = FieldElement.toJSON(message.compiledClassHash);\n }\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionV2>): DeclareTransactionV2 {\n return DeclareTransactionV2.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclareTransactionV2>): DeclareTransactionV2 {\n const message = createBaseDeclareTransactionV2() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.compiledClassHash = (object.compiledClassHash !== undefined && object.compiledClassHash !== null)\n ? FieldElement.fromPartial(object.compiledClassHash)\n : undefined;\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionV3(): DeclareTransactionV3 {\n return {\n senderAddress: undefined,\n compiledClassHash: undefined,\n signature: [],\n nonce: undefined,\n classHash: undefined,\n resourceBounds: undefined,\n tip: BigInt(\"0\"),\n paymasterData: [],\n accountDeploymentData: [],\n nonceDataAvailabilityMode: 0,\n feeDataAvailabilityMode: 0,\n };\n}\n\nexport const DeclareTransactionV3 = {\n encode(message: DeclareTransactionV3, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.senderAddress !== undefined) {\n FieldElement.encode(message.senderAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.compiledClassHash !== undefined) {\n FieldElement.encode(message.compiledClassHash, writer.uint32(18).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(34).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(42).fork()).ldelim();\n }\n if (message.resourceBounds !== undefined) {\n ResourceBoundsMapping.encode(message.resourceBounds, writer.uint32(50).fork()).ldelim();\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.tip) !== message.tip) {\n throw new globalThis.Error(\"value provided for field message.tip of type uint64 too large\");\n }\n writer.uint32(56).uint64(message.tip.toString());\n }\n if (message.paymasterData !== undefined && message.paymasterData.length !== 0) {\n for (const v of message.paymasterData) {\n FieldElement.encode(v!, writer.uint32(66).fork()).ldelim();\n }\n }\n if (message.accountDeploymentData !== undefined && message.accountDeploymentData.length !== 0) {\n for (const v of message.accountDeploymentData) {\n FieldElement.encode(v!, writer.uint32(74).fork()).ldelim();\n }\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n writer.uint32(80).int32(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n writer.uint32(88).int32(message.feeDataAvailabilityMode);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionV3 {\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 = createBaseDeclareTransactionV3() 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.senderAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.compiledClassHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.classHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.resourceBounds = ResourceBoundsMapping.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n\n message.tip = longToBigint(reader.uint64() as Long);\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.paymasterData!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.accountDeploymentData!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n\n message.nonceDataAvailabilityMode = reader.int32() as any;\n continue;\n case 11:\n if (tag !== 88) {\n break;\n }\n\n message.feeDataAvailabilityMode = 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): DeclareTransactionV3 {\n return {\n senderAddress: isSet(object.senderAddress) ? FieldElement.fromJSON(object.senderAddress) : undefined,\n compiledClassHash: isSet(object.compiledClassHash) ? FieldElement.fromJSON(object.compiledClassHash) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n resourceBounds: isSet(object.resourceBounds) ? ResourceBoundsMapping.fromJSON(object.resourceBounds) : undefined,\n tip: isSet(object.tip) ? BigInt(object.tip) : BigInt(\"0\"),\n paymasterData: globalThis.Array.isArray(object?.paymasterData)\n ? object.paymasterData.map((e: any) => FieldElement.fromJSON(e))\n : [],\n accountDeploymentData: globalThis.Array.isArray(object?.accountDeploymentData)\n ? object.accountDeploymentData.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonceDataAvailabilityMode: isSet(object.nonceDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.nonceDataAvailabilityMode)\n : 0,\n feeDataAvailabilityMode: isSet(object.feeDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.feeDataAvailabilityMode)\n : 0,\n };\n },\n\n toJSON(message: DeclareTransactionV3): unknown {\n const obj: any = {};\n if (message.senderAddress !== undefined) {\n obj.senderAddress = FieldElement.toJSON(message.senderAddress);\n }\n if (message.compiledClassHash !== undefined) {\n obj.compiledClassHash = FieldElement.toJSON(message.compiledClassHash);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n if (message.resourceBounds !== undefined) {\n obj.resourceBounds = ResourceBoundsMapping.toJSON(message.resourceBounds);\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n obj.tip = message.tip.toString();\n }\n if (message.paymasterData?.length) {\n obj.paymasterData = message.paymasterData.map((e) => FieldElement.toJSON(e));\n }\n if (message.accountDeploymentData?.length) {\n obj.accountDeploymentData = message.accountDeploymentData.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n obj.nonceDataAvailabilityMode = dataAvailabilityModeToJSON(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n obj.feeDataAvailabilityMode = dataAvailabilityModeToJSON(message.feeDataAvailabilityMode);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionV3>): DeclareTransactionV3 {\n return DeclareTransactionV3.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclareTransactionV3>): DeclareTransactionV3 {\n const message = createBaseDeclareTransactionV3() as any;\n message.senderAddress = (object.senderAddress !== undefined && object.senderAddress !== null)\n ? FieldElement.fromPartial(object.senderAddress)\n : undefined;\n message.compiledClassHash = (object.compiledClassHash !== undefined && object.compiledClassHash !== null)\n ? FieldElement.fromPartial(object.compiledClassHash)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n message.resourceBounds = (object.resourceBounds !== undefined && object.resourceBounds !== null)\n ? ResourceBoundsMapping.fromPartial(object.resourceBounds)\n : undefined;\n message.tip = object.tip ?? BigInt(\"0\");\n message.paymasterData = object.paymasterData?.map((e) => FieldElement.fromPartial(e)) || [];\n message.accountDeploymentData = object.accountDeploymentData?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonceDataAvailabilityMode = object.nonceDataAvailabilityMode ?? 0;\n message.feeDataAvailabilityMode = object.feeDataAvailabilityMode ?? 0;\n return message;\n },\n};\n\nfunction createBaseDeployAccountTransactionV1(): DeployAccountTransactionV1 {\n return {\n maxFee: undefined,\n signature: [],\n nonce: undefined,\n contractAddressSalt: undefined,\n constructorCalldata: [],\n classHash: undefined,\n };\n}\n\nexport const DeployAccountTransactionV1 = {\n encode(message: DeployAccountTransactionV1, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.maxFee !== undefined) {\n FieldElement.encode(message.maxFee, writer.uint32(10).fork()).ldelim();\n }\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(26).fork()).ldelim();\n }\n if (message.contractAddressSalt !== undefined) {\n FieldElement.encode(message.contractAddressSalt, writer.uint32(34).fork()).ldelim();\n }\n if (message.constructorCalldata !== undefined && message.constructorCalldata.length !== 0) {\n for (const v of message.constructorCalldata) {\n FieldElement.encode(v!, writer.uint32(42).fork()).ldelim();\n }\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(50).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountTransactionV1 {\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 = createBaseDeployAccountTransactionV1() 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.maxFee = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.contractAddressSalt = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.constructorCalldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.classHash = FieldElement.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): DeployAccountTransactionV1 {\n return {\n maxFee: isSet(object.maxFee) ? FieldElement.fromJSON(object.maxFee) : undefined,\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n contractAddressSalt: isSet(object.contractAddressSalt)\n ? FieldElement.fromJSON(object.contractAddressSalt)\n : undefined,\n constructorCalldata: globalThis.Array.isArray(object?.constructorCalldata)\n ? object.constructorCalldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeployAccountTransactionV1): unknown {\n const obj: any = {};\n if (message.maxFee !== undefined) {\n obj.maxFee = FieldElement.toJSON(message.maxFee);\n }\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.contractAddressSalt !== undefined) {\n obj.contractAddressSalt = FieldElement.toJSON(message.contractAddressSalt);\n }\n if (message.constructorCalldata?.length) {\n obj.constructorCalldata = message.constructorCalldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountTransactionV1>): DeployAccountTransactionV1 {\n return DeployAccountTransactionV1.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployAccountTransactionV1>): DeployAccountTransactionV1 {\n const message = createBaseDeployAccountTransactionV1() as any;\n message.maxFee = (object.maxFee !== undefined && object.maxFee !== null)\n ? FieldElement.fromPartial(object.maxFee)\n : undefined;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.contractAddressSalt = (object.contractAddressSalt !== undefined && object.contractAddressSalt !== null)\n ? FieldElement.fromPartial(object.contractAddressSalt)\n : undefined;\n message.constructorCalldata = object.constructorCalldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeployAccountTransactionV3(): DeployAccountTransactionV3 {\n return {\n signature: [],\n nonce: undefined,\n contractAddressSalt: undefined,\n constructorCalldata: [],\n classHash: undefined,\n resourceBounds: undefined,\n tip: BigInt(\"0\"),\n paymasterData: [],\n nonceDataAvailabilityMode: 0,\n feeDataAvailabilityMode: 0,\n };\n}\n\nexport const DeployAccountTransactionV3 = {\n encode(message: DeployAccountTransactionV3, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.signature !== undefined && message.signature.length !== 0) {\n for (const v of message.signature) {\n FieldElement.encode(v!, writer.uint32(10).fork()).ldelim();\n }\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(18).fork()).ldelim();\n }\n if (message.contractAddressSalt !== undefined) {\n FieldElement.encode(message.contractAddressSalt, writer.uint32(26).fork()).ldelim();\n }\n if (message.constructorCalldata !== undefined && message.constructorCalldata.length !== 0) {\n for (const v of message.constructorCalldata) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(42).fork()).ldelim();\n }\n if (message.resourceBounds !== undefined) {\n ResourceBoundsMapping.encode(message.resourceBounds, writer.uint32(50).fork()).ldelim();\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.tip) !== message.tip) {\n throw new globalThis.Error(\"value provided for field message.tip of type uint64 too large\");\n }\n writer.uint32(56).uint64(message.tip.toString());\n }\n if (message.paymasterData !== undefined && message.paymasterData.length !== 0) {\n for (const v of message.paymasterData) {\n FieldElement.encode(v!, writer.uint32(66).fork()).ldelim();\n }\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n writer.uint32(72).int32(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n writer.uint32(80).int32(message.feeDataAvailabilityMode);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountTransactionV3 {\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 = createBaseDeployAccountTransactionV3() 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.signature!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.nonce = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.contractAddressSalt = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.constructorCalldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.classHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.resourceBounds = ResourceBoundsMapping.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n\n message.tip = longToBigint(reader.uint64() as Long);\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.paymasterData!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.nonceDataAvailabilityMode = reader.int32() as any;\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n\n message.feeDataAvailabilityMode = 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): DeployAccountTransactionV3 {\n return {\n signature: globalThis.Array.isArray(object?.signature)\n ? object.signature.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n contractAddressSalt: isSet(object.contractAddressSalt)\n ? FieldElement.fromJSON(object.contractAddressSalt)\n : undefined,\n constructorCalldata: globalThis.Array.isArray(object?.constructorCalldata)\n ? object.constructorCalldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n resourceBounds: isSet(object.resourceBounds) ? ResourceBoundsMapping.fromJSON(object.resourceBounds) : undefined,\n tip: isSet(object.tip) ? BigInt(object.tip) : BigInt(\"0\"),\n paymasterData: globalThis.Array.isArray(object?.paymasterData)\n ? object.paymasterData.map((e: any) => FieldElement.fromJSON(e))\n : [],\n nonceDataAvailabilityMode: isSet(object.nonceDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.nonceDataAvailabilityMode)\n : 0,\n feeDataAvailabilityMode: isSet(object.feeDataAvailabilityMode)\n ? dataAvailabilityModeFromJSON(object.feeDataAvailabilityMode)\n : 0,\n };\n },\n\n toJSON(message: DeployAccountTransactionV3): unknown {\n const obj: any = {};\n if (message.signature?.length) {\n obj.signature = message.signature.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n if (message.contractAddressSalt !== undefined) {\n obj.contractAddressSalt = FieldElement.toJSON(message.contractAddressSalt);\n }\n if (message.constructorCalldata?.length) {\n obj.constructorCalldata = message.constructorCalldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n if (message.resourceBounds !== undefined) {\n obj.resourceBounds = ResourceBoundsMapping.toJSON(message.resourceBounds);\n }\n if (message.tip !== undefined && message.tip !== BigInt(\"0\")) {\n obj.tip = message.tip.toString();\n }\n if (message.paymasterData?.length) {\n obj.paymasterData = message.paymasterData.map((e) => FieldElement.toJSON(e));\n }\n if (message.nonceDataAvailabilityMode !== undefined && message.nonceDataAvailabilityMode !== 0) {\n obj.nonceDataAvailabilityMode = dataAvailabilityModeToJSON(message.nonceDataAvailabilityMode);\n }\n if (message.feeDataAvailabilityMode !== undefined && message.feeDataAvailabilityMode !== 0) {\n obj.feeDataAvailabilityMode = dataAvailabilityModeToJSON(message.feeDataAvailabilityMode);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountTransactionV3>): DeployAccountTransactionV3 {\n return DeployAccountTransactionV3.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployAccountTransactionV3>): DeployAccountTransactionV3 {\n const message = createBaseDeployAccountTransactionV3() as any;\n message.signature = object.signature?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n message.contractAddressSalt = (object.contractAddressSalt !== undefined && object.contractAddressSalt !== null)\n ? FieldElement.fromPartial(object.contractAddressSalt)\n : undefined;\n message.constructorCalldata = object.constructorCalldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n message.resourceBounds = (object.resourceBounds !== undefined && object.resourceBounds !== null)\n ? ResourceBoundsMapping.fromPartial(object.resourceBounds)\n : undefined;\n message.tip = object.tip ?? BigInt(\"0\");\n message.paymasterData = object.paymasterData?.map((e) => FieldElement.fromPartial(e)) || [];\n message.nonceDataAvailabilityMode = object.nonceDataAvailabilityMode ?? 0;\n message.feeDataAvailabilityMode = object.feeDataAvailabilityMode ?? 0;\n return message;\n },\n};\n\nfunction createBaseTransactionReceipt(): TransactionReceipt {\n return { filterIds: [], meta: undefined, receipt: undefined };\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.meta !== undefined) {\n TransactionReceiptMeta.encode(message.meta, writer.uint32(18).fork()).ldelim();\n }\n switch (message.receipt?.$case) {\n case \"invoke\":\n InvokeTransactionReceipt.encode(message.receipt.invoke, writer.uint32(26).fork()).ldelim();\n break;\n case \"l1Handler\":\n L1HandlerTransactionReceipt.encode(message.receipt.l1Handler, writer.uint32(34).fork()).ldelim();\n break;\n case \"declare\":\n DeclareTransactionReceipt.encode(message.receipt.declare, writer.uint32(42).fork()).ldelim();\n break;\n case \"deploy\":\n DeployTransactionReceipt.encode(message.receipt.deploy, writer.uint32(50).fork()).ldelim();\n break;\n case \"deployAccount\":\n DeployAccountTransactionReceipt.encode(message.receipt.deployAccount, writer.uint32(58).fork()).ldelim();\n break;\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 !== 18) {\n break;\n }\n\n message.meta = TransactionReceiptMeta.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.receipt = { $case: \"invoke\", invoke: InvokeTransactionReceipt.decode(reader, reader.uint32()) };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.receipt = {\n $case: \"l1Handler\",\n l1Handler: L1HandlerTransactionReceipt.decode(reader, reader.uint32()),\n };\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.receipt = { $case: \"declare\", declare: DeclareTransactionReceipt.decode(reader, reader.uint32()) };\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.receipt = { $case: \"deploy\", deploy: DeployTransactionReceipt.decode(reader, reader.uint32()) };\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.receipt = {\n $case: \"deployAccount\",\n deployAccount: DeployAccountTransactionReceipt.decode(reader, reader.uint32()),\n };\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 meta: isSet(object.meta) ? TransactionReceiptMeta.fromJSON(object.meta) : undefined,\n receipt: isSet(object.invoke)\n ? { $case: \"invoke\", invoke: InvokeTransactionReceipt.fromJSON(object.invoke) }\n : isSet(object.l1Handler)\n ? { $case: \"l1Handler\", l1Handler: L1HandlerTransactionReceipt.fromJSON(object.l1Handler) }\n : isSet(object.declare)\n ? { $case: \"declare\", declare: DeclareTransactionReceipt.fromJSON(object.declare) }\n : isSet(object.deploy)\n ? { $case: \"deploy\", deploy: DeployTransactionReceipt.fromJSON(object.deploy) }\n : isSet(object.deployAccount)\n ? { $case: \"deployAccount\", deployAccount: DeployAccountTransactionReceipt.fromJSON(object.deployAccount) }\n : undefined,\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.meta !== undefined) {\n obj.meta = TransactionReceiptMeta.toJSON(message.meta);\n }\n if (message.receipt?.$case === \"invoke\") {\n obj.invoke = InvokeTransactionReceipt.toJSON(message.receipt.invoke);\n }\n if (message.receipt?.$case === \"l1Handler\") {\n obj.l1Handler = L1HandlerTransactionReceipt.toJSON(message.receipt.l1Handler);\n }\n if (message.receipt?.$case === \"declare\") {\n obj.declare = DeclareTransactionReceipt.toJSON(message.receipt.declare);\n }\n if (message.receipt?.$case === \"deploy\") {\n obj.deploy = DeployTransactionReceipt.toJSON(message.receipt.deploy);\n }\n if (message.receipt?.$case === \"deployAccount\") {\n obj.deployAccount = DeployAccountTransactionReceipt.toJSON(message.receipt.deployAccount);\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.meta = (object.meta !== undefined && object.meta !== null)\n ? TransactionReceiptMeta.fromPartial(object.meta)\n : undefined;\n if (object.receipt?.$case === \"invoke\" && object.receipt?.invoke !== undefined && object.receipt?.invoke !== null) {\n message.receipt = { $case: \"invoke\", invoke: InvokeTransactionReceipt.fromPartial(object.receipt.invoke) };\n }\n if (\n object.receipt?.$case === \"l1Handler\" &&\n object.receipt?.l1Handler !== undefined &&\n object.receipt?.l1Handler !== null\n ) {\n message.receipt = {\n $case: \"l1Handler\",\n l1Handler: L1HandlerTransactionReceipt.fromPartial(object.receipt.l1Handler),\n };\n }\n if (\n object.receipt?.$case === \"declare\" && object.receipt?.declare !== undefined && object.receipt?.declare !== null\n ) {\n message.receipt = { $case: \"declare\", declare: DeclareTransactionReceipt.fromPartial(object.receipt.declare) };\n }\n if (object.receipt?.$case === \"deploy\" && object.receipt?.deploy !== undefined && object.receipt?.deploy !== null) {\n message.receipt = { $case: \"deploy\", deploy: DeployTransactionReceipt.fromPartial(object.receipt.deploy) };\n }\n if (\n object.receipt?.$case === \"deployAccount\" &&\n object.receipt?.deployAccount !== undefined &&\n object.receipt?.deployAccount !== null\n ) {\n message.receipt = {\n $case: \"deployAccount\",\n deployAccount: DeployAccountTransactionReceipt.fromPartial(object.receipt.deployAccount),\n };\n }\n return message;\n },\n};\n\nfunction createBaseTransactionReceiptMeta(): TransactionReceiptMeta {\n return {\n transactionIndex: 0,\n transactionHash: undefined,\n actualFee: undefined,\n executionResources: undefined,\n executionResult: undefined,\n };\n}\n\nexport const TransactionReceiptMeta = {\n encode(message: TransactionReceiptMeta, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(8).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n FieldElement.encode(message.transactionHash, writer.uint32(18).fork()).ldelim();\n }\n if (message.actualFee !== undefined) {\n FeePayment.encode(message.actualFee, writer.uint32(26).fork()).ldelim();\n }\n if (message.executionResources !== undefined) {\n ExecutionResources.encode(message.executionResources, writer.uint32(34).fork()).ldelim();\n }\n switch (message.executionResult?.$case) {\n case \"succeeded\":\n ExecutionSucceeded.encode(message.executionResult.succeeded, writer.uint32(42).fork()).ldelim();\n break;\n case \"reverted\":\n ExecutionReverted.encode(message.executionResult.reverted, writer.uint32(50).fork()).ldelim();\n break;\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): TransactionReceiptMeta {\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 = createBaseTransactionReceiptMeta() 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.transactionIndex = reader.uint32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.transactionHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.actualFee = FeePayment.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.executionResources = ExecutionResources.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.executionResult = {\n $case: \"succeeded\",\n succeeded: ExecutionSucceeded.decode(reader, reader.uint32()),\n };\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.executionResult = { $case: \"reverted\", reverted: ExecutionReverted.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): TransactionReceiptMeta {\n return {\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? FieldElement.fromJSON(object.transactionHash) : undefined,\n actualFee: isSet(object.actualFee) ? FeePayment.fromJSON(object.actualFee) : undefined,\n executionResources: isSet(object.executionResources)\n ? ExecutionResources.fromJSON(object.executionResources)\n : undefined,\n executionResult: isSet(object.succeeded)\n ? { $case: \"succeeded\", succeeded: ExecutionSucceeded.fromJSON(object.succeeded) }\n : isSet(object.reverted)\n ? { $case: \"reverted\", reverted: ExecutionReverted.fromJSON(object.reverted) }\n : undefined,\n };\n },\n\n toJSON(message: TransactionReceiptMeta): unknown {\n const obj: any = {};\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n obj.transactionIndex = Math.round(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n obj.transactionHash = FieldElement.toJSON(message.transactionHash);\n }\n if (message.actualFee !== undefined) {\n obj.actualFee = FeePayment.toJSON(message.actualFee);\n }\n if (message.executionResources !== undefined) {\n obj.executionResources = ExecutionResources.toJSON(message.executionResources);\n }\n if (message.executionResult?.$case === \"succeeded\") {\n obj.succeeded = ExecutionSucceeded.toJSON(message.executionResult.succeeded);\n }\n if (message.executionResult?.$case === \"reverted\") {\n obj.reverted = ExecutionReverted.toJSON(message.executionResult.reverted);\n }\n return obj;\n },\n\n create(base?: DeepPartial<TransactionReceiptMeta>): TransactionReceiptMeta {\n return TransactionReceiptMeta.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<TransactionReceiptMeta>): TransactionReceiptMeta {\n const message = createBaseTransactionReceiptMeta() as any;\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? FieldElement.fromPartial(object.transactionHash)\n : undefined;\n message.actualFee = (object.actualFee !== undefined && object.actualFee !== null)\n ? FeePayment.fromPartial(object.actualFee)\n : undefined;\n message.executionResources = (object.executionResources !== undefined && object.executionResources !== null)\n ? ExecutionResources.fromPartial(object.executionResources)\n : undefined;\n if (\n object.executionResult?.$case === \"succeeded\" &&\n object.executionResult?.succeeded !== undefined &&\n object.executionResult?.succeeded !== null\n ) {\n message.executionResult = {\n $case: \"succeeded\",\n succeeded: ExecutionSucceeded.fromPartial(object.executionResult.succeeded),\n };\n }\n if (\n object.executionResult?.$case === \"reverted\" &&\n object.executionResult?.reverted !== undefined &&\n object.executionResult?.reverted !== null\n ) {\n message.executionResult = {\n $case: \"reverted\",\n reverted: ExecutionReverted.fromPartial(object.executionResult.reverted),\n };\n }\n return message;\n },\n};\n\nfunction createBaseExecutionSucceeded(): ExecutionSucceeded {\n return {};\n}\n\nexport const ExecutionSucceeded = {\n encode(_: ExecutionSucceeded, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ExecutionSucceeded {\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 = createBaseExecutionSucceeded() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): ExecutionSucceeded {\n return {};\n },\n\n toJSON(_: ExecutionSucceeded): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<ExecutionSucceeded>): ExecutionSucceeded {\n return ExecutionSucceeded.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<ExecutionSucceeded>): ExecutionSucceeded {\n const message = createBaseExecutionSucceeded() as any;\n return message;\n },\n};\n\nfunction createBaseExecutionReverted(): ExecutionReverted {\n return { reason: \"\" };\n}\n\nexport const ExecutionReverted = {\n encode(message: ExecutionReverted, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.reason !== undefined && message.reason !== \"\") {\n writer.uint32(10).string(message.reason);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ExecutionReverted {\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 = createBaseExecutionReverted() 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.reason = reader.string();\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): ExecutionReverted {\n return { reason: isSet(object.reason) ? globalThis.String(object.reason) : \"\" };\n },\n\n toJSON(message: ExecutionReverted): unknown {\n const obj: any = {};\n if (message.reason !== undefined && message.reason !== \"\") {\n obj.reason = message.reason;\n }\n return obj;\n },\n\n create(base?: DeepPartial<ExecutionReverted>): ExecutionReverted {\n return ExecutionReverted.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ExecutionReverted>): ExecutionReverted {\n const message = createBaseExecutionReverted() as any;\n message.reason = object.reason ?? \"\";\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionReceipt(): InvokeTransactionReceipt {\n return {};\n}\n\nexport const InvokeTransactionReceipt = {\n encode(_: InvokeTransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionReceipt {\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 = createBaseInvokeTransactionReceipt() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): InvokeTransactionReceipt {\n return {};\n },\n\n toJSON(_: InvokeTransactionReceipt): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionReceipt>): InvokeTransactionReceipt {\n return InvokeTransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<InvokeTransactionReceipt>): InvokeTransactionReceipt {\n const message = createBaseInvokeTransactionReceipt() as any;\n return message;\n },\n};\n\nfunction createBaseL1HandlerTransactionReceipt(): L1HandlerTransactionReceipt {\n return { messageHash: new Uint8Array(0) };\n}\n\nexport const L1HandlerTransactionReceipt = {\n encode(message: L1HandlerTransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.messageHash !== undefined && message.messageHash.length !== 0) {\n writer.uint32(10).bytes(message.messageHash);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): L1HandlerTransactionReceipt {\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 = createBaseL1HandlerTransactionReceipt() 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.messageHash = 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): L1HandlerTransactionReceipt {\n return { messageHash: isSet(object.messageHash) ? bytesFromBase64(object.messageHash) : new Uint8Array(0) };\n },\n\n toJSON(message: L1HandlerTransactionReceipt): unknown {\n const obj: any = {};\n if (message.messageHash !== undefined && message.messageHash.length !== 0) {\n obj.messageHash = base64FromBytes(message.messageHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<L1HandlerTransactionReceipt>): L1HandlerTransactionReceipt {\n return L1HandlerTransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<L1HandlerTransactionReceipt>): L1HandlerTransactionReceipt {\n const message = createBaseL1HandlerTransactionReceipt() as any;\n message.messageHash = object.messageHash ?? new Uint8Array(0);\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionReceipt(): DeclareTransactionReceipt {\n return {};\n}\n\nexport const DeclareTransactionReceipt = {\n encode(_: DeclareTransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionReceipt {\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 = createBaseDeclareTransactionReceipt() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclareTransactionReceipt {\n return {};\n },\n\n toJSON(_: DeclareTransactionReceipt): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionReceipt>): DeclareTransactionReceipt {\n return DeclareTransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclareTransactionReceipt>): DeclareTransactionReceipt {\n const message = createBaseDeclareTransactionReceipt() as any;\n return message;\n },\n};\n\nfunction createBaseDeployTransactionReceipt(): DeployTransactionReceipt {\n return { contractAddress: undefined };\n}\n\nexport const DeployTransactionReceipt = {\n encode(message: DeployTransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployTransactionReceipt {\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 = createBaseDeployTransactionReceipt() 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.contractAddress = FieldElement.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): DeployTransactionReceipt {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n };\n },\n\n toJSON(message: DeployTransactionReceipt): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployTransactionReceipt>): DeployTransactionReceipt {\n return DeployTransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployTransactionReceipt>): DeployTransactionReceipt {\n const message = createBaseDeployTransactionReceipt() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeployAccountTransactionReceipt(): DeployAccountTransactionReceipt {\n return { contractAddress: undefined };\n}\n\nexport const DeployAccountTransactionReceipt = {\n encode(message: DeployAccountTransactionReceipt, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountTransactionReceipt {\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 = createBaseDeployAccountTransactionReceipt() 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.contractAddress = FieldElement.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): DeployAccountTransactionReceipt {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n };\n },\n\n toJSON(message: DeployAccountTransactionReceipt): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountTransactionReceipt>): DeployAccountTransactionReceipt {\n return DeployAccountTransactionReceipt.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployAccountTransactionReceipt>): DeployAccountTransactionReceipt {\n const message = createBaseDeployAccountTransactionReceipt() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseEvent(): Event {\n return {\n filterIds: [],\n address: undefined,\n keys: [],\n data: [],\n eventIndex: 0,\n transactionIndex: 0,\n transactionHash: undefined,\n transactionStatus: 0,\n eventIndexInTransaction: 0,\n };\n}\n\nexport const Event = {\n encode(message: Event, 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.address !== undefined) {\n FieldElement.encode(message.address, writer.uint32(18).fork()).ldelim();\n }\n if (message.keys !== undefined && message.keys.length !== 0) {\n for (const v of message.keys) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.data !== undefined && message.data.length !== 0) {\n for (const v of message.data) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.eventIndex !== undefined && message.eventIndex !== 0) {\n writer.uint32(40).uint32(message.eventIndex);\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(48).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n FieldElement.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.eventIndexInTransaction !== undefined && message.eventIndexInTransaction !== 0) {\n writer.uint32(72).uint32(message.eventIndexInTransaction);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Event {\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 = createBaseEvent() 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 !== 18) {\n break;\n }\n\n message.address = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.keys!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.data!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.eventIndex = reader.uint32();\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 = FieldElement.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.eventIndexInTransaction = 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): Event {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n address: isSet(object.address) ? FieldElement.fromJSON(object.address) : undefined,\n keys: globalThis.Array.isArray(object?.keys) ? object.keys.map((e: any) => FieldElement.fromJSON(e)) : [],\n data: globalThis.Array.isArray(object?.data) ? object.data.map((e: any) => FieldElement.fromJSON(e)) : [],\n eventIndex: isSet(object.eventIndex) ? globalThis.Number(object.eventIndex) : 0,\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? FieldElement.fromJSON(object.transactionHash) : undefined,\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n eventIndexInTransaction: isSet(object.eventIndexInTransaction)\n ? globalThis.Number(object.eventIndexInTransaction)\n : 0,\n };\n },\n\n toJSON(message: Event): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.address !== undefined) {\n obj.address = FieldElement.toJSON(message.address);\n }\n if (message.keys?.length) {\n obj.keys = message.keys.map((e) => FieldElement.toJSON(e));\n }\n if (message.data?.length) {\n obj.data = message.data.map((e) => FieldElement.toJSON(e));\n }\n if (message.eventIndex !== undefined && message.eventIndex !== 0) {\n obj.eventIndex = Math.round(message.eventIndex);\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 = FieldElement.toJSON(message.transactionHash);\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n obj.transactionStatus = transactionStatusToJSON(message.transactionStatus);\n }\n if (message.eventIndexInTransaction !== undefined && message.eventIndexInTransaction !== 0) {\n obj.eventIndexInTransaction = Math.round(message.eventIndexInTransaction);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Event>): Event {\n return Event.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Event>): Event {\n const message = createBaseEvent() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.address = (object.address !== undefined && object.address !== null)\n ? FieldElement.fromPartial(object.address)\n : undefined;\n message.keys = object.keys?.map((e) => FieldElement.fromPartial(e)) || [];\n message.data = object.data?.map((e) => FieldElement.fromPartial(e)) || [];\n message.eventIndex = object.eventIndex ?? 0;\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? FieldElement.fromPartial(object.transactionHash)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? 0;\n message.eventIndexInTransaction = object.eventIndexInTransaction ?? 0;\n return message;\n },\n};\n\nfunction createBaseMessageToL1(): MessageToL1 {\n return {\n filterIds: [],\n fromAddress: undefined,\n toAddress: undefined,\n payload: [],\n messageIndex: 0,\n transactionIndex: 0,\n transactionHash: undefined,\n transactionStatus: 0,\n messageIndexInTransaction: 0,\n };\n}\n\nexport const MessageToL1 = {\n encode(message: MessageToL1, 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.fromAddress !== undefined) {\n FieldElement.encode(message.fromAddress, writer.uint32(18).fork()).ldelim();\n }\n if (message.toAddress !== undefined) {\n FieldElement.encode(message.toAddress, writer.uint32(26).fork()).ldelim();\n }\n if (message.payload !== undefined && message.payload.length !== 0) {\n for (const v of message.payload) {\n FieldElement.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.messageIndex !== undefined && message.messageIndex !== 0) {\n writer.uint32(40).uint32(message.messageIndex);\n }\n if (message.transactionIndex !== undefined && message.transactionIndex !== 0) {\n writer.uint32(48).uint32(message.transactionIndex);\n }\n if (message.transactionHash !== undefined) {\n FieldElement.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.messageIndexInTransaction !== undefined && message.messageIndexInTransaction !== 0) {\n writer.uint32(72).uint32(message.messageIndexInTransaction);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): MessageToL1 {\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 = createBaseMessageToL1() 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 !== 18) {\n break;\n }\n\n message.fromAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.toAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.payload!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.messageIndex = reader.uint32();\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 = FieldElement.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.messageIndexInTransaction = 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): MessageToL1 {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n fromAddress: isSet(object.fromAddress) ? FieldElement.fromJSON(object.fromAddress) : undefined,\n toAddress: isSet(object.toAddress) ? FieldElement.fromJSON(object.toAddress) : undefined,\n payload: globalThis.Array.isArray(object?.payload)\n ? object.payload.map((e: any) => FieldElement.fromJSON(e))\n : [],\n messageIndex: isSet(object.messageIndex) ? globalThis.Number(object.messageIndex) : 0,\n transactionIndex: isSet(object.transactionIndex) ? globalThis.Number(object.transactionIndex) : 0,\n transactionHash: isSet(object.transactionHash) ? FieldElement.fromJSON(object.transactionHash) : undefined,\n transactionStatus: isSet(object.transactionStatus) ? transactionStatusFromJSON(object.transactionStatus) : 0,\n messageIndexInTransaction: isSet(object.messageIndexInTransaction)\n ? globalThis.Number(object.messageIndexInTransaction)\n : 0,\n };\n },\n\n toJSON(message: MessageToL1): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.fromAddress !== undefined) {\n obj.fromAddress = FieldElement.toJSON(message.fromAddress);\n }\n if (message.toAddress !== undefined) {\n obj.toAddress = FieldElement.toJSON(message.toAddress);\n }\n if (message.payload?.length) {\n obj.payload = message.payload.map((e) => FieldElement.toJSON(e));\n }\n if (message.messageIndex !== undefined && message.messageIndex !== 0) {\n obj.messageIndex = Math.round(message.messageIndex);\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 = FieldElement.toJSON(message.transactionHash);\n }\n if (message.transactionStatus !== undefined && message.transactionStatus !== 0) {\n obj.transactionStatus = transactionStatusToJSON(message.transactionStatus);\n }\n if (message.messageIndexInTransaction !== undefined && message.messageIndexInTransaction !== 0) {\n obj.messageIndexInTransaction = Math.round(message.messageIndexInTransaction);\n }\n return obj;\n },\n\n create(base?: DeepPartial<MessageToL1>): MessageToL1 {\n return MessageToL1.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<MessageToL1>): MessageToL1 {\n const message = createBaseMessageToL1() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.fromAddress = (object.fromAddress !== undefined && object.fromAddress !== null)\n ? FieldElement.fromPartial(object.fromAddress)\n : undefined;\n message.toAddress = (object.toAddress !== undefined && object.toAddress !== null)\n ? FieldElement.fromPartial(object.toAddress)\n : undefined;\n message.payload = object.payload?.map((e) => FieldElement.fromPartial(e)) || [];\n message.messageIndex = object.messageIndex ?? 0;\n message.transactionIndex = object.transactionIndex ?? 0;\n message.transactionHash = (object.transactionHash !== undefined && object.transactionHash !== null)\n ? FieldElement.fromPartial(object.transactionHash)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? 0;\n message.messageIndexInTransaction = object.messageIndexInTransaction ?? 0;\n return message;\n },\n};\n\nfunction createBaseResourcePrice(): ResourcePrice {\n return { priceInFri: undefined, priceInWei: undefined };\n}\n\nexport const ResourcePrice = {\n encode(message: ResourcePrice, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.priceInFri !== undefined) {\n FieldElement.encode(message.priceInFri, writer.uint32(10).fork()).ldelim();\n }\n if (message.priceInWei !== undefined) {\n FieldElement.encode(message.priceInWei, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResourcePrice {\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 = createBaseResourcePrice() 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.priceInFri = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.priceInWei = FieldElement.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): ResourcePrice {\n return {\n priceInFri: isSet(object.priceInFri) ? FieldElement.fromJSON(object.priceInFri) : undefined,\n priceInWei: isSet(object.priceInWei) ? FieldElement.fromJSON(object.priceInWei) : undefined,\n };\n },\n\n toJSON(message: ResourcePrice): unknown {\n const obj: any = {};\n if (message.priceInFri !== undefined) {\n obj.priceInFri = FieldElement.toJSON(message.priceInFri);\n }\n if (message.priceInWei !== undefined) {\n obj.priceInWei = FieldElement.toJSON(message.priceInWei);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ResourcePrice>): ResourcePrice {\n return ResourcePrice.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ResourcePrice>): ResourcePrice {\n const message = createBaseResourcePrice() as any;\n message.priceInFri = (object.priceInFri !== undefined && object.priceInFri !== null)\n ? FieldElement.fromPartial(object.priceInFri)\n : undefined;\n message.priceInWei = (object.priceInWei !== undefined && object.priceInWei !== null)\n ? FieldElement.fromPartial(object.priceInWei)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseFeePayment(): FeePayment {\n return { amount: undefined, unit: 0 };\n}\n\nexport const FeePayment = {\n encode(message: FeePayment, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.amount !== undefined) {\n FieldElement.encode(message.amount, writer.uint32(10).fork()).ldelim();\n }\n if (message.unit !== undefined && message.unit !== 0) {\n writer.uint32(16).int32(message.unit);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): FeePayment {\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 = createBaseFeePayment() 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.amount = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.unit = 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): FeePayment {\n return {\n amount: isSet(object.amount) ? FieldElement.fromJSON(object.amount) : undefined,\n unit: isSet(object.unit) ? priceUnitFromJSON(object.unit) : 0,\n };\n },\n\n toJSON(message: FeePayment): unknown {\n const obj: any = {};\n if (message.amount !== undefined) {\n obj.amount = FieldElement.toJSON(message.amount);\n }\n if (message.unit !== undefined && message.unit !== 0) {\n obj.unit = priceUnitToJSON(message.unit);\n }\n return obj;\n },\n\n create(base?: DeepPartial<FeePayment>): FeePayment {\n return FeePayment.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<FeePayment>): FeePayment {\n const message = createBaseFeePayment() as any;\n message.amount = (object.amount !== undefined && object.amount !== null)\n ? FieldElement.fromPartial(object.amount)\n : undefined;\n message.unit = object.unit ?? 0;\n return message;\n },\n};\n\nfunction createBaseExecutionResources(): ExecutionResources {\n return { computation: undefined, dataAvailability: undefined };\n}\n\nexport const ExecutionResources = {\n encode(message: ExecutionResources, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.computation !== undefined) {\n ComputationResources.encode(message.computation, writer.uint32(10).fork()).ldelim();\n }\n if (message.dataAvailability !== undefined) {\n DataAvailabilityResources.encode(message.dataAvailability, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ExecutionResources {\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 = createBaseExecutionResources() 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.computation = ComputationResources.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.dataAvailability = DataAvailabilityResources.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): ExecutionResources {\n return {\n computation: isSet(object.computation) ? ComputationResources.fromJSON(object.computation) : undefined,\n dataAvailability: isSet(object.dataAvailability)\n ? DataAvailabilityResources.fromJSON(object.dataAvailability)\n : undefined,\n };\n },\n\n toJSON(message: ExecutionResources): unknown {\n const obj: any = {};\n if (message.computation !== undefined) {\n obj.computation = ComputationResources.toJSON(message.computation);\n }\n if (message.dataAvailability !== undefined) {\n obj.dataAvailability = DataAvailabilityResources.toJSON(message.dataAvailability);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ExecutionResources>): ExecutionResources {\n return ExecutionResources.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ExecutionResources>): ExecutionResources {\n const message = createBaseExecutionResources() as any;\n message.computation = (object.computation !== undefined && object.computation !== null)\n ? ComputationResources.fromPartial(object.computation)\n : undefined;\n message.dataAvailability = (object.dataAvailability !== undefined && object.dataAvailability !== null)\n ? DataAvailabilityResources.fromPartial(object.dataAvailability)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseComputationResources(): ComputationResources {\n return {\n steps: BigInt(\"0\"),\n memoryHoles: undefined,\n rangeCheckBuiltinApplications: undefined,\n pedersenBuiltinApplications: undefined,\n poseidonBuiltinApplications: undefined,\n ecOpBuiltinApplications: undefined,\n ecdsaBuiltinApplications: undefined,\n bitwiseBuiltinApplications: undefined,\n keccakBuiltinApplications: undefined,\n segmentArenaBuiltin: undefined,\n };\n}\n\nexport const ComputationResources = {\n encode(message: ComputationResources, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.steps !== undefined && message.steps !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.steps) !== message.steps) {\n throw new globalThis.Error(\"value provided for field message.steps of type uint64 too large\");\n }\n writer.uint32(8).uint64(message.steps.toString());\n }\n if (message.memoryHoles !== undefined) {\n if (BigInt.asUintN(64, message.memoryHoles) !== message.memoryHoles) {\n throw new globalThis.Error(\"value provided for field message.memoryHoles of type uint64 too large\");\n }\n writer.uint32(16).uint64(message.memoryHoles.toString());\n }\n if (message.rangeCheckBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.rangeCheckBuiltinApplications) !== message.rangeCheckBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.rangeCheckBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(24).uint64(message.rangeCheckBuiltinApplications.toString());\n }\n if (message.pedersenBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.pedersenBuiltinApplications) !== message.pedersenBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.pedersenBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(32).uint64(message.pedersenBuiltinApplications.toString());\n }\n if (message.poseidonBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.poseidonBuiltinApplications) !== message.poseidonBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.poseidonBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(40).uint64(message.poseidonBuiltinApplications.toString());\n }\n if (message.ecOpBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.ecOpBuiltinApplications) !== message.ecOpBuiltinApplications) {\n throw new globalThis.Error(\"value provided for field message.ecOpBuiltinApplications of type uint64 too large\");\n }\n writer.uint32(48).uint64(message.ecOpBuiltinApplications.toString());\n }\n if (message.ecdsaBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.ecdsaBuiltinApplications) !== message.ecdsaBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.ecdsaBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(56).uint64(message.ecdsaBuiltinApplications.toString());\n }\n if (message.bitwiseBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.bitwiseBuiltinApplications) !== message.bitwiseBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.bitwiseBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(64).uint64(message.bitwiseBuiltinApplications.toString());\n }\n if (message.keccakBuiltinApplications !== undefined) {\n if (BigInt.asUintN(64, message.keccakBuiltinApplications) !== message.keccakBuiltinApplications) {\n throw new globalThis.Error(\n \"value provided for field message.keccakBuiltinApplications of type uint64 too large\",\n );\n }\n writer.uint32(72).uint64(message.keccakBuiltinApplications.toString());\n }\n if (message.segmentArenaBuiltin !== undefined) {\n if (BigInt.asUintN(64, message.segmentArenaBuiltin) !== message.segmentArenaBuiltin) {\n throw new globalThis.Error(\"value provided for field message.segmentArenaBuiltin of type uint64 too large\");\n }\n writer.uint32(80).uint64(message.segmentArenaBuiltin.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ComputationResources {\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 = createBaseComputationResources() 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.steps = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.memoryHoles = longToBigint(reader.uint64() as Long);\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.rangeCheckBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.pedersenBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.poseidonBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.ecOpBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n\n message.ecdsaBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n\n message.bitwiseBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.keccakBuiltinApplications = longToBigint(reader.uint64() as Long);\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n\n message.segmentArenaBuiltin = 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): ComputationResources {\n return {\n steps: isSet(object.steps) ? BigInt(object.steps) : BigInt(\"0\"),\n memoryHoles: isSet(object.memoryHoles) ? BigInt(object.memoryHoles) : undefined,\n rangeCheckBuiltinApplications: isSet(object.rangeCheckBuiltinApplications)\n ? BigInt(object.rangeCheckBuiltinApplications)\n : undefined,\n pedersenBuiltinApplications: isSet(object.pedersenBuiltinApplications)\n ? BigInt(object.pedersenBuiltinApplications)\n : undefined,\n poseidonBuiltinApplications: isSet(object.poseidonBuiltinApplications)\n ? BigInt(object.poseidonBuiltinApplications)\n : undefined,\n ecOpBuiltinApplications: isSet(object.ecOpBuiltinApplications)\n ? BigInt(object.ecOpBuiltinApplications)\n : undefined,\n ecdsaBuiltinApplications: isSet(object.ecdsaBuiltinApplications)\n ? BigInt(object.ecdsaBuiltinApplications)\n : undefined,\n bitwiseBuiltinApplications: isSet(object.bitwiseBuiltinApplications)\n ? BigInt(object.bitwiseBuiltinApplications)\n : undefined,\n keccakBuiltinApplications: isSet(object.keccakBuiltinApplications)\n ? BigInt(object.keccakBuiltinApplications)\n : undefined,\n segmentArenaBuiltin: isSet(object.segmentArenaBuiltin) ? BigInt(object.segmentArenaBuiltin) : undefined,\n };\n },\n\n toJSON(message: ComputationResources): unknown {\n const obj: any = {};\n if (message.steps !== undefined && message.steps !== BigInt(\"0\")) {\n obj.steps = message.steps.toString();\n }\n if (message.memoryHoles !== undefined) {\n obj.memoryHoles = message.memoryHoles.toString();\n }\n if (message.rangeCheckBuiltinApplications !== undefined) {\n obj.rangeCheckBuiltinApplications = message.rangeCheckBuiltinApplications.toString();\n }\n if (message.pedersenBuiltinApplications !== undefined) {\n obj.pedersenBuiltinApplications = message.pedersenBuiltinApplications.toString();\n }\n if (message.poseidonBuiltinApplications !== undefined) {\n obj.poseidonBuiltinApplications = message.poseidonBuiltinApplications.toString();\n }\n if (message.ecOpBuiltinApplications !== undefined) {\n obj.ecOpBuiltinApplications = message.ecOpBuiltinApplications.toString();\n }\n if (message.ecdsaBuiltinApplications !== undefined) {\n obj.ecdsaBuiltinApplications = message.ecdsaBuiltinApplications.toString();\n }\n if (message.bitwiseBuiltinApplications !== undefined) {\n obj.bitwiseBuiltinApplications = message.bitwiseBuiltinApplications.toString();\n }\n if (message.keccakBuiltinApplications !== undefined) {\n obj.keccakBuiltinApplications = message.keccakBuiltinApplications.toString();\n }\n if (message.segmentArenaBuiltin !== undefined) {\n obj.segmentArenaBuiltin = message.segmentArenaBuiltin.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<ComputationResources>): ComputationResources {\n return ComputationResources.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ComputationResources>): ComputationResources {\n const message = createBaseComputationResources() as any;\n message.steps = object.steps ?? BigInt(\"0\");\n message.memoryHoles = object.memoryHoles ?? undefined;\n message.rangeCheckBuiltinApplications = object.rangeCheckBuiltinApplications ?? undefined;\n message.pedersenBuiltinApplications = object.pedersenBuiltinApplications ?? undefined;\n message.poseidonBuiltinApplications = object.poseidonBuiltinApplications ?? undefined;\n message.ecOpBuiltinApplications = object.ecOpBuiltinApplications ?? undefined;\n message.ecdsaBuiltinApplications = object.ecdsaBuiltinApplications ?? undefined;\n message.bitwiseBuiltinApplications = object.bitwiseBuiltinApplications ?? undefined;\n message.keccakBuiltinApplications = object.keccakBuiltinApplications ?? undefined;\n message.segmentArenaBuiltin = object.segmentArenaBuiltin ?? undefined;\n return message;\n },\n};\n\nfunction createBaseDataAvailabilityResources(): DataAvailabilityResources {\n return { l1Gas: BigInt(\"0\"), l1DataGas: BigInt(\"0\") };\n}\n\nexport const DataAvailabilityResources = {\n encode(message: DataAvailabilityResources, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.l1Gas !== undefined && message.l1Gas !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.l1Gas) !== message.l1Gas) {\n throw new globalThis.Error(\"value provided for field message.l1Gas of type uint64 too large\");\n }\n writer.uint32(8).uint64(message.l1Gas.toString());\n }\n if (message.l1DataGas !== undefined && message.l1DataGas !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.l1DataGas) !== message.l1DataGas) {\n throw new globalThis.Error(\"value provided for field message.l1DataGas of type uint64 too large\");\n }\n writer.uint32(16).uint64(message.l1DataGas.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DataAvailabilityResources {\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 = createBaseDataAvailabilityResources() 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.l1Gas = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.l1DataGas = 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): DataAvailabilityResources {\n return {\n l1Gas: isSet(object.l1Gas) ? BigInt(object.l1Gas) : BigInt(\"0\"),\n l1DataGas: isSet(object.l1DataGas) ? BigInt(object.l1DataGas) : BigInt(\"0\"),\n };\n },\n\n toJSON(message: DataAvailabilityResources): unknown {\n const obj: any = {};\n if (message.l1Gas !== undefined && message.l1Gas !== BigInt(\"0\")) {\n obj.l1Gas = message.l1Gas.toString();\n }\n if (message.l1DataGas !== undefined && message.l1DataGas !== BigInt(\"0\")) {\n obj.l1DataGas = message.l1DataGas.toString();\n }\n return obj;\n },\n\n create(base?: DeepPartial<DataAvailabilityResources>): DataAvailabilityResources {\n return DataAvailabilityResources.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DataAvailabilityResources>): DataAvailabilityResources {\n const message = createBaseDataAvailabilityResources() as any;\n message.l1Gas = object.l1Gas ?? BigInt(\"0\");\n message.l1DataGas = object.l1DataGas ?? BigInt(\"0\");\n return message;\n },\n};\n\nfunction createBaseResourceBoundsMapping(): ResourceBoundsMapping {\n return { l1Gas: undefined, l2Gas: undefined };\n}\n\nexport const ResourceBoundsMapping = {\n encode(message: ResourceBoundsMapping, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.l1Gas !== undefined) {\n ResourceBounds.encode(message.l1Gas, writer.uint32(10).fork()).ldelim();\n }\n if (message.l2Gas !== undefined) {\n ResourceBounds.encode(message.l2Gas, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResourceBoundsMapping {\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 = createBaseResourceBoundsMapping() 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.l1Gas = ResourceBounds.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.l2Gas = ResourceBounds.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): ResourceBoundsMapping {\n return {\n l1Gas: isSet(object.l1Gas) ? ResourceBounds.fromJSON(object.l1Gas) : undefined,\n l2Gas: isSet(object.l2Gas) ? ResourceBounds.fromJSON(object.l2Gas) : undefined,\n };\n },\n\n toJSON(message: ResourceBoundsMapping): unknown {\n const obj: any = {};\n if (message.l1Gas !== undefined) {\n obj.l1Gas = ResourceBounds.toJSON(message.l1Gas);\n }\n if (message.l2Gas !== undefined) {\n obj.l2Gas = ResourceBounds.toJSON(message.l2Gas);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ResourceBoundsMapping>): ResourceBoundsMapping {\n return ResourceBoundsMapping.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ResourceBoundsMapping>): ResourceBoundsMapping {\n const message = createBaseResourceBoundsMapping() as any;\n message.l1Gas = (object.l1Gas !== undefined && object.l1Gas !== null)\n ? ResourceBounds.fromPartial(object.l1Gas)\n : undefined;\n message.l2Gas = (object.l2Gas !== undefined && object.l2Gas !== null)\n ? ResourceBounds.fromPartial(object.l2Gas)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseResourceBounds(): ResourceBounds {\n return { maxAmount: BigInt(\"0\"), maxPricePerUnit: undefined };\n}\n\nexport const ResourceBounds = {\n encode(message: ResourceBounds, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.maxAmount !== undefined && message.maxAmount !== BigInt(\"0\")) {\n if (BigInt.asUintN(64, message.maxAmount) !== message.maxAmount) {\n throw new globalThis.Error(\"value provided for field message.maxAmount of type uint64 too large\");\n }\n writer.uint32(8).uint64(message.maxAmount.toString());\n }\n if (message.maxPricePerUnit !== undefined) {\n Uint128.encode(message.maxPricePerUnit, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ResourceBounds {\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 = createBaseResourceBounds() 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.maxAmount = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.maxPricePerUnit = Uint128.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): ResourceBounds {\n return {\n maxAmount: isSet(object.maxAmount) ? BigInt(object.maxAmount) : BigInt(\"0\"),\n maxPricePerUnit: isSet(object.maxPricePerUnit) ? Uint128.fromJSON(object.maxPricePerUnit) : undefined,\n };\n },\n\n toJSON(message: ResourceBounds): unknown {\n const obj: any = {};\n if (message.maxAmount !== undefined && message.maxAmount !== BigInt(\"0\")) {\n obj.maxAmount = message.maxAmount.toString();\n }\n if (message.maxPricePerUnit !== undefined) {\n obj.maxPricePerUnit = Uint128.toJSON(message.maxPricePerUnit);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ResourceBounds>): ResourceBounds {\n return ResourceBounds.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ResourceBounds>): ResourceBounds {\n const message = createBaseResourceBounds() as any;\n message.maxAmount = object.maxAmount ?? BigInt(\"0\");\n message.maxPricePerUnit = (object.maxPricePerUnit !== undefined && object.maxPricePerUnit !== null)\n ? Uint128.fromPartial(object.maxPricePerUnit)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseUint128(): Uint128 {\n return { x0: BigInt(\"0\"), x1: BigInt(\"0\") };\n}\n\nexport const Uint128 = {\n encode(message: Uint128, 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 uint64 too large\");\n }\n writer.uint32(8).uint64(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 uint64 too large\");\n }\n writer.uint32(16).uint64(message.x1.toString());\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Uint128 {\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 = createBaseUint128() 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.x0 = longToBigint(reader.uint64() as Long);\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n\n message.x1 = 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): Uint128 {\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: Uint128): 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<Uint128>): Uint128 {\n return Uint128.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Uint128>): Uint128 {\n const message = createBaseUint128() as any;\n message.x0 = object.x0 ?? BigInt(\"0\");\n message.x1 = object.x1 ?? BigInt(\"0\");\n return message;\n },\n};\n\nfunction createBaseStorageDiff(): StorageDiff {\n return { filterIds: [], contractAddress: undefined, storageEntries: [] };\n}\n\nexport const StorageDiff = {\n encode(message: StorageDiff, 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.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(18).fork()).ldelim();\n }\n if (message.storageEntries !== undefined && message.storageEntries.length !== 0) {\n for (const v of message.storageEntries) {\n StorageEntry.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): StorageDiff {\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 = createBaseStorageDiff() 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 !== 18) {\n break;\n }\n\n message.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.storageEntries!.push(StorageEntry.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): StorageDiff {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n storageEntries: globalThis.Array.isArray(object?.storageEntries)\n ? object.storageEntries.map((e: any) => StorageEntry.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: StorageDiff): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.storageEntries?.length) {\n obj.storageEntries = message.storageEntries.map((e) => StorageEntry.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<StorageDiff>): StorageDiff {\n return StorageDiff.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<StorageDiff>): StorageDiff {\n const message = createBaseStorageDiff() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.storageEntries = object.storageEntries?.map((e) => StorageEntry.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseStorageEntry(): StorageEntry {\n return { key: undefined, value: undefined };\n}\n\nexport const StorageEntry = {\n encode(message: StorageEntry, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.key !== undefined) {\n FieldElement.encode(message.key, writer.uint32(10).fork()).ldelim();\n }\n if (message.value !== undefined) {\n FieldElement.encode(message.value, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): StorageEntry {\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 = createBaseStorageEntry() 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.key = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.value = FieldElement.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): StorageEntry {\n return {\n key: isSet(object.key) ? FieldElement.fromJSON(object.key) : undefined,\n value: isSet(object.value) ? FieldElement.fromJSON(object.value) : undefined,\n };\n },\n\n toJSON(message: StorageEntry): unknown {\n const obj: any = {};\n if (message.key !== undefined) {\n obj.key = FieldElement.toJSON(message.key);\n }\n if (message.value !== undefined) {\n obj.value = FieldElement.toJSON(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<StorageEntry>): StorageEntry {\n return StorageEntry.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<StorageEntry>): StorageEntry {\n const message = createBaseStorageEntry() as any;\n message.key = (object.key !== undefined && object.key !== null) ? FieldElement.fromPartial(object.key) : undefined;\n message.value = (object.value !== undefined && object.value !== null)\n ? FieldElement.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseContractChange(): ContractChange {\n return { filterIds: [], change: undefined };\n}\n\nexport const ContractChange = {\n encode(message: ContractChange, 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 switch (message.change?.$case) {\n case \"declaredClass\":\n DeclaredClass.encode(message.change.declaredClass, writer.uint32(18).fork()).ldelim();\n break;\n case \"replacedClass\":\n ReplacedClass.encode(message.change.replacedClass, writer.uint32(26).fork()).ldelim();\n break;\n case \"deployedContract\":\n DeployedContract.encode(message.change.deployedContract, writer.uint32(34).fork()).ldelim();\n break;\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ContractChange {\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 = createBaseContractChange() 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 !== 18) {\n break;\n }\n\n message.change = { $case: \"declaredClass\", declaredClass: DeclaredClass.decode(reader, reader.uint32()) };\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.change = { $case: \"replacedClass\", replacedClass: ReplacedClass.decode(reader, reader.uint32()) };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.change = {\n $case: \"deployedContract\",\n deployedContract: DeployedContract.decode(reader, reader.uint32()),\n };\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): ContractChange {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n change: isSet(object.declaredClass)\n ? { $case: \"declaredClass\", declaredClass: DeclaredClass.fromJSON(object.declaredClass) }\n : isSet(object.replacedClass)\n ? { $case: \"replacedClass\", replacedClass: ReplacedClass.fromJSON(object.replacedClass) }\n : isSet(object.deployedContract)\n ? { $case: \"deployedContract\", deployedContract: DeployedContract.fromJSON(object.deployedContract) }\n : undefined,\n };\n },\n\n toJSON(message: ContractChange): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.change?.$case === \"declaredClass\") {\n obj.declaredClass = DeclaredClass.toJSON(message.change.declaredClass);\n }\n if (message.change?.$case === \"replacedClass\") {\n obj.replacedClass = ReplacedClass.toJSON(message.change.replacedClass);\n }\n if (message.change?.$case === \"deployedContract\") {\n obj.deployedContract = DeployedContract.toJSON(message.change.deployedContract);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ContractChange>): ContractChange {\n return ContractChange.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ContractChange>): ContractChange {\n const message = createBaseContractChange() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n if (\n object.change?.$case === \"declaredClass\" &&\n object.change?.declaredClass !== undefined &&\n object.change?.declaredClass !== null\n ) {\n message.change = {\n $case: \"declaredClass\",\n declaredClass: DeclaredClass.fromPartial(object.change.declaredClass),\n };\n }\n if (\n object.change?.$case === \"replacedClass\" &&\n object.change?.replacedClass !== undefined &&\n object.change?.replacedClass !== null\n ) {\n message.change = {\n $case: \"replacedClass\",\n replacedClass: ReplacedClass.fromPartial(object.change.replacedClass),\n };\n }\n if (\n object.change?.$case === \"deployedContract\" &&\n object.change?.deployedContract !== undefined &&\n object.change?.deployedContract !== null\n ) {\n message.change = {\n $case: \"deployedContract\",\n deployedContract: DeployedContract.fromPartial(object.change.deployedContract),\n };\n }\n return message;\n },\n};\n\nfunction createBaseDeclaredClass(): DeclaredClass {\n return { classHash: undefined, compiledClassHash: undefined };\n}\n\nexport const DeclaredClass = {\n encode(message: DeclaredClass, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(10).fork()).ldelim();\n }\n if (message.compiledClassHash !== undefined) {\n FieldElement.encode(message.compiledClassHash, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclaredClass {\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 = createBaseDeclaredClass() 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.classHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.compiledClassHash = FieldElement.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): DeclaredClass {\n return {\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n compiledClassHash: isSet(object.compiledClassHash) ? FieldElement.fromJSON(object.compiledClassHash) : undefined,\n };\n },\n\n toJSON(message: DeclaredClass): unknown {\n const obj: any = {};\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n if (message.compiledClassHash !== undefined) {\n obj.compiledClassHash = FieldElement.toJSON(message.compiledClassHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclaredClass>): DeclaredClass {\n return DeclaredClass.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclaredClass>): DeclaredClass {\n const message = createBaseDeclaredClass() as any;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n message.compiledClassHash = (object.compiledClassHash !== undefined && object.compiledClassHash !== null)\n ? FieldElement.fromPartial(object.compiledClassHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseReplacedClass(): ReplacedClass {\n return { contractAddress: undefined, classHash: undefined };\n}\n\nexport const ReplacedClass = {\n encode(message: ReplacedClass, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ReplacedClass {\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 = createBaseReplacedClass() 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.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.classHash = FieldElement.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): ReplacedClass {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: ReplacedClass): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ReplacedClass>): ReplacedClass {\n return ReplacedClass.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ReplacedClass>): ReplacedClass {\n const message = createBaseReplacedClass() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeployedContract(): DeployedContract {\n return { contractAddress: undefined, classHash: undefined };\n}\n\nexport const DeployedContract = {\n encode(message: DeployedContract, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployedContract {\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 = createBaseDeployedContract() 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.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.classHash = FieldElement.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): DeployedContract {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n };\n },\n\n toJSON(message: DeployedContract): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployedContract>): DeployedContract {\n return DeployedContract.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployedContract>): DeployedContract {\n const message = createBaseDeployedContract() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseNonceUpdate(): NonceUpdate {\n return { filterIds: [], contractAddress: undefined, nonce: undefined };\n}\n\nexport const NonceUpdate = {\n encode(message: NonceUpdate, 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.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(18).fork()).ldelim();\n }\n if (message.nonce !== undefined) {\n FieldElement.encode(message.nonce, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): NonceUpdate {\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 = createBaseNonceUpdate() 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 !== 18) {\n break;\n }\n\n message.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.nonce = FieldElement.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): NonceUpdate {\n return {\n filterIds: globalThis.Array.isArray(object?.filterIds)\n ? object.filterIds.map((e: any) => globalThis.Number(e))\n : [],\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n nonce: isSet(object.nonce) ? FieldElement.fromJSON(object.nonce) : undefined,\n };\n },\n\n toJSON(message: NonceUpdate): unknown {\n const obj: any = {};\n if (message.filterIds?.length) {\n obj.filterIds = message.filterIds.map((e) => Math.round(e));\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.nonce !== undefined) {\n obj.nonce = FieldElement.toJSON(message.nonce);\n }\n return obj;\n },\n\n create(base?: DeepPartial<NonceUpdate>): NonceUpdate {\n return NonceUpdate.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<NonceUpdate>): NonceUpdate {\n const message = createBaseNonceUpdate() as any;\n message.filterIds = object.filterIds?.map((e) => e) || [];\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.nonce = (object.nonce !== undefined && object.nonce !== null)\n ? FieldElement.fromPartial(object.nonce)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseTransactionTrace(): TransactionTrace {\n return { filterIds: [], transactionIndex: 0, transactionHash: undefined, traceRoot: undefined };\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 FieldElement.encode(message.transactionHash, writer.uint32(26).fork()).ldelim();\n }\n switch (message.traceRoot?.$case) {\n case \"invoke\":\n InvokeTransactionTrace.encode(message.traceRoot.invoke, writer.uint32(34).fork()).ldelim();\n break;\n case \"declare\":\n DeclareTransactionTrace.encode(message.traceRoot.declare, writer.uint32(42).fork()).ldelim();\n break;\n case \"deployAccount\":\n DeployAccountTransactionTrace.encode(message.traceRoot.deployAccount, writer.uint32(50).fork()).ldelim();\n break;\n case \"l1Handler\":\n L1HandlerTransactionTrace.encode(message.traceRoot.l1Handler, writer.uint32(58).fork()).ldelim();\n break;\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 = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.traceRoot = { $case: \"invoke\", invoke: InvokeTransactionTrace.decode(reader, reader.uint32()) };\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.traceRoot = { $case: \"declare\", declare: DeclareTransactionTrace.decode(reader, reader.uint32()) };\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.traceRoot = {\n $case: \"deployAccount\",\n deployAccount: DeployAccountTransactionTrace.decode(reader, reader.uint32()),\n };\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.traceRoot = {\n $case: \"l1Handler\",\n l1Handler: L1HandlerTransactionTrace.decode(reader, reader.uint32()),\n };\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) ? FieldElement.fromJSON(object.transactionHash) : undefined,\n traceRoot: isSet(object.invoke)\n ? { $case: \"invoke\", invoke: InvokeTransactionTrace.fromJSON(object.invoke) }\n : isSet(object.declare)\n ? { $case: \"declare\", declare: DeclareTransactionTrace.fromJSON(object.declare) }\n : isSet(object.deployAccount)\n ? { $case: \"deployAccount\", deployAccount: DeployAccountTransactionTrace.fromJSON(object.deployAccount) }\n : isSet(object.l1Handler)\n ? { $case: \"l1Handler\", l1Handler: L1HandlerTransactionTrace.fromJSON(object.l1Handler) }\n : undefined,\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 = FieldElement.toJSON(message.transactionHash);\n }\n if (message.traceRoot?.$case === \"invoke\") {\n obj.invoke = InvokeTransactionTrace.toJSON(message.traceRoot.invoke);\n }\n if (message.traceRoot?.$case === \"declare\") {\n obj.declare = DeclareTransactionTrace.toJSON(message.traceRoot.declare);\n }\n if (message.traceRoot?.$case === \"deployAccount\") {\n obj.deployAccount = DeployAccountTransactionTrace.toJSON(message.traceRoot.deployAccount);\n }\n if (message.traceRoot?.$case === \"l1Handler\") {\n obj.l1Handler = L1HandlerTransactionTrace.toJSON(message.traceRoot.l1Handler);\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 ? FieldElement.fromPartial(object.transactionHash)\n : undefined;\n if (\n object.traceRoot?.$case === \"invoke\" &&\n object.traceRoot?.invoke !== undefined &&\n object.traceRoot?.invoke !== null\n ) {\n message.traceRoot = { $case: \"invoke\", invoke: InvokeTransactionTrace.fromPartial(object.traceRoot.invoke) };\n }\n if (\n object.traceRoot?.$case === \"declare\" &&\n object.traceRoot?.declare !== undefined &&\n object.traceRoot?.declare !== null\n ) {\n message.traceRoot = { $case: \"declare\", declare: DeclareTransactionTrace.fromPartial(object.traceRoot.declare) };\n }\n if (\n object.traceRoot?.$case === \"deployAccount\" &&\n object.traceRoot?.deployAccount !== undefined &&\n object.traceRoot?.deployAccount !== null\n ) {\n message.traceRoot = {\n $case: \"deployAccount\",\n deployAccount: DeployAccountTransactionTrace.fromPartial(object.traceRoot.deployAccount),\n };\n }\n if (\n object.traceRoot?.$case === \"l1Handler\" &&\n object.traceRoot?.l1Handler !== undefined &&\n object.traceRoot?.l1Handler !== null\n ) {\n message.traceRoot = {\n $case: \"l1Handler\",\n l1Handler: L1HandlerTransactionTrace.fromPartial(object.traceRoot.l1Handler),\n };\n }\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionTrace(): InvokeTransactionTrace {\n return { validateInvocation: undefined, executeInvocation: undefined, feeTransferInvocation: undefined };\n}\n\nexport const InvokeTransactionTrace = {\n encode(message: InvokeTransactionTrace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.validateInvocation !== undefined) {\n FunctionInvocation.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();\n }\n switch (message.executeInvocation?.$case) {\n case \"success\":\n FunctionInvocation.encode(message.executeInvocation.success, writer.uint32(18).fork()).ldelim();\n break;\n case \"reverted\":\n ExecutionReverted.encode(message.executeInvocation.reverted, writer.uint32(26).fork()).ldelim();\n break;\n }\n if (message.feeTransferInvocation !== undefined) {\n FunctionInvocation.encode(message.feeTransferInvocation, writer.uint32(34).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionTrace {\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 = createBaseInvokeTransactionTrace() 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.validateInvocation = FunctionInvocation.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.executeInvocation = { $case: \"success\", success: FunctionInvocation.decode(reader, reader.uint32()) };\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.executeInvocation = {\n $case: \"reverted\",\n reverted: ExecutionReverted.decode(reader, reader.uint32()),\n };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.feeTransferInvocation = FunctionInvocation.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): InvokeTransactionTrace {\n return {\n validateInvocation: isSet(object.validateInvocation)\n ? FunctionInvocation.fromJSON(object.validateInvocation)\n : undefined,\n executeInvocation: isSet(object.success)\n ? { $case: \"success\", success: FunctionInvocation.fromJSON(object.success) }\n : isSet(object.reverted)\n ? { $case: \"reverted\", reverted: ExecutionReverted.fromJSON(object.reverted) }\n : undefined,\n feeTransferInvocation: isSet(object.feeTransferInvocation)\n ? FunctionInvocation.fromJSON(object.feeTransferInvocation)\n : undefined,\n };\n },\n\n toJSON(message: InvokeTransactionTrace): unknown {\n const obj: any = {};\n if (message.validateInvocation !== undefined) {\n obj.validateInvocation = FunctionInvocation.toJSON(message.validateInvocation);\n }\n if (message.executeInvocation?.$case === \"success\") {\n obj.success = FunctionInvocation.toJSON(message.executeInvocation.success);\n }\n if (message.executeInvocation?.$case === \"reverted\") {\n obj.reverted = ExecutionReverted.toJSON(message.executeInvocation.reverted);\n }\n if (message.feeTransferInvocation !== undefined) {\n obj.feeTransferInvocation = FunctionInvocation.toJSON(message.feeTransferInvocation);\n }\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionTrace>): InvokeTransactionTrace {\n return InvokeTransactionTrace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<InvokeTransactionTrace>): InvokeTransactionTrace {\n const message = createBaseInvokeTransactionTrace() as any;\n message.validateInvocation = (object.validateInvocation !== undefined && object.validateInvocation !== null)\n ? FunctionInvocation.fromPartial(object.validateInvocation)\n : undefined;\n if (\n object.executeInvocation?.$case === \"success\" &&\n object.executeInvocation?.success !== undefined &&\n object.executeInvocation?.success !== null\n ) {\n message.executeInvocation = {\n $case: \"success\",\n success: FunctionInvocation.fromPartial(object.executeInvocation.success),\n };\n }\n if (\n object.executeInvocation?.$case === \"reverted\" &&\n object.executeInvocation?.reverted !== undefined &&\n object.executeInvocation?.reverted !== null\n ) {\n message.executeInvocation = {\n $case: \"reverted\",\n reverted: ExecutionReverted.fromPartial(object.executeInvocation.reverted),\n };\n }\n message.feeTransferInvocation =\n (object.feeTransferInvocation !== undefined && object.feeTransferInvocation !== null)\n ? FunctionInvocation.fromPartial(object.feeTransferInvocation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeclareTransactionTrace(): DeclareTransactionTrace {\n return { validateInvocation: undefined, feeTransferInvocation: undefined };\n}\n\nexport const DeclareTransactionTrace = {\n encode(message: DeclareTransactionTrace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.validateInvocation !== undefined) {\n FunctionInvocation.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();\n }\n if (message.feeTransferInvocation !== undefined) {\n FunctionInvocation.encode(message.feeTransferInvocation, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareTransactionTrace {\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 = createBaseDeclareTransactionTrace() 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.validateInvocation = FunctionInvocation.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.feeTransferInvocation = FunctionInvocation.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): DeclareTransactionTrace {\n return {\n validateInvocation: isSet(object.validateInvocation)\n ? FunctionInvocation.fromJSON(object.validateInvocation)\n : undefined,\n feeTransferInvocation: isSet(object.feeTransferInvocation)\n ? FunctionInvocation.fromJSON(object.feeTransferInvocation)\n : undefined,\n };\n },\n\n toJSON(message: DeclareTransactionTrace): unknown {\n const obj: any = {};\n if (message.validateInvocation !== undefined) {\n obj.validateInvocation = FunctionInvocation.toJSON(message.validateInvocation);\n }\n if (message.feeTransferInvocation !== undefined) {\n obj.feeTransferInvocation = FunctionInvocation.toJSON(message.feeTransferInvocation);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeclareTransactionTrace>): DeclareTransactionTrace {\n return DeclareTransactionTrace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeclareTransactionTrace>): DeclareTransactionTrace {\n const message = createBaseDeclareTransactionTrace() as any;\n message.validateInvocation = (object.validateInvocation !== undefined && object.validateInvocation !== null)\n ? FunctionInvocation.fromPartial(object.validateInvocation)\n : undefined;\n message.feeTransferInvocation =\n (object.feeTransferInvocation !== undefined && object.feeTransferInvocation !== null)\n ? FunctionInvocation.fromPartial(object.feeTransferInvocation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseDeployAccountTransactionTrace(): DeployAccountTransactionTrace {\n return { validateInvocation: undefined, constructorInvocation: undefined, feeTransferInvocation: undefined };\n}\n\nexport const DeployAccountTransactionTrace = {\n encode(message: DeployAccountTransactionTrace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.validateInvocation !== undefined) {\n FunctionInvocation.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();\n }\n if (message.constructorInvocation !== undefined) {\n FunctionInvocation.encode(message.constructorInvocation, writer.uint32(18).fork()).ldelim();\n }\n if (message.feeTransferInvocation !== undefined) {\n FunctionInvocation.encode(message.feeTransferInvocation, writer.uint32(26).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountTransactionTrace {\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 = createBaseDeployAccountTransactionTrace() 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.validateInvocation = FunctionInvocation.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.constructorInvocation = FunctionInvocation.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.feeTransferInvocation = FunctionInvocation.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): DeployAccountTransactionTrace {\n return {\n validateInvocation: isSet(object.validateInvocation)\n ? FunctionInvocation.fromJSON(object.validateInvocation)\n : undefined,\n constructorInvocation: isSet(object.constructorInvocation)\n ? FunctionInvocation.fromJSON(object.constructorInvocation)\n : undefined,\n feeTransferInvocation: isSet(object.feeTransferInvocation)\n ? FunctionInvocation.fromJSON(object.feeTransferInvocation)\n : undefined,\n };\n },\n\n toJSON(message: DeployAccountTransactionTrace): unknown {\n const obj: any = {};\n if (message.validateInvocation !== undefined) {\n obj.validateInvocation = FunctionInvocation.toJSON(message.validateInvocation);\n }\n if (message.constructorInvocation !== undefined) {\n obj.constructorInvocation = FunctionInvocation.toJSON(message.constructorInvocation);\n }\n if (message.feeTransferInvocation !== undefined) {\n obj.feeTransferInvocation = FunctionInvocation.toJSON(message.feeTransferInvocation);\n }\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountTransactionTrace>): DeployAccountTransactionTrace {\n return DeployAccountTransactionTrace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<DeployAccountTransactionTrace>): DeployAccountTransactionTrace {\n const message = createBaseDeployAccountTransactionTrace() as any;\n message.validateInvocation = (object.validateInvocation !== undefined && object.validateInvocation !== null)\n ? FunctionInvocation.fromPartial(object.validateInvocation)\n : undefined;\n message.constructorInvocation =\n (object.constructorInvocation !== undefined && object.constructorInvocation !== null)\n ? FunctionInvocation.fromPartial(object.constructorInvocation)\n : undefined;\n message.feeTransferInvocation =\n (object.feeTransferInvocation !== undefined && object.feeTransferInvocation !== null)\n ? FunctionInvocation.fromPartial(object.feeTransferInvocation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseL1HandlerTransactionTrace(): L1HandlerTransactionTrace {\n return { functionInvocation: undefined };\n}\n\nexport const L1HandlerTransactionTrace = {\n encode(message: L1HandlerTransactionTrace, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.functionInvocation !== undefined) {\n FunctionInvocation.encode(message.functionInvocation, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): L1HandlerTransactionTrace {\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 = createBaseL1HandlerTransactionTrace() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.functionInvocation = FunctionInvocation.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): L1HandlerTransactionTrace {\n return {\n functionInvocation: isSet(object.functionInvocation)\n ? FunctionInvocation.fromJSON(object.functionInvocation)\n : undefined,\n };\n },\n\n toJSON(message: L1HandlerTransactionTrace): unknown {\n const obj: any = {};\n if (message.functionInvocation !== undefined) {\n obj.functionInvocation = FunctionInvocation.toJSON(message.functionInvocation);\n }\n return obj;\n },\n\n create(base?: DeepPartial<L1HandlerTransactionTrace>): L1HandlerTransactionTrace {\n return L1HandlerTransactionTrace.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<L1HandlerTransactionTrace>): L1HandlerTransactionTrace {\n const message = createBaseL1HandlerTransactionTrace() as any;\n message.functionInvocation = (object.functionInvocation !== undefined && object.functionInvocation !== null)\n ? FunctionInvocation.fromPartial(object.functionInvocation)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseFunctionInvocation(): FunctionInvocation {\n return {\n contractAddress: undefined,\n entryPointSelector: undefined,\n calldata: [],\n callerAddress: undefined,\n classHash: undefined,\n callType: 0,\n result: [],\n calls: [],\n events: [],\n messages: [],\n };\n}\n\nexport const FunctionInvocation = {\n encode(message: FunctionInvocation, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.entryPointSelector !== undefined) {\n FieldElement.encode(message.entryPointSelector, writer.uint32(18).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.callerAddress !== undefined) {\n FieldElement.encode(message.callerAddress, writer.uint32(34).fork()).ldelim();\n }\n if (message.classHash !== undefined) {\n FieldElement.encode(message.classHash, writer.uint32(42).fork()).ldelim();\n }\n if (message.callType !== undefined && message.callType !== 0) {\n writer.uint32(48).int32(message.callType);\n }\n if (message.result !== undefined && message.result.length !== 0) {\n for (const v of message.result) {\n FieldElement.encode(v!, writer.uint32(58).fork()).ldelim();\n }\n }\n if (message.calls !== undefined && message.calls.length !== 0) {\n for (const v of message.calls) {\n FunctionInvocation.encode(v!, writer.uint32(66).fork()).ldelim();\n }\n }\n if (message.events !== undefined && message.events.length !== 0) {\n writer.uint32(74).fork();\n for (const v of message.events) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n if (message.messages !== undefined && message.messages.length !== 0) {\n writer.uint32(82).fork();\n for (const v of message.messages) {\n writer.uint32(v);\n }\n writer.ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): FunctionInvocation {\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 = createBaseFunctionInvocation() 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.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.entryPointSelector = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.calldata!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.callerAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.classHash = FieldElement.decode(reader, reader.uint32());\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n\n message.callType = reader.int32() as any;\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.result!.push(FieldElement.decode(reader, reader.uint32()));\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.calls!.push(FunctionInvocation.decode(reader, reader.uint32()));\n continue;\n case 9:\n if (tag === 72) {\n message.events!.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.events!.push(reader.uint32());\n }\n\n continue;\n }\n\n break;\n case 10:\n if (tag === 80) {\n message.messages!.push(reader.uint32());\n\n continue;\n }\n\n if (tag === 82) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.messages!.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): FunctionInvocation {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n entryPointSelector: isSet(object.entryPointSelector)\n ? FieldElement.fromJSON(object.entryPointSelector)\n : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n callerAddress: isSet(object.callerAddress) ? FieldElement.fromJSON(object.callerAddress) : undefined,\n classHash: isSet(object.classHash) ? FieldElement.fromJSON(object.classHash) : undefined,\n callType: isSet(object.callType) ? callTypeFromJSON(object.callType) : 0,\n result: globalThis.Array.isArray(object?.result) ? object.result.map((e: any) => FieldElement.fromJSON(e)) : [],\n calls: globalThis.Array.isArray(object?.calls)\n ? object.calls.map((e: any) => FunctionInvocation.fromJSON(e))\n : [],\n events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => globalThis.Number(e)) : [],\n messages: globalThis.Array.isArray(object?.messages) ? object.messages.map((e: any) => globalThis.Number(e)) : [],\n };\n },\n\n toJSON(message: FunctionInvocation): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.entryPointSelector !== undefined) {\n obj.entryPointSelector = FieldElement.toJSON(message.entryPointSelector);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n if (message.callerAddress !== undefined) {\n obj.callerAddress = FieldElement.toJSON(message.callerAddress);\n }\n if (message.classHash !== undefined) {\n obj.classHash = FieldElement.toJSON(message.classHash);\n }\n if (message.callType !== undefined && message.callType !== 0) {\n obj.callType = callTypeToJSON(message.callType);\n }\n if (message.result?.length) {\n obj.result = message.result.map((e) => FieldElement.toJSON(e));\n }\n if (message.calls?.length) {\n obj.calls = message.calls.map((e) => FunctionInvocation.toJSON(e));\n }\n if (message.events?.length) {\n obj.events = message.events.map((e) => Math.round(e));\n }\n if (message.messages?.length) {\n obj.messages = message.messages.map((e) => Math.round(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<FunctionInvocation>): FunctionInvocation {\n return FunctionInvocation.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<FunctionInvocation>): FunctionInvocation {\n const message = createBaseFunctionInvocation() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.entryPointSelector = (object.entryPointSelector !== undefined && object.entryPointSelector !== null)\n ? FieldElement.fromPartial(object.entryPointSelector)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\n message.callerAddress = (object.callerAddress !== undefined && object.callerAddress !== null)\n ? FieldElement.fromPartial(object.callerAddress)\n : undefined;\n message.classHash = (object.classHash !== undefined && object.classHash !== null)\n ? FieldElement.fromPartial(object.classHash)\n : undefined;\n message.callType = object.callType ?? 0;\n message.result = object.result?.map((e) => FieldElement.fromPartial(e)) || [];\n message.calls = object.calls?.map((e) => FunctionInvocation.fromPartial(e)) || [];\n message.events = object.events?.map((e) => e) || [];\n message.messages = object.messages?.map((e) => e) || [];\n return message;\n },\n};\n\nfunction createBaseFunctionCall(): FunctionCall {\n return { contractAddress: undefined, entryPointSelector: undefined, calldata: [] };\n}\n\nexport const FunctionCall = {\n encode(message: FunctionCall, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();\n }\n if (message.entryPointSelector !== undefined) {\n FieldElement.encode(message.entryPointSelector, writer.uint32(18).fork()).ldelim();\n }\n if (message.calldata !== undefined && message.calldata.length !== 0) {\n for (const v of message.calldata) {\n FieldElement.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): FunctionCall {\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 = createBaseFunctionCall() 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.contractAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n\n message.entryPointSelector = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.calldata!.push(FieldElement.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): FunctionCall {\n return {\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n entryPointSelector: isSet(object.entryPointSelector)\n ? FieldElement.fromJSON(object.entryPointSelector)\n : undefined,\n calldata: globalThis.Array.isArray(object?.calldata)\n ? object.calldata.map((e: any) => FieldElement.fromJSON(e))\n : [],\n };\n },\n\n toJSON(message: FunctionCall): unknown {\n const obj: any = {};\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n if (message.entryPointSelector !== undefined) {\n obj.entryPointSelector = FieldElement.toJSON(message.entryPointSelector);\n }\n if (message.calldata?.length) {\n obj.calldata = message.calldata.map((e) => FieldElement.toJSON(e));\n }\n return obj;\n },\n\n create(base?: DeepPartial<FunctionCall>): FunctionCall {\n return FunctionCall.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<FunctionCall>): FunctionCall {\n const message = createBaseFunctionCall() as any;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n message.entryPointSelector = (object.entryPointSelector !== undefined && object.entryPointSelector !== null)\n ? FieldElement.fromPartial(object.entryPointSelector)\n : undefined;\n message.calldata = object.calldata?.map((e) => FieldElement.fromPartial(e)) || [];\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 { FieldElement } from \"./common.js\";\n\nexport const protobufPackage = \"starknet.v2\";\n\n/** Starknet 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 transactions. */\n readonly transactions?:\n | readonly TransactionFilter[]\n | undefined;\n /** Filter events. */\n readonly events?:\n | readonly EventFilter[]\n | undefined;\n /** Filter messages to L1. */\n readonly messages?:\n | readonly MessageToL1Filter[]\n | undefined;\n /** Filter storage diffs. */\n readonly storageDiffs?:\n | readonly StorageDiffFilter[]\n | undefined;\n /** Filter contract changes. */\n readonly contractChanges?:\n | readonly ContractChangeFilter[]\n | undefined;\n /** Filter nonce updates. */\n readonly nonceUpdates?: readonly NonceUpdateFilter[] | undefined;\n}\n\n/** Filter events. */\nexport interface EventFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter by contract emitting the event. */\n readonly address?:\n | FieldElement\n | undefined;\n /** Filter keys that prefix-match the given data. */\n readonly keys?:\n | readonly Key[]\n | undefined;\n /**\n * Only returns events with keys 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 /**\n * Include the transaction that emitted the event.\n *\n * Defaults to false.\n */\n readonly includeTransaction?:\n | boolean\n | undefined;\n /**\n * Include the receipt of the transaction that emitted the event.\n *\n * Defaults to false.\n */\n readonly includeReceipt?:\n | boolean\n | undefined;\n /**\n * Include the messages to L1 sent by the transaction that emitted the event.\n *\n * Defaults to false.\n */\n readonly includeMessages?:\n | boolean\n | undefined;\n /**\n * Include sibling events, that is events emitted by the same transaction.\n *\n * Defaults to false.\n */\n readonly includeSiblings?:\n | boolean\n | undefined;\n /**\n * Include the trace of the transaction that emitted the event.\n *\n * Defaults to false.\n */\n readonly includeTransactionTrace?: boolean | undefined;\n}\n\nexport interface Key {\n /** The event key. If empty, matches any event key. */\n readonly value?: FieldElement | undefined;\n}\n\n/** Filter messages to L1. */\nexport interface MessageToL1Filter {\n readonly id?:\n | number\n | undefined;\n /** Filter by sender address. */\n readonly fromAddress?:\n | FieldElement\n | undefined;\n /** Filter by destination address. */\n readonly toAddress?:\n | FieldElement\n | undefined;\n /**\n * Filter based on the transaction status.\n *\n * Defaults to `Succeeded`.\n */\n readonly transactionStatus?:\n | TransactionStatusFilter\n | undefined;\n /**\n * Include the transaction that sent the message.\n *\n * Defaults to false.\n */\n readonly includeTransaction?:\n | boolean\n | undefined;\n /**\n * Include the receipt of the transaction that sent the message.\n *\n * Defaults to false.\n */\n readonly includeReceipt?:\n | boolean\n | undefined;\n /**\n * Include the events of the transaction that sent the message.\n *\n * Defaults to false.\n */\n readonly includeEvents?:\n | boolean\n | undefined;\n /**\n * Include the messages of the transaction that sent the message.\n *\n * Defaults to false.\n */\n readonly includeSiblings?:\n | boolean\n | undefined;\n /**\n * Include the trace of the transaction that sent the message.\n *\n * Defaults to false.\n */\n readonly includeTransactionTrace?: boolean | undefined;\n}\n\n/** Filter transactions. */\nexport interface TransactionFilter {\n readonly id?:\n | number\n | undefined;\n /**\n * Filter based on the transaction status.\n *\n * Defaults to `Succeeded`.\n */\n readonly transactionStatus?:\n | TransactionStatusFilter\n | undefined;\n /**\n * Flag to request the transaction's receipt.\n *\n * Defaults to `false`.\n */\n readonly includeReceipt?:\n | boolean\n | undefined;\n /**\n * Flag to request the transaction's events.\n *\n * Defaults to `false`.\n */\n readonly includeEvents?:\n | boolean\n | undefined;\n /**\n * Flag to request the transaction's messages to L1.\n *\n * Defaults to `false`.\n */\n readonly includeMessages?: boolean | undefined;\n readonly inner?:\n | { readonly $case: \"invokeV0\"; readonly invokeV0: InvokeTransactionV0Filter }\n | { readonly $case: \"invokeV1\"; readonly invokeV1: InvokeTransactionV1Filter }\n | { readonly $case: \"invokeV3\"; readonly invokeV3: InvokeTransactionV3Filter }\n | { readonly $case: \"deploy\"; readonly deploy: DeployTransactionFilter }\n | { readonly $case: \"declareV0\"; readonly declareV0: DeclareV0TransactionFilter }\n | { readonly $case: \"declareV1\"; readonly declareV1: DeclareV1TransactionFilter }\n | { readonly $case: \"declareV2\"; readonly declareV2: DeclareV2TransactionFilter }\n | { readonly $case: \"declareV3\"; readonly declareV3: DeclareV3TransactionFilter }\n | { readonly $case: \"l1Handler\"; readonly l1Handler: L1HandlerTransactionFilter }\n | { readonly $case: \"deployAccountV1\"; readonly deployAccountV1: DeployAccountV1TransactionFilter }\n | { readonly $case: \"deployAccountV3\"; readonly deployAccountV3: DeployAccountV3TransactionFilter }\n | undefined;\n /**\n * Flag to request the transaction's trace.\n *\n * Defaults to `false``.\n */\n readonly includeTrace?: boolean | undefined;\n}\n\nexport interface InvokeTransactionV0Filter {\n}\n\nexport interface InvokeTransactionV1Filter {\n}\n\nexport interface InvokeTransactionV3Filter {\n}\n\nexport interface DeployTransactionFilter {\n}\n\nexport interface DeclareV0TransactionFilter {\n}\n\nexport interface DeclareV1TransactionFilter {\n}\n\nexport interface DeclareV2TransactionFilter {\n}\n\nexport interface DeclareV3TransactionFilter {\n}\n\nexport interface L1HandlerTransactionFilter {\n}\n\nexport interface DeployAccountV1TransactionFilter {\n}\n\nexport interface DeployAccountV3TransactionFilter {\n}\n\nexport interface StorageDiffFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter by contract address. */\n readonly contractAddress?: FieldElement | undefined;\n}\n\nexport interface ContractChangeFilter {\n readonly id?: number | undefined;\n readonly change?:\n | { readonly $case: \"declaredClass\"; readonly declaredClass: DeclaredClassFilter }\n | { readonly $case: \"replacedClass\"; readonly replacedClass: ReplacedClassFilter }\n | { readonly $case: \"deployedContract\"; readonly deployedContract: DeployedContractFilter }\n | undefined;\n}\n\nexport interface DeclaredClassFilter {\n}\n\nexport interface ReplacedClassFilter {\n}\n\nexport interface DeployedContractFilter {\n}\n\nexport interface NonceUpdateFilter {\n readonly id?:\n | number\n | undefined;\n /** Filter by contract address. */\n readonly contractAddress?: FieldElement | undefined;\n}\n\nfunction createBaseFilter(): Filter {\n return {\n header: 0,\n transactions: [],\n events: [],\n messages: [],\n storageDiffs: [],\n contractChanges: [],\n nonceUpdates: [],\n };\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.transactions !== undefined && message.transactions.length !== 0) {\n for (const v of message.transactions) {\n TransactionFilter.encode(v!, writer.uint32(18).fork()).ldelim();\n }\n }\n if (message.events !== undefined && message.events.length !== 0) {\n for (const v of message.events) {\n EventFilter.encode(v!, writer.uint32(26).fork()).ldelim();\n }\n }\n if (message.messages !== undefined && message.messages.length !== 0) {\n for (const v of message.messages) {\n MessageToL1Filter.encode(v!, writer.uint32(34).fork()).ldelim();\n }\n }\n if (message.storageDiffs !== undefined && message.storageDiffs.length !== 0) {\n for (const v of message.storageDiffs) {\n StorageDiffFilter.encode(v!, writer.uint32(42).fork()).ldelim();\n }\n }\n if (message.contractChanges !== undefined && message.contractChanges.length !== 0) {\n for (const v of message.contractChanges) {\n ContractChangeFilter.encode(v!, writer.uint32(50).fork()).ldelim();\n }\n }\n if (message.nonceUpdates !== undefined && message.nonceUpdates.length !== 0) {\n for (const v of message.nonceUpdates) {\n NonceUpdateFilter.encode(v!, writer.uint32(58).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.transactions!.push(TransactionFilter.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.events!.push(EventFilter.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.messages!.push(MessageToL1Filter.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n\n message.storageDiffs!.push(StorageDiffFilter.decode(reader, reader.uint32()));\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.contractChanges!.push(ContractChangeFilter.decode(reader, reader.uint32()));\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.nonceUpdates!.push(NonceUpdateFilter.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 transactions: globalThis.Array.isArray(object?.transactions)\n ? object.transactions.map((e: any) => TransactionFilter.fromJSON(e))\n : [],\n events: globalThis.Array.isArray(object?.events) ? object.events.map((e: any) => EventFilter.fromJSON(e)) : [],\n messages: globalThis.Array.isArray(object?.messages)\n ? object.messages.map((e: any) => MessageToL1Filter.fromJSON(e))\n : [],\n storageDiffs: globalThis.Array.isArray(object?.storageDiffs)\n ? object.storageDiffs.map((e: any) => StorageDiffFilter.fromJSON(e))\n : [],\n contractChanges: globalThis.Array.isArray(object?.contractChanges)\n ? object.contractChanges.map((e: any) => ContractChangeFilter.fromJSON(e))\n : [],\n nonceUpdates: globalThis.Array.isArray(object?.nonceUpdates)\n ? object.nonceUpdates.map((e: any) => NonceUpdateFilter.fromJSON(e))\n : [],\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.transactions?.length) {\n obj.transactions = message.transactions.map((e) => TransactionFilter.toJSON(e));\n }\n if (message.events?.length) {\n obj.events = message.events.map((e) => EventFilter.toJSON(e));\n }\n if (message.messages?.length) {\n obj.messages = message.messages.map((e) => MessageToL1Filter.toJSON(e));\n }\n if (message.storageDiffs?.length) {\n obj.storageDiffs = message.storageDiffs.map((e) => StorageDiffFilter.toJSON(e));\n }\n if (message.contractChanges?.length) {\n obj.contractChanges = message.contractChanges.map((e) => ContractChangeFilter.toJSON(e));\n }\n if (message.nonceUpdates?.length) {\n obj.nonceUpdates = message.nonceUpdates.map((e) => NonceUpdateFilter.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.transactions = object.transactions?.map((e) => TransactionFilter.fromPartial(e)) || [];\n message.events = object.events?.map((e) => EventFilter.fromPartial(e)) || [];\n message.messages = object.messages?.map((e) => MessageToL1Filter.fromPartial(e)) || [];\n message.storageDiffs = object.storageDiffs?.map((e) => StorageDiffFilter.fromPartial(e)) || [];\n message.contractChanges = object.contractChanges?.map((e) => ContractChangeFilter.fromPartial(e)) || [];\n message.nonceUpdates = object.nonceUpdates?.map((e) => NonceUpdateFilter.fromPartial(e)) || [];\n return message;\n },\n};\n\nfunction createBaseEventFilter(): EventFilter {\n return {\n id: 0,\n address: undefined,\n keys: [],\n strict: undefined,\n transactionStatus: undefined,\n includeTransaction: undefined,\n includeReceipt: undefined,\n includeMessages: undefined,\n includeSiblings: undefined,\n includeTransactionTrace: undefined,\n };\n}\n\nexport const EventFilter = {\n encode(message: EventFilter, 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 FieldElement.encode(message.address, writer.uint32(18).fork()).ldelim();\n }\n if (message.keys !== undefined && message.keys.length !== 0) {\n for (const v of message.keys) {\n Key.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.includeMessages !== undefined) {\n writer.uint32(64).bool(message.includeMessages);\n }\n if (message.includeSiblings !== undefined) {\n writer.uint32(72).bool(message.includeSiblings);\n }\n if (message.includeTransactionTrace !== undefined) {\n writer.uint32(80).bool(message.includeTransactionTrace);\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): EventFilter {\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 = createBaseEventFilter() 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 = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.keys!.push(Key.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.includeMessages = reader.bool();\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n\n message.includeSiblings = reader.bool();\n continue;\n case 10:\n if (tag !== 80) {\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): EventFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n address: isSet(object.address) ? FieldElement.fromJSON(object.address) : undefined,\n keys: globalThis.Array.isArray(object?.keys) ? object.keys.map((e: any) => Key.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 includeMessages: isSet(object.includeMessages) ? globalThis.Boolean(object.includeMessages) : 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: EventFilter): 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 = FieldElement.toJSON(message.address);\n }\n if (message.keys?.length) {\n obj.keys = message.keys.map((e) => Key.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.includeMessages !== undefined) {\n obj.includeMessages = message.includeMessages;\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<EventFilter>): EventFilter {\n return EventFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<EventFilter>): EventFilter {\n const message = createBaseEventFilter() as any;\n message.id = object.id ?? 0;\n message.address = (object.address !== undefined && object.address !== null)\n ? FieldElement.fromPartial(object.address)\n : undefined;\n message.keys = object.keys?.map((e) => Key.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.includeMessages = object.includeMessages ?? undefined;\n message.includeSiblings = object.includeSiblings ?? undefined;\n message.includeTransactionTrace = object.includeTransactionTrace ?? undefined;\n return message;\n },\n};\n\nfunction createBaseKey(): Key {\n return { value: undefined };\n}\n\nexport const Key = {\n encode(message: Key, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n if (message.value !== undefined) {\n FieldElement.encode(message.value, writer.uint32(10).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): Key {\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 = createBaseKey() 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 = FieldElement.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): Key {\n return { value: isSet(object.value) ? FieldElement.fromJSON(object.value) : undefined };\n },\n\n toJSON(message: Key): unknown {\n const obj: any = {};\n if (message.value !== undefined) {\n obj.value = FieldElement.toJSON(message.value);\n }\n return obj;\n },\n\n create(base?: DeepPartial<Key>): Key {\n return Key.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<Key>): Key {\n const message = createBaseKey() as any;\n message.value = (object.value !== undefined && object.value !== null)\n ? FieldElement.fromPartial(object.value)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseMessageToL1Filter(): MessageToL1Filter {\n return {\n id: 0,\n fromAddress: undefined,\n toAddress: undefined,\n transactionStatus: undefined,\n includeTransaction: undefined,\n includeReceipt: undefined,\n includeEvents: undefined,\n includeSiblings: undefined,\n includeTransactionTrace: undefined,\n };\n}\n\nexport const MessageToL1Filter = {\n encode(message: MessageToL1Filter, 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.fromAddress !== undefined) {\n FieldElement.encode(message.fromAddress, writer.uint32(18).fork()).ldelim();\n }\n if (message.toAddress !== undefined) {\n FieldElement.encode(message.toAddress, writer.uint32(26).fork()).ldelim();\n }\n if (message.transactionStatus !== undefined) {\n writer.uint32(32).int32(message.transactionStatus);\n }\n if (message.includeTransaction !== undefined) {\n writer.uint32(40).bool(message.includeTransaction);\n }\n if (message.includeReceipt !== undefined) {\n writer.uint32(48).bool(message.includeReceipt);\n }\n if (message.includeEvents !== undefined) {\n writer.uint32(56).bool(message.includeEvents);\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): MessageToL1Filter {\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 = createBaseMessageToL1Filter() 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.fromAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.toAddress = FieldElement.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.includeTransaction = reader.bool();\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.includeEvents = 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): MessageToL1Filter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n fromAddress: isSet(object.fromAddress) ? FieldElement.fromJSON(object.fromAddress) : undefined,\n toAddress: isSet(object.toAddress) ? FieldElement.fromJSON(object.toAddress) : 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 includeEvents: isSet(object.includeEvents) ? globalThis.Boolean(object.includeEvents) : 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: MessageToL1Filter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.fromAddress !== undefined) {\n obj.fromAddress = FieldElement.toJSON(message.fromAddress);\n }\n if (message.toAddress !== undefined) {\n obj.toAddress = FieldElement.toJSON(message.toAddress);\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.includeEvents !== undefined) {\n obj.includeEvents = message.includeEvents;\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<MessageToL1Filter>): MessageToL1Filter {\n return MessageToL1Filter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<MessageToL1Filter>): MessageToL1Filter {\n const message = createBaseMessageToL1Filter() as any;\n message.id = object.id ?? 0;\n message.fromAddress = (object.fromAddress !== undefined && object.fromAddress !== null)\n ? FieldElement.fromPartial(object.fromAddress)\n : undefined;\n message.toAddress = (object.toAddress !== undefined && object.toAddress !== null)\n ? FieldElement.fromPartial(object.toAddress)\n : undefined;\n message.transactionStatus = object.transactionStatus ?? undefined;\n message.includeTransaction = object.includeTransaction ?? undefined;\n message.includeReceipt = object.includeReceipt ?? undefined;\n message.includeEvents = object.includeEvents ?? undefined;\n message.includeSiblings = object.includeSiblings ?? undefined;\n message.includeTransactionTrace = object.includeTransactionTrace ?? undefined;\n return message;\n },\n};\n\nfunction createBaseTransactionFilter(): TransactionFilter {\n return {\n id: 0,\n transactionStatus: undefined,\n includeReceipt: undefined,\n includeEvents: undefined,\n includeMessages: undefined,\n inner: undefined,\n includeTrace: 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.transactionStatus !== undefined) {\n writer.uint32(16).int32(message.transactionStatus);\n }\n if (message.includeReceipt !== undefined) {\n writer.uint32(24).bool(message.includeReceipt);\n }\n if (message.includeEvents !== undefined) {\n writer.uint32(32).bool(message.includeEvents);\n }\n if (message.includeMessages !== undefined) {\n writer.uint32(40).bool(message.includeMessages);\n }\n switch (message.inner?.$case) {\n case \"invokeV0\":\n InvokeTransactionV0Filter.encode(message.inner.invokeV0, writer.uint32(50).fork()).ldelim();\n break;\n case \"invokeV1\":\n InvokeTransactionV1Filter.encode(message.inner.invokeV1, writer.uint32(58).fork()).ldelim();\n break;\n case \"invokeV3\":\n InvokeTransactionV3Filter.encode(message.inner.invokeV3, writer.uint32(66).fork()).ldelim();\n break;\n case \"deploy\":\n DeployTransactionFilter.encode(message.inner.deploy, writer.uint32(74).fork()).ldelim();\n break;\n case \"declareV0\":\n DeclareV0TransactionFilter.encode(message.inner.declareV0, writer.uint32(82).fork()).ldelim();\n break;\n case \"declareV1\":\n DeclareV1TransactionFilter.encode(message.inner.declareV1, writer.uint32(90).fork()).ldelim();\n break;\n case \"declareV2\":\n DeclareV2TransactionFilter.encode(message.inner.declareV2, writer.uint32(98).fork()).ldelim();\n break;\n case \"declareV3\":\n DeclareV3TransactionFilter.encode(message.inner.declareV3, writer.uint32(106).fork()).ldelim();\n break;\n case \"l1Handler\":\n L1HandlerTransactionFilter.encode(message.inner.l1Handler, writer.uint32(114).fork()).ldelim();\n break;\n case \"deployAccountV1\":\n DeployAccountV1TransactionFilter.encode(message.inner.deployAccountV1, writer.uint32(122).fork()).ldelim();\n break;\n case \"deployAccountV3\":\n DeployAccountV3TransactionFilter.encode(message.inner.deployAccountV3, writer.uint32(130).fork()).ldelim();\n break;\n }\n if (message.includeTrace !== undefined) {\n writer.uint32(136).bool(message.includeTrace);\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 !== 16) {\n break;\n }\n\n message.transactionStatus = reader.int32() as any;\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n\n message.includeReceipt = reader.bool();\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n\n message.includeEvents = reader.bool();\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n\n message.includeMessages = reader.bool();\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n\n message.inner = { $case: \"invokeV0\", invokeV0: InvokeTransactionV0Filter.decode(reader, reader.uint32()) };\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n\n message.inner = { $case: \"invokeV1\", invokeV1: InvokeTransactionV1Filter.decode(reader, reader.uint32()) };\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n\n message.inner = { $case: \"invokeV3\", invokeV3: InvokeTransactionV3Filter.decode(reader, reader.uint32()) };\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n\n message.inner = { $case: \"deploy\", deploy: DeployTransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n\n message.inner = { $case: \"declareV0\", declareV0: DeclareV0TransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 11:\n if (tag !== 90) {\n break;\n }\n\n message.inner = { $case: \"declareV1\", declareV1: DeclareV1TransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n\n message.inner = { $case: \"declareV2\", declareV2: DeclareV2TransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n\n message.inner = { $case: \"declareV3\", declareV3: DeclareV3TransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 14:\n if (tag !== 114) {\n break;\n }\n\n message.inner = { $case: \"l1Handler\", l1Handler: L1HandlerTransactionFilter.decode(reader, reader.uint32()) };\n continue;\n case 15:\n if (tag !== 122) {\n break;\n }\n\n message.inner = {\n $case: \"deployAccountV1\",\n deployAccountV1: DeployAccountV1TransactionFilter.decode(reader, reader.uint32()),\n };\n continue;\n case 16:\n if (tag !== 130) {\n break;\n }\n\n message.inner = {\n $case: \"deployAccountV3\",\n deployAccountV3: DeployAccountV3TransactionFilter.decode(reader, reader.uint32()),\n };\n continue;\n case 17:\n if (tag !== 136) {\n break;\n }\n\n message.includeTrace = 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 transactionStatus: isSet(object.transactionStatus)\n ? transactionStatusFilterFromJSON(object.transactionStatus)\n : undefined,\n includeReceipt: isSet(object.includeReceipt) ? globalThis.Boolean(object.includeReceipt) : undefined,\n includeEvents: isSet(object.includeEvents) ? globalThis.Boolean(object.includeEvents) : undefined,\n includeMessages: isSet(object.includeMessages) ? globalThis.Boolean(object.includeMessages) : undefined,\n inner: isSet(object.invokeV0)\n ? { $case: \"invokeV0\", invokeV0: InvokeTransactionV0Filter.fromJSON(object.invokeV0) }\n : isSet(object.invokeV1)\n ? { $case: \"invokeV1\", invokeV1: InvokeTransactionV1Filter.fromJSON(object.invokeV1) }\n : isSet(object.invokeV3)\n ? { $case: \"invokeV3\", invokeV3: InvokeTransactionV3Filter.fromJSON(object.invokeV3) }\n : isSet(object.deploy)\n ? { $case: \"deploy\", deploy: DeployTransactionFilter.fromJSON(object.deploy) }\n : isSet(object.declareV0)\n ? { $case: \"declareV0\", declareV0: DeclareV0TransactionFilter.fromJSON(object.declareV0) }\n : isSet(object.declareV1)\n ? { $case: \"declareV1\", declareV1: DeclareV1TransactionFilter.fromJSON(object.declareV1) }\n : isSet(object.declareV2)\n ? { $case: \"declareV2\", declareV2: DeclareV2TransactionFilter.fromJSON(object.declareV2) }\n : isSet(object.declareV3)\n ? { $case: \"declareV3\", declareV3: DeclareV3TransactionFilter.fromJSON(object.declareV3) }\n : isSet(object.l1Handler)\n ? { $case: \"l1Handler\", l1Handler: L1HandlerTransactionFilter.fromJSON(object.l1Handler) }\n : isSet(object.deployAccountV1)\n ? {\n $case: \"deployAccountV1\",\n deployAccountV1: DeployAccountV1TransactionFilter.fromJSON(object.deployAccountV1),\n }\n : isSet(object.deployAccountV3)\n ? {\n $case: \"deployAccountV3\",\n deployAccountV3: DeployAccountV3TransactionFilter.fromJSON(object.deployAccountV3),\n }\n : undefined,\n includeTrace: isSet(object.includeTrace) ? globalThis.Boolean(object.includeTrace) : 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.transactionStatus !== undefined) {\n obj.transactionStatus = transactionStatusFilterToJSON(message.transactionStatus);\n }\n if (message.includeReceipt !== undefined) {\n obj.includeReceipt = message.includeReceipt;\n }\n if (message.includeEvents !== undefined) {\n obj.includeEvents = message.includeEvents;\n }\n if (message.includeMessages !== undefined) {\n obj.includeMessages = message.includeMessages;\n }\n if (message.inner?.$case === \"invokeV0\") {\n obj.invokeV0 = InvokeTransactionV0Filter.toJSON(message.inner.invokeV0);\n }\n if (message.inner?.$case === \"invokeV1\") {\n obj.invokeV1 = InvokeTransactionV1Filter.toJSON(message.inner.invokeV1);\n }\n if (message.inner?.$case === \"invokeV3\") {\n obj.invokeV3 = InvokeTransactionV3Filter.toJSON(message.inner.invokeV3);\n }\n if (message.inner?.$case === \"deploy\") {\n obj.deploy = DeployTransactionFilter.toJSON(message.inner.deploy);\n }\n if (message.inner?.$case === \"declareV0\") {\n obj.declareV0 = DeclareV0TransactionFilter.toJSON(message.inner.declareV0);\n }\n if (message.inner?.$case === \"declareV1\") {\n obj.declareV1 = DeclareV1TransactionFilter.toJSON(message.inner.declareV1);\n }\n if (message.inner?.$case === \"declareV2\") {\n obj.declareV2 = DeclareV2TransactionFilter.toJSON(message.inner.declareV2);\n }\n if (message.inner?.$case === \"declareV3\") {\n obj.declareV3 = DeclareV3TransactionFilter.toJSON(message.inner.declareV3);\n }\n if (message.inner?.$case === \"l1Handler\") {\n obj.l1Handler = L1HandlerTransactionFilter.toJSON(message.inner.l1Handler);\n }\n if (message.inner?.$case === \"deployAccountV1\") {\n obj.deployAccountV1 = DeployAccountV1TransactionFilter.toJSON(message.inner.deployAccountV1);\n }\n if (message.inner?.$case === \"deployAccountV3\") {\n obj.deployAccountV3 = DeployAccountV3TransactionFilter.toJSON(message.inner.deployAccountV3);\n }\n if (message.includeTrace !== undefined) {\n obj.includeTrace = message.includeTrace;\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.transactionStatus = object.transactionStatus ?? undefined;\n message.includeReceipt = object.includeReceipt ?? undefined;\n message.includeEvents = object.includeEvents ?? undefined;\n message.includeMessages = object.includeMessages ?? undefined;\n if (object.inner?.$case === \"invokeV0\" && object.inner?.invokeV0 !== undefined && object.inner?.invokeV0 !== null) {\n message.inner = { $case: \"invokeV0\", invokeV0: InvokeTransactionV0Filter.fromPartial(object.inner.invokeV0) };\n }\n if (object.inner?.$case === \"invokeV1\" && object.inner?.invokeV1 !== undefined && object.inner?.invokeV1 !== null) {\n message.inner = { $case: \"invokeV1\", invokeV1: InvokeTransactionV1Filter.fromPartial(object.inner.invokeV1) };\n }\n if (object.inner?.$case === \"invokeV3\" && object.inner?.invokeV3 !== undefined && object.inner?.invokeV3 !== null) {\n message.inner = { $case: \"invokeV3\", invokeV3: InvokeTransactionV3Filter.fromPartial(object.inner.invokeV3) };\n }\n if (object.inner?.$case === \"deploy\" && object.inner?.deploy !== undefined && object.inner?.deploy !== null) {\n message.inner = { $case: \"deploy\", deploy: DeployTransactionFilter.fromPartial(object.inner.deploy) };\n }\n if (\n object.inner?.$case === \"declareV0\" && object.inner?.declareV0 !== undefined && object.inner?.declareV0 !== null\n ) {\n message.inner = { $case: \"declareV0\", declareV0: DeclareV0TransactionFilter.fromPartial(object.inner.declareV0) };\n }\n if (\n object.inner?.$case === \"declareV1\" && object.inner?.declareV1 !== undefined && object.inner?.declareV1 !== null\n ) {\n message.inner = { $case: \"declareV1\", declareV1: DeclareV1TransactionFilter.fromPartial(object.inner.declareV1) };\n }\n if (\n object.inner?.$case === \"declareV2\" && object.inner?.declareV2 !== undefined && object.inner?.declareV2 !== null\n ) {\n message.inner = { $case: \"declareV2\", declareV2: DeclareV2TransactionFilter.fromPartial(object.inner.declareV2) };\n }\n if (\n object.inner?.$case === \"declareV3\" && object.inner?.declareV3 !== undefined && object.inner?.declareV3 !== null\n ) {\n message.inner = { $case: \"declareV3\", declareV3: DeclareV3TransactionFilter.fromPartial(object.inner.declareV3) };\n }\n if (\n object.inner?.$case === \"l1Handler\" && object.inner?.l1Handler !== undefined && object.inner?.l1Handler !== null\n ) {\n message.inner = { $case: \"l1Handler\", l1Handler: L1HandlerTransactionFilter.fromPartial(object.inner.l1Handler) };\n }\n if (\n object.inner?.$case === \"deployAccountV1\" &&\n object.inner?.deployAccountV1 !== undefined &&\n object.inner?.deployAccountV1 !== null\n ) {\n message.inner = {\n $case: \"deployAccountV1\",\n deployAccountV1: DeployAccountV1TransactionFilter.fromPartial(object.inner.deployAccountV1),\n };\n }\n if (\n object.inner?.$case === \"deployAccountV3\" &&\n object.inner?.deployAccountV3 !== undefined &&\n object.inner?.deployAccountV3 !== null\n ) {\n message.inner = {\n $case: \"deployAccountV3\",\n deployAccountV3: DeployAccountV3TransactionFilter.fromPartial(object.inner.deployAccountV3),\n };\n }\n message.includeTrace = object.includeTrace ?? undefined;\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV0Filter(): InvokeTransactionV0Filter {\n return {};\n}\n\nexport const InvokeTransactionV0Filter = {\n encode(_: InvokeTransactionV0Filter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV0Filter {\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 = createBaseInvokeTransactionV0Filter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): InvokeTransactionV0Filter {\n return {};\n },\n\n toJSON(_: InvokeTransactionV0Filter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV0Filter>): InvokeTransactionV0Filter {\n return InvokeTransactionV0Filter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<InvokeTransactionV0Filter>): InvokeTransactionV0Filter {\n const message = createBaseInvokeTransactionV0Filter() as any;\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV1Filter(): InvokeTransactionV1Filter {\n return {};\n}\n\nexport const InvokeTransactionV1Filter = {\n encode(_: InvokeTransactionV1Filter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV1Filter {\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 = createBaseInvokeTransactionV1Filter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): InvokeTransactionV1Filter {\n return {};\n },\n\n toJSON(_: InvokeTransactionV1Filter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV1Filter>): InvokeTransactionV1Filter {\n return InvokeTransactionV1Filter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<InvokeTransactionV1Filter>): InvokeTransactionV1Filter {\n const message = createBaseInvokeTransactionV1Filter() as any;\n return message;\n },\n};\n\nfunction createBaseInvokeTransactionV3Filter(): InvokeTransactionV3Filter {\n return {};\n}\n\nexport const InvokeTransactionV3Filter = {\n encode(_: InvokeTransactionV3Filter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): InvokeTransactionV3Filter {\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 = createBaseInvokeTransactionV3Filter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): InvokeTransactionV3Filter {\n return {};\n },\n\n toJSON(_: InvokeTransactionV3Filter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<InvokeTransactionV3Filter>): InvokeTransactionV3Filter {\n return InvokeTransactionV3Filter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<InvokeTransactionV3Filter>): InvokeTransactionV3Filter {\n const message = createBaseInvokeTransactionV3Filter() as any;\n return message;\n },\n};\n\nfunction createBaseDeployTransactionFilter(): DeployTransactionFilter {\n return {};\n}\n\nexport const DeployTransactionFilter = {\n encode(_: DeployTransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployTransactionFilter {\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 = createBaseDeployTransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeployTransactionFilter {\n return {};\n },\n\n toJSON(_: DeployTransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeployTransactionFilter>): DeployTransactionFilter {\n return DeployTransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeployTransactionFilter>): DeployTransactionFilter {\n const message = createBaseDeployTransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeclareV0TransactionFilter(): DeclareV0TransactionFilter {\n return {};\n}\n\nexport const DeclareV0TransactionFilter = {\n encode(_: DeclareV0TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareV0TransactionFilter {\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 = createBaseDeclareV0TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclareV0TransactionFilter {\n return {};\n },\n\n toJSON(_: DeclareV0TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclareV0TransactionFilter>): DeclareV0TransactionFilter {\n return DeclareV0TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclareV0TransactionFilter>): DeclareV0TransactionFilter {\n const message = createBaseDeclareV0TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeclareV1TransactionFilter(): DeclareV1TransactionFilter {\n return {};\n}\n\nexport const DeclareV1TransactionFilter = {\n encode(_: DeclareV1TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareV1TransactionFilter {\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 = createBaseDeclareV1TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclareV1TransactionFilter {\n return {};\n },\n\n toJSON(_: DeclareV1TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclareV1TransactionFilter>): DeclareV1TransactionFilter {\n return DeclareV1TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclareV1TransactionFilter>): DeclareV1TransactionFilter {\n const message = createBaseDeclareV1TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeclareV2TransactionFilter(): DeclareV2TransactionFilter {\n return {};\n}\n\nexport const DeclareV2TransactionFilter = {\n encode(_: DeclareV2TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareV2TransactionFilter {\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 = createBaseDeclareV2TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclareV2TransactionFilter {\n return {};\n },\n\n toJSON(_: DeclareV2TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclareV2TransactionFilter>): DeclareV2TransactionFilter {\n return DeclareV2TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclareV2TransactionFilter>): DeclareV2TransactionFilter {\n const message = createBaseDeclareV2TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeclareV3TransactionFilter(): DeclareV3TransactionFilter {\n return {};\n}\n\nexport const DeclareV3TransactionFilter = {\n encode(_: DeclareV3TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclareV3TransactionFilter {\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 = createBaseDeclareV3TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclareV3TransactionFilter {\n return {};\n },\n\n toJSON(_: DeclareV3TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclareV3TransactionFilter>): DeclareV3TransactionFilter {\n return DeclareV3TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclareV3TransactionFilter>): DeclareV3TransactionFilter {\n const message = createBaseDeclareV3TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseL1HandlerTransactionFilter(): L1HandlerTransactionFilter {\n return {};\n}\n\nexport const L1HandlerTransactionFilter = {\n encode(_: L1HandlerTransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): L1HandlerTransactionFilter {\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 = createBaseL1HandlerTransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): L1HandlerTransactionFilter {\n return {};\n },\n\n toJSON(_: L1HandlerTransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<L1HandlerTransactionFilter>): L1HandlerTransactionFilter {\n return L1HandlerTransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<L1HandlerTransactionFilter>): L1HandlerTransactionFilter {\n const message = createBaseL1HandlerTransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeployAccountV1TransactionFilter(): DeployAccountV1TransactionFilter {\n return {};\n}\n\nexport const DeployAccountV1TransactionFilter = {\n encode(_: DeployAccountV1TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountV1TransactionFilter {\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 = createBaseDeployAccountV1TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeployAccountV1TransactionFilter {\n return {};\n },\n\n toJSON(_: DeployAccountV1TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountV1TransactionFilter>): DeployAccountV1TransactionFilter {\n return DeployAccountV1TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeployAccountV1TransactionFilter>): DeployAccountV1TransactionFilter {\n const message = createBaseDeployAccountV1TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeployAccountV3TransactionFilter(): DeployAccountV3TransactionFilter {\n return {};\n}\n\nexport const DeployAccountV3TransactionFilter = {\n encode(_: DeployAccountV3TransactionFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployAccountV3TransactionFilter {\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 = createBaseDeployAccountV3TransactionFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeployAccountV3TransactionFilter {\n return {};\n },\n\n toJSON(_: DeployAccountV3TransactionFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeployAccountV3TransactionFilter>): DeployAccountV3TransactionFilter {\n return DeployAccountV3TransactionFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeployAccountV3TransactionFilter>): DeployAccountV3TransactionFilter {\n const message = createBaseDeployAccountV3TransactionFilter() as any;\n return message;\n },\n};\n\nfunction createBaseStorageDiffFilter(): StorageDiffFilter {\n return { id: 0, contractAddress: undefined };\n}\n\nexport const StorageDiffFilter = {\n encode(message: StorageDiffFilter, 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.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): StorageDiffFilter {\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 = createBaseStorageDiffFilter() 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.contractAddress = FieldElement.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): StorageDiffFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n };\n },\n\n toJSON(message: StorageDiffFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n return obj;\n },\n\n create(base?: DeepPartial<StorageDiffFilter>): StorageDiffFilter {\n return StorageDiffFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<StorageDiffFilter>): StorageDiffFilter {\n const message = createBaseStorageDiffFilter() as any;\n message.id = object.id ?? 0;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : undefined;\n return message;\n },\n};\n\nfunction createBaseContractChangeFilter(): ContractChangeFilter {\n return { id: 0, change: undefined };\n}\n\nexport const ContractChangeFilter = {\n encode(message: ContractChangeFilter, 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 switch (message.change?.$case) {\n case \"declaredClass\":\n DeclaredClassFilter.encode(message.change.declaredClass, writer.uint32(18).fork()).ldelim();\n break;\n case \"replacedClass\":\n ReplacedClassFilter.encode(message.change.replacedClass, writer.uint32(26).fork()).ldelim();\n break;\n case \"deployedContract\":\n DeployedContractFilter.encode(message.change.deployedContract, writer.uint32(34).fork()).ldelim();\n break;\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ContractChangeFilter {\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 = createBaseContractChangeFilter() 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.change = {\n $case: \"declaredClass\",\n declaredClass: DeclaredClassFilter.decode(reader, reader.uint32()),\n };\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n\n message.change = {\n $case: \"replacedClass\",\n replacedClass: ReplacedClassFilter.decode(reader, reader.uint32()),\n };\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n\n message.change = {\n $case: \"deployedContract\",\n deployedContract: DeployedContractFilter.decode(reader, reader.uint32()),\n };\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): ContractChangeFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n change: isSet(object.declaredClass)\n ? { $case: \"declaredClass\", declaredClass: DeclaredClassFilter.fromJSON(object.declaredClass) }\n : isSet(object.replacedClass)\n ? { $case: \"replacedClass\", replacedClass: ReplacedClassFilter.fromJSON(object.replacedClass) }\n : isSet(object.deployedContract)\n ? { $case: \"deployedContract\", deployedContract: DeployedContractFilter.fromJSON(object.deployedContract) }\n : undefined,\n };\n },\n\n toJSON(message: ContractChangeFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.change?.$case === \"declaredClass\") {\n obj.declaredClass = DeclaredClassFilter.toJSON(message.change.declaredClass);\n }\n if (message.change?.$case === \"replacedClass\") {\n obj.replacedClass = ReplacedClassFilter.toJSON(message.change.replacedClass);\n }\n if (message.change?.$case === \"deployedContract\") {\n obj.deployedContract = DeployedContractFilter.toJSON(message.change.deployedContract);\n }\n return obj;\n },\n\n create(base?: DeepPartial<ContractChangeFilter>): ContractChangeFilter {\n return ContractChangeFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<ContractChangeFilter>): ContractChangeFilter {\n const message = createBaseContractChangeFilter() as any;\n message.id = object.id ?? 0;\n if (\n object.change?.$case === \"declaredClass\" &&\n object.change?.declaredClass !== undefined &&\n object.change?.declaredClass !== null\n ) {\n message.change = {\n $case: \"declaredClass\",\n declaredClass: DeclaredClassFilter.fromPartial(object.change.declaredClass),\n };\n }\n if (\n object.change?.$case === \"replacedClass\" &&\n object.change?.replacedClass !== undefined &&\n object.change?.replacedClass !== null\n ) {\n message.change = {\n $case: \"replacedClass\",\n replacedClass: ReplacedClassFilter.fromPartial(object.change.replacedClass),\n };\n }\n if (\n object.change?.$case === \"deployedContract\" &&\n object.change?.deployedContract !== undefined &&\n object.change?.deployedContract !== null\n ) {\n message.change = {\n $case: \"deployedContract\",\n deployedContract: DeployedContractFilter.fromPartial(object.change.deployedContract),\n };\n }\n return message;\n },\n};\n\nfunction createBaseDeclaredClassFilter(): DeclaredClassFilter {\n return {};\n}\n\nexport const DeclaredClassFilter = {\n encode(_: DeclaredClassFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeclaredClassFilter {\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 = createBaseDeclaredClassFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeclaredClassFilter {\n return {};\n },\n\n toJSON(_: DeclaredClassFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeclaredClassFilter>): DeclaredClassFilter {\n return DeclaredClassFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeclaredClassFilter>): DeclaredClassFilter {\n const message = createBaseDeclaredClassFilter() as any;\n return message;\n },\n};\n\nfunction createBaseReplacedClassFilter(): ReplacedClassFilter {\n return {};\n}\n\nexport const ReplacedClassFilter = {\n encode(_: ReplacedClassFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): ReplacedClassFilter {\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 = createBaseReplacedClassFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): ReplacedClassFilter {\n return {};\n },\n\n toJSON(_: ReplacedClassFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<ReplacedClassFilter>): ReplacedClassFilter {\n return ReplacedClassFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<ReplacedClassFilter>): ReplacedClassFilter {\n const message = createBaseReplacedClassFilter() as any;\n return message;\n },\n};\n\nfunction createBaseDeployedContractFilter(): DeployedContractFilter {\n return {};\n}\n\nexport const DeployedContractFilter = {\n encode(_: DeployedContractFilter, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): DeployedContractFilter {\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 = createBaseDeployedContractFilter() as any;\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skipType(tag & 7);\n }\n return message;\n },\n\n fromJSON(_: any): DeployedContractFilter {\n return {};\n },\n\n toJSON(_: DeployedContractFilter): unknown {\n const obj: any = {};\n return obj;\n },\n\n create(base?: DeepPartial<DeployedContractFilter>): DeployedContractFilter {\n return DeployedContractFilter.fromPartial(base ?? {});\n },\n fromPartial(_: DeepPartial<DeployedContractFilter>): DeployedContractFilter {\n const message = createBaseDeployedContractFilter() as any;\n return message;\n },\n};\n\nfunction createBaseNonceUpdateFilter(): NonceUpdateFilter {\n return { id: 0, contractAddress: undefined };\n}\n\nexport const NonceUpdateFilter = {\n encode(message: NonceUpdateFilter, 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.contractAddress !== undefined) {\n FieldElement.encode(message.contractAddress, writer.uint32(18).fork()).ldelim();\n }\n return writer;\n },\n\n decode(input: _m0.Reader | Uint8Array, length?: number): NonceUpdateFilter {\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 = createBaseNonceUpdateFilter() 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.contractAddress = FieldElement.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): NonceUpdateFilter {\n return {\n id: isSet(object.id) ? globalThis.Number(object.id) : 0,\n contractAddress: isSet(object.contractAddress) ? FieldElement.fromJSON(object.contractAddress) : undefined,\n };\n },\n\n toJSON(message: NonceUpdateFilter): unknown {\n const obj: any = {};\n if (message.id !== undefined && message.id !== 0) {\n obj.id = Math.round(message.id);\n }\n if (message.contractAddress !== undefined) {\n obj.contractAddress = FieldElement.toJSON(message.contractAddress);\n }\n return obj;\n },\n\n create(base?: DeepPartial<NonceUpdateFilter>): NonceUpdateFilter {\n return NonceUpdateFilter.fromPartial(base ?? {});\n },\n fromPartial(object: DeepPartial<NonceUpdateFilter>): NonceUpdateFilter {\n const message = createBaseNonceUpdateFilter() as any;\n message.id = object.id ?? 0;\n message.contractAddress = (object.contractAddress !== undefined && object.contractAddress !== null)\n ? FieldElement.fromPartial(object.contractAddress)\n : 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 {\n ArrayCodec,\n BigIntCodec,\n type Codec,\n type CodecType,\n DateCodec,\n type Evaluate,\n MessageCodec,\n NumberCodec,\n OneOfCodec,\n OptionalCodec,\n RequiredCodec,\n StringCodec,\n Uint8ArrayCodec,\n} from \"@apibara/protocol/codec\";\nimport { FieldElement } from \"./common\";\nimport * as proto from \"./proto\";\n\n/** Price of a unit of resource.\n *\n * @prop priceInFri The price in Fri (1e-18 STRK).\n * @prop priceInWei The price in Wei (1e-18 ETH).\n */\nexport const ResourcePrice = MessageCodec({\n priceInFri: OptionalCodec(FieldElement),\n priceInWei: OptionalCodec(FieldElement),\n});\n\nexport type ResourcePrice = Readonly<CodecType<typeof ResourcePrice>>;\n\n// -----------------------------------------------------\n\n/** How data is posted to L1. */\nexport const L1DataAvailabilityMode: Codec<\n \"blob\" | \"calldata\" | \"unknown\",\n proto.data.L1DataAvailabilityMode\n> = {\n encode(x) {\n switch (x) {\n case \"calldata\":\n return proto.data.L1DataAvailabilityMode.CALLDATA;\n case \"blob\":\n return proto.data.L1DataAvailabilityMode.BLOB;\n case \"unknown\":\n return proto.data.L1DataAvailabilityMode.UNSPECIFIED;\n default:\n return proto.data.L1DataAvailabilityMode.UNRECOGNIZED;\n }\n },\n decode(p) {\n const enumMap = {\n [proto.data.L1DataAvailabilityMode.CALLDATA]: \"calldata\",\n [proto.data.L1DataAvailabilityMode.BLOB]: \"blob\",\n [proto.data.L1DataAvailabilityMode.UNSPECIFIED]: \"unknown\",\n [proto.data.L1DataAvailabilityMode.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type L1DataAvailabilityMode = CodecType<typeof L1DataAvailabilityMode>;\n\n// -----------------------------------------------------\n\n/** Status of a transaction. */\nexport const TransactionStatus: Codec<\n \"unknown\" | \"succeeded\" | \"reverted\",\n proto.data.TransactionStatus\n> = {\n encode(x) {\n switch (x) {\n case \"succeeded\":\n return proto.data.TransactionStatus.SUCCEEDED;\n case \"reverted\":\n return proto.data.TransactionStatus.REVERTED;\n case \"unknown\":\n return proto.data.TransactionStatus.UNSPECIFIED;\n default:\n return proto.data.TransactionStatus.UNRECOGNIZED;\n }\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\n// -----------------------------------------------------\n\n/** 128-bit unsigned integer. */\nexport const U128: Codec<bigint, proto.data.Uint128> = {\n // TODO: double check if this is correct\n encode(x) {\n const low = x.toString(16).padStart(16, \"0\");\n const high = (x >> 128n).toString(16).padStart(16, \"0\");\n return { x0: BigInt(`0x${low}`), x1: BigInt(`0x${high}`) };\n },\n decode(p) {\n const low = (p.x0 ?? 0n).toString(16).padStart(16, \"0\");\n const high = (p.x1 ?? 0n).toString(16).padStart(16, \"0\");\n return BigInt(`0x${low}${high}`);\n },\n};\n\nexport type U128 = CodecType<typeof U128>;\n\n// -----------------------------------------------------\n\n/** Resource bounds. */\nexport const ResourceBounds = MessageCodec({\n maxAmount: RequiredCodec(BigIntCodec),\n maxPricePerUnit: RequiredCodec(U128),\n});\n\nexport type ResourceBounds = Readonly<CodecType<typeof ResourceBounds>>;\n\n// -----------------------------------------------------\n\n/** Resource bounds mapping. */\nexport const ResourceBoundsMapping = MessageCodec({\n l1Gas: RequiredCodec(ResourceBounds),\n l2Gas: RequiredCodec(ResourceBounds),\n});\n\nexport type ResourceBoundsMapping = Readonly<\n CodecType<typeof ResourceBoundsMapping>\n>;\n\n// -----------------------------------------------------\n\n/** Data availability mode. */\nexport const DataAvailabilityMode: Codec<\n \"l1\" | \"l2\" | \"unknown\",\n proto.data.DataAvailabilityMode\n> = {\n encode(x) {\n switch (x) {\n case \"l1\":\n return proto.data.DataAvailabilityMode.L1;\n case \"l2\":\n return proto.data.DataAvailabilityMode.L2;\n case \"unknown\":\n return proto.data.DataAvailabilityMode.UNSPECIFIED;\n default:\n return proto.data.DataAvailabilityMode.UNRECOGNIZED;\n }\n },\n decode(p) {\n const enumMap = {\n [proto.data.DataAvailabilityMode.L1]: \"l1\",\n [proto.data.DataAvailabilityMode.L2]: \"l2\",\n [proto.data.DataAvailabilityMode.UNSPECIFIED]: \"unknown\",\n [proto.data.DataAvailabilityMode.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n};\n\nexport type DataAvailabilityMode = CodecType<typeof DataAvailabilityMode>;\n\n// -----------------------------------------------------\n\n/** Starknet block header.\n *\n * @prop blockHash The hash of the block.\n * @prop parentBlockHash The hash of the parent block.\n * @prop blockNumber The block number.\n * @prop sequencerAddress The address of the sequencer.\n * @prop newRoot The new state root.\n * @prop timestamp The block timestamp.\n * @prop starknetVersion The Starknet version string.\n * @prop l1GasPrice Calldata gas price.\n * @prop l1DataGasPrice Blob gas price.\n * @prop l1DataAvailabilityMode How data is posted to L1.\n */\nexport const BlockHeader = MessageCodec({\n blockHash: OptionalCodec(FieldElement),\n parentBlockHash: RequiredCodec(FieldElement),\n blockNumber: RequiredCodec(BigIntCodec),\n sequencerAddress: RequiredCodec(FieldElement),\n newRoot: OptionalCodec(FieldElement),\n timestamp: RequiredCodec(DateCodec),\n starknetVersion: RequiredCodec(StringCodec),\n l1GasPrice: RequiredCodec(ResourcePrice),\n l1DataGasPrice: RequiredCodec(ResourcePrice),\n l1DataAvailabilityMode: RequiredCodec(L1DataAvailabilityMode),\n});\n\nexport type BlockHeader = Readonly<CodecType<typeof BlockHeader>>;\n\n// -----------------------------------------------------\n\n/** Transaction metadata.\n *\n * This is the information that is common between all transaction types.\n *\n * @prop transactionIndex The transaction index in the block.\n * @prop transactionHash The transaction hash.\n * @prop transactionStatus The transaction status.\n */\nexport const TransactionMeta = MessageCodec({\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(FieldElement),\n transactionStatus: RequiredCodec(TransactionStatus),\n});\n\nexport type TransactionMeta = Readonly<CodecType<typeof TransactionMeta>>;\n\n// -----------------------------------------------------\n\n/** Invoke transaction v0.\n *\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop contractAddress The contract address.\n * @prop entryPointSelector The entry point selector.\n * @prop calldata The calldata.\n */\nexport const InvokeTransactionV0 = MessageCodec({\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n contractAddress: RequiredCodec(FieldElement),\n entryPointSelector: RequiredCodec(FieldElement),\n calldata: ArrayCodec(FieldElement),\n});\n\nexport type InvokeTransactionV0 = Readonly<\n CodecType<typeof InvokeTransactionV0>\n>;\n\n// -----------------------------------------------------\n\n/** Invoke transaction v1.\n *\n * @prop senderAddress The sender address.\n * @prop calldata The calldata.\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop nonce The nonce.\n */\nexport const InvokeTransactionV1 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n calldata: ArrayCodec(FieldElement),\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n});\n\nexport type InvokeTransactionV1 = Readonly<\n CodecType<typeof InvokeTransactionV1>\n>;\n\n// -----------------------------------------------------\n\n/** Invoke transaction v3.\n *\n * @prop senderAddress The sender address.\n * @prop calldata The calldata.\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop resourceBounds The resource bounds.\n * @prop tip The tip.\n * @prop paymasterData The paymaster data.\n * @prop accountDeploymentData The account deployment data.\n * @prop nonceDataAvailabilityMode How nonce data is posted to L1.\n * @prop feeDataAvailabilityMode How fee data is posted to L1.\n */\nexport const InvokeTransactionV3 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n calldata: ArrayCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n resourceBounds: RequiredCodec(ResourceBoundsMapping),\n tip: RequiredCodec(BigIntCodec),\n paymasterData: ArrayCodec(FieldElement),\n accountDeploymentData: ArrayCodec(FieldElement),\n nonceDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n feeDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n});\n\nexport type InvokeTransactionV3 = Readonly<\n CodecType<typeof InvokeTransactionV3>\n>;\n\n// -----------------------------------------------------\n\n/** L1 handler transaction.\n *\n * @prop nonce The nonce.\n * @prop contractAddress The contract address.\n * @prop entryPointSelector The entry point selector.\n * @prop calldata The calldata.\n */\nexport const L1HandlerTransaction = MessageCodec({\n nonce: RequiredCodec(BigIntCodec),\n contractAddress: RequiredCodec(FieldElement),\n entryPointSelector: RequiredCodec(FieldElement),\n calldata: ArrayCodec(FieldElement),\n});\n\nexport type L1HandlerTransaction = Readonly<\n CodecType<typeof L1HandlerTransaction>\n>;\n\n// -----------------------------------------------------\n\n/** Deploy transaction.\n *\n * @prop contractAddressSalt The contract address salt.\n * @prop constructorCalldata The constructor calldata.\n * @prop classHash The class hash.\n */\nexport const DeployTransaction = MessageCodec({\n contractAddressSalt: RequiredCodec(FieldElement),\n constructorCalldata: ArrayCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n});\n\nexport type DeployTransaction = Readonly<CodecType<typeof DeployTransaction>>;\n\n// -----------------------------------------------------\n\n/** Declare transaction v0.\n *\n * @prop senderAddress The sender address.\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop classHash The class hash.\n */\nexport const DeclareTransactionV0 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n});\n\nexport type DeclareTransactionV0 = Readonly<\n CodecType<typeof DeclareTransactionV0>\n>;\n\n// -----------------------------------------------------\n\n/** Declare transaction v1.\n *\n * @prop senderAddress The sender address.\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop classHash The class hash.\n */\nexport const DeclareTransactionV1 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n});\n\nexport type DeclareTransactionV1 = Readonly<\n CodecType<typeof DeclareTransactionV1>\n>;\n\n// -----------------------------------------------------\n\n/** Declare transaction v2.\n *\n * @prop senderAddress The sender address.\n * @prop compiledClassHash The compiled class hash.\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop classHash The class hash.\n */\nexport const DeclareTransactionV2 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n compiledClassHash: RequiredCodec(FieldElement),\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n});\n\nexport type DeclareTransactionV2 = Readonly<\n CodecType<typeof DeclareTransactionV2>\n>;\n\n// -----------------------------------------------------\n\n/** Declare transaction v3.\n *\n * @prop senderAddress The sender address.\n * @prop compiledClassHash The compiled class hash.\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop classHash The class hash.\n * @prop resourceBounds The resource bounds.\n * @prop tip The tip.\n * @prop paymasterData The paymaster data.\n * @prop nonceDataAvailabilityMode How nonce data is posted to L1.\n * @prop feeDataAvailabilityMode How fee data is posted to L1.\n */\nexport const DeclareTransactionV3 = MessageCodec({\n senderAddress: RequiredCodec(FieldElement),\n compiledClassHash: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n resourceBounds: RequiredCodec(ResourceBoundsMapping),\n tip: RequiredCodec(BigIntCodec),\n paymasterData: ArrayCodec(FieldElement),\n accountDeploymentData: ArrayCodec(FieldElement),\n nonceDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n feeDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n});\n\nexport type DeclareTransactionV3 = Readonly<\n CodecType<typeof DeclareTransactionV3>\n>;\n\n// -----------------------------------------------------\n\n/** Deploy account transaction v1.\n *\n * @prop maxFee The maximum fee.\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop contractAddressSalt The contract address salt.\n * @prop constructorCalldata The constructor calldata.\n * @prop classHash The class hash.\n */\nexport const DeployAccountTransactionV1 = MessageCodec({\n maxFee: RequiredCodec(FieldElement),\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n contractAddressSalt: RequiredCodec(FieldElement),\n constructorCalldata: ArrayCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n});\n\nexport type DeployAccountTransactionV1 = Readonly<\n CodecType<typeof DeployAccountTransactionV1>\n>;\n\n// -----------------------------------------------------\n\n/** Deploy account transaction v3.\n *\n * @prop signature The signature.\n * @prop nonce The nonce.\n * @prop contractAddressSalt The contract address salt.\n * @prop constructorCalldata The constructor calldata.\n * @prop classHash The class hash.\n * @prop resourceBounds The resource bounds.\n * @prop tip The tip.\n * @prop paymasterData The paymaster data.\n * @prop nonceDataAvailabilityMode How nonce data is posted to L1.\n * @prop feeDataAvailabilityMode How fee data is posted to L1.\n */\nexport const DeployAccountTransactionV3 = MessageCodec({\n signature: ArrayCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n contractAddressSalt: RequiredCodec(FieldElement),\n constructorCalldata: ArrayCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n resourceBounds: RequiredCodec(ResourceBoundsMapping),\n tip: RequiredCodec(BigIntCodec),\n paymasterData: ArrayCodec(FieldElement),\n nonceDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n feeDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),\n});\n\nexport type DeployAccountTransactionV3 = Readonly<\n CodecType<typeof DeployAccountTransactionV3>\n>;\n\n// -----------------------------------------------------\n\n/** A transaction.\n *\n * @prop filterIds The filter IDs.\n * @prop meta The transaction metadata.\n */\nexport const Transaction = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n meta: RequiredCodec(TransactionMeta),\n transaction: RequiredCodec(\n OneOfCodec({\n invokeV0: InvokeTransactionV0,\n invokeV1: InvokeTransactionV1,\n invokeV3: InvokeTransactionV3,\n l1Handler: L1HandlerTransaction,\n deploy: DeployTransaction,\n declareV0: DeclareTransactionV0,\n declareV1: DeclareTransactionV1,\n declareV2: DeclareTransactionV2,\n declareV3: DeclareTransactionV3,\n deployAccountV1: DeployAccountTransactionV1,\n deployAccountV3: DeployAccountTransactionV3,\n }),\n ),\n});\n\nexport type Transaction = Readonly<CodecType<typeof Transaction>>;\n\n// -----------------------------------------------------\n\nexport const PriceUnit: Codec<\"wei\" | \"fri\" | \"unknown\", proto.data.PriceUnit> =\n {\n encode(x) {\n switch (x) {\n case \"wei\":\n return proto.data.PriceUnit.WEI;\n case \"fri\":\n return proto.data.PriceUnit.FRI;\n case \"unknown\":\n return proto.data.PriceUnit.UNSPECIFIED;\n default:\n return proto.data.PriceUnit.UNRECOGNIZED;\n }\n },\n decode(p) {\n const enumMap = {\n [proto.data.PriceUnit.WEI]: \"wei\",\n [proto.data.PriceUnit.FRI]: \"fri\",\n [proto.data.PriceUnit.UNSPECIFIED]: \"unknown\",\n [proto.data.PriceUnit.UNRECOGNIZED]: \"unknown\",\n } as const;\n\n return enumMap[p] ?? \"unknown\";\n },\n };\n\nexport type PriceUnit = CodecType<typeof PriceUnit>;\n\n// -----------------------------------------------------\n\nexport const FeePayment = MessageCodec({\n amount: RequiredCodec(FieldElement),\n unit: RequiredCodec(PriceUnit),\n});\n\nexport type FeePayment = Readonly<CodecType<typeof FeePayment>>;\n\n// -----------------------------------------------------\n\nexport const ComputationResources = MessageCodec({\n steps: RequiredCodec(BigIntCodec),\n memoryHoles: OptionalCodec(BigIntCodec),\n rangeCheckBuiltinApplications: OptionalCodec(BigIntCodec),\n pedersenBuiltinApplications: OptionalCodec(BigIntCodec),\n poseidonBuiltinApplications: OptionalCodec(BigIntCodec),\n ecOpBuiltinApplications: OptionalCodec(BigIntCodec),\n ecdsaBuiltinApplications: OptionalCodec(BigIntCodec),\n bitwiseBuiltinApplications: OptionalCodec(BigIntCodec),\n keccakBuiltinApplications: OptionalCodec(BigIntCodec),\n segmentArenaBuiltin: OptionalCodec(BigIntCodec),\n});\n\nexport type ComputationResources = Readonly<\n CodecType<typeof ComputationResources>\n>;\n\n// -----------------------------------------------------\n\nexport const DataAvailabilityResources = MessageCodec({\n l1Gas: RequiredCodec(BigIntCodec),\n l1DataGas: RequiredCodec(BigIntCodec),\n});\n\nexport type DataAvailabilityResources = Readonly<\n CodecType<typeof DataAvailabilityResources>\n>;\n\n// -----------------------------------------------------\n\nexport const ExecutionResources = MessageCodec({\n computation: RequiredCodec(ComputationResources),\n dataAvailability: RequiredCodec(DataAvailabilityResources),\n});\n\nexport type ExecutionResources = Readonly<CodecType<typeof ExecutionResources>>;\n\n// -----------------------------------------------------\n\nexport const ExecutionSucceeded = MessageCodec({});\n\nexport type ExecutionSucceeded = Readonly<CodecType<typeof ExecutionSucceeded>>;\n\n// -----------------------------------------------------\n\nexport const ExecutionReverted = MessageCodec({\n reason: OptionalCodec(StringCodec),\n});\n\nexport type ExecutionReverted = Readonly<CodecType<typeof ExecutionReverted>>;\n\n// -----------------------------------------------------\n\nexport const TransactionReceiptMeta = MessageCodec({\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(FieldElement),\n actualFee: RequiredCodec(FeePayment),\n executionResources: RequiredCodec(ExecutionResources),\n executionResult: RequiredCodec(\n OneOfCodec({\n succeeded: ExecutionSucceeded,\n reverted: ExecutionReverted,\n }),\n ),\n});\n\nexport type TransactionReceiptMeta = Readonly<\n CodecType<typeof TransactionReceiptMeta>\n>;\n\n// -----------------------------------------------------\n\nexport const InvokeTransactionReceipt = MessageCodec({});\n\nexport type InvokeTransactionReceipt = Readonly<\n CodecType<typeof InvokeTransactionReceipt>\n>;\n\n// -----------------------------------------------------\n\nexport const L1HandlerTransactionReceipt = MessageCodec({\n messageHash: RequiredCodec(Uint8ArrayCodec),\n});\n\nexport type L1HandlerTransactionReceipt = Readonly<\n CodecType<typeof L1HandlerTransactionReceipt>\n>;\n\n// -----------------------------------------------------\n\nexport const DeclareTransactionReceipt = MessageCodec({});\n\nexport type DeclareTransactionReceipt = Readonly<\n CodecType<typeof DeclareTransactionReceipt>\n>;\n\n// -----------------------------------------------------\n\nexport const DeployTransactionReceipt = MessageCodec({\n contractAddress: RequiredCodec(FieldElement),\n});\n\nexport type DeployTransactionReceipt = Readonly<\n CodecType<typeof DeployTransactionReceipt>\n>;\n\n// -----------------------------------------------------\n\nexport const DeployAccountTransactionReceipt = MessageCodec({\n contractAddress: RequiredCodec(FieldElement),\n});\n\nexport type DeployAccountTransactionReceipt = Readonly<\n CodecType<typeof DeployAccountTransactionReceipt>\n>;\n\n// -----------------------------------------------------\n\n/** A transaction receipt.\n *\n * @prop meta Transaction receipt metadata.\n * @prop receipt Transaction-specific receipt.\n */\nexport const TransactionReceipt = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n meta: RequiredCodec(TransactionReceiptMeta),\n receipt: RequiredCodec(\n OneOfCodec({\n invoke: InvokeTransactionReceipt,\n l1Handler: L1HandlerTransactionReceipt,\n declare: DeclareTransactionReceipt,\n deploy: DeployTransactionReceipt,\n deployAccount: DeployAccountTransactionReceipt,\n }),\n ),\n});\n\nexport type TransactionReceipt = Readonly<CodecType<typeof TransactionReceipt>>;\n\n// -----------------------------------------------------\n\n/** A transaction event.\n *\n * @prop fromAddress The address that emitted the event.\n * @prop keys Indexed fields of the event.\n * @prop data Non-indexed fields of the event.\n * @prop eventIndex The event index in the block.\n * @prop transactionIndex The transaction index in the block.\n * @prop transactionHash The transaction hash.\n * @prop transactionStatus The transaction status.\n * @prop eventIndexInTransaction The event index in the transaction.\n */\nexport const Event = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n address: RequiredCodec(FieldElement),\n keys: ArrayCodec(FieldElement),\n data: ArrayCodec(FieldElement),\n eventIndex: RequiredCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(FieldElement),\n transactionStatus: RequiredCodec(TransactionStatus),\n eventIndexInTransaction: RequiredCodec(NumberCodec),\n});\n\nexport type Event = Readonly<CodecType<typeof Event>>;\n\n// -----------------------------------------------------\n\n/** A message from the L2 to the L1.\n *\n * @prop filterIds The filter IDs.\n * @prop fromAddress The address on L2 that sent the message.\n * @prop toAddress The address on L1 that will receive the message.\n * @prop payload The message payload.\n * @prop messageIndex The message index in the block.\n * @prop transactionIndex The transaction index in the block.\n * @prop transactionHash The transaction hash.\n * @prop transactionStatus The transaction status.\n * @prop messageIndexInTransaction The message index in the transaction.\n */\nexport const MessageToL1 = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n fromAddress: RequiredCodec(FieldElement),\n toAddress: RequiredCodec(FieldElement),\n payload: ArrayCodec(FieldElement),\n messageIndex: RequiredCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(FieldElement),\n transactionStatus: RequiredCodec(TransactionStatus),\n messageIndexInTransaction: RequiredCodec(NumberCodec),\n});\n\nexport type MessageToL1 = Readonly<CodecType<typeof MessageToL1>>;\n\n// -----------------------------------------------------\n\n/** An entry in the storage diff.\n *\n * @prop key The storage location.\n * @prop value The new value at the storage location.\n */\nexport const StorageEntry = MessageCodec({\n key: RequiredCodec(FieldElement),\n value: RequiredCodec(FieldElement),\n});\n\nexport type StorageEntry = Readonly<CodecType<typeof StorageEntry>>;\n\n// -----------------------------------------------------\n\n/** Storage diff.\n *\n * @prop contractAddress The contract address.\n * @prop storageEntries The entries that changed.\n */\nexport const StorageDiff = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n contractAddress: RequiredCodec(FieldElement),\n storageEntries: ArrayCodec(StorageEntry),\n});\n\nexport type StorageDiff = Readonly<CodecType<typeof StorageDiff>>;\n\n// -----------------------------------------------------\n\n/** A new class declared.\n *\n * @prop classHash The class hash.\n * @prop compiledClassHash The compiled class hash. If undefined, it's the result of a deprecated Cairo 0 declaration.\n */\nexport const DeclaredClass = MessageCodec({\n classHash: OptionalCodec(FieldElement),\n compiledClassHash: OptionalCodec(FieldElement),\n});\n\nexport type DeclaredClass = Readonly<CodecType<typeof DeclaredClass>>;\n\n// -----------------------------------------------------\n\n/** A class replaced.\n *\n * @prop contractAddress The contract address.\n * @prop classHash The class new hash.\n */\nexport const ReplacedClass = MessageCodec({\n contractAddress: OptionalCodec(FieldElement),\n classHash: OptionalCodec(FieldElement),\n});\n\nexport type ReplacedClass = Readonly<CodecType<typeof ReplacedClass>>;\n\n// -----------------------------------------------------\n\n/** A contract deployed.\n *\n * @prop contractAddress The contract address.\n * @prop classHash The class hash.\n */\nexport const DeployedContract = MessageCodec({\n contractAddress: OptionalCodec(FieldElement),\n classHash: OptionalCodec(FieldElement),\n});\n\nexport type DeployedContract = Readonly<CodecType<typeof DeployedContract>>;\n\n// -----------------------------------------------------\n\n/** A contract change.\n *\n * @prop filterIds The filter IDs.\n * @prop change The change.\n */\nexport const ContractChange = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n change: RequiredCodec(\n OneOfCodec({\n declaredClass: DeclaredClass,\n replacedClass: ReplacedClass,\n deployedContract: DeployedContract,\n }),\n ),\n});\n\nexport type ContractChange = Readonly<CodecType<typeof ContractChange>>;\n\n// -----------------------------------------------------\n\n/** A nonce update.\n *\n * @prop contractAddress The contract address.\n * @prop nonce The new nonce.\n */\nexport const NonceUpdate = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n contractAddress: RequiredCodec(FieldElement),\n nonce: RequiredCodec(FieldElement),\n});\n\nexport type NonceUpdate = Readonly<CodecType<typeof NonceUpdate>>;\n\n// -----------------------------------------------------\n\nexport const CallType: Codec<\n \"libraryCall\" | \"call\" | \"delegate\" | \"unknown\",\n proto.data.CallType\n> = {\n encode(x) {\n switch (x) {\n case \"libraryCall\":\n return proto.data.CallType.LIBRARY_CALL;\n case \"call\":\n return proto.data.CallType.CALL;\n case \"delegate\":\n return proto.data.CallType.DELEGATE;\n case \"unknown\":\n return proto.data.CallType.UNSPECIFIED;\n default:\n return proto.data.CallType.UNRECOGNIZED;\n }\n },\n decode(p) {\n const enumMap = {\n [proto.data.CallType.LIBRARY_CALL]: \"libraryCall\",\n [proto.data.CallType.CALL]: \"call\",\n [proto.data.CallType.DELEGATE]: \"delegate\",\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\n// -----------------------------------------------------\n\nconst _FunctionInvocationCodec = MessageCodec({\n contractAddress: RequiredCodec(FieldElement),\n entryPointSelector: RequiredCodec(FieldElement),\n calldata: ArrayCodec(FieldElement),\n callerAddress: RequiredCodec(FieldElement),\n classHash: RequiredCodec(FieldElement),\n callType: RequiredCodec(CallType),\n result: ArrayCodec(FieldElement),\n events: ArrayCodec(NumberCodec),\n messages: ArrayCodec(NumberCodec),\n});\n\n/**\n * @note This is a recursive type.\n */\nexport type FunctionInvocation = Evaluate<\n CodecType<typeof _FunctionInvocationCodec> & {\n calls: FunctionInvocation[];\n }\n>;\n\n/** A function invocation.\n *\n * @prop contractAddress The contract address.\n * @prop entryPointSelector The entry point selector.\n * @prop calldata The calldata.\n * @prop callerAddress The caller address.\n * @prop classHash The class hash.\n * @prop callType The call type.\n * @prop result The function invocation result.\n * @prop calls The nested function invocations.\n * @prop events The events index in the current transaction.\n * @prop messages The messages index in the current transaction.\n */\nconst FunctionInvocationCodec: Codec<\n FunctionInvocation,\n proto.data.FunctionInvocation\n> = {\n encode(x) {\n const { calls, ...rest } = x;\n const encodedCalls = calls.map(FunctionInvocationCodec.encode);\n const encodedRest = _FunctionInvocationCodec.encode(rest);\n return { calls: encodedCalls, ...encodedRest };\n },\n decode(p) {\n const { calls = [], ...rest } = p;\n const decodedCalls = calls.map(FunctionInvocationCodec.decode);\n const decodedRest = _FunctionInvocationCodec.decode(rest);\n return { ...decodedRest, calls: decodedCalls };\n },\n};\n\n// -----------------------------------------------------\n\n/** A successful invocation of the __execute__ call.\n *\n * The call.\n */\nexport const ExecuteInvocationSuccess = FunctionInvocationCodec;\n\n// -----------------------------------------------------\n\n/** A failed invocation of the __execute__ call.\n *\n * @prop reason The reason for the failure.\n */\nexport const ExecuteInvocationReverted = MessageCodec({\n reason: OptionalCodec(StringCodec),\n});\n\n// -----------------------------------------------------\n\n/** Trace for invoke transactions.\n *\n * @prop validateInvocation The __validate__ call.\n * @prop executeInvocation The __execute__ call.\n * @prop feeTransferInvocation The __fee_transfer__ call.\n */\nexport const InvokeTransactionTrace = MessageCodec({\n validateInvocation: OptionalCodec(FunctionInvocationCodec),\n executeInvocation: RequiredCodec(\n OneOfCodec({\n success: ExecuteInvocationSuccess,\n reverted: ExecuteInvocationReverted,\n }),\n ),\n feeTransferInvocation: OptionalCodec(FunctionInvocationCodec),\n});\n\nexport type InvokeTransactionTrace = Readonly<\n CodecType<typeof InvokeTransactionTrace>\n>;\n\n// -----------------------------------------------------\n\n/** Trace for declare transactions.\n *\n * @prop validateInvocation The __validate__ call.\n * @prop feeTransferInvocation The __fee_transfer__ call.\n */\nexport const DeclareTransactionTrace = MessageCodec({\n validateInvocation: OptionalCodec(FunctionInvocationCodec),\n feeTransferInvocation: OptionalCodec(FunctionInvocationCodec),\n});\n\nexport type DeclareTransactionTrace = Readonly<\n CodecType<typeof DeclareTransactionTrace>\n>;\n\n// -----------------------------------------------------\n\n/** Trace for deploy account transactions.\n *\n * @prop validateInvocation The __validate__ call.\n * @prop constructorInvocation The __constructor__ invocation.\n * @prop feeTransferInvocation The __fee_transfer__ call.\n */\nexport const DeployAccountTransactionTrace = MessageCodec({\n validateInvocation: OptionalCodec(FunctionInvocationCodec),\n constructorInvocation: OptionalCodec(FunctionInvocationCodec),\n feeTransferInvocation: OptionalCodec(FunctionInvocationCodec),\n});\n\nexport type DeployAccountTransactionTrace = Readonly<\n CodecType<typeof DeployAccountTransactionTrace>\n>;\n\n// -----------------------------------------------------\n\n/** Trace for L1 handler transactions.\n *\n * @prop functionInvocation The L1 handler function invocation.\n */\nexport const L1HandlerTransactionTrace = MessageCodec({\n functionInvocation: OptionalCodec(FunctionInvocationCodec),\n});\n\nexport type L1HandlerTransactionTrace = Readonly<\n CodecType<typeof L1HandlerTransactionTrace>\n>;\n\n// -----------------------------------------------------\n\n/** A transaction trace.\n *\n * @prop filterIds The filter IDs.\n * @prop transactionIndex The transaction index.\n * @prop transactionHash The transaction hash.\n * @prop traceRoot The trace root.\n */\nexport const TransactionTrace = MessageCodec({\n filterIds: ArrayCodec(NumberCodec),\n transactionIndex: RequiredCodec(NumberCodec),\n transactionHash: RequiredCodec(FieldElement),\n traceRoot: RequiredCodec(\n OneOfCodec({\n invoke: InvokeTransactionTrace,\n declare: DeclareTransactionTrace,\n deployAccount: DeployAccountTransactionTrace,\n l1Handler: L1HandlerTransactionTrace,\n }),\n ),\n});\n\nexport type TransactionTrace = Readonly<CodecType<typeof TransactionTrace>>;\n\n// -----------------------------------------------------\n\n/** A block.\n *\n * @prop header The block header.\n * @prop transactions The transactions in the block.\n * @prop receipts The receipts of the transactions.\n * @prop events The events emitted by the transactions.\n * @prop messages The messages sent to L1 by the transactions.\n * @prop traces The transaction traces.\n * @prop storageDiffs The changes to the storage.\n * @prop contractChanges The changes to contracts and classes.\n * @prop nonceUpdates The nonce updates.\n */\nexport const Block = MessageCodec({\n header: RequiredCodec(BlockHeader),\n transactions: ArrayCodec(Transaction),\n receipts: ArrayCodec(TransactionReceipt),\n events: ArrayCodec(Event),\n messages: ArrayCodec(MessageToL1),\n traces: ArrayCodec(TransactionTrace),\n storageDiffs: ArrayCodec(StorageDiff),\n contractChanges: ArrayCodec(ContractChange),\n nonceUpdates: ArrayCodec(NonceUpdate),\n});\n\nexport type Block = Readonly<CodecType<typeof Block>>;\n\n// -----------------------------------------------------\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 {\n ArrayCodec,\n BooleanCodec,\n type Codec,\n type CodecType,\n MessageCodec,\n NumberCodec,\n OneOfCodec,\n OptionalCodec,\n} from \"@apibara/protocol/codec\";\nimport { FieldElement } from \"./common\";\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\n/** An event key filter. Use `null` to match any event key. */\nexport const Key: Codec<\n FieldElement | null,\n { value?: proto.common.FieldElement | undefined }\n> = {\n encode(x) {\n if (x === null) {\n return { value: undefined };\n }\n return { value: FieldElement.encode(x) };\n },\n decode(p) {\n if (p.value === undefined) {\n return null;\n }\n return FieldElement.decode(p.value);\n },\n};\n\nexport type Key = CodecType<typeof Key>;\n\nexport const TransactionStatusFilter: Codec<\n \"succeeded\" | \"reverted\" | \"all\" | \"unknown\",\n proto.filter.TransactionStatusFilter\n> = {\n encode(x) {\n switch (x) {\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 decode(p) {\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[p] ?? \"unknown\";\n },\n};\n\nexport type TransactionStatusFilter = CodecType<typeof TransactionStatusFilter>;\n\n/** Filter events.\n *\n * @prop address Filter events by the sender address.\n * @prop keys Filter events by the event keys. Use `null` to match any key.\n * @prop strict If `true`, then the filter will only match events that have exactly the\n * same number of keys as specified in `keys`.\n * @prop transactionStatus Filter based on the transaction status.\n * @prop includeTransaction Include the transaction that emitted the event.\n * @prop includeReceipt Include the transaction receipt.\n * @prop includeMessages Include the messages that were sent to L1 in the same transaction.\n * @prop includeSiblings Include the sibling events of the matched events.\n * @prop includeTransactionTrace Include the trace of the transaction that emitted the event.\n */\nexport const EventFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n address: OptionalCodec(FieldElement),\n keys: OptionalCodec(ArrayCodec(Key)),\n strict: OptionalCodec(BooleanCodec),\n transactionStatus: OptionalCodec(TransactionStatusFilter),\n includeTransaction: OptionalCodec(BooleanCodec),\n includeReceipt: OptionalCodec(BooleanCodec),\n includeMessages: OptionalCodec(BooleanCodec),\n includeSiblings: OptionalCodec(BooleanCodec),\n includeTransactionTrace: OptionalCodec(BooleanCodec),\n});\n\nexport type EventFilter = Readonly<CodecType<typeof EventFilter>>;\n\n/** Filter messages to L1.\n *\n * @prop fromAddress Filter messages by the sender address (on L2).\n * @prop toAddress Filter messages by the recipient address (on L1).\n * @prop transactionStatus Filter based on the transaction status.\n * @prop includeTransaction Include the transaction that sent the message.\n * @prop includeReceipt Include the transaction receipt.\n * @prop includeEvents Include events from the same transaction.\n * @prop includeTransactionTrace Include the trace of the transaction that sent the message.\n */\nexport const MessageToL1Filter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n fromAddress: OptionalCodec(FieldElement),\n toAddress: OptionalCodec(FieldElement),\n transactionStatus: OptionalCodec(TransactionStatusFilter),\n includeTransaction: OptionalCodec(BooleanCodec),\n includeReceipt: OptionalCodec(BooleanCodec),\n includeEvents: OptionalCodec(BooleanCodec),\n includeTransactionTrace: OptionalCodec(BooleanCodec),\n});\n\nexport type MessageToL1Filter = Readonly<CodecType<typeof MessageToL1Filter>>;\n\n// Transaction type filters\nexport const InvokeTransactionV0Filter = MessageCodec({});\nexport type InvokeTransactionV0Filter = Readonly<\n CodecType<typeof InvokeTransactionV0Filter>\n>;\n\nexport const InvokeTransactionV1Filter = MessageCodec({});\nexport type InvokeTransactionV1Filter = Readonly<\n CodecType<typeof InvokeTransactionV1Filter>\n>;\n\nexport const InvokeTransactionV3Filter = MessageCodec({});\nexport type InvokeTransactionV3Filter = Readonly<\n CodecType<typeof InvokeTransactionV3Filter>\n>;\n\nexport const DeployTransactionFilter = MessageCodec({});\nexport type DeployTransactionFilter = Readonly<\n CodecType<typeof DeployTransactionFilter>\n>;\n\nexport const DeclareV0TransactionFilter = MessageCodec({});\nexport type DeclareV0TransactionFilter = Readonly<\n CodecType<typeof DeclareV0TransactionFilter>\n>;\n\nexport const DeclareV1TransactionFilter = MessageCodec({});\nexport type DeclareV1TransactionFilter = Readonly<\n CodecType<typeof DeclareV1TransactionFilter>\n>;\n\nexport const DeclareV2TransactionFilter = MessageCodec({});\nexport type DeclareV2TransactionFilter = Readonly<\n CodecType<typeof DeclareV2TransactionFilter>\n>;\n\nexport const DeclareV3TransactionFilter = MessageCodec({});\nexport type DeclareV3TransactionFilter = Readonly<\n CodecType<typeof DeclareV3TransactionFilter>\n>;\n\nexport const L1HandlerTransactionFilter = MessageCodec({});\nexport type L1HandlerTransactionFilter = Readonly<\n CodecType<typeof L1HandlerTransactionFilter>\n>;\n\nexport const DeployAccountV1TransactionFilter = MessageCodec({});\nexport type DeployAccountV1TransactionFilter = Readonly<\n CodecType<typeof DeployAccountV1TransactionFilter>\n>;\n\nexport const DeployAccountV3TransactionFilter = MessageCodec({});\nexport type DeployAccountV3TransactionFilter = Readonly<\n CodecType<typeof DeployAccountV3TransactionFilter>\n>;\n\n/** Filter transactions.\n *\n * @prop transactionStatus Filter based on the transaction status.\n * @prop includeReceipt Include the transaction receipt.\n * @prop includeEvents Include events from the same transaction.\n * @prop includeMessages Include messages sent in the transaction.\n * @prop includeTrace Include the transaction's trace.\n */\nexport const TransactionFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n transactionStatus: OptionalCodec(TransactionStatusFilter),\n includeReceipt: OptionalCodec(BooleanCodec),\n includeMessages: OptionalCodec(BooleanCodec),\n includeEvents: OptionalCodec(BooleanCodec),\n includeTrace: OptionalCodec(BooleanCodec),\n transactionType: OptionalCodec(\n OneOfCodec({\n invokeV0: InvokeTransactionV0Filter,\n invokeV1: InvokeTransactionV1Filter,\n invokeV3: InvokeTransactionV3Filter,\n deploy: DeployTransactionFilter,\n declareV0: DeclareV0TransactionFilter,\n declareV1: DeclareV1TransactionFilter,\n declareV2: DeclareV2TransactionFilter,\n declareV3: DeclareV3TransactionFilter,\n l1Handler: L1HandlerTransactionFilter,\n deployAccountV1: DeployAccountV1TransactionFilter,\n deployAccountV3: DeployAccountV3TransactionFilter,\n }),\n ),\n});\n\nexport type TransactionFilter = Readonly<CodecType<typeof TransactionFilter>>;\n\n/** Filter storage diffs.\n *\n * @prop contractAddress Filter by contract address.\n */\nexport const StorageDiffFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n contractAddress: OptionalCodec(FieldElement),\n});\n\nexport type StorageDiffFilter = Readonly<CodecType<typeof StorageDiffFilter>>;\n\n/** Filter declared classes. */\nexport const DeclaredClassFilter = MessageCodec({});\nexport type DeclaredClassFilter = Readonly<\n CodecType<typeof DeclaredClassFilter>\n>;\n\nexport const ReplacedClassFilter = MessageCodec({});\nexport type ReplacedClassFilter = Readonly<\n CodecType<typeof ReplacedClassFilter>\n>;\n\nexport const DeployedContractFilter = MessageCodec({});\nexport type DeployedContractFilter = Readonly<\n CodecType<typeof DeployedContractFilter>\n>;\n\n/** Filter contract changes. */\nexport const ContractChangeFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n change: OptionalCodec(\n OneOfCodec({\n declaredClass: DeclaredClassFilter,\n replacedClass: ReplacedClassFilter,\n deployedContract: DeployedContractFilter,\n }),\n ),\n});\n\nexport type ContractChangeFilter = Readonly<\n CodecType<typeof ContractChangeFilter>\n>;\n\n/** Filter updates to nonces.\n *\n * @prop contractAddress Filter by contract address.\n */\nexport const NonceUpdateFilter = MessageCodec({\n id: OptionalCodec(NumberCodec),\n contractAddress: OptionalCodec(FieldElement),\n});\n\nexport type NonceUpdateFilter = Readonly<CodecType<typeof NonceUpdateFilter>>;\n\nexport const Filter = MessageCodec({\n header: OptionalCodec(HeaderFilter),\n transactions: OptionalCodec(ArrayCodec(TransactionFilter)),\n events: OptionalCodec(ArrayCodec(EventFilter)),\n messages: OptionalCodec(ArrayCodec(MessageToL1Filter)),\n storageDiffs: OptionalCodec(ArrayCodec(StorageDiffFilter)),\n contractChanges: OptionalCodec(ArrayCodec(ContractChangeFilter)),\n nonceUpdates: OptionalCodec(ArrayCodec(NonceUpdateFilter)),\n});\n\nexport type Filter = Readonly<CodecType<typeof Filter>>;\n\nexport const FilterFromBytes: Codec<Filter, Uint8Array> = {\n encode(x) {\n const filter = Filter.encode(x);\n return proto.filter.Filter.encode(filter).finish();\n },\n decode(p) {\n const filter = proto.filter.Filter.decode(p);\n return Filter.decode(filter);\n },\n};\n\nexport function mergeFilter(a: Filter, b: Filter): Filter {\n const header = mergeHeaderFilter(a.header, b.header);\n return {\n header,\n transactions: [...(a.transactions ?? []), ...(b.transactions ?? [])],\n events: [...(a.events ?? []), ...(b.events ?? [])],\n messages: [...(a.messages ?? []), ...(b.messages ?? [])],\n storageDiffs: [...(a.storageDiffs ?? []), ...(b.storageDiffs ?? [])],\n contractChanges: [\n ...(a.contractChanges ?? []),\n ...(b.contractChanges ?? []),\n ],\n nonceUpdates: [...(a.nonceUpdates ?? []), ...(b.nonceUpdates ?? [])],\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 type { Transaction, TransactionReceipt } from \"./block\";\n\n/** Returns the transaction receipt for the given transaction index. */\nexport function getReceipt(\n transactionIndex: number,\n params:\n | { receipts: readonly TransactionReceipt[] }\n | readonly TransactionReceipt[],\n): TransactionReceipt | undefined {\n const receipts = \"receipts\" in params ? params.receipts : params;\n return binarySearch(\n transactionIndex,\n receipts,\n (receipt) => receipt.meta?.transactionIndex ?? 0,\n );\n}\n\n/** Returns the transaction for the given transaction index. */\nexport function getTransaction(\n transactionIndex: number,\n params: { transactions: readonly Transaction[] } | readonly Transaction[],\n): Transaction | undefined {\n const transactions = \"transactions\" in params ? params.transactions : params;\n return binarySearch(\n transactionIndex,\n transactions,\n (transaction) => transaction.meta?.transactionIndex ?? 0,\n );\n}\n\nfunction binarySearch<T>(\n index: number,\n arr: readonly T[],\n getIndex: (item: T) => number,\n): T | undefined {\n let left = 0;\n let right = arr.length - 1;\n\n while (left <= right) {\n const mid = Math.floor((left + right) / 2);\n const item = arr[mid];\n const itemIndex = getIndex(item);\n\n if (itemIndex === index) {\n return item;\n }\n\n if (itemIndex < index) {\n left = mid + 1;\n } else {\n right = mid - 1;\n }\n }\n}\n","import { keccak } from \"@scure/starknet\";\n\nimport type { FieldElement } from \"./common\";\nimport {\n parseBool,\n parseContractAddress,\n parseFelt252,\n parseU8,\n parseU16,\n parseU32,\n parseU64,\n parseU128,\n parseU256,\n} from \"./parser\";\n\n/** Returns the selector of the provided `name` as a bigint. */\nexport function getBigIntSelector(name: string): bigint {\n const asBytes = new TextEncoder().encode(name);\n return keccak(asBytes);\n}\n\n/** Returns the selector of the provided `name` as a FieldElement. */\nexport function getSelector(name: string): FieldElement {\n const bn = getBigIntSelector(name);\n return `0x${bn.toString(16).padStart(64, \"0\")}`;\n}\n\n/** Returns the selector of the provided event with `name` as a FieldElement.\n *\n * If the name is fully qualified, only the last part is used to compute the selector.\n */\nexport function getEventSelector(name: string): FieldElement {\n const parts = name.split(\"::\");\n return getSelector(parts[parts.length - 1]);\n}\n\nexport const PrimitiveTypeParsers = {\n \"core::bool\": parseBool,\n \"core::felt252\": parseFelt252,\n \"core::integer::u8\": parseU8,\n \"core::integer::u16\": parseU16,\n \"core::integer::u32\": parseU32,\n \"core::integer::u64\": parseU64,\n \"core::integer::u128\": parseU128,\n \"core::integer::u256\": parseU256,\n \"core::starknet::contract_address::ContractAddress\": parseContractAddress,\n};\n\nexport function isPrimitiveType(type: string) {\n return type in PrimitiveTypeParsers;\n}\n\nexport function isArrayType(type: string) {\n return type.startsWith(\"core::array::Array::<\") && type.endsWith(\">\");\n}\n\nexport function getArrayElementType(type: string) {\n return type.slice(\"core::array::Array::<\".length, -1);\n}\n\nexport function isSpanType(type: string) {\n return type.startsWith(\"core::array::Span::<\") && type.endsWith(\">\");\n}\n\nexport function getSpanType(type: string) {\n return type.slice(\"core::array::Span::<\".length, -1);\n}\n\nexport function isOptionType(type: string) {\n return type.startsWith(\"core::option::Option::<\") && type.endsWith(\">\");\n}\n\nexport function getOptionType(type: string) {\n return type.slice(\"core::option::Option::<\".length, -1);\n}\n\nexport function isEmptyType(type: string) {\n return type === \"()\";\n}\n","/*\n\nThis file extends \"abi-wan-kanabi\" to provide a more type-safe way to decode events.\n\nhttps://github.com/keep-starknet-strange/abi-wan-kanabi\n\nThis is free and unencumbered software released into the public domain.\nAnyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.\nIn jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nFor more information, please refer to https://unlicense.org\n\n*/\n\nimport type { Abi } from \"abi-wan-kanabi\";\nimport type {\n AbiEventMember,\n ExtractAbiEvent,\n ExtractAbiEventNames,\n StringToPrimitiveType,\n} from \"abi-wan-kanabi/kanabi\";\n\nexport type AbiEventStruct = {\n type: \"event\";\n name: string;\n kind: \"struct\";\n members: AbiEventMember[];\n};\n\nexport type AbiMember = {\n name: string;\n type: string;\n};\n\nexport type AbiEventEnum = {\n type: \"event\";\n name: string;\n kind: \"enum\";\n variants: AbiEventMember[];\n};\n\nexport type AbiEvent = AbiEventStruct | AbiEventEnum;\n\nexport type AbiItem = Abi[number];\n\nexport type DecodeEventArgs<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n TStrict extends boolean = true,\n> = {\n abi: TAbi;\n eventName: TEventName;\n event: Event;\n strict?: TStrict;\n};\n\nexport type DecodedEvent<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n> = Event & {\n eventName: TEventName;\n args: EventToPrimitiveType<TAbi, TEventName>;\n};\n\nexport type DecodeEventReturn<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n TStrict extends boolean = true,\n> = TStrict extends true\n ? DecodedEvent<TAbi, TEventName>\n : DecodedEvent<TAbi, TEventName> | null;\n\n// Helper type to resolve the payload type of a nested variant.\n// when the type name corresponds to an event; resolves it using EventToPrimitiveType,\nexport type ResolveNestedVariantType<\n TAbi extends Abi,\n TTypeName extends string,\n> = EventToPrimitiveType<TAbi, TTypeName>; // resolve its structure recursively\n\n// Helper type to convert a variant member (nested or flat) into its corresponding tagged union part(s).\nexport type VariantToTaggedUnion<\n TAbi extends Abi,\n TVariant extends AbiEventMember,\n> = TVariant extends { kind: \"nested\" }\n ? // Nested: Use the helper to resolve the payload type.\n { _tag: TVariant[\"name\"] } & {\n [K in TVariant[\"name\"]]: ResolveNestedVariantType<TAbi, TVariant[\"type\"]>;\n }\n : TVariant extends { kind: \"flat\" }\n ? // Flat: Recursively call EventToPrimitiveType on the referenced event type.\n // This will return the union of tagged types for the nested event.\n EventToPrimitiveType<TAbi, TVariant[\"type\"]>\n : never; // Should not happen for valid ABIs\n\n// Main type to convert an event definition (struct or enum) to its TS representation.\nexport type EventToPrimitiveType<\n TAbi extends Abi,\n TEventName extends ExtractAbiEventNames<TAbi>,\n> = ExtractAbiEvent<TAbi, TEventName> extends infer TEventDef\n ? TEventDef extends {\n type: \"event\";\n kind: \"struct\";\n members: infer TMembers extends readonly AbiEventMember[];\n }\n ? // Struct Event: A simple object with member names as keys and their primitive types as values.\n {\n [Member in TMembers[number] as Member[\"name\"]]: StringToPrimitiveType<\n TAbi,\n Member[\"type\"]\n >;\n }\n : TEventDef extends {\n type: \"event\";\n kind: \"enum\";\n variants: infer TVariants extends readonly AbiEventMember[];\n }\n ? // Enum Event: Create a union of all possible tagged types derived from its variants.\n {\n // Map each variant to its corresponding tagged union structure(s).\n [Idx in keyof TVariants]: VariantToTaggedUnion<TAbi, TVariants[Idx]>;\n }[number] // Indexing with [number] converts the tuple of union parts into a single union type.\n : // Explicitly handle empty enum events to ensure the `extends never` check works reliably.\n TEventDef extends { type: \"event\"; kind: \"enum\"; variants: [] }\n ? never\n : // Not an event definition found for TEventName -> never\n never\n : // If the event name is not found in the ABI, return never.\n never;\n\nexport function isEventAbi(item: AbiItem): item is AbiEvent {\n return item.type === \"event\";\n}\n\nexport function isStructEventAbi(item: AbiItem): item is AbiEventStruct {\n return isEventAbi(item) && item.kind === \"struct\";\n}\n\nexport function isEnumEventAbi(item: AbiItem): item is AbiEventEnum {\n return isEventAbi(item) && item.kind === \"enum\";\n}\n","import type { Abi } from \"abi-wan-kanabi\";\nimport type {\n AbiEventMember,\n ExtractAbiEventNames,\n} from \"abi-wan-kanabi/kanabi\";\nimport {\n PrimitiveTypeParsers,\n getArrayElementType,\n getEventSelector,\n getOptionType,\n getSpanType,\n isArrayType,\n isEmptyType,\n isOptionType,\n isPrimitiveType,\n isSpanType,\n} from \"./abi\";\nimport {\n type AbiEvent,\n type AbiEventEnum,\n type AbiEventStruct,\n type AbiMember,\n type EventToPrimitiveType,\n isEnumEventAbi,\n isEventAbi,\n isStructEventAbi,\n} from \"./abi-wan-helpers\";\nimport type { Event } from \"./block\";\nimport {\n ParseError,\n type Parser,\n parseArray,\n parseEmpty,\n parseOption,\n parseSpan,\n parseStruct,\n} from \"./parser\";\n\nexport class DecodeEventError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"DecodeEventError\";\n }\n}\n\nexport type DecodeEventArgs<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n TStrict extends boolean = true,\n> = {\n abi: TAbi;\n eventName: TEventName;\n event: Event;\n strict?: TStrict;\n};\n\nexport type DecodedEvent<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n> = Event & {\n eventName: TEventName;\n args: EventToPrimitiveType<TAbi, TEventName>;\n};\n\nexport type DecodeEventReturn<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n TStrict extends boolean = true,\n> = TStrict extends true\n ? DecodedEvent<TAbi, TEventName>\n : DecodedEvent<TAbi, TEventName> | null;\n\n/** Decodes a single event.\n *\n * If `strict: true`, this function throws on failure. Otherwise, returns null.\n */\nexport function decodeEvent<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n TStrict extends boolean = true,\n>(\n args: DecodeEventArgs<TAbi, TEventName, TStrict>,\n): DecodeEventReturn<TAbi, TEventName, TStrict> {\n const { abi, event, eventName, strict = true } = args;\n\n const eventAbi = abi.find(\n (item) => item.name === eventName && item.type === \"event\",\n );\n\n if (!eventAbi || !isEventAbi(eventAbi)) {\n if (strict) {\n throw new DecodeEventError(`Event ${eventName} not found in ABI`);\n }\n return null as DecodeEventReturn<TAbi, TEventName, TStrict>;\n }\n\n try {\n if (isStructEventAbi(eventAbi)) {\n return decodeStructEvent(abi, eventAbi, event, eventName);\n }\n\n if (isEnumEventAbi(eventAbi)) {\n return decodeEnumEvent(abi, eventAbi, event, eventName);\n }\n\n throw new DecodeEventError(\n `Unsupported event kind: ${(eventAbi as AbiEvent)?.kind}`,\n );\n } catch (error) {\n if (\n (error instanceof DecodeEventError || error instanceof ParseError) &&\n !strict\n ) {\n return null as DecodeEventReturn<TAbi, TEventName, TStrict>;\n }\n\n throw error;\n }\n}\n\nfunction decodeStructEvent<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n>(\n abi: TAbi,\n eventAbi: AbiEventStruct,\n event: Event,\n eventName: TEventName,\n): DecodedEvent<TAbi, TEventName> {\n const selector = BigInt(getEventSelector(eventName));\n if ((event.keys && selector !== BigInt(event.keys[0])) || !event.keys) {\n throw new DecodeEventError(\n `Selector mismatch. Expected ${selector}, got ${event.keys?.[0]}`,\n );\n }\n\n const keysAbi = eventAbi.members.filter((m) => m.kind === \"key\");\n const dataAbi = eventAbi.members.filter((m) => m.kind === \"data\");\n\n const keysParser = compileEventMembers(abi, keysAbi);\n const dataParser = compileEventMembers(abi, dataAbi);\n\n const keysWithoutSelector = event.keys?.slice(1) ?? [];\n\n const { out: decodedKeys } = keysParser(keysWithoutSelector, 0);\n const { out: decodedData } = dataParser(event.data ?? [], 0);\n\n const decoded = {\n ...decodedKeys,\n ...decodedData,\n } as EventToPrimitiveType<TAbi, TEventName>;\n\n return {\n ...event,\n eventName,\n args: decoded,\n } as DecodedEvent<TAbi, TEventName>;\n}\n\nfunction decodeEnumEvent<\n TAbi extends Abi = Abi,\n TEventName extends ExtractAbiEventNames<TAbi> = ExtractAbiEventNames<TAbi>,\n>(\n abi: TAbi,\n eventAbi: AbiEventEnum,\n event: Event,\n eventName: TEventName,\n): DecodedEvent<TAbi, TEventName> {\n if (!event.keys || event.keys.length === 0) {\n throw new DecodeEventError(\n \"Event has no keys; cannot determine variant selector\",\n );\n }\n\n const variants = eventAbi.variants;\n\n const variantSelector = event.keys[0];\n\n // Create a map of all possible selectors to their variant paths\n const selectorToVariant = buildVariantSelectorMap(abi, variants);\n\n // Find the matching variant and path\n const matchingVariant = selectorToVariant[variantSelector];\n\n if (!matchingVariant) {\n throw new DecodeEventError(\n `No matching variant found for selector: ${variantSelector}`,\n );\n }\n\n const structEventAbi = abi.find(\n (item) =>\n item.name === matchingVariant.variant.type && item.type === \"event\",\n );\n\n if (!structEventAbi || !isStructEventAbi(structEventAbi)) {\n throw new DecodeEventError(\n `Nested event type not found or not a struct: ${matchingVariant.variant.type}`,\n );\n }\n\n const decodedStruct = decodeStructEvent(\n abi,\n structEventAbi,\n event,\n matchingVariant.variant.name,\n );\n\n return {\n ...event,\n eventName,\n args: {\n _tag: matchingVariant.variant.name,\n [matchingVariant.variant.name]: decodedStruct.args,\n },\n } as DecodedEvent<TAbi, TEventName>;\n}\n\ntype EnumFlatVariantMap = Record<\n string,\n { variant: AbiEventMember; path: string[] }\n>;\n\n// Helper to build a map of all possible selectors to their variant paths\nfunction buildVariantSelectorMap(\n abi: Abi,\n variants: AbiEventMember[],\n): EnumFlatVariantMap {\n const selectorMap: EnumFlatVariantMap = {};\n\n for (const variant of variants) {\n // For nested events, just map the variant's own selector\n if (variant.kind === \"nested\") {\n const selector = getEventSelector(variant.name);\n selectorMap[selector] = { variant, path: [variant.name] };\n }\n // For flat events, recursively map all possible selectors from the event hierarchy\n else if (variant.kind === \"flat\") {\n const flatEventName = variant.type;\n const flatEventAbi = abi.find(\n (item) => item.name === flatEventName && item.type === \"event\",\n );\n\n // Skip if the flat event type is not found\n if (!flatEventAbi) {\n continue;\n }\n\n if (isEnumEventAbi(flatEventAbi)) {\n // For enum events, recursively map all their variants\n const nestedMap = buildVariantSelectorMap(abi, flatEventAbi.variants);\n\n // Add this variant to the path for all nested selectors\n for (const [\n nestedSelector,\n { variant: nestedVariant, path: nestedPath },\n ] of Object.entries(nestedMap)) {\n selectorMap[nestedSelector] = {\n variant: nestedVariant,\n path: [variant.name, ...nestedPath],\n };\n }\n }\n }\n }\n\n return selectorMap;\n}\n\nfunction compileEventMembers<T extends Record<string, unknown>>(\n abi: Abi,\n members: AbiEventMember[],\n): Parser<T> {\n return compileStructParser(abi, members) as Parser<T>;\n}\n\nfunction compileTypeParser(abi: Abi, type: string): Parser<unknown> {\n if (isPrimitiveType(type)) {\n return PrimitiveTypeParsers[type as keyof typeof PrimitiveTypeParsers];\n }\n\n if (isArrayType(type)) {\n const elementType = getArrayElementType(type);\n return parseArray(compileTypeParser(abi, elementType));\n }\n\n if (isSpanType(type)) {\n const elementType = getSpanType(type);\n return parseSpan(compileTypeParser(abi, elementType));\n }\n\n if (isOptionType(type)) {\n const elementType = getOptionType(type);\n return parseOption(compileTypeParser(abi, elementType));\n }\n\n if (isEmptyType(type)) {\n return parseEmpty;\n }\n\n // Not a well-known type. Look it up in the ABI.\n const typeAbi = abi.find((item) => item.name === type);\n if (!typeAbi) {\n throw new DecodeEventError(`Type ${type} not found in ABI`);\n }\n\n switch (typeAbi.type) {\n case \"struct\": {\n return compileStructParser(abi, typeAbi.members);\n }\n case \"enum\": {\n // This should never happen anyways as compileTypeParser is only called\n // primitive types or to compile structs parsers.\n throw new DecodeEventError(`Enum types are not supported: ${type}`);\n }\n default:\n throw new DecodeEventError(`Invalid type ${typeAbi.type}`);\n }\n}\n\nfunction compileStructParser(\n abi: Abi,\n members: readonly AbiMember[],\n): Parser<unknown> {\n const parsers: Record<string, { index: number; parser: Parser<unknown> }> =\n {};\n for (const [index, member] of members.entries()) {\n parsers[member.name] = {\n index,\n parser: compileTypeParser(abi, member.type),\n };\n }\n return parseStruct(parsers);\n}\n","import { StreamConfig } from \"@apibara/protocol\";\nexport type { Abi } from \"abi-wan-kanabi\";\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 * from \"./access\";\nexport * from \"./event\";\nexport { getBigIntSelector, getEventSelector, getSelector } from \"./abi\";\n\ndeclare module \"abi-wan-kanabi\" {\n interface Config {\n AddressType: `0x${string}`;\n ClassHashType: `0x${string}`;\n FeltType: bigint;\n BigIntType: bigint;\n U256Type: bigint;\n }\n}\n\nexport const StarknetStream = new StreamConfig(\n FilterFromBytes,\n BlockFromBytes,\n mergeFilter,\n \"starknet\",\n);\n"],"names":["FieldElement","protobufPackage","_m0","longToBigint","isSet","Long","TransactionStatus","L1DataAvailabilityMode","ExecutionStatus","PriceUnit","DataAvailabilityMode","CallType","Block","BlockHeader","Transaction","TransactionReceipt","Event","MessageToL1","StorageDiff","ContractChange","NonceUpdate","TransactionTrace","ResourcePrice","TransactionMeta","InvokeTransactionV0","InvokeTransactionV1","InvokeTransactionV3","L1HandlerTransaction","DeployTransaction","DeclareTransactionV0","DeclareTransactionV1","DeclareTransactionV2","DeclareTransactionV3","DeployAccountTransactionV1","DeployAccountTransactionV3","ResourceBoundsMapping","TransactionReceiptMeta","InvokeTransactionReceipt","L1HandlerTransactionReceipt","DeclareTransactionReceipt","DeployTransactionReceipt","DeployAccountTransactionReceipt","FeePayment","ExecutionResources","ExecutionSucceeded","ExecutionReverted","ComputationResources","DataAvailabilityResources","ResourceBounds","StorageEntry","DeclaredClass","ReplacedClass","DeployedContract","InvokeTransactionTrace","DeclareTransactionTrace","DeployAccountTransactionTrace","L1HandlerTransactionTrace","HeaderFilter","TransactionStatusFilter","Filter","TransactionFilter","EventFilter","MessageToL1Filter","StorageDiffFilter","ContractChangeFilter","NonceUpdateFilter","Key","InvokeTransactionV0Filter","InvokeTransactionV1Filter","InvokeTransactionV3Filter","DeployTransactionFilter","DeclareV0TransactionFilter","DeclareV1TransactionFilter","DeclareV2TransactionFilter","DeclareV3TransactionFilter","L1HandlerTransactionFilter","DeployAccountV1TransactionFilter","DeployAccountV3TransactionFilter","DeclaredClassFilter","ReplacedClassFilter","DeployedContractFilter","MessageCodec","OptionalCodec","proto.data.L1DataAvailabilityMode","proto.data.TransactionStatus","RequiredCodec","BigIntCodec","proto.data.DataAvailabilityMode","DateCodec","StringCodec","NumberCodec","ArrayCodec","OneOfCodec","proto.data.PriceUnit","Uint8ArrayCodec","proto.data.CallType","proto.data.Block","proto.filter.HeaderFilter","proto.filter.TransactionStatusFilter","BooleanCodec","proto.filter.Filter","keccak","parseBool","parseFelt252","parseU8","parseU16","parseU32","parseU64","parseU128","parseU256","parseContractAddress","ParseError","parseArray","parseSpan","parseOption","parseEmpty","parseStruct","StreamConfig"],"mappings":"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"}