@aztec/archiver 3.0.0-nightly.20251209 → 3.0.0-nightly.20251211

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.
Files changed (108) hide show
  1. package/dest/archiver/archiver.d.ts +16 -14
  2. package/dest/archiver/archiver.d.ts.map +1 -1
  3. package/dest/archiver/archiver.js +59 -28
  4. package/dest/archiver/archiver_store.d.ts +9 -9
  5. package/dest/archiver/archiver_store.d.ts.map +1 -1
  6. package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
  7. package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
  8. package/dest/archiver/archiver_store_test_suite.js +47 -46
  9. package/dest/archiver/config.d.ts +3 -2
  10. package/dest/archiver/config.d.ts.map +1 -1
  11. package/dest/archiver/config.js +8 -1
  12. package/dest/archiver/instrumentation.d.ts +3 -1
  13. package/dest/archiver/instrumentation.d.ts.map +1 -1
  14. package/dest/archiver/instrumentation.js +11 -0
  15. package/dest/archiver/kv_archiver_store/block_store.d.ts +2 -2
  16. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
  17. package/dest/archiver/kv_archiver_store/block_store.js +1 -1
  18. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +2 -2
  19. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
  20. package/dest/archiver/kv_archiver_store/contract_class_store.js +1 -1
  21. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +2 -2
  22. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
  23. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +8 -8
  24. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
  25. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +6 -6
  26. package/dest/archiver/kv_archiver_store/log_store.d.ts +2 -2
  27. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
  28. package/dest/archiver/kv_archiver_store/message_store.d.ts +6 -5
  29. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
  30. package/dest/archiver/kv_archiver_store/message_store.js +15 -14
  31. package/dest/archiver/l1/bin/retrieve-calldata.d.ts +3 -0
  32. package/dest/archiver/l1/bin/retrieve-calldata.d.ts.map +1 -0
  33. package/dest/archiver/l1/bin/retrieve-calldata.js +147 -0
  34. package/dest/archiver/l1/calldata_retriever.d.ts +98 -0
  35. package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -0
  36. package/dest/archiver/l1/calldata_retriever.js +403 -0
  37. package/dest/archiver/l1/data_retrieval.d.ts +87 -0
  38. package/dest/archiver/l1/data_retrieval.d.ts.map +1 -0
  39. package/dest/archiver/{data_retrieval.js → l1/data_retrieval.js} +26 -95
  40. package/dest/archiver/l1/debug_tx.d.ts +19 -0
  41. package/dest/archiver/l1/debug_tx.d.ts.map +1 -0
  42. package/dest/archiver/l1/debug_tx.js +73 -0
  43. package/dest/archiver/l1/spire_proposer.d.ts +70 -0
  44. package/dest/archiver/l1/spire_proposer.d.ts.map +1 -0
  45. package/dest/archiver/l1/spire_proposer.js +157 -0
  46. package/dest/archiver/l1/trace_tx.d.ts +97 -0
  47. package/dest/archiver/l1/trace_tx.d.ts.map +1 -0
  48. package/dest/archiver/l1/trace_tx.js +91 -0
  49. package/dest/archiver/l1/types.d.ts +12 -0
  50. package/dest/archiver/l1/types.d.ts.map +1 -0
  51. package/dest/archiver/l1/types.js +3 -0
  52. package/dest/archiver/l1/validate_trace.d.ts +29 -0
  53. package/dest/archiver/l1/validate_trace.d.ts.map +1 -0
  54. package/dest/archiver/l1/validate_trace.js +150 -0
  55. package/dest/archiver/structs/inbox_message.d.ts +4 -4
  56. package/dest/archiver/structs/inbox_message.d.ts.map +1 -1
  57. package/dest/archiver/structs/inbox_message.js +6 -6
  58. package/dest/index.d.ts +2 -2
  59. package/dest/index.d.ts.map +1 -1
  60. package/dest/index.js +1 -1
  61. package/dest/test/mock_archiver.d.ts +4 -5
  62. package/dest/test/mock_archiver.d.ts.map +1 -1
  63. package/dest/test/mock_archiver.js +5 -9
  64. package/dest/test/mock_l1_to_l2_message_source.d.ts +5 -6
  65. package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
  66. package/dest/test/mock_l1_to_l2_message_source.js +7 -11
  67. package/dest/test/mock_l2_block_source.d.ts +2 -2
  68. package/dest/test/mock_l2_block_source.d.ts.map +1 -1
  69. package/dest/test/mock_l2_block_source.js +2 -2
  70. package/dest/test/mock_structs.d.ts +3 -2
  71. package/dest/test/mock_structs.d.ts.map +1 -1
  72. package/dest/test/mock_structs.js +9 -9
  73. package/package.json +15 -14
  74. package/src/archiver/archiver.ts +79 -40
  75. package/src/archiver/archiver_store.ts +8 -8
  76. package/src/archiver/archiver_store_test_suite.ts +56 -48
  77. package/src/archiver/config.ts +8 -7
  78. package/src/archiver/instrumentation.ts +14 -0
  79. package/src/archiver/kv_archiver_store/block_store.ts +1 -1
  80. package/src/archiver/kv_archiver_store/contract_class_store.ts +1 -1
  81. package/src/archiver/kv_archiver_store/contract_instance_store.ts +1 -1
  82. package/src/archiver/kv_archiver_store/kv_archiver_store.ts +9 -9
  83. package/src/archiver/kv_archiver_store/log_store.ts +1 -1
  84. package/src/archiver/kv_archiver_store/message_store.ts +21 -18
  85. package/src/archiver/l1/README.md +98 -0
  86. package/src/archiver/l1/bin/retrieve-calldata.ts +182 -0
  87. package/src/archiver/l1/calldata_retriever.ts +531 -0
  88. package/src/archiver/{data_retrieval.ts → l1/data_retrieval.ts} +57 -143
  89. package/src/archiver/l1/debug_tx.ts +99 -0
  90. package/src/archiver/l1/spire_proposer.ts +160 -0
  91. package/src/archiver/l1/trace_tx.ts +128 -0
  92. package/src/archiver/l1/types.ts +13 -0
  93. package/src/archiver/l1/validate_trace.ts +211 -0
  94. package/src/archiver/structs/inbox_message.ts +7 -8
  95. package/src/index.ts +1 -1
  96. package/src/test/fixtures/debug_traceTransaction-multicall3.json +88 -0
  97. package/src/test/fixtures/debug_traceTransaction-multiplePropose.json +153 -0
  98. package/src/test/fixtures/debug_traceTransaction-proxied.json +122 -0
  99. package/src/test/fixtures/trace_transaction-multicall3.json +65 -0
  100. package/src/test/fixtures/trace_transaction-multiplePropose.json +319 -0
  101. package/src/test/fixtures/trace_transaction-proxied.json +128 -0
  102. package/src/test/fixtures/trace_transaction-randomRevert.json +216 -0
  103. package/src/test/mock_archiver.ts +6 -11
  104. package/src/test/mock_l1_to_l2_message_source.ts +6 -11
  105. package/src/test/mock_l2_block_source.ts +2 -2
  106. package/src/test/mock_structs.ts +10 -10
  107. package/dest/archiver/data_retrieval.d.ts +0 -80
  108. package/dest/archiver/data_retrieval.d.ts.map +0 -1
@@ -0,0 +1,216 @@
1
+ [
2
+ {
3
+ "action": {
4
+ "from": "0x28c6c06298d514db089934071355e5743bf21d60",
5
+ "callType": "call",
6
+ "gas": "0x5f1fc",
7
+ "input": "0x34fcd5be0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000a587116d5cf08e53bd75f3a0a434bf06671098590000000000000000000000000000000000000000000000000000000029a6d78000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f863dfdb5df33fe5f87601b8d2f23c816d5fde8000000000000000000000000000000000000000000000000000000000b7ff86f00000000000000000000000000000000000000000000000000000000",
8
+ "to": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
9
+ "value": "0x0"
10
+ },
11
+ "blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
12
+ "blockNumber": 23934803,
13
+ "result": {
14
+ "gasUsed": "0x15b9b",
15
+ "output": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001"
16
+ },
17
+ "subtraces": 1,
18
+ "traceAddress": [],
19
+ "transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
20
+ "transactionPosition": 333,
21
+ "type": "call"
22
+ },
23
+ {
24
+ "action": {
25
+ "from": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
26
+ "callType": "delegatecall",
27
+ "gas": "0x5c75c",
28
+ "input": "0x34fcd5be0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000a587116d5cf08e53bd75f3a0a434bf06671098590000000000000000000000000000000000000000000000000000000029a6d78000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044a9059cbb0000000000000000000000009f863dfdb5df33fe5f87601b8d2f23c816d5fde8000000000000000000000000000000000000000000000000000000000b7ff86f00000000000000000000000000000000000000000000000000000000",
29
+ "to": "0xd206ac7fef53d83ed4563e770b28dba90d0d9ec8",
30
+ "value": "0x0"
31
+ },
32
+ "blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
33
+ "blockNumber": 23934803,
34
+ "result": {
35
+ "gasUsed": "0x1483e",
36
+ "output": "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001"
37
+ },
38
+ "subtraces": 4,
39
+ "traceAddress": [0],
40
+ "transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
41
+ "transactionPosition": 333,
42
+ "type": "call"
43
+ },
44
+ {
45
+ "action": {
46
+ "from": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
47
+ "callType": "staticcall",
48
+ "gas": "0x7530",
49
+ "input": "0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000",
50
+ "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
51
+ "value": "0x0"
52
+ },
53
+ "blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
54
+ "blockNumber": 23934803,
55
+ "error": "Reverted",
56
+ "result": {
57
+ "gasUsed": "0x1d64",
58
+ "output": "0x"
59
+ },
60
+ "subtraces": 1,
61
+ "traceAddress": [0, 0],
62
+ "transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
63
+ "transactionPosition": 333,
64
+ "type": "call"
65
+ },
66
+ {
67
+ "action": {
68
+ "from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
69
+ "callType": "delegatecall",
70
+ "gas": "0x5783",
71
+ "input": "0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000",
72
+ "to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd",
73
+ "value": "0x0"
74
+ },
75
+ "blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
76
+ "blockNumber": 23934803,
77
+ "error": "Reverted",
78
+ "result": {
79
+ "gasUsed": "0xf0",
80
+ "output": "0x"
81
+ },
82
+ "subtraces": 0,
83
+ "traceAddress": [0, 0, 0],
84
+ "transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
85
+ "transactionPosition": 333,
86
+ "type": "call"
87
+ },
88
+ {
89
+ "action": {
90
+ "from": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
91
+ "callType": "call",
92
+ "gas": "0x541ba",
93
+ "input": "0xa9059cbb000000000000000000000000a587116d5cf08e53bd75f3a0a434bf06671098590000000000000000000000000000000000000000000000000000000029a6d780",
94
+ "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
95
+ "value": "0x0"
96
+ },
97
+ "blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
98
+ "blockNumber": 23934803,
99
+ "result": {
100
+ "gasUsed": "0x9ecc",
101
+ "output": "0x0000000000000000000000000000000000000000000000000000000000000001"
102
+ },
103
+ "subtraces": 1,
104
+ "traceAddress": [0, 1],
105
+ "transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
106
+ "transactionPosition": 333,
107
+ "type": "call"
108
+ },
109
+ {
110
+ "action": {
111
+ "from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
112
+ "callType": "delegatecall",
113
+ "gas": "0x510d8",
114
+ "input": "0xa9059cbb000000000000000000000000a587116d5cf08e53bd75f3a0a434bf06671098590000000000000000000000000000000000000000000000000000000029a6d780",
115
+ "to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd",
116
+ "value": "0x0"
117
+ },
118
+ "blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
119
+ "blockNumber": 23934803,
120
+ "result": {
121
+ "gasUsed": "0x8253",
122
+ "output": "0x0000000000000000000000000000000000000000000000000000000000000001"
123
+ },
124
+ "subtraces": 0,
125
+ "traceAddress": [0, 1, 0],
126
+ "transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
127
+ "transactionPosition": 333,
128
+ "type": "call"
129
+ },
130
+ {
131
+ "action": {
132
+ "from": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
133
+ "callType": "staticcall",
134
+ "gas": "0x7530",
135
+ "input": "0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000",
136
+ "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
137
+ "value": "0x0"
138
+ },
139
+ "blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
140
+ "blockNumber": 23934803,
141
+ "error": "Reverted",
142
+ "result": {
143
+ "gasUsed": "0x400",
144
+ "output": "0x"
145
+ },
146
+ "subtraces": 1,
147
+ "traceAddress": [0, 2],
148
+ "transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
149
+ "transactionPosition": 333,
150
+ "type": "call"
151
+ },
152
+ {
153
+ "action": {
154
+ "from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
155
+ "callType": "delegatecall",
156
+ "gas": "0x7081",
157
+ "input": "0x01ffc9a701ffc9a700000000000000000000000000000000000000000000000000000000",
158
+ "to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd",
159
+ "value": "0x0"
160
+ },
161
+ "blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
162
+ "blockNumber": 23934803,
163
+ "error": "Reverted",
164
+ "result": {
165
+ "gasUsed": "0xf0",
166
+ "output": "0x"
167
+ },
168
+ "subtraces": 0,
169
+ "traceAddress": [0, 2, 0],
170
+ "transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
171
+ "transactionPosition": 333,
172
+ "type": "call"
173
+ },
174
+ {
175
+ "action": {
176
+ "from": "0xee7ae85f2fe2239e27d9c1e23fffe168d63b4055",
177
+ "callType": "call",
178
+ "gas": "0x4997e",
179
+ "input": "0xa9059cbb0000000000000000000000009f863dfdb5df33fe5f87601b8d2f23c816d5fde8000000000000000000000000000000000000000000000000000000000b7ff86f",
180
+ "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
181
+ "value": "0x0"
182
+ },
183
+ "blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
184
+ "blockNumber": 23934803,
185
+ "result": {
186
+ "gasUsed": "0x280c",
187
+ "output": "0x0000000000000000000000000000000000000000000000000000000000000001"
188
+ },
189
+ "subtraces": 1,
190
+ "traceAddress": [0, 3],
191
+ "transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
192
+ "transactionPosition": 333,
193
+ "type": "call"
194
+ },
195
+ {
196
+ "action": {
197
+ "from": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
198
+ "callType": "delegatecall",
199
+ "gas": "0x4843b",
200
+ "input": "0xa9059cbb0000000000000000000000009f863dfdb5df33fe5f87601b8d2f23c816d5fde8000000000000000000000000000000000000000000000000000000000b7ff86f",
201
+ "to": "0x43506849d7c04f9138d1a2050bbf3a0c054402dd",
202
+ "value": "0x0"
203
+ },
204
+ "blockHash": "0x5c463f21273435fbe71ab85a203ce4566e8f0d83deafcc757913ac2b5839367d",
205
+ "blockNumber": 23934803,
206
+ "result": {
207
+ "gasUsed": "0x24f7",
208
+ "output": "0x0000000000000000000000000000000000000000000000000000000000000001"
209
+ },
210
+ "subtraces": 0,
211
+ "traceAddress": [0, 3, 0],
212
+ "transactionHash": "0x622c1ca0d4c20a4d58f4111bf24cafa633318ededb24819ee3d977a73b1a1ff9",
213
+ "transactionPosition": 333,
214
+ "type": "call"
215
+ }
216
+ ]
@@ -1,5 +1,5 @@
1
1
  import type { CheckpointNumber } from '@aztec/foundation/branded-types';
2
- import type { Fr } from '@aztec/foundation/fields';
2
+ import type { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { L2Block, type L2BlockSource } from '@aztec/stdlib/block';
4
4
  import type { Checkpoint } from '@aztec/stdlib/checkpoint';
5
5
  import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
@@ -13,22 +13,17 @@ import { MockL2BlockSource } from './mock_l2_block_source.js';
13
13
  export class MockArchiver extends MockL2BlockSource implements L2BlockSource, L1ToL2MessageSource {
14
14
  private messageSource = new MockL1ToL2MessageSource(0);
15
15
 
16
- public setL1ToL2Messages(blockNumber: number, msgs: Fr[]) {
17
- this.messageSource.setL1ToL2Messages(blockNumber, msgs);
16
+ public setL1ToL2Messages(checkpointNumber: CheckpointNumber, msgs: Fr[]) {
17
+ this.messageSource.setL1ToL2Messages(checkpointNumber, msgs);
18
18
  }
19
19
 
20
- getL1ToL2Messages(blockNumber: number): Promise<Fr[]> {
21
- return this.messageSource.getL1ToL2Messages(blockNumber);
20
+ getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
21
+ return this.messageSource.getL1ToL2Messages(checkpointNumber);
22
22
  }
23
23
 
24
24
  getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined> {
25
25
  return this.messageSource.getL1ToL2MessageIndex(_l1ToL2Message);
26
26
  }
27
-
28
- getL1ToL2MessagesForCheckpoint(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
29
- // TODO: Implement this properly. This only works when we have one block per checkpoint.
30
- return this.messageSource.getL1ToL2Messages(checkpointNumber);
31
- }
32
27
  }
33
28
 
34
29
  /**
@@ -48,7 +43,7 @@ export class MockPrefilledArchiver extends MockArchiver {
48
43
  if (checkpoint.blocks.length !== 1) {
49
44
  throw new Error('Prefilled checkpoint must only have 1 block at the moment.');
50
45
  }
51
- this.setL1ToL2Messages(checkpoint.blocks[0].number, messages);
46
+ this.setL1ToL2Messages(checkpoint.number, messages);
52
47
  }
53
48
  }
54
49
 
@@ -1,5 +1,5 @@
1
1
  import { BlockNumber, type CheckpointNumber } from '@aztec/foundation/branded-types';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import type { L2Tips } from '@aztec/stdlib/block';
4
4
  import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
5
5
 
@@ -7,25 +7,20 @@ import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
7
7
  * A mocked implementation of L1ToL2MessageSource to be used in tests.
8
8
  */
9
9
  export class MockL1ToL2MessageSource implements L1ToL2MessageSource {
10
- private messagesPerBlock = new Map<number, Fr[]>();
10
+ private messagesPerCheckpoint = new Map<CheckpointNumber, Fr[]>();
11
11
 
12
12
  constructor(private blockNumber: number) {}
13
13
 
14
- public setL1ToL2Messages(blockNumber: number, msgs: Fr[]) {
15
- this.messagesPerBlock.set(blockNumber, msgs);
14
+ public setL1ToL2Messages(checkpointNumber: CheckpointNumber, msgs: Fr[]) {
15
+ this.messagesPerCheckpoint.set(checkpointNumber, msgs);
16
16
  }
17
17
 
18
18
  public setBlockNumber(blockNumber: number) {
19
19
  this.blockNumber = blockNumber;
20
20
  }
21
21
 
22
- getL1ToL2MessagesForCheckpoint(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
23
- // TODO: Implement this properly. This only works when we have one block per checkpoint.
24
- return this.getL1ToL2Messages(checkpointNumber);
25
- }
26
-
27
- getL1ToL2Messages(blockNumber: number): Promise<Fr[]> {
28
- return Promise.resolve(this.messagesPerBlock.get(blockNumber) ?? []);
22
+ getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
23
+ return Promise.resolve(this.messagesPerCheckpoint.get(checkpointNumber) ?? []);
29
24
  }
30
25
 
31
26
  getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined> {
@@ -1,9 +1,9 @@
1
1
  import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
2
- import { DefaultL1ContractsConfig } from '@aztec/ethereum';
2
+ import { DefaultL1ContractsConfig } from '@aztec/ethereum/config';
3
3
  import { BlockNumber, CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
4
4
  import { Buffer32 } from '@aztec/foundation/buffer';
5
+ import { Fr } from '@aztec/foundation/curves/bn254';
5
6
  import { EthAddress } from '@aztec/foundation/eth-address';
6
- import { Fr } from '@aztec/foundation/fields';
7
7
  import { createLogger } from '@aztec/foundation/log';
8
8
  import type { FunctionSelector } from '@aztec/stdlib/abi';
9
9
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
@@ -1,7 +1,7 @@
1
- import { BlockNumber } from '@aztec/foundation/branded-types';
1
+ import { CheckpointNumber } from '@aztec/foundation/branded-types';
2
2
  import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
3
- import { randomBigInt, randomInt } from '@aztec/foundation/crypto';
4
- import { Fr } from '@aztec/foundation/fields';
3
+ import { randomBigInt, randomInt } from '@aztec/foundation/crypto/random';
4
+ import { Fr } from '@aztec/foundation/curves/bn254';
5
5
  import { InboxLeaf } from '@aztec/stdlib/messaging';
6
6
 
7
7
  import { type InboxMessage, updateRollingHash } from '../archiver/structs/inbox_message.js';
@@ -10,17 +10,17 @@ export function makeInboxMessage(
10
10
  previousRollingHash = Buffer16.ZERO,
11
11
  overrides: Partial<InboxMessage> = {},
12
12
  ): InboxMessage {
13
- const { l2BlockNumber = randomInt(100) + 1 } = overrides;
13
+ const { checkpointNumber = CheckpointNumber(randomInt(100) + 1) } = overrides;
14
14
  const { l1BlockNumber = randomBigInt(100n) + 1n } = overrides;
15
15
  const { l1BlockHash = Buffer32.random() } = overrides;
16
16
  const { leaf = Fr.random() } = overrides;
17
17
  const { rollingHash = updateRollingHash(previousRollingHash, leaf) } = overrides;
18
- const { index = InboxLeaf.smallestIndexFromL2Block(l2BlockNumber) } = overrides;
18
+ const { index = InboxLeaf.smallestIndexForCheckpoint(checkpointNumber) } = overrides;
19
19
 
20
20
  return {
21
21
  index,
22
22
  leaf,
23
- l2BlockNumber: BlockNumber(l2BlockNumber),
23
+ checkpointNumber,
24
24
  l1BlockNumber,
25
25
  l1BlockHash,
26
26
  rollingHash,
@@ -31,17 +31,17 @@ export function makeInboxMessages(
31
31
  count: number,
32
32
  opts: {
33
33
  initialHash?: Buffer16;
34
- initialL2BlockNumber?: number;
34
+ initialCheckpointNumber?: CheckpointNumber;
35
35
  overrideFn?: (msg: InboxMessage, index: number) => InboxMessage;
36
36
  } = {},
37
37
  ): InboxMessage[] {
38
- const { initialHash = Buffer16.ZERO, overrideFn = msg => msg, initialL2BlockNumber = 1 } = opts;
38
+ const { initialHash = Buffer16.ZERO, overrideFn = msg => msg, initialCheckpointNumber = 1 } = opts;
39
39
  const messages: InboxMessage[] = [];
40
40
  let rollingHash = initialHash;
41
41
  for (let i = 0; i < count; i++) {
42
42
  const leaf = Fr.random();
43
- const l2BlockNumber = BlockNumber(i + initialL2BlockNumber);
44
- const message = overrideFn(makeInboxMessage(rollingHash, { leaf, l2BlockNumber }), i);
43
+ const checkpointNumber = CheckpointNumber(i + initialCheckpointNumber);
44
+ const message = overrideFn(makeInboxMessage(rollingHash, { leaf, checkpointNumber }), i);
45
45
  rollingHash = message.rollingHash;
46
46
  messages.push(message);
47
47
  }
@@ -1,80 +0,0 @@
1
- import { type CheckpointBlobData } from '@aztec/blob-lib';
2
- import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
3
- import type { ViemClient, ViemPublicClient } from '@aztec/ethereum';
4
- import { CheckpointNumber } from '@aztec/foundation/branded-types';
5
- import type { EthAddress } from '@aztec/foundation/eth-address';
6
- import { Fr } from '@aztec/foundation/fields';
7
- import { type Logger } from '@aztec/foundation/log';
8
- import { type InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
9
- import { CommitteeAttestation } from '@aztec/stdlib/block';
10
- import { PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
11
- import { Proof } from '@aztec/stdlib/proofs';
12
- import { CheckpointHeader } from '@aztec/stdlib/rollup';
13
- import { type GetContractReturnType, type Hex } from 'viem';
14
- import type { DataRetrieval } from './structs/data_retrieval.js';
15
- import type { InboxMessage } from './structs/inbox_message.js';
16
- import type { L1PublishedData } from './structs/published.js';
17
- export type RetrievedCheckpoint = {
18
- checkpointNumber: CheckpointNumber;
19
- archiveRoot: Fr;
20
- header: CheckpointHeader;
21
- checkpointBlobData: CheckpointBlobData;
22
- l1: L1PublishedData;
23
- chainId: Fr;
24
- version: Fr;
25
- attestations: CommitteeAttestation[];
26
- };
27
- export declare function retrievedToPublishedCheckpoint({ checkpointNumber, archiveRoot, header: checkpointHeader, checkpointBlobData, l1, chainId, version, attestations }: RetrievedCheckpoint): Promise<PublishedCheckpoint>;
28
- /**
29
- * Fetches new checkpoints.
30
- * @param publicClient - The viem public client to use for transaction retrieval.
31
- * @param rollupAddress - The address of the rollup contract.
32
- * @param searchStartBlock - The block number to use for starting the search.
33
- * @param searchEndBlock - The highest block number that we should search up to.
34
- * @param expectedNextL2BlockNum - The next L2 block number that we expect to find.
35
- * @returns An array of block; as well as the next eth block to search from.
36
- */
37
- export declare function retrieveCheckpointsFromRollup(rollup: GetContractReturnType<typeof RollupAbi, ViemPublicClient>, publicClient: ViemPublicClient, blobSinkClient: BlobSinkClientInterface, searchStartBlock: bigint, searchEndBlock: bigint, logger?: Logger): Promise<RetrievedCheckpoint[]>;
38
- export declare function getL1BlockTime(publicClient: ViemPublicClient, blockNumber: bigint): Promise<bigint>;
39
- /** Given an L1 to L2 message, retrieves its corresponding event from the Inbox within a specific block range. */
40
- export declare function retrieveL1ToL2Message(inbox: GetContractReturnType<typeof InboxAbi, ViemClient>, leaf: Fr, fromBlock: bigint, toBlock: bigint): Promise<InboxMessage | undefined>;
41
- /**
42
- * Fetch L1 to L2 messages.
43
- * @param publicClient - The viem public client to use for transaction retrieval.
44
- * @param inboxAddress - The address of the inbox contract to fetch messages from.
45
- * @param blockUntilSynced - If true, blocks until the archiver has fully synced.
46
- * @param searchStartBlock - The block number to use for starting the search.
47
- * @param searchEndBlock - The highest block number that we should search up to.
48
- * @returns An array of InboxLeaf and next eth block to search from.
49
- */
50
- export declare function retrieveL1ToL2Messages(inbox: GetContractReturnType<typeof InboxAbi, ViemClient>, searchStartBlock: bigint, searchEndBlock: bigint): Promise<InboxMessage[]>;
51
- /** Retrieves L2ProofVerified events from the rollup contract. */
52
- export declare function retrieveL2ProofVerifiedEvents(publicClient: ViemPublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<{
53
- l1BlockNumber: bigint;
54
- checkpointNumber: CheckpointNumber;
55
- proverId: Fr;
56
- txHash: Hex;
57
- }[]>;
58
- /** Retrieve submitted proofs from the rollup contract */
59
- export declare function retrieveL2ProofsFromRollup(publicClient: ViemPublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<DataRetrieval<{
60
- proof: Proof;
61
- proverId: Fr;
62
- checkpointNumber: number;
63
- txHash: `0x${string}`;
64
- }>>;
65
- export type SubmitEpochProof = {
66
- archiveRoot: Fr;
67
- proverId: Fr;
68
- proof: Proof;
69
- };
70
- /**
71
- * Gets epoch proof metadata (archive root and proof) from the calldata of an L1 transaction.
72
- * Assumes that the block was published from an EOA.
73
- * TODO: Add retries and error management.
74
- * @param publicClient - The viem public client to use for transaction retrieval.
75
- * @param txHash - Hash of the tx that published it.
76
- * @param expectedProverId - Expected prover ID.
77
- * @returns Epoch proof metadata from the calldata, deserialized.
78
- */
79
- export declare function getProofFromSubmitProofTx(publicClient: ViemPublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitEpochProof>;
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9kYXRhX3JldHJpZXZhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsS0FBSyxrQkFBa0IsRUFJeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUVWLFVBQVUsRUFHVixnQkFBZ0IsRUFDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQWUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQVEsb0JBQW9CLEVBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQWMsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJeEQsT0FBTyxFQUVMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssR0FBRyxFQUtULE1BQU0sTUFBTSxDQUFDO0FBR2QsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxLQUFLLEVBQUUsZUFBZSxF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
@@ -1 +0,0 @@
1
- {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}