@aztec/archiver 0.30.1 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/archiver/archiver.d.ts +7 -9
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +51 -22
- package/dest/archiver/archiver_store.d.ts +16 -11
- 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 +51 -15
- package/dest/archiver/data_retrieval.js +6 -6
- package/dest/archiver/eth_log_handlers.d.ts +7 -7
- package/dest/archiver/eth_log_handlers.d.ts.map +1 -1
- package/dest/archiver/eth_log_handlers.js +11 -11
- package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/block_store.js +3 -2
- package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +3 -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 +64 -13
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +9 -7
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +11 -9
- package/dest/archiver/kv_archiver_store/log_store.d.ts +3 -3
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +7 -5
- package/dest/archiver/kv_archiver_store/message_store.d.ts +3 -2
- package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/message_store.js +10 -6
- package/dest/archiver/memory_archiver_store/l1_to_l2_message_store.d.ts +4 -4
- 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 +11 -8
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +11 -7
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +1 -1
- package/dest/archiver/memory_archiver_store/memory_archiver_store.js +34 -11
- package/dest/rpc/archiver_client.d.ts.map +1 -1
- package/dest/rpc/archiver_client.js +4 -3
- package/dest/rpc/archiver_server.d.ts.map +1 -1
- package/dest/rpc/archiver_server.js +4 -3
- package/package.json +11 -9
- package/src/archiver/archiver.ts +80 -23
- package/src/archiver/archiver_store.ts +33 -11
- package/src/archiver/archiver_store_test_suite.ts +65 -18
- package/src/archiver/data_retrieval.ts +6 -6
- package/src/archiver/eth_log_handlers.ts +13 -13
- package/src/archiver/kv_archiver_store/block_store.ts +9 -1
- package/src/archiver/kv_archiver_store/contract_class_store.ts +106 -18
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +31 -12
- package/src/archiver/kv_archiver_store/log_store.ts +23 -10
- package/src/archiver/kv_archiver_store/message_store.ts +10 -5
- package/src/archiver/memory_archiver_store/l1_to_l2_message_store.ts +10 -7
- package/src/archiver/memory_archiver_store/memory_archiver_store.ts +66 -15
- package/src/rpc/archiver_client.ts +5 -3
- package/src/rpc/archiver_server.ts +4 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { Body, GetUnencryptedLogsResponse, InboxLeaf, L2Block, L2BlockL2Logs, LogFilter, LogType, TxEffect, TxHash, TxReceipt } from '@aztec/circuit-types';
|
|
2
|
+
import { Body, EncryptedL2BlockL2Logs, FromLogType, GetUnencryptedLogsResponse, InboxLeaf, L2Block, L2BlockL2Logs, LogFilter, LogType, TxEffect, TxHash, TxReceipt, UnencryptedL2BlockL2Logs } from '@aztec/circuit-types';
|
|
3
3
|
import { Fr } from '@aztec/circuits.js';
|
|
4
4
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
5
5
|
import { AztecKVStore } from '@aztec/kv-store';
|
|
6
|
-
import { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/types/contracts';
|
|
6
|
+
import { ContractClassPublic, ContractInstanceWithAddress, ExecutablePrivateFunctionWithMembershipProof, UnconstrainedFunctionWithMembershipProof } from '@aztec/types/contracts';
|
|
7
7
|
import { ArchiverDataStore, ArchiverL1SynchPoint } from '../archiver_store.js';
|
|
8
8
|
import { DataRetrieval } from '../data_retrieval.js';
|
|
9
9
|
/**
|
|
@@ -16,6 +16,7 @@ export declare class KVArchiverDataStore implements ArchiverDataStore {
|
|
|
16
16
|
getContractClassIds(): Promise<Fr[]>;
|
|
17
17
|
getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
|
|
18
18
|
addContractClasses(data: ContractClassPublic[], _blockNumber: number): Promise<boolean>;
|
|
19
|
+
addFunctions(contractClassId: Fr, privateFunctions: ExecutablePrivateFunctionWithMembershipProof[], unconstrainedFunctions: UnconstrainedFunctionWithMembershipProof[]): Promise<boolean>;
|
|
19
20
|
addContractInstances(data: ContractInstanceWithAddress[], _blockNumber: number): Promise<boolean>;
|
|
20
21
|
/**
|
|
21
22
|
* Append new block bodies to the store's list.
|
|
@@ -63,7 +64,7 @@ export declare class KVArchiverDataStore implements ArchiverDataStore {
|
|
|
63
64
|
* @param blockNumber - The block for which to add the logs.
|
|
64
65
|
* @returns True if the operation is successful.
|
|
65
66
|
*/
|
|
66
|
-
addLogs(encryptedLogs:
|
|
67
|
+
addLogs(encryptedLogs: EncryptedL2BlockL2Logs | undefined, unencryptedLogs: UnencryptedL2BlockL2Logs | undefined, blockNumber: number): Promise<boolean>;
|
|
67
68
|
/**
|
|
68
69
|
* Append L1 to L2 messages to the store.
|
|
69
70
|
* @param messages - The L1 to L2 messages to be added to the store and the last processed L1 block.
|
|
@@ -71,11 +72,12 @@ export declare class KVArchiverDataStore implements ArchiverDataStore {
|
|
|
71
72
|
*/
|
|
72
73
|
addL1ToL2Messages(messages: DataRetrieval<InboxLeaf>): Promise<boolean>;
|
|
73
74
|
/**
|
|
74
|
-
* Gets the L1 to L2 message index in the L1 to L2 message tree
|
|
75
|
+
* Gets the first L1 to L2 message index in the L1 to L2 message tree which is greater than or equal to `startIndex`.
|
|
75
76
|
* @param l1ToL2Message - The L1 to L2 message.
|
|
77
|
+
* @param startIndex - The index to start searching from.
|
|
76
78
|
* @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
|
|
77
79
|
*/
|
|
78
|
-
getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined>;
|
|
80
|
+
getL1ToL2MessageIndex(l1ToL2Message: Fr, startIndex: bigint): Promise<bigint | undefined>;
|
|
79
81
|
/**
|
|
80
82
|
* Gets L1 to L2 message (to be) included in a given block.
|
|
81
83
|
* @param blockNumber - L2 block number to get messages for.
|
|
@@ -89,7 +91,7 @@ export declare class KVArchiverDataStore implements ArchiverDataStore {
|
|
|
89
91
|
* @param logType - Specifies whether to return encrypted or unencrypted logs.
|
|
90
92
|
* @returns The requested logs.
|
|
91
93
|
*/
|
|
92
|
-
getLogs(start: number, limit: number, logType:
|
|
94
|
+
getLogs<TLogType extends LogType>(start: number, limit: number, logType: TLogType): Promise<L2BlockL2Logs<FromLogType<TLogType>>[]>;
|
|
93
95
|
/**
|
|
94
96
|
* Gets unencrypted logs based on the provided filter.
|
|
95
97
|
* @param filter - The filter to apply to the logs.
|
|
@@ -104,6 +106,6 @@ export declare class KVArchiverDataStore implements ArchiverDataStore {
|
|
|
104
106
|
/**
|
|
105
107
|
* Gets the last L1 block number processed by the archiver
|
|
106
108
|
*/
|
|
107
|
-
|
|
109
|
+
getSynchPoint(): Promise<ArchiverL1SynchPoint>;
|
|
108
110
|
}
|
|
109
111
|
//# sourceMappingURL=kv_archiver_store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EACJ,0BAA0B,EAC1B,SAAS,EACT,OAAO,EACP,aAAa,EACb,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,
|
|
1
|
+
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,9 @@ export class KVArchiverDataStore {
|
|
|
38
38
|
async addContractClasses(data, _blockNumber) {
|
|
39
39
|
return (await Promise.all(data.map(c => __classPrivateFieldGet(this, _KVArchiverDataStore_contractClassStore, "f").addContractClass(c)))).every(Boolean);
|
|
40
40
|
}
|
|
41
|
+
addFunctions(contractClassId, privateFunctions, unconstrainedFunctions) {
|
|
42
|
+
return __classPrivateFieldGet(this, _KVArchiverDataStore_contractClassStore, "f").addFunctions(contractClassId, privateFunctions, unconstrainedFunctions);
|
|
43
|
+
}
|
|
41
44
|
async addContractInstances(data, _blockNumber) {
|
|
42
45
|
return (await Promise.all(data.map(c => __classPrivateFieldGet(this, _KVArchiverDataStore_contractInstanceStore, "f").addContractInstance(c)))).every(Boolean);
|
|
43
46
|
}
|
|
@@ -117,12 +120,13 @@ export class KVArchiverDataStore {
|
|
|
117
120
|
return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").addL1ToL2Messages(messages));
|
|
118
121
|
}
|
|
119
122
|
/**
|
|
120
|
-
* Gets the L1 to L2 message index in the L1 to L2 message tree
|
|
123
|
+
* Gets the first L1 to L2 message index in the L1 to L2 message tree which is greater than or equal to `startIndex`.
|
|
121
124
|
* @param l1ToL2Message - The L1 to L2 message.
|
|
125
|
+
* @param startIndex - The index to start searching from.
|
|
122
126
|
* @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
|
|
123
127
|
*/
|
|
124
|
-
getL1ToL2MessageIndex(l1ToL2Message) {
|
|
125
|
-
return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").getL1ToL2MessageIndex(l1ToL2Message));
|
|
128
|
+
getL1ToL2MessageIndex(l1ToL2Message, startIndex) {
|
|
129
|
+
return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").getL1ToL2MessageIndex(l1ToL2Message, startIndex));
|
|
126
130
|
}
|
|
127
131
|
/**
|
|
128
132
|
* Gets L1 to L2 message (to be) included in a given block.
|
|
@@ -175,14 +179,12 @@ export class KVArchiverDataStore {
|
|
|
175
179
|
/**
|
|
176
180
|
* Gets the last L1 block number processed by the archiver
|
|
177
181
|
*/
|
|
178
|
-
|
|
179
|
-
const blocks = __classPrivateFieldGet(this, _KVArchiverDataStore_blockStore, "f").getSynchedL1BlockNumber();
|
|
180
|
-
const messages = __classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").getSynchedL1BlockNumber();
|
|
182
|
+
getSynchPoint() {
|
|
181
183
|
return Promise.resolve({
|
|
182
|
-
|
|
183
|
-
|
|
184
|
+
blocksSynchedTo: __classPrivateFieldGet(this, _KVArchiverDataStore_blockStore, "f").getSynchedL1BlockNumber(),
|
|
185
|
+
messagesSynchedTo: __classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").getSynchedL1BlockNumber(),
|
|
184
186
|
});
|
|
185
187
|
}
|
|
186
188
|
}
|
|
187
189
|
_KVArchiverDataStore_blockStore = new WeakMap(), _KVArchiverDataStore_blockBodyStore = new WeakMap(), _KVArchiverDataStore_logStore = new WeakMap(), _KVArchiverDataStore_messageStore = new WeakMap(), _KVArchiverDataStore_contractClassStore = new WeakMap(), _KVArchiverDataStore_contractInstanceStore = new WeakMap(), _KVArchiverDataStore_log = new WeakMap();
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfYXJjaGl2ZXJfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUva3ZfYXJjaGl2ZXJfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFXMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQVU5QixZQUFZLEVBQWdCLEVBQUUsa0JBQTBCLElBQUk7UUFUNUQsa0RBQXdCO1FBQ3hCLHNEQUFnQztRQUNoQyxnREFBb0I7UUFDcEIsb0RBQTRCO1FBQzVCLDBEQUF3QztRQUN4Qyw2REFBOEM7UUFFOUMsbUNBQU8saUJBQWlCLENBQUMsMkJBQTJCLENBQUMsRUFBQztRQUdwRCx1QkFBQSxJQUFJLHVDQUFtQixJQUFJLGNBQWMsQ0FBQyxFQUFFLENBQUMsTUFBQSxDQUFDO1FBQzlDLHVCQUFBLElBQUksbUNBQWUsSUFBSSxVQUFVLENBQUMsRUFBRSxFQUFFLHVCQUFBLElBQUksMkNBQWdCLENBQUMsTUFBQSxDQUFDO1FBQzVELHVCQUFBLElBQUksaUNBQWEsSUFBSSxRQUFRLENBQUMsRUFBRSxFQUFFLHVCQUFBLElBQUksdUNBQVksRUFBRSxlQUFlLENBQUMsTUFBQSxDQUFDO1FBQ3JFLHVCQUFBLElBQUks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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GetUnencryptedLogsResponse, L2BlockL2Logs, LogFilter, LogType } from '@aztec/circuit-types';
|
|
1
|
+
import { EncryptedL2BlockL2Logs, FromLogType, GetUnencryptedLogsResponse, L2BlockL2Logs, LogFilter, LogType, UnencryptedL2BlockL2Logs } from '@aztec/circuit-types';
|
|
2
2
|
import { AztecKVStore } from '@aztec/kv-store';
|
|
3
3
|
import { BlockStore } from './block_store.js';
|
|
4
4
|
/**
|
|
@@ -16,7 +16,7 @@ export declare class LogStore {
|
|
|
16
16
|
* @param blockNumber - The block for which to add the logs.
|
|
17
17
|
* @returns True if the operation is successful.
|
|
18
18
|
*/
|
|
19
|
-
addLogs(encryptedLogs:
|
|
19
|
+
addLogs(encryptedLogs: EncryptedL2BlockL2Logs | undefined, unencryptedLogs: UnencryptedL2BlockL2Logs | undefined, blockNumber: number): Promise<boolean>;
|
|
20
20
|
/**
|
|
21
21
|
* Gets up to `limit` amount of logs starting from `from`.
|
|
22
22
|
* @param start - Number of the L2 block to which corresponds the first logs to be returned.
|
|
@@ -24,7 +24,7 @@ export declare class LogStore {
|
|
|
24
24
|
* @param logType - Specifies whether to return encrypted or unencrypted logs.
|
|
25
25
|
* @returns The requested logs.
|
|
26
26
|
*/
|
|
27
|
-
getLogs(start: number, limit: number, logType:
|
|
27
|
+
getLogs<TLogType extends LogType>(start: number, limit: number, logType: TLogType): IterableIterator<L2BlockL2Logs<FromLogType<TLogType>>>;
|
|
28
28
|
/**
|
|
29
29
|
* Gets unencrypted logs based on the provided filter.
|
|
30
30
|
* @param filter - The filter to apply to the logs.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/log_store.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"log_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/log_store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAEtB,WAAW,EACX,0BAA0B,EAC1B,aAAa,EACb,SAAS,EAET,OAAO,EACP,wBAAwB,EAEzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAY,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,QAAQ;;IAMP,OAAO,CAAC,EAAE;IAAgB,OAAO,CAAC,UAAU;gBAApC,EAAE,EAAE,YAAY,EAAU,UAAU,EAAE,UAAU,EAAE,eAAe,GAAE,MAAa;IAOpG;;;;;;OAMG;IACH,OAAO,CACL,aAAa,EAAE,sBAAsB,GAAG,SAAS,EACjD,eAAe,EAAE,wBAAwB,GAAG,SAAS,EACrD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAcnB;;;;;;OAMG;IACF,OAAO,CAAC,QAAQ,SAAS,OAAO,EAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,QAAQ,GAChB,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAQzD;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,0BAA0B;CAuGlE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var _LogStore_instances, _LogStore_encryptedLogs, _LogStore_unencryptedLogs, _LogStore_logsMaxPageSize, _LogStore_log, _LogStore_filterUnencryptedLogsOfTx, _LogStore_filterUnencryptedLogsBetweenBlocks, _LogStore_accumulateLogs, _LogStore_getBlockLogs;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import {
|
|
3
|
+
import { EncryptedL2BlockL2Logs, ExtendedUnencryptedL2Log, LogId, LogType, UnencryptedL2BlockL2Logs, } from '@aztec/circuit-types';
|
|
4
4
|
import { INITIAL_L2_BLOCK_NUM } from '@aztec/circuits.js/constants';
|
|
5
5
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
6
6
|
/**
|
|
@@ -46,6 +46,7 @@ export class LogStore {
|
|
|
46
46
|
*/
|
|
47
47
|
*getLogs(start, limit, logType) {
|
|
48
48
|
const logMap = logType === LogType.ENCRYPTED ? __classPrivateFieldGet(this, _LogStore_encryptedLogs, "f") : __classPrivateFieldGet(this, _LogStore_unencryptedLogs, "f");
|
|
49
|
+
const L2BlockL2Logs = logType === LogType.ENCRYPTED ? EncryptedL2BlockL2Logs : UnencryptedL2BlockL2Logs;
|
|
49
50
|
for (const buffer of logMap.values({ start, limit })) {
|
|
50
51
|
yield L2BlockL2Logs.fromBuffer(buffer);
|
|
51
52
|
}
|
|
@@ -76,7 +77,7 @@ _LogStore_encryptedLogs = new WeakMap(), _LogStore_unencryptedLogs = new WeakMap
|
|
|
76
77
|
return { logs: [], maxLogsHit: false };
|
|
77
78
|
}
|
|
78
79
|
const unencryptedLogsInBlock = __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_getBlockLogs).call(this, blockNumber, LogType.UNENCRYPTED);
|
|
79
|
-
const txLogs = unencryptedLogsInBlock.txLogs[txIndex].unrollLogs()
|
|
80
|
+
const txLogs = unencryptedLogsInBlock.txLogs[txIndex].unrollLogs();
|
|
80
81
|
const logs = [];
|
|
81
82
|
const maxLogsHit = __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_accumulateLogs).call(this, logs, blockNumber, txIndex, txLogs, filter);
|
|
82
83
|
return { logs, maxLogsHit };
|
|
@@ -92,9 +93,9 @@ _LogStore_encryptedLogs = new WeakMap(), _LogStore_unencryptedLogs = new WeakMap
|
|
|
92
93
|
const logs = [];
|
|
93
94
|
let maxLogsHit = false;
|
|
94
95
|
loopOverBlocks: for (const [blockNumber, logBuffer] of __classPrivateFieldGet(this, _LogStore_unencryptedLogs, "f").entries({ start, end })) {
|
|
95
|
-
const unencryptedLogsInBlock =
|
|
96
|
+
const unencryptedLogsInBlock = UnencryptedL2BlockL2Logs.fromBuffer(logBuffer);
|
|
96
97
|
for (let txIndex = filter.afterLog?.txIndex ?? 0; txIndex < unencryptedLogsInBlock.txLogs.length; txIndex++) {
|
|
97
|
-
const txLogs = unencryptedLogsInBlock.txLogs[txIndex].unrollLogs()
|
|
98
|
+
const txLogs = unencryptedLogsInBlock.txLogs[txIndex].unrollLogs();
|
|
98
99
|
maxLogsHit = __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_accumulateLogs).call(this, logs, blockNumber, txIndex, txLogs, filter);
|
|
99
100
|
if (maxLogsHit) {
|
|
100
101
|
__classPrivateFieldGet(this, _LogStore_log, "f").call(this, `Max logs hit at block ${blockNumber}`);
|
|
@@ -123,10 +124,11 @@ _LogStore_encryptedLogs = new WeakMap(), _LogStore_unencryptedLogs = new WeakMap
|
|
|
123
124
|
return maxLogsHit;
|
|
124
125
|
}, _LogStore_getBlockLogs = function _LogStore_getBlockLogs(blockNumber, logType) {
|
|
125
126
|
const logMap = logType === LogType.ENCRYPTED ? __classPrivateFieldGet(this, _LogStore_encryptedLogs, "f") : __classPrivateFieldGet(this, _LogStore_unencryptedLogs, "f");
|
|
127
|
+
const L2BlockL2Logs = logType === LogType.ENCRYPTED ? EncryptedL2BlockL2Logs : UnencryptedL2BlockL2Logs;
|
|
126
128
|
const buffer = logMap.get(blockNumber);
|
|
127
129
|
if (!buffer) {
|
|
128
130
|
return new L2BlockL2Logs([]);
|
|
129
131
|
}
|
|
130
132
|
return L2BlockL2Logs.fromBuffer(buffer);
|
|
131
133
|
};
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3N0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdmVyL2t2X2FyY2hpdmVyX3N0b3JlL2xvZ19zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBS3hCLEtBQUssRUFDTCxPQUFPLEVBQ1Asd0JBQXdCLEdBRXpCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQU1uQixZQUFvQixFQUFnQixFQUFVLFVBQXNCLEVBQUUsa0JBQTBCLElBQUk7O1FBQWhGLE9BQUUsR0FBRixFQUFFLENBQWM7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBTHBFLDBDQUF5QztRQUN6Qyw0Q0FBMkM7UUFDM0MsNENBQXlCO1FBQ3pCLHdCQUFPLGlCQUFpQixDQUFDLDBCQUEwQixDQUFDLEVBQUM7UUFHbkQsdUJBQUEsSUFBSSwyQkFBa0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxNQUFBLENBQUM7UUFDNUQsdUJBQUEsSUFBSSw2QkFBb0IsRUFBRSxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxNQUFBLENBQUM7UUFFaEUsdUJBQUEsSUFBSSw2QkFBb0IsZUFBZSxNQUFBLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FDTCxhQUFpRCxFQUNqRCxlQUFxRCxFQUNyRCxXQUFtQjtRQUVuQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUM5QixJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixLQUFLLHVCQUFBLElBQUksK0JBQWUsQ0FBQyxHQUFHLENBQUMsV0FB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
|
|
@@ -21,11 +21,12 @@ export declare class MessageStore {
|
|
|
21
21
|
*/
|
|
22
22
|
addL1ToL2Messages(messages: DataRetrieval<InboxLeaf>): Promise<boolean>;
|
|
23
23
|
/**
|
|
24
|
-
* Gets the L1 to L2 message index in the L1 to L2 message tree
|
|
24
|
+
* Gets the first L1 to L2 message index in the L1 to L2 message tree which is greater than or equal to `startIndex`.
|
|
25
25
|
* @param l1ToL2Message - The L1 to L2 message.
|
|
26
|
+
* @param startIndex - The index to start searching from.
|
|
26
27
|
* @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
|
|
27
28
|
*/
|
|
28
|
-
getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined>;
|
|
29
|
+
getL1ToL2MessageIndex(l1ToL2Message: Fr, startIndex: bigint): Promise<bigint | undefined>;
|
|
29
30
|
getL1ToL2Messages(blockNumber: bigint): Fr[];
|
|
30
31
|
}
|
|
31
32
|
//# sourceMappingURL=message_store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/message_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,EAAE,EAIH,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAA4B,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,qBAAa,YAAY;;IASX,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAMpC;;;OAGG;IACH,uBAAuB,IAAI,MAAM;IAIjC;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"message_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/message_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EACL,EAAE,EAIH,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAA4B,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD;;GAEG;AACH,qBAAa,YAAY;;IASX,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAMpC;;;OAGG;IACH,uBAAuB,IAAI,MAAM;IAIjC;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BvE;;;;;OAKG;IACH,qBAAqB,CAAC,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAMzF,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,EAAE,EAAE;CAoB7C"}
|
|
@@ -9,7 +9,7 @@ export class MessageStore {
|
|
|
9
9
|
constructor(db) {
|
|
10
10
|
this.db = db;
|
|
11
11
|
_MessageStore_l1ToL2Messages.set(this, void 0);
|
|
12
|
-
_MessageStore_l1ToL2MessageIndices.set(this, void 0);
|
|
12
|
+
_MessageStore_l1ToL2MessageIndices.set(this, void 0); // We store array of bigints here because there can be duplicate messages
|
|
13
13
|
_MessageStore_lastL1BlockMessages.set(this, void 0);
|
|
14
14
|
_MessageStore_log.set(this, createDebugLogger('aztec:archiver:message_store'));
|
|
15
15
|
_MessageStore_l1ToL2MessagesSubtreeSize.set(this, 2 ** L1_TO_L2_MSG_SUBTREE_HEIGHT);
|
|
@@ -44,18 +44,22 @@ export class MessageStore {
|
|
|
44
44
|
void __classPrivateFieldGet(this, _MessageStore_l1ToL2Messages, "f").setIfNotExists(key, message.leaf.toBuffer());
|
|
45
45
|
const indexInTheWholeTree = (message.blockNumber - BigInt(INITIAL_L2_BLOCK_NUM)) * BigInt(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP) +
|
|
46
46
|
message.index;
|
|
47
|
-
|
|
47
|
+
const indices = __classPrivateFieldGet(this, _MessageStore_l1ToL2MessageIndices, "f").get(message.leaf.toString()) ?? [];
|
|
48
|
+
indices.push(indexInTheWholeTree);
|
|
49
|
+
void __classPrivateFieldGet(this, _MessageStore_l1ToL2MessageIndices, "f").set(message.leaf.toString(), indices);
|
|
48
50
|
}
|
|
49
51
|
return true;
|
|
50
52
|
});
|
|
51
53
|
}
|
|
52
54
|
/**
|
|
53
|
-
* Gets the L1 to L2 message index in the L1 to L2 message tree
|
|
55
|
+
* Gets the first L1 to L2 message index in the L1 to L2 message tree which is greater than or equal to `startIndex`.
|
|
54
56
|
* @param l1ToL2Message - The L1 to L2 message.
|
|
57
|
+
* @param startIndex - The index to start searching from.
|
|
55
58
|
* @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
|
|
56
59
|
*/
|
|
57
|
-
getL1ToL2MessageIndex(l1ToL2Message) {
|
|
58
|
-
const
|
|
60
|
+
getL1ToL2MessageIndex(l1ToL2Message, startIndex) {
|
|
61
|
+
const indices = __classPrivateFieldGet(this, _MessageStore_l1ToL2MessageIndices, "f").get(l1ToL2Message.toString()) ?? [];
|
|
62
|
+
const index = indices.find(i => i >= startIndex);
|
|
59
63
|
return Promise.resolve(index);
|
|
60
64
|
}
|
|
61
65
|
getL1ToL2Messages(blockNumber) {
|
|
@@ -81,4 +85,4 @@ export class MessageStore {
|
|
|
81
85
|
}
|
|
82
86
|
}
|
|
83
87
|
_MessageStore_l1ToL2Messages = new WeakMap(), _MessageStore_l1ToL2MessageIndices = new WeakMap(), _MessageStore_lastL1BlockMessages = new WeakMap(), _MessageStore_log = new WeakMap(), _MessageStore_l1ToL2MessagesSubtreeSize = new WeakMap();
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZV9zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9rdl9hcmNoaXZlcl9zdG9yZS9tZXNzYWdlX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUNMLEVBQUUsRUFDRixvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLG1DQUFtQyxHQUNwQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSzFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFlBQVk7SUFTdkIsWUFBb0IsRUFBZ0I7UUFBaEIsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQVJwQywrQ0FBMEM7UUFDMUMscURBQWtELENBQUMseUVBQXlFO1FBQzVILG9EQUE2QztRQUU3Qyw0QkFBTyxpQkFBaUIsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFDO1FBRXpELGtEQUE2QixDQUFDLElBQUksMkJBQTJCLEVBQUM7UUFHNUQsdUJBQUEsSUFBSSxnQ0FBbUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxNQUFBLENBQUM7UUFDaEUsdUJBQUEsSUFBSSxzQ0FBeUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQyxNQUFBLENBQUM7UUFDN0UsdUJBQUEsSUFBSSxxQ0FBd0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQ0FBcUMsQ0FBQyxNQUFBLENBQUM7SUFDdEYsQ0FBQztJQUVEOzs7T0FHRztJQUNILHVCQUF1QjtRQUNyQixPQUFPLHVCQUFBLElBQUkseUNBQXFCLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsaUJBQWlCLENBQUMsUUFBa0M7UUFDbEQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsTUFBTSxpQkFBaUIsR0FBRyx1QkFBQSxJ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
|
|
@@ -6,18 +6,18 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
6
6
|
export declare class L1ToL2MessageStore {
|
|
7
7
|
#private;
|
|
8
8
|
/**
|
|
9
|
-
* A map
|
|
10
|
-
* messages (and the number of times the message has been seen).
|
|
9
|
+
* A map pointing from a key in a "blockNum-messageIndex" format to the corresponding L1 to L2 message hash.
|
|
11
10
|
*/
|
|
12
11
|
protected store: Map<string, Fr>;
|
|
13
12
|
constructor();
|
|
14
13
|
addMessage(message: InboxLeaf): void;
|
|
15
14
|
getMessages(blockNumber: bigint): Fr[];
|
|
16
15
|
/**
|
|
17
|
-
* Gets the L1 to L2 message index in the L1 to L2 message tree
|
|
16
|
+
* Gets the first L1 to L2 message index in the L1 to L2 message tree which is greater than or equal to `startIndex`.
|
|
18
17
|
* @param l1ToL2Message - The L1 to L2 message.
|
|
18
|
+
* @param startIndex - The index to start searching from.
|
|
19
19
|
* @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
|
|
20
20
|
*/
|
|
21
|
-
getMessageIndex(l1ToL2Message: Fr): bigint | undefined;
|
|
21
|
+
getMessageIndex(l1ToL2Message: Fr, startIndex: bigint): bigint | undefined;
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=l1_to_l2_message_store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1_to_l2_message_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/memory_archiver_store/l1_to_l2_message_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMjD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C;;GAEG;AACH,qBAAa,kBAAkB;;IAC7B
|
|
1
|
+
{"version":3,"file":"l1_to_l2_message_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/memory_archiver_store/l1_to_l2_message_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMjD,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C;;GAEG;AACH,qBAAa,kBAAkB;;IAC7B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAa;;IAM7C,UAAU,CAAC,OAAO,EAAE,SAAS;IAQ7B,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,EAAE,EAAE;IAqBtC;;;;;OAKG;IACH,eAAe,CAAC,aAAa,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAe3E"}
|
|
@@ -7,8 +7,7 @@ import { INITIAL_L2_BLOCK_NUM, L1_TO_L2_MSG_SUBTREE_HEIGHT, NUMBER_OF_L1_L2_MESS
|
|
|
7
7
|
export class L1ToL2MessageStore {
|
|
8
8
|
constructor() {
|
|
9
9
|
/**
|
|
10
|
-
* A map
|
|
11
|
-
* messages (and the number of times the message has been seen).
|
|
10
|
+
* A map pointing from a key in a "blockNum-messageIndex" format to the corresponding L1 to L2 message hash.
|
|
12
11
|
*/
|
|
13
12
|
this.store = new Map();
|
|
14
13
|
_L1ToL2MessageStore_l1ToL2MessagesSubtreeSize.set(this, 2 ** L1_TO_L2_MSG_SUBTREE_HEIGHT);
|
|
@@ -42,16 +41,20 @@ export class L1ToL2MessageStore {
|
|
|
42
41
|
return messages;
|
|
43
42
|
}
|
|
44
43
|
/**
|
|
45
|
-
* Gets the L1 to L2 message index in the L1 to L2 message tree
|
|
44
|
+
* Gets the first L1 to L2 message index in the L1 to L2 message tree which is greater than or equal to `startIndex`.
|
|
46
45
|
* @param l1ToL2Message - The L1 to L2 message.
|
|
46
|
+
* @param startIndex - The index to start searching from.
|
|
47
47
|
* @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
|
|
48
48
|
*/
|
|
49
|
-
getMessageIndex(l1ToL2Message) {
|
|
49
|
+
getMessageIndex(l1ToL2Message, startIndex) {
|
|
50
50
|
for (const [key, message] of this.store.entries()) {
|
|
51
51
|
if (message.equals(l1ToL2Message)) {
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
-
|
|
52
|
+
const keyParts = key.split('-');
|
|
53
|
+
const [blockNumber, messageIndex] = [BigInt(keyParts[0]), BigInt(keyParts[1])];
|
|
54
|
+
const indexInTheWholeTree = (blockNumber - BigInt(INITIAL_L2_BLOCK_NUM)) * BigInt(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP) + messageIndex;
|
|
55
|
+
if (indexInTheWholeTree < startIndex) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
55
58
|
return indexInTheWholeTree;
|
|
56
59
|
}
|
|
57
60
|
}
|
|
@@ -59,4 +62,4 @@ export class L1ToL2MessageStore {
|
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
64
|
_L1ToL2MessageStore_l1ToL2MessagesSubtreeSize = new WeakMap();
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdG9fbDJfbWVzc2FnZV9zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9tZW1vcnlfYXJjaGl2ZXJfc3RvcmUvbDFfdG9fbDJfbWVzc2FnZV9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLG1DQUFtQyxHQUNwQyxNQUFNLDhCQUE4QixDQUFDO0FBR3RDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQVE3QjtRQVBBOztXQUVHO1FBQ08sVUFBSyxHQUFvQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTdDLHdEQUE2QixDQUFDLElBQUksMkJBQTJCLEVBQUM7SUFFL0MsQ0FBQztJQUVoQixVQUFVLENBQUMsT0FBa0I7UUFDM0IsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLHVCQUFBLElBQUkscURBQTJCLEVBQUUsQ0FBQztZQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixPQUFPLENBQUMsS0FBSyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxXQUFtQjtRQUM3QixNQUFNLFFBQVEsR0FBUyxFQUFFLENBQUM7UUFDMUIsSUFBSSxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDbEMsS0FBSyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsWUFBWSxHQUFHLHVCQUFBLElBQUkscURBQTJCLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUMxRixpREFBaUQ7WUFDakQsTUFBTSxHQUFHLEdBQUcsR0FBRyxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7WUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixJQUFJLHFCQUFxQixFQUFFLENBQUM7b0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQ3hFLENBQUM7Z0JBQ0QsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04scUJBQXFCLEdBQUcsSUFBSSxDQUFDO2dCQUM3Qiw4R0FBOEc7Z0JBQzlHLG1GQUFtRjtZQUNyRixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxhQUFpQixFQUFFLFVBQWtCO1FBQ25ELEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbEQsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9FLE1BQU0sbUJBQW1CLEdBQ3ZCLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLEdBQUcsWUFBWSxDQUFDO2dCQUM1RyxJQUFJLG1CQUFtQixHQUFHLFVBQVUsRUFBRSxDQUFDO29CQUNyQyxTQUFTO2dCQUNYLENBQUM7Z0JBQ0QsT0FBTyxtQkFBbUIsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiJ9
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { Body, GetUnencryptedLogsResponse, InboxLeaf, L2Block, L2BlockL2Logs, LogFilter, LogType, TxEffect, TxHash, TxReceipt } from '@aztec/circuit-types';
|
|
2
|
+
import { Body, EncryptedL2BlockL2Logs, FromLogType, GetUnencryptedLogsResponse, InboxLeaf, L2Block, L2BlockL2Logs, LogFilter, LogType, TxEffect, TxHash, TxReceipt, UnencryptedL2BlockL2Logs } from '@aztec/circuit-types';
|
|
3
3
|
import { Fr } from '@aztec/circuits.js';
|
|
4
4
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
5
|
-
import { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/types/contracts';
|
|
5
|
+
import { ContractClassPublic, ContractInstanceWithAddress, ExecutablePrivateFunctionWithMembershipProof, UnconstrainedFunctionWithMembershipProof } from '@aztec/types/contracts';
|
|
6
6
|
import { ArchiverDataStore, ArchiverL1SynchPoint } from '../archiver_store.js';
|
|
7
7
|
import { DataRetrieval } from '../data_retrieval.js';
|
|
8
8
|
/**
|
|
@@ -38,6 +38,8 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
38
38
|
*/
|
|
39
39
|
private l1ToL2Messages;
|
|
40
40
|
private contractClasses;
|
|
41
|
+
private privateFunctions;
|
|
42
|
+
private unconstrainedFunctions;
|
|
41
43
|
private contractInstances;
|
|
42
44
|
private lastL1BlockNewBlocks;
|
|
43
45
|
private lastL1BlockNewMessages;
|
|
@@ -47,6 +49,7 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
47
49
|
getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
|
|
48
50
|
getContractClassIds(): Promise<Fr[]>;
|
|
49
51
|
getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
|
|
52
|
+
addFunctions(contractClassId: Fr, newPrivateFunctions: ExecutablePrivateFunctionWithMembershipProof[], newUnconstrainedFunctions: UnconstrainedFunctionWithMembershipProof[]): Promise<boolean>;
|
|
50
53
|
addContractClasses(data: ContractClassPublic[], _blockNumber: number): Promise<boolean>;
|
|
51
54
|
addContractInstances(data: ContractInstanceWithAddress[], _blockNumber: number): Promise<boolean>;
|
|
52
55
|
/**
|
|
@@ -75,7 +78,7 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
75
78
|
* @param blockNumber - The block for which to add the logs.
|
|
76
79
|
* @returns True if the operation is successful.
|
|
77
80
|
*/
|
|
78
|
-
addLogs(encryptedLogs:
|
|
81
|
+
addLogs(encryptedLogs: EncryptedL2BlockL2Logs, unencryptedLogs: UnencryptedL2BlockL2Logs, blockNumber: number): Promise<boolean>;
|
|
79
82
|
/**
|
|
80
83
|
* Append L1 to L2 messages to the store.
|
|
81
84
|
* @param messages - The L1 to L2 messages to be added to the store and the last processed L1 block.
|
|
@@ -83,11 +86,12 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
83
86
|
*/
|
|
84
87
|
addL1ToL2Messages(messages: DataRetrieval<InboxLeaf>): Promise<boolean>;
|
|
85
88
|
/**
|
|
86
|
-
* Gets the L1 to L2 message index in the L1 to L2 message tree
|
|
89
|
+
* Gets the first L1 to L2 message index in the L1 to L2 message tree which is greater than or equal to `startIndex`.
|
|
87
90
|
* @param l1ToL2Message - The L1 to L2 message.
|
|
91
|
+
* @param startIndex - The index to start searching from.
|
|
88
92
|
* @returns The index of the L1 to L2 message in the L1 to L2 message tree (undefined if not found).
|
|
89
93
|
*/
|
|
90
|
-
getL1ToL2MessageIndex(l1ToL2Message: Fr): Promise<bigint | undefined>;
|
|
94
|
+
getL1ToL2MessageIndex(l1ToL2Message: Fr, startIndex: bigint): Promise<bigint | undefined>;
|
|
91
95
|
/**
|
|
92
96
|
* Gets up to `limit` amount of L2 blocks starting from `from`.
|
|
93
97
|
* @param from - Number of the first block to return (inclusive).
|
|
@@ -121,7 +125,7 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
121
125
|
* @param logType - Specifies whether to return encrypted or unencrypted logs.
|
|
122
126
|
* @returns The requested logs.
|
|
123
127
|
*/
|
|
124
|
-
getLogs(from: number, limit: number, logType:
|
|
128
|
+
getLogs<TLogType extends LogType>(from: number, limit: number, logType: TLogType): Promise<L2BlockL2Logs<FromLogType<TLogType>>[]>;
|
|
125
129
|
/**
|
|
126
130
|
* Gets unencrypted logs based on the provided filter.
|
|
127
131
|
* @param filter - The filter to apply to the logs.
|
|
@@ -134,6 +138,6 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
134
138
|
* @returns The number of the latest L2 block processed.
|
|
135
139
|
*/
|
|
136
140
|
getSynchedL2BlockNumber(): Promise<number>;
|
|
137
|
-
|
|
141
|
+
getSynchPoint(): Promise<ArchiverL1SynchPoint>;
|
|
138
142
|
}
|
|
139
143
|
//# sourceMappingURL=memory_archiver_store.d.ts.map
|
|
@@ -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,IAAI,
|
|
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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"}
|