@aztec/pxe 0.0.1-commit.5de5ca79e → 0.0.1-commit.6201a7b05

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 (191) hide show
  1. package/dest/bin/check_oracle_version.js +4 -4
  2. package/dest/block_synchronizer/block_stream_source.d.ts +10 -0
  3. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -0
  4. package/dest/block_synchronizer/block_stream_source.js +37 -0
  5. package/dest/block_synchronizer/block_synchronizer.d.ts +6 -2
  6. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  7. package/dest/block_synchronizer/block_synchronizer.js +30 -10
  8. package/dest/config/index.d.ts +1 -1
  9. package/dest/config/index.d.ts.map +1 -1
  10. package/dest/config/index.js +7 -14
  11. package/dest/contract_function_simulator/contract_function_simulator.d.ts +6 -4
  12. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  13. package/dest/contract_function_simulator/contract_function_simulator.js +10 -7
  14. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  15. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  16. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  17. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -4
  18. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  19. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +3 -6
  20. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +1 -1
  21. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +1 -1
  22. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +1 -1
  23. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -1
  24. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -4
  25. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  26. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +3 -6
  27. package/dest/contract_function_simulator/oracle/interfaces.d.ts +31 -20
  28. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  29. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +1 -1
  30. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +28 -23
  32. package/dest/contract_function_simulator/oracle/oracle.d.ts +50 -20
  33. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  34. package/dest/contract_function_simulator/oracle/oracle.js +157 -41
  35. package/dest/contract_function_simulator/oracle/private_execution.js +1 -1
  36. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +16 -15
  37. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  38. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +36 -21
  39. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +58 -42
  40. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  41. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +205 -96
  42. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  43. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  44. package/dest/contract_function_simulator/pick_notes.js +20 -3
  45. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  46. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  47. package/dest/contract_function_simulator/proxied_contract_data_source.js +3 -0
  48. package/dest/contract_logging.d.ts +9 -4
  49. package/dest/contract_logging.d.ts.map +1 -1
  50. package/dest/contract_logging.js +21 -6
  51. package/dest/contract_sync/contract_sync_service.d.ts +3 -4
  52. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -1
  53. package/dest/contract_sync/contract_sync_service.js +37 -35
  54. package/dest/contract_sync/helpers.d.ts +2 -3
  55. package/dest/contract_sync/helpers.d.ts.map +1 -1
  56. package/dest/contract_sync/helpers.js +7 -2
  57. package/dest/debug/pxe_debug_utils.d.ts +3 -3
  58. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  59. package/dest/entrypoints/client/bundle/index.d.ts +1 -2
  60. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  61. package/dest/entrypoints/client/bundle/index.js +0 -1
  62. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  63. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  64. package/dest/entrypoints/client/bundle/utils.js +2 -2
  65. package/dest/entrypoints/client/lazy/index.d.ts +1 -2
  66. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  67. package/dest/entrypoints/client/lazy/index.js +0 -1
  68. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  69. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  70. package/dest/entrypoints/client/lazy/utils.js +2 -2
  71. package/dest/entrypoints/pxe_creation_options.d.ts +3 -1
  72. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  73. package/dest/entrypoints/pxe_creation_options.js +3 -1
  74. package/dest/entrypoints/server/index.d.ts +2 -3
  75. package/dest/entrypoints/server/index.d.ts.map +1 -1
  76. package/dest/entrypoints/server/index.js +1 -2
  77. package/dest/entrypoints/server/utils.d.ts +2 -2
  78. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  79. package/dest/entrypoints/server/utils.js +2 -2
  80. package/dest/events/event_service.d.ts +3 -2
  81. package/dest/events/event_service.d.ts.map +1 -1
  82. package/dest/events/event_service.js +26 -5
  83. package/dest/events/private_event_filter_validator.d.ts +3 -2
  84. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  85. package/dest/events/private_event_filter_validator.js +15 -0
  86. package/dest/logs/log_service.d.ts +7 -8
  87. package/dest/logs/log_service.d.ts.map +1 -1
  88. package/dest/logs/log_service.js +27 -37
  89. package/dest/messages/message_context_service.d.ts +3 -3
  90. package/dest/messages/message_context_service.d.ts.map +1 -1
  91. package/dest/messages/message_context_service.js +3 -3
  92. package/dest/notes/note_service.d.ts +4 -5
  93. package/dest/notes/note_service.d.ts.map +1 -1
  94. package/dest/notes/note_service.js +14 -5
  95. package/dest/notes_filter.d.ts +2 -3
  96. package/dest/notes_filter.d.ts.map +1 -1
  97. package/dest/oracle_version.d.ts +4 -3
  98. package/dest/oracle_version.d.ts.map +1 -1
  99. package/dest/oracle_version.js +20 -10
  100. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  101. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  102. package/dest/private_kernel/private_kernel_execution_prover.js +4 -7
  103. package/dest/private_kernel/private_kernel_oracle.d.ts +5 -5
  104. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  105. package/dest/private_kernel/private_kernel_oracle.js +12 -15
  106. package/dest/pxe.d.ts +19 -8
  107. package/dest/pxe.d.ts.map +1 -1
  108. package/dest/pxe.js +55 -24
  109. package/dest/storage/anchor_block_store/anchor_block_store.js +1 -1
  110. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  111. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  112. package/dest/storage/capsule_store/capsule_service.js +50 -0
  113. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  114. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  115. package/dest/storage/capsule_store/capsule_store.js +36 -28
  116. package/dest/storage/capsule_store/index.d.ts +2 -1
  117. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  118. package/dest/storage/capsule_store/index.js +1 -0
  119. package/dest/storage/contract_store/contract_store.d.ts +1 -1
  120. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  121. package/dest/storage/contract_store/contract_store.js +4 -2
  122. package/dest/storage/metadata.d.ts +1 -1
  123. package/dest/storage/metadata.js +1 -1
  124. package/dest/storage/note_store/note_store.d.ts +1 -1
  125. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  126. package/dest/storage/note_store/note_store.js +2 -2
  127. package/dest/storage/private_event_store/private_event_store.d.ts +1 -1
  128. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  129. package/dest/storage/private_event_store/private_event_store.js +3 -0
  130. package/dest/storage/private_event_store/stored_private_event.js +1 -1
  131. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +2 -2
  132. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  133. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +2 -16
  134. package/package.json +16 -16
  135. package/src/bin/check_oracle_version.ts +4 -4
  136. package/src/block_synchronizer/block_stream_source.ts +52 -0
  137. package/src/block_synchronizer/block_synchronizer.ts +33 -11
  138. package/src/config/index.ts +2 -8
  139. package/src/contract_function_simulator/contract_function_simulator.ts +13 -10
  140. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  141. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -4
  142. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +1 -1
  143. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
  144. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +1 -4
  145. package/src/contract_function_simulator/oracle/interfaces.ts +46 -18
  146. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +20 -51
  147. package/src/contract_function_simulator/oracle/oracle.ts +222 -36
  148. package/src/contract_function_simulator/oracle/private_execution.ts +1 -1
  149. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +49 -23
  150. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +345 -123
  151. package/src/contract_function_simulator/pick_notes.ts +22 -3
  152. package/src/contract_function_simulator/proxied_contract_data_source.ts +8 -1
  153. package/src/contract_logging.ts +18 -5
  154. package/src/contract_sync/contract_sync_service.ts +64 -69
  155. package/src/contract_sync/helpers.ts +4 -4
  156. package/src/debug/pxe_debug_utils.ts +3 -3
  157. package/src/entrypoints/client/bundle/index.ts +0 -1
  158. package/src/entrypoints/client/bundle/utils.ts +2 -3
  159. package/src/entrypoints/client/lazy/index.ts +0 -1
  160. package/src/entrypoints/client/lazy/utils.ts +2 -3
  161. package/src/entrypoints/pxe_creation_options.ts +7 -0
  162. package/src/entrypoints/server/index.ts +1 -2
  163. package/src/entrypoints/server/utils.ts +2 -3
  164. package/src/events/event_service.ts +30 -5
  165. package/src/events/private_event_filter_validator.ts +21 -1
  166. package/src/logs/log_service.ts +57 -78
  167. package/src/messages/message_context_service.ts +3 -4
  168. package/src/notes/note_service.ts +18 -8
  169. package/src/notes_filter.ts +1 -3
  170. package/src/oracle_version.ts +20 -10
  171. package/src/private_kernel/private_kernel_execution_prover.ts +4 -9
  172. package/src/private_kernel/private_kernel_oracle.ts +14 -14
  173. package/src/pxe.ts +96 -33
  174. package/src/storage/anchor_block_store/anchor_block_store.ts +1 -1
  175. package/src/storage/capsule_store/capsule_service.ts +90 -0
  176. package/src/storage/capsule_store/capsule_store.ts +44 -26
  177. package/src/storage/capsule_store/index.ts +1 -0
  178. package/src/storage/contract_store/contract_store.ts +8 -6
  179. package/src/storage/metadata.ts +1 -1
  180. package/src/storage/note_store/note_store.ts +2 -5
  181. package/src/storage/private_event_store/private_event_store.ts +4 -0
  182. package/src/storage/private_event_store/stored_private_event.ts +1 -1
  183. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +5 -15
  184. package/dest/access_scopes.d.ts +0 -9
  185. package/dest/access_scopes.d.ts.map +0 -1
  186. package/dest/access_scopes.js +0 -6
  187. package/dest/contract_function_simulator/noir-structs/message_tx_context.d.ts +0 -16
  188. package/dest/contract_function_simulator/noir-structs/message_tx_context.d.ts.map +0 -1
  189. package/dest/contract_function_simulator/noir-structs/message_tx_context.js +0 -57
  190. package/src/access_scopes.ts +0 -9
  191. package/src/contract_function_simulator/noir-structs/message_tx_context.ts +0 -55
@@ -25,7 +25,6 @@ import {
25
25
  type TxContext,
26
26
  } from '@aztec/stdlib/tx';
27
27
 
28
- import type { AccessScopes } from '../../access_scopes.js';
29
28
  import { NoteService } from '../../notes/note_service.js';
30
29
  import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
31
30
  import { syncSenderTaggingIndexes } from '../../tagging/index.js';
@@ -43,7 +42,7 @@ export type PrivateExecutionOracleArgs = Omit<UtilityExecutionOracleArgs, 'contr
43
42
  txContext: TxContext;
44
43
  callContext: CallContext;
45
44
  /** Needed to trigger contract synchronization before nested calls */
46
- utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
45
+ utilityExecutor: (call: FunctionCall, scopes: AztecAddress[]) => Promise<void>;
47
46
  executionCache: HashedValuesCache;
48
47
  noteCache: ExecutionNoteCache;
49
48
  taggingIndexCache: ExecutionTaggingIndexCache;
@@ -76,14 +75,17 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
76
75
  private readonly argsHash: Fr;
77
76
  private readonly txContext: TxContext;
78
77
  private readonly callContext: CallContext;
79
- private readonly utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
78
+ private readonly utilityExecutor: (call: FunctionCall, scopes: AztecAddress[]) => Promise<void>;
80
79
  private readonly executionCache: HashedValuesCache;
81
80
  private readonly noteCache: ExecutionNoteCache;
82
81
  private readonly taggingIndexCache: ExecutionTaggingIndexCache;
83
82
  private readonly senderTaggingStore: SenderTaggingStore;
84
83
  private totalPublicCalldataCount: number;
85
- protected sideEffectCounter: number;
86
- private senderForTags?: AztecAddress;
84
+ private readonly initialSideEffectCounter: number;
85
+ /** Sender for tags passed in at oracle construction time. Returned by `getSenderForTags` unless overridden. */
86
+ private readonly defaultSenderForTags: AztecAddress | undefined;
87
+ /** Per-call sender-for-tags override, set by `setSenderForTags`. Takes precedence over `defaultSenderForTags`. */
88
+ private currentSenderForTags: AztecAddress | undefined;
87
89
  private readonly simulator?: CircuitSimulator;
88
90
 
89
91
  constructor(args: PrivateExecutionOracleArgs) {
@@ -101,13 +103,18 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
101
103
  this.taggingIndexCache = args.taggingIndexCache;
102
104
  this.senderTaggingStore = args.senderTaggingStore;
103
105
  this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
104
- this.sideEffectCounter = args.sideEffectCounter ?? 0;
105
- this.senderForTags = args.senderForTags;
106
+ this.initialSideEffectCounter = args.sideEffectCounter ?? 0;
107
+ this.defaultSenderForTags = args.senderForTags;
106
108
  this.simulator = args.simulator;
107
109
  }
108
110
 
109
111
  public getPrivateContextInputs(): PrivateContextInputs {
110
- return new PrivateContextInputs(this.callContext, this.anchorBlockHeader, this.txContext, this.sideEffectCounter);
112
+ return new PrivateContextInputs(
113
+ this.callContext,
114
+ this.anchorBlockHeader,
115
+ this.txContext,
116
+ this.initialSideEffectCounter,
117
+ );
111
118
  }
112
119
 
113
120
  // We still need this function until we can get user-defined ordering of structs for fn arguments
@@ -174,11 +181,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
174
181
  * for a tag in order to emit a log. Constrained tagging should not use this as there is no
175
182
  * guarantee that the recipient knows about the sender, and hence about the shared secret.
176
183
  *
177
- * The value persists through nested calls, meaning all calls down the stack will use the same
178
- * 'senderForTags' value (unless it is replaced).
184
+ * Returns `currentSenderForTags` if set (via `setSenderForTags`), otherwise `defaultSenderForTags`.
179
185
  */
180
186
  public getSenderForTags(): Promise<AztecAddress | undefined> {
181
- return Promise.resolve(this.senderForTags);
187
+ return Promise.resolve(this.currentSenderForTags ?? this.defaultSenderForTags);
182
188
  }
183
189
 
184
190
  /**
@@ -188,12 +194,14 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
188
194
  * for a tag in order to emit a log. Constrained tagging should not use this as there is no
189
195
  * guarantee that the recipient knows about the sender, and hence about the shared secret.
190
196
  *
191
- * Account contracts typically set this value before calling other contracts. The value persists
192
- * through nested calls, meaning all calls down the stack will use the same 'senderForTags'
193
- * value (unless it is replaced by another call to this setter).
197
+ * Overrides `defaultSenderForTags` for the remainder of this call. Each oracle instance is
198
+ * independent, so this has no effect on any other call in the execution.
194
199
  */
195
200
  public setSenderForTags(senderForTags: AztecAddress): Promise<void> {
196
- this.senderForTags = senderForTags;
201
+ this.logger.debug(
202
+ `Sender for tags switched to ${senderForTags} by contract ${this.contractAddress} (default was ${this.defaultSenderForTags})`,
203
+ );
204
+ this.currentSenderForTags = senderForTags;
197
205
  return Promise.resolve();
198
206
  }
199
207
 
@@ -210,6 +218,16 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
210
218
  recipient,
211
219
  );
212
220
 
221
+ if (!extendedSecret) {
222
+ // We'd only fail to compute an extended secret if the recipient is an invalid address. To prevent
223
+ // king-of-the-hill attacks, instead of failing we use a random tag. By including a correct-looking tag in the
224
+ // log, the transaction shape is preserved and no privacy is leaked, even if the tag is bogus.
225
+ this.logger.warn(`Computing a tag for invalid recipient ${recipient} - returning a random tag instead`, {
226
+ contractAddress: this.contractAddress,
227
+ });
228
+ return Tag.random();
229
+ }
230
+
213
231
  const index = await this.#getIndexToUseForSecret(extendedSecret);
214
232
  this.logger.debug(
215
233
  `Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`,
@@ -265,7 +283,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
265
283
  * @param values - Values to store.
266
284
  * @returns The hash of the values.
267
285
  */
268
- public storeInExecutionCache(values: Fr[], hash: Fr) {
286
+ public setHashPreimage(values: Fr[], hash: Fr) {
269
287
  return this.executionCache.store(values, hash);
270
288
  }
271
289
 
@@ -274,7 +292,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
274
292
  * @param hash - Hash of the values.
275
293
  * @returns The values.
276
294
  */
277
- public loadFromExecutionCache(hash: Fr): Promise<Fr[]> {
295
+ public getHashPreimage(hash: Fr): Promise<Fr[]> {
278
296
  const preimage = this.executionCache.getPreimage(hash);
279
297
  if (!preimage) {
280
298
  throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
@@ -282,7 +300,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
282
300
  return Promise.resolve(preimage);
283
301
  }
284
302
 
285
- override async checkNullifierExists(innerNullifier: Fr): Promise<boolean> {
303
+ override async doesNullifierExist(innerNullifier: Fr): Promise<boolean> {
286
304
  // This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
287
305
  // in the synched block, during private execution there's also the possibility of it being pending, i.e. created
288
306
  // in the current transaction.
@@ -295,7 +313,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
295
313
 
296
314
  return (
297
315
  this.noteCache.getNullifiers(this.contractAddress).has(nullifier) ||
298
- (await super.checkNullifierExists(innerNullifier))
316
+ (await super.doesNullifierExist(innerNullifier))
299
317
  );
300
318
  }
301
319
 
@@ -555,7 +573,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
555
573
  senderTaggingStore: this.senderTaggingStore,
556
574
  recipientTaggingStore: this.recipientTaggingStore,
557
575
  senderAddressBookStore: this.senderAddressBookStore,
558
- capsuleStore: this.capsuleStore,
576
+ capsuleService: this.capsuleService,
559
577
  privateEventStore: this.privateEventStore,
560
578
  messageContextService: this.messageContextService,
561
579
  contractSyncService: this.contractSyncService,
@@ -564,8 +582,9 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
564
582
  sideEffectCounter,
565
583
  log: this.logger,
566
584
  scopes: this.scopes,
567
- senderForTags: this.senderForTags,
585
+ senderForTags: this.defaultSenderForTags,
568
586
  simulator: this.simulator!,
587
+ l2TipsStore: this.l2TipsStore,
569
588
  });
570
589
 
571
590
  const setupTime = simulatorSetupTimer.ms();
@@ -578,6 +597,9 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
578
597
  functionSelector,
579
598
  );
580
599
 
600
+ // Propagate the nested call's calldata count so the parent sees its increments on subsequent enqueues.
601
+ this.totalPublicCalldataCount = privateExecutionOracle.getTotalPublicCalldataCount();
602
+
581
603
  if (isStaticCall) {
582
604
  this.#checkValidStaticCall(childExecutionResult);
583
605
  }
@@ -598,7 +620,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
598
620
  }
599
621
 
600
622
  /** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */
601
- public validatePublicCalldata(calldataHash: Fr) {
623
+ public assertValidPublicCalldata(calldataHash: Fr) {
602
624
  const calldata = this.executionCache.getPreimage(calldataHash);
603
625
  if (!calldata) {
604
626
  throw new Error('Calldata for public call not found in cache');
@@ -611,11 +633,15 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
611
633
  return Promise.resolve();
612
634
  }
613
635
 
636
+ public getTotalPublicCalldataCount(): number {
637
+ return this.totalPublicCalldataCount;
638
+ }
639
+
614
640
  public notifyRevertiblePhaseStart(minRevertibleSideEffectCounter: number): Promise<void> {
615
641
  return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
616
642
  }
617
643
 
618
- public inRevertiblePhase(sideEffectCounter: number): Promise<boolean> {
644
+ public isExecutionInRevertiblePhase(sideEffectCounter: number): Promise<boolean> {
619
645
  return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
620
646
  }
621
647