@aztec/pxe 0.0.1-commit.e6bd8901 → 0.0.1-commit.ec5f612
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/access_scopes.d.ts +9 -0
- package/dest/access_scopes.d.ts.map +1 -0
- package/dest/access_scopes.js +6 -0
- package/dest/block_synchronizer/block_synchronizer.d.ts +5 -3
- package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
- package/dest/block_synchronizer/block_synchronizer.js +11 -5
- package/dest/config/package_info.js +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.d.ts +54 -30
- package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
- package/dest/contract_function_simulator/contract_function_simulator.js +174 -70
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +5 -5
- package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
- package/dest/contract_function_simulator/execution_tagging_index_cache.js +3 -3
- package/dest/contract_function_simulator/noir-structs/event_validation_request.js +1 -1
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +2 -2
- package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
- package/dest/contract_function_simulator/noir-structs/note_validation_request.js +1 -1
- package/dest/contract_function_simulator/oracle/interfaces.d.ts +10 -10
- package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.d.ts +5 -5
- package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/oracle.js +38 -26
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +36 -36
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +74 -31
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +53 -29
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +84 -63
- package/dest/contract_logging.d.ts +22 -0
- package/dest/contract_logging.d.ts.map +1 -0
- package/dest/contract_logging.js +23 -0
- package/dest/contract_sync/contract_sync_service.d.ts +43 -0
- package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
- package/dest/contract_sync/contract_sync_service.js +97 -0
- package/dest/contract_sync/helpers.d.ts +29 -0
- package/dest/contract_sync/helpers.d.ts.map +1 -0
- package/dest/contract_sync/{index.js → helpers.js} +14 -15
- package/dest/debug/pxe_debug_utils.d.ts +24 -10
- package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
- package/dest/debug/pxe_debug_utils.js +28 -18
- package/dest/entrypoints/client/bundle/index.d.ts +4 -1
- package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/index.js +3 -0
- 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 +21 -7
- package/dest/entrypoints/client/lazy/index.d.ts +4 -1
- package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/index.js +3 -0
- 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 +22 -8
- 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/index.d.ts +4 -2
- package/dest/entrypoints/server/index.d.ts.map +1 -1
- package/dest/entrypoints/server/index.js +3 -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 +28 -9
- package/dest/events/event_service.d.ts +4 -5
- package/dest/events/event_service.d.ts.map +1 -1
- package/dest/events/event_service.js +5 -6
- package/dest/job_coordinator/job_coordinator.d.ts +3 -2
- package/dest/job_coordinator/job_coordinator.d.ts.map +1 -1
- package/dest/job_coordinator/job_coordinator.js +3 -2
- 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 +19 -30
- 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 +9 -10
- package/dest/notes_filter.d.ts +25 -0
- package/dest/notes_filter.d.ts.map +1 -0
- package/dest/notes_filter.js +4 -0
- package/dest/oracle_version.d.ts +3 -3
- package/dest/oracle_version.d.ts.map +1 -1
- package/dest/oracle_version.js +2 -2
- package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
- package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
- package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
- package/dest/private_kernel/hints/index.d.ts +1 -1
- package/dest/private_kernel/hints/index.js +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +4 -3
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
- package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +129 -68
- package/dest/private_kernel/hints/test_utils.d.ts +122 -0
- package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
- package/dest/private_kernel/hints/test_utils.js +203 -0
- 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 +21 -13
- package/dest/private_kernel/private_kernel_oracle.d.ts +8 -4
- package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
- package/dest/private_kernel/private_kernel_oracle.js +7 -3
- package/dest/pxe.d.ts +69 -23
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +99 -65
- 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.js +6 -8
- package/dest/storage/contract_store/contract_store.d.ts +42 -15
- package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
- package/dest/storage/contract_store/contract_store.js +157 -72
- package/dest/storage/metadata.d.ts +1 -1
- package/dest/storage/metadata.js +1 -1
- package/dest/storage/note_store/note_store.d.ts +13 -3
- package/dest/storage/note_store/note_store.d.ts.map +1 -1
- package/dest/storage/note_store/note_store.js +147 -107
- package/dest/storage/private_event_store/private_event_store.d.ts +1 -1
- package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
- package/dest/storage/private_event_store/private_event_store.js +84 -61
- package/dest/storage/private_event_store/stored_private_event.d.ts +4 -4
- package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -1
- package/dest/storage/private_event_store/stored_private_event.js +2 -2
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
- package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/recipient_tagging_store.js +31 -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 +5 -5
- package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
- package/dest/storage/tagging_store/sender_tagging_store.js +184 -114
- package/dest/tagging/get_all_logs_by_tags.d.ts +4 -4
- package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
- package/dest/tagging/get_all_logs_by_tags.js +17 -3
- package/dest/tagging/index.d.ts +2 -2
- package/dest/tagging/index.d.ts.map +1 -1
- package/dest/tagging/index.js +1 -1
- package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +5 -6
- 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/recipient_sync/utils/find_highest_indexes.js +2 -2
- package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +7 -8
- 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 +12 -11
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +5 -9
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
- package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +3 -6
- package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +5 -8
- 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 +14 -15
- package/package.json +25 -16
- package/src/access_scopes.ts +9 -0
- package/src/block_synchronizer/block_synchronizer.ts +23 -19
- package/src/config/package_info.ts +1 -1
- package/src/contract_function_simulator/contract_function_simulator.ts +323 -128
- package/src/contract_function_simulator/execution_tagging_index_cache.ts +5 -5
- package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
- package/src/contract_function_simulator/noir-structs/note_validation_request.ts +1 -1
- package/src/contract_function_simulator/oracle/interfaces.ts +12 -12
- package/src/contract_function_simulator/oracle/oracle.ts +41 -24
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +101 -113
- package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +139 -70
- package/src/contract_logging.ts +39 -0
- package/src/contract_sync/contract_sync_service.ts +152 -0
- package/src/contract_sync/{index.ts → helpers.ts} +22 -24
- package/src/debug/pxe_debug_utils.ts +63 -19
- package/src/entrypoints/client/bundle/index.ts +3 -0
- package/src/entrypoints/client/bundle/utils.ts +16 -15
- package/src/entrypoints/client/lazy/index.ts +3 -0
- package/src/entrypoints/client/lazy/utils.ts +17 -15
- package/src/entrypoints/pxe_creation_options.ts +2 -1
- package/src/entrypoints/server/index.ts +3 -1
- package/src/entrypoints/server/utils.ts +22 -26
- package/src/events/event_service.ts +4 -6
- package/src/job_coordinator/job_coordinator.ts +4 -3
- package/src/logs/log_service.ts +31 -39
- package/src/notes/note_service.ts +9 -11
- package/src/notes_filter.ts +26 -0
- package/src/oracle_version.ts +2 -2
- package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
- package/src/private_kernel/hints/index.ts +1 -1
- package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +164 -117
- package/src/private_kernel/hints/test_utils.ts +325 -0
- package/src/private_kernel/private_kernel_execution_prover.ts +25 -15
- package/src/private_kernel/private_kernel_oracle.ts +9 -9
- package/src/pxe.ts +192 -117
- 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 +8 -8
- package/src/storage/contract_store/contract_store.ts +186 -76
- package/src/storage/metadata.ts +1 -1
- package/src/storage/note_store/note_store.ts +169 -132
- package/src/storage/private_event_store/private_event_store.ts +102 -81
- package/src/storage/private_event_store/stored_private_event.ts +3 -3
- package/src/storage/tagging_store/recipient_tagging_store.ts +38 -24
- package/src/storage/tagging_store/sender_address_book_store.ts +20 -14
- package/src/storage/tagging_store/sender_tagging_store.ts +214 -130
- package/src/tagging/get_all_logs_by_tags.ts +31 -7
- package/src/tagging/index.ts +1 -1
- package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +9 -12
- package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
- package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +12 -17
- package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +6 -11
- package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +14 -23
- package/dest/contract_sync/index.d.ts +0 -23
- package/dest/contract_sync/index.d.ts.map +0 -1
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
- package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ExtendedDirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* A map that stores the tagging index for a given directional app tagging secret.
|
|
4
|
+
* A map that stores the tagging index for a given extended directional app tagging secret.
|
|
5
5
|
* Note: The directional app tagging secret is unique for a (sender, recipient, contract) tuple while the direction
|
|
6
6
|
* of sender -> recipient matters.
|
|
7
7
|
*/
|
|
8
8
|
export class ExecutionTaggingIndexCache {
|
|
9
9
|
private taggingIndexMap: Map<string, number> = new Map();
|
|
10
10
|
|
|
11
|
-
public getLastUsedIndex(secret:
|
|
11
|
+
public getLastUsedIndex(secret: ExtendedDirectionalAppTaggingSecret): number | undefined {
|
|
12
12
|
return this.taggingIndexMap.get(secret.toString());
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
public setLastUsedIndex(secret:
|
|
15
|
+
public setLastUsedIndex(secret: ExtendedDirectionalAppTaggingSecret, index: number) {
|
|
16
16
|
const currentValue = this.taggingIndexMap.get(secret.toString());
|
|
17
17
|
if (currentValue !== undefined && currentValue !== index - 1) {
|
|
18
18
|
throw new Error(`Invalid tagging index update. Current value: ${currentValue}, new value: ${index}`);
|
|
@@ -25,7 +25,7 @@ export class ExecutionTaggingIndexCache {
|
|
|
25
25
|
*/
|
|
26
26
|
public getUsedPreTags(): PreTag[] {
|
|
27
27
|
return Array.from(this.taggingIndexMap.entries()).map(([secret, index]) => ({
|
|
28
|
-
|
|
28
|
+
extendedSecret: ExtendedDirectionalAppTaggingSecret.fromString(secret),
|
|
29
29
|
index,
|
|
30
30
|
}));
|
|
31
31
|
}
|
|
@@ -5,7 +5,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
5
5
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
6
6
|
|
|
7
7
|
// TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
|
|
8
|
-
const MAX_EVENT_SERIALIZED_LEN =
|
|
8
|
+
const MAX_EVENT_SERIALIZED_LEN = 10;
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Intermediate struct used to perform batch event validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
|
|
@@ -4,7 +4,7 @@ import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
|
4
4
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
5
5
|
|
|
6
6
|
// TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
|
|
7
|
-
export const MAX_NOTE_PACKED_LEN =
|
|
7
|
+
export const MAX_NOTE_PACKED_LEN = 8;
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Intermediate struct used to perform batch note validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
|
|
@@ -5,7 +5,7 @@ import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
|
5
5
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
6
6
|
import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
7
7
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
8
|
-
import {
|
|
8
|
+
import { BlockHash } from '@aztec/stdlib/block';
|
|
9
9
|
import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
|
|
10
10
|
import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
|
|
11
11
|
import type { ContractClassLog, Tag } from '@aztec/stdlib/logs';
|
|
@@ -54,7 +54,7 @@ export interface IMiscOracle {
|
|
|
54
54
|
|
|
55
55
|
utilityGetRandomField(): Fr;
|
|
56
56
|
utilityAssertCompatibleOracleVersion(version: number): void;
|
|
57
|
-
|
|
57
|
+
utilityLog(level: number, message: string, fields: Fr[]): Promise<void>;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
/**
|
|
@@ -68,24 +68,24 @@ export interface IUtilityExecutionOracle {
|
|
|
68
68
|
utilityGetKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
|
|
69
69
|
utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
|
|
70
70
|
utilityGetNoteHashMembershipWitness(
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
anchorBlockHash: BlockHash,
|
|
72
|
+
noteHash: Fr,
|
|
73
73
|
): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
utilityGetBlockHashMembershipWitness(
|
|
75
|
+
anchorBlockHash: BlockHash,
|
|
76
|
+
blockHash: BlockHash,
|
|
77
77
|
): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
|
|
78
78
|
utilityGetNullifierMembershipWitness(
|
|
79
|
-
|
|
79
|
+
anchorBlockHash: BlockHash,
|
|
80
80
|
nullifier: Fr,
|
|
81
81
|
): Promise<NullifierMembershipWitness | undefined>;
|
|
82
|
-
utilityGetPublicDataWitness(
|
|
82
|
+
utilityGetPublicDataWitness(anchorBlockHash: BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
|
|
83
83
|
utilityGetLowNullifierMembershipWitness(
|
|
84
|
-
|
|
84
|
+
anchorBlockHash: BlockHash,
|
|
85
85
|
nullifier: Fr,
|
|
86
86
|
): Promise<NullifierMembershipWitness | undefined>;
|
|
87
87
|
utilityGetBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
|
|
88
|
-
|
|
88
|
+
utilityTryGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress | undefined>;
|
|
89
89
|
utilityGetAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
|
|
90
90
|
utilityGetNotes(
|
|
91
91
|
owner: AztecAddress | undefined,
|
|
@@ -111,7 +111,7 @@ export interface IUtilityExecutionOracle {
|
|
|
111
111
|
secret: Fr,
|
|
112
112
|
): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
|
|
113
113
|
utilityStorageRead(
|
|
114
|
-
|
|
114
|
+
anchorBlockHash: BlockHash,
|
|
115
115
|
contractAddress: AztecAddress,
|
|
116
116
|
startStorageSlot: Fr,
|
|
117
117
|
numberOfElements: number,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from '@aztec/simulator/client';
|
|
13
13
|
import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
|
|
14
14
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
15
|
-
import {
|
|
15
|
+
import { BlockHash } from '@aztec/stdlib/block';
|
|
16
16
|
import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
|
|
17
17
|
|
|
18
18
|
import type { IMiscOracle, IPrivateExecutionOracle, IUtilityExecutionOracle } from './interfaces.js';
|
|
@@ -138,29 +138,39 @@ export class Oracle {
|
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
async utilityGetNoteHashMembershipWitness(
|
|
141
|
-
[
|
|
142
|
-
[
|
|
141
|
+
[anchorBlockHash]: ACVMField[],
|
|
142
|
+
[noteHash]: ACVMField[],
|
|
143
143
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
144
|
-
const
|
|
145
|
-
const
|
|
144
|
+
const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
|
|
145
|
+
const parsedNoteHash = Fr.fromString(noteHash);
|
|
146
146
|
|
|
147
|
-
const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(
|
|
147
|
+
const witness = await this.handlerAsUtility().utilityGetNoteHashMembershipWitness(
|
|
148
|
+
parsedAnchorBlockHash,
|
|
149
|
+
parsedNoteHash,
|
|
150
|
+
);
|
|
148
151
|
if (!witness) {
|
|
149
|
-
throw new Error(
|
|
152
|
+
throw new Error(
|
|
153
|
+
`Note hash ${noteHash} not found in the note hash tree at anchor block hash ${parsedAnchorBlockHash.toString()}.`,
|
|
154
|
+
);
|
|
150
155
|
}
|
|
151
156
|
return witness.toNoirRepresentation();
|
|
152
157
|
}
|
|
153
158
|
|
|
154
|
-
async
|
|
159
|
+
async utilityGetBlockHashMembershipWitness(
|
|
160
|
+
[anchorBlockHash]: ACVMField[],
|
|
155
161
|
[blockHash]: ACVMField[],
|
|
156
|
-
[leafValue]: ACVMField[],
|
|
157
162
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
158
|
-
const
|
|
159
|
-
const
|
|
163
|
+
const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
|
|
164
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
160
165
|
|
|
161
|
-
const witness = await this.handlerAsUtility().
|
|
166
|
+
const witness = await this.handlerAsUtility().utilityGetBlockHashMembershipWitness(
|
|
167
|
+
parsedAnchorBlockHash,
|
|
168
|
+
parsedBlockHash,
|
|
169
|
+
);
|
|
162
170
|
if (!witness) {
|
|
163
|
-
throw new Error(
|
|
171
|
+
throw new Error(
|
|
172
|
+
`Block hash ${parsedBlockHash.toString()} not found in the archive tree at anchor block ${parsedAnchorBlockHash.toString()}.`,
|
|
173
|
+
);
|
|
164
174
|
}
|
|
165
175
|
return witness.toNoirRepresentation();
|
|
166
176
|
}
|
|
@@ -169,7 +179,7 @@ export class Oracle {
|
|
|
169
179
|
[blockHash]: ACVMField[],
|
|
170
180
|
[nullifier]: ACVMField[], // nullifier, we try to find the witness for (to prove inclusion)
|
|
171
181
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
172
|
-
const parsedBlockHash =
|
|
182
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
173
183
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
174
184
|
|
|
175
185
|
const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(
|
|
@@ -188,7 +198,7 @@ export class Oracle {
|
|
|
188
198
|
[blockHash]: ACVMField[],
|
|
189
199
|
[nullifier]: ACVMField[], // nullifier, we try to find the low nullifier witness for (to prove non-inclusion)
|
|
190
200
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
191
|
-
const parsedBlockHash =
|
|
201
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
192
202
|
const parsedNullifier = Fr.fromString(nullifier);
|
|
193
203
|
|
|
194
204
|
const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(
|
|
@@ -207,7 +217,7 @@ export class Oracle {
|
|
|
207
217
|
[blockHash]: ACVMField[],
|
|
208
218
|
[leafSlot]: ACVMField[],
|
|
209
219
|
): Promise<(ACVMField | ACVMField[])[]> {
|
|
210
|
-
const parsedBlockHash =
|
|
220
|
+
const parsedBlockHash = BlockHash.fromString(blockHash);
|
|
211
221
|
const parsedLeafSlot = Fr.fromString(leafSlot);
|
|
212
222
|
|
|
213
223
|
const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockHash, parsedLeafSlot);
|
|
@@ -238,12 +248,19 @@ export class Oracle {
|
|
|
238
248
|
return [witness.map(toACVMField)];
|
|
239
249
|
}
|
|
240
250
|
|
|
241
|
-
async
|
|
251
|
+
async utilityTryGetPublicKeysAndPartialAddress([address]: ACVMField[]): Promise<(ACVMField | ACVMField[])[]> {
|
|
242
252
|
const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
|
|
243
|
-
const
|
|
244
|
-
await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
|
|
253
|
+
const result = await this.handlerAsUtility().utilityTryGetPublicKeysAndPartialAddress(parsedAddress);
|
|
245
254
|
|
|
246
|
-
return
|
|
255
|
+
// We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
|
|
256
|
+
// with two fields: `some` (a boolean) and `value` (a field array in this case).
|
|
257
|
+
if (result === undefined) {
|
|
258
|
+
// No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
|
|
259
|
+
return [toACVMField(0), Array(13).fill(toACVMField(0))];
|
|
260
|
+
} else {
|
|
261
|
+
// Data was found so we set `some` to 1 and return it along with `value`.
|
|
262
|
+
return [toACVMField(1), [...result.publicKeys.toFields(), result.partialAddress].map(toACVMField)];
|
|
263
|
+
}
|
|
247
264
|
}
|
|
248
265
|
|
|
249
266
|
async utilityGetNotes(
|
|
@@ -379,7 +396,7 @@ export class Oracle {
|
|
|
379
396
|
[numberOfElements]: ACVMField[],
|
|
380
397
|
): Promise<ACVMField[][]> {
|
|
381
398
|
const values = await this.handlerAsUtility().utilityStorageRead(
|
|
382
|
-
|
|
399
|
+
BlockHash.fromString(blockHash),
|
|
383
400
|
new AztecAddress(Fr.fromString(contractAddress)),
|
|
384
401
|
Fr.fromString(startStorageSlot),
|
|
385
402
|
+numberOfElements,
|
|
@@ -400,7 +417,7 @@ export class Oracle {
|
|
|
400
417
|
return Promise.resolve([]);
|
|
401
418
|
}
|
|
402
419
|
|
|
403
|
-
|
|
420
|
+
async utilityLog(
|
|
404
421
|
level: ACVMField[],
|
|
405
422
|
message: ACVMField[],
|
|
406
423
|
_ignoredFieldsSize: ACVMField[],
|
|
@@ -409,8 +426,8 @@ export class Oracle {
|
|
|
409
426
|
const levelFr = Fr.fromString(level[0]);
|
|
410
427
|
const messageStr = message.map(acvmField => String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
|
|
411
428
|
const fieldsFr = fields.map(Fr.fromString);
|
|
412
|
-
this.handlerAsMisc().
|
|
413
|
-
return
|
|
429
|
+
await this.handlerAsMisc().utilityLog(levelFr.toNumber(), messageStr, fieldsFr);
|
|
430
|
+
return [];
|
|
414
431
|
}
|
|
415
432
|
|
|
416
433
|
// This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
|
|
@@ -2,7 +2,6 @@ import { MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS, PRIVATE_CONTEXT_INPUTS_LENGTH }
|
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
|
-
import type { KeyStore } from '@aztec/key-store';
|
|
6
5
|
import { type CircuitSimulator, toACVMWitness } from '@aztec/simulator/client';
|
|
7
6
|
import {
|
|
8
7
|
type FunctionAbi,
|
|
@@ -12,35 +11,23 @@ import {
|
|
|
12
11
|
type NoteSelector,
|
|
13
12
|
countArgumentsSize,
|
|
14
13
|
} from '@aztec/stdlib/abi';
|
|
15
|
-
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
16
14
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
17
|
-
import { L2BlockHash } from '@aztec/stdlib/block';
|
|
18
15
|
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
19
|
-
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
20
16
|
import { PrivateContextInputs } from '@aztec/stdlib/kernel';
|
|
21
|
-
import { type ContractClassLog,
|
|
17
|
+
import { type ContractClassLog, ExtendedDirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
|
|
22
18
|
import { Tag } from '@aztec/stdlib/logs';
|
|
23
19
|
import { Note, type NoteStatus } from '@aztec/stdlib/note';
|
|
24
20
|
import {
|
|
25
|
-
type BlockHeader,
|
|
26
21
|
CallContext,
|
|
27
|
-
Capsule,
|
|
28
22
|
CountedContractClassLog,
|
|
29
23
|
NoteAndSlot,
|
|
30
24
|
PrivateCallExecutionResult,
|
|
31
25
|
type TxContext,
|
|
32
26
|
} from '@aztec/stdlib/tx';
|
|
33
27
|
|
|
34
|
-
import {
|
|
28
|
+
import type { AccessScopes } from '../../access_scopes.js';
|
|
29
|
+
import type { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
|
|
35
30
|
import { NoteService } from '../../notes/note_service.js';
|
|
36
|
-
import type { AddressStore } from '../../storage/address_store/address_store.js';
|
|
37
|
-
import type { AnchorBlockStore } from '../../storage/anchor_block_store/anchor_block_store.js';
|
|
38
|
-
import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
|
|
39
|
-
import type { ContractStore } from '../../storage/contract_store/contract_store.js';
|
|
40
|
-
import type { NoteStore } from '../../storage/note_store/note_store.js';
|
|
41
|
-
import type { PrivateEventStore } from '../../storage/private_event_store/private_event_store.js';
|
|
42
|
-
import type { RecipientTaggingStore } from '../../storage/tagging_store/recipient_tagging_store.js';
|
|
43
|
-
import type { SenderAddressBookStore } from '../../storage/tagging_store/sender_address_book_store.js';
|
|
44
31
|
import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
|
|
45
32
|
import { syncSenderTaggingIndexes } from '../../tagging/index.js';
|
|
46
33
|
import type { ExecutionNoteCache } from '../execution_note_cache.js';
|
|
@@ -49,7 +36,25 @@ import type { HashedValuesCache } from '../hashed_values_cache.js';
|
|
|
49
36
|
import { pickNotes } from '../pick_notes.js';
|
|
50
37
|
import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
|
|
51
38
|
import { executePrivateFunction } from './private_execution.js';
|
|
52
|
-
import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
39
|
+
import { UtilityExecutionOracle, type UtilityExecutionOracleArgs } from './utility_execution_oracle.js';
|
|
40
|
+
|
|
41
|
+
/** Args for PrivateExecutionOracle constructor. */
|
|
42
|
+
export type PrivateExecutionOracleArgs = Omit<UtilityExecutionOracleArgs, 'contractAddress'> & {
|
|
43
|
+
argsHash: Fr;
|
|
44
|
+
txContext: TxContext;
|
|
45
|
+
callContext: CallContext;
|
|
46
|
+
/** Needed to trigger contract synchronization before nested calls */
|
|
47
|
+
utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
|
|
48
|
+
executionCache: HashedValuesCache;
|
|
49
|
+
noteCache: ExecutionNoteCache;
|
|
50
|
+
taggingIndexCache: ExecutionTaggingIndexCache;
|
|
51
|
+
senderTaggingStore: SenderTaggingStore;
|
|
52
|
+
contractSyncService: ContractSyncService;
|
|
53
|
+
totalPublicCalldataCount?: number;
|
|
54
|
+
sideEffectCounter?: number;
|
|
55
|
+
senderForTags?: AztecAddress;
|
|
56
|
+
simulator?: CircuitSimulator;
|
|
57
|
+
};
|
|
53
58
|
|
|
54
59
|
/**
|
|
55
60
|
* The execution oracle for the private part of a transaction.
|
|
@@ -71,58 +76,39 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
71
76
|
private offchainEffects: { data: Fr[] }[] = [];
|
|
72
77
|
private nestedExecutionResults: PrivateCallExecutionResult[] = [];
|
|
73
78
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
super(
|
|
108
|
-
callContext.contractAddress,
|
|
109
|
-
authWitnesses,
|
|
110
|
-
capsules,
|
|
111
|
-
anchorBlockHeader,
|
|
112
|
-
contractStore,
|
|
113
|
-
noteStore,
|
|
114
|
-
keyStore,
|
|
115
|
-
addressStore,
|
|
116
|
-
aztecNode,
|
|
117
|
-
anchorBlockStore,
|
|
118
|
-
recipientTaggingStore,
|
|
119
|
-
senderAddressBookStore,
|
|
120
|
-
capsuleStore,
|
|
121
|
-
privateEventStore,
|
|
122
|
-
jobId,
|
|
123
|
-
log,
|
|
124
|
-
scopes,
|
|
125
|
-
);
|
|
79
|
+
private readonly argsHash: Fr;
|
|
80
|
+
private readonly txContext: TxContext;
|
|
81
|
+
private readonly callContext: CallContext;
|
|
82
|
+
private readonly utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
|
|
83
|
+
private readonly executionCache: HashedValuesCache;
|
|
84
|
+
private readonly noteCache: ExecutionNoteCache;
|
|
85
|
+
private readonly taggingIndexCache: ExecutionTaggingIndexCache;
|
|
86
|
+
private readonly senderTaggingStore: SenderTaggingStore;
|
|
87
|
+
private readonly contractSyncService: ContractSyncService;
|
|
88
|
+
private totalPublicCalldataCount: number;
|
|
89
|
+
protected sideEffectCounter: number;
|
|
90
|
+
private senderForTags?: AztecAddress;
|
|
91
|
+
private readonly simulator?: CircuitSimulator;
|
|
92
|
+
|
|
93
|
+
constructor(args: PrivateExecutionOracleArgs) {
|
|
94
|
+
super({
|
|
95
|
+
...args,
|
|
96
|
+
contractAddress: args.callContext.contractAddress,
|
|
97
|
+
log: args.log ?? createLogger('simulator:client_execution_context'),
|
|
98
|
+
});
|
|
99
|
+
this.argsHash = args.argsHash;
|
|
100
|
+
this.txContext = args.txContext;
|
|
101
|
+
this.callContext = args.callContext;
|
|
102
|
+
this.utilityExecutor = args.utilityExecutor;
|
|
103
|
+
this.executionCache = args.executionCache;
|
|
104
|
+
this.noteCache = args.noteCache;
|
|
105
|
+
this.taggingIndexCache = args.taggingIndexCache;
|
|
106
|
+
this.senderTaggingStore = args.senderTaggingStore;
|
|
107
|
+
this.contractSyncService = args.contractSyncService;
|
|
108
|
+
this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
|
|
109
|
+
this.sideEffectCounter = args.sideEffectCounter ?? 0;
|
|
110
|
+
this.senderForTags = args.senderForTags;
|
|
111
|
+
this.simulator = args.simulator;
|
|
126
112
|
}
|
|
127
113
|
|
|
128
114
|
public getPrivateContextInputs(): PrivateContextInputs {
|
|
@@ -230,25 +216,29 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
230
216
|
* @returns An app tag to be used in a log.
|
|
231
217
|
*/
|
|
232
218
|
public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
|
|
233
|
-
const
|
|
219
|
+
const extendedSecret = await this.#calculateExtendedDirectionalAppTaggingSecret(
|
|
220
|
+
this.contractAddress,
|
|
221
|
+
sender,
|
|
222
|
+
recipient,
|
|
223
|
+
);
|
|
234
224
|
|
|
235
|
-
const index = await this.#getIndexToUseForSecret(
|
|
225
|
+
const index = await this.#getIndexToUseForSecret(extendedSecret);
|
|
236
226
|
this.log.debug(
|
|
237
227
|
`Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`,
|
|
238
228
|
);
|
|
239
|
-
this.taggingIndexCache.setLastUsedIndex(
|
|
229
|
+
this.taggingIndexCache.setLastUsedIndex(extendedSecret, index);
|
|
240
230
|
|
|
241
|
-
return Tag.compute({
|
|
231
|
+
return Tag.compute({ extendedSecret, index });
|
|
242
232
|
}
|
|
243
233
|
|
|
244
|
-
async #
|
|
234
|
+
async #calculateExtendedDirectionalAppTaggingSecret(
|
|
245
235
|
contractAddress: AztecAddress,
|
|
246
236
|
sender: AztecAddress,
|
|
247
237
|
recipient: AztecAddress,
|
|
248
238
|
) {
|
|
249
|
-
const senderCompleteAddress = await this.
|
|
239
|
+
const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
|
|
250
240
|
const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
|
|
251
|
-
return
|
|
241
|
+
return ExtendedDirectionalAppTaggingSecret.compute(
|
|
252
242
|
senderCompleteAddress,
|
|
253
243
|
senderIvsk,
|
|
254
244
|
recipient,
|
|
@@ -257,7 +247,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
257
247
|
);
|
|
258
248
|
}
|
|
259
249
|
|
|
260
|
-
async #getIndexToUseForSecret(secret:
|
|
250
|
+
async #getIndexToUseForSecret(secret: ExtendedDirectionalAppTaggingSecret): Promise<number> {
|
|
261
251
|
// If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
|
|
262
252
|
const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
|
|
263
253
|
|
|
@@ -267,13 +257,11 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
267
257
|
// This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
|
|
268
258
|
// are up to date. We do this here because this store is not synced as part of the global sync because
|
|
269
259
|
// that'd be wasteful as most tagging secrets are not used in each tx.
|
|
270
|
-
const anchorBlockHash = L2BlockHash.fromField(await this.anchorBlockHeader.hash());
|
|
271
260
|
await syncSenderTaggingIndexes(
|
|
272
261
|
secret,
|
|
273
|
-
this.contractAddress,
|
|
274
262
|
this.aztecNode,
|
|
275
263
|
this.senderTaggingStore,
|
|
276
|
-
|
|
264
|
+
await this.anchorBlockHeader.hash(),
|
|
277
265
|
this.jobId,
|
|
278
266
|
);
|
|
279
267
|
|
|
@@ -366,7 +354,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
366
354
|
|
|
367
355
|
const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
|
|
368
356
|
|
|
369
|
-
const noteService = new NoteService(this.noteStore, this.aztecNode, this.
|
|
357
|
+
const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
|
|
370
358
|
const dbNotes = await noteService.getNotes(
|
|
371
359
|
this.callContext.contractAddress,
|
|
372
360
|
owner,
|
|
@@ -542,13 +530,13 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
542
530
|
|
|
543
531
|
isStaticCall = isStaticCall || this.callContext.isStaticCall;
|
|
544
532
|
|
|
545
|
-
await ensureContractSynced(
|
|
533
|
+
await this.contractSyncService.ensureContractSynced(
|
|
546
534
|
targetContractAddress,
|
|
547
535
|
functionSelector,
|
|
548
536
|
this.utilityExecutor,
|
|
549
|
-
this.aztecNode,
|
|
550
|
-
this.contractStore,
|
|
551
537
|
this.anchorBlockHeader,
|
|
538
|
+
this.jobId,
|
|
539
|
+
this.scopes,
|
|
552
540
|
);
|
|
553
541
|
|
|
554
542
|
const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
|
|
@@ -560,41 +548,41 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
560
548
|
|
|
561
549
|
const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
|
|
562
550
|
|
|
563
|
-
const privateExecutionOracle = new PrivateExecutionOracle(
|
|
551
|
+
const privateExecutionOracle = new PrivateExecutionOracle({
|
|
564
552
|
argsHash,
|
|
565
|
-
derivedTxContext,
|
|
566
|
-
derivedCallContext,
|
|
567
|
-
this.anchorBlockHeader,
|
|
568
|
-
this.utilityExecutor,
|
|
569
|
-
this.authWitnesses,
|
|
570
|
-
this.capsules,
|
|
571
|
-
this.executionCache,
|
|
572
|
-
this.noteCache,
|
|
573
|
-
this.taggingIndexCache,
|
|
574
|
-
this.contractStore,
|
|
575
|
-
this.noteStore,
|
|
576
|
-
this.keyStore,
|
|
577
|
-
this.addressStore,
|
|
578
|
-
this.aztecNode,
|
|
579
|
-
this.
|
|
580
|
-
this.
|
|
581
|
-
this.
|
|
582
|
-
this.
|
|
583
|
-
this.
|
|
584
|
-
this.
|
|
585
|
-
this.jobId,
|
|
586
|
-
this.totalPublicCalldataCount,
|
|
553
|
+
txContext: derivedTxContext,
|
|
554
|
+
callContext: derivedCallContext,
|
|
555
|
+
anchorBlockHeader: this.anchorBlockHeader,
|
|
556
|
+
utilityExecutor: this.utilityExecutor,
|
|
557
|
+
authWitnesses: this.authWitnesses,
|
|
558
|
+
capsules: this.capsules,
|
|
559
|
+
executionCache: this.executionCache,
|
|
560
|
+
noteCache: this.noteCache,
|
|
561
|
+
taggingIndexCache: this.taggingIndexCache,
|
|
562
|
+
contractStore: this.contractStore,
|
|
563
|
+
noteStore: this.noteStore,
|
|
564
|
+
keyStore: this.keyStore,
|
|
565
|
+
addressStore: this.addressStore,
|
|
566
|
+
aztecNode: this.aztecNode,
|
|
567
|
+
senderTaggingStore: this.senderTaggingStore,
|
|
568
|
+
recipientTaggingStore: this.recipientTaggingStore,
|
|
569
|
+
senderAddressBookStore: this.senderAddressBookStore,
|
|
570
|
+
capsuleStore: this.capsuleStore,
|
|
571
|
+
privateEventStore: this.privateEventStore,
|
|
572
|
+
contractSyncService: this.contractSyncService,
|
|
573
|
+
jobId: this.jobId,
|
|
574
|
+
totalPublicCalldataCount: this.totalPublicCalldataCount,
|
|
587
575
|
sideEffectCounter,
|
|
588
|
-
this.log,
|
|
589
|
-
this.scopes,
|
|
590
|
-
this.senderForTags,
|
|
591
|
-
this.simulator
|
|
592
|
-
);
|
|
576
|
+
log: this.log,
|
|
577
|
+
scopes: this.scopes,
|
|
578
|
+
senderForTags: this.senderForTags,
|
|
579
|
+
simulator: this.simulator!,
|
|
580
|
+
});
|
|
593
581
|
|
|
594
582
|
const setupTime = simulatorSetupTimer.ms();
|
|
595
583
|
|
|
596
584
|
const childExecutionResult = await executePrivateFunction(
|
|
597
|
-
this.simulator
|
|
585
|
+
this.simulator!,
|
|
598
586
|
privateExecutionOracle,
|
|
599
587
|
targetArtifact,
|
|
600
588
|
targetContractAddress,
|