@aztec/archiver 4.0.0-nightly.20260113 → 4.0.0-nightly.20260115

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 (174) hide show
  1. package/README.md +139 -22
  2. package/dest/archiver.d.ts +134 -0
  3. package/dest/archiver.d.ts.map +1 -0
  4. package/dest/archiver.js +767 -0
  5. package/dest/{archiver/config.d.ts → config.d.ts} +9 -1
  6. package/dest/config.d.ts.map +1 -0
  7. package/dest/{archiver/config.js → config.js} +9 -0
  8. package/dest/{archiver/errors.d.ts → errors.d.ts} +1 -1
  9. package/dest/errors.d.ts.map +1 -0
  10. package/dest/factory.d.ts +5 -6
  11. package/dest/factory.d.ts.map +1 -1
  12. package/dest/factory.js +82 -5
  13. package/dest/index.d.ts +10 -4
  14. package/dest/index.d.ts.map +1 -1
  15. package/dest/index.js +8 -3
  16. package/dest/interfaces.d.ts +9 -0
  17. package/dest/interfaces.d.ts.map +1 -0
  18. package/dest/interfaces.js +3 -0
  19. package/dest/{archiver/l1 → l1}/bin/retrieve-calldata.d.ts +1 -1
  20. package/dest/l1/bin/retrieve-calldata.d.ts.map +1 -0
  21. package/dest/{archiver/l1 → l1}/calldata_retriever.d.ts +2 -2
  22. package/dest/l1/calldata_retriever.d.ts.map +1 -0
  23. package/dest/l1/data_retrieval.d.ts +88 -0
  24. package/dest/l1/data_retrieval.d.ts.map +1 -0
  25. package/dest/{archiver/l1 → l1}/data_retrieval.js +32 -51
  26. package/dest/{archiver/l1 → l1}/debug_tx.d.ts +1 -1
  27. package/dest/l1/debug_tx.d.ts.map +1 -0
  28. package/dest/{archiver/l1 → l1}/spire_proposer.d.ts +1 -1
  29. package/dest/l1/spire_proposer.d.ts.map +1 -0
  30. package/dest/{archiver/l1 → l1}/trace_tx.d.ts +1 -1
  31. package/dest/l1/trace_tx.d.ts.map +1 -0
  32. package/dest/l1/types.d.ts +12 -0
  33. package/dest/l1/types.d.ts.map +1 -0
  34. package/dest/{archiver/l1 → l1}/validate_trace.d.ts +1 -1
  35. package/dest/l1/validate_trace.d.ts.map +1 -0
  36. package/dest/modules/data_source_base.d.ts +83 -0
  37. package/dest/modules/data_source_base.d.ts.map +1 -0
  38. package/dest/modules/data_source_base.js +301 -0
  39. package/dest/modules/data_store_updater.d.ts +46 -0
  40. package/dest/modules/data_store_updater.d.ts.map +1 -0
  41. package/dest/modules/data_store_updater.js +216 -0
  42. package/dest/modules/instrumentation.d.ts +37 -0
  43. package/dest/modules/instrumentation.d.ts.map +1 -0
  44. package/dest/modules/l1_synchronizer.d.ts +67 -0
  45. package/dest/modules/l1_synchronizer.d.ts.map +1 -0
  46. package/dest/modules/l1_synchronizer.js +1064 -0
  47. package/dest/{archiver → modules}/validation.d.ts +1 -1
  48. package/dest/modules/validation.d.ts.map +1 -0
  49. package/dest/{archiver/kv_archiver_store → store}/block_store.d.ts +2 -2
  50. package/dest/store/block_store.d.ts.map +1 -0
  51. package/dest/{archiver/kv_archiver_store → store}/block_store.js +1 -1
  52. package/dest/store/contract_class_store.d.ts +18 -0
  53. package/dest/store/contract_class_store.d.ts.map +1 -0
  54. package/dest/{archiver/kv_archiver_store → store}/contract_class_store.js +1 -1
  55. package/dest/store/contract_instance_store.d.ts +24 -0
  56. package/dest/store/contract_instance_store.d.ts.map +1 -0
  57. package/dest/{archiver/kv_archiver_store → store}/contract_instance_store.js +1 -1
  58. package/dest/{archiver/archiver_store.d.ts → store/kv_archiver_store.d.ts} +143 -139
  59. package/dest/store/kv_archiver_store.d.ts.map +1 -0
  60. package/dest/{archiver/kv_archiver_store → store}/kv_archiver_store.js +157 -49
  61. package/dest/{archiver/kv_archiver_store → store}/log_store.d.ts +1 -1
  62. package/dest/store/log_store.d.ts.map +1 -0
  63. package/dest/{archiver/kv_archiver_store → store}/message_store.d.ts +1 -1
  64. package/dest/store/message_store.d.ts.map +1 -0
  65. package/dest/{archiver/structs → structs}/data_retrieval.d.ts +1 -1
  66. package/dest/structs/data_retrieval.d.ts.map +1 -0
  67. package/dest/structs/inbox_message.d.ts +15 -0
  68. package/dest/structs/inbox_message.d.ts.map +1 -0
  69. package/dest/{archiver/structs → structs}/published.d.ts +1 -1
  70. package/dest/structs/published.d.ts.map +1 -0
  71. package/dest/test/fake_l1_state.d.ts +173 -0
  72. package/dest/test/fake_l1_state.d.ts.map +1 -0
  73. package/dest/test/fake_l1_state.js +364 -0
  74. package/dest/test/index.d.ts +2 -1
  75. package/dest/test/index.d.ts.map +1 -1
  76. package/dest/test/index.js +1 -0
  77. package/dest/test/mock_structs.d.ts +76 -2
  78. package/dest/test/mock_structs.d.ts.map +1 -1
  79. package/dest/test/mock_structs.js +133 -2
  80. package/package.json +15 -17
  81. package/src/archiver.ts +522 -0
  82. package/src/{archiver/config.ts → config.ts} +11 -0
  83. package/src/factory.ts +118 -6
  84. package/src/index.ts +10 -3
  85. package/src/interfaces.ts +9 -0
  86. package/src/{archiver/l1 → l1}/calldata_retriever.ts +1 -1
  87. package/src/{archiver/l1 → l1}/data_retrieval.ts +52 -69
  88. package/src/modules/data_source_base.ts +439 -0
  89. package/src/modules/data_store_updater.ts +318 -0
  90. package/src/modules/l1_synchronizer.ts +870 -0
  91. package/src/{archiver/kv_archiver_store → store}/block_store.ts +1 -1
  92. package/src/{archiver/kv_archiver_store → store}/contract_class_store.ts +1 -1
  93. package/src/{archiver/kv_archiver_store → store}/contract_instance_store.ts +1 -1
  94. package/src/{archiver/kv_archiver_store → store}/kv_archiver_store.ts +170 -8
  95. package/src/test/fake_l1_state.ts +561 -0
  96. package/src/test/index.ts +1 -0
  97. package/src/test/mock_structs.ts +247 -2
  98. package/dest/archiver/archiver.d.ts +0 -307
  99. package/dest/archiver/archiver.d.ts.map +0 -1
  100. package/dest/archiver/archiver.js +0 -2102
  101. package/dest/archiver/archiver_store.d.ts.map +0 -1
  102. package/dest/archiver/archiver_store.js +0 -4
  103. package/dest/archiver/archiver_store_test_suite.d.ts +0 -8
  104. package/dest/archiver/archiver_store_test_suite.d.ts.map +0 -1
  105. package/dest/archiver/archiver_store_test_suite.js +0 -2770
  106. package/dest/archiver/config.d.ts.map +0 -1
  107. package/dest/archiver/errors.d.ts.map +0 -1
  108. package/dest/archiver/index.d.ts +0 -7
  109. package/dest/archiver/index.d.ts.map +0 -1
  110. package/dest/archiver/index.js +0 -4
  111. package/dest/archiver/instrumentation.d.ts +0 -37
  112. package/dest/archiver/instrumentation.d.ts.map +0 -1
  113. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +0 -1
  114. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts +0 -18
  115. package/dest/archiver/kv_archiver_store/contract_class_store.d.ts.map +0 -1
  116. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts +0 -24
  117. package/dest/archiver/kv_archiver_store/contract_instance_store.d.ts.map +0 -1
  118. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +0 -159
  119. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +0 -1
  120. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +0 -1
  121. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +0 -1
  122. package/dest/archiver/l1/bin/retrieve-calldata.d.ts.map +0 -1
  123. package/dest/archiver/l1/calldata_retriever.d.ts.map +0 -1
  124. package/dest/archiver/l1/data_retrieval.d.ts +0 -90
  125. package/dest/archiver/l1/data_retrieval.d.ts.map +0 -1
  126. package/dest/archiver/l1/debug_tx.d.ts.map +0 -1
  127. package/dest/archiver/l1/spire_proposer.d.ts.map +0 -1
  128. package/dest/archiver/l1/trace_tx.d.ts.map +0 -1
  129. package/dest/archiver/l1/types.d.ts +0 -12
  130. package/dest/archiver/l1/types.d.ts.map +0 -1
  131. package/dest/archiver/l1/validate_trace.d.ts.map +0 -1
  132. package/dest/archiver/structs/data_retrieval.d.ts.map +0 -1
  133. package/dest/archiver/structs/inbox_message.d.ts +0 -15
  134. package/dest/archiver/structs/inbox_message.d.ts.map +0 -1
  135. package/dest/archiver/structs/published.d.ts.map +0 -1
  136. package/dest/archiver/validation.d.ts.map +0 -1
  137. package/dest/rpc/index.d.ts +0 -9
  138. package/dest/rpc/index.d.ts.map +0 -1
  139. package/dest/rpc/index.js +0 -15
  140. package/src/archiver/archiver.ts +0 -2265
  141. package/src/archiver/archiver_store.ts +0 -380
  142. package/src/archiver/archiver_store_test_suite.ts +0 -2842
  143. package/src/archiver/index.ts +0 -6
  144. package/src/rpc/index.ts +0 -16
  145. /package/dest/{archiver/errors.js → errors.js} +0 -0
  146. /package/dest/{archiver/l1 → l1}/bin/retrieve-calldata.js +0 -0
  147. /package/dest/{archiver/l1 → l1}/calldata_retriever.js +0 -0
  148. /package/dest/{archiver/l1 → l1}/debug_tx.js +0 -0
  149. /package/dest/{archiver/l1 → l1}/spire_proposer.js +0 -0
  150. /package/dest/{archiver/l1 → l1}/trace_tx.js +0 -0
  151. /package/dest/{archiver/l1 → l1}/types.js +0 -0
  152. /package/dest/{archiver/l1 → l1}/validate_trace.js +0 -0
  153. /package/dest/{archiver → modules}/instrumentation.js +0 -0
  154. /package/dest/{archiver → modules}/validation.js +0 -0
  155. /package/dest/{archiver/kv_archiver_store → store}/log_store.js +0 -0
  156. /package/dest/{archiver/kv_archiver_store → store}/message_store.js +0 -0
  157. /package/dest/{archiver/structs → structs}/data_retrieval.js +0 -0
  158. /package/dest/{archiver/structs → structs}/inbox_message.js +0 -0
  159. /package/dest/{archiver/structs → structs}/published.js +0 -0
  160. /package/src/{archiver/errors.ts → errors.ts} +0 -0
  161. /package/src/{archiver/l1 → l1}/README.md +0 -0
  162. /package/src/{archiver/l1 → l1}/bin/retrieve-calldata.ts +0 -0
  163. /package/src/{archiver/l1 → l1}/debug_tx.ts +0 -0
  164. /package/src/{archiver/l1 → l1}/spire_proposer.ts +0 -0
  165. /package/src/{archiver/l1 → l1}/trace_tx.ts +0 -0
  166. /package/src/{archiver/l1 → l1}/types.ts +0 -0
  167. /package/src/{archiver/l1 → l1}/validate_trace.ts +0 -0
  168. /package/src/{archiver → modules}/instrumentation.ts +0 -0
  169. /package/src/{archiver → modules}/validation.ts +0 -0
  170. /package/src/{archiver/kv_archiver_store → store}/log_store.ts +0 -0
  171. /package/src/{archiver/kv_archiver_store → store}/message_store.ts +0 -0
  172. /package/src/{archiver/structs → structs}/data_retrieval.ts +0 -0
  173. /package/src/{archiver/structs → structs}/inbox_message.ts +0 -0
  174. /package/src/{archiver/structs → structs}/published.ts +0 -0
@@ -12,7 +12,8 @@ export const ARCHIVER_DB_VERSION = 5;
12
12
  export const MAX_FUNCTION_SIGNATURES = 1000;
13
13
  export const MAX_FUNCTION_NAME_LEN = 256;
14
14
  /**
15
- * LMDB implementation of the ArchiverDataStore interface.
15
+ * LMDB-based data store for the archiver.
16
+ * Stores all archiver data including blocks, logs, contract classes/instances, and L1 to L2 messages.
16
17
  */ export class KVArchiverDataStore {
17
18
  db;
18
19
  static SCHEMA_VERSION = ARCHIVER_DB_VERSION;
@@ -33,7 +34,7 @@ export const MAX_FUNCTION_NAME_LEN = 256;
33
34
  this.#contractClassStore = new ContractClassStore(db);
34
35
  this.#contractInstanceStore = new ContractInstanceStore(db);
35
36
  }
36
- transactionAsync(callback) {
37
+ /** Opens a new transaction to the underlying store and runs all operations within it. */ transactionAsync(callback) {
37
38
  return this.db.transactionAsync(callback);
38
39
  }
39
40
  getBlockNumber() {
@@ -44,17 +45,17 @@ export const MAX_FUNCTION_NAME_LEN = 256;
44
45
  const timestamp = maybeTimestamp ?? header.globalVariables.timestamp;
45
46
  return this.getContractInstance(address, timestamp);
46
47
  }
47
- async backupTo(path, compress = true) {
48
+ /** Backups the archiver db to the target folder. Returns the path to the db file. */ async backupTo(path, compress = true) {
48
49
  await this.db.backupTo(path, compress);
49
50
  return join(path, 'data.mdb');
50
51
  }
51
- close() {
52
+ /** Closes the underlying data store. */ close() {
52
53
  return this.db.close();
53
54
  }
54
- getDebugFunctionName(_address, selector) {
55
+ /** Looks up a public function name given a selector. */ getDebugFunctionName(_address, selector) {
55
56
  return Promise.resolve(this.functionNames.get(selector.toString()));
56
57
  }
57
- async registerContractFunctionSignatures(signatures) {
58
+ /** Register a public function signature, so it can be looked up by selector. */ async registerContractFunctionSignatures(signatures) {
58
59
  for (const sig of signatures){
59
60
  if (this.functionNames.size > MAX_FUNCTION_SIGNATURES) {
60
61
  return;
@@ -67,19 +68,33 @@ export const MAX_FUNCTION_NAME_LEN = 256;
67
68
  }
68
69
  }
69
70
  }
70
- getContractClass(id) {
71
+ /**
72
+ * Returns a contract class given its id, or undefined if not exists.
73
+ * @param id - Id of the contract class.
74
+ */ getContractClass(id) {
71
75
  return this.#contractClassStore.getContractClass(id);
72
76
  }
73
- getContractClassIds() {
77
+ /** Returns the list of all class ids known by the archiver. */ getContractClassIds() {
74
78
  return this.#contractClassStore.getContractClassIds();
75
79
  }
76
- getContractInstance(address, timestamp) {
80
+ /**
81
+ * Returns a contract instance given its address and the given timestamp, or undefined if not exists.
82
+ * @param address - Address of the contract.
83
+ * @param timestamp - Timestamp to get the contract instance at. Contract updates might change the instance.
84
+ * @returns The contract instance or undefined if not found.
85
+ */ getContractInstance(address, timestamp) {
77
86
  return this.#contractInstanceStore.getContractInstance(address, timestamp);
78
87
  }
79
88
  getContractInstanceDeploymentBlockNumber(address) {
80
89
  return this.#contractInstanceStore.getContractInstanceDeploymentBlockNumber(address);
81
90
  }
82
- async addContractClasses(data, bytecodeCommitments, blockNumber) {
91
+ /**
92
+ * Add new contract classes from an L2 block to the store's list.
93
+ * @param data - List of contract classes to be added.
94
+ * @param bytecodeCommitments - Bytecode commitments for the contract classes.
95
+ * @param blockNumber - Number of the L2 block the contracts were registered in.
96
+ * @returns True if the operation is successful.
97
+ */ async addContractClasses(data, bytecodeCommitments, blockNumber) {
83
98
  return (await Promise.all(data.map((c, i)=>this.#contractClassStore.addContractClass(c, bytecodeCommitments[i], blockNumber)))).every(Boolean);
84
99
  }
85
100
  async deleteContractClasses(data, blockNumber) {
@@ -88,16 +103,26 @@ export const MAX_FUNCTION_NAME_LEN = 256;
88
103
  getBytecodeCommitment(contractClassId) {
89
104
  return this.#contractClassStore.getBytecodeCommitment(contractClassId);
90
105
  }
91
- addFunctions(contractClassId, privateFunctions, utilityFunctions) {
106
+ /** Adds private functions to a contract class. */ addFunctions(contractClassId, privateFunctions, utilityFunctions) {
92
107
  return this.#contractClassStore.addFunctions(contractClassId, privateFunctions, utilityFunctions);
93
108
  }
94
- async addContractInstances(data, blockNumber) {
109
+ /**
110
+ * Add new contract instances from an L2 block to the store's list.
111
+ * @param data - List of contract instances to be added.
112
+ * @param blockNumber - Number of the L2 block the instances were deployed in.
113
+ * @returns True if the operation is successful.
114
+ */ async addContractInstances(data, blockNumber) {
95
115
  return (await Promise.all(data.map((c)=>this.#contractInstanceStore.addContractInstance(c, blockNumber)))).every(Boolean);
96
116
  }
97
117
  async deleteContractInstances(data, _blockNumber) {
98
118
  return (await Promise.all(data.map((c)=>this.#contractInstanceStore.deleteContractInstance(c)))).every(Boolean);
99
119
  }
100
- async addContractInstanceUpdates(data, timestamp) {
120
+ /**
121
+ * Add new contract instance updates
122
+ * @param data - List of contract updates to be added.
123
+ * @param timestamp - Timestamp at which the updates were scheduled.
124
+ * @returns True if the operation is successful.
125
+ */ async addContractInstanceUpdates(data, timestamp) {
101
126
  return (await Promise.all(data.map((update, logIndex)=>this.#contractInstanceStore.addContractInstanceUpdate(update, timestamp, logIndex)))).every(Boolean);
102
127
  }
103
128
  async deleteContractInstanceUpdates(data, timestamp) {
@@ -110,10 +135,18 @@ export const MAX_FUNCTION_NAME_LEN = 256;
110
135
  */ addBlocks(blocks, opts = {}) {
111
136
  return this.#blockStore.addBlocks(blocks, opts);
112
137
  }
113
- getRangeOfCheckpoints(from, limit) {
138
+ /**
139
+ * Returns an array of checkpoint objects
140
+ * @param from The first checkpoint number to be retrieved
141
+ * @param limit The maximum number of checkpoints to retrieve
142
+ * @returns The array of requested checkpoint data objects
143
+ */ getRangeOfCheckpoints(from, limit) {
114
144
  return this.#blockStore.getRangeOfCheckpoints(from, limit);
115
145
  }
116
- getLatestBlockNumber() {
146
+ /**
147
+ * Returns the number of the latest block
148
+ * @returns The number of the latest block
149
+ */ getLatestBlockNumber() {
117
150
  return this.#blockStore.getLatestBlockNumber();
118
151
  }
119
152
  /**
@@ -125,46 +158,83 @@ export const MAX_FUNCTION_NAME_LEN = 256;
125
158
  */ unwindCheckpoints(from, checkpointsToUnwind) {
126
159
  return this.#blockStore.unwindCheckpoints(from, checkpointsToUnwind);
127
160
  }
128
- addCheckpoints(checkpoints) {
161
+ /**
162
+ * Appends new checkpoints, and their blocks to the store's collection
163
+ * @param checkpoints The collection of checkpoints to be added
164
+ * @returns True if the operation is successful
165
+ */ addCheckpoints(checkpoints) {
129
166
  return this.#blockStore.addCheckpoints(checkpoints);
130
167
  }
131
- getCheckpointedBlock(number) {
168
+ /**
169
+ * Returns the block for the given number, or undefined if not exists.
170
+ * @param number - The block number to return.
171
+ */ getCheckpointedBlock(number) {
132
172
  return this.#blockStore.getCheckpointedBlock(number);
133
173
  }
134
- getCheckpointedBlockByHash(blockHash) {
174
+ /**
175
+ * Returns the block for the given hash, or undefined if not exists.
176
+ * @param blockHash - The block hash to return.
177
+ */ getCheckpointedBlockByHash(blockHash) {
135
178
  return this.#blockStore.getCheckpointedBlockByHash(blockHash);
136
179
  }
137
- getCheckpointedBlockByArchive(archive) {
180
+ /**
181
+ * Returns the block for the given archive root, or undefined if not exists.
182
+ * @param archive - The archive root to return.
183
+ */ getCheckpointedBlockByArchive(archive) {
138
184
  return this.#blockStore.getCheckpointedBlockByArchive(archive);
139
185
  }
140
- getBlock(number) {
186
+ /**
187
+ * Returns the block for the given number, or undefined if not exists.
188
+ * @param number - The block number to return.
189
+ */ getBlock(number) {
141
190
  return this.#blockStore.getBlock(number);
142
191
  }
143
- getBlockByHash(blockHash) {
192
+ /**
193
+ * Returns the block for the given hash, or undefined if not exists.
194
+ * @param blockHash - The block hash to return.
195
+ */ getBlockByHash(blockHash) {
144
196
  return this.#blockStore.getBlockByHash(L2BlockHash.fromField(blockHash));
145
197
  }
146
- getBlockByArchive(archive) {
198
+ /**
199
+ * Returns the block for the given archive root, or undefined if not exists.
200
+ * @param archive - The archive root to return.
201
+ */ getBlockByArchive(archive) {
147
202
  return this.#blockStore.getBlockByArchive(archive);
148
203
  }
149
- getBlocks(from, limit) {
204
+ /**
205
+ * Gets up to `limit` amount of published L2 blocks starting from `from`.
206
+ * @param from - Number of the first block to return (inclusive).
207
+ * @param limit - The number of blocks to return.
208
+ * @returns The requested L2 blocks.
209
+ */ getBlocks(from, limit) {
150
210
  return toArray(this.#blockStore.getBlocks(from, limit));
151
211
  }
152
- getCheckpointedBlocks(from, limit) {
212
+ /**
213
+ * Gets up to `limit` amount of checkpointed L2 blocks starting from `from`.
214
+ * @param from - Number of the first block to return (inclusive).
215
+ * @param limit - The number of blocks to return.
216
+ * @returns The requested checkpointed L2 blocks.
217
+ */ getCheckpointedBlocks(from, limit) {
153
218
  return toArray(this.#blockStore.getCheckpointedBlocks(from, limit));
154
219
  }
155
220
  /**
156
- * Gets up to `limit` amount of L2 blocks headers starting from `from`.
157
- *
221
+ * Gets up to `limit` amount of L2 block headers starting from `from`.
158
222
  * @param start - Number of the first block to return (inclusive).
159
223
  * @param limit - The number of blocks to return.
160
- * @returns The requested L2 blocks
224
+ * @returns The requested L2 block headers.
161
225
  */ getBlockHeaders(start, limit) {
162
226
  return toArray(this.#blockStore.getBlockHeaders(start, limit));
163
227
  }
164
- getBlockHeaderByHash(blockHash) {
228
+ /**
229
+ * Returns the block header for the given hash, or undefined if not exists.
230
+ * @param blockHash - The block hash to return.
231
+ */ getBlockHeaderByHash(blockHash) {
165
232
  return this.#blockStore.getBlockHeaderByHash(L2BlockHash.fromField(blockHash));
166
233
  }
167
- getBlockHeaderByArchive(archive) {
234
+ /**
235
+ * Returns the block header for the given archive root, or undefined if not exists.
236
+ * @param archive - The archive root to return.
237
+ */ getBlockHeaderByArchive(archive) {
168
238
  return this.#blockStore.getBlockHeaderByArchive(archive);
169
239
  }
170
240
  /**
@@ -191,15 +261,19 @@ export const MAX_FUNCTION_NAME_LEN = 256;
191
261
  deleteLogs(blocks) {
192
262
  return this.#logStore.deleteLogs(blocks);
193
263
  }
194
- getTotalL1ToL2MessageCount() {
264
+ /**
265
+ * Get the total number of L1 to L2 messages
266
+ * @returns The number of L1 to L2 messages in the store
267
+ */ getTotalL1ToL2MessageCount() {
195
268
  return this.#messageStore.getTotalL1ToL2MessageCount();
196
269
  }
197
- getLastL1ToL2Message() {
270
+ /** Returns the last L1 to L2 message stored. */ getLastL1ToL2Message() {
198
271
  return this.#messageStore.getLastMessage();
199
272
  }
200
273
  /**
201
274
  * Append L1 to L2 messages to the store.
202
275
  * @param messages - The L1 to L2 messages to be added to the store.
276
+ * @returns True if the operation is successful.
203
277
  */ addL1ToL2Messages(messages) {
204
278
  return this.#messageStore.addL1ToL2Messages(messages);
205
279
  }
@@ -217,14 +291,20 @@ export const MAX_FUNCTION_NAME_LEN = 256;
217
291
  */ getL1ToL2Messages(checkpointNumber) {
218
292
  return this.#messageStore.getL1ToL2Messages(checkpointNumber);
219
293
  }
220
- getPrivateLogsByTags(tags) {
294
+ /**
295
+ * Gets all private logs that match any of the `tags`. For each tag, an array of matching logs is returned. An empty
296
+ * array implies no logs match that tag.
297
+ */ getPrivateLogsByTags(tags) {
221
298
  try {
222
299
  return this.#logStore.getPrivateLogsByTags(tags);
223
300
  } catch (err) {
224
301
  return Promise.reject(err);
225
302
  }
226
303
  }
227
- getPublicLogsByTagsFromContract(contractAddress, tags) {
304
+ /**
305
+ * Gets all public logs that match any of the `tags` from the specified contract. For each tag, an array of matching
306
+ * logs is returned. An empty array implies no logs match that tag.
307
+ */ getPublicLogsByTagsFromContract(contractAddress, tags) {
228
308
  try {
229
309
  return this.#logStore.getPublicLogsByTagsFromContract(contractAddress, tags);
230
310
  } catch (err) {
@@ -253,23 +333,34 @@ export const MAX_FUNCTION_NAME_LEN = 256;
253
333
  return Promise.reject(err);
254
334
  }
255
335
  }
256
- getProvenCheckpointNumber() {
336
+ /**
337
+ * Gets the number of the latest proven checkpoint processed.
338
+ * @returns The number of the latest proven checkpoint processed.
339
+ */ getProvenCheckpointNumber() {
257
340
  return this.#blockStore.getProvenCheckpointNumber();
258
341
  }
259
- async setProvenCheckpointNumber(checkpointNumber) {
342
+ /**
343
+ * Stores the number of the latest proven checkpoint processed.
344
+ * @param checkpointNumber - The number of the latest proven checkpoint processed.
345
+ */ async setProvenCheckpointNumber(checkpointNumber) {
260
346
  await this.#blockStore.setProvenCheckpointNumber(checkpointNumber);
261
347
  }
262
348
  async setBlockSynchedL1BlockNumber(l1BlockNumber) {
263
349
  await this.#blockStore.setSynchedL1BlockNumber(l1BlockNumber);
264
350
  }
265
- async setMessageSynchedL1Block(l1Block) {
351
+ /**
352
+ * Stores the l1 block that messages have been synched until
353
+ */ async setMessageSynchedL1Block(l1Block) {
266
354
  await this.#messageStore.setSynchedL1Block(l1Block);
267
355
  }
268
- getProvenBlockNumber() {
356
+ /**
357
+ * Returns the number of the most recent proven block
358
+ * @returns The number of the most recent proven block
359
+ */ getProvenBlockNumber() {
269
360
  return this.#blockStore.getProvenBlockNumber();
270
361
  }
271
362
  /**
272
- * Gets the last L1 block number processed by the archiver
363
+ * Gets the synch point of the archiver
273
364
  */ async getSynchPoint() {
274
365
  const [blocksSynchedTo, messagesSynchedTo] = await Promise.all([
275
366
  this.#blockStore.getSynchedL1BlockNumber(),
@@ -280,37 +371,54 @@ export const MAX_FUNCTION_NAME_LEN = 256;
280
371
  messagesSynchedTo
281
372
  };
282
373
  }
283
- estimateSize() {
374
+ /** Estimates the size of the store in bytes. */ estimateSize() {
284
375
  return this.db.estimateSize();
285
376
  }
286
- rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber) {
377
+ /** Deletes all L1 to L2 messages up until (excluding) the target checkpoint number. */ rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber) {
287
378
  return this.#messageStore.rollbackL1ToL2MessagesToCheckpoint(targetCheckpointNumber);
288
379
  }
289
- iterateL1ToL2Messages(range = {}) {
380
+ /** Returns an async iterator to all L1 to L2 messages on the range. */ iterateL1ToL2Messages(range = {}) {
290
381
  return this.#messageStore.iterateL1ToL2Messages(range);
291
382
  }
292
- removeL1ToL2Messages(startIndex) {
383
+ /** Removes all L1 to L2 messages starting from the given index (inclusive). */ removeL1ToL2Messages(startIndex) {
293
384
  return this.#messageStore.removeL1ToL2Messages(startIndex);
294
385
  }
295
- getPendingChainValidationStatus() {
386
+ /** Returns the last synced validation status of the pending chain. */ getPendingChainValidationStatus() {
296
387
  return this.#blockStore.getPendingChainValidationStatus();
297
388
  }
298
- setPendingChainValidationStatus(status) {
389
+ /** Sets the last synced validation status of the pending chain. */ setPendingChainValidationStatus(status) {
299
390
  return this.#blockStore.setPendingChainValidationStatus(status);
300
391
  }
301
- getCheckpointedL2BlockNumber() {
392
+ /**
393
+ * Gets the number of the latest L2 block processed.
394
+ * @returns The number of the latest L2 block processed.
395
+ */ getCheckpointedL2BlockNumber() {
302
396
  return this.#blockStore.getCheckpointedL2BlockNumber();
303
397
  }
304
- getSynchedCheckpointNumber() {
398
+ /**
399
+ * Gets the number of the latest published checkpoint processed.
400
+ * @returns The number of the latest published checkpoint processed
401
+ */ getSynchedCheckpointNumber() {
305
402
  return this.#blockStore.getLatestCheckpointNumber();
306
403
  }
307
- async setCheckpointSynchedL1BlockNumber(l1BlockNumber) {
404
+ /**
405
+ * Stores the l1 block number that checkpoints have been synched until
406
+ * @param l1BlockNumber - The l1 block number
407
+ */ async setCheckpointSynchedL1BlockNumber(l1BlockNumber) {
308
408
  await this.#blockStore.setSynchedL1BlockNumber(l1BlockNumber);
309
409
  }
310
- getBlocksForCheckpoint(checkpointNumber) {
410
+ /**
411
+ * Retrieves all blocks for the requested checkpoint
412
+ * @param checkpointNumber Retrieves all blocks for the given checkpoint
413
+ * @returns The collection of blocks for the requested checkpoint if available (undefined otherwise)
414
+ */ getBlocksForCheckpoint(checkpointNumber) {
311
415
  return this.#blockStore.getBlocksForCheckpoint(checkpointNumber);
312
416
  }
313
- getCheckpointData(checkpointNumber) {
417
+ /**
418
+ * Returns checkpoint data for the requested checkpoint number
419
+ * @param checkpointNumber - The checkpoint requested
420
+ * @returns The checkpoint data or undefined if not found
421
+ */ getCheckpointData(checkpointNumber) {
314
422
  return this.#blockStore.getCheckpointData(checkpointNumber);
315
423
  }
316
424
  }
@@ -42,4 +42,4 @@ export declare class LogStore {
42
42
  */
43
43
  getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse>;
44
44
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3N0b3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUvbG9nX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNHLE9BQU8sRUFJTCxLQUFLLFNBQVMsRUFHZCxLQUFLLFNBQVMsRUFDZCxHQUFHLEVBQ0gsYUFBYSxFQUNkLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQ7O0dBRUc7QUFDSCxxQkFBYSxRQUFROztJQWFqQixPQUFPLENBQUMsRUFBRTtJQUNWLE9BQU8sQ0FBQyxVQUFVO0lBRnBCLFlBQ1UsRUFBRSxFQUFFLGlCQUFpQixFQUNyQixVQUFVLEVBQUUsVUFBVSxFQUM5QixlQUFlLEdBQUUsTUFBYSxFQVUvQjtJQStGRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBbUY5QztJQWdCRCxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0EyQmpEO0lBRUQ7OztPQUdHO0lBQ0csb0JBQW9CLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBSXhFO0lBRUQ7OztPQUdHO0lBQ0csK0JBQStCLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FRNUc7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBUS9EO0lBNkVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQVE3RTtDQTZHRiJ9
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3N0b3JlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmUvbG9nX3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNHLE9BQU8sRUFJTCxLQUFLLFNBQVMsRUFHZCxLQUFLLFNBQVMsRUFDZCxHQUFHLEVBQ0gsYUFBYSxFQUNkLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQ7O0dBRUc7QUFDSCxxQkFBYSxRQUFROztJQWFqQixPQUFPLENBQUMsRUFBRTtJQUNWLE9BQU8sQ0FBQyxVQUFVO0lBRnBCLFlBQ1UsRUFBRSxFQUFFLGlCQUFpQixFQUNyQixVQUFVLEVBQUUsVUFBVSxFQUM5QixlQUFlLEdBQUUsTUFBYSxFQVUvQjtJQStGRDs7OztPQUlHO0lBQ0gsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBbUY5QztJQWdCRCxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0EyQmpEO0lBRUQ7OztPQUdHO0lBQ0csb0JBQW9CLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBSXhFO0lBRUQ7OztPQUdHO0lBQ0csK0JBQStCLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FRNUc7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBUS9EO0lBNkVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQVE3RTtDQTZHRiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log_store.d.ts","sourceRoot":"","sources":["../../src/store/log_store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAe,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAIL,KAAK,SAAS,EAGd,KAAK,SAAS,EACd,GAAG,EACH,aAAa,EACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,qBAAa,QAAQ;;IAajB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,UAAU;IAFpB,YACU,EAAE,EAAE,iBAAiB,EACrB,UAAU,EAAE,UAAU,EAC9B,eAAe,GAAE,MAAa,EAU/B;IA+FD;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAmF9C;IAgBD,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BjD;IAED;;;OAGG;IACG,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAIxE;IAED;;;OAGG;IACG,+BAA+B,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAQ5G;IAED;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAQ/D;IA6ED;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAQ7E;CA6GF"}
@@ -37,4 +37,4 @@ export declare class MessageStore {
37
37
  private leafToIndexKey;
38
38
  private increaseTotalMessageCount;
39
39
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FyY2hpdmVyL2t2X2FyY2hpdmVyX3N0b3JlL21lc3NhZ2Vfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSXBELE9BQU8sRUFDTCxLQUFLLGlCQUFpQixFQUd0QixLQUFLLFdBQVcsRUFFakIsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixPQUFPLEVBQ0wsS0FBSyxZQUFZLEVBSWxCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMscUJBQWEsaUJBQWtCLFNBQVEsS0FBSzthQUd4QixZQUFZLEVBQUUsWUFBWTtJQUY1QyxZQUNFLE9BQU8sRUFBRSxNQUFNLEVBQ0MsWUFBWSxFQUFFLFlBQVksRUFJM0M7Q0FDRjtBQUVELHFCQUFhLFlBQVk7O0lBWVgsT0FBTyxDQUFDLEVBQUU7SUFBdEIsWUFBb0IsRUFBRSxFQUFFLGlCQUFpQixFQUt4QztJQUVZLDBCQUEwQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFekQ7SUFFRCxxQ0FBcUM7SUFDeEIsaUJBQWlCLElBQUksT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FRL0Q7SUFFRCxvQ0FBb0M7SUFDdkIsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBR2hFO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBNkZoRTtJQUVEOzs7O09BSUc7SUFDSSxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRTNFO0lBRVksY0FBYyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLENBRy9EO0lBRVksaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBdUJoRjtJQUVhLHFCQUFxQixDQUFDLEtBQUssR0FBRSxXQUFXLENBQUMsTUFBTSxDQUFNLEdBQUcscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBS3hHO0lBRU0sb0JBQW9CLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZ0I3RDtJQUVNLGtDQUFrQyxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJakc7SUFFRCxPQUFPLENBQUMsVUFBVTtJQUlsQixPQUFPLENBQUMsY0FBYztZQUlSLHlCQUF5QjtDQVN4QyJ9
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0b3JlL21lc3NhZ2Vfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBSXBELE9BQU8sRUFDTCxLQUFLLGlCQUFpQixFQUd0QixLQUFLLFdBQVcsRUFFakIsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixPQUFPLEVBQ0wsS0FBSyxZQUFZLEVBSWxCLE1BQU0sNkJBQTZCLENBQUM7QUFFckMscUJBQWEsaUJBQWtCLFNBQVEsS0FBSzthQUd4QixZQUFZLEVBQUUsWUFBWTtJQUY1QyxZQUNFLE9BQU8sRUFBRSxNQUFNLEVBQ0MsWUFBWSxFQUFFLFlBQVksRUFJM0M7Q0FDRjtBQUVELHFCQUFhLFlBQVk7O0lBWVgsT0FBTyxDQUFDLEVBQUU7SUFBdEIsWUFBb0IsRUFBRSxFQUFFLGlCQUFpQixFQUt4QztJQUVZLDBCQUEwQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFekQ7SUFFRCxxQ0FBcUM7SUFDeEIsaUJBQWlCLElBQUksT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FRL0Q7SUFFRCxvQ0FBb0M7SUFDdkIsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBR2hFO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBNkZoRTtJQUVEOzs7O09BSUc7SUFDSSxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBRTNFO0lBRVksY0FBYyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLENBRy9EO0lBRVksaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBdUJoRjtJQUVhLHFCQUFxQixDQUFDLEtBQUssR0FBRSxXQUFXLENBQUMsTUFBTSxDQUFNLEdBQUcscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBS3hHO0lBRU0sb0JBQW9CLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZ0I3RDtJQUVNLGtDQUFrQyxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FJakc7SUFFRCxPQUFPLENBQUMsVUFBVTtJQUlsQixPQUFPLENBQUMsY0FBYztZQUlSLHlCQUF5QjtDQVN4QyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message_store.d.ts","sourceRoot":"","sources":["../../src/store/message_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAIpD,OAAO,EACL,KAAK,iBAAiB,EAGtB,KAAK,WAAW,EAEjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,KAAK,YAAY,EAIlB,MAAM,6BAA6B,CAAC;AAErC,qBAAa,iBAAkB,SAAQ,KAAK;aAGxB,YAAY,EAAE,YAAY;IAF5C,YACE,OAAO,EAAE,MAAM,EACC,YAAY,EAAE,YAAY,EAI3C;CACF;AAED,qBAAa,YAAY;;IAYX,OAAO,CAAC,EAAE;IAAtB,YAAoB,EAAE,EAAE,iBAAiB,EAKxC;IAEY,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC,CAEzD;IAED,qCAAqC;IACxB,iBAAiB,IAAI,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAQ/D;IAED,oCAAoC;IACvB,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE;IAED;;;;OAIG;IACI,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FhE;IAED;;;;OAIG;IACI,qBAAqB,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE3E;IAEY,cAAc,IAAI,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAG/D;IAEY,iBAAiB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAuBhF;IAEa,qBAAqB,CAAC,KAAK,GAAE,WAAW,CAAC,MAAM,CAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAKxG;IAEM,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7D;IAEM,kCAAkC,CAAC,sBAAsB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjG;IAED,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,cAAc;YAIR,yBAAyB;CASxC"}
@@ -24,4 +24,4 @@ export type SingletonDataRetrieval<T> = {
24
24
  */
25
25
  retrievedData: T;
26
26
  };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcmNoaXZlci9zdHJ1Y3RzL2RhdGFfcmV0cmlldmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGFBQWEsQ0FBQyxDQUFDLElBQUk7SUFDN0I7O09BRUc7SUFDSCwwQkFBMEIsRUFBRSxNQUFNLENBQUM7SUFDbkM7O09BRUc7SUFDSCxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7Q0FDcEIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHNCQUFzQixDQUFDLENBQUMsSUFBSTtJQUN0Qzs7T0FFRztJQUNILDBCQUEwQixFQUFFLE1BQU0sQ0FBQztJQUNuQzs7T0FFRztJQUNILGFBQWEsRUFBRSxDQUFDLENBQUM7Q0FDbEIsQ0FBQyJ9
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9yZXRyaWV2YWwuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJ1Y3RzL2RhdGFfcmV0cmlldmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGFBQWEsQ0FBQyxDQUFDLElBQUk7SUFDN0I7O09BRUc7SUFDSCwwQkFBMEIsRUFBRSxNQUFNLENBQUM7SUFDbkM7O09BRUc7SUFDSCxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUM7Q0FDcEIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHNCQUFzQixDQUFDLENBQUMsSUFBSTtJQUN0Qzs7T0FFRztJQUNILDBCQUEwQixFQUFFLE1BQU0sQ0FBQztJQUNuQzs7T0FFRztJQUNILGFBQWEsRUFBRSxDQUFDLENBQUM7Q0FDbEIsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_retrieval.d.ts","sourceRoot":"","sources":["../../src/structs/data_retrieval.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B;;OAEG;IACH,0BAA0B,EAAE,MAAM,CAAC;IACnC;;OAEG;IACH,aAAa,EAAE,CAAC,EAAE,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAAI;IACtC;;OAEG;IACH,0BAA0B,EAAE,MAAM,CAAC;IACnC;;OAEG;IACH,aAAa,EAAE,CAAC,CAAC;CAClB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { CheckpointNumber } from '@aztec/foundation/branded-types';
2
+ import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ export type InboxMessage = {
5
+ index: bigint;
6
+ leaf: Fr;
7
+ checkpointNumber: CheckpointNumber;
8
+ l1BlockNumber: bigint;
9
+ l1BlockHash: Buffer32;
10
+ rollingHash: Buffer16;
11
+ };
12
+ export declare function updateRollingHash(currentRollingHash: Buffer16, leaf: Fr): Buffer16;
13
+ export declare function serializeInboxMessage(message: InboxMessage): Buffer;
14
+ export declare function deserializeInboxMessage(buffer: Buffer): InboxMessage;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3hfbWVzc2FnZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cnVjdHMvaW5ib3hfbWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdwRCxNQUFNLE1BQU0sWUFBWSxHQUFHO0lBQ3pCLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ1QsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7SUFDbkMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixXQUFXLEVBQUUsUUFBUSxDQUFDO0lBQ3RCLFdBQVcsRUFBRSxRQUFRLENBQUM7Q0FDdkIsQ0FBQztBQUVGLHdCQUFnQixpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxRQUFRLENBR2xGO0FBRUQsd0JBQWdCLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxZQUFZLEdBQUcsTUFBTSxDQVNuRTtBQUVELHdCQUFnQix1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksQ0FTcEUifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inbox_message.d.ts","sourceRoot":"","sources":["../../src/structs/inbox_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,EAAE,CAAC;IACT,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,QAAQ,CAAC;IACtB,WAAW,EAAE,QAAQ,CAAC;CACvB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,QAAQ,CAGlF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CASnE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CASpE"}
@@ -1,2 +1,2 @@
1
1
  export type { L1PublishedData, PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVkLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIvc3RydWN0cy9wdWJsaXNoZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDIn0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGVkLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RydWN0cy9wdWJsaXNoZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"published.d.ts","sourceRoot":"","sources":["../../src/structs/published.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,173 @@
1
+ import type { BlobClientInterface } from '@aztec/blob-client/client';
2
+ import { type Blob } from '@aztec/blob-lib';
3
+ import type { InboxContract, RollupContract } from '@aztec/ethereum/contracts';
4
+ import type { ViemPublicClient } from '@aztec/ethereum/types';
5
+ import { CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
6
+ import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
7
+ import { Fr } from '@aztec/foundation/curves/bn254';
8
+ import { EthAddress } from '@aztec/foundation/eth-address';
9
+ import { Checkpoint } from '@aztec/stdlib/checkpoint';
10
+ import { AppendOnlyTreeSnapshot } from '@aztec/stdlib/trees';
11
+ import { type MockProxy } from 'jest-mock-extended';
12
+ /** Configuration for the fake L1 state. */
13
+ export type FakeL1StateConfig = {
14
+ /** Genesis archive root. */
15
+ genesisArchiveRoot: Fr;
16
+ /** L1 start block number. */
17
+ l1StartBlock: bigint;
18
+ /** L1 genesis time in seconds. */
19
+ l1GenesisTime: bigint;
20
+ /** Ethereum slot duration in seconds. */
21
+ ethereumSlotDuration: number;
22
+ /** Rollup address for mock contracts. */
23
+ rollupAddress: EthAddress;
24
+ /** Inbox address for mock contracts. */
25
+ inboxAddress: EthAddress;
26
+ };
27
+ /** Options for adding a checkpoint. */
28
+ type AddCheckpointOptions = {
29
+ /** L1 block number where checkpoint was proposed. */
30
+ l1BlockNumber: bigint;
31
+ /** Number of L2 blocks in the checkpoint. Default: 1 */
32
+ numBlocks?: number;
33
+ /** Number of transactions per block. Default: 4 */
34
+ txsPerBlock?: number;
35
+ /** Max number of effects per tx (for generating large blobs). Default: undefined */
36
+ maxEffects?: number;
37
+ /** Signers for attestations. Default: none */
38
+ signers?: Secp256k1Signer[];
39
+ /** Override slot number. */
40
+ slotNumber?: SlotNumber;
41
+ /** Override previous archive. */
42
+ previousArchive?: AppendOnlyTreeSnapshot;
43
+ /** Timestamp for the checkpoint. */
44
+ timestamp?: bigint;
45
+ /** Number of L1-to-L2 messages. Default: 3 */
46
+ numL1ToL2Messages?: number;
47
+ /** L1 block number where messages were sent. Default: l1BlockNumber - 3 */
48
+ messagesL1BlockNumber?: bigint;
49
+ };
50
+ /** Result from adding a checkpoint. */
51
+ type AddCheckpointResult = {
52
+ /** The checkpoint that was created. */
53
+ checkpoint: Checkpoint;
54
+ /** The L1-to-L2 messages for this checkpoint. */
55
+ messages: Fr[];
56
+ };
57
+ /**
58
+ * Stateful fake for L1 data used by the archiver.
59
+ *
60
+ * This class simulates the L1 blockchain state that the archiver reads from:
61
+ * - RollupContract: status(), archiveAt(), getVersion(), getTargetCommitteeSize(), CheckpointProposed events
62
+ * - InboxContract: getState(), MessageSent events
63
+ * - PublicClient: getBlockNumber(), getBlock(), getTransaction()
64
+ * - BlobClient: getBlobSidecar()
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * const fake = new FakeL1State(config);
69
+ *
70
+ * // Add checkpoint (creates messages automatically)
71
+ * const { checkpoint, messages } = await fake.addCheckpoint(CheckpointNumber(1), { l1BlockNumber: 101n });
72
+ * fake.setL1BlockNumber(105n);
73
+ *
74
+ * // Status auto-updated
75
+ * expect(fake.getRollupStatus().pendingCheckpointNumber).toEqual(CheckpointNumber(1));
76
+ * ```
77
+ */
78
+ export declare class FakeL1State {
79
+ private readonly config;
80
+ private readonly log;
81
+ private l1BlockNumber;
82
+ private checkpoints;
83
+ private messages;
84
+ private messagesRollingHash;
85
+ private lastArchive;
86
+ private provenCheckpointNumber;
87
+ private targetCommitteeSize;
88
+ private version;
89
+ private pendingCheckpointNumber;
90
+ constructor(config: FakeL1StateConfig);
91
+ /**
92
+ * Adds messages for a checkpoint. Returns the message leaves.
93
+ * Auto-updates rolling hash.
94
+ *
95
+ * Note: For most use cases, use `addCheckpoint` which creates both checkpoint and messages.
96
+ * Use this method only when you need to add messages without creating a checkpoint (e.g., for reorg tests).
97
+ */
98
+ addMessages(checkpointNumber: CheckpointNumber, l1BlockNumber: bigint, messageLeaves: Fr[]): void;
99
+ /**
100
+ * Creates and adds a checkpoint with its L1-to-L2 messages.
101
+ * Returns both the checkpoint and the message leaves.
102
+ * Auto-chains from lastArchive, auto-updates pending status if L1 block >= checkpoint's L1 block.
103
+ */
104
+ addCheckpoint(checkpointNumber: CheckpointNumber, options: AddCheckpointOptions): Promise<AddCheckpointResult>;
105
+ /**
106
+ * Sets the current L1 block number.
107
+ * Auto-updates pending checkpoint number based on visible checkpoints.
108
+ */
109
+ setL1BlockNumber(blockNumber: bigint): void;
110
+ /** Marks a checkpoint as proven. Updates provenCheckpointNumber. */
111
+ markCheckpointAsProven(checkpointNumber: CheckpointNumber): void;
112
+ /** Sets the target committee size for attestation validation. */
113
+ setTargetCommitteeSize(size: number): void;
114
+ /**
115
+ * Removes all entries for a checkpoint number (simulates L1 reorg or prune).
116
+ * Note: Does NOT remove messages for this checkpoint (use numL1ToL2Messages: 0 when re-adding).
117
+ * Auto-updates pending status.
118
+ */
119
+ removeCheckpoint(checkpointNumber: CheckpointNumber): void;
120
+ /**
121
+ * Removes messages after a given total index (simulates L1 reorg).
122
+ * Auto-updates rolling hash.
123
+ */
124
+ removeMessagesAfter(totalIndex: number): void;
125
+ /**
126
+ * Simulates a pruned checkpoint by marking all entries with this number as pruned.
127
+ * The event will still be returned, but archiveAt() will return the previous checkpoint's archive
128
+ * (or genesis if no previous checkpoint), causing a mismatch that the archiver will detect.
129
+ */
130
+ markCheckpointAsPruned(checkpointNumber: CheckpointNumber): void;
131
+ /**
132
+ * Moves messages at a given L1 block to a new L1 block.
133
+ * Useful for simulating partial message visibility (messages at higher L1 blocks won't be fetched).
134
+ */
135
+ moveMessagesToL1Block(fromL1Block: bigint, toL1Block: bigint): void;
136
+ /**
137
+ * Moves a specific message (by index in the messages array) to a new L1 block.
138
+ */
139
+ moveMessageAtIndexToL1Block(index: number, toL1Block: bigint): void;
140
+ /** Gets current rollup status. */
141
+ getRollupStatus(): {
142
+ provenCheckpointNumber: CheckpointNumber;
143
+ pendingCheckpointNumber: CheckpointNumber;
144
+ provenArchive: Fr;
145
+ pendingArchive: Fr;
146
+ };
147
+ /** Gets the last archive (for manual chaining if needed). */
148
+ getLastArchive(): AppendOnlyTreeSnapshot;
149
+ /** Gets the latest checkpoint entry by number (returns the last added one). */
150
+ getCheckpoint(checkpointNumber: CheckpointNumber): Checkpoint | undefined;
151
+ /** Gets messages for a checkpoint. */
152
+ getMessages(checkpointNumber: CheckpointNumber): Fr[];
153
+ /** Gets the blobs for a checkpoint. */
154
+ getCheckpointBlobs(checkpointNumber: CheckpointNumber): Blob[];
155
+ /** Creates mock RollupContract that reads from this fake state. */
156
+ createMockRollupContract(_publicClient: MockProxy<ViemPublicClient>): MockProxy<RollupContract>;
157
+ /** Creates mock InboxContract that reads from this fake state. */
158
+ createMockInboxContract(_publicClient: MockProxy<ViemPublicClient>): MockProxy<InboxContract>;
159
+ /** Creates mock PublicClient that reads from this fake state. */
160
+ createMockPublicClient(): MockProxy<ViemPublicClient>;
161
+ /** Creates mock BlobClient that reads from this fake state. */
162
+ createMockBlobClient(): MockProxy<BlobClientInterface>;
163
+ private updatePendingCheckpointNumber;
164
+ private getArchiveAt;
165
+ private getNextBlockNumber;
166
+ private getCheckpointProposedLogs;
167
+ private getMessageSentLogs;
168
+ private makeRollupTx;
169
+ private makeVersionedBlobHashes;
170
+ private makeBlobsFromCheckpoint;
171
+ }
172
+ export {};
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFrZV9sMV9zdGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QvZmFrZV9sMV9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBcUQsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRixPQUFPLEtBQUssRUFBeUIsYUFBYSxFQUFrQixjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV0SCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBT3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdELE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBUSxNQUFNLG9CQUFvQixDQUFDO0FBSzFELDJDQUEyQztBQUMzQyxNQUFNLE1BQU0saUJBQWlCLEdBQUc7SUFDOUIsNEJBQTRCO0lBQzVCLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztJQUN2Qiw2QkFBNkI7SUFDN0IsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixrQ0FBa0M7SUFDbEMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0Qix5Q0FBeUM7SUFDekMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBQzdCLHlDQUF5QztJQUN6QyxhQUFhLEVBQUUsVUFBVSxDQUFDO0lBQzFC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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fake_l1_state.d.ts","sourceRoot":"","sources":["../../src/test/fake_l1_state.ts"],"names":[],"mappings":"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"}