@aztec/foundation 0.0.1-commit.c7c42ec → 0.0.1-commit.c949de6bc

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 (196) hide show
  1. package/dest/array/sorted_array.d.ts +6 -1
  2. package/dest/array/sorted_array.d.ts.map +1 -1
  3. package/dest/array/sorted_array.js +18 -15
  4. package/dest/branded-types/block_number.d.ts +4 -1
  5. package/dest/branded-types/block_number.d.ts.map +1 -1
  6. package/dest/branded-types/block_number.js +3 -0
  7. package/dest/branded-types/checkpoint_number.d.ts +10 -2
  8. package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
  9. package/dest/branded-types/checkpoint_number.js +17 -8
  10. package/dest/branded-types/index.d.ts +3 -2
  11. package/dest/branded-types/index.d.ts.map +1 -1
  12. package/dest/branded-types/index.js +2 -1
  13. package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
  14. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
  15. package/dest/branded-types/index_within_checkpoint.js +59 -0
  16. package/dest/buffer/buffer16.d.ts +4 -1
  17. package/dest/buffer/buffer16.d.ts.map +1 -1
  18. package/dest/buffer/buffer16.js +3 -1
  19. package/dest/buffer/buffer32.d.ts +4 -1
  20. package/dest/buffer/buffer32.d.ts.map +1 -1
  21. package/dest/buffer/buffer32.js +3 -1
  22. package/dest/collection/array.d.ts +12 -1
  23. package/dest/collection/array.d.ts.map +1 -1
  24. package/dest/collection/array.js +51 -0
  25. package/dest/config/env_var.d.ts +2 -2
  26. package/dest/config/env_var.d.ts.map +1 -1
  27. package/dest/config/index.d.ts +6 -3
  28. package/dest/config/index.d.ts.map +1 -1
  29. package/dest/config/index.js +16 -7
  30. package/dest/config/network_name.d.ts +2 -2
  31. package/dest/config/network_name.d.ts.map +1 -1
  32. package/dest/config/network_name.js +2 -0
  33. package/dest/config/parse-env.d.ts +3 -0
  34. package/dest/config/parse-env.d.ts.map +1 -0
  35. package/dest/config/parse-env.js +7 -0
  36. package/dest/config/secret_value.js +3 -1
  37. package/dest/crypto/ecdsa/signature.d.ts +10 -1
  38. package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
  39. package/dest/crypto/poseidon/index.d.ts +1 -2
  40. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  41. package/dest/crypto/poseidon/index.js +13 -22
  42. package/dest/crypto/random/randomness_singleton.d.ts +4 -3
  43. package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
  44. package/dest/crypto/random/randomness_singleton.js +5 -5
  45. package/dest/crypto/sync/poseidon/index.d.ts +1 -2
  46. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  47. package/dest/crypto/sync/poseidon/index.js +0 -8
  48. package/dest/curves/bls12/field.js +6 -3
  49. package/dest/curves/bls12/point.d.ts +10 -1
  50. package/dest/curves/bls12/point.d.ts.map +1 -1
  51. package/dest/curves/bls12/point.js +3 -1
  52. package/dest/curves/bn254/field.d.ts +2 -1
  53. package/dest/curves/bn254/field.d.ts.map +1 -1
  54. package/dest/curves/bn254/field.js +10 -4
  55. package/dest/curves/grumpkin/point.d.ts +11 -2
  56. package/dest/curves/grumpkin/point.d.ts.map +1 -1
  57. package/dest/error/index.d.ts +4 -4
  58. package/dest/error/index.d.ts.map +1 -1
  59. package/dest/eth-address/index.js +4 -2
  60. package/dest/eth-signature/eth_signature.d.ts +4 -1
  61. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  62. package/dest/jest/setup.js +4 -1
  63. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
  64. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  65. package/dest/json-rpc/client/safe_json_rpc_client.js +1 -1
  66. package/dest/json-rpc/client/undici.d.ts +1 -1
  67. package/dest/json-rpc/client/undici.d.ts.map +1 -1
  68. package/dest/json-rpc/client/undici.js +21 -4
  69. package/dest/json-rpc/fixtures/class_a.d.ts +3 -3
  70. package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
  71. package/dest/json-rpc/fixtures/class_b.d.ts +3 -3
  72. package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
  73. package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
  74. package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
  75. package/dest/json-rpc/server/api_key_auth.js +57 -0
  76. package/dest/json-rpc/server/index.d.ts +2 -1
  77. package/dest/json-rpc/server/index.d.ts.map +1 -1
  78. package/dest/json-rpc/server/index.js +1 -0
  79. package/dest/json-rpc/server/safe_json_rpc_server.js +1 -1
  80. package/dest/log/bigint-utils.d.ts +5 -0
  81. package/dest/log/bigint-utils.d.ts.map +1 -0
  82. package/dest/log/bigint-utils.js +18 -0
  83. package/dest/log/gcloud-logger-config.d.ts +1 -1
  84. package/dest/log/gcloud-logger-config.d.ts.map +1 -1
  85. package/dest/log/gcloud-logger-config.js +3 -0
  86. package/dest/log/libp2p_logger.d.ts +5 -2
  87. package/dest/log/libp2p_logger.d.ts.map +1 -1
  88. package/dest/log/libp2p_logger.js +14 -4
  89. package/dest/log/log-filters.d.ts +17 -4
  90. package/dest/log/log-filters.d.ts.map +1 -1
  91. package/dest/log/log-filters.js +26 -12
  92. package/dest/log/pino-logger-server.d.ts +9 -0
  93. package/dest/log/pino-logger-server.d.ts.map +1 -0
  94. package/dest/log/pino-logger-server.js +18 -0
  95. package/dest/log/pino-logger.d.ts +37 -8
  96. package/dest/log/pino-logger.d.ts.map +1 -1
  97. package/dest/log/pino-logger.js +122 -29
  98. package/dest/queue/base_memory_queue.d.ts +2 -2
  99. package/dest/queue/base_memory_queue.d.ts.map +1 -1
  100. package/dest/queue/semaphore.d.ts +5 -1
  101. package/dest/queue/semaphore.d.ts.map +1 -1
  102. package/dest/retry/index.d.ts +11 -1
  103. package/dest/retry/index.d.ts.map +1 -1
  104. package/dest/retry/index.js +11 -0
  105. package/dest/serialize/buffer_reader.d.ts +14 -4
  106. package/dest/serialize/buffer_reader.d.ts.map +1 -1
  107. package/dest/serialize/buffer_reader.js +26 -4
  108. package/dest/serialize/serialize.d.ts +19 -1
  109. package/dest/serialize/serialize.d.ts.map +1 -1
  110. package/dest/serialize/serialize.js +31 -0
  111. package/dest/timer/date.d.ts +25 -1
  112. package/dest/timer/date.d.ts.map +1 -1
  113. package/dest/timer/date.js +33 -0
  114. package/dest/transport/transport_client.js +2 -2
  115. package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
  116. package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
  117. package/dest/trees/{balanced_merkle_tree.js → balanced_merkle_tree_root.js} +2 -17
  118. package/dest/trees/hasher.d.ts +3 -1
  119. package/dest/trees/hasher.d.ts.map +1 -1
  120. package/dest/trees/hasher.js +10 -5
  121. package/dest/trees/index.d.ts +4 -4
  122. package/dest/trees/index.d.ts.map +1 -1
  123. package/dest/trees/index.js +3 -3
  124. package/dest/trees/membership_witness.d.ts +11 -1
  125. package/dest/trees/membership_witness.d.ts.map +1 -1
  126. package/dest/trees/membership_witness.js +9 -0
  127. package/dest/trees/merkle_tree_calculator.d.ts +1 -1
  128. package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
  129. package/dest/trees/merkle_tree_calculator.js +2 -2
  130. package/dest/trees/sibling_path.d.ts +2 -1
  131. package/dest/trees/sibling_path.d.ts.map +1 -1
  132. package/dest/trees/sibling_path.js +2 -2
  133. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +2 -3
  134. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  135. package/dest/trees/unbalanced_merkle_tree_calculator.js +1 -5
  136. package/dest/trees/{unbalanced_merkle_tree.d.ts → unbalanced_merkle_tree_root.d.ts} +3 -5
  137. package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
  138. package/dest/trees/{unbalanced_merkle_tree.js → unbalanced_merkle_tree_root.js} +11 -49
  139. package/dest/trees/unbalanced_tree_store.d.ts +5 -1
  140. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  141. package/dest/trees/unbalanced_tree_store.js +49 -1
  142. package/dest/types/index.d.ts +4 -2
  143. package/dest/types/index.d.ts.map +1 -1
  144. package/dest/types/index.js +3 -0
  145. package/package.json +25 -4
  146. package/src/array/sorted_array.ts +22 -17
  147. package/src/branded-types/block_number.ts +5 -0
  148. package/src/branded-types/checkpoint_number.ts +22 -7
  149. package/src/branded-types/index.ts +2 -1
  150. package/src/branded-types/index_within_checkpoint.ts +88 -0
  151. package/src/collection/array.ts +52 -0
  152. package/src/config/env_var.ts +56 -9
  153. package/src/config/index.ts +19 -4
  154. package/src/config/network_name.ts +4 -1
  155. package/src/config/parse-env.ts +4 -0
  156. package/src/crypto/poseidon/index.ts +13 -23
  157. package/src/crypto/random/randomness_singleton.ts +6 -4
  158. package/src/crypto/sync/poseidon/index.ts +0 -9
  159. package/src/curves/bn254/field.ts +6 -2
  160. package/src/eth-address/index.ts +1 -1
  161. package/src/jest/setup.mjs +4 -1
  162. package/src/json-rpc/client/safe_json_rpc_client.ts +2 -0
  163. package/src/json-rpc/client/undici.ts +21 -3
  164. package/src/json-rpc/server/api_key_auth.ts +63 -0
  165. package/src/json-rpc/server/index.ts +1 -0
  166. package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
  167. package/src/log/bigint-utils.ts +22 -0
  168. package/src/log/gcloud-logger-config.ts +5 -0
  169. package/src/log/libp2p_logger.ts +12 -5
  170. package/src/log/log-filters.ts +29 -11
  171. package/src/log/pino-logger-server.ts +25 -0
  172. package/src/log/pino-logger.ts +144 -39
  173. package/src/queue/base_memory_queue.ts +1 -1
  174. package/src/queue/semaphore.ts +5 -0
  175. package/src/retry/index.ts +18 -0
  176. package/src/serialize/buffer_reader.ts +36 -9
  177. package/src/serialize/serialize.ts +32 -0
  178. package/src/timer/date.ts +48 -0
  179. package/src/transport/transport_client.ts +2 -2
  180. package/src/trees/{balanced_merkle_tree.ts → balanced_merkle_tree_root.ts} +2 -18
  181. package/src/trees/hasher.ts +9 -0
  182. package/src/trees/index.ts +3 -3
  183. package/src/trees/membership_witness.ts +8 -0
  184. package/src/trees/merkle_tree_calculator.ts +2 -2
  185. package/src/trees/sibling_path.ts +2 -2
  186. package/src/trees/unbalanced_merkle_tree_calculator.ts +1 -12
  187. package/src/trees/{unbalanced_merkle_tree.ts → unbalanced_merkle_tree_root.ts} +17 -61
  188. package/src/trees/unbalanced_tree_store.ts +57 -2
  189. package/src/types/index.ts +6 -1
  190. package/dest/json-rpc/server/telemetry.d.ts +0 -2
  191. package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
  192. package/dest/json-rpc/server/telemetry.js +0 -0
  193. package/dest/trees/balanced_merkle_tree.d.ts +0 -22
  194. package/dest/trees/balanced_merkle_tree.d.ts.map +0 -1
  195. package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
  196. package/src/json-rpc/server/telemetry.ts +0 -0
@@ -72,6 +72,13 @@ export declare class BufferReader {
72
72
  * @returns The read 256 bit value as a bigint.
73
73
  */
74
74
  readUInt256(): bigint;
75
+ /**
76
+ * Reads a 256-bit signed integer (two's complement) from the buffer at the current index position.
77
+ * Updates the index position by 32 bytes after reading the number.
78
+ *
79
+ * @returns The read 256 bit signed value as a bigint.
80
+ */
81
+ readInt256(): bigint;
75
82
  /** Alias for readUInt256 */
76
83
  readBigInt(): bigint;
77
84
  /**
@@ -128,6 +135,7 @@ export declare class BufferReader {
128
135
  * deserializing each one using the 'fromBuffer' method of 'itemDeserializer'.
129
136
  *
130
137
  * @param itemDeserializer - Object with 'fromBuffer' method to deserialize vector elements.
138
+ * @param maxSize - Optional maximum allowed size for the vector. If the size exceeds this, an error is thrown.
131
139
  * @returns An array of deserialized elements of type T.
132
140
  */
133
141
  readVector<T>(itemDeserializer: {
@@ -135,7 +143,7 @@ export declare class BufferReader {
135
143
  * A method to deserialize data from a buffer.
136
144
  */
137
145
  fromBuffer: (reader: BufferReader) => T;
138
- }): T[];
146
+ }, maxSize?: number): T[];
139
147
  /**
140
148
  * Reads a vector of fixed size from the buffer and deserializes its elements using the provided itemDeserializer object.
141
149
  * The 'itemDeserializer' object should have a 'fromBuffer' method that takes a BufferReader instance and returns the deserialized element.
@@ -202,18 +210,20 @@ export declare class BufferReader {
202
210
  * The method first reads the size of the string, then reads the corresponding
203
211
  * number of bytes from the buffer and converts them to a string.
204
212
  *
213
+ * @param maxSize - Optional maximum allowed size for the string buffer. If the size exceeds this, an error is thrown.
205
214
  * @returns The read string from the buffer.
206
215
  */
207
- readString(): string;
216
+ readString(maxSize?: number): string;
208
217
  /**
209
218
  * Reads a buffer from the current position of the reader and advances the index.
210
219
  * The method first reads the size (number) of bytes to be read, and then returns
211
220
  * a Buffer with that size containing the bytes. Useful for reading variable-length
212
221
  * binary data encoded as (size, data) format.
213
222
  *
223
+ * @param maxSize - Optional maximum allowed size for the buffer. If the size exceeds this, an error is thrown.
214
224
  * @returns A Buffer containing the read bytes.
215
225
  */
216
- readBuffer(): Buffer;
226
+ readBuffer(maxSize?: number): Buffer;
217
227
  /**
218
228
  * Reads a buffer from the current position of the reader and advances the index.
219
229
  * The method first reads the size (number) of bytes to be read, and then returns
@@ -261,4 +271,4 @@ export interface FromBuffer<T> {
261
271
  */
262
272
  fromBuffer(buffer: Buffer): T;
263
273
  }
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3JlYWRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcmlhbGl6ZS9idWZmZXJfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILHFCQUFhLFlBQVk7O0lBR3JCLE9BQU8sQ0FBQyxNQUFNO0lBRmhCLE9BQU8sQ0FBQyxLQUFLLENBQVM7SUFDdEIsWUFDVSxNQUFNLEVBQUUsTUFBTSxFQUN0QixNQUFNLFNBQUksRUFHWDtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLFFBQVEsQ0FBQyxjQUFjLEVBQUUsVUFBVSxHQUFHLE1BQU0sR0FBRyxZQUFZLEdBQUcsWUFBWSxDQVV2RjtJQUVELDBFQUEwRTtJQUNuRSxPQUFPLElBQUksT0FBTyxDQUV4QjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUcvRDtJQUVEOzs7Ozs7O09BT0c7SUFDSSxVQUFVLElBQUksTUFBTSxDQU8xQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVELDRCQUE0QjtJQUNyQixVQUFVLElBQUksTUFBTSxDQUUxQjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7Ozs7T0FLRztJQUNJLFNBQVMsSUFBSSxNQUFNLENBSXpCO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksV0FBVyxJQUFJLE9BQU8sQ0FJNUI7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUlsQztJQUVELHlDQUF5QztJQUNsQyxTQUFTLElBQUksTUFBTSxDQUl6QjtJQUVEOzs7OztPQUtHO0lBQ0ksZ0JBQWdCLElBQUksTUFBTSxFQUFFLENBSWxDO0lBRUQ7Ozs7O09BS0c7SUFDSSxpQkFBaUIsSUFBSSxNQUFNLEVBQUUsQ0FJbkM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLFVBQVUsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUU7UUFDckM7O1dBRUc7UUFDSCxVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxLQUFLLENBQUMsQ0FBQztLQUN6QyxHQUFHLENBQUMsRUFBRSxDQU9OO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUU7UUFDaEQ7O1dBRUc7UUFDSCxVQUFVLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxLQUFLLENBQUMsQ0FBQztLQUN6QyxHQUFHLENBQUMsRUFBRSxDQU9OO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsTUFBTSxFQUNsQyxJQUFJLEVBQUUsQ0FBQyxFQUNQLGdCQUFnQixFQUFFO1FBQ2hCOztXQUVHO1FBQ0gsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksS0FBSyxDQUFDLENBQUM7S0FDekMsR0FDQSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUdiO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLGVBQWUsQ0FBQyxJQUFJLFNBQUssR0FBRyxNQUFNLEVBQUUsQ0FlMUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxVQUFVLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRTtRQUNqQzs7V0FFRztRQUNILFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxZQUFZLEtBQUssQ0FBQyxDQUFDO0tBQ3pDLEdBQUcsQ0FBQyxDQUVKO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBR25DO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FFMUI7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksY0FBYyxJQUFJLFVBQVUsQ0FJbEM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFO1FBQzlCOztXQUVHO1FBQ0gsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFlBQVksS0FBSyxDQUFDLENBQUM7S0FDekMsR0FBRztRQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUE7S0FBRSxDQVN2QjtJQUVEOzs7T0FHRztJQUNJLFNBQVMsSUFBSSxNQUFNLENBRXpCO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYyxJQUFJLE1BQU0sQ0FFOUI7Q0FTRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLFVBQVUsQ0FBQyxDQUFDO0lBQzNCOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQztDQUMvQiJ9
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyX3JlYWRlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcmlhbGl6ZS9idWZmZXJfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILHFCQUFhLFlBQVk7O0lBR3JCLE9BQU8sQ0FBQyxNQUFNO0lBRmhCLE9BQU8sQ0FBQyxLQUFLLENBQVM7SUFDdEIsWUFDVSxNQUFNLEVBQUUsTUFBTSxFQUN0QixNQUFNLFNBQUksRUFHWDtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLFFBQVEsQ0FBQyxjQUFjLEVBQUUsVUFBVSxHQUFHLE1BQU0sR0FBRyxZQUFZLEdBQUcsWUFBWSxDQVV2RjtJQUVELDBFQUEwRTtJQUNuRSxPQUFPLElBQUksT0FBTyxDQUV4QjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FJMUI7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUcvRDtJQUVEOzs7Ozs7O09BT0c7SUFDSSxVQUFVLElBQUksTUFBTSxDQU8xQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVEOzs7Ozs7O09BT0c7SUFDSSxXQUFXLElBQUksTUFBTSxDQVUzQjtJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxJQUFJLE1BQU0sQ0FNMUI7SUFFRCw0QkFBNEI7SUFDckIsVUFBVSxJQUFJLE1BQU0sQ0FFMUI7SUFFRDs7Ozs7T0FLRztJQUNJLFVBQVUsSUFBSSxNQUFNLENBSTFCO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLElBQUksTUFBTSxDQUl6QjtJQUVEOzs7Ozs7T0FNRztJQUNJLFdBQVcsSUFBSSxP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
@@ -1 +1 @@
1
- {"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { toBigIntBE } from '../bigint-buffer/index.js';
1
2
  /**
2
3
  * The BufferReader class provides a utility for reading various data types from a buffer.
3
4
  * It supports reading numbers, booleans, byte arrays, Fr and Fq field elements,
@@ -103,6 +104,18 @@
103
104
  this.index += 32;
104
105
  return result;
105
106
  }
107
+ /**
108
+ * Reads a 256-bit signed integer (two's complement) from the buffer at the current index position.
109
+ * Updates the index position by 32 bytes after reading the number.
110
+ *
111
+ * @returns The read 256 bit signed value as a bigint.
112
+ */ readInt256() {
113
+ this.#rangeCheck(32);
114
+ const unsigned = toBigIntBE(this.buffer.subarray(this.index, this.index + 32));
115
+ this.index += 32;
116
+ const signBit = 1n << 255n;
117
+ return unsigned >= signBit ? unsigned - (1n << 256n) : unsigned;
118
+ }
106
119
  /** Alias for readUInt256 */ readBigInt() {
107
120
  return this.readUInt256();
108
121
  }
@@ -181,9 +194,13 @@
181
194
  * deserializing each one using the 'fromBuffer' method of 'itemDeserializer'.
182
195
  *
183
196
  * @param itemDeserializer - Object with 'fromBuffer' method to deserialize vector elements.
197
+ * @param maxSize - Optional maximum allowed size for the vector. If the size exceeds this, an error is thrown.
184
198
  * @returns An array of deserialized elements of type T.
185
- */ readVector(itemDeserializer) {
199
+ */ readVector(itemDeserializer, maxSize) {
186
200
  const size = this.readNumber();
201
+ if (maxSize !== undefined && size > maxSize) {
202
+ throw new Error(`Vector size ${size} exceeds maximum allowed ${maxSize}`);
203
+ }
187
204
  const result = new Array(size);
188
205
  for(let i = 0; i < size; i++){
189
206
  result[i] = itemDeserializer.fromBuffer(this);
@@ -266,9 +283,10 @@
266
283
  * The method first reads the size of the string, then reads the corresponding
267
284
  * number of bytes from the buffer and converts them to a string.
268
285
  *
286
+ * @param maxSize - Optional maximum allowed size for the string buffer. If the size exceeds this, an error is thrown.
269
287
  * @returns The read string from the buffer.
270
- */ readString() {
271
- return this.readBuffer().toString();
288
+ */ readString(maxSize) {
289
+ return this.readBuffer(maxSize).toString();
272
290
  }
273
291
  /**
274
292
  * Reads a buffer from the current position of the reader and advances the index.
@@ -276,9 +294,13 @@
276
294
  * a Buffer with that size containing the bytes. Useful for reading variable-length
277
295
  * binary data encoded as (size, data) format.
278
296
  *
297
+ * @param maxSize - Optional maximum allowed size for the buffer. If the size exceeds this, an error is thrown.
279
298
  * @returns A Buffer containing the read bytes.
280
- */ readBuffer() {
299
+ */ readBuffer(maxSize) {
281
300
  const size = this.readNumber();
301
+ if (maxSize !== undefined && size > maxSize) {
302
+ throw new Error(`Buffer size ${size} exceeds maximum allowed ${maxSize}`);
303
+ }
282
304
  this.#rangeCheck(size);
283
305
  return this.readBytes(size);
284
306
  }
@@ -115,6 +115,13 @@ export declare function toFriendlyJSON(obj: object): string;
115
115
  * @returns A Buffer containing the serialized BigInt value in big-endian format.
116
116
  */
117
117
  export declare function serializeBigInt(n: bigint, width?: number): Buffer<ArrayBufferLike>;
118
+ /**
119
+ * Serialize a signed BigInt value into a Buffer of specified width using two's complement.
120
+ * @param n - The signed BigInt value to be serialized.
121
+ * @param width - The width (in bytes) of the output Buffer, optional with default value 32.
122
+ * @returns A Buffer containing the serialized signed BigInt value in big-endian format.
123
+ */
124
+ export declare function serializeSignedBigInt(n: bigint, width?: number): Buffer<ArrayBufferLike>;
118
125
  /**
119
126
  * Deserialize a big integer from a buffer, given an offset and width.
120
127
  * Reads the specified number of bytes from the buffer starting at the offset, converts it to a big integer, and returns the deserialized result along with the number of bytes read (advanced).
@@ -128,6 +135,17 @@ export declare function deserializeBigInt(buf: Buffer, offset?: number, width?:
128
135
  elem: bigint;
129
136
  adv: number;
130
137
  };
138
+ /**
139
+ * Deserialize a signed BigInt from a buffer (two's complement).
140
+ * @param buf - The buffer containing the signed big integer to be deserialized.
141
+ * @param offset - The position in the buffer where the integer starts. Defaults to 0.
142
+ * @param width - The number of bytes to read from the buffer for the integer. Defaults to 32.
143
+ * @returns An object containing the deserialized signed bigint value ('elem') and bytes advanced ('adv').
144
+ */
145
+ export declare function deserializeSignedBigInt(buf: Buffer, offset?: number, width?: number): {
146
+ elem: bigint;
147
+ adv: number;
148
+ };
131
149
  /**
132
150
  * Serializes a Date object into a Buffer containing its timestamp as a big integer value.
133
151
  * The resulting Buffer has a fixed width of 8 bytes, representing a 64-bit big-endian integer.
@@ -178,4 +196,4 @@ export declare function deserializeInt32(buf: Buffer, offset?: number): {
178
196
  adv: number;
179
197
  };
180
198
  export {};
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplL3NlcmlhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHOUM7Ozs7O0dBS0c7QUFDSCx3QkFBZ0Isa0NBQWtDLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLFlBQVksU0FBSSxHQUFHLE1BQU0sQ0FhL0Y7QUFFRDs7R0FFRztBQUNILEtBQUssYUFBYSxDQUFDLENBQUMsSUFBSSxDQUN0QixHQUFHLEVBQUUsTUFBTSxFQUNYLE1BQU0sRUFBRSxNQUFNLEtBQ1g7SUFDSDs7T0FFRztJQUNILElBQUksRUFBRSxDQUFDLENBQUM7SUFDUjs7T0FFRztJQUNILEdBQUcsRUFBRSxNQUFNLENBQUM7Q0FDYixDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLDBCQUEwQixDQUFDLENBQUMsRUFDMUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFDN0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLFNBQUksR0FDVDtJQUNEOztPQUVHO0lBQ0gsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ1Y7O09BRUc7SUFDSCxHQUFHLEVBQUUsTUFBTSxDQUFDO0NBQ2IsQ0FXQTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUd6RDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxTQUFJLEdBQUcsTUFBTSxDQUluRTtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7RUFHdkQ7QUFFRCw4Q0FBOEM7QUFDOUMsTUFBTSxNQUFNLFVBQVUsR0FDbEIsT0FBTyxHQUNQLE1BQU0sR0FDTixVQUFVLEdBQ1YsTUFBTSxHQUNOLE1BQU0sR0FDTixNQUFNLEdBQ047SUFDRTs7T0FFRztJQUNILFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztDQUN4QixHQUNELFVBQVUsRUFBRSxDQUFDO0FBRWpCLGdFQUFnRTtBQUNoRSxNQUFNLE1BQU0sU0FBUyxHQUNqQixFQUFFLEdBQ0YsT0FBTyxHQUNQLE1BQU0sR0FDTixNQUFNLEdBQ04sTUFBTSxHQUNOO0lBQ0U7OztPQUdHO0lBQ0gsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ2hCLEdBQ0Q7SUFDRSw0QkFBNEI7SUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ25CLEdBQ0Q7SUFDRSx1Q0FBdUM7SUFDdkMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7Q0FDdEIsR0FDRCxTQUFTLEVBQUUsQ0FBQztBQUVoQixNQUFNLE1BQU0sWUFBWSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFFbEQ7Ozs7R0FJRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0E0QnRFO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FzQjVEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBRS9EO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBNEJsRDtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLFNBQUssMkJBRXBEO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQUksRUFBRSxLQUFLLFNBQUs7OztFQUVwRTtBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLDJCQUV2QztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O0VBR3REO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQUk7OztFQUd4RDtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O0VBR3ZEIn0=
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplL3NlcmlhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHOUM7Ozs7O0dBS0c7QUFDSCx3QkFBZ0Isa0NBQWtDLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLFlBQVksU0FBSSxHQUFHLE1BQU0sQ0FhL0Y7QUFFRDs7R0FFRztBQUNILEtBQUssYUFBYSxDQUFDLENBQUMsSUFBSSxDQUN0QixHQUFHLEVBQUUsTUFBTSxFQUNYLE1BQU0sRUFBRSxNQUFNLEtBQ1g7SUFDSDs7T0FFRztJQUNILElBQUksRUFBRSxDQUFDLENBQUM7SUFDUjs7T0FFRztJQUNILEdBQUcsRUFBRSxNQUFNLENBQUM7Q0FDYixDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLDBCQUEwQixDQUFDLENBQUMsRUFDMUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFDN0IsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLFNBQUksR0FDVDtJQUNEOztPQUVHO0lBQ0gsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ1Y7O09BRUc7SUFDSCxHQUFHLEVBQUUsTUFBTSxDQUFDO0NBQ2IsQ0FXQTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUd6RDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsWUFBWSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxTQUFJLEdBQUcsTUFBTSxDQUluRTtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7RUFHdkQ7QUFFRCw4Q0FBOEM7QUFDOUMsTUFBTSxNQUFNLFVBQVUsR0FDbEIsT0FBTyxHQUNQLE1BQU0sR0FDTixVQUFVLEdBQ1YsTUFBTSxHQUNOLE1BQU0sR0FDTixNQUFNLEdBQ047SUFDRTs7T0FFRztJQUNILFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztDQUN4QixHQUNELFVBQVUsRUFBRSxDQUFDO0FBRWpCLGdFQUFnRTtBQUNoRSxNQUFNLE1BQU0sU0FBUyxHQUNqQixFQUFFLEdBQ0YsT0FBTyxHQUNQLE1BQU0sR0FDTixNQUFNLEdBQ04sTUFBTSxHQUNOO0lBQ0U7OztPQUdHO0lBQ0gsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ2hCLEdBQ0Q7SUFDRSw0QkFBNEI7SUFDNUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ25CLEdBQ0Q7SUFDRSx1Q0FBdUM7SUFDdkMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUM7Q0FDdEIsR0FDRCxTQUFTLEVBQUUsQ0FBQztBQUVoQixNQUFNLE1BQU0sWUFBWSxHQUFHLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFFbEQ7Ozs7R0FJRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0E0QnRFO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FzQjVEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBRS9EO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBNEJsRDtBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixlQUFlLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLFNBQUssMkJBRXBEO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IscUJBQXFCLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLFNBQUssMkJBUTFEO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsaUJBQWlCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLFNBQUksRUFBRSxLQUFLLFNBQUs7OztFQUVwRTtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQix1QkFBdUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSSxFQUFFLEtBQUssU0FBSzs7O0VBTzFFO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksMkJBRXZDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7RUFHdEQ7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O0VBR3hEO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQWdCLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7RUFHdkQifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/serialize/serialize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,YAAY,SAAI,GAAG,MAAM,CAa/F;AAED;;GAEG;AACH,KAAK,aAAa,CAAC,CAAC,IAAI,CACtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,KACX;IACH;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;IACR;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,SAAI,GACT;IACD;;OAEG;IACH,IAAI,EAAE,CAAC,EAAE,CAAC;IACV;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb,CAWA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAGzD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,SAAI,GAAG,MAAM,CAInE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAGvD;AAED,8CAA8C;AAC9C,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,MAAM,GACN,UAAU,GACV,MAAM,GACN,MAAM,GACN,MAAM,GACN;IACE;;OAEG;IACH,QAAQ,EAAE,MAAM,MAAM,CAAC;CACxB,GACD,UAAU,EAAE,CAAC;AAEjB,gEAAgE;AAChE,MAAM,MAAM,SAAS,GACjB,EAAE,GACF,OAAO,GACP,MAAM,GACN,MAAM,GACN,MAAM,GACN;IACE;;;OAGG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,GACD;IACE,4BAA4B;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,GACD;IACE,uCAAuC;IACvC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;CACtB,GACD,SAAS,EAAE,CAAC;AAEhB,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,CA4BtE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAsB5D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA4BlD;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,2BAEpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,EAAE,KAAK,SAAK;;;EAEpE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,2BAEvC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAGtD;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAGxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAGvD"}
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/serialize/serialize.ts"],"names":[],"mappings":"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"}
@@ -176,6 +176,20 @@ import { numToUInt32BE } from './free_funcs.js';
176
176
  */ export function serializeBigInt(n, width = 32) {
177
177
  return toBufferBE(n, width);
178
178
  }
179
+ /**
180
+ * Serialize a signed BigInt value into a Buffer of specified width using two's complement.
181
+ * @param n - The signed BigInt value to be serialized.
182
+ * @param width - The width (in bytes) of the output Buffer, optional with default value 32.
183
+ * @returns A Buffer containing the serialized signed BigInt value in big-endian format.
184
+ */ export function serializeSignedBigInt(n, width = 32) {
185
+ const widthBits = BigInt(width * 8);
186
+ const max = 1n << widthBits - 1n;
187
+ if (n < -max || n >= max) {
188
+ throw new Error(`Signed BigInt ${n.toString()} does not fit into ${width} bytes`);
189
+ }
190
+ const unsigned = n < 0n ? (1n << widthBits) + n : n;
191
+ return toBufferBE(unsigned, width);
192
+ }
179
193
  /**
180
194
  * Deserialize a big integer from a buffer, given an offset and width.
181
195
  * Reads the specified number of bytes from the buffer starting at the offset, converts it to a big integer, and returns the deserialized result along with the number of bytes read (advanced).
@@ -190,6 +204,23 @@ import { numToUInt32BE } from './free_funcs.js';
190
204
  adv: width
191
205
  };
192
206
  }
207
+ /**
208
+ * Deserialize a signed BigInt from a buffer (two's complement).
209
+ * @param buf - The buffer containing the signed big integer to be deserialized.
210
+ * @param offset - The position in the buffer where the integer starts. Defaults to 0.
211
+ * @param width - The number of bytes to read from the buffer for the integer. Defaults to 32.
212
+ * @returns An object containing the deserialized signed bigint value ('elem') and bytes advanced ('adv').
213
+ */ export function deserializeSignedBigInt(buf, offset = 0, width = 32) {
214
+ const { elem, adv } = deserializeBigInt(buf, offset, width);
215
+ const widthBits = BigInt(width * 8);
216
+ const signBit = 1n << widthBits - 1n;
217
+ const fullRange = 1n << widthBits;
218
+ const signed = elem >= signBit ? elem - fullRange : elem;
219
+ return {
220
+ elem: signed,
221
+ adv
222
+ };
223
+ }
193
224
  /**
194
225
  * Serializes a Date object into a Buffer containing its timestamp as a big integer value.
195
226
  * The resulting Buffer has a fixed width of 8 bytes, representing a 64-bit big-endian integer.
@@ -11,5 +11,29 @@ export declare class TestDateProvider extends DateProvider {
11
11
  constructor(logger?: import("../log/pino-logger.js").Logger);
12
12
  now(): number;
13
13
  setTime(timeMs: number): void;
14
+ /** Resets the time back to real time (offset = 0). */
15
+ reset(): void;
16
+ /** Advances the time by the given number of seconds. */
17
+ advanceTime(seconds: number): void;
14
18
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RpbWVyL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsZ0NBQWdDO0FBQ2hDLHFCQUFhLFlBQVk7SUFDaEIsR0FBRyxJQUFJLE1BQU0sQ0FFbkI7SUFFTSxZQUFZLElBQUksTUFBTSxDQUU1QjtJQUVNLFNBQVMsSUFBSSxJQUFJLENBRXZCO0NBQ0Y7QUFFRCwwREFBMEQ7QUFDMUQscUJBQWEsZ0JBQWlCLFNBQVEsWUFBWTtJQUdwQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFGbkMsT0FBTyxDQUFDLE1BQU0sQ0FBSztJQUVuQixZQUE2QixNQUFNLHlDQUFnRCxFQUVsRjtJQUVlLEdBQUcsSUFBSSxNQUFNLENBRTVCO0lBRU0sT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLFFBRzVCO0NBQ0YifQ==
19
+ /**
20
+ * A date provider for tests that only advances time via explicit advanceTime() calls.
21
+ * Unlike TestDateProvider, this does NOT track real time progression - time is completely
22
+ * frozen until explicitly advanced. This eliminates flakiness from tests taking
23
+ * varying amounts of real time to execute.
24
+ */
25
+ export declare class ManualDateProvider extends DateProvider {
26
+ private currentTimeMs;
27
+ /**
28
+ * @param initialTimeMs - Initial time in milliseconds. Defaults to a round timestamp for easy visualization.
29
+ */
30
+ constructor(initialTimeMs?: number);
31
+ now(): number;
32
+ /** Sets the current time to the given timestamp in milliseconds. */
33
+ setTime(timeMs: number): void;
34
+ /** Advances the time by the given number of seconds. */
35
+ advanceTime(seconds: number): void;
36
+ /** Advances the time by the given number of milliseconds. */
37
+ advanceTimeMs(ms: number): void;
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RpbWVyL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsZ0NBQWdDO0FBQ2hDLHFCQUFhLFlBQVk7SUFDaEIsR0FBRyxJQUFJLE1BQU0sQ0FFbkI7SUFFTSxZQUFZLElBQUksTUFBTSxDQUU1QjtJQUVNLFNBQVMsSUFBSSxJQUFJLENBRXZCO0NBQ0Y7QUFFRCwwREFBMEQ7QUFDMUQscUJBQWEsZ0JBQWlCLFNBQVEsWUFBWTtJQUdwQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFGbkMsT0FBTyxDQUFDLE1BQU0sQ0FBSztJQUVuQixZQUE2QixNQUFNLHlDQUFnRCxFQUVsRjtJQUVlLEdBQUcsSUFBSSxNQUFNLENBRTVCO0lBRU0sT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLFFBRzVCO0lBRUQsc0RBQXNEO0lBQy9DLEtBQUssU0FHWDtJQUVELHdEQUF3RDtJQUNqRCxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sUUFFakM7Q0FDRjtBQUVEOzs7OztHQUtHO0FBQ0gscUJBQWEsa0JBQW1CLFNBQVEsWUFBWTtJQUNsRCxPQUFPLENBQUMsYUFBYSxDQUFTO0lBRTlCOztPQUVHO0lBQ0gsWUFBWSxhQUFhLEdBQUUsTUFBc0MsRUFHaEU7SUFFZSxHQUFHLElBQUksTUFBTSxDQUU1QjtJQUVELG9FQUFvRTtJQUM3RCxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sUUFFNUI7SUFFRCx3REFBd0Q7SUFDakQsV0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLFFBRWpDO0lBRUQsNkRBQTZEO0lBQ3RELGFBQWEsQ0FBQyxFQUFFLEVBQUUsTUFBTSxRQUU5QjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/timer/date.ts"],"names":[],"mappings":"AAEA,gCAAgC;AAChC,qBAAa,YAAY;IAChB,GAAG,IAAI,MAAM,CAEnB;IAEM,YAAY,IAAI,MAAM,CAE5B;IAEM,SAAS,IAAI,IAAI,CAEvB;CACF;AAED,0DAA0D;AAC1D,qBAAa,gBAAiB,SAAQ,YAAY;IAGpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,MAAM,CAAK;IAEnB,YAA6B,MAAM,yCAAgD,EAElF;IAEe,GAAG,IAAI,MAAM,CAE5B;IAEM,OAAO,CAAC,MAAM,EAAE,MAAM,QAG5B;CACF"}
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/timer/date.ts"],"names":[],"mappings":"AAEA,gCAAgC;AAChC,qBAAa,YAAY;IAChB,GAAG,IAAI,MAAM,CAEnB;IAEM,YAAY,IAAI,MAAM,CAE5B;IAEM,SAAS,IAAI,IAAI,CAEvB;CACF;AAED,0DAA0D;AAC1D,qBAAa,gBAAiB,SAAQ,YAAY;IAGpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,MAAM,CAAK;IAEnB,YAA6B,MAAM,yCAAgD,EAElF;IAEe,GAAG,IAAI,MAAM,CAE5B;IAEM,OAAO,CAAC,MAAM,EAAE,MAAM,QAG5B;IAED,sDAAsD;IAC/C,KAAK,SAGX;IAED,wDAAwD;IACjD,WAAW,CAAC,OAAO,EAAE,MAAM,QAEjC;CACF;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,aAAa,CAAS;IAE9B;;OAEG;IACH,YAAY,aAAa,GAAE,MAAsC,EAGhE;IAEe,GAAG,IAAI,MAAM,CAE5B;IAED,oEAAoE;IAC7D,OAAO,CAAC,MAAM,EAAE,MAAM,QAE5B;IAED,wDAAwD;IACjD,WAAW,CAAC,OAAO,EAAE,MAAM,QAEjC;IAED,6DAA6D;IACtD,aAAa,CAAC,EAAE,EAAE,MAAM,QAE9B;CACF"}
@@ -26,4 +26,37 @@ import { createLogger } from '../log/pino-logger.js';
26
26
  timeMs
27
27
  });
28
28
  }
29
+ /** Resets the time back to real time (offset = 0). */ reset() {
30
+ this.offset = 0;
31
+ this.logger.warn('Time reset to real time');
32
+ }
33
+ /** Advances the time by the given number of seconds. */ advanceTime(seconds) {
34
+ this.offset += seconds * 1000;
35
+ }
36
+ }
37
+ /**
38
+ * A date provider for tests that only advances time via explicit advanceTime() calls.
39
+ * Unlike TestDateProvider, this does NOT track real time progression - time is completely
40
+ * frozen until explicitly advanced. This eliminates flakiness from tests taking
41
+ * varying amounts of real time to execute.
42
+ */ export class ManualDateProvider extends DateProvider {
43
+ currentTimeMs;
44
+ /**
45
+ * @param initialTimeMs - Initial time in milliseconds. Defaults to a round timestamp for easy visualization.
46
+ */ constructor(initialTimeMs = Date.UTC(2025, 0, 1, 0, 0, 0)){
47
+ super();
48
+ this.currentTimeMs = initialTimeMs;
49
+ }
50
+ now() {
51
+ return this.currentTimeMs;
52
+ }
53
+ /** Sets the current time to the given timestamp in milliseconds. */ setTime(timeMs) {
54
+ this.currentTimeMs = timeMs;
55
+ }
56
+ /** Advances the time by the given number of seconds. */ advanceTime(seconds) {
57
+ this.currentTimeMs += seconds * 1000;
58
+ }
59
+ /** Advances the time by the given number of milliseconds. */ advanceTimeMs(ms) {
60
+ this.currentTimeMs += ms;
61
+ }
29
62
  }
@@ -55,7 +55,7 @@ const log = createLogger('foundation:transport_client');
55
55
  msgId,
56
56
  payload
57
57
  };
58
- log.debug(format(`->`, msg));
58
+ log.trace(format(`->`, msg));
59
59
  return new Promise((resolve, reject)=>{
60
60
  this.pendingRequests.push({
61
61
  resolve,
@@ -77,7 +77,7 @@ const log = createLogger('foundation:transport_client');
77
77
  this.close();
78
78
  return;
79
79
  }
80
- log.debug(format(`<-`, msg));
80
+ log.trace(format(`<-`, msg));
81
81
  if (isEventMessage(msg)) {
82
82
  this.emit('event_msg', msg.payload);
83
83
  return;
@@ -0,0 +1,17 @@
1
+ export declare const computeBalancedShaRoot: (leaves: Buffer<ArrayBufferLike>[]) => Buffer<ArrayBufferLike>;
2
+ export declare const computeBalancedPoseidonRoot: (leaves: Buffer<ArrayBufferLike>[]) => Promise<Buffer<ArrayBufferLike>>;
3
+ /**
4
+ * Computes the Merkle root with the provided leaves **synchronously**.
5
+ * This method uses a synchronous hash function (defaults to `sha256Trunc`).
6
+ *
7
+ * @throws If the number of leaves is not a power of two.
8
+ */
9
+ export declare function computeBalancedMerkleTreeRoot(leaves: Buffer[], hasher?: (lhs: Uint8Array<ArrayBufferLike>, rhs: Uint8Array<ArrayBufferLike>) => Buffer<ArrayBuffer>): Buffer;
10
+ /**
11
+ * Computes the Merkle root with the provided leaves **asynchronously**.
12
+ * This method uses an asynchronous hash function (defaults to `poseidon2Hash`).
13
+ *
14
+ * @throws If the number of leaves is not a power of two.
15
+ */
16
+ export declare function computeBalancedMerkleTreeRootAsync(leaves: Buffer[], hasher?: (lhs: Uint8Array<ArrayBufferLike>, rhs: Uint8Array<ArrayBufferLike>) => Promise<Buffer<ArrayBuffer>>): Promise<Buffer>;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFsYW5jZWRfbWVya2xlX3RyZWVfcm9vdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyZWVzL2JhbGFuY2VkX21lcmtsZV90cmVlX3Jvb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsZUFBTyxNQUFNLHNCQUFzQixnRUFBOEQsQ0FBQztBQUVsRyxlQUFPLE1BQU0sMkJBQTJCLHlFQUM4QixDQUFDO0FBRXZFOzs7OztHQUtHO0FBQ0gsd0JBQWdCLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLDhGQUFnQixHQUFHLE1BQU0sQ0FlOUY7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQixrQ0FBa0MsQ0FDdEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUNoQixNQUFNLHVHQUFxQixHQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLENBZWpCIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balanced_merkle_tree_root.d.ts","sourceRoot":"","sources":["../../src/trees/balanced_merkle_tree_root.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,gEAA8D,CAAC;AAElG,eAAO,MAAM,2BAA2B,yEAC8B,CAAC;AAEvE;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,8FAAgB,GAAG,MAAM,CAe9F;AAED;;;;;GAKG;AACH,wBAAsB,kCAAkC,CACtD,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,uGAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAejB"}
@@ -1,20 +1,5 @@
1
- import { pedersenHash as pedersenHashArray } from '@aztec/foundation/crypto/pedersen';
2
- import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
3
- import { sha256Trunc } from '@aztec/foundation/crypto/sha256';
4
- export const shaMerkleHash = (left, right)=>sha256Trunc(Buffer.concat([
5
- left,
6
- right
7
- ]));
8
- export const pedersenMerkleHash = async (left, right)=>(await pedersenHashArray([
9
- left,
10
- right
11
- ])).toBuffer();
12
- export const poseidonMerkleHash = async (left, right)=>(await poseidon2Hash([
13
- left,
14
- right
15
- ])).toBuffer();
1
+ import { poseidonMerkleHash, shaMerkleHash } from './hasher.js';
16
2
  export const computeBalancedShaRoot = (leaves)=>computeBalancedMerkleTreeRoot(leaves);
17
- export const computeBalancedPedersenRoot = async (leaves)=>await computeBalancedMerkleTreeRootAsync(leaves, pedersenMerkleHash);
18
3
  export const computeBalancedPoseidonRoot = async (leaves)=>await computeBalancedMerkleTreeRootAsync(leaves, poseidonMerkleHash);
19
4
  /**
20
5
  * Computes the Merkle root with the provided leaves **synchronously**.
@@ -37,7 +22,7 @@ export const computeBalancedPoseidonRoot = async (leaves)=>await computeBalanced
37
22
  }
38
23
  /**
39
24
  * Computes the Merkle root with the provided leaves **asynchronously**.
40
- * This method uses an asynchronous hash function (defaults to `pedersenHash`).
25
+ * This method uses an asynchronous hash function (defaults to `poseidon2Hash`).
41
26
  *
42
27
  * @throws If the number of leaves is not a power of two.
43
28
  */ export async function computeBalancedMerkleTreeRootAsync(leaves, hasher = poseidonMerkleHash) {
@@ -34,4 +34,6 @@ export interface AsyncHasher {
34
34
  */
35
35
  hashInputs(inputs: Buffer[]): Promise<Buffer<ArrayBuffer>>;
36
36
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvaGFzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxXQUFXLE1BQU07SUFDckI7Ozs7O09BS0c7SUFDSCxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1RDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Q0FDbkQ7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxXQUFXO0lBQzFCOzs7OztPQUtHO0lBQ0gsSUFBSSxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFckU7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0NBQzVEIn0=
37
+ export declare const shaMerkleHash: Hasher['hash'];
38
+ export declare const poseidonMerkleHash: AsyncHasher['hash'];
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvaGFzaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOztHQUVHO0FBQ0gsTUFBTSxXQUFXLE1BQU07SUFDckI7Ozs7O09BS0c7SUFDSCxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1RDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Q0FDbkQ7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxXQUFXO0lBQzFCOzs7OztPQUtHO0lBQ0gsSUFBSSxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFckU7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0NBQzVEO0FBRUQsZUFBTyxNQUFNLGFBQWEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUN5QixDQUFDO0FBRW5FLGVBQU8sTUFBTSxrQkFBa0IsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUNxQixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"hasher.d.ts","sourceRoot":"","sources":["../../src/trees/hasher.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAE5D;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAErE;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;CAC5D"}
1
+ {"version":3,"file":"hasher.d.ts","sourceRoot":"","sources":["../../src/trees/hasher.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAE5D;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAErE;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;CAC5D;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,CACyB,CAAC;AAEnE,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CACqB,CAAC"}
@@ -1,5 +1,10 @@
1
- /**
2
- * Defines hasher interface used by Merkle trees.
3
- */ /**
4
- * Defines an async hasher interface used by Merkle trees.
5
- */ export { };
1
+ import { poseidon2Hash } from '../crypto/poseidon/index.js';
2
+ import { sha256Trunc } from '../crypto/sha256/index.js';
3
+ export const shaMerkleHash = (left, right)=>sha256Trunc(Buffer.concat([
4
+ left,
5
+ right
6
+ ]));
7
+ export const poseidonMerkleHash = async (left, right)=>(await poseidon2Hash([
8
+ left,
9
+ right
10
+ ])).toBuffer();
@@ -1,6 +1,4 @@
1
- export * from './balanced_merkle_tree.js';
2
- export * from './unbalanced_merkle_tree.js';
3
- export * from './unbalanced_tree_store.js';
1
+ export * from './balanced_merkle_tree_root.js';
4
2
  export * from './merkle_tree_calculator.js';
5
3
  export * from './merkle_tree.js';
6
4
  export * from './indexed_merkle_tree_calculator.js';
@@ -10,4 +8,6 @@ export * from './membership_witness.js';
10
8
  export * from './hasher.js';
11
9
  export * from './indexed_tree_leaf.js';
12
10
  export * from './unbalanced_merkle_tree_calculator.js';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmVlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0NBQXdDLENBQUMifQ==
11
+ export * from './unbalanced_merkle_tree_root.js';
12
+ export * from './unbalanced_tree_store.js';
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmVlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsNEJBQTRCLENBQUMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trees/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trees/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wCAAwC,CAAC;AACvD,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC"}
@@ -1,6 +1,4 @@
1
- export * from './balanced_merkle_tree.js';
2
- export * from './unbalanced_merkle_tree.js';
3
- export * from './unbalanced_tree_store.js';
1
+ export * from './balanced_merkle_tree_root.js';
4
2
  export * from './merkle_tree_calculator.js';
5
3
  export * from './merkle_tree.js';
6
4
  export * from './indexed_merkle_tree_calculator.js';
@@ -10,3 +8,5 @@ export * from './membership_witness.js';
10
8
  export * from './hasher.js';
11
9
  export * from './indexed_tree_leaf.js';
12
10
  export * from './unbalanced_merkle_tree_calculator.js';
11
+ export * from './unbalanced_merkle_tree_root.js';
12
+ export * from './unbalanced_tree_store.js';
@@ -5,7 +5,13 @@ import type { SiblingPath } from './sibling_path.js';
5
5
  * Contains information which can be used to prove that a leaf is a member of a Merkle tree.
6
6
  */
7
7
  export declare class MembershipWitness<N extends number> {
8
+ /**
9
+ * Index of a leaf in the Merkle tree.
10
+ */
8
11
  leafIndex: bigint;
12
+ /**
13
+ * Sibling path of the leaf in the Merkle tree.
14
+ */
9
15
  siblingPath: Tuple<Fr, N>;
10
16
  constructor(
11
17
  /**
@@ -23,6 +29,10 @@ export declare class MembershipWitness<N extends number> {
23
29
  toBuffer(): Buffer<ArrayBufferLike>;
24
30
  toJSON(): Buffer<ArrayBufferLike>;
25
31
  toFields(): Fr[];
32
+ /**
33
+ * Returns a representation of the membership witness as expected by intrinsic Noir deserialization.
34
+ */
35
+ toNoirRepresentation(): (string | string[])[];
26
36
  static schemaFor<N extends number>(size: N): import("zod").ZodEffects<import("../schemas/types.js").ZodFor<Buffer<ArrayBufferLike>>, MembershipWitness<N>, any>;
27
37
  /**
28
38
  * Creates a random membership witness. Used for testing purposes.
@@ -54,4 +64,4 @@ export declare class MembershipWitness<N extends number> {
54
64
  };
55
65
  static fromSiblingPath<N extends number>(leafIndex: bigint, siblingPath: SiblingPath<N>): MembershipWitness<N>;
56
66
  }
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyc2hpcF93aXRuZXNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvbWVtYmVyc2hpcF93aXRuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssS0FBSyxFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBQ3BGLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJEOztHQUVHO0FBQ0gscUJBQWEsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLE1BQU07SUFTcEMsU0FBUyxFQUFFLE1BQU07SUFJakIsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBWmxDO0lBQ0U7O09BRUc7SUFDSCxRQUFRLEVBQUUsQ0FBQztJQUNYOztPQUVHO0lBQ0ksU0FBUyxFQUFFLE1BQU07SUFDeEI7O09BRUc7SUFDSSxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFHakM7SUFFRCxRQUFRLDRCQUVQO0lBRUQsTUFBTSw0QkFFTDtJQUVELFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FFZjtJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxzSEFFekM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBYyxNQUFNLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyx3QkFRakQ7SUFFRDs7Ozs7T0FLRztJQUNILE9BQWMsS0FBSyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxTQUFTLFNBQUssR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FLdkY7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FNL0c7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBS2hHO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHO1FBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQUUsQ0FTbEg7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUU3RztDQUNGIn0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyc2hpcF93aXRuZXNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvbWVtYmVyc2hpcF93aXRuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssS0FBSyxFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBQ3BGLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJEOztHQUVHO0FBQ0gscUJBQWEsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLE1BQU07SUFNM0M7O09BRUc7SUFDSSxTQUFTLEVBQUUsTUFBTTtJQUN4Qjs7T0FFRztJQUNJLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQVpsQztJQUNFOztPQUVHO0lBQ0gsUUFBUSxFQUFFLENBQUM7SUFDWDs7T0FFRztJQUNJLFNBQVMsRUFBRSxNQUFNO0lBQ3hCOztPQUVHO0lBQ0ksV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBR2pDO0lBRUQsUUFBUSw0QkFFUDtJQUVELE1BQU0sNEJBRUw7SUFFRCxRQUFRLElBQUksRUFBRSxFQUFFLENBRWY7SUFFRDs7T0FFRztJQUNJLG9CQUFvQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FHbkQ7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsc0hBRXpDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQWMsTUFBTSxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsd0JBUWpEO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFjLEtBQUssQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsU0FBUyxTQUFLLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBS3ZGO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBTS9HO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUtoRztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRztRQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUFFLENBU2xIO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FFN0c7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"membership_witness.d.ts","sourceRoot":"","sources":["../../src/trees/membership_witness.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,uBAAuB,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM;IASpC,SAAS,EAAE,MAAM;IAIjB,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAZlC;IACE;;OAEG;IACH,QAAQ,EAAE,CAAC;IACX;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAGjC;IAED,QAAQ,4BAEP;IAED,MAAM,4BAEL;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,sHAEzC;IAED;;;;OAIG;IACH,OAAc,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,wBAQjD;IAED;;;;;OAKG;IACH,OAAc,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,SAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAKvF;IAED,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAM/G;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAKhG;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG;QAAE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;KAAE,CASlH;IAED,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAE7G;CACF"}
1
+ {"version":3,"file":"membership_witness.d.ts","sourceRoot":"","sources":["../../src/trees/membership_witness.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,uBAAuB,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM;IAM3C;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAZlC;IACE;;OAEG;IACH,QAAQ,EAAE,CAAC;IACX;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAGjC;IAED,QAAQ,4BAEP;IAED,MAAM,4BAEL;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED;;OAEG;IACI,oBAAoB,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAGnD;IAED,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,sHAEzC;IAED;;;;OAIG;IACH,OAAc,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,wBAQjD;IAED;;;;;OAKG;IACH,OAAc,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,SAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAKvF;IAED,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAM/G;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAKhG;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG;QAAE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;KAAE,CASlH;IAED,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAE7G;CACF"}
@@ -31,6 +31,15 @@ import { BufferReader, serializeToBuffer } from '../serialize/index.js';
31
31
  ...this.siblingPath
32
32
  ];
33
33
  }
34
+ /**
35
+ * Returns a representation of the membership witness as expected by intrinsic Noir deserialization.
36
+ */ toNoirRepresentation() {
37
+ // TODO(#12874): remove the stupid as string conversion by modifying ForeignCallOutput type in acvm.js
38
+ return [
39
+ new Fr(this.leafIndex).toString(),
40
+ this.siblingPath.map((fr)=>fr.toString())
41
+ ];
42
+ }
34
43
  static schemaFor(size) {
35
44
  return schemas.Buffer.transform((b)=>MembershipWitness.fromBuffer(b, size));
36
45
  }
@@ -11,4 +11,4 @@ export declare class MerkleTreeCalculator {
11
11
  computeTree(leaves?: Buffer[]): Promise<MerkleTree>;
12
12
  computeTreeRoot(leaves?: Buffer[]): Promise<Buffer>;
13
13
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfY2FsY3VsYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyZWVzL21lcmtsZV90cmVlX2NhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gscUJBQWEsb0JBQW9CO0lBRTdCLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLFVBQVU7SUFDbEIsT0FBTyxDQUFDLE1BQU07SUFIaEIsT0FBTyxlQU1OO0lBRUQsT0FBYSxNQUFNLENBQ2pCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsUUFBUSxHQUFFLE1BQXlCLEVBQ25DLE1BQU0sa0dBQ2lFLGlDQU94RTtJQUVLLFdBQVcsQ0FBQyxNQUFNLEdBQUUsTUFBTSxFQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQW9CNUQ7SUFFSyxlQUFlLENBQUMsTUFBTSxHQUFFLE1BQU0sRUFBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FrQjVEO0NBQ0YifQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVya2xlX3RyZWVfY2FsY3VsYXRvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyZWVzL21lcmtsZV90cmVlX2NhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gscUJBQWEsb0JBQW9CO0lBRTdCLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLFVBQVU7SUFDbEIsT0FBTyxDQUFDLE1BQU07SUFIaEIsT0FBTyxlQU1OO0lBRUQsT0FBYSxNQUFNLENBQ2pCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsUUFBUSxHQUFFLE1BQXlCLEVBQ25DLE1BQU0sa0dBQ2tFLGlDQU96RTtJQUVLLFdBQVcsQ0FBQyxNQUFNLEdBQUUsTUFBTSxFQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQW9CNUQ7SUFFSyxlQUFlLENBQUMsTUFBTSxHQUFFLE1BQU0sRUFBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FrQjVEO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"merkle_tree_calculator.d.ts","sourceRoot":"","sources":["../../src/trees/merkle_tree_calculator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IAHhB,OAAO,eAMN;IAED,OAAa,MAAM,CACjB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAyB,EACnC,MAAM,kGACiE,iCAOxE;IAEK,WAAW,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB5D;IAEK,eAAe,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB5D;CACF"}
1
+ {"version":3,"file":"merkle_tree_calculator.d.ts","sourceRoot":"","sources":["../../src/trees/merkle_tree_calculator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IAHhB,OAAO,eAMN;IAED,OAAa,MAAM,CACjB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAyB,EACnC,MAAM,kGACkE,iCAOzE;IAEK,WAAW,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB5D;IAEK,eAAe,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkB5D;CACF"}
@@ -1,4 +1,4 @@
1
- import { pedersenHash } from '@aztec/foundation/crypto/pedersen';
1
+ import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
2
2
  import { MerkleTree } from './merkle_tree.js';
3
3
  /**
4
4
  * Merkle tree calculator.
@@ -12,7 +12,7 @@ import { MerkleTree } from './merkle_tree.js';
12
12
  this.hasher = hasher;
13
13
  this.hasher = hasher;
14
14
  }
15
- static async create(height, zeroLeaf = Buffer.alloc(32), hasher = async (left, right)=>(await pedersenHash([
15
+ static async create(height, zeroLeaf = Buffer.alloc(32), hasher = async (left, right)=>(await poseidon2Hash([
16
16
  left,
17
17
  right
18
18
  ])).toBuffer()) {
@@ -12,6 +12,7 @@ import type { Hasher } from './hasher.js';
12
12
  * And the elements would be ordered as: [ leaf_at_index_2, node_at_level_2_index_0, node_at_level_1_index_1 ].
13
13
  */
14
14
  export declare class SiblingPath<N extends number> {
15
+ /** Size of the sibling path (number of fields it contains). */
15
16
  pathSize: N;
16
17
  private data;
17
18
  /**
@@ -93,4 +94,4 @@ export declare class SiblingPath<N extends number> {
93
94
  }
94
95
  /** Computes the expected root of a merkle tree given a leaf and its sibling path. */
95
96
  export declare function computeRootFromSiblingPath(leaf: Buffer, siblingPath: Buffer[], index: number, hasher?: (left: Buffer<ArrayBufferLike>, right: Buffer<ArrayBufferLike>) => Promise<Buffer<ArrayBufferLike>>): Promise<Buffer<ArrayBufferLike>>;
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2libGluZ19wYXRoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvc2libGluZ19wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQ0wsS0FBSyxLQUFLLEVBSVgsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUM7Ozs7Ozs7OztHQVNHO0FBQ0gscUJBQWEsV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNO0lBVTlCLFFBQVEsRUFBRSxDQUFDO0lBVHBCLE9BQU8sQ0FBQyxJQUFJLENBQW1CO0lBRS9COzs7O09BSUc7SUFDSDtJQUNFLCtEQUErRDtJQUN4RCxRQUFRLEVBQUUsQ0FBQztJQUNsQiw2QkFBNkI7SUFDN0IsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUdmO0lBRUQsTUFBTSxLQUFLLE1BQU0sc0hBRWhCO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLCtKQUt6QztJQUVELE1BQU0sNEJBRUw7SUFFRDs7Ozs7O09BTUc7SUFDSCxPQUFjLElBQUksQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FRakc7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsa0JBR3hDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxJQUFJLE1BQU0sQ0FFeEI7SUFFRDs7O09BR0c7SUFDSSxhQUFhLElBQUksTUFBTSxFQUFFLENBRS9CO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUV0QjtJQUVEOzs7T0FHRztJQUNJLE9BQU8sSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUc3QjtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUczRTtJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFJOzs7TUFRM0Q7SUFFRDs7O09BR0c7SUFDSSxRQUFRLElBQUksTUFBTSxDQUV4QjtJQUVEOzs7O09BSUc7SUFDSCxPQUFjLFVBQVUsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUV2RTtJQUVEOzs7O09BSUc7SUFDSSxxQkFBcUIsQ0FBQyxhQUFhLFNBQVMsTUFBTSxFQUFFLHdCQUF3QixTQUFTLE1BQU0sRUFDaEcsYUFBYSxFQUFFLGFBQWEsR0FDM0IsV0FBVyxDQUFDLHdCQUF3QixDQUFDLENBS3ZDO0NBQ0Y7QUFFRCxxRkFBcUY7QUFDckYsd0JBQXNCLDBCQUEwQixDQUM5QyxJQUFJLEVBQUUsTUFBTSxFQUNaLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFDckIsS0FBSyxFQUFFLE1BQU0sRUFDYixNQUFNLHNHQUF3RixvQ0FRL0YifQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2libGluZ19wYXRoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJlZXMvc2libGluZ19wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQ0wsS0FBSyxLQUFLLEVBSVgsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUM7Ozs7Ozs7OztHQVNHO0FBQ0gscUJBQWEsV0FBVyxDQUFDLENBQUMsU0FBUyxNQUFNO0lBU3JDLCtEQUErRDtJQUN4RCxRQUFRLEVBQUUsQ0FBQztJQVRwQixPQUFPLENBQUMsSUFBSSxDQUFtQjtJQUUvQjs7OztPQUlHO0lBQ0g7SUFDRSwrREFBK0Q7SUFDeEQsUUFBUSxFQUFFLENBQUM7SUFDbEIsNkJBQTZCO0lBQzdCLElBQUksRUFBRSxNQUFNLEVBQUUsRUFHZjtJQUVELE1BQU0sS0FBSyxNQUFNLHNIQUVoQjtJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQywrSkFLekM7SUFFRCxNQUFNLDRCQUVMO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsT0FBYyxJQUFJLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBUWpHO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLGtCQUd4QztJQUVEOzs7T0FHRztJQUNJLFFBQVEsSUFBSSxNQUFNLENBRXhCO0lBRUQ7OztPQUdHO0lBQ0ksYUFBYSxJQUFJLE1BQU0sRUFBRSxDQUUvQjtJQUVEOzs7T0FHRztJQUNJLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FFdEI7SUFFRDs7O09BR0c7SUFDSSxPQUFPLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FHN0I7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FHM0U7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sU0FBSTs7O01BUTNEO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUSxJQUFJLE1BQU0sQ0FFeEI7SUFFRDs7OztPQUlHO0lBQ0gsT0FBYyxVQUFVLENBQUMsQ0FBQyxTQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FFdkU7SUFFRDs7OztPQUlHO0lBQ0kscUJBQXFCLENBQUMsYUFBYSxTQUFTLE1BQU0sRUFBRSx3QkFBd0IsU0FBUyxNQUFNLEVBQ2hHLGFBQWEsRUFBRSxhQUFhLEdBQzNCLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUt2QztDQUNGO0FBRUQscUZBQXFGO0FBQ3JGLHdCQUFzQiwwQkFBMEIsQ0FDOUMsSUFBSSxFQUFFLE1BQU0sRUFDWixXQUFXLEVBQUUsTUFBTSxFQUFFLEVBQ3JCLEtBQUssRUFBRSxNQUFNLEVBQ2IsTUFBTSxzR0FBeUYsb0NBUWhHIn0=