@apibara/starknet 2.1.0-beta.23 → 2.1.0-beta.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,48 +1,29 @@
1
1
  import { StreamConfig } from '@apibara/protocol';
2
- import { Schema } from '@effect/schema';
2
+ import { MessageCodec, OptionalCodec, RequiredCodec, BigIntCodec, DateCodec, StringCodec, NumberCodec, ArrayCodec, OneOfCodec, Uint8ArrayCodec, BooleanCodec } from '@apibara/protocol/codec';
3
3
  import Long from 'long';
4
4
  import _m0 from 'protobufjs/minimal.js';
5
5
  import { keccak } from '@scure/starknet';
6
6
  import { parseBool, parseFelt252, parseU8, parseU16, parseU32, parseU64, parseU128, parseU256, parseContractAddress, ParseError, parseStruct, parseArray, parseSpan, parseOption, parseEmpty } from './parser.mjs';
7
7
 
8
- const _FieldElement = Schema.TemplateLiteral(
9
- Schema.Literal("0x"),
10
- Schema.String
11
- );
12
- const FieldElementProto = Schema.Struct({
13
- x0: Schema.BigIntFromSelf,
14
- x1: Schema.BigIntFromSelf,
15
- x2: Schema.BigIntFromSelf,
16
- x3: Schema.BigIntFromSelf
17
- });
18
- const FieldElement$1 = Schema.transform(FieldElementProto, _FieldElement, {
19
- decode(value) {
20
- const x0 = value.x0.toString(16).padStart(16, "0");
21
- const x1 = value.x1.toString(16).padStart(16, "0");
22
- const x2 = value.x2.toString(16).padStart(16, "0");
23
- const x3 = value.x3.toString(16).padStart(16, "0");
24
- return `0x${x0}${x1}${x2}${x3}`;
25
- },
26
- encode(value) {
27
- const bn = BigInt(value);
28
- const hex = bn.toString(16).padStart(64, "0");
29
- const s = hex.length;
30
- const x3 = BigInt(`0x${hex.slice(s - 16, s)}`);
31
- const x2 = BigInt(`0x${hex.slice(s - 32, s - 16)}`);
32
- const x1 = BigInt(`0x${hex.slice(s - 48, s - 32)}`);
33
- const x0 = BigInt(`0x${hex.slice(s - 64, s - 48)}`);
8
+ const MAX_U64 = 0xffffffffffffffffn;
9
+ const FieldElement$1 = {
10
+ encode(x) {
11
+ const bn = BigInt(x);
12
+ const x3 = bn & MAX_U64;
13
+ const x2 = bn >> 64n & MAX_U64;
14
+ const x1 = bn >> 128n & MAX_U64;
15
+ const x0 = bn >> 192n & MAX_U64;
34
16
  return { x0, x1, x2, x3 };
17
+ },
18
+ decode(p) {
19
+ const x0 = p.x0 ?? 0n;
20
+ const x1 = p.x1 ?? 0n;
21
+ const x2 = p.x2 ?? 0n;
22
+ const x3 = p.x3 ?? 0n;
23
+ const bn = x3 + (x2 << 64n) + (x1 << 128n) + (x0 << 192n);
24
+ return `0x${bn.toString(16).padStart(64, "0")}`;
35
25
  }
36
- });
37
- const feltToProto = Schema.encodeSync(FieldElement$1);
38
- const feltFromProto = Schema.decodeSync(FieldElement$1);
39
-
40
- function tag(tag2) {
41
- return Schema.Literal(tag2).pipe(
42
- Schema.propertySignature,
43
- Schema.fromKey("$case")
44
- );
45
- }
26
+ };
46
27
 
47
28
  const protobufPackage$2 = "starknet.v2";
48
29
  function createBaseFieldElement() {
@@ -5151,18 +5132,18 @@ function createBaseInvokeTransactionTrace() {
5151
5132
  const InvokeTransactionTrace$1 = {
5152
5133
  encode(message, writer = _m0.Writer.create()) {
5153
5134
  if (message.validateInvocation !== void 0) {
5154
- FunctionInvocation$1.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();
5135
+ FunctionInvocation.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();
5155
5136
  }
5156
5137
  switch (message.executeInvocation?.$case) {
5157
5138
  case "success":
5158
- FunctionInvocation$1.encode(message.executeInvocation.success, writer.uint32(18).fork()).ldelim();
5139
+ FunctionInvocation.encode(message.executeInvocation.success, writer.uint32(18).fork()).ldelim();
5159
5140
  break;
5160
5141
  case "reverted":
5161
5142
  ExecutionReverted$1.encode(message.executeInvocation.reverted, writer.uint32(26).fork()).ldelim();
5162
5143
  break;
5163
5144
  }
5164
5145
  if (message.feeTransferInvocation !== void 0) {
5165
- FunctionInvocation$1.encode(message.feeTransferInvocation, writer.uint32(34).fork()).ldelim();
5146
+ FunctionInvocation.encode(message.feeTransferInvocation, writer.uint32(34).fork()).ldelim();
5166
5147
  }
5167
5148
  return writer;
5168
5149
  },
@@ -5177,13 +5158,13 @@ const InvokeTransactionTrace$1 = {
5177
5158
  if (tag !== 10) {
5178
5159
  break;
5179
5160
  }
5180
- message.validateInvocation = FunctionInvocation$1.decode(reader, reader.uint32());
5161
+ message.validateInvocation = FunctionInvocation.decode(reader, reader.uint32());
5181
5162
  continue;
5182
5163
  case 2:
5183
5164
  if (tag !== 18) {
5184
5165
  break;
5185
5166
  }
5186
- message.executeInvocation = { $case: "success", success: FunctionInvocation$1.decode(reader, reader.uint32()) };
5167
+ message.executeInvocation = { $case: "success", success: FunctionInvocation.decode(reader, reader.uint32()) };
5187
5168
  continue;
5188
5169
  case 3:
5189
5170
  if (tag !== 26) {
@@ -5198,7 +5179,7 @@ const InvokeTransactionTrace$1 = {
5198
5179
  if (tag !== 34) {
5199
5180
  break;
5200
5181
  }
5201
- message.feeTransferInvocation = FunctionInvocation$1.decode(reader, reader.uint32());
5182
+ message.feeTransferInvocation = FunctionInvocation.decode(reader, reader.uint32());
5202
5183
  continue;
5203
5184
  }
5204
5185
  if ((tag & 7) === 4 || tag === 0) {
@@ -5210,24 +5191,24 @@ const InvokeTransactionTrace$1 = {
5210
5191
  },
5211
5192
  fromJSON(object) {
5212
5193
  return {
5213
- validateInvocation: isSet$1(object.validateInvocation) ? FunctionInvocation$1.fromJSON(object.validateInvocation) : void 0,
5214
- executeInvocation: isSet$1(object.success) ? { $case: "success", success: FunctionInvocation$1.fromJSON(object.success) } : isSet$1(object.reverted) ? { $case: "reverted", reverted: ExecutionReverted$1.fromJSON(object.reverted) } : void 0,
5215
- feeTransferInvocation: isSet$1(object.feeTransferInvocation) ? FunctionInvocation$1.fromJSON(object.feeTransferInvocation) : void 0
5194
+ validateInvocation: isSet$1(object.validateInvocation) ? FunctionInvocation.fromJSON(object.validateInvocation) : void 0,
5195
+ executeInvocation: isSet$1(object.success) ? { $case: "success", success: FunctionInvocation.fromJSON(object.success) } : isSet$1(object.reverted) ? { $case: "reverted", reverted: ExecutionReverted$1.fromJSON(object.reverted) } : void 0,
5196
+ feeTransferInvocation: isSet$1(object.feeTransferInvocation) ? FunctionInvocation.fromJSON(object.feeTransferInvocation) : void 0
5216
5197
  };
5217
5198
  },
5218
5199
  toJSON(message) {
5219
5200
  const obj = {};
5220
5201
  if (message.validateInvocation !== void 0) {
5221
- obj.validateInvocation = FunctionInvocation$1.toJSON(message.validateInvocation);
5202
+ obj.validateInvocation = FunctionInvocation.toJSON(message.validateInvocation);
5222
5203
  }
5223
5204
  if (message.executeInvocation?.$case === "success") {
5224
- obj.success = FunctionInvocation$1.toJSON(message.executeInvocation.success);
5205
+ obj.success = FunctionInvocation.toJSON(message.executeInvocation.success);
5225
5206
  }
5226
5207
  if (message.executeInvocation?.$case === "reverted") {
5227
5208
  obj.reverted = ExecutionReverted$1.toJSON(message.executeInvocation.reverted);
5228
5209
  }
5229
5210
  if (message.feeTransferInvocation !== void 0) {
5230
- obj.feeTransferInvocation = FunctionInvocation$1.toJSON(message.feeTransferInvocation);
5211
+ obj.feeTransferInvocation = FunctionInvocation.toJSON(message.feeTransferInvocation);
5231
5212
  }
5232
5213
  return obj;
5233
5214
  },
@@ -5236,11 +5217,11 @@ const InvokeTransactionTrace$1 = {
5236
5217
  },
5237
5218
  fromPartial(object) {
5238
5219
  const message = createBaseInvokeTransactionTrace();
5239
- message.validateInvocation = object.validateInvocation !== void 0 && object.validateInvocation !== null ? FunctionInvocation$1.fromPartial(object.validateInvocation) : void 0;
5220
+ message.validateInvocation = object.validateInvocation !== void 0 && object.validateInvocation !== null ? FunctionInvocation.fromPartial(object.validateInvocation) : void 0;
5240
5221
  if (object.executeInvocation?.$case === "success" && object.executeInvocation?.success !== void 0 && object.executeInvocation?.success !== null) {
5241
5222
  message.executeInvocation = {
5242
5223
  $case: "success",
5243
- success: FunctionInvocation$1.fromPartial(object.executeInvocation.success)
5224
+ success: FunctionInvocation.fromPartial(object.executeInvocation.success)
5244
5225
  };
5245
5226
  }
5246
5227
  if (object.executeInvocation?.$case === "reverted" && object.executeInvocation?.reverted !== void 0 && object.executeInvocation?.reverted !== null) {
@@ -5249,7 +5230,7 @@ const InvokeTransactionTrace$1 = {
5249
5230
  reverted: ExecutionReverted$1.fromPartial(object.executeInvocation.reverted)
5250
5231
  };
5251
5232
  }
5252
- message.feeTransferInvocation = object.feeTransferInvocation !== void 0 && object.feeTransferInvocation !== null ? FunctionInvocation$1.fromPartial(object.feeTransferInvocation) : void 0;
5233
+ message.feeTransferInvocation = object.feeTransferInvocation !== void 0 && object.feeTransferInvocation !== null ? FunctionInvocation.fromPartial(object.feeTransferInvocation) : void 0;
5253
5234
  return message;
5254
5235
  }
5255
5236
  };
@@ -5259,10 +5240,10 @@ function createBaseDeclareTransactionTrace() {
5259
5240
  const DeclareTransactionTrace$1 = {
5260
5241
  encode(message, writer = _m0.Writer.create()) {
5261
5242
  if (message.validateInvocation !== void 0) {
5262
- FunctionInvocation$1.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();
5243
+ FunctionInvocation.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();
5263
5244
  }
5264
5245
  if (message.feeTransferInvocation !== void 0) {
5265
- FunctionInvocation$1.encode(message.feeTransferInvocation, writer.uint32(18).fork()).ldelim();
5246
+ FunctionInvocation.encode(message.feeTransferInvocation, writer.uint32(18).fork()).ldelim();
5266
5247
  }
5267
5248
  return writer;
5268
5249
  },
@@ -5277,13 +5258,13 @@ const DeclareTransactionTrace$1 = {
5277
5258
  if (tag !== 10) {
5278
5259
  break;
5279
5260
  }
5280
- message.validateInvocation = FunctionInvocation$1.decode(reader, reader.uint32());
5261
+ message.validateInvocation = FunctionInvocation.decode(reader, reader.uint32());
5281
5262
  continue;
5282
5263
  case 2:
5283
5264
  if (tag !== 18) {
5284
5265
  break;
5285
5266
  }
5286
- message.feeTransferInvocation = FunctionInvocation$1.decode(reader, reader.uint32());
5267
+ message.feeTransferInvocation = FunctionInvocation.decode(reader, reader.uint32());
5287
5268
  continue;
5288
5269
  }
5289
5270
  if ((tag & 7) === 4 || tag === 0) {
@@ -5295,17 +5276,17 @@ const DeclareTransactionTrace$1 = {
5295
5276
  },
5296
5277
  fromJSON(object) {
5297
5278
  return {
5298
- validateInvocation: isSet$1(object.validateInvocation) ? FunctionInvocation$1.fromJSON(object.validateInvocation) : void 0,
5299
- feeTransferInvocation: isSet$1(object.feeTransferInvocation) ? FunctionInvocation$1.fromJSON(object.feeTransferInvocation) : void 0
5279
+ validateInvocation: isSet$1(object.validateInvocation) ? FunctionInvocation.fromJSON(object.validateInvocation) : void 0,
5280
+ feeTransferInvocation: isSet$1(object.feeTransferInvocation) ? FunctionInvocation.fromJSON(object.feeTransferInvocation) : void 0
5300
5281
  };
5301
5282
  },
5302
5283
  toJSON(message) {
5303
5284
  const obj = {};
5304
5285
  if (message.validateInvocation !== void 0) {
5305
- obj.validateInvocation = FunctionInvocation$1.toJSON(message.validateInvocation);
5286
+ obj.validateInvocation = FunctionInvocation.toJSON(message.validateInvocation);
5306
5287
  }
5307
5288
  if (message.feeTransferInvocation !== void 0) {
5308
- obj.feeTransferInvocation = FunctionInvocation$1.toJSON(message.feeTransferInvocation);
5289
+ obj.feeTransferInvocation = FunctionInvocation.toJSON(message.feeTransferInvocation);
5309
5290
  }
5310
5291
  return obj;
5311
5292
  },
@@ -5314,8 +5295,8 @@ const DeclareTransactionTrace$1 = {
5314
5295
  },
5315
5296
  fromPartial(object) {
5316
5297
  const message = createBaseDeclareTransactionTrace();
5317
- message.validateInvocation = object.validateInvocation !== void 0 && object.validateInvocation !== null ? FunctionInvocation$1.fromPartial(object.validateInvocation) : void 0;
5318
- message.feeTransferInvocation = object.feeTransferInvocation !== void 0 && object.feeTransferInvocation !== null ? FunctionInvocation$1.fromPartial(object.feeTransferInvocation) : void 0;
5298
+ message.validateInvocation = object.validateInvocation !== void 0 && object.validateInvocation !== null ? FunctionInvocation.fromPartial(object.validateInvocation) : void 0;
5299
+ message.feeTransferInvocation = object.feeTransferInvocation !== void 0 && object.feeTransferInvocation !== null ? FunctionInvocation.fromPartial(object.feeTransferInvocation) : void 0;
5319
5300
  return message;
5320
5301
  }
5321
5302
  };
@@ -5325,13 +5306,13 @@ function createBaseDeployAccountTransactionTrace() {
5325
5306
  const DeployAccountTransactionTrace$1 = {
5326
5307
  encode(message, writer = _m0.Writer.create()) {
5327
5308
  if (message.validateInvocation !== void 0) {
5328
- FunctionInvocation$1.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();
5309
+ FunctionInvocation.encode(message.validateInvocation, writer.uint32(10).fork()).ldelim();
5329
5310
  }
5330
5311
  if (message.constructorInvocation !== void 0) {
5331
- FunctionInvocation$1.encode(message.constructorInvocation, writer.uint32(18).fork()).ldelim();
5312
+ FunctionInvocation.encode(message.constructorInvocation, writer.uint32(18).fork()).ldelim();
5332
5313
  }
5333
5314
  if (message.feeTransferInvocation !== void 0) {
5334
- FunctionInvocation$1.encode(message.feeTransferInvocation, writer.uint32(26).fork()).ldelim();
5315
+ FunctionInvocation.encode(message.feeTransferInvocation, writer.uint32(26).fork()).ldelim();
5335
5316
  }
5336
5317
  return writer;
5337
5318
  },
@@ -5346,19 +5327,19 @@ const DeployAccountTransactionTrace$1 = {
5346
5327
  if (tag !== 10) {
5347
5328
  break;
5348
5329
  }
5349
- message.validateInvocation = FunctionInvocation$1.decode(reader, reader.uint32());
5330
+ message.validateInvocation = FunctionInvocation.decode(reader, reader.uint32());
5350
5331
  continue;
5351
5332
  case 2:
5352
5333
  if (tag !== 18) {
5353
5334
  break;
5354
5335
  }
5355
- message.constructorInvocation = FunctionInvocation$1.decode(reader, reader.uint32());
5336
+ message.constructorInvocation = FunctionInvocation.decode(reader, reader.uint32());
5356
5337
  continue;
5357
5338
  case 3:
5358
5339
  if (tag !== 26) {
5359
5340
  break;
5360
5341
  }
5361
- message.feeTransferInvocation = FunctionInvocation$1.decode(reader, reader.uint32());
5342
+ message.feeTransferInvocation = FunctionInvocation.decode(reader, reader.uint32());
5362
5343
  continue;
5363
5344
  }
5364
5345
  if ((tag & 7) === 4 || tag === 0) {
@@ -5370,21 +5351,21 @@ const DeployAccountTransactionTrace$1 = {
5370
5351
  },
5371
5352
  fromJSON(object) {
5372
5353
  return {
5373
- validateInvocation: isSet$1(object.validateInvocation) ? FunctionInvocation$1.fromJSON(object.validateInvocation) : void 0,
5374
- constructorInvocation: isSet$1(object.constructorInvocation) ? FunctionInvocation$1.fromJSON(object.constructorInvocation) : void 0,
5375
- feeTransferInvocation: isSet$1(object.feeTransferInvocation) ? FunctionInvocation$1.fromJSON(object.feeTransferInvocation) : void 0
5354
+ validateInvocation: isSet$1(object.validateInvocation) ? FunctionInvocation.fromJSON(object.validateInvocation) : void 0,
5355
+ constructorInvocation: isSet$1(object.constructorInvocation) ? FunctionInvocation.fromJSON(object.constructorInvocation) : void 0,
5356
+ feeTransferInvocation: isSet$1(object.feeTransferInvocation) ? FunctionInvocation.fromJSON(object.feeTransferInvocation) : void 0
5376
5357
  };
5377
5358
  },
5378
5359
  toJSON(message) {
5379
5360
  const obj = {};
5380
5361
  if (message.validateInvocation !== void 0) {
5381
- obj.validateInvocation = FunctionInvocation$1.toJSON(message.validateInvocation);
5362
+ obj.validateInvocation = FunctionInvocation.toJSON(message.validateInvocation);
5382
5363
  }
5383
5364
  if (message.constructorInvocation !== void 0) {
5384
- obj.constructorInvocation = FunctionInvocation$1.toJSON(message.constructorInvocation);
5365
+ obj.constructorInvocation = FunctionInvocation.toJSON(message.constructorInvocation);
5385
5366
  }
5386
5367
  if (message.feeTransferInvocation !== void 0) {
5387
- obj.feeTransferInvocation = FunctionInvocation$1.toJSON(message.feeTransferInvocation);
5368
+ obj.feeTransferInvocation = FunctionInvocation.toJSON(message.feeTransferInvocation);
5388
5369
  }
5389
5370
  return obj;
5390
5371
  },
@@ -5393,9 +5374,9 @@ const DeployAccountTransactionTrace$1 = {
5393
5374
  },
5394
5375
  fromPartial(object) {
5395
5376
  const message = createBaseDeployAccountTransactionTrace();
5396
- message.validateInvocation = object.validateInvocation !== void 0 && object.validateInvocation !== null ? FunctionInvocation$1.fromPartial(object.validateInvocation) : void 0;
5397
- message.constructorInvocation = object.constructorInvocation !== void 0 && object.constructorInvocation !== null ? FunctionInvocation$1.fromPartial(object.constructorInvocation) : void 0;
5398
- message.feeTransferInvocation = object.feeTransferInvocation !== void 0 && object.feeTransferInvocation !== null ? FunctionInvocation$1.fromPartial(object.feeTransferInvocation) : void 0;
5377
+ message.validateInvocation = object.validateInvocation !== void 0 && object.validateInvocation !== null ? FunctionInvocation.fromPartial(object.validateInvocation) : void 0;
5378
+ message.constructorInvocation = object.constructorInvocation !== void 0 && object.constructorInvocation !== null ? FunctionInvocation.fromPartial(object.constructorInvocation) : void 0;
5379
+ message.feeTransferInvocation = object.feeTransferInvocation !== void 0 && object.feeTransferInvocation !== null ? FunctionInvocation.fromPartial(object.feeTransferInvocation) : void 0;
5399
5380
  return message;
5400
5381
  }
5401
5382
  };
@@ -5405,7 +5386,7 @@ function createBaseL1HandlerTransactionTrace() {
5405
5386
  const L1HandlerTransactionTrace$1 = {
5406
5387
  encode(message, writer = _m0.Writer.create()) {
5407
5388
  if (message.functionInvocation !== void 0) {
5408
- FunctionInvocation$1.encode(message.functionInvocation, writer.uint32(18).fork()).ldelim();
5389
+ FunctionInvocation.encode(message.functionInvocation, writer.uint32(18).fork()).ldelim();
5409
5390
  }
5410
5391
  return writer;
5411
5392
  },
@@ -5420,7 +5401,7 @@ const L1HandlerTransactionTrace$1 = {
5420
5401
  if (tag !== 18) {
5421
5402
  break;
5422
5403
  }
5423
- message.functionInvocation = FunctionInvocation$1.decode(reader, reader.uint32());
5404
+ message.functionInvocation = FunctionInvocation.decode(reader, reader.uint32());
5424
5405
  continue;
5425
5406
  }
5426
5407
  if ((tag & 7) === 4 || tag === 0) {
@@ -5432,13 +5413,13 @@ const L1HandlerTransactionTrace$1 = {
5432
5413
  },
5433
5414
  fromJSON(object) {
5434
5415
  return {
5435
- functionInvocation: isSet$1(object.functionInvocation) ? FunctionInvocation$1.fromJSON(object.functionInvocation) : void 0
5416
+ functionInvocation: isSet$1(object.functionInvocation) ? FunctionInvocation.fromJSON(object.functionInvocation) : void 0
5436
5417
  };
5437
5418
  },
5438
5419
  toJSON(message) {
5439
5420
  const obj = {};
5440
5421
  if (message.functionInvocation !== void 0) {
5441
- obj.functionInvocation = FunctionInvocation$1.toJSON(message.functionInvocation);
5422
+ obj.functionInvocation = FunctionInvocation.toJSON(message.functionInvocation);
5442
5423
  }
5443
5424
  return obj;
5444
5425
  },
@@ -5447,7 +5428,7 @@ const L1HandlerTransactionTrace$1 = {
5447
5428
  },
5448
5429
  fromPartial(object) {
5449
5430
  const message = createBaseL1HandlerTransactionTrace();
5450
- message.functionInvocation = object.functionInvocation !== void 0 && object.functionInvocation !== null ? FunctionInvocation$1.fromPartial(object.functionInvocation) : void 0;
5431
+ message.functionInvocation = object.functionInvocation !== void 0 && object.functionInvocation !== null ? FunctionInvocation.fromPartial(object.functionInvocation) : void 0;
5451
5432
  return message;
5452
5433
  }
5453
5434
  };
@@ -5465,7 +5446,7 @@ function createBaseFunctionInvocation() {
5465
5446
  messages: []
5466
5447
  };
5467
5448
  }
5468
- const FunctionInvocation$1 = {
5449
+ const FunctionInvocation = {
5469
5450
  encode(message, writer = _m0.Writer.create()) {
5470
5451
  if (message.contractAddress !== void 0) {
5471
5452
  FieldElement.encode(message.contractAddress, writer.uint32(10).fork()).ldelim();
@@ -5494,7 +5475,7 @@ const FunctionInvocation$1 = {
5494
5475
  }
5495
5476
  if (message.calls !== void 0 && message.calls.length !== 0) {
5496
5477
  for (const v of message.calls) {
5497
- FunctionInvocation$1.encode(v, writer.uint32(66).fork()).ldelim();
5478
+ FunctionInvocation.encode(v, writer.uint32(66).fork()).ldelim();
5498
5479
  }
5499
5480
  }
5500
5481
  if (message.events !== void 0 && message.events.length !== 0) {
@@ -5566,7 +5547,7 @@ const FunctionInvocation$1 = {
5566
5547
  if (tag !== 66) {
5567
5548
  break;
5568
5549
  }
5569
- message.calls.push(FunctionInvocation$1.decode(reader, reader.uint32()));
5550
+ message.calls.push(FunctionInvocation.decode(reader, reader.uint32()));
5570
5551
  continue;
5571
5552
  case 9:
5572
5553
  if (tag === 72) {
@@ -5611,7 +5592,7 @@ const FunctionInvocation$1 = {
5611
5592
  classHash: isSet$1(object.classHash) ? FieldElement.fromJSON(object.classHash) : void 0,
5612
5593
  callType: isSet$1(object.callType) ? callTypeFromJSON(object.callType) : 0,
5613
5594
  result: globalThis.Array.isArray(object?.result) ? object.result.map((e) => FieldElement.fromJSON(e)) : [],
5614
- calls: globalThis.Array.isArray(object?.calls) ? object.calls.map((e) => FunctionInvocation$1.fromJSON(e)) : [],
5595
+ calls: globalThis.Array.isArray(object?.calls) ? object.calls.map((e) => FunctionInvocation.fromJSON(e)) : [],
5615
5596
  events: globalThis.Array.isArray(object?.events) ? object.events.map((e) => globalThis.Number(e)) : [],
5616
5597
  messages: globalThis.Array.isArray(object?.messages) ? object.messages.map((e) => globalThis.Number(e)) : []
5617
5598
  };
@@ -5640,7 +5621,7 @@ const FunctionInvocation$1 = {
5640
5621
  obj.result = message.result.map((e) => FieldElement.toJSON(e));
5641
5622
  }
5642
5623
  if (message.calls?.length) {
5643
- obj.calls = message.calls.map((e) => FunctionInvocation$1.toJSON(e));
5624
+ obj.calls = message.calls.map((e) => FunctionInvocation.toJSON(e));
5644
5625
  }
5645
5626
  if (message.events?.length) {
5646
5627
  obj.events = message.events.map((e) => Math.round(e));
@@ -5651,7 +5632,7 @@ const FunctionInvocation$1 = {
5651
5632
  return obj;
5652
5633
  },
5653
5634
  create(base) {
5654
- return FunctionInvocation$1.fromPartial(base ?? {});
5635
+ return FunctionInvocation.fromPartial(base ?? {});
5655
5636
  },
5656
5637
  fromPartial(object) {
5657
5638
  const message = createBaseFunctionInvocation();
@@ -5662,7 +5643,7 @@ const FunctionInvocation$1 = {
5662
5643
  message.classHash = object.classHash !== void 0 && object.classHash !== null ? FieldElement.fromPartial(object.classHash) : void 0;
5663
5644
  message.callType = object.callType ?? 0;
5664
5645
  message.result = object.result?.map((e) => FieldElement.fromPartial(e)) || [];
5665
- message.calls = object.calls?.map((e) => FunctionInvocation$1.fromPartial(e)) || [];
5646
+ message.calls = object.calls?.map((e) => FunctionInvocation.fromPartial(e)) || [];
5666
5647
  message.events = object.events?.map((e) => e) || [];
5667
5648
  message.messages = object.messages?.map((e) => e) || [];
5668
5649
  return message;
@@ -5833,7 +5814,7 @@ const data = {
5833
5814
  ExecutionSucceeded: ExecutionSucceeded$1,
5834
5815
  FeePayment: FeePayment$1,
5835
5816
  FunctionCall: FunctionCall,
5836
- FunctionInvocation: FunctionInvocation$1,
5817
+ FunctionInvocation: FunctionInvocation,
5837
5818
  InvokeTransactionReceipt: InvokeTransactionReceipt$1,
5838
5819
  InvokeTransactionTrace: InvokeTransactionTrace$1,
5839
5820
  InvokeTransactionV0: InvokeTransactionV0$1,
@@ -7632,745 +7613,642 @@ const index = {
7632
7613
  filter: filter
7633
7614
  };
7634
7615
 
7635
- const ResourcePrice = Schema.Struct({
7636
- priceInFri: Schema.optional(FieldElement$1),
7637
- priceInWei: Schema.optional(FieldElement$1)
7616
+ const ResourcePrice = MessageCodec({
7617
+ priceInFri: OptionalCodec(FieldElement$1),
7618
+ priceInWei: OptionalCodec(FieldElement$1)
7638
7619
  });
7639
- const L1DataAvailabilityMode = Schema.transform(
7640
- Schema.Enums(L1DataAvailabilityMode$1),
7641
- Schema.Literal("blob", "calldata", "unknown"),
7642
- {
7643
- decode(value) {
7644
- const enumMap = {
7645
- [L1DataAvailabilityMode$1.CALLDATA]: "calldata",
7646
- [L1DataAvailabilityMode$1.BLOB]: "blob",
7647
- [L1DataAvailabilityMode$1.UNSPECIFIED]: "unknown",
7648
- [L1DataAvailabilityMode$1.UNRECOGNIZED]: "unknown"
7649
- };
7650
- return enumMap[value] ?? "unknown";
7651
- },
7652
- encode(value) {
7653
- throw new Error("encode: not implemented");
7654
- }
7620
+ const L1DataAvailabilityMode = {
7621
+ encode(x) {
7622
+ switch (x) {
7623
+ case "calldata":
7624
+ return L1DataAvailabilityMode$1.CALLDATA;
7625
+ case "blob":
7626
+ return L1DataAvailabilityMode$1.BLOB;
7627
+ case "unknown":
7628
+ return L1DataAvailabilityMode$1.UNSPECIFIED;
7629
+ default:
7630
+ return L1DataAvailabilityMode$1.UNRECOGNIZED;
7631
+ }
7632
+ },
7633
+ decode(p) {
7634
+ const enumMap = {
7635
+ [L1DataAvailabilityMode$1.CALLDATA]: "calldata",
7636
+ [L1DataAvailabilityMode$1.BLOB]: "blob",
7637
+ [L1DataAvailabilityMode$1.UNSPECIFIED]: "unknown",
7638
+ [L1DataAvailabilityMode$1.UNRECOGNIZED]: "unknown"
7639
+ };
7640
+ return enumMap[p] ?? "unknown";
7655
7641
  }
7656
- );
7657
- const TransactionStatus = Schema.transform(
7658
- Schema.Enums(TransactionStatus$1),
7659
- Schema.Literal("unknown", "succeeded", "reverted"),
7660
- {
7661
- decode(value) {
7662
- const enumMap = {
7663
- [TransactionStatus$1.SUCCEEDED]: "succeeded",
7664
- [TransactionStatus$1.REVERTED]: "reverted",
7665
- [TransactionStatus$1.UNSPECIFIED]: "unknown",
7666
- [TransactionStatus$1.UNRECOGNIZED]: "unknown"
7667
- };
7668
- return enumMap[value] ?? "unknown";
7669
- },
7670
- encode(value) {
7671
- throw new Error("encode: not implemented");
7672
- }
7642
+ };
7643
+ const TransactionStatus = {
7644
+ encode(x) {
7645
+ switch (x) {
7646
+ case "succeeded":
7647
+ return TransactionStatus$1.SUCCEEDED;
7648
+ case "reverted":
7649
+ return TransactionStatus$1.REVERTED;
7650
+ case "unknown":
7651
+ return TransactionStatus$1.UNSPECIFIED;
7652
+ default:
7653
+ return TransactionStatus$1.UNRECOGNIZED;
7654
+ }
7655
+ },
7656
+ decode(p) {
7657
+ const enumMap = {
7658
+ [TransactionStatus$1.SUCCEEDED]: "succeeded",
7659
+ [TransactionStatus$1.REVERTED]: "reverted",
7660
+ [TransactionStatus$1.UNSPECIFIED]: "unknown",
7661
+ [TransactionStatus$1.UNRECOGNIZED]: "unknown"
7662
+ };
7663
+ return enumMap[p] ?? "unknown";
7673
7664
  }
7674
- );
7675
- const U128 = Schema.transform(
7676
- Schema.Struct({
7677
- x0: Schema.BigIntFromSelf,
7678
- x1: Schema.BigIntFromSelf
7679
- }),
7680
- Schema.BigIntFromSelf,
7681
- {
7682
- decode(value) {
7683
- const low = value.x0.toString(16).padStart(16, "0");
7684
- const high = value.x1.toString(16).padStart(16, "0");
7685
- return BigInt(`0x${low}${high}`);
7686
- },
7687
- encode(value) {
7688
- throw new Error("encode: not implemented");
7689
- }
7665
+ };
7666
+ const U128 = {
7667
+ // TODO: double check if this is correct
7668
+ encode(x) {
7669
+ const low = x.toString(16).padStart(16, "0");
7670
+ const high = (x >> 128n).toString(16).padStart(16, "0");
7671
+ return { x0: BigInt(`0x${low}`), x1: BigInt(`0x${high}`) };
7672
+ },
7673
+ decode(p) {
7674
+ const low = (p.x0 ?? 0n).toString(16).padStart(16, "0");
7675
+ const high = (p.x1 ?? 0n).toString(16).padStart(16, "0");
7676
+ return BigInt(`0x${low}${high}`);
7690
7677
  }
7691
- );
7692
- const ResourceBounds = Schema.Struct({
7693
- maxAmount: Schema.BigIntFromSelf,
7694
- maxPricePerUnit: U128
7678
+ };
7679
+ const ResourceBounds = MessageCodec({
7680
+ maxAmount: RequiredCodec(BigIntCodec),
7681
+ maxPricePerUnit: RequiredCodec(U128)
7695
7682
  });
7696
- const ResourceBoundsMapping = Schema.Struct({
7697
- l1Gas: ResourceBounds,
7698
- l2Gas: ResourceBounds
7683
+ const ResourceBoundsMapping = MessageCodec({
7684
+ l1Gas: RequiredCodec(ResourceBounds),
7685
+ l2Gas: RequiredCodec(ResourceBounds)
7699
7686
  });
7700
- const DataAvailabilityMode = Schema.transform(
7701
- Schema.Enums(DataAvailabilityMode$1),
7702
- Schema.Literal("l1", "l2", "unknown"),
7703
- {
7704
- decode(value) {
7705
- const enumMap = {
7706
- [DataAvailabilityMode$1.L1]: "l1",
7707
- [DataAvailabilityMode$1.L2]: "l2",
7708
- [DataAvailabilityMode$1.UNSPECIFIED]: "unknown",
7709
- [DataAvailabilityMode$1.UNRECOGNIZED]: "unknown"
7710
- };
7711
- return enumMap[value] ?? "unknown";
7712
- },
7713
- encode(value) {
7714
- throw new Error("encode: not implemented");
7715
- }
7687
+ const DataAvailabilityMode = {
7688
+ encode(x) {
7689
+ switch (x) {
7690
+ case "l1":
7691
+ return DataAvailabilityMode$1.L1;
7692
+ case "l2":
7693
+ return DataAvailabilityMode$1.L2;
7694
+ case "unknown":
7695
+ return DataAvailabilityMode$1.UNSPECIFIED;
7696
+ default:
7697
+ return DataAvailabilityMode$1.UNRECOGNIZED;
7698
+ }
7699
+ },
7700
+ decode(p) {
7701
+ const enumMap = {
7702
+ [DataAvailabilityMode$1.L1]: "l1",
7703
+ [DataAvailabilityMode$1.L2]: "l2",
7704
+ [DataAvailabilityMode$1.UNSPECIFIED]: "unknown",
7705
+ [DataAvailabilityMode$1.UNRECOGNIZED]: "unknown"
7706
+ };
7707
+ return enumMap[p] ?? "unknown";
7716
7708
  }
7717
- );
7718
- const BlockHeader = Schema.Struct({
7719
- blockHash: Schema.optional(FieldElement$1),
7720
- parentBlockHash: FieldElement$1,
7721
- blockNumber: Schema.BigIntFromSelf,
7722
- sequencerAddress: FieldElement$1,
7723
- newRoot: Schema.optional(FieldElement$1),
7724
- timestamp: Schema.DateFromSelf,
7725
- starknetVersion: Schema.String,
7726
- l1GasPrice: ResourcePrice,
7727
- l1DataGasPrice: ResourcePrice,
7728
- l1DataAvailabilityMode: L1DataAvailabilityMode
7709
+ };
7710
+ const BlockHeader = MessageCodec({
7711
+ blockHash: RequiredCodec(FieldElement$1),
7712
+ parentBlockHash: RequiredCodec(FieldElement$1),
7713
+ blockNumber: RequiredCodec(BigIntCodec),
7714
+ sequencerAddress: RequiredCodec(FieldElement$1),
7715
+ newRoot: OptionalCodec(FieldElement$1),
7716
+ timestamp: RequiredCodec(DateCodec),
7717
+ starknetVersion: RequiredCodec(StringCodec),
7718
+ l1GasPrice: RequiredCodec(ResourcePrice),
7719
+ l1DataGasPrice: RequiredCodec(ResourcePrice),
7720
+ l1DataAvailabilityMode: RequiredCodec(L1DataAvailabilityMode)
7729
7721
  });
7730
- const TransactionMeta = Schema.Struct({
7731
- transactionIndex: Schema.Number,
7732
- transactionHash: FieldElement$1,
7733
- transactionStatus: TransactionStatus
7722
+ const TransactionMeta = MessageCodec({
7723
+ transactionIndex: RequiredCodec(NumberCodec),
7724
+ transactionHash: RequiredCodec(FieldElement$1),
7725
+ transactionStatus: RequiredCodec(TransactionStatus)
7734
7726
  });
7735
- const InvokeTransactionV0 = Schema.Struct({
7736
- _tag: tag("invokeV0"),
7737
- invokeV0: Schema.Struct({
7738
- maxFee: FieldElement$1,
7739
- signature: Schema.Array(FieldElement$1),
7740
- contractAddress: FieldElement$1,
7741
- entryPointSelector: FieldElement$1,
7742
- calldata: Schema.Array(FieldElement$1)
7743
- })
7727
+ const InvokeTransactionV0 = MessageCodec({
7728
+ maxFee: RequiredCodec(FieldElement$1),
7729
+ signature: ArrayCodec(FieldElement$1),
7730
+ contractAddress: RequiredCodec(FieldElement$1),
7731
+ entryPointSelector: RequiredCodec(FieldElement$1),
7732
+ calldata: ArrayCodec(FieldElement$1)
7744
7733
  });
7745
- const InvokeTransactionV1 = Schema.Struct({
7746
- _tag: tag("invokeV1"),
7747
- invokeV1: Schema.Struct({
7748
- senderAddress: FieldElement$1,
7749
- calldata: Schema.Array(FieldElement$1),
7750
- maxFee: FieldElement$1,
7751
- signature: Schema.Array(FieldElement$1),
7752
- nonce: FieldElement$1
7753
- })
7734
+ const InvokeTransactionV1 = MessageCodec({
7735
+ senderAddress: RequiredCodec(FieldElement$1),
7736
+ calldata: ArrayCodec(FieldElement$1),
7737
+ maxFee: RequiredCodec(FieldElement$1),
7738
+ signature: ArrayCodec(FieldElement$1),
7739
+ nonce: RequiredCodec(FieldElement$1)
7754
7740
  });
7755
- const InvokeTransactionV3 = Schema.Struct({
7756
- _tag: tag("invokeV3"),
7757
- invokeV3: Schema.Struct({
7758
- senderAddress: FieldElement$1,
7759
- calldata: Schema.Array(FieldElement$1),
7760
- signature: Schema.Array(FieldElement$1),
7761
- nonce: FieldElement$1,
7762
- resourceBounds: ResourceBoundsMapping,
7763
- tip: Schema.BigIntFromSelf,
7764
- paymasterData: Schema.Array(FieldElement$1),
7765
- accountDeploymentData: Schema.Array(FieldElement$1),
7766
- nonceDataAvailabilityMode: DataAvailabilityMode,
7767
- feeDataAvailabilityMode: DataAvailabilityMode
7768
- })
7741
+ const InvokeTransactionV3 = MessageCodec({
7742
+ senderAddress: RequiredCodec(FieldElement$1),
7743
+ calldata: ArrayCodec(FieldElement$1),
7744
+ signature: ArrayCodec(FieldElement$1),
7745
+ nonce: RequiredCodec(FieldElement$1),
7746
+ resourceBounds: RequiredCodec(ResourceBoundsMapping),
7747
+ tip: RequiredCodec(BigIntCodec),
7748
+ paymasterData: ArrayCodec(FieldElement$1),
7749
+ accountDeploymentData: ArrayCodec(FieldElement$1),
7750
+ nonceDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),
7751
+ feeDataAvailabilityMode: RequiredCodec(DataAvailabilityMode)
7769
7752
  });
7770
- const L1HandlerTransaction = Schema.Struct({
7771
- _tag: tag("l1Handler"),
7772
- l1Handler: Schema.Struct({
7773
- nonce: Schema.BigIntFromSelf,
7774
- contractAddress: FieldElement$1,
7775
- entryPointSelector: FieldElement$1,
7776
- calldata: Schema.Array(FieldElement$1)
7777
- })
7753
+ const L1HandlerTransaction = MessageCodec({
7754
+ nonce: RequiredCodec(BigIntCodec),
7755
+ contractAddress: RequiredCodec(FieldElement$1),
7756
+ entryPointSelector: RequiredCodec(FieldElement$1),
7757
+ calldata: ArrayCodec(FieldElement$1)
7778
7758
  });
7779
- const DeployTransaction = Schema.Struct({
7780
- _tag: tag("deploy"),
7781
- deploy: Schema.Struct({
7782
- contractAddressSalt: FieldElement$1,
7783
- constructorCalldata: Schema.Array(FieldElement$1),
7784
- classHash: FieldElement$1
7785
- })
7759
+ const DeployTransaction = MessageCodec({
7760
+ contractAddressSalt: RequiredCodec(FieldElement$1),
7761
+ constructorCalldata: ArrayCodec(FieldElement$1),
7762
+ classHash: RequiredCodec(FieldElement$1)
7786
7763
  });
7787
- const DeclareTransactionV0 = Schema.Struct({
7788
- _tag: tag("declareV0"),
7789
- declareV0: Schema.Struct({
7790
- senderAddress: FieldElement$1,
7791
- maxFee: FieldElement$1,
7792
- signature: Schema.Array(FieldElement$1),
7793
- classHash: FieldElement$1
7794
- })
7764
+ const DeclareTransactionV0 = MessageCodec({
7765
+ senderAddress: RequiredCodec(FieldElement$1),
7766
+ maxFee: RequiredCodec(FieldElement$1),
7767
+ signature: ArrayCodec(FieldElement$1),
7768
+ classHash: RequiredCodec(FieldElement$1)
7795
7769
  });
7796
- const DeclareTransactionV1 = Schema.Struct({
7797
- _tag: tag("declareV1"),
7798
- declareV1: Schema.Struct({
7799
- senderAddress: FieldElement$1,
7800
- maxFee: FieldElement$1,
7801
- signature: Schema.Array(FieldElement$1),
7802
- nonce: FieldElement$1,
7803
- classHash: FieldElement$1
7804
- })
7770
+ const DeclareTransactionV1 = MessageCodec({
7771
+ senderAddress: RequiredCodec(FieldElement$1),
7772
+ maxFee: RequiredCodec(FieldElement$1),
7773
+ signature: ArrayCodec(FieldElement$1),
7774
+ nonce: RequiredCodec(FieldElement$1),
7775
+ classHash: RequiredCodec(FieldElement$1)
7805
7776
  });
7806
- const DeclareTransactionV2 = Schema.Struct({
7807
- _tag: tag("declareV2"),
7808
- declareV2: Schema.Struct({
7809
- senderAddress: FieldElement$1,
7810
- compiledClassHash: FieldElement$1,
7811
- maxFee: FieldElement$1,
7812
- signature: Schema.Array(FieldElement$1),
7813
- nonce: FieldElement$1,
7814
- classHash: FieldElement$1
7815
- })
7777
+ const DeclareTransactionV2 = MessageCodec({
7778
+ senderAddress: RequiredCodec(FieldElement$1),
7779
+ compiledClassHash: RequiredCodec(FieldElement$1),
7780
+ maxFee: RequiredCodec(FieldElement$1),
7781
+ signature: ArrayCodec(FieldElement$1),
7782
+ nonce: RequiredCodec(FieldElement$1),
7783
+ classHash: RequiredCodec(FieldElement$1)
7816
7784
  });
7817
- const DeclareTransactionV3 = Schema.Struct({
7818
- _tag: tag("declareV3"),
7819
- declareV3: Schema.Struct({
7820
- senderAddress: FieldElement$1,
7821
- compiledClassHash: FieldElement$1,
7822
- signature: Schema.Array(FieldElement$1),
7823
- nonce: FieldElement$1,
7824
- classHash: FieldElement$1,
7825
- resourceBounds: ResourceBoundsMapping,
7826
- tip: Schema.BigIntFromSelf,
7827
- paymasterData: Schema.Array(FieldElement$1),
7828
- accountDeploymentData: Schema.Array(FieldElement$1),
7829
- nonceDataAvailabilityMode: DataAvailabilityMode,
7830
- feeDataAvailabilityMode: DataAvailabilityMode
7831
- })
7785
+ const DeclareTransactionV3 = MessageCodec({
7786
+ senderAddress: RequiredCodec(FieldElement$1),
7787
+ compiledClassHash: RequiredCodec(FieldElement$1),
7788
+ signature: ArrayCodec(FieldElement$1),
7789
+ nonce: RequiredCodec(FieldElement$1),
7790
+ classHash: RequiredCodec(FieldElement$1),
7791
+ resourceBounds: RequiredCodec(ResourceBoundsMapping),
7792
+ tip: RequiredCodec(BigIntCodec),
7793
+ paymasterData: ArrayCodec(FieldElement$1),
7794
+ accountDeploymentData: ArrayCodec(FieldElement$1),
7795
+ nonceDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),
7796
+ feeDataAvailabilityMode: RequiredCodec(DataAvailabilityMode)
7832
7797
  });
7833
- const DeployAccountTransactionV1 = Schema.Struct({
7834
- _tag: tag("deployAccountV1"),
7835
- deployAccountV1: Schema.Struct({
7836
- maxFee: FieldElement$1,
7837
- signature: Schema.Array(FieldElement$1),
7838
- nonce: FieldElement$1,
7839
- contractAddressSalt: FieldElement$1,
7840
- constructorCalldata: Schema.Array(FieldElement$1),
7841
- classHash: FieldElement$1
7842
- })
7798
+ const DeployAccountTransactionV1 = MessageCodec({
7799
+ maxFee: RequiredCodec(FieldElement$1),
7800
+ signature: ArrayCodec(FieldElement$1),
7801
+ nonce: RequiredCodec(FieldElement$1),
7802
+ contractAddressSalt: RequiredCodec(FieldElement$1),
7803
+ constructorCalldata: ArrayCodec(FieldElement$1),
7804
+ classHash: RequiredCodec(FieldElement$1)
7843
7805
  });
7844
- const DeployAccountTransactionV3 = Schema.Struct({
7845
- _tag: tag("deployAccountV3"),
7846
- deployAccountV3: Schema.Struct({
7847
- signature: Schema.Array(FieldElement$1),
7848
- nonce: FieldElement$1,
7849
- contractAddressSalt: FieldElement$1,
7850
- constructorCalldata: Schema.Array(FieldElement$1),
7851
- classHash: FieldElement$1,
7852
- resourceBounds: ResourceBoundsMapping,
7853
- tip: Schema.BigIntFromSelf,
7854
- paymasterData: Schema.Array(FieldElement$1),
7855
- nonceDataAvailabilityMode: DataAvailabilityMode,
7856
- feeDataAvailabilityMode: DataAvailabilityMode
7857
- })
7806
+ const DeployAccountTransactionV3 = MessageCodec({
7807
+ signature: ArrayCodec(FieldElement$1),
7808
+ nonce: RequiredCodec(FieldElement$1),
7809
+ contractAddressSalt: RequiredCodec(FieldElement$1),
7810
+ constructorCalldata: ArrayCodec(FieldElement$1),
7811
+ classHash: RequiredCodec(FieldElement$1),
7812
+ resourceBounds: RequiredCodec(ResourceBoundsMapping),
7813
+ tip: RequiredCodec(BigIntCodec),
7814
+ paymasterData: ArrayCodec(FieldElement$1),
7815
+ nonceDataAvailabilityMode: RequiredCodec(DataAvailabilityMode),
7816
+ feeDataAvailabilityMode: RequiredCodec(DataAvailabilityMode)
7858
7817
  });
7859
- const Transaction = Schema.Struct({
7860
- filterIds: Schema.Array(Schema.Number),
7861
- meta: TransactionMeta,
7862
- transaction: Schema.Union(
7863
- InvokeTransactionV0,
7864
- InvokeTransactionV1,
7865
- InvokeTransactionV3,
7866
- L1HandlerTransaction,
7867
- DeployTransaction,
7868
- DeclareTransactionV0,
7869
- DeclareTransactionV1,
7870
- DeclareTransactionV2,
7871
- DeclareTransactionV3,
7872
- DeployAccountTransactionV1,
7873
- DeployAccountTransactionV3
7818
+ const Transaction = MessageCodec({
7819
+ filterIds: ArrayCodec(NumberCodec),
7820
+ meta: RequiredCodec(TransactionMeta),
7821
+ transaction: RequiredCodec(
7822
+ OneOfCodec({
7823
+ invokeV0: InvokeTransactionV0,
7824
+ invokeV1: InvokeTransactionV1,
7825
+ invokeV3: InvokeTransactionV3,
7826
+ l1Handler: L1HandlerTransaction,
7827
+ deploy: DeployTransaction,
7828
+ declareV0: DeclareTransactionV0,
7829
+ declareV1: DeclareTransactionV1,
7830
+ declareV2: DeclareTransactionV2,
7831
+ declareV3: DeclareTransactionV3,
7832
+ deployAccountV1: DeployAccountTransactionV1,
7833
+ deployAccountV3: DeployAccountTransactionV3
7834
+ })
7874
7835
  )
7875
7836
  });
7876
- const PriceUnit = Schema.transform(
7877
- Schema.Enums(PriceUnit$1),
7878
- Schema.Literal("wei", "fri", "unknown"),
7879
- {
7880
- decode(value) {
7881
- const enumMap = {
7882
- [PriceUnit$1.WEI]: "wei",
7883
- [PriceUnit$1.FRI]: "fri",
7884
- [PriceUnit$1.UNSPECIFIED]: "unknown",
7885
- [PriceUnit$1.UNRECOGNIZED]: "unknown"
7886
- };
7887
- return enumMap[value] ?? "unknown";
7888
- },
7889
- encode(value) {
7890
- throw new Error("encode: not implemented");
7891
- }
7837
+ const PriceUnit = {
7838
+ encode(x) {
7839
+ switch (x) {
7840
+ case "wei":
7841
+ return PriceUnit$1.WEI;
7842
+ case "fri":
7843
+ return PriceUnit$1.FRI;
7844
+ case "unknown":
7845
+ return PriceUnit$1.UNSPECIFIED;
7846
+ default:
7847
+ return PriceUnit$1.UNRECOGNIZED;
7848
+ }
7849
+ },
7850
+ decode(p) {
7851
+ const enumMap = {
7852
+ [PriceUnit$1.WEI]: "wei",
7853
+ [PriceUnit$1.FRI]: "fri",
7854
+ [PriceUnit$1.UNSPECIFIED]: "unknown",
7855
+ [PriceUnit$1.UNRECOGNIZED]: "unknown"
7856
+ };
7857
+ return enumMap[p] ?? "unknown";
7892
7858
  }
7893
- );
7894
- const FeePayment = Schema.Struct({
7895
- amount: FieldElement$1,
7896
- unit: PriceUnit
7897
- });
7898
- const ComputationResources = Schema.Struct({
7899
- steps: Schema.BigIntFromSelf,
7900
- memoryHoles: Schema.optional(Schema.BigIntFromSelf),
7901
- rangeCheckBuiltinApplications: Schema.optional(Schema.BigIntFromSelf),
7902
- pedersenBuiltinApplications: Schema.optional(Schema.BigIntFromSelf),
7903
- poseidonBuiltinApplications: Schema.optional(Schema.BigIntFromSelf),
7904
- ecOpBuiltinApplications: Schema.optional(Schema.BigIntFromSelf),
7905
- ecdsaBuiltinApplications: Schema.optional(Schema.BigIntFromSelf),
7906
- bitwiseBuiltinApplications: Schema.optional(Schema.BigIntFromSelf),
7907
- keccakBuiltinApplications: Schema.optional(Schema.BigIntFromSelf),
7908
- segmentArenaBuiltin: Schema.optional(Schema.BigIntFromSelf)
7909
- });
7910
- const DataAvailabilityResources = Schema.Struct({
7911
- l1Gas: Schema.BigIntFromSelf,
7912
- l1DataGas: Schema.BigIntFromSelf
7913
- });
7914
- const ExecutionResources = Schema.Struct({
7915
- computation: ComputationResources,
7916
- dataAvailability: DataAvailabilityResources
7859
+ };
7860
+ const FeePayment = MessageCodec({
7861
+ amount: RequiredCodec(FieldElement$1),
7862
+ unit: RequiredCodec(PriceUnit)
7917
7863
  });
7918
- const ExecutionSucceeded = Schema.Struct({
7919
- _tag: tag("succeeded"),
7920
- succeeded: Schema.Struct({})
7864
+ const ComputationResources = MessageCodec({
7865
+ steps: RequiredCodec(BigIntCodec),
7866
+ memoryHoles: OptionalCodec(BigIntCodec),
7867
+ rangeCheckBuiltinApplications: OptionalCodec(BigIntCodec),
7868
+ pedersenBuiltinApplications: OptionalCodec(BigIntCodec),
7869
+ poseidonBuiltinApplications: OptionalCodec(BigIntCodec),
7870
+ ecOpBuiltinApplications: OptionalCodec(BigIntCodec),
7871
+ ecdsaBuiltinApplications: OptionalCodec(BigIntCodec),
7872
+ bitwiseBuiltinApplications: OptionalCodec(BigIntCodec),
7873
+ keccakBuiltinApplications: OptionalCodec(BigIntCodec),
7874
+ segmentArenaBuiltin: OptionalCodec(BigIntCodec)
7921
7875
  });
7922
- const ExecutionReverted = Schema.Struct({
7923
- _tag: tag("reverted"),
7924
- reverted: Schema.Struct({
7925
- reason: Schema.optional(Schema.String)
7926
- })
7876
+ const DataAvailabilityResources = MessageCodec({
7877
+ l1Gas: RequiredCodec(BigIntCodec),
7878
+ l1DataGas: RequiredCodec(BigIntCodec)
7927
7879
  });
7928
- const TransactionReceiptMeta = Schema.Struct({
7929
- transactionIndex: Schema.Number,
7930
- transactionHash: FieldElement$1,
7931
- actualFee: FeePayment,
7932
- executionResources: ExecutionResources,
7933
- executionResult: Schema.Union(ExecutionSucceeded, ExecutionReverted)
7880
+ const ExecutionResources = MessageCodec({
7881
+ computation: RequiredCodec(ComputationResources),
7882
+ dataAvailability: RequiredCodec(DataAvailabilityResources)
7934
7883
  });
7935
- const InvokeTransactionReceipt = Schema.Struct({
7936
- _tag: tag("invoke"),
7937
- invoke: Schema.Struct({})
7884
+ const ExecutionSucceeded = MessageCodec({});
7885
+ const ExecutionReverted = MessageCodec({
7886
+ reason: OptionalCodec(StringCodec)
7938
7887
  });
7939
- const L1HandlerTransactionReceipt = Schema.Struct({
7940
- _tag: tag("l1Handler"),
7941
- l1Handler: Schema.Struct({
7942
- messageHash: Schema.Uint8ArrayFromSelf
7943
- })
7888
+ const TransactionReceiptMeta = MessageCodec({
7889
+ transactionIndex: RequiredCodec(NumberCodec),
7890
+ transactionHash: RequiredCodec(FieldElement$1),
7891
+ actualFee: RequiredCodec(FeePayment),
7892
+ executionResources: RequiredCodec(ExecutionResources),
7893
+ executionResult: RequiredCodec(
7894
+ OneOfCodec({
7895
+ succeeded: ExecutionSucceeded,
7896
+ reverted: ExecutionReverted
7897
+ })
7898
+ )
7944
7899
  });
7945
- const DeclareTransactionReceipt = Schema.Struct({
7946
- _tag: tag("declare"),
7947
- declare: Schema.Struct({})
7900
+ const InvokeTransactionReceipt = MessageCodec({});
7901
+ const L1HandlerTransactionReceipt = MessageCodec({
7902
+ messageHash: RequiredCodec(Uint8ArrayCodec)
7948
7903
  });
7949
- const DeployTransactionReceipt = Schema.Struct({
7950
- _tag: tag("deploy"),
7951
- deploy: Schema.Struct({
7952
- contractAddress: FieldElement$1
7953
- })
7904
+ const DeclareTransactionReceipt = MessageCodec({});
7905
+ const DeployTransactionReceipt = MessageCodec({
7906
+ contractAddress: RequiredCodec(FieldElement$1)
7954
7907
  });
7955
- const DeployAccountTransactionReceipt = Schema.Struct({
7956
- _tag: tag("deployAccount"),
7957
- deployAccount: Schema.Struct({
7958
- contractAddress: FieldElement$1
7959
- })
7908
+ const DeployAccountTransactionReceipt = MessageCodec({
7909
+ contractAddress: RequiredCodec(FieldElement$1)
7960
7910
  });
7961
- const TransactionReceipt = Schema.Struct({
7962
- filterIds: Schema.Array(Schema.Number),
7963
- meta: TransactionReceiptMeta,
7964
- receipt: Schema.Union(
7965
- InvokeTransactionReceipt,
7966
- L1HandlerTransactionReceipt,
7967
- DeclareTransactionReceipt,
7968
- DeployTransactionReceipt,
7969
- DeployAccountTransactionReceipt
7911
+ const TransactionReceipt = MessageCodec({
7912
+ filterIds: ArrayCodec(NumberCodec),
7913
+ meta: RequiredCodec(TransactionReceiptMeta),
7914
+ receipt: RequiredCodec(
7915
+ OneOfCodec({
7916
+ invoke: InvokeTransactionReceipt,
7917
+ l1Handler: L1HandlerTransactionReceipt,
7918
+ declare: DeclareTransactionReceipt,
7919
+ deploy: DeployTransactionReceipt,
7920
+ deployAccount: DeployAccountTransactionReceipt
7921
+ })
7970
7922
  )
7971
7923
  });
7972
- const Event = Schema.Struct({
7973
- filterIds: Schema.Array(Schema.Number),
7974
- address: FieldElement$1,
7975
- keys: Schema.Array(FieldElement$1),
7976
- data: Schema.Array(FieldElement$1),
7977
- eventIndex: Schema.Number,
7978
- transactionIndex: Schema.Number,
7979
- transactionHash: FieldElement$1,
7980
- transactionStatus: TransactionStatus,
7981
- eventIndexInTransaction: Schema.Number
7924
+ const Event = MessageCodec({
7925
+ filterIds: ArrayCodec(NumberCodec),
7926
+ address: RequiredCodec(FieldElement$1),
7927
+ keys: ArrayCodec(FieldElement$1),
7928
+ data: ArrayCodec(FieldElement$1),
7929
+ eventIndex: RequiredCodec(NumberCodec),
7930
+ transactionIndex: RequiredCodec(NumberCodec),
7931
+ transactionHash: RequiredCodec(FieldElement$1),
7932
+ transactionStatus: RequiredCodec(TransactionStatus),
7933
+ eventIndexInTransaction: RequiredCodec(NumberCodec)
7982
7934
  });
7983
- const MessageToL1 = Schema.Struct({
7984
- filterIds: Schema.Array(Schema.Number),
7985
- fromAddress: FieldElement$1,
7986
- toAddress: FieldElement$1,
7987
- payload: Schema.Array(FieldElement$1),
7988
- messageIndex: Schema.Number,
7989
- transactionIndex: Schema.Number,
7990
- transactionHash: FieldElement$1,
7991
- transactionStatus: TransactionStatus,
7992
- messageIndexInTransaction: Schema.Number
7935
+ const MessageToL1 = MessageCodec({
7936
+ filterIds: ArrayCodec(NumberCodec),
7937
+ fromAddress: RequiredCodec(FieldElement$1),
7938
+ toAddress: RequiredCodec(FieldElement$1),
7939
+ payload: ArrayCodec(FieldElement$1),
7940
+ messageIndex: RequiredCodec(NumberCodec),
7941
+ transactionIndex: RequiredCodec(NumberCodec),
7942
+ transactionHash: RequiredCodec(FieldElement$1),
7943
+ transactionStatus: RequiredCodec(TransactionStatus),
7944
+ messageIndexInTransaction: RequiredCodec(NumberCodec)
7993
7945
  });
7994
- const StorageEntry = Schema.Struct({
7995
- key: FieldElement$1,
7996
- value: FieldElement$1
7946
+ const StorageEntry = MessageCodec({
7947
+ key: RequiredCodec(FieldElement$1),
7948
+ value: RequiredCodec(FieldElement$1)
7997
7949
  });
7998
- const StorageDiff = Schema.Struct({
7999
- filterIds: Schema.Array(Schema.Number),
8000
- contractAddress: FieldElement$1,
8001
- storageEntries: Schema.Array(StorageEntry)
7950
+ const StorageDiff = MessageCodec({
7951
+ filterIds: ArrayCodec(NumberCodec),
7952
+ contractAddress: RequiredCodec(FieldElement$1),
7953
+ storageEntries: ArrayCodec(StorageEntry)
8002
7954
  });
8003
- const DeclaredClass = Schema.Struct({
8004
- _tag: tag("declaredClass"),
8005
- declaredClass: Schema.Struct({
8006
- classHash: Schema.optional(FieldElement$1),
8007
- compiledClassHash: Schema.optional(FieldElement$1)
8008
- })
7955
+ const DeclaredClass = MessageCodec({
7956
+ classHash: OptionalCodec(FieldElement$1),
7957
+ compiledClassHash: OptionalCodec(FieldElement$1)
8009
7958
  });
8010
- const ReplacedClass = Schema.Struct({
8011
- _tag: tag("replacedClass"),
8012
- replacedClass: Schema.Struct({
8013
- contractAddress: Schema.optional(FieldElement$1),
8014
- classHash: Schema.optional(FieldElement$1)
8015
- })
7959
+ const ReplacedClass = MessageCodec({
7960
+ contractAddress: OptionalCodec(FieldElement$1),
7961
+ classHash: OptionalCodec(FieldElement$1)
8016
7962
  });
8017
- const DeployedContract = Schema.Struct({
8018
- _tag: tag("deployedContract"),
8019
- deployedContract: Schema.Struct({
8020
- contractAddress: Schema.optional(FieldElement$1),
8021
- classHash: Schema.optional(FieldElement$1)
8022
- })
7963
+ const DeployedContract = MessageCodec({
7964
+ contractAddress: OptionalCodec(FieldElement$1),
7965
+ classHash: OptionalCodec(FieldElement$1)
8023
7966
  });
8024
- const ContractChange = Schema.Struct({
8025
- filterIds: Schema.Array(Schema.Number),
8026
- change: Schema.Union(DeclaredClass, ReplacedClass, DeployedContract)
7967
+ const ContractChange = MessageCodec({
7968
+ filterIds: ArrayCodec(NumberCodec),
7969
+ change: RequiredCodec(
7970
+ OneOfCodec({
7971
+ declaredClass: DeclaredClass,
7972
+ replacedClass: ReplacedClass,
7973
+ deployedContract: DeployedContract
7974
+ })
7975
+ )
8027
7976
  });
8028
- const NonceUpdate = Schema.Struct({
8029
- filterIds: Schema.Array(Schema.Number),
8030
- contractAddress: FieldElement$1,
8031
- nonce: FieldElement$1
7977
+ const NonceUpdate = MessageCodec({
7978
+ filterIds: ArrayCodec(NumberCodec),
7979
+ contractAddress: RequiredCodec(FieldElement$1),
7980
+ nonce: RequiredCodec(FieldElement$1)
8032
7981
  });
8033
- const CallType = Schema.transform(
8034
- Schema.Enums(CallType$1),
8035
- Schema.Literal("libraryCall", "call", "delegate", "unknown"),
8036
- {
8037
- decode(value) {
8038
- const enumMap = {
8039
- [CallType$1.LIBRARY_CALL]: "libraryCall",
8040
- [CallType$1.CALL]: "call",
8041
- [CallType$1.DELEGATE]: "delegate",
8042
- [CallType$1.UNSPECIFIED]: "unknown",
8043
- [CallType$1.UNRECOGNIZED]: "unknown"
8044
- };
8045
- return enumMap[value] ?? "unknown";
8046
- },
8047
- encode(value) {
8048
- throw new Error("encode: not implemented");
8049
- }
7982
+ const CallType = {
7983
+ encode(x) {
7984
+ switch (x) {
7985
+ case "libraryCall":
7986
+ return CallType$1.LIBRARY_CALL;
7987
+ case "call":
7988
+ return CallType$1.CALL;
7989
+ case "delegate":
7990
+ return CallType$1.DELEGATE;
7991
+ case "unknown":
7992
+ return CallType$1.UNSPECIFIED;
7993
+ default:
7994
+ return CallType$1.UNRECOGNIZED;
7995
+ }
7996
+ },
7997
+ decode(p) {
7998
+ const enumMap = {
7999
+ [CallType$1.LIBRARY_CALL]: "libraryCall",
8000
+ [CallType$1.CALL]: "call",
8001
+ [CallType$1.DELEGATE]: "delegate",
8002
+ [CallType$1.UNSPECIFIED]: "unknown",
8003
+ [CallType$1.UNRECOGNIZED]: "unknown"
8004
+ };
8005
+ return enumMap[p] ?? "unknown";
8050
8006
  }
8051
- );
8052
- class FunctionInvocation extends Schema.Class(
8053
- "FunctionInvocation"
8054
- )({
8055
- contractAddress: FieldElement$1,
8056
- entryPointSelector: FieldElement$1,
8057
- calldata: Schema.Array(FieldElement$1),
8058
- callerAddress: FieldElement$1,
8059
- classHash: FieldElement$1,
8060
- callType: CallType,
8061
- result: Schema.Array(FieldElement$1),
8062
- calls: Schema.suspend(
8063
- // biome-ignore lint/suspicious/noExplicitAny: not possible otherwise
8064
- () => Schema.Array(FunctionInvocation)
8065
- ),
8066
- events: Schema.Array(Schema.Number),
8067
- messages: Schema.Array(Schema.Number)
8068
- }) {
8069
- }
8070
- const ExecuteInvocationSuccess = Schema.Struct({
8071
- _tag: tag("success"),
8072
- success: FunctionInvocation
8007
+ };
8008
+ const _FunctionInvocationCodec = MessageCodec({
8009
+ contractAddress: RequiredCodec(FieldElement$1),
8010
+ entryPointSelector: RequiredCodec(FieldElement$1),
8011
+ calldata: ArrayCodec(FieldElement$1),
8012
+ callerAddress: RequiredCodec(FieldElement$1),
8013
+ classHash: RequiredCodec(FieldElement$1),
8014
+ callType: RequiredCodec(CallType),
8015
+ result: ArrayCodec(FieldElement$1),
8016
+ events: ArrayCodec(NumberCodec),
8017
+ messages: ArrayCodec(NumberCodec)
8073
8018
  });
8074
- const ExecuteInvocationReverted = Schema.Struct({
8075
- _tag: tag("reverted"),
8076
- reverted: Schema.Struct({
8077
- reason: Schema.optional(Schema.String)
8078
- })
8019
+ const FunctionInvocationCodec = {
8020
+ encode(x) {
8021
+ const { calls, ...rest } = x;
8022
+ const encodedCalls = calls.map(FunctionInvocationCodec.encode);
8023
+ const encodedRest = _FunctionInvocationCodec.encode(rest);
8024
+ return { calls: encodedCalls, ...encodedRest };
8025
+ },
8026
+ decode(p) {
8027
+ const { calls = [], ...rest } = p;
8028
+ const decodedCalls = calls.map(FunctionInvocationCodec.decode);
8029
+ const decodedRest = _FunctionInvocationCodec.decode(rest);
8030
+ return { ...decodedRest, calls: decodedCalls };
8031
+ }
8032
+ };
8033
+ const ExecuteInvocationSuccess = FunctionInvocationCodec;
8034
+ const ExecuteInvocationReverted = MessageCodec({
8035
+ reason: OptionalCodec(StringCodec)
8079
8036
  });
8080
- const InvokeTransactionTrace = Schema.Struct({
8081
- _tag: tag("invoke"),
8082
- invoke: Schema.Struct({
8083
- validateInvocation: Schema.optional(FunctionInvocation),
8084
- executeInvocation: Schema.Union(
8085
- ExecuteInvocationReverted,
8086
- ExecuteInvocationSuccess
8087
- ),
8088
- feeTransferInvocation: Schema.optional(FunctionInvocation)
8089
- })
8037
+ const InvokeTransactionTrace = MessageCodec({
8038
+ validateInvocation: OptionalCodec(FunctionInvocationCodec),
8039
+ executeInvocation: RequiredCodec(
8040
+ OneOfCodec({
8041
+ success: ExecuteInvocationSuccess,
8042
+ reverted: ExecuteInvocationReverted
8043
+ })
8044
+ ),
8045
+ feeTransferInvocation: OptionalCodec(FunctionInvocationCodec)
8090
8046
  });
8091
- const DeclareTransactionTrace = Schema.Struct({
8092
- _tag: tag("declare"),
8093
- declare: Schema.Struct({
8094
- validateInvocation: Schema.optional(FunctionInvocation),
8095
- feeTransferInvocation: Schema.optional(FunctionInvocation)
8096
- })
8047
+ const DeclareTransactionTrace = MessageCodec({
8048
+ validateInvocation: OptionalCodec(FunctionInvocationCodec),
8049
+ feeTransferInvocation: OptionalCodec(FunctionInvocationCodec)
8097
8050
  });
8098
- const DeployAccountTransactionTrace = Schema.Struct({
8099
- _tag: tag("deployAccount"),
8100
- deployAccount: Schema.Struct({
8101
- validateInvocation: Schema.optional(FunctionInvocation),
8102
- constructorInvocation: Schema.optional(FunctionInvocation),
8103
- feeTransferInvocation: Schema.optional(FunctionInvocation)
8104
- })
8051
+ const DeployAccountTransactionTrace = MessageCodec({
8052
+ validateInvocation: OptionalCodec(FunctionInvocationCodec),
8053
+ constructorInvocation: OptionalCodec(FunctionInvocationCodec),
8054
+ feeTransferInvocation: OptionalCodec(FunctionInvocationCodec)
8105
8055
  });
8106
- const L1HandlerTransactionTrace = Schema.Struct({
8107
- _tag: tag("l1Handler"),
8108
- l1Handler: Schema.Struct({
8109
- functionInvocation: Schema.optional(FunctionInvocation)
8110
- })
8056
+ const L1HandlerTransactionTrace = MessageCodec({
8057
+ functionInvocation: OptionalCodec(FunctionInvocationCodec)
8111
8058
  });
8112
- const TransactionTrace = Schema.Struct({
8113
- filterIds: Schema.Array(Schema.Number),
8114
- transactionIndex: Schema.Number,
8115
- transactionHash: FieldElement$1,
8116
- traceRoot: Schema.Union(
8117
- InvokeTransactionTrace,
8118
- DeclareTransactionTrace,
8119
- DeployAccountTransactionTrace,
8120
- L1HandlerTransactionTrace
8059
+ const TransactionTrace = MessageCodec({
8060
+ filterIds: ArrayCodec(NumberCodec),
8061
+ transactionIndex: RequiredCodec(NumberCodec),
8062
+ transactionHash: RequiredCodec(FieldElement$1),
8063
+ traceRoot: RequiredCodec(
8064
+ OneOfCodec({
8065
+ invoke: InvokeTransactionTrace,
8066
+ declare: DeclareTransactionTrace,
8067
+ deployAccount: DeployAccountTransactionTrace,
8068
+ l1Handler: L1HandlerTransactionTrace
8069
+ })
8121
8070
  )
8122
8071
  });
8123
- const Block = Schema.Struct({
8124
- header: BlockHeader,
8125
- transactions: Schema.Array(Transaction),
8126
- receipts: Schema.Array(TransactionReceipt),
8127
- events: Schema.Array(Event),
8128
- messages: Schema.Array(MessageToL1),
8129
- traces: Schema.Array(TransactionTrace),
8130
- storageDiffs: Schema.Array(StorageDiff),
8131
- contractChanges: Schema.Array(ContractChange),
8132
- nonceUpdates: Schema.Array(NonceUpdate)
8072
+ const Block = MessageCodec({
8073
+ header: RequiredCodec(BlockHeader),
8074
+ transactions: ArrayCodec(Transaction),
8075
+ receipts: ArrayCodec(TransactionReceipt),
8076
+ events: ArrayCodec(Event),
8077
+ messages: ArrayCodec(MessageToL1),
8078
+ traces: ArrayCodec(TransactionTrace),
8079
+ storageDiffs: ArrayCodec(StorageDiff),
8080
+ contractChanges: ArrayCodec(ContractChange),
8081
+ nonceUpdates: ArrayCodec(NonceUpdate)
8133
8082
  });
8134
- const BlockFromBytes = Schema.transform(
8135
- Schema.Uint8ArrayFromSelf,
8136
- Schema.NullOr(Block),
8137
- {
8138
- strict: false,
8139
- decode(value) {
8140
- if (value.length === 0) {
8141
- return null;
8142
- }
8143
- return Block$1.decode(value);
8144
- },
8145
- encode(value) {
8146
- if (value === null) {
8147
- return new Uint8Array();
8148
- }
8149
- return Block$1.encode(value).finish();
8150
- }
8083
+ const BlockFromBytes = {
8084
+ encode(x) {
8085
+ const block = Block.encode(x);
8086
+ return Block$1.encode(block).finish();
8087
+ },
8088
+ decode(p) {
8089
+ const block = Block$1.decode(p);
8090
+ return Block.decode(block);
8151
8091
  }
8152
- );
8092
+ };
8153
8093
 
8154
- const HeaderFilter = Schema.transform(
8155
- Schema.Enums(HeaderFilter$1),
8156
- Schema.Literal("always", "on_data", "on_data_or_on_new_block", "unknown"),
8157
- {
8158
- decode(value) {
8159
- const enumMap = {
8160
- [HeaderFilter$1.ALWAYS]: "always",
8161
- [HeaderFilter$1.ON_DATA]: "on_data",
8162
- [HeaderFilter$1.ON_DATA_OR_ON_NEW_BLOCK]: "on_data_or_on_new_block",
8163
- [HeaderFilter$1.UNSPECIFIED]: "unknown",
8164
- [HeaderFilter$1.UNRECOGNIZED]: "unknown"
8165
- };
8166
- return enumMap[value] ?? "unknown";
8167
- },
8168
- encode(value) {
8169
- switch (value) {
8170
- case "always":
8171
- return HeaderFilter$1.ALWAYS;
8172
- case "on_data":
8173
- return HeaderFilter$1.ON_DATA;
8174
- case "on_data_or_on_new_block":
8175
- return HeaderFilter$1.ON_DATA_OR_ON_NEW_BLOCK;
8176
- default:
8177
- return HeaderFilter$1.UNSPECIFIED;
8178
- }
8179
- }
8094
+ const HeaderFilter = {
8095
+ encode(x) {
8096
+ switch (x) {
8097
+ case "always":
8098
+ return HeaderFilter$1.ALWAYS;
8099
+ case "on_data":
8100
+ return HeaderFilter$1.ON_DATA;
8101
+ case "on_data_or_on_new_block":
8102
+ return HeaderFilter$1.ON_DATA_OR_ON_NEW_BLOCK;
8103
+ default:
8104
+ return HeaderFilter$1.UNSPECIFIED;
8105
+ }
8106
+ },
8107
+ decode(p) {
8108
+ const enumMap = {
8109
+ [HeaderFilter$1.ALWAYS]: "always",
8110
+ [HeaderFilter$1.ON_DATA]: "on_data",
8111
+ [HeaderFilter$1.ON_DATA_OR_ON_NEW_BLOCK]: "on_data_or_on_new_block",
8112
+ [HeaderFilter$1.UNSPECIFIED]: "unknown",
8113
+ [HeaderFilter$1.UNRECOGNIZED]: "unknown"
8114
+ };
8115
+ return enumMap[p] ?? "unknown";
8180
8116
  }
8181
- );
8182
- const Key = Schema.transform(
8183
- Schema.Struct({ value: Schema.UndefinedOr(FieldElementProto) }),
8184
- Schema.NullOr(FieldElement$1),
8185
- {
8186
- decode({ value }) {
8187
- if (value === void 0) {
8188
- return null;
8189
- }
8190
- return value;
8191
- },
8192
- encode(value) {
8193
- if (value === null) {
8194
- return { value: void 0 };
8195
- }
8196
- return { value };
8117
+ };
8118
+ const Key = {
8119
+ encode(x) {
8120
+ if (x === null) {
8121
+ return { value: void 0 };
8197
8122
  }
8198
- }
8199
- );
8200
- const TransactionStatusFilter = Schema.transform(
8201
- Schema.Enums(TransactionStatusFilter$1),
8202
- Schema.Literal("succeeded", "reverted", "all", "unknown"),
8203
- {
8204
- decode(value) {
8205
- const enumMap = {
8206
- [TransactionStatusFilter$1.SUCCEEDED]: "succeeded",
8207
- [TransactionStatusFilter$1.REVERTED]: "reverted",
8208
- [TransactionStatusFilter$1.ALL]: "all",
8209
- [TransactionStatusFilter$1.UNSPECIFIED]: "unknown",
8210
- [TransactionStatusFilter$1.UNRECOGNIZED]: "unknown"
8211
- };
8212
- return enumMap[value] ?? "unknown";
8213
- },
8214
- encode(value) {
8215
- switch (value) {
8216
- case "succeeded":
8217
- return TransactionStatusFilter$1.SUCCEEDED;
8218
- case "reverted":
8219
- return TransactionStatusFilter$1.REVERTED;
8220
- case "all":
8221
- return TransactionStatusFilter$1.ALL;
8222
- default:
8223
- return TransactionStatusFilter$1.UNSPECIFIED;
8224
- }
8123
+ return { value: FieldElement$1.encode(x) };
8124
+ },
8125
+ decode(p) {
8126
+ if (p.value === void 0) {
8127
+ return null;
8225
8128
  }
8129
+ return FieldElement$1.decode(p.value);
8226
8130
  }
8227
- );
8228
- const EventFilter = Schema.Struct({
8229
- id: Schema.optional(Schema.Number),
8230
- address: Schema.optional(FieldElement$1),
8231
- keys: Schema.optional(Schema.Array(Key)),
8232
- strict: Schema.optional(Schema.Boolean),
8233
- transactionStatus: Schema.optional(TransactionStatusFilter),
8234
- includeTransaction: Schema.optional(Schema.Boolean),
8235
- includeReceipt: Schema.optional(Schema.Boolean),
8236
- includeMessages: Schema.optional(Schema.Boolean),
8237
- includeSiblings: Schema.optional(Schema.Boolean),
8238
- includeTransactionTrace: Schema.optional(Schema.Boolean)
8239
- });
8240
- const MessageToL1Filter = Schema.Struct({
8241
- id: Schema.optional(Schema.Number),
8242
- fromAddress: Schema.optional(FieldElement$1),
8243
- toAddress: Schema.optional(FieldElement$1),
8244
- transactionStatus: Schema.optional(TransactionStatusFilter),
8245
- includeTransaction: Schema.optional(Schema.Boolean),
8246
- includeReceipt: Schema.optional(Schema.Boolean),
8247
- includeEvents: Schema.optional(Schema.Boolean),
8248
- includeTransactionTrace: Schema.optional(Schema.Boolean)
8249
- });
8250
- const InvokeTransactionV0Filter = Schema.Struct({
8251
- _tag: tag("invokeV0"),
8252
- invokeV0: Schema.Struct({})
8253
- });
8254
- const InvokeTransactionV1Filter = Schema.Struct({
8255
- _tag: tag("invokeV1"),
8256
- invokeV1: Schema.Struct({})
8257
- });
8258
- const InvokeTransactionV3Filter = Schema.Struct({
8259
- _tag: tag("invokeV3"),
8260
- invokeV3: Schema.Struct({})
8261
- });
8262
- const DeployTransactionFilter = Schema.Struct({
8263
- _tag: tag("deploy"),
8264
- deploy: Schema.Struct({})
8265
- });
8266
- const DeclareV0TransactionFilter = Schema.Struct({
8267
- _tag: tag("declareV0"),
8268
- declareV0: Schema.Struct({})
8269
- });
8270
- const DeclareV1TransactionFilter = Schema.Struct({
8271
- _tag: tag("declareV1"),
8272
- declareV1: Schema.Struct({})
8273
- });
8274
- const DeclareV2TransactionFilter = Schema.Struct({
8275
- _tag: tag("declareV2"),
8276
- declareV2: Schema.Struct({})
8277
- });
8278
- const DeclareV3TransactionFilter = Schema.Struct({
8279
- _tag: tag("declareV3"),
8280
- declareV3: Schema.Struct({})
8281
- });
8282
- const L1HandlerTransactionFilter = Schema.Struct({
8283
- _tag: tag("l1Handler"),
8284
- l1Handler: Schema.Struct({})
8285
- });
8286
- const DeployAccountV1TransactionFilter = Schema.Struct({
8287
- _tag: tag("deployAccountV1"),
8288
- deployAccountV1: Schema.Struct({})
8131
+ };
8132
+ const TransactionStatusFilter = {
8133
+ encode(x) {
8134
+ switch (x) {
8135
+ case "succeeded":
8136
+ return TransactionStatusFilter$1.SUCCEEDED;
8137
+ case "reverted":
8138
+ return TransactionStatusFilter$1.REVERTED;
8139
+ case "all":
8140
+ return TransactionStatusFilter$1.ALL;
8141
+ default:
8142
+ return TransactionStatusFilter$1.UNSPECIFIED;
8143
+ }
8144
+ },
8145
+ decode(p) {
8146
+ const enumMap = {
8147
+ [TransactionStatusFilter$1.SUCCEEDED]: "succeeded",
8148
+ [TransactionStatusFilter$1.REVERTED]: "reverted",
8149
+ [TransactionStatusFilter$1.ALL]: "all",
8150
+ [TransactionStatusFilter$1.UNSPECIFIED]: "unknown",
8151
+ [TransactionStatusFilter$1.UNRECOGNIZED]: "unknown"
8152
+ };
8153
+ return enumMap[p] ?? "unknown";
8154
+ }
8155
+ };
8156
+ const EventFilter = MessageCodec({
8157
+ id: OptionalCodec(NumberCodec),
8158
+ address: OptionalCodec(FieldElement$1),
8159
+ keys: OptionalCodec(ArrayCodec(Key)),
8160
+ strict: OptionalCodec(BooleanCodec),
8161
+ transactionStatus: OptionalCodec(TransactionStatusFilter),
8162
+ includeTransaction: OptionalCodec(BooleanCodec),
8163
+ includeReceipt: OptionalCodec(BooleanCodec),
8164
+ includeMessages: OptionalCodec(BooleanCodec),
8165
+ includeSiblings: OptionalCodec(BooleanCodec),
8166
+ includeTransactionTrace: OptionalCodec(BooleanCodec)
8289
8167
  });
8290
- const DeployAccountV3TransactionFilter = Schema.Struct({
8291
- _tag: tag("deployAccountV3"),
8292
- deployAccountV3: Schema.Struct({})
8168
+ const MessageToL1Filter = MessageCodec({
8169
+ id: OptionalCodec(NumberCodec),
8170
+ fromAddress: OptionalCodec(FieldElement$1),
8171
+ toAddress: OptionalCodec(FieldElement$1),
8172
+ transactionStatus: OptionalCodec(TransactionStatusFilter),
8173
+ includeTransaction: OptionalCodec(BooleanCodec),
8174
+ includeReceipt: OptionalCodec(BooleanCodec),
8175
+ includeEvents: OptionalCodec(BooleanCodec),
8176
+ includeTransactionTrace: OptionalCodec(BooleanCodec)
8293
8177
  });
8294
- const TransactionFilter = Schema.Struct({
8295
- id: Schema.optional(Schema.Number),
8296
- transactionStatus: Schema.optional(TransactionStatusFilter),
8297
- includeReceipt: Schema.optional(Schema.Boolean),
8298
- includeMessages: Schema.optional(Schema.Boolean),
8299
- includeEvents: Schema.optional(Schema.Boolean),
8300
- includeTrace: Schema.optional(Schema.Boolean),
8301
- transactionType: Schema.optional(
8302
- Schema.Union(
8303
- InvokeTransactionV0Filter,
8304
- InvokeTransactionV1Filter,
8305
- InvokeTransactionV3Filter,
8306
- DeployTransactionFilter,
8307
- DeclareV0TransactionFilter,
8308
- DeclareV1TransactionFilter,
8309
- DeclareV2TransactionFilter,
8310
- DeclareV3TransactionFilter,
8311
- DeclareV3TransactionFilter,
8312
- L1HandlerTransactionFilter,
8313
- DeployAccountV1TransactionFilter,
8314
- DeployAccountV3TransactionFilter
8315
- )
8178
+ const InvokeTransactionV0Filter = MessageCodec({});
8179
+ const InvokeTransactionV1Filter = MessageCodec({});
8180
+ const InvokeTransactionV3Filter = MessageCodec({});
8181
+ const DeployTransactionFilter = MessageCodec({});
8182
+ const DeclareV0TransactionFilter = MessageCodec({});
8183
+ const DeclareV1TransactionFilter = MessageCodec({});
8184
+ const DeclareV2TransactionFilter = MessageCodec({});
8185
+ const DeclareV3TransactionFilter = MessageCodec({});
8186
+ const L1HandlerTransactionFilter = MessageCodec({});
8187
+ const DeployAccountV1TransactionFilter = MessageCodec({});
8188
+ const DeployAccountV3TransactionFilter = MessageCodec({});
8189
+ const TransactionFilter = MessageCodec({
8190
+ id: OptionalCodec(NumberCodec),
8191
+ transactionStatus: OptionalCodec(TransactionStatusFilter),
8192
+ includeReceipt: OptionalCodec(BooleanCodec),
8193
+ includeMessages: OptionalCodec(BooleanCodec),
8194
+ includeEvents: OptionalCodec(BooleanCodec),
8195
+ includeTrace: OptionalCodec(BooleanCodec),
8196
+ transactionType: OptionalCodec(
8197
+ OneOfCodec({
8198
+ invokeV0: InvokeTransactionV0Filter,
8199
+ invokeV1: InvokeTransactionV1Filter,
8200
+ invokeV3: InvokeTransactionV3Filter,
8201
+ deploy: DeployTransactionFilter,
8202
+ declareV0: DeclareV0TransactionFilter,
8203
+ declareV1: DeclareV1TransactionFilter,
8204
+ declareV2: DeclareV2TransactionFilter,
8205
+ declareV3: DeclareV3TransactionFilter,
8206
+ l1Handler: L1HandlerTransactionFilter,
8207
+ deployAccountV1: DeployAccountV1TransactionFilter,
8208
+ deployAccountV3: DeployAccountV3TransactionFilter
8209
+ })
8316
8210
  )
8317
8211
  });
8318
- const StorageDiffFilter = Schema.Struct({
8319
- id: Schema.optional(Schema.Number),
8320
- contractAddress: Schema.optional(FieldElement$1)
8321
- });
8322
- const DeclaredClassFilter = Schema.Struct({
8323
- _tag: tag("declaredClass"),
8324
- declaredClass: Schema.Struct({})
8325
- });
8326
- const ReplacedClassFilter = Schema.Struct({
8327
- _tag: tag("replacedClass"),
8328
- replacedClass: Schema.Struct({})
8329
- });
8330
- const DeployedContractFilter = Schema.Struct({
8331
- _tag: tag("deployedContract"),
8332
- deployedContract: Schema.Struct({})
8212
+ const StorageDiffFilter = MessageCodec({
8213
+ id: OptionalCodec(NumberCodec),
8214
+ contractAddress: OptionalCodec(FieldElement$1)
8333
8215
  });
8334
- const ContractChangeFilter = Schema.Struct({
8335
- id: Schema.optional(Schema.Number),
8336
- change: Schema.optional(
8337
- Schema.Union(
8338
- DeclaredClassFilter,
8339
- ReplacedClassFilter,
8340
- DeployedContractFilter
8341
- )
8216
+ const DeclaredClassFilter = MessageCodec({});
8217
+ const ReplacedClassFilter = MessageCodec({});
8218
+ const DeployedContractFilter = MessageCodec({});
8219
+ const ContractChangeFilter = MessageCodec({
8220
+ id: OptionalCodec(NumberCodec),
8221
+ change: OptionalCodec(
8222
+ OneOfCodec({
8223
+ declaredClass: DeclaredClassFilter,
8224
+ replacedClass: ReplacedClassFilter,
8225
+ deployedContract: DeployedContractFilter
8226
+ })
8342
8227
  )
8343
8228
  });
8344
- const NonceUpdateFilter = Schema.Struct({
8345
- id: Schema.optional(Schema.Number),
8346
- contractAddress: Schema.optional(FieldElement$1)
8229
+ const NonceUpdateFilter = MessageCodec({
8230
+ id: OptionalCodec(NumberCodec),
8231
+ contractAddress: OptionalCodec(FieldElement$1)
8347
8232
  });
8348
- const Filter = Schema.Struct({
8349
- header: Schema.optional(HeaderFilter),
8350
- transactions: Schema.optional(Schema.Array(TransactionFilter)),
8351
- events: Schema.optional(Schema.Array(EventFilter)),
8352
- messages: Schema.optional(Schema.Array(MessageToL1Filter)),
8353
- storageDiffs: Schema.optional(Schema.Array(StorageDiffFilter)),
8354
- contractChanges: Schema.optional(Schema.Array(ContractChangeFilter)),
8355
- nonceUpdates: Schema.optional(Schema.Array(NonceUpdateFilter))
8233
+ const Filter = MessageCodec({
8234
+ header: OptionalCodec(HeaderFilter),
8235
+ transactions: OptionalCodec(ArrayCodec(TransactionFilter)),
8236
+ events: OptionalCodec(ArrayCodec(EventFilter)),
8237
+ messages: OptionalCodec(ArrayCodec(MessageToL1Filter)),
8238
+ storageDiffs: OptionalCodec(ArrayCodec(StorageDiffFilter)),
8239
+ contractChanges: OptionalCodec(ArrayCodec(ContractChangeFilter)),
8240
+ nonceUpdates: OptionalCodec(ArrayCodec(NonceUpdateFilter))
8356
8241
  });
8357
- const filterToProto = Schema.encodeSync(Filter);
8358
- const filterFromProto = Schema.decodeSync(Filter);
8359
- const FilterFromBytes = Schema.transform(
8360
- Schema.Uint8ArrayFromSelf,
8361
- Filter,
8362
- {
8363
- strict: false,
8364
- decode(value) {
8365
- return Filter$1.decode(value);
8366
- },
8367
- encode(value) {
8368
- return Filter$1.encode(value).finish();
8369
- }
8242
+ const FilterFromBytes = {
8243
+ encode(x) {
8244
+ const filter = Filter.encode(x);
8245
+ return Filter$1.encode(filter).finish();
8246
+ },
8247
+ decode(p) {
8248
+ const filter = Filter$1.decode(p);
8249
+ return Filter.decode(filter);
8370
8250
  }
8371
- );
8372
- const filterToBytes = Schema.encodeSync(FilterFromBytes);
8373
- const filterFromBytes = Schema.decodeSync(FilterFromBytes);
8251
+ };
8374
8252
  function mergeFilter(a, b) {
8375
8253
  const header = mergeHeaderFilter(a.header, b.header);
8376
8254
  return {
@@ -8484,6 +8362,16 @@ function isEmptyType(type) {
8484
8362
  return type === "()";
8485
8363
  }
8486
8364
 
8365
+ function isEventAbi(item) {
8366
+ return item.type === "event";
8367
+ }
8368
+ function isStructEventAbi(item) {
8369
+ return isEventAbi(item) && item.kind === "struct";
8370
+ }
8371
+ function isEnumEventAbi(item) {
8372
+ return isEventAbi(item) && item.kind === "enum";
8373
+ }
8374
+
8487
8375
  class DecodeEventError extends Error {
8488
8376
  constructor(message) {
8489
8377
  super(message);
@@ -8495,50 +8383,120 @@ function decodeEvent(args) {
8495
8383
  const eventAbi = abi.find(
8496
8384
  (item) => item.name === eventName && item.type === "event"
8497
8385
  );
8498
- if (!eventAbi || eventAbi.type !== "event") {
8386
+ if (!eventAbi || !isEventAbi(eventAbi)) {
8499
8387
  if (strict) {
8500
8388
  throw new DecodeEventError(`Event ${eventName} not found in ABI`);
8501
8389
  }
8502
8390
  return null;
8503
8391
  }
8504
- if (eventAbi.kind === "enum") {
8505
- throw new DecodeEventError("enum: not implemented");
8392
+ try {
8393
+ if (isStructEventAbi(eventAbi)) {
8394
+ return decodeStructEvent(abi, eventAbi, event, eventName);
8395
+ }
8396
+ if (isEnumEventAbi(eventAbi)) {
8397
+ return decodeEnumEvent(abi, eventAbi, event, eventName);
8398
+ }
8399
+ throw new DecodeEventError(
8400
+ `Unsupported event kind: ${eventAbi?.kind}`
8401
+ );
8402
+ } catch (error) {
8403
+ if ((error instanceof DecodeEventError || error instanceof ParseError) && !strict) {
8404
+ return null;
8405
+ }
8406
+ throw error;
8506
8407
  }
8408
+ }
8409
+ function decodeStructEvent(abi, eventAbi, event, eventName) {
8507
8410
  const selector = BigInt(getEventSelector(eventName));
8508
8411
  if (event.keys && selector !== BigInt(event.keys[0]) || !event.keys) {
8509
- if (strict) {
8510
- throw new DecodeEventError(
8511
- `Selector mismatch. Expected ${selector}, got ${event.keys?.[0]}`
8512
- );
8513
- }
8514
- return null;
8412
+ throw new DecodeEventError(
8413
+ `Selector mismatch. Expected ${selector}, got ${event.keys?.[0]}`
8414
+ );
8515
8415
  }
8516
8416
  const keysAbi = eventAbi.members.filter((m) => m.kind === "key");
8517
8417
  const dataAbi = eventAbi.members.filter((m) => m.kind === "data");
8518
- try {
8519
- const keysParser = compileEventMembers(abi, keysAbi);
8520
- const dataParser = compileEventMembers(abi, dataAbi);
8521
- const keysWithoutSelector = event.keys?.slice(1) ?? [];
8522
- const { out: decodedKeys } = keysParser(keysWithoutSelector, 0);
8523
- const { out: decodedData } = dataParser(event.data ?? [], 0);
8524
- const decoded = {
8525
- ...decodedKeys,
8526
- ...decodedData
8527
- };
8528
- return {
8529
- ...event,
8530
- eventName,
8531
- args: decoded
8532
- };
8533
- } catch (error) {
8534
- if (error instanceof DecodeEventError && !strict) {
8535
- return null;
8418
+ const keysParser = compileEventMembers(abi, keysAbi);
8419
+ const dataParser = compileEventMembers(abi, dataAbi);
8420
+ const keysWithoutSelector = event.keys?.slice(1) ?? [];
8421
+ const { out: decodedKeys } = keysParser(keysWithoutSelector, 0);
8422
+ const { out: decodedData } = dataParser(event.data ?? [], 0);
8423
+ const decoded = {
8424
+ ...decodedKeys,
8425
+ ...decodedData
8426
+ };
8427
+ return {
8428
+ ...event,
8429
+ eventName,
8430
+ args: decoded
8431
+ };
8432
+ }
8433
+ function decodeEnumEvent(abi, eventAbi, event, eventName) {
8434
+ if (!event.keys || event.keys.length === 0) {
8435
+ throw new DecodeEventError(
8436
+ "Event has no keys; cannot determine variant selector"
8437
+ );
8438
+ }
8439
+ const variants = eventAbi.variants;
8440
+ const variantSelector = event.keys[0];
8441
+ const selectorToVariant = buildVariantSelectorMap(abi, variants);
8442
+ const matchingVariant = selectorToVariant[variantSelector];
8443
+ if (!matchingVariant) {
8444
+ throw new DecodeEventError(
8445
+ `No matching variant found for selector: ${variantSelector}`
8446
+ );
8447
+ }
8448
+ const structEventAbi = abi.find(
8449
+ (item) => item.name === matchingVariant.variant.type && item.type === "event"
8450
+ );
8451
+ if (!structEventAbi || !isStructEventAbi(structEventAbi)) {
8452
+ throw new DecodeEventError(
8453
+ `Nested event type not found or not a struct: ${matchingVariant.variant.type}`
8454
+ );
8455
+ }
8456
+ const decodedStruct = decodeStructEvent(
8457
+ abi,
8458
+ structEventAbi,
8459
+ event,
8460
+ matchingVariant.variant.name
8461
+ );
8462
+ return {
8463
+ ...event,
8464
+ eventName,
8465
+ args: {
8466
+ _tag: matchingVariant.variant.name,
8467
+ [matchingVariant.variant.name]: decodedStruct.args
8536
8468
  }
8537
- if (error instanceof ParseError && !strict) {
8538
- return null;
8469
+ };
8470
+ }
8471
+ function buildVariantSelectorMap(abi, variants) {
8472
+ const selectorMap = {};
8473
+ for (const variant of variants) {
8474
+ if (variant.kind === "nested") {
8475
+ const selector = getEventSelector(variant.name);
8476
+ selectorMap[selector] = { variant, path: [variant.name] };
8477
+ } else if (variant.kind === "flat") {
8478
+ const flatEventName = variant.type;
8479
+ const flatEventAbi = abi.find(
8480
+ (item) => item.name === flatEventName && item.type === "event"
8481
+ );
8482
+ if (!flatEventAbi) {
8483
+ continue;
8484
+ }
8485
+ if (isEnumEventAbi(flatEventAbi)) {
8486
+ const nestedMap = buildVariantSelectorMap(abi, flatEventAbi.variants);
8487
+ for (const [
8488
+ nestedSelector,
8489
+ { variant: nestedVariant, path: nestedPath }
8490
+ ] of Object.entries(nestedMap)) {
8491
+ selectorMap[nestedSelector] = {
8492
+ variant: nestedVariant,
8493
+ path: [variant.name, ...nestedPath]
8494
+ };
8495
+ }
8496
+ }
8539
8497
  }
8540
- throw error;
8541
8498
  }
8499
+ return selectorMap;
8542
8500
  }
8543
8501
  function compileEventMembers(abi, members) {
8544
8502
  return compileStructParser(abi, members);
@@ -8570,8 +8528,9 @@ function compileTypeParser(abi, type) {
8570
8528
  case "struct": {
8571
8529
  return compileStructParser(abi, typeAbi.members);
8572
8530
  }
8573
- case "enum":
8574
- throw new DecodeEventError("enum: not implemented");
8531
+ case "enum": {
8532
+ throw new DecodeEventError(`Enum types are not supported: ${type}`);
8533
+ }
8575
8534
  default:
8576
8535
  throw new DecodeEventError(`Invalid type ${typeAbi.type}`);
8577
8536
  }
@@ -8593,4 +8552,4 @@ const StarknetStream = new StreamConfig(
8593
8552
  mergeFilter
8594
8553
  );
8595
8554
 
8596
- export { Block, BlockFromBytes, BlockHeader, CallType, ComputationResources, ContractChange, ContractChangeFilter, DataAvailabilityMode, DataAvailabilityResources, DeclareTransactionReceipt, DeclareTransactionTrace, DeclareTransactionV0, DeclareTransactionV1, DeclareTransactionV2, DeclareTransactionV3, DeclareV0TransactionFilter, DeclareV1TransactionFilter, DeclareV2TransactionFilter, DeclareV3TransactionFilter, DeclaredClass, DeclaredClassFilter, DecodeEventError, DeployAccountTransactionReceipt, DeployAccountTransactionTrace, DeployAccountTransactionV1, DeployAccountTransactionV3, DeployAccountV1TransactionFilter, DeployAccountV3TransactionFilter, DeployTransaction, DeployTransactionFilter, DeployTransactionReceipt, DeployedContract, DeployedContractFilter, Event, EventFilter, ExecuteInvocationReverted, ExecuteInvocationSuccess, ExecutionResources, ExecutionReverted, ExecutionSucceeded, FeePayment, FieldElement$1 as FieldElement, FieldElementProto, Filter, FilterFromBytes, FunctionInvocation, HeaderFilter, InvokeTransactionReceipt, InvokeTransactionTrace, InvokeTransactionV0, InvokeTransactionV0Filter, InvokeTransactionV1, InvokeTransactionV1Filter, InvokeTransactionV3, InvokeTransactionV3Filter, Key, L1DataAvailabilityMode, L1HandlerTransaction, L1HandlerTransactionFilter, L1HandlerTransactionReceipt, L1HandlerTransactionTrace, MessageToL1, MessageToL1Filter, NonceUpdate, NonceUpdateFilter, PriceUnit, ReplacedClass, ReplacedClassFilter, ResourceBounds, ResourceBoundsMapping, ResourcePrice, StarknetStream, StorageDiff, StorageDiffFilter, StorageEntry, Transaction, TransactionFilter, TransactionMeta, TransactionReceipt, TransactionReceiptMeta, TransactionStatus, TransactionStatusFilter, TransactionTrace, U128, decodeEvent, feltFromProto, feltToProto, filterFromBytes, filterFromProto, filterToBytes, filterToProto, getBigIntSelector, getEventSelector, getReceipt, getSelector, getTransaction, mergeFilter, index as proto };
8555
+ export { Block, BlockFromBytes, BlockHeader, CallType, ComputationResources, ContractChange, ContractChangeFilter, DataAvailabilityMode, DataAvailabilityResources, DeclareTransactionReceipt, DeclareTransactionTrace, DeclareTransactionV0, DeclareTransactionV1, DeclareTransactionV2, DeclareTransactionV3, DeclareV0TransactionFilter, DeclareV1TransactionFilter, DeclareV2TransactionFilter, DeclareV3TransactionFilter, DeclaredClass, DeclaredClassFilter, DecodeEventError, DeployAccountTransactionReceipt, DeployAccountTransactionTrace, DeployAccountTransactionV1, DeployAccountTransactionV3, DeployAccountV1TransactionFilter, DeployAccountV3TransactionFilter, DeployTransaction, DeployTransactionFilter, DeployTransactionReceipt, DeployedContract, DeployedContractFilter, Event, EventFilter, ExecuteInvocationReverted, ExecuteInvocationSuccess, ExecutionResources, ExecutionReverted, ExecutionSucceeded, FeePayment, FieldElement$1 as FieldElement, Filter, FilterFromBytes, HeaderFilter, InvokeTransactionReceipt, InvokeTransactionTrace, InvokeTransactionV0, InvokeTransactionV0Filter, InvokeTransactionV1, InvokeTransactionV1Filter, InvokeTransactionV3, InvokeTransactionV3Filter, Key, L1DataAvailabilityMode, L1HandlerTransaction, L1HandlerTransactionFilter, L1HandlerTransactionReceipt, L1HandlerTransactionTrace, MessageToL1, MessageToL1Filter, NonceUpdate, NonceUpdateFilter, PriceUnit, ReplacedClass, ReplacedClassFilter, ResourceBounds, ResourceBoundsMapping, ResourcePrice, StarknetStream, StorageDiff, StorageDiffFilter, StorageEntry, Transaction, TransactionFilter, TransactionMeta, TransactionReceipt, TransactionReceiptMeta, TransactionStatus, TransactionStatusFilter, TransactionTrace, U128, decodeEvent, getBigIntSelector, getEventSelector, getReceipt, getSelector, getTransaction, mergeFilter, index as proto };