@aztec/pxe 0.0.1-commit.f2ce05ee → 0.0.1-commit.f504929

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.
Files changed (161) hide show
  1. package/dest/access_scopes.d.ts +9 -0
  2. package/dest/access_scopes.d.ts.map +1 -0
  3. package/dest/access_scopes.js +6 -0
  4. package/dest/config/package_info.js +1 -1
  5. package/dest/contract_function_simulator/contract_function_simulator.d.ts +53 -29
  6. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  7. package/dest/contract_function_simulator/contract_function_simulator.js +175 -71
  8. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +5 -5
  9. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  10. package/dest/contract_function_simulator/execution_tagging_index_cache.js +3 -3
  11. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +1 -1
  12. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +2 -2
  13. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  14. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +1 -1
  15. package/dest/contract_function_simulator/oracle/interfaces.d.ts +44 -44
  16. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  17. package/dest/contract_function_simulator/oracle/oracle.d.ts +44 -44
  18. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  19. package/dest/contract_function_simulator/oracle/oracle.js +132 -89
  20. package/dest/contract_function_simulator/oracle/private_execution.js +1 -1
  21. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +54 -55
  22. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  23. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +98 -53
  24. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +56 -40
  25. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  26. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +67 -73
  27. package/dest/contract_logging.d.ts +22 -0
  28. package/dest/contract_logging.d.ts.map +1 -0
  29. package/dest/contract_logging.js +23 -0
  30. package/dest/contract_sync/contract_sync_service.d.ts +4 -2
  31. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -1
  32. package/dest/contract_sync/contract_sync_service.js +34 -19
  33. package/dest/contract_sync/helpers.d.ts +3 -2
  34. package/dest/contract_sync/helpers.d.ts.map +1 -1
  35. package/dest/contract_sync/helpers.js +3 -3
  36. package/dest/debug/pxe_debug_utils.d.ts +5 -4
  37. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  38. package/dest/debug/pxe_debug_utils.js +4 -4
  39. package/dest/entrypoints/client/bundle/index.d.ts +4 -1
  40. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  41. package/dest/entrypoints/client/bundle/index.js +3 -0
  42. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  43. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  44. package/dest/entrypoints/client/bundle/utils.js +9 -1
  45. package/dest/entrypoints/client/lazy/index.d.ts +4 -1
  46. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  47. package/dest/entrypoints/client/lazy/index.js +3 -0
  48. package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
  49. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  50. package/dest/entrypoints/client/lazy/utils.js +9 -1
  51. package/dest/entrypoints/server/index.d.ts +3 -1
  52. package/dest/entrypoints/server/index.d.ts.map +1 -1
  53. package/dest/entrypoints/server/index.js +2 -0
  54. package/dest/entrypoints/server/utils.js +9 -1
  55. package/dest/logs/log_service.d.ts +3 -2
  56. package/dest/logs/log_service.d.ts.map +1 -1
  57. package/dest/logs/log_service.js +9 -14
  58. package/dest/notes/note_service.d.ts +4 -3
  59. package/dest/notes/note_service.d.ts.map +1 -1
  60. package/dest/notes/note_service.js +3 -2
  61. package/dest/notes_filter.d.ts +25 -0
  62. package/dest/notes_filter.d.ts.map +1 -0
  63. package/dest/notes_filter.js +4 -0
  64. package/dest/oracle_version.d.ts +2 -2
  65. package/dest/oracle_version.js +3 -3
  66. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  67. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  68. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  69. package/dest/private_kernel/hints/index.d.ts +1 -1
  70. package/dest/private_kernel/hints/index.js +1 -1
  71. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +4 -3
  72. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  73. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +129 -68
  74. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  75. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  76. package/dest/private_kernel/hints/test_utils.js +203 -0
  77. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  78. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  79. package/dest/private_kernel/private_kernel_execution_prover.js +19 -11
  80. package/dest/private_kernel/private_kernel_oracle.d.ts +6 -2
  81. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  82. package/dest/private_kernel/private_kernel_oracle.js +7 -3
  83. package/dest/pxe.d.ts +60 -24
  84. package/dest/pxe.d.ts.map +1 -1
  85. package/dest/pxe.js +73 -58
  86. package/dest/storage/contract_store/contract_store.d.ts +42 -15
  87. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  88. package/dest/storage/contract_store/contract_store.js +140 -64
  89. package/dest/storage/note_store/note_store.d.ts +3 -3
  90. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  91. package/dest/storage/note_store/note_store.js +3 -4
  92. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  93. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  94. package/dest/storage/tagging_store/sender_tagging_store.d.ts +5 -5
  95. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  96. package/dest/storage/tagging_store/sender_tagging_store.js +4 -4
  97. package/dest/tagging/get_all_logs_by_tags.d.ts +1 -1
  98. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  99. package/dest/tagging/get_all_logs_by_tags.js +17 -3
  100. package/dest/tagging/index.d.ts +2 -2
  101. package/dest/tagging/index.d.ts.map +1 -1
  102. package/dest/tagging/index.js +1 -1
  103. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +4 -5
  104. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  105. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +7 -7
  106. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  107. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +6 -7
  108. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
  109. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +12 -11
  110. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +4 -8
  111. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  112. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +3 -6
  113. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +4 -7
  114. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  115. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +14 -15
  116. package/package.json +16 -16
  117. package/src/access_scopes.ts +9 -0
  118. package/src/config/package_info.ts +1 -1
  119. package/src/contract_function_simulator/contract_function_simulator.ts +323 -131
  120. package/src/contract_function_simulator/execution_tagging_index_cache.ts +5 -5
  121. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
  122. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +1 -1
  123. package/src/contract_function_simulator/oracle/interfaces.ts +43 -43
  124. package/src/contract_function_simulator/oracle/oracle.ts +135 -107
  125. package/src/contract_function_simulator/oracle/private_execution.ts +1 -1
  126. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +122 -129
  127. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +107 -76
  128. package/src/contract_logging.ts +39 -0
  129. package/src/contract_sync/contract_sync_service.ts +49 -26
  130. package/src/contract_sync/helpers.ts +7 -2
  131. package/src/debug/pxe_debug_utils.ts +11 -9
  132. package/src/entrypoints/client/bundle/index.ts +3 -0
  133. package/src/entrypoints/client/bundle/utils.ts +9 -1
  134. package/src/entrypoints/client/lazy/index.ts +3 -0
  135. package/src/entrypoints/client/lazy/utils.ts +9 -1
  136. package/src/entrypoints/server/index.ts +2 -0
  137. package/src/entrypoints/server/utils.ts +7 -7
  138. package/src/logs/log_service.ts +17 -24
  139. package/src/notes/note_service.ts +4 -3
  140. package/src/notes_filter.ts +26 -0
  141. package/src/oracle_version.ts +3 -3
  142. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  143. package/src/private_kernel/hints/index.ts +1 -1
  144. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +164 -117
  145. package/src/private_kernel/hints/test_utils.ts +325 -0
  146. package/src/private_kernel/private_kernel_execution_prover.ts +19 -12
  147. package/src/private_kernel/private_kernel_oracle.ts +7 -7
  148. package/src/pxe.ts +138 -101
  149. package/src/storage/contract_store/contract_store.ts +170 -71
  150. package/src/storage/note_store/note_store.ts +8 -5
  151. package/src/storage/tagging_store/recipient_tagging_store.ts +9 -5
  152. package/src/storage/tagging_store/sender_tagging_store.ts +8 -8
  153. package/src/tagging/get_all_logs_by_tags.ts +28 -4
  154. package/src/tagging/index.ts +1 -1
  155. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +7 -10
  156. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  157. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +10 -15
  158. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +4 -9
  159. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +11 -20
  160. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  161. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
@@ -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,33 +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
15
  import { siloNullifier } from '@aztec/stdlib/hash';
18
- import type { AztecNode } from '@aztec/stdlib/interfaces/client';
19
16
  import { PrivateContextInputs } from '@aztec/stdlib/kernel';
20
- import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
17
+ import { type ContractClassLog, ExtendedDirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
21
18
  import { Tag } from '@aztec/stdlib/logs';
22
19
  import { Note, type NoteStatus } from '@aztec/stdlib/note';
23
20
  import {
24
- type BlockHeader,
25
21
  CallContext,
26
- Capsule,
27
22
  CountedContractClassLog,
28
23
  NoteAndSlot,
29
24
  PrivateCallExecutionResult,
30
25
  type TxContext,
31
26
  } from '@aztec/stdlib/tx';
32
27
 
28
+ import type { AccessScopes } from '../../access_scopes.js';
33
29
  import type { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
34
30
  import { NoteService } from '../../notes/note_service.js';
35
- import type { AddressStore } from '../../storage/address_store/address_store.js';
36
- import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
37
- import type { ContractStore } from '../../storage/contract_store/contract_store.js';
38
- import type { NoteStore } from '../../storage/note_store/note_store.js';
39
- import type { PrivateEventStore } from '../../storage/private_event_store/private_event_store.js';
40
- import type { RecipientTaggingStore } from '../../storage/tagging_store/recipient_tagging_store.js';
41
- import type { SenderAddressBookStore } from '../../storage/tagging_store/sender_address_book_store.js';
42
31
  import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
43
32
  import { syncSenderTaggingIndexes } from '../../tagging/index.js';
44
33
  import type { ExecutionNoteCache } from '../execution_note_cache.js';
@@ -47,7 +36,25 @@ import type { HashedValuesCache } from '../hashed_values_cache.js';
47
36
  import { pickNotes } from '../pick_notes.js';
48
37
  import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
49
38
  import { executePrivateFunction } from './private_execution.js';
50
- 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
+ };
51
58
 
52
59
  /**
53
60
  * The execution oracle for the private part of a transaction.
@@ -69,57 +76,39 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
69
76
  private offchainEffects: { data: Fr[] }[] = [];
70
77
  private nestedExecutionResults: PrivateCallExecutionResult[] = [];
71
78
 
72
- constructor(
73
- private readonly argsHash: Fr,
74
- private readonly txContext: TxContext,
75
- private readonly callContext: CallContext,
76
- /** Header of a block whose state is used during private execution (not the block the transaction is included in). */
77
- protected override readonly anchorBlockHeader: BlockHeader,
78
- /** Needed to trigger contract synchronization before nested calls */
79
- private readonly utilityExecutor: (call: FunctionCall) => Promise<void>,
80
- /** List of transient auth witnesses to be used during this simulation */
81
- authWitnesses: AuthWitness[],
82
- capsules: Capsule[],
83
- private readonly executionCache: HashedValuesCache,
84
- private readonly noteCache: ExecutionNoteCache,
85
- private readonly taggingIndexCache: ExecutionTaggingIndexCache,
86
- contractStore: ContractStore,
87
- noteStore: NoteStore,
88
- keyStore: KeyStore,
89
- addressStore: AddressStore,
90
- aztecNode: AztecNode,
91
- private readonly senderTaggingStore: SenderTaggingStore,
92
- recipientTaggingStore: RecipientTaggingStore,
93
- senderAddressBookStore: SenderAddressBookStore,
94
- capsuleStore: CapsuleStore,
95
- privateEventStore: PrivateEventStore,
96
- private readonly contractSyncService: ContractSyncService,
97
- jobId: string,
98
- private totalPublicCalldataCount: number = 0,
99
- protected sideEffectCounter: number = 0,
100
- log = createLogger('simulator:client_execution_context'),
101
- scopes?: AztecAddress[],
102
- private senderForTags?: AztecAddress,
103
- private simulator?: CircuitSimulator,
104
- ) {
105
- super(
106
- callContext.contractAddress,
107
- authWitnesses,
108
- capsules,
109
- anchorBlockHeader,
110
- contractStore,
111
- noteStore,
112
- keyStore,
113
- addressStore,
114
- aztecNode,
115
- recipientTaggingStore,
116
- senderAddressBookStore,
117
- capsuleStore,
118
- privateEventStore,
119
- jobId,
120
- log,
121
- scopes,
122
- );
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;
123
112
  }
124
113
 
125
114
  public getPrivateContextInputs(): PrivateContextInputs {
@@ -200,7 +189,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
200
189
  * The value persists through nested calls, meaning all calls down the stack will use the same
201
190
  * 'senderForTags' value (unless it is replaced).
202
191
  */
203
- public privateGetSenderForTags(): Promise<AztecAddress | undefined> {
192
+ public getSenderForTags(): Promise<AztecAddress | undefined> {
204
193
  return Promise.resolve(this.senderForTags);
205
194
  }
206
195
 
@@ -215,7 +204,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
215
204
  * through nested calls, meaning all calls down the stack will use the same 'senderForTags'
216
205
  * value (unless it is replaced by another call to this setter).
217
206
  */
218
- public privateSetSenderForTags(senderForTags: AztecAddress): Promise<void> {
207
+ public setSenderForTags(senderForTags: AztecAddress): Promise<void> {
219
208
  this.senderForTags = senderForTags;
220
209
  return Promise.resolve();
221
210
  }
@@ -226,26 +215,30 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
226
215
  * @param recipient - The address receiving the log
227
216
  * @returns An app tag to be used in a log.
228
217
  */
229
- public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
230
- const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
218
+ public async getNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
219
+ const extendedSecret = await this.#calculateExtendedDirectionalAppTaggingSecret(
220
+ this.contractAddress,
221
+ sender,
222
+ recipient,
223
+ );
231
224
 
232
- const index = await this.#getIndexToUseForSecret(secret);
233
- this.log.debug(
225
+ const index = await this.#getIndexToUseForSecret(extendedSecret);
226
+ this.logger.debug(
234
227
  `Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`,
235
228
  );
236
- this.taggingIndexCache.setLastUsedIndex(secret, index);
229
+ this.taggingIndexCache.setLastUsedIndex(extendedSecret, index);
237
230
 
238
- return Tag.compute({ secret, index });
231
+ return Tag.compute({ extendedSecret, index });
239
232
  }
240
233
 
241
- async #calculateDirectionalAppTaggingSecret(
234
+ async #calculateExtendedDirectionalAppTaggingSecret(
242
235
  contractAddress: AztecAddress,
243
236
  sender: AztecAddress,
244
237
  recipient: AztecAddress,
245
238
  ) {
246
239
  const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
247
240
  const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
248
- return DirectionalAppTaggingSecret.compute(
241
+ return ExtendedDirectionalAppTaggingSecret.compute(
249
242
  senderCompleteAddress,
250
243
  senderIvsk,
251
244
  recipient,
@@ -254,7 +247,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
254
247
  );
255
248
  }
256
249
 
257
- async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
250
+ async #getIndexToUseForSecret(secret: ExtendedDirectionalAppTaggingSecret): Promise<number> {
258
251
  // If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
259
252
  const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
260
253
 
@@ -266,7 +259,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
266
259
  // that'd be wasteful as most tagging secrets are not used in each tx.
267
260
  await syncSenderTaggingIndexes(
268
261
  secret,
269
- this.contractAddress,
270
262
  this.aztecNode,
271
263
  this.senderTaggingStore,
272
264
  await this.anchorBlockHeader.hash(),
@@ -285,7 +277,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
285
277
  * @param values - Values to store.
286
278
  * @returns The hash of the values.
287
279
  */
288
- public privateStoreInExecutionCache(values: Fr[], hash: Fr) {
280
+ public storeInExecutionCache(values: Fr[], hash: Fr) {
289
281
  return this.executionCache.store(values, hash);
290
282
  }
291
283
 
@@ -294,7 +286,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
294
286
  * @param hash - Hash of the values.
295
287
  * @returns The values.
296
288
  */
297
- public privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]> {
289
+ public loadFromExecutionCache(hash: Fr): Promise<Fr[]> {
298
290
  const preimage = this.executionCache.getPreimage(hash);
299
291
  if (!preimage) {
300
292
  throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
@@ -302,12 +294,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
302
294
  return Promise.resolve(preimage);
303
295
  }
304
296
 
305
- override async utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean> {
297
+ override async checkNullifierExists(innerNullifier: Fr): Promise<boolean> {
306
298
  // This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
307
299
  // in the synched block, during private execution there's also the possibility of it being pending, i.e. created
308
300
  // in the current transaction.
309
301
 
310
- this.log.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
302
+ this.logger.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
311
303
  contractAddress: this.contractAddress,
312
304
  });
313
305
 
@@ -315,7 +307,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
315
307
 
316
308
  return (
317
309
  this.noteCache.getNullifiers(this.contractAddress).has(nullifier) ||
318
- (await super.utilityCheckNullifierExists(innerNullifier))
310
+ (await super.checkNullifierExists(innerNullifier))
319
311
  );
320
312
  }
321
313
 
@@ -340,7 +332,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
340
332
  * @param status - The status of notes to fetch.
341
333
  * @returns Array of note data.
342
334
  */
343
- public override async utilityGetNotes(
335
+ public override async getNotes(
344
336
  owner: AztecAddress | undefined,
345
337
  storageSlot: Fr,
346
338
  numSelects: number,
@@ -386,7 +378,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
386
378
  offset,
387
379
  });
388
380
 
389
- this.log.debug(
381
+ this.logger.debug(
390
382
  `Returning ${notes.length} notes for ${this.callContext.contractAddress} at ${storageSlot}: ${notes
391
383
  .map(n => `${n.noteNonce.toString()}:[${n.note.items.map(i => i.toString()).join(',')}]`)
392
384
  .join(', ')}`,
@@ -406,7 +398,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
406
398
  * @param noteHash - A hash of the new note.
407
399
  * @returns
408
400
  */
409
- public privateNotifyCreatedNote(
401
+ public notifyCreatedNote(
410
402
  owner: AztecAddress,
411
403
  storageSlot: Fr,
412
404
  randomness: Fr,
@@ -415,7 +407,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
415
407
  noteHash: Fr,
416
408
  counter: number,
417
409
  ) {
418
- this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
410
+ this.logger.debug(`Notified of new note with inner hash ${noteHash}`, {
419
411
  contractAddress: this.callContext.contractAddress,
420
412
  storageSlot,
421
413
  randomness,
@@ -447,7 +439,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
447
439
  * @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
448
440
  * @param noteHash - A hash of the new note.
449
441
  */
450
- public async privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number) {
442
+ public async notifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number) {
451
443
  const nullifiedNoteHashCounter = await this.noteCache.nullifyNote(
452
444
  this.callContext.contractAddress,
453
445
  innerNullifier,
@@ -464,19 +456,19 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
464
456
  * @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
465
457
  * @param noteHash - A hash of the new note.
466
458
  */
467
- public privateNotifyCreatedNullifier(innerNullifier: Fr) {
468
- this.log.debug(`Notified of new inner nullifier ${innerNullifier}`, { contractAddress: this.contractAddress });
459
+ public notifyCreatedNullifier(innerNullifier: Fr) {
460
+ this.logger.debug(`Notified of new inner nullifier ${innerNullifier}`, { contractAddress: this.contractAddress });
469
461
  return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
470
462
  }
471
463
 
472
464
  /**
473
- * Check if a nullifier has been emitted in the same transaction, i.e. if privateNotifyCreatedNullifier has been
465
+ * Check if a nullifier has been emitted in the same transaction, i.e. if notifyCreatedNullifier has been
474
466
  * called for this inner nullifier from the contract with the specified address.
475
467
  * @param innerNullifier - The inner nullifier to check.
476
468
  * @param contractAddress - Address of the contract that emitted the nullifier.
477
469
  * @returns A boolean indicating whether the nullifier is pending or not.
478
470
  */
479
- public async privateIsNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
471
+ public async isNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
480
472
  const siloedNullifier = await siloNullifier(contractAddress, innerNullifier);
481
473
  const isNullifierPending = this.noteCache.getNullifiers(contractAddress).has(siloedNullifier.toBigInt());
482
474
  return Promise.resolve(isNullifierPending);
@@ -489,10 +481,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
489
481
  * @param log - The contract class log to be emitted.
490
482
  * @param counter - The contract class log's counter.
491
483
  */
492
- public privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number) {
484
+ public notifyCreatedContractClassLog(log: ContractClassLog, counter: number) {
493
485
  this.contractClassLogs.push(new CountedContractClassLog(log, counter));
494
486
  const text = log.toBuffer().toString('hex');
495
- this.log.verbose(
487
+ this.logger.verbose(
496
488
  `Emitted log from ContractClassRegistry: "${text.length > 100 ? text.slice(0, 100) + '...' : text}"`,
497
489
  );
498
490
  }
@@ -518,7 +510,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
518
510
  * @param isStaticCall - Whether the call is a static call.
519
511
  * @returns The execution result.
520
512
  */
521
- async privateCallPrivateFunction(
513
+ async callPrivateFunction(
522
514
  targetContractAddress: AztecAddress,
523
515
  functionSelector: FunctionSelector,
524
516
  argsHash: Fr,
@@ -532,7 +524,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
532
524
  }
533
525
 
534
526
  const simulatorSetupTimer = new Timer();
535
- this.log.debug(
527
+ this.logger.debug(
536
528
  `Calling private function ${targetContractAddress}:${functionSelector} from ${this.callContext.contractAddress}`,
537
529
  );
538
530
 
@@ -544,6 +536,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
544
536
  this.utilityExecutor,
545
537
  this.anchorBlockHeader,
546
538
  this.jobId,
539
+ this.scopes,
547
540
  );
548
541
 
549
542
  const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
@@ -555,41 +548,41 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
555
548
 
556
549
  const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
557
550
 
558
- const privateExecutionOracle = new PrivateExecutionOracle(
551
+ const privateExecutionOracle = new PrivateExecutionOracle({
559
552
  argsHash,
560
- derivedTxContext,
561
- derivedCallContext,
562
- this.anchorBlockHeader,
563
- this.utilityExecutor,
564
- this.authWitnesses,
565
- this.capsules,
566
- this.executionCache,
567
- this.noteCache,
568
- this.taggingIndexCache,
569
- this.contractStore,
570
- this.noteStore,
571
- this.keyStore,
572
- this.addressStore,
573
- this.aztecNode,
574
- this.senderTaggingStore,
575
- this.recipientTaggingStore,
576
- this.senderAddressBookStore,
577
- this.capsuleStore,
578
- this.privateEventStore,
579
- this.contractSyncService,
580
- this.jobId,
581
- 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,
582
575
  sideEffectCounter,
583
- this.log,
584
- this.scopes,
585
- this.senderForTags,
586
- this.simulator,
587
- );
576
+ log: this.logger,
577
+ scopes: this.scopes,
578
+ senderForTags: this.senderForTags,
579
+ simulator: this.simulator!,
580
+ });
588
581
 
589
582
  const setupTime = simulatorSetupTimer.ms();
590
583
 
591
584
  const childExecutionResult = await executePrivateFunction(
592
- this.simulator,
585
+ this.simulator!,
593
586
  privateExecutionOracle,
594
587
  targetArtifact,
595
588
  targetContractAddress,
@@ -634,7 +627,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
634
627
  * @param sideEffectCounter - The side effect counter at the start of the call.
635
628
  * @param isStaticCall - Whether the call is a static call.
636
629
  */
637
- public privateNotifyEnqueuedPublicFunctionCall(
630
+ public notifyEnqueuedPublicFunctionCall(
638
631
  _targetContractAddress: AztecAddress,
639
632
  calldataHash: Fr,
640
633
  _sideEffectCounter: number,
@@ -651,7 +644,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
651
644
  * @param sideEffectCounter - The side effect counter at the start of the call.
652
645
  * @param isStaticCall - Whether the call is a static call.
653
646
  */
654
- public privateNotifySetPublicTeardownFunctionCall(
647
+ public notifySetPublicTeardownFunctionCall(
655
648
  _targetContractAddress: AztecAddress,
656
649
  calldataHash: Fr,
657
650
  _sideEffectCounter: number,
@@ -661,11 +654,11 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
661
654
  return Promise.resolve();
662
655
  }
663
656
 
664
- public privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void> {
657
+ public notifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void> {
665
658
  return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
666
659
  }
667
660
 
668
- public privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean> {
661
+ public isSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean> {
669
662
  return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
670
663
  }
671
664
 
@@ -693,7 +686,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
693
686
  return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
694
687
  }
695
688
 
696
- public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {
689
+ public emitOffchainEffect(data: Fr[]): Promise<void> {
697
690
  this.offchainEffects.push({ data });
698
691
  return Promise.resolve();
699
692
  }