@apibara/evm 2.1.0-beta.9 → 2.1.1-beta.0

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.
@@ -160,7 +160,11 @@ export interface TransactionFilter {
160
160
  | boolean
161
161
  | undefined;
162
162
  /** Flag to request the transaction's logs. Defaults to `false`. */
163
- readonly includeLogs?: boolean | undefined;
163
+ readonly includeLogs?:
164
+ | boolean
165
+ | undefined;
166
+ /** Flag to request the transaction's trace. Defaults to `false`. */
167
+ readonly includeTransactionTrace?: boolean | undefined;
164
168
  }
165
169
 
166
170
  export interface LogFilter {
@@ -204,7 +208,11 @@ export interface LogFilter {
204
208
  *
205
209
  * Defaults to false.
206
210
  */
207
- readonly includeSiblings?: boolean | undefined;
211
+ readonly includeSiblings?:
212
+ | boolean
213
+ | undefined;
214
+ /** Flag to request the log's trace. Defaults to `false`. */
215
+ readonly includeTransactionTrace?: boolean | undefined;
208
216
  }
209
217
 
210
218
  /** Topic filter. */
@@ -427,6 +435,7 @@ function createBaseTransactionFilter(): TransactionFilter {
427
435
  transactionStatus: undefined,
428
436
  includeReceipt: undefined,
429
437
  includeLogs: undefined,
438
+ includeTransactionTrace: undefined,
430
439
  };
431
440
  }
432
441
 
@@ -453,6 +462,9 @@ export const TransactionFilter = {
453
462
  if (message.includeLogs !== undefined) {
454
463
  writer.uint32(56).bool(message.includeLogs);
455
464
  }
465
+ if (message.includeTransactionTrace !== undefined) {
466
+ writer.uint32(64).bool(message.includeTransactionTrace);
467
+ }
456
468
  return writer;
457
469
  },
458
470
 
@@ -512,6 +524,13 @@ export const TransactionFilter = {
512
524
 
513
525
  message.includeLogs = reader.bool();
514
526
  continue;
527
+ case 8:
528
+ if (tag !== 64) {
529
+ break;
530
+ }
531
+
532
+ message.includeTransactionTrace = reader.bool();
533
+ continue;
515
534
  }
516
535
  if ((tag & 7) === 4 || tag === 0) {
517
536
  break;
@@ -532,6 +551,9 @@ export const TransactionFilter = {
532
551
  : undefined,
533
552
  includeReceipt: isSet(object.includeReceipt) ? globalThis.Boolean(object.includeReceipt) : undefined,
534
553
  includeLogs: isSet(object.includeLogs) ? globalThis.Boolean(object.includeLogs) : undefined,
554
+ includeTransactionTrace: isSet(object.includeTransactionTrace)
555
+ ? globalThis.Boolean(object.includeTransactionTrace)
556
+ : undefined,
535
557
  };
536
558
  },
537
559
 
@@ -558,6 +580,9 @@ export const TransactionFilter = {
558
580
  if (message.includeLogs !== undefined) {
559
581
  obj.includeLogs = message.includeLogs;
560
582
  }
583
+ if (message.includeTransactionTrace !== undefined) {
584
+ obj.includeTransactionTrace = message.includeTransactionTrace;
585
+ }
561
586
  return obj;
562
587
  },
563
588
 
@@ -573,6 +598,7 @@ export const TransactionFilter = {
573
598
  message.transactionStatus = object.transactionStatus ?? undefined;
574
599
  message.includeReceipt = object.includeReceipt ?? undefined;
575
600
  message.includeLogs = object.includeLogs ?? undefined;
601
+ message.includeTransactionTrace = object.includeTransactionTrace ?? undefined;
576
602
  return message;
577
603
  },
578
604
  };
@@ -587,6 +613,7 @@ function createBaseLogFilter(): LogFilter {
587
613
  includeTransaction: undefined,
588
614
  includeReceipt: undefined,
589
615
  includeSiblings: undefined,
616
+ includeTransactionTrace: undefined,
590
617
  };
591
618
  }
592
619
 
@@ -618,6 +645,9 @@ export const LogFilter = {
618
645
  if (message.includeSiblings !== undefined) {
619
646
  writer.uint32(64).bool(message.includeSiblings);
620
647
  }
648
+ if (message.includeTransactionTrace !== undefined) {
649
+ writer.uint32(72).bool(message.includeTransactionTrace);
650
+ }
621
651
  return writer;
622
652
  },
623
653
 
@@ -684,6 +714,13 @@ export const LogFilter = {
684
714
 
685
715
  message.includeSiblings = reader.bool();
686
716
  continue;
717
+ case 9:
718
+ if (tag !== 72) {
719
+ break;
720
+ }
721
+
722
+ message.includeTransactionTrace = reader.bool();
723
+ continue;
687
724
  }
688
725
  if ((tag & 7) === 4 || tag === 0) {
689
726
  break;
@@ -705,6 +742,9 @@ export const LogFilter = {
705
742
  includeTransaction: isSet(object.includeTransaction) ? globalThis.Boolean(object.includeTransaction) : undefined,
706
743
  includeReceipt: isSet(object.includeReceipt) ? globalThis.Boolean(object.includeReceipt) : undefined,
707
744
  includeSiblings: isSet(object.includeSiblings) ? globalThis.Boolean(object.includeSiblings) : undefined,
745
+ includeTransactionTrace: isSet(object.includeTransactionTrace)
746
+ ? globalThis.Boolean(object.includeTransactionTrace)
747
+ : undefined,
708
748
  };
709
749
  },
710
750
 
@@ -734,6 +774,9 @@ export const LogFilter = {
734
774
  if (message.includeSiblings !== undefined) {
735
775
  obj.includeSiblings = message.includeSiblings;
736
776
  }
777
+ if (message.includeTransactionTrace !== undefined) {
778
+ obj.includeTransactionTrace = message.includeTransactionTrace;
779
+ }
737
780
  return obj;
738
781
  },
739
782
 
@@ -752,6 +795,7 @@ export const LogFilter = {
752
795
  message.includeTransaction = object.includeTransaction ?? undefined;
753
796
  message.includeReceipt = object.includeReceipt ?? undefined;
754
797
  message.includeSiblings = object.includeSiblings ?? undefined;
798
+ message.includeTransactionTrace = object.includeTransactionTrace ?? undefined;
755
799
  return message;
756
800
  },
757
801
  };
@@ -103,17 +103,18 @@ export const protobufPackage = "google.protobuf";
103
103
  */
104
104
  export interface Timestamp {
105
105
  /**
106
- * Represents seconds of UTC time since Unix epoch
107
- * 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
108
- * 9999-12-31T23:59:59Z inclusive.
106
+ * Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must
107
+ * be between -315576000000 and 315576000000 inclusive (which corresponds to
108
+ * 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).
109
109
  */
110
110
  readonly seconds?:
111
111
  | bigint
112
112
  | undefined;
113
113
  /**
114
- * Non-negative fractions of a second at nanosecond resolution. Negative
115
- * second values with fractions must still have non-negative nanos values
116
- * that count forward in time. Must be from 0 to 999,999,999
114
+ * Non-negative fractions of a second at nanosecond resolution. This field is
115
+ * the nanosecond portion of the duration, not an alternative to seconds.
116
+ * Negative second values with fractions must still have non-negative nanos
117
+ * values that count forward in time. Must be between 0 and 999,999,999
117
118
  * inclusive.
118
119
  */
119
120
  readonly nanos?: number | undefined;
@@ -1,79 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
-
3
- import { Schema } from "@effect/schema";
4
- import { pad } from "viem";
5
-
6
- import { Address, B256, U128, U256 } from "./common";
7
-
8
- describe("Address", () => {
9
- const encode = Schema.encodeSync(Address);
10
- const decode = Schema.decodeSync(Address);
11
-
12
- it("should convert to and from proto", () => {
13
- const address = "0x27504265a9bc4330e3fe82061a60cd8b6369b4dc";
14
-
15
- const message = encode(address);
16
-
17
- expect(message.x0).toBeDefined();
18
- expect(message.x1).toBeDefined();
19
- expect(message.x2).toBeDefined();
20
-
21
- const back = decode(message);
22
- expect(back).toEqual(pad(address, { size: 20 }));
23
- });
24
- });
25
-
26
- describe("B256", () => {
27
- const encode = Schema.encodeSync(B256);
28
- const decode = Schema.decodeSync(B256);
29
-
30
- it("should convert to and from proto", () => {
31
- const value =
32
- "0x9df92d765b5aa041fd4bbe8d5878eb89290efa78e444c1a603eecfae2ea05fa4";
33
- const message = encode(value);
34
-
35
- expect(message.x0).toBeDefined();
36
- expect(message.x1).toBeDefined();
37
- expect(message.x2).toBeDefined();
38
- expect(message.x3).toBeDefined();
39
-
40
- const back = decode(message);
41
- expect(back).toEqual(pad(value, { size: 32 }));
42
- });
43
- });
44
-
45
- describe("U256", () => {
46
- const encode = Schema.encodeSync(U256);
47
- const decode = Schema.decodeSync(U256);
48
-
49
- it("should convert to and from proto", () => {
50
- const value = BigInt(
51
- "0x9df92d765b5aa041fd4bbe8d5878eb89290efa78e444c1a603eecfae2ea05fa4",
52
- );
53
- const message = encode(value);
54
-
55
- expect(message.x0).toBeDefined();
56
- expect(message.x1).toBeDefined();
57
- expect(message.x2).toBeDefined();
58
- expect(message.x3).toBeDefined();
59
-
60
- const back = decode(message);
61
- expect(back).toEqual(value);
62
- });
63
- });
64
-
65
- describe("U128", () => {
66
- const encode = Schema.encodeSync(U128);
67
- const decode = Schema.decodeSync(U128);
68
-
69
- it("should convert to and from proto", () => {
70
- const value = BigInt("0x090efa78e444c1a603eecfae2ea05fa4");
71
- const message = encode(value);
72
-
73
- expect(message.x0).toBeDefined();
74
- expect(message.x1).toBeDefined();
75
-
76
- const back = decode(message);
77
- expect(back).toEqual(value);
78
- });
79
- });
@@ -1,187 +0,0 @@
1
- import { encodeEventTopics, pad, parseAbi } from "viem";
2
- import { describe, expect, it } from "vitest";
3
-
4
- import { Schema } from "@effect/schema";
5
- import {
6
- Filter,
7
- LogFilter,
8
- filterFromProto,
9
- filterToProto,
10
- mergeFilter,
11
- } from "./filter";
12
-
13
- const abi = parseAbi([
14
- "event Transfer(address indexed from, address indexed to, uint256 value)",
15
- ]);
16
-
17
- describe("Filter", () => {
18
- it("all filters are optional", () => {
19
- const filter = Filter.make({});
20
-
21
- const proto = filterToProto(filter);
22
- const back = filterFromProto(proto);
23
- expect(back).toEqual(filter);
24
- });
25
-
26
- it("accepts logs filter", () => {
27
- const filter = Filter.make({
28
- logs: [
29
- {
30
- address: "0x123456789012",
31
- strict: true,
32
- topics: encodeEventTopics({
33
- abi,
34
- eventName: "Transfer",
35
- args: { from: null, to: null },
36
- }) as `0x${string}`[],
37
- },
38
- ],
39
- });
40
-
41
- expect(filter.logs).toHaveLength(1);
42
-
43
- const proto = filterToProto(filter);
44
- const back = filterFromProto(proto);
45
-
46
- expect(back).toBeDefined();
47
- expect(back.logs).toHaveLength(1);
48
- });
49
- });
50
-
51
- describe("LogFilter", () => {
52
- const encode = Schema.encodeSync(LogFilter);
53
- const decode = Schema.decodeSync(LogFilter);
54
-
55
- it("can be empty", () => {
56
- const filter = LogFilter.make({});
57
-
58
- const proto = encode(filter);
59
- const back = decode(proto);
60
- expect(back).toEqual(filter);
61
- });
62
-
63
- it("can have null topics", () => {
64
- const filter = LogFilter.make({
65
- topics: [null, pad("0x1"), null, pad("0x3")],
66
- });
67
-
68
- const proto = encode(filter);
69
- const back = decode(proto);
70
- expect(back).toEqual(filter);
71
- });
72
-
73
- it("can have all optional fields", () => {
74
- const filter = LogFilter.make({
75
- address: pad("0xa", { size: 20 }),
76
- topics: [null, pad("0x1"), null, pad("0x3")],
77
- includeTransaction: true,
78
- includeReceipt: true,
79
- strict: true,
80
- });
81
-
82
- const proto = encode(filter);
83
- const back = decode(proto);
84
- expect(back).toEqual(filter);
85
- });
86
- });
87
-
88
- describe("mergeFilter", () => {
89
- it("returns header.always if any has it", () => {
90
- const fa = mergeFilter({}, { header: "always" });
91
- expect(fa).toMatchInlineSnapshot(`
92
- {
93
- "header": "always",
94
- "logs": [],
95
- "transactions": [],
96
- "withdrawals": [],
97
- }
98
- `);
99
- const fb = mergeFilter({ header: "always" }, {});
100
- expect(fb).toMatchInlineSnapshot(`
101
- {
102
- "header": "always",
103
- "logs": [],
104
- "transactions": [],
105
- "withdrawals": [],
106
- }
107
- `);
108
- });
109
-
110
- it("returns an empty header by default", () => {
111
- const f = mergeFilter({}, {});
112
- expect(f).toMatchInlineSnapshot(`
113
- {
114
- "header": undefined,
115
- "logs": [],
116
- "transactions": [],
117
- "withdrawals": [],
118
- }
119
- `);
120
- });
121
-
122
- it("concatenates logs", () => {
123
- const f = mergeFilter(
124
- { logs: [{ address: "0xAAAAAAAAAAAAAAAAAAAAAA" }] },
125
- { logs: [{ address: "0xBBBBBBBBBBBBBBBBBBBBBB" }] },
126
- );
127
- expect(f).toMatchInlineSnapshot(`
128
- {
129
- "header": undefined,
130
- "logs": [
131
- {
132
- "address": "0xAAAAAAAAAAAAAAAAAAAAAA",
133
- },
134
- {
135
- "address": "0xBBBBBBBBBBBBBBBBBBBBBB",
136
- },
137
- ],
138
- "transactions": [],
139
- "withdrawals": [],
140
- }
141
- `);
142
- });
143
-
144
- it("concatenates transactions", () => {
145
- const f = mergeFilter(
146
- { transactions: [{ from: "0xAAAAAAAAAAAAAAAAAAAAAA" }] },
147
- { transactions: [{ from: "0xBBBBBBBBBBBBBBBBBBBBBB" }] },
148
- );
149
- expect(f).toMatchInlineSnapshot(`
150
- {
151
- "header": undefined,
152
- "logs": [],
153
- "transactions": [
154
- {
155
- "from": "0xAAAAAAAAAAAAAAAAAAAAAA",
156
- },
157
- {
158
- "from": "0xBBBBBBBBBBBBBBBBBBBBBB",
159
- },
160
- ],
161
- "withdrawals": [],
162
- }
163
- `);
164
- });
165
-
166
- it("concatenates withdrawals", () => {
167
- const f = mergeFilter(
168
- { withdrawals: [{ validatorIndex: 1 }] },
169
- { withdrawals: [{ validatorIndex: 100 }] },
170
- );
171
- expect(f).toMatchInlineSnapshot(`
172
- {
173
- "header": undefined,
174
- "logs": [],
175
- "transactions": [],
176
- "withdrawals": [
177
- {
178
- "validatorIndex": 1,
179
- },
180
- {
181
- "validatorIndex": 100,
182
- },
183
- ],
184
- }
185
- `);
186
- });
187
- });