@aztec/pxe 0.19.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/config/index.d.ts +1 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +3 -3
- package/dest/contract_data_oracle/index.js +1 -1
- package/dest/contract_tree/index.js +1 -1
- package/dest/database/contracts/contract_artifact_db.d.ts +19 -0
- package/dest/database/contracts/contract_artifact_db.d.ts.map +1 -0
- package/dest/database/contracts/contract_artifact_db.js +2 -0
- package/dest/database/contracts/contract_instance_db.d.ts +18 -0
- package/dest/database/contracts/contract_instance_db.d.ts.map +1 -0
- package/dest/database/contracts/contract_instance_db.js +2 -0
- package/dest/database/index.d.ts +0 -1
- package/dest/database/index.d.ts.map +1 -1
- package/dest/database/index.js +1 -2
- package/dest/database/kv_pxe_database.d.ts +11 -10
- package/dest/database/kv_pxe_database.d.ts.map +1 -1
- package/dest/database/kv_pxe_database.js +139 -130
- package/dest/database/pxe_database.d.ts +8 -17
- package/dest/database/pxe_database.d.ts.map +1 -1
- package/dest/database/pxe_database_test_suite.d.ts.map +1 -1
- package/dest/database/pxe_database_test_suite.js +27 -22
- package/dest/kernel_oracle/index.d.ts +5 -3
- package/dest/kernel_oracle/index.d.ts.map +1 -1
- package/dest/kernel_oracle/index.js +9 -6
- package/dest/kernel_prover/kernel_prover.d.ts +1 -0
- package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
- package/dest/kernel_prover/kernel_prover.js +17 -3
- package/dest/kernel_prover/proving_data_oracle.d.ts +8 -1
- package/dest/kernel_prover/proving_data_oracle.d.ts.map +1 -1
- package/dest/note_processor/note_processor.js +1 -1
- package/dest/note_processor/produce_note_dao.js +1 -1
- package/dest/pxe_http/pxe_http_server.d.ts +0 -23
- package/dest/pxe_http/pxe_http_server.d.ts.map +1 -1
- package/dest/pxe_http/pxe_http_server.js +2 -4
- package/dest/pxe_service/create_pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/create_pxe_service.js +3 -3
- package/dest/pxe_service/pxe_service.d.ts +1 -0
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +24 -6
- package/dest/simulator_oracle/index.d.ts +6 -5
- package/dest/simulator_oracle/index.d.ts.map +1 -1
- package/dest/simulator_oracle/index.js +10 -7
- package/dest/synchronizer/synchronizer.d.ts +1 -1
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +7 -15
- package/package.json +12 -13
- package/dest/database/memory_db.d.ts +0 -59
- package/dest/database/memory_db.d.ts.map +0 -1
- package/dest/database/memory_db.js +0 -170
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
var _KVPxeDatabase_instances, _KVPxeDatabase_synchronizedBlock, _KVPxeDatabase_addresses, _KVPxeDatabase_addressIndex, _KVPxeDatabase_authWitnesses, _KVPxeDatabase_capsules, _KVPxeDatabase_contracts, _KVPxeDatabase_notes,
|
|
1
|
+
var _KVPxeDatabase_instances, _KVPxeDatabase_synchronizedBlock, _KVPxeDatabase_addresses, _KVPxeDatabase_addressIndex, _KVPxeDatabase_authWitnesses, _KVPxeDatabase_capsules, _KVPxeDatabase_contracts, _KVPxeDatabase_notes, _KVPxeDatabase_nullifierToNoteId, _KVPxeDatabase_notesByContract, _KVPxeDatabase_notesByStorageSlot, _KVPxeDatabase_notesByTxHash, _KVPxeDatabase_notesByOwner, _KVPxeDatabase_deferredNotes, _KVPxeDatabase_deferredNotesByContract, _KVPxeDatabase_syncedBlockPerPublicKey, _KVPxeDatabase_contractArtifacts, _KVPxeDatabase_contractInstances, _KVPxeDatabase_db, _KVPxeDatabase_getNotes, _KVPxeDatabase_getCompleteAddress;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
3
|
import { ContractDao, MerkleTreeId } from '@aztec/circuit-types';
|
|
4
|
-
import {
|
|
4
|
+
import { CompleteAddress, Header } from '@aztec/circuits.js';
|
|
5
|
+
import { toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
5
6
|
import { Fr } from '@aztec/foundation/fields';
|
|
7
|
+
import { contractArtifactFromBuffer, contractArtifactToBuffer } from '@aztec/types/abi';
|
|
8
|
+
import { SerializableContractInstance } from '@aztec/types/contracts';
|
|
6
9
|
import { DeferredNoteDao } from './deferred_note_dao.js';
|
|
7
10
|
import { NoteDao } from './note_dao.js';
|
|
8
11
|
/**
|
|
@@ -11,6 +14,7 @@ import { NoteDao } from './note_dao.js';
|
|
|
11
14
|
export class KVPxeDatabase {
|
|
12
15
|
constructor(db) {
|
|
13
16
|
_KVPxeDatabase_instances.add(this);
|
|
17
|
+
this.db = db;
|
|
14
18
|
_KVPxeDatabase_synchronizedBlock.set(this, void 0);
|
|
15
19
|
_KVPxeDatabase_addresses.set(this, void 0);
|
|
16
20
|
_KVPxeDatabase_addressIndex.set(this, void 0);
|
|
@@ -18,7 +22,7 @@ export class KVPxeDatabase {
|
|
|
18
22
|
_KVPxeDatabase_capsules.set(this, void 0);
|
|
19
23
|
_KVPxeDatabase_contracts.set(this, void 0);
|
|
20
24
|
_KVPxeDatabase_notes.set(this, void 0);
|
|
21
|
-
|
|
25
|
+
_KVPxeDatabase_nullifierToNoteId.set(this, void 0);
|
|
22
26
|
_KVPxeDatabase_notesByContract.set(this, void 0);
|
|
23
27
|
_KVPxeDatabase_notesByStorageSlot.set(this, void 0);
|
|
24
28
|
_KVPxeDatabase_notesByTxHash.set(this, void 0);
|
|
@@ -26,23 +30,46 @@ export class KVPxeDatabase {
|
|
|
26
30
|
_KVPxeDatabase_deferredNotes.set(this, void 0);
|
|
27
31
|
_KVPxeDatabase_deferredNotesByContract.set(this, void 0);
|
|
28
32
|
_KVPxeDatabase_syncedBlockPerPublicKey.set(this, void 0);
|
|
33
|
+
_KVPxeDatabase_contractArtifacts.set(this, void 0);
|
|
34
|
+
_KVPxeDatabase_contractInstances.set(this, void 0);
|
|
29
35
|
_KVPxeDatabase_db.set(this, void 0);
|
|
30
36
|
__classPrivateFieldSet(this, _KVPxeDatabase_db, db, "f");
|
|
31
|
-
__classPrivateFieldSet(this, _KVPxeDatabase_addresses, db.
|
|
32
|
-
__classPrivateFieldSet(this, _KVPxeDatabase_addressIndex, db.
|
|
33
|
-
__classPrivateFieldSet(this, _KVPxeDatabase_authWitnesses, db.
|
|
34
|
-
__classPrivateFieldSet(this, _KVPxeDatabase_capsules, db.
|
|
35
|
-
__classPrivateFieldSet(this, _KVPxeDatabase_contracts, db.
|
|
36
|
-
__classPrivateFieldSet(this,
|
|
37
|
-
__classPrivateFieldSet(this,
|
|
38
|
-
__classPrivateFieldSet(this,
|
|
39
|
-
__classPrivateFieldSet(this,
|
|
40
|
-
__classPrivateFieldSet(this,
|
|
41
|
-
__classPrivateFieldSet(this,
|
|
42
|
-
__classPrivateFieldSet(this,
|
|
43
|
-
__classPrivateFieldSet(this,
|
|
44
|
-
__classPrivateFieldSet(this,
|
|
45
|
-
__classPrivateFieldSet(this,
|
|
37
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_addresses, db.openArray('addresses'), "f");
|
|
38
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_addressIndex, db.openMap('address_index'), "f");
|
|
39
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_authWitnesses, db.openMap('auth_witnesses'), "f");
|
|
40
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_capsules, db.openArray('capsules'), "f");
|
|
41
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_contracts, db.openMap('contracts'), "f");
|
|
42
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_contractArtifacts, db.openMap('contract_artifacts'), "f");
|
|
43
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_contractInstances, db.openMap('contracts_instances'), "f");
|
|
44
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByOwner, db.openMultiMap('notes_by_owner'), "f");
|
|
45
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_synchronizedBlock, db.openSingleton('header'), "f");
|
|
46
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_syncedBlockPerPublicKey, db.openMap('synced_block_per_public_key'), "f");
|
|
47
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notes, db.openMap('notes'), "f");
|
|
48
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_nullifierToNoteId, db.openMap('nullifier_to_note'), "f");
|
|
49
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByContract, db.openMultiMap('notes_by_contract'), "f");
|
|
50
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByStorageSlot, db.openMultiMap('notes_by_storage_slot'), "f");
|
|
51
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByTxHash, db.openMultiMap('notes_by_tx_hash'), "f");
|
|
52
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByContract, db.openMultiMap('notes_by_contract'), "f");
|
|
53
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByStorageSlot, db.openMultiMap('notes_by_storage_slot'), "f");
|
|
54
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByTxHash, db.openMultiMap('notes_by_tx_hash'), "f");
|
|
55
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_notesByOwner, db.openMultiMap('notes_by_owner'), "f");
|
|
56
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_deferredNotes, db.openArray('deferred_notes'), "f");
|
|
57
|
+
__classPrivateFieldSet(this, _KVPxeDatabase_deferredNotesByContract, db.openMultiMap('deferred_notes_by_contract'), "f");
|
|
58
|
+
}
|
|
59
|
+
async addContractArtifact(id, contract) {
|
|
60
|
+
await __classPrivateFieldGet(this, _KVPxeDatabase_contractArtifacts, "f").set(id.toString(), contractArtifactToBuffer(contract));
|
|
61
|
+
}
|
|
62
|
+
getContractArtifact(id) {
|
|
63
|
+
const contract = __classPrivateFieldGet(this, _KVPxeDatabase_contractArtifacts, "f").get(id.toString());
|
|
64
|
+
// TODO(@spalladino): AztecMap lies and returns Uint8Arrays instead of Buffers, hence the extra Buffer.from.
|
|
65
|
+
return Promise.resolve(contract && contractArtifactFromBuffer(Buffer.from(contract)));
|
|
66
|
+
}
|
|
67
|
+
async addContractInstance(contract) {
|
|
68
|
+
await __classPrivateFieldGet(this, _KVPxeDatabase_contractInstances, "f").set(contract.address.toString(), new SerializableContractInstance(contract).toBuffer());
|
|
69
|
+
}
|
|
70
|
+
getContractInstance(address) {
|
|
71
|
+
const contract = __classPrivateFieldGet(this, _KVPxeDatabase_contractInstances, "f").get(address.toString());
|
|
72
|
+
return Promise.resolve(contract && SerializableContractInstance.fromBuffer(contract).withAddress(address));
|
|
46
73
|
}
|
|
47
74
|
async addAuthWitness(messageHash, witness) {
|
|
48
75
|
await __classPrivateFieldGet(this, _KVPxeDatabase_authWitnesses, "f").set(messageHash.toString(), witness.map(w => w.toBuffer()));
|
|
@@ -61,17 +88,22 @@ export class KVPxeDatabase {
|
|
|
61
88
|
async addNote(note) {
|
|
62
89
|
await this.addNotes([note]);
|
|
63
90
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
__classPrivateFieldGet(this,
|
|
73
|
-
|
|
74
|
-
|
|
91
|
+
addNotes(notes) {
|
|
92
|
+
return this.db.transaction(() => {
|
|
93
|
+
for (const dao of notes) {
|
|
94
|
+
// store notes by their index in the notes hash tree
|
|
95
|
+
// this provides the uniqueness we need to store individual notes
|
|
96
|
+
// and should also return notes in the order that they were created.
|
|
97
|
+
// Had we stored them by their nullifier, they would be returned in random order
|
|
98
|
+
const noteIndex = toBufferBE(dao.index, 32).toString('hex');
|
|
99
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notes, "f").set(noteIndex, dao.toBuffer());
|
|
100
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_nullifierToNoteId, "f").set(dao.siloedNullifier.toString(), noteIndex);
|
|
101
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByContract, "f").set(dao.contractAddress.toString(), noteIndex);
|
|
102
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByStorageSlot, "f").set(dao.storageSlot.toString(), noteIndex);
|
|
103
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByTxHash, "f").set(dao.txHash.toString(), noteIndex);
|
|
104
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByOwner, "f").set(dao.publicKey.toString(), noteIndex);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
75
107
|
}
|
|
76
108
|
async addDeferredNotes(deferredNotes) {
|
|
77
109
|
const newLength = await __classPrivateFieldGet(this, _KVPxeDatabase_deferredNotes, "f").push(...deferredNotes.map(note => note.toBuffer()));
|
|
@@ -97,11 +129,6 @@ export class KVPxeDatabase {
|
|
|
97
129
|
* Removes all deferred notes for a given contract address.
|
|
98
130
|
* @param contractAddress - the contract address to remove deferred notes for
|
|
99
131
|
* @returns an array of the removed deferred notes
|
|
100
|
-
*
|
|
101
|
-
* @remarks We only remove indices from the deferred notes by contract map, but not the actual deferred notes.
|
|
102
|
-
* This is safe because our only getter for deferred notes is by contract address.
|
|
103
|
-
* If we should add a more general getter, we will need a delete vector for deferred notes as well,
|
|
104
|
-
* analogous to this.#nullifiedNotes.
|
|
105
132
|
*/
|
|
106
133
|
removeDeferredNotesByContract(contractAddress) {
|
|
107
134
|
return __classPrivateFieldGet(this, _KVPxeDatabase_db, "f").transaction(() => {
|
|
@@ -116,110 +143,62 @@ export class KVPxeDatabase {
|
|
|
116
143
|
deferredNotes.push(DeferredNoteDao.fromBuffer(deferredNoteBuffer));
|
|
117
144
|
}
|
|
118
145
|
void __classPrivateFieldGet(this, _KVPxeDatabase_deferredNotesByContract, "f").deleteValue(contractAddress.toString(), index);
|
|
146
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_deferredNotes, "f").setAt(index, null);
|
|
119
147
|
}
|
|
120
148
|
return deferredNotes;
|
|
121
149
|
});
|
|
122
150
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
? (await this.getCompleteAddress(filter.owner))?.publicKey
|
|
126
|
-
: undefined;
|
|
127
|
-
const initialNoteIds = publicKey
|
|
128
|
-
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByOwner, "f").getValues(publicKey.toString())
|
|
129
|
-
: filter.txHash
|
|
130
|
-
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByTxHash, "f").getValues(filter.txHash.toString())
|
|
131
|
-
: filter.contractAddress
|
|
132
|
-
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByContract, "f").getValues(filter.contractAddress.toString())
|
|
133
|
-
: filter.storageSlot
|
|
134
|
-
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByStorageSlot, "f").getValues(filter.storageSlot.toString())
|
|
135
|
-
: undefined;
|
|
136
|
-
if (!initialNoteIds) {
|
|
137
|
-
return Array.from(__classPrivateFieldGet(this, _KVPxeDatabase_instances, "m", _KVPxeDatabase_getAllNonNullifiedNotes).call(this));
|
|
138
|
-
}
|
|
139
|
-
const result = [];
|
|
140
|
-
for (const noteId of initialNoteIds) {
|
|
141
|
-
const serializedNote = __classPrivateFieldGet(this, _KVPxeDatabase_notes, "f").at(noteId);
|
|
142
|
-
if (!serializedNote) {
|
|
143
|
-
continue;
|
|
144
|
-
}
|
|
145
|
-
const note = NoteDao.fromBuffer(serializedNote);
|
|
146
|
-
if (filter.contractAddress && !note.contractAddress.equals(filter.contractAddress)) {
|
|
147
|
-
continue;
|
|
148
|
-
}
|
|
149
|
-
if (filter.txHash && !note.txHash.equals(filter.txHash)) {
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
if (filter.storageSlot && !note.storageSlot.equals(filter.storageSlot)) {
|
|
153
|
-
continue;
|
|
154
|
-
}
|
|
155
|
-
if (publicKey && !note.publicKey.equals(publicKey)) {
|
|
156
|
-
continue;
|
|
157
|
-
}
|
|
158
|
-
result.push(note);
|
|
159
|
-
}
|
|
160
|
-
return result;
|
|
151
|
+
getNotes(filter) {
|
|
152
|
+
return Promise.resolve(__classPrivateFieldGet(this, _KVPxeDatabase_instances, "m", _KVPxeDatabase_getNotes).call(this, filter));
|
|
161
153
|
}
|
|
162
154
|
removeNullifiedNotes(nullifiers, account) {
|
|
163
155
|
if (nullifiers.length === 0) {
|
|
164
156
|
return Promise.resolve([]);
|
|
165
157
|
}
|
|
166
|
-
const nullifierSet = new Set(nullifiers.map(n => n.toString()));
|
|
167
158
|
return __classPrivateFieldGet(this, _KVPxeDatabase_db, "f").transaction(() => {
|
|
168
|
-
const notesIds = __classPrivateFieldGet(this, _KVPxeDatabase_notesByOwner, "f").getValues(account.toString());
|
|
169
159
|
const nullifiedNotes = [];
|
|
170
|
-
for (const
|
|
171
|
-
const
|
|
172
|
-
if (
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
160
|
+
for (const nullifier of nullifiers) {
|
|
161
|
+
const noteIndex = __classPrivateFieldGet(this, _KVPxeDatabase_nullifierToNoteId, "f").get(nullifier.toString());
|
|
162
|
+
if (!noteIndex) {
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
const noteBuffer = noteIndex ? __classPrivateFieldGet(this, _KVPxeDatabase_notes, "f").get(noteIndex) : undefined;
|
|
166
|
+
if (!noteBuffer) {
|
|
167
|
+
// note doesn't exist. Maybe it got nullified already
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
const note = NoteDao.fromBuffer(noteBuffer);
|
|
171
|
+
if (!note.publicKey.equals(account)) {
|
|
172
|
+
// tried to nullify someone else's note
|
|
173
|
+
continue;
|
|
179
174
|
}
|
|
175
|
+
nullifiedNotes.push(note);
|
|
176
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notes, "f").delete(noteIndex);
|
|
177
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByOwner, "f").deleteValue(account.toString(), noteIndex);
|
|
178
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByTxHash, "f").deleteValue(note.txHash.toString(), noteIndex);
|
|
179
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByContract, "f").deleteValue(note.contractAddress.toString(), noteIndex);
|
|
180
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_notesByStorageSlot, "f").deleteValue(note.storageSlot.toString(), noteIndex);
|
|
181
|
+
void __classPrivateFieldGet(this, _KVPxeDatabase_nullifierToNoteId, "f").delete(nullifier.toString());
|
|
180
182
|
}
|
|
181
183
|
return nullifiedNotes;
|
|
182
184
|
});
|
|
183
185
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
if (!roots) {
|
|
187
|
-
throw new Error(`Tree roots not set`);
|
|
188
|
-
}
|
|
189
|
-
return {
|
|
190
|
-
[MerkleTreeId.ARCHIVE]: Fr.fromString(roots[MerkleTreeId.ARCHIVE]),
|
|
191
|
-
[MerkleTreeId.CONTRACT_TREE]: Fr.fromString(roots[MerkleTreeId.CONTRACT_TREE].toString()),
|
|
192
|
-
[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: Fr.fromString(roots[MerkleTreeId.L1_TO_L2_MESSAGE_TREE].toString()),
|
|
193
|
-
[MerkleTreeId.NOTE_HASH_TREE]: Fr.fromString(roots[MerkleTreeId.NOTE_HASH_TREE].toString()),
|
|
194
|
-
[MerkleTreeId.PUBLIC_DATA_TREE]: Fr.fromString(roots[MerkleTreeId.PUBLIC_DATA_TREE].toString()),
|
|
195
|
-
[MerkleTreeId.NULLIFIER_TREE]: Fr.fromString(roots[MerkleTreeId.NULLIFIER_TREE].toString()),
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
async setBlockData(blockNumber, blockHeader) {
|
|
199
|
-
await __classPrivateFieldGet(this, _KVPxeDatabase_synchronizedBlock, "f").set({
|
|
200
|
-
blockNumber,
|
|
201
|
-
globalVariablesHash: blockHeader.globalVariablesHash.toString(),
|
|
202
|
-
roots: {
|
|
203
|
-
[MerkleTreeId.NOTE_HASH_TREE]: blockHeader.noteHashTreeRoot.toString(),
|
|
204
|
-
[MerkleTreeId.NULLIFIER_TREE]: blockHeader.nullifierTreeRoot.toString(),
|
|
205
|
-
[MerkleTreeId.CONTRACT_TREE]: blockHeader.contractTreeRoot.toString(),
|
|
206
|
-
[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: blockHeader.l1ToL2MessageTreeRoot.toString(),
|
|
207
|
-
[MerkleTreeId.ARCHIVE]: blockHeader.archiveRoot.toString(),
|
|
208
|
-
[MerkleTreeId.PUBLIC_DATA_TREE]: blockHeader.publicDataTreeRoot.toString(),
|
|
209
|
-
},
|
|
210
|
-
});
|
|
186
|
+
async setHeader(header) {
|
|
187
|
+
await __classPrivateFieldGet(this, _KVPxeDatabase_synchronizedBlock, "f").set(header.toBuffer());
|
|
211
188
|
}
|
|
212
189
|
getBlockNumber() {
|
|
213
|
-
|
|
190
|
+
const headerBuffer = __classPrivateFieldGet(this, _KVPxeDatabase_synchronizedBlock, "f").get();
|
|
191
|
+
if (!headerBuffer) {
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
return Number(Header.fromBuffer(headerBuffer).globalVariables.blockNumber.toBigInt());
|
|
214
195
|
}
|
|
215
|
-
|
|
216
|
-
const
|
|
217
|
-
if (!
|
|
218
|
-
throw new Error(`
|
|
196
|
+
getHeader() {
|
|
197
|
+
const headerBuffer = __classPrivateFieldGet(this, _KVPxeDatabase_synchronizedBlock, "f").get();
|
|
198
|
+
if (!headerBuffer) {
|
|
199
|
+
throw new Error(`Header not set`);
|
|
219
200
|
}
|
|
220
|
-
|
|
221
|
-
Fr.fromString(value.roots[MerkleTreeId.PUBLIC_DATA_TREE]), Fr.fromString(value.globalVariablesHash));
|
|
222
|
-
return blockHeader;
|
|
201
|
+
return Header.fromBuffer(headerBuffer);
|
|
223
202
|
}
|
|
224
203
|
addCompleteAddress(completeAddress) {
|
|
225
204
|
return __classPrivateFieldGet(this, _KVPxeDatabase_db, "f").transaction(() => {
|
|
@@ -242,12 +221,7 @@ export class KVPxeDatabase {
|
|
|
242
221
|
});
|
|
243
222
|
}
|
|
244
223
|
getCompleteAddress(address) {
|
|
245
|
-
|
|
246
|
-
if (typeof index === 'undefined') {
|
|
247
|
-
return Promise.resolve(undefined);
|
|
248
|
-
}
|
|
249
|
-
const value = __classPrivateFieldGet(this, _KVPxeDatabase_addresses, "f").at(index);
|
|
250
|
-
return Promise.resolve(value ? CompleteAddress.fromBuffer(value) : undefined);
|
|
224
|
+
return Promise.resolve(__classPrivateFieldGet(this, _KVPxeDatabase_instances, "m", _KVPxeDatabase_getCompleteAddress).call(this, address));
|
|
251
225
|
}
|
|
252
226
|
getCompleteAddresses() {
|
|
253
227
|
return Promise.resolve(Array.from(__classPrivateFieldGet(this, _KVPxeDatabase_addresses, "f")).map(v => CompleteAddress.fromBuffer(v)));
|
|
@@ -259,7 +233,7 @@ export class KVPxeDatabase {
|
|
|
259
233
|
return __classPrivateFieldGet(this, _KVPxeDatabase_syncedBlockPerPublicKey, "f").set(publicKey.toString(), blockNumber);
|
|
260
234
|
}
|
|
261
235
|
estimateSize() {
|
|
262
|
-
const notesSize = Array.from(__classPrivateFieldGet(this, _KVPxeDatabase_instances, "m",
|
|
236
|
+
const notesSize = Array.from(__classPrivateFieldGet(this, _KVPxeDatabase_instances, "m", _KVPxeDatabase_getNotes).call(this, {})).reduce((sum, note) => sum + note.getSize(), 0);
|
|
263
237
|
const authWitsSize = Array.from(__classPrivateFieldGet(this, _KVPxeDatabase_authWitnesses, "f").values()).reduce((sum, value) => sum + value.length * Fr.SIZE_IN_BYTES, 0);
|
|
264
238
|
const addressesSize = __classPrivateFieldGet(this, _KVPxeDatabase_addresses, "f").length * CompleteAddress.SIZE_IN_BYTES;
|
|
265
239
|
const treeRootsSize = Object.keys(MerkleTreeId).length * Fr.SIZE_IN_BYTES;
|
|
@@ -276,12 +250,47 @@ export class KVPxeDatabase {
|
|
|
276
250
|
return Promise.resolve(Array.from(__classPrivateFieldGet(this, _KVPxeDatabase_contracts, "f").values()).map(c => ContractDao.fromBuffer(c)));
|
|
277
251
|
}
|
|
278
252
|
}
|
|
279
|
-
_KVPxeDatabase_synchronizedBlock = new WeakMap(), _KVPxeDatabase_addresses = new WeakMap(), _KVPxeDatabase_addressIndex = new WeakMap(), _KVPxeDatabase_authWitnesses = new WeakMap(), _KVPxeDatabase_capsules = new WeakMap(), _KVPxeDatabase_contracts = new WeakMap(), _KVPxeDatabase_notes = new WeakMap(),
|
|
280
|
-
|
|
281
|
-
|
|
253
|
+
_KVPxeDatabase_synchronizedBlock = new WeakMap(), _KVPxeDatabase_addresses = new WeakMap(), _KVPxeDatabase_addressIndex = new WeakMap(), _KVPxeDatabase_authWitnesses = new WeakMap(), _KVPxeDatabase_capsules = new WeakMap(), _KVPxeDatabase_contracts = new WeakMap(), _KVPxeDatabase_notes = new WeakMap(), _KVPxeDatabase_nullifierToNoteId = new WeakMap(), _KVPxeDatabase_notesByContract = new WeakMap(), _KVPxeDatabase_notesByStorageSlot = new WeakMap(), _KVPxeDatabase_notesByTxHash = new WeakMap(), _KVPxeDatabase_notesByOwner = new WeakMap(), _KVPxeDatabase_deferredNotes = new WeakMap(), _KVPxeDatabase_deferredNotesByContract = new WeakMap(), _KVPxeDatabase_syncedBlockPerPublicKey = new WeakMap(), _KVPxeDatabase_contractArtifacts = new WeakMap(), _KVPxeDatabase_contractInstances = new WeakMap(), _KVPxeDatabase_db = new WeakMap(), _KVPxeDatabase_instances = new WeakSet(), _KVPxeDatabase_getNotes = function _KVPxeDatabase_getNotes(filter = {}) {
|
|
254
|
+
const publicKey = filter.owner
|
|
255
|
+
? __classPrivateFieldGet(this, _KVPxeDatabase_instances, "m", _KVPxeDatabase_getCompleteAddress).call(this, filter.owner)?.publicKey
|
|
256
|
+
: undefined;
|
|
257
|
+
const initialNoteIds = publicKey
|
|
258
|
+
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByOwner, "f").getValues(publicKey.toString())
|
|
259
|
+
: filter.txHash
|
|
260
|
+
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByTxHash, "f").getValues(filter.txHash.toString())
|
|
261
|
+
: filter.contractAddress
|
|
262
|
+
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByContract, "f").getValues(filter.contractAddress.toString())
|
|
263
|
+
: filter.storageSlot
|
|
264
|
+
? __classPrivateFieldGet(this, _KVPxeDatabase_notesByStorageSlot, "f").getValues(filter.storageSlot.toString())
|
|
265
|
+
: __classPrivateFieldGet(this, _KVPxeDatabase_notes, "f").keys();
|
|
266
|
+
const result = [];
|
|
267
|
+
for (const noteId of initialNoteIds) {
|
|
268
|
+
const serializedNote = __classPrivateFieldGet(this, _KVPxeDatabase_notes, "f").get(noteId);
|
|
269
|
+
if (!serializedNote) {
|
|
282
270
|
continue;
|
|
283
271
|
}
|
|
284
|
-
|
|
272
|
+
const note = NoteDao.fromBuffer(serializedNote);
|
|
273
|
+
if (filter.contractAddress && !note.contractAddress.equals(filter.contractAddress)) {
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
if (filter.txHash && !note.txHash.equals(filter.txHash)) {
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
if (filter.storageSlot && !note.storageSlot.equals(filter.storageSlot)) {
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
if (publicKey && !note.publicKey.equals(publicKey)) {
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
result.push(note);
|
|
286
|
+
}
|
|
287
|
+
return result;
|
|
288
|
+
}, _KVPxeDatabase_getCompleteAddress = function _KVPxeDatabase_getCompleteAddress(address) {
|
|
289
|
+
const index = __classPrivateFieldGet(this, _KVPxeDatabase_addressIndex, "f").get(address.toString());
|
|
290
|
+
if (typeof index === 'undefined') {
|
|
291
|
+
return undefined;
|
|
285
292
|
}
|
|
293
|
+
const value = __classPrivateFieldGet(this, _KVPxeDatabase_addresses, "f").at(index);
|
|
294
|
+
return value ? CompleteAddress.fromBuffer(value) : undefined;
|
|
286
295
|
};
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfcHhlX2RhdGFiYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFiYXNlL2t2X3B4ZV9kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQ3hGLE9BQU8sRUFBZ0IsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxFQUFFLEVBQVMsTUFBTSwwQkFBMEIsQ0FBQztBQUdyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWF4Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBa0J4QixZQUFZLEVBQWdCOztRQWpCNUIsbURBQXNEO1FBQ3RELDJDQUErQjtRQUMvQiw4Q0FBd0M7UUFDeEMsK0NBQTJDO1FBQzNDLDBDQUFnQztRQUNoQywyQ0FBcUM7UUFDckMsdUNBQTJCO1FBQzNCLGdEQUEyQztRQUMzQyxpREFBZ0Q7UUFDaEQsb0RBQW1EO1FBQ25ELCtDQUE4QztRQUM5Qyw4Q0FBNkM7UUFDN0MsK0NBQW1DO1FBQ25DLHlEQUF3RDtRQUN4RCx5REFBbUQ7UUFDbkQsb0NBQWtCO1FBR2hCLHVCQUFBLElBQUkscUJBQU8sRUFBRSxNQUFBLENBQUM7UUFFZCx1QkFBQSxJQUFJLDRCQUFjLEVBQUUsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQUEsQ0FBQztRQUM5Qyx1QkFBQSxJQUFJLCtCQUFpQixFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFBLENBQUM7UUFFbkQsdUJBQUEsSUFBSSxnQ0FBa0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFBLENBQUM7UUFDckQsdUJBQUEsSUFBSSwyQkFBYSxFQUFFLENBQUMsV0FBVyxDQUFD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
|
|
296
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3ZfcHhlX2RhdGFiYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGFiYXNlL2t2X3B4ZV9kYXRhYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQ3hGLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsRUFBRSxFQUFTLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEYsT0FBTyxFQUErQiw0QkFBNEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRW5HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFvQnhCLFlBQW9CLEVBQWdCOztRQUFoQixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBbkJwQyxtREFBMkM7UUFDM0MsMkNBQStCO1FBQy9CLDhDQUF3QztRQUN4QywrQ0FBMkM7UUFDM0MsMENBQWdDO1FBQ2hDLDJDQUFxQztRQUNyQyx1Q0FBaUM7UUFDakMsbURBQTZDO1FBQzdDLGlEQUFnRDtRQUNoRCxvREFBbUQ7UUFDbkQsK0NBQThDO1FBQzlDLDhDQUE2QztRQUM3QywrQ0FBMEM7UUFDMUMseURBQXdEO1FBQ3hELHlEQUFtRDtRQUNuRCxtREFBNkM7UUFDN0MsbURBQTZDO1FBQzdDLG9DQUFrQjtRQUdoQix1QkFBQSxJQUFJLHFCQUFPLEVBQUUsTUFBQSxDQUFDO1FBRWQsdUJBQUEsSUFBSSw0QkFBYyxFQUFFLENBQUMsU0FB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
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { ContractDatabase,
|
|
2
|
-
import {
|
|
1
|
+
import { ContractDatabase, NoteFilter } from '@aztec/circuit-types';
|
|
2
|
+
import { CompleteAddress, Header, PublicKey } from '@aztec/circuits.js';
|
|
3
3
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
+
import { ContractArtifactDatabase } from './contracts/contract_artifact_db.js';
|
|
6
|
+
import { ContractInstanceDatabase } from './contracts/contract_instance_db.js';
|
|
5
7
|
import { DeferredNoteDao } from './deferred_note_dao.js';
|
|
6
8
|
import { NoteDao } from './note_dao.js';
|
|
7
9
|
/**
|
|
8
10
|
* A database interface that provides methods for retrieving, adding, and removing transactional data related to Aztec
|
|
9
11
|
* addresses, storage slots, and nullifiers.
|
|
10
12
|
*/
|
|
11
|
-
export interface PxeDatabase extends ContractDatabase {
|
|
13
|
+
export interface PxeDatabase extends ContractDatabase, ContractArtifactDatabase, ContractInstanceDatabase {
|
|
12
14
|
/**
|
|
13
15
|
* Add a auth witness to the database.
|
|
14
16
|
* @param messageHash - The message hash.
|
|
@@ -76,15 +78,6 @@ export interface PxeDatabase extends ContractDatabase {
|
|
|
76
78
|
* @returns Removed notes.
|
|
77
79
|
*/
|
|
78
80
|
removeNullifiedNotes(nullifiers: Fr[], account: PublicKey): Promise<NoteDao[]>;
|
|
79
|
-
/**
|
|
80
|
-
* Retrieve the stored Merkle tree roots from the database.
|
|
81
|
-
* The function returns a Promise that resolves to an object containing the MerkleTreeId as keys
|
|
82
|
-
* and their corresponding Fr values as roots. Throws an error if the tree roots are not set in the
|
|
83
|
-
* memory database.
|
|
84
|
-
*
|
|
85
|
-
* @returns An object containing the Merkle tree roots for each merkle tree id.
|
|
86
|
-
*/
|
|
87
|
-
getTreeRoots(): Record<MerkleTreeId, Fr>;
|
|
88
81
|
/**
|
|
89
82
|
* Gets the most recently processed block number.
|
|
90
83
|
* @returns The most recently processed block number or undefined if never synched.
|
|
@@ -101,17 +94,15 @@ export interface PxeDatabase extends ContractDatabase {
|
|
|
101
94
|
* @returns The Block Header.
|
|
102
95
|
* @throws If no block have been processed yet.
|
|
103
96
|
*/
|
|
104
|
-
|
|
97
|
+
getHeader(): Header;
|
|
105
98
|
/**
|
|
106
99
|
* Set the latest Block Header.
|
|
107
|
-
* This function updates the 'global variables hash' and `tree roots` property of the instance
|
|
108
100
|
* Note that this will overwrite any existing hash or roots in the database.
|
|
109
101
|
*
|
|
110
|
-
* @param
|
|
111
|
-
* @param blockHeader - An object containing the most recent block header.
|
|
102
|
+
* @param header - An object containing the most recent block header.
|
|
112
103
|
* @returns A Promise that resolves when the hash has been successfully updated in the database.
|
|
113
104
|
*/
|
|
114
|
-
|
|
105
|
+
setHeader(header: Header): Promise<void>;
|
|
115
106
|
/**
|
|
116
107
|
* Adds complete address to the database.
|
|
117
108
|
* @param address - The complete address to add.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe_database.d.ts","sourceRoot":"","sources":["../../src/database/pxe_database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"pxe_database.d.ts","sourceRoot":"","sources":["../../src/database/pxe_database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,gBAAgB,EAAE,wBAAwB,EAAE,wBAAwB;IACvG;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9D;;;;OAIG;IACH,cAAc,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;IAE3D;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;OAIG;IACH,UAAU,IAAI,OAAO,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;IAExC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEjD;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;;OAGG;IACH,0BAA0B,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEtF;;;;OAIG;IACH,6BAA6B,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEzF;;;;;;OAMG;IACH,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAE/E;;;OAGG;IACH,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;IAErC;;;;;;;;;;OAUG;IACH,SAAS,IAAI,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/D;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;IAEhF;;;OAGG;IACH,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAEnD;;;;OAIG;IACH,iCAAiC,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/F;;;OAGG;IACH,iCAAiC,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAE5E;;;OAGG;IACH,YAAY,IAAI,MAAM,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe_database_test_suite.d.ts","sourceRoot":"","sources":["../../src/database/pxe_database_test_suite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pxe_database_test_suite.d.ts","sourceRoot":"","sources":["../../src/database/pxe_database_test_suite.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,WAAW,QAkNjE"}
|