@aztec/pxe 0.0.1-commit.7cf39cb55 → 0.0.1-commit.7ffbba4

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/index.d.ts +2 -2
  5. package/dest/config/index.d.ts.map +1 -1
  6. package/dest/config/index.js +1 -1
  7. package/dest/config/package_info.js +1 -1
  8. package/dest/contract_function_simulator/contract_function_simulator.d.ts +5 -4
  9. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  10. package/dest/contract_function_simulator/contract_function_simulator.js +12 -12
  11. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +5 -5
  12. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  13. package/dest/contract_function_simulator/execution_tagging_index_cache.js +3 -3
  14. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +2 -3
  15. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  16. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +5 -4
  17. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +1 -1
  18. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  19. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -3
  20. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +2 -4
  21. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +3 -5
  23. package/dest/contract_function_simulator/oracle/interfaces.d.ts +48 -45
  24. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  25. package/dest/contract_function_simulator/oracle/oracle.d.ts +43 -44
  26. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  27. package/dest/contract_function_simulator/oracle/oracle.js +129 -91
  28. package/dest/contract_function_simulator/oracle/private_execution.js +1 -1
  29. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +22 -35
  30. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +37 -64
  32. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +39 -36
  33. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  34. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +49 -51
  35. package/dest/contract_logging.d.ts +22 -0
  36. package/dest/contract_logging.d.ts.map +1 -0
  37. package/dest/contract_logging.js +23 -0
  38. package/dest/contract_sync/contract_sync_service.d.ts +4 -3
  39. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -1
  40. package/dest/contract_sync/contract_sync_service.js +10 -10
  41. package/dest/contract_sync/helpers.d.ts +3 -2
  42. package/dest/contract_sync/helpers.d.ts.map +1 -1
  43. package/dest/contract_sync/helpers.js +3 -3
  44. package/dest/debug/pxe_debug_utils.d.ts +5 -4
  45. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  46. package/dest/debug/pxe_debug_utils.js +4 -4
  47. package/dest/entrypoints/client/bundle/index.d.ts +4 -1
  48. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  49. package/dest/entrypoints/client/bundle/index.js +3 -0
  50. package/dest/entrypoints/client/lazy/index.d.ts +4 -1
  51. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  52. package/dest/entrypoints/client/lazy/index.js +3 -0
  53. package/dest/entrypoints/server/index.d.ts +3 -1
  54. package/dest/entrypoints/server/index.d.ts.map +1 -1
  55. package/dest/entrypoints/server/index.js +2 -0
  56. package/dest/logs/log_service.d.ts +3 -2
  57. package/dest/logs/log_service.d.ts.map +1 -1
  58. package/dest/logs/log_service.js +5 -5
  59. package/dest/notes/note_service.d.ts +4 -3
  60. package/dest/notes/note_service.d.ts.map +1 -1
  61. package/dest/notes/note_service.js +3 -2
  62. package/dest/notes_filter.d.ts +25 -0
  63. package/dest/notes_filter.d.ts.map +1 -0
  64. package/dest/notes_filter.js +4 -0
  65. package/dest/oracle_version.d.ts +2 -2
  66. package/dest/oracle_version.js +3 -3
  67. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  68. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  69. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  70. package/dest/private_kernel/hints/index.d.ts +1 -1
  71. package/dest/private_kernel/hints/index.js +1 -1
  72. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +4 -3
  73. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  74. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +129 -68
  75. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  76. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  77. package/dest/private_kernel/hints/test_utils.js +203 -0
  78. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  79. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  80. package/dest/private_kernel/private_kernel_execution_prover.js +19 -11
  81. package/dest/private_kernel/private_kernel_oracle.d.ts +6 -2
  82. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  83. package/dest/private_kernel/private_kernel_oracle.js +7 -3
  84. package/dest/pxe.d.ts +14 -12
  85. package/dest/pxe.d.ts.map +1 -1
  86. package/dest/pxe.js +40 -30
  87. package/dest/storage/contract_store/contract_store.d.ts +42 -15
  88. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  89. package/dest/storage/contract_store/contract_store.js +140 -64
  90. package/dest/storage/note_store/note_store.d.ts +3 -2
  91. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  92. package/dest/storage/note_store/note_store.js +2 -2
  93. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  94. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  95. package/dest/storage/tagging_store/sender_tagging_store.d.ts +5 -5
  96. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  97. package/dest/storage/tagging_store/sender_tagging_store.js +4 -4
  98. package/dest/tagging/get_all_logs_by_tags.d.ts +1 -1
  99. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -1
  100. package/dest/tagging/get_all_logs_by_tags.js +17 -3
  101. package/dest/tagging/index.d.ts +2 -2
  102. package/dest/tagging/index.d.ts.map +1 -1
  103. package/dest/tagging/index.js +1 -1
  104. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +4 -5
  105. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  106. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +7 -7
  107. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  108. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +6 -7
  109. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
  110. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +12 -11
  111. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +4 -8
  112. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  113. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +3 -6
  114. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +4 -7
  115. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  116. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +14 -15
  117. package/package.json +16 -16
  118. package/src/access_scopes.ts +9 -0
  119. package/src/config/index.ts +1 -1
  120. package/src/config/package_info.ts +1 -1
  121. package/src/contract_function_simulator/contract_function_simulator.ts +23 -24
  122. package/src/contract_function_simulator/execution_tagging_index_cache.ts +5 -5
  123. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +8 -5
  124. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -4
  125. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +3 -6
  126. package/src/contract_function_simulator/oracle/interfaces.ts +48 -54
  127. package/src/contract_function_simulator/oracle/oracle.ts +136 -136
  128. package/src/contract_function_simulator/oracle/private_execution.ts +1 -1
  129. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +45 -82
  130. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +59 -62
  131. package/src/contract_logging.ts +39 -0
  132. package/src/contract_sync/contract_sync_service.ts +19 -12
  133. package/src/contract_sync/helpers.ts +7 -2
  134. package/src/debug/pxe_debug_utils.ts +9 -8
  135. package/src/entrypoints/client/bundle/index.ts +3 -0
  136. package/src/entrypoints/client/lazy/index.ts +3 -0
  137. package/src/entrypoints/server/index.ts +2 -0
  138. package/src/logs/log_service.ts +13 -11
  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 +51 -43
  149. package/src/storage/contract_store/contract_store.ts +170 -71
  150. package/src/storage/note_store/note_store.ts +7 -3
  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
@@ -14,7 +14,7 @@ import {
14
14
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
15
  import { siloNullifier } from '@aztec/stdlib/hash';
16
16
  import { PrivateContextInputs } from '@aztec/stdlib/kernel';
17
- import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
17
+ import { type ContractClassLog, ExtendedDirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
18
18
  import { Tag } from '@aztec/stdlib/logs';
19
19
  import { Note, type NoteStatus } from '@aztec/stdlib/note';
20
20
  import {
@@ -25,6 +25,7 @@ import {
25
25
  type TxContext,
26
26
  } from '@aztec/stdlib/tx';
27
27
 
28
+ import type { AccessScopes } from '../../access_scopes.js';
28
29
  import type { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
29
30
  import { NoteService } from '../../notes/note_service.js';
30
31
  import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
@@ -43,7 +44,7 @@ export type PrivateExecutionOracleArgs = Omit<UtilityExecutionOracleArgs, 'contr
43
44
  txContext: TxContext;
44
45
  callContext: CallContext;
45
46
  /** Needed to trigger contract synchronization before nested calls */
46
- utilityExecutor: (call: FunctionCall, scopes: undefined | AztecAddress[]) => Promise<void>;
47
+ utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
47
48
  executionCache: HashedValuesCache;
48
49
  noteCache: ExecutionNoteCache;
49
50
  taggingIndexCache: ExecutionTaggingIndexCache;
@@ -78,7 +79,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
78
79
  private readonly argsHash: Fr;
79
80
  private readonly txContext: TxContext;
80
81
  private readonly callContext: CallContext;
81
- private readonly utilityExecutor: (call: FunctionCall, scopes: undefined | AztecAddress[]) => Promise<void>;
82
+ private readonly utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
82
83
  private readonly executionCache: HashedValuesCache;
83
84
  private readonly noteCache: ExecutionNoteCache;
84
85
  private readonly taggingIndexCache: ExecutionTaggingIndexCache;
@@ -188,7 +189,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
188
189
  * The value persists through nested calls, meaning all calls down the stack will use the same
189
190
  * 'senderForTags' value (unless it is replaced).
190
191
  */
191
- public privateGetSenderForTags(): Promise<AztecAddress | undefined> {
192
+ public getSenderForTags(): Promise<AztecAddress | undefined> {
192
193
  return Promise.resolve(this.senderForTags);
193
194
  }
194
195
 
@@ -203,7 +204,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
203
204
  * through nested calls, meaning all calls down the stack will use the same 'senderForTags'
204
205
  * value (unless it is replaced by another call to this setter).
205
206
  */
206
- public privateSetSenderForTags(senderForTags: AztecAddress): Promise<void> {
207
+ public setSenderForTags(senderForTags: AztecAddress): Promise<void> {
207
208
  this.senderForTags = senderForTags;
208
209
  return Promise.resolve();
209
210
  }
@@ -214,26 +215,30 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
214
215
  * @param recipient - The address receiving the log
215
216
  * @returns An app tag to be used in a log.
216
217
  */
217
- public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
218
- 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
+ );
219
224
 
220
- const index = await this.#getIndexToUseForSecret(secret);
221
- this.log.debug(
225
+ const index = await this.#getIndexToUseForSecret(extendedSecret);
226
+ this.logger.debug(
222
227
  `Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`,
223
228
  );
224
- this.taggingIndexCache.setLastUsedIndex(secret, index);
229
+ this.taggingIndexCache.setLastUsedIndex(extendedSecret, index);
225
230
 
226
- return Tag.compute({ secret, index });
231
+ return Tag.compute({ extendedSecret, index });
227
232
  }
228
233
 
229
- async #calculateDirectionalAppTaggingSecret(
234
+ async #calculateExtendedDirectionalAppTaggingSecret(
230
235
  contractAddress: AztecAddress,
231
236
  sender: AztecAddress,
232
237
  recipient: AztecAddress,
233
238
  ) {
234
239
  const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
235
240
  const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
236
- return DirectionalAppTaggingSecret.compute(
241
+ return ExtendedDirectionalAppTaggingSecret.compute(
237
242
  senderCompleteAddress,
238
243
  senderIvsk,
239
244
  recipient,
@@ -242,7 +247,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
242
247
  );
243
248
  }
244
249
 
245
- async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
250
+ async #getIndexToUseForSecret(secret: ExtendedDirectionalAppTaggingSecret): Promise<number> {
246
251
  // If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
247
252
  const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
248
253
 
@@ -254,7 +259,6 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
254
259
  // that'd be wasteful as most tagging secrets are not used in each tx.
255
260
  await syncSenderTaggingIndexes(
256
261
  secret,
257
- this.contractAddress,
258
262
  this.aztecNode,
259
263
  this.senderTaggingStore,
260
264
  await this.anchorBlockHeader.hash(),
@@ -273,7 +277,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
273
277
  * @param values - Values to store.
274
278
  * @returns The hash of the values.
275
279
  */
276
- public privateStoreInExecutionCache(values: Fr[], hash: Fr) {
280
+ public storeInExecutionCache(values: Fr[], hash: Fr) {
277
281
  return this.executionCache.store(values, hash);
278
282
  }
279
283
 
@@ -282,7 +286,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
282
286
  * @param hash - Hash of the values.
283
287
  * @returns The values.
284
288
  */
285
- public privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]> {
289
+ public loadFromExecutionCache(hash: Fr): Promise<Fr[]> {
286
290
  const preimage = this.executionCache.getPreimage(hash);
287
291
  if (!preimage) {
288
292
  throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
@@ -290,12 +294,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
290
294
  return Promise.resolve(preimage);
291
295
  }
292
296
 
293
- override async utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean> {
297
+ override async checkNullifierExists(innerNullifier: Fr): Promise<boolean> {
294
298
  // This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
295
299
  // in the synched block, during private execution there's also the possibility of it being pending, i.e. created
296
300
  // in the current transaction.
297
301
 
298
- this.log.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
302
+ this.logger.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
299
303
  contractAddress: this.contractAddress,
300
304
  });
301
305
 
@@ -303,7 +307,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
303
307
 
304
308
  return (
305
309
  this.noteCache.getNullifiers(this.contractAddress).has(nullifier) ||
306
- (await super.utilityCheckNullifierExists(innerNullifier))
310
+ (await super.checkNullifierExists(innerNullifier))
307
311
  );
308
312
  }
309
313
 
@@ -328,7 +332,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
328
332
  * @param status - The status of notes to fetch.
329
333
  * @returns Array of note data.
330
334
  */
331
- public override async utilityGetNotes(
335
+ public override async getNotes(
332
336
  owner: AztecAddress | undefined,
333
337
  storageSlot: Fr,
334
338
  numSelects: number,
@@ -374,7 +378,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
374
378
  offset,
375
379
  });
376
380
 
377
- this.log.debug(
381
+ this.logger.debug(
378
382
  `Returning ${notes.length} notes for ${this.callContext.contractAddress} at ${storageSlot}: ${notes
379
383
  .map(n => `${n.noteNonce.toString()}:[${n.note.items.map(i => i.toString()).join(',')}]`)
380
384
  .join(', ')}`,
@@ -394,7 +398,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
394
398
  * @param noteHash - A hash of the new note.
395
399
  * @returns
396
400
  */
397
- public privateNotifyCreatedNote(
401
+ public notifyCreatedNote(
398
402
  owner: AztecAddress,
399
403
  storageSlot: Fr,
400
404
  randomness: Fr,
@@ -403,7 +407,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
403
407
  noteHash: Fr,
404
408
  counter: number,
405
409
  ) {
406
- this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
410
+ this.logger.debug(`Notified of new note with inner hash ${noteHash}`, {
407
411
  contractAddress: this.callContext.contractAddress,
408
412
  storageSlot,
409
413
  randomness,
@@ -435,7 +439,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
435
439
  * @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
436
440
  * @param noteHash - A hash of the new note.
437
441
  */
438
- public async privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number) {
442
+ public async notifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number) {
439
443
  const nullifiedNoteHashCounter = await this.noteCache.nullifyNote(
440
444
  this.callContext.contractAddress,
441
445
  innerNullifier,
@@ -452,19 +456,19 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
452
456
  * @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
453
457
  * @param noteHash - A hash of the new note.
454
458
  */
455
- public privateNotifyCreatedNullifier(innerNullifier: Fr) {
456
- 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 });
457
461
  return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
458
462
  }
459
463
 
460
464
  /**
461
- * 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
462
466
  * called for this inner nullifier from the contract with the specified address.
463
467
  * @param innerNullifier - The inner nullifier to check.
464
468
  * @param contractAddress - Address of the contract that emitted the nullifier.
465
469
  * @returns A boolean indicating whether the nullifier is pending or not.
466
470
  */
467
- public async privateIsNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
471
+ public async isNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
468
472
  const siloedNullifier = await siloNullifier(contractAddress, innerNullifier);
469
473
  const isNullifierPending = this.noteCache.getNullifiers(contractAddress).has(siloedNullifier.toBigInt());
470
474
  return Promise.resolve(isNullifierPending);
@@ -477,10 +481,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
477
481
  * @param log - The contract class log to be emitted.
478
482
  * @param counter - The contract class log's counter.
479
483
  */
480
- public privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number) {
484
+ public notifyCreatedContractClassLog(log: ContractClassLog, counter: number) {
481
485
  this.contractClassLogs.push(new CountedContractClassLog(log, counter));
482
486
  const text = log.toBuffer().toString('hex');
483
- this.log.verbose(
487
+ this.logger.verbose(
484
488
  `Emitted log from ContractClassRegistry: "${text.length > 100 ? text.slice(0, 100) + '...' : text}"`,
485
489
  );
486
490
  }
@@ -506,7 +510,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
506
510
  * @param isStaticCall - Whether the call is a static call.
507
511
  * @returns The execution result.
508
512
  */
509
- async privateCallPrivateFunction(
513
+ async callPrivateFunction(
510
514
  targetContractAddress: AztecAddress,
511
515
  functionSelector: FunctionSelector,
512
516
  argsHash: Fr,
@@ -520,28 +524,19 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
520
524
  }
521
525
 
522
526
  const simulatorSetupTimer = new Timer();
523
- this.log.debug(
527
+ this.logger.debug(
524
528
  `Calling private function ${targetContractAddress}:${functionSelector} from ${this.callContext.contractAddress}`,
525
529
  );
526
530
 
527
531
  isStaticCall = isStaticCall || this.callContext.isStaticCall;
528
532
 
529
- // When scopes are set and the target contract is a registered account (has keys in the keyStore),
530
- // expand scopes to include it so nested private calls can sync and read the contract's own notes.
531
- // We only expand for registered accounts because the log service needs the recipient's keys to derive
532
- // tagging secrets, which are only available for registered accounts.
533
- const expandedScopes =
534
- this.scopes && (await this.keyStore.hasAccount(targetContractAddress))
535
- ? [...this.scopes, targetContractAddress]
536
- : this.scopes;
537
-
538
533
  await this.contractSyncService.ensureContractSynced(
539
534
  targetContractAddress,
540
535
  functionSelector,
541
536
  this.utilityExecutor,
542
537
  this.anchorBlockHeader,
543
538
  this.jobId,
544
- expandedScopes,
539
+ this.scopes,
545
540
  );
546
541
 
547
542
  const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
@@ -578,8 +573,8 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
578
573
  jobId: this.jobId,
579
574
  totalPublicCalldataCount: this.totalPublicCalldataCount,
580
575
  sideEffectCounter,
581
- log: this.log,
582
- scopes: expandedScopes,
576
+ log: this.logger,
577
+ scopes: this.scopes,
583
578
  senderForTags: this.senderForTags,
584
579
  simulator: this.simulator!,
585
580
  });
@@ -613,7 +608,8 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
613
608
  };
614
609
  }
615
610
 
616
- #onNewPublicFunctionCall(calldataHash: Fr) {
611
+ /** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */
612
+ public validatePublicCalldata(calldataHash: Fr) {
617
613
  const calldata = this.executionCache.getPreimage(calldataHash);
618
614
  if (!calldata) {
619
615
  throw new Error('Calldata for public call not found in cache');
@@ -623,47 +619,14 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
623
619
  if (this.totalPublicCalldataCount > MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS) {
624
620
  throw new Error(`Too many total args to all enqueued public calls! (> ${MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS})`);
625
621
  }
626
- }
627
-
628
- /**
629
- * Verify relevant information when a public function is enqueued.
630
- * @param targetContractAddress - The address of the contract to call.
631
- * @param calldataHash - The hash of the function selector and arguments.
632
- * @param sideEffectCounter - The side effect counter at the start of the call.
633
- * @param isStaticCall - Whether the call is a static call.
634
- */
635
- public privateNotifyEnqueuedPublicFunctionCall(
636
- _targetContractAddress: AztecAddress,
637
- calldataHash: Fr,
638
- _sideEffectCounter: number,
639
- _isStaticCall: boolean,
640
- ) {
641
- this.#onNewPublicFunctionCall(calldataHash);
642
- return Promise.resolve();
643
- }
644
-
645
- /**
646
- * Verify relevant information when a public teardown function is set.
647
- * @param targetContractAddress - The address of the contract to call.
648
- * @param argsHash - The arguments hash to pass to the function.
649
- * @param sideEffectCounter - The side effect counter at the start of the call.
650
- * @param isStaticCall - Whether the call is a static call.
651
- */
652
- public privateNotifySetPublicTeardownFunctionCall(
653
- _targetContractAddress: AztecAddress,
654
- calldataHash: Fr,
655
- _sideEffectCounter: number,
656
- _isStaticCall: boolean,
657
- ) {
658
- this.#onNewPublicFunctionCall(calldataHash);
659
622
  return Promise.resolve();
660
623
  }
661
624
 
662
- public privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void> {
625
+ public notifyRevertiblePhaseStart(minRevertibleSideEffectCounter: number): Promise<void> {
663
626
  return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
664
627
  }
665
628
 
666
- public privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean> {
629
+ public inRevertiblePhase(sideEffectCounter: number): Promise<boolean> {
667
630
  return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
668
631
  }
669
632
 
@@ -691,7 +654,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
691
654
  return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
692
655
  }
693
656
 
694
- public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {
657
+ public emitOffchainEffect(data: Fr[]): Promise<void> {
695
658
  this.offchainEffects.push({ data });
696
659
  return Promise.resolve();
697
660
  }