@aztec/pxe 0.77.1 → 0.78.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/bin/index.js +1 -1
- package/dest/config/index.d.ts +1 -0
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/entrypoints/client/bundle/index.d.ts +6 -0
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -0
- package/dest/entrypoints/client/bundle/index.js +5 -0
- package/dest/entrypoints/client/bundle/utils.d.ts +16 -0
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -0
- package/dest/entrypoints/client/bundle/utils.js +30 -0
- package/dest/entrypoints/client/lazy/index.d.ts +6 -0
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -0
- package/dest/entrypoints/client/lazy/index.js +5 -0
- package/dest/entrypoints/client/lazy/utils.d.ts +15 -0
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -0
- package/dest/entrypoints/client/lazy/utils.js +29 -0
- package/dest/entrypoints/client/pxe_creation_options.d.ts +11 -0
- package/dest/entrypoints/client/pxe_creation_options.d.ts.map +1 -0
- package/dest/entrypoints/server/index.d.ts +7 -0
- package/dest/entrypoints/server/index.d.ts.map +1 -0
- package/dest/entrypoints/server/index.js +6 -0
- package/dest/{utils/create_pxe_service.d.ts → entrypoints/server/utils.d.ts} +4 -4
- package/dest/entrypoints/server/utils.d.ts.map +1 -0
- package/dest/{utils/create_pxe_service.js → entrypoints/server/utils.js} +5 -11
- package/dest/kernel_oracle/index.d.ts +2 -1
- package/dest/kernel_oracle/index.d.ts.map +1 -1
- package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
- package/dest/kernel_prover/kernel_prover.js +0 -24
- package/dest/note_decryption_utils/add_public_values_to_payload.d.ts +2 -2
- package/dest/note_decryption_utils/add_public_values_to_payload.d.ts.map +1 -1
- package/dest/note_decryption_utils/add_public_values_to_payload.js +3 -3
- package/dest/{pxe_data_provider → pxe_oracle_interface}/index.d.ts +17 -9
- package/dest/pxe_oracle_interface/index.d.ts.map +1 -0
- package/dest/{pxe_data_provider → pxe_oracle_interface}/index.js +104 -61
- package/dest/pxe_oracle_interface/tagging_utils.d.ts.map +1 -0
- package/dest/pxe_service/error_enriching.d.ts +3 -4
- package/dest/pxe_service/error_enriching.d.ts.map +1 -1
- package/dest/pxe_service/error_enriching.js +4 -4
- package/dest/pxe_service/pxe_service.d.ts +18 -14
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +118 -65
- package/dest/storage/address_data_provider/address_data_provider.d.ts +13 -0
- package/dest/storage/address_data_provider/address_data_provider.d.ts.map +1 -0
- package/dest/storage/address_data_provider/address_data_provider.js +50 -0
- package/dest/storage/address_data_provider/index.d.ts +2 -0
- package/dest/storage/address_data_provider/index.d.ts.map +1 -0
- package/dest/storage/address_data_provider/index.js +1 -0
- package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts +11 -0
- package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.d.ts.map +1 -0
- package/dest/storage/auth_witness_data_provider/auth_witness_data_provider.js +20 -0
- package/dest/storage/auth_witness_data_provider/index.d.ts +2 -0
- package/dest/storage/auth_witness_data_provider/index.d.ts.map +1 -0
- package/dest/storage/auth_witness_data_provider/index.js +1 -0
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +16 -0
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +1 -0
- package/dest/storage/capsule_data_provider/capsule_data_provider.js +57 -0
- package/dest/storage/capsule_data_provider/index.d.ts +2 -0
- package/dest/storage/capsule_data_provider/index.d.ts.map +1 -0
- package/dest/storage/capsule_data_provider/index.js +1 -0
- package/dest/{contract_data_provider → storage/contract_data_provider}/contract_data_provider.d.ts +38 -33
- package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +1 -0
- package/dest/{contract_data_provider → storage/contract_data_provider}/contract_data_provider.js +87 -42
- package/dest/storage/contract_data_provider/index.d.ts.map +1 -0
- package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +1 -0
- package/dest/storage/data_provider.d.ts +4 -0
- package/dest/storage/data_provider.d.ts.map +1 -0
- package/dest/storage/data_provider.js +1 -0
- package/dest/storage/index.d.ts +10 -0
- package/dest/storage/index.d.ts.map +1 -0
- package/dest/storage/index.js +9 -0
- package/dest/storage/note_data_provider/index.d.ts +3 -0
- package/dest/storage/note_data_provider/index.d.ts.map +1 -0
- package/dest/storage/note_data_provider/index.js +2 -0
- package/dest/storage/note_data_provider/note_dao.d.ts.map +1 -0
- package/dest/storage/note_data_provider/note_data_provider.d.ts +20 -0
- package/dest/storage/note_data_provider/note_data_provider.d.ts.map +1 -0
- package/dest/storage/note_data_provider/note_data_provider.js +249 -0
- package/dest/storage/sync_data_provider/index.d.ts +2 -0
- package/dest/storage/sync_data_provider/index.d.ts.map +1 -0
- package/dest/storage/sync_data_provider/index.js +1 -0
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts +12 -0
- package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +1 -0
- package/dest/storage/sync_data_provider/sync_data_provider.js +29 -0
- package/dest/storage/tagging_data_provider/index.d.ts +2 -0
- package/dest/storage/tagging_data_provider/index.d.ts.map +1 -0
- package/dest/storage/tagging_data_provider/index.js +1 -0
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +18 -0
- package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +1 -0
- package/dest/storage/tagging_data_provider/tagging_data_provider.js +65 -0
- package/dest/synchronizer/synchronizer.d.ts +7 -3
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +16 -11
- package/dest/test/pxe_test_suite.d.ts.map +1 -0
- package/dest/{pxe_service/test → test}/pxe_test_suite.js +2 -6
- package/package.json +19 -26
- package/src/bin/index.ts +1 -1
- package/src/config/index.ts +2 -0
- package/src/entrypoints/client/bundle/index.ts +5 -0
- package/src/entrypoints/client/bundle/utils.ts +58 -0
- package/src/entrypoints/client/lazy/index.ts +5 -0
- package/src/entrypoints/client/lazy/utils.ts +53 -0
- package/src/entrypoints/client/pxe_creation_options.ts +7 -0
- package/src/entrypoints/server/index.ts +6 -0
- package/src/{utils/create_pxe_service.ts → entrypoints/server/utils.ts} +7 -18
- package/src/kernel_oracle/index.ts +1 -1
- package/src/kernel_prover/kernel_prover.ts +0 -46
- package/src/note_decryption_utils/add_public_values_to_payload.ts +4 -4
- package/src/{pxe_data_provider → pxe_oracle_interface}/index.ts +128 -96
- package/src/pxe_service/error_enriching.ts +8 -6
- package/src/pxe_service/pxe_service.ts +155 -89
- package/src/storage/address_data_provider/address_data_provider.ts +71 -0
- package/src/storage/address_data_provider/index.ts +1 -0
- package/src/storage/auth_witness_data_provider/auth_witness_data_provider.ts +34 -0
- package/src/storage/auth_witness_data_provider/index.ts +1 -0
- package/src/storage/capsule_data_provider/capsule_data_provider.ts +80 -0
- package/src/storage/capsule_data_provider/index.ts +1 -0
- package/src/{contract_data_provider → storage/contract_data_provider}/contract_data_provider.ts +128 -48
- package/src/storage/data_provider.ts +3 -0
- package/src/storage/index.ts +10 -0
- package/src/storage/note_data_provider/index.ts +2 -0
- package/src/storage/note_data_provider/note_data_provider.ts +345 -0
- package/src/storage/sync_data_provider/index.ts +1 -0
- package/src/storage/sync_data_provider/sync_data_provider.ts +40 -0
- package/src/storage/tagging_data_provider/index.ts +1 -0
- package/src/storage/tagging_data_provider/tagging_data_provider.ts +92 -0
- package/src/synchronizer/synchronizer.ts +15 -10
- package/src/{pxe_service/test → test}/pxe_test_suite.ts +2 -9
- package/dest/contract_data_provider/contract_data_provider.d.ts.map +0 -1
- package/dest/contract_data_provider/index.d.ts.map +0 -1
- package/dest/contract_data_provider/private_functions_tree.d.ts.map +0 -1
- package/dest/database/index.d.ts +0 -3
- package/dest/database/index.d.ts.map +0 -1
- package/dest/database/index.js +0 -2
- package/dest/database/interfaces/contract_artifact_db.d.ts +0 -20
- package/dest/database/interfaces/contract_artifact_db.d.ts.map +0 -1
- package/dest/database/interfaces/contract_artifact_db.js +0 -3
- package/dest/database/interfaces/contract_instance_db.d.ts +0 -20
- package/dest/database/interfaces/contract_instance_db.d.ts.map +0 -1
- package/dest/database/interfaces/contract_instance_db.js +0 -3
- package/dest/database/interfaces/index.d.ts +0 -4
- package/dest/database/interfaces/index.d.ts.map +0 -1
- package/dest/database/interfaces/pxe_database.d.ts +0 -211
- package/dest/database/interfaces/pxe_database.d.ts.map +0 -1
- package/dest/database/interfaces/pxe_database.js +0 -4
- package/dest/database/interfaces/pxe_database_test_suite.d.ts +0 -7
- package/dest/database/interfaces/pxe_database_test_suite.d.ts.map +0 -1
- package/dest/database/interfaces/pxe_database_test_suite.js +0 -557
- package/dest/database/kv_pxe_database.d.ts +0 -58
- package/dest/database/kv_pxe_database.d.ts.map +0 -1
- package/dest/database/kv_pxe_database.js +0 -480
- package/dest/database/note_dao.d.ts.map +0 -1
- package/dest/index.d.ts +0 -9
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -8
- package/dest/pxe_data_provider/index.d.ts.map +0 -1
- package/dest/pxe_data_provider/tagging_utils.d.ts.map +0 -1
- package/dest/pxe_service/test/pxe_test_suite.d.ts.map +0 -1
- package/dest/utils/create_pxe_service.d.ts.map +0 -1
- package/src/database/index.ts +0 -2
- package/src/database/interfaces/contract_artifact_db.ts +0 -20
- package/src/database/interfaces/contract_instance_db.ts +0 -21
- package/src/database/interfaces/index.ts +0 -3
- package/src/database/interfaces/pxe_database.ts +0 -240
- package/src/database/interfaces/pxe_database_test_suite.ts +0 -558
- package/src/database/kv_pxe_database.ts +0 -670
- package/src/index.ts +0 -9
- /package/dest/{database/interfaces/index.js → entrypoints/client/pxe_creation_options.js} +0 -0
- /package/dest/{pxe_data_provider → pxe_oracle_interface}/tagging_utils.d.ts +0 -0
- /package/dest/{pxe_data_provider → pxe_oracle_interface}/tagging_utils.js +0 -0
- /package/dest/{contract_data_provider → storage/contract_data_provider}/index.d.ts +0 -0
- /package/dest/{contract_data_provider → storage/contract_data_provider}/index.js +0 -0
- /package/dest/{contract_data_provider → storage/contract_data_provider}/private_functions_tree.d.ts +0 -0
- /package/dest/{contract_data_provider → storage/contract_data_provider}/private_functions_tree.js +0 -0
- /package/dest/{database → storage/note_data_provider}/note_dao.d.ts +0 -0
- /package/dest/{database → storage/note_data_provider}/note_dao.js +0 -0
- /package/dest/{pxe_service/test → test}/pxe_test_suite.d.ts +0 -0
- /package/src/{pxe_data_provider → pxe_oracle_interface}/tagging_utils.ts +0 -0
- /package/src/{contract_data_provider → storage/contract_data_provider}/index.ts +0 -0
- /package/src/{contract_data_provider → storage/contract_data_provider}/private_functions_tree.ts +0 -0
- /package/src/{database → storage/note_data_provider}/note_dao.ts +0 -0
|
@@ -14,32 +14,41 @@ import { getNonNullifiedL1ToL2MessageWitness } from '@aztec/stdlib/messaging';
|
|
|
14
14
|
import { Note } from '@aztec/stdlib/note';
|
|
15
15
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
16
16
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
17
|
-
import { ContractDataProvider } from '../contract_data_provider/index.js';
|
|
18
|
-
import { NoteDao } from '../database/note_dao.js';
|
|
19
17
|
import { getOrderedNoteItems } from '../note_decryption_utils/add_public_values_to_payload.js';
|
|
18
|
+
import { NoteDao } from '../storage/note_data_provider/note_dao.js';
|
|
20
19
|
import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndexesMap } from './tagging_utils.js';
|
|
21
20
|
/**
|
|
22
21
|
* A data layer that provides and stores information needed for simulating/proving a transaction.
|
|
23
|
-
*/ export class
|
|
24
|
-
db;
|
|
25
|
-
keyStore;
|
|
22
|
+
*/ export class PXEOracleInterface {
|
|
26
23
|
aztecNode;
|
|
24
|
+
keyStore;
|
|
27
25
|
simulationProvider;
|
|
28
26
|
contractDataProvider;
|
|
27
|
+
noteDataProvider;
|
|
28
|
+
capsuleDataProvider;
|
|
29
|
+
syncDataProvider;
|
|
30
|
+
taggingDataProvider;
|
|
31
|
+
addressDataProvider;
|
|
32
|
+
authWitnessDataProvider;
|
|
29
33
|
log;
|
|
30
|
-
constructor(
|
|
31
|
-
this.db = db;
|
|
32
|
-
this.keyStore = keyStore;
|
|
34
|
+
constructor(aztecNode, keyStore, simulationProvider, contractDataProvider, noteDataProvider, capsuleDataProvider, syncDataProvider, taggingDataProvider, addressDataProvider, authWitnessDataProvider, log = createLogger('pxe:pxe_data_manager')){
|
|
33
35
|
this.aztecNode = aztecNode;
|
|
36
|
+
this.keyStore = keyStore;
|
|
34
37
|
this.simulationProvider = simulationProvider;
|
|
35
38
|
this.contractDataProvider = contractDataProvider;
|
|
39
|
+
this.noteDataProvider = noteDataProvider;
|
|
40
|
+
this.capsuleDataProvider = capsuleDataProvider;
|
|
41
|
+
this.syncDataProvider = syncDataProvider;
|
|
42
|
+
this.taggingDataProvider = taggingDataProvider;
|
|
43
|
+
this.addressDataProvider = addressDataProvider;
|
|
44
|
+
this.authWitnessDataProvider = authWitnessDataProvider;
|
|
36
45
|
this.log = log;
|
|
37
46
|
}
|
|
38
47
|
getKeyValidationRequest(pkMHash, contractAddress) {
|
|
39
48
|
return this.keyStore.getKeyValidationRequest(pkMHash, contractAddress);
|
|
40
49
|
}
|
|
41
50
|
async getCompleteAddress(account) {
|
|
42
|
-
const completeAddress = await this.
|
|
51
|
+
const completeAddress = await this.addressDataProvider.getCompleteAddress(account);
|
|
43
52
|
if (!completeAddress) {
|
|
44
53
|
throw new Error(`No public key registered for address ${account}.
|
|
45
54
|
Register it by calling pxe.registerAccount(...).\nSee docs for context: https://docs.aztec.network/developers/reference/debugging/aztecnr-errors#simulation-error-no-public-key-registered-for-address-0x0-register-it-by-calling-pxeregisterrecipient-or-pxeregisteraccount`);
|
|
@@ -47,21 +56,18 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
47
56
|
return completeAddress;
|
|
48
57
|
}
|
|
49
58
|
async getContractInstance(address) {
|
|
50
|
-
const instance = await this.
|
|
59
|
+
const instance = await this.contractDataProvider.getContractInstance(address);
|
|
51
60
|
if (!instance) {
|
|
52
61
|
throw new Error(`No contract instance found for address ${address.toString()}`);
|
|
53
62
|
}
|
|
54
63
|
return instance;
|
|
55
64
|
}
|
|
56
65
|
async getAuthWitness(messageHash) {
|
|
57
|
-
const witness = await this.
|
|
58
|
-
if (!witness) {
|
|
59
|
-
throw new Error(`Unknown auth witness for message hash ${messageHash.toString()}`);
|
|
60
|
-
}
|
|
66
|
+
const witness = await this.authWitnessDataProvider.getAuthWitness(messageHash);
|
|
61
67
|
return witness;
|
|
62
68
|
}
|
|
63
69
|
async getNotes(contractAddress, storageSlot, status, scopes) {
|
|
64
|
-
const noteDaos = await this.
|
|
70
|
+
const noteDaos = await this.noteDataProvider.getNotes({
|
|
65
71
|
contractAddress,
|
|
66
72
|
storageSlot,
|
|
67
73
|
status,
|
|
@@ -176,7 +182,7 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
176
182
|
*
|
|
177
183
|
* @returns A Promise that resolves to a BlockHeader object.
|
|
178
184
|
*/ getBlockHeader() {
|
|
179
|
-
return this.
|
|
185
|
+
return this.syncDataProvider.getBlockHeader();
|
|
180
186
|
}
|
|
181
187
|
/**
|
|
182
188
|
* Fetches the current block number.
|
|
@@ -205,7 +211,7 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
205
211
|
* finally the index specified tag. We will then query the node with this tag for each address in the address book.
|
|
206
212
|
* @returns The full list of the users contact addresses.
|
|
207
213
|
*/ getSenders() {
|
|
208
|
-
return this.
|
|
214
|
+
return this.taggingDataProvider.getSenderAddresses();
|
|
209
215
|
}
|
|
210
216
|
/**
|
|
211
217
|
* Returns the tagging secret for a given sender and recipient pair. For this to work, the ivsk_m of the sender must be known.
|
|
@@ -217,7 +223,7 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
217
223
|
*/ async getIndexedTaggingSecretAsSender(contractAddress, sender, recipient) {
|
|
218
224
|
await this.syncTaggedLogsAsSender(contractAddress, sender, recipient);
|
|
219
225
|
const appTaggingSecret = await this.#calculateAppTaggingSecret(contractAddress, sender, recipient);
|
|
220
|
-
const [index] = await this.
|
|
226
|
+
const [index] = await this.taggingDataProvider.getTaggingSecretsIndexesAsSender([
|
|
221
227
|
appTaggingSecret
|
|
222
228
|
]);
|
|
223
229
|
return new IndexedTaggingSecret(appTaggingSecret, index);
|
|
@@ -237,10 +243,10 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
237
243
|
contractName,
|
|
238
244
|
contractAddress
|
|
239
245
|
});
|
|
240
|
-
const [index] = await this.
|
|
246
|
+
const [index] = await this.taggingDataProvider.getTaggingSecretsIndexesAsSender([
|
|
241
247
|
secret
|
|
242
248
|
]);
|
|
243
|
-
await this.
|
|
249
|
+
await this.taggingDataProvider.setTaggingSecretsIndexesAsSender([
|
|
244
250
|
new IndexedTaggingSecret(secret, index + 1)
|
|
245
251
|
]);
|
|
246
252
|
}
|
|
@@ -270,7 +276,7 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
270
276
|
// We implicitly add all PXE accounts as senders, this helps us decrypt tags on notes that we send to ourselves
|
|
271
277
|
// (recipient = us, sender = us)
|
|
272
278
|
const senders = [
|
|
273
|
-
...await this.
|
|
279
|
+
...await this.taggingDataProvider.getSenderAddresses(),
|
|
274
280
|
...await this.keyStore.getAccounts()
|
|
275
281
|
].filter((address, index, self)=>index === self.findIndex((otherAddress)=>otherAddress.equals(address)));
|
|
276
282
|
const appTaggingSecrets = await Promise.all(senders.map(async (contact)=>{
|
|
@@ -281,7 +287,7 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
281
287
|
contractAddress
|
|
282
288
|
]);
|
|
283
289
|
}));
|
|
284
|
-
const indexes = await this.
|
|
290
|
+
const indexes = await this.taggingDataProvider.getTaggingSecretsIndexesAsRecipient(appTaggingSecrets);
|
|
285
291
|
return appTaggingSecrets.map((secret, i)=>new IndexedTaggingSecret(secret, indexes[i]));
|
|
286
292
|
}
|
|
287
293
|
/**
|
|
@@ -292,7 +298,7 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
292
298
|
* @param recipient - The address of the recipient.
|
|
293
299
|
*/ async syncTaggedLogsAsSender(contractAddress, sender, recipient) {
|
|
294
300
|
const appTaggingSecret = await this.#calculateAppTaggingSecret(contractAddress, sender, recipient);
|
|
295
|
-
const [oldIndex] = await this.
|
|
301
|
+
const [oldIndex] = await this.taggingDataProvider.getTaggingSecretsIndexesAsSender([
|
|
296
302
|
appTaggingSecret
|
|
297
303
|
]);
|
|
298
304
|
// This algorithm works such that:
|
|
@@ -326,7 +332,7 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
326
332
|
}while (numConsecutiveEmptyLogs < MIN_CONSECUTIVE_EMPTY_LOGS)
|
|
327
333
|
const contractName = await this.contractDataProvider.getDebugContractName(contractAddress);
|
|
328
334
|
if (currentIndex !== oldIndex) {
|
|
329
|
-
await this.
|
|
335
|
+
await this.taggingDataProvider.setTaggingSecretsIndexesAsSender([
|
|
330
336
|
new IndexedTaggingSecret(appTaggingSecret, currentIndex)
|
|
331
337
|
]);
|
|
332
338
|
this.log.debug(`Syncing logs for sender ${sender} at contract ${contractName}(${contractAddress})`, {
|
|
@@ -446,7 +452,7 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
446
452
|
// We filter the logs by block number and store them in the map.
|
|
447
453
|
logsMap.set(recipient.toString(), logsForRecipient.filter((log)=>log.blockNumber <= maxBlockNumber));
|
|
448
454
|
// At this point we have processed all the logs for the recipient so we store the new largest indexes in the db.
|
|
449
|
-
await this.
|
|
455
|
+
await this.taggingDataProvider.setTaggingSecretsIndexesAsRecipient(Object.entries(newLargestIndexMapToStore).map(([appTaggingSecret, index])=>new IndexedTaggingSecret(Fr.fromHexString(appTaggingSecret), index)));
|
|
450
456
|
}
|
|
451
457
|
return logsMap;
|
|
452
458
|
}
|
|
@@ -472,7 +478,7 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
472
478
|
if (!excludedIndices.has(scopedLog.txHash.toString())) {
|
|
473
479
|
excludedIndices.set(scopedLog.txHash.toString(), new Set());
|
|
474
480
|
}
|
|
475
|
-
const note = await getOrderedNoteItems(this.
|
|
481
|
+
const note = await getOrderedNoteItems(this.contractDataProvider, payload);
|
|
476
482
|
const plaintext = [
|
|
477
483
|
payload.storageSlot,
|
|
478
484
|
payload.noteTypeId.toField(),
|
|
@@ -509,17 +515,78 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
509
515
|
}
|
|
510
516
|
return;
|
|
511
517
|
}
|
|
512
|
-
// Called when notes are delivered, usually as a result to a call to the process_log contract function
|
|
513
518
|
async deliverNote(contractAddress, storageSlot, nonce, content, noteHash, nullifier, txHash, recipient) {
|
|
514
|
-
|
|
515
|
-
|
|
519
|
+
// We are going to store the new note in the NoteDataProvider, which will let us later return it via `getNotes`.
|
|
520
|
+
// There's two things we need to check before we do this however:
|
|
521
|
+
// - we must make sure the note does actually exist in the note hash tree
|
|
522
|
+
// - we need to check if the note has already been nullified
|
|
523
|
+
//
|
|
524
|
+
// Failing to do either of the above would result in circuits getting either non-existent notes and failing to
|
|
525
|
+
// produce inclusion proofs for them, or getting nullified notes and producing duplicate nullifiers, both of which
|
|
526
|
+
// are catastrophic failure modes.
|
|
527
|
+
//
|
|
528
|
+
// Note that adding a note and removing it is *not* equivalent to never adding it in the first place. A nullifier
|
|
529
|
+
// emitted in a block that comes after note creation might result in the note being de-nullified by a chain reorg,
|
|
530
|
+
// so we must store both the note hash and nullifier block information.
|
|
531
|
+
// We avoid making node queries at 'latest' since we don't want to process notes or nullifiers that only exist ahead
|
|
532
|
+
// in time of the locally synced state.
|
|
533
|
+
// Note that while this technically results in historical queries, we perform it at the latest locally synced block
|
|
534
|
+
// number which *should* be recent enough to be available, even for non-archive nodes.
|
|
535
|
+
const syncedBlockNumber = await this.syncDataProvider.getBlockNumber();
|
|
536
|
+
// TODO (#12559): handle undefined syncedBlockNumber
|
|
537
|
+
// if (syncedBlockNumber === undefined) {
|
|
538
|
+
// throw new Error(`Attempted to deliver a note with an unsynchronized PXE - this should never happen`);
|
|
539
|
+
//}
|
|
540
|
+
// By computing siloed and unique note hashes ourselves we prevent contracts from interfering with the note storage
|
|
541
|
+
// of other contracts, which would constitute a security breach.
|
|
542
|
+
const uniqueNoteHash = await computeUniqueNoteHash(nonce, await siloNoteHash(contractAddress, noteHash));
|
|
543
|
+
const siloedNullifier = await siloNullifier(contractAddress, nullifier);
|
|
544
|
+
// We store notes by their index in the global note hash tree, which has the convenient side effect of validating
|
|
545
|
+
// note existence in said tree.
|
|
546
|
+
const [uniqueNoteHashTreeIndex] = await this.aztecNode.findLeavesIndexes(syncedBlockNumber, MerkleTreeId.NOTE_HASH_TREE, [
|
|
547
|
+
uniqueNoteHash
|
|
548
|
+
]);
|
|
549
|
+
if (uniqueNoteHashTreeIndex === undefined) {
|
|
550
|
+
throw new Error(`Note hash ${noteHash} (uniqued as ${uniqueNoteHash}) is not present on the tree at block ${syncedBlockNumber} (from tx ${txHash})`);
|
|
551
|
+
}
|
|
552
|
+
// TODO (#12550): findLeavesIndexes should probably return an InBlock, same as findNullifiersIndexesWithBlock. This
|
|
553
|
+
// would save us from having to then query the tx receipt in order to get the block hash and number. Note regardless
|
|
554
|
+
// that we're not validating that the note was indeed created in this tx (which would require inspecting the tx
|
|
555
|
+
// effects), so maybe what we really want is an InTx.
|
|
556
|
+
const txReceipt = await this.aztecNode.getTxReceipt(new TxHash(txHash));
|
|
557
|
+
if (txReceipt === undefined) {
|
|
558
|
+
throw new Error(`Failed to fetch tx receipt for tx hash ${txHash} when searching for note hashes`);
|
|
559
|
+
}
|
|
560
|
+
// TODO(#12549): does it make sense to store the recipient's address point instead of just its address?
|
|
561
|
+
const recipientAddressPoint = await recipient.toAddressPoint();
|
|
562
|
+
const noteDao = new NoteDao(new Note(content), contractAddress, storageSlot, nonce, noteHash, siloedNullifier, new TxHash(txHash), txReceipt.blockNumber, txReceipt.blockHash.toString(), uniqueNoteHashTreeIndex, recipientAddressPoint, NoteSelector.empty());
|
|
563
|
+
await this.noteDataProvider.addNotes([
|
|
516
564
|
noteDao
|
|
517
565
|
], recipient);
|
|
518
566
|
this.log.verbose('Added note', {
|
|
519
567
|
contract: noteDao.contractAddress,
|
|
520
568
|
slot: noteDao.storageSlot,
|
|
521
|
-
|
|
569
|
+
noteHash: noteDao.noteHash,
|
|
570
|
+
nullifier: noteDao.siloedNullifier.toString()
|
|
522
571
|
});
|
|
572
|
+
const [nullifierIndex] = await this.aztecNode.findNullifiersIndexesWithBlock(syncedBlockNumber, [
|
|
573
|
+
siloedNullifier
|
|
574
|
+
]);
|
|
575
|
+
if (nullifierIndex !== undefined) {
|
|
576
|
+
const { data: _, ...blockHashAndNum } = nullifierIndex;
|
|
577
|
+
await this.noteDataProvider.removeNullifiedNotes([
|
|
578
|
+
{
|
|
579
|
+
data: siloedNullifier,
|
|
580
|
+
...blockHashAndNum
|
|
581
|
+
}
|
|
582
|
+
], recipientAddressPoint);
|
|
583
|
+
this.log.verbose(`Removed just-added note`, {
|
|
584
|
+
contract: contractAddress,
|
|
585
|
+
slot: storageSlot,
|
|
586
|
+
noteHash: noteHash,
|
|
587
|
+
nullifier: siloedNullifier.toString()
|
|
588
|
+
});
|
|
589
|
+
}
|
|
523
590
|
}
|
|
524
591
|
async getLogByTag(tag) {
|
|
525
592
|
const logs = await this.aztecNode.getLogsByTags([
|
|
@@ -555,7 +622,7 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
555
622
|
contract: contractAddress
|
|
556
623
|
});
|
|
557
624
|
for (const recipient of (await this.keyStore.getAccounts())){
|
|
558
|
-
const currentNotesForRecipient = await this.
|
|
625
|
+
const currentNotesForRecipient = await this.noteDataProvider.getNotes({
|
|
559
626
|
contractAddress,
|
|
560
627
|
owner: recipient
|
|
561
628
|
});
|
|
@@ -571,7 +638,7 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
571
638
|
};
|
|
572
639
|
}
|
|
573
640
|
}).filter((nullifier)=>nullifier !== undefined);
|
|
574
|
-
const nullifiedNotes = await this.
|
|
641
|
+
const nullifiedNotes = await this.noteDataProvider.removeNullifiedNotes(foundNullifiers, await recipient.toAddressPoint());
|
|
575
642
|
nullifiedNotes.forEach((noteDao)=>{
|
|
576
643
|
this.log.verbose(`Removed note for contract ${noteDao.contractAddress} at slot ${noteDao.storageSlot}`, {
|
|
577
644
|
contract: noteDao.contractAddress,
|
|
@@ -581,32 +648,8 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
581
648
|
});
|
|
582
649
|
}
|
|
583
650
|
}
|
|
584
|
-
async produceNoteDao(contractAddress, storageSlot, nonce, content, noteHash, nullifier, txHash, recipient) {
|
|
585
|
-
// We need to validate that the note does indeed exist in the world state to avoid adding notes that are then
|
|
586
|
-
// impossible to prove.
|
|
587
|
-
const receipt = await this.aztecNode.getTxReceipt(new TxHash(txHash));
|
|
588
|
-
if (receipt === undefined) {
|
|
589
|
-
throw new Error(`Failed to fetch tx receipt for tx hash ${txHash} when searching for note hashes`);
|
|
590
|
-
}
|
|
591
|
-
// Siloed and unique hashes are computed by us instead of relying on values sent by the contract to make sure
|
|
592
|
-
// we're not e.g. storing notes that belong to some other contract, which would constitute a security breach.
|
|
593
|
-
const uniqueNoteHash = await computeUniqueNoteHash(nonce, await siloNoteHash(contractAddress, noteHash));
|
|
594
|
-
const siloedNullifier = await siloNullifier(contractAddress, nullifier);
|
|
595
|
-
// We store notes by their index in the global note hash tree, which has the convenient side effect of validating
|
|
596
|
-
// note existence in said tree. Note that while this is technically a historical query, we perform it at the latest
|
|
597
|
-
// locally synced block number which *should* be recent enough to be available. We avoid querying at 'latest' since
|
|
598
|
-
// we want to avoid accidentally processing notes that only exist ahead in time of the locally synced state.
|
|
599
|
-
const syncedBlockNumber = await this.db.getBlockNumber();
|
|
600
|
-
const uniqueNoteHashTreeIndex = (await this.aztecNode.findLeavesIndexes(syncedBlockNumber, MerkleTreeId.NOTE_HASH_TREE, [
|
|
601
|
-
uniqueNoteHash
|
|
602
|
-
]))[0];
|
|
603
|
-
if (uniqueNoteHashTreeIndex === undefined) {
|
|
604
|
-
throw new Error(`Note hash ${noteHash} (uniqued as ${uniqueNoteHash}) is not present on the tree at block ${syncedBlockNumber} (from tx ${txHash})`);
|
|
605
|
-
}
|
|
606
|
-
return new NoteDao(new Note(content), contractAddress, storageSlot, nonce, noteHash, siloedNullifier, new TxHash(txHash), receipt.blockNumber, receipt.blockHash.toString(), uniqueNoteHashTreeIndex, await recipient.toAddressPoint(), NoteSelector.empty());
|
|
607
|
-
}
|
|
608
651
|
async callProcessLog(contractAddress, logPlaintext, txHash, noteHashes, firstNullifier, recipient, simulator) {
|
|
609
|
-
const artifact = await
|
|
652
|
+
const artifact = await this.contractDataProvider.getFunctionArtifactByName(contractAddress, 'process_log');
|
|
610
653
|
if (!artifact) {
|
|
611
654
|
throw new Error(`Mandatory implementation of "process_log" missing in noir contract ${contractAddress.toString()}.`);
|
|
612
655
|
}
|
|
@@ -629,16 +672,16 @@ import { WINDOW_HALF_SIZE, getIndexedTaggingSecretsForTheWindow, getInitialIndex
|
|
|
629
672
|
await (simulator ?? new AcirSimulator(this, this.simulationProvider)).runUnconstrained(execRequest, contractAddress, selector, []);
|
|
630
673
|
}
|
|
631
674
|
storeCapsule(contractAddress, slot, capsule) {
|
|
632
|
-
return this.
|
|
675
|
+
return this.capsuleDataProvider.storeCapsule(contractAddress, slot, capsule);
|
|
633
676
|
}
|
|
634
677
|
loadCapsule(contractAddress, slot) {
|
|
635
|
-
return this.
|
|
678
|
+
return this.capsuleDataProvider.loadCapsule(contractAddress, slot);
|
|
636
679
|
}
|
|
637
680
|
deleteCapsule(contractAddress, slot) {
|
|
638
|
-
return this.
|
|
681
|
+
return this.capsuleDataProvider.deleteCapsule(contractAddress, slot);
|
|
639
682
|
}
|
|
640
683
|
copyCapsule(contractAddress, srcSlot, dstSlot, numEntries) {
|
|
641
|
-
return this.
|
|
684
|
+
return this.capsuleDataProvider.copyCapsule(contractAddress, srcSlot, dstSlot, numEntries);
|
|
642
685
|
}
|
|
643
686
|
}
|
|
644
687
|
function toBoundedVec(array, maxLength) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tagging_utils.d.ts","sourceRoot":"","sources":["../../src/pxe_oracle_interface/tagging_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,wBAAgB,oCAAoC,CAClD,iBAAiB,EAAE;IAAE,gBAAgB,EAAE,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,EAAE,GAC3F,oBAAoB,EAAE,CAQxB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,qBAAqB,EAAE,oBAAoB,EAAE,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAQ3G"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import type { Logger } from '@aztec/foundation/log';
|
|
2
2
|
import { type SimulationError } from '@aztec/stdlib/errors';
|
|
3
|
-
import { ContractDataProvider } from '../contract_data_provider/
|
|
4
|
-
import type { PxeDatabase } from '../database/interfaces/pxe_database.js';
|
|
3
|
+
import type { ContractDataProvider } from '../storage/contract_data_provider/contract_data_provider.js';
|
|
5
4
|
/**
|
|
6
5
|
* Adds contract and function names to a simulation error, if they
|
|
7
6
|
* can be found in the PXE database
|
|
8
7
|
* @param err - The error to enrich.
|
|
9
8
|
*/
|
|
10
|
-
export declare function enrichSimulationError(err: SimulationError,
|
|
11
|
-
export declare function enrichPublicSimulationError(err: SimulationError, contractDataProvider: ContractDataProvider,
|
|
9
|
+
export declare function enrichSimulationError(err: SimulationError, contractDataProvider: ContractDataProvider, logger: Logger): Promise<void>;
|
|
10
|
+
export declare function enrichPublicSimulationError(err: SimulationError, contractDataProvider: ContractDataProvider, logger: Logger): Promise<void>;
|
|
12
11
|
//# sourceMappingURL=error_enriching.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error_enriching.d.ts","sourceRoot":"","sources":["../../src/pxe_service/error_enriching.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,KAAK,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAEvF,OAAO,
|
|
1
|
+
{"version":3,"file":"error_enriching.d.ts","sourceRoot":"","sources":["../../src/pxe_service/error_enriching.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,KAAK,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAEvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAC;AAExG;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,eAAe,EACpB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,MAAM,iBAyCf;AAED,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,eAAe,EACpB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,MAAM,iBAyCf"}
|
|
@@ -8,7 +8,7 @@ import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
|
|
|
8
8
|
* Adds contract and function names to a simulation error, if they
|
|
9
9
|
* can be found in the PXE database
|
|
10
10
|
* @param err - The error to enrich.
|
|
11
|
-
*/ export async function enrichSimulationError(err,
|
|
11
|
+
*/ export async function enrichSimulationError(err, contractDataProvider, logger) {
|
|
12
12
|
// Maps contract addresses to the set of function names that were in error.
|
|
13
13
|
// Map and Set do reference equality for their keys instead of value equality, so we store the string
|
|
14
14
|
// representation to get e.g. different contract address objects with the same address value to match.
|
|
@@ -23,7 +23,7 @@ import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
|
|
|
23
23
|
...mentionedFunctions.entries()
|
|
24
24
|
].map(async ([contractAddress, fnNames])=>{
|
|
25
25
|
const parsedContractAddress = AztecAddress.fromString(contractAddress);
|
|
26
|
-
const contract = await
|
|
26
|
+
const contract = await contractDataProvider.getContract(parsedContractAddress);
|
|
27
27
|
if (contract) {
|
|
28
28
|
err.enrichWithContractName(parsedContractAddress, contract.name);
|
|
29
29
|
for (const fnName of fnNames){
|
|
@@ -39,7 +39,7 @@ import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
|
|
|
39
39
|
}
|
|
40
40
|
}));
|
|
41
41
|
}
|
|
42
|
-
export async function enrichPublicSimulationError(err, contractDataProvider,
|
|
42
|
+
export async function enrichPublicSimulationError(err, contractDataProvider, logger) {
|
|
43
43
|
const callStack = err.getCallStack();
|
|
44
44
|
const originalFailingFunction = callStack[callStack.length - 1];
|
|
45
45
|
// TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Properly fix this.
|
|
@@ -64,6 +64,6 @@ export async function enrichPublicSimulationError(err, contractDataProvider, db,
|
|
|
64
64
|
logger.warn(`Could not resolve noir call stack for ${originalFailingFunction.contractAddress.toString()}:${originalFailingFunction.functionName?.toString() ?? ''}: ${err}`);
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
await enrichSimulationError(err,
|
|
67
|
+
await enrichSimulationError(err, contractDataProvider, logger);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
@@ -2,46 +2,50 @@ import { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
|
|
|
2
2
|
import { Fr, type Point } from '@aztec/foundation/fields';
|
|
3
3
|
import { type Logger } from '@aztec/foundation/log';
|
|
4
4
|
import type { SiblingPath } from '@aztec/foundation/trees';
|
|
5
|
-
import type {
|
|
6
|
-
import type { L2TipsStore } from '@aztec/kv-store/stores';
|
|
5
|
+
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
7
6
|
import { type ProtocolContractsProvider } from '@aztec/protocol-contracts';
|
|
8
7
|
import { type SimulationProvider } from '@aztec/simulator/client';
|
|
9
8
|
import { type AbiDecoded, type ContractArtifact } from '@aztec/stdlib/abi';
|
|
10
9
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
11
10
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
12
11
|
import type { InBlock, L2Block } from '@aztec/stdlib/block';
|
|
13
|
-
import
|
|
12
|
+
import { CompleteAddress, type ContractClassWithId, type ContractInstanceWithAddress, type NodeInfo, type PartialAddress } from '@aztec/stdlib/contract';
|
|
14
13
|
import type { GasFees } from '@aztec/stdlib/gas';
|
|
15
14
|
import type { AztecNode, EventMetadataDefinition, GetContractClassLogsResponse, GetPublicLogsResponse, PXE, PXEInfo, PrivateKernelProver } from '@aztec/stdlib/interfaces/client';
|
|
16
15
|
import type { LogFilter } from '@aztec/stdlib/logs';
|
|
17
16
|
import { type NotesFilter, UniqueNote } from '@aztec/stdlib/note';
|
|
18
17
|
import { PrivateExecutionResult, type Tx, type TxEffect, type TxExecutionRequest, type TxHash, TxProvingResult, type TxReceipt, TxSimulationResult } from '@aztec/stdlib/tx';
|
|
19
18
|
import type { PXEServiceConfig } from '../config/index.js';
|
|
20
|
-
import type { PxeDatabase } from '../database/index.js';
|
|
21
19
|
/**
|
|
22
20
|
* A Private eXecution Environment (PXE) implementation.
|
|
23
21
|
*/
|
|
24
22
|
export declare class PXEService implements PXE {
|
|
25
23
|
#private;
|
|
26
|
-
private keyStore;
|
|
27
24
|
private node;
|
|
28
|
-
private db;
|
|
29
|
-
private proofCreator;
|
|
30
|
-
private protocolContractsProvider;
|
|
31
25
|
private synchronizer;
|
|
26
|
+
private keyStore;
|
|
32
27
|
private contractDataProvider;
|
|
33
|
-
private
|
|
28
|
+
private noteDataProvider;
|
|
29
|
+
private capsuleDataProvider;
|
|
30
|
+
private syncDataProvider;
|
|
31
|
+
private taggingDataProvider;
|
|
32
|
+
private addressDataProvider;
|
|
33
|
+
private authWitnessDataProvider;
|
|
34
34
|
private simulator;
|
|
35
|
-
private log;
|
|
36
35
|
private packageVersion;
|
|
37
36
|
private proverEnabled;
|
|
38
|
-
|
|
37
|
+
private proofCreator;
|
|
38
|
+
private protocolContractsProvider;
|
|
39
|
+
private log;
|
|
40
|
+
private constructor();
|
|
39
41
|
/**
|
|
40
|
-
*
|
|
42
|
+
* Creates an instance of a PXE Service by instantiating all the necessary data providers and services.
|
|
43
|
+
* Also triggers the registration of the protocol contracts and makes sure the provided node
|
|
44
|
+
* can be contacted.
|
|
41
45
|
*
|
|
42
|
-
* @returns A promise that resolves
|
|
46
|
+
* @returns A promise that resolves PXE service is ready to be used.
|
|
43
47
|
*/
|
|
44
|
-
|
|
48
|
+
static create(node: AztecNode, store: AztecAsyncKVStore, proofCreator: PrivateKernelProver, simulationProvider: SimulationProvider, protocolContractsProvider: ProtocolContractsProvider, config: PXEServiceConfig, loggerOrSuffix?: string | Logger): Promise<PXEService>;
|
|
45
49
|
isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean>;
|
|
46
50
|
/** Returns an estimate of the db size in bytes. */
|
|
47
51
|
estimateDbSize(): Promise<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/pxe_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"pxe_service.d.ts","sourceRoot":"","sources":["../../src/pxe_service/pxe_service.ts"],"names":[],"mappings":"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"}
|