@aztec/archiver 0.19.0 → 0.20.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.
Files changed (26) hide show
  1. package/dest/archiver/config.d.ts.map +1 -1
  2. package/dest/archiver/config.js +5 -3
  3. package/dest/archiver/eth_log_handlers.d.ts +1 -1
  4. package/dest/archiver/eth_log_handlers.d.ts.map +1 -1
  5. package/dest/archiver/eth_log_handlers.js +12 -6
  6. package/dest/archiver/index.d.ts +1 -1
  7. package/dest/archiver/index.d.ts.map +1 -1
  8. package/dest/archiver/index.js +2 -2
  9. package/dest/archiver/kv_archiver_store/block_store.d.ts +59 -0
  10. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -0
  11. package/dest/archiver/kv_archiver_store/block_store.js +140 -0
  12. package/dest/archiver/kv_archiver_store/contract_store.d.ts +46 -0
  13. package/dest/archiver/kv_archiver_store/contract_store.d.ts.map +1 -0
  14. package/dest/archiver/kv_archiver_store/contract_store.js +81 -0
  15. package/dest/archiver/{lmdb_archiver_store.d.ts → kv_archiver_store/kv_archiver_store.d.ts} +14 -12
  16. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -0
  17. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +207 -0
  18. package/dest/archiver/kv_archiver_store/log_store.d.ts +35 -0
  19. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -0
  20. package/dest/archiver/kv_archiver_store/log_store.js +131 -0
  21. package/dest/archiver/kv_archiver_store/message_store.d.ts +53 -0
  22. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -0
  23. package/dest/archiver/kv_archiver_store/message_store.js +138 -0
  24. package/package.json +7 -7
  25. package/dest/archiver/lmdb_archiver_store.d.ts.map +0 -1
  26. package/dest/archiver/lmdb_archiver_store.js +0 -528
@@ -0,0 +1,207 @@
1
+ var _KVArchiverDataStore_blockStore, _KVArchiverDataStore_logStore, _KVArchiverDataStore_contractStore, _KVArchiverDataStore_messageStore, _KVArchiverDataStore_log;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { createDebugLogger } from '@aztec/foundation/log';
4
+ import { BlockStore } from './block_store.js';
5
+ import { ContractStore } from './contract_store.js';
6
+ import { LogStore } from './log_store.js';
7
+ import { MessageStore } from './message_store.js';
8
+ /**
9
+ * LMDB implementation of the ArchiverDataStore interface.
10
+ */
11
+ export class KVArchiverDataStore {
12
+ constructor(db, logsMaxPageSize = 1000) {
13
+ _KVArchiverDataStore_blockStore.set(this, void 0);
14
+ _KVArchiverDataStore_logStore.set(this, void 0);
15
+ _KVArchiverDataStore_contractStore.set(this, void 0);
16
+ _KVArchiverDataStore_messageStore.set(this, void 0);
17
+ _KVArchiverDataStore_log.set(this, createDebugLogger('aztec:archiver:lmdb'));
18
+ __classPrivateFieldSet(this, _KVArchiverDataStore_blockStore, new BlockStore(db), "f");
19
+ __classPrivateFieldSet(this, _KVArchiverDataStore_logStore, new LogStore(db, __classPrivateFieldGet(this, _KVArchiverDataStore_blockStore, "f"), logsMaxPageSize), "f");
20
+ __classPrivateFieldSet(this, _KVArchiverDataStore_contractStore, new ContractStore(db, __classPrivateFieldGet(this, _KVArchiverDataStore_blockStore, "f")), "f");
21
+ __classPrivateFieldSet(this, _KVArchiverDataStore_messageStore, new MessageStore(db), "f");
22
+ }
23
+ /**
24
+ * Append new blocks to the store's list.
25
+ * @param blocks - The L2 blocks to be added to the store.
26
+ * @returns True if the operation is successful.
27
+ */
28
+ addBlocks(blocks) {
29
+ return __classPrivateFieldGet(this, _KVArchiverDataStore_blockStore, "f").addBlocks(blocks);
30
+ }
31
+ /**
32
+ * Gets up to `limit` amount of L2 blocks starting from `from`.
33
+ * The blocks returned do not contain any logs.
34
+ *
35
+ * @param start - Number of the first block to return (inclusive).
36
+ * @param limit - The number of blocks to return.
37
+ * @returns The requested L2 blocks, without any logs attached
38
+ */
39
+ getBlocks(start, limit) {
40
+ try {
41
+ return Promise.resolve(Array.from(__classPrivateFieldGet(this, _KVArchiverDataStore_blockStore, "f").getBlocks(start, limit)));
42
+ }
43
+ catch (err) {
44
+ // this function is sync so if any errors are thrown we need to make sure they're passed on as rejected Promises
45
+ return Promise.reject(err);
46
+ }
47
+ }
48
+ /**
49
+ * Gets an l2 tx.
50
+ * @param txHash - The txHash of the l2 tx.
51
+ * @returns The requested L2 tx.
52
+ */
53
+ getL2Tx(txHash) {
54
+ return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_blockStore, "f").getL2Tx(txHash));
55
+ }
56
+ /**
57
+ * Append new logs to the store's list.
58
+ * @param encryptedLogs - The logs to be added to the store.
59
+ * @param unencryptedLogs - The type of the logs to be added to the store.
60
+ * @param blockNumber - The block for which to add the logs.
61
+ * @returns True if the operation is successful.
62
+ */
63
+ addLogs(encryptedLogs, unencryptedLogs, blockNumber) {
64
+ return __classPrivateFieldGet(this, _KVArchiverDataStore_logStore, "f").addLogs(encryptedLogs, unencryptedLogs, blockNumber);
65
+ }
66
+ /**
67
+ * Append new pending L1 to L2 messages to the store.
68
+ * @param messages - The L1 to L2 messages to be added to the store.
69
+ * @param l1BlockNumber - The L1 block number for which to add the messages.
70
+ * @returns True if the operation is successful.
71
+ */
72
+ addPendingL1ToL2Messages(messages, l1BlockNumber) {
73
+ return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").addPendingMessages(messages, l1BlockNumber));
74
+ }
75
+ /**
76
+ * Remove pending L1 to L2 messages from the store (if they were cancelled).
77
+ * @param messages - The message keys to be removed from the store.
78
+ * @param l1BlockNumber - The L1 block number for which to remove the messages.
79
+ * @returns True if the operation is successful.
80
+ */
81
+ cancelPendingL1ToL2Messages(messages, l1BlockNumber) {
82
+ return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").cancelPendingMessages(messages, l1BlockNumber));
83
+ }
84
+ /**
85
+ * Messages that have been published in an L2 block are confirmed.
86
+ * Add them to the confirmed store, also remove them from the pending store.
87
+ * @param entryKeys - The message keys to be removed from the store.
88
+ * @param blockNumber - The block for which to add the messages.
89
+ * @returns True if the operation is successful.
90
+ */
91
+ confirmL1ToL2Messages(entryKeys) {
92
+ return __classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").confirmPendingMessages(entryKeys);
93
+ }
94
+ /**
95
+ * Gets up to `limit` amount of pending L1 to L2 messages, sorted by fee
96
+ * @param limit - The number of messages to return (by default NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).
97
+ * @returns The requested L1 to L2 message keys.
98
+ */
99
+ getPendingL1ToL2MessageKeys(limit) {
100
+ return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").getPendingMessageKeysByFee(limit));
101
+ }
102
+ /**
103
+ * Gets the confirmed L1 to L2 message corresponding to the given message key.
104
+ * @param messageKey - The message key to look up.
105
+ * @returns The requested L1 to L2 message or throws if not found.
106
+ */
107
+ getConfirmedL1ToL2Message(messageKey) {
108
+ try {
109
+ return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").getConfirmedMessage(messageKey));
110
+ }
111
+ catch (err) {
112
+ return Promise.reject(err);
113
+ }
114
+ }
115
+ /**
116
+ * Gets up to `limit` amount of logs starting from `from`.
117
+ * @param start - Number of the L2 block to which corresponds the first logs to be returned.
118
+ * @param limit - The number of logs to return.
119
+ * @param logType - Specifies whether to return encrypted or unencrypted logs.
120
+ * @returns The requested logs.
121
+ */
122
+ getLogs(start, limit, logType) {
123
+ try {
124
+ return Promise.resolve(Array.from(__classPrivateFieldGet(this, _KVArchiverDataStore_logStore, "f").getLogs(start, limit, logType)));
125
+ }
126
+ catch (err) {
127
+ return Promise.reject(err);
128
+ }
129
+ }
130
+ /**
131
+ * Gets unencrypted logs based on the provided filter.
132
+ * @param filter - The filter to apply to the logs.
133
+ * @returns The requested logs.
134
+ */
135
+ getUnencryptedLogs(filter) {
136
+ try {
137
+ return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_logStore, "f").getUnencryptedLogs(filter));
138
+ }
139
+ catch (err) {
140
+ return Promise.reject(err);
141
+ }
142
+ }
143
+ /**
144
+ * Add new extended contract data from an L2 block to the store's list.
145
+ * @param data - List of contracts' data to be added.
146
+ * @param blockNum - Number of the L2 block the contract data was deployed in.
147
+ * @returns True if the operation is successful.
148
+ */
149
+ addExtendedContractData(data, blockNum) {
150
+ return __classPrivateFieldGet(this, _KVArchiverDataStore_contractStore, "f").addExtendedContractData(data, blockNum);
151
+ }
152
+ /**
153
+ * Get the extended contract data for this contract.
154
+ * @param contractAddress - The contract data address.
155
+ * @returns The extended contract data or undefined if not found.
156
+ */
157
+ getExtendedContractData(contractAddress) {
158
+ return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_contractStore, "f").getExtendedContractData(contractAddress));
159
+ }
160
+ /**
161
+ * Lookup all extended contract data in an L2 block.
162
+ * @param blockNumber - The block number to get all contract data from.
163
+ * @returns All extended contract data in the block (if found).
164
+ */
165
+ getExtendedContractDataInBlock(blockNumber) {
166
+ return Promise.resolve(Array.from(__classPrivateFieldGet(this, _KVArchiverDataStore_contractStore, "f").getExtendedContractDataInBlock(blockNumber)));
167
+ }
168
+ /**
169
+ * Get basic info for an L2 contract.
170
+ * Contains contract address & the ethereum portal address.
171
+ * @param contractAddress - The contract data address.
172
+ * @returns ContractData with the portal address (if we didn't throw an error).
173
+ */
174
+ getContractData(contractAddress) {
175
+ return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_contractStore, "f").getContractData(contractAddress));
176
+ }
177
+ /**
178
+ * Get basic info for an all L2 contracts deployed in a block.
179
+ * Contains contract address & the ethereum portal address.
180
+ * @param blockNumber - Number of the L2 block where contracts were deployed.
181
+ * @returns ContractData with the portal address (if we didn't throw an error).
182
+ */
183
+ getContractDataInBlock(blockNumber) {
184
+ return Promise.resolve(Array.from(__classPrivateFieldGet(this, _KVArchiverDataStore_contractStore, "f").getContractDataInBlock(blockNumber)));
185
+ }
186
+ /**
187
+ * Gets the number of the latest L2 block processed.
188
+ * @returns The number of the latest L2 block processed.
189
+ */
190
+ getBlockNumber() {
191
+ return Promise.resolve(__classPrivateFieldGet(this, _KVArchiverDataStore_blockStore, "f").getBlockNumber());
192
+ }
193
+ /**
194
+ * Gets the last L1 block number processed by the archiver
195
+ */
196
+ getL1BlockNumber() {
197
+ const addedBlock = __classPrivateFieldGet(this, _KVArchiverDataStore_blockStore, "f").getL1BlockNumber();
198
+ const { addedMessages, cancelledMessages } = __classPrivateFieldGet(this, _KVArchiverDataStore_messageStore, "f").getL1BlockNumber();
199
+ return Promise.resolve({
200
+ addedBlock,
201
+ addedMessages,
202
+ cancelledMessages,
203
+ });
204
+ }
205
+ }
206
+ _KVArchiverDataStore_blockStore = new WeakMap(), _KVArchiverDataStore_logStore = new WeakMap(), _KVArchiverDataStore_contractStore = new WeakMap(), _KVArchiverDataStore_messageStore = new WeakMap(), _KVArchiverDataStore_log = new WeakMap();
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfYXJjaGl2ZXJfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUva3ZfYXJjaGl2ZXJfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFjQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUkxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBUTlCLFlBQVksRUFBZ0IsRUFBRSxrQkFBMEIsSUFBSTtRQVA1RCxrREFBd0I7UUFDeEIsZ0RBQW9CO1FBQ3BCLHFEQUE4QjtRQUM5QixvREFBNEI7UUFFNUIsbUNBQU8saUJBQWlCLENBQUMscUJBQXFCLENBQUMsRUFBQztRQUc5Qyx1QkFBQSxJQUFJLG1DQUFlLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFBLENBQUM7UUFDdEMsdUJBQUEsSUFBSSxpQ0FBYSxJQUFJLFFBQVEsQ0FBQyxFQUFFLEVBQUUsdUJBQUEsSUFBSSx1Q0FBWSxFQUFFLGVBQWUsQ0FBQyxNQUFBLENBQUM7UUFDckUsdUJBQUEsSUFBSSxzQ0FBa0IsSUFBSSxhQUFhLENBQUMsRUFBRSxFQUFFLHVCQUFBLElBQUksdUNBQVksQ0FBQyxNQUFBLENBQUM7UUFDOUQsdUJBQUEsSUFBSSxxQ0FBaUIsSUFBSSxZQUFZLENBQUMsRUFBRSxDQUFDLE1BQUEsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxNQUFpQjtRQUN6QixPQUFPLHVCQUFBLElBQUksdUNBQVksQ0FB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
@@ -0,0 +1,35 @@
1
+ import { GetUnencryptedLogsResponse, L2BlockL2Logs, LogFilter, LogType } from '@aztec/circuit-types';
2
+ import { AztecKVStore } from '@aztec/kv-store';
3
+ import { BlockStore } from './block_store.js';
4
+ /**
5
+ * A store for logs
6
+ */
7
+ export declare class LogStore {
8
+ #private;
9
+ private db;
10
+ private blockStore;
11
+ constructor(db: AztecKVStore, blockStore: BlockStore, logsMaxPageSize?: number);
12
+ /**
13
+ * Append new logs to the store's list.
14
+ * @param encryptedLogs - The logs to be added to the store.
15
+ * @param unencryptedLogs - The type of the logs to be added to the store.
16
+ * @param blockNumber - The block for which to add the logs.
17
+ * @returns True if the operation is successful.
18
+ */
19
+ addLogs(encryptedLogs: L2BlockL2Logs | undefined, unencryptedLogs: L2BlockL2Logs | undefined, blockNumber: number): Promise<boolean>;
20
+ /**
21
+ * Gets up to `limit` amount of logs starting from `from`.
22
+ * @param start - Number of the L2 block to which corresponds the first logs to be returned.
23
+ * @param limit - The number of logs to return.
24
+ * @param logType - Specifies whether to return encrypted or unencrypted logs.
25
+ * @returns The requested logs.
26
+ */
27
+ getLogs(start: number, limit: number, logType: LogType): IterableIterator<L2BlockL2Logs>;
28
+ /**
29
+ * Gets unencrypted logs based on the provided filter.
30
+ * @param filter - The filter to apply to the logs.
31
+ * @returns The requested logs.
32
+ */
33
+ getUnencryptedLogs(filter: LogFilter): GetUnencryptedLogsResponse;
34
+ }
35
+ //# sourceMappingURL=log_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/log_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0BAA0B,EAE1B,aAAa,EACb,SAAS,EAET,OAAO,EAER,MAAM,sBAAsB,CAAC;AAE9B,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,aAAa,GAAG,SAAS,EACxC,eAAe,EAAE,aAAa,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAcnB;;;;;;OAMG;IACF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAAC,aAAa,CAAC;IAOzF;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,0BAA0B;CAkGlE"}
@@ -0,0 +1,131 @@
1
+ var _LogStore_instances, _LogStore_encryptedLogs, _LogStore_unencryptedLogs, _LogStore_logsMaxPageSize, _LogStore_log, _LogStore_filterUnencryptedLogsOfTx, _LogStore_filterUnencryptedLogsBetweenBlocks, _LogStore_accumulateLogs, _LogStore_getBlockLogs;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { ExtendedUnencryptedL2Log, INITIAL_L2_BLOCK_NUM, L2BlockL2Logs, LogId, LogType, UnencryptedL2Log, } from '@aztec/circuit-types';
4
+ import { createDebugLogger } from '@aztec/foundation/log';
5
+ /**
6
+ * A store for logs
7
+ */
8
+ export class LogStore {
9
+ constructor(db, blockStore, logsMaxPageSize = 1000) {
10
+ _LogStore_instances.add(this);
11
+ this.db = db;
12
+ this.blockStore = blockStore;
13
+ _LogStore_encryptedLogs.set(this, void 0);
14
+ _LogStore_unencryptedLogs.set(this, void 0);
15
+ _LogStore_logsMaxPageSize.set(this, void 0);
16
+ _LogStore_log.set(this, createDebugLogger('aztec:archiver:log_store'));
17
+ __classPrivateFieldSet(this, _LogStore_encryptedLogs, db.createMap('archiver_encrypted_logs'), "f");
18
+ __classPrivateFieldSet(this, _LogStore_unencryptedLogs, db.createMap('archiver_unencrypted_logs'), "f");
19
+ __classPrivateFieldSet(this, _LogStore_logsMaxPageSize, logsMaxPageSize, "f");
20
+ }
21
+ /**
22
+ * Append new logs to the store's list.
23
+ * @param encryptedLogs - The logs to be added to the store.
24
+ * @param unencryptedLogs - The type of the logs to be added to the store.
25
+ * @param blockNumber - The block for which to add the logs.
26
+ * @returns True if the operation is successful.
27
+ */
28
+ addLogs(encryptedLogs, unencryptedLogs, blockNumber) {
29
+ return this.db.transaction(() => {
30
+ if (encryptedLogs) {
31
+ void __classPrivateFieldGet(this, _LogStore_encryptedLogs, "f").set(blockNumber, encryptedLogs.toBuffer());
32
+ }
33
+ if (unencryptedLogs) {
34
+ void __classPrivateFieldGet(this, _LogStore_unencryptedLogs, "f").set(blockNumber, unencryptedLogs.toBuffer());
35
+ }
36
+ return true;
37
+ });
38
+ }
39
+ /**
40
+ * Gets up to `limit` amount of logs starting from `from`.
41
+ * @param start - Number of the L2 block to which corresponds the first logs to be returned.
42
+ * @param limit - The number of logs to return.
43
+ * @param logType - Specifies whether to return encrypted or unencrypted logs.
44
+ * @returns The requested logs.
45
+ */
46
+ *getLogs(start, limit, logType) {
47
+ const logMap = logType === LogType.ENCRYPTED ? __classPrivateFieldGet(this, _LogStore_encryptedLogs, "f") : __classPrivateFieldGet(this, _LogStore_unencryptedLogs, "f");
48
+ for (const buffer of logMap.values({ start, limit })) {
49
+ yield L2BlockL2Logs.fromBuffer(buffer);
50
+ }
51
+ }
52
+ /**
53
+ * Gets unencrypted logs based on the provided filter.
54
+ * @param filter - The filter to apply to the logs.
55
+ * @returns The requested logs.
56
+ */
57
+ getUnencryptedLogs(filter) {
58
+ if (filter.afterLog) {
59
+ return __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_filterUnencryptedLogsBetweenBlocks).call(this, filter);
60
+ }
61
+ else if (filter.txHash) {
62
+ return __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_filterUnencryptedLogsOfTx).call(this, filter);
63
+ }
64
+ else {
65
+ return __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_filterUnencryptedLogsBetweenBlocks).call(this, filter);
66
+ }
67
+ }
68
+ }
69
+ _LogStore_encryptedLogs = new WeakMap(), _LogStore_unencryptedLogs = new WeakMap(), _LogStore_logsMaxPageSize = new WeakMap(), _LogStore_log = new WeakMap(), _LogStore_instances = new WeakSet(), _LogStore_filterUnencryptedLogsOfTx = function _LogStore_filterUnencryptedLogsOfTx(filter) {
70
+ if (!filter.txHash) {
71
+ throw new Error('Missing txHash');
72
+ }
73
+ const [blockNumber, txIndex] = this.blockStore.getL2TxLocation(filter.txHash) ?? [];
74
+ if (typeof blockNumber !== 'number' || typeof txIndex !== 'number') {
75
+ return { logs: [], maxLogsHit: false };
76
+ }
77
+ const unencryptedLogsInBlock = __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_getBlockLogs).call(this, blockNumber, LogType.UNENCRYPTED);
78
+ const txLogs = unencryptedLogsInBlock.txLogs[txIndex].unrollLogs().map(log => UnencryptedL2Log.fromBuffer(log));
79
+ const logs = [];
80
+ const maxLogsHit = __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_accumulateLogs).call(this, logs, blockNumber, txIndex, txLogs, filter);
81
+ return { logs, maxLogsHit };
82
+ }, _LogStore_filterUnencryptedLogsBetweenBlocks = function _LogStore_filterUnencryptedLogsBetweenBlocks(filter) {
83
+ const start = filter.afterLog?.blockNumber ?? Math.max(filter.fromBlock ?? INITIAL_L2_BLOCK_NUM, INITIAL_L2_BLOCK_NUM);
84
+ const end = filter.toBlock;
85
+ if (typeof end === 'number' && end < start) {
86
+ return {
87
+ logs: [],
88
+ maxLogsHit: true,
89
+ };
90
+ }
91
+ const logs = [];
92
+ let maxLogsHit = false;
93
+ loopOverBlocks: for (const [blockNumber, logBuffer] of __classPrivateFieldGet(this, _LogStore_unencryptedLogs, "f").entries({ start, end })) {
94
+ const unencryptedLogsInBlock = L2BlockL2Logs.fromBuffer(logBuffer);
95
+ for (let txIndex = filter.afterLog?.txIndex ?? 0; txIndex < unencryptedLogsInBlock.txLogs.length; txIndex++) {
96
+ const txLogs = unencryptedLogsInBlock.txLogs[txIndex].unrollLogs().map(log => UnencryptedL2Log.fromBuffer(log));
97
+ maxLogsHit = __classPrivateFieldGet(this, _LogStore_instances, "m", _LogStore_accumulateLogs).call(this, logs, blockNumber, txIndex, txLogs, filter);
98
+ if (maxLogsHit) {
99
+ __classPrivateFieldGet(this, _LogStore_log, "f").call(this, `Max logs hit at block ${blockNumber}`);
100
+ break loopOverBlocks;
101
+ }
102
+ }
103
+ }
104
+ return { logs, maxLogsHit };
105
+ }, _LogStore_accumulateLogs = function _LogStore_accumulateLogs(results, blockNumber, txIndex, txLogs, filter) {
106
+ let maxLogsHit = false;
107
+ let logIndex = typeof filter.afterLog?.logIndex === 'number' ? filter.afterLog.logIndex + 1 : 0;
108
+ for (; logIndex < txLogs.length; logIndex++) {
109
+ const log = txLogs[logIndex];
110
+ if (filter.contractAddress && !log.contractAddress.equals(filter.contractAddress)) {
111
+ continue;
112
+ }
113
+ if (filter.selector && !log.selector.equals(filter.selector)) {
114
+ continue;
115
+ }
116
+ results.push(new ExtendedUnencryptedL2Log(new LogId(blockNumber, txIndex, logIndex), log));
117
+ if (results.length >= __classPrivateFieldGet(this, _LogStore_logsMaxPageSize, "f")) {
118
+ maxLogsHit = true;
119
+ break;
120
+ }
121
+ }
122
+ return maxLogsHit;
123
+ }, _LogStore_getBlockLogs = function _LogStore_getBlockLogs(blockNumber, logType) {
124
+ const logMap = logType === LogType.ENCRYPTED ? __classPrivateFieldGet(this, _LogStore_encryptedLogs, "f") : __classPrivateFieldGet(this, _LogStore_unencryptedLogs, "f");
125
+ const buffer = logMap.get(blockNumber);
126
+ if (!buffer) {
127
+ return new L2BlockL2Logs([]);
128
+ }
129
+ return L2BlockL2Logs.fromBuffer(buffer);
130
+ };
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3N0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdmVyL2t2X2FyY2hpdmVyX3N0b3JlL2xvZ19zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCx3QkFBd0IsRUFFeEIsb0JBQW9CLEVBQ3BCLGFBQWEsRUFFYixLQUFLLEVBQ0wsT0FBTyxFQUNQLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSzFEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFNbkIsWUFBb0IsRUFBZ0IsRUFBVSxVQUFzQixFQUFFLGtCQUEwQixJQUFJOztRQUFoRixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUxwRSwwQ0FBeUM7UUFDekMsNENBQTJDO1FBQzNDLDRDQUF5QjtRQUN6Qix3QkFBTyxpQkFBaUIsQ0FBQywwQkFBMEIsQ0FBQyxFQUFDO1FBR25ELHVCQUFBLElBQUksMkJBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsTUFBQSxDQUFDO1FBQzlELHVCQUFBLElBQUksNkJBQW9CLEVBQUUsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQUMsTUFBQSxDQUFDO1FBRWxFLHVCQUFBLElBQUksNkJBQW9CLGVBQWUsTUFBQSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxPQUFPLENBQ0wsYUFBd0MsRUFDeEMsZUFBMEMsRUFDMUMsV0FBbUI7UUFFbkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsSUFBSSxhQUFhLEVBQUU7Z0JBQ2pCLEtBQUssdUJBQUEsSUFBSSwrQkFBZSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFD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
@@ -0,0 +1,53 @@
1
+ import { L1ToL2Message } from '@aztec/circuit-types';
2
+ import { Fr } from '@aztec/circuits.js';
3
+ import { AztecKVStore } from '@aztec/kv-store';
4
+ /**
5
+ * LMDB implementation of the ArchiverDataStore interface.
6
+ */
7
+ export declare class MessageStore {
8
+ #private;
9
+ private db;
10
+ constructor(db: AztecKVStore);
11
+ /**
12
+ * Gets the last L1 block number that emitted new messages and the block that cancelled messages.
13
+ * @returns The last L1 block number processed
14
+ */
15
+ getL1BlockNumber(): {
16
+ addedMessages: bigint;
17
+ cancelledMessages: bigint;
18
+ };
19
+ /**
20
+ * Append new pending L1 to L2 messages to the store.
21
+ * @param messages - The L1 to L2 messages to be added to the store.
22
+ * @param l1BlockNumber - The L1 block number for which to add the messages.
23
+ * @returns True if the operation is successful.
24
+ */
25
+ addPendingMessages(messages: L1ToL2Message[], l1BlockNumber: bigint): Promise<boolean>;
26
+ /**
27
+ * Remove pending L1 to L2 messages from the store (if they were cancelled).
28
+ * @param messageKeys - The message keys to be removed from the store.
29
+ * @param l1BlockNumber - The L1 block number for which to remove the messages.
30
+ * @returns True if the operation is successful.
31
+ */
32
+ cancelPendingMessages(messageKeys: Fr[], l1BlockNumber: bigint): Promise<boolean>;
33
+ /**
34
+ * Messages that have been published in an L2 block are confirmed.
35
+ * Add them to the confirmed store, also remove them from the pending store.
36
+ * @param messageKeys - The message keys to be removed from the store.
37
+ * @returns True if the operation is successful.
38
+ */
39
+ confirmPendingMessages(messageKeys: Fr[]): Promise<boolean>;
40
+ /**
41
+ * Gets the confirmed L1 to L2 message corresponding to the given message key.
42
+ * @param messageKey - The message key to look up.
43
+ * @returns The requested L1 to L2 message or throws if not found.
44
+ */
45
+ getConfirmedMessage(messageKey: Fr): L1ToL2Message;
46
+ /**
47
+ * Gets up to `limit` amount of pending L1 to L2 messages, sorted by fee
48
+ * @param limit - The number of messages to return (by default NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).
49
+ * @returns The requested L1 to L2 message keys.
50
+ */
51
+ getPendingMessageKeysByFee(limit: number): Fr[];
52
+ }
53
+ //# sourceMappingURL=message_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/message_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAgB,YAAY,EAA4B,MAAM,iBAAiB,CAAC;AAcvF;;GAEG;AACH,qBAAa,YAAY;;IAQX,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAOpC;;;OAGG;IACH,gBAAgB;;;;IAOhB;;;;;OAKG;IACH,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BtF;;;;;OAKG;IACH,qBAAqB,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBjF;;;;;OAKG;IACH,sBAAsB,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB3D;;;;OAIG;IACH,mBAAmB,CAAC,UAAU,EAAE,EAAE,GAAG,aAAa;IAalD;;;;OAIG;IACH,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE;CAehD"}
@@ -0,0 +1,138 @@
1
+ var _MessageStore_messages, _MessageStore_pendingMessagesByFee, _MessageStore_lastL1BlockAddingMessages, _MessageStore_lastL1BlockCancellingMessages, _MessageStore_log;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { L1ToL2Message } from '@aztec/circuit-types';
4
+ import { Fr } from '@aztec/circuits.js';
5
+ import { createDebugLogger } from '@aztec/foundation/log';
6
+ /**
7
+ * LMDB implementation of the ArchiverDataStore interface.
8
+ */
9
+ export class MessageStore {
10
+ constructor(db) {
11
+ this.db = db;
12
+ _MessageStore_messages.set(this, void 0);
13
+ _MessageStore_pendingMessagesByFee.set(this, void 0);
14
+ _MessageStore_lastL1BlockAddingMessages.set(this, void 0);
15
+ _MessageStore_lastL1BlockCancellingMessages.set(this, void 0);
16
+ _MessageStore_log.set(this, createDebugLogger('aztec:archiver:message_store'));
17
+ __classPrivateFieldSet(this, _MessageStore_messages, db.createMap('archiver_l1_to_l2_messages'), "f");
18
+ __classPrivateFieldSet(this, _MessageStore_pendingMessagesByFee, db.createCounter('archiver_messages_by_fee'), "f");
19
+ __classPrivateFieldSet(this, _MessageStore_lastL1BlockAddingMessages, db.createSingleton('archiver_last_l1_block_adding_messages'), "f");
20
+ __classPrivateFieldSet(this, _MessageStore_lastL1BlockCancellingMessages, db.createSingleton('archiver_last_l1_block_cancelling_messages'), "f");
21
+ }
22
+ /**
23
+ * Gets the last L1 block number that emitted new messages and the block that cancelled messages.
24
+ * @returns The last L1 block number processed
25
+ */
26
+ getL1BlockNumber() {
27
+ return {
28
+ addedMessages: __classPrivateFieldGet(this, _MessageStore_lastL1BlockAddingMessages, "f").get() ?? 0n,
29
+ cancelledMessages: __classPrivateFieldGet(this, _MessageStore_lastL1BlockCancellingMessages, "f").get() ?? 0n,
30
+ };
31
+ }
32
+ /**
33
+ * Append new pending L1 to L2 messages to the store.
34
+ * @param messages - The L1 to L2 messages to be added to the store.
35
+ * @param l1BlockNumber - The L1 block number for which to add the messages.
36
+ * @returns True if the operation is successful.
37
+ */
38
+ addPendingMessages(messages, l1BlockNumber) {
39
+ return this.db.transaction(() => {
40
+ const lastL1BlockNumber = __classPrivateFieldGet(this, _MessageStore_lastL1BlockAddingMessages, "f").get() ?? 0n;
41
+ if (lastL1BlockNumber >= l1BlockNumber) {
42
+ return false;
43
+ }
44
+ void __classPrivateFieldGet(this, _MessageStore_lastL1BlockAddingMessages, "f").set(l1BlockNumber);
45
+ for (const message of messages) {
46
+ const messageKey = message.entryKey?.toString();
47
+ if (!messageKey) {
48
+ throw new Error('Message does not have an entry key');
49
+ }
50
+ void __classPrivateFieldGet(this, _MessageStore_messages, "f").setIfNotExists(messageKey, {
51
+ message: message.toBuffer(),
52
+ fee: message.fee,
53
+ confirmed: false,
54
+ });
55
+ void __classPrivateFieldGet(this, _MessageStore_pendingMessagesByFee, "f").update([message.fee, messageKey], 1);
56
+ }
57
+ return true;
58
+ });
59
+ }
60
+ /**
61
+ * Remove pending L1 to L2 messages from the store (if they were cancelled).
62
+ * @param messageKeys - The message keys to be removed from the store.
63
+ * @param l1BlockNumber - The L1 block number for which to remove the messages.
64
+ * @returns True if the operation is successful.
65
+ */
66
+ cancelPendingMessages(messageKeys, l1BlockNumber) {
67
+ return this.db.transaction(() => {
68
+ const lastL1BlockNumber = __classPrivateFieldGet(this, _MessageStore_lastL1BlockCancellingMessages, "f").get() ?? 0n;
69
+ if (lastL1BlockNumber >= l1BlockNumber) {
70
+ return false;
71
+ }
72
+ void __classPrivateFieldGet(this, _MessageStore_lastL1BlockCancellingMessages, "f").set(l1BlockNumber);
73
+ for (const messageKey of messageKeys) {
74
+ const messageCtx = __classPrivateFieldGet(this, _MessageStore_messages, "f").get(messageKey.toString());
75
+ if (!messageCtx) {
76
+ throw new Error(`Message ${messageKey.toString()} not found`);
77
+ }
78
+ void __classPrivateFieldGet(this, _MessageStore_pendingMessagesByFee, "f").update([messageCtx.fee, messageKey.toString()], -1);
79
+ }
80
+ return true;
81
+ });
82
+ }
83
+ /**
84
+ * Messages that have been published in an L2 block are confirmed.
85
+ * Add them to the confirmed store, also remove them from the pending store.
86
+ * @param messageKeys - The message keys to be removed from the store.
87
+ * @returns True if the operation is successful.
88
+ */
89
+ confirmPendingMessages(messageKeys) {
90
+ return this.db.transaction(() => {
91
+ for (const messageKey of messageKeys) {
92
+ const messageCtx = __classPrivateFieldGet(this, _MessageStore_messages, "f").get(messageKey.toString());
93
+ if (!messageCtx) {
94
+ throw new Error(`Message ${messageKey.toString()} not found`);
95
+ }
96
+ messageCtx.confirmed = true;
97
+ void __classPrivateFieldGet(this, _MessageStore_messages, "f").set(messageKey.toString(), messageCtx);
98
+ void __classPrivateFieldGet(this, _MessageStore_pendingMessagesByFee, "f").update([messageCtx.fee, messageKey.toString()], -1);
99
+ }
100
+ return true;
101
+ });
102
+ }
103
+ /**
104
+ * Gets the confirmed L1 to L2 message corresponding to the given message key.
105
+ * @param messageKey - The message key to look up.
106
+ * @returns The requested L1 to L2 message or throws if not found.
107
+ */
108
+ getConfirmedMessage(messageKey) {
109
+ const messageCtx = __classPrivateFieldGet(this, _MessageStore_messages, "f").get(messageKey.toString());
110
+ if (!messageCtx) {
111
+ throw new Error(`Message ${messageKey.toString()} not found`);
112
+ }
113
+ if (!messageCtx.confirmed) {
114
+ throw new Error(`Message ${messageKey.toString()} not confirmed`);
115
+ }
116
+ return L1ToL2Message.fromBuffer(messageCtx.message);
117
+ }
118
+ /**
119
+ * Gets up to `limit` amount of pending L1 to L2 messages, sorted by fee
120
+ * @param limit - The number of messages to return (by default NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP).
121
+ * @returns The requested L1 to L2 message keys.
122
+ */
123
+ getPendingMessageKeysByFee(limit) {
124
+ const messageKeys = [];
125
+ for (const [[_, messageKey], count] of __classPrivateFieldGet(this, _MessageStore_pendingMessagesByFee, "f").entries({
126
+ reverse: true,
127
+ })) {
128
+ // put `count` copies of this message in the result list
129
+ messageKeys.push(...Array(count).fill(Fr.fromString(messageKey)));
130
+ if (messageKeys.length >= limit) {
131
+ break;
132
+ }
133
+ }
134
+ return messageKeys;
135
+ }
136
+ }
137
+ _MessageStore_messages = new WeakMap(), _MessageStore_pendingMessagesByFee = new WeakMap(), _MessageStore_lastL1BlockAddingMessages = new WeakMap(), _MessageStore_lastL1BlockCancellingMessages = new WeakMap(), _MessageStore_log = new WeakMap();
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZV9zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9rdl9hcmNoaXZlcl9zdG9yZS9tZXNzYWdlX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQWUxRDs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBUXZCLFlBQW9CLEVBQWdCO1FBQWhCLE9BQUUsR0FBRixFQUFFLENBQWM7UUFQcEMseUNBQXFDO1FBQ3JDLHFEQUFzRDtRQUN0RCwwREFBbUQ7UUFDbkQsOERBQXVEO1FBRXZELDRCQUFPLGlCQUFpQixDQUFDLDhCQUE4QixDQUFDLEVBQUM7UUFHdkQsdUJBQUEsSUFBSSwwQkFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLDRCQUE0QixDQUFDLE1BQUEsQ0FBQztRQUM1RCx1QkFBQSxJQUFJLHNDQUF5QixFQUFFLENBQUMsYUFBYSxDQUFDLDBCQUEwQixDQUFDLE1BQUEsQ0FBQztRQUMxRSx1QkFBQSxJQUFJLDJDQUE4QixFQUFFLENBQUMsZUFBZSxDQUFDLHdDQUF3QyxDQUFDLE1BQUEsQ0FBQztRQUMvRix1QkFBQSxJQUFJLCtDQUFrQyxFQUFFLENBQUMsZUFBZSxDQUFDLDRDQUE0QyxDQUFDLE1BQUEsQ0FBQztJQUN6RyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZ0JBQWdCO1FBQ2QsT0FBTztZQUNMLGFBQWEsRUFBRSx1QkFBQSxJQUFJLCtDQUEyQixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDMUQsaUJBQWlCLEVBQUUsdUJBQUEsSUFBSSxtREFBK0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1NBQ25FLENBQUM7SUFDSixDQUFDO0lB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/archiver",
3
- "version": "0.19.0",
3
+ "version": "0.20.0",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "typedocOptions": {
@@ -35,11 +35,12 @@
35
35
  "workerThreads": true
36
36
  },
37
37
  "dependencies": {
38
- "@aztec/circuit-types": "0.19.0",
39
- "@aztec/circuits.js": "0.19.0",
40
- "@aztec/ethereum": "0.19.0",
41
- "@aztec/foundation": "0.19.0",
42
- "@aztec/l1-artifacts": "0.19.0",
38
+ "@aztec/circuit-types": "0.20.0",
39
+ "@aztec/circuits.js": "0.20.0",
40
+ "@aztec/ethereum": "0.20.0",
41
+ "@aztec/foundation": "0.20.0",
42
+ "@aztec/kv-store": "0.20.0",
43
+ "@aztec/l1-artifacts": "0.20.0",
43
44
  "@types/lodash.omit": "^4.5.7",
44
45
  "debug": "^4.3.4",
45
46
  "lmdb": "^2.9.1",
@@ -58,7 +59,6 @@
58
59
  "concurrently": "^8.0.1",
59
60
  "jest": "^29.5.0",
60
61
  "jest-mock-extended": "^3.0.4",
61
- "lodash.times": "^4.3.2",
62
62
  "ts-jest": "^29.1.0",
63
63
  "ts-node": "^10.9.1",
64
64
  "typescript": "^5.0.4"
@@ -1 +0,0 @@
1
- {"version":3,"file":"lmdb_archiver_store.d.ts","sourceRoot":"","sources":["../../src/archiver/lmdb_archiver_store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,oBAAoB,EAEpB,0BAA0B,EAE1B,aAAa,EACb,OAAO,EACP,aAAa,EACb,IAAI,EACJ,SAAS,EAET,OAAO,EACP,MAAM,EAEP,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D,OAAO,EAA0B,YAAY,EAAE,MAAM,MAAM,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAwB9E;;GAEG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;;gBAoB7C,EAAE,EAAE,YAAY,EAAE,eAAe,GAAE,MAAa;IAgC/C,KAAK;IAIlB;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAmC9C;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAoB3D;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAUlD;;;;;;OAMG;IACH,OAAO,CACL,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,eAAe,EAAE,aAAa,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAiBnB;;;;;OAKG;IACH,wBAAwB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA+B5F;;;;;OAKG;IACH,2BAA2B,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB7F;;;;;OAKG;IACH,qBAAqB,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAWxD;;;;OAIG;IACH,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IA2CzD;;;;OAIG;IACH,yBAAyB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAajE;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAejF;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA6F1E;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAczF;;;;OAIG;IACH,uBAAuB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAsBjG;;;;OAIG;IACH,8BAA8B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IASjF;;;;;OAKG;IACH,eAAe,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAUjF;;;;;OAKG;IACH,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC;IAKhF;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAMjC;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAuHlD"}