@aztec/archiver 0.62.0 → 0.63.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 +11 -2
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +43 -19
- package/dest/archiver/archiver_store.d.ts +8 -2
- 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 +64 -25
- package/dest/archiver/config.d.ts +2 -6
- package/dest/archiver/config.d.ts.map +1 -1
- package/dest/archiver/config.js +3 -6
- package/dest/archiver/epoch_helpers.d.ts +10 -10
- package/dest/archiver/epoch_helpers.d.ts.map +1 -1
- package/dest/archiver/epoch_helpers.js +9 -10
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +8 -2
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +14 -1
- package/dest/archiver/kv_archiver_store/log_store.d.ts +8 -2
- package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/log_store.js +144 -57
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts +13 -4
- package/dest/archiver/memory_archiver_store/memory_archiver_store.d.ts.map +1 -1
- package/dest/archiver/memory_archiver_store/memory_archiver_store.js +136 -31
- package/dest/factory.d.ts +5 -2
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +2 -2
- package/dest/rpc/index.d.ts +3 -2
- package/dest/rpc/index.d.ts.map +1 -1
- package/dest/rpc/index.js +10 -3
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +4 -2
- package/package.json +10 -10
- package/src/archiver/archiver.ts +54 -24
- package/src/archiver/archiver_store.ts +9 -2
- package/src/archiver/archiver_store_test_suite.ts +85 -26
- package/src/archiver/config.ts +11 -12
- package/src/archiver/epoch_helpers.ts +16 -12
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +15 -2
- package/src/archiver/kv_archiver_store/log_store.ts +176 -58
- package/src/archiver/memory_archiver_store/memory_archiver_store.ts +152 -27
- package/src/factory.ts +6 -3
- package/src/rpc/index.ts +11 -2
- package/src/test/mock_l2_block_source.ts +3 -1
- package/dest/rpc/archiver_client.d.ts +0 -3
- package/dest/rpc/archiver_client.d.ts.map +0 -1
- package/dest/rpc/archiver_client.js +0 -12
- package/dest/rpc/archiver_server.d.ts +0 -9
- package/dest/rpc/archiver_server.d.ts.map +0 -1
- package/dest/rpc/archiver_server.js +0 -20
- package/src/rpc/archiver_client.ts +0 -29
- package/src/rpc/archiver_server.ts +0 -35
|
@@ -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,EAML,KAAK,WAAW,EAChB,KAAK,0BAA0B,EAC/B,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,SAAS,EAEd,OAAO,EACP,aAAa,EAGd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAGxC,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,qBAAa,QAAQ;;IAUP,OAAO,CAAC,EAAE;IAAgB,OAAO,CAAC,UAAU;gBAApC,EAAE,EAAE,YAAY,EAAU,UAAU,EAAE,UAAU,EAAE,eAAe,GAAE,MAAa;IAmEpG;;;;OAIG;IACG,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA2C5C,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBrD;;;;;;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;IA6BzD;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;IAQrD;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,0BAA0B;IA2DjE;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,0BAA0B;CAuHpE"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
var _LogStore_instances, _LogStore_noteEncryptedLogsByBlock,
|
|
1
|
+
var _LogStore_instances, _LogStore_noteEncryptedLogsByBlock, _LogStore_logsByTag, _LogStore_logTagsByBlock, _LogStore_encryptedLogsByBlock, _LogStore_unencryptedLogsByBlock, _LogStore_contractClassLogsByBlock, _LogStore_logsMaxPageSize, _LogStore_log, _LogStore_extractTaggedLogs, _LogStore_filterUnencryptedLogsOfTx, _LogStore_filterUnencryptedLogsBetweenBlocks, _LogStore_filterContractClassLogsOfTx, _LogStore_filterContractClassLogsBetweenBlocks, _LogStore_accumulateLogs, _LogStore_getBlockLogs;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import {
|
|
3
|
+
import { ContractClass2BlockL2Logs, EncryptedL2BlockL2Logs, EncryptedNoteL2BlockL2Logs, ExtendedUnencryptedL2Log, LogId, LogType, TxScopedL2Log, UnencryptedL2BlockL2Logs, } from '@aztec/circuit-types';
|
|
4
4
|
import { Fr } from '@aztec/circuits.js';
|
|
5
|
-
import { INITIAL_L2_BLOCK_NUM } from '@aztec/circuits.js/constants';
|
|
5
|
+
import { INITIAL_L2_BLOCK_NUM, MAX_NOTE_HASHES_PER_TX } from '@aztec/circuits.js/constants';
|
|
6
6
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
7
7
|
/**
|
|
8
8
|
* A store for logs
|
|
@@ -13,19 +13,19 @@ export class LogStore {
|
|
|
13
13
|
this.db = db;
|
|
14
14
|
this.blockStore = blockStore;
|
|
15
15
|
_LogStore_noteEncryptedLogsByBlock.set(this, void 0);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
_LogStore_noteEncryptedLogTagsByBlock.set(this, void 0);
|
|
16
|
+
_LogStore_logsByTag.set(this, void 0);
|
|
17
|
+
_LogStore_logTagsByBlock.set(this, void 0);
|
|
19
18
|
_LogStore_encryptedLogsByBlock.set(this, void 0);
|
|
20
19
|
_LogStore_unencryptedLogsByBlock.set(this, void 0);
|
|
20
|
+
_LogStore_contractClassLogsByBlock.set(this, void 0);
|
|
21
21
|
_LogStore_logsMaxPageSize.set(this, void 0);
|
|
22
22
|
_LogStore_log.set(this, createDebugLogger('aztec:archiver:log_store'));
|
|
23
23
|
__classPrivateFieldSet(this, _LogStore_noteEncryptedLogsByBlock, db.openMap('archiver_note_encrypted_logs_by_block'), "f");
|
|
24
|
-
__classPrivateFieldSet(this,
|
|
25
|
-
__classPrivateFieldSet(this,
|
|
26
|
-
__classPrivateFieldSet(this, _LogStore_noteEncryptedLogTagsByBlock, db.openMultiMap('archiver_note_encrypted_log_tags_by_block'), "f");
|
|
24
|
+
__classPrivateFieldSet(this, _LogStore_logsByTag, db.openMap('archiver_tagged_logs_by_tag'), "f");
|
|
25
|
+
__classPrivateFieldSet(this, _LogStore_logTagsByBlock, db.openMap('archiver_log_tags_by_block'), "f");
|
|
27
26
|
__classPrivateFieldSet(this, _LogStore_encryptedLogsByBlock, db.openMap('archiver_encrypted_logs_by_block'), "f");
|
|
28
27
|
__classPrivateFieldSet(this, _LogStore_unencryptedLogsByBlock, db.openMap('archiver_unencrypted_logs_by_block'), "f");
|
|
28
|
+
__classPrivateFieldSet(this, _LogStore_contractClassLogsByBlock, db.openMap('archiver_contract_class_logs_by_block'), "f");
|
|
29
29
|
__classPrivateFieldSet(this, _LogStore_logsMaxPageSize, logsMaxPageSize, "f");
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
@@ -33,58 +33,55 @@ export class LogStore {
|
|
|
33
33
|
* @param blocks - The blocks for which to add the logs.
|
|
34
34
|
* @returns True if the operation is successful.
|
|
35
35
|
*/
|
|
36
|
-
addLogs(blocks) {
|
|
36
|
+
async addLogs(blocks) {
|
|
37
|
+
const taggedLogsToAdd = blocks
|
|
38
|
+
.flatMap(block => [
|
|
39
|
+
__classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_extractTaggedLogs).call(this, block, 'noteEncryptedLogs'),
|
|
40
|
+
__classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_extractTaggedLogs).call(this, block, 'unencryptedLogs'),
|
|
41
|
+
])
|
|
42
|
+
.reduce((acc, val) => {
|
|
43
|
+
for (const [tag, logs] of val.entries()) {
|
|
44
|
+
const currentLogs = acc.get(tag) ?? [];
|
|
45
|
+
acc.set(tag, currentLogs.concat(logs));
|
|
46
|
+
}
|
|
47
|
+
return acc;
|
|
48
|
+
});
|
|
49
|
+
const tagsToUpdate = Array.from(taggedLogsToAdd.keys());
|
|
50
|
+
const currentTaggedLogs = await this.db.transaction(() => tagsToUpdate.map(tag => ({ tag, logBuffers: __classPrivateFieldGet(this, _LogStore_logsByTag, "f").get(tag) })));
|
|
51
|
+
currentTaggedLogs.forEach(taggedLogBuffer => {
|
|
52
|
+
if (taggedLogBuffer.logBuffers && taggedLogBuffer.logBuffers.length > 0) {
|
|
53
|
+
taggedLogsToAdd.set(taggedLogBuffer.tag, taggedLogBuffer.logBuffers.concat(taggedLogsToAdd.get(taggedLogBuffer.tag)));
|
|
54
|
+
}
|
|
55
|
+
});
|
|
37
56
|
return this.db.transaction(() => {
|
|
38
57
|
blocks.forEach(block => {
|
|
58
|
+
const tagsInBlock = [];
|
|
59
|
+
for (const [tag, logs] of taggedLogsToAdd.entries()) {
|
|
60
|
+
void __classPrivateFieldGet(this, _LogStore_logsByTag, "f").set(tag, logs);
|
|
61
|
+
tagsInBlock.push(tag);
|
|
62
|
+
}
|
|
63
|
+
void __classPrivateFieldGet(this, _LogStore_logTagsByBlock, "f").set(block.number, tagsInBlock);
|
|
39
64
|
void __classPrivateFieldGet(this, _LogStore_noteEncryptedLogsByBlock, "f").set(block.number, block.body.noteEncryptedLogs.toBuffer());
|
|
40
|
-
block.body.noteEncryptedLogs.txLogs.forEach(txLogs => {
|
|
41
|
-
const noteLogs = txLogs.unrollLogs();
|
|
42
|
-
noteLogs.forEach(noteLog => {
|
|
43
|
-
if (noteLog.data.length < 32) {
|
|
44
|
-
__classPrivateFieldGet(this, _LogStore_log, "f").warn(`Skipping note log with invalid data length: ${noteLog.data.length}`);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
try {
|
|
48
|
-
const tag = new Fr(noteLog.data.subarray(0, 32));
|
|
49
|
-
const hexHash = noteLog.hash().toString('hex');
|
|
50
|
-
// Ideally we'd store all of the logs for a matching tag in an AztecMultiMap, but this type doesn't doesn't
|
|
51
|
-
// handle storing buffers well. The 'ordered-binary' encoding returns an error trying to decode buffers
|
|
52
|
-
// ('the number <> cannot be converted to a BigInt because it is not an integer'). We therefore store
|
|
53
|
-
// instead the hashes of the logs.
|
|
54
|
-
void __classPrivateFieldGet(this, _LogStore_noteEncryptedLogHashesByTag, "f").set(tag.toString(), hexHash);
|
|
55
|
-
void __classPrivateFieldGet(this, _LogStore_noteEncryptedLogsByHash, "f").set(hexHash, noteLog.toBuffer());
|
|
56
|
-
void __classPrivateFieldGet(this, _LogStore_noteEncryptedLogTagsByBlock, "f").set(block.number, tag.toString());
|
|
57
|
-
}
|
|
58
|
-
catch (err) {
|
|
59
|
-
__classPrivateFieldGet(this, _LogStore_log, "f").warn(`Failed to add tagged note log to store: ${err}`);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
65
|
void __classPrivateFieldGet(this, _LogStore_encryptedLogsByBlock, "f").set(block.number, block.body.encryptedLogs.toBuffer());
|
|
64
66
|
void __classPrivateFieldGet(this, _LogStore_unencryptedLogsByBlock, "f").set(block.number, block.body.unencryptedLogs.toBuffer());
|
|
67
|
+
void __classPrivateFieldGet(this, _LogStore_contractClassLogsByBlock, "f").set(block.number, block.body.contractClassLogs.toBuffer());
|
|
65
68
|
});
|
|
66
69
|
return true;
|
|
67
70
|
});
|
|
68
71
|
}
|
|
69
72
|
async deleteLogs(blocks) {
|
|
70
|
-
const
|
|
71
|
-
return blocks.flatMap(block =>
|
|
72
|
-
});
|
|
73
|
-
const noteLogHashesToDelete = await this.db.transaction(() => {
|
|
74
|
-
return noteTagsToDelete.flatMap(tag => Array.from(__classPrivateFieldGet(this, _LogStore_noteEncryptedLogHashesByTag, "f").getValues(tag)));
|
|
73
|
+
const tagsToDelete = await this.db.transaction(() => {
|
|
74
|
+
return blocks.flatMap(block => __classPrivateFieldGet(this, _LogStore_logTagsByBlock, "f").get(block.number)?.map(tag => tag.toString()) ?? []);
|
|
75
75
|
});
|
|
76
76
|
return this.db.transaction(() => {
|
|
77
77
|
blocks.forEach(block => {
|
|
78
78
|
void __classPrivateFieldGet(this, _LogStore_noteEncryptedLogsByBlock, "f").delete(block.number);
|
|
79
79
|
void __classPrivateFieldGet(this, _LogStore_encryptedLogsByBlock, "f").delete(block.number);
|
|
80
80
|
void __classPrivateFieldGet(this, _LogStore_unencryptedLogsByBlock, "f").delete(block.number);
|
|
81
|
-
void __classPrivateFieldGet(this,
|
|
82
|
-
});
|
|
83
|
-
noteTagsToDelete.forEach(tag => {
|
|
84
|
-
void __classPrivateFieldGet(this, _LogStore_noteEncryptedLogHashesByTag, "f").delete(tag.toString());
|
|
81
|
+
void __classPrivateFieldGet(this, _LogStore_logTagsByBlock, "f").delete(block.number);
|
|
85
82
|
});
|
|
86
|
-
|
|
87
|
-
void __classPrivateFieldGet(this,
|
|
83
|
+
tagsToDelete.forEach(tag => {
|
|
84
|
+
void __classPrivateFieldGet(this, _LogStore_logsByTag, "f").delete(tag.toString());
|
|
88
85
|
});
|
|
89
86
|
return true;
|
|
90
87
|
});
|
|
@@ -131,17 +128,9 @@ export class LogStore {
|
|
|
131
128
|
* that tag.
|
|
132
129
|
*/
|
|
133
130
|
getLogsByTags(tags) {
|
|
134
|
-
return this.db.transaction(() =>
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
return (logHashes
|
|
138
|
-
.map(hash => __classPrivateFieldGet(this, _LogStore_noteEncryptedLogsByHash, "f").get(hash))
|
|
139
|
-
// addLogs should ensure that we never have undefined logs, but we filter them out regardless to protect
|
|
140
|
-
// ourselves from database corruption
|
|
141
|
-
.filter(noteLogBuffer => noteLogBuffer != undefined)
|
|
142
|
-
.map(noteLogBuffer => EncryptedL2NoteLog.fromBuffer(noteLogBuffer)));
|
|
143
|
-
});
|
|
144
|
-
});
|
|
131
|
+
return this.db.transaction(() => tags
|
|
132
|
+
.map(tag => __classPrivateFieldGet(this, _LogStore_logsByTag, "f").get(tag.toString()))
|
|
133
|
+
.map(noteLogBuffers => noteLogBuffers?.map(noteLogBuffer => TxScopedL2Log.fromBuffer(noteLogBuffer)) ?? []));
|
|
145
134
|
}
|
|
146
135
|
/**
|
|
147
136
|
* Gets unencrypted logs based on the provided filter.
|
|
@@ -159,8 +148,67 @@ export class LogStore {
|
|
|
159
148
|
return __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_filterUnencryptedLogsBetweenBlocks).call(this, filter);
|
|
160
149
|
}
|
|
161
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Gets contract class logs based on the provided filter.
|
|
153
|
+
* @param filter - The filter to apply to the logs.
|
|
154
|
+
* @returns The requested logs.
|
|
155
|
+
*/
|
|
156
|
+
getContractClassLogs(filter) {
|
|
157
|
+
if (filter.afterLog) {
|
|
158
|
+
return __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_filterContractClassLogsBetweenBlocks).call(this, filter);
|
|
159
|
+
}
|
|
160
|
+
else if (filter.txHash) {
|
|
161
|
+
return __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_filterContractClassLogsOfTx).call(this, filter);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
return __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_filterContractClassLogsBetweenBlocks).call(this, filter);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
162
167
|
}
|
|
163
|
-
_LogStore_noteEncryptedLogsByBlock = new WeakMap(),
|
|
168
|
+
_LogStore_noteEncryptedLogsByBlock = new WeakMap(), _LogStore_logsByTag = new WeakMap(), _LogStore_logTagsByBlock = new WeakMap(), _LogStore_encryptedLogsByBlock = new WeakMap(), _LogStore_unencryptedLogsByBlock = new WeakMap(), _LogStore_contractClassLogsByBlock = new WeakMap(), _LogStore_logsMaxPageSize = new WeakMap(), _LogStore_log = new WeakMap(), _LogStore_instances = new WeakSet(), _LogStore_extractTaggedLogs = function _LogStore_extractTaggedLogs(block, logType) {
|
|
169
|
+
const taggedLogs = new Map();
|
|
170
|
+
const dataStartIndexForBlock = block.header.state.partial.noteHashTree.nextAvailableLeafIndex -
|
|
171
|
+
block.body.numberOfTxsIncludingPadded * MAX_NOTE_HASHES_PER_TX;
|
|
172
|
+
block.body[logType].txLogs.forEach((txLogs, txIndex) => {
|
|
173
|
+
const txHash = block.body.txEffects[txIndex].txHash;
|
|
174
|
+
const dataStartIndexForTx = dataStartIndexForBlock + txIndex * MAX_NOTE_HASHES_PER_TX;
|
|
175
|
+
const logs = txLogs.unrollLogs();
|
|
176
|
+
logs.forEach(log => {
|
|
177
|
+
if ((logType == 'noteEncryptedLogs' && log.data.length < 32) ||
|
|
178
|
+
// TODO remove when #9835 and #9836 are fixed
|
|
179
|
+
(logType === 'unencryptedLogs' && log.data.length < 32 * 33)) {
|
|
180
|
+
__classPrivateFieldGet(this, _LogStore_log, "f").warn(`Skipping log (${logType}) with invalid data length: ${log.data.length}`);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
try {
|
|
184
|
+
let tag = Fr.ZERO;
|
|
185
|
+
// TODO remove when #9835 and #9836 are fixed. The partial note logs are emitted as bytes, but encoded as Fields.
|
|
186
|
+
// This means that for every 32 bytes of payload, we only have 1 byte of data.
|
|
187
|
+
// Also, the tag is not stored in the first 32 bytes of the log, (that's the length of public fields now) but in the next 32.
|
|
188
|
+
if (logType === 'unencryptedLogs') {
|
|
189
|
+
const correctedBuffer = Buffer.alloc(32);
|
|
190
|
+
const initialOffset = 32;
|
|
191
|
+
for (let i = 0; i < 32; i++) {
|
|
192
|
+
const byte = Fr.fromBuffer(log.data.subarray(i * 32 + initialOffset, i * 32 + 32 + initialOffset)).toNumber();
|
|
193
|
+
correctedBuffer.writeUInt8(byte, i);
|
|
194
|
+
}
|
|
195
|
+
tag = new Fr(correctedBuffer);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
tag = new Fr(log.data.subarray(0, 32));
|
|
199
|
+
}
|
|
200
|
+
__classPrivateFieldGet(this, _LogStore_log, "f").verbose(`Found tagged (${logType}) log with tag ${tag.toString()} in block ${block.number}`);
|
|
201
|
+
const currentLogs = taggedLogs.get(tag.toString()) ?? [];
|
|
202
|
+
currentLogs.push(new TxScopedL2Log(txHash, dataStartIndexForTx, block.number, logType === 'unencryptedLogs', log.data).toBuffer());
|
|
203
|
+
taggedLogs.set(tag.toString(), currentLogs);
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
__classPrivateFieldGet(this, _LogStore_log, "f").warn(`Failed to add tagged log to store: ${err}`);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
return taggedLogs;
|
|
211
|
+
}, _LogStore_filterUnencryptedLogsOfTx = function _LogStore_filterUnencryptedLogsOfTx(filter) {
|
|
164
212
|
if (!filter.txHash) {
|
|
165
213
|
throw new Error('Missing txHash');
|
|
166
214
|
}
|
|
@@ -196,6 +244,45 @@ _LogStore_noteEncryptedLogsByBlock = new WeakMap(), _LogStore_noteEncryptedLogsB
|
|
|
196
244
|
}
|
|
197
245
|
}
|
|
198
246
|
return { logs, maxLogsHit };
|
|
247
|
+
}, _LogStore_filterContractClassLogsOfTx = function _LogStore_filterContractClassLogsOfTx(filter) {
|
|
248
|
+
if (!filter.txHash) {
|
|
249
|
+
throw new Error('Missing txHash');
|
|
250
|
+
}
|
|
251
|
+
const [blockNumber, txIndex] = this.blockStore.getTxLocation(filter.txHash) ?? [];
|
|
252
|
+
if (typeof blockNumber !== 'number' || typeof txIndex !== 'number') {
|
|
253
|
+
return { logs: [], maxLogsHit: false };
|
|
254
|
+
}
|
|
255
|
+
const contractClassLogsBuffer = __classPrivateFieldGet(this, _LogStore_contractClassLogsByBlock, "f").get(blockNumber);
|
|
256
|
+
const contractClassLogsInBlock = contractClassLogsBuffer
|
|
257
|
+
? ContractClass2BlockL2Logs.fromBuffer(contractClassLogsBuffer)
|
|
258
|
+
: new ContractClass2BlockL2Logs([]);
|
|
259
|
+
const txLogs = contractClassLogsInBlock.txLogs[txIndex].unrollLogs();
|
|
260
|
+
const logs = [];
|
|
261
|
+
const maxLogsHit = __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_accumulateLogs).call(this, logs, blockNumber, txIndex, txLogs, filter);
|
|
262
|
+
return { logs, maxLogsHit };
|
|
263
|
+
}, _LogStore_filterContractClassLogsBetweenBlocks = function _LogStore_filterContractClassLogsBetweenBlocks(filter) {
|
|
264
|
+
const start = filter.afterLog?.blockNumber ?? Math.max(filter.fromBlock ?? INITIAL_L2_BLOCK_NUM, INITIAL_L2_BLOCK_NUM);
|
|
265
|
+
const end = filter.toBlock;
|
|
266
|
+
if (typeof end === 'number' && end < start) {
|
|
267
|
+
return {
|
|
268
|
+
logs: [],
|
|
269
|
+
maxLogsHit: true,
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
const logs = [];
|
|
273
|
+
let maxLogsHit = false;
|
|
274
|
+
loopOverBlocks: for (const [blockNumber, logBuffer] of __classPrivateFieldGet(this, _LogStore_contractClassLogsByBlock, "f").entries({ start, end })) {
|
|
275
|
+
const contractClassLogsInBlock = ContractClass2BlockL2Logs.fromBuffer(logBuffer);
|
|
276
|
+
for (let txIndex = filter.afterLog?.txIndex ?? 0; txIndex < contractClassLogsInBlock.txLogs.length; txIndex++) {
|
|
277
|
+
const txLogs = contractClassLogsInBlock.txLogs[txIndex].unrollLogs();
|
|
278
|
+
maxLogsHit = __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_accumulateLogs).call(this, logs, blockNumber, txIndex, txLogs, filter);
|
|
279
|
+
if (maxLogsHit) {
|
|
280
|
+
__classPrivateFieldGet(this, _LogStore_log, "f").debug(`Max logs hit at block ${blockNumber}`);
|
|
281
|
+
break loopOverBlocks;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return { logs, maxLogsHit };
|
|
199
286
|
}, _LogStore_accumulateLogs = function _LogStore_accumulateLogs(results, blockNumber, txIndex, txLogs, filter) {
|
|
200
287
|
let maxLogsHit = false;
|
|
201
288
|
let logIndex = typeof filter.afterLog?.logIndex === 'number' ? filter.afterLog.logIndex + 1 : 0;
|
|
@@ -240,4 +327,4 @@ _LogStore_noteEncryptedLogsByBlock = new WeakMap(), _LogStore_noteEncryptedLogsB
|
|
|
240
327
|
}
|
|
241
328
|
return L2BlockL2Logs.fromBuffer(buffer);
|
|
242
329
|
};
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3N0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdmVyL2t2X2FyY2hpdmVyX3N0b3JlL2xvZ19zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMxQix3QkFBd0IsRUFNeEIsS0FBSyxFQUNMLE9BQU8sRUFDUCx3QkFBd0IsR0FFekIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQVVuQixZQUFvQixFQUFnQixFQUFVLFVBQXNCLEVBQUUsa0JBQTBCLElBQUk7O1FBQWhGLE9BQUUsR0FBRixFQUFFLENBQWM7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBVHBFLHFEQUFvRDtRQUNwRCxvREFBbUQ7UUFDbkQsd0RBQTREO1FBQzVELHdEQUE0RDtRQUM1RCxpREFBZ0Q7UUFDaEQsbURBQWtEO1FBQ2xELDRDQUF5QjtRQUN6Qix3QkFBTyxpQkFBaUIsQ0FBQywwQkFBMEIsQ0FBQyxFQUFDO1FBR25ELHVCQUFBLElBQUksc0NBQTZCLEVBQUUsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLENBQUMsTUFBQSxDQUFDO1FBQ3JGLHVCQUFBLElBQUkscUNBQTRCLEVBQUUsQ0FBQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsTUFBQSxDQUFDO1FBQ25GLHVCQUFBLElBQUkseUNBQWdDLEVBQUUsQ0FBQyxZQUFZLENBQUMsa0RBQWtELENBQUMsTUFBQSxDQUFDO1FBQ3hHLHVCQUFBLElBQUkseUNBQWdDLEVBQUUsQ0FBQyxZQUFZLENBQUMsMkNB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
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3N0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdmVyL2t2X2FyY2hpdmVyX3N0b3JlL2xvZ19zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFFTCx5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQix3QkFBd0IsRUFNeEIsS0FBSyxFQUNMLE9BQU8sRUFDUCxhQUFhLEVBQ2Isd0JBQXdCLEdBRXpCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSzFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFVbkIsWUFBb0IsRUFBZ0IsRUFBVSxVQUFzQixFQUFFLGtCQUEwQixJQUFJOztRQUFoRixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVRwRSxxREFBb0Q7UUFDcEQsc0NBQXVDO1FBQ3ZDLDJDQUE0QztRQUM1QyxpREFBZ0Q7UUFDaEQsbURBQWtEO1FBQ2xELHFEQUFvRDtRQUNwRCw0Q0FBeUI7UUFDekIsd0JBQU8saUJBQWlCLENBQUMsMEJBQTBCLENBQUMsRUFBQztRQUduRCx1QkFBQSxJQUFJLHNDQUE2QixFQUFFLENBQUMsT0FBTyxDQUFDLHVDQUF1QyxDQUFDLE1BQUEsQ0FBQztRQUNyRix1QkFBQSxJQUFJLHVCQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsTUFBQSxDQUFDO1FBQzVELHVCQUFBLElBQUksNEJBQW1CLEVBQUUsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsTUFBQSxDQUFDO1FBQ2hFLHVCQUFBLElBQUksa0NBQXlCLEVB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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type FromLogType, type GetUnencryptedLogsResponse, type InboxLeaf, type L2Block, type L2BlockL2Logs, type LogFilter, LogType, type TxEffect, type TxHash, TxReceipt, TxScopedL2Log } from '@aztec/circuit-types';
|
|
2
2
|
import { type ContractClassPublic, type ContractInstanceWithAddress, type ExecutablePrivateFunctionWithMembershipProof, Fr, type Header, type UnconstrainedFunctionWithMembershipProof } from '@aztec/circuits.js';
|
|
3
3
|
import { type ContractArtifact } from '@aztec/foundation/abi';
|
|
4
4
|
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
@@ -21,10 +21,11 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
21
21
|
*/
|
|
22
22
|
private txEffects;
|
|
23
23
|
private noteEncryptedLogsPerBlock;
|
|
24
|
-
private
|
|
25
|
-
private
|
|
24
|
+
private taggedLogs;
|
|
25
|
+
private logTagsPerBlock;
|
|
26
26
|
private encryptedLogsPerBlock;
|
|
27
27
|
private unencryptedLogsPerBlock;
|
|
28
|
+
private contractClassLogsPerBlock;
|
|
28
29
|
/**
|
|
29
30
|
* Contains all L1 to L2 messages.
|
|
30
31
|
*/
|
|
@@ -124,7 +125,7 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
124
125
|
* @returns For each received tag, an array of matching logs is returned. An empty array implies no logs match
|
|
125
126
|
* that tag.
|
|
126
127
|
*/
|
|
127
|
-
getLogsByTags(tags: Fr[]): Promise<
|
|
128
|
+
getLogsByTags(tags: Fr[]): Promise<TxScopedL2Log[][]>;
|
|
128
129
|
/**
|
|
129
130
|
* Gets unencrypted logs based on the provided filter.
|
|
130
131
|
* @param filter - The filter to apply to the logs.
|
|
@@ -132,6 +133,14 @@ export declare class MemoryArchiverStore implements ArchiverDataStore {
|
|
|
132
133
|
* @remarks Works by doing an intersection of all params in the filter.
|
|
133
134
|
*/
|
|
134
135
|
getUnencryptedLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse>;
|
|
136
|
+
/**
|
|
137
|
+
* Gets contract class logs based on the provided filter.
|
|
138
|
+
* NB: clone of the above fn, but for contract class logs
|
|
139
|
+
* @param filter - The filter to apply to the logs.
|
|
140
|
+
* @returns The requested logs.
|
|
141
|
+
* @remarks Works by doing an intersection of all params in the filter.
|
|
142
|
+
*/
|
|
143
|
+
getContractClassLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse>;
|
|
135
144
|
/**
|
|
136
145
|
* Gets the number of the latest L2 block processed.
|
|
137
146
|
* @returns The number of the latest L2 block processed.
|
|
@@ -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,
|
|
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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"}
|