@aztec/kv-store 0.76.4 → 0.77.0-testnet-ignition.17

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 (142) hide show
  1. package/dest/config.d.ts +1 -1
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +5 -7
  4. package/dest/indexeddb/array.d.ts +3 -3
  5. package/dest/indexeddb/array.d.ts.map +1 -1
  6. package/dest/indexeddb/array.js +44 -36
  7. package/dest/indexeddb/index.d.ts +1 -1
  8. package/dest/indexeddb/index.d.ts.map +1 -1
  9. package/dest/indexeddb/index.js +1 -4
  10. package/dest/indexeddb/map.d.ts +4 -4
  11. package/dest/indexeddb/map.d.ts.map +1 -1
  12. package/dest/indexeddb/map.js +72 -43
  13. package/dest/indexeddb/set.d.ts +4 -4
  14. package/dest/indexeddb/set.d.ts.map +1 -1
  15. package/dest/indexeddb/set.js +3 -4
  16. package/dest/indexeddb/singleton.d.ts +3 -3
  17. package/dest/indexeddb/singleton.d.ts.map +1 -1
  18. package/dest/indexeddb/singleton.js +17 -22
  19. package/dest/indexeddb/store.d.ts +8 -8
  20. package/dest/indexeddb/store.d.ts.map +1 -1
  21. package/dest/indexeddb/store.js +97 -93
  22. package/dest/interfaces/array.js +3 -2
  23. package/dest/interfaces/array_test_suite.d.ts +1 -1
  24. package/dest/interfaces/array_test_suite.d.ts.map +1 -1
  25. package/dest/interfaces/array_test_suite.js +29 -25
  26. package/dest/interfaces/common.d.ts +1 -1
  27. package/dest/interfaces/common.d.ts.map +1 -1
  28. package/dest/interfaces/common.js +3 -2
  29. package/dest/interfaces/counter.d.ts +1 -1
  30. package/dest/interfaces/counter.d.ts.map +1 -1
  31. package/dest/interfaces/counter.js +1 -2
  32. package/dest/interfaces/index.d.ts +1 -1
  33. package/dest/interfaces/index.d.ts.map +1 -1
  34. package/dest/interfaces/index.js +0 -1
  35. package/dest/interfaces/map.d.ts +1 -1
  36. package/dest/interfaces/map.d.ts.map +1 -1
  37. package/dest/interfaces/map.js +3 -2
  38. package/dest/interfaces/map_test_suite.d.ts +1 -1
  39. package/dest/interfaces/map_test_suite.d.ts.map +1 -1
  40. package/dest/interfaces/map_test_suite.js +87 -42
  41. package/dest/interfaces/set.d.ts +1 -1
  42. package/dest/interfaces/set.d.ts.map +1 -1
  43. package/dest/interfaces/set.js +1 -2
  44. package/dest/interfaces/set_test_suite.d.ts +1 -1
  45. package/dest/interfaces/set_test_suite.d.ts.map +1 -1
  46. package/dest/interfaces/set_test_suite.js +59 -22
  47. package/dest/interfaces/singleton.js +4 -2
  48. package/dest/interfaces/singleton_test_suite.d.ts +1 -1
  49. package/dest/interfaces/singleton_test_suite.d.ts.map +1 -1
  50. package/dest/interfaces/singleton_test_suite.js +7 -10
  51. package/dest/interfaces/store.d.ts +6 -6
  52. package/dest/interfaces/store.d.ts.map +1 -1
  53. package/dest/interfaces/store.js +1 -2
  54. package/dest/interfaces/store_test_suite.d.ts +1 -1
  55. package/dest/interfaces/store_test_suite.d.ts.map +1 -1
  56. package/dest/interfaces/store_test_suite.js +6 -9
  57. package/dest/interfaces/utils.d.ts +1 -1
  58. package/dest/interfaces/utils.d.ts.map +1 -1
  59. package/dest/interfaces/utils.js +12 -15
  60. package/dest/lmdb/array.d.ts +2 -2
  61. package/dest/lmdb/array.d.ts.map +1 -1
  62. package/dest/lmdb/array.js +46 -41
  63. package/dest/lmdb/counter.d.ts +3 -3
  64. package/dest/lmdb/counter.d.ts.map +1 -1
  65. package/dest/lmdb/counter.js +18 -24
  66. package/dest/lmdb/index.d.ts +1 -1
  67. package/dest/lmdb/index.d.ts.map +1 -1
  68. package/dest/lmdb/index.js +2 -6
  69. package/dest/lmdb/map.d.ts +3 -3
  70. package/dest/lmdb/map.d.ts.map +1 -1
  71. package/dest/lmdb/map.js +90 -68
  72. package/dest/lmdb/set.d.ts +3 -3
  73. package/dest/lmdb/set.d.ts.map +1 -1
  74. package/dest/lmdb/set.js +4 -5
  75. package/dest/lmdb/singleton.d.ts +2 -2
  76. package/dest/lmdb/singleton.d.ts.map +1 -1
  77. package/dest/lmdb/singleton.js +13 -14
  78. package/dest/lmdb/store.d.ts +7 -7
  79. package/dest/lmdb/store.d.ts.map +1 -1
  80. package/dest/lmdb/store.js +125 -134
  81. package/dest/lmdb-v2/array.d.ts +18 -0
  82. package/dest/lmdb-v2/array.d.ts.map +1 -0
  83. package/dest/lmdb-v2/array.js +101 -0
  84. package/dest/lmdb-v2/factory.d.ts +1 -1
  85. package/dest/lmdb-v2/factory.d.ts.map +1 -1
  86. package/dest/lmdb-v2/factory.js +30 -21
  87. package/dest/lmdb-v2/index.js +0 -1
  88. package/dest/lmdb-v2/map.js +82 -85
  89. package/dest/lmdb-v2/message.js +6 -7
  90. package/dest/lmdb-v2/read_transaction.js +65 -53
  91. package/dest/lmdb-v2/singleton.d.ts +1 -1
  92. package/dest/lmdb-v2/singleton.d.ts.map +1 -1
  93. package/dest/lmdb-v2/singleton.js +7 -5
  94. package/dest/lmdb-v2/store.d.ts +1 -1
  95. package/dest/lmdb-v2/store.d.ts.map +1 -1
  96. package/dest/lmdb-v2/store.js +31 -28
  97. package/dest/lmdb-v2/utils.d.ts +1 -1
  98. package/dest/lmdb-v2/utils.d.ts.map +1 -1
  99. package/dest/lmdb-v2/utils.js +30 -30
  100. package/dest/lmdb-v2/write_transaction.js +130 -110
  101. package/dest/stores/index.js +0 -1
  102. package/dest/stores/l2_tips_store.d.ts +2 -2
  103. package/dest/stores/l2_tips_store.d.ts.map +1 -1
  104. package/dest/stores/l2_tips_store.js +26 -12
  105. package/dest/utils.d.ts +3 -3
  106. package/dest/utils.d.ts.map +1 -1
  107. package/dest/utils.js +3 -7
  108. package/package.json +8 -11
  109. package/src/config.ts +1 -1
  110. package/src/indexeddb/array.ts +3 -3
  111. package/src/indexeddb/index.ts +1 -1
  112. package/src/indexeddb/map.ts +4 -4
  113. package/src/indexeddb/set.ts +4 -4
  114. package/src/indexeddb/singleton.ts +3 -3
  115. package/src/indexeddb/store.ts +8 -8
  116. package/src/interfaces/array_test_suite.ts +2 -2
  117. package/src/interfaces/common.ts +1 -1
  118. package/src/interfaces/counter.ts +1 -1
  119. package/src/interfaces/index.ts +1 -1
  120. package/src/interfaces/map.ts +1 -1
  121. package/src/interfaces/map_test_suite.ts +3 -3
  122. package/src/interfaces/set.ts +1 -1
  123. package/src/interfaces/set_test_suite.ts +3 -3
  124. package/src/interfaces/singleton_test_suite.ts +2 -2
  125. package/src/interfaces/store.ts +12 -12
  126. package/src/interfaces/store_test_suite.ts +2 -2
  127. package/src/interfaces/utils.ts +1 -1
  128. package/src/lmdb/array.ts +2 -2
  129. package/src/lmdb/counter.ts +3 -3
  130. package/src/lmdb/index.ts +1 -1
  131. package/src/lmdb/map.ts +3 -3
  132. package/src/lmdb/set.ts +3 -3
  133. package/src/lmdb/singleton.ts +2 -2
  134. package/src/lmdb/store.ts +14 -14
  135. package/src/lmdb-v2/array.ts +115 -0
  136. package/src/lmdb-v2/factory.ts +9 -5
  137. package/src/lmdb-v2/map.ts +1 -1
  138. package/src/lmdb-v2/singleton.ts +1 -1
  139. package/src/lmdb-v2/store.ts +4 -3
  140. package/src/lmdb-v2/utils.ts +1 -1
  141. package/src/stores/l2_tips_store.ts +10 -10
  142. package/src/utils.ts +4 -4
@@ -1,30 +1,30 @@
1
- var _WriteTransaction_instances, _WriteTransaction_iterate;
2
- import { __classPrivateFieldGet } from "tslib";
3
1
  import { Database, LMDBMessageType } from './message.js';
4
2
  import { ReadTransaction } from './read_transaction.js';
5
- import { dedupeSortedArray, findInSortedArray, findIndexInSortedArray, insertIntoSortedArray, keyCmp, merge, removeAnyOf, removeFromSortedArray, singleKeyCmp, } from './utils.js';
3
+ import { dedupeSortedArray, findInSortedArray, findIndexInSortedArray, insertIntoSortedArray, keyCmp, merge, removeAnyOf, removeFromSortedArray, singleKeyCmp } from './utils.js';
6
4
  export class WriteTransaction extends ReadTransaction {
7
- constructor() {
8
- super(...arguments);
9
- _WriteTransaction_instances.add(this);
10
- // exposed for tests
11
- this.dataBatch = {
12
- addEntries: [],
13
- removeEntries: [],
14
- };
15
- this.indexBatch = {
16
- addEntries: [],
17
- removeEntries: [],
18
- };
19
- }
5
+ // exposed for tests
6
+ dataBatch = {
7
+ addEntries: [],
8
+ removeEntries: []
9
+ };
10
+ indexBatch = {
11
+ addEntries: [],
12
+ removeEntries: []
13
+ };
20
14
  set(key, value) {
21
15
  this.assertIsOpen();
22
16
  const addEntry = findInSortedArray(this.dataBatch.addEntries, key, singleKeyCmp);
23
17
  if (!addEntry) {
24
- insertIntoSortedArray(this.dataBatch.addEntries, [key, [value]], keyCmp);
25
- }
26
- else {
27
- addEntry[1] = [value];
18
+ insertIntoSortedArray(this.dataBatch.addEntries, [
19
+ key,
20
+ [
21
+ value
22
+ ]
23
+ ], keyCmp);
24
+ } else {
25
+ addEntry[1] = [
26
+ value
27
+ ];
28
28
  }
29
29
  const removeEntryIndex = findIndexInSortedArray(this.dataBatch.removeEntries, key, singleKeyCmp);
30
30
  if (removeEntryIndex > -1) {
@@ -35,7 +35,10 @@ export class WriteTransaction extends ReadTransaction {
35
35
  remove(key) {
36
36
  const removeEntryIndex = findIndexInSortedArray(this.dataBatch.removeEntries, key, singleKeyCmp);
37
37
  if (removeEntryIndex === -1) {
38
- this.dataBatch.removeEntries.push([key, null]);
38
+ this.dataBatch.removeEntries.push([
39
+ key,
40
+ null
41
+ ]);
39
42
  }
40
43
  const addEntryIndex = findIndexInSortedArray(this.dataBatch.addEntries, key, singleKeyCmp);
41
44
  if (addEntryIndex > -1) {
@@ -73,9 +76,11 @@ export class WriteTransaction extends ReadTransaction {
73
76
  if (addEntries) {
74
77
  merge(addEntries[1], values, Buffer.compare);
75
78
  dedupeSortedArray(addEntries[1], Buffer.compare);
76
- }
77
- else {
78
- insertIntoSortedArray(this.indexBatch.addEntries, [key, values], keyCmp);
79
+ } else {
80
+ insertIntoSortedArray(this.indexBatch.addEntries, [
81
+ key,
82
+ values
83
+ ], keyCmp);
79
84
  }
80
85
  return Promise.resolve();
81
86
  }
@@ -90,9 +95,11 @@ export class WriteTransaction extends ReadTransaction {
90
95
  }
91
96
  if (removeEntries) {
92
97
  removeEntries[1] = null;
93
- }
94
- else {
95
- insertIntoSortedArray(this.indexBatch.removeEntries, [key, null], keyCmp);
98
+ } else {
99
+ insertIntoSortedArray(this.indexBatch.removeEntries, [
100
+ key,
101
+ null
102
+ ], keyCmp);
96
103
  }
97
104
  return Promise.resolve();
98
105
  }
@@ -103,12 +110,14 @@ export class WriteTransaction extends ReadTransaction {
103
110
  }
104
111
  }
105
112
  if (removeEntries) {
106
- removeEntries[1] ?? (removeEntries[1] = []);
113
+ removeEntries[1] ??= [];
107
114
  merge(removeEntries[1], values, Buffer.compare);
108
115
  dedupeSortedArray(removeEntries[1], Buffer.compare);
109
- }
110
- else {
111
- insertIntoSortedArray(this.indexBatch.removeEntries, [key, values], keyCmp);
116
+ } else {
117
+ insertIntoSortedArray(this.indexBatch.removeEntries, [
118
+ key,
119
+ values
120
+ ], keyCmp);
112
121
  }
113
122
  return Promise.resolve();
114
123
  }
@@ -130,10 +139,10 @@ export class WriteTransaction extends ReadTransaction {
130
139
  return results;
131
140
  }
132
141
  async *iterate(startKey, endKey, reverse, limit) {
133
- yield* __classPrivateFieldGet(this, _WriteTransaction_instances, "m", _WriteTransaction_iterate).call(this, super.iterate(startKey, endKey, reverse), this.dataBatch, startKey, endKey, reverse, limit, (committed, toAdd) => (toAdd.length > 0 ? toAdd[0] : committed), vals => vals[0]);
142
+ yield* this.#iterate(super.iterate(startKey, endKey, reverse), this.dataBatch, startKey, endKey, reverse, limit, (committed, toAdd)=>toAdd.length > 0 ? toAdd[0] : committed, (vals)=>vals[0]);
134
143
  }
135
144
  async *iterateIndex(startKey, endKey, reverse, limit) {
136
- yield* __classPrivateFieldGet(this, _WriteTransaction_instances, "m", _WriteTransaction_iterate).call(this, super.iterateIndex(startKey, endKey, reverse), this.indexBatch, startKey, endKey, reverse, limit, (committed, toAdd, toRemove) => {
145
+ yield* this.#iterate(super.iterateIndex(startKey, endKey, reverse), this.indexBatch, startKey, endKey, reverse, limit, (committed, toAdd, toRemove)=>{
137
146
  if (toAdd.length > 0) {
138
147
  merge(committed, toAdd, Buffer.compare);
139
148
  dedupeSortedArray(committed, Buffer.compare);
@@ -142,93 +151,104 @@ export class WriteTransaction extends ReadTransaction {
142
151
  removeAnyOf(committed, toRemove, Buffer.compare);
143
152
  }
144
153
  return committed;
145
- }, vals => vals);
154
+ }, (vals)=>vals);
146
155
  }
147
- async commit() {
156
+ async *#iterate(iterator, batch, startKey, endKey, reverse = false, limit, merge, map) {
148
157
  this.assertIsOpen();
149
- this.close();
150
- await this.channel.sendMessage(LMDBMessageType.BATCH, {
151
- batches: new Map([
152
- [Database.DATA, this.dataBatch],
153
- [Database.INDEX, this.indexBatch],
154
- ]),
155
- });
156
- }
157
- }
158
- _WriteTransaction_instances = new WeakSet(), _WriteTransaction_iterate = async function* _WriteTransaction_iterate(iterator, batch, startKey, endKey, reverse = false, limit, merge, map) {
159
- this.assertIsOpen();
160
- // make a copy of this in case we're running in reverse
161
- const uncommittedEntries = [...batch.addEntries];
162
- // used to check we're in the right order when comparing between a key and uncommittedEntries
163
- let cmpDirection = -1;
164
- if (reverse) {
165
- cmpDirection = 1;
166
- uncommittedEntries.reverse();
167
- }
168
- let uncommittedEntriesIdx = 0;
169
- while (uncommittedEntriesIdx < uncommittedEntries.length) {
170
- const entry = uncommittedEntries[uncommittedEntriesIdx];
171
- // go to the first key in our cache that would be captured by the iterator
172
- if (Buffer.compare(entry[0], startKey) !== cmpDirection) {
173
- break;
174
- }
175
- uncommittedEntriesIdx++;
176
- }
177
- let count = 0;
178
- // helper to early return if we've reached our limit
179
- const checkLimit = typeof limit === 'number' ? () => count < limit : () => true;
180
- for await (const [key, values] of iterator) {
181
- // yield every key that we have cached that's captured by the iterator
182
- while (uncommittedEntriesIdx < uncommittedEntries.length && checkLimit()) {
158
+ // make a copy of this in case we're running in reverse
159
+ const uncommittedEntries = [
160
+ ...batch.addEntries
161
+ ];
162
+ // used to check we're in the right order when comparing between a key and uncommittedEntries
163
+ let cmpDirection = -1;
164
+ if (reverse) {
165
+ cmpDirection = 1;
166
+ uncommittedEntries.reverse();
167
+ }
168
+ let uncommittedEntriesIdx = 0;
169
+ while(uncommittedEntriesIdx < uncommittedEntries.length){
183
170
  const entry = uncommittedEntries[uncommittedEntriesIdx];
184
- if (endKey && Buffer.compare(entry[0], endKey) !== cmpDirection) {
171
+ // go to the first key in our cache that would be captured by the iterator
172
+ if (Buffer.compare(entry[0], startKey) !== cmpDirection) {
185
173
  break;
186
174
  }
187
- if (Buffer.compare(entry[0], key) === cmpDirection) {
188
- count++;
189
- yield [entry[0], map(entry[1])];
175
+ uncommittedEntriesIdx++;
176
+ }
177
+ let count = 0;
178
+ // helper to early return if we've reached our limit
179
+ const checkLimit = typeof limit === 'number' ? ()=>count < limit : ()=>true;
180
+ for await (const [key, values] of iterator){
181
+ // yield every key that we have cached that's captured by the iterator
182
+ while(uncommittedEntriesIdx < uncommittedEntries.length && checkLimit()){
183
+ const entry = uncommittedEntries[uncommittedEntriesIdx];
184
+ if (endKey && Buffer.compare(entry[0], endKey) !== cmpDirection) {
185
+ break;
186
+ }
187
+ if (Buffer.compare(entry[0], key) === cmpDirection) {
188
+ count++;
189
+ yield [
190
+ entry[0],
191
+ map(entry[1])
192
+ ];
193
+ } else {
194
+ break;
195
+ }
196
+ uncommittedEntriesIdx++;
190
197
  }
191
- else {
198
+ if (!checkLimit()) {
192
199
  break;
193
200
  }
194
- uncommittedEntriesIdx++;
195
- }
196
- if (!checkLimit()) {
197
- // we reached the imposed `limit`
198
- break;
199
- }
200
- const toRemove = findInSortedArray(batch.removeEntries, key, singleKeyCmp);
201
- // at this point we've either exhausted all uncommitted entries,
202
- // we reached a key strictly greater/smaller than `key`
203
- // or we found the key itself
204
- // check if it's the key and use the uncommitted value
205
- let toAdd = [];
206
- if (uncommittedEntriesIdx < uncommittedEntries.length &&
207
- Buffer.compare(uncommittedEntries[uncommittedEntriesIdx][0], key) === 0) {
208
- toAdd = uncommittedEntries[uncommittedEntriesIdx][1];
209
- uncommittedEntriesIdx++;
210
- }
211
- if (toRemove && !toRemove[1]) {
212
- // we were told to delete this key entirely
213
- continue;
201
+ const toRemove = findInSortedArray(batch.removeEntries, key, singleKeyCmp);
202
+ // at this point we've either exhausted all uncommitted entries,
203
+ // we reached a key strictly greater/smaller than `key`
204
+ // or we found the key itself
205
+ // check if it's the key and use the uncommitted value
206
+ let toAdd = [];
207
+ if (uncommittedEntriesIdx < uncommittedEntries.length && Buffer.compare(uncommittedEntries[uncommittedEntriesIdx][0], key) === 0) {
208
+ toAdd = uncommittedEntries[uncommittedEntriesIdx][1];
209
+ uncommittedEntriesIdx++;
210
+ }
211
+ if (toRemove && !toRemove[1]) {
212
+ continue;
213
+ } else {
214
+ const mergedValues = merge(values, toAdd, toRemove?.[1] ?? []);
215
+ if (mergedValues) {
216
+ count++;
217
+ yield [
218
+ key,
219
+ mergedValues
220
+ ];
221
+ }
222
+ }
214
223
  }
215
- else {
216
- const mergedValues = merge(values, toAdd, toRemove?.[1] ?? []);
217
- if (mergedValues) {
218
- count++;
219
- yield [key, mergedValues];
224
+ // emit all the uncommitted data that would be captured by this iterator
225
+ while(uncommittedEntriesIdx < uncommittedEntries.length && checkLimit()){
226
+ const entry = uncommittedEntries[uncommittedEntriesIdx];
227
+ if (endKey && Buffer.compare(entry[0], endKey) !== cmpDirection) {
228
+ break;
220
229
  }
230
+ count++;
231
+ yield [
232
+ entry[0],
233
+ map(entry[1])
234
+ ];
235
+ uncommittedEntriesIdx++;
221
236
  }
222
237
  }
223
- // emit all the uncommitted data that would be captured by this iterator
224
- while (uncommittedEntriesIdx < uncommittedEntries.length && checkLimit()) {
225
- const entry = uncommittedEntries[uncommittedEntriesIdx];
226
- if (endKey && Buffer.compare(entry[0], endKey) !== cmpDirection) {
227
- break;
228
- }
229
- count++;
230
- yield [entry[0], map(entry[1])];
231
- uncommittedEntriesIdx++;
238
+ async commit() {
239
+ this.assertIsOpen();
240
+ this.close();
241
+ await this.channel.sendMessage(LMDBMessageType.BATCH, {
242
+ batches: new Map([
243
+ [
244
+ Database.DATA,
245
+ this.dataBatch
246
+ ],
247
+ [
248
+ Database.INDEX,
249
+ this.indexBatch
250
+ ]
251
+ ])
252
+ });
232
253
  }
233
- };
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVfdHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi12Mi93cml0ZV90cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBYyxRQUFRLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLE1BQU0sRUFDTixLQUFLLEVBQ0wsV0FBVyxFQUNYLHFCQUFxQixFQUNyQixZQUFZLEdBQ2IsTUFBTSxZQUFZLENBQUM7QUFFcEIsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGVBQWU7SUFBckQ7OztRQUNFLG9CQUFvQjtRQUNKLGNBQVMsR0FBVTtZQUNqQyxVQUFVLEVBQUUsRUFBRTtZQUNkLGFBQWEsRUFBRSxFQUFFO1NBQ2xCLENBQUM7UUFDYyxlQUFVLEdBQVU7WUFDbEMsVUFBVSxFQUFFLEVBQUU7WUFDZCxhQUFhLEVBQUUsRUFBRTtTQUNsQixDQUFDO0lBa1NKLENBQUM7SUFoU0MsR0FBRyxDQUFDLEdBQWUsRUFBRSxLQUFpQjtRQUNwQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEIsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMzRSxDQUFDO2FBQU0sQ0FBQztZQUNOLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxD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
254
+ }
@@ -1,2 +1 @@
1
1
  export * from './l2_tips_store.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMifQ==
@@ -1,5 +1,5 @@
1
- import { type L2BlockStreamEvent, type L2BlockStreamEventHandler, type L2BlockStreamLocalDataProvider, type L2Tips } from '@aztec/circuit-types';
2
- import { type AztecAsyncKVStore } from '../interfaces/store.js';
1
+ import type { L2BlockStreamEvent, L2BlockStreamEventHandler, L2BlockStreamLocalDataProvider, L2Tips } from '@aztec/stdlib/block';
2
+ import type { AztecAsyncKVStore } from '../interfaces/store.js';
3
3
  /** Stores currently synced L2 tips and unfinalized block hashes. */
4
4
  export declare class L2TipsStore implements L2BlockStreamEventHandler, L2BlockStreamLocalDataProvider {
5
5
  private readonly l2TipsStore;
@@ -1 +1 @@
1
- {"version":3,"file":"l2_tips_store.d.ts","sourceRoot":"","sources":["../../src/stores/l2_tips_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EAEnC,KAAK,MAAM,EACZ,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,oEAAoE;AACpE,qBAAa,WAAY,YAAW,yBAAyB,EAAE,8BAA8B;IAC3F,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAChE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;gBAEvD,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM;IAKhD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIrD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;YAQ3B,QAAQ;IAYT,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB9E"}
1
+ {"version":3,"file":"l2_tips_store.d.ts","sourceRoot":"","sources":["../../src/stores/l2_tips_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,kBAAkB,EAClB,yBAAyB,EACzB,8BAA8B,EAE9B,MAAM,EACP,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,oEAAoE;AACpE,qBAAa,WAAY,YAAW,yBAAyB,EAAE,8BAA8B;IAC3F,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;IAChE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAgC;gBAEvD,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM;IAKhD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIrD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;YAQ3B,QAAQ;IAYT,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB9E"}
@@ -1,8 +1,15 @@
1
- /** Stores currently synced L2 tips and unfinalized block hashes. */
2
- export class L2TipsStore {
3
- constructor(store, namespace) {
4
- this.l2TipsStore = store.openMap([namespace, 'l2_tips'].join('_'));
5
- this.l2BlockHashesStore = store.openMap([namespace, 'l2_block_hashes'].join('_'));
1
+ /** Stores currently synced L2 tips and unfinalized block hashes. */ export class L2TipsStore {
2
+ l2TipsStore;
3
+ l2BlockHashesStore;
4
+ constructor(store, namespace){
5
+ this.l2TipsStore = store.openMap([
6
+ namespace,
7
+ 'l2_tips'
8
+ ].join('_'));
9
+ this.l2BlockHashesStore = store.openMap([
10
+ namespace,
11
+ 'l2_block_hashes'
12
+ ].join('_'));
6
13
  }
7
14
  getL2BlockHash(number) {
8
15
  return this.l2BlockHashesStore.getAsync(number);
@@ -11,24 +18,30 @@ export class L2TipsStore {
11
18
  return {
12
19
  latest: await this.getL2Tip('latest'),
13
20
  finalized: await this.getL2Tip('finalized'),
14
- proven: await this.getL2Tip('proven'),
21
+ proven: await this.getL2Tip('proven')
15
22
  };
16
23
  }
17
24
  async getL2Tip(tag) {
18
25
  const blockNumber = await this.l2TipsStore.getAsync(tag);
19
26
  if (blockNumber === undefined || blockNumber === 0) {
20
- return { number: 0, hash: undefined };
27
+ return {
28
+ number: 0,
29
+ hash: undefined
30
+ };
21
31
  }
22
32
  const blockHash = await this.l2BlockHashesStore.getAsync(blockNumber);
23
33
  if (!blockHash) {
24
34
  throw new Error(`Block hash not found for block number ${blockNumber}`);
25
35
  }
26
- return { number: blockNumber, hash: blockHash };
36
+ return {
37
+ number: blockNumber,
38
+ hash: blockHash
39
+ };
27
40
  }
28
41
  async handleBlockStreamEvent(event) {
29
- switch (event.type) {
42
+ switch(event.type){
30
43
  case 'blocks-added':
31
- for (const block of event.blocks) {
44
+ for (const block of event.blocks){
32
45
  await this.l2BlockHashesStore.set(block.number, (await block.header.hash()).toString());
33
46
  }
34
47
  await this.l2TipsStore.set('latest', event.blocks.at(-1).number);
@@ -41,11 +54,12 @@ export class L2TipsStore {
41
54
  break;
42
55
  case 'chain-finalized':
43
56
  await this.l2TipsStore.set('finalized', event.blockNumber);
44
- for await (const key of this.l2BlockHashesStore.keysAsync({ end: event.blockNumber })) {
57
+ for await (const key of this.l2BlockHashesStore.keysAsync({
58
+ end: event.blockNumber
59
+ })){
45
60
  await this.l2BlockHashesStore.delete(key);
46
61
  }
47
62
  break;
48
63
  }
49
64
  }
50
65
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDJfdGlwc19zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yZXMvbDJfdGlwc19zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxvRUFBb0U7QUFDcEUsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFBWSxLQUF3QixFQUFFLFNBQWlCO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBYztRQUNsQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE9BQU87WUFDTCxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNyQyxTQUFTLEVBQUUsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztZQUMzQyxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBZTtRQUNwQyxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELElBQUksV0FBVyxLQUFLLFNBQVMsSUFBSSxXQUFXLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3hDLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTSxLQUFLLENBQUMsc0JBQXNCLENBQUMsS0FBeUI7UUFDM0QsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkIsS0FBSyxjQUFjO2dCQUNqQixLQUFLLE1BQU0sS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDakMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUMxRixDQUFDO2dCQUNELE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2xFLE1BQU07WUFDUixLQUFLLGNBQWM7Z0JBQ2pCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEQsTUFBTTtZQUNSLEtBQUssY0FBYztnQkFDakIsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUN4RCxNQUFNO1lBQ1IsS0FBSyxpQkFBaUI7Z0JBQ3BCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxLQUFLLEVBQUUsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUN0RixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLENBQUM7Z0JBQ0QsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
package/dest/utils.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { type EthAddress } from '@aztec/foundation/eth-address';
2
- import { type Logger } from '@aztec/foundation/log';
3
- import { type AztecAsyncKVStore, type AztecKVStore } from './interfaces/store.js';
1
+ import type { EthAddress } from '@aztec/foundation/eth-address';
2
+ import type { Logger } from '@aztec/foundation/log';
3
+ import type { AztecAsyncKVStore, AztecKVStore } from './interfaces/store.js';
4
4
  /**
5
5
  * Clears the store if the rollup address does not match the one stored in the database.
6
6
  * This is to prevent data from being accidentally shared between different rollup instances.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGlF;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,YAAY,GAAG,iBAAiB,EACjF,KAAK,EAAE,CAAC,EACR,aAAa,EAAE,UAAU,EACzB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,CAAC,CAqBZ"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG7E;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,YAAY,GAAG,iBAAiB,EACjF,KAAK,EAAE,CAAC,EACR,aAAa,EAAE,UAAU,EACzB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,CAAC,CAAC,CAqBZ"}
package/dest/utils.js CHANGED
@@ -5,24 +5,20 @@ import { isSyncStore } from './interfaces/utils.js';
5
5
  * @param store - The store to check
6
6
  * @param rollupAddress - The ETH address of the rollup contract
7
7
  * @returns A promise that resolves when the store is cleared, or rejects if the rollup address does not match
8
- */
9
- export async function initStoreForRollup(store, rollupAddress, log) {
8
+ */ export async function initStoreForRollup(store, rollupAddress, log) {
10
9
  if (!rollupAddress) {
11
10
  throw new Error('Rollup address is required');
12
11
  }
13
12
  const rollupAddressValue = store.openSingleton('rollupAddress');
14
13
  const rollupAddressString = rollupAddress.toString();
15
- const storedRollupAddressString = isSyncStore(store)
16
- ? rollupAddressValue.get()
17
- : await rollupAddressValue.getAsync();
14
+ const storedRollupAddressString = isSyncStore(store) ? rollupAddressValue.get() : await rollupAddressValue.getAsync();
18
15
  if (typeof storedRollupAddressString !== 'undefined' && storedRollupAddressString !== rollupAddressString) {
19
16
  log?.warn(`Rollup address mismatch. Clearing entire database...`, {
20
17
  expected: rollupAddressString,
21
- found: storedRollupAddressString,
18
+ found: storedRollupAddressString
22
19
  });
23
20
  await store.clear();
24
21
  }
25
22
  await rollupAddressValue.set(rollupAddressString);
26
23
  return store;
27
24
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBEOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQ3RDLEtBQVEsRUFDUixhQUF5QixFQUN6QixHQUFZO0lBRVosSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFxQyxlQUFlLENBQUMsQ0FBQztJQUNwRyxNQUFNLG1CQUFtQixHQUFHLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyRCxNQUFNLHlCQUF5QixHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDbEQsQ0FBQyxDQUFFLGtCQUF5RSxDQUFDLEdBQUcsRUFBRTtRQUNsRixDQUFDLENBQUMsTUFBTyxrQkFBOEUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUVyRyxJQUFJLE9BQU8seUJBQXlCLEtBQUssV0FBVyxJQUFJLHlCQUF5QixLQUFLLG1CQUFtQixFQUFFLENBQUM7UUFDMUcsR0FBRyxFQUFFLElBQUksQ0FBQyxzREFBc0QsRUFBRTtZQUNoRSxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLEtBQUssRUFBRSx5QkFBeUI7U0FDakMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sa0JBQWtCLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDbEQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/kv-store",
3
- "version": "0.76.4",
3
+ "version": "0.77.0-testnet-ignition.17",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/interfaces/index.js",
@@ -13,31 +13,28 @@
13
13
  "scripts": {
14
14
  "build": "yarn clean && tsc -b",
15
15
  "build:dev": "tsc -b --watch",
16
- "clean:cpp": "rm -rf $(git rev-parse --show-toplevel)/barretenberg/cpp/build-pic",
17
16
  "clean": "rm -rf ./dest .tsbuildinfo",
18
17
  "formatting": "run -T prettier --check ./src && run -T eslint ./src",
19
18
  "formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
20
- "test:node": "NODE_NO_WARNINGS=1 mocha --config ./.mocharc.json --reporter dot",
19
+ "test:node": "NODE_NO_WARNINGS=1 mocha --config ./.mocharc.json",
21
20
  "test:browser": "wtr --config ./web-test-runner.config.mjs",
22
- "test": "yarn test:node && yarn test:browser && true",
23
- "generate": "mkdir -p build && cp -v ../../barretenberg/cpp/build-pic/lib/nodejs_module.node build"
21
+ "test": "yarn test:node && yarn test:browser && true"
24
22
  },
25
23
  "inherits": [
26
24
  "../package.common.json",
27
25
  "./package.local.json"
28
26
  ],
29
27
  "dependencies": {
30
- "@aztec/circuit-types": "0.76.4",
31
- "@aztec/ethereum": "0.76.4",
32
- "@aztec/foundation": "0.76.4",
33
- "@aztec/native": "0.76.4",
28
+ "@aztec/ethereum": "0.77.0-testnet-ignition.17",
29
+ "@aztec/foundation": "0.77.0-testnet-ignition.17",
30
+ "@aztec/native": "0.77.0-testnet-ignition.17",
31
+ "@aztec/stdlib": "0.77.0-testnet-ignition.17",
34
32
  "idb": "^8.0.0",
35
33
  "lmdb": "^3.2.0",
36
34
  "msgpackr": "^1.11.2",
37
35
  "ordered-binary": "^1.5.3"
38
36
  },
39
37
  "devDependencies": {
40
- "@aztec/circuits.js": "workspace:^",
41
38
  "@jest/globals": "^29.5.0",
42
39
  "@types/chai": "^5.0.1",
43
40
  "@types/chai-as-promised": "^8.0.1",
@@ -94,7 +91,7 @@
94
91
  ],
95
92
  "testRegex": "./src/.*\\.test\\.(js|mjs|ts)$",
96
93
  "rootDir": "./src",
97
- "testTimeout": 30000,
94
+ "testTimeout": 120000,
98
95
  "setupFiles": [
99
96
  "../../foundation/src/jest/setup.mjs"
100
97
  ]
package/src/config.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { l1ContractAddressesMapping } from '@aztec/ethereum/l1-contract-addresses';
2
2
  import { type ConfigMappingsType, getConfigFromMappings, numberConfigHelper } from '@aztec/foundation/config';
3
- import { type EthAddress } from '@aztec/foundation/eth-address';
3
+ import type { EthAddress } from '@aztec/foundation/eth-address';
4
4
 
5
5
  export type DataStoreConfig = {
6
6
  dataDirectory: string | undefined;
@@ -1,7 +1,7 @@
1
- import { type IDBPDatabase, type IDBPObjectStore } from 'idb';
1
+ import type { IDBPDatabase, IDBPObjectStore } from 'idb';
2
2
 
3
- import { type AztecAsyncArray } from '../interfaces/array.js';
4
- import { type AztecIDBSchema } from './store.js';
3
+ import type { AztecAsyncArray } from '../interfaces/array.js';
4
+ import type { AztecIDBSchema } from './store.js';
5
5
 
6
6
  /**
7
7
  * A persistent array backed by IndexedDB.
@@ -1,6 +1,6 @@
1
1
  import { type Logger, createLogger } from '@aztec/foundation/log';
2
2
 
3
- import { type DataStoreConfig } from '../config.js';
3
+ import type { DataStoreConfig } from '../config.js';
4
4
  import { initStoreForRollup } from '../utils.js';
5
5
  import { AztecIndexedDBStore } from './store.js';
6
6
 
@@ -1,8 +1,8 @@
1
- import { type IDBPDatabase, type IDBPObjectStore } from 'idb';
1
+ import type { IDBPDatabase, IDBPObjectStore } from 'idb';
2
2
 
3
- import { type Key, type Range } from '../interfaces/common.js';
4
- import { type AztecAsyncMultiMap } from '../interfaces/map.js';
5
- import { type AztecIDBSchema } from './store.js';
3
+ import type { Key, Range } from '../interfaces/common.js';
4
+ import type { AztecAsyncMultiMap } from '../interfaces/map.js';
5
+ import type { AztecIDBSchema } from './store.js';
6
6
 
7
7
  /**
8
8
  * A map backed by IndexedDB.
@@ -1,9 +1,9 @@
1
- import { type IDBPDatabase, type IDBPObjectStore } from 'idb';
1
+ import type { IDBPDatabase, IDBPObjectStore } from 'idb';
2
2
 
3
- import { type Key, type Range } from '../interfaces/common.js';
4
- import { type AztecAsyncSet } from '../interfaces/set.js';
3
+ import type { Key, Range } from '../interfaces/common.js';
4
+ import type { AztecAsyncSet } from '../interfaces/set.js';
5
5
  import { IndexedDBAztecMap } from './map.js';
6
- import { type AztecIDBSchema } from './store.js';
6
+ import type { AztecIDBSchema } from './store.js';
7
7
 
8
8
  /**
9
9
  * A set backed by IndexedDB.
@@ -1,7 +1,7 @@
1
- import { type IDBPDatabase, type IDBPObjectStore } from 'idb';
1
+ import type { IDBPDatabase, IDBPObjectStore } from 'idb';
2
2
 
3
- import { type AztecAsyncSingleton } from '../interfaces/singleton.js';
4
- import { type AztecIDBSchema } from './store.js';
3
+ import type { AztecAsyncSingleton } from '../interfaces/singleton.js';
4
+ import type { AztecIDBSchema } from './store.js';
5
5
 
6
6
  /**
7
7
  * Stores a single value in IndexedDB.
@@ -1,14 +1,14 @@
1
- import { type Logger } from '@aztec/foundation/log';
1
+ import type { Logger } from '@aztec/foundation/log';
2
2
 
3
3
  import { type DBSchema, type IDBPDatabase, deleteDB, openDB } from 'idb';
4
4
 
5
- import { type AztecAsyncArray } from '../interfaces/array.js';
6
- import { type Key, type StoreSize } from '../interfaces/common.js';
7
- import { type AztecAsyncCounter } from '../interfaces/counter.js';
8
- import { type AztecAsyncMap, type AztecAsyncMultiMap } from '../interfaces/map.js';
9
- import { type AztecAsyncSet } from '../interfaces/set.js';
10
- import { type AztecAsyncSingleton } from '../interfaces/singleton.js';
11
- import { type AztecAsyncKVStore } from '../interfaces/store.js';
5
+ import type { AztecAsyncArray } from '../interfaces/array.js';
6
+ import type { Key, StoreSize } from '../interfaces/common.js';
7
+ import type { AztecAsyncCounter } from '../interfaces/counter.js';
8
+ import type { AztecAsyncMap, AztecAsyncMultiMap } from '../interfaces/map.js';
9
+ import type { AztecAsyncSet } from '../interfaces/set.js';
10
+ import type { AztecAsyncSingleton } from '../interfaces/singleton.js';
11
+ import type { AztecAsyncKVStore } from '../interfaces/store.js';
12
12
  import { IndexedDBAztecArray } from './array.js';
13
13
  import { IndexedDBAztecMap } from './map.js';
14
14
  import { IndexedDBAztecSet } from './set.js';