@aztec/pxe 0.0.1-commit.29c6b1a3 → 0.0.1-commit.2c85e299c

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