@aztec/pxe 0.0.1-commit.3469e52 → 0.0.1-commit.3895657bc

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 (226) hide show
  1. package/dest/access_scopes.d.ts +9 -0
  2. package/dest/access_scopes.d.ts.map +1 -0
  3. package/dest/access_scopes.js +6 -0
  4. package/dest/bin/check_oracle_version.js +1 -1
  5. package/dest/block_synchronizer/block_synchronizer.d.ts +9 -5
  6. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  7. package/dest/block_synchronizer/block_synchronizer.js +62 -16
  8. package/dest/config/index.d.ts +4 -2
  9. package/dest/config/index.d.ts.map +1 -1
  10. package/dest/config/index.js +18 -1
  11. package/dest/config/package_info.js +1 -1
  12. package/dest/contract_function_simulator/contract_function_simulator.d.ts +54 -30
  13. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  14. package/dest/contract_function_simulator/contract_function_simulator.js +178 -77
  15. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +5 -5
  16. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  17. package/dest/contract_function_simulator/execution_tagging_index_cache.js +3 -3
  18. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +1 -1
  19. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +2 -2
  20. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +3 -3
  21. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +2 -2
  23. package/dest/contract_function_simulator/oracle/interfaces.d.ts +48 -45
  24. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  25. package/dest/contract_function_simulator/oracle/oracle.d.ts +44 -42
  26. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  27. package/dest/contract_function_simulator/oracle/oracle.js +170 -105
  28. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -22
  29. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  30. package/dest/contract_function_simulator/oracle/private_execution.js +1 -38
  31. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +61 -53
  32. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +111 -55
  34. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +80 -50
  35. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  36. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +126 -113
  37. package/dest/contract_logging.d.ts +22 -0
  38. package/dest/contract_logging.d.ts.map +1 -0
  39. package/dest/contract_logging.js +23 -0
  40. package/dest/contract_sync/contract_sync_service.d.ts +43 -0
  41. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  42. package/dest/contract_sync/contract_sync_service.js +97 -0
  43. package/dest/contract_sync/helpers.d.ts +29 -0
  44. package/dest/contract_sync/helpers.d.ts.map +1 -0
  45. package/dest/contract_sync/helpers.js +55 -0
  46. package/dest/debug/pxe_debug_utils.d.ts +24 -10
  47. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  48. package/dest/debug/pxe_debug_utils.js +28 -17
  49. package/dest/entrypoints/client/bundle/index.d.ts +4 -1
  50. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  51. package/dest/entrypoints/client/bundle/index.js +3 -0
  52. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  53. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  54. package/dest/entrypoints/client/bundle/utils.js +21 -7
  55. package/dest/entrypoints/client/lazy/index.d.ts +4 -1
  56. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  57. package/dest/entrypoints/client/lazy/index.js +3 -0
  58. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  59. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  60. package/dest/entrypoints/client/lazy/utils.js +22 -8
  61. package/dest/entrypoints/pxe_creation_options.d.ts +3 -2
  62. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  63. package/dest/entrypoints/server/index.d.ts +4 -1
  64. package/dest/entrypoints/server/index.d.ts.map +1 -1
  65. package/dest/entrypoints/server/index.js +3 -0
  66. package/dest/entrypoints/server/utils.d.ts +1 -1
  67. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  68. package/dest/entrypoints/server/utils.js +28 -9
  69. package/dest/events/event_service.d.ts +5 -6
  70. package/dest/events/event_service.d.ts.map +1 -1
  71. package/dest/events/event_service.js +6 -7
  72. package/dest/job_coordinator/job_coordinator.d.ts +3 -2
  73. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -1
  74. package/dest/job_coordinator/job_coordinator.js +3 -2
  75. package/dest/logs/log_service.d.ts +7 -5
  76. package/dest/logs/log_service.d.ts.map +1 -1
  77. package/dest/logs/log_service.js +28 -32
  78. package/dest/notes/note_service.d.ts +9 -8
  79. package/dest/notes/note_service.d.ts.map +1 -1
  80. package/dest/notes/note_service.js +17 -16
  81. package/dest/notes_filter.d.ts +25 -0
  82. package/dest/notes_filter.d.ts.map +1 -0
  83. package/dest/notes_filter.js +4 -0
  84. package/dest/oracle_version.d.ts +3 -3
  85. package/dest/oracle_version.d.ts.map +1 -1
  86. package/dest/oracle_version.js +5 -4
  87. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  88. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  89. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  90. package/dest/private_kernel/hints/index.d.ts +1 -1
  91. package/dest/private_kernel/hints/index.js +1 -1
  92. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +4 -3
  93. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  94. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +129 -68
  95. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  96. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  97. package/dest/private_kernel/hints/test_utils.js +203 -0
  98. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  99. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  100. package/dest/private_kernel/private_kernel_execution_prover.js +21 -13
  101. package/dest/private_kernel/private_kernel_oracle.d.ts +8 -4
  102. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  103. package/dest/private_kernel/private_kernel_oracle.js +7 -3
  104. package/dest/pxe.d.ts +71 -24
  105. package/dest/pxe.d.ts.map +1 -1
  106. package/dest/pxe.js +110 -70
  107. package/dest/storage/address_store/address_store.d.ts +1 -1
  108. package/dest/storage/address_store/address_store.d.ts.map +1 -1
  109. package/dest/storage/address_store/address_store.js +12 -11
  110. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -1
  111. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  112. package/dest/storage/anchor_block_store/anchor_block_store.js +8 -1
  113. package/dest/storage/capsule_store/capsule_store.js +6 -8
  114. package/dest/storage/contract_store/contract_store.d.ts +42 -16
  115. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  116. package/dest/storage/contract_store/contract_store.js +157 -84
  117. package/dest/storage/metadata.d.ts +1 -1
  118. package/dest/storage/metadata.js +1 -1
  119. package/dest/storage/note_store/note_store.d.ts +47 -49
  120. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  121. package/dest/storage/note_store/note_store.js +278 -252
  122. package/dest/storage/note_store/stored_note.d.ts +16 -0
  123. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  124. package/dest/storage/note_store/stored_note.js +43 -0
  125. package/dest/storage/private_event_store/private_event_store.d.ts +17 -4
  126. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  127. package/dest/storage/private_event_store/private_event_store.js +198 -147
  128. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  129. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  130. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  131. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  132. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  133. package/dest/storage/tagging_store/recipient_tagging_store.js +31 -19
  134. package/dest/storage/tagging_store/sender_address_book_store.d.ts +1 -1
  135. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -1
  136. package/dest/storage/tagging_store/sender_address_book_store.js +20 -14
  137. package/dest/storage/tagging_store/sender_tagging_store.d.ts +5 -5
  138. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  139. package/dest/storage/tagging_store/sender_tagging_store.js +184 -114
  140. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  141. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  142. package/dest/tagging/get_all_logs_by_tags.js +60 -0
  143. package/dest/tagging/index.d.ts +3 -2
  144. package/dest/tagging/index.d.ts.map +1 -1
  145. package/dest/tagging/index.js +2 -1
  146. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +5 -5
  147. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  148. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +7 -7
  149. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  150. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +7 -7
  151. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
  152. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +16 -12
  153. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +5 -8
  154. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  155. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +3 -6
  156. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +1 -1
  157. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
  158. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +5 -8
  159. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +5 -7
  160. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  161. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +20 -18
  162. package/package.json +25 -16
  163. package/src/access_scopes.ts +9 -0
  164. package/src/bin/check_oracle_version.ts +1 -0
  165. package/src/block_synchronizer/block_synchronizer.ts +76 -33
  166. package/src/config/index.ts +15 -1
  167. package/src/config/package_info.ts +1 -1
  168. package/src/contract_function_simulator/contract_function_simulator.ts +327 -140
  169. package/src/contract_function_simulator/execution_tagging_index_cache.ts +5 -5
  170. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +2 -2
  171. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +2 -2
  172. package/src/contract_function_simulator/oracle/interfaces.ts +56 -47
  173. package/src/contract_function_simulator/oracle/oracle.ts +176 -118
  174. package/src/contract_function_simulator/oracle/private_execution.ts +2 -61
  175. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +151 -135
  176. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +191 -127
  177. package/src/contract_logging.ts +39 -0
  178. package/src/contract_sync/contract_sync_service.ts +152 -0
  179. package/src/contract_sync/helpers.ts +98 -0
  180. package/src/debug/pxe_debug_utils.ts +63 -18
  181. package/src/entrypoints/client/bundle/index.ts +3 -0
  182. package/src/entrypoints/client/bundle/utils.ts +16 -15
  183. package/src/entrypoints/client/lazy/index.ts +3 -0
  184. package/src/entrypoints/client/lazy/utils.ts +17 -15
  185. package/src/entrypoints/pxe_creation_options.ts +2 -1
  186. package/src/entrypoints/server/index.ts +3 -0
  187. package/src/entrypoints/server/utils.ts +22 -26
  188. package/src/events/event_service.ts +5 -7
  189. package/src/job_coordinator/job_coordinator.ts +4 -3
  190. package/src/logs/log_service.ts +48 -39
  191. package/src/notes/note_service.ts +24 -22
  192. package/src/notes_filter.ts +26 -0
  193. package/src/oracle_version.ts +5 -4
  194. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  195. package/src/private_kernel/hints/index.ts +1 -1
  196. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +164 -117
  197. package/src/private_kernel/hints/test_utils.ts +325 -0
  198. package/src/private_kernel/private_kernel_execution_prover.ts +25 -15
  199. package/src/private_kernel/private_kernel_oracle.ts +9 -9
  200. package/src/pxe.ts +217 -115
  201. package/src/storage/address_store/address_store.ts +15 -15
  202. package/src/storage/anchor_block_store/anchor_block_store.ts +8 -0
  203. package/src/storage/capsule_store/capsule_store.ts +8 -8
  204. package/src/storage/contract_store/contract_store.ts +186 -96
  205. package/src/storage/metadata.ts +1 -1
  206. package/src/storage/note_store/note_store.ts +321 -318
  207. package/src/storage/note_store/stored_note.ts +48 -0
  208. package/src/storage/private_event_store/private_event_store.ts +250 -190
  209. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  210. package/src/storage/tagging_store/recipient_tagging_store.ts +38 -24
  211. package/src/storage/tagging_store/sender_address_book_store.ts +20 -14
  212. package/src/storage/tagging_store/sender_tagging_store.ts +214 -130
  213. package/src/tagging/get_all_logs_by_tags.ts +92 -0
  214. package/src/tagging/index.ts +2 -1
  215. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +17 -10
  216. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  217. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +17 -16
  218. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +6 -9
  219. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +5 -17
  220. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +23 -23
  221. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  222. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  223. package/dest/tree_membership/tree_membership_service.d.ts +0 -50
  224. package/dest/tree_membership/tree_membership_service.d.ts.map +0 -1
  225. package/dest/tree_membership/tree_membership_service.js +0 -75
  226. package/src/tree_membership/tree_membership_service.ts +0 -97
@@ -4,9 +4,8 @@ import { Point } from '@aztec/foundation/curves/grumpkin';
4
4
  import { arrayOfArraysToBoundedVecOfArrays, bufferToBoundedVec, fromUintArray, fromUintBoundedVec, toACVMField } from '@aztec/simulator/client';
5
5
  import { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
6
6
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
7
- import { L2BlockHash } from '@aztec/stdlib/block';
7
+ import { BlockHash } from '@aztec/stdlib/block';
8
8
  import { ContractClassLog, ContractClassLogFields } from '@aztec/stdlib/logs';
9
- import { MerkleTreeId } from '@aztec/stdlib/trees';
10
9
  import { packAsHintedNote } from './note_packing_utils.js';
11
10
  export class UnavailableOracleError extends Error {
12
11
  constructor(oracleName){
@@ -49,11 +48,11 @@ export class UnavailableOracleError extends Error {
49
48
  ];
50
49
  // Get all the oracle function names
51
50
  const oracleNames = Object.getOwnPropertyNames(Oracle.prototype).filter((name)=>!excludedProps.includes(name));
52
- // Validate oracle names - these must be prefixed with either "private" or "utility" to indicate their scope
51
+ // Validate oracle names - these must be prefixed with either "aztec_prv_" or "aztec_utl_" to indicate their scope
53
52
  // and must correspond to a function on the Oracle class.
54
53
  oracleNames.forEach((name)=>{
55
- if (!name.startsWith('private') && !name.startsWith('utility')) {
56
- throw new Error(`Oracle function "${name}" must be prefixed with either "private" or "utility" to indicate its scope`);
54
+ if (!name.startsWith('aztec_prv_') && !name.startsWith('aztec_utl_')) {
55
+ throw new Error(`Oracle function "${name}" must be prefixed with either "aztec_prv_" or "aztec_utl_" to indicate its scope`);
57
56
  }
58
57
  const method = this[name];
59
58
  if (typeof method !== 'function') {
@@ -67,36 +66,43 @@ export class UnavailableOracleError extends Error {
67
66
  return acc;
68
67
  }, {});
69
68
  }
70
- utilityAssertCompatibleOracleVersion([version]) {
71
- this.handlerAsMisc().utilityAssertCompatibleOracleVersion(Fr.fromString(version).toNumber());
69
+ // eslint-disable-next-line camelcase
70
+ aztec_utl_assertCompatibleOracleVersion([version]) {
71
+ this.handlerAsMisc().assertCompatibleOracleVersion(Fr.fromString(version).toNumber());
72
72
  return Promise.resolve([]);
73
73
  }
74
- utilityGetRandomField() {
75
- const val = this.handlerAsMisc().utilityGetRandomField();
74
+ // eslint-disable-next-line camelcase
75
+ aztec_utl_getRandomField() {
76
+ const val = this.handlerAsMisc().getRandomField();
76
77
  return Promise.resolve([
77
78
  toACVMField(val)
78
79
  ]);
79
80
  }
80
- privateStoreInExecutionCache(values, [hash]) {
81
- this.handlerAsPrivate().privateStoreInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
81
+ // eslint-disable-next-line camelcase
82
+ aztec_prv_storeInExecutionCache(values, [hash]) {
83
+ this.handlerAsPrivate().storeInExecutionCache(values.map(Fr.fromString), Fr.fromString(hash));
82
84
  return Promise.resolve([]);
83
85
  }
84
- async privateLoadFromExecutionCache([returnsHash]) {
85
- const values = await this.handlerAsPrivate().privateLoadFromExecutionCache(Fr.fromString(returnsHash));
86
+ // eslint-disable-next-line camelcase
87
+ async aztec_prv_loadFromExecutionCache([returnsHash]) {
88
+ const values = await this.handlerAsPrivate().loadFromExecutionCache(Fr.fromString(returnsHash));
86
89
  return [
87
90
  values.map(toACVMField)
88
91
  ];
89
92
  }
90
- utilityGetUtilityContext() {
91
- const context = this.handlerAsUtility().utilityGetUtilityContext();
93
+ // eslint-disable-next-line camelcase
94
+ aztec_utl_getUtilityContext() {
95
+ const context = this.handlerAsUtility().getUtilityContext();
92
96
  return Promise.resolve(context.toNoirRepresentation());
93
97
  }
94
- async utilityGetKeyValidationRequest([pkMHash]) {
95
- const keyValidationRequest = await this.handlerAsUtility().utilityGetKeyValidationRequest(Fr.fromString(pkMHash));
98
+ // eslint-disable-next-line camelcase
99
+ async aztec_utl_getKeyValidationRequest([pkMHash]) {
100
+ const keyValidationRequest = await this.handlerAsUtility().getKeyValidationRequest(Fr.fromString(pkMHash));
96
101
  return keyValidationRequest.toFields().map(toACVMField);
97
102
  }
98
- async utilityGetContractInstance([address]) {
99
- const instance = await this.handlerAsUtility().utilityGetContractInstance(AztecAddress.fromField(Fr.fromString(address)));
103
+ // eslint-disable-next-line camelcase
104
+ async aztec_utl_getContractInstance([address]) {
105
+ const instance = await this.handlerAsUtility().getContractInstance(AztecAddress.fromField(Fr.fromString(address)));
100
106
  return [
101
107
  instance.salt,
102
108
  instance.deployer,
@@ -105,57 +111,69 @@ export class UnavailableOracleError extends Error {
105
111
  ...instance.publicKeys.toFields()
106
112
  ].map(toACVMField);
107
113
  }
108
- async utilityGetMembershipWitness([blockHash], [treeId], [leafValue]) {
109
- const parsedBlockHash = L2BlockHash.fromString(blockHash);
110
- const parsedTreeId = Fr.fromString(treeId).toNumber();
111
- const parsedLeafValue = Fr.fromString(leafValue);
112
- const witness = await this.handlerAsUtility().utilityGetMembershipWitness(parsedBlockHash, parsedTreeId, parsedLeafValue);
114
+ // eslint-disable-next-line camelcase
115
+ async aztec_utl_getNoteHashMembershipWitness([anchorBlockHash], [noteHash]) {
116
+ const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
117
+ const parsedNoteHash = Fr.fromString(noteHash);
118
+ const witness = await this.handlerAsUtility().getNoteHashMembershipWitness(parsedAnchorBlockHash, parsedNoteHash);
113
119
  if (!witness) {
114
- throw new Error(`Leaf ${leafValue} not found in the tree ${MerkleTreeId[parsedTreeId]} at block hash ${parsedBlockHash.toString()}.`);
120
+ throw new Error(`Note hash ${noteHash} not found in the note hash tree at anchor block hash ${parsedAnchorBlockHash.toString()}.`);
115
121
  }
116
- return [
117
- toACVMField(witness[0]),
118
- witness.slice(1).map(toACVMField)
119
- ];
122
+ return witness.toNoirRepresentation();
123
+ }
124
+ // eslint-disable-next-line camelcase
125
+ async aztec_utl_getBlockHashMembershipWitness([anchorBlockHash], [blockHash]) {
126
+ const parsedAnchorBlockHash = BlockHash.fromString(anchorBlockHash);
127
+ const parsedBlockHash = BlockHash.fromString(blockHash);
128
+ const witness = await this.handlerAsUtility().getBlockHashMembershipWitness(parsedAnchorBlockHash, parsedBlockHash);
129
+ if (!witness) {
130
+ throw new Error(`Block hash ${parsedBlockHash.toString()} not found in the archive tree at anchor block ${parsedAnchorBlockHash.toString()}.`);
131
+ }
132
+ return witness.toNoirRepresentation();
120
133
  }
121
- async utilityGetNullifierMembershipWitness([blockHash], [nullifier]) {
122
- const parsedBlockHash = L2BlockHash.fromString(blockHash);
134
+ // eslint-disable-next-line camelcase
135
+ async aztec_utl_getNullifierMembershipWitness([blockHash], [nullifier]) {
136
+ const parsedBlockHash = BlockHash.fromString(blockHash);
123
137
  const parsedNullifier = Fr.fromString(nullifier);
124
- const witness = await this.handlerAsUtility().utilityGetNullifierMembershipWitness(parsedBlockHash, parsedNullifier);
138
+ const witness = await this.handlerAsUtility().getNullifierMembershipWitness(parsedBlockHash, parsedNullifier);
125
139
  if (!witness) {
126
140
  throw new Error(`Nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`);
127
141
  }
128
142
  return witness.toNoirRepresentation();
129
143
  }
130
- async utilityGetLowNullifierMembershipWitness([blockHash], [nullifier]) {
131
- const parsedBlockHash = L2BlockHash.fromString(blockHash);
144
+ // eslint-disable-next-line camelcase
145
+ async aztec_utl_getLowNullifierMembershipWitness([blockHash], [nullifier]) {
146
+ const parsedBlockHash = BlockHash.fromString(blockHash);
132
147
  const parsedNullifier = Fr.fromString(nullifier);
133
- const witness = await this.handlerAsUtility().utilityGetLowNullifierMembershipWitness(parsedBlockHash, parsedNullifier);
148
+ const witness = await this.handlerAsUtility().getLowNullifierMembershipWitness(parsedBlockHash, parsedNullifier);
134
149
  if (!witness) {
135
150
  throw new Error(`Low nullifier witness not found for nullifier ${parsedNullifier} at block hash ${parsedBlockHash.toString()}.`);
136
151
  }
137
152
  return witness.toNoirRepresentation();
138
153
  }
139
- async utilityGetPublicDataWitness([blockHash], [leafSlot]) {
140
- const parsedBlockHash = L2BlockHash.fromString(blockHash);
154
+ // eslint-disable-next-line camelcase
155
+ async aztec_utl_getPublicDataWitness([blockHash], [leafSlot]) {
156
+ const parsedBlockHash = BlockHash.fromString(blockHash);
141
157
  const parsedLeafSlot = Fr.fromString(leafSlot);
142
- const witness = await this.handlerAsUtility().utilityGetPublicDataWitness(parsedBlockHash, parsedLeafSlot);
158
+ const witness = await this.handlerAsUtility().getPublicDataWitness(parsedBlockHash, parsedLeafSlot);
143
159
  if (!witness) {
144
160
  throw new Error(`Public data witness not found for slot ${parsedLeafSlot} at block hash ${parsedBlockHash.toString()}.`);
145
161
  }
146
162
  return witness.toNoirRepresentation();
147
163
  }
148
- async utilityGetBlockHeader([blockNumber]) {
164
+ // eslint-disable-next-line camelcase
165
+ async aztec_utl_getBlockHeader([blockNumber]) {
149
166
  const parsedBlockNumber = Fr.fromString(blockNumber).toNumber();
150
- const header = await this.handlerAsUtility().utilityGetBlockHeader(BlockNumber(parsedBlockNumber));
167
+ const header = await this.handlerAsUtility().getBlockHeader(BlockNumber(parsedBlockNumber));
151
168
  if (!header) {
152
169
  throw new Error(`Block header not found for block ${parsedBlockNumber}.`);
153
170
  }
154
171
  return header.toFields().map(toACVMField);
155
172
  }
156
- async utilityGetAuthWitness([messageHash]) {
173
+ // eslint-disable-next-line camelcase
174
+ async aztec_utl_getAuthWitness([messageHash]) {
157
175
  const messageHashField = Fr.fromString(messageHash);
158
- const witness = await this.handlerAsUtility().utilityGetAuthWitness(messageHashField);
176
+ const witness = await this.handlerAsUtility().getAuthWitness(messageHashField);
159
177
  if (!witness) {
160
178
  throw new Error(`Unknown auth witness for message hash ${messageHashField}`);
161
179
  }
@@ -163,20 +181,34 @@ export class UnavailableOracleError extends Error {
163
181
  witness.map(toACVMField)
164
182
  ];
165
183
  }
166
- async utilityGetPublicKeysAndPartialAddress([address]) {
184
+ // eslint-disable-next-line camelcase
185
+ async aztec_utl_tryGetPublicKeysAndPartialAddress([address]) {
167
186
  const parsedAddress = AztecAddress.fromField(Fr.fromString(address));
168
- const { publicKeys, partialAddress } = await this.handlerAsUtility().utilityGetPublicKeysAndPartialAddress(parsedAddress);
169
- return [
170
- [
171
- ...publicKeys.toFields(),
172
- partialAddress
173
- ].map(toACVMField)
174
- ];
187
+ const result = await this.handlerAsUtility().tryGetPublicKeysAndPartialAddress(parsedAddress);
188
+ // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
189
+ // with two fields: `some` (a boolean) and `value` (a field array in this case).
190
+ if (result === undefined) {
191
+ // No data was found so we set `some` to 0 and pad `value` with zeros get the correct return size.
192
+ return [
193
+ toACVMField(0),
194
+ Array(13).fill(toACVMField(0))
195
+ ];
196
+ } else {
197
+ // Data was found so we set `some` to 1 and return it along with `value`.
198
+ return [
199
+ toACVMField(1),
200
+ [
201
+ ...result.publicKeys.toFields(),
202
+ result.partialAddress
203
+ ].map(toACVMField)
204
+ ];
205
+ }
175
206
  }
176
- async utilityGetNotes([ownerSome], [ownerValue], [storageSlot], [numSelects], selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, [limit], [offset], [status], [maxNotes], [packedHintedNoteLength]) {
207
+ // eslint-disable-next-line camelcase
208
+ async aztec_utl_getNotes([ownerSome], [ownerValue], [storageSlot], [numSelects], selectByIndexes, selectByOffsets, selectByLengths, selectValues, selectComparators, sortByIndexes, sortByOffsets, sortByLengths, sortOrder, [limit], [offset], [status], [maxNotes], [packedHintedNoteLength]) {
177
209
  // Parse Option<AztecAddress>: ownerSome is 0 for None, 1 for Some
178
210
  const owner = Fr.fromString(ownerSome).toNumber() === 1 ? AztecAddress.fromString(ownerValue) : undefined;
179
- 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);
211
+ const noteDatas = await this.handlerAsUtility().getNotes(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);
180
212
  const returnDataAsArrayOfPackedHintedNotes = noteDatas.map((noteData)=>packAsHintedNote({
181
213
  contractAddress: noteData.contractAddress,
182
214
  owner: noteData.owner,
@@ -191,51 +223,67 @@ export class UnavailableOracleError extends Error {
191
223
  // At last we convert the array of arrays to a bounded vec of arrays
192
224
  return arrayOfArraysToBoundedVecOfArrays(returnDataAsArrayOfACVMFieldArrays, +maxNotes, +packedHintedNoteLength);
193
225
  }
194
- privateNotifyCreatedNote([owner], [storageSlot], [randomness], [noteTypeId], note, [noteHash], [counter]) {
195
- 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);
226
+ // eslint-disable-next-line camelcase
227
+ aztec_prv_notifyCreatedNote([owner], [storageSlot], [randomness], [noteTypeId], note, [noteHash], [counter]) {
228
+ this.handlerAsPrivate().notifyCreatedNote(AztecAddress.fromString(owner), Fr.fromString(storageSlot), Fr.fromString(randomness), NoteSelector.fromField(Fr.fromString(noteTypeId)), note.map(Fr.fromString), Fr.fromString(noteHash), +counter);
196
229
  return Promise.resolve([]);
197
230
  }
198
- async privateNotifyNullifiedNote([innerNullifier], [noteHash], [counter]) {
199
- await this.handlerAsPrivate().privateNotifyNullifiedNote(Fr.fromString(innerNullifier), Fr.fromString(noteHash), +counter);
231
+ // eslint-disable-next-line camelcase
232
+ async aztec_prv_notifyNullifiedNote([innerNullifier], [noteHash], [counter]) {
233
+ await this.handlerAsPrivate().notifyNullifiedNote(Fr.fromString(innerNullifier), Fr.fromString(noteHash), +counter);
200
234
  return [];
201
235
  }
202
- async privateNotifyCreatedNullifier([innerNullifier]) {
203
- await this.handlerAsPrivate().privateNotifyCreatedNullifier(Fr.fromString(innerNullifier));
236
+ // eslint-disable-next-line camelcase
237
+ async aztec_prv_notifyCreatedNullifier([innerNullifier]) {
238
+ await this.handlerAsPrivate().notifyCreatedNullifier(Fr.fromString(innerNullifier));
204
239
  return [];
205
240
  }
206
- async utilityCheckNullifierExists([innerNullifier]) {
207
- const exists = await this.handlerAsUtility().utilityCheckNullifierExists(Fr.fromString(innerNullifier));
241
+ // eslint-disable-next-line camelcase
242
+ async aztec_prv_isNullifierPending([innerNullifier], [contractAddress]) {
243
+ const isPending = await this.handlerAsPrivate().isNullifierPending(Fr.fromString(innerNullifier), AztecAddress.fromString(contractAddress));
244
+ return [
245
+ toACVMField(isPending)
246
+ ];
247
+ }
248
+ // eslint-disable-next-line camelcase
249
+ async aztec_utl_checkNullifierExists([innerNullifier]) {
250
+ const exists = await this.handlerAsUtility().checkNullifierExists(Fr.fromString(innerNullifier));
208
251
  return [
209
252
  toACVMField(exists)
210
253
  ];
211
254
  }
212
- async utilityGetL1ToL2MembershipWitness([contractAddress], [messageHash], [secret]) {
213
- const message = await this.handlerAsUtility().utilityGetL1ToL2MembershipWitness(AztecAddress.fromString(contractAddress), Fr.fromString(messageHash), Fr.fromString(secret));
255
+ // eslint-disable-next-line camelcase
256
+ async aztec_utl_getL1ToL2MembershipWitness([contractAddress], [messageHash], [secret]) {
257
+ const message = await this.handlerAsUtility().getL1ToL2MembershipWitness(AztecAddress.fromString(contractAddress), Fr.fromString(messageHash), Fr.fromString(secret));
214
258
  return message.toNoirRepresentation();
215
259
  }
216
- async utilityStorageRead([blockHash], [contractAddress], [startStorageSlot], [numberOfElements]) {
217
- const values = await this.handlerAsUtility().utilityStorageRead(L2BlockHash.fromString(blockHash), new AztecAddress(Fr.fromString(contractAddress)), Fr.fromString(startStorageSlot), +numberOfElements);
260
+ // eslint-disable-next-line camelcase
261
+ async aztec_utl_storageRead([blockHash], [contractAddress], [startStorageSlot], [numberOfElements]) {
262
+ const values = await this.handlerAsUtility().storageRead(BlockHash.fromString(blockHash), new AztecAddress(Fr.fromString(contractAddress)), Fr.fromString(startStorageSlot), +numberOfElements);
218
263
  return [
219
264
  values.map(toACVMField)
220
265
  ];
221
266
  }
222
- privateNotifyCreatedContractClassLog([contractAddress], message, [length], [counter]) {
267
+ // eslint-disable-next-line camelcase
268
+ aztec_prv_notifyCreatedContractClassLog([contractAddress], message, [length], [counter]) {
223
269
  const logFields = new ContractClassLogFields(message.map(Fr.fromString));
224
270
  const log = new ContractClassLog(new AztecAddress(Fr.fromString(contractAddress)), logFields, +length);
225
- this.handlerAsPrivate().privateNotifyCreatedContractClassLog(log, +counter);
271
+ this.handlerAsPrivate().notifyCreatedContractClassLog(log, +counter);
226
272
  return Promise.resolve([]);
227
273
  }
228
- utilityDebugLog(level, message, _ignoredFieldsSize, fields) {
274
+ // eslint-disable-next-line camelcase
275
+ async aztec_utl_log(level, message, _ignoredFieldsSize, fields) {
229
276
  const levelFr = Fr.fromString(level[0]);
230
277
  const messageStr = message.map((acvmField)=>String.fromCharCode(Fr.fromString(acvmField).toNumber())).join('');
231
278
  const fieldsFr = fields.map(Fr.fromString);
232
- this.handlerAsMisc().utilityDebugLog(levelFr.toNumber(), messageStr, fieldsFr);
233
- return Promise.resolve([]);
279
+ await this.handlerAsMisc().log(levelFr.toNumber(), messageStr, fieldsFr);
280
+ return [];
234
281
  }
235
282
  // This function's name is directly hardcoded in `circuit_recorder.ts`. Don't forget to update it there if you
236
283
  // change the name here.
237
- async privateCallPrivateFunction([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
238
- 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());
284
+ // eslint-disable-next-line camelcase
285
+ async aztec_prv_callPrivateFunction([contractAddress], [functionSelector], [argsHash], [sideEffectCounter], [isStaticCall]) {
286
+ const { endSideEffectCounter, returnsHash } = await this.handlerAsPrivate().callPrivateFunction(AztecAddress.fromField(Fr.fromString(contractAddress)), FunctionSelector.fromField(Fr.fromString(functionSelector)), Fr.fromString(argsHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
239
287
  return [
240
288
  [
241
289
  endSideEffectCounter,
@@ -243,48 +291,58 @@ export class UnavailableOracleError extends Error {
243
291
  ].map(toACVMField)
244
292
  ];
245
293
  }
246
- async privateNotifyEnqueuedPublicFunctionCall([contractAddress], [calldataHash], [sideEffectCounter], [isStaticCall]) {
247
- await this.handlerAsPrivate().privateNotifyEnqueuedPublicFunctionCall(AztecAddress.fromString(contractAddress), Fr.fromString(calldataHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
294
+ // eslint-disable-next-line camelcase
295
+ async aztec_prv_notifyEnqueuedPublicFunctionCall([contractAddress], [calldataHash], [sideEffectCounter], [isStaticCall]) {
296
+ await this.handlerAsPrivate().notifyEnqueuedPublicFunctionCall(AztecAddress.fromString(contractAddress), Fr.fromString(calldataHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
248
297
  return [];
249
298
  }
250
- async privateNotifySetPublicTeardownFunctionCall([contractAddress], [calldataHash], [sideEffectCounter], [isStaticCall]) {
251
- await this.handlerAsPrivate().privateNotifySetPublicTeardownFunctionCall(AztecAddress.fromString(contractAddress), Fr.fromString(calldataHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
299
+ // eslint-disable-next-line camelcase
300
+ async aztec_prv_notifySetPublicTeardownFunctionCall([contractAddress], [calldataHash], [sideEffectCounter], [isStaticCall]) {
301
+ await this.handlerAsPrivate().notifySetPublicTeardownFunctionCall(AztecAddress.fromString(contractAddress), Fr.fromString(calldataHash), Fr.fromString(sideEffectCounter).toNumber(), Fr.fromString(isStaticCall).toBool());
252
302
  return [];
253
303
  }
254
- async privateNotifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]) {
255
- await this.handlerAsPrivate().privateNotifySetMinRevertibleSideEffectCounter(Fr.fromString(minRevertibleSideEffectCounter).toNumber());
304
+ // eslint-disable-next-line camelcase
305
+ async aztec_prv_notifySetMinRevertibleSideEffectCounter([minRevertibleSideEffectCounter]) {
306
+ await this.handlerAsPrivate().notifySetMinRevertibleSideEffectCounter(Fr.fromString(minRevertibleSideEffectCounter).toNumber());
256
307
  return Promise.resolve([]);
257
308
  }
258
- async privateIsSideEffectCounterRevertible([sideEffectCounter]) {
259
- const isRevertible = await this.handlerAsPrivate().privateIsSideEffectCounterRevertible(Fr.fromString(sideEffectCounter).toNumber());
309
+ // eslint-disable-next-line camelcase
310
+ async aztec_prv_isSideEffectCounterRevertible([sideEffectCounter]) {
311
+ const isRevertible = await this.handlerAsPrivate().isSideEffectCounterRevertible(Fr.fromString(sideEffectCounter).toNumber());
260
312
  return Promise.resolve([
261
313
  toACVMField(isRevertible)
262
314
  ]);
263
315
  }
264
- async privateGetNextAppTagAsSender([sender], [recipient]) {
265
- const tag = await this.handlerAsPrivate().privateGetNextAppTagAsSender(AztecAddress.fromString(sender), AztecAddress.fromString(recipient));
316
+ // eslint-disable-next-line camelcase
317
+ async aztec_prv_getNextAppTagAsSender([sender], [recipient]) {
318
+ const tag = await this.handlerAsPrivate().getNextAppTagAsSender(AztecAddress.fromString(sender), AztecAddress.fromString(recipient));
266
319
  return [
267
320
  toACVMField(tag.value)
268
321
  ];
269
322
  }
270
- async utilityFetchTaggedLogs([pendingTaggedLogArrayBaseSlot]) {
271
- await this.handlerAsUtility().utilityFetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
323
+ // eslint-disable-next-line camelcase
324
+ async aztec_utl_fetchTaggedLogs([pendingTaggedLogArrayBaseSlot]) {
325
+ await this.handlerAsUtility().fetchTaggedLogs(Fr.fromString(pendingTaggedLogArrayBaseSlot));
272
326
  return [];
273
327
  }
274
- async utilityValidateEnqueuedNotesAndEvents([contractAddress], [noteValidationRequestsArrayBaseSlot], [eventValidationRequestsArrayBaseSlot]) {
275
- await this.handlerAsUtility().utilityValidateEnqueuedNotesAndEvents(AztecAddress.fromString(contractAddress), Fr.fromString(noteValidationRequestsArrayBaseSlot), Fr.fromString(eventValidationRequestsArrayBaseSlot));
328
+ // eslint-disable-next-line camelcase
329
+ async aztec_utl_validateAndStoreEnqueuedNotesAndEvents([contractAddress], [noteValidationRequestsArrayBaseSlot], [eventValidationRequestsArrayBaseSlot]) {
330
+ await this.handlerAsUtility().validateAndStoreEnqueuedNotesAndEvents(AztecAddress.fromString(contractAddress), Fr.fromString(noteValidationRequestsArrayBaseSlot), Fr.fromString(eventValidationRequestsArrayBaseSlot));
276
331
  return [];
277
332
  }
278
- async utilityBulkRetrieveLogs([contractAddress], [logRetrievalRequestsArrayBaseSlot], [logRetrievalResponsesArrayBaseSlot]) {
279
- await this.handlerAsUtility().utilityBulkRetrieveLogs(AztecAddress.fromString(contractAddress), Fr.fromString(logRetrievalRequestsArrayBaseSlot), Fr.fromString(logRetrievalResponsesArrayBaseSlot));
333
+ // 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));
280
336
  return [];
281
337
  }
282
- async utilityStoreCapsule([contractAddress], [slot], capsule) {
283
- await this.handlerAsUtility().utilityStoreCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), capsule.map(Fr.fromString));
338
+ // eslint-disable-next-line camelcase
339
+ async aztec_utl_storeCapsule([contractAddress], [slot], capsule) {
340
+ await this.handlerAsUtility().storeCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot), capsule.map(Fr.fromString));
284
341
  return [];
285
342
  }
286
- async utilityLoadCapsule([contractAddress], [slot], [tSize]) {
287
- const values = await this.handlerAsUtility().utilityLoadCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
343
+ // eslint-disable-next-line camelcase
344
+ async aztec_utl_loadCapsule([contractAddress], [slot], [tSize]) {
345
+ const values = await this.handlerAsUtility().loadCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
288
346
  // We are going to return a Noir Option struct to represent the possibility of null values. Options are a struct
289
347
  // with two fields: `some` (a boolean) and `value` (a field array in this case).
290
348
  if (values === null) {
@@ -301,35 +359,41 @@ export class UnavailableOracleError extends Error {
301
359
  ];
302
360
  }
303
361
  }
304
- async utilityDeleteCapsule([contractAddress], [slot]) {
305
- await this.handlerAsUtility().utilityDeleteCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
362
+ // eslint-disable-next-line camelcase
363
+ async aztec_utl_deleteCapsule([contractAddress], [slot]) {
364
+ await this.handlerAsUtility().deleteCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(slot));
306
365
  return [];
307
366
  }
308
- async utilityCopyCapsule([contractAddress], [srcSlot], [dstSlot], [numEntries]) {
309
- await this.handlerAsUtility().utilityCopyCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(srcSlot), Fr.fromString(dstSlot), Fr.fromString(numEntries).toNumber());
367
+ // eslint-disable-next-line camelcase
368
+ async aztec_utl_copyCapsule([contractAddress], [srcSlot], [dstSlot], [numEntries]) {
369
+ await this.handlerAsUtility().copyCapsule(AztecAddress.fromField(Fr.fromString(contractAddress)), Fr.fromString(srcSlot), Fr.fromString(dstSlot), Fr.fromString(numEntries).toNumber());
310
370
  return [];
311
371
  }
312
- async utilityAes128Decrypt(ciphertextBVecStorage, [ciphertextLength], iv, symKey) {
372
+ // eslint-disable-next-line camelcase
373
+ async aztec_utl_aes128Decrypt(ciphertextBVecStorage, [ciphertextLength], iv, symKey) {
313
374
  const ciphertext = fromUintBoundedVec(ciphertextBVecStorage, ciphertextLength, 8);
314
375
  const ivBuffer = fromUintArray(iv, 8);
315
376
  const symKeyBuffer = fromUintArray(symKey, 8);
316
- const plaintext = await this.handlerAsUtility().utilityAes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
377
+ const plaintext = await this.handlerAsUtility().aes128Decrypt(ciphertext, ivBuffer, symKeyBuffer);
317
378
  return bufferToBoundedVec(plaintext, ciphertextBVecStorage.length);
318
379
  }
319
- async utilityGetSharedSecret([address], [ephPKField0], [ephPKField1], [ephPKField2]) {
320
- const secret = await this.handlerAsUtility().utilityGetSharedSecret(AztecAddress.fromField(Fr.fromString(address)), Point.fromFields([
380
+ // eslint-disable-next-line camelcase
381
+ async aztec_utl_getSharedSecret([address], [ephPKField0], [ephPKField1], [ephPKField2]) {
382
+ const secret = await this.handlerAsUtility().getSharedSecret(AztecAddress.fromField(Fr.fromString(address)), Point.fromFields([
321
383
  ephPKField0,
322
384
  ephPKField1,
323
385
  ephPKField2
324
386
  ].map(Fr.fromString)));
325
387
  return secret.toFields().map(toACVMField);
326
388
  }
327
- async utilityEmitOffchainEffect(data) {
328
- await this.handlerAsPrivate().utilityEmitOffchainEffect(data.map(Fr.fromString));
389
+ // eslint-disable-next-line camelcase
390
+ async aztec_utl_emitOffchainEffect(data) {
391
+ await this.handlerAsPrivate().emitOffchainEffect(data.map(Fr.fromString));
329
392
  return [];
330
393
  }
331
- async privateGetSenderForTags() {
332
- const sender = await this.handlerAsPrivate().privateGetSenderForTags();
394
+ // eslint-disable-next-line camelcase
395
+ async aztec_prv_getSenderForTags() {
396
+ const sender = await this.handlerAsPrivate().getSenderForTags();
333
397
  // Return [1, address] for Some(address), [0, 0] for None
334
398
  return sender ? [
335
399
  toACVMField(1n),
@@ -339,8 +403,9 @@ export class UnavailableOracleError extends Error {
339
403
  toACVMField(0n)
340
404
  ];
341
405
  }
342
- async privateSetSenderForTags([senderForTags]) {
343
- await this.handlerAsPrivate().privateSetSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
406
+ // eslint-disable-next-line camelcase
407
+ async aztec_prv_setSenderForTags([senderForTags]) {
408
+ await this.handlerAsPrivate().setSenderForTags(AztecAddress.fromField(Fr.fromString(senderForTags)));
344
409
  return [];
345
410
  }
346
411
  }
@@ -1,12 +1,8 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
2
1
  import { type ACVMWitness, type CircuitSimulator } from '@aztec/simulator/client';
3
2
  import { type FunctionArtifact, type FunctionArtifactWithContractName, type FunctionSelector } from '@aztec/stdlib/abi';
4
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
- import type { ContractInstance } from '@aztec/stdlib/contract';
6
- import type { AztecNode } from '@aztec/stdlib/interfaces/client';
7
4
  import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
8
- import { BlockHeader, PrivateCallExecutionResult } from '@aztec/stdlib/tx';
9
- import { ContractStore } from '../../storage/contract_store/index.js';
5
+ import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
10
6
  import type { PrivateExecutionOracle } from './private_execution_oracle.js';
11
7
  /**
12
8
  * Execute a private function and return the execution result.
@@ -24,20 +20,4 @@ export declare function executePrivateFunction(simulator: CircuitSimulator, priv
24
20
  * @returns - The public inputs.
25
21
  */
26
22
  export declare function extractPrivateCircuitPublicInputs(artifact: FunctionArtifact, partialWitness: ACVMWitness): PrivateCircuitPublicInputs;
27
- /**
28
- * Read the current class id of a contract from the execution data provider or AztecNode. If not found, class id
29
- * from the instance is used.
30
- * @param contractAddress - The address of the contract to read the class id for.
31
- * @param instance - The instance of the contract.
32
- * @param aztecNode - The Aztec node to query for storage.
33
- * @param header - The header of the block at which to load the DelayedPublicMutable storing the class id.
34
- * @returns The current class id.
35
- */
36
- export declare function readCurrentClassId(contractAddress: AztecAddress, instance: ContractInstance, aztecNode: AztecNode, header: BlockHeader): Promise<Fr>;
37
- /**
38
- * Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
39
- * provider (i.e. PXE's own storage).
40
- * @param header - The header of the block at which to verify the current class id.
41
- */
42
- export declare function verifyCurrentClassId(contractAddress: AztecAddress, aztecNode: AztecNode, contractStore: ContractStore, header: BlockHeader): Promise<void>;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivb3JhY2xlL3ByaXZhdGVfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUlwRCxPQUFPLEVBQ0wsS0FBSyxXQUFXLEVBQ2hCLEtBQUssZ0JBQWdCLEVBS3RCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssZ0NBQWdDLEVBQ3JDLEtBQUssZ0JBQWdCLEVBRXRCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXRFLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUU7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQixzQkFBc0IsQ0FDMUMsU0FBUyxFQUFFLGdCQUFnQixFQUMzQixzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsUUFBUSxFQUFFLGdDQUFnQyxFQUMxQyxlQUFlLEVBQUUsWUFBWSxFQUM3QixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsR0FBRyx5Q0FBOEMsR0FDaEQsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBMkVyQztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGlDQUFpQyxDQUMvQyxRQUFRLEVBQUUsZ0JBQWdCLEVBQzFCLGNBQWMsRUFBRSxXQUFXLEdBQzFCLDBCQUEwQixDQWE1QjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUN0QyxlQUFlLEVBQUUsWUFBWSxFQUM3QixRQUFRLEVBQUUsZ0JBQWdCLEVBQzFCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxXQUFXLGVBY3BCO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixvQkFBb0IsQ0FDeEMsZUFBZSxFQUFFLFlBQVksRUFDN0IsU0FBUyxFQUFFLFNBQVMsRUFDcEIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsTUFBTSxFQUFFLFdBQVcsaUJBYXBCIn0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb24uZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivb3JhY2xlL3ByaXZhdGVfZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFDaEIsS0FBSyxnQkFBZ0IsRUFLdEIsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxnQ0FBZ0MsRUFDckMsS0FBSyxnQkFBZ0IsRUFFdEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVFOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0Isc0JBQXNCLENBQzFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFDM0Isc0JBQXNCLEVBQUUsc0JBQXNCLEVBQzlDLFFBQVEsRUFBRSxnQ0FBZ0MsRUFDMUMsZUFBZSxFQUFFLFlBQVksRUFDN0IsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLEdBQUcseUNBQThDLEdBQ2hELE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQTJFckM7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQixpQ0FBaUMsQ0FDL0MsUUFBUSxFQUFFLGdCQUFnQixFQUMxQixjQUFjLEVBQUUsV0FBVyxHQUMxQiwwQkFBMEIsQ0FhNUIifQ==
@@ -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,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;AAEhE,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;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,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;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,eAAe,EAAE,YAAY,EAC7B,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,WAAW,eAcpB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,eAAe,EAAE,YAAY,EAC7B,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,WAAW,iBAapB"}
1
+ {"version":3,"file":"private_execution.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution.ts"],"names":[],"mappings":"AAIA,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,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAG9D,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"}
@@ -2,11 +2,8 @@ import { PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH, PRIVATE_CONTEXT_INPUTS_LENGTH } f
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
4
  import { Timer } from '@aztec/foundation/timer';
5
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
6
5
  import { ExecutionError, extractCallStack, resolveAssertionMessageFromError, witnessMapToFields } from '@aztec/simulator/client';
7
6
  import { countArgumentsSize } from '@aztec/stdlib/abi';
8
- import { L2BlockHash } from '@aztec/stdlib/block';
9
- import { DelayedPublicMutableValues, DelayedPublicMutableValuesWithHash } from '@aztec/stdlib/delayed-public-mutable';
10
7
  import { PrivateCircuitPublicInputs } from '@aztec/stdlib/kernel';
11
8
  import { PrivateCallExecutionResult } from '@aztec/stdlib/tx';
12
9
  import { Oracle } from './oracle.js';
@@ -48,7 +45,7 @@ import { Oracle } from './oracle.js';
48
45
  appCircuitName: functionName
49
46
  });
50
47
  const contractClassLogs = privateExecutionOracle.getContractClassLogs();
51
- const rawReturnValues = await privateExecutionOracle.privateLoadFromExecutionCache(publicInputs.returnsHash);
48
+ const rawReturnValues = await privateExecutionOracle.loadFromExecutionCache(publicInputs.returnsHash);
52
49
  const newNotes = privateExecutionOracle.getNewNotes();
53
50
  const noteHashNullifierCounterMap = privateExecutionOracle.getNoteHashNullifierCounterMap();
54
51
  const offchainEffects = privateExecutionOracle.getOffchainEffects();
@@ -88,37 +85,3 @@ import { Oracle } from './oracle.js';
88
85
  }
89
86
  return PrivateCircuitPublicInputs.fromFields(returnData);
90
87
  }
91
- /**
92
- * Read the current class id of a contract from the execution data provider or AztecNode. If not found, class id
93
- * from the instance is used.
94
- * @param contractAddress - The address of the contract to read the class id for.
95
- * @param instance - The instance of the contract.
96
- * @param aztecNode - The Aztec node to query for storage.
97
- * @param header - The header of the block at which to load the DelayedPublicMutable storing the class id.
98
- * @returns The current class id.
99
- */ export async function readCurrentClassId(contractAddress, instance, aztecNode, header) {
100
- const blockHashFr = await header.hash();
101
- const blockHash = L2BlockHash.fromField(blockHashFr);
102
- const timestamp = header.globalVariables.timestamp;
103
- const { delayedPublicMutableSlot } = await DelayedPublicMutableValuesWithHash.getContractUpdateSlots(contractAddress);
104
- const delayedPublicMutableValues = await DelayedPublicMutableValues.readFromTree(delayedPublicMutableSlot, (slot)=>aztecNode.getPublicStorageAt(blockHash, ProtocolContractAddress.ContractInstanceRegistry, slot));
105
- let currentClassId = delayedPublicMutableValues.svc.getCurrentAt(timestamp)[0];
106
- if (currentClassId.isZero()) {
107
- currentClassId = instance.originalContractClassId;
108
- }
109
- return currentClassId;
110
- }
111
- /**
112
- * Verify that the current class id of a contract obtained from AztecNode is the same as the one in contract data
113
- * provider (i.e. PXE's own storage).
114
- * @param header - The header of the block at which to verify the current class id.
115
- */ export async function verifyCurrentClassId(contractAddress, aztecNode, contractStore, header) {
116
- const instance = await contractStore.getContractInstance(contractAddress);
117
- if (!instance) {
118
- throw new Error(`No contract instance found for address ${contractAddress.toString()}`);
119
- }
120
- const currentClassId = await readCurrentClassId(contractAddress, instance, aztecNode, header);
121
- if (!instance.currentContractClassId.equals(currentClassId)) {
122
- throw new Error(`Contract ${contractAddress} is outdated, current class id is ${currentClassId}, local class id is ${instance.currentContractClassId}`);
123
- }
124
- }