@aztec/archiver 3.0.0-devnet.6 → 3.0.0-devnet.6-patch.1
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/dest/archiver/archiver.d.ts +67 -60
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +391 -262
- package/dest/archiver/archiver_store.d.ts +21 -27
- package/dest/archiver/archiver_store.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.js +125 -140
- package/dest/archiver/config.d.ts +3 -2
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +13 -1
- package/dest/archiver/errors.d.ts +1 -1
- package/dest/archiver/errors.d.ts.map +1 -1
- package/dest/archiver/index.d.ts +1 -1
- package/dest/archiver/instrumentation.d.ts +5 -3
- package/dest/archiver/instrumentation.d.ts.map +1 -1
- package/dest/archiver/instrumentation.js +11 -0
- package/dest/archiver/kv_archiver_store/block_store.d.ts +10 -9
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +9 -8
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +2 -2
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_class_store.js +1 -1
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +2 -2
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +23 -29
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +7 -15
- package/dest/archiver/kv_archiver_store/log_store.d.ts +3 -10
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +4 -26
- package/dest/archiver/kv_archiver_store/message_store.d.ts +6 -5
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/message_store.js +15 -14
- package/dest/archiver/l1/bin/retrieve-calldata.d.ts +3 -0
- package/dest/archiver/l1/bin/retrieve-calldata.d.ts.map +1 -0
- package/dest/archiver/l1/bin/retrieve-calldata.js +147 -0
- package/dest/archiver/l1/calldata_retriever.d.ts +98 -0
- package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -0
- package/dest/archiver/l1/calldata_retriever.js +403 -0
- package/dest/archiver/l1/data_retrieval.d.ts +87 -0
- package/dest/archiver/l1/data_retrieval.d.ts.map +1 -0
- package/dest/archiver/l1/data_retrieval.js +318 -0
- package/dest/archiver/l1/debug_tx.d.ts +19 -0
- package/dest/archiver/l1/debug_tx.d.ts.map +1 -0
- package/dest/archiver/l1/debug_tx.js +73 -0
- package/dest/archiver/l1/spire_proposer.d.ts +70 -0
- package/dest/archiver/l1/spire_proposer.d.ts.map +1 -0
- package/dest/archiver/l1/spire_proposer.js +157 -0
- package/dest/archiver/l1/trace_tx.d.ts +97 -0
- package/dest/archiver/l1/trace_tx.d.ts.map +1 -0
- package/dest/archiver/l1/trace_tx.js +91 -0
- package/dest/archiver/l1/types.d.ts +12 -0
- package/dest/archiver/l1/types.d.ts.map +1 -0
- package/dest/archiver/l1/types.js +3 -0
- package/dest/archiver/l1/validate_trace.d.ts +29 -0
- package/dest/archiver/l1/validate_trace.d.ts.map +1 -0
- package/dest/archiver/l1/validate_trace.js +150 -0
- package/dest/archiver/structs/data_retrieval.d.ts +1 -1
- package/dest/archiver/structs/inbox_message.d.ts +4 -4
- package/dest/archiver/structs/inbox_message.d.ts.map +1 -1
- package/dest/archiver/structs/inbox_message.js +6 -5
- package/dest/archiver/structs/published.d.ts +3 -2
- package/dest/archiver/structs/published.d.ts.map +1 -1
- package/dest/archiver/validation.d.ts +10 -4
- package/dest/archiver/validation.d.ts.map +1 -1
- package/dest/archiver/validation.js +29 -21
- package/dest/factory.d.ts +3 -5
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +3 -2
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/rpc/index.d.ts +2 -2
- package/dest/test/index.d.ts +1 -1
- package/dest/test/mock_archiver.d.ts +16 -8
- package/dest/test/mock_archiver.d.ts.map +1 -1
- package/dest/test/mock_archiver.js +19 -14
- package/dest/test/mock_l1_to_l2_message_source.d.ts +7 -6
- package/dest/test/mock_l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/test/mock_l1_to_l2_message_source.js +10 -9
- package/dest/test/mock_l2_block_source.d.ts +15 -10
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +22 -9
- package/dest/test/mock_structs.d.ts +3 -2
- package/dest/test/mock_structs.d.ts.map +1 -1
- package/dest/test/mock_structs.js +9 -8
- package/package.json +18 -17
- package/src/archiver/archiver.ts +531 -345
- package/src/archiver/archiver_store.ts +24 -27
- package/src/archiver/archiver_store_test_suite.ts +151 -128
- package/src/archiver/config.ts +13 -7
- package/src/archiver/instrumentation.ts +16 -2
- package/src/archiver/kv_archiver_store/block_store.ts +18 -17
- package/src/archiver/kv_archiver_store/contract_class_store.ts +1 -1
- package/src/archiver/kv_archiver_store/contract_instance_store.ts +1 -1
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +23 -32
- package/src/archiver/kv_archiver_store/log_store.ts +4 -30
- package/src/archiver/kv_archiver_store/message_store.ts +21 -18
- package/src/archiver/l1/README.md +98 -0
- package/src/archiver/l1/bin/retrieve-calldata.ts +182 -0
- package/src/archiver/l1/calldata_retriever.ts +531 -0
- package/src/archiver/{data_retrieval.ts → l1/data_retrieval.ts} +196 -250
- package/src/archiver/l1/debug_tx.ts +99 -0
- package/src/archiver/l1/spire_proposer.ts +160 -0
- package/src/archiver/l1/trace_tx.ts +128 -0
- package/src/archiver/l1/types.ts +13 -0
- package/src/archiver/l1/validate_trace.ts +211 -0
- package/src/archiver/structs/inbox_message.ts +8 -8
- package/src/archiver/structs/published.ts +2 -1
- package/src/archiver/validation.ts +52 -27
- package/src/factory.ts +4 -5
- package/src/index.ts +1 -1
- package/src/test/fixtures/debug_traceTransaction-multicall3.json +88 -0
- package/src/test/fixtures/debug_traceTransaction-multiplePropose.json +153 -0
- package/src/test/fixtures/debug_traceTransaction-proxied.json +122 -0
- package/src/test/fixtures/trace_transaction-multicall3.json +65 -0
- package/src/test/fixtures/trace_transaction-multiplePropose.json +319 -0
- package/src/test/fixtures/trace_transaction-proxied.json +128 -0
- package/src/test/fixtures/trace_transaction-randomRevert.json +216 -0
- package/src/test/mock_archiver.ts +22 -16
- package/src/test/mock_l1_to_l2_message_source.ts +10 -9
- package/src/test/mock_l2_block_source.ts +32 -15
- package/src/test/mock_structs.ts +10 -9
- package/dest/archiver/data_retrieval.d.ts +0 -79
- package/dest/archiver/data_retrieval.d.ts.map +0 -1
- package/dest/archiver/data_retrieval.js +0 -362
|
@@ -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,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { L2Block, type L2BlockSource } from '@aztec/stdlib/block';
|
|
4
|
+
import type { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
3
5
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
4
6
|
|
|
5
7
|
import { MockL1ToL2MessageSource } from './mock_l1_to_l2_message_source.js';
|
|
@@ -11,12 +13,12 @@ import { MockL2BlockSource } from './mock_l2_block_source.js';
|
|
|
11
13
|
export class MockArchiver extends MockL2BlockSource implements L2BlockSource, L1ToL2MessageSource {
|
|
12
14
|
private messageSource = new MockL1ToL2MessageSource(0);
|
|
13
15
|
|
|
14
|
-
public setL1ToL2Messages(
|
|
15
|
-
this.messageSource.setL1ToL2Messages(
|
|
16
|
+
public setL1ToL2Messages(checkpointNumber: CheckpointNumber, msgs: Fr[]) {
|
|
17
|
+
this.messageSource.setL1ToL2Messages(checkpointNumber, msgs);
|
|
16
18
|
}
|
|
17
19
|
|
|
18
|
-
getL1ToL2Messages(
|
|
19
|
-
return this.messageSource.getL1ToL2Messages(
|
|
20
|
+
getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
|
|
21
|
+
return this.messageSource.getL1ToL2Messages(checkpointNumber);
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined> {
|
|
@@ -28,30 +30,34 @@ export class MockArchiver extends MockL2BlockSource implements L2BlockSource, L1
|
|
|
28
30
|
* A mocked implementation of the archiver with a set of precomputed blocks and messages.
|
|
29
31
|
*/
|
|
30
32
|
export class MockPrefilledArchiver extends MockArchiver {
|
|
31
|
-
private
|
|
33
|
+
private prefilled: Checkpoint[] = [];
|
|
32
34
|
|
|
33
|
-
constructor(
|
|
35
|
+
constructor(prefilled: { checkpoint: Checkpoint; messages: Fr[] }[]) {
|
|
34
36
|
super();
|
|
35
|
-
this.
|
|
36
|
-
messages.forEach((msgs, i) => this.setL1ToL2Messages(i + 1, msgs));
|
|
37
|
+
this.setPrefilled(prefilled);
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
public
|
|
40
|
-
for (const
|
|
41
|
-
this.
|
|
40
|
+
public setPrefilled(prefilled: { checkpoint: Checkpoint; messages: Fr[] }[]) {
|
|
41
|
+
for (const { checkpoint, messages } of prefilled) {
|
|
42
|
+
this.prefilled[checkpoint.number - 1] = checkpoint;
|
|
43
|
+
if (checkpoint.blocks.length !== 1) {
|
|
44
|
+
throw new Error('Prefilled checkpoint must only have 1 block at the moment.');
|
|
45
|
+
}
|
|
46
|
+
this.setL1ToL2Messages(checkpoint.number, messages);
|
|
42
47
|
}
|
|
43
|
-
messages.forEach((msgs, i) => this.setL1ToL2Messages(blocks[i].number, msgs));
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
public override createBlocks(numBlocks: number) {
|
|
47
|
-
|
|
51
|
+
const flattenedBlocks = this.prefilled.flatMap(c => c.blocks);
|
|
52
|
+
if (this.l2Blocks.length + numBlocks > flattenedBlocks.length) {
|
|
48
53
|
throw new Error(
|
|
49
54
|
`Not enough precomputed blocks to create ${numBlocks} more blocks (already at ${this.l2Blocks.length})`,
|
|
50
55
|
);
|
|
51
56
|
}
|
|
52
57
|
|
|
53
58
|
const fromBlock = this.l2Blocks.length;
|
|
54
|
-
|
|
59
|
+
// TODO: Add L2 blocks and checkpoints separately once archiver has the apis for that.
|
|
60
|
+
this.addBlocks(this.prefilled.slice(fromBlock, fromBlock + numBlocks).map(c => L2Block.fromCheckpoint(c)));
|
|
55
61
|
return Promise.resolve();
|
|
56
62
|
}
|
|
57
63
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BlockNumber, type CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
3
|
import type { L2Tips } from '@aztec/stdlib/block';
|
|
3
4
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
4
5
|
|
|
@@ -6,33 +7,33 @@ import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
|
6
7
|
* A mocked implementation of L1ToL2MessageSource to be used in tests.
|
|
7
8
|
*/
|
|
8
9
|
export class MockL1ToL2MessageSource implements L1ToL2MessageSource {
|
|
9
|
-
private
|
|
10
|
+
private messagesPerCheckpoint = new Map<CheckpointNumber, Fr[]>();
|
|
10
11
|
|
|
11
12
|
constructor(private blockNumber: number) {}
|
|
12
13
|
|
|
13
|
-
public setL1ToL2Messages(
|
|
14
|
-
this.
|
|
14
|
+
public setL1ToL2Messages(checkpointNumber: CheckpointNumber, msgs: Fr[]) {
|
|
15
|
+
this.messagesPerCheckpoint.set(checkpointNumber, msgs);
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
public setBlockNumber(blockNumber: number) {
|
|
18
19
|
this.blockNumber = blockNumber;
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
getL1ToL2Messages(
|
|
22
|
-
return Promise.resolve(this.
|
|
22
|
+
getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
|
|
23
|
+
return Promise.resolve(this.messagesPerCheckpoint.get(checkpointNumber) ?? []);
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined> {
|
|
26
27
|
throw new Error('Method not implemented.');
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
getBlockNumber()
|
|
30
|
-
return Promise.resolve(this.blockNumber);
|
|
30
|
+
getBlockNumber() {
|
|
31
|
+
return Promise.resolve(BlockNumber(this.blockNumber));
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
getL2Tips(): Promise<L2Tips> {
|
|
34
35
|
const number = this.blockNumber;
|
|
35
|
-
const tip = { number, hash: new Fr(number).toString() };
|
|
36
|
+
const tip = { number: BlockNumber(number), hash: new Fr(number).toString() };
|
|
36
37
|
return Promise.resolve({
|
|
37
38
|
latest: tip,
|
|
38
39
|
proven: tip,
|
|
@@ -1,8 +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
|
+
import { BlockNumber, CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
4
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
5
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
6
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
6
7
|
import { createLogger } from '@aztec/foundation/log';
|
|
7
8
|
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
8
9
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -14,6 +15,7 @@ import {
|
|
|
14
15
|
PublishedL2Block,
|
|
15
16
|
type ValidateBlockResult,
|
|
16
17
|
} from '@aztec/stdlib/block';
|
|
18
|
+
import type { Checkpoint } from '@aztec/stdlib/checkpoint';
|
|
17
19
|
import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
18
20
|
import { EmptyL1RollupConstants, type L1RollupConstants, getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
|
|
19
21
|
import { type BlockHeader, TxHash, TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
@@ -33,7 +35,7 @@ export class MockL2BlockSource implements L2BlockSource, ContractDataSource {
|
|
|
33
35
|
public async createBlocks(numBlocks: number) {
|
|
34
36
|
for (let i = 0; i < numBlocks; i++) {
|
|
35
37
|
const blockNum = this.l2Blocks.length + 1;
|
|
36
|
-
const block = await L2Block.random(blockNum);
|
|
38
|
+
const block = await L2Block.random(BlockNumber(blockNum));
|
|
37
39
|
this.l2Blocks.push(block);
|
|
38
40
|
}
|
|
39
41
|
|
|
@@ -82,11 +84,11 @@ export class MockL2BlockSource implements L2BlockSource, ContractDataSource {
|
|
|
82
84
|
* @returns In this mock instance, returns the number of L2 blocks that we've mocked.
|
|
83
85
|
*/
|
|
84
86
|
public getBlockNumber() {
|
|
85
|
-
return Promise.resolve(this.l2Blocks.length);
|
|
87
|
+
return Promise.resolve(BlockNumber(this.l2Blocks.length));
|
|
86
88
|
}
|
|
87
89
|
|
|
88
|
-
public getProvenBlockNumber()
|
|
89
|
-
return Promise.resolve(this.provenBlockNumber);
|
|
90
|
+
public getProvenBlockNumber() {
|
|
91
|
+
return Promise.resolve(BlockNumber(this.provenBlockNumber));
|
|
90
92
|
}
|
|
91
93
|
|
|
92
94
|
/**
|
|
@@ -112,6 +114,16 @@ export class MockL2BlockSource implements L2BlockSource, ContractDataSource {
|
|
|
112
114
|
);
|
|
113
115
|
}
|
|
114
116
|
|
|
117
|
+
public async getPublishedCheckpoints(from: CheckpointNumber, limit: number) {
|
|
118
|
+
// TODO: Implement this properly. This only works when we have one block per checkpoint.
|
|
119
|
+
return (await this.getPublishedBlocks(from, limit)).map(block => block.toPublishedCheckpoint());
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
public async getCheckpointByArchive(archive: Fr): Promise<Checkpoint | undefined> {
|
|
123
|
+
// TODO: Implement this properly. This only works when we have one block per checkpoint.
|
|
124
|
+
return (await this.getPublishedBlockByArchive(archive))?.block.toCheckpoint();
|
|
125
|
+
}
|
|
126
|
+
|
|
115
127
|
public async getPublishedBlocks(from: number, limit: number, proven?: boolean) {
|
|
116
128
|
const blocks = await this.getBlocks(from, limit, proven);
|
|
117
129
|
return blocks.map(block =>
|
|
@@ -182,17 +194,22 @@ export class MockL2BlockSource implements L2BlockSource, ContractDataSource {
|
|
|
182
194
|
return Promise.resolve(this.l2Blocks.at(typeof number === 'number' ? number - 1 : -1)?.getBlockHeader());
|
|
183
195
|
}
|
|
184
196
|
|
|
185
|
-
|
|
197
|
+
getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]> {
|
|
198
|
+
// TODO: Implement this properly. This only works when we have one block per checkpoint.
|
|
199
|
+
return this.getBlocksForEpoch(epochNumber).then(blocks => blocks.map(b => b.toCheckpoint()));
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
getBlocksForEpoch(epochNumber: EpochNumber): Promise<L2Block[]> {
|
|
186
203
|
const epochDuration = DefaultL1ContractsConfig.aztecEpochDuration;
|
|
187
204
|
const [start, end] = getSlotRangeForEpoch(epochNumber, { epochDuration });
|
|
188
205
|
const blocks = this.l2Blocks.filter(b => {
|
|
189
|
-
const slot = b.header.globalVariables.slotNumber
|
|
206
|
+
const slot = b.header.globalVariables.slotNumber;
|
|
190
207
|
return slot >= start && slot <= end;
|
|
191
208
|
});
|
|
192
209
|
return Promise.resolve(blocks);
|
|
193
210
|
}
|
|
194
211
|
|
|
195
|
-
async getBlockHeadersForEpoch(epochNumber:
|
|
212
|
+
async getBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]> {
|
|
196
213
|
const blocks = await this.getBlocksForEpoch(epochNumber);
|
|
197
214
|
return blocks.map(b => b.getBlockHeader());
|
|
198
215
|
}
|
|
@@ -254,29 +271,29 @@ export class MockL2BlockSource implements L2BlockSource, ContractDataSource {
|
|
|
254
271
|
|
|
255
272
|
return {
|
|
256
273
|
latest: {
|
|
257
|
-
number: latest,
|
|
274
|
+
number: BlockNumber(latest),
|
|
258
275
|
hash: (await latestBlock?.hash())?.toString(),
|
|
259
276
|
},
|
|
260
277
|
proven: {
|
|
261
|
-
number: proven,
|
|
278
|
+
number: BlockNumber(proven),
|
|
262
279
|
hash: (await provenBlock?.hash())?.toString(),
|
|
263
280
|
},
|
|
264
281
|
finalized: {
|
|
265
|
-
number: finalized,
|
|
282
|
+
number: BlockNumber(finalized),
|
|
266
283
|
hash: (await finalizedBlock?.hash())?.toString(),
|
|
267
284
|
},
|
|
268
285
|
};
|
|
269
286
|
}
|
|
270
287
|
|
|
271
|
-
getL2EpochNumber(): Promise<
|
|
288
|
+
getL2EpochNumber(): Promise<EpochNumber> {
|
|
272
289
|
throw new Error('Method not implemented.');
|
|
273
290
|
}
|
|
274
291
|
|
|
275
|
-
getL2SlotNumber(): Promise<
|
|
292
|
+
getL2SlotNumber(): Promise<SlotNumber> {
|
|
276
293
|
throw new Error('Method not implemented.');
|
|
277
294
|
}
|
|
278
295
|
|
|
279
|
-
isEpochComplete(_epochNumber:
|
|
296
|
+
isEpochComplete(_epochNumber: EpochNumber): Promise<boolean> {
|
|
280
297
|
throw new Error('Method not implemented.');
|
|
281
298
|
}
|
|
282
299
|
|
package/src/test/mock_structs.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
-
import { randomBigInt, randomInt } from '@aztec/foundation/crypto';
|
|
3
|
-
import { Fr } from '@aztec/foundation/
|
|
3
|
+
import { randomBigInt, randomInt } from '@aztec/foundation/crypto/random';
|
|
4
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
5
|
import { InboxLeaf } from '@aztec/stdlib/messaging';
|
|
5
6
|
|
|
6
7
|
import { type InboxMessage, updateRollingHash } from '../archiver/structs/inbox_message.js';
|
|
@@ -9,17 +10,17 @@ export function makeInboxMessage(
|
|
|
9
10
|
previousRollingHash = Buffer16.ZERO,
|
|
10
11
|
overrides: Partial<InboxMessage> = {},
|
|
11
12
|
): InboxMessage {
|
|
12
|
-
const {
|
|
13
|
+
const { checkpointNumber = CheckpointNumber(randomInt(100) + 1) } = overrides;
|
|
13
14
|
const { l1BlockNumber = randomBigInt(100n) + 1n } = overrides;
|
|
14
15
|
const { l1BlockHash = Buffer32.random() } = overrides;
|
|
15
16
|
const { leaf = Fr.random() } = overrides;
|
|
16
17
|
const { rollingHash = updateRollingHash(previousRollingHash, leaf) } = overrides;
|
|
17
|
-
const { index = InboxLeaf.
|
|
18
|
+
const { index = InboxLeaf.smallestIndexForCheckpoint(checkpointNumber) } = overrides;
|
|
18
19
|
|
|
19
20
|
return {
|
|
20
21
|
index,
|
|
21
22
|
leaf,
|
|
22
|
-
|
|
23
|
+
checkpointNumber,
|
|
23
24
|
l1BlockNumber,
|
|
24
25
|
l1BlockHash,
|
|
25
26
|
rollingHash,
|
|
@@ -30,17 +31,17 @@ export function makeInboxMessages(
|
|
|
30
31
|
count: number,
|
|
31
32
|
opts: {
|
|
32
33
|
initialHash?: Buffer16;
|
|
33
|
-
|
|
34
|
+
initialCheckpointNumber?: CheckpointNumber;
|
|
34
35
|
overrideFn?: (msg: InboxMessage, index: number) => InboxMessage;
|
|
35
36
|
} = {},
|
|
36
37
|
): InboxMessage[] {
|
|
37
|
-
const { initialHash = Buffer16.ZERO, overrideFn = msg => msg,
|
|
38
|
+
const { initialHash = Buffer16.ZERO, overrideFn = msg => msg, initialCheckpointNumber = 1 } = opts;
|
|
38
39
|
const messages: InboxMessage[] = [];
|
|
39
40
|
let rollingHash = initialHash;
|
|
40
41
|
for (let i = 0; i < count; i++) {
|
|
41
42
|
const leaf = Fr.random();
|
|
42
|
-
const
|
|
43
|
-
const message = overrideFn(makeInboxMessage(rollingHash, { leaf,
|
|
43
|
+
const checkpointNumber = CheckpointNumber(i + initialCheckpointNumber);
|
|
44
|
+
const message = overrideFn(makeInboxMessage(rollingHash, { leaf, checkpointNumber }), i);
|
|
44
45
|
rollingHash = message.rollingHash;
|
|
45
46
|
messages.push(message);
|
|
46
47
|
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import type { BlobSinkClientInterface } from '@aztec/blob-sink/client';
|
|
2
|
-
import type { ViemClient, ViemPublicClient } from '@aztec/ethereum';
|
|
3
|
-
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
-
import { type Logger } from '@aztec/foundation/log';
|
|
6
|
-
import { type InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
|
|
7
|
-
import { CommitteeAttestation, PublishedL2Block } from '@aztec/stdlib/block';
|
|
8
|
-
import { Proof } from '@aztec/stdlib/proofs';
|
|
9
|
-
import { CheckpointHeader } from '@aztec/stdlib/rollup';
|
|
10
|
-
import { StateReference } from '@aztec/stdlib/tx';
|
|
11
|
-
import { type GetContractReturnType, type Hex } from 'viem';
|
|
12
|
-
import type { DataRetrieval } from './structs/data_retrieval.js';
|
|
13
|
-
import type { InboxMessage } from './structs/inbox_message.js';
|
|
14
|
-
import type { L1PublishedData } from './structs/published.js';
|
|
15
|
-
export type RetrievedL2Block = {
|
|
16
|
-
l2BlockNumber: number;
|
|
17
|
-
archiveRoot: Fr;
|
|
18
|
-
stateReference: StateReference;
|
|
19
|
-
header: CheckpointHeader;
|
|
20
|
-
blobFields: Fr[];
|
|
21
|
-
l1: L1PublishedData;
|
|
22
|
-
chainId: Fr;
|
|
23
|
-
version: Fr;
|
|
24
|
-
attestations: CommitteeAttestation[];
|
|
25
|
-
};
|
|
26
|
-
export declare function retrievedBlockToPublishedL2Block(retrievedBlock: RetrievedL2Block): Promise<PublishedL2Block>;
|
|
27
|
-
/**
|
|
28
|
-
* Fetches new L2 blocks.
|
|
29
|
-
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
30
|
-
* @param rollupAddress - The address of the rollup contract.
|
|
31
|
-
* @param searchStartBlock - The block number to use for starting the search.
|
|
32
|
-
* @param searchEndBlock - The highest block number that we should search up to.
|
|
33
|
-
* @param expectedNextL2BlockNum - The next L2 block number that we expect to find.
|
|
34
|
-
* @returns An array of block; as well as the next eth block to search from.
|
|
35
|
-
*/
|
|
36
|
-
export declare function retrieveBlocksFromRollup(rollup: GetContractReturnType<typeof RollupAbi, ViemPublicClient>, publicClient: ViemPublicClient, blobSinkClient: BlobSinkClientInterface, searchStartBlock: bigint, searchEndBlock: bigint, logger?: Logger): Promise<RetrievedL2Block[]>;
|
|
37
|
-
export declare function getL1BlockTime(publicClient: ViemPublicClient, blockNumber: bigint): Promise<bigint>;
|
|
38
|
-
/** Given an L1 to L2 message, retrieves its corresponding event from the Inbox within a specific block range. */
|
|
39
|
-
export declare function retrieveL1ToL2Message(inbox: GetContractReturnType<typeof InboxAbi, ViemClient>, leaf: Fr, fromBlock: bigint, toBlock: bigint): Promise<InboxMessage | undefined>;
|
|
40
|
-
/**
|
|
41
|
-
* Fetch L1 to L2 messages.
|
|
42
|
-
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
43
|
-
* @param inboxAddress - The address of the inbox contract to fetch messages from.
|
|
44
|
-
* @param blockUntilSynced - If true, blocks until the archiver has fully synced.
|
|
45
|
-
* @param searchStartBlock - The block number to use for starting the search.
|
|
46
|
-
* @param searchEndBlock - The highest block number that we should search up to.
|
|
47
|
-
* @returns An array of InboxLeaf and next eth block to search from.
|
|
48
|
-
*/
|
|
49
|
-
export declare function retrieveL1ToL2Messages(inbox: GetContractReturnType<typeof InboxAbi, ViemClient>, searchStartBlock: bigint, searchEndBlock: bigint): Promise<InboxMessage[]>;
|
|
50
|
-
/** Retrieves L2ProofVerified events from the rollup contract. */
|
|
51
|
-
export declare function retrieveL2ProofVerifiedEvents(publicClient: ViemPublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<{
|
|
52
|
-
l1BlockNumber: bigint;
|
|
53
|
-
l2BlockNumber: number;
|
|
54
|
-
proverId: Fr;
|
|
55
|
-
txHash: Hex;
|
|
56
|
-
}[]>;
|
|
57
|
-
/** Retrieve submitted proofs from the rollup contract */
|
|
58
|
-
export declare function retrieveL2ProofsFromRollup(publicClient: ViemPublicClient, rollupAddress: EthAddress, searchStartBlock: bigint, searchEndBlock?: bigint): Promise<DataRetrieval<{
|
|
59
|
-
proof: Proof;
|
|
60
|
-
proverId: Fr;
|
|
61
|
-
l2BlockNumber: number;
|
|
62
|
-
txHash: `0x${string}`;
|
|
63
|
-
}>>;
|
|
64
|
-
export type SubmitBlockProof = {
|
|
65
|
-
archiveRoot: Fr;
|
|
66
|
-
proverId: Fr;
|
|
67
|
-
proof: Proof;
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* Gets block metadata (header and archive snapshot) from the calldata of an L1 transaction.
|
|
71
|
-
* Assumes that the block was published from an EOA.
|
|
72
|
-
* TODO: Add retries and error management.
|
|
73
|
-
* @param publicClient - The viem public client to use for transaction retrieval.
|
|
74
|
-
* @param txHash - Hash of the tx that published it.
|
|
75
|
-
* @param l2BlockNum - L2 block number.
|
|
76
|
-
* @returns L2 block metadata (header and archive) from the calldata, deserialized
|
|
77
|
-
*/
|
|
78
|
-
export declare function getProofFromSubmitProofTx(publicClient: ViemPublicClient, txHash: `0x${string}`, expectedProverId: Fr): Promise<SubmitBlockProof>;
|
|
79
|
-
//# sourceMappingURL=data_retrieval.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/archiver/data_retrieval.ts"],"names":[],"mappings":"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"}
|