@aztec/pxe 0.0.1-commit.d431d1c → 0.0.1-commit.d939eb5aa

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 (269) hide show
  1. package/dest/bin/check_oracle_version.js +5 -5
  2. package/dest/block_synchronizer/block_synchronizer.d.ts +9 -5
  3. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  4. package/dest/block_synchronizer/block_synchronizer.js +68 -16
  5. package/dest/config/index.d.ts +4 -2
  6. package/dest/config/index.d.ts.map +1 -1
  7. package/dest/config/index.js +12 -2
  8. package/dest/config/package_info.js +1 -1
  9. package/dest/contract_function_simulator/contract_function_simulator.d.ts +63 -31
  10. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  11. package/dest/contract_function_simulator/contract_function_simulator.js +206 -78
  12. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  13. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  14. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  15. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +7 -7
  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 +19 -11
  18. package/dest/contract_function_simulator/index.d.ts +2 -1
  19. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  20. package/dest/contract_function_simulator/index.js +1 -0
  21. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +5 -7
  22. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  23. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +9 -11
  24. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +1 -1
  25. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +1 -1
  26. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
  27. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  28. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -4
  29. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +5 -8
  30. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  31. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +7 -12
  32. package/dest/contract_function_simulator/oracle/interfaces.d.ts +65 -46
  33. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  34. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +9 -0
  35. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +1 -0
  36. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +47 -0
  37. package/dest/contract_function_simulator/oracle/oracle.d.ts +75 -42
  38. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  39. package/dest/contract_function_simulator/oracle/oracle.js +319 -112
  40. package/dest/contract_function_simulator/oracle/private_execution.d.ts +2 -22
  41. package/dest/contract_function_simulator/oracle/private_execution.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/oracle/private_execution.js +5 -40
  43. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +59 -77
  44. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  45. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +120 -86
  46. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +134 -67
  47. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  48. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +337 -151
  49. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  50. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  51. package/dest/contract_function_simulator/pick_notes.js +9 -2
  52. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  53. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  54. package/dest/contract_function_simulator/proxied_contract_data_source.js +3 -0
  55. package/dest/contract_logging.d.ts +27 -0
  56. package/dest/contract_logging.d.ts.map +1 -0
  57. package/dest/contract_logging.js +38 -0
  58. package/dest/contract_sync/contract_sync_service.d.ts +44 -0
  59. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -0
  60. package/dest/contract_sync/contract_sync_service.js +116 -0
  61. package/dest/contract_sync/helpers.d.ts +28 -0
  62. package/dest/contract_sync/helpers.d.ts.map +1 -0
  63. package/dest/contract_sync/helpers.js +60 -0
  64. package/dest/debug/pxe_debug_utils.d.ts +24 -10
  65. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  66. package/dest/debug/pxe_debug_utils.js +28 -17
  67. package/dest/entrypoints/client/bundle/index.d.ts +3 -1
  68. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  69. package/dest/entrypoints/client/bundle/index.js +2 -0
  70. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  71. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  72. package/dest/entrypoints/client/bundle/utils.js +23 -9
  73. package/dest/entrypoints/client/lazy/index.d.ts +3 -1
  74. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  75. package/dest/entrypoints/client/lazy/index.js +2 -0
  76. package/dest/entrypoints/client/lazy/utils.d.ts +3 -3
  77. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  78. package/dest/entrypoints/client/lazy/utils.js +24 -10
  79. package/dest/entrypoints/pxe_creation_options.d.ts +5 -2
  80. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  81. package/dest/entrypoints/pxe_creation_options.js +3 -1
  82. package/dest/entrypoints/server/index.d.ts +4 -2
  83. package/dest/entrypoints/server/index.d.ts.map +1 -1
  84. package/dest/entrypoints/server/index.js +3 -1
  85. package/dest/entrypoints/server/utils.d.ts +2 -2
  86. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  87. package/dest/entrypoints/server/utils.js +30 -11
  88. package/dest/events/event_service.d.ts +6 -6
  89. package/dest/events/event_service.d.ts.map +1 -1
  90. package/dest/events/event_service.js +21 -10
  91. package/dest/events/private_event_filter_validator.d.ts +3 -2
  92. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  93. package/dest/events/private_event_filter_validator.js +15 -0
  94. package/dest/job_coordinator/job_coordinator.d.ts +3 -2
  95. package/dest/job_coordinator/job_coordinator.d.ts.map +1 -1
  96. package/dest/job_coordinator/job_coordinator.js +3 -2
  97. package/dest/logs/log_service.d.ts +10 -9
  98. package/dest/logs/log_service.d.ts.map +1 -1
  99. package/dest/logs/log_service.js +50 -64
  100. package/dest/messages/message_context_service.d.ts +17 -0
  101. package/dest/messages/message_context_service.d.ts.map +1 -0
  102. package/dest/messages/message_context_service.js +36 -0
  103. package/dest/notes/note_service.d.ts +8 -8
  104. package/dest/notes/note_service.d.ts.map +1 -1
  105. package/dest/notes/note_service.js +29 -19
  106. package/dest/notes_filter.d.ts +24 -0
  107. package/dest/notes_filter.d.ts.map +1 -0
  108. package/dest/notes_filter.js +4 -0
  109. package/dest/oracle_version.d.ts +4 -3
  110. package/dest/oracle_version.d.ts.map +1 -1
  111. package/dest/oracle_version.js +20 -9
  112. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts +4 -0
  113. package/dest/private_kernel/hints/compute_tx_expiration_timestamp.d.ts.map +1 -0
  114. package/dest/private_kernel/hints/{compute_tx_include_by_timestamp.js → compute_tx_expiration_timestamp.js} +12 -12
  115. package/dest/private_kernel/hints/index.d.ts +1 -1
  116. package/dest/private_kernel/hints/index.js +1 -1
  117. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts +4 -3
  118. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.d.ts.map +1 -1
  119. package/dest/private_kernel/hints/private_kernel_reset_private_inputs_builder.js +129 -68
  120. package/dest/private_kernel/hints/test_utils.d.ts +122 -0
  121. package/dest/private_kernel/hints/test_utils.d.ts.map +1 -0
  122. package/dest/private_kernel/hints/test_utils.js +203 -0
  123. package/dest/private_kernel/private_kernel_execution_prover.d.ts +3 -2
  124. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  125. package/dest/private_kernel/private_kernel_execution_prover.js +20 -15
  126. package/dest/private_kernel/private_kernel_oracle.d.ts +8 -4
  127. package/dest/private_kernel/private_kernel_oracle.d.ts.map +1 -1
  128. package/dest/private_kernel/private_kernel_oracle.js +7 -3
  129. package/dest/pxe.d.ts +74 -24
  130. package/dest/pxe.d.ts.map +1 -1
  131. package/dest/pxe.js +142 -80
  132. package/dest/storage/address_store/address_store.d.ts +1 -1
  133. package/dest/storage/address_store/address_store.d.ts.map +1 -1
  134. package/dest/storage/address_store/address_store.js +12 -11
  135. package/dest/storage/anchor_block_store/anchor_block_store.d.ts +9 -1
  136. package/dest/storage/anchor_block_store/anchor_block_store.d.ts.map +1 -1
  137. package/dest/storage/anchor_block_store/anchor_block_store.js +8 -1
  138. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  139. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  140. package/dest/storage/capsule_store/capsule_service.js +50 -0
  141. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  142. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  143. package/dest/storage/capsule_store/capsule_store.js +39 -36
  144. package/dest/storage/capsule_store/index.d.ts +2 -1
  145. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  146. package/dest/storage/capsule_store/index.js +1 -0
  147. package/dest/storage/contract_store/contract_store.d.ts +42 -16
  148. package/dest/storage/contract_store/contract_store.d.ts.map +1 -1
  149. package/dest/storage/contract_store/contract_store.js +157 -84
  150. package/dest/storage/metadata.d.ts +1 -1
  151. package/dest/storage/metadata.js +1 -1
  152. package/dest/storage/note_store/note_store.d.ts +47 -49
  153. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  154. package/dest/storage/note_store/note_store.js +278 -252
  155. package/dest/storage/note_store/stored_note.d.ts +16 -0
  156. package/dest/storage/note_store/stored_note.d.ts.map +1 -0
  157. package/dest/storage/note_store/stored_note.js +43 -0
  158. package/dest/storage/private_event_store/private_event_store.d.ts +17 -4
  159. package/dest/storage/private_event_store/private_event_store.d.ts.map +1 -1
  160. package/dest/storage/private_event_store/private_event_store.js +198 -147
  161. package/dest/storage/private_event_store/stored_private_event.d.ts +23 -0
  162. package/dest/storage/private_event_store/stored_private_event.d.ts.map +1 -0
  163. package/dest/storage/private_event_store/stored_private_event.js +56 -0
  164. package/dest/storage/tagging_store/recipient_tagging_store.d.ts +6 -6
  165. package/dest/storage/tagging_store/recipient_tagging_store.d.ts.map +1 -1
  166. package/dest/storage/tagging_store/recipient_tagging_store.js +31 -19
  167. package/dest/storage/tagging_store/sender_address_book_store.d.ts +1 -1
  168. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +1 -1
  169. package/dest/storage/tagging_store/sender_address_book_store.js +20 -14
  170. package/dest/storage/tagging_store/sender_tagging_store.d.ts +29 -28
  171. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  172. package/dest/storage/tagging_store/sender_tagging_store.js +233 -137
  173. package/dest/tagging/get_all_logs_by_tags.d.ts +24 -0
  174. package/dest/tagging/get_all_logs_by_tags.d.ts.map +1 -0
  175. package/dest/tagging/get_all_logs_by_tags.js +60 -0
  176. package/dest/tagging/index.d.ts +4 -3
  177. package/dest/tagging/index.d.ts.map +1 -1
  178. package/dest/tagging/index.js +2 -1
  179. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +5 -5
  180. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  181. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +7 -21
  182. package/dest/tagging/recipient_sync/utils/find_highest_indexes.js +2 -2
  183. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts +7 -7
  184. package/dest/tagging/recipient_sync/utils/load_logs_for_range.d.ts.map +1 -1
  185. package/dest/tagging/recipient_sync/utils/load_logs_for_range.js +16 -12
  186. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +5 -8
  187. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  188. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +13 -7
  189. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +4 -3
  190. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
  191. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +23 -16
  192. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +6 -7
  193. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  194. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +42 -27
  195. package/package.json +25 -16
  196. package/src/bin/check_oracle_version.ts +5 -4
  197. package/src/block_synchronizer/block_synchronizer.ts +82 -33
  198. package/src/config/index.ts +9 -1
  199. package/src/config/package_info.ts +1 -1
  200. package/src/contract_function_simulator/contract_function_simulator.ts +366 -142
  201. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  202. package/src/contract_function_simulator/execution_tagging_index_cache.ts +19 -14
  203. package/src/contract_function_simulator/index.ts +1 -0
  204. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +10 -10
  205. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +1 -1
  206. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +2 -5
  207. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +5 -11
  208. package/src/contract_function_simulator/oracle/interfaces.ts +95 -58
  209. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +104 -0
  210. package/src/contract_function_simulator/oracle/oracle.ts +404 -150
  211. package/src/contract_function_simulator/oracle/private_execution.ts +5 -64
  212. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +160 -182
  213. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +564 -182
  214. package/src/contract_function_simulator/pick_notes.ts +9 -2
  215. package/src/contract_function_simulator/proxied_contract_data_source.ts +8 -1
  216. package/src/contract_logging.ts +52 -0
  217. package/src/contract_sync/contract_sync_service.ts +176 -0
  218. package/src/contract_sync/helpers.ts +98 -0
  219. package/src/debug/pxe_debug_utils.ts +63 -18
  220. package/src/entrypoints/client/bundle/index.ts +2 -0
  221. package/src/entrypoints/client/bundle/utils.ts +18 -18
  222. package/src/entrypoints/client/lazy/index.ts +2 -0
  223. package/src/entrypoints/client/lazy/utils.ts +19 -18
  224. package/src/entrypoints/pxe_creation_options.ts +9 -1
  225. package/src/entrypoints/server/index.ts +3 -1
  226. package/src/entrypoints/server/utils.ts +24 -29
  227. package/src/events/event_service.ts +22 -11
  228. package/src/events/private_event_filter_validator.ts +21 -1
  229. package/src/job_coordinator/job_coordinator.ts +4 -3
  230. package/src/logs/log_service.ts +93 -105
  231. package/src/messages/message_context_service.ts +44 -0
  232. package/src/notes/note_service.ts +38 -26
  233. package/src/notes_filter.ts +24 -0
  234. package/src/oracle_version.ts +20 -9
  235. package/src/private_kernel/hints/{compute_tx_include_by_timestamp.ts → compute_tx_expiration_timestamp.ts} +13 -13
  236. package/src/private_kernel/hints/index.ts +1 -1
  237. package/src/private_kernel/hints/private_kernel_reset_private_inputs_builder.ts +164 -117
  238. package/src/private_kernel/hints/test_utils.ts +325 -0
  239. package/src/private_kernel/private_kernel_execution_prover.ts +24 -19
  240. package/src/private_kernel/private_kernel_oracle.ts +9 -9
  241. package/src/pxe.ts +272 -126
  242. package/src/storage/address_store/address_store.ts +15 -15
  243. package/src/storage/anchor_block_store/anchor_block_store.ts +8 -0
  244. package/src/storage/capsule_store/capsule_service.ts +90 -0
  245. package/src/storage/capsule_store/capsule_store.ts +42 -34
  246. package/src/storage/capsule_store/index.ts +1 -0
  247. package/src/storage/contract_store/contract_store.ts +186 -96
  248. package/src/storage/metadata.ts +1 -1
  249. package/src/storage/note_store/note_store.ts +318 -318
  250. package/src/storage/note_store/stored_note.ts +48 -0
  251. package/src/storage/private_event_store/private_event_store.ts +250 -190
  252. package/src/storage/private_event_store/stored_private_event.ts +73 -0
  253. package/src/storage/tagging_store/recipient_tagging_store.ts +38 -24
  254. package/src/storage/tagging_store/sender_address_book_store.ts +20 -14
  255. package/src/storage/tagging_store/sender_tagging_store.ts +287 -156
  256. package/src/tagging/get_all_logs_by_tags.ts +92 -0
  257. package/src/tagging/index.ts +3 -2
  258. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +19 -24
  259. package/src/tagging/recipient_sync/utils/find_highest_indexes.ts +2 -2
  260. package/src/tagging/recipient_sync/utils/load_logs_for_range.ts +17 -16
  261. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +25 -10
  262. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +29 -26
  263. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +39 -29
  264. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts +0 -4
  265. package/dest/private_kernel/hints/compute_tx_include_by_timestamp.d.ts.map +0 -1
  266. package/dest/tree_membership/tree_membership_service.d.ts +0 -50
  267. package/dest/tree_membership/tree_membership_service.d.ts.map +0 -1
  268. package/dest/tree_membership/tree_membership_service.js +0 -75
  269. package/src/tree_membership/tree_membership_service.ts +0 -97
@@ -2,7 +2,6 @@ import { MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS, PRIVATE_CONTEXT_INPUTS_LENGTH }
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 type { KeyStore } from '@aztec/key-store';
6
5
  import { type CircuitSimulator, toACVMWitness } from '@aztec/simulator/client';
7
6
  import {
8
7
  type FunctionAbi,
@@ -12,18 +11,14 @@ import {
12
11
  type NoteSelector,
13
12
  countArgumentsSize,
14
13
  } from '@aztec/stdlib/abi';
15
- import type { AuthWitness } from '@aztec/stdlib/auth-witness';
16
14
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
17
15
  import { siloNullifier } from '@aztec/stdlib/hash';
18
- import type { AztecNode } from '@aztec/stdlib/interfaces/client';
19
16
  import { PrivateContextInputs } from '@aztec/stdlib/kernel';
20
- import { type ContractClassLog, DirectionalAppTaggingSecret, type PreTag } from '@aztec/stdlib/logs';
17
+ import { type ContractClassLog, ExtendedDirectionalAppTaggingSecret, type TaggingIndexRange } from '@aztec/stdlib/logs';
21
18
  import { Tag } from '@aztec/stdlib/logs';
22
19
  import { Note, type NoteStatus } from '@aztec/stdlib/note';
23
20
  import {
24
- type BlockHeader,
25
21
  CallContext,
26
- Capsule,
27
22
  CountedContractClassLog,
28
23
  NoteAndSlot,
29
24
  PrivateCallExecutionResult,
@@ -31,14 +26,6 @@ import {
31
26
  } from '@aztec/stdlib/tx';
32
27
 
33
28
  import { NoteService } from '../../notes/note_service.js';
34
- import type { AddressStore } from '../../storage/address_store/address_store.js';
35
- import type { AnchorBlockStore } from '../../storage/anchor_block_store/anchor_block_store.js';
36
- import type { CapsuleStore } from '../../storage/capsule_store/capsule_store.js';
37
- import type { ContractStore } from '../../storage/contract_store/contract_store.js';
38
- import type { NoteStore } from '../../storage/note_store/note_store.js';
39
- import type { PrivateEventStore } from '../../storage/private_event_store/private_event_store.js';
40
- import type { RecipientTaggingStore } from '../../storage/tagging_store/recipient_tagging_store.js';
41
- import type { SenderAddressBookStore } from '../../storage/tagging_store/sender_address_book_store.js';
42
29
  import type { SenderTaggingStore } from '../../storage/tagging_store/sender_tagging_store.js';
43
30
  import { syncSenderTaggingIndexes } from '../../tagging/index.js';
44
31
  import type { ExecutionNoteCache } from '../execution_note_cache.js';
@@ -46,8 +33,25 @@ import { ExecutionTaggingIndexCache } from '../execution_tagging_index_cache.js'
46
33
  import type { HashedValuesCache } from '../hashed_values_cache.js';
47
34
  import { pickNotes } from '../pick_notes.js';
48
35
  import type { IPrivateExecutionOracle, NoteData } from './interfaces.js';
49
- import { executePrivateFunction, verifyCurrentClassId } from './private_execution.js';
50
- import { UtilityExecutionOracle } from './utility_execution_oracle.js';
36
+ import { executePrivateFunction } from './private_execution.js';
37
+ import { UtilityExecutionOracle, type UtilityExecutionOracleArgs } from './utility_execution_oracle.js';
38
+
39
+ /** Args for PrivateExecutionOracle constructor. */
40
+ export type PrivateExecutionOracleArgs = Omit<UtilityExecutionOracleArgs, 'contractAddress'> & {
41
+ argsHash: Fr;
42
+ txContext: TxContext;
43
+ callContext: CallContext;
44
+ /** Needed to trigger contract synchronization before nested calls */
45
+ utilityExecutor: (call: FunctionCall, scopes: AztecAddress[]) => Promise<void>;
46
+ executionCache: HashedValuesCache;
47
+ noteCache: ExecutionNoteCache;
48
+ taggingIndexCache: ExecutionTaggingIndexCache;
49
+ senderTaggingStore: SenderTaggingStore;
50
+ totalPublicCalldataCount?: number;
51
+ sideEffectCounter?: number;
52
+ senderForTags?: AztecAddress;
53
+ simulator?: CircuitSimulator;
54
+ };
51
55
 
52
56
  /**
53
57
  * The execution oracle for the private part of a transaction.
@@ -66,61 +70,39 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
66
70
  private newNotes: NoteAndSlot[] = [];
67
71
  private noteHashNullifierCounterMap: Map<number, number> = new Map();
68
72
  private contractClassLogs: CountedContractClassLog[] = [];
69
- private offchainEffects: { data: Fr[] }[] = [];
70
73
  private nestedExecutionResults: PrivateCallExecutionResult[] = [];
71
74
 
72
- constructor(
73
- private readonly argsHash: Fr,
74
- private readonly txContext: TxContext,
75
- private readonly callContext: CallContext,
76
- /** Header of a block whose state is used during private execution (not the block the transaction is included in). */
77
- protected override readonly anchorBlockHeader: BlockHeader,
78
- /** Needed to trigger contract synchronization before nested calls */
79
- private readonly utilityExecutor: (call: FunctionCall) => Promise<void>,
80
- /** List of transient auth witnesses to be used during this simulation */
81
- authWitnesses: AuthWitness[],
82
- capsules: Capsule[],
83
- private readonly executionCache: HashedValuesCache,
84
- private readonly noteCache: ExecutionNoteCache,
85
- private readonly taggingIndexCache: ExecutionTaggingIndexCache,
86
- contractStore: ContractStore,
87
- noteStore: NoteStore,
88
- keyStore: KeyStore,
89
- addressStore: AddressStore,
90
- aztecNode: AztecNode,
91
- anchorBlockStore: AnchorBlockStore,
92
- private readonly senderTaggingStore: SenderTaggingStore,
93
- recipientTaggingStore: RecipientTaggingStore,
94
- senderAddressBookStore: SenderAddressBookStore,
95
- capsuleStore: CapsuleStore,
96
- privateEventStore: PrivateEventStore,
97
- jobId: string,
98
- private totalPublicCalldataCount: number = 0,
99
- protected sideEffectCounter: number = 0,
100
- log = createLogger('simulator:client_execution_context'),
101
- scopes?: AztecAddress[],
102
- private senderForTags?: AztecAddress,
103
- private simulator?: CircuitSimulator,
104
- ) {
105
- super(
106
- callContext.contractAddress,
107
- authWitnesses,
108
- capsules,
109
- anchorBlockHeader,
110
- contractStore,
111
- noteStore,
112
- keyStore,
113
- addressStore,
114
- aztecNode,
115
- anchorBlockStore,
116
- recipientTaggingStore,
117
- senderAddressBookStore,
118
- capsuleStore,
119
- privateEventStore,
120
- jobId,
121
- log,
122
- scopes,
123
- );
75
+ private readonly argsHash: Fr;
76
+ private readonly txContext: TxContext;
77
+ private readonly callContext: CallContext;
78
+ private readonly utilityExecutor: (call: FunctionCall, scopes: AztecAddress[]) => Promise<void>;
79
+ private readonly executionCache: HashedValuesCache;
80
+ private readonly noteCache: ExecutionNoteCache;
81
+ private readonly taggingIndexCache: ExecutionTaggingIndexCache;
82
+ private readonly senderTaggingStore: SenderTaggingStore;
83
+ private totalPublicCalldataCount: number;
84
+ protected sideEffectCounter: number;
85
+ private senderForTags?: AztecAddress;
86
+ private readonly simulator?: CircuitSimulator;
87
+
88
+ constructor(args: PrivateExecutionOracleArgs) {
89
+ super({
90
+ ...args,
91
+ contractAddress: args.callContext.contractAddress,
92
+ log: args.log ?? createLogger('simulator:client_execution_context'),
93
+ });
94
+ this.argsHash = args.argsHash;
95
+ this.txContext = args.txContext;
96
+ this.callContext = args.callContext;
97
+ this.utilityExecutor = args.utilityExecutor;
98
+ this.executionCache = args.executionCache;
99
+ this.noteCache = args.noteCache;
100
+ this.taggingIndexCache = args.taggingIndexCache;
101
+ this.senderTaggingStore = args.senderTaggingStore;
102
+ this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
103
+ this.sideEffectCounter = args.sideEffectCounter ?? 0;
104
+ this.senderForTags = args.senderForTags;
105
+ this.simulator = args.simulator;
124
106
  }
125
107
 
126
108
  public getPrivateContextInputs(): PrivateContextInputs {
@@ -171,17 +153,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
171
153
  }
172
154
 
173
155
  /**
174
- * Return the offchain effects emitted during this execution.
175
- */
176
- public getOffchainEffects() {
177
- return this.offchainEffects;
178
- }
179
-
180
- /**
181
- * Returns the pre-tags that were used in this execution (and that need to be stored in the db).
156
+ * Returns the tagging index ranges that were used in this execution (and that need to be stored in the db).
182
157
  */
183
- public getUsedPreTags(): PreTag[] {
184
- return this.taggingIndexCache.getUsedPreTags();
158
+ public getUsedTaggingIndexRanges(): TaggingIndexRange[] {
159
+ return this.taggingIndexCache.getUsedTaggingIndexRanges();
185
160
  }
186
161
 
187
162
  /**
@@ -201,7 +176,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
201
176
  * The value persists through nested calls, meaning all calls down the stack will use the same
202
177
  * 'senderForTags' value (unless it is replaced).
203
178
  */
204
- public privateGetSenderForTags(): Promise<AztecAddress | undefined> {
179
+ public getSenderForTags(): Promise<AztecAddress | undefined> {
205
180
  return Promise.resolve(this.senderForTags);
206
181
  }
207
182
 
@@ -216,7 +191,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
216
191
  * through nested calls, meaning all calls down the stack will use the same 'senderForTags'
217
192
  * value (unless it is replaced by another call to this setter).
218
193
  */
219
- public privateSetSenderForTags(senderForTags: AztecAddress): Promise<void> {
194
+ public setSenderForTags(senderForTags: AztecAddress): Promise<void> {
220
195
  this.senderForTags = senderForTags;
221
196
  return Promise.resolve();
222
197
  }
@@ -227,26 +202,40 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
227
202
  * @param recipient - The address receiving the log
228
203
  * @returns An app tag to be used in a log.
229
204
  */
230
- public async privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
231
- const secret = await this.#calculateDirectionalAppTaggingSecret(this.contractAddress, sender, recipient);
205
+ public async getNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag> {
206
+ const extendedSecret = await this.#calculateExtendedDirectionalAppTaggingSecret(
207
+ this.contractAddress,
208
+ sender,
209
+ recipient,
210
+ );
232
211
 
233
- const index = await this.#getIndexToUseForSecret(secret);
234
- this.log.debug(
212
+ if (!extendedSecret) {
213
+ // We'd only fail to compute an extended secret if the recipient is an invalid address. To prevent
214
+ // king-of-the-hill attacks, instead of failing we use a random tag. By including a correct-looking tag in the
215
+ // log, the transaction shape is preserved and no privacy is leaked, even if the tag is bogus.
216
+ this.logger.warn(`Computing a tag for invalid recipient ${recipient} - returning a random tag instead`, {
217
+ contractAddress: this.contractAddress,
218
+ });
219
+ return Tag.random();
220
+ }
221
+
222
+ const index = await this.#getIndexToUseForSecret(extendedSecret);
223
+ this.logger.debug(
235
224
  `Incrementing tagging index for sender: ${sender}, recipient: ${recipient}, contract: ${this.contractAddress} to ${index}`,
236
225
  );
237
- this.taggingIndexCache.setLastUsedIndex(secret, index);
226
+ this.taggingIndexCache.setLastUsedIndex(extendedSecret, index);
238
227
 
239
- return Tag.compute({ secret, index });
228
+ return Tag.compute({ extendedSecret, index });
240
229
  }
241
230
 
242
- async #calculateDirectionalAppTaggingSecret(
231
+ async #calculateExtendedDirectionalAppTaggingSecret(
243
232
  contractAddress: AztecAddress,
244
233
  sender: AztecAddress,
245
234
  recipient: AztecAddress,
246
235
  ) {
247
- const senderCompleteAddress = await this.getCompleteAddress(sender);
236
+ const senderCompleteAddress = await this.getCompleteAddressOrFail(sender);
248
237
  const senderIvsk = await this.keyStore.getMasterIncomingViewingSecretKey(sender);
249
- return DirectionalAppTaggingSecret.compute(
238
+ return ExtendedDirectionalAppTaggingSecret.compute(
250
239
  senderCompleteAddress,
251
240
  senderIvsk,
252
241
  recipient,
@@ -255,7 +244,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
255
244
  );
256
245
  }
257
246
 
258
- async #getIndexToUseForSecret(secret: DirectionalAppTaggingSecret): Promise<number> {
247
+ async #getIndexToUseForSecret(secret: ExtendedDirectionalAppTaggingSecret): Promise<number> {
259
248
  // If we have the tagging index in the cache, we use it. If not we obtain it from the execution data provider.
260
249
  const lastUsedIndexInTx = this.taggingIndexCache.getLastUsedIndex(secret);
261
250
 
@@ -265,7 +254,13 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
265
254
  // This is a tagging secret we've not yet used in this tx, so first sync our store to make sure its indices
266
255
  // are up to date. We do this here because this store is not synced as part of the global sync because
267
256
  // that'd be wasteful as most tagging secrets are not used in each tx.
268
- await syncSenderTaggingIndexes(secret, this.contractAddress, this.aztecNode, this.senderTaggingStore, this.jobId);
257
+ await syncSenderTaggingIndexes(
258
+ secret,
259
+ this.aztecNode,
260
+ this.senderTaggingStore,
261
+ await this.anchorBlockHeader.hash(),
262
+ this.jobId,
263
+ );
269
264
 
270
265
  const lastUsedIndex = await this.senderTaggingStore.getLastUsedIndex(secret, this.jobId);
271
266
  // If lastUsedIndex is undefined, we've never used this secret, so start from 0
@@ -279,7 +274,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
279
274
  * @param values - Values to store.
280
275
  * @returns The hash of the values.
281
276
  */
282
- public privateStoreInExecutionCache(values: Fr[], hash: Fr) {
277
+ public setHashPreimage(values: Fr[], hash: Fr) {
283
278
  return this.executionCache.store(values, hash);
284
279
  }
285
280
 
@@ -288,7 +283,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
288
283
  * @param hash - Hash of the values.
289
284
  * @returns The values.
290
285
  */
291
- public privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]> {
286
+ public getHashPreimage(hash: Fr): Promise<Fr[]> {
292
287
  const preimage = this.executionCache.getPreimage(hash);
293
288
  if (!preimage) {
294
289
  throw new Error(`Preimage for hash ${hash.toString()} not found in cache`);
@@ -296,12 +291,12 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
296
291
  return Promise.resolve(preimage);
297
292
  }
298
293
 
299
- override async utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean> {
294
+ override async doesNullifierExist(innerNullifier: Fr): Promise<boolean> {
300
295
  // This oracle must be overridden because while utility execution can only meaningfully check if a nullifier exists
301
296
  // in the synched block, during private execution there's also the possibility of it being pending, i.e. created
302
297
  // in the current transaction.
303
298
 
304
- this.log.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
299
+ this.logger.debug(`Checking existence of inner nullifier ${innerNullifier}`, {
305
300
  contractAddress: this.contractAddress,
306
301
  });
307
302
 
@@ -309,7 +304,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
309
304
 
310
305
  return (
311
306
  this.noteCache.getNullifiers(this.contractAddress).has(nullifier) ||
312
- (await super.utilityCheckNullifierExists(innerNullifier))
307
+ (await super.doesNullifierExist(innerNullifier))
313
308
  );
314
309
  }
315
310
 
@@ -334,7 +329,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
334
329
  * @param status - The status of notes to fetch.
335
330
  * @returns Array of note data.
336
331
  */
337
- public override async utilityGetNotes(
332
+ public override async getNotes(
338
333
  owner: AztecAddress | undefined,
339
334
  storageSlot: Fr,
340
335
  numSelects: number,
@@ -356,7 +351,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
356
351
 
357
352
  const pendingNullifiers = this.noteCache.getNullifiers(this.callContext.contractAddress);
358
353
 
359
- const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockStore);
354
+ const noteService = new NoteService(this.noteStore, this.aztecNode, this.anchorBlockHeader, this.jobId);
360
355
  const dbNotes = await noteService.getNotes(
361
356
  this.callContext.contractAddress,
362
357
  owner,
@@ -380,7 +375,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
380
375
  offset,
381
376
  });
382
377
 
383
- this.log.debug(
378
+ this.logger.debug(
384
379
  `Returning ${notes.length} notes for ${this.callContext.contractAddress} at ${storageSlot}: ${notes
385
380
  .map(n => `${n.noteNonce.toString()}:[${n.note.items.map(i => i.toString()).join(',')}]`)
386
381
  .join(', ')}`,
@@ -400,7 +395,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
400
395
  * @param noteHash - A hash of the new note.
401
396
  * @returns
402
397
  */
403
- public privateNotifyCreatedNote(
398
+ public notifyCreatedNote(
404
399
  owner: AztecAddress,
405
400
  storageSlot: Fr,
406
401
  randomness: Fr,
@@ -409,7 +404,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
409
404
  noteHash: Fr,
410
405
  counter: number,
411
406
  ) {
412
- this.log.debug(`Notified of new note with inner hash ${noteHash}`, {
407
+ this.logger.debug(`Notified of new note with inner hash ${noteHash}`, {
413
408
  contractAddress: this.callContext.contractAddress,
414
409
  storageSlot,
415
410
  randomness,
@@ -441,7 +436,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
441
436
  * @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
442
437
  * @param noteHash - A hash of the new note.
443
438
  */
444
- public async privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number) {
439
+ public async notifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number) {
445
440
  const nullifiedNoteHashCounter = await this.noteCache.nullifyNote(
446
441
  this.callContext.contractAddress,
447
442
  innerNullifier,
@@ -458,11 +453,24 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
458
453
  * @param innerNullifier - The pending nullifier to add in the list (not yet siloed by contract address).
459
454
  * @param noteHash - A hash of the new note.
460
455
  */
461
- public privateNotifyCreatedNullifier(innerNullifier: Fr) {
462
- this.log.debug(`Notified of new inner nullifier ${innerNullifier}`, { contractAddress: this.contractAddress });
456
+ public notifyCreatedNullifier(innerNullifier: Fr) {
457
+ this.logger.debug(`Notified of new inner nullifier ${innerNullifier}`, { contractAddress: this.contractAddress });
463
458
  return this.noteCache.nullifierCreated(this.callContext.contractAddress, innerNullifier);
464
459
  }
465
460
 
461
+ /**
462
+ * Check if a nullifier has been emitted in the same transaction, i.e. if notifyCreatedNullifier has been
463
+ * called for this inner nullifier from the contract with the specified address.
464
+ * @param innerNullifier - The inner nullifier to check.
465
+ * @param contractAddress - Address of the contract that emitted the nullifier.
466
+ * @returns A boolean indicating whether the nullifier is pending or not.
467
+ */
468
+ public async isNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean> {
469
+ const siloedNullifier = await siloNullifier(contractAddress, innerNullifier);
470
+ const isNullifierPending = this.noteCache.getNullifiers(contractAddress).has(siloedNullifier.toBigInt());
471
+ return Promise.resolve(isNullifierPending);
472
+ }
473
+
466
474
  /**
467
475
  * Emit a contract class log.
468
476
  * This fn exists because we only carry a poseidon hash through the kernels, and need to
@@ -470,10 +478,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
470
478
  * @param log - The contract class log to be emitted.
471
479
  * @param counter - The contract class log's counter.
472
480
  */
473
- public privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number) {
481
+ public notifyCreatedContractClassLog(log: ContractClassLog, counter: number) {
474
482
  this.contractClassLogs.push(new CountedContractClassLog(log, counter));
475
483
  const text = log.toBuffer().toString('hex');
476
- this.log.verbose(
484
+ this.logger.verbose(
477
485
  `Emitted log from ContractClassRegistry: "${text.length > 100 ? text.slice(0, 100) + '...' : text}"`,
478
486
  );
479
487
  }
@@ -499,7 +507,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
499
507
  * @param isStaticCall - Whether the call is a static call.
500
508
  * @returns The execution result.
501
509
  */
502
- async privateCallPrivateFunction(
510
+ async callPrivateFunction(
503
511
  targetContractAddress: AztecAddress,
504
512
  functionSelector: FunctionSelector,
505
513
  argsHash: Fr,
@@ -513,15 +521,20 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
513
521
  }
514
522
 
515
523
  const simulatorSetupTimer = new Timer();
516
- this.log.debug(
524
+ this.logger.debug(
517
525
  `Calling private function ${targetContractAddress}:${functionSelector} from ${this.callContext.contractAddress}`,
518
526
  );
519
527
 
520
528
  isStaticCall = isStaticCall || this.callContext.isStaticCall;
521
529
 
522
- await verifyCurrentClassId(targetContractAddress, this.aztecNode, this.contractStore, this.anchorBlockHeader);
523
-
524
- await this.contractStore.syncPrivateState(targetContractAddress, functionSelector, this.utilityExecutor);
530
+ await this.contractSyncService.ensureContractSynced(
531
+ targetContractAddress,
532
+ functionSelector,
533
+ this.utilityExecutor,
534
+ this.anchorBlockHeader,
535
+ this.jobId,
536
+ this.scopes,
537
+ );
525
538
 
526
539
  const targetArtifact = await this.contractStore.getFunctionArtifactWithDebugMetadata(
527
540
  targetContractAddress,
@@ -532,41 +545,43 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
532
545
 
533
546
  const derivedCallContext = await this.deriveCallContext(targetContractAddress, targetArtifact, isStaticCall);
534
547
 
535
- const privateExecutionOracle = new PrivateExecutionOracle(
548
+ const privateExecutionOracle = new PrivateExecutionOracle({
536
549
  argsHash,
537
- derivedTxContext,
538
- derivedCallContext,
539
- this.anchorBlockHeader,
540
- this.utilityExecutor,
541
- this.authWitnesses,
542
- this.capsules,
543
- this.executionCache,
544
- this.noteCache,
545
- this.taggingIndexCache,
546
- this.contractStore,
547
- this.noteStore,
548
- this.keyStore,
549
- this.addressStore,
550
- this.aztecNode,
551
- this.anchorBlockStore,
552
- this.senderTaggingStore,
553
- this.recipientTaggingStore,
554
- this.senderAddressBookStore,
555
- this.capsuleStore,
556
- this.privateEventStore,
557
- this.jobId,
558
- this.totalPublicCalldataCount,
550
+ txContext: derivedTxContext,
551
+ callContext: derivedCallContext,
552
+ anchorBlockHeader: this.anchorBlockHeader,
553
+ utilityExecutor: this.utilityExecutor,
554
+ authWitnesses: this.authWitnesses,
555
+ capsules: this.capsules,
556
+ executionCache: this.executionCache,
557
+ noteCache: this.noteCache,
558
+ taggingIndexCache: this.taggingIndexCache,
559
+ contractStore: this.contractStore,
560
+ noteStore: this.noteStore,
561
+ keyStore: this.keyStore,
562
+ addressStore: this.addressStore,
563
+ aztecNode: this.aztecNode,
564
+ senderTaggingStore: this.senderTaggingStore,
565
+ recipientTaggingStore: this.recipientTaggingStore,
566
+ senderAddressBookStore: this.senderAddressBookStore,
567
+ capsuleService: this.capsuleService,
568
+ privateEventStore: this.privateEventStore,
569
+ messageContextService: this.messageContextService,
570
+ contractSyncService: this.contractSyncService,
571
+ jobId: this.jobId,
572
+ totalPublicCalldataCount: this.totalPublicCalldataCount,
559
573
  sideEffectCounter,
560
- this.log,
561
- this.scopes,
562
- this.senderForTags,
563
- this.simulator,
564
- );
574
+ log: this.logger,
575
+ scopes: this.scopes,
576
+ senderForTags: this.senderForTags,
577
+ simulator: this.simulator!,
578
+ l2TipsStore: this.l2TipsStore,
579
+ });
565
580
 
566
581
  const setupTime = simulatorSetupTimer.ms();
567
582
 
568
583
  const childExecutionResult = await executePrivateFunction(
569
- this.simulator,
584
+ this.simulator!,
570
585
  privateExecutionOracle,
571
586
  targetArtifact,
572
587
  targetContractAddress,
@@ -592,7 +607,8 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
592
607
  };
593
608
  }
594
609
 
595
- #onNewPublicFunctionCall(calldataHash: Fr) {
610
+ /** Validates the calldata preimage exists in the cache and checks cumulative calldata size is within limits. */
611
+ public assertValidPublicCalldata(calldataHash: Fr) {
596
612
  const calldata = this.executionCache.getPreimage(calldataHash);
597
613
  if (!calldata) {
598
614
  throw new Error('Calldata for public call not found in cache');
@@ -602,47 +618,14 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
602
618
  if (this.totalPublicCalldataCount > MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS) {
603
619
  throw new Error(`Too many total args to all enqueued public calls! (> ${MAX_FR_CALLDATA_TO_ALL_ENQUEUED_CALLS})`);
604
620
  }
605
- }
606
-
607
- /**
608
- * Verify relevant information when a public function is enqueued.
609
- * @param targetContractAddress - The address of the contract to call.
610
- * @param calldataHash - The hash of the function selector and arguments.
611
- * @param sideEffectCounter - The side effect counter at the start of the call.
612
- * @param isStaticCall - Whether the call is a static call.
613
- */
614
- public privateNotifyEnqueuedPublicFunctionCall(
615
- _targetContractAddress: AztecAddress,
616
- calldataHash: Fr,
617
- _sideEffectCounter: number,
618
- _isStaticCall: boolean,
619
- ) {
620
- this.#onNewPublicFunctionCall(calldataHash);
621
621
  return Promise.resolve();
622
622
  }
623
623
 
624
- /**
625
- * Verify relevant information when a public teardown function is set.
626
- * @param targetContractAddress - The address of the contract to call.
627
- * @param argsHash - The arguments hash to pass to the function.
628
- * @param sideEffectCounter - The side effect counter at the start of the call.
629
- * @param isStaticCall - Whether the call is a static call.
630
- */
631
- public privateNotifySetPublicTeardownFunctionCall(
632
- _targetContractAddress: AztecAddress,
633
- calldataHash: Fr,
634
- _sideEffectCounter: number,
635
- _isStaticCall: boolean,
636
- ) {
637
- this.#onNewPublicFunctionCall(calldataHash);
638
- return Promise.resolve();
639
- }
640
-
641
- public privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void> {
624
+ public notifyRevertiblePhaseStart(minRevertibleSideEffectCounter: number): Promise<void> {
642
625
  return this.noteCache.setMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter);
643
626
  }
644
627
 
645
- public privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean> {
628
+ public isExecutionInRevertiblePhase(sideEffectCounter: number): Promise<boolean> {
646
629
  return Promise.resolve(this.noteCache.isSideEffectCounterRevertible(sideEffectCounter));
647
630
  }
648
631
 
@@ -669,9 +652,4 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
669
652
  public getDebugFunctionName() {
670
653
  return this.contractStore.getDebugFunctionName(this.contractAddress, this.callContext.functionSelector);
671
654
  }
672
-
673
- public utilityEmitOffchainEffect(data: Fr[]): Promise<void> {
674
- this.offchainEffects.push({ data });
675
- return Promise.resolve();
676
- }
677
655
  }