@aztec/pxe 0.0.1-commit.dbf9cec → 0.0.1-commit.ddcf04837

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 (197) hide show
  1. package/dest/bin/check_oracle_version.js +4 -4
  2. package/dest/block_synchronizer/block_synchronizer.d.ts +1 -1
  3. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  4. package/dest/block_synchronizer/block_synchronizer.js +6 -0
  5. package/dest/config/index.d.ts +2 -2
  6. package/dest/config/index.d.ts.map +1 -1
  7. package/dest/config/index.js +8 -15
  8. package/dest/contract_function_simulator/contract_function_simulator.d.ts +13 -5
  9. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  10. package/dest/contract_function_simulator/contract_function_simulator.js +36 -9
  11. package/dest/contract_function_simulator/ephemeral_array_service.d.ts +28 -0
  12. package/dest/contract_function_simulator/ephemeral_array_service.d.ts.map +1 -0
  13. package/dest/contract_function_simulator/ephemeral_array_service.js +78 -0
  14. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts +5 -5
  15. package/dest/contract_function_simulator/execution_tagging_index_cache.d.ts.map +1 -1
  16. package/dest/contract_function_simulator/execution_tagging_index_cache.js +17 -9
  17. package/dest/contract_function_simulator/index.d.ts +2 -1
  18. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  19. package/dest/contract_function_simulator/index.js +1 -0
  20. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts +4 -6
  21. package/dest/contract_function_simulator/noir-structs/event_validation_request.d.ts.map +1 -1
  22. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +8 -10
  23. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +1 -1
  24. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +1 -1
  25. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +2 -2
  26. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  27. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +2 -4
  28. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts +4 -7
  29. package/dest/contract_function_simulator/noir-structs/note_validation_request.d.ts.map +1 -1
  30. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +6 -11
  31. package/dest/contract_function_simulator/oracle/interfaces.d.ts +61 -45
  32. package/dest/contract_function_simulator/oracle/interfaces.d.ts.map +1 -1
  33. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts +9 -0
  34. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.d.ts.map +1 -0
  35. package/dest/contract_function_simulator/oracle/legacy_oracle_mappings.js +47 -0
  36. package/dest/contract_function_simulator/oracle/oracle.d.ts +75 -44
  37. package/dest/contract_function_simulator/oracle/oracle.d.ts.map +1 -1
  38. package/dest/contract_function_simulator/oracle/oracle.js +281 -96
  39. package/dest/contract_function_simulator/oracle/private_execution.js +5 -3
  40. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +23 -49
  41. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  42. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +42 -64
  43. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +92 -57
  44. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  45. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +274 -107
  46. package/dest/contract_function_simulator/pick_notes.d.ts +1 -1
  47. package/dest/contract_function_simulator/pick_notes.d.ts.map +1 -1
  48. package/dest/contract_function_simulator/pick_notes.js +9 -2
  49. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts +1 -1
  50. package/dest/contract_function_simulator/proxied_contract_data_source.d.ts.map +1 -1
  51. package/dest/contract_function_simulator/proxied_contract_data_source.js +3 -0
  52. package/dest/contract_logging.d.ts +9 -4
  53. package/dest/contract_logging.d.ts.map +1 -1
  54. package/dest/contract_logging.js +21 -6
  55. package/dest/contract_sync/contract_sync_service.d.ts +6 -5
  56. package/dest/contract_sync/contract_sync_service.d.ts.map +1 -1
  57. package/dest/contract_sync/contract_sync_service.js +62 -43
  58. package/dest/contract_sync/helpers.d.ts +2 -3
  59. package/dest/contract_sync/helpers.d.ts.map +1 -1
  60. package/dest/contract_sync/helpers.js +7 -2
  61. package/dest/debug/pxe_debug_utils.d.ts +3 -3
  62. package/dest/debug/pxe_debug_utils.d.ts.map +1 -1
  63. package/dest/entrypoints/client/bundle/index.d.ts +1 -2
  64. package/dest/entrypoints/client/bundle/index.d.ts.map +1 -1
  65. package/dest/entrypoints/client/bundle/index.js +0 -1
  66. package/dest/entrypoints/client/bundle/utils.d.ts +2 -2
  67. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  68. package/dest/entrypoints/client/bundle/utils.js +2 -2
  69. package/dest/entrypoints/client/lazy/index.d.ts +1 -2
  70. package/dest/entrypoints/client/lazy/index.d.ts.map +1 -1
  71. package/dest/entrypoints/client/lazy/index.js +0 -1
  72. package/dest/entrypoints/client/lazy/utils.d.ts +2 -2
  73. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  74. package/dest/entrypoints/client/lazy/utils.js +2 -2
  75. package/dest/entrypoints/pxe_creation_options.d.ts +3 -1
  76. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  77. package/dest/entrypoints/pxe_creation_options.js +3 -1
  78. package/dest/entrypoints/server/index.d.ts +2 -3
  79. package/dest/entrypoints/server/index.d.ts.map +1 -1
  80. package/dest/entrypoints/server/index.js +1 -2
  81. package/dest/entrypoints/server/utils.d.ts +2 -2
  82. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  83. package/dest/entrypoints/server/utils.js +2 -2
  84. package/dest/events/event_service.d.ts +3 -2
  85. package/dest/events/event_service.d.ts.map +1 -1
  86. package/dest/events/event_service.js +16 -4
  87. package/dest/events/private_event_filter_validator.d.ts +3 -2
  88. package/dest/events/private_event_filter_validator.d.ts.map +1 -1
  89. package/dest/events/private_event_filter_validator.js +15 -0
  90. package/dest/logs/log_service.d.ts +7 -8
  91. package/dest/logs/log_service.d.ts.map +1 -1
  92. package/dest/logs/log_service.js +27 -37
  93. package/dest/messages/message_context_service.d.ts +17 -0
  94. package/dest/messages/message_context_service.d.ts.map +1 -0
  95. package/dest/messages/message_context_service.js +36 -0
  96. package/dest/notes/note_service.d.ts +4 -5
  97. package/dest/notes/note_service.d.ts.map +1 -1
  98. package/dest/notes/note_service.js +14 -5
  99. package/dest/notes_filter.d.ts +2 -3
  100. package/dest/notes_filter.d.ts.map +1 -1
  101. package/dest/oracle_version.d.ts +4 -3
  102. package/dest/oracle_version.d.ts.map +1 -1
  103. package/dest/oracle_version.js +20 -10
  104. package/dest/private_kernel/private_kernel_execution_prover.d.ts +1 -1
  105. package/dest/private_kernel/private_kernel_execution_prover.d.ts.map +1 -1
  106. package/dest/private_kernel/private_kernel_execution_prover.js +4 -7
  107. package/dest/pxe.d.ts +12 -8
  108. package/dest/pxe.d.ts.map +1 -1
  109. package/dest/pxe.js +51 -26
  110. package/dest/storage/capsule_store/capsule_service.d.ts +21 -0
  111. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -0
  112. package/dest/storage/capsule_store/capsule_service.js +50 -0
  113. package/dest/storage/capsule_store/capsule_store.d.ts +9 -9
  114. package/dest/storage/capsule_store/capsule_store.d.ts.map +1 -1
  115. package/dest/storage/capsule_store/capsule_store.js +33 -28
  116. package/dest/storage/capsule_store/index.d.ts +2 -1
  117. package/dest/storage/capsule_store/index.d.ts.map +1 -1
  118. package/dest/storage/capsule_store/index.js +1 -0
  119. package/dest/storage/metadata.d.ts +1 -1
  120. package/dest/storage/metadata.js +1 -1
  121. package/dest/storage/note_store/note_store.d.ts +1 -1
  122. package/dest/storage/note_store/note_store.d.ts.map +1 -1
  123. package/dest/storage/note_store/note_store.js +2 -2
  124. package/dest/storage/private_event_store/stored_private_event.js +1 -1
  125. package/dest/storage/tagging_store/sender_tagging_store.d.ts +26 -25
  126. package/dest/storage/tagging_store/sender_tagging_store.d.ts.map +1 -1
  127. package/dest/storage/tagging_store/sender_tagging_store.js +141 -115
  128. package/dest/tagging/index.d.ts +2 -2
  129. package/dest/tagging/index.d.ts.map +1 -1
  130. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts +2 -2
  131. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.d.ts.map +1 -1
  132. package/dest/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.js +1 -15
  133. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts +1 -1
  134. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.d.ts.map +1 -1
  135. package/dest/tagging/sender_sync/sync_sender_tagging_indexes.js +10 -1
  136. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts +4 -3
  137. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.d.ts.map +1 -1
  138. package/dest/tagging/sender_sync/utils/get_status_change_of_pending.js +20 -10
  139. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts +2 -1
  140. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.d.ts.map +1 -1
  141. package/dest/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.js +24 -11
  142. package/package.json +16 -16
  143. package/src/bin/check_oracle_version.ts +4 -4
  144. package/src/block_synchronizer/block_synchronizer.ts +6 -0
  145. package/src/config/index.ts +3 -9
  146. package/src/contract_function_simulator/contract_function_simulator.ts +50 -13
  147. package/src/contract_function_simulator/ephemeral_array_service.ts +110 -0
  148. package/src/contract_function_simulator/execution_tagging_index_cache.ts +16 -11
  149. package/src/contract_function_simulator/index.ts +1 -0
  150. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +9 -9
  151. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +1 -1
  152. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +2 -5
  153. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +4 -10
  154. package/src/contract_function_simulator/oracle/interfaces.ts +82 -54
  155. package/src/contract_function_simulator/oracle/legacy_oracle_mappings.ts +104 -0
  156. package/src/contract_function_simulator/oracle/oracle.ts +363 -139
  157. package/src/contract_function_simulator/oracle/private_execution.ts +4 -4
  158. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +46 -84
  159. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +449 -144
  160. package/src/contract_function_simulator/pick_notes.ts +9 -2
  161. package/src/contract_function_simulator/proxied_contract_data_source.ts +8 -1
  162. package/src/contract_logging.ts +18 -5
  163. package/src/contract_sync/contract_sync_service.ts +99 -75
  164. package/src/contract_sync/helpers.ts +4 -4
  165. package/src/debug/pxe_debug_utils.ts +3 -3
  166. package/src/entrypoints/client/bundle/index.ts +0 -1
  167. package/src/entrypoints/client/bundle/utils.ts +2 -3
  168. package/src/entrypoints/client/lazy/index.ts +0 -1
  169. package/src/entrypoints/client/lazy/utils.ts +2 -3
  170. package/src/entrypoints/pxe_creation_options.ts +7 -0
  171. package/src/entrypoints/server/index.ts +1 -2
  172. package/src/entrypoints/server/utils.ts +2 -3
  173. package/src/events/event_service.ts +17 -4
  174. package/src/events/private_event_filter_validator.ts +21 -1
  175. package/src/logs/log_service.ts +57 -78
  176. package/src/messages/message_context_service.ts +44 -0
  177. package/src/notes/note_service.ts +18 -8
  178. package/src/notes_filter.ts +1 -3
  179. package/src/oracle_version.ts +20 -10
  180. package/src/private_kernel/private_kernel_execution_prover.ts +4 -9
  181. package/src/pxe.ts +78 -31
  182. package/src/storage/capsule_store/capsule_service.ts +90 -0
  183. package/src/storage/capsule_store/capsule_store.ts +34 -26
  184. package/src/storage/capsule_store/index.ts +1 -0
  185. package/src/storage/metadata.ts +1 -1
  186. package/src/storage/note_store/note_store.ts +2 -5
  187. package/src/storage/private_event_store/stored_private_event.ts +1 -1
  188. package/src/storage/tagging_store/sender_tagging_store.ts +182 -135
  189. package/src/tagging/index.ts +1 -1
  190. package/src/tagging/recipient_sync/load_private_logs_for_sender_recipient_pair.ts +2 -14
  191. package/src/tagging/sender_sync/sync_sender_tagging_indexes.ts +19 -1
  192. package/src/tagging/sender_sync/utils/get_status_change_of_pending.ts +26 -11
  193. package/src/tagging/sender_sync/utils/load_and_store_new_tagging_indexes.ts +19 -9
  194. package/dest/access_scopes.d.ts +0 -9
  195. package/dest/access_scopes.d.ts.map +0 -1
  196. package/dest/access_scopes.js +0 -6
  197. package/src/access_scopes.ts +0 -9
@@ -3,12 +3,9 @@ import { FieldReader } from '@aztec/foundation/serialize';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import { TxHash } from '@aztec/stdlib/tx';
5
5
 
6
- // TODO(#14617): should we compute this from constants? This value is aztec-nr specific.
7
- export const MAX_NOTE_PACKED_LEN = 9;
8
-
9
6
  /**
10
7
  * Intermediate struct used to perform batch note validation by PXE. The `utilityValidateAndStoreEnqueuedNotesAndEvents` oracle
11
- * expects for values of this type to be stored in a `CapsuleArray`.
8
+ * expects for values of this type to be stored in a `EphemeralArray`.
12
9
  */
13
10
  export class NoteValidationRequest {
14
11
  constructor(
@@ -21,10 +18,9 @@ export class NoteValidationRequest {
21
18
  public noteHash: Fr,
22
19
  public nullifier: Fr,
23
20
  public txHash: TxHash,
24
- public recipient: AztecAddress,
25
21
  ) {}
26
22
 
27
- static fromFields(fields: Fr[] | FieldReader): NoteValidationRequest {
23
+ static fromFields(fields: Fr[], maxNotePackedLen: number): NoteValidationRequest {
28
24
  const reader = FieldReader.asReader(fields);
29
25
 
30
26
  const contractAddress = AztecAddress.fromField(reader.readField());
@@ -33,18 +29,17 @@ export class NoteValidationRequest {
33
29
  const randomness = reader.readField();
34
30
  const noteNonce = reader.readField();
35
31
 
36
- const contentStorage = reader.readFieldArray(MAX_NOTE_PACKED_LEN);
32
+ const contentStorage = reader.readFieldArray(maxNotePackedLen);
37
33
  const contentLen = reader.readField().toNumber();
38
34
  const content = contentStorage.slice(0, contentLen);
39
35
 
40
36
  const noteHash = reader.readField();
41
37
  const nullifier = reader.readField();
42
38
  const txHash = TxHash.fromField(reader.readField());
43
- const recipient = AztecAddress.fromField(reader.readField());
44
39
 
45
40
  if (reader.remainingFields() !== 0) {
46
41
  throw new Error(
47
- `Error converting array of fields to NoteValidationRequest. Hint: check that MAX_NOTE_PACKED_LEN is consistent with private_notes::MAX_NOTE_PACKED_LEN in Aztec-nr.`,
42
+ `Error converting array of fields to NoteValidationRequest: expected ${reader.cursor} fields but received ${fields.length} (maxNotePackedLen=${maxNotePackedLen}).`,
48
43
  );
49
44
  }
50
45
 
@@ -58,7 +53,6 @@ export class NoteValidationRequest {
58
53
  noteHash,
59
54
  nullifier,
60
55
  txHash,
61
- recipient,
62
56
  );
63
57
  }
64
58
  }
@@ -6,8 +6,9 @@ import { MembershipWitness } from '@aztec/foundation/trees';
6
6
  import type { FunctionSelector, NoteSelector } from '@aztec/stdlib/abi';
7
7
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
8
8
  import { BlockHash } from '@aztec/stdlib/block';
9
- import type { CompleteAddress, ContractInstance } from '@aztec/stdlib/contract';
9
+ import type { ContractInstance, PartialAddress } from '@aztec/stdlib/contract';
10
10
  import type { KeyValidationRequest } from '@aztec/stdlib/kernel';
11
+ import type { PublicKeys } from '@aztec/stdlib/keys';
11
12
  import type { ContractClassLog, Tag } from '@aztec/stdlib/logs';
12
13
  import type { Note, NoteStatus } from '@aztec/stdlib/note';
13
14
  import { type NullifierMembershipWitness, PublicDataWitness } from '@aztec/stdlib/trees';
@@ -52,9 +53,9 @@ export interface NoteData {
52
53
  export interface IMiscOracle {
53
54
  isMisc: true;
54
55
 
55
- utilityGetRandomField(): Fr;
56
- utilityAssertCompatibleOracleVersion(version: number): void;
57
- utilityLog(level: number, message: string, fields: Fr[]): Promise<void>;
56
+ getRandomField(): Fr;
57
+ assertCompatibleOracleVersion(major: number, minor: number): void;
58
+ log(level: number, message: string, fields: Fr[]): Promise<void>;
58
59
  }
59
60
 
60
61
  /**
@@ -64,30 +65,32 @@ export interface IMiscOracle {
64
65
  export interface IUtilityExecutionOracle {
65
66
  isUtility: true;
66
67
 
67
- utilityGetUtilityContext(): UtilityContext;
68
- utilityGetKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
69
- utilityGetContractInstance(address: AztecAddress): Promise<ContractInstance>;
70
- utilityGetNoteHashMembershipWitness(
68
+ getUtilityContext(): UtilityContext;
69
+ getKeyValidationRequest(pkMHash: Fr): Promise<KeyValidationRequest>;
70
+ getContractInstance(address: AztecAddress): Promise<ContractInstance>;
71
+ getNoteHashMembershipWitness(
71
72
  anchorBlockHash: BlockHash,
72
73
  noteHash: Fr,
73
74
  ): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
74
- utilityGetBlockHashMembershipWitness(
75
+ getBlockHashMembershipWitness(
75
76
  anchorBlockHash: BlockHash,
76
77
  blockHash: BlockHash,
77
78
  ): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
78
- utilityGetNullifierMembershipWitness(
79
+ getNullifierMembershipWitness(
79
80
  anchorBlockHash: BlockHash,
80
81
  nullifier: Fr,
81
82
  ): Promise<NullifierMembershipWitness | undefined>;
82
- utilityGetPublicDataWitness(anchorBlockHash: BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
83
- utilityGetLowNullifierMembershipWitness(
83
+ getPublicDataWitness(anchorBlockHash: BlockHash, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
84
+ getLowNullifierMembershipWitness(
84
85
  anchorBlockHash: BlockHash,
85
86
  nullifier: Fr,
86
87
  ): Promise<NullifierMembershipWitness | undefined>;
87
- utilityGetBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
88
- utilityTryGetPublicKeysAndPartialAddress(account: AztecAddress): Promise<CompleteAddress | undefined>;
89
- utilityGetAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
90
- utilityGetNotes(
88
+ getBlockHeader(blockNumber: BlockNumber): Promise<BlockHeader | undefined>;
89
+ getPublicKeysAndPartialAddress(
90
+ account: AztecAddress,
91
+ ): Promise<{ publicKeys: PublicKeys; partialAddress: PartialAddress } | undefined>;
92
+ getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
93
+ getNotes(
91
94
  owner: AztecAddress | undefined,
92
95
  storageSlot: Fr,
93
96
  numSelects: number,
@@ -104,35 +107,72 @@ export interface IUtilityExecutionOracle {
104
107
  offset: number,
105
108
  status: NoteStatus,
106
109
  ): Promise<NoteData[]>;
107
- utilityCheckNullifierExists(innerNullifier: Fr): Promise<boolean>;
108
- utilityGetL1ToL2MembershipWitness(
110
+ doesNullifierExist(innerNullifier: Fr): Promise<boolean>;
111
+ getL1ToL2MembershipWitness(
109
112
  contractAddress: AztecAddress,
110
113
  messageHash: Fr,
111
114
  secret: Fr,
112
115
  ): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>>;
113
- utilityStorageRead(
116
+ getFromPublicStorage(
114
117
  anchorBlockHash: BlockHash,
115
118
  contractAddress: AztecAddress,
116
119
  startStorageSlot: Fr,
117
120
  numberOfElements: number,
118
121
  ): Promise<Fr[]>;
119
- utilityFetchTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr): Promise<void>;
120
- utilityValidateAndStoreEnqueuedNotesAndEvents(
122
+ getPendingTaggedLogs(pendingTaggedLogArrayBaseSlot: Fr, scope: AztecAddress): Promise<void>;
123
+ getPendingTaggedLogsV2(scope: AztecAddress): Promise<Fr>;
124
+ validateAndStoreEnqueuedNotesAndEvents(
121
125
  contractAddress: AztecAddress,
122
126
  noteValidationRequestsArrayBaseSlot: Fr,
123
127
  eventValidationRequestsArrayBaseSlot: Fr,
128
+ maxNotePackedLen: number,
129
+ maxEventSerializedLen: number,
130
+ scope: AztecAddress,
124
131
  ): Promise<void>;
125
- utilityBulkRetrieveLogs(
132
+ getLogsByTag(
126
133
  contractAddress: AztecAddress,
127
134
  logRetrievalRequestsArrayBaseSlot: Fr,
128
135
  logRetrievalResponsesArrayBaseSlot: Fr,
136
+ scope: AztecAddress,
129
137
  ): Promise<void>;
130
- utilityStoreCapsule(contractAddress: AztecAddress, key: Fr, capsule: Fr[]): Promise<void>;
131
- utilityLoadCapsule(contractAddress: AztecAddress, key: Fr): Promise<Fr[] | null>;
132
- utilityDeleteCapsule(contractAddress: AztecAddress, key: Fr): Promise<void>;
133
- utilityCopyCapsule(contractAddress: AztecAddress, srcKey: Fr, dstKey: Fr, numEntries: number): Promise<void>;
134
- utilityAes128Decrypt(ciphertext: Buffer, iv: Buffer, symKey: Buffer): Promise<Buffer>;
135
- utilityGetSharedSecret(address: AztecAddress, ephPk: Point): Promise<Point>;
138
+ validateAndStoreEnqueuedNotesAndEventsV2(
139
+ noteValidationRequestsArrayBaseSlot: Fr,
140
+ eventValidationRequestsArrayBaseSlot: Fr,
141
+ maxNotePackedLen: number,
142
+ maxEventSerializedLen: number,
143
+ scope: AztecAddress,
144
+ ): Promise<void>;
145
+ getLogsByTagV2(requestArrayBaseSlot: Fr): Promise<Fr>;
146
+ getMessageContextsByTxHashV2(requestArrayBaseSlot: Fr): Promise<Fr>;
147
+ getMessageContextsByTxHash(
148
+ contractAddress: AztecAddress,
149
+ messageContextRequestsArrayBaseSlot: Fr,
150
+ messageContextResponsesArrayBaseSlot: Fr,
151
+ scope: AztecAddress,
152
+ ): Promise<void>;
153
+ setCapsule(contractAddress: AztecAddress, key: Fr, capsule: Fr[], scope: AztecAddress): void;
154
+ getCapsule(contractAddress: AztecAddress, key: Fr, scope: AztecAddress): Promise<Fr[] | null>;
155
+ deleteCapsule(contractAddress: AztecAddress, key: Fr, scope: AztecAddress): void;
156
+ copyCapsule(
157
+ contractAddress: AztecAddress,
158
+ srcKey: Fr,
159
+ dstKey: Fr,
160
+ numEntries: number,
161
+ scope: AztecAddress,
162
+ ): Promise<void>;
163
+ decryptAes128(ciphertext: Buffer, iv: Buffer, symKey: Buffer): Promise<Buffer>;
164
+ getSharedSecret(address: AztecAddress, ephPk: Point, contractAddress: AztecAddress): Promise<Fr>;
165
+ setContractSyncCacheInvalid(contractAddress: AztecAddress, scopes: AztecAddress[]): void;
166
+ emitOffchainEffect(data: Fr[]): Promise<void>;
167
+
168
+ // Ephemeral array methods
169
+ pushEphemeral(slot: Fr, elements: Fr[]): number;
170
+ popEphemeral(slot: Fr): Fr[];
171
+ getEphemeral(slot: Fr, index: number): Fr[];
172
+ setEphemeral(slot: Fr, index: number, elements: Fr[]): void;
173
+ getEphemeralLen(slot: Fr): number;
174
+ removeEphemeral(slot: Fr, index: number): void;
175
+ clearEphemeral(slot: Fr): void;
136
176
  }
137
177
 
138
178
  /**
@@ -142,9 +182,9 @@ export interface IUtilityExecutionOracle {
142
182
  export interface IPrivateExecutionOracle {
143
183
  isPrivate: true;
144
184
 
145
- privateStoreInExecutionCache(values: Fr[], hash: Fr): void;
146
- privateLoadFromExecutionCache(hash: Fr): Promise<Fr[]>;
147
- privateNotifyCreatedNote(
185
+ setHashPreimage(values: Fr[], hash: Fr): void;
186
+ getHashPreimage(hash: Fr): Promise<Fr[]>;
187
+ notifyCreatedNote(
148
188
  owner: AztecAddress,
149
189
  storageSlot: Fr,
150
190
  randomness: Fr,
@@ -153,33 +193,21 @@ export interface IPrivateExecutionOracle {
153
193
  noteHash: Fr,
154
194
  counter: number,
155
195
  ): void;
156
- privateNotifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
157
- privateNotifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
158
- privateIsNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean>;
159
- privateNotifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
160
- privateCallPrivateFunction(
196
+ notifyNullifiedNote(innerNullifier: Fr, noteHash: Fr, counter: number): Promise<void>;
197
+ notifyCreatedNullifier(innerNullifier: Fr): Promise<void>;
198
+ isNullifierPending(innerNullifier: Fr, contractAddress: AztecAddress): Promise<boolean>;
199
+ notifyCreatedContractClassLog(log: ContractClassLog, counter: number): void;
200
+ callPrivateFunction(
161
201
  targetContractAddress: AztecAddress,
162
202
  functionSelector: FunctionSelector,
163
203
  argsHash: Fr,
164
204
  sideEffectCounter: number,
165
205
  isStaticCall: boolean,
166
206
  ): Promise<{ endSideEffectCounter: Fr; returnsHash: Fr }>;
167
- privateNotifyEnqueuedPublicFunctionCall(
168
- targetContractAddress: AztecAddress,
169
- calldataHash: Fr,
170
- sideEffectCounter: number,
171
- isStaticCall: boolean,
172
- ): Promise<void>;
173
- privateNotifySetPublicTeardownFunctionCall(
174
- targetContractAddress: AztecAddress,
175
- calldataHash: Fr,
176
- sideEffectCounter: number,
177
- isStaticCall: boolean,
178
- ): Promise<void>;
179
- privateNotifySetMinRevertibleSideEffectCounter(minRevertibleSideEffectCounter: number): Promise<void>;
180
- privateIsSideEffectCounterRevertible(sideEffectCounter: number): Promise<boolean>;
181
- privateGetSenderForTags(): Promise<AztecAddress | undefined>;
182
- privateSetSenderForTags(senderForTags: AztecAddress): Promise<void>;
183
- privateGetNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag>;
184
- utilityEmitOffchainEffect(data: Fr[]): Promise<void>;
207
+ assertValidPublicCalldata(calldataHash: Fr): Promise<void>;
208
+ notifyRevertiblePhaseStart(minRevertibleSideEffectCounter: number): Promise<void>;
209
+ isExecutionInRevertiblePhase(sideEffectCounter: number): Promise<boolean>;
210
+ getSenderForTags(): Promise<AztecAddress | undefined>;
211
+ setSenderForTags(senderForTags: AztecAddress): Promise<void>;
212
+ getNextAppTagAsSender(sender: AztecAddress, recipient: AztecAddress): Promise<Tag>;
185
213
  }
@@ -0,0 +1,104 @@
1
+ import { toACVMField } from '@aztec/simulator/client';
2
+ import type { ACIRCallback, ACVMField } from '@aztec/simulator/client';
3
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+
5
+ import type { Oracle } from './oracle.js';
6
+
7
+ /**
8
+ * Builds legacy oracle name callbacks for pinned protocol contracts whose artifacts are committed and cannot be
9
+ * changed.
10
+ * TODO(F-416): Remove these aliases on v5 when protocol contracts are redeployed.
11
+ */
12
+ export function buildLegacyOracleCallbacks(oracle: Oracle): ACIRCallback {
13
+ // If you are about to add a new mapping ensure that the old oracle name is different from the new one - this can
14
+ // commonly occur when only the args are getting modified.
15
+ return {
16
+ // Simple prefix renames (privateXxx/utilityXxx → aztec_prv_/aztec_utl_)
17
+ utilityLog: (
18
+ level: ACVMField[],
19
+ message: ACVMField[],
20
+ _ignoredFieldsSize: ACVMField[],
21
+ fields: ACVMField[],
22
+ ): Promise<ACVMField[]> => oracle.aztec_utl_log(level, message, _ignoredFieldsSize, fields),
23
+ utilityAssertCompatibleOracleVersion: (version: ACVMField[]): Promise<ACVMField[]> =>
24
+ oracle.aztec_utl_assertCompatibleOracleVersionV2(version, [toACVMField(0)]),
25
+ // Old 1-arg oracle before minor/major split. Maps to V2 with minor=0.
26
+ // eslint-disable-next-line camelcase
27
+ aztec_utl_assertCompatibleOracleVersion: (version: ACVMField[]): Promise<ACVMField[]> =>
28
+ oracle.aztec_utl_assertCompatibleOracleVersionV2(version, [toACVMField(0)]),
29
+ utilityLoadCapsule: (
30
+ contractAddress: ACVMField[],
31
+ slot: ACVMField[],
32
+ tSize: ACVMField[],
33
+ ): Promise<(ACVMField | ACVMField[])[]> =>
34
+ oracle.aztec_utl_getCapsule(contractAddress, slot, tSize, [toACVMField(AztecAddress.ZERO)]),
35
+ privateStoreInExecutionCache: (values: ACVMField[], hash: ACVMField[]): Promise<ACVMField[]> =>
36
+ oracle.aztec_prv_setHashPreimage(values, hash),
37
+ privateLoadFromExecutionCache: (returnsHash: ACVMField[]): Promise<ACVMField[][]> =>
38
+ oracle.aztec_prv_getHashPreimage(returnsHash),
39
+ privateCallPrivateFunction: (
40
+ contractAddress: ACVMField[],
41
+ functionSelector: ACVMField[],
42
+ argsHash: ACVMField[],
43
+ sideEffectCounter: ACVMField[],
44
+ isStaticCall: ACVMField[],
45
+ ): Promise<ACVMField[][]> =>
46
+ oracle.aztec_prv_callPrivateFunction(
47
+ contractAddress,
48
+ functionSelector,
49
+ argsHash,
50
+ sideEffectCounter,
51
+ isStaticCall,
52
+ ),
53
+ privateIsNullifierPending: (innerNullifier: ACVMField[], contractAddress: ACVMField[]): Promise<ACVMField[]> =>
54
+ oracle.aztec_prv_isNullifierPending(innerNullifier, contractAddress),
55
+ privateNotifyCreatedNullifier: (innerNullifier: ACVMField[]): Promise<ACVMField[]> =>
56
+ oracle.aztec_prv_notifyCreatedNullifier(innerNullifier),
57
+ privateNotifyCreatedContractClassLog: (
58
+ contractAddress: ACVMField[],
59
+ message: ACVMField[],
60
+ length: ACVMField[],
61
+ counter: ACVMField[],
62
+ ): Promise<ACVMField[]> =>
63
+ oracle.aztec_prv_notifyCreatedContractClassLog(contractAddress, message, length, counter),
64
+ utilityGetUtilityContext: (): Promise<(ACVMField | ACVMField[])[]> => oracle.aztec_utl_getUtilityContext(),
65
+ utilityStorageRead: (
66
+ blockHash: ACVMField[],
67
+ contractAddress: ACVMField[],
68
+ startStorageSlot: ACVMField[],
69
+ numberOfElements: ACVMField[],
70
+ ): Promise<ACVMField[][]> =>
71
+ oracle.aztec_utl_getFromPublicStorage(blockHash, contractAddress, startStorageSlot, numberOfElements),
72
+ utilityStoreCapsule: (
73
+ contractAddress: ACVMField[],
74
+ slot: ACVMField[],
75
+ capsule: ACVMField[],
76
+ ): Promise<ACVMField[]> =>
77
+ oracle.aztec_utl_setCapsule(contractAddress, slot, capsule, [toACVMField(AztecAddress.ZERO)]),
78
+ utilityCopyCapsule: (
79
+ contractAddress: ACVMField[],
80
+ srcSlot: ACVMField[],
81
+ dstSlot: ACVMField[],
82
+ numEntries: ACVMField[],
83
+ ): Promise<ACVMField[]> =>
84
+ oracle.aztec_utl_copyCapsule(contractAddress, srcSlot, dstSlot, numEntries, [toACVMField(AztecAddress.ZERO)]),
85
+ utilityDeleteCapsule: (contractAddress: ACVMField[], slot: ACVMField[]): Promise<ACVMField[]> =>
86
+ oracle.aztec_utl_deleteCapsule(contractAddress, slot, [toACVMField(AztecAddress.ZERO)]),
87
+ utilityGetL1ToL2MembershipWitness: (
88
+ contractAddress: ACVMField[],
89
+ messageHash: ACVMField[],
90
+ secret: ACVMField[],
91
+ ): Promise<(ACVMField | ACVMField[])[]> =>
92
+ oracle.aztec_utl_getL1ToL2MembershipWitness(contractAddress, messageHash, secret),
93
+ // Renames (same signature, different oracle name)
94
+ privateNotifySetMinRevertibleSideEffectCounter: (counter: ACVMField[]): Promise<ACVMField[]> =>
95
+ oracle.aztec_prv_notifyRevertiblePhaseStart(counter),
96
+ // Signature changes: old 4-param oracles → new 1-param validatePublicCalldata
97
+ privateNotifyEnqueuedPublicFunctionCall: (
98
+ _contractAddress: ACVMField[],
99
+ calldataHash: ACVMField[],
100
+ _sideEffectCounter: ACVMField[],
101
+ _isStaticCall: ACVMField[],
102
+ ): Promise<ACVMField[]> => oracle.aztec_prv_assertValidPublicCalldata(calldataHash),
103
+ };
104
+ }