@aztec/pxe 0.0.1-commit.6c91f13 → 0.0.1-commit.6d63667d
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/check_oracle_version.js +1 -1
- package/dest/block_synchronizer/block_synchronizer.d.ts +13 -5
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +74 -20
- package/dest/config/index.d.ts +3 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +17 -0
- package/dest/config/package_info.js +1 -1
- package/dest/contract_function_simulator/benchmarked_node.d.ts +9 -0
- package/dest/contract_function_simulator/benchmarked_node.d.ts.map +1 -0
- package/dest/contract_function_simulator/benchmarked_node.js +77 -0
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +11 -12
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +39 -28
- package/dest/contract_function_simulator/execution_note_cache.d.ts +18 -9
- package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_note_cache.js +45 -28
- package/dest/contract_function_simulator/index.d.ts +2 -2
- package/dest/contract_function_simulator/index.d.ts.map +1 -1
- package/dest/contract_function_simulator/index.js +1 -1
- package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -3
- 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 +6 -3
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +1 -1
- package/dest/contract_function_simulator/noir-structs/note_validation_request.js +1 -1
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +4 -10
- package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/utility_context.js +7 -18
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +16 -12
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -1
- package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +6 -6
- package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/note_packing_utils.js +8 -8
- package/dest/contract_function_simulator/oracle/oracle.d.ts +11 -9
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +64 -41
- package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -26
- package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution.js +1 -37
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +13 -18
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +24 -40
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +38 -24
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +86 -83
- package/dest/contract_sync/contract_sync_service.d.ts +41 -0
- package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
- package/dest/contract_sync/contract_sync_service.js +82 -0
- package/dest/contract_sync/helpers.d.ts +28 -0
- package/dest/contract_sync/helpers.d.ts.map +1 -0
- package/dest/contract_sync/helpers.js +55 -0
- package/dest/debug/pxe_debug_utils.d.ts +24 -9
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
- package/dest/debug/pxe_debug_utils.js +31 -17
- 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 +22 -7
- package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +23 -8
- package/dest/entrypoints/pxe_creation_options.d.ts +5 -3
- package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
- package/dest/entrypoints/server/index.d.ts +3 -1
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +2 -0
- 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 +30 -15
- package/dest/events/event_service.d.ts +6 -6
- package/dest/events/event_service.d.ts.map +1 -1
- package/dest/events/event_service.js +19 -22
- package/dest/events/private_event_filter_validator.d.ts +5 -5
- package/dest/events/private_event_filter_validator.d.ts.map +1 -1
- package/dest/events/private_event_filter_validator.js +5 -6
- package/dest/job_coordinator/job_coordinator.d.ts +75 -0
- package/dest/job_coordinator/job_coordinator.d.ts.map +1 -0
- package/dest/job_coordinator/job_coordinator.js +94 -0
- package/dest/logs/log_service.d.ts +7 -5
- package/dest/logs/log_service.d.ts.map +1 -1
- package/dest/logs/log_service.js +23 -20
- 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 +31 -36
- package/dest/oracle_version.d.ts +3 -3
- package/dest/oracle_version.d.ts.map +1 -1
- package/dest/oracle_version.js +4 -3
- package/dest/private_kernel/hints/index.d.ts +2 -2
- package/dest/private_kernel/hints/index.d.ts.map +1 -1
- package/dest/private_kernel/hints/index.js +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +28 -0
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -0
- package/dest/private_kernel/hints/{build_private_kernel_reset_private_inputs.js → private_kernel_reset_private_inputs_builder.js} +13 -7
- package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
- package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_execution_prover.js +6 -7
- package/dest/private_kernel/private_kernel_oracle.d.ts +24 -28
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +90 -2
- package/dest/pxe.d.ts +9 -36
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +87 -97
- package/dest/storage/address_store/address_store.d.ts +1 -1
- package/dest/storage/address_store/address_store.d.ts.map +1 -1
- package/dest/storage/address_store/address_store.js +12 -11
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -1
- package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
- package/dest/storage/anchor_block_store/anchor_block_store.js +8 -1
- package/dest/storage/capsule_store/capsule_store.d.ts +24 -9
- package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
- package/dest/storage/capsule_store/capsule_store.js +130 -23
- package/dest/storage/contract_store/contract_store.d.ts +1 -2
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
- package/dest/storage/contract_store/contract_store.js +22 -25
- package/dest/storage/metadata.d.ts +1 -1
- package/dest/storage/metadata.js +1 -1
- package/dest/storage/note_store/note_store.d.ts +51 -52
- package/dest/storage/note_store/note_store.d.ts.map +1 -1
- package/dest/storage/note_store/note_store.js +282 -263
- package/dest/storage/note_store/stored_note.d.ts +16 -0
- package/dest/storage/note_store/stored_note.d.ts.map +1 -0
- package/dest/storage/note_store/stored_note.js +43 -0
- package/dest/storage/private_event_store/private_event_store.d.ts +47 -7
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
- package/dest/storage/private_event_store/private_event_store.js +231 -73
- package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
- package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
- package/dest/storage/private_event_store/stored_private_event.js +56 -0
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +15 -8
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/recipient_tagging_store.js +88 -19
- package/dest/storage/tagging_store/sender_address_book_store.d.ts +1 -1
- package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_address_book_store.js +20 -14
- package/dest/storage/tagging_store/sender_tagging_store.d.ts +19 -9
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.js +253 -101
- package/dest/tagging/constants.d.ts +2 -0
- package/dest/tagging/constants.d.ts.map +1 -0
- package/dest/tagging/constants.js +10 -0
- package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
- package/dest/tagging/get_all_logs_by_tags.js +46 -0
- package/dest/tagging/index.d.ts +3 -2
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +2 -10
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +3 -2
- 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 +8 -8
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +3 -2
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +5 -2
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +3 -2
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +8 -8
- package/dest/tagging/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 -1
- package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +5 -8
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +5 -2
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +10 -5
- package/package.json +27 -18
- package/src/bin/check_oracle_version.ts +1 -0
- package/src/block_synchronizer/block_synchronizer.ts +93 -32
- package/src/config/index.ts +14 -0
- package/src/config/package_info.ts +1 -1
- package/src/contract_function_simulator/benchmarked_node.ts +103 -0
- package/src/contract_function_simulator/contract_function_simulator.ts +46 -32
- package/src/contract_function_simulator/execution_note_cache.ts +44 -25
- package/src/contract_function_simulator/index.ts +1 -1
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +5 -1
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +1 -1
- package/src/contract_function_simulator/noir-structs/utility_context.ts +6 -25
- package/src/contract_function_simulator/oracle/interfaces.ts +21 -11
- package/src/contract_function_simulator/oracle/note_packing_utils.ts +10 -10
- package/src/contract_function_simulator/oracle/oracle.ts +76 -44
- package/src/contract_function_simulator/oracle/private_execution.ts +1 -69
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +41 -49
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +108 -90
- package/src/contract_sync/contract_sync_service.ts +129 -0
- package/src/contract_sync/helpers.ts +93 -0
- package/src/debug/pxe_debug_utils.ts +65 -17
- package/src/entrypoints/client/bundle/utils.ts +15 -16
- package/src/entrypoints/client/lazy/utils.ts +16 -17
- package/src/entrypoints/pxe_creation_options.ts +4 -2
- package/src/entrypoints/server/index.ts +2 -0
- package/src/entrypoints/server/utils.ts +26 -34
- package/src/events/event_service.ts +19 -25
- package/src/events/private_event_filter_validator.ts +3 -5
- package/src/job_coordinator/job_coordinator.ts +150 -0
- package/src/logs/log_service.ts +34 -16
- package/src/notes/note_service.ts +38 -43
- package/src/oracle_version.ts +4 -3
- package/src/private_kernel/hints/index.ts +1 -1
- package/src/private_kernel/hints/{build_private_kernel_reset_private_inputs.ts → private_kernel_reset_private_inputs_builder.ts} +33 -22
- package/src/private_kernel/private_kernel_execution_prover.ts +9 -8
- package/src/private_kernel/private_kernel_oracle.ts +116 -36
- package/src/pxe.ts +156 -132
- package/src/storage/address_store/address_store.ts +15 -15
- package/src/storage/anchor_block_store/anchor_block_store.ts +8 -0
- package/src/storage/capsule_store/capsule_store.ts +159 -23
- package/src/storage/contract_store/contract_store.ts +22 -31
- package/src/storage/metadata.ts +1 -1
- package/src/storage/note_store/note_store.ts +317 -318
- package/src/storage/note_store/stored_note.ts +48 -0
- package/src/storage/private_event_store/private_event_store.ts +301 -79
- package/src/storage/private_event_store/stored_private_event.ts +73 -0
- package/src/storage/tagging_store/recipient_tagging_store.ts +106 -20
- package/src/storage/tagging_store/sender_address_book_store.ts +20 -14
- package/src/storage/tagging_store/sender_tagging_store.ts +294 -109
- package/src/tagging/constants.ts +10 -0
- package/src/tagging/get_all_logs_by_tags.ts +68 -0
- package/src/tagging/index.ts +2 -11
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +21 -7
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +7 -1
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +10 -7
- package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +5 -13
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +16 -4
- package/dest/contract_function_simulator/proxied_node.d.ts +0 -9
- package/dest/contract_function_simulator/proxied_node.d.ts.map +0 -1
- package/dest/contract_function_simulator/proxied_node.js +0 -27
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +0 -28
- package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +0 -1
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts +0 -46
- package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +0 -1
- package/dest/private_kernel/private_kernel_oracle_impl.js +0 -86
- package/dest/public_storage/public_storage_service.d.ts +0 -24
- package/dest/public_storage/public_storage_service.d.ts.map +0 -1
- package/dest/public_storage/public_storage_service.js +0 -26
- package/dest/tree_membership/tree_membership_service.d.ts +0 -52
- package/dest/tree_membership/tree_membership_service.d.ts.map +0 -1
- package/dest/tree_membership/tree_membership_service.js +0 -84
- package/src/contract_function_simulator/proxied_node.ts +0 -33
- package/src/private_kernel/private_kernel_oracle_impl.ts +0 -133
- package/src/public_storage/public_storage_service.ts +0 -33
- package/src/tree_membership/tree_membership_service.ts +0 -112
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
} from '@aztec/stdlib/abi';
|
|
15
15
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
16
16
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
17
|
-
import {
|
|
17
|
+
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
18
18
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
19
19
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
20
20
|
import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
|
|
@@ -30,9 +30,9 @@ import {
|
|
|
30
30
|
type TxContext,
|
|
31
31
|
} from '@aztec/stdlib/tx';
|
|
32
32
|
|
|
33
|
+
import type { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
|
|
33
34
|
import { NoteService } from '../../notes/note_service.js';
|
|
34
35
|
import type { AddressStore } from '../../storage/address_store/address_store.js';
|
|
35
|
-
import type { AnchorBlockStore } from '../../storage/anchor_block_store/anchor_block_store.js';
|
|
36
36
|
import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
|
|
37
37
|
import type { ContractStore } from '../../storage/contract_store/contract_store.js';
|
|
38
38
|
import type { NoteStore } from '../../storage/note_store/note_store.js';
|
|
@@ -46,7 +46,7 @@ import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js'
|
|
|
46
46
|
import type { HashedValuesCache } from '../hashed_values_cache.js';
|
|
47
47
|
import { pickNotes } from '../pick_notes.js';
|
|
48
48
|
import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
|
|
49
|
-
import { executePrivateFunction
|
|
49
|
+
import { executePrivateFunction } from './private_execution.js';
|
|
50
50
|
import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
51
51
|
|
|
52
52
|
/**
|
|
@@ -64,16 +64,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
64
64
|
* Users can also use this to get a clearer idea of what's happened during a simulation.
|
|
65
65
|
*/
|
|
66
66
|
private newNotes: NoteAndSlot[] = [];
|
|
67
|
-
/**
|
|
68
|
-
* Notes from previous transactions that are returned to the oracle call `getNotes` during this execution.
|
|
69
|
-
* The mapping maps from the unique siloed note hash to the index for notes created in private executions.
|
|
70
|
-
* It maps from siloed note hash to the index for notes created by public functions.
|
|
71
|
-
*
|
|
72
|
-
* They are not part of the ExecutionNoteCache and being forwarded to nested contexts via `extend()`
|
|
73
|
-
* because these notes are meant to be maintained on a per-call basis
|
|
74
|
-
* They should act as references for the read requests output by an app circuit via public inputs.
|
|
75
|
-
*/
|
|
76
|
-
private noteHashLeafIndexMap: Map<bigint, bigint> = new Map();
|
|
77
67
|
private noteHashNullifierCounterMap: Map<number, number> = new Map();
|
|
78
68
|
private contractClassLogs: CountedContractClassLog[] = [];
|
|
79
69
|
private offchainEffects: { data: Fr[] }[] = [];
|
|
@@ -98,12 +88,13 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
98
88
|
keyStore: KeyStore,
|
|
99
89
|
addressStore: AddressStore,
|
|
100
90
|
aztecNode: AztecNode,
|
|
101
|
-
anchorBlockStore: AnchorBlockStore,
|
|
102
91
|
private readonly senderTaggingStore: SenderTaggingStore,
|
|
103
92
|
recipientTaggingStore: RecipientTaggingStore,
|
|
104
93
|
senderAddressBookStore: SenderAddressBookStore,
|
|
105
94
|
capsuleStore: CapsuleStore,
|
|
106
95
|
privateEventStore: PrivateEventStore,
|
|
96
|
+
private readonly contractSyncService: ContractSyncService,
|
|
97
|
+
jobId: string,
|
|
107
98
|
private totalPublicCalldataCount: number = 0,
|
|
108
99
|
protected sideEffectCounter: number = 0,
|
|
109
100
|
log = createLogger('simulator:client_execution_context'),
|
|
@@ -121,11 +112,11 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
121
112
|
keyStore,
|
|
122
113
|
addressStore,
|
|
123
114
|
aztecNode,
|
|
124
|
-
anchorBlockStore,
|
|
125
115
|
recipientTaggingStore,
|
|
126
116
|
senderAddressBookStore,
|
|
127
117
|
capsuleStore,
|
|
128
118
|
privateEventStore,
|
|
119
|
+
jobId,
|
|
129
120
|
log,
|
|
130
121
|
scopes,
|
|
131
122
|
);
|
|
@@ -160,14 +151,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
160
151
|
return toACVMWitness(0, fields);
|
|
161
152
|
}
|
|
162
153
|
|
|
163
|
-
/**
|
|
164
|
-
* The KernelProver will use this to fully populate witnesses and provide hints to the kernel circuit
|
|
165
|
-
* regarding which note hash each settled read request corresponds to.
|
|
166
|
-
*/
|
|
167
|
-
public getNoteHashLeafIndexMap() {
|
|
168
|
-
return this.noteHashLeafIndexMap;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
154
|
/**
|
|
172
155
|
* Get the data for the newly created notes.
|
|
173
156
|
*/
|
|
@@ -260,7 +243,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
260
243
|
sender: AztecAddress,
|
|
261
244
|
recipient: AztecAddress,
|
|
262
245
|
) {
|
|
263
|
-
const senderCompleteAddress = await this.
|
|
246
|
+
const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
|
|
264
247
|
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
|
|
265
248
|
return DirectionalAppTaggingSecret.compute(
|
|
266
249
|
senderCompleteAddress,
|
|
@@ -281,9 +264,16 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
281
264
|
// This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
|
|
282
265
|
// are up to date. We do this here because this store is not synced as part of the global sync because
|
|
283
266
|
// that'd be wasteful as most tagging secrets are not used in each tx.
|
|
284
|
-
await syncSenderTaggingIndexes(
|
|
285
|
-
|
|
286
|
-
|
|
267
|
+
await syncSenderTaggingIndexes(
|
|
268
|
+
secret,
|
|
269
|
+
this.contractAddress,
|
|
270
|
+
this.aztecNode,
|
|
271
|
+
this.senderTaggingStore,
|
|
272
|
+
await this.anchorBlockHeader.hash(),
|
|
273
|
+
this.jobId,
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret, this.jobId);
|
|
287
277
|
// If lastUsedIndex is undefined, we've never used this secret, so start from 0
|
|
288
278
|
// Otherwise, the next index to use is one past the last used index
|
|
289
279
|
return lastUsedIndex === undefined ? 0 : lastUsedIndex + 1;
|
|
@@ -372,7 +362,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
372
362
|
|
|
373
363
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
374
364
|
|
|
375
|
-
const noteService = new NoteService(this.noteStore, this.aztecNode, this.
|
|
365
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
|
|
376
366
|
const dbNotes = await noteService.getNotes(
|
|
377
367
|
this.callContext.contractAddress,
|
|
378
368
|
owner,
|
|
@@ -402,23 +392,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
402
392
|
.join(', ')}`,
|
|
403
393
|
);
|
|
404
394
|
|
|
405
|
-
const noteHashesAndIndexes = await Promise.all(
|
|
406
|
-
notes.map(async n => {
|
|
407
|
-
if (n.index !== undefined) {
|
|
408
|
-
const siloedNoteHash = await siloNoteHash(n.contractAddress, n.noteHash);
|
|
409
|
-
const uniqueNoteHash = await computeUniqueNoteHash(n.noteNonce, siloedNoteHash);
|
|
410
|
-
|
|
411
|
-
return { hash: uniqueNoteHash, index: n.index };
|
|
412
|
-
}
|
|
413
|
-
}),
|
|
414
|
-
);
|
|
415
|
-
|
|
416
|
-
noteHashesAndIndexes
|
|
417
|
-
.filter(n => n !== undefined)
|
|
418
|
-
.forEach(n => {
|
|
419
|
-
this.noteHashLeafIndexMap.set(n!.hash.toBigInt(), n!.index);
|
|
420
|
-
});
|
|
421
|
-
|
|
422
395
|
return notes;
|
|
423
396
|
}
|
|
424
397
|
|
|
@@ -461,6 +434,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
461
434
|
note,
|
|
462
435
|
siloedNullifier: undefined, // Siloed nullifier cannot be known for newly created note.
|
|
463
436
|
noteHash,
|
|
437
|
+
isPending: true, // This note has just been created and hence is not settled yet.
|
|
464
438
|
},
|
|
465
439
|
counter,
|
|
466
440
|
);
|
|
@@ -495,6 +469,19 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
495
469
|
return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
|
|
496
470
|
}
|
|
497
471
|
|
|
472
|
+
/**
|
|
473
|
+
* Check if a nullifier has been emitted in the same transaction, i.e. if privateNotifyCreatedNullifier has been
|
|
474
|
+
* called for this inner nullifier from the contract with the specified address.
|
|
475
|
+
* @param innerNullifier - The inner nullifier to check.
|
|
476
|
+
* @param contractAddress - Address of the contract that emitted the nullifier.
|
|
477
|
+
* @returns A boolean indicating whether the nullifier is pending or not.
|
|
478
|
+
*/
|
|
479
|
+
public async privateIsNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
|
|
480
|
+
const siloedNullifier = await siloNullifier(contractAddress, innerNullifier);
|
|
481
|
+
const isNullifierPending = this.noteCache.getNullifiers(contractAddress).has(siloedNullifier.toBigInt());
|
|
482
|
+
return Promise.resolve(isNullifierPending);
|
|
483
|
+
}
|
|
484
|
+
|
|
498
485
|
/**
|
|
499
486
|
* Emit a contract class log.
|
|
500
487
|
* This fn exists because we only carry a poseidon hash through the kernels, and need to
|
|
@@ -551,9 +538,13 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
551
538
|
|
|
552
539
|
isStaticCall = isStaticCall || this.callContext.isStaticCall;
|
|
553
540
|
|
|
554
|
-
await
|
|
555
|
-
|
|
556
|
-
|
|
541
|
+
await this.contractSyncService.ensureContractSynced(
|
|
542
|
+
targetContractAddress,
|
|
543
|
+
functionSelector,
|
|
544
|
+
this.utilityExecutor,
|
|
545
|
+
this.anchorBlockHeader,
|
|
546
|
+
this.jobId,
|
|
547
|
+
);
|
|
557
548
|
|
|
558
549
|
const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
|
|
559
550
|
targetContractAddress,
|
|
@@ -580,12 +571,13 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
580
571
|
this.keyStore,
|
|
581
572
|
this.addressStore,
|
|
582
573
|
this.aztecNode,
|
|
583
|
-
this.anchorBlockStore,
|
|
584
574
|
this.senderTaggingStore,
|
|
585
575
|
this.recipientTaggingStore,
|
|
586
576
|
this.senderAddressBookStore,
|
|
587
577
|
this.capsuleStore,
|
|
588
578
|
this.privateEventStore,
|
|
579
|
+
this.contractSyncService,
|
|
580
|
+
this.jobId,
|
|
589
581
|
this.totalPublicCalldataCount,
|
|
590
582
|
sideEffectCounter,
|
|
591
583
|
this.log,
|