@aztec/pxe 0.0.1-commit.d1cd2107c → 0.0.1-commit.d1da697d6

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 (165) hide show
  1. package/dest/block_synchronizer/block_synchronizer.d.ts +1 -1
  2. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  3. package/dest/block_synchronizer/block_synchronizer.js +6 -0
  4. package/dest/contract_function_simulator/contract_function_simulator.d.ts +10 -5
  5. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  6. package/dest/contract_function_simulator/contract_function_simulator.js +29 -6
  7. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +5 -5
  8. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  9. package/dest/contract_function_simulator/execution_tagging_index_cache.js +17 -9
  10. package/dest/contract_function_simulator/index.d.ts +2 -1
  11. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  12. package/dest/contract_function_simulator/index.js +1 -0
  13. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -5
  14. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  15. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +7 -9
  16. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +1 -1
  17. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  18. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -3
  19. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -6
  20. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  21. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +5 -10
  22. package/dest/contract_function_simulator/oracle/interfaces.d.ts +21 -20
  23. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  24. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +9 -0
  25. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +1 -0
  26. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +38 -0
  27. package/dest/contract_function_simulator/oracle/oracle.d.ts +39 -19
  28. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  29. package/dest/contract_function_simulator/oracle/oracle.js +91 -44
  30. package/dest/contract_function_simulator/oracle/private_execution.js +5 -3
  31. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +12 -38
  32. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +21 -44
  34. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +45 -28
  35. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  36. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +164 -71
  37. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  38. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  39. package/dest/contract_function_simulator/pick_notes.js +9 -2
  40. package/dest/contract_logging.d.ts +9 -4
  41. package/dest/contract_logging.d.ts.map +1 -1
  42. package/dest/contract_logging.js +21 -6
  43. package/dest/contract_sync/contract_sync_service.d.ts +6 -5
  44. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -1
  45. package/dest/contract_sync/contract_sync_service.js +44 -37
  46. package/dest/contract_sync/helpers.d.ts +2 -3
  47. package/dest/contract_sync/helpers.d.ts.map +1 -1
  48. package/dest/contract_sync/helpers.js +7 -2
  49. package/dest/debug/pxe_debug_utils.d.ts +3 -3
  50. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  51. package/dest/entrypoints/client/bundle/index.d.ts +1 -2
  52. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  53. package/dest/entrypoints/client/bundle/index.js +0 -1
  54. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  55. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  56. package/dest/entrypoints/client/bundle/utils.js +2 -2
  57. package/dest/entrypoints/client/lazy/index.d.ts +1 -2
  58. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  59. package/dest/entrypoints/client/lazy/index.js +0 -1
  60. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  61. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  62. package/dest/entrypoints/client/lazy/utils.js +2 -2
  63. package/dest/entrypoints/pxe_creation_options.d.ts +3 -1
  64. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  65. package/dest/entrypoints/pxe_creation_options.js +3 -1
  66. package/dest/entrypoints/server/index.d.ts +1 -2
  67. package/dest/entrypoints/server/index.d.ts.map +1 -1
  68. package/dest/entrypoints/server/index.js +0 -1
  69. package/dest/entrypoints/server/utils.d.ts +2 -2
  70. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  71. package/dest/entrypoints/server/utils.js +2 -2
  72. package/dest/events/event_service.d.ts +3 -2
  73. package/dest/events/event_service.d.ts.map +1 -1
  74. package/dest/events/event_service.js +16 -4
  75. package/dest/logs/log_service.d.ts +6 -7
  76. package/dest/logs/log_service.d.ts.map +1 -1
  77. package/dest/logs/log_service.js +32 -30
  78. package/dest/messages/message_context_service.d.ts +17 -0
  79. package/dest/messages/message_context_service.d.ts.map +1 -0
  80. package/dest/messages/message_context_service.js +36 -0
  81. package/dest/notes/note_service.d.ts +4 -5
  82. package/dest/notes/note_service.d.ts.map +1 -1
  83. package/dest/notes/note_service.js +14 -5
  84. package/dest/notes_filter.d.ts +2 -3
  85. package/dest/notes_filter.d.ts.map +1 -1
  86. package/dest/oracle_version.d.ts +2 -2
  87. package/dest/oracle_version.js +2 -2
  88. package/dest/pxe.d.ts +9 -7
  89. package/dest/pxe.d.ts.map +1 -1
  90. package/dest/pxe.js +39 -23
  91. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  92. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  93. package/dest/storage/capsule_store/capsule_service.js +50 -0
  94. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  95. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  96. package/dest/storage/capsule_store/capsule_store.js +33 -28
  97. package/dest/storage/capsule_store/index.d.ts +2 -1
  98. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  99. package/dest/storage/capsule_store/index.js +1 -0
  100. package/dest/storage/metadata.d.ts +1 -1
  101. package/dest/storage/metadata.js +1 -1
  102. package/dest/storage/note_store/note_store.d.ts +1 -1
  103. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  104. package/dest/storage/note_store/note_store.js +2 -2
  105. package/dest/storage/tagging_store/sender_tagging_store.d.ts +26 -25
  106. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  107. package/dest/storage/tagging_store/sender_tagging_store.js +141 -115
  108. package/dest/tagging/index.d.ts +2 -2
  109. package/dest/tagging/index.d.ts.map +1 -1
  110. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +1 -1
  111. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  112. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +10 -1
  113. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +4 -3
  114. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
  115. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +20 -10
  116. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +2 -1
  117. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  118. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +24 -11
  119. package/package.json +16 -16
  120. package/src/block_synchronizer/block_synchronizer.ts +6 -0
  121. package/src/contract_function_simulator/contract_function_simulator.ts +42 -10
  122. package/src/contract_function_simulator/execution_tagging_index_cache.ts +16 -11
  123. package/src/contract_function_simulator/index.ts +1 -0
  124. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +8 -8
  125. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -4
  126. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +3 -9
  127. package/src/contract_function_simulator/oracle/interfaces.ts +34 -28
  128. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +98 -0
  129. package/src/contract_function_simulator/oracle/oracle.ts +120 -64
  130. package/src/contract_function_simulator/oracle/private_execution.ts +4 -4
  131. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +26 -65
  132. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +288 -85
  133. package/src/contract_function_simulator/pick_notes.ts +9 -2
  134. package/src/contract_logging.ts +18 -5
  135. package/src/contract_sync/contract_sync_service.ts +77 -59
  136. package/src/contract_sync/helpers.ts +4 -4
  137. package/src/debug/pxe_debug_utils.ts +3 -3
  138. package/src/entrypoints/client/bundle/index.ts +0 -1
  139. package/src/entrypoints/client/bundle/utils.ts +2 -3
  140. package/src/entrypoints/client/lazy/index.ts +0 -1
  141. package/src/entrypoints/client/lazy/utils.ts +2 -3
  142. package/src/entrypoints/pxe_creation_options.ts +7 -0
  143. package/src/entrypoints/server/index.ts +0 -1
  144. package/src/entrypoints/server/utils.ts +2 -3
  145. package/src/events/event_service.ts +17 -4
  146. package/src/logs/log_service.ts +63 -48
  147. package/src/messages/message_context_service.ts +44 -0
  148. package/src/notes/note_service.ts +18 -8
  149. package/src/notes_filter.ts +1 -3
  150. package/src/oracle_version.ts +2 -2
  151. package/src/pxe.ts +62 -28
  152. package/src/storage/capsule_store/capsule_service.ts +90 -0
  153. package/src/storage/capsule_store/capsule_store.ts +34 -26
  154. package/src/storage/capsule_store/index.ts +1 -0
  155. package/src/storage/metadata.ts +1 -1
  156. package/src/storage/note_store/note_store.ts +2 -5
  157. package/src/storage/tagging_store/sender_tagging_store.ts +182 -135
  158. package/src/tagging/index.ts +1 -1
  159. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +19 -1
  160. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +26 -11
  161. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +19 -9
  162. package/dest/access_scopes.d.ts +0 -9
  163. package/dest/access_scopes.d.ts.map +0 -1
  164. package/dest/access_scopes.js +0 -6
  165. package/src/access_scopes.ts +0 -9
@@ -6,6 +6,7 @@ import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
6
6
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
7
7
  import { BlockHash } from '@aztec/stdlib/block';
8
8
  import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
9
+ import { buildLegacyOracleCallbacks } from './legacy_oracle_mappings.js';
9
10
  import { packAsHintedNote } from './note_packing_utils.js';
10
11
  export class UnavailableOracleError extends Error {
11
12
  constructor(oracleName){
@@ -14,6 +15,25 @@ export class UnavailableOracleError extends Error {
14
15
  }
15
16
  /**
16
17
  * A data source that has all the apis required by Aztec.nr.
18
+ *
19
+ * ## Oracle naming conventions
20
+ *
21
+ * We try to keep oracle naming consistent, please see below the conventions we adhere to.
22
+ *
23
+ * Each oracle method name has the form `aztec_{scope}_{verb}{Object}`, where:
24
+ *
25
+ * - **Scope prefix** indicates the execution context required:
26
+ * - `aztec_prv_` — available only during private function execution.
27
+ * - `aztec_utl_` — available during both utility and private execution.
28
+ *
29
+ * - **Verb** signals the operation's semantics (verb-first, then object):
30
+ * - `get` — read / lookup / get data from oracle into contract.
31
+ * - `does`/`is`/`has` — predicate (returns boolean).
32
+ * - `emit`/`notify` — propagate data from contract to oracle.
33
+ * - `set` — contract driven oracle state mutation (capsules, execution cache, tagging, etc).
34
+ * - `call` — trigger nested execution (control flow).
35
+ * - `assert` — validate a condition, throw on failure.
36
+ * - Standalone verbs (`delete`, `copy`, `decrypt`, `log`, etc) are used when no generic verb fits.
17
37
  */ export class Oracle {
18
38
  handler;
19
39
  constructor(handler){
@@ -60,11 +80,15 @@ export class UnavailableOracleError extends Error {
60
80
  }
61
81
  });
62
82
  // Build callback object and return it
63
- return oracleNames.reduce((acc, name)=>{
83
+ const callback = oracleNames.reduce((acc, name)=>{
64
84
  const method = this[name];
65
85
  acc[name] = method.bind(this);
66
86
  return acc;
67
87
  }, {});
88
+ return {
89
+ ...callback,
90
+ ...buildLegacyOracleCallbacks(this)
91
+ };
68
92
  }
69
93
  // eslint-disable-next-line camelcase
70
94
  aztec_utl_assertCompatibleOracleVersion([version]) {
@@ -79,13 +103,13 @@ export class UnavailableOracleError extends Error {
79
103
  ]);
80
104
  }
81
105
  // eslint-disable-next-line camelcase
82
- aztec_prv_storeInExecutionCache(values, [hash]) {
83
- this.handlerAsPrivate().storeInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
106
+ aztec_prv_setHashPreimage(values, [hash]) {
107
+ this.handlerAsPrivate().setHashPreimage(values.map(Fr.fromString), Fr.fromString(hash));
84
108
  return Promise.resolve([]);
85
109
  }
86
110
  // eslint-disable-next-line camelcase
87
- async aztec_prv_loadFromExecutionCache([returnsHash]) {
88
- const values = await this.handlerAsPrivate().loadFromExecutionCache(Fr.fromString(returnsHash));
111
+ async aztec_prv_getHashPreimage([returnsHash]) {
112
+ const values = await this.handlerAsPrivate().getHashPreimage(Fr.fromString(returnsHash));
89
113
  return [
90
114
  values.map(toACVMField)
91
115
  ];
@@ -182,9 +206,9 @@ export class UnavailableOracleError extends Error {
182
206
  ];
183
207
  }
184
208
  // eslint-disable-next-line camelcase
185
- async aztec_utl_tryGetPublicKeysAndPartialAddress([address]) {
209
+ async aztec_utl_getPublicKeysAndPartialAddress([address]) {
186
210
  const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
187
- const result = await this.handlerAsUtility().tryGetPublicKeysAndPartialAddress(parsedAddress);
211
+ const result = await this.handlerAsUtility().getPublicKeysAndPartialAddress(parsedAddress);
188
212
  // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
189
213
  // with two fields: `some` (a boolean) and `value` (a field array in this case).
190
214
  if (result === undefined) {
@@ -246,8 +270,8 @@ export class UnavailableOracleError extends Error {
246
270
  ];
247
271
  }
248
272
  // eslint-disable-next-line camelcase
249
- async aztec_utl_checkNullifierExists([innerNullifier]) {
250
- const exists = await this.handlerAsUtility().checkNullifierExists(Fr.fromString(innerNullifier));
273
+ async aztec_utl_doesNullifierExist([innerNullifier]) {
274
+ const exists = await this.handlerAsUtility().doesNullifierExist(Fr.fromString(innerNullifier));
251
275
  return [
252
276
  toACVMField(exists)
253
277
  ];
@@ -258,8 +282,8 @@ export class UnavailableOracleError extends Error {
258
282
  return message.toNoirRepresentation();
259
283
  }
260
284
  // eslint-disable-next-line camelcase
261
- async aztec_utl_storageRead([blockHash], [contractAddress], [startStorageSlot], [numberOfElements]) {
262
- const values = await this.handlerAsUtility().storageRead(BlockHash.fromString(blockHash), new AztecAddress(Fr.fromString(contractAddress)), Fr.fromString(startStorageSlot), +numberOfElements);
285
+ async aztec_utl_getFromPublicStorage([blockHash], [contractAddress], [startStorageSlot], [numberOfElements]) {
286
+ const values = await this.handlerAsUtility().getFromPublicStorage(BlockHash.fromString(blockHash), new AztecAddress(Fr.fromString(contractAddress)), Fr.fromString(startStorageSlot), +numberOfElements);
263
287
  return [
264
288
  values.map(toACVMField)
265
289
  ];
@@ -292,23 +316,18 @@ export class UnavailableOracleError extends Error {
292
316
  ];
293
317
  }
294
318
  // eslint-disable-next-line camelcase
295
- async aztec_prv_notifyEnqueuedPublicFunctionCall([contractAddress], [calldataHash], [sideEffectCounter], [isStaticCall]) {
296
- await this.handlerAsPrivate().notifyEnqueuedPublicFunctionCall(AztecAddress.fromString(contractAddress), Fr.fromString(calldataHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
319
+ async aztec_prv_assertValidPublicCalldata([calldataHash]) {
320
+ await this.handlerAsPrivate().assertValidPublicCalldata(Fr.fromString(calldataHash));
297
321
  return [];
298
322
  }
299
323
  // eslint-disable-next-line camelcase
300
- async aztec_prv_notifySetPublicTeardownFunctionCall([contractAddress], [calldataHash], [sideEffectCounter], [isStaticCall]) {
301
- await this.handlerAsPrivate().notifySetPublicTeardownFunctionCall(AztecAddress.fromString(contractAddress), Fr.fromString(calldataHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
302
- return [];
303
- }
304
- // eslint-disable-next-line camelcase
305
- async aztec_prv_notifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]) {
306
- await this.handlerAsPrivate().notifySetMinRevertibleSideEffectCounter(Fr.fromString(minRevertibleSideEffectCounter).toNumber());
324
+ async aztec_prv_notifyRevertiblePhaseStart([minRevertibleSideEffectCounter]) {
325
+ await this.handlerAsPrivate().notifyRevertiblePhaseStart(Fr.fromString(minRevertibleSideEffectCounter).toNumber());
307
326
  return Promise.resolve([]);
308
327
  }
309
328
  // eslint-disable-next-line camelcase
310
- async aztec_prv_isSideEffectCounterRevertible([sideEffectCounter]) {
311
- const isRevertible = await this.handlerAsPrivate().isSideEffectCounterRevertible(Fr.fromString(sideEffectCounter).toNumber());
329
+ async aztec_prv_isExecutionInRevertiblePhase([sideEffectCounter]) {
330
+ const isRevertible = await this.handlerAsPrivate().isExecutionInRevertiblePhase(Fr.fromString(sideEffectCounter).toNumber());
312
331
  return Promise.resolve([
313
332
  toACVMField(isRevertible)
314
333
  ]);
@@ -321,28 +340,33 @@ export class UnavailableOracleError extends Error {
321
340
  ];
322
341
  }
323
342
  // eslint-disable-next-line camelcase
324
- async aztec_utl_fetchTaggedLogs([pendingTaggedLogArrayBaseSlot]) {
325
- await this.handlerAsUtility().fetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
343
+ async aztec_utl_getPendingTaggedLogs([pendingTaggedLogArrayBaseSlot], [scope]) {
344
+ await this.handlerAsUtility().getPendingTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot), AztecAddress.fromString(scope));
326
345
  return [];
327
346
  }
328
347
  // eslint-disable-next-line camelcase
329
- async aztec_utl_validateAndStoreEnqueuedNotesAndEvents([contractAddress], [noteValidationRequestsArrayBaseSlot], [eventValidationRequestsArrayBaseSlot]) {
330
- await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(AztecAddress.fromString(contractAddress), Fr.fromString(noteValidationRequestsArrayBaseSlot), Fr.fromString(eventValidationRequestsArrayBaseSlot));
348
+ async aztec_utl_validateAndStoreEnqueuedNotesAndEvents([contractAddress], [noteValidationRequestsArrayBaseSlot], [eventValidationRequestsArrayBaseSlot], [maxNotePackedLen], [maxEventSerializedLen], [scope]) {
349
+ await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(AztecAddress.fromString(contractAddress), Fr.fromString(noteValidationRequestsArrayBaseSlot), Fr.fromString(eventValidationRequestsArrayBaseSlot), Fr.fromString(maxNotePackedLen).toNumber(), Fr.fromString(maxEventSerializedLen).toNumber(), AztecAddress.fromString(scope));
331
350
  return [];
332
351
  }
333
352
  // eslint-disable-next-line camelcase
334
- async aztec_utl_bulkRetrieveLogs([contractAddress], [logRetrievalRequestsArrayBaseSlot], [logRetrievalResponsesArrayBaseSlot]) {
335
- await this.handlerAsUtility().bulkRetrieveLogs(AztecAddress.fromString(contractAddress), Fr.fromString(logRetrievalRequestsArrayBaseSlot), Fr.fromString(logRetrievalResponsesArrayBaseSlot));
353
+ async aztec_utl_getLogsByTag([contractAddress], [logRetrievalRequestsArrayBaseSlot], [logRetrievalResponsesArrayBaseSlot], [scope]) {
354
+ await this.handlerAsUtility().getLogsByTag(AztecAddress.fromString(contractAddress), Fr.fromString(logRetrievalRequestsArrayBaseSlot), Fr.fromString(logRetrievalResponsesArrayBaseSlot), AztecAddress.fromString(scope));
336
355
  return [];
337
356
  }
338
357
  // eslint-disable-next-line camelcase
339
- async aztec_utl_storeCapsule([contractAddress], [slot], capsule) {
340
- await this.handlerAsUtility().storeCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), capsule.map(Fr.fromString));
358
+ async aztec_utl_getMessageContextsByTxHash([contractAddress], [messageContextRequestsArrayBaseSlot], [messageContextResponsesArrayBaseSlot], [scope]) {
359
+ await this.handlerAsUtility().getMessageContextsByTxHash(AztecAddress.fromString(contractAddress), Fr.fromString(messageContextRequestsArrayBaseSlot), Fr.fromString(messageContextResponsesArrayBaseSlot), AztecAddress.fromString(scope));
341
360
  return [];
342
361
  }
343
362
  // eslint-disable-next-line camelcase
344
- async aztec_utl_loadCapsule([contractAddress], [slot], [tSize]) {
345
- const values = await this.handlerAsUtility().loadCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
363
+ aztec_utl_setCapsule([contractAddress], [slot], capsule, [scope]) {
364
+ this.handlerAsUtility().setCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), capsule.map(Fr.fromString), AztecAddress.fromField(Fr.fromString(scope)));
365
+ return Promise.resolve([]);
366
+ }
367
+ // eslint-disable-next-line camelcase
368
+ async aztec_utl_getCapsule([contractAddress], [slot], [tSize], [scope]) {
369
+ const values = await this.handlerAsUtility().getCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), AztecAddress.fromField(Fr.fromString(scope)));
346
370
  // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
347
371
  // with two fields: `some` (a boolean) and `value` (a field array in this case).
348
372
  if (values === null) {
@@ -360,35 +384,58 @@ export class UnavailableOracleError extends Error {
360
384
  }
361
385
  }
362
386
  // eslint-disable-next-line camelcase
363
- async aztec_utl_deleteCapsule([contractAddress], [slot]) {
364
- await this.handlerAsUtility().deleteCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
365
- return [];
387
+ aztec_utl_deleteCapsule([contractAddress], [slot], [scope]) {
388
+ this.handlerAsUtility().deleteCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), AztecAddress.fromField(Fr.fromString(scope)));
389
+ return Promise.resolve([]);
366
390
  }
367
391
  // eslint-disable-next-line camelcase
368
- async aztec_utl_copyCapsule([contractAddress], [srcSlot], [dstSlot], [numEntries]) {
369
- await this.handlerAsUtility().copyCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(srcSlot), Fr.fromString(dstSlot), Fr.fromString(numEntries).toNumber());
392
+ async aztec_utl_copyCapsule([contractAddress], [srcSlot], [dstSlot], [numEntries], [scope]) {
393
+ await this.handlerAsUtility().copyCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(srcSlot), Fr.fromString(dstSlot), Fr.fromString(numEntries).toNumber(), AztecAddress.fromField(Fr.fromString(scope)));
370
394
  return [];
371
395
  }
372
396
  // eslint-disable-next-line camelcase
373
- async aztec_utl_aes128Decrypt(ciphertextBVecStorage, [ciphertextLength], iv, symKey) {
397
+ async aztec_utl_decryptAes128(ciphertextBVecStorage, [ciphertextLength], iv, symKey) {
374
398
  const ciphertext = fromUintBoundedVec(ciphertextBVecStorage, ciphertextLength, 8);
375
399
  const ivBuffer = fromUintArray(iv, 8);
376
400
  const symKeyBuffer = fromUintArray(symKey, 8);
377
- const plaintext = await this.handlerAsUtility().aes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
378
- return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
401
+ // Noir Option<BoundedVec> is encoded as [is_some: Field, storage: Field[], length: Field].
402
+ try {
403
+ const plaintext = await this.handlerAsUtility().decryptAes128(ciphertext, ivBuffer, symKeyBuffer);
404
+ const [storage, length] = bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
405
+ return [
406
+ toACVMField(1),
407
+ storage,
408
+ length
409
+ ];
410
+ } catch {
411
+ const zeroStorage = Array(ciphertextBVecStorage.length).fill(toACVMField(0));
412
+ return [
413
+ toACVMField(0),
414
+ zeroStorage,
415
+ toACVMField(0)
416
+ ];
417
+ }
379
418
  }
380
419
  // eslint-disable-next-line camelcase
381
- async aztec_utl_getSharedSecret([address], [ephPKField0], [ephPKField1], [ephPKField2]) {
420
+ async aztec_utl_getSharedSecret([address], [ephPKField0], [ephPKField1], [ephPKField2], [contractAddress]) {
382
421
  const secret = await this.handlerAsUtility().getSharedSecret(AztecAddress.fromField(Fr.fromString(address)), Point.fromFields([
383
422
  ephPKField0,
384
423
  ephPKField1,
385
424
  ephPKField2
386
- ].map(Fr.fromString)));
387
- return secret.toFields().map(toACVMField);
425
+ ].map(Fr.fromString)), AztecAddress.fromField(Fr.fromString(contractAddress)));
426
+ return [
427
+ toACVMField(secret)
428
+ ];
429
+ }
430
+ // eslint-disable-next-line camelcase
431
+ aztec_utl_setContractSyncCacheInvalid([contractAddress], scopes, [scopeCount]) {
432
+ const scopeAddresses = scopes.slice(0, +scopeCount).map((s)=>AztecAddress.fromField(Fr.fromString(s)));
433
+ this.handlerAsUtility().setContractSyncCacheInvalid(AztecAddress.fromField(Fr.fromString(contractAddress)), scopeAddresses);
434
+ return Promise.resolve([]);
388
435
  }
389
436
  // eslint-disable-next-line camelcase
390
437
  async aztec_utl_emitOffchainEffect(data) {
391
- await this.handlerAsPrivate().emitOffchainEffect(data.map(Fr.fromString));
438
+ await this.handlerAsUtility().emitOffchainEffect(data.map(Fr.fromString));
392
439
  return [];
393
440
  }
394
441
  // eslint-disable-next-line camelcase
@@ -45,11 +45,11 @@ import { Oracle } from './oracle.js';
45
45
  appCircuitName: functionName
46
46
  });
47
47
  const contractClassLogs = privateExecutionOracle.getContractClassLogs();
48
- const rawReturnValues = await privateExecutionOracle.loadFromExecutionCache(publicInputs.returnsHash);
48
+ const rawReturnValues = await privateExecutionOracle.getHashPreimage(publicInputs.returnsHash);
49
49
  const newNotes = privateExecutionOracle.getNewNotes();
50
50
  const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
51
51
  const offchainEffects = privateExecutionOracle.getOffchainEffects();
52
- const preTags = privateExecutionOracle.getUsedPreTags();
52
+ const taggingIndexRanges = privateExecutionOracle.getUsedTaggingIndexRanges();
53
53
  const nestedExecutionResults = privateExecutionOracle.getNestedExecutionResults();
54
54
  let timerSubtractionList = nestedExecutionResults;
55
55
  let witgenTime = duration;
@@ -59,7 +59,9 @@ import { Oracle } from './oracle.js';
59
59
  timerSubtractionList = timerSubtractionList.flatMap((nested)=>nested.nestedExecutionResults ?? []);
60
60
  }
61
61
  log.debug(`Returning from call to ${contractAddress.toString()}:${functionSelector}`);
62
- return new PrivateCallExecutionResult(artifact.bytecode, Buffer.from(artifact.verificationKey, 'base64'), partialWitness, publicInputs, newNotes, noteHashNullifierCounterMap, rawReturnValues, offchainEffects, preTags, nestedExecutionResults, contractClassLogs, {
62
+ return new PrivateCallExecutionResult(artifact.bytecode, Buffer.from(artifact.verificationKey, 'base64'), partialWitness, publicInputs, newNotes, noteHashNullifierCounterMap, rawReturnValues, offchainEffects.map((e)=>({
63
+ data: e.data
64
+ })), taggingIndexRanges, nestedExecutionResults, contractClassLogs, {
63
65
  timings: {
64
66
  witgen: witgenTime,
65
67
  oracles: acirExecutionResult.oracles
@@ -3,12 +3,10 @@ import { type CircuitSimulator } from '@aztec/simulator/client';
3
3
  import { type FunctionAbi, type FunctionCall, FunctionSelector, type NoteSelector } from '@aztec/stdlib/abi';
4
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
5
  import { PrivateContextInputs } from '@aztec/stdlib/kernel';
6
- import { type ContractClassLog, type PreTag } from '@aztec/stdlib/logs';
6
+ import { type ContractClassLog, type TaggingIndexRange } from '@aztec/stdlib/logs';
7
7
  import { Tag } from '@aztec/stdlib/logs';
8
8
  import { type NoteStatus } from '@aztec/stdlib/note';
9
9
  import { CallContext, CountedContractClassLog, NoteAndSlot, PrivateCallExecutionResult, type TxContext } from '@aztec/stdlib/tx';
10
- import type { AccessScopes } from '../../access_scopes.js';
11
- import type { ContractSyncService } from '../../contract_sync/contract_sync_service.js';
12
10
  import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
13
11
  import type { ExecutionNoteCache } from '../execution_note_cache.js';
14
12
  import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
@@ -21,12 +19,11 @@ export type PrivateExecutionOracleArgs = Omit<UtilityExecutionOracleArgs, 'contr
21
19
  txContext: TxContext;
22
20
  callContext: CallContext;
23
21
  /** Needed to trigger contract synchronization before nested calls */
24
- utilityExecutor: (call: FunctionCall, scopes: AccessScopes) => Promise<void>;
22
+ utilityExecutor: (call: FunctionCall, scopes: AztecAddress[]) => Promise<void>;
25
23
  executionCache: HashedValuesCache;
26
24
  noteCache: ExecutionNoteCache;
27
25
  taggingIndexCache: ExecutionTaggingIndexCache;
28
26
  senderTaggingStore: SenderTaggingStore;
29
- contractSyncService: ContractSyncService;
30
27
  totalPublicCalldataCount?: number;
31
28
  sideEffectCounter?: number;
32
29
  senderForTags?: AztecAddress;
@@ -49,7 +46,6 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
49
46
  private newNotes;
50
47
  private noteHashNullifierCounterMap;
51
48
  private contractClassLogs;
52
- private offchainEffects;
53
49
  private nestedExecutionResults;
54
50
  private readonly argsHash;
55
51
  private readonly txContext;
@@ -59,7 +55,6 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
59
55
  private readonly noteCache;
60
56
  private readonly taggingIndexCache;
61
57
  private readonly senderTaggingStore;
62
- private readonly contractSyncService;
63
58
  private totalPublicCalldataCount;
64
59
  protected sideEffectCounter: number;
65
60
  private senderForTags?;
@@ -82,15 +77,9 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
82
77
  */
83
78
  getContractClassLogs(): CountedContractClassLog[];
84
79
  /**
85
- * Return the offchain effects emitted during this execution.
80
+ * Returns the tagging index ranges that were used in this execution (and that need to be stored in the db).
86
81
  */
87
- getOffchainEffects(): {
88
- data: Fr[];
89
- }[];
90
- /**
91
- * Returns the pre-tags that were used in this execution (and that need to be stored in the db).
92
- */
93
- getUsedPreTags(): PreTag[];
82
+ getUsedTaggingIndexRanges(): TaggingIndexRange[];
94
83
  /**
95
84
  * Return the nested execution results during this execution.
96
85
  */
@@ -130,14 +119,14 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
130
119
  * @param values - Values to store.
131
120
  * @returns The hash of the values.
132
121
  */
133
- storeInExecutionCache(values: Fr[], hash: Fr): void;
122
+ setHashPreimage(values: Fr[], hash: Fr): void;
134
123
  /**
135
124
  * Gets values from the execution cache.
136
125
  * @param hash - Hash of the values.
137
126
  * @returns The values.
138
127
  */
139
- loadFromExecutionCache(hash: Fr): Promise<Fr[]>;
140
- checkNullifierExists(innerNullifier: Fr): Promise<boolean>;
128
+ getHashPreimage(hash: Fr): Promise<Fr[]>;
129
+ doesNullifierExist(innerNullifier: Fr): Promise<boolean>;
141
130
  /**
142
131
  * Gets some notes for a storage slot.
143
132
  *
@@ -215,26 +204,11 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
215
204
  endSideEffectCounter: Fr;
216
205
  returnsHash: Fr;
217
206
  }>;
218
- /**
219
- * Verify relevant information when a public function is enqueued.
220
- * @param targetContractAddress - The address of the contract to call.
221
- * @param calldataHash - The hash of the function selector and arguments.
222
- * @param sideEffectCounter - The side effect counter at the start of the call.
223
- * @param isStaticCall - Whether the call is a static call.
224
- */
225
- notifyEnqueuedPublicFunctionCall(_targetContractAddress: AztecAddress, calldataHash: Fr, _sideEffectCounter: number, _isStaticCall: boolean): Promise<void>;
226
- /**
227
- * Verify relevant information when a public teardown function is set.
228
- * @param targetContractAddress - The address of the contract to call.
229
- * @param argsHash - The arguments hash to pass to the function.
230
- * @param sideEffectCounter - The side effect counter at the start of the call.
231
- * @param isStaticCall - Whether the call is a static call.
232
- */
233
- notifySetPublicTeardownFunctionCall(_targetContractAddress: AztecAddress, calldataHash: Fr, _sideEffectCounter: number, _isStaticCall: boolean): Promise<void>;
234
- notifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void>;
235
- isSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean>;
207
+ /** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */
208
+ assertValidPublicCalldata(calldataHash: Fr): Promise<void>;
209
+ notifyRevertiblePhaseStart(minRevertibleSideEffectCounter: number): Promise<void>;
210
+ isExecutionInRevertiblePhase(sideEffectCounter: number): Promise<boolean>;
236
211
  private deriveCallContext;
237
212
  getDebugFunctionName(): Promise<string>;
238
- emitOffchainEffect(data: Fr[]): Promise<void>;
239
213
  }
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb25fb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL29yYWNsZS9wcml2YXRlX2V4ZWN1dGlvbl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFFaEIsS0FBSyxZQUFZLEVBQ2pCLGdCQUFnQixFQUNoQixLQUFLLFlBQVksRUFFbEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQXVDLEtBQUssTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0csT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pDLE9BQU8sRUFBUSxLQUFLLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFDTCxXQUFXLEVBQ1gsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFDWCwwQkFBMEIsRUFDMUIsS0FBSyxTQUFTLEVBQ2YsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRXhGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFOUYsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIs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
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb25fb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL29yYWNsZS9wcml2YXRlX2V4ZWN1dGlvbl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFFaEIsS0FBSyxZQUFZLEVBQ2pCLGdCQUFnQixFQUNoQixLQUFLLFlBQVksRUFFbEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQXVDLEtBQUssaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekMsT0FBTyxFQUFRLEtBQUssVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUNMLFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLDBCQUEwQixFQUMxQixLQUFLLFNBQVMsRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBRzFCLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFOUYsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixD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
@@ -1 +1 @@
1
- {"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,6 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
29
29
  */ newNotes = [];
30
30
  noteHashNullifierCounterMap = new Map();
31
31
  contractClassLogs = [];
32
- offchainEffects = [];
33
32
  nestedExecutionResults = [];
34
33
  argsHash;
35
34
  txContext;
@@ -39,7 +38,6 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
39
38
  noteCache;
40
39
  taggingIndexCache;
41
40
  senderTaggingStore;
42
- contractSyncService;
43
41
  totalPublicCalldataCount;
44
42
  sideEffectCounter;
45
43
  senderForTags;
@@ -58,7 +56,6 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
58
56
  this.noteCache = args.noteCache;
59
57
  this.taggingIndexCache = args.taggingIndexCache;
60
58
  this.senderTaggingStore = args.senderTaggingStore;
61
- this.contractSyncService = args.contractSyncService;
62
59
  this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
63
60
  this.sideEffectCounter = args.sideEffectCounter ?? 0;
64
61
  this.senderForTags = args.senderForTags;
@@ -103,14 +100,9 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
103
100
  return this.contractClassLogs;
104
101
  }
105
102
  /**
106
- * Return the offchain effects emitted during this execution.
107
- */ getOffchainEffects() {
108
- return this.offchainEffects;
109
- }
110
- /**
111
- * Returns the pre-tags that were used in this execution (and that need to be stored in the db).
112
- */ getUsedPreTags() {
113
- return this.taggingIndexCache.getUsedPreTags();
103
+ * Returns the tagging index ranges that were used in this execution (and that need to be stored in the db).
104
+ */ getUsedTaggingIndexRanges() {
105
+ return this.taggingIndexCache.getUsedTaggingIndexRanges();
114
106
  }
115
107
  /**
116
108
  * Return the nested execution results during this execution.
@@ -150,6 +142,15 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
150
142
  * @returns An app tag to be used in a log.
151
143
  */ async getNextAppTagAsSender(sender, recipient) {
152
144
  const extendedSecret = await this.#calculateExtendedDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
145
+ if (!extendedSecret) {
146
+ // We'd only fail to compute an extended secret if the recipient is an invalid address. To prevent
147
+ // king-of-the-hill attacks, instead of failing we use a random tag. By including a correct-looking tag in the
148
+ // log, the transaction shape is preserved and no privacy is leaked, even if the tag is bogus.
149
+ this.logger.warn(`Computing a tag for invalid recipient ${recipient} - returning a random tag instead`, {
150
+ contractAddress: this.contractAddress
151
+ });
152
+ return new Tag(Fr.random());
153
+ }
153
154
  const index = await this.#getIndexToUseForSecret(extendedSecret);
154
155
  this.logger.debug(`Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`);
155
156
  this.taggingIndexCache.setLastUsedIndex(extendedSecret, index);
@@ -183,21 +184,21 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
183
184
  * Store values in the execution cache.
184
185
  * @param values - Values to store.
185
186
  * @returns The hash of the values.
186
- */ storeInExecutionCache(values, hash) {
187
+ */ setHashPreimage(values, hash) {
187
188
  return this.executionCache.store(values, hash);
188
189
  }
189
190
  /**
190
191
  * Gets values from the execution cache.
191
192
  * @param hash - Hash of the values.
192
193
  * @returns The values.
193
- */ loadFromExecutionCache(hash) {
194
+ */ getHashPreimage(hash) {
194
195
  const preimage = this.executionCache.getPreimage(hash);
195
196
  if (!preimage) {
196
197
  throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
197
198
  }
198
199
  return Promise.resolve(preimage);
199
200
  }
200
- async checkNullifierExists(innerNullifier) {
201
+ async doesNullifierExist(innerNullifier) {
201
202
  // This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
202
203
  // in the synched block, during private execution there's also the possibility of it being pending, i.e. created
203
204
  // in the current transaction.
@@ -205,7 +206,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
205
206
  contractAddress: this.contractAddress
206
207
  });
207
208
  const nullifier = (await siloNullifier(this.contractAddress, innerNullifier)).toBigInt();
208
- return this.noteCache.getNullifiers(this.contractAddress).has(nullifier) || await super.checkNullifierExists(innerNullifier);
209
+ return this.noteCache.getNullifiers(this.contractAddress).has(nullifier) || await super.doesNullifierExist(innerNullifier);
209
210
  }
210
211
  /**
211
212
  * Gets some notes for a storage slot.
@@ -387,8 +388,9 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
387
388
  senderTaggingStore: this.senderTaggingStore,
388
389
  recipientTaggingStore: this.recipientTaggingStore,
389
390
  senderAddressBookStore: this.senderAddressBookStore,
390
- capsuleStore: this.capsuleStore,
391
+ capsuleService: this.capsuleService,
391
392
  privateEventStore: this.privateEventStore,
393
+ messageContextService: this.messageContextService,
392
394
  contractSyncService: this.contractSyncService,
393
395
  jobId: this.jobId,
394
396
  totalPublicCalldataCount: this.totalPublicCalldataCount,
@@ -414,7 +416,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
414
416
  returnsHash: publicInputs.returnsHash
415
417
  };
416
418
  }
417
- #onNewPublicFunctionCall(calldataHash) {
419
+ /** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */ assertValidPublicCalldata(calldataHash) {
418
420
  const calldata = this.executionCache.getPreimage(calldataHash);
419
421
  if (!calldata) {
420
422
  throw new Error('Calldata for public call not found in cache');
@@ -423,31 +425,12 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
423
425
  if (this.totalPublicCalldataCount > MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS) {
424
426
  throw new Error(`Too many total args to all enqueued public calls! (> ${MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS})`);
425
427
  }
426
- }
427
- /**
428
- * Verify relevant information when a public function is enqueued.
429
- * @param targetContractAddress - The address of the contract to call.
430
- * @param calldataHash - The hash of the function selector and arguments.
431
- * @param sideEffectCounter - The side effect counter at the start of the call.
432
- * @param isStaticCall - Whether the call is a static call.
433
- */ notifyEnqueuedPublicFunctionCall(_targetContractAddress, calldataHash, _sideEffectCounter, _isStaticCall) {
434
- this.#onNewPublicFunctionCall(calldataHash);
435
- return Promise.resolve();
436
- }
437
- /**
438
- * Verify relevant information when a public teardown function is set.
439
- * @param targetContractAddress - The address of the contract to call.
440
- * @param argsHash - The arguments hash to pass to the function.
441
- * @param sideEffectCounter - The side effect counter at the start of the call.
442
- * @param isStaticCall - Whether the call is a static call.
443
- */ notifySetPublicTeardownFunctionCall(_targetContractAddress, calldataHash, _sideEffectCounter, _isStaticCall) {
444
- this.#onNewPublicFunctionCall(calldataHash);
445
428
  return Promise.resolve();
446
429
  }
447
- notifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter) {
430
+ notifyRevertiblePhaseStart(minRevertibleSideEffectCounter) {
448
431
  return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
449
432
  }
450
- isSideEffectCounterRevertible(sideEffectCounter) {
433
+ isExecutionInRevertiblePhase(sideEffectCounter) {
451
434
  return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
452
435
  }
453
436
  /**
@@ -462,10 +445,4 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
462
445
  getDebugFunctionName() {
463
446
  return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
464
447
  }
465
- emitOffchainEffect(data) {
466
- this.offchainEffects.push({
467
- data
468
- });
469
- return Promise.resolve();
470
- }
471
448
  }