@aztec/pxe 0.0.1-commit.03f7ef2 → 0.0.1-commit.1142ef1
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/block_synchronizer/block_synchronizer.d.ts +8 -8
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +15 -20
- package/dest/config/package_info.js +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +25 -22
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +34 -28
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -2
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.js +5 -2
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +4 -4
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +4 -5
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +17 -26
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +14 -39
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +20 -19
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +47 -45
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +4 -4
- package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
- package/dest/contract_function_simulator/proxied_contract_data_source.js +5 -5
- package/dest/debug/pxe_debug_utils.d.ts +6 -6
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
- package/dest/debug/pxe_debug_utils.js +7 -7
- package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +10 -1
- package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +10 -1
- package/dest/entrypoints/pxe_creation_options.d.ts +3 -2
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.d.ts +1 -1
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +11 -7
- package/dest/error_enriching.d.ts +4 -4
- package/dest/error_enriching.d.ts.map +1 -1
- package/dest/error_enriching.js +6 -6
- package/dest/events/event_service.d.ts +7 -7
- package/dest/events/event_service.d.ts.map +1 -1
- package/dest/events/event_service.js +8 -8
- package/dest/events/private_event_filter_validator.d.ts +6 -6
- package/dest/events/private_event_filter_validator.d.ts.map +1 -1
- package/dest/events/private_event_filter_validator.js +4 -4
- package/dest/job_coordinator/job_coordinator.d.ts +74 -0
- package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
- package/dest/job_coordinator/job_coordinator.js +93 -0
- package/dest/logs/log_service.d.ts +14 -31
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +61 -180
- package/dest/notes/note_service.d.ts +7 -7
- package/dest/notes/note_service.d.ts.map +1 -1
- package/dest/notes/note_service.js +14 -14
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +2 -2
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +2 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +3 -4
- package/dest/private_kernel/private_kernel_oracle.d.ts +3 -2
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts +5 -5
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle_impl.js +9 -10
- package/dest/public_storage/public_storage_service.d.ts +4 -4
- package/dest/public_storage/public_storage_service.d.ts.map +1 -1
- package/dest/public_storage/public_storage_service.js +4 -4
- package/dest/pxe.d.ts +11 -9
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +113 -87
- package/dest/storage/address_store/address_store.d.ts +11 -0
- package/dest/storage/address_store/address_store.d.ts.map +1 -0
- package/dest/storage/{address_data_provider/address_data_provider.js → address_store/address_store.js} +1 -1
- package/dest/storage/address_store/index.d.ts +2 -0
- package/dest/storage/address_store/index.d.ts.map +1 -0
- package/dest/storage/address_store/index.js +1 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -0
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -0
- package/dest/storage/{anchor_block_data_provider/anchor_block_data_provider.js → anchor_block_store/anchor_block_store.js} +1 -1
- package/dest/storage/anchor_block_store/index.d.ts +2 -0
- package/dest/storage/anchor_block_store/index.d.ts.map +1 -0
- package/dest/storage/anchor_block_store/index.js +1 -0
- package/dest/storage/{capsule_data_provider/capsule_data_provider.d.ts → capsule_store/capsule_store.d.ts} +2 -2
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -0
- package/dest/storage/{capsule_data_provider/capsule_data_provider.js → capsule_store/capsule_store.js} +1 -1
- package/dest/storage/capsule_store/index.d.ts +2 -0
- package/dest/storage/capsule_store/index.d.ts.map +1 -0
- package/dest/storage/capsule_store/index.js +1 -0
- package/dest/storage/{contract_data_provider/contract_data_provider.d.ts → contract_store/contract_store.d.ts} +4 -3
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -0
- package/dest/storage/{contract_data_provider/contract_data_provider.js → contract_store/contract_store.js} +14 -2
- package/dest/storage/contract_store/index.d.ts +2 -0
- package/dest/storage/contract_store/index.d.ts.map +1 -0
- package/dest/storage/contract_store/index.js +1 -0
- package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.d.ts +1 -1
- package/dest/storage/contract_store/private_functions_tree.d.ts.map +1 -0
- package/dest/storage/index.d.ts +8 -8
- package/dest/storage/index.d.ts.map +1 -1
- package/dest/storage/index.js +7 -7
- package/dest/storage/note_store/index.d.ts +3 -0
- package/dest/storage/note_store/index.d.ts.map +1 -0
- package/dest/storage/note_store/index.js +2 -0
- package/dest/storage/{note_data_provider/note_data_provider.d.ts → note_store/note_store.d.ts} +7 -7
- package/dest/storage/note_store/note_store.d.ts.map +1 -0
- package/dest/storage/{note_data_provider/note_data_provider.js → note_store/note_store.js} +6 -6
- package/dest/storage/private_event_store/private_event_store.d.ts +56 -0
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -0
- package/dest/storage/{private_event_data_provider/private_event_data_provider.js → private_event_store/private_event_store.js} +59 -16
- package/dest/storage/tagging_store/index.d.ts +4 -0
- package/dest/storage/tagging_store/index.d.ts.map +1 -0
- package/dest/storage/tagging_store/index.js +3 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +21 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -0
- package/dest/{tagging/recipient_sync/new_recipient_tagging_data_provider.js → storage/tagging_store/recipient_tagging_store.js} +3 -3
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +14 -0
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -0
- package/dest/storage/tagging_store/sender_address_book_store.js +30 -0
- package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.d.ts → tagging_store/sender_tagging_store.d.ts} +3 -3
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -0
- package/dest/storage/{tagging_data_provider/sender_tagging_data_provider.js → tagging_store/sender_tagging_store.js} +3 -3
- package/dest/tagging/constants.d.ts +2 -2
- package/dest/tagging/constants.d.ts.map +1 -1
- package/dest/tagging/constants.js +10 -3
- package/dest/tagging/index.d.ts +14 -3
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +13 -2
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +3 -3
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +7 -7
- package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.d.ts +3 -4
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.js +8 -23
- package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.d.ts +1 -1
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -0
- package/dest/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.js +2 -2
- package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.d.ts +4 -4
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -0
- package/dest/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.js +3 -3
- package/dest/tree_membership/tree_membership_service.d.ts +4 -4
- package/dest/tree_membership/tree_membership_service.d.ts.map +1 -1
- package/dest/tree_membership/tree_membership_service.js +5 -5
- package/package.json +16 -16
- package/src/block_synchronizer/block_synchronizer.ts +14 -19
- package/src/config/package_info.ts +1 -1
- package/src/contract_function_simulator/contract_function_simulator.ts +57 -48
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +4 -0
- package/src/contract_function_simulator/oracle/private_execution.ts +4 -6
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +52 -80
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +53 -49
- package/src/contract_function_simulator/proxied_contract_data_source.ts +7 -7
- package/src/debug/pxe_debug_utils.ts +6 -6
- package/src/entrypoints/client/bundle/utils.ts +7 -1
- package/src/entrypoints/client/lazy/utils.ts +7 -2
- package/src/entrypoints/pxe_creation_options.ts +2 -1
- package/src/entrypoints/server/utils.ts +11 -15
- package/src/error_enriching.ts +7 -15
- package/src/events/event_service.ts +8 -6
- package/src/events/private_event_filter_validator.ts +5 -5
- package/src/job_coordinator/job_coordinator.ts +149 -0
- package/src/logs/log_service.ts +92 -254
- package/src/notes/note_service.ts +13 -13
- package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +1 -2
- package/src/private_kernel/private_kernel_execution_prover.ts +2 -4
- package/src/private_kernel/private_kernel_oracle.ts +2 -1
- package/src/private_kernel/private_kernel_oracle_impl.ts +8 -14
- package/src/public_storage/public_storage_service.ts +3 -3
- package/src/pxe.ts +154 -106
- package/src/storage/{address_data_provider/address_data_provider.ts → address_store/address_store.ts} +1 -1
- package/src/storage/address_store/index.ts +1 -0
- package/src/storage/{anchor_block_data_provider/anchor_block_data_provider.ts → anchor_block_store/anchor_block_store.ts} +1 -1
- package/src/storage/anchor_block_store/index.ts +1 -0
- package/src/storage/{capsule_data_provider/capsule_data_provider.ts → capsule_store/capsule_store.ts} +1 -1
- package/src/storage/capsule_store/index.ts +1 -0
- package/src/storage/{contract_data_provider/contract_data_provider.ts → contract_store/contract_store.ts} +22 -2
- package/src/storage/contract_store/index.ts +1 -0
- package/src/storage/index.ts +7 -7
- package/src/storage/note_store/index.ts +2 -0
- package/src/storage/{note_data_provider/note_data_provider.ts → note_store/note_store.ts} +7 -7
- package/src/storage/{private_event_data_provider/private_event_data_provider.ts → private_event_store/private_event_store.ts} +72 -18
- package/src/storage/tagging_store/index.ts +3 -0
- package/src/{tagging/recipient_sync/new_recipient_tagging_data_provider.ts → storage/tagging_store/recipient_tagging_store.ts} +3 -3
- package/src/storage/tagging_store/sender_address_book_store.ts +42 -0
- package/src/storage/{tagging_data_provider/sender_tagging_data_provider.ts → tagging_store/sender_tagging_store.ts} +3 -3
- package/src/tagging/constants.ts +10 -3
- package/src/tagging/index.ts +16 -2
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +11 -8
- package/src/tagging/{sync → sender_sync}/sync_sender_tagging_indexes.ts +9 -25
- package/src/tagging/{sync → sender_sync}/utils/get_status_change_of_pending.ts +6 -2
- package/src/tagging/{sync → sender_sync}/utils/load_and_store_new_tagging_indexes.ts +4 -4
- package/src/tree_membership/tree_membership_service.ts +4 -4
- package/dest/storage/address_data_provider/address_data_provider.d.ts +0 -11
- package/dest/storage/address_data_provider/address_data_provider.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.d.ts +0 -2
- package/dest/storage/address_data_provider/index.d.ts.map +0 -1
- package/dest/storage/address_data_provider/index.js +0 -1
- package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts +0 -9
- package/dest/storage/anchor_block_data_provider/anchor_block_data_provider.d.ts.map +0 -1
- package/dest/storage/anchor_block_data_provider/index.d.ts +0 -2
- package/dest/storage/anchor_block_data_provider/index.d.ts.map +0 -1
- package/dest/storage/anchor_block_data_provider/index.js +0 -1
- package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/index.d.ts +0 -2
- package/dest/storage/capsule_data_provider/index.d.ts.map +0 -1
- package/dest/storage/capsule_data_provider/index.js +0 -1
- package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/index.d.ts +0 -2
- package/dest/storage/contract_data_provider/index.d.ts.map +0 -1
- package/dest/storage/contract_data_provider/index.js +0 -1
- package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +0 -1
- package/dest/storage/note_data_provider/index.d.ts +0 -3
- package/dest/storage/note_data_provider/index.d.ts.map +0 -1
- package/dest/storage/note_data_provider/index.js +0 -2
- package/dest/storage/note_data_provider/note_data_provider.d.ts.map +0 -1
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +0 -51
- package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.d.ts +0 -3
- package/dest/storage/tagging_data_provider/index.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/index.js +0 -2
- package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts +0 -31
- package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.d.ts.map +0 -1
- package/dest/storage/tagging_data_provider/recipient_tagging_data_provider.js +0 -65
- package/dest/storage/tagging_data_provider/sender_tagging_data_provider.d.ts.map +0 -1
- package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts +0 -21
- package/dest/tagging/recipient_sync/new_recipient_tagging_data_provider.d.ts.map +0 -1
- package/dest/tagging/sync/sync_sender_tagging_indexes.d.ts.map +0 -1
- package/dest/tagging/sync/utils/get_status_change_of_pending.d.ts.map +0 -1
- package/dest/tagging/sync/utils/load_and_store_new_tagging_indexes.d.ts.map +0 -1
- package/dest/tagging/utils.d.ts +0 -18
- package/dest/tagging/utils.d.ts.map +0 -1
- package/dest/tagging/utils.js +0 -25
- package/src/storage/address_data_provider/index.ts +0 -1
- package/src/storage/anchor_block_data_provider/index.ts +0 -1
- package/src/storage/capsule_data_provider/index.ts +0 -1
- package/src/storage/contract_data_provider/index.ts +0 -1
- package/src/storage/note_data_provider/index.ts +0 -2
- package/src/storage/tagging_data_provider/index.ts +0 -2
- package/src/storage/tagging_data_provider/recipient_tagging_data_provider.ts +0 -86
- package/src/tagging/utils.ts +0 -32
- /package/dest/storage/{contract_data_provider → contract_store}/private_functions_tree.js +0 -0
- /package/src/storage/{contract_data_provider → contract_store}/private_functions_tree.ts +0 -0
|
@@ -24,36 +24,38 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
24
24
|
authWitnesses;
|
|
25
25
|
capsules;
|
|
26
26
|
anchorBlockHeader;
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
contractStore;
|
|
28
|
+
noteStore;
|
|
29
29
|
keyStore;
|
|
30
|
-
|
|
30
|
+
addressStore;
|
|
31
31
|
aztecNode;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
anchorBlockStore;
|
|
33
|
+
recipientTaggingStore;
|
|
34
|
+
senderAddressBookStore;
|
|
35
|
+
capsuleStore;
|
|
36
|
+
privateEventStore;
|
|
37
|
+
jobId;
|
|
37
38
|
log;
|
|
38
39
|
scopes;
|
|
39
40
|
isMisc;
|
|
40
41
|
isUtility;
|
|
41
42
|
aztecNrDebugLog;
|
|
42
|
-
constructor(contractAddress, /** List of transient auth witnesses to be used during this simulation */ authWitnesses, capsules, anchorBlockHeader,
|
|
43
|
+
constructor(contractAddress, /** List of transient auth witnesses to be used during this simulation */ authWitnesses, capsules, anchorBlockHeader, contractStore, noteStore, keyStore, addressStore, aztecNode, anchorBlockStore, recipientTaggingStore, senderAddressBookStore, capsuleStore, privateEventStore, jobId, log = createLogger('simulator:client_view_context'), scopes){
|
|
43
44
|
this.contractAddress = contractAddress;
|
|
44
45
|
this.authWitnesses = authWitnesses;
|
|
45
46
|
this.capsules = capsules;
|
|
46
47
|
this.anchorBlockHeader = anchorBlockHeader;
|
|
47
|
-
this.
|
|
48
|
-
this.
|
|
48
|
+
this.contractStore = contractStore;
|
|
49
|
+
this.noteStore = noteStore;
|
|
49
50
|
this.keyStore = keyStore;
|
|
50
|
-
this.
|
|
51
|
+
this.addressStore = addressStore;
|
|
51
52
|
this.aztecNode = aztecNode;
|
|
52
|
-
this.
|
|
53
|
-
this.
|
|
54
|
-
this.
|
|
55
|
-
this.
|
|
56
|
-
this.
|
|
53
|
+
this.anchorBlockStore = anchorBlockStore;
|
|
54
|
+
this.recipientTaggingStore = recipientTaggingStore;
|
|
55
|
+
this.senderAddressBookStore = senderAddressBookStore;
|
|
56
|
+
this.capsuleStore = capsuleStore;
|
|
57
|
+
this.privateEventStore = privateEventStore;
|
|
58
|
+
this.jobId = jobId;
|
|
57
59
|
this.log = log;
|
|
58
60
|
this.scopes = scopes;
|
|
59
61
|
this.isMisc = true;
|
|
@@ -92,7 +94,7 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
92
94
|
* @param leafValue - The leaf value
|
|
93
95
|
* @returns The index and sibling path concatenated [index, sibling_path]
|
|
94
96
|
*/ utilityGetMembershipWitness(blockNumber, treeId, leafValue) {
|
|
95
|
-
const treeMembershipService = new TreeMembershipService(this.aztecNode, this.
|
|
97
|
+
const treeMembershipService = new TreeMembershipService(this.aztecNode, this.anchorBlockStore);
|
|
96
98
|
return treeMembershipService.getMembershipWitness(blockNumber, treeId, leafValue);
|
|
97
99
|
}
|
|
98
100
|
/**
|
|
@@ -112,7 +114,7 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
112
114
|
* list structure" of leaves and proving that a lower nullifier is pointing to a bigger next value than the nullifier
|
|
113
115
|
* we are trying to prove non-inclusion for.
|
|
114
116
|
*/ async utilityGetLowNullifierMembershipWitness(blockNumber, nullifier) {
|
|
115
|
-
const treeMembershipService = new TreeMembershipService(this.aztecNode, this.
|
|
117
|
+
const treeMembershipService = new TreeMembershipService(this.aztecNode, this.anchorBlockStore);
|
|
116
118
|
return await treeMembershipService.getLowNullifierMembershipWitness(blockNumber, nullifier);
|
|
117
119
|
}
|
|
118
120
|
/**
|
|
@@ -121,7 +123,7 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
121
123
|
* @param leafSlot - The slot of the public data tree to get the witness for.
|
|
122
124
|
* @returns - The witness
|
|
123
125
|
*/ async utilityGetPublicDataWitness(blockNumber, leafSlot) {
|
|
124
|
-
const treeMembershipService = new TreeMembershipService(this.aztecNode, this.
|
|
126
|
+
const treeMembershipService = new TreeMembershipService(this.aztecNode, this.anchorBlockStore);
|
|
125
127
|
return await treeMembershipService.getPublicDataWitness(blockNumber, leafSlot);
|
|
126
128
|
}
|
|
127
129
|
/**
|
|
@@ -129,7 +131,7 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
129
131
|
* @param blockNumber - The number of a block of which to get the block header.
|
|
130
132
|
* @returns Block extracted from a block with block number `blockNumber`.
|
|
131
133
|
*/ async utilityGetBlockHeader(blockNumber) {
|
|
132
|
-
const anchorBlockNumber = (await this.
|
|
134
|
+
const anchorBlockNumber = (await this.anchorBlockStore.getBlockHeader()).getBlockNumber();
|
|
133
135
|
if (blockNumber > anchorBlockNumber) {
|
|
134
136
|
throw new Error(`Block number ${blockNumber} is higher than current block ${anchorBlockNumber}`);
|
|
135
137
|
}
|
|
@@ -145,7 +147,7 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
145
147
|
return this.getCompleteAddress(account);
|
|
146
148
|
}
|
|
147
149
|
async getCompleteAddress(account) {
|
|
148
|
-
const completeAddress = await this.
|
|
150
|
+
const completeAddress = await this.addressStore.getCompleteAddress(account);
|
|
149
151
|
if (!completeAddress) {
|
|
150
152
|
throw new Error(`No public key registered for address ${account}.
|
|
151
153
|
Register it by calling pxe.addAccount(...).\nSee docs for context: https://docs.aztec.network/developers/resources/debugging/aztecnr-errors#simulation-error-no-public-key-registered-for-address-0x0-register-it-by-calling-pxeregisterrecipient-or-pxeregisteraccount`);
|
|
@@ -160,7 +162,7 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
160
162
|
return this.getContractInstance(address);
|
|
161
163
|
}
|
|
162
164
|
async getContractInstance(address) {
|
|
163
|
-
const instance = await this.
|
|
165
|
+
const instance = await this.contractStore.getContractInstance(address);
|
|
164
166
|
if (!instance) {
|
|
165
167
|
throw new Error(`No contract instance found for address ${address.toString()}`);
|
|
166
168
|
}
|
|
@@ -196,7 +198,7 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
196
198
|
* @param status - The status of notes to fetch.
|
|
197
199
|
* @returns Array of note data.
|
|
198
200
|
*/ async utilityGetNotes(owner, storageSlot, numSelects, selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, limit, offset, status) {
|
|
199
|
-
const noteService = new NoteService(this.
|
|
201
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockStore);
|
|
200
202
|
const dbNotes = await noteService.getNotes(this.contractAddress, owner, storageSlot, status, this.scopes);
|
|
201
203
|
return pickNotes(dbNotes, {
|
|
202
204
|
selects: selectByIndexes.slice(0, numSelects).map((index, i)=>({
|
|
@@ -226,19 +228,19 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
226
228
|
* @returns A boolean indicating whether the nullifier exists in the tree or not.
|
|
227
229
|
*/ async utilityCheckNullifierExists(innerNullifier) {
|
|
228
230
|
const nullifier = await siloNullifier(this.contractAddress, innerNullifier);
|
|
229
|
-
const treeMembershipService = new TreeMembershipService(this.aztecNode, this.
|
|
231
|
+
const treeMembershipService = new TreeMembershipService(this.aztecNode, this.anchorBlockStore);
|
|
230
232
|
const index = await treeMembershipService.getNullifierIndex(nullifier);
|
|
231
233
|
return index !== undefined;
|
|
232
234
|
}
|
|
233
235
|
/**
|
|
234
|
-
* Fetches a message from the
|
|
236
|
+
* Fetches a message from the executionStore, given its key.
|
|
235
237
|
* @param contractAddress - Address of a contract by which the message was emitted.
|
|
236
238
|
* @param messageHash - Hash of the message.
|
|
237
239
|
* @param secret - Secret used to compute a nullifier.
|
|
238
240
|
* @dev Contract address and secret are only used to compute the nullifier to get non-nullified messages
|
|
239
241
|
* @returns The l1 to l2 membership witness (index of message in the tree and sibling path).
|
|
240
242
|
*/ async utilityGetL1ToL2MembershipWitness(contractAddress, messageHash, secret) {
|
|
241
|
-
const treeMembershipService = new TreeMembershipService(this.aztecNode, this.
|
|
243
|
+
const treeMembershipService = new TreeMembershipService(this.aztecNode, this.anchorBlockStore);
|
|
242
244
|
const [messageIndex, siblingPath] = await treeMembershipService.getL1ToL2MembershipWitness(contractAddress, messageHash, secret);
|
|
243
245
|
// Assuming messageIndex is what you intended to use for the index in MessageLoadOracleInputs
|
|
244
246
|
return new MessageLoadOracleInputs(messageIndex, siblingPath);
|
|
@@ -251,7 +253,7 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
251
253
|
* @param numberOfElements - Number of elements to read from the starting storage slot.
|
|
252
254
|
*/ async utilityStorageRead(contractAddress, startStorageSlot, blockNumber, numberOfElements) {
|
|
253
255
|
const values = [];
|
|
254
|
-
const publicStorageService = new PublicStorageService(this.
|
|
256
|
+
const publicStorageService = new PublicStorageService(this.anchorBlockStore, this.aztecNode);
|
|
255
257
|
// TODO: why do we serialize these requests? This should probably a single call
|
|
256
258
|
// Privacy considerations?
|
|
257
259
|
for(let i = 0n; i < numberOfElements; i++){
|
|
@@ -270,9 +272,9 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
270
272
|
this.aztecNrDebugLog[levelName](`${applyStringFormatting(message, fields)}`);
|
|
271
273
|
}
|
|
272
274
|
async utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot) {
|
|
273
|
-
const logService = new LogService(this.aztecNode, this.
|
|
275
|
+
const logService = new LogService(this.aztecNode, this.anchorBlockStore, this.keyStore, this.capsuleStore, this.recipientTaggingStore, this.senderAddressBookStore, this.addressStore);
|
|
274
276
|
await logService.syncTaggedLogs(this.contractAddress, pendingTaggedLogArrayBaseSlot, this.scopes);
|
|
275
|
-
const noteService = new NoteService(this.
|
|
277
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockStore);
|
|
276
278
|
await noteService.syncNoteNullifiers(this.contractAddress);
|
|
277
279
|
}
|
|
278
280
|
/**
|
|
@@ -291,19 +293,19 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
291
293
|
}
|
|
292
294
|
// We read all note and event validation requests and process them all concurrently. This makes the process much
|
|
293
295
|
// faster as we don't need to wait for the network round-trip.
|
|
294
|
-
const noteValidationRequests = (await this.
|
|
295
|
-
const eventValidationRequests = (await this.
|
|
296
|
-
const noteService = new NoteService(this.
|
|
296
|
+
const noteValidationRequests = (await this.capsuleStore.readCapsuleArray(contractAddress, noteValidationRequestsArrayBaseSlot)).map(NoteValidationRequest.fromFields);
|
|
297
|
+
const eventValidationRequests = (await this.capsuleStore.readCapsuleArray(contractAddress, eventValidationRequestsArrayBaseSlot)).map(EventValidationRequest.fromFields);
|
|
298
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockStore);
|
|
297
299
|
const noteDeliveries = noteValidationRequests.map((request)=>noteService.deliverNote(request.contractAddress, request.owner, request.storageSlot, request.randomness, request.noteNonce, request.content, request.noteHash, request.nullifier, request.txHash, request.recipient));
|
|
298
|
-
const eventService = new EventService(this.
|
|
299
|
-
const eventDeliveries = eventValidationRequests.map((request)=>eventService.deliverEvent(request.contractAddress, request.eventTypeId, request.serializedEvent, request.eventCommitment, request.txHash, request.recipient));
|
|
300
|
+
const eventService = new EventService(this.anchorBlockStore, this.aztecNode, this.privateEventStore);
|
|
301
|
+
const eventDeliveries = eventValidationRequests.map((request)=>eventService.deliverEvent(request.contractAddress, request.eventTypeId, request.randomness, request.serializedEvent, request.eventCommitment, request.txHash, request.recipient));
|
|
300
302
|
await Promise.all([
|
|
301
303
|
...noteDeliveries,
|
|
302
304
|
...eventDeliveries
|
|
303
305
|
]);
|
|
304
306
|
// Requests are cleared once we're done.
|
|
305
|
-
await this.
|
|
306
|
-
await this.
|
|
307
|
+
await this.capsuleStore.setCapsuleArray(contractAddress, noteValidationRequestsArrayBaseSlot, []);
|
|
308
|
+
await this.capsuleStore.setCapsuleArray(contractAddress, eventValidationRequestsArrayBaseSlot, []);
|
|
307
309
|
}
|
|
308
310
|
async utilityBulkRetrieveLogs(contractAddress, logRetrievalRequestsArrayBaseSlot, logRetrievalResponsesArrayBaseSlot) {
|
|
309
311
|
// TODO(#10727): allow other contracts to process partial notes
|
|
@@ -312,20 +314,20 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
312
314
|
}
|
|
313
315
|
// We read all log retrieval requests and process them all concurrently. This makes the process much faster as we
|
|
314
316
|
// don't need to wait for the network round-trip.
|
|
315
|
-
const logRetrievalRequests = (await this.
|
|
316
|
-
const logService = new LogService(this.aztecNode, this.
|
|
317
|
+
const logRetrievalRequests = (await this.capsuleStore.readCapsuleArray(contractAddress, logRetrievalRequestsArrayBaseSlot)).map(LogRetrievalRequest.fromFields);
|
|
318
|
+
const logService = new LogService(this.aztecNode, this.anchorBlockStore, this.keyStore, this.capsuleStore, this.recipientTaggingStore, this.senderAddressBookStore, this.addressStore);
|
|
317
319
|
const maybeLogRetrievalResponses = await logService.bulkRetrieveLogs(logRetrievalRequests);
|
|
318
320
|
// Requests are cleared once we're done.
|
|
319
|
-
await this.
|
|
321
|
+
await this.capsuleStore.setCapsuleArray(contractAddress, logRetrievalRequestsArrayBaseSlot, []);
|
|
320
322
|
// The responses are stored as Option<LogRetrievalResponse> in a second CapsuleArray.
|
|
321
|
-
await this.
|
|
323
|
+
await this.capsuleStore.setCapsuleArray(contractAddress, logRetrievalResponsesArrayBaseSlot, maybeLogRetrievalResponses.map(LogRetrievalResponse.toSerializedOption));
|
|
322
324
|
}
|
|
323
325
|
utilityStoreCapsule(contractAddress, slot, capsule) {
|
|
324
326
|
if (!contractAddress.equals(this.contractAddress)) {
|
|
325
327
|
// TODO(#10727): instead of this check that this.contractAddress is allowed to access the external DB
|
|
326
328
|
throw new Error(`Contract ${contractAddress} is not allowed to access ${this.contractAddress}'s PXE DB`);
|
|
327
329
|
}
|
|
328
|
-
return this.
|
|
330
|
+
return this.capsuleStore.storeCapsule(this.contractAddress, slot, capsule);
|
|
329
331
|
}
|
|
330
332
|
async utilityLoadCapsule(contractAddress, slot) {
|
|
331
333
|
if (!contractAddress.equals(this.contractAddress)) {
|
|
@@ -333,21 +335,21 @@ import { MessageLoadOracleInputs } from './message_load_oracle_inputs.js';
|
|
|
333
335
|
throw new Error(`Contract ${contractAddress} is not allowed to access ${this.contractAddress}'s PXE DB`);
|
|
334
336
|
}
|
|
335
337
|
return(// TODO(#12425): On the following line, the pertinent capsule gets overshadowed by the transient one. Tackle this.
|
|
336
|
-
this.capsules.find((c)=>c.contractAddress.equals(contractAddress) && c.storageSlot.equals(slot))?.data ?? await this.
|
|
338
|
+
this.capsules.find((c)=>c.contractAddress.equals(contractAddress) && c.storageSlot.equals(slot))?.data ?? await this.capsuleStore.loadCapsule(this.contractAddress, slot));
|
|
337
339
|
}
|
|
338
340
|
utilityDeleteCapsule(contractAddress, slot) {
|
|
339
341
|
if (!contractAddress.equals(this.contractAddress)) {
|
|
340
342
|
// TODO(#10727): instead of this check that this.contractAddress is allowed to access the external DB
|
|
341
343
|
throw new Error(`Contract ${contractAddress} is not allowed to access ${this.contractAddress}'s PXE DB`);
|
|
342
344
|
}
|
|
343
|
-
return this.
|
|
345
|
+
return this.capsuleStore.deleteCapsule(this.contractAddress, slot);
|
|
344
346
|
}
|
|
345
347
|
utilityCopyCapsule(contractAddress, srcSlot, dstSlot, numEntries) {
|
|
346
348
|
if (!contractAddress.equals(this.contractAddress)) {
|
|
347
349
|
// TODO(#10727): instead of this check that this.contractAddress is allowed to access the external DB
|
|
348
350
|
throw new Error(`Contract ${contractAddress} is not allowed to access ${this.contractAddress}'s PXE DB`);
|
|
349
351
|
}
|
|
350
|
-
return this.
|
|
352
|
+
return this.capsuleStore.copyCapsule(this.contractAddress, srcSlot, dstSlot, numEntries);
|
|
351
353
|
}
|
|
352
354
|
// TODO(#11849): consider replacing this oracle with a pure Noir implementation of aes decryption.
|
|
353
355
|
utilityAes128Decrypt(ciphertext, iv, symKey) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ContractOverrides } from '@aztec/stdlib/tx';
|
|
2
|
-
import type {
|
|
3
|
-
export declare class
|
|
4
|
-
static create(
|
|
2
|
+
import type { ContractStore } from '../storage/contract_store/contract_store.js';
|
|
3
|
+
export declare class ProxiedContractStoreFactory {
|
|
4
|
+
static create(contractStore: ContractStore, overrides?: ContractOverrides): ContractStore;
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllZF9jb250cmFjdF9kYXRhX3NvdXJjZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0X2Z1bmN0aW9uX3NpbXVsYXRvci9wcm94aWVkX2NvbnRyYWN0X2RhdGFfc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFMUQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFPakYscUJBQWEsMkJBQTJCO0lBQ3RDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsRUFBRSxpQkFBaUIsaUJBcUV4RTtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxied_contract_data_source.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/proxied_contract_data_source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"proxied_contract_data_source.d.ts","sourceRoot":"","sources":["../../src/contract_function_simulator/proxied_contract_data_source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAOjF,qBAAa,2BAA2B;IACtC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,iBAAiB,iBAqExE;CACF"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { FunctionSelector } from '@aztec/stdlib/abi';
|
|
2
2
|
/*
|
|
3
|
-
* Proxy generator for a
|
|
3
|
+
* Proxy generator for a ContractStore that allows overriding contract instances and artifacts, so
|
|
4
4
|
* the contract function simulator can execute different bytecode on certain addresses. An example use case
|
|
5
5
|
* would be overriding your own account contract so that valid signatures don't have to be provided while simulating.
|
|
6
|
-
*/ export class
|
|
7
|
-
static create(
|
|
6
|
+
*/ export class ProxiedContractStoreFactory {
|
|
7
|
+
static create(contractStore, overrides) {
|
|
8
8
|
if (!overrides) {
|
|
9
|
-
return
|
|
9
|
+
return contractStore;
|
|
10
10
|
}
|
|
11
|
-
return new Proxy(
|
|
11
|
+
return new Proxy(contractStore, {
|
|
12
12
|
get (target, prop) {
|
|
13
13
|
switch(prop){
|
|
14
14
|
case 'getContractInstance':
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { NoteDao, NotesFilter } from '@aztec/stdlib/note';
|
|
2
2
|
import type { PXE } from '../pxe.js';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
3
|
+
import type { ContractStore } from '../storage/contract_store/contract_store.js';
|
|
4
|
+
import type { NoteStore } from '../storage/note_store/note_store.js';
|
|
5
5
|
/**
|
|
6
6
|
* Methods provided by this class might help debugging but must not be used in production.
|
|
7
7
|
* No backwards compatibility or API stability should be expected. Use at your own risk.
|
|
8
8
|
*/
|
|
9
9
|
export declare class PXEDebugUtils {
|
|
10
10
|
#private;
|
|
11
|
-
private
|
|
12
|
-
private
|
|
13
|
-
constructor(
|
|
11
|
+
private contractStore;
|
|
12
|
+
private noteStore;
|
|
13
|
+
constructor(contractStore: ContractStore, noteStore: NoteStore);
|
|
14
14
|
/**
|
|
15
15
|
* Not injected through constructor since they're are co-dependant.
|
|
16
16
|
*/
|
|
@@ -28,4 +28,4 @@ export declare class PXEDebugUtils {
|
|
|
28
28
|
*/
|
|
29
29
|
getNotes(filter: NotesFilter): Promise<NoteDao[]>;
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2RlYnVnX3V0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVidWcvcHhlX2RlYnVnX3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFckU7OztHQUdHO0FBQ0gscUJBQWEsYUFBYTs7SUFJdEIsT0FBTyxDQUFDLGFBQWE7SUFDckIsT0FBTyxDQUFDLFNBQVM7SUFGbkIsWUFDVSxhQUFhLEVBQUUsYUFBYSxFQUM1QixTQUFTLEVBQUUsU0FBUyxFQUMxQjtJQUVKOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLFFBRXJCO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNVLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQVU3RDtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe_debug_utils.d.ts","sourceRoot":"","sources":["../../src/debug/pxe_debug_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"pxe_debug_utils.d.ts","sourceRoot":"","sources":["../../src/debug/pxe_debug_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAErE;;;GAGG;AACH,qBAAa,aAAa;;IAItB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,SAAS;IAFnB,YACU,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EAC1B;IAEJ;;OAEG;IACI,MAAM,CAAC,GAAG,EAAE,GAAG,QAErB;IAED;;;;;;;;;;OAUG;IACU,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAU7D;CACF"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Methods provided by this class might help debugging but must not be used in production.
|
|
3
3
|
* No backwards compatibility or API stability should be expected. Use at your own risk.
|
|
4
4
|
*/ export class PXEDebugUtils {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
contractStore;
|
|
6
|
+
noteStore;
|
|
7
7
|
#pxe;
|
|
8
|
-
constructor(
|
|
9
|
-
this.
|
|
10
|
-
this.
|
|
8
|
+
constructor(contractStore, noteStore){
|
|
9
|
+
this.contractStore = contractStore;
|
|
10
|
+
this.noteStore = noteStore;
|
|
11
11
|
this.#pxe = undefined;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
throw new Error('Cannot getNotes because no PXE is set');
|
|
31
31
|
}
|
|
32
32
|
// We need to manually trigger private state sync to have a guarantee that all the notes are available.
|
|
33
|
-
const call = await this.
|
|
33
|
+
const call = await this.contractStore.getFunctionCall('sync_private_state', [], filter.contractAddress);
|
|
34
34
|
await this.#pxe.simulateUtility(call);
|
|
35
|
-
return this.
|
|
35
|
+
return this.noteStore.getNotes(filter);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
@@ -13,4 +13,4 @@ import type { PXECreationOptions } from '../../pxe_creation_options.js';
|
|
|
13
13
|
* @returns A Promise that resolves to the started PXE instance.
|
|
14
14
|
*/
|
|
15
15
|
export declare function createPXE(aztecNode: AztecNode, config: PXEConfig, options?: PXECreationOptions): Promise<PXE>;
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9jbGllbnQvYnVuZGxlL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXhFOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFzQixTQUFTLENBQzdCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLE9BQU8sR0FBRSxrQkFBb0MsZ0JBcUM5QyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/bundle/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/bundle/utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,kBAAoC,gBAqC9C"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BBPrivateKernelProver } from '@aztec/bb-prover/client';
|
|
1
2
|
import { BBBundlePrivateKernelProver } from '@aztec/bb-prover/client/bundle';
|
|
2
3
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
3
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -28,7 +29,15 @@ import { PXE } from '../../../pxe.js';
|
|
|
28
29
|
const store = options.store ?? await createStore('pxe_data', configWithContracts, storeLogger);
|
|
29
30
|
const simulator = options.simulator ?? new WASMSimulator();
|
|
30
31
|
const proverLogger = loggers.prover ? loggers.prover : createLogger('pxe:bb:wasm:bundle' + (logSuffix ? `:${logSuffix}` : ''));
|
|
31
|
-
|
|
32
|
+
let prover;
|
|
33
|
+
if (options.proverOrOptions instanceof BBPrivateKernelProver) {
|
|
34
|
+
prover = options.proverOrOptions;
|
|
35
|
+
} else {
|
|
36
|
+
prover = new BBBundlePrivateKernelProver(simulator, {
|
|
37
|
+
...options.proverOrOptions,
|
|
38
|
+
logger: proverLogger
|
|
39
|
+
});
|
|
40
|
+
}
|
|
32
41
|
const protocolContractsProvider = new BundledProtocolContractsProvider();
|
|
33
42
|
const pxeLogger = loggers.pxe ? loggers.pxe : createLogger('pxe:service' + (logSuffix ? `:${logSuffix}` : ''));
|
|
34
43
|
const pxe = await PXE.create(aztecNode, store, prover, simulator, protocolContractsProvider, config, pxeLogger);
|
|
@@ -12,4 +12,4 @@ import type { PXECreationOptions } from '../../pxe_creation_options.js';
|
|
|
12
12
|
* @returns A Promise that resolves to the started PXE instance.
|
|
13
13
|
*/
|
|
14
14
|
export declare function createPXE(aztecNode: AztecNode, config: PXEConfig, options?: PXECreationOptions): Promise<PXE>;
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9jbGllbnQvbGF6eS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVqRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RTs7Ozs7Ozs7R0FRRztBQUNILHdCQUFzQixTQUFTLENBQzdCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLE9BQU8sR0FBRSxrQkFBb0MsZ0JBcUM5QyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/lazy/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/lazy/utils.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAExE;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,kBAAoC,gBAqC9C"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BBPrivateKernelProver } from '@aztec/bb-prover/client';
|
|
1
2
|
import { BBLazyPrivateKernelProver } from '@aztec/bb-prover/client/lazy';
|
|
2
3
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
3
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -27,7 +28,15 @@ import { PXE } from '../../../pxe.js';
|
|
|
27
28
|
const store = options.store ?? await createStore('pxe_data', configWithContracts, storeLogger);
|
|
28
29
|
const simulator = options.simulator ?? new WASMSimulator();
|
|
29
30
|
const proverLogger = loggers.prover ? loggers.prover : createLogger('pxe:bb:wasm:bundle' + (logSuffix ? `:${logSuffix}` : ''));
|
|
30
|
-
|
|
31
|
+
let prover;
|
|
32
|
+
if (options.proverOrOptions instanceof BBPrivateKernelProver) {
|
|
33
|
+
prover = options.proverOrOptions;
|
|
34
|
+
} else {
|
|
35
|
+
prover = new BBLazyPrivateKernelProver(simulator, {
|
|
36
|
+
...options.proverOrOptions,
|
|
37
|
+
logger: proverLogger
|
|
38
|
+
});
|
|
39
|
+
}
|
|
31
40
|
const protocolContractsProvider = new LazyProtocolContractsProvider();
|
|
32
41
|
const pxeLogger = loggers.pxe ? loggers.pxe : createLogger('pxe:service' + (logSuffix ? `:${logSuffix}` : ''));
|
|
33
42
|
const pxe = await PXE.create(aztecNode, store, prover, simulator, protocolContractsProvider, config, pxeLogger);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { BBPrivateKernelProverOptions } from '@aztec/bb-prover/client';
|
|
1
2
|
import type { Logger } from '@aztec/foundation/log';
|
|
2
3
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
3
4
|
import type { CircuitSimulator } from '@aztec/simulator/client';
|
|
@@ -9,8 +10,8 @@ export type PXECreationOptions = {
|
|
|
9
10
|
prover?: Logger;
|
|
10
11
|
};
|
|
11
12
|
useLogSuffix?: boolean | string;
|
|
12
|
-
|
|
13
|
+
proverOrOptions?: PrivateKernelProver | BBPrivateKernelProverOptions;
|
|
13
14
|
store?: AztecAsyncKVStore;
|
|
14
15
|
simulator?: CircuitSimulator;
|
|
15
16
|
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlX2NyZWF0aW9uX29wdGlvbnMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbnRyeXBvaW50cy9weGVfY3JlYXRpb25fb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTNFLE1BQU0sTUFBTSxrQkFBa0IsR0FBRztJQUMvQixPQUFPLENBQUMsRUFBRTtRQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUM7SUFDNUQsWUFBWSxDQUFDLEVBQUUsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUNoQyxlQUFlLENBQUMsRUFBRSxtQkFBbUIsR0FBRyw0QkFBNEIsQ0FBQztJQUNyRSxLQUFLLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztJQUMxQixTQUFTLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztDQUM5QixDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe_creation_options.d.ts","sourceRoot":"","sources":["../../src/entrypoints/pxe_creation_options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,
|
|
1
|
+
{"version":3,"file":"pxe_creation_options.d.ts","sourceRoot":"","sources":["../../src/entrypoints/pxe_creation_options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,mBAAmB,GAAG,4BAA4B,CAAC;IACrE,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B,CAAC"}
|
|
@@ -5,4 +5,4 @@ import type { PXECreationOptions } from '../pxe_creation_options.js';
|
|
|
5
5
|
type PXEConfigWithoutDefaults = Omit<PXEConfig, 'l1Contracts' | 'l1ChainId' | 'l2BlockBatchSize' | 'rollupVersion'>;
|
|
6
6
|
export declare function createPXE(aztecNode: AztecNode, config: PXEConfigWithoutDefaults, options?: PXECreationOptions): Promise<PXE>;
|
|
7
7
|
export {};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRyeXBvaW50cy9zZXJ2ZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuQyxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJFLEtBQUssd0JBQXdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLEdBQUcsV0FBVyxHQUFHLGtCQUFrQixHQUFHLGVBQWUsQ0FBQyxDQUFDO0FBRXBILHdCQUFzQixTQUFTLENBQzdCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMsT0FBTyxHQUFFLGtCQUFvQyxnQkFzRDlDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/utils.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,KAAK,wBAAwB,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,WAAW,GAAG,kBAAkB,GAAG,eAAe,CAAC,CAAC;AAEpH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,wBAAwB,EAChC,OAAO,GAAE,kBAAoC,gBAsD9C"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { BBPrivateKernelProver } from '@aztec/bb-prover/client';
|
|
1
2
|
import { BBBundlePrivateKernelProver } from '@aztec/bb-prover/client/bundle';
|
|
2
3
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
3
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { createStore } from '@aztec/kv-store/lmdb-v2';
|
|
4
6
|
import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
|
|
5
7
|
import { MemoryCircuitRecorder, SimulatorRecorderWrapper, WASMSimulator } from '@aztec/simulator/client';
|
|
6
8
|
import { FileCircuitRecorder } from '@aztec/simulator/testing';
|
|
@@ -22,19 +24,21 @@ export async function createPXE(aztecNode, config, options = {
|
|
|
22
24
|
l2BlockBatchSize: 50
|
|
23
25
|
};
|
|
24
26
|
if (!options.store) {
|
|
25
|
-
// TODO once https://github.com/AztecProtocol/aztec-packages/issues/13656 is fixed, we can remove this and always
|
|
26
|
-
// import the lmdb-v2 version
|
|
27
|
-
const { createStore } = await import('@aztec/kv-store/lmdb-v2');
|
|
28
27
|
const storeLogger = loggers.store ? loggers.store : createLogger('pxe:data:lmdb' + (logSuffix ? `:${logSuffix}` : ''));
|
|
29
28
|
options.store = await createStore('pxe_data', PXE_DATA_SCHEMA_VERSION, configWithContracts, storeLogger);
|
|
30
29
|
}
|
|
31
30
|
const proverLogger = loggers.prover ? loggers.prover : createLogger('pxe:bb:native' + (logSuffix ? `:${logSuffix}` : ''));
|
|
32
|
-
|
|
31
|
+
let prover;
|
|
32
|
+
if (options.proverOrOptions instanceof BBPrivateKernelProver) {
|
|
33
|
+
prover = options.proverOrOptions;
|
|
34
|
+
} else {
|
|
35
|
+
prover = new BBBundlePrivateKernelProver(simulator, {
|
|
36
|
+
...options.proverOrOptions,
|
|
37
|
+
logger: proverLogger
|
|
38
|
+
});
|
|
39
|
+
}
|
|
33
40
|
const protocolContractsProvider = new BundledProtocolContractsProvider();
|
|
34
41
|
const pxeLogger = loggers.pxe ? loggers.pxe : createLogger('pxe:service' + (logSuffix ? `:${logSuffix}` : ''));
|
|
35
42
|
const pxe = await PXE.create(aztecNode, options.store, prover, simulator, protocolContractsProvider, configWithContracts, pxeLogger);
|
|
36
43
|
return pxe;
|
|
37
44
|
}
|
|
38
|
-
function createProver(simulator, logger) {
|
|
39
|
-
return new BBBundlePrivateKernelProver(simulator, logger);
|
|
40
|
-
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { Logger } from '@aztec/foundation/log';
|
|
2
2
|
import { type SimulationError } from '@aztec/stdlib/errors';
|
|
3
|
-
import type {
|
|
3
|
+
import type { ContractStore } from './storage/contract_store/contract_store.js';
|
|
4
4
|
/**
|
|
5
5
|
* Adds contract and function names to a simulation error, if they
|
|
6
6
|
* can be found in the PXE database
|
|
7
7
|
* @param err - The error to enrich.
|
|
8
8
|
*/
|
|
9
|
-
export declare function enrichSimulationError(err: SimulationError,
|
|
10
|
-
export declare function enrichPublicSimulationError(err: SimulationError,
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
export declare function enrichSimulationError(err: SimulationError, contractStore: ContractStore, logger: Logger): Promise<void>;
|
|
10
|
+
export declare function enrichPublicSimulationError(err: SimulationError, contractStore: ContractStore, logger: Logger): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JfZW5yaWNoaW5nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXJyb3JfZW5yaWNoaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXBELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBNkIsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RixPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVoRjs7OztHQUlHO0FBQ0gsd0JBQXNCLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFtRDdHO0FBRUQsd0JBQXNCLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkF3Q25IIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error_enriching.d.ts","sourceRoot":"","sources":["../src/error_enriching.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,KAAK,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAEvF,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"error_enriching.d.ts","sourceRoot":"","sources":["../src/error_enriching.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EAAE,KAAK,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAEvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAEhF;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAmD7G;AAED,wBAAsB,2BAA2B,CAAC,GAAG,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,iBAwCnH"}
|
package/dest/error_enriching.js
CHANGED
|
@@ -6,7 +6,7 @@ import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
|
|
|
6
6
|
* Adds contract and function names to a simulation error, if they
|
|
7
7
|
* can be found in the PXE database
|
|
8
8
|
* @param err - The error to enrich.
|
|
9
|
-
*/ export async function enrichSimulationError(err,
|
|
9
|
+
*/ export async function enrichSimulationError(err, contractStore, logger) {
|
|
10
10
|
// Maps contract addresses to the set of function selectors that were in error.
|
|
11
11
|
// Map and Set do reference equality for their keys instead of value equality, so we store the string
|
|
12
12
|
// representation to get e.g. different contract address objects with the same address value to match.
|
|
@@ -24,7 +24,7 @@ import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
|
|
|
24
24
|
...mentionedFunctions.entries()
|
|
25
25
|
].map(async ([contractAddress, fnSelectors])=>{
|
|
26
26
|
const parsedContractAddress = AztecAddress.fromString(contractAddress);
|
|
27
|
-
const contract = await
|
|
27
|
+
const contract = await contractStore.getContract(parsedContractAddress);
|
|
28
28
|
if (contract) {
|
|
29
29
|
err.enrichWithContractName(parsedContractAddress, contract.name);
|
|
30
30
|
// Map from function selector to function name. It uses a stringified key for the same reason as mentionedFunctions.
|
|
@@ -45,13 +45,13 @@ import { isNoirCallStackUnresolved } from '@aztec/stdlib/errors';
|
|
|
45
45
|
}
|
|
46
46
|
}));
|
|
47
47
|
}
|
|
48
|
-
export async function enrichPublicSimulationError(err,
|
|
48
|
+
export async function enrichPublicSimulationError(err, contractStore, logger) {
|
|
49
49
|
const callStack = err.getCallStack();
|
|
50
50
|
const originalFailingFunction = callStack[callStack.length - 1];
|
|
51
51
|
if (!originalFailingFunction) {
|
|
52
52
|
throw new Error(`Original failing function not found when enriching public simulation, missing callstack`);
|
|
53
53
|
}
|
|
54
|
-
const artifact = await
|
|
54
|
+
const artifact = await contractStore.getPublicFunctionArtifact(originalFailingFunction.contractAddress);
|
|
55
55
|
if (!artifact) {
|
|
56
56
|
throw new Error(`Artifact not found when enriching public simulation error. Contract address: ${originalFailingFunction.contractAddress}.`);
|
|
57
57
|
}
|
|
@@ -59,7 +59,7 @@ export async function enrichPublicSimulationError(err, contractDataProvider, log
|
|
|
59
59
|
if (assertionMessage) {
|
|
60
60
|
err.setOriginalMessage(err.getOriginalMessage() + `${assertionMessage}`);
|
|
61
61
|
}
|
|
62
|
-
const debugInfo = await
|
|
62
|
+
const debugInfo = await contractStore.getPublicFunctionDebugMetadata(originalFailingFunction.contractAddress);
|
|
63
63
|
const noirCallStack = err.getNoirCallStack();
|
|
64
64
|
if (debugInfo) {
|
|
65
65
|
if (isNoirCallStackUnresolved(noirCallStack)) {
|
|
@@ -72,6 +72,6 @@ export async function enrichPublicSimulationError(err, contractDataProvider, log
|
|
|
72
72
|
logger.warn(`Could not resolve noir call stack for ${originalFailingFunction.contractAddress.toString()}:${originalFailingFunction.functionName?.toString() ?? ''}: ${err}`);
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
|
-
await enrichSimulationError(err,
|
|
75
|
+
await enrichSimulationError(err, contractStore, logger);
|
|
76
76
|
}
|
|
77
77
|
}
|