@aztec/archiver 0.0.0-test.1 → 0.0.1-commit.03f7ef2
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/README.md +27 -6
- package/dest/archiver/archiver.d.ts +201 -94
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +1141 -396
- package/dest/archiver/archiver_store.d.ts +171 -83
- 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 +2389 -393
- package/dest/archiver/config.d.ts +7 -22
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +30 -14
- package/dest/archiver/errors.d.ts +33 -1
- package/dest/archiver/errors.d.ts.map +1 -1
- package/dest/archiver/errors.js +49 -0
- package/dest/archiver/index.d.ts +3 -4
- package/dest/archiver/index.d.ts.map +1 -1
- package/dest/archiver/index.js +1 -2
- package/dest/archiver/instrumentation.d.ts +14 -6
- package/dest/archiver/instrumentation.d.ts.map +1 -1
- package/dest/archiver/instrumentation.js +69 -17
- package/dest/archiver/kv_archiver_store/block_store.d.ts +91 -21
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +476 -86
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +4 -4
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_class_store.js +13 -19
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +12 -9
- package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_instance_store.js +30 -16
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +80 -75
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +142 -83
- package/dest/archiver/kv_archiver_store/log_store.d.ts +12 -16
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +153 -113
- package/dest/archiver/kv_archiver_store/message_store.d.ts +25 -18
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/message_store.js +152 -49
- 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 +149 -0
- package/dest/archiver/l1/calldata_retriever.d.ts +112 -0
- package/dest/archiver/l1/calldata_retriever.d.ts.map +1 -0
- package/dest/archiver/l1/calldata_retriever.js +471 -0
- package/dest/archiver/l1/data_retrieval.d.ts +90 -0
- package/dest/archiver/l1/data_retrieval.d.ts.map +1 -0
- package/dest/archiver/l1/data_retrieval.js +331 -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 +15 -0
- package/dest/archiver/structs/inbox_message.d.ts.map +1 -0
- package/dest/archiver/structs/inbox_message.js +39 -0
- package/dest/archiver/structs/published.d.ts +2 -11
- package/dest/archiver/structs/published.d.ts.map +1 -1
- package/dest/archiver/structs/published.js +1 -1
- package/dest/archiver/validation.d.ts +17 -0
- package/dest/archiver/validation.d.ts.map +1 -0
- package/dest/archiver/validation.js +98 -0
- package/dest/factory.d.ts +9 -14
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +22 -52
- 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 -3
- package/dest/rpc/index.d.ts.map +1 -1
- package/dest/rpc/index.js +1 -4
- 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 +9 -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 +21 -7
- package/dest/test/mock_l2_block_source.d.ts +52 -13
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +140 -15
- package/dest/test/mock_structs.d.ts +10 -0
- package/dest/test/mock_structs.d.ts.map +1 -0
- package/dest/test/mock_structs.js +38 -0
- package/package.json +29 -30
- package/src/archiver/archiver.ts +1477 -501
- package/src/archiver/archiver_store.ts +197 -88
- package/src/archiver/archiver_store_test_suite.ts +2403 -350
- package/src/archiver/config.ts +38 -46
- package/src/archiver/errors.ts +85 -0
- package/src/archiver/index.ts +2 -3
- package/src/archiver/instrumentation.ts +91 -22
- package/src/archiver/kv_archiver_store/block_store.ts +640 -101
- package/src/archiver/kv_archiver_store/contract_class_store.ts +14 -24
- package/src/archiver/kv_archiver_store/contract_instance_store.ts +36 -28
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +193 -113
- package/src/archiver/kv_archiver_store/log_store.ts +205 -127
- package/src/archiver/kv_archiver_store/message_store.ts +213 -54
- 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 +641 -0
- package/src/archiver/l1/data_retrieval.ts +512 -0
- 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 +41 -0
- package/src/archiver/structs/published.ts +1 -11
- package/src/archiver/validation.ts +124 -0
- package/src/factory.ts +28 -69
- package/src/index.ts +1 -1
- package/src/rpc/index.ts +1 -5
- 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 +20 -8
- package/src/test/mock_l2_block_source.ts +186 -21
- package/src/test/mock_structs.ts +50 -0
- package/dest/archiver/data_retrieval.d.ts +0 -74
- package/dest/archiver/data_retrieval.d.ts.map +0 -1
- package/dest/archiver/data_retrieval.js +0 -283
- package/dest/archiver/kv_archiver_store/nullifier_store.d.ts +0 -12
- package/dest/archiver/kv_archiver_store/nullifier_store.d.ts.map +0 -1
- package/dest/archiver/kv_archiver_store/nullifier_store.js +0 -73
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +0 -23
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +0 -1
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +0 -49
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +0 -175
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +0 -1
- package/dest/archiver/memory_archiver_store/memory_archiver_store.js +0 -636
- package/src/archiver/data_retrieval.ts +0 -422
- package/src/archiver/kv_archiver_store/nullifier_store.ts +0 -97
- package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +0 -61
- package/src/archiver/memory_archiver_store/memory_archiver_store.ts +0 -801
|
@@ -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,31 +1,43 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { BlockNumber, type CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import type { L2Tips } from '@aztec/stdlib/block';
|
|
2
4
|
import type { L1ToL2MessageSource } from '@aztec/stdlib/messaging';
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* A mocked implementation of L1ToL2MessageSource to be used in tests.
|
|
6
8
|
*/
|
|
7
9
|
export class MockL1ToL2MessageSource implements L1ToL2MessageSource {
|
|
8
|
-
private
|
|
10
|
+
private messagesPerCheckpoint = new Map<CheckpointNumber, Fr[]>();
|
|
9
11
|
|
|
10
12
|
constructor(private blockNumber: number) {}
|
|
11
13
|
|
|
12
|
-
public setL1ToL2Messages(
|
|
13
|
-
this.
|
|
14
|
+
public setL1ToL2Messages(checkpointNumber: CheckpointNumber, msgs: Fr[]) {
|
|
15
|
+
this.messagesPerCheckpoint.set(checkpointNumber, msgs);
|
|
14
16
|
}
|
|
15
17
|
|
|
16
18
|
public setBlockNumber(blockNumber: number) {
|
|
17
19
|
this.blockNumber = blockNumber;
|
|
18
20
|
}
|
|
19
21
|
|
|
20
|
-
getL1ToL2Messages(
|
|
21
|
-
return Promise.resolve(this.
|
|
22
|
+
getL1ToL2Messages(checkpointNumber: CheckpointNumber): Promise<Fr[]> {
|
|
23
|
+
return Promise.resolve(this.messagesPerCheckpoint.get(checkpointNumber) ?? []);
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
getL1ToL2MessageIndex(_l1ToL2Message: Fr): Promise<bigint | undefined> {
|
|
25
27
|
throw new Error('Method not implemented.');
|
|
26
28
|
}
|
|
27
29
|
|
|
28
|
-
getBlockNumber()
|
|
29
|
-
return Promise.resolve(this.blockNumber);
|
|
30
|
+
getBlockNumber() {
|
|
31
|
+
return Promise.resolve(BlockNumber(this.blockNumber));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
getL2Tips(): Promise<L2Tips> {
|
|
35
|
+
const number = this.blockNumber;
|
|
36
|
+
const tip = { number: BlockNumber(number), hash: new Fr(number).toString() };
|
|
37
|
+
return Promise.resolve({
|
|
38
|
+
latest: tip,
|
|
39
|
+
proven: tip,
|
|
40
|
+
finalized: tip,
|
|
41
|
+
});
|
|
30
42
|
}
|
|
31
43
|
}
|
|
@@ -1,24 +1,42 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GENESIS_ARCHIVE_ROOT } from '@aztec/constants';
|
|
2
|
+
import { DefaultL1ContractsConfig } from '@aztec/ethereum/config';
|
|
3
|
+
import { BlockNumber, CheckpointNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
4
|
+
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
5
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
6
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
7
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
8
|
+
import type { FunctionSelector } from '@aztec/stdlib/abi';
|
|
9
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
10
|
+
import {
|
|
11
|
+
L2Block,
|
|
12
|
+
L2BlockHash,
|
|
13
|
+
L2BlockNew,
|
|
14
|
+
type L2BlockSource,
|
|
15
|
+
type L2Tips,
|
|
16
|
+
PublishedL2Block,
|
|
17
|
+
type ValidateBlockResult,
|
|
18
|
+
} from '@aztec/stdlib/block';
|
|
19
|
+
import { type Checkpoint, L1PublishedData } from '@aztec/stdlib/checkpoint';
|
|
20
|
+
import type { ContractClassPublic, ContractDataSource, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
21
|
+
import { EmptyL1RollupConstants, type L1RollupConstants, getSlotRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
|
|
6
22
|
import { type BlockHeader, TxHash, TxReceipt, TxStatus } from '@aztec/stdlib/tx';
|
|
23
|
+
import type { UInt64 } from '@aztec/stdlib/types';
|
|
7
24
|
|
|
8
25
|
/**
|
|
9
26
|
* A mocked implementation of L2BlockSource to be used in tests.
|
|
10
27
|
*/
|
|
11
|
-
export class MockL2BlockSource implements L2BlockSource {
|
|
28
|
+
export class MockL2BlockSource implements L2BlockSource, ContractDataSource {
|
|
12
29
|
protected l2Blocks: L2Block[] = [];
|
|
13
30
|
|
|
14
31
|
private provenBlockNumber: number = 0;
|
|
32
|
+
private finalizedBlockNumber: number = 0;
|
|
15
33
|
|
|
16
34
|
private log = createLogger('archiver:mock_l2_block_source');
|
|
17
35
|
|
|
18
36
|
public async createBlocks(numBlocks: number) {
|
|
19
37
|
for (let i = 0; i < numBlocks; i++) {
|
|
20
38
|
const blockNum = this.l2Blocks.length + 1;
|
|
21
|
-
const block = await L2Block.random(blockNum);
|
|
39
|
+
const block = await L2Block.random(BlockNumber(blockNum));
|
|
22
40
|
this.l2Blocks.push(block);
|
|
23
41
|
}
|
|
24
42
|
|
|
@@ -39,6 +57,13 @@ export class MockL2BlockSource implements L2BlockSource {
|
|
|
39
57
|
this.provenBlockNumber = provenBlockNumber;
|
|
40
58
|
}
|
|
41
59
|
|
|
60
|
+
public setFinalizedBlockNumber(finalizedBlockNumber: number) {
|
|
61
|
+
if (finalizedBlockNumber > this.provenBlockNumber) {
|
|
62
|
+
this.provenBlockNumber = finalizedBlockNumber;
|
|
63
|
+
}
|
|
64
|
+
this.finalizedBlockNumber = finalizedBlockNumber;
|
|
65
|
+
}
|
|
66
|
+
|
|
42
67
|
/**
|
|
43
68
|
* Method to fetch the rollup contract address at the base-layer.
|
|
44
69
|
* @returns The rollup address.
|
|
@@ -60,11 +85,16 @@ export class MockL2BlockSource implements L2BlockSource {
|
|
|
60
85
|
* @returns In this mock instance, returns the number of L2 blocks that we've mocked.
|
|
61
86
|
*/
|
|
62
87
|
public getBlockNumber() {
|
|
63
|
-
return Promise.resolve(this.l2Blocks.length);
|
|
88
|
+
return Promise.resolve(BlockNumber(this.l2Blocks.length));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
public getProvenBlockNumber() {
|
|
92
|
+
return Promise.resolve(BlockNumber(this.provenBlockNumber));
|
|
64
93
|
}
|
|
65
94
|
|
|
66
|
-
public
|
|
67
|
-
|
|
95
|
+
public getCheckpointedBlock(_number: BlockNumber) {
|
|
96
|
+
// In this mock, we don't track checkpointed blocks separately
|
|
97
|
+
return Promise.resolve(undefined);
|
|
68
98
|
}
|
|
69
99
|
|
|
70
100
|
/**
|
|
@@ -76,6 +106,16 @@ export class MockL2BlockSource implements L2BlockSource {
|
|
|
76
106
|
return Promise.resolve(this.l2Blocks[number - 1]);
|
|
77
107
|
}
|
|
78
108
|
|
|
109
|
+
/**
|
|
110
|
+
* Gets an L2 block (new format).
|
|
111
|
+
* @param number - The block number to return.
|
|
112
|
+
* @returns The requested L2 block.
|
|
113
|
+
*/
|
|
114
|
+
public getL2BlockNew(number: BlockNumber): Promise<L2BlockNew | undefined> {
|
|
115
|
+
const block = this.l2Blocks[number - 1];
|
|
116
|
+
return Promise.resolve(block?.toL2Block());
|
|
117
|
+
}
|
|
118
|
+
|
|
79
119
|
/**
|
|
80
120
|
* Gets up to `limit` amount of L2 blocks starting from `from`.
|
|
81
121
|
* @param from - Number of the first block to return (inclusive).
|
|
@@ -90,24 +130,98 @@ export class MockL2BlockSource implements L2BlockSource {
|
|
|
90
130
|
);
|
|
91
131
|
}
|
|
92
132
|
|
|
133
|
+
public async getPublishedCheckpoints(from: CheckpointNumber, limit: number) {
|
|
134
|
+
// TODO: Implement this properly. This only works when we have one block per checkpoint.
|
|
135
|
+
return (await this.getPublishedBlocks(from, limit)).map(block => block.toPublishedCheckpoint());
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
public async getCheckpointByArchive(archive: Fr): Promise<Checkpoint | undefined> {
|
|
139
|
+
// TODO: Implement this properly. This only works when we have one block per checkpoint.
|
|
140
|
+
return (await this.getPublishedBlockByArchive(archive))?.block.toCheckpoint();
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
public async getPublishedBlocks(from: number, limit: number, proven?: boolean) {
|
|
144
|
+
const blocks = await this.getBlocks(from, limit, proven);
|
|
145
|
+
return blocks.map(block =>
|
|
146
|
+
PublishedL2Block.fromFields({
|
|
147
|
+
block,
|
|
148
|
+
l1: new L1PublishedData(BigInt(block.number), BigInt(block.number), Buffer32.random().toString()),
|
|
149
|
+
attestations: [],
|
|
150
|
+
}),
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
public async getPublishedBlockByHash(blockHash: Fr): Promise<PublishedL2Block | undefined> {
|
|
155
|
+
for (const block of this.l2Blocks) {
|
|
156
|
+
const hash = await block.hash();
|
|
157
|
+
if (hash.equals(blockHash)) {
|
|
158
|
+
return PublishedL2Block.fromFields({
|
|
159
|
+
block,
|
|
160
|
+
l1: new L1PublishedData(BigInt(block.number), BigInt(block.number), Buffer32.random().toString()),
|
|
161
|
+
attestations: [],
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
public getPublishedBlockByArchive(archive: Fr): Promise<PublishedL2Block | undefined> {
|
|
169
|
+
const block = this.l2Blocks.find(b => b.archive.root.equals(archive));
|
|
170
|
+
if (!block) {
|
|
171
|
+
return Promise.resolve(undefined);
|
|
172
|
+
}
|
|
173
|
+
return Promise.resolve(
|
|
174
|
+
PublishedL2Block.fromFields({
|
|
175
|
+
block,
|
|
176
|
+
l1: new L1PublishedData(BigInt(block.number), BigInt(block.number), Buffer32.random().toString()),
|
|
177
|
+
attestations: [],
|
|
178
|
+
}),
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
public async getBlockHeaderByHash(blockHash: Fr): Promise<BlockHeader | undefined> {
|
|
183
|
+
for (const block of this.l2Blocks) {
|
|
184
|
+
const hash = await block.hash();
|
|
185
|
+
if (hash.equals(blockHash)) {
|
|
186
|
+
return block.getBlockHeader();
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
public getBlockHeaderByArchive(archive: Fr): Promise<BlockHeader | undefined> {
|
|
193
|
+
const block = this.l2Blocks.find(b => b.archive.root.equals(archive));
|
|
194
|
+
return Promise.resolve(block?.getBlockHeader());
|
|
195
|
+
}
|
|
196
|
+
|
|
93
197
|
getBlockHeader(number: number | 'latest'): Promise<BlockHeader | undefined> {
|
|
94
|
-
return Promise.resolve(this.l2Blocks.at(typeof number === 'number' ? number - 1 : -1)?.
|
|
198
|
+
return Promise.resolve(this.l2Blocks.at(typeof number === 'number' ? number - 1 : -1)?.getBlockHeader());
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
getCheckpointsForEpoch(epochNumber: EpochNumber): Promise<Checkpoint[]> {
|
|
202
|
+
// TODO: Implement this properly. This only works when we have one block per checkpoint.
|
|
203
|
+
return this.getBlocksForEpoch(epochNumber).then(blocks => blocks.map(b => b.toCheckpoint()));
|
|
95
204
|
}
|
|
96
205
|
|
|
97
|
-
getBlocksForEpoch(epochNumber:
|
|
206
|
+
getBlocksForEpoch(epochNumber: EpochNumber): Promise<L2Block[]> {
|
|
98
207
|
const epochDuration = DefaultL1ContractsConfig.aztecEpochDuration;
|
|
99
208
|
const [start, end] = getSlotRangeForEpoch(epochNumber, { epochDuration });
|
|
100
209
|
const blocks = this.l2Blocks.filter(b => {
|
|
101
|
-
const slot = b.header.globalVariables.slotNumber
|
|
210
|
+
const slot = b.header.globalVariables.slotNumber;
|
|
102
211
|
return slot >= start && slot <= end;
|
|
103
212
|
});
|
|
104
213
|
return Promise.resolve(blocks);
|
|
105
214
|
}
|
|
106
215
|
|
|
216
|
+
async getBlockHeadersForEpoch(epochNumber: EpochNumber): Promise<BlockHeader[]> {
|
|
217
|
+
const blocks = await this.getBlocksForEpoch(epochNumber);
|
|
218
|
+
return blocks.map(b => b.getBlockHeader());
|
|
219
|
+
}
|
|
220
|
+
|
|
107
221
|
/**
|
|
108
222
|
* Gets a tx effect.
|
|
109
|
-
* @param txHash - The hash of
|
|
110
|
-
* @returns The requested tx effect.
|
|
223
|
+
* @param txHash - The hash of the tx corresponding to the tx effect.
|
|
224
|
+
* @returns The requested tx effect with block info (or undefined if not found).
|
|
111
225
|
*/
|
|
112
226
|
public async getTxEffect(txHash: TxHash) {
|
|
113
227
|
const match = this.l2Blocks
|
|
@@ -117,7 +231,12 @@ export class MockL2BlockSource implements L2BlockSource {
|
|
|
117
231
|
return Promise.resolve(undefined);
|
|
118
232
|
}
|
|
119
233
|
const [txEffect, block] = match;
|
|
120
|
-
return {
|
|
234
|
+
return {
|
|
235
|
+
data: txEffect,
|
|
236
|
+
l2BlockNumber: block.number,
|
|
237
|
+
l2BlockHash: L2BlockHash.fromField(await block.hash()),
|
|
238
|
+
txIndexInBlock: block.body.txEffects.indexOf(txEffect),
|
|
239
|
+
};
|
|
121
240
|
}
|
|
122
241
|
|
|
123
242
|
/**
|
|
@@ -147,7 +266,7 @@ export class MockL2BlockSource implements L2BlockSource {
|
|
|
147
266
|
const [latest, proven, finalized] = [
|
|
148
267
|
await this.getBlockNumber(),
|
|
149
268
|
await this.getProvenBlockNumber(),
|
|
150
|
-
|
|
269
|
+
this.finalizedBlockNumber,
|
|
151
270
|
] as const;
|
|
152
271
|
|
|
153
272
|
const latestBlock = this.l2Blocks[latest - 1];
|
|
@@ -156,33 +275,41 @@ export class MockL2BlockSource implements L2BlockSource {
|
|
|
156
275
|
|
|
157
276
|
return {
|
|
158
277
|
latest: {
|
|
159
|
-
number: latest,
|
|
278
|
+
number: BlockNumber(latest),
|
|
160
279
|
hash: (await latestBlock?.hash())?.toString(),
|
|
161
280
|
},
|
|
162
281
|
proven: {
|
|
163
|
-
number: proven,
|
|
282
|
+
number: BlockNumber(proven),
|
|
164
283
|
hash: (await provenBlock?.hash())?.toString(),
|
|
165
284
|
},
|
|
166
285
|
finalized: {
|
|
167
|
-
number: finalized,
|
|
286
|
+
number: BlockNumber(finalized),
|
|
168
287
|
hash: (await finalizedBlock?.hash())?.toString(),
|
|
169
288
|
},
|
|
170
289
|
};
|
|
171
290
|
}
|
|
172
291
|
|
|
173
|
-
getL2EpochNumber(): Promise<
|
|
292
|
+
getL2EpochNumber(): Promise<EpochNumber> {
|
|
174
293
|
throw new Error('Method not implemented.');
|
|
175
294
|
}
|
|
176
295
|
|
|
177
|
-
getL2SlotNumber(): Promise<
|
|
296
|
+
getL2SlotNumber(): Promise<SlotNumber> {
|
|
178
297
|
throw new Error('Method not implemented.');
|
|
179
298
|
}
|
|
180
299
|
|
|
181
|
-
isEpochComplete(_epochNumber:
|
|
300
|
+
isEpochComplete(_epochNumber: EpochNumber): Promise<boolean> {
|
|
182
301
|
throw new Error('Method not implemented.');
|
|
183
302
|
}
|
|
184
303
|
|
|
185
304
|
getL1Constants(): Promise<L1RollupConstants> {
|
|
305
|
+
return Promise.resolve(EmptyL1RollupConstants);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
getGenesisValues(): Promise<{ genesisArchiveRoot: Fr }> {
|
|
309
|
+
return Promise.resolve({ genesisArchiveRoot: new Fr(GENESIS_ARCHIVE_ROOT) });
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
getL1Timestamp(): Promise<bigint> {
|
|
186
313
|
throw new Error('Method not implemented.');
|
|
187
314
|
}
|
|
188
315
|
|
|
@@ -191,6 +318,7 @@ export class MockL2BlockSource implements L2BlockSource {
|
|
|
191
318
|
* @returns A promise that signals the initialization of the l2 block source on completion.
|
|
192
319
|
*/
|
|
193
320
|
public start(): Promise<void> {
|
|
321
|
+
this.log.verbose('Starting mock L2 block source');
|
|
194
322
|
return Promise.resolve();
|
|
195
323
|
}
|
|
196
324
|
|
|
@@ -199,6 +327,43 @@ export class MockL2BlockSource implements L2BlockSource {
|
|
|
199
327
|
* @returns A promise that signals the l2 block source is now stopped.
|
|
200
328
|
*/
|
|
201
329
|
public stop(): Promise<void> {
|
|
330
|
+
this.log.verbose('Stopping mock L2 block source');
|
|
331
|
+
return Promise.resolve();
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
getContractClass(_id: Fr): Promise<ContractClassPublic | undefined> {
|
|
335
|
+
return Promise.resolve(undefined);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
getBytecodeCommitment(_id: Fr): Promise<Fr | undefined> {
|
|
339
|
+
return Promise.resolve(undefined);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
getContract(_address: AztecAddress, _timestamp?: UInt64): Promise<ContractInstanceWithAddress | undefined> {
|
|
343
|
+
return Promise.resolve(undefined);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
getContractClassIds(): Promise<Fr[]> {
|
|
347
|
+
return Promise.resolve([]);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
getDebugFunctionName(_address: AztecAddress, _selector: FunctionSelector): Promise<string | undefined> {
|
|
351
|
+
return Promise.resolve(undefined);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
registerContractFunctionSignatures(_signatures: string[]): Promise<void> {
|
|
355
|
+
return Promise.resolve();
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
syncImmediate(): Promise<void> {
|
|
202
359
|
return Promise.resolve();
|
|
203
360
|
}
|
|
361
|
+
|
|
362
|
+
isPendingChainInvalid(): Promise<boolean> {
|
|
363
|
+
return Promise.resolve(false);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
getPendingChainValidationStatus(): Promise<ValidateBlockResult> {
|
|
367
|
+
return Promise.resolve({ valid: true });
|
|
368
|
+
}
|
|
204
369
|
}
|