@aztec/pxe 3.0.0-canary.a9708bd → 3.0.0-devnet.2-patch.1

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 (264) hide show
  1. package/README.md +5 -5
  2. package/dest/bin/check_oracle_version.d.ts +1 -1
  3. package/dest/bin/check_oracle_version.js +110 -10
  4. package/dest/config/index.d.ts +9 -17
  5. package/dest/config/index.d.ts.map +1 -1
  6. package/dest/config/index.js +10 -16
  7. package/dest/config/package_info.d.ts +1 -1
  8. package/dest/config/package_info.js +1 -1
  9. package/dest/contract_function_simulator/contract_function_simulator.d.ts +6 -6
  10. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  11. package/dest/contract_function_simulator/contract_function_simulator.js +97 -42
  12. package/dest/contract_function_simulator/execution_data_provider.d.ts +40 -57
  13. package/dest/contract_function_simulator/execution_data_provider.d.ts.map +1 -1
  14. package/dest/contract_function_simulator/execution_note_cache.d.ts +11 -9
  15. package/dest/contract_function_simulator/execution_note_cache.d.ts.map +1 -1
  16. package/dest/contract_function_simulator/execution_note_cache.js +28 -17
  17. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +16 -0
  18. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -0
  19. package/dest/contract_function_simulator/execution_tagging_index_cache.js +26 -0
  20. package/dest/contract_function_simulator/hashed_values_cache.d.ts +2 -2
  21. package/dest/contract_function_simulator/hashed_values_cache.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/index.d.ts +4 -2
  23. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  24. package/dest/contract_function_simulator/index.js +2 -1
  25. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +2 -2
  26. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  27. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +2 -2
  28. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  29. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +3 -3
  30. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +8 -4
  32. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +6 -3
  33. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  34. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +12 -3
  35. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +22 -0
  36. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -0
  37. package/dest/contract_function_simulator/noir-structs/utility_context.js +33 -0
  38. package/dest/contract_function_simulator/oracle/index.d.ts +2 -2
  39. package/dest/contract_function_simulator/oracle/index.d.ts.map +1 -1
  40. package/dest/contract_function_simulator/oracle/index.js +1 -1
  41. package/dest/contract_function_simulator/oracle/interfaces.d.ts +104 -0
  42. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -0
  43. package/dest/contract_function_simulator/oracle/interfaces.js +4 -0
  44. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +2 -4
  45. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  46. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -1
  47. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts +10 -4
  48. package/dest/contract_function_simulator/oracle/note_packing_utils.d.ts.map +1 -1
  49. package/dest/contract_function_simulator/oracle/note_packing_utils.js +10 -5
  50. package/dest/contract_function_simulator/oracle/oracle.d.ts +17 -15
  51. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  52. package/dest/contract_function_simulator/oracle/oracle.js +101 -81
  53. package/dest/contract_function_simulator/oracle/private_execution.d.ts +6 -5
  54. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  55. package/dest/contract_function_simulator/oracle/private_execution.js +7 -16
  56. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +34 -22
  57. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  58. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +89 -25
  59. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +23 -33
  60. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  61. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +38 -42
  62. package/dest/contract_function_simulator/pick_notes.d.ts +2 -2
  63. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  64. package/dest/contract_function_simulator/pick_notes.js +1 -1
  65. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  66. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  67. package/dest/contract_function_simulator/proxied_node.d.ts +1 -1
  68. package/dest/contract_function_simulator/proxied_node.d.ts.map +1 -1
  69. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts +34 -68
  70. package/dest/contract_function_simulator/pxe_oracle_interface.d.ts.map +1 -1
  71. package/dest/contract_function_simulator/pxe_oracle_interface.js +220 -208
  72. package/dest/entrypoints/client/bundle/index.d.ts +4 -2
  73. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  74. package/dest/entrypoints/client/bundle/index.js +2 -1
  75. package/dest/entrypoints/client/bundle/utils.d.ts +9 -9
  76. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  77. package/dest/entrypoints/client/bundle/utils.js +21 -12
  78. package/dest/entrypoints/client/lazy/index.d.ts +4 -2
  79. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  80. package/dest/entrypoints/client/lazy/index.js +2 -1
  81. package/dest/entrypoints/client/lazy/utils.d.ts +8 -8
  82. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  83. package/dest/entrypoints/client/lazy/utils.js +20 -11
  84. package/dest/entrypoints/pxe_creation_options.d.ts +5 -2
  85. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  86. package/dest/entrypoints/server/index.d.ts +4 -2
  87. package/dest/entrypoints/server/index.d.ts.map +1 -1
  88. package/dest/entrypoints/server/index.js +2 -1
  89. package/dest/entrypoints/server/utils.d.ts +5 -24
  90. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  91. package/dest/entrypoints/server/utils.js +17 -45
  92. package/dest/error_enriching.d.ts +11 -0
  93. package/dest/error_enriching.d.ts.map +1 -0
  94. package/dest/{pxe_service/error_enriching.js → error_enriching.js} +3 -0
  95. package/dest/events/index.d.ts +2 -0
  96. package/dest/events/index.d.ts.map +1 -0
  97. package/dest/events/index.js +1 -0
  98. package/dest/events/private_event_filter_validator.d.ts +8 -0
  99. package/dest/events/private_event_filter_validator.d.ts.map +1 -0
  100. package/dest/events/private_event_filter_validator.js +39 -0
  101. package/dest/oracle_version.d.ts +3 -3
  102. package/dest/oracle_version.js +2 -2
  103. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts +3 -3
  104. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.d.ts.map +1 -1
  105. package/dest/private_kernel/hints/build_private_kernel_reset_private_inputs.js +7 -7
  106. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +1 -1
  107. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.js +6 -6
  108. package/dest/private_kernel/hints/index.d.ts +1 -1
  109. package/dest/private_kernel/index.d.ts +1 -1
  110. package/dest/private_kernel/private_kernel_execution_prover.d.ts +9 -2
  111. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  112. package/dest/private_kernel/private_kernel_execution_prover.js +38 -32
  113. package/dest/private_kernel/private_kernel_oracle.d.ts +3 -2
  114. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  115. package/dest/private_kernel/private_kernel_oracle_impl.d.ts +8 -7
  116. package/dest/private_kernel/private_kernel_oracle_impl.d.ts.map +1 -1
  117. package/dest/pxe.d.ts +240 -0
  118. package/dest/pxe.d.ts.map +1 -0
  119. package/dest/{pxe_service/pxe_service.js → pxe.js} +227 -241
  120. package/dest/storage/address_data_provider/address_data_provider.d.ts +2 -4
  121. package/dest/storage/address_data_provider/address_data_provider.d.ts.map +1 -1
  122. package/dest/storage/address_data_provider/address_data_provider.js +0 -3
  123. package/dest/storage/address_data_provider/index.d.ts +1 -1
  124. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts +3 -5
  125. package/dest/storage/capsule_data_provider/capsule_data_provider.d.ts.map +1 -1
  126. package/dest/storage/capsule_data_provider/capsule_data_provider.js +1 -5
  127. package/dest/storage/capsule_data_provider/index.d.ts +1 -1
  128. package/dest/storage/contract_data_provider/contract_data_provider.d.ts +6 -17
  129. package/dest/storage/contract_data_provider/contract_data_provider.d.ts.map +1 -1
  130. package/dest/storage/contract_data_provider/contract_data_provider.js +0 -15
  131. package/dest/storage/contract_data_provider/index.d.ts +1 -1
  132. package/dest/storage/contract_data_provider/private_functions_tree.d.ts +1 -1
  133. package/dest/storage/contract_data_provider/private_functions_tree.d.ts.map +1 -1
  134. package/dest/storage/contract_data_provider/private_functions_tree.js +1 -1
  135. package/dest/storage/index.d.ts +1 -2
  136. package/dest/storage/index.d.ts.map +1 -1
  137. package/dest/storage/index.js +0 -1
  138. package/dest/storage/metadata.d.ts +1 -1
  139. package/dest/storage/note_data_provider/index.d.ts +2 -2
  140. package/dest/storage/note_data_provider/index.d.ts.map +1 -1
  141. package/dest/storage/note_data_provider/index.js +1 -1
  142. package/dest/storage/note_data_provider/note_data_provider.d.ts +75 -11
  143. package/dest/storage/note_data_provider/note_data_provider.d.ts.map +1 -1
  144. package/dest/storage/note_data_provider/note_data_provider.js +143 -81
  145. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts +31 -17
  146. package/dest/storage/private_event_data_provider/private_event_data_provider.d.ts.map +1 -1
  147. package/dest/storage/private_event_data_provider/private_event_data_provider.js +47 -28
  148. package/dest/storage/sync_data_provider/index.d.ts +1 -1
  149. package/dest/storage/sync_data_provider/sync_data_provider.d.ts +4 -5
  150. package/dest/storage/sync_data_provider/sync_data_provider.d.ts.map +1 -1
  151. package/dest/storage/sync_data_provider/sync_data_provider.js +0 -3
  152. package/dest/storage/tagging_data_provider/index.d.ts +1 -1
  153. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts +29 -7
  154. package/dest/storage/tagging_data_provider/tagging_data_provider.d.ts.map +1 -1
  155. package/dest/storage/tagging_data_provider/tagging_data_provider.js +46 -39
  156. package/dest/synchronizer/index.d.ts +1 -1
  157. package/dest/synchronizer/synchronizer.d.ts +3 -2
  158. package/dest/synchronizer/synchronizer.d.ts.map +1 -1
  159. package/dest/synchronizer/synchronizer.js +4 -4
  160. package/dest/tagging/constants.d.ts +2 -0
  161. package/dest/tagging/constants.d.ts.map +1 -0
  162. package/dest/tagging/constants.js +2 -0
  163. package/dest/tagging/index.d.ts +7 -0
  164. package/dest/tagging/index.d.ts.map +1 -0
  165. package/dest/tagging/index.js +5 -0
  166. package/dest/tagging/siloed_tag.d.ts +14 -0
  167. package/dest/tagging/siloed_tag.d.ts.map +1 -0
  168. package/dest/tagging/siloed_tag.js +20 -0
  169. package/dest/tagging/tag.d.ts +12 -0
  170. package/dest/tagging/tag.d.ts.map +1 -0
  171. package/dest/tagging/tag.js +17 -0
  172. package/dest/tagging/utils.d.ts +18 -0
  173. package/dest/tagging/utils.d.ts.map +1 -0
  174. package/dest/tagging/utils.js +24 -0
  175. package/package.json +22 -24
  176. package/src/bin/check_oracle_version.ts +134 -10
  177. package/src/config/index.ts +18 -32
  178. package/src/config/package_info.ts +1 -1
  179. package/src/contract_function_simulator/contract_function_simulator.ts +151 -62
  180. package/src/contract_function_simulator/execution_data_provider.ts +47 -65
  181. package/src/contract_function_simulator/execution_note_cache.ts +33 -17
  182. package/src/contract_function_simulator/execution_tagging_index_cache.ts +32 -0
  183. package/src/contract_function_simulator/hashed_values_cache.ts +1 -1
  184. package/src/contract_function_simulator/index.ts +3 -1
  185. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
  186. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +1 -1
  187. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +10 -5
  188. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +14 -2
  189. package/src/contract_function_simulator/noir-structs/utility_context.ts +42 -0
  190. package/src/contract_function_simulator/oracle/index.ts +1 -1
  191. package/src/contract_function_simulator/oracle/interfaces.ts +176 -0
  192. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +1 -1
  193. package/src/contract_function_simulator/oracle/note_packing_utils.ts +21 -5
  194. package/src/contract_function_simulator/oracle/oracle.ts +135 -80
  195. package/src/contract_function_simulator/oracle/private_execution.ts +10 -17
  196. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +123 -49
  197. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +68 -80
  198. package/src/contract_function_simulator/pick_notes.ts +1 -1
  199. package/src/contract_function_simulator/pxe_oracle_interface.ts +291 -271
  200. package/src/entrypoints/client/bundle/index.ts +3 -1
  201. package/src/entrypoints/client/bundle/utils.ts +21 -23
  202. package/src/entrypoints/client/lazy/index.ts +3 -1
  203. package/src/entrypoints/client/lazy/utils.ts +20 -23
  204. package/src/entrypoints/pxe_creation_options.ts +4 -1
  205. package/src/entrypoints/server/index.ts +3 -1
  206. package/src/entrypoints/server/utils.ts +20 -68
  207. package/src/{pxe_service/error_enriching.ts → error_enriching.ts} +5 -1
  208. package/src/events/index.ts +1 -0
  209. package/src/events/private_event_filter_validator.ts +47 -0
  210. package/src/oracle_version.ts +2 -2
  211. package/src/private_kernel/hints/build_private_kernel_reset_private_inputs.ts +5 -9
  212. package/src/private_kernel/hints/compute_tx_include_by_timestamp.ts +6 -6
  213. package/src/private_kernel/private_kernel_execution_prover.ts +51 -43
  214. package/src/private_kernel/private_kernel_oracle.ts +2 -1
  215. package/src/private_kernel/private_kernel_oracle_impl.ts +4 -3
  216. package/src/{pxe_service/pxe_service.ts → pxe.ts} +256 -308
  217. package/src/storage/address_data_provider/address_data_provider.ts +1 -7
  218. package/src/storage/capsule_data_provider/capsule_data_provider.ts +2 -12
  219. package/src/storage/contract_data_provider/contract_data_provider.ts +4 -27
  220. package/src/storage/contract_data_provider/private_functions_tree.ts +1 -1
  221. package/src/storage/index.ts +0 -1
  222. package/src/storage/note_data_provider/index.ts +1 -1
  223. package/src/storage/note_data_provider/note_data_provider.ts +171 -109
  224. package/src/storage/private_event_data_provider/private_event_data_provider.ts +69 -41
  225. package/src/storage/sync_data_provider/sync_data_provider.ts +3 -8
  226. package/src/storage/tagging_data_provider/tagging_data_provider.ts +52 -55
  227. package/src/synchronizer/synchronizer.ts +4 -4
  228. package/src/tagging/constants.ts +2 -0
  229. package/src/tagging/index.ts +6 -0
  230. package/src/tagging/siloed_tag.ts +22 -0
  231. package/src/tagging/tag.ts +16 -0
  232. package/src/tagging/utils.ts +31 -0
  233. package/dest/bin/index.d.ts +0 -3
  234. package/dest/bin/index.d.ts.map +0 -1
  235. package/dest/bin/index.js +0 -48
  236. package/dest/contract_function_simulator/oracle/typed_oracle.d.ts +0 -87
  237. package/dest/contract_function_simulator/oracle/typed_oracle.d.ts.map +0 -1
  238. package/dest/contract_function_simulator/oracle/typed_oracle.js +0 -146
  239. package/dest/contract_function_simulator/tagging_utils.d.ts +0 -17
  240. package/dest/contract_function_simulator/tagging_utils.d.ts.map +0 -1
  241. package/dest/contract_function_simulator/tagging_utils.js +0 -23
  242. package/dest/pxe_service/error_enriching.d.ts +0 -11
  243. package/dest/pxe_service/error_enriching.d.ts.map +0 -1
  244. package/dest/pxe_service/index.d.ts +0 -3
  245. package/dest/pxe_service/index.d.ts.map +0 -1
  246. package/dest/pxe_service/index.js +0 -2
  247. package/dest/pxe_service/pxe_service.d.ts +0 -100
  248. package/dest/pxe_service/pxe_service.d.ts.map +0 -1
  249. package/dest/storage/data_provider.d.ts +0 -4
  250. package/dest/storage/data_provider.d.ts.map +0 -1
  251. package/dest/storage/data_provider.js +0 -1
  252. package/dest/storage/note_data_provider/note_dao.d.ts +0 -100
  253. package/dest/storage/note_data_provider/note_dao.d.ts.map +0 -1
  254. package/dest/storage/note_data_provider/note_dao.js +0 -102
  255. package/dest/test/pxe_test_suite.d.ts +0 -3
  256. package/dest/test/pxe_test_suite.d.ts.map +0 -1
  257. package/dest/test/pxe_test_suite.js +0 -97
  258. package/src/bin/index.ts +0 -62
  259. package/src/contract_function_simulator/oracle/typed_oracle.ts +0 -289
  260. package/src/contract_function_simulator/tagging_utils.ts +0 -32
  261. package/src/pxe_service/index.ts +0 -2
  262. package/src/storage/data_provider.ts +0 -3
  263. package/src/storage/note_data_provider/note_dao.ts +0 -154
  264. package/src/test/pxe_test_suite.ts +0 -113
@@ -1,22 +1,50 @@
1
- import { Fr, Point } from '@aztec/foundation/fields';
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { Point } from '@aztec/foundation/curves/grumpkin';
2
4
  import { arrayOfArraysToBoundedVecOfArrays, bufferToBoundedVec, fromUintArray, fromUintBoundedVec, toACVMField } from '@aztec/simulator/client';
3
5
  import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
4
6
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
7
  import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
6
8
  import { MerkleTreeId } from '@aztec/stdlib/trees';
7
9
  import { packAsRetrievedNote } from './note_packing_utils.js';
10
+ export class UnavailableOracleError extends Error {
11
+ constructor(oracleName){
12
+ super(`${oracleName} oracles not available with the current handler`);
13
+ }
14
+ }
8
15
  /**
9
16
  * A data source that has all the apis required by Aztec.nr.
10
17
  */ export class Oracle {
11
- typedOracle;
12
- constructor(typedOracle){
13
- this.typedOracle = typedOracle;
18
+ handler;
19
+ constructor(handler){
20
+ this.handler = handler;
21
+ }
22
+ handlerAsMisc() {
23
+ if (!('isMisc' in this.handler)) {
24
+ throw new UnavailableOracleError('Misc');
25
+ }
26
+ return this.handler;
27
+ }
28
+ handlerAsUtility() {
29
+ if (!('isUtility' in this.handler)) {
30
+ throw new UnavailableOracleError('Utility');
31
+ }
32
+ return this.handler;
33
+ }
34
+ handlerAsPrivate() {
35
+ if (!('isPrivate' in this.handler)) {
36
+ throw new UnavailableOracleError('Private');
37
+ }
38
+ return this.handler;
14
39
  }
15
40
  toACIRCallback() {
16
41
  const excludedProps = [
17
- 'typedOracle',
42
+ 'handler',
18
43
  'constructor',
19
- 'toACIRCallback'
44
+ 'toACIRCallback',
45
+ 'handlerAsMisc',
46
+ 'handlerAsUtility',
47
+ 'handlerAsPrivate'
20
48
  ];
21
49
  // Get all the oracle function names
22
50
  const oracleNames = Object.getOwnPropertyNames(Oracle.prototype).filter((name)=>!excludedProps.includes(name));
@@ -39,57 +67,35 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
39
67
  }, {});
40
68
  }
41
69
  utilityAssertCompatibleOracleVersion([version]) {
42
- this.typedOracle.utilityAssertCompatibleOracleVersion(Fr.fromString(version).toNumber());
70
+ this.handlerAsMisc().utilityAssertCompatibleOracleVersion(Fr.fromString(version).toNumber());
43
71
  return Promise.resolve([]);
44
72
  }
45
73
  utilityGetRandomField() {
46
- const val = this.typedOracle.utilityGetRandomField();
74
+ const val = this.handlerAsMisc().utilityGetRandomField();
47
75
  return Promise.resolve([
48
76
  toACVMField(val)
49
77
  ]);
50
78
  }
51
- // Since the argument is a slice, noir automatically adds a length field to oracle call.
52
- privateStoreInExecutionCache(_length, values, [hash]) {
53
- this.typedOracle.privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
79
+ privateStoreInExecutionCache(values, [hash]) {
80
+ this.handlerAsPrivate().privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
54
81
  return Promise.resolve([]);
55
82
  }
56
83
  async privateLoadFromExecutionCache([returnsHash]) {
57
- const values = await this.typedOracle.privateLoadFromExecutionCache(Fr.fromString(returnsHash));
84
+ const values = await this.handlerAsPrivate().privateLoadFromExecutionCache(Fr.fromString(returnsHash));
58
85
  return [
59
86
  values.map(toACVMField)
60
87
  ];
61
88
  }
62
- async utilityGetBlockNumber() {
63
- return [
64
- toACVMField(await this.typedOracle.utilityGetBlockNumber())
65
- ];
66
- }
67
- async utilityGetTimestamp() {
68
- return [
69
- toACVMField(await this.typedOracle.utilityGetTimestamp())
70
- ];
71
- }
72
- async utilityGetContractAddress() {
73
- return [
74
- toACVMField(await this.typedOracle.utilityGetContractAddress())
75
- ];
76
- }
77
- async utilityGetVersion() {
78
- return [
79
- toACVMField(await this.typedOracle.utilityGetVersion())
80
- ];
81
- }
82
- async utilityGetChainId() {
83
- return [
84
- toACVMField(await this.typedOracle.utilityGetChainId())
85
- ];
89
+ async utilityGetUtilityContext() {
90
+ const context = await this.handlerAsUtility().utilityGetUtilityContext();
91
+ return context.toNoirRepresentation();
86
92
  }
87
93
  async utilityGetKeyValidationRequest([pkMHash]) {
88
- const keyValidationRequest = await this.typedOracle.utilityGetKeyValidationRequest(Fr.fromString(pkMHash));
94
+ const keyValidationRequest = await this.handlerAsUtility().utilityGetKeyValidationRequest(Fr.fromString(pkMHash));
89
95
  return keyValidationRequest.toFields().map(toACVMField);
90
96
  }
91
97
  async utilityGetContractInstance([address]) {
92
- const instance = await this.typedOracle.utilityGetContractInstance(AztecAddress.fromField(Fr.fromString(address)));
98
+ const instance = await this.handlerAsUtility().utilityGetContractInstance(AztecAddress.fromField(Fr.fromString(address)));
93
99
  return [
94
100
  instance.salt,
95
101
  instance.deployer,
@@ -102,7 +108,7 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
102
108
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
103
109
  const parsedTreeId = Fr.fromString(treeId).toNumber();
104
110
  const parsedLeafValue = Fr.fromString(leafValue);
105
- const witness = await this.typedOracle.utilityGetMembershipWitness(parsedBlockNumber, parsedTreeId, parsedLeafValue);
111
+ const witness = await this.handlerAsUtility().utilityGetMembershipWitness(BlockNumber(parsedBlockNumber), parsedTreeId, parsedLeafValue);
106
112
  if (!witness) {
107
113
  throw new Error(`Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block ${parsedBlockNumber}.`);
108
114
  }
@@ -114,7 +120,7 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
114
120
  async utilityGetNullifierMembershipWitness([blockNumber], [nullifier]) {
115
121
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
116
122
  const parsedNullifier = Fr.fromString(nullifier);
117
- const witness = await this.typedOracle.utilityGetNullifierMembershipWitness(parsedBlockNumber, parsedNullifier);
123
+ const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(BlockNumber(parsedBlockNumber), parsedNullifier);
118
124
  if (!witness) {
119
125
  throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
120
126
  }
@@ -123,7 +129,7 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
123
129
  async utilityGetLowNullifierMembershipWitness([blockNumber], [nullifier]) {
124
130
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
125
131
  const parsedNullifier = Fr.fromString(nullifier);
126
- const witness = await this.typedOracle.utilityGetLowNullifierMembershipWitness(parsedBlockNumber, parsedNullifier);
132
+ const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(BlockNumber(parsedBlockNumber), parsedNullifier);
127
133
  if (!witness) {
128
134
  throw new Error(`Low nullifier witness not found for nullifier ${parsedNullifier} at block ${parsedBlockNumber}.`);
129
135
  }
@@ -132,7 +138,7 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
132
138
  async utilityGetPublicDataWitness([blockNumber], [leafSlot]) {
133
139
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
134
140
  const parsedLeafSlot = Fr.fromString(leafSlot);
135
- const witness = await this.typedOracle.utilityGetPublicDataWitness(parsedBlockNumber, parsedLeafSlot);
141
+ const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(BlockNumber(parsedBlockNumber), parsedLeafSlot);
136
142
  if (!witness) {
137
143
  throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block ${parsedBlockNumber}.`);
138
144
  }
@@ -140,7 +146,7 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
140
146
  }
141
147
  async utilityGetBlockHeader([blockNumber]) {
142
148
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
143
- const header = await this.typedOracle.utilityGetBlockHeader(parsedBlockNumber);
149
+ const header = await this.handlerAsUtility().utilityGetBlockHeader(BlockNumber(parsedBlockNumber));
144
150
  if (!header) {
145
151
  throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
146
152
  }
@@ -148,7 +154,7 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
148
154
  }
149
155
  async utilityGetAuthWitness([messageHash]) {
150
156
  const messageHashField = Fr.fromString(messageHash);
151
- const witness = await this.typedOracle.utilityGetAuthWitness(messageHashField);
157
+ const witness = await this.handlerAsUtility().utilityGetAuthWitness(messageHashField);
152
158
  if (!witness) {
153
159
  throw new Error(`Unknown auth witness for message hash ${messageHashField}`);
154
160
  }
@@ -156,10 +162,9 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
156
162
  witness.map(toACVMField)
157
163
  ];
158
164
  }
159
- // TODO(benesjan): This doesn't map to the underlying oracle name which is just ugly.
160
165
  async utilityGetPublicKeysAndPartialAddress([address]) {
161
166
  const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
162
- const { publicKeys, partialAddress } = await this.typedOracle.utilityGetCompleteAddress(parsedAddress);
167
+ const { publicKeys, partialAddress } = await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
163
168
  return [
164
169
  [
165
170
  ...publicKeys.toFields(),
@@ -167,38 +172,48 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
167
172
  ].map(toACVMField)
168
173
  ];
169
174
  }
170
- async utilityGetNotes([storageSlot], [numSelects], selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, [limit], [offset], [status], [maxNotes], [packedRetrievedNoteLength]) {
171
- const noteDatas = await this.typedOracle.utilityGetNotes(Fr.fromString(storageSlot), +numSelects, selectByIndexes.map((s)=>+s), selectByOffsets.map((s)=>+s), selectByLengths.map((s)=>+s), selectValues.map(Fr.fromString), selectComparators.map((s)=>+s), sortByIndexes.map((s)=>+s), sortByOffsets.map((s)=>+s), sortByLengths.map((s)=>+s), sortOrder.map((s)=>+s), +limit, +offset, +status);
172
- const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map(packAsRetrievedNote);
175
+ async utilityGetNotes([ownerSome], [ownerValue], [storageSlot], [numSelects], selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, [limit], [offset], [status], [maxNotes], [packedRetrievedNoteLength]) {
176
+ // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
177
+ const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
178
+ const noteDatas = await this.handlerAsUtility().utilityGetNotes(owner, Fr.fromString(storageSlot), +numSelects, selectByIndexes.map((s)=>+s), selectByOffsets.map((s)=>+s), selectByLengths.map((s)=>+s), selectValues.map(Fr.fromString), selectComparators.map((s)=>+s), sortByIndexes.map((s)=>+s), sortByOffsets.map((s)=>+s), sortByLengths.map((s)=>+s), sortOrder.map((s)=>+s), +limit, +offset, +status);
179
+ const returnDataAsArrayOfPackedRetrievedNotes = noteDatas.map((noteData)=>packAsRetrievedNote({
180
+ contractAddress: noteData.contractAddress,
181
+ owner: noteData.owner,
182
+ randomness: noteData.randomness,
183
+ storageSlot: noteData.storageSlot,
184
+ noteNonce: noteData.noteNonce,
185
+ index: noteData.index,
186
+ note: noteData.note
187
+ }));
173
188
  // Now we convert each sub-array to an array of ACVMField
174
189
  const returnDataAsArrayOfACVMFieldArrays = returnDataAsArrayOfPackedRetrievedNotes.map((subArray)=>subArray.map(toACVMField));
175
190
  // At last we convert the array of arrays to a bounded vec of arrays
176
191
  return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedRetrievedNoteLength);
177
192
  }
178
- privateNotifyCreatedNote([storageSlot], [noteTypeId], note, [noteHash], [counter]) {
179
- this.typedOracle.privateNotifyCreatedNote(Fr.fromString(storageSlot), NoteSelector.fromField(Fr.fromString(noteTypeId)), note.map(Fr.fromString), Fr.fromString(noteHash), +counter);
193
+ privateNotifyCreatedNote([owner], [storageSlot], [randomness], [noteTypeId], note, [noteHash], [counter]) {
194
+ this.handlerAsPrivate().privateNotifyCreatedNote(AztecAddress.fromString(owner), Fr.fromString(storageSlot), Fr.fromString(randomness), NoteSelector.fromField(Fr.fromString(noteTypeId)), note.map(Fr.fromString), Fr.fromString(noteHash), +counter);
180
195
  return Promise.resolve([]);
181
196
  }
182
197
  async privateNotifyNullifiedNote([innerNullifier], [noteHash], [counter]) {
183
- await this.typedOracle.privateNotifyNullifiedNote(Fr.fromString(innerNullifier), Fr.fromString(noteHash), +counter);
198
+ await this.handlerAsPrivate().privateNotifyNullifiedNote(Fr.fromString(innerNullifier), Fr.fromString(noteHash), +counter);
184
199
  return [];
185
200
  }
186
201
  async privateNotifyCreatedNullifier([innerNullifier]) {
187
- await this.typedOracle.privateNotifyCreatedNullifier(Fr.fromString(innerNullifier));
202
+ await this.handlerAsPrivate().privateNotifyCreatedNullifier(Fr.fromString(innerNullifier));
188
203
  return [];
189
204
  }
190
205
  async utilityCheckNullifierExists([innerNullifier]) {
191
- const exists = await this.typedOracle.utilityCheckNullifierExists(Fr.fromString(innerNullifier));
206
+ const exists = await this.handlerAsUtility().utilityCheckNullifierExists(Fr.fromString(innerNullifier));
192
207
  return [
193
208
  toACVMField(exists)
194
209
  ];
195
210
  }
196
211
  async utilityGetL1ToL2MembershipWitness([contractAddress], [messageHash], [secret]) {
197
- const message = await this.typedOracle.utilityGetL1ToL2MembershipWitness(AztecAddress.fromString(contractAddress), Fr.fromString(messageHash), Fr.fromString(secret));
212
+ const message = await this.handlerAsUtility().utilityGetL1ToL2MembershipWitness(AztecAddress.fromString(contractAddress), Fr.fromString(messageHash), Fr.fromString(secret));
198
213
  return message.toNoirRepresentation();
199
214
  }
200
215
  async utilityStorageRead([contractAddress], [startStorageSlot], [blockNumber], [numberOfElements]) {
201
- const values = await this.typedOracle.utilityStorageRead(new AztecAddress(Fr.fromString(contractAddress)), Fr.fromString(startStorageSlot), +blockNumber, +numberOfElements);
216
+ const values = await this.handlerAsUtility().utilityStorageRead(new AztecAddress(Fr.fromString(contractAddress)), Fr.fromString(startStorageSlot), BlockNumber(+blockNumber), +numberOfElements);
202
217
  return [
203
218
  values.map(toACVMField)
204
219
  ];
@@ -206,19 +221,20 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
206
221
  privateNotifyCreatedContractClassLog([contractAddress], message, [length], [counter]) {
207
222
  const logFields = new ContractClassLogFields(message.map(Fr.fromString));
208
223
  const log = new ContractClassLog(new AztecAddress(Fr.fromString(contractAddress)), logFields, +length);
209
- this.typedOracle.privateNotifyCreatedContractClassLog(log, +counter);
224
+ this.handlerAsPrivate().privateNotifyCreatedContractClassLog(log, +counter);
210
225
  return Promise.resolve([]);
211
226
  }
212
- utilityDebugLog(message, _ignoredFieldsSize, fields) {
227
+ utilityDebugLog(level, message, _ignoredFieldsSize, fields) {
228
+ const levelFr = Fr.fromString(level[0]);
213
229
  const messageStr = message.map((acvmField)=>String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
214
230
  const fieldsFr = fields.map(Fr.fromString);
215
- this.typedOracle.utilityDebugLog(messageStr, fieldsFr);
231
+ this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
216
232
  return Promise.resolve([]);
217
233
  }
218
234
  // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
219
235
  // change the name here.
220
236
  async privateCallPrivateFunction([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
221
- const { endSideEffectCounter, returnsHash } = await this.typedOracle.privateCallPrivateFunction(AztecAddress.fromField(Fr.fromString(contractAddress)), FunctionSelector.fromField(Fr.fromString(functionSelector)), Fr.fromString(argsHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
237
+ const { endSideEffectCounter, returnsHash } = await this.handlerAsPrivate().privateCallPrivateFunction(AztecAddress.fromField(Fr.fromString(contractAddress)), FunctionSelector.fromField(Fr.fromString(functionSelector)), Fr.fromString(argsHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
222
238
  return [
223
239
  [
224
240
  endSideEffectCounter,
@@ -227,43 +243,47 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
227
243
  ];
228
244
  }
229
245
  async privateNotifyEnqueuedPublicFunctionCall([contractAddress], [calldataHash], [sideEffectCounter], [isStaticCall]) {
230
- await this.typedOracle.privateNotifyEnqueuedPublicFunctionCall(AztecAddress.fromString(contractAddress), Fr.fromString(calldataHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
246
+ await this.handlerAsPrivate().privateNotifyEnqueuedPublicFunctionCall(AztecAddress.fromString(contractAddress), Fr.fromString(calldataHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
231
247
  return [];
232
248
  }
233
249
  async privateNotifySetPublicTeardownFunctionCall([contractAddress], [calldataHash], [sideEffectCounter], [isStaticCall]) {
234
- await this.typedOracle.privateNotifySetPublicTeardownFunctionCall(AztecAddress.fromString(contractAddress), Fr.fromString(calldataHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
250
+ await this.handlerAsPrivate().privateNotifySetPublicTeardownFunctionCall(AztecAddress.fromString(contractAddress), Fr.fromString(calldataHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
235
251
  return [];
236
252
  }
237
253
  async privateNotifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]) {
238
- await this.typedOracle.privateNotifySetMinRevertibleSideEffectCounter(Fr.fromString(minRevertibleSideEffectCounter).toNumber());
254
+ await this.handlerAsPrivate().privateNotifySetMinRevertibleSideEffectCounter(Fr.fromString(minRevertibleSideEffectCounter).toNumber());
239
255
  return Promise.resolve([]);
240
256
  }
241
- async utilityGetIndexedTaggingSecretAsSender([sender], [recipient]) {
242
- const taggingSecret = await this.typedOracle.utilityGetIndexedTaggingSecretAsSender(AztecAddress.fromString(sender), AztecAddress.fromString(recipient));
243
- return taggingSecret.toFields().map(toACVMField);
257
+ async privateIsSideEffectCounterRevertible([sideEffectCounter]) {
258
+ const isRevertible = await this.handlerAsPrivate().privateIsSideEffectCounterRevertible(Fr.fromString(sideEffectCounter).toNumber());
259
+ return Promise.resolve([
260
+ toACVMField(isRevertible)
261
+ ]);
244
262
  }
245
- async privateIncrementAppTaggingSecretIndexAsSender([sender], [recipient]) {
246
- await this.typedOracle.privateIncrementAppTaggingSecretIndexAsSender(AztecAddress.fromString(sender), AztecAddress.fromString(recipient));
247
- return [];
263
+ async privateGetNextAppTagAsSender([sender], [recipient]) {
264
+ const tag = await this.handlerAsPrivate().privateGetNextAppTagAsSender(AztecAddress.fromString(sender), AztecAddress.fromString(recipient));
265
+ return [
266
+ toACVMField(tag.value)
267
+ ];
248
268
  }
249
269
  async utilityFetchTaggedLogs([pendingTaggedLogArrayBaseSlot]) {
250
- await this.typedOracle.utilityFetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
270
+ await this.handlerAsUtility().utilityFetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
251
271
  return [];
252
272
  }
253
273
  async utilityValidateEnqueuedNotesAndEvents([contractAddress], [noteValidationRequestsArrayBaseSlot], [eventValidationRequestsArrayBaseSlot]) {
254
- await this.typedOracle.utilityValidateEnqueuedNotesAndEvents(AztecAddress.fromString(contractAddress), Fr.fromString(noteValidationRequestsArrayBaseSlot), Fr.fromString(eventValidationRequestsArrayBaseSlot));
274
+ await this.handlerAsUtility().utilityValidateEnqueuedNotesAndEvents(AztecAddress.fromString(contractAddress), Fr.fromString(noteValidationRequestsArrayBaseSlot), Fr.fromString(eventValidationRequestsArrayBaseSlot));
255
275
  return [];
256
276
  }
257
277
  async utilityBulkRetrieveLogs([contractAddress], [logRetrievalRequestsArrayBaseSlot], [logRetrievalResponsesArrayBaseSlot]) {
258
- await this.typedOracle.utilityBulkRetrieveLogs(AztecAddress.fromString(contractAddress), Fr.fromString(logRetrievalRequestsArrayBaseSlot), Fr.fromString(logRetrievalResponsesArrayBaseSlot));
278
+ await this.handlerAsUtility().utilityBulkRetrieveLogs(AztecAddress.fromString(contractAddress), Fr.fromString(logRetrievalRequestsArrayBaseSlot), Fr.fromString(logRetrievalResponsesArrayBaseSlot));
259
279
  return [];
260
280
  }
261
281
  async utilityStoreCapsule([contractAddress], [slot], capsule) {
262
- await this.typedOracle.utilityStoreCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), capsule.map(Fr.fromString));
282
+ await this.handlerAsUtility().utilityStoreCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), capsule.map(Fr.fromString));
263
283
  return [];
264
284
  }
265
285
  async utilityLoadCapsule([contractAddress], [slot], [tSize]) {
266
- const values = await this.typedOracle.utilityLoadCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
286
+ const values = await this.handlerAsUtility().utilityLoadCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
267
287
  // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
268
288
  // with two fields: `some` (a boolean) and `value` (a field array in this case).
269
289
  if (values === null) {
@@ -281,22 +301,22 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
281
301
  }
282
302
  }
283
303
  async utilityDeleteCapsule([contractAddress], [slot]) {
284
- await this.typedOracle.utilityDeleteCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
304
+ await this.handlerAsUtility().utilityDeleteCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
285
305
  return [];
286
306
  }
287
307
  async utilityCopyCapsule([contractAddress], [srcSlot], [dstSlot], [numEntries]) {
288
- await this.typedOracle.utilityCopyCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(srcSlot), Fr.fromString(dstSlot), Fr.fromString(numEntries).toNumber());
308
+ await this.handlerAsUtility().utilityCopyCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(srcSlot), Fr.fromString(dstSlot), Fr.fromString(numEntries).toNumber());
289
309
  return [];
290
310
  }
291
311
  async utilityAes128Decrypt(ciphertextBVecStorage, [ciphertextLength], iv, symKey) {
292
312
  const ciphertext = fromUintBoundedVec(ciphertextBVecStorage, ciphertextLength, 8);
293
313
  const ivBuffer = fromUintArray(iv, 8);
294
314
  const symKeyBuffer = fromUintArray(symKey, 8);
295
- const plaintext = await this.typedOracle.utilityAes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
315
+ const plaintext = await this.handlerAsUtility().utilityAes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
296
316
  return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
297
317
  }
298
318
  async utilityGetSharedSecret([address], [ephPKField0], [ephPKField1], [ephPKField2]) {
299
- const secret = await this.typedOracle.utilityGetSharedSecret(AztecAddress.fromField(Fr.fromString(address)), Point.fromFields([
319
+ const secret = await this.handlerAsUtility().utilityGetSharedSecret(AztecAddress.fromField(Fr.fromString(address)), Point.fromFields([
300
320
  ephPKField0,
301
321
  ephPKField1,
302
322
  ephPKField2
@@ -304,11 +324,11 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
304
324
  return secret.toFields().map(toACVMField);
305
325
  }
306
326
  async utilityEmitOffchainEffect(data) {
307
- await this.typedOracle.utilityEmitOffchainEffect(data.map(Fr.fromString));
327
+ await this.handlerAsPrivate().utilityEmitOffchainEffect(data.map(Fr.fromString));
308
328
  return [];
309
329
  }
310
330
  async privateGetSenderForTags() {
311
- const sender = await this.typedOracle.privateGetSenderForTags();
331
+ const sender = await this.handlerAsPrivate().privateGetSenderForTags();
312
332
  // Return [1, address] for Some(address), [0, 0] for None
313
333
  return sender ? [
314
334
  toACVMField(1n),
@@ -319,7 +339,7 @@ import { packAsRetrievedNote } from './note_packing_utils.js';
319
339
  ];
320
340
  }
321
341
  async privateSetSenderForTags([senderForTags]) {
322
- await this.typedOracle.privateSetSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
342
+ await this.handlerAsPrivate().privateSetSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
323
343
  return [];
324
344
  }
325
345
  }
@@ -1,4 +1,5 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { BlockNumber } from '@aztec/foundation/branded-types';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
3
  import { type ACVMWitness, type CircuitSimulator } from '@aztec/simulator/client';
3
4
  import { type FunctionArtifact, type FunctionArtifactWithContractName, type FunctionSelector } from '@aztec/stdlib/abi';
4
5
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
@@ -35,14 +36,14 @@ export declare function extractPrivateCircuitPublicInputs(artifact: FunctionArti
35
36
  * @param timestamp - The timestamp at which to obtain the class id from the DelayedPublicMutable.
36
37
  * @returns The current class id.
37
38
  */
38
- export declare function readCurrentClassId(contractAddress: AztecAddress, instance: ContractInstance, executionDataProvider: ExecutionDataProvider | AztecNode, blockNumber: number, timestamp: UInt64): Promise<Fr>;
39
+ export declare function readCurrentClassId(contractAddress: AztecAddress, instance: ContractInstance, executionDataProvider: ExecutionDataProvider | AztecNode, blockNumber: BlockNumber, timestamp: UInt64): Promise<Fr>;
39
40
  /**
40
41
  * Verify that the current class id of a contract obtained from AztecNode is the same as the one in the execution data
41
42
  * provider (i.e. PXE).
42
43
  * @param contractAddress - The address of the contract to verify class id for.
43
44
  * @param executionDataProvider - The execution data provider.
44
- * @param header - The header of the block at which to verify the current class id. If not provided, the current block
45
- * number and timestamp from the execution data provider will be used.
45
+ * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
46
+ * header of the execution data provider is used.
46
47
  */
47
48
  export declare function verifyCurrentClassId(contractAddress: AztecAddress, executionDataProvider: ExecutionDataProvider, header?: BlockHeader): Promise<void>;
48
- //# sourceMappingURL=private_execution.d.ts.map
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivb3JhY2xlL3ByaXZhdGVfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEQsT0FBTyxFQUNMLEtBQUssV0FBVyxFQUNoQixLQUFLLGdCQUFnQixFQUt0QixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQUNyQixLQUFLLGdDQUFnQyxFQUNyQyxLQUFLLGdCQUFnQixFQUV0QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFL0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0UsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RTs7Ozs7OztHQU9HO0FBQ0gsd0JBQXNCLHNCQUFzQixDQUMxQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQzNCLHNCQUFzQixFQUFFLHNCQUFzQixFQUM5QyxRQUFRLEVBQUUsZ0NBQWdDLEVBQzFDLGVBQWUsRUFBRSxZQUFZLEVBQzdCLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxHQUFHLHlDQUE4QyxHQUNoRCxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0E2RXJDO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsaUNBQWlDLENBQy9DLFFBQVEsRUFBRSxnQkFBZ0IsRUFDMUIsY0FBYyxFQUFFLFdBQVcsR0FDMUIsMEJBQTBCLENBYTVCO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUN0QyxlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQUUsZ0JBQWdCLEVBQzFCLHFCQUFxQixFQUFFLHFCQUFxQixHQUFHLFNBQVMsRUFDeEQsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLE1BQU0sZUFXbEI7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQXNCLG9CQUFvQixDQUN4QyxlQUFlLEVBQUUsWUFBWSxFQUM3QixxQkFBcUIsRUFBRSxxQkFBcUIsRUFDNUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxpQkFpQnJCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAI9C,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAKtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,gBAAgB,EAEtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,gBAAgB,EAC3B,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,gCAAgC,EAC1C,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,yCAA8C,GAChD,OAAO,CAAC,0BAA0B,CAAC,CA2ErC;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,WAAW,GAC1B,0BAA0B,CAa5B;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,EACxD,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,eAWlB;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,YAAY,EAC7B,qBAAqB,EAAE,qBAAqB,EAC5C,MAAM,CAAC,EAAE,WAAW,iBA2BrB"}
1
+ {"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAIpD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAKtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,gBAAgB,EAEtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,gBAAgB,EAC3B,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,gCAAgC,EAC1C,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,yCAA8C,GAChD,OAAO,CAAC,0BAA0B,CAAC,CA6ErC;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,gBAAgB,EAC1B,cAAc,EAAE,WAAW,GAC1B,0BAA0B,CAa5B;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,qBAAqB,EAAE,qBAAqB,GAAG,SAAS,EACxD,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,eAWlB;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,YAAY,EAC7B,qBAAqB,EAAE,qBAAqB,EAC5C,MAAM,CAAC,EAAE,WAAW,iBAiBrB"}
@@ -1,5 +1,5 @@
1
1
  import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { Timer } from '@aztec/foundation/timer';
5
5
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
@@ -52,6 +52,7 @@ import { Oracle } from './oracle.js';
52
52
  const newNotes = privateExecutionOracle.getNewNotes();
53
53
  const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
54
54
  const offchainEffects = privateExecutionOracle.getOffchainEffects();
55
+ const preTags = privateExecutionOracle.getUsedPreTags();
55
56
  const nestedExecutionResults = privateExecutionOracle.getNestedExecutionResults();
56
57
  let timerSubtractionList = nestedExecutionResults;
57
58
  let witgenTime = duration;
@@ -61,7 +62,7 @@ import { Oracle } from './oracle.js';
61
62
  timerSubtractionList = timerSubtractionList.flatMap((nested)=>nested.nestedExecutionResults ?? []);
62
63
  }
63
64
  log.debug(`Returning from call to ${contractAddress.toString()}:${functionSelector}`);
64
- return new PrivateCallExecutionResult(artifact.bytecode, Buffer.from(artifact.verificationKey, 'base64'), partialWitness, publicInputs, noteHashLeafIndexMap, newNotes, noteHashNullifierCounterMap, rawReturnValues, offchainEffects, nestedExecutionResults, contractClassLogs, {
65
+ return new PrivateCallExecutionResult(artifact.bytecode, Buffer.from(artifact.verificationKey, 'base64'), partialWitness, publicInputs, noteHashLeafIndexMap, newNotes, noteHashNullifierCounterMap, rawReturnValues, offchainEffects, preTags, nestedExecutionResults, contractClassLogs, {
65
66
  timings: {
66
67
  witgen: witgenTime,
67
68
  oracles: acirExecutionResult.oracles
@@ -110,22 +111,12 @@ import { Oracle } from './oracle.js';
110
111
  * provider (i.e. PXE).
111
112
  * @param contractAddress - The address of the contract to verify class id for.
112
113
  * @param executionDataProvider - The execution data provider.
113
- * @param header - The header of the block at which to verify the current class id. If not provided, the current block
114
- * number and timestamp from the execution data provider will be used.
114
+ * @param header - The header of the block at which to verify the current class id. If not provided, the anchor block
115
+ * header of the execution data provider is used.
115
116
  */ export async function verifyCurrentClassId(contractAddress, executionDataProvider, header) {
116
- let blockNumber;
117
- let timestamp;
118
- if (header) {
119
- blockNumber = header.globalVariables.blockNumber;
120
- timestamp = header.globalVariables.timestamp;
121
- } else {
122
- [blockNumber, timestamp] = await Promise.all([
123
- executionDataProvider.getBlockNumber(),
124
- executionDataProvider.getTimestamp()
125
- ]);
126
- }
117
+ header = header ?? await executionDataProvider.getAnchorBlockHeader();
127
118
  const instance = await executionDataProvider.getContractInstance(contractAddress);
128
- const currentClassId = await readCurrentClassId(contractAddress, instance, executionDataProvider, blockNumber, timestamp);
119
+ const currentClassId = await readCurrentClassId(contractAddress, instance, executionDataProvider, header.globalVariables.blockNumber, header.globalVariables.timestamp);
129
120
  if (!instance.currentContractClassId.equals(currentClassId)) {
130
121
  throw new Error(`Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`);
131
122
  }
@@ -1,31 +1,37 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { type CircuitSimulator } from '@aztec/simulator/client';
3
3
  import { type FunctionAbi, FunctionSelector, type NoteSelector } from '@aztec/stdlib/abi';
4
4
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
5
5
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
- import type { ContractClassLog } from '@aztec/stdlib/logs';
6
+ import { PrivateContextInputs } from '@aztec/stdlib/kernel';
7
+ import type { ContractClassLog, PreTag } from '@aztec/stdlib/logs';
7
8
  import { type NoteStatus } from '@aztec/stdlib/note';
8
9
  import { type BlockHeader, CallContext, Capsule, CountedContractClassLog, NoteAndSlot, PrivateCallExecutionResult, type TxContext } from '@aztec/stdlib/tx';
10
+ import { Tag } from '../../tagging/tag.js';
9
11
  import type { ExecutionDataProvider } from '../execution_data_provider.js';
10
12
  import type { ExecutionNoteCache } from '../execution_note_cache.js';
13
+ import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js';
11
14
  import type { HashedValuesCache } from '../hashed_values_cache.js';
12
- import type { NoteData } from './typed_oracle.js';
15
+ import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
13
16
  import { UtilityExecutionOracle } from './utility_execution_oracle.js';
14
17
  /**
15
18
  * The execution oracle for the private part of a transaction.
16
19
  */
17
- export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
20
+ export declare class PrivateExecutionOracle extends UtilityExecutionOracle implements IPrivateExecutionOracle {
18
21
  #private;
19
22
  private readonly argsHash;
20
23
  private readonly txContext;
21
24
  private readonly callContext;
22
25
  /** Header of a block whose state is used during private execution (not the block the transaction is included in). */
23
- protected readonly historicalHeader: BlockHeader;
26
+ protected readonly anchorBlockHeader: BlockHeader;
24
27
  private readonly executionCache;
25
28
  private readonly noteCache;
26
- private simulator;
29
+ private readonly taggingIndexCache;
27
30
  private totalPublicCalldataCount;
28
31
  protected sideEffectCounter: number;
32
+ private senderForTags?;
33
+ private simulator?;
34
+ isPrivate: true;
29
35
  /**
30
36
  * New notes created during this execution.
31
37
  * It's possible that a note in this list has been nullified (in the same or other executions) and doesn't exist in
@@ -49,12 +55,12 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
49
55
  private contractClassLogs;
50
56
  private offchainEffects;
51
57
  private nestedExecutionResults;
52
- private senderForTags?;
53
58
  constructor(argsHash: Fr, txContext: TxContext, callContext: CallContext,
54
59
  /** Header of a block whose state is used during private execution (not the block the transaction is included in). */
55
- historicalHeader: BlockHeader,
60
+ anchorBlockHeader: BlockHeader,
56
61
  /** List of transient auth witnesses to be used during this simulation */
57
- authWitnesses: AuthWitness[], capsules: Capsule[], executionCache: HashedValuesCache, noteCache: ExecutionNoteCache, executionDataProvider: ExecutionDataProvider, simulator: CircuitSimulator, totalPublicCalldataCount: number, sideEffectCounter?: number, log?: import("@aztec/foundation/log").Logger, scopes?: AztecAddress[], senderForTags?: AztecAddress);
62
+ authWitnesses: AuthWitness[], capsules: Capsule[], executionCache: HashedValuesCache, noteCache: ExecutionNoteCache, taggingIndexCache: ExecutionTaggingIndexCache, executionDataProvider: ExecutionDataProvider, totalPublicCalldataCount?: number, sideEffectCounter?: number, log?: import("@aztec/foundation/log").Logger, scopes?: AztecAddress[], senderForTags?: AztecAddress | undefined, simulator?: CircuitSimulator | undefined);
63
+ getPrivateContextInputs(): PrivateContextInputs;
58
64
  /**
59
65
  * Writes the function inputs to the initial witness.
60
66
  * @param abi - The function ABI.
@@ -81,6 +87,10 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
81
87
  getOffchainEffects(): {
82
88
  data: Fr[];
83
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[];
84
94
  /**
85
95
  * Return the nested execution results during this execution.
86
96
  */
@@ -108,6 +118,13 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
108
118
  * value (unless it is replaced by another call to this setter).
109
119
  */
110
120
  privateSetSenderForTags(senderForTags: AztecAddress): Promise<void>;
121
+ /**
122
+ * Returns the next app tag for a given sender and recipient pair.
123
+ * @param sender - The address sending the log
124
+ * @param recipient - The address receiving the log
125
+ * @returns An app tag to be used in a log.
126
+ */
127
+ privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag>;
111
128
  /**
112
129
  * Store values in the execution cache.
113
130
  * @param values - Values to store.
@@ -120,6 +137,7 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
120
137
  * @returns The values.
121
138
  */
122
139
  privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]>;
140
+ utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean>;
123
141
  /**
124
142
  * Gets some notes for a storage slot.
125
143
  *
@@ -128,6 +146,7 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
128
146
  * Real notes coming from DB will have a leafIndex which
129
147
  * represents their index in the note hash tree.
130
148
  *
149
+ * @param owner - The owner of the notes. If undefined, returns notes for all owners.
131
150
  * @param storageSlot - The storage slot.
132
151
  * @param numSelects - The number of valid selects in selectBy and selectValues.
133
152
  * @param selectBy - An array of indices of the fields to selects.
@@ -140,18 +159,19 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
140
159
  * @param status - The status of notes to fetch.
141
160
  * @returns Array of note data.
142
161
  */
143
- utilityGetNotes(storageSlot: Fr, numSelects: number, selectByIndexes: number[], selectByOffsets: number[], selectByLengths: number[], selectValues: Fr[], selectComparators: number[], sortByIndexes: number[], sortByOffsets: number[], sortByLengths: number[], sortOrder: number[], limit: number, offset: number, status: NoteStatus): Promise<NoteData[]>;
162
+ utilityGetNotes(owner: AztecAddress | undefined, storageSlot: Fr, numSelects: number, selectByIndexes: number[], selectByOffsets: number[], selectByLengths: number[], selectValues: Fr[], selectComparators: number[], sortByIndexes: number[], sortByOffsets: number[], sortByLengths: number[], sortOrder: number[], limit: number, offset: number, status: NoteStatus): Promise<NoteData[]>;
144
163
  /**
145
164
  * Keep track of the new note created during execution.
146
165
  * It can be used in subsequent calls (or transactions when chaining txs is possible).
147
- * @param contractAddress - The contract address.
166
+ * @param owner - The owner of the note.
148
167
  * @param storageSlot - The storage slot.
168
+ * @param randomness - The randomness injected into the note.
149
169
  * @param noteTypeId - The type ID of the note.
150
170
  * @param noteItems - The items to be included in a Note.
151
171
  * @param noteHash - A hash of the new note.
152
172
  * @returns
153
173
  */
154
- privateNotifyCreatedNote(storageSlot: Fr, noteTypeId: NoteSelector, noteItems: Fr[], noteHash: Fr, counter: number): void;
174
+ privateNotifyCreatedNote(owner: AztecAddress, storageSlot: Fr, randomness: Fr, noteTypeId: NoteSelector, noteItems: Fr[], noteHash: Fr, counter: number): void;
155
175
  /**
156
176
  * Adding a siloed nullifier into the current set of all pending nullifiers created
157
177
  * within the current transaction/execution.
@@ -204,17 +224,9 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle {
204
224
  */
205
225
  privateNotifySetPublicTeardownFunctionCall(_targetContractAddress: AztecAddress, calldataHash: Fr, _sideEffectCounter: number, _isStaticCall: boolean): Promise<void>;
206
226
  privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void>;
207
- /**
208
- * Derives the call context for a nested execution.
209
- * @param targetContractAddress - The address of the contract being called.
210
- * @param targetArtifact - The artifact of the function being called.
211
- * @param isStaticCall - Whether the call is a static call.
212
- * @returns The derived call context.
213
- */
227
+ privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean>;
214
228
  private deriveCallContext;
215
229
  getDebugFunctionName(): Promise<string>;
216
- privateIncrementAppTaggingSecretIndexAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<void>;
217
- utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
218
230
  utilityEmitOffchainEffect(data: Fr[]): Promise<void>;
219
231
  }
220
- //# sourceMappingURL=private_execution_oracle.d.ts.map
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb25fb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL29yYWNsZS9wcml2YXRlX2V4ZWN1dGlvbl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFFaEIsZ0JBQWdCLEVBQ2hCLEtBQUssWUFBWSxFQUVsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBK0IsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEcsT0FBTyxFQUFRLEtBQUssVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUNMLEtBQUssV0FBVyxFQUNoQixXQUFXLEVBQ1gsT0FBTyxFQUNQLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsMEJBQTBCLEVBQzFCLEtBQUssU0FBUyxFQUNmLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNDLE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0UsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMs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