@aztec/pxe 0.0.1-commit.3e3d0c9cd → 0.0.1-commit.3f5453c7b

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 (155) hide show
  1. package/dest/bin/check_oracle_version.js +4 -4
  2. package/dest/block_synchronizer/block_synchronizer.d.ts +1 -1
  3. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  4. package/dest/block_synchronizer/block_synchronizer.js +6 -0
  5. package/dest/contract_function_simulator/contract_function_simulator.d.ts +3 -4
  6. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  7. package/dest/contract_function_simulator/contract_function_simulator.js +13 -4
  8. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  9. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  10. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  11. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +3 -4
  12. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  13. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +3 -6
  14. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +1 -1
  15. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +1 -1
  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.js +1 -1
  18. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -4
  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 +3 -6
  21. package/dest/contract_function_simulator/oracle/interfaces.d.ts +31 -19
  22. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  23. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +1 -1
  24. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +1 -1
  25. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +28 -24
  26. package/dest/contract_function_simulator/oracle/oracle.d.ts +50 -19
  27. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/oracle/oracle.js +177 -41
  29. package/dest/contract_function_simulator/oracle/private_execution.js +1 -1
  30. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +7 -11
  31. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  32. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +16 -9
  33. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +61 -38
  34. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  35. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +210 -92
  36. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  37. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  38. package/dest/contract_function_simulator/pick_notes.js +9 -2
  39. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  40. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  41. package/dest/contract_function_simulator/proxied_contract_data_source.js +3 -0
  42. package/dest/contract_logging.d.ts +9 -4
  43. package/dest/contract_logging.d.ts.map +1 -1
  44. package/dest/contract_logging.js +21 -6
  45. package/dest/contract_sync/contract_sync_service.d.ts +6 -5
  46. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -1
  47. package/dest/contract_sync/contract_sync_service.js +44 -37
  48. package/dest/contract_sync/helpers.d.ts +2 -3
  49. package/dest/contract_sync/helpers.d.ts.map +1 -1
  50. package/dest/contract_sync/helpers.js +7 -2
  51. package/dest/debug/pxe_debug_utils.d.ts +3 -3
  52. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  53. package/dest/entrypoints/client/bundle/index.d.ts +1 -2
  54. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  55. package/dest/entrypoints/client/bundle/index.js +0 -1
  56. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  57. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  58. package/dest/entrypoints/client/bundle/utils.js +2 -2
  59. package/dest/entrypoints/client/lazy/index.d.ts +1 -2
  60. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  61. package/dest/entrypoints/client/lazy/index.js +0 -1
  62. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  63. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  64. package/dest/entrypoints/client/lazy/utils.js +2 -2
  65. package/dest/entrypoints/pxe_creation_options.d.ts +3 -1
  66. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  67. package/dest/entrypoints/pxe_creation_options.js +3 -1
  68. package/dest/entrypoints/server/index.d.ts +2 -3
  69. package/dest/entrypoints/server/index.d.ts.map +1 -1
  70. package/dest/entrypoints/server/index.js +1 -2
  71. package/dest/entrypoints/server/utils.d.ts +2 -2
  72. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  73. package/dest/entrypoints/server/utils.js +2 -2
  74. package/dest/events/event_service.d.ts +3 -2
  75. package/dest/events/event_service.d.ts.map +1 -1
  76. package/dest/events/event_service.js +16 -4
  77. package/dest/logs/log_service.d.ts +5 -8
  78. package/dest/logs/log_service.d.ts.map +1 -1
  79. package/dest/logs/log_service.js +24 -37
  80. package/dest/messages/message_context_service.d.ts +3 -3
  81. package/dest/messages/message_context_service.d.ts.map +1 -1
  82. package/dest/messages/message_context_service.js +3 -3
  83. package/dest/notes/note_service.d.ts +4 -5
  84. package/dest/notes/note_service.d.ts.map +1 -1
  85. package/dest/notes/note_service.js +14 -5
  86. package/dest/notes_filter.d.ts +2 -3
  87. package/dest/notes_filter.d.ts.map +1 -1
  88. package/dest/oracle_version.d.ts +4 -3
  89. package/dest/oracle_version.d.ts.map +1 -1
  90. package/dest/oracle_version.js +20 -10
  91. package/dest/pxe.d.ts +4 -5
  92. package/dest/pxe.d.ts.map +1 -1
  93. package/dest/pxe.js +12 -6
  94. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  95. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  96. package/dest/storage/capsule_store/capsule_service.js +50 -0
  97. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  98. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  99. package/dest/storage/capsule_store/capsule_store.js +33 -28
  100. package/dest/storage/capsule_store/index.d.ts +2 -1
  101. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  102. package/dest/storage/capsule_store/index.js +1 -0
  103. package/dest/storage/metadata.d.ts +1 -1
  104. package/dest/storage/metadata.js +1 -1
  105. package/dest/storage/note_store/note_store.d.ts +1 -1
  106. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  107. package/dest/storage/note_store/note_store.js +2 -2
  108. package/package.json +16 -16
  109. package/src/bin/check_oracle_version.ts +4 -4
  110. package/src/block_synchronizer/block_synchronizer.ts +6 -0
  111. package/src/contract_function_simulator/contract_function_simulator.ts +17 -7
  112. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  113. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -4
  114. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +1 -1
  115. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +1 -1
  116. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +1 -4
  117. package/src/contract_function_simulator/oracle/interfaces.ts +46 -17
  118. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +20 -58
  119. package/src/contract_function_simulator/oracle/oracle.ts +242 -36
  120. package/src/contract_function_simulator/oracle/private_execution.ts +1 -1
  121. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +19 -14
  122. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +351 -118
  123. package/src/contract_function_simulator/pick_notes.ts +9 -2
  124. package/src/contract_function_simulator/proxied_contract_data_source.ts +8 -1
  125. package/src/contract_logging.ts +18 -5
  126. package/src/contract_sync/contract_sync_service.ts +77 -59
  127. package/src/contract_sync/helpers.ts +4 -4
  128. package/src/debug/pxe_debug_utils.ts +3 -3
  129. package/src/entrypoints/client/bundle/index.ts +0 -1
  130. package/src/entrypoints/client/bundle/utils.ts +2 -3
  131. package/src/entrypoints/client/lazy/index.ts +0 -1
  132. package/src/entrypoints/client/lazy/utils.ts +2 -3
  133. package/src/entrypoints/pxe_creation_options.ts +7 -0
  134. package/src/entrypoints/server/index.ts +1 -2
  135. package/src/entrypoints/server/utils.ts +2 -3
  136. package/src/events/event_service.ts +17 -4
  137. package/src/logs/log_service.ts +52 -78
  138. package/src/messages/message_context_service.ts +3 -4
  139. package/src/notes/note_service.ts +18 -8
  140. package/src/notes_filter.ts +1 -3
  141. package/src/oracle_version.ts +20 -10
  142. package/src/pxe.ts +17 -12
  143. package/src/storage/capsule_store/capsule_service.ts +90 -0
  144. package/src/storage/capsule_store/capsule_store.ts +34 -26
  145. package/src/storage/capsule_store/index.ts +1 -0
  146. package/src/storage/metadata.ts +1 -1
  147. package/src/storage/note_store/note_store.ts +2 -5
  148. package/dest/access_scopes.d.ts +0 -9
  149. package/dest/access_scopes.d.ts.map +0 -1
  150. package/dest/access_scopes.js +0 -6
  151. package/dest/contract_function_simulator/noir-structs/message_tx_context.d.ts +0 -16
  152. package/dest/contract_function_simulator/noir-structs/message_tx_context.d.ts.map +0 -1
  153. package/dest/contract_function_simulator/noir-structs/message_tx_context.js +0 -57
  154. package/src/access_scopes.ts +0 -9
  155. package/src/contract_function_simulator/noir-structs/message_tx_context.ts +0 -55
@@ -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 { ORACLE_VERSION_MAJOR, ORACLE_VERSION_MINOR } from '../../oracle_version.js';
9
10
  import { buildLegacyOracleCallbacks } from './legacy_oracle_mappings.js';
10
11
  import { packAsHintedNote } from './note_packing_utils.js';
11
12
  export class UnavailableOracleError extends Error {
@@ -15,6 +16,25 @@ export class UnavailableOracleError extends Error {
15
16
  }
16
17
  /**
17
18
  * A data source that has all the apis required by Aztec.nr.
19
+ *
20
+ * ## Oracle naming conventions
21
+ *
22
+ * We try to keep oracle naming consistent, please see below the conventions we adhere to.
23
+ *
24
+ * Each oracle method name has the form `aztec_{scope}_{verb}{Object}`, where:
25
+ *
26
+ * - **Scope prefix** indicates the execution context required:
27
+ * - `aztec_prv_` — available only during private function execution.
28
+ * - `aztec_utl_` — available during both utility and private execution.
29
+ *
30
+ * - **Verb** signals the operation's semantics (verb-first, then object):
31
+ * - `get` — read / lookup / get data from oracle into contract.
32
+ * - `does`/`is`/`has` — predicate (returns boolean).
33
+ * - `emit`/`notify` — propagate data from contract to oracle.
34
+ * - `set` — contract driven oracle state mutation (capsules, execution cache, tagging, etc).
35
+ * - `call` — trigger nested execution (control flow).
36
+ * - `assert` — validate a condition, throw on failure.
37
+ * - Standalone verbs (`delete`, `copy`, `decrypt`, `log`, etc) are used when no generic verb fits.
18
38
  */ export class Oracle {
19
39
  handler;
20
40
  constructor(handler){
@@ -66,14 +86,39 @@ export class UnavailableOracleError extends Error {
66
86
  acc[name] = method.bind(this);
67
87
  return acc;
68
88
  }, {});
69
- return {
89
+ const allCallbacks = {
70
90
  ...callback,
71
91
  ...buildLegacyOracleCallbacks(this)
72
92
  };
93
+ // Wrap in a Proxy to intercept access to missing oracle names and provide enhanced error messages when the
94
+ // contract's minor version is higher than the PXE's (i.e. the contract expects oracles that were added in a newer
95
+ // minor version).
96
+ const handler = this.handler;
97
+ return new Proxy(allCallbacks, {
98
+ get (target, prop) {
99
+ if (prop in target) {
100
+ return target[prop];
101
+ }
102
+ // Return a function that throws with an enhanced error message if applicable
103
+ return ()=>{
104
+ let contractVersion = undefined;
105
+ if ('nonOracleFunctionGetContractOracleVersion' in handler) {
106
+ contractVersion = handler.nonOracleFunctionGetContractOracleVersion();
107
+ }
108
+ if (!contractVersion) {
109
+ throw new Error(`Oracle '${prop}' not found and the contract's oracle version is unknown (the version check oracle ` + `was not called before '${prop}'). This usually means the contract was not compiled with the ` + `#[aztec] macro, which injects the version check as the first oracle call in every private/utility ` + `external function. If you're using a custom entry point, ensure assert_compatible_oracle_version() ` + `is called before any other oracle calls. See https://docs.aztec.network/errors/8`);
110
+ } else if (contractVersion.minor > ORACLE_VERSION_MINOR) {
111
+ throw new Error(`Oracle '${prop}' not found.` + ` This usually means the contract requires a newer private execution environment than you have.` + ` Upgrade your private execution environment to a compatible version. The contract was compiled with` + ` Aztec.nr oracle version ${contractVersion.major}.${contractVersion.minor}, but this private` + ` execution environment only supports up to ${ORACLE_VERSION_MAJOR}.${ORACLE_VERSION_MINOR}.` + ` See https://docs.aztec.network/errors/8`);
112
+ } else {
113
+ throw new Error(`Oracle '${prop}' not found.` + ` The contract's oracle version (${contractVersion.major}.${contractVersion.minor}) is compatible` + ` with this private execution environment (${ORACLE_VERSION_MAJOR}.${ORACLE_VERSION_MINOR}), so all` + ` standard oracles should be available. This could mean the contract was compiled against a modified` + ` version of Aztec.nr, or that it references an oracle that does not exist.` + ` See https://docs.aztec.network/errors/8`);
114
+ }
115
+ };
116
+ }
117
+ });
73
118
  }
74
119
  // eslint-disable-next-line camelcase
75
- aztec_utl_assertCompatibleOracleVersion([version]) {
76
- this.handlerAsMisc().assertCompatibleOracleVersion(Fr.fromString(version).toNumber());
120
+ aztec_utl_assertCompatibleOracleVersionV2([major], [minor]) {
121
+ this.handlerAsMisc().assertCompatibleOracleVersion(Fr.fromString(major).toNumber(), Fr.fromString(minor).toNumber());
77
122
  return Promise.resolve([]);
78
123
  }
79
124
  // eslint-disable-next-line camelcase
@@ -84,13 +129,13 @@ export class UnavailableOracleError extends Error {
84
129
  ]);
85
130
  }
86
131
  // eslint-disable-next-line camelcase
87
- aztec_prv_storeInExecutionCache(values, [hash]) {
88
- this.handlerAsPrivate().storeInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
132
+ aztec_prv_setHashPreimage(values, [hash]) {
133
+ this.handlerAsPrivate().setHashPreimage(values.map(Fr.fromString), Fr.fromString(hash));
89
134
  return Promise.resolve([]);
90
135
  }
91
136
  // eslint-disable-next-line camelcase
92
- async aztec_prv_loadFromExecutionCache([returnsHash]) {
93
- const values = await this.handlerAsPrivate().loadFromExecutionCache(Fr.fromString(returnsHash));
137
+ async aztec_prv_getHashPreimage([returnsHash]) {
138
+ const values = await this.handlerAsPrivate().getHashPreimage(Fr.fromString(returnsHash));
94
139
  return [
95
140
  values.map(toACVMField)
96
141
  ];
@@ -187,9 +232,9 @@ export class UnavailableOracleError extends Error {
187
232
  ];
188
233
  }
189
234
  // eslint-disable-next-line camelcase
190
- async aztec_utl_tryGetPublicKeysAndPartialAddress([address]) {
235
+ async aztec_utl_getPublicKeysAndPartialAddress([address]) {
191
236
  const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
192
- const result = await this.handlerAsUtility().tryGetPublicKeysAndPartialAddress(parsedAddress);
237
+ const result = await this.handlerAsUtility().getPublicKeysAndPartialAddress(parsedAddress);
193
238
  // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
194
239
  // with two fields: `some` (a boolean) and `value` (a field array in this case).
195
240
  if (result === undefined) {
@@ -251,8 +296,8 @@ export class UnavailableOracleError extends Error {
251
296
  ];
252
297
  }
253
298
  // eslint-disable-next-line camelcase
254
- async aztec_utl_checkNullifierExists([innerNullifier]) {
255
- const exists = await this.handlerAsUtility().checkNullifierExists(Fr.fromString(innerNullifier));
299
+ async aztec_utl_doesNullifierExist([innerNullifier]) {
300
+ const exists = await this.handlerAsUtility().doesNullifierExist(Fr.fromString(innerNullifier));
256
301
  return [
257
302
  toACVMField(exists)
258
303
  ];
@@ -263,8 +308,8 @@ export class UnavailableOracleError extends Error {
263
308
  return message.toNoirRepresentation();
264
309
  }
265
310
  // eslint-disable-next-line camelcase
266
- async aztec_utl_storageRead([blockHash], [contractAddress], [startStorageSlot], [numberOfElements]) {
267
- const values = await this.handlerAsUtility().storageRead(BlockHash.fromString(blockHash), new AztecAddress(Fr.fromString(contractAddress)), Fr.fromString(startStorageSlot), +numberOfElements);
311
+ async aztec_utl_getFromPublicStorage([blockHash], [contractAddress], [startStorageSlot], [numberOfElements]) {
312
+ const values = await this.handlerAsUtility().getFromPublicStorage(BlockHash.fromString(blockHash), new AztecAddress(Fr.fromString(contractAddress)), Fr.fromString(startStorageSlot), +numberOfElements);
268
313
  return [
269
314
  values.map(toACVMField)
270
315
  ];
@@ -297,8 +342,8 @@ export class UnavailableOracleError extends Error {
297
342
  ];
298
343
  }
299
344
  // eslint-disable-next-line camelcase
300
- async aztec_prv_validatePublicCalldata([calldataHash]) {
301
- await this.handlerAsPrivate().validatePublicCalldata(Fr.fromString(calldataHash));
345
+ async aztec_prv_assertValidPublicCalldata([calldataHash]) {
346
+ await this.handlerAsPrivate().assertValidPublicCalldata(Fr.fromString(calldataHash));
302
347
  return [];
303
348
  }
304
349
  // eslint-disable-next-line camelcase
@@ -307,8 +352,8 @@ export class UnavailableOracleError extends Error {
307
352
  return Promise.resolve([]);
308
353
  }
309
354
  // eslint-disable-next-line camelcase
310
- async aztec_prv_inRevertiblePhase([sideEffectCounter]) {
311
- const isRevertible = await this.handlerAsPrivate().inRevertiblePhase(Fr.fromString(sideEffectCounter).toNumber());
355
+ async aztec_prv_isExecutionInRevertiblePhase([sideEffectCounter]) {
356
+ const isRevertible = await this.handlerAsPrivate().isExecutionInRevertiblePhase(Fr.fromString(sideEffectCounter).toNumber());
312
357
  return Promise.resolve([
313
358
  toACVMField(isRevertible)
314
359
  ]);
@@ -321,33 +366,59 @@ export class UnavailableOracleError extends Error {
321
366
  ];
322
367
  }
323
368
  // eslint-disable-next-line camelcase
324
- async aztec_utl_fetchTaggedLogs([pendingTaggedLogArrayBaseSlot]) {
325
- await this.handlerAsUtility().fetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
369
+ async aztec_utl_getPendingTaggedLogs([pendingTaggedLogArrayBaseSlot], [scope]) {
370
+ await this.handlerAsUtility().getPendingTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot), AztecAddress.fromString(scope));
326
371
  return [];
327
372
  }
328
373
  // eslint-disable-next-line camelcase
329
- async aztec_utl_validateAndStoreEnqueuedNotesAndEvents([contractAddress], [noteValidationRequestsArrayBaseSlot], [eventValidationRequestsArrayBaseSlot], [maxNotePackedLen], [maxEventSerializedLen]) {
330
- await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(AztecAddress.fromString(contractAddress), Fr.fromString(noteValidationRequestsArrayBaseSlot), Fr.fromString(eventValidationRequestsArrayBaseSlot), Fr.fromString(maxNotePackedLen).toNumber(), Fr.fromString(maxEventSerializedLen).toNumber());
374
+ async aztec_utl_getPendingTaggedLogs_v2([scope]) {
375
+ const slot = await this.handlerAsUtility().getPendingTaggedLogsV2(AztecAddress.fromString(scope));
376
+ return [
377
+ toACVMField(slot)
378
+ ];
379
+ }
380
+ // eslint-disable-next-line camelcase
381
+ async aztec_utl_validateAndStoreEnqueuedNotesAndEvents([contractAddress], [noteValidationRequestsArrayBaseSlot], [eventValidationRequestsArrayBaseSlot], [maxNotePackedLen], [maxEventSerializedLen], [scope]) {
382
+ 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
383
  return [];
332
384
  }
333
385
  // 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));
386
+ async aztec_utl_validateAndStoreEnqueuedNotesAndEvents_v2([noteValidationRequestsArrayBaseSlot], [eventValidationRequestsArrayBaseSlot], [maxNotePackedLen], [maxEventSerializedLen], [scope]) {
387
+ await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEventsV2(Fr.fromString(noteValidationRequestsArrayBaseSlot), Fr.fromString(eventValidationRequestsArrayBaseSlot), Fr.fromString(maxNotePackedLen).toNumber(), Fr.fromString(maxEventSerializedLen).toNumber(), AztecAddress.fromString(scope));
336
388
  return [];
337
389
  }
338
390
  // eslint-disable-next-line camelcase
339
- async aztec_utl_utilityResolveMessageContexts([contractAddress], [messageContextRequestsArrayBaseSlot], [messageContextResponsesArrayBaseSlot]) {
340
- await this.handlerAsUtility().utilityResolveMessageContexts(AztecAddress.fromString(contractAddress), Fr.fromString(messageContextRequestsArrayBaseSlot), Fr.fromString(messageContextResponsesArrayBaseSlot));
391
+ async aztec_utl_getLogsByTag([contractAddress], [logRetrievalRequestsArrayBaseSlot], [logRetrievalResponsesArrayBaseSlot], [scope]) {
392
+ await this.handlerAsUtility().getLogsByTag(AztecAddress.fromString(contractAddress), Fr.fromString(logRetrievalRequestsArrayBaseSlot), Fr.fromString(logRetrievalResponsesArrayBaseSlot), AztecAddress.fromString(scope));
341
393
  return [];
342
394
  }
343
395
  // eslint-disable-next-line camelcase
344
- async aztec_utl_storeCapsule([contractAddress], [slot], capsule) {
345
- await this.handlerAsUtility().storeCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), capsule.map(Fr.fromString));
396
+ async aztec_utl_getMessageContextsByTxHash([contractAddress], [messageContextRequestsArrayBaseSlot], [messageContextResponsesArrayBaseSlot], [scope]) {
397
+ await this.handlerAsUtility().getMessageContextsByTxHash(AztecAddress.fromString(contractAddress), Fr.fromString(messageContextRequestsArrayBaseSlot), Fr.fromString(messageContextResponsesArrayBaseSlot), AztecAddress.fromString(scope));
346
398
  return [];
347
399
  }
348
400
  // eslint-disable-next-line camelcase
349
- async aztec_utl_loadCapsule([contractAddress], [slot], [tSize]) {
350
- const values = await this.handlerAsUtility().loadCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
401
+ async aztec_utl_getLogsByTag_v2([requestArrayBaseSlot]) {
402
+ const responseSlot = await this.handlerAsUtility().getLogsByTagV2(Fr.fromString(requestArrayBaseSlot));
403
+ return [
404
+ toACVMField(responseSlot)
405
+ ];
406
+ }
407
+ // eslint-disable-next-line camelcase
408
+ async aztec_utl_getMessageContextsByTxHash_v2([requestArrayBaseSlot]) {
409
+ const responseSlot = await this.handlerAsUtility().getMessageContextsByTxHashV2(Fr.fromString(requestArrayBaseSlot));
410
+ return [
411
+ toACVMField(responseSlot)
412
+ ];
413
+ }
414
+ // eslint-disable-next-line camelcase
415
+ aztec_utl_setCapsule([contractAddress], [slot], capsule, [scope]) {
416
+ this.handlerAsUtility().setCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), capsule.map(Fr.fromString), AztecAddress.fromField(Fr.fromString(scope)));
417
+ return Promise.resolve([]);
418
+ }
419
+ // eslint-disable-next-line camelcase
420
+ async aztec_utl_getCapsule([contractAddress], [slot], [tSize], [scope]) {
421
+ const values = await this.handlerAsUtility().getCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), AztecAddress.fromField(Fr.fromString(scope)));
351
422
  // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
352
423
  // with two fields: `some` (a boolean) and `value` (a field array in this case).
353
424
  if (values === null) {
@@ -365,32 +436,97 @@ export class UnavailableOracleError extends Error {
365
436
  }
366
437
  }
367
438
  // eslint-disable-next-line camelcase
368
- async aztec_utl_deleteCapsule([contractAddress], [slot]) {
369
- await this.handlerAsUtility().deleteCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
370
- return [];
439
+ aztec_utl_deleteCapsule([contractAddress], [slot], [scope]) {
440
+ this.handlerAsUtility().deleteCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), AztecAddress.fromField(Fr.fromString(scope)));
441
+ return Promise.resolve([]);
371
442
  }
372
443
  // eslint-disable-next-line camelcase
373
- async aztec_utl_copyCapsule([contractAddress], [srcSlot], [dstSlot], [numEntries]) {
374
- await this.handlerAsUtility().copyCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(srcSlot), Fr.fromString(dstSlot), Fr.fromString(numEntries).toNumber());
444
+ async aztec_utl_copyCapsule([contractAddress], [srcSlot], [dstSlot], [numEntries], [scope]) {
445
+ await this.handlerAsUtility().copyCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(srcSlot), Fr.fromString(dstSlot), Fr.fromString(numEntries).toNumber(), AztecAddress.fromField(Fr.fromString(scope)));
375
446
  return [];
376
447
  }
377
- // TODO(F-452): Return Option and wrap in try/catch so BB exceptions don't crash PXE.
378
448
  // eslint-disable-next-line camelcase
379
- async aztec_utl_aes128Decrypt(ciphertextBVecStorage, [ciphertextLength], iv, symKey) {
449
+ aztec_utl_pushEphemeral([slot], elements) {
450
+ const newLen = this.handlerAsUtility().pushEphemeral(Fr.fromString(slot), elements.map(Fr.fromString));
451
+ return Promise.resolve([
452
+ toACVMField(newLen)
453
+ ]);
454
+ }
455
+ // eslint-disable-next-line camelcase
456
+ aztec_utl_popEphemeral([slot]) {
457
+ const element = this.handlerAsUtility().popEphemeral(Fr.fromString(slot));
458
+ return Promise.resolve([
459
+ element.map(toACVMField)
460
+ ]);
461
+ }
462
+ // eslint-disable-next-line camelcase
463
+ aztec_utl_getEphemeral([slot], [index]) {
464
+ const element = this.handlerAsUtility().getEphemeral(Fr.fromString(slot), Fr.fromString(index).toNumber());
465
+ return Promise.resolve([
466
+ element.map(toACVMField)
467
+ ]);
468
+ }
469
+ // eslint-disable-next-line camelcase
470
+ aztec_utl_setEphemeral([slot], [index], elements) {
471
+ this.handlerAsUtility().setEphemeral(Fr.fromString(slot), Fr.fromString(index).toNumber(), elements.map(Fr.fromString));
472
+ return Promise.resolve([]);
473
+ }
474
+ // eslint-disable-next-line camelcase
475
+ aztec_utl_getEphemeralLen([slot]) {
476
+ const len = this.handlerAsUtility().getEphemeralLen(Fr.fromString(slot));
477
+ return Promise.resolve([
478
+ toACVMField(len)
479
+ ]);
480
+ }
481
+ // eslint-disable-next-line camelcase
482
+ aztec_utl_removeEphemeral([slot], [index]) {
483
+ this.handlerAsUtility().removeEphemeral(Fr.fromString(slot), Fr.fromString(index).toNumber());
484
+ return Promise.resolve([]);
485
+ }
486
+ // eslint-disable-next-line camelcase
487
+ aztec_utl_clearEphemeral([slot]) {
488
+ this.handlerAsUtility().clearEphemeral(Fr.fromString(slot));
489
+ return Promise.resolve([]);
490
+ }
491
+ // eslint-disable-next-line camelcase
492
+ async aztec_utl_decryptAes128(ciphertextBVecStorage, [ciphertextLength], iv, symKey) {
380
493
  const ciphertext = fromUintBoundedVec(ciphertextBVecStorage, ciphertextLength, 8);
381
494
  const ivBuffer = fromUintArray(iv, 8);
382
495
  const symKeyBuffer = fromUintArray(symKey, 8);
383
- const plaintext = await this.handlerAsUtility().aes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
384
- return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
496
+ // Noir Option<BoundedVec> is encoded as [is_some: Field, storage: Field[], length: Field].
497
+ try {
498
+ const plaintext = await this.handlerAsUtility().decryptAes128(ciphertext, ivBuffer, symKeyBuffer);
499
+ const [storage, length] = bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
500
+ return [
501
+ toACVMField(1),
502
+ storage,
503
+ length
504
+ ];
505
+ } catch {
506
+ const zeroStorage = Array(ciphertextBVecStorage.length).fill(toACVMField(0));
507
+ return [
508
+ toACVMField(0),
509
+ zeroStorage,
510
+ toACVMField(0)
511
+ ];
512
+ }
385
513
  }
386
514
  // eslint-disable-next-line camelcase
387
- async aztec_utl_getSharedSecret([address], [ephPKField0], [ephPKField1], [ephPKField2]) {
515
+ async aztec_utl_getSharedSecret([address], [ephPKField0], [ephPKField1], [ephPKField2], [contractAddress]) {
388
516
  const secret = await this.handlerAsUtility().getSharedSecret(AztecAddress.fromField(Fr.fromString(address)), Point.fromFields([
389
517
  ephPKField0,
390
518
  ephPKField1,
391
519
  ephPKField2
392
- ].map(Fr.fromString)));
393
- return secret.toFields().map(toACVMField);
520
+ ].map(Fr.fromString)), AztecAddress.fromField(Fr.fromString(contractAddress)));
521
+ return [
522
+ toACVMField(secret)
523
+ ];
524
+ }
525
+ // eslint-disable-next-line camelcase
526
+ aztec_utl_setContractSyncCacheInvalid([contractAddress], scopes, [scopeCount]) {
527
+ const scopeAddresses = scopes.slice(0, +scopeCount).map((s)=>AztecAddress.fromField(Fr.fromString(s)));
528
+ this.handlerAsUtility().setContractSyncCacheInvalid(AztecAddress.fromField(Fr.fromString(contractAddress)), scopeAddresses);
529
+ return Promise.resolve([]);
394
530
  }
395
531
  // eslint-disable-next-line camelcase
396
532
  async aztec_utl_emitOffchainEffect(data) {
@@ -45,7 +45,7 @@ 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();
@@ -7,8 +7,6 @@ import { type ContractClassLog, type TaggingIndexRange } from '@aztec/stdlib/log
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;
@@ -58,7 +55,6 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
58
55
  private readonly noteCache;
59
56
  private readonly taggingIndexCache;
60
57
  private readonly senderTaggingStore;
61
- private readonly contractSyncService;
62
58
  private totalPublicCalldataCount;
63
59
  protected sideEffectCounter: number;
64
60
  private senderForTags?;
@@ -123,14 +119,14 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
123
119
  * @param values - Values to store.
124
120
  * @returns The hash of the values.
125
121
  */
126
- storeInExecutionCache(values: Fr[], hash: Fr): void;
122
+ setHashPreimage(values: Fr[], hash: Fr): void;
127
123
  /**
128
124
  * Gets values from the execution cache.
129
125
  * @param hash - Hash of the values.
130
126
  * @returns The values.
131
127
  */
132
- loadFromExecutionCache(hash: Fr): Promise<Fr[]>;
133
- checkNullifierExists(innerNullifier: Fr): Promise<boolean>;
128
+ getHashPreimage(hash: Fr): Promise<Fr[]>;
129
+ doesNullifierExist(innerNullifier: Fr): Promise<boolean>;
134
130
  /**
135
131
  * Gets some notes for a storage slot.
136
132
  *
@@ -209,10 +205,10 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
209
205
  returnsHash: Fr;
210
206
  }>;
211
207
  /** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */
212
- validatePublicCalldata(calldataHash: Fr): Promise<void>;
208
+ assertValidPublicCalldata(calldataHash: Fr): Promise<void>;
213
209
  notifyRevertiblePhaseStart(minRevertibleSideEffectCounter: number): Promise<void>;
214
- inRevertiblePhase(sideEffectCounter: number): Promise<boolean>;
210
+ isExecutionInRevertiblePhase(sideEffectCounter: number): Promise<boolean>;
215
211
  private deriveCallContext;
216
212
  getDebugFunctionName(): Promise<string>;
217
213
  }
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb25fb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL29yYWNsZS9wcml2YXRlX2V4ZWN1dGlvbl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFFaEIsS0FBSyxZQUFZLEVBQ2pCLGdCQUFnQixFQUNoQixLQUFLLFlBQVksRUFFbEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQXVDLEtBQUssaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekMsT0FBTyxFQUFRLEtBQUssVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUNMLFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLDBCQUEwQixFQUMxQixLQUFLLFNBQVMsRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFeEYsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUU5RixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0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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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"}
@@ -38,7 +38,6 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
38
38
  noteCache;
39
39
  taggingIndexCache;
40
40
  senderTaggingStore;
41
- contractSyncService;
42
41
  totalPublicCalldataCount;
43
42
  sideEffectCounter;
44
43
  senderForTags;
@@ -57,7 +56,6 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
57
56
  this.noteCache = args.noteCache;
58
57
  this.taggingIndexCache = args.taggingIndexCache;
59
58
  this.senderTaggingStore = args.senderTaggingStore;
60
- this.contractSyncService = args.contractSyncService;
61
59
  this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
62
60
  this.sideEffectCounter = args.sideEffectCounter ?? 0;
63
61
  this.senderForTags = args.senderForTags;
@@ -144,6 +142,15 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
144
142
  * @returns An app tag to be used in a log.
145
143
  */ async getNextAppTagAsSender(sender, recipient) {
146
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
+ }
147
154
  const index = await this.#getIndexToUseForSecret(extendedSecret);
148
155
  this.logger.debug(`Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`);
149
156
  this.taggingIndexCache.setLastUsedIndex(extendedSecret, index);
@@ -177,21 +184,21 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
177
184
  * Store values in the execution cache.
178
185
  * @param values - Values to store.
179
186
  * @returns The hash of the values.
180
- */ storeInExecutionCache(values, hash) {
187
+ */ setHashPreimage(values, hash) {
181
188
  return this.executionCache.store(values, hash);
182
189
  }
183
190
  /**
184
191
  * Gets values from the execution cache.
185
192
  * @param hash - Hash of the values.
186
193
  * @returns The values.
187
- */ loadFromExecutionCache(hash) {
194
+ */ getHashPreimage(hash) {
188
195
  const preimage = this.executionCache.getPreimage(hash);
189
196
  if (!preimage) {
190
197
  throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
191
198
  }
192
199
  return Promise.resolve(preimage);
193
200
  }
194
- async checkNullifierExists(innerNullifier) {
201
+ async doesNullifierExist(innerNullifier) {
195
202
  // This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
196
203
  // in the synched block, during private execution there's also the possibility of it being pending, i.e. created
197
204
  // in the current transaction.
@@ -199,7 +206,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
199
206
  contractAddress: this.contractAddress
200
207
  });
201
208
  const nullifier = (await siloNullifier(this.contractAddress, innerNullifier)).toBigInt();
202
- 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);
203
210
  }
204
211
  /**
205
212
  * Gets some notes for a storage slot.
@@ -381,7 +388,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
381
388
  senderTaggingStore: this.senderTaggingStore,
382
389
  recipientTaggingStore: this.recipientTaggingStore,
383
390
  senderAddressBookStore: this.senderAddressBookStore,
384
- capsuleStore: this.capsuleStore,
391
+ capsuleService: this.capsuleService,
385
392
  privateEventStore: this.privateEventStore,
386
393
  messageContextService: this.messageContextService,
387
394
  contractSyncService: this.contractSyncService,
@@ -409,7 +416,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
409
416
  returnsHash: publicInputs.returnsHash
410
417
  };
411
418
  }
412
- /** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */ validatePublicCalldata(calldataHash) {
419
+ /** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */ assertValidPublicCalldata(calldataHash) {
413
420
  const calldata = this.executionCache.getPreimage(calldataHash);
414
421
  if (!calldata) {
415
422
  throw new Error('Calldata for public call not found in cache');
@@ -423,7 +430,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
423
430
  notifyRevertiblePhaseStart(minRevertibleSideEffectCounter) {
424
431
  return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
425
432
  }
426
- inRevertiblePhase(sideEffectCounter) {
433
+ isExecutionInRevertiblePhase(sideEffectCounter) {
427
434
  return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
428
435
  }
429
436
  /**