@aztec/pxe 5.0.0-rc.1 → 5.0.0-rc.2

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 (218) hide show
  1. package/dest/block_synchronizer/block_stream_source.d.ts +5 -5
  2. package/dest/block_synchronizer/block_stream_source.d.ts.map +1 -1
  3. package/dest/block_synchronizer/block_stream_source.js +4 -29
  4. package/dest/block_synchronizer/block_synchronizer.d.ts +13 -11
  5. package/dest/block_synchronizer/block_synchronizer.d.ts.map +1 -1
  6. package/dest/block_synchronizer/block_synchronizer.js +43 -15
  7. package/dest/config/index.d.ts +2 -1
  8. package/dest/config/index.d.ts.map +1 -1
  9. package/dest/config/index.js +1 -0
  10. package/dest/contract_function_simulator/contract_function_simulator.d.ts +11 -16
  11. package/dest/contract_function_simulator/contract_function_simulator.d.ts.map +1 -1
  12. package/dest/contract_function_simulator/contract_function_simulator.js +22 -18
  13. package/dest/contract_function_simulator/index.d.ts +15 -9
  14. package/dest/contract_function_simulator/index.d.ts.map +1 -1
  15. package/dest/contract_function_simulator/index.js +3 -7
  16. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts +8 -27
  17. package/dest/contract_function_simulator/noir-structs/bounded_vec.d.ts.map +1 -1
  18. package/dest/contract_function_simulator/noir-structs/bounded_vec.js +8 -23
  19. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts +9 -0
  20. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.d.ts.map +1 -0
  21. package/dest/contract_function_simulator/noir-structs/contract_class_log_data.js +1 -0
  22. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts +7 -0
  23. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.d.ts.map +1 -0
  24. package/dest/contract_function_simulator/noir-structs/embedded_curve_point.js +1 -0
  25. package/dest/contract_function_simulator/noir-structs/event_validation_request.js +1 -1
  26. package/dest/contract_function_simulator/noir-structs/fact.d.ts +16 -0
  27. package/dest/contract_function_simulator/noir-structs/fact.d.ts.map +1 -0
  28. package/dest/contract_function_simulator/noir-structs/fact.js +6 -0
  29. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts +27 -0
  30. package/dest/contract_function_simulator/noir-structs/fact_collection.d.ts.map +1 -0
  31. package/dest/contract_function_simulator/noir-structs/fact_collection.js +29 -0
  32. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts +11 -12
  33. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.d.ts.map +1 -1
  34. package/dest/contract_function_simulator/noir-structs/log_retrieval_request.js +6 -49
  35. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts +4 -8
  36. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.d.ts.map +1 -1
  37. package/dest/contract_function_simulator/noir-structs/log_retrieval_response.js +1 -60
  38. package/dest/contract_function_simulator/noir-structs/note_validation_request.js +2 -2
  39. package/dest/contract_function_simulator/noir-structs/option.d.ts +9 -11
  40. package/dest/contract_function_simulator/noir-structs/option.d.ts.map +1 -1
  41. package/dest/contract_function_simulator/noir-structs/option.js +18 -13
  42. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts +11 -0
  43. package/dest/contract_function_simulator/noir-structs/origin_block.d.ts.map +1 -0
  44. package/dest/contract_function_simulator/noir-structs/origin_block.js +5 -0
  45. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts +5 -8
  46. package/dest/contract_function_simulator/noir-structs/provided_secret.d.ts.map +1 -1
  47. package/dest/contract_function_simulator/noir-structs/provided_secret.js +1 -14
  48. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts +21 -0
  49. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.d.ts.map +1 -0
  50. package/dest/contract_function_simulator/noir-structs/resolved_tagging_strategy.js +33 -0
  51. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts +21 -0
  52. package/dest/contract_function_simulator/noir-structs/resolved_tx.d.ts.map +1 -0
  53. package/dest/contract_function_simulator/noir-structs/resolved_tx.js +50 -0
  54. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts +14 -0
  55. package/dest/contract_function_simulator/noir-structs/tx_effect_data.d.ts.map +1 -0
  56. package/dest/contract_function_simulator/noir-structs/tx_effect_data.js +5 -0
  57. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts +6 -11
  58. package/dest/contract_function_simulator/noir-structs/utility_context.d.ts.map +1 -1
  59. package/dest/contract_function_simulator/noir-structs/utility_context.js +1 -20
  60. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts +3 -14
  61. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.d.ts.map +1 -1
  62. package/dest/contract_function_simulator/oracle/message_load_oracle_inputs.js +1 -24
  63. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts +81 -6
  64. package/dest/contract_function_simulator/oracle/oracle_registry.d.ts.map +1 -1
  65. package/dest/contract_function_simulator/oracle/oracle_registry.js +128 -9
  66. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts +80 -36
  67. package/dest/contract_function_simulator/oracle/oracle_type_mappings.d.ts.map +1 -1
  68. package/dest/contract_function_simulator/oracle/oracle_type_mappings.js +926 -264
  69. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts +13 -8
  70. package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
  71. package/dest/contract_function_simulator/oracle/private_execution_oracle.js +80 -11
  72. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts +46 -20
  73. package/dest/contract_function_simulator/oracle/utility_execution_oracle.d.ts.map +1 -1
  74. package/dest/contract_function_simulator/oracle/utility_execution_oracle.js +119 -55
  75. package/dest/contract_sync/helpers.d.ts +7 -6
  76. package/dest/contract_sync/helpers.d.ts.map +1 -1
  77. package/dest/contract_sync/helpers.js +11 -16
  78. package/dest/entrypoints/client/bundle/utils.d.ts +1 -1
  79. package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
  80. package/dest/entrypoints/client/bundle/utils.js +1 -0
  81. package/dest/entrypoints/client/lazy/utils.d.ts +1 -1
  82. package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
  83. package/dest/entrypoints/client/lazy/utils.js +1 -0
  84. package/dest/entrypoints/pxe_creation_options.d.ts +8 -2
  85. package/dest/entrypoints/pxe_creation_options.d.ts.map +1 -1
  86. package/dest/entrypoints/server/index.d.ts +1 -2
  87. package/dest/entrypoints/server/index.d.ts.map +1 -1
  88. package/dest/entrypoints/server/index.js +0 -1
  89. package/dest/entrypoints/server/utils.d.ts +1 -1
  90. package/dest/entrypoints/server/utils.d.ts.map +1 -1
  91. package/dest/entrypoints/server/utils.js +3 -1
  92. package/dest/error_enriching.js +1 -1
  93. package/dest/hooks/execution_hooks.d.ts +16 -7
  94. package/dest/hooks/execution_hooks.d.ts.map +1 -1
  95. package/dest/hooks/execution_hooks.js +3 -3
  96. package/dest/hooks/index.d.ts +3 -3
  97. package/dest/hooks/index.d.ts.map +1 -1
  98. package/dest/hooks/resolve_tagging_secret_strategy.d.ts +41 -0
  99. package/dest/hooks/resolve_tagging_secret_strategy.d.ts.map +1 -0
  100. package/dest/hooks/resolve_tagging_secret_strategy.js +3 -0
  101. package/dest/logs/log_service.d.ts +6 -6
  102. package/dest/logs/log_service.d.ts.map +1 -1
  103. package/dest/logs/log_service.js +62 -28
  104. package/dest/messages/tx_resolver_service.d.ts +17 -0
  105. package/dest/messages/tx_resolver_service.d.ts.map +1 -0
  106. package/dest/messages/{message_context_service.js → tx_resolver_service.js} +8 -8
  107. package/dest/oracle_version.d.ts +2 -2
  108. package/dest/oracle_version.js +2 -2
  109. package/dest/private_kernel/hints/test_utils.js +1 -1
  110. package/dest/pxe.d.ts +46 -19
  111. package/dest/pxe.d.ts.map +1 -1
  112. package/dest/pxe.js +104 -52
  113. package/dest/storage/allowed_scopes.d.ts +6 -0
  114. package/dest/storage/allowed_scopes.d.ts.map +1 -0
  115. package/dest/storage/allowed_scopes.js +7 -0
  116. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts +1 -1
  117. package/dest/storage/backwards_compatibility_tests/schema_tests.d.ts.map +1 -1
  118. package/dest/storage/backwards_compatibility_tests/schema_tests.js +86 -33
  119. package/dest/storage/capsule_store/capsule_service.d.ts +1 -1
  120. package/dest/storage/capsule_store/capsule_service.d.ts.map +1 -1
  121. package/dest/storage/capsule_store/capsule_service.js +6 -9
  122. package/dest/storage/contract_store/contract_store.js +2 -2
  123. package/dest/storage/fact_store/fact_service.d.ts +20 -0
  124. package/dest/storage/fact_store/fact_service.d.ts.map +1 -0
  125. package/dest/storage/fact_store/fact_service.js +30 -0
  126. package/dest/storage/fact_store/fact_store.d.ts +95 -0
  127. package/dest/storage/fact_store/fact_store.d.ts.map +1 -0
  128. package/dest/storage/fact_store/fact_store.js +408 -0
  129. package/dest/storage/fact_store/fact_store_keys.d.ts +34 -0
  130. package/dest/storage/fact_store/fact_store_keys.d.ts.map +1 -0
  131. package/dest/storage/fact_store/fact_store_keys.js +50 -0
  132. package/dest/storage/fact_store/index.d.ts +5 -0
  133. package/dest/storage/fact_store/index.d.ts.map +1 -0
  134. package/dest/storage/fact_store/index.js +3 -0
  135. package/dest/storage/fact_store/stored_fact.d.ts +32 -0
  136. package/dest/storage/fact_store/stored_fact.d.ts.map +1 -0
  137. package/dest/storage/fact_store/stored_fact.js +64 -0
  138. package/dest/storage/index.d.ts +2 -1
  139. package/dest/storage/index.d.ts.map +1 -1
  140. package/dest/storage/index.js +1 -0
  141. package/dest/storage/metadata.d.ts +1 -1
  142. package/dest/storage/metadata.js +1 -1
  143. package/dest/storage/open_pxe_stores.d.ts +5 -3
  144. package/dest/storage/open_pxe_stores.d.ts.map +1 -1
  145. package/dest/storage/open_pxe_stores.js +5 -3
  146. package/dest/storage/tagging_store/index.d.ts +2 -2
  147. package/dest/storage/tagging_store/index.d.ts.map +1 -1
  148. package/dest/storage/tagging_store/index.js +1 -1
  149. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts +40 -0
  150. package/dest/storage/tagging_store/tagging_secret_sources_store.d.ts.map +1 -0
  151. package/dest/storage/tagging_store/tagging_secret_sources_store.js +92 -0
  152. package/package.json +17 -17
  153. package/src/block_synchronizer/block_stream_source.ts +6 -45
  154. package/src/block_synchronizer/block_synchronizer.ts +56 -23
  155. package/src/config/index.ts +1 -0
  156. package/src/contract_function_simulator/contract_function_simulator.ts +32 -31
  157. package/src/contract_function_simulator/index.ts +17 -8
  158. package/src/contract_function_simulator/noir-structs/bounded_vec.ts +12 -24
  159. package/src/contract_function_simulator/noir-structs/contract_class_log_data.ts +9 -0
  160. package/src/contract_function_simulator/noir-structs/embedded_curve_point.ts +4 -0
  161. package/src/contract_function_simulator/noir-structs/event_validation_request.ts +1 -1
  162. package/src/contract_function_simulator/noir-structs/fact.ts +13 -0
  163. package/src/contract_function_simulator/noir-structs/fact_collection.ts +59 -0
  164. package/src/contract_function_simulator/noir-structs/log_retrieval_request.ts +20 -46
  165. package/src/contract_function_simulator/noir-structs/log_retrieval_response.ts +7 -60
  166. package/src/contract_function_simulator/noir-structs/note_validation_request.ts +2 -2
  167. package/src/contract_function_simulator/noir-structs/option.ts +17 -11
  168. package/src/contract_function_simulator/noir-structs/origin_block.ts +8 -0
  169. package/src/contract_function_simulator/noir-structs/provided_secret.ts +3 -14
  170. package/src/contract_function_simulator/noir-structs/resolved_tagging_strategy.ts +45 -0
  171. package/src/contract_function_simulator/noir-structs/resolved_tx.ts +53 -0
  172. package/src/contract_function_simulator/noir-structs/tx_effect_data.ts +15 -0
  173. package/src/contract_function_simulator/noir-structs/utility_context.ts +5 -17
  174. package/src/contract_function_simulator/oracle/message_load_oracle_inputs.ts +6 -21
  175. package/src/contract_function_simulator/oracle/oracle_registry.ts +87 -79
  176. package/src/contract_function_simulator/oracle/oracle_type_mappings.ts +641 -247
  177. package/src/contract_function_simulator/oracle/private_execution_oracle.ts +94 -14
  178. package/src/contract_function_simulator/oracle/utility_execution_oracle.ts +206 -66
  179. package/src/contract_sync/helpers.ts +11 -18
  180. package/src/entrypoints/client/bundle/utils.ts +1 -0
  181. package/src/entrypoints/client/lazy/utils.ts +1 -0
  182. package/src/entrypoints/pxe_creation_options.ts +7 -1
  183. package/src/entrypoints/server/index.ts +0 -1
  184. package/src/entrypoints/server/utils.ts +3 -1
  185. package/src/error_enriching.ts +1 -1
  186. package/src/hooks/execution_hooks.ts +17 -8
  187. package/src/hooks/index.ts +6 -2
  188. package/src/hooks/resolve_tagging_secret_strategy.ts +46 -0
  189. package/src/logs/log_service.ts +71 -37
  190. package/src/messages/{message_context_service.ts → tx_resolver_service.ts} +16 -9
  191. package/src/oracle_version.ts +2 -2
  192. package/src/private_kernel/hints/test_utils.ts +1 -1
  193. package/src/pxe.ts +150 -54
  194. package/src/storage/allowed_scopes.ts +14 -0
  195. package/src/storage/backwards_compatibility_tests/__snapshots__/FactStore.json +40 -0
  196. package/src/storage/backwards_compatibility_tests/__snapshots__/L2TipsKVStore.json +1 -1
  197. package/src/storage/backwards_compatibility_tests/__snapshots__/TaggingSecretSourcesStore.json +30 -0
  198. package/src/storage/backwards_compatibility_tests/__snapshots__/opened_stores.json +21 -5
  199. package/src/storage/backwards_compatibility_tests/schema_tests.ts +88 -33
  200. package/src/storage/capsule_store/capsule_service.ts +8 -13
  201. package/src/storage/contract_store/contract_store.ts +2 -2
  202. package/src/storage/fact_store/fact_service.ts +45 -0
  203. package/src/storage/fact_store/fact_store.ts +487 -0
  204. package/src/storage/fact_store/fact_store_keys.ts +75 -0
  205. package/src/storage/fact_store/index.ts +4 -0
  206. package/src/storage/fact_store/stored_fact.ts +80 -0
  207. package/src/storage/index.ts +1 -0
  208. package/src/storage/metadata.ts +1 -1
  209. package/src/storage/open_pxe_stores.ts +6 -3
  210. package/src/storage/tagging_store/index.ts +1 -1
  211. package/src/storage/tagging_store/tagging_secret_sources_store.ts +117 -0
  212. package/dest/messages/message_context_service.d.ts +0 -17
  213. package/dest/messages/message_context_service.d.ts.map +0 -1
  214. package/dest/storage/tagging_store/sender_address_book_store.d.ts +0 -14
  215. package/dest/storage/tagging_store/sender_address_book_store.d.ts.map +0 -1
  216. package/dest/storage/tagging_store/sender_address_book_store.js +0 -36
  217. package/src/storage/backwards_compatibility_tests/__snapshots__/SenderAddressBookStore.json +0 -16
  218. package/src/storage/tagging_store/sender_address_book_store.ts +0 -48
@@ -1,11 +1,10 @@
1
1
  export { ORACLE_REGISTRY, makeEntry } from './oracle/oracle_registry.js';
2
- export { ARRAY, AZTEC_ADDRESS, BIGINT, BLOCK_NUMBER, BOOL, BOUNDED_VEC, BUFFER, BYTE, DELIVERY_MODE, EPHEMERAL_ARRAY, EVENT_VALIDATION_REQUEST, FIELD, FUNCTION_SELECTOR, LOG_RETRIEVAL_REQUEST, LOG_RETRIEVAL_RESPONSE, MEMBERSHIP_WITNESS, MESSAGE_CONTEXT, NOTE_VALIDATION_REQUEST, OPTION, PENDING_TAGGED_LOG, POINT, PROVIDED_SECRET, STR, U32 } from './oracle/oracle_type_mappings.js';
2
+ export { ARRAY, AZTEC_ADDRESS, BIGINT, BLOCK_HASH, BLOCK_NUMBER, BOOL, BOUNDED_VEC, BUFFER, BYTE, CONTRACT_INSTANCE, DELIVERY_MODE, EPHEMERAL_ARRAY, ETH_ADDRESS, EVENT_VALIDATION_REQUEST, FIELD, FUNCTION_SELECTOR, LOG_RETRIEVAL_REQUEST, LOG_RETRIEVAL_RESPONSE, MEMBERSHIP_WITNESS, MESSAGE_CONTEXT, NOTE_SELECTOR, NOTE_VALIDATION_REQUEST, OPTION, PENDING_TAGGED_LOG, POINT, PROVIDED_SECRET, STR, U32 } from './oracle/oracle_type_mappings.js';
3
3
  export { ExecutionNoteCache } from './execution_note_cache.js';
4
4
  export { ExecutionTaggingIndexCache } from './execution_tagging_index_cache.js';
5
5
  export { HashedValuesCache } from './hashed_values_cache.js';
6
6
  export { pickNotes } from './pick_notes.js';
7
- export { MessageLoadOracleInputs } from './oracle/message_load_oracle_inputs.js';
8
- export { MessageContextService } from '../messages/message_context_service.js';
7
+ export { TxResolverService } from '../messages/tx_resolver_service.js';
9
8
  export { UtilityExecutionOracle } from './oracle/utility_execution_oracle.js';
10
9
  export { PrivateExecutionOracle } from './oracle/private_execution_oracle.js';
11
10
  export { buildACIRCallback, UnavailableOracleError } from './oracle/acir_callback.js';
@@ -15,10 +14,7 @@ export { packAsHintedNote } from './oracle/note_packing_utils.js';
15
14
  export { BoundedVec } from './noir-structs/bounded_vec.js';
16
15
  export { EphemeralArray } from './noir-structs/ephemeral_array.js';
17
16
  export { Option } from './noir-structs/option.js';
18
- export { UtilityContext } from './noir-structs/utility_context.js';
19
17
  export { EventValidationRequest } from './noir-structs/event_validation_request.js';
20
- export { LogRetrievalRequest } from './noir-structs/log_retrieval_request.js';
21
- export { LogRetrievalResponse } from './noir-structs/log_retrieval_response.js';
22
18
  export { NoteValidationRequest } from './noir-structs/note_validation_request.js';
23
- export { ProvidedSecret } from './noir-structs/provided_secret.js';
19
+ export { ResolvedTx } from './noir-structs/resolved_tx.js';
24
20
  export { TransientArrayService } from './transient_array_service.js';
@@ -1,9 +1,4 @@
1
- /**
2
- * TypeScript counterpart of Noir's `BoundedVec<T, MaxLen>`.
3
- *
4
- * Carries the actual `data` plus wire-format metadata (`maxLength`, `elementSize`) so the ACVM
5
- * serializer can pad the storage slot to exactly `maxLength * elementSize` fields.
6
- */
1
+ /** TypeScript counterpart of Noir's `BoundedVec<T, MaxLen>`. */
7
2
  export declare class BoundedVec<T> {
8
3
  readonly data: T[];
9
4
  readonly maxLength: number;
@@ -13,16 +8,11 @@ export declare class BoundedVec<T> {
13
8
  * Construct a BoundedVec with data.
14
9
  *
15
10
  * @param data - Actual elements. Length must be `<= maxLength`.
16
- * @param maxLength - Maximum capacity declared at the Noir call site.
17
- * The storage slot is padded to this many elements.
18
- * @param elementSize - Number of Fr fields each element contributes when serialized.
19
- * `1` for scalar elements (u8, Field) this is the default.
20
- * `> 1` for compound elements (e.g. a packed note that spans multiple fields).
21
- *
22
- * @example A bounded vec of bytes (elementSize defaults to 1):
23
- * ```ts
24
- * BoundedVec.from({ data: plaintext, maxLength: ciphertext.maxLength })
25
- * ```
11
+ * @param maxLength - Maximum capacity declared at the Noir call site. The storage slot is padded to this many
12
+ * elements.
13
+ * @param elementSize - Number of Fr fields each element contributes when serialized. Only consulted for
14
+ * variable-width elements whose width isn't statically known from their shape (e.g. a packed note spanning
15
+ * `packedHintedNoteLength` fields); fixed-width elements derive it from the shape, so it can be omitted.
26
16
  *
27
17
  * @example A bounded vec of packed notes, each spanning `packedHintedNoteLength` fields:
28
18
  * ```ts
@@ -34,15 +24,6 @@ export declare class BoundedVec<T> {
34
24
  maxLength: number;
35
25
  elementSize?: number;
36
26
  }): BoundedVec<T>;
37
- /**
38
- * Construct an empty BoundedVec, typically used as a shape template for `Option.empty(...)`.
39
- *
40
- * @param maxLength - Maximum capacity declared at the Noir call site.
41
- * @param elementSize - Number of Fr fields each element contributes when serialized (default 1).
42
- */
43
- static empty<T>({ maxLength, elementSize }: {
44
- maxLength: number;
45
- elementSize?: number;
46
- }): BoundedVec<T>;
27
+ equals(other: BoundedVec<T>, innerEquals: (a: T, b: T) => boolean): boolean;
47
28
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRlZF92ZWMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivbm9pci1zdHJ1Y3RzL2JvdW5kZWRfdmVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBQ0gscUJBQWEsVUFBVSxDQUFDLENBQUM7YUFFTCxJQUFJLEVBQUUsQ0FBQyxFQUFFO2FBQ1QsU0FBUyxFQUFFLE1BQU07YUFDakIsV0FBVyxFQUFFLE1BQU07SUFIckMsT0FBTyxlQUlIO0lBRUo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FtQkc7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUNiLElBQUksRUFDSixTQUFTLEVBQ1QsV0FBZSxFQUNoQixFQUFFO1FBQ0QsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ1YsU0FBUyxFQUFFLE1BQU0sQ0FBQztRQUNsQixXQUFXLENBQUMsRUFBRSxNQUFNLENBQUM7S0FDdEIsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBRWhCO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFlLEVBQUUsRUFBRTtRQUFFLFNBQVMsRUFBRSxNQUFNLENBQUM7UUFBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FFMUc7Q0FDRiJ9
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmRlZF92ZWMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivbm9pci1zdHJ1Y3RzL2JvdW5kZWRfdmVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRTtBQUNoRSxxQkFBYSxVQUFVLENBQUMsQ0FBQzthQUVMLElBQUksRUFBRSxDQUFDLEVBQUU7YUFDVCxTQUFTLEVBQUUsTUFBTTthQUNqQixXQUFXLEVBQUUsTUFBTTtJQUhyQyxPQUFPLGVBSUg7SUFFSjs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQ2IsSUFBSSxFQUNKLFNBQVMsRUFDVCxXQUFlLEVBQ2hCLEVBQUU7UUFDRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDVixTQUFTLEVBQUUsTUFBTSxDQUFDO1FBQ2xCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztLQUN0QixHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FFaEI7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxHQUFHLE9BQU8sQ0FNMUU7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"bounded_vec.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/bounded_vec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,UAAU,CAAC,CAAC;aAEL,IAAI,EAAE,CAAC,EAAE;aACT,SAAS,EAAE,MAAM;aACjB,WAAW,EAAE,MAAM;IAHrC,OAAO,eAIH;IAEJ;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EACb,IAAI,EACJ,SAAS,EACT,WAAe,EAChB,EAAE;QACD,IAAI,EAAE,CAAC,EAAE,CAAC;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,UAAU,CAAC,CAAC,CAAC,CAEhB;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,WAAe,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAE1G;CACF"}
1
+ {"version":3,"file":"bounded_vec.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/bounded_vec.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qBAAa,UAAU,CAAC,CAAC;aAEL,IAAI,EAAE,CAAC,EAAE;aACT,SAAS,EAAE,MAAM;aACjB,WAAW,EAAE,MAAM;IAHrC,OAAO,eAIH;IAEJ;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EACb,IAAI,EACJ,SAAS,EACT,WAAe,EAChB,EAAE;QACD,IAAI,EAAE,CAAC,EAAE,CAAC;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,UAAU,CAAC,CAAC,CAAC,CAEhB;IAED,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAM1E;CACF"}
@@ -1,9 +1,4 @@
1
- /**
2
- * TypeScript counterpart of Noir's `BoundedVec<T, MaxLen>`.
3
- *
4
- * Carries the actual `data` plus wire-format metadata (`maxLength`, `elementSize`) so the ACVM
5
- * serializer can pad the storage slot to exactly `maxLength * elementSize` fields.
6
- */ export class BoundedVec {
1
+ /** TypeScript counterpart of Noir's `BoundedVec<T, MaxLen>`. */ export class BoundedVec {
7
2
  data;
8
3
  maxLength;
9
4
  elementSize;
@@ -16,16 +11,11 @@
16
11
  * Construct a BoundedVec with data.
17
12
  *
18
13
  * @param data - Actual elements. Length must be `<= maxLength`.
19
- * @param maxLength - Maximum capacity declared at the Noir call site.
20
- * The storage slot is padded to this many elements.
21
- * @param elementSize - Number of Fr fields each element contributes when serialized.
22
- * `1` for scalar elements (u8, Field) this is the default.
23
- * `> 1` for compound elements (e.g. a packed note that spans multiple fields).
24
- *
25
- * @example A bounded vec of bytes (elementSize defaults to 1):
26
- * ```ts
27
- * BoundedVec.from({ data: plaintext, maxLength: ciphertext.maxLength })
28
- * ```
14
+ * @param maxLength - Maximum capacity declared at the Noir call site. The storage slot is padded to this many
15
+ * elements.
16
+ * @param elementSize - Number of Fr fields each element contributes when serialized. Only consulted for
17
+ * variable-width elements whose width isn't statically known from their shape (e.g. a packed note spanning
18
+ * `packedHintedNoteLength` fields); fixed-width elements derive it from the shape, so it can be omitted.
29
19
  *
30
20
  * @example A bounded vec of packed notes, each spanning `packedHintedNoteLength` fields:
31
21
  * ```ts
@@ -34,12 +24,7 @@
34
24
  */ static from({ data, maxLength, elementSize = 1 }) {
35
25
  return new BoundedVec(data, maxLength, elementSize);
36
26
  }
37
- /**
38
- * Construct an empty BoundedVec, typically used as a shape template for `Option.empty(...)`.
39
- *
40
- * @param maxLength - Maximum capacity declared at the Noir call site.
41
- * @param elementSize - Number of Fr fields each element contributes when serialized (default 1).
42
- */ static empty({ maxLength, elementSize = 1 }) {
43
- return new BoundedVec([], maxLength, elementSize);
27
+ equals(other, innerEquals) {
28
+ return this.maxLength === other.maxLength && this.data.length === other.data.length && this.data.every((value, i)=>innerEquals(value, other.data[i]));
44
29
  }
45
30
  }
@@ -0,0 +1,9 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ /** Wire form of a contract class log. */
4
+ export type ContractClassLogData = {
5
+ contractAddress: AztecAddress;
6
+ fields: Fr[];
7
+ emittedLength: number;
8
+ };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfY2xhc3NfbG9nX2RhdGEuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivbm9pci1zdHJ1Y3RzL2NvbnRyYWN0X2NsYXNzX2xvZ19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLHlDQUF5QztBQUN6QyxNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakMsZUFBZSxFQUFFLFlBQVksQ0FBQztJQUM5QixNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDYixhQUFhLEVBQUUsTUFBTSxDQUFDO0NBQ3ZCLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract_class_log_data.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/contract_class_log_data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,yCAAyC;AACzC,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,EAAE,YAAY,CAAC;IAC9B,MAAM,EAAE,EAAE,EAAE,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC"}
@@ -0,0 +1 @@
1
+ /** Wire form of a contract class log. */ export { };
@@ -0,0 +1,7 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ /** Wire form of a Grumpkin point crossing the oracle boundary: Noir's `EmbeddedCurvePoint` serializes to `[x, y]`. */
3
+ export type EmbeddedCurvePoint = {
4
+ x: Fr;
5
+ y: Fr;
6
+ };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWRfY3VydmVfcG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdF9mdW5jdGlvbl9zaW11bGF0b3Ivbm9pci1zdHJ1Y3RzL2VtYmVkZGVkX2N1cnZlX3BvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpELHNIQUFzSDtBQUN0SCxNQUFNLE1BQU0sa0JBQWtCLEdBQUc7SUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQTtDQUFFLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embedded_curve_point.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/embedded_curve_point.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,sHAAsH;AACtH,MAAM,MAAM,kBAAkB,GAAG;IAAE,CAAC,EAAE,EAAE,CAAC;IAAC,CAAC,EAAE,EAAE,CAAA;CAAE,CAAC"}
@@ -0,0 +1 @@
1
+ /** Wire form of a Grumpkin point crossing the oracle boundary: Noir's `EmbeddedCurvePoint` serializes to `[x, y]`. */ export { };
@@ -22,7 +22,7 @@ import { TxHash } from '@aztec/stdlib/tx';
22
22
  }
23
23
  static fromFields(fields) {
24
24
  const reader = FieldReader.asReader(fields);
25
- const contractAddress = AztecAddress.fromField(reader.readField());
25
+ const contractAddress = AztecAddress.fromFieldUnsafe(reader.readField());
26
26
  const eventTypeId = EventSelector.fromField(reader.readField());
27
27
  const randomness = reader.readField();
28
28
  const maxEventSerializedLen = reader.readField().toNumber();
@@ -0,0 +1,16 @@
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
+ import type { EphemeralArray } from './ephemeral_array.js';
3
+ import type { Option } from './option.js';
4
+ import type { OriginBlock } from './origin_block.js';
5
+ /**
6
+ * A single fact returned within a fact collection by the fact store oracles.
7
+ *
8
+ * A TS version of the `Fact` struct in `facts/mod.nr`. `originBlock` is `Some` for a retractable fact (pruned on
9
+ * reorg of that block) and `None` for a non-retractable one.
10
+ */
11
+ export type Fact = {
12
+ factTypeId: Fr;
13
+ payload: EphemeralArray<Fr>;
14
+ originBlock: Option<OriginBlock>;
15
+ };
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRyYWN0X2Z1bmN0aW9uX3NpbXVsYXRvci9ub2lyLXN0cnVjdHMvZmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFckQ7Ozs7O0dBS0c7QUFDSCxNQUFNLE1BQU0sSUFBSSxHQUFHO0lBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQztJQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7SUFBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0NBQUUsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/fact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;GAKG;AACH,MAAM,MAAM,IAAI,GAAG;IAAE,UAAU,EAAE,EAAE,CAAC;IAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;CAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * A single fact returned within a fact collection by the fact store oracles.
3
+ *
4
+ * A TS version of the `Fact` struct in `facts/mod.nr`. `originBlock` is `Some` for a retractable fact (pruned on
5
+ * reorg of that block) and `None` for a non-retractable one.
6
+ */ export { };
@@ -0,0 +1,27 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import type { Fact as FactFromStore } from '../../storage/fact_store/index.js';
4
+ import type { EphemeralArrayService } from '../ephemeral_array_service.js';
5
+ import { EphemeralArray } from './ephemeral_array.js';
6
+ import type { Fact } from './fact.js';
7
+ /**
8
+ * A fact collection.
9
+ */
10
+ export type FactCollection = {
11
+ contractAddress: AztecAddress;
12
+ scope: AztecAddress;
13
+ factCollectionTypeId: Fr;
14
+ factCollectionId: Fr;
15
+ facts: EphemeralArray<Fact>;
16
+ };
17
+ /**
18
+ * Builds the Noir-facing `FactCollection` from stored facts.
19
+ */
20
+ export declare function toNoirFactCollection(service: EphemeralArrayService, contractAddress: AztecAddress, scope: AztecAddress, factCollectionTypeId: Fr, factCollectionId: Fr, facts: FactFromStore[]): FactCollection;
21
+ /**
22
+ * A zeroed `FactCollection` used only as a serialization shape template for the `None` case of
23
+ * `Option<FactCollection>`. Noir's `Option<T>` is fixed-width on the wire, so `None` must emit the same number of
24
+ * (zeroed) field slots as `Some`.
25
+ **/
26
+ export declare function emptyFactCollection(service: EphemeralArrayService): FactCollection;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdF9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL25vaXItc3RydWN0cy9mYWN0X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxJQUFJLElBQUksYUFBYSxFQUFlLE1BQU0sbUNBQW1DLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3RDOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGNBQWMsR0FBRztJQUMzQixlQUFlLEVBQUUsWUFBWSxDQUFDO0lBQzlCLEtBQUssRUFBRSxZQUFZLENBQUM7SUFDcEIsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO0lBQ3pCLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztJQUNyQixLQUFLLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQzdCLENBQUM7QUFFRjs7R0FFRztBQUNILHdCQUFnQixvQkFBb0IsQ0FDbEMsT0FBTyxFQUFFLHFCQUFxQixFQUM5QixlQUFlLEVBQUUsWUFBWSxFQUM3QixLQUFLLEVBQUUsWUFBWSxFQUNuQixvQkFBb0IsRUFBRSxFQUFFLEVBQ3hCLGdCQUFnQixFQUFFLEVBQUUsRUFDcEIsS0FBSyxFQUFFLGFBQWEsRUFBRSxHQUNyQixjQUFjLENBbUJoQjtBQUVEOzs7O0lBSUk7QUFDSix3QkFBZ0IsbUJBQW1CLENBQUMsT0FBTyxFQUFFLHFCQUFxQixHQUFHLGNBQWMsQ0FFbEYifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact_collection.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/fact_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,IAAI,IAAI,aAAa,EAAe,MAAM,mCAAmC,CAAC;AAC5F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGtC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,YAAY,CAAC;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,oBAAoB,EAAE,EAAE,CAAC;IACzB,gBAAgB,EAAE,EAAE,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,qBAAqB,EAC9B,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,YAAY,EACnB,oBAAoB,EAAE,EAAE,EACxB,gBAAgB,EAAE,EAAE,EACpB,KAAK,EAAE,aAAa,EAAE,GACrB,cAAc,CAmBhB;AAED;;;;IAII;AACJ,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CAElF"}
@@ -0,0 +1,29 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ import { EphemeralArray } from './ephemeral_array.js';
4
+ import { Option } from './option.js';
5
+ /**
6
+ * Builds the Noir-facing `FactCollection` from stored facts.
7
+ */ export function toNoirFactCollection(service, contractAddress, scope, factCollectionTypeId, factCollectionId, facts) {
8
+ return {
9
+ contractAddress,
10
+ scope,
11
+ factCollectionTypeId,
12
+ factCollectionId,
13
+ facts: EphemeralArray.fromValues(service, facts.map((fact)=>({
14
+ factTypeId: fact.factTypeId,
15
+ payload: EphemeralArray.fromValues(service, fact.payload),
16
+ originBlock: fact.originBlock ? Option.some(fact.originBlock) : Option.none({
17
+ blockNumber: 0,
18
+ blockHash: Fr.ZERO
19
+ })
20
+ })))
21
+ };
22
+ }
23
+ /**
24
+ * A zeroed `FactCollection` used only as a serialization shape template for the `None` case of
25
+ * `Option<FactCollection>`. Noir's `Option<T>` is fixed-width on the wire, so `None` must emit the same number of
26
+ * (zeroed) field slots as `Some`.
27
+ **/ export function emptyFactCollection(service) {
28
+ return toNoirFactCollection(service, AztecAddress.ZERO, AztecAddress.ZERO, Fr.ZERO, Fr.ZERO, []);
29
+ }
@@ -1,8 +1,8 @@
1
- import { BlockNumber } from '@aztec/foundation/branded-types';
1
+ import type { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { FieldReader } from '@aztec/foundation/serialize';
4
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
- import { Tag } from '@aztec/stdlib/logs';
3
+ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
+ import type { Tag } from '@aztec/stdlib/logs';
5
+ import type { Option } from './option.js';
6
6
  /** Discriminant for which log source to query. */
7
7
  export declare enum LogSource {
8
8
  PRIVATE = 0,
@@ -13,14 +13,13 @@ export declare enum LogSource {
13
13
  * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle expects values of this
14
14
  * type to be stored in a `EphemeralArray`.
15
15
  */
16
- export declare class LogRetrievalRequest {
16
+ export type LogRetrievalRequest = {
17
17
  contractAddress: AztecAddress;
18
18
  tag: Tag;
19
19
  source: LogSource;
20
- fromBlock?: BlockNumber | undefined;
21
- toBlock?: BlockNumber | undefined;
22
- constructor(contractAddress: AztecAddress, tag: Tag, source?: LogSource, fromBlock?: BlockNumber | undefined, toBlock?: BlockNumber | undefined);
23
- toFields(): Fr[];
24
- static fromFields(fields: Fr[] | FieldReader): LogRetrievalRequest;
25
- }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3JldHJpZXZhbF9yZXF1ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL25vaXItc3RydWN0cy9sb2dfcmV0cmlldmFsX3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV6QyxrREFBa0Q7QUFDbEQsb0JBQVksU0FBUztJQUNuQixPQUFPLElBQUk7SUFDWCxNQUFNLElBQUk7SUFDVixrQkFBa0IsSUFBSTtDQUN2QjtBQUVEOzs7R0FHRztBQUNILHFCQUFhLG1CQUFtQjtJQUVyQixlQUFlLEVBQUUsWUFBWTtJQUM3QixHQUFHLEVBQUUsR0FBRztJQUNSLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFNBQVMsQ0FBQztJQUNWLE9BQU8sQ0FBQztJQUxqQixZQUNTLGVBQWUsRUFBRSxZQUFZLEVBQzdCLEdBQUcsRUFBRSxHQUFHLEVBQ1IsTUFBTSxHQUFFLFNBQXdDLEVBQ2hELFNBQVMsQ0FBQyx5QkFBYSxFQUN2QixPQUFPLENBQUMseUJBQWEsRUFDMUI7SUFFSixRQUFRLElBQUksRUFBRSxFQUFFLENBVWY7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUcsbUJBQW1CLENBcUJqRTtDQUNGIn0=
20
+ fromBlock: Option<BlockNumber>;
21
+ toBlock: Option<BlockNumber>;
22
+ };
23
+ /** Parses a `LogSource` from its wire field, throwing on an out-of-range value. */
24
+ export declare function logSourceFromField(field: Fr): LogSource;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3JldHJpZXZhbF9yZXF1ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL25vaXItc3RydWN0cy9sb2dfcmV0cmlldmFsX3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxrREFBa0Q7QUFDbEQsb0JBQVksU0FBUztJQUNuQixPQUFPLElBQUk7SUFDWCxNQUFNLElBQUk7SUFDVixrQkFBa0IsSUFBSTtDQUN2QjtBQUVEOzs7R0FHRztBQUNILE1BQU0sTUFBTSxtQkFBbUIsR0FBRztJQUNoQyxlQUFlLEVBQUUsWUFBWSxDQUFDO0lBQzlCLEdBQUcsRUFBRSxHQUFHLENBQUM7SUFDVCxNQUFNLEVBQUUsU0FBUyxDQUFDO0lBQ2xCLFNBQVMsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztDQUM5QixDQUFDO0FBRUYsbUZBQW1GO0FBQ25GLHdCQUFnQixrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLFNBQVMsQ0FPdkQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"log_retrieval_request.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/log_retrieval_request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAEzC,kDAAkD;AAClD,oBAAY,SAAS;IACnB,OAAO,IAAI;IACX,MAAM,IAAI;IACV,kBAAkB,IAAI;CACvB;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAErB,eAAe,EAAE,YAAY;IAC7B,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,SAAS;IACjB,SAAS,CAAC;IACV,OAAO,CAAC;IALjB,YACS,eAAe,EAAE,YAAY,EAC7B,GAAG,EAAE,GAAG,EACR,MAAM,GAAE,SAAwC,EAChD,SAAS,CAAC,yBAAa,EACvB,OAAO,CAAC,yBAAa,EAC1B;IAEJ,QAAQ,IAAI,EAAE,EAAE,CAUf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,mBAAmB,CAqBjE;CACF"}
1
+ {"version":3,"file":"log_retrieval_request.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/log_retrieval_request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,kDAAkD;AAClD,oBAAY,SAAS;IACnB,OAAO,IAAI;IACX,MAAM,IAAI;IACV,kBAAkB,IAAI;CACvB;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,EAAE,YAAY,CAAC;IAC9B,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;CAC9B,CAAC;AAEF,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,EAAE,GAAG,SAAS,CAOvD"}
@@ -1,57 +1,14 @@
1
- import { BlockNumber } from '@aztec/foundation/branded-types';
2
- import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { FieldReader } from '@aztec/foundation/serialize';
4
- import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
- import { Tag } from '@aztec/stdlib/logs';
6
1
  /** Discriminant for which log source to query. */ export var LogSource = /*#__PURE__*/ function(LogSource) {
7
2
  LogSource[LogSource["PRIVATE"] = 0] = "PRIVATE";
8
3
  LogSource[LogSource["PUBLIC"] = 1] = "PUBLIC";
9
4
  LogSource[LogSource["PUBLIC_AND_PRIVATE"] = 2] = "PUBLIC_AND_PRIVATE";
10
5
  return LogSource;
11
6
  }({});
12
- /**
13
- * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle expects values of this
14
- * type to be stored in a `EphemeralArray`.
15
- */ export class LogRetrievalRequest {
16
- contractAddress;
17
- tag;
18
- source;
19
- fromBlock;
20
- toBlock;
21
- constructor(contractAddress, tag, source = 2, fromBlock, toBlock){
22
- this.contractAddress = contractAddress;
23
- this.tag = tag;
24
- this.source = source;
25
- this.fromBlock = fromBlock;
26
- this.toBlock = toBlock;
27
- }
28
- toFields() {
29
- return [
30
- this.contractAddress.toField(),
31
- this.tag.value,
32
- new Fr(this.source),
33
- new Fr(this.fromBlock !== undefined ? 1 : 0),
34
- new Fr(this.fromBlock ?? 0),
35
- new Fr(this.toBlock !== undefined ? 1 : 0),
36
- new Fr(this.toBlock ?? 0)
37
- ];
38
- }
39
- static fromFields(fields) {
40
- const reader = FieldReader.asReader(fields);
41
- const contractAddress = AztecAddress.fromField(reader.readField());
42
- const tag = new Tag(reader.readField());
43
- const sourceNum = reader.readField().toNumber();
44
- if (!(sourceNum in LogSource)) {
45
- const validNames = Object.keys(LogSource).filter((k)=>isNaN(Number(k)));
46
- throw new Error(`Invalid LogSource value ${sourceNum}, expected one of ${validNames.join(', ')}`);
47
- }
48
- const source = sourceNum;
49
- const fromBlockIsSome = reader.readBoolean();
50
- const fromBlockValue = reader.readField();
51
- const fromBlock = fromBlockIsSome ? BlockNumber(fromBlockValue.toNumber()) : undefined;
52
- const toBlockIsSome = reader.readBoolean();
53
- const toBlockValue = reader.readField();
54
- const toBlock = toBlockIsSome ? BlockNumber(toBlockValue.toNumber()) : undefined;
55
- return new LogRetrievalRequest(contractAddress, tag, source, fromBlock, toBlock);
7
+ /** Parses a `LogSource` from its wire field, throwing on an out-of-range value. */ export function logSourceFromField(field) {
8
+ const sourceNum = field.toNumber();
9
+ if (!(sourceNum in LogSource)) {
10
+ const validNames = Object.keys(LogSource).filter((k)=>isNaN(Number(k)));
11
+ throw new Error(`Invalid LogSource value ${sourceNum}, expected one of ${validNames.join(', ')}`);
56
12
  }
13
+ return sourceNum;
57
14
  }
@@ -1,17 +1,13 @@
1
- import { Fr } from '@aztec/foundation/curves/bn254';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { TxHash } from '@aztec/stdlib/tx';
3
3
  /**
4
4
  * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle stores values of this
5
5
  * type in a `EphemeralArray`.
6
6
  */
7
- export declare class LogRetrievalResponse {
7
+ export type LogRetrievalResponse = {
8
8
  logPayload: Fr[];
9
9
  txHash: TxHash;
10
10
  uniqueNoteHashesInTx: Fr[];
11
11
  firstNullifierInTx: Fr;
12
- constructor(logPayload: Fr[], txHash: TxHash, uniqueNoteHashesInTx: Fr[], firstNullifierInTx: Fr);
13
- toFields(): Fr[];
14
- static toEmptyFields(): Fr[];
15
- static toSerializedOption(response: LogRetrievalResponse | null): Fr[];
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3JldHJpZXZhbF9yZXNwb25zZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRyYWN0X2Z1bmN0aW9uX3NpbXVsYXRvci9ub2lyLXN0cnVjdHMvbG9nX3JldHJpZXZhbF9yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJL0M7OztHQUdHO0FBQ0gscUJBQWEsb0JBQW9CO0lBRXRCLFVBQVUsRUFBRSxFQUFFLEVBQUU7SUFDaEIsTUFBTSxFQUFFLE1BQU07SUFDZCxvQkFBb0IsRUFBRSxFQUFFLEVBQUU7SUFDMUIsa0JBQWtCLEVBQUUsRUFBRTtJQUovQixZQUNTLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFDaEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxvQkFBb0IsRUFBRSxFQUFFLEVBQUUsRUFDMUIsa0JBQWtCLEVBQUUsRUFBRSxFQUMzQjtJQUVKLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FTZjtJQUVELE1BQU0sQ0FBQyxhQUFhLElBQUksRUFBRSxFQUFFLENBUzNCO0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxFQUFFLENBTXJFO0NBQ0YifQ==
12
+ };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nX3JldHJpZXZhbF9yZXNwb25zZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRyYWN0X2Z1bmN0aW9uX3NpbXVsYXRvci9ub2lyLXN0cnVjdHMvbG9nX3JldHJpZXZhbF9yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQzs7O0dBR0c7QUFDSCxNQUFNLE1BQU0sb0JBQW9CLEdBQUc7SUFDakMsVUFBVSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2pCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixvQkFBb0IsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUMzQixrQkFBa0IsRUFBRSxFQUFFLENBQUM7Q0FDeEIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"log_retrieval_response.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/log_retrieval_response.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;;GAGG;AACH,qBAAa,oBAAoB;IAEtB,UAAU,EAAE,EAAE,EAAE;IAChB,MAAM,EAAE,MAAM;IACd,oBAAoB,EAAE,EAAE,EAAE;IAC1B,kBAAkB,EAAE,EAAE;IAJ/B,YACS,UAAU,EAAE,EAAE,EAAE,EAChB,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,EAAE,EAAE,EAC1B,kBAAkB,EAAE,EAAE,EAC3B;IAEJ,QAAQ,IAAI,EAAE,EAAE,CASf;IAED,MAAM,CAAC,aAAa,IAAI,EAAE,EAAE,CAS3B;IAED,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,EAAE,EAAE,CAMrE;CACF"}
1
+ {"version":3,"file":"log_retrieval_response.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/log_retrieval_response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,EAAE,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB,EAAE,EAAE,EAAE,CAAC;IAC3B,kBAAkB,EAAE,EAAE,CAAC;CACxB,CAAC"}
@@ -1,63 +1,4 @@
1
- import { MAX_NOTE_HASHES_PER_TX, PRIVATE_LOG_CIPHERTEXT_LEN } from '@aztec/constants';
2
- import { range } from '@aztec/foundation/array';
3
- import { Fr } from '@aztec/foundation/curves/bn254';
4
- const MAX_LOG_CONTENT_LEN = PRIVATE_LOG_CIPHERTEXT_LEN;
5
1
  /**
6
2
  * Intermediate struct used to perform batch log retrieval by PXE. The `utilityBulkRetrieveLogs` oracle stores values of this
7
3
  * type in a `EphemeralArray`.
8
- */ export class LogRetrievalResponse {
9
- logPayload;
10
- txHash;
11
- uniqueNoteHashesInTx;
12
- firstNullifierInTx;
13
- constructor(logPayload, txHash, uniqueNoteHashesInTx, firstNullifierInTx){
14
- this.logPayload = logPayload;
15
- this.txHash = txHash;
16
- this.uniqueNoteHashesInTx = uniqueNoteHashesInTx;
17
- this.firstNullifierInTx = firstNullifierInTx;
18
- }
19
- toFields() {
20
- return [
21
- // We need to trim the payload since public logs can be larger than MAX_LOG_CONTENT_LEN.
22
- // This is currently not a problem since this class is only used with public logs for note completion.
23
- ...serializeBoundedVec(this.logPayload.slice(0, MAX_LOG_CONTENT_LEN), MAX_LOG_CONTENT_LEN),
24
- this.txHash.hash,
25
- ...serializeBoundedVec(this.uniqueNoteHashesInTx, MAX_NOTE_HASHES_PER_TX),
26
- this.firstNullifierInTx
27
- ];
28
- }
29
- static toEmptyFields() {
30
- const serializationLen = MAX_LOG_CONTENT_LEN + 1 /* logPayload BVec */ + 1 /* txHash */ + MAX_NOTE_HASHES_PER_TX + 1 /* uniqueNoteHashesInTx BVec */ + 1; /* firstNullifierInTx */
31
- return range(serializationLen).map((_)=>Fr.zero());
32
- }
33
- static toSerializedOption(response) {
34
- if (response) {
35
- return [
36
- new Fr(1),
37
- ...response.toFields()
38
- ];
39
- } else {
40
- return [
41
- new Fr(0),
42
- ...LogRetrievalResponse.toEmptyFields()
43
- ];
44
- }
45
- }
46
- }
47
- /**
48
- * Helper function to serialize a bounded vector according to Noir's BoundedVec format
49
- * @param values - The values to serialize
50
- * @param maxLength - The maximum length of the bounded vector
51
- * @returns The serialized bounded vector as Fr[]
52
- */ function serializeBoundedVec(values, maxLength) {
53
- if (values.length > maxLength) {
54
- throw new Error(`Attempted to serialize ${values} values into a BoundedVec with max length ${maxLength}`);
55
- }
56
- const lengthDiff = maxLength - values.length;
57
- const zeroPaddingArray = Array(lengthDiff).fill(Fr.ZERO);
58
- const storage = values.concat(zeroPaddingArray);
59
- return [
60
- ...storage,
61
- new Fr(values.length)
62
- ];
63
- }
4
+ */ export { };
@@ -27,8 +27,8 @@ import { TxHash } from '@aztec/stdlib/tx';
27
27
  }
28
28
  static fromFields(fields) {
29
29
  const reader = FieldReader.asReader(fields);
30
- const contractAddress = AztecAddress.fromField(reader.readField());
31
- const owner = AztecAddress.fromField(reader.readField());
30
+ const contractAddress = AztecAddress.fromFieldUnsafe(reader.readField());
31
+ const owner = AztecAddress.fromFieldUnsafe(reader.readField());
32
32
  const storageSlot = reader.readField();
33
33
  const randomness = reader.readField();
34
34
  const noteNonce = reader.readField();
@@ -7,7 +7,7 @@
7
7
  */
8
8
  export declare class Option<T> {
9
9
  readonly value: T | undefined;
10
- readonly template: T | undefined;
10
+ readonly size: unknown;
11
11
  private constructor();
12
12
  /**
13
13
  * Wrap a present value.
@@ -21,24 +21,21 @@ export declare class Option<T> {
21
21
  /**
22
22
  * Construct an absent Option.
23
23
  *
24
- * When serialized back to ACVM, the `None` case must produce the same number of fields as `Some`.
25
- * For types whose wire size varies per call site (`BoundedVec`, `FixedArray`), pass a `template` so the
26
- * serializer knows how many zero fields to emit. Omit the template when the Option will not be
27
- * re-serialized (e.g. deserialized input params).
28
- *
29
- * @param template - A representative empty `T` whose serialization determines the zero-filled wire format.
24
+ * When serialized back to ACVM, the `None` case must produce the same number of fields as `Some`. For an inner type whose
25
+ * wire size varies per call site (`BoundedVec`, an array), pass a `size` descriptor so the inner type's shape can
26
+ * resolve how many zero fields to emit; fixed-size inners take no argument.
30
27
  *
31
28
  * @example None for a fixed-size type:
32
29
  * ```ts
33
- * return Option.none(AztecAddress.ZERO);
30
+ * return Option.none();
34
31
  * ```
35
32
  *
36
33
  * @example None for a dynamic-size type:
37
34
  * ```ts
38
- * return Option.none(BoundedVec.empty<number>({ maxLength: ciphertext.maxLength }));
35
+ * return Option.none({ maxLength: ciphertext.maxLength });
39
36
  * ```
40
37
  */
41
- static none<T>(template?: T): Option<T>;
38
+ static none<T>(size?: unknown): Option<T>;
42
39
  /**
43
40
  * Type guard: narrows `value` to `T` in the truthy branch.
44
41
  *
@@ -57,5 +54,6 @@ export declare class Option<T> {
57
54
  isNone(): this is Option<T> & {
58
55
  value: undefined;
59
56
  };
57
+ equals(other: Option<T>, innerEquals: (a: T, b: T) => boolean): boolean;
60
58
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL25vaXItc3RydWN0cy9vcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gscUJBQWEsTUFBTSxDQUFDLENBQUM7YUFFRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLFNBQVM7YUFDcEIsUUFBUSxFQUFFLENBQUMsR0FBRyxTQUFTO0lBRnpDLE9BQU8sZUFHSDtJQUVKOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FFbEM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW1CRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBRXRDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHO1FBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtLQUFFLENBRXpDO0lBRUQsdUVBQXVFO0lBQ3ZFLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHO1FBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQTtLQUFFLENBRWpEO0NBQ0YifQ==
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL25vaXItc3RydWN0cy9vcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gscUJBQWEsTUFBTSxDQUFDLENBQUM7YUFFRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLFNBQVM7YUFHcEIsSUFBSSxFQUFFLE9BQU87SUFKL0IsT0FBTyxlQUtIO0lBRUo7Ozs7Ozs7T0FPRztJQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUVsQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FFeEM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsTUFBTSxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUc7UUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0tBQUUsQ0FFekM7SUFFRCx1RUFBdUU7SUFDdkUsTUFBTSxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUc7UUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFBO0tBQUUsQ0FFakQ7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxHQUFHLE9BQU8sQ0FLdEU7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"option.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/option.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,MAAM,CAAC,CAAC;aAED,KAAK,EAAE,CAAC,GAAG,SAAS;aACpB,QAAQ,EAAE,CAAC,GAAG,SAAS;IAFzC,OAAO,eAGH;IAEJ;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAElC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAEtC;IAED;;;;;;;;;;OAUG;IACH,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,CAEzC;IAED,uEAAuE;IACvE,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,CAEjD;CACF"}
1
+ {"version":3,"file":"option.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/noir-structs/option.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,qBAAa,MAAM,CAAC,CAAC;aAED,KAAK,EAAE,CAAC,GAAG,SAAS;aAGpB,IAAI,EAAE,OAAO;IAJ/B,OAAO,eAKH;IAEJ;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAElC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAExC;IAED;;;;;;;;;;OAUG;IACH,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,CAEzC;IAED,uEAAuE;IACvE,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG;QAAE,KAAK,EAAE,SAAS,CAAA;KAAE,CAEjD;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAKtE;CACF"}
@@ -6,10 +6,12 @@
6
6
  * `value` in conditional branches.
7
7
  */ export class Option {
8
8
  value;
9
- template;
10
- constructor(value, template){
9
+ size;
10
+ constructor(value, // `unknown` (not the descriptor shape) keeps this generic Option decoupled from the serialization layer's
11
+ // `{ length }`/`{ maxLength }` size descriptors; only the None-serialization path inspects it.
12
+ size){
11
13
  this.value = value;
12
- this.template = template;
14
+ this.size = size;
13
15
  }
14
16
  /**
15
17
  * Wrap a present value.
@@ -24,24 +26,21 @@
24
26
  /**
25
27
  * Construct an absent Option.
26
28
  *
27
- * When serialized back to ACVM, the `None` case must produce the same number of fields as `Some`.
28
- * For types whose wire size varies per call site (`BoundedVec`, `FixedArray`), pass a `template` so the
29
- * serializer knows how many zero fields to emit. Omit the template when the Option will not be
30
- * re-serialized (e.g. deserialized input params).
31
- *
32
- * @param template - A representative empty `T` whose serialization determines the zero-filled wire format.
29
+ * When serialized back to ACVM, the `None` case must produce the same number of fields as `Some`. For an inner type whose
30
+ * wire size varies per call site (`BoundedVec`, an array), pass a `size` descriptor so the inner type's shape can
31
+ * resolve how many zero fields to emit; fixed-size inners take no argument.
33
32
  *
34
33
  * @example None for a fixed-size type:
35
34
  * ```ts
36
- * return Option.none(AztecAddress.ZERO);
35
+ * return Option.none();
37
36
  * ```
38
37
  *
39
38
  * @example None for a dynamic-size type:
40
39
  * ```ts
41
- * return Option.none(BoundedVec.empty<number>({ maxLength: ciphertext.maxLength }));
40
+ * return Option.none({ maxLength: ciphertext.maxLength });
42
41
  * ```
43
- */ static none(template) {
44
- return new Option(undefined, template);
42
+ */ static none(size) {
43
+ return new Option(undefined, size);
45
44
  }
46
45
  /**
47
46
  * Type guard: narrows `value` to `T` in the truthy branch.
@@ -59,4 +58,10 @@
59
58
  /** Type guard: narrows `value` to `undefined` in the truthy branch. */ isNone() {
60
59
  return this.value === undefined;
61
60
  }
61
+ equals(other, innerEquals) {
62
+ if (this.isSome() && other.isSome()) {
63
+ return innerEquals(this.value, other.value);
64
+ }
65
+ return this.isNone() && other.isNone();
66
+ }
62
67
  }