@aztec/archiver 0.23.0 → 0.26.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 +15 -11
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +67 -72
- package/dest/archiver/archiver_store.d.ts +37 -15
- package/dest/archiver/archiver_store.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.d.ts.map +1 -1
- package/dest/archiver/archiver_store_test_suite.js +70 -54
- package/dest/archiver/data_retrieval.d.ts +18 -8
- package/dest/archiver/data_retrieval.d.ts.map +1 -1
- package/dest/archiver/data_retrieval.js +39 -14
- package/dest/archiver/eth_log_handlers.d.ts +25 -23
- package/dest/archiver/eth_log_handlers.d.ts.map +1 -1
- package/dest/archiver/eth_log_handlers.js +98 -57
- package/dest/archiver/kv_archiver_store/block_body_store.d.ts +27 -0
- package/dest/archiver/kv_archiver_store/block_body_store.d.ts.map +1 -0
- package/dest/archiver/kv_archiver_store/block_body_store.js +47 -0
- package/dest/archiver/kv_archiver_store/block_store.d.ts +19 -11
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +58 -30
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +1 -0
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_class_store.js +4 -1
- package/dest/archiver/kv_archiver_store/contract_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/contract_store.js +6 -3
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +36 -16
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +52 -22
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +4 -3
- package/dest/archiver/kv_archiver_store/message_store.d.ts +9 -9
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/message_store.js +34 -31
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +6 -6
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts.map +1 -1
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.js +18 -18
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +41 -16
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +1 -1
- package/dest/archiver/memory_archiver_store/memory_archiver_store.js +78 -29
- package/dest/index.js +2 -2
- package/dest/rpc/archiver_client.d.ts.map +1 -1
- package/dest/rpc/archiver_client.js +3 -3
- package/dest/rpc/archiver_server.d.ts.map +1 -1
- package/dest/rpc/archiver_server.js +4 -3
- package/package.json +10 -10
- package/src/archiver/archiver.ts +625 -0
- package/src/archiver/archiver_store.ts +226 -0
- package/src/archiver/archiver_store_test_suite.ts +676 -0
- package/src/archiver/config.ts +89 -0
- package/src/archiver/data_retrieval.ts +232 -0
- package/src/archiver/eth_log_handlers.ts +342 -0
- package/src/archiver/index.ts +5 -0
- package/src/archiver/kv_archiver_store/block_body_store.ts +54 -0
- package/src/archiver/kv_archiver_store/block_store.ts +199 -0
- package/src/archiver/kv_archiver_store/contract_class_store.ts +68 -0
- package/src/archiver/kv_archiver_store/contract_instance_store.ts +26 -0
- package/src/archiver/kv_archiver_store/contract_store.ts +98 -0
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +300 -0
- package/src/archiver/kv_archiver_store/log_store.ts +174 -0
- package/src/archiver/kv_archiver_store/message_store.ts +174 -0
- package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +91 -0
- package/src/archiver/memory_archiver_store/memory_archiver_store.ts +506 -0
- package/src/index.ts +55 -0
- package/src/rpc/archiver_client.ts +35 -0
- package/src/rpc/archiver_server.ts +41 -0
- package/src/rpc/index.ts +2 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { Body, ContractData, ExtendedContractData, GetUnencryptedLogsResponse, L1ToL2Message, L2Block, L2BlockL2Logs, LogFilter, LogType, TxEffect, TxHash, TxReceipt } from '@aztec/circuit-types';
|
|
2
3
|
import { Fr } from '@aztec/circuits.js';
|
|
3
4
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
5
|
import { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/types/contracts';
|
|
@@ -14,9 +15,13 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
14
15
|
*/
|
|
15
16
|
private l2BlockContexts;
|
|
16
17
|
/**
|
|
17
|
-
*
|
|
18
|
+
* A mapping of body hash to body
|
|
18
19
|
*/
|
|
19
|
-
private
|
|
20
|
+
private l2BlockBodies;
|
|
21
|
+
/**
|
|
22
|
+
* An array containing all the the tx effects in the L2 blocks that have been fetched so far.
|
|
23
|
+
*/
|
|
24
|
+
private txEffects;
|
|
20
25
|
/**
|
|
21
26
|
* An array containing all the encrypted logs that have been fetched so far.
|
|
22
27
|
* Note: Index in the "outer" array equals to (corresponding L2 block's number - INITIAL_L2_BLOCK_NUM).
|
|
@@ -52,6 +57,7 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
52
57
|
/** The max number of logs that can be obtained in 1 "getUnencryptedLogs" call. */
|
|
53
58
|
maxLogs: number);
|
|
54
59
|
getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
|
|
60
|
+
getContractClassIds(): Promise<Fr[]>;
|
|
55
61
|
getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
|
|
56
62
|
addContractClasses(data: ContractClassPublic[], _blockNumber: number): Promise<boolean>;
|
|
57
63
|
addContractInstances(data: ContractInstanceWithAddress[], _blockNumber: number): Promise<boolean>;
|
|
@@ -61,6 +67,19 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
61
67
|
* @returns True if the operation is successful (always in this implementation).
|
|
62
68
|
*/
|
|
63
69
|
addBlocks(blocks: L2Block[]): Promise<boolean>;
|
|
70
|
+
/**
|
|
71
|
+
* Append new block bodies to the store's list.
|
|
72
|
+
* @param blockBodies - The L2 block bodies to be added to the store.
|
|
73
|
+
* @returns True if the operation is successful.
|
|
74
|
+
*/
|
|
75
|
+
addBlockBodies(blockBodies: Body[]): Promise<boolean>;
|
|
76
|
+
/**
|
|
77
|
+
* Gets block bodies that have the same txHashes as we supply.
|
|
78
|
+
*
|
|
79
|
+
* @param txsHashes - A list of txsHashes (body hashes).
|
|
80
|
+
* @returns The requested L2 block bodies
|
|
81
|
+
*/
|
|
82
|
+
getBlockBodies(txsHashes: Buffer[]): Promise<Body[]>;
|
|
64
83
|
/**
|
|
65
84
|
* Append new logs to the store's list.
|
|
66
85
|
* @param encryptedLogs - The encrypted logs to be added to the store.
|
|
@@ -78,18 +97,18 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
78
97
|
addPendingL1ToL2Messages(messages: L1ToL2Message[], l1BlockNumber: bigint): Promise<boolean>;
|
|
79
98
|
/**
|
|
80
99
|
* Remove pending L1 to L2 messages from the store (if they were cancelled).
|
|
81
|
-
* @param messages - The
|
|
100
|
+
* @param messages - The entry keys to be removed from the store.
|
|
82
101
|
* @param l1BlockNumber - The L1 block number for which to remove the messages.
|
|
83
102
|
* @returns True if the operation is successful (always in this implementation).
|
|
84
103
|
*/
|
|
85
|
-
|
|
104
|
+
cancelPendingL1ToL2EntryKeys(messages: Fr[], l1BlockNumber: bigint): Promise<boolean>;
|
|
86
105
|
/**
|
|
87
106
|
* Messages that have been published in an L2 block are confirmed.
|
|
88
107
|
* Add them to the confirmed store, also remove them from the pending store.
|
|
89
|
-
* @param
|
|
108
|
+
* @param entryKeys - The entry keys to be removed from the store.
|
|
90
109
|
* @returns True if the operation is successful (always in this implementation).
|
|
91
110
|
*/
|
|
92
|
-
|
|
111
|
+
confirmL1ToL2EntryKeys(entryKeys: Fr[]): Promise<boolean>;
|
|
93
112
|
/**
|
|
94
113
|
* Store new extended contract data from an L2 block to the store's list.
|
|
95
114
|
* @param data - List of contracts' data to be added.
|
|
@@ -106,23 +125,29 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
106
125
|
*/
|
|
107
126
|
getBlocks(from: number, limit: number): Promise<L2Block[]>;
|
|
108
127
|
/**
|
|
109
|
-
* Gets
|
|
110
|
-
* @param txHash - The txHash of the
|
|
111
|
-
* @returns The requested
|
|
128
|
+
* Gets a tx effect.
|
|
129
|
+
* @param txHash - The txHash of the tx effect.
|
|
130
|
+
* @returns The requested tx effect.
|
|
131
|
+
*/
|
|
132
|
+
getTxEffect(txHash: TxHash): Promise<TxEffect | undefined>;
|
|
133
|
+
/**
|
|
134
|
+
* Gets a receipt of a settled tx.
|
|
135
|
+
* @param txHash - The hash of a tx we try to get the receipt for.
|
|
136
|
+
* @returns The requested tx receipt (or undefined if not found).
|
|
112
137
|
*/
|
|
113
|
-
|
|
138
|
+
getSettledTxReceipt(txHash: TxHash): Promise<TxReceipt | undefined>;
|
|
114
139
|
/**
|
|
115
140
|
* Gets up to `limit` amount of pending L1 to L2 messages, sorted by fee
|
|
116
141
|
* @param limit - The number of messages to return (by default NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).
|
|
117
|
-
* @returns The requested L1 to L2
|
|
142
|
+
* @returns The requested L1 to L2 entry keys.
|
|
118
143
|
*/
|
|
119
|
-
|
|
144
|
+
getPendingL1ToL2EntryKeys(limit?: number): Promise<Fr[]>;
|
|
120
145
|
/**
|
|
121
|
-
* Gets the confirmed L1 to L2 message corresponding to the given
|
|
122
|
-
* @param
|
|
146
|
+
* Gets the confirmed L1 to L2 message corresponding to the given entry key.
|
|
147
|
+
* @param entryKey - The entry key to look up.
|
|
123
148
|
* @returns The requested L1 to L2 message or throws if not found.
|
|
124
149
|
*/
|
|
125
|
-
getConfirmedL1ToL2Message(
|
|
150
|
+
getConfirmedL1ToL2Message(entryKey: Fr): Promise<L1ToL2Message>;
|
|
126
151
|
/**
|
|
127
152
|
* Gets up to `limit` amount of logs starting from `from`.
|
|
128
153
|
* @param from - Number of the L2 block to which corresponds the first logs to be returned.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/memory_archiver_store/memory_archiver_store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,oBAAoB,EAEpB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"memory_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/memory_archiver_store/memory_archiver_store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ExtendedUnencryptedL2Log,
|
|
2
|
-
import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/circuits.js';
|
|
1
|
+
import { ExtendedUnencryptedL2Log, L2BlockContext, LogId, LogType, TxReceipt, TxStatus, UnencryptedL2Log, } from '@aztec/circuit-types';
|
|
2
|
+
import { Fr, INITIAL_L2_BLOCK_NUM, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/circuits.js';
|
|
3
3
|
import { L1ToL2MessageStore, PendingL1ToL2MessageStore } from './l1_to_l2_message_store.js';
|
|
4
4
|
/**
|
|
5
5
|
* Simple, in-memory implementation of an archiver data store.
|
|
@@ -14,9 +14,13 @@ export class MemoryArchiverStore {
|
|
|
14
14
|
*/
|
|
15
15
|
this.l2BlockContexts = [];
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* A mapping of body hash to body
|
|
18
18
|
*/
|
|
19
|
-
this.
|
|
19
|
+
this.l2BlockBodies = new Map();
|
|
20
|
+
/**
|
|
21
|
+
* An array containing all the the tx effects in the L2 blocks that have been fetched so far.
|
|
22
|
+
*/
|
|
23
|
+
this.txEffects = [];
|
|
20
24
|
/**
|
|
21
25
|
* An array containing all the encrypted logs that have been fetched so far.
|
|
22
26
|
* Note: Index in the "outer" array equals to (corresponding L2 block's number - INITIAL_L2_BLOCK_NUM).
|
|
@@ -52,6 +56,9 @@ export class MemoryArchiverStore {
|
|
|
52
56
|
getContractClass(id) {
|
|
53
57
|
return Promise.resolve(this.contractClasses.get(id.toString()));
|
|
54
58
|
}
|
|
59
|
+
getContractClassIds() {
|
|
60
|
+
return Promise.resolve(Array.from(this.contractClasses.keys()).map(key => Fr.fromString(key)));
|
|
61
|
+
}
|
|
55
62
|
getContractInstance(address) {
|
|
56
63
|
return Promise.resolve(this.contractInstances.get(address.toString()));
|
|
57
64
|
}
|
|
@@ -74,9 +81,33 @@ export class MemoryArchiverStore {
|
|
|
74
81
|
*/
|
|
75
82
|
addBlocks(blocks) {
|
|
76
83
|
this.l2BlockContexts.push(...blocks.map(block => new L2BlockContext(block)));
|
|
77
|
-
this.
|
|
84
|
+
this.txEffects.push(...blocks.flatMap(b => b.getTxs()));
|
|
85
|
+
return Promise.resolve(true);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Append new block bodies to the store's list.
|
|
89
|
+
* @param blockBodies - The L2 block bodies to be added to the store.
|
|
90
|
+
* @returns True if the operation is successful.
|
|
91
|
+
*/
|
|
92
|
+
addBlockBodies(blockBodies) {
|
|
93
|
+
for (const body of blockBodies) {
|
|
94
|
+
void this.l2BlockBodies.set(body.getCalldataHash().toString('hex'), body);
|
|
95
|
+
}
|
|
78
96
|
return Promise.resolve(true);
|
|
79
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Gets block bodies that have the same txHashes as we supply.
|
|
100
|
+
*
|
|
101
|
+
* @param txsHashes - A list of txsHashes (body hashes).
|
|
102
|
+
* @returns The requested L2 block bodies
|
|
103
|
+
*/
|
|
104
|
+
getBlockBodies(txsHashes) {
|
|
105
|
+
const blockBodies = txsHashes.map(txsHash => this.l2BlockBodies.get(txsHash.toString('hex')));
|
|
106
|
+
if (blockBodies.some(bodyBuffer => bodyBuffer === undefined)) {
|
|
107
|
+
throw new Error('Block body is undefined');
|
|
108
|
+
}
|
|
109
|
+
return Promise.resolve(blockBodies);
|
|
110
|
+
}
|
|
80
111
|
/**
|
|
81
112
|
* Append new logs to the store's list.
|
|
82
113
|
* @param encryptedLogs - The encrypted logs to be added to the store.
|
|
@@ -111,11 +142,11 @@ export class MemoryArchiverStore {
|
|
|
111
142
|
}
|
|
112
143
|
/**
|
|
113
144
|
* Remove pending L1 to L2 messages from the store (if they were cancelled).
|
|
114
|
-
* @param messages - The
|
|
145
|
+
* @param messages - The entry keys to be removed from the store.
|
|
115
146
|
* @param l1BlockNumber - The L1 block number for which to remove the messages.
|
|
116
147
|
* @returns True if the operation is successful (always in this implementation).
|
|
117
148
|
*/
|
|
118
|
-
|
|
149
|
+
cancelPendingL1ToL2EntryKeys(messages, l1BlockNumber) {
|
|
119
150
|
if (l1BlockNumber <= this.lastL1BlockCancelledMessages) {
|
|
120
151
|
return Promise.resolve(false);
|
|
121
152
|
}
|
|
@@ -128,13 +159,16 @@ export class MemoryArchiverStore {
|
|
|
128
159
|
/**
|
|
129
160
|
* Messages that have been published in an L2 block are confirmed.
|
|
130
161
|
* Add them to the confirmed store, also remove them from the pending store.
|
|
131
|
-
* @param
|
|
162
|
+
* @param entryKeys - The entry keys to be removed from the store.
|
|
132
163
|
* @returns True if the operation is successful (always in this implementation).
|
|
133
164
|
*/
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
165
|
+
confirmL1ToL2EntryKeys(entryKeys) {
|
|
166
|
+
entryKeys.forEach(entryKey => {
|
|
167
|
+
if (entryKey.equals(Fr.ZERO)) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
this.confirmedL1ToL2Messages.addMessage(entryKey, this.pendingL1ToL2Messages.getMessage(entryKey));
|
|
171
|
+
this.pendingL1ToL2Messages.removeMessage(entryKey);
|
|
138
172
|
});
|
|
139
173
|
return Promise.resolve(true);
|
|
140
174
|
}
|
|
@@ -179,31 +213,46 @@ export class MemoryArchiverStore {
|
|
|
179
213
|
return Promise.resolve(this.l2BlockContexts.slice(fromIndex, toIndex).map(blockContext => blockContext.block));
|
|
180
214
|
}
|
|
181
215
|
/**
|
|
182
|
-
* Gets
|
|
183
|
-
* @param txHash - The txHash of the
|
|
184
|
-
* @returns The requested
|
|
216
|
+
* Gets a tx effect.
|
|
217
|
+
* @param txHash - The txHash of the tx effect.
|
|
218
|
+
* @returns The requested tx effect.
|
|
219
|
+
*/
|
|
220
|
+
getTxEffect(txHash) {
|
|
221
|
+
const txEffect = this.txEffects.find(tx => tx.txHash.equals(txHash));
|
|
222
|
+
return Promise.resolve(txEffect);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Gets a receipt of a settled tx.
|
|
226
|
+
* @param txHash - The hash of a tx we try to get the receipt for.
|
|
227
|
+
* @returns The requested tx receipt (or undefined if not found).
|
|
185
228
|
*/
|
|
186
|
-
|
|
187
|
-
const
|
|
188
|
-
|
|
229
|
+
getSettledTxReceipt(txHash) {
|
|
230
|
+
for (const blockContext of this.l2BlockContexts) {
|
|
231
|
+
for (const currentTxHash of blockContext.getTxHashes()) {
|
|
232
|
+
if (currentTxHash.equals(txHash)) {
|
|
233
|
+
return Promise.resolve(new TxReceipt(txHash, TxStatus.MINED, '', blockContext.block.hash().toBuffer(), blockContext.block.number));
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return Promise.resolve(undefined);
|
|
189
238
|
}
|
|
190
239
|
/**
|
|
191
240
|
* Gets up to `limit` amount of pending L1 to L2 messages, sorted by fee
|
|
192
241
|
* @param limit - The number of messages to return (by default NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).
|
|
193
|
-
* @returns The requested L1 to L2
|
|
242
|
+
* @returns The requested L1 to L2 entry keys.
|
|
194
243
|
*/
|
|
195
|
-
|
|
196
|
-
return Promise.resolve(this.pendingL1ToL2Messages.
|
|
244
|
+
getPendingL1ToL2EntryKeys(limit = NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP) {
|
|
245
|
+
return Promise.resolve(this.pendingL1ToL2Messages.getEntryKeys(limit));
|
|
197
246
|
}
|
|
198
247
|
/**
|
|
199
|
-
* Gets the confirmed L1 to L2 message corresponding to the given
|
|
200
|
-
* @param
|
|
248
|
+
* Gets the confirmed L1 to L2 message corresponding to the given entry key.
|
|
249
|
+
* @param entryKey - The entry key to look up.
|
|
201
250
|
* @returns The requested L1 to L2 message or throws if not found.
|
|
202
251
|
*/
|
|
203
|
-
getConfirmedL1ToL2Message(
|
|
204
|
-
const message = this.confirmedL1ToL2Messages.getMessage(
|
|
252
|
+
getConfirmedL1ToL2Message(entryKey) {
|
|
253
|
+
const message = this.confirmedL1ToL2Messages.getMessage(entryKey);
|
|
205
254
|
if (!message) {
|
|
206
|
-
throw new Error(`L1 to L2 Message with key ${
|
|
255
|
+
throw new Error(`L1 to L2 Message with key ${entryKey.toString()} not found in the confirmed messages store`);
|
|
207
256
|
}
|
|
208
257
|
return Promise.resolve(message);
|
|
209
258
|
}
|
|
@@ -329,7 +378,7 @@ export class MemoryArchiverStore {
|
|
|
329
378
|
return Promise.resolve(undefined);
|
|
330
379
|
}
|
|
331
380
|
for (const blockContext of this.l2BlockContexts) {
|
|
332
|
-
for (const contractData of blockContext.block.
|
|
381
|
+
for (const contractData of blockContext.block.body.txEffects.flatMap(txEffect => txEffect.contractData)) {
|
|
333
382
|
if (contractData.contractAddress.equals(contractAddress)) {
|
|
334
383
|
return Promise.resolve(contractData);
|
|
335
384
|
}
|
|
@@ -348,7 +397,7 @@ export class MemoryArchiverStore {
|
|
|
348
397
|
return Promise.resolve([]);
|
|
349
398
|
}
|
|
350
399
|
const block = this.l2BlockContexts[l2BlockNum - INITIAL_L2_BLOCK_NUM]?.block;
|
|
351
|
-
return Promise.resolve(block?.
|
|
400
|
+
return Promise.resolve(block?.body.txEffects.flatMap(txEffect => txEffect.contractData));
|
|
352
401
|
}
|
|
353
402
|
/**
|
|
354
403
|
* Gets the number of the latest L2 block processed.
|
|
@@ -371,4 +420,4 @@ export class MemoryArchiverStore {
|
|
|
371
420
|
});
|
|
372
421
|
}
|
|
373
422
|
}
|
|
374
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2FyY2hpdmVyX3N0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdmVyL21lbW9yeV9hcmNoaXZlcl9zdG9yZS9tZW1vcnlfYXJjaGl2ZXJfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHdCQUF3QixFQUV4QixvQkFBb0IsRUFHcEIsY0FBYyxFQUlkLEtBQUssRUFDTCxPQUFPLEVBRVAsZ0JBQWdCLEdBQ2pCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFNLG1DQUFtQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFLN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUY7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBbUQ5QjtJQUNFLGtGQUFrRjtJQUNsRSxPQUFlO1FBQWYsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQXBEakM7O1dBRUc7UUFDSyxvQkFBZSxHQUFxQixFQUFFLENBQUM7UUFFL0M7O1dBRUc7UUFDSyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRTNCOzs7V0FHRztRQUNLLDBCQUFxQixHQUFvQixFQUFFLENBQUM7UUFFcEQ7OztXQUdHO1FBQ0ssNEJBQXVCLEdBQW9CLEVBQUUsQ0FBQztRQUV0RDs7V0FFRztRQUNLLGdDQUEyQixHQUEyQyxFQUFFLENBQUM7UUFFakY7O1dBRUc7UUFDSyx5QkFBb0IsR0FBc0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU1RTs7O1dBR0c7UUFDSyw0QkFBdUIsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBRS9FOztXQUVHO1FBQ0ssMEJBQXFCLEdBQThCLElBQUkseUJBQXlCLEVBQUUsQ0FBQztRQUVuRixvQkFBZSxHQUFxQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTlELHNCQUFpQixHQUE2QyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXhFLDZC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
|
|
423
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5X2FyY2hpdmVyX3N0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdmVyL21lbW9yeV9hcmNoaXZlcl9zdG9yZS9tZW1vcnlfYXJjaGl2ZXJfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLHdCQUF3QixFQUl4QixjQUFjLEVBR2QsS0FBSyxFQUNMLE9BQU8sRUFHUCxTQUFTLEVBQ1QsUUFBUSxFQUNSLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUtuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU1Rjs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUF3RDlCO0lBQ0Usa0ZBQWtGO0lBQ2xFLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBekRqQzs7V0FFRztRQUNLLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUUvQzs7V0FFRztRQUNLLGtCQUFhLEdBQXNCLElBQUksR0FBRyxFQUFFLENBQUM7UUFFckQ7O1dBRUc7UUFDSyxjQUFTLEdBQWUsRUFBRSxDQUFDO1FBRW5DOzs7V0FHRztRQUNLLDBCQUFxQixHQUFvQixFQUFFLENBQUM7UUFFcEQ7OztXQUdHO1FBQ0ssNEJBQXVCLEdBQW9CLEVBQUUsQ0FBQztRQUV0RDs7V0FFRztRQUNLLGdDQUEyQixHQUEyQyxFQUFFLENBQUM7UUFFakY7O1dBRUc7UUFDSyx5QkFBb0IsR0FBc0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU1RTs7O1dBR0c7UUFDSyw0QkFBdUIsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBRS9FOztXQUVHO1FBQ0ssMEJBQXFCLEdBQThCLElBQUkseUJBQXlCLEVBQUUsQ0FBQztRQUVuRixv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
|
package/dest/index.js
CHANGED
|
@@ -19,7 +19,7 @@ async function main() {
|
|
|
19
19
|
transport: http(rpcUrl),
|
|
20
20
|
});
|
|
21
21
|
const archiverStore = new MemoryArchiverStore(1000);
|
|
22
|
-
const archiver = new Archiver(publicClient, l1Contracts.rollupAddress, l1Contracts.inboxAddress, l1Contracts.registryAddress, l1Contracts.contractDeploymentEmitterAddress, archiverStore);
|
|
22
|
+
const archiver = new Archiver(publicClient, l1Contracts.rollupAddress, l1Contracts.availabilityOracleAddress, l1Contracts.inboxAddress, l1Contracts.registryAddress, l1Contracts.contractDeploymentEmitterAddress, archiverStore);
|
|
23
23
|
const shutdown = async () => {
|
|
24
24
|
await archiver.stop();
|
|
25
25
|
process.exit(0);
|
|
@@ -35,4 +35,4 @@ if (process.argv[1] === fileURLToPath(import.meta.url).replace(/\/index\.js$/, '
|
|
|
35
35
|
process.exit(1);
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXRELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFFaEcsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLE1BQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFaEQ7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUNsQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQztJQUV2QyxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztRQUN0QyxLQUFLLEVBQUUsU0FBUztRQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztLQUN4QixDQUFDLENBQUM7SUFFSCxNQUFNLGFBQWEsR0FBRyxJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXBELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUMzQixZQUFZLEVBQ1osV0FBVyxDQUFDLGFBQWEsRUFDekIsV0FBVyxDQUFDLHlCQUF5QixFQUNyQyxXQUFXLENBQUMsWUFBWSxFQUN4QixXQUFXLENBQUMsZUFBZSxFQUMzQixXQUFXLENBQUMsZ0NBQWdDLEVBQzVDLGFBQWEsQ0FDZCxDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDMUIsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFDRixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDbkYsbUVBQW1FO0lBQ25FLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNqQixHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver_client.d.ts","sourceRoot":"","sources":["../../src/rpc/archiver_client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archiver_client.d.ts","sourceRoot":"","sources":["../../src/rpc/archiver_client.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,eAAO,MAAM,oBAAoB,QAAS,MAAM,qGAAuC,aAkBpF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContractData, EncodedContractFunction, ExtendedContractData, ExtendedUnencryptedL2Log, L1ToL2Message, L2Block, L2BlockL2Logs, } from '@aztec/circuit-types';
|
|
1
|
+
import { ContractData, EncodedContractFunction, ExtendedContractData, ExtendedUnencryptedL2Log, L1ToL2Message, L2Block, L2BlockL2Logs, NullifierMembershipWitness, TxReceipt, } from '@aztec/circuit-types';
|
|
2
2
|
import { EthAddress, Fr } from '@aztec/circuits.js';
|
|
3
3
|
import { createJsonRpcClient, makeFetch } from '@aztec/foundation/json-rpc/client';
|
|
4
4
|
export const createArchiverClient = (url, fetch = makeFetch([1, 2, 3], true)) => createJsonRpcClient(url, {
|
|
@@ -11,5 +11,5 @@ export const createArchiverClient = (url, fetch = makeFetch([1, 2, 3], true)) =>
|
|
|
11
11
|
L1ToL2Message,
|
|
12
12
|
L2Block,
|
|
13
13
|
L2BlockL2Logs,
|
|
14
|
-
}, {}, false, 'archiver', fetch);
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
}, { TxReceipt, NullifierMembershipWitness }, false, 'archiver', fetch);
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JwYy9hcmNoaXZlcl9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYiwwQkFBMEIsRUFDMUIsU0FBUyxHQUNWLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbkYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQWlCLEVBQUUsQ0FDckcsbUJBQW1CLENBQ2pCLEdBQUcsRUFDSDtJQUNFLFlBQVk7SUFDWix1QkFBdUI7SUFDdkIsVUFBVTtJQUNWLG9CQUFvQjtJQUNwQix3QkFBd0I7SUFDeEIsRUFBRTtJQUNGLGFBQWE7SUFDYixPQUFPO0lBQ1AsYUFBYTtDQUNkLEVBQ0QsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsRUFDekMsS0FBSyxFQUNMLFVBQVUsRUFDVixLQUFLLENBQ04sQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver_server.d.ts","sourceRoot":"","sources":["../../src/rpc/archiver_server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archiver_server.d.ts","sourceRoot":"","sources":["../../src/rpc/archiver_server.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,QAAQ,GAAG,aAAa,CAkBhF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContractData, EncodedContractFunction, ExtendedContractData, ExtendedUnencryptedL2Log, L1ToL2Message, L2Block, L2BlockL2Logs, } from '@aztec/circuit-types';
|
|
1
|
+
import { ContractData, EncodedContractFunction, ExtendedContractData, ExtendedUnencryptedL2Log, L1ToL2Message, L2Block, L2BlockL2Logs, NullifierMembershipWitness, TxEffect, TxReceipt, } from '@aztec/circuit-types';
|
|
2
2
|
import { EthAddress, Fr } from '@aztec/circuits.js';
|
|
3
3
|
import { JsonRpcServer } from '@aztec/foundation/json-rpc/server';
|
|
4
4
|
/**
|
|
@@ -17,6 +17,7 @@ export function createArchiverRpcServer(archiverService) {
|
|
|
17
17
|
L1ToL2Message,
|
|
18
18
|
L2Block,
|
|
19
19
|
L2BlockL2Logs,
|
|
20
|
-
|
|
20
|
+
TxEffect,
|
|
21
|
+
}, { TxReceipt, NullifierMembershipWitness }, ['start', 'stop']);
|
|
21
22
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXJfc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JwYy9hcmNoaXZlcl9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixhQUFhLEVBQ2IsT0FBTyxFQUNQLGFBQWEsRUFDYiwwQkFBMEIsRUFDMUIsUUFBUSxFQUNSLFNBQVMsR0FDVixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSWxFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsZUFBeUI7SUFDL0QsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsZUFBZSxFQUNmO1FBQ0UsWUFBWTtRQUNaLHVCQUF1QjtRQUN2QixVQUFVO1FBQ1Ysb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4QixFQUFFO1FBQ0YsYUFBYTtRQUNiLE9BQU87UUFDUCxhQUFhO1FBQ2IsUUFBUTtLQUNULEVBQ0QsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsRUFDekMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQ2xCLENBQUM7QUFDSixDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/archiver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"typedocOptions": {
|
|
@@ -35,20 +35,20 @@
|
|
|
35
35
|
"workerThreads": true
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@aztec/circuit-types": "0.
|
|
39
|
-
"@aztec/circuits.js": "0.
|
|
40
|
-
"@aztec/ethereum": "0.
|
|
41
|
-
"@aztec/foundation": "0.
|
|
42
|
-
"@aztec/kv-store": "0.
|
|
43
|
-
"@aztec/l1-artifacts": "0.
|
|
44
|
-
"@aztec/protocol-contracts": "0.
|
|
45
|
-
"@aztec/types": "0.
|
|
38
|
+
"@aztec/circuit-types": "0.26.1",
|
|
39
|
+
"@aztec/circuits.js": "0.26.1",
|
|
40
|
+
"@aztec/ethereum": "0.26.1",
|
|
41
|
+
"@aztec/foundation": "0.26.1",
|
|
42
|
+
"@aztec/kv-store": "0.26.1",
|
|
43
|
+
"@aztec/l1-artifacts": "0.26.1",
|
|
44
|
+
"@aztec/protocol-contracts": "0.26.1",
|
|
45
|
+
"@aztec/types": "0.26.1",
|
|
46
46
|
"debug": "^4.3.4",
|
|
47
47
|
"lmdb": "^2.9.2",
|
|
48
48
|
"lodash.omit": "^4.5.0",
|
|
49
49
|
"tsc-watch": "^6.0.0",
|
|
50
50
|
"tslib": "^2.5.0",
|
|
51
|
-
"viem": "
|
|
51
|
+
"viem": "^2.7.15",
|
|
52
52
|
"ws": "^8.13.0"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|