@aztec/foundation 0.0.1-commit.21caa21 → 0.0.1-commit.21ecf947b
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.
- package/dest/array/index.d.ts +2 -1
- package/dest/array/index.d.ts.map +1 -1
- package/dest/array/index.js +1 -0
- package/dest/array/sorted_array.d.ts +15 -0
- package/dest/array/sorted_array.d.ts.map +1 -0
- package/dest/array/sorted_array.js +109 -0
- package/dest/branded-types/block_number.d.ts +56 -0
- package/dest/branded-types/block_number.d.ts.map +1 -0
- package/dest/branded-types/block_number.js +78 -0
- package/dest/branded-types/checkpoint_number.d.ts +54 -0
- package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
- package/dest/branded-types/checkpoint_number.js +77 -0
- package/dest/branded-types/index.d.ts +4 -1
- package/dest/branded-types/index.d.ts.map +1 -1
- package/dest/branded-types/index.js +3 -0
- package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
- package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
- package/dest/branded-types/index_within_checkpoint.js +59 -0
- package/dest/buffer/buffer16.d.ts +5 -2
- package/dest/buffer/buffer16.d.ts.map +1 -1
- package/dest/buffer/buffer16.js +4 -2
- package/dest/buffer/buffer32.d.ts +5 -2
- package/dest/buffer/buffer32.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +4 -2
- package/dest/collection/array.d.ts +12 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +51 -0
- package/dest/config/env_var.d.ts +2 -2
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/index.d.ts +15 -4
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +32 -9
- package/dest/config/network_config.d.ts +13 -1
- package/dest/config/network_config.d.ts.map +1 -1
- package/dest/config/network_config.js +3 -1
- package/dest/config/parse-env.d.ts +3 -0
- package/dest/config/parse-env.d.ts.map +1 -0
- package/dest/config/parse-env.js +7 -0
- package/dest/config/secret_value.js +3 -1
- package/dest/crypto/bls/bn254_keystore.js +1 -1
- package/dest/crypto/bls/index.js +1 -1
- package/dest/crypto/bn254/index.d.ts +35 -51
- package/dest/crypto/bn254/index.d.ts.map +1 -1
- package/dest/crypto/bn254/index.js +51 -140
- package/dest/crypto/ecdsa/signature.d.ts +11 -2
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
- package/dest/crypto/ecdsa/signature.js +2 -2
- package/dest/crypto/grumpkin/index.d.ts +4 -2
- package/dest/crypto/grumpkin/index.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.js +2 -1
- package/dest/crypto/keys/index.d.ts +2 -2
- package/dest/crypto/keys/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.js +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
- package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.js +1 -1
- package/dest/crypto/poseidon/index.d.ts +2 -3
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +1 -10
- package/dest/crypto/random/randomness_singleton.d.ts +4 -3
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
- package/dest/crypto/random/randomness_singleton.js +5 -5
- package/dest/crypto/schnorr/index.d.ts +3 -2
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +1 -1
- package/dest/crypto/schnorr/signature.d.ts +2 -2
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- package/dest/crypto/schnorr/signature.js +2 -2
- package/dest/crypto/sha256/index.d.ts +2 -2
- package/dest/crypto/sha256/index.d.ts.map +1 -1
- package/dest/crypto/sha256/index.js +1 -1
- package/dest/crypto/sha512/index.d.ts +2 -2
- package/dest/crypto/sha512/index.d.ts.map +1 -1
- package/dest/crypto/sha512/index.js +1 -1
- package/dest/crypto/signature/index.d.ts +2 -2
- package/dest/crypto/signature/index.d.ts.map +1 -1
- package/dest/crypto/sync/pedersen/index.d.ts +2 -2
- package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
- package/dest/crypto/sync/pedersen/index.js +1 -1
- package/dest/crypto/sync/poseidon/index.d.ts +2 -3
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/sync/poseidon/index.js +1 -9
- package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +3 -3
- package/dest/curves/bls12/field.d.ts.map +1 -0
- package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +12 -9
- package/dest/curves/bls12/index.d.ts +3 -0
- package/dest/curves/bls12/index.d.ts.map +1 -0
- package/dest/curves/bls12/index.js +2 -0
- package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +13 -4
- package/dest/curves/bls12/point.d.ts.map +1 -0
- package/dest/{fields/bls12_point.js → curves/bls12/point.js} +10 -8
- package/dest/{fields/fields.d.ts → curves/bn254/field.d.ts} +7 -15
- package/dest/curves/bn254/field.d.ts.map +1 -0
- package/dest/{fields/fields.js → curves/bn254/field.js} +35 -49
- package/dest/curves/bn254/index.d.ts +3 -0
- package/dest/curves/bn254/index.d.ts.map +1 -0
- package/dest/curves/bn254/index.js +2 -0
- package/dest/curves/bn254/point.d.ts +54 -0
- package/dest/curves/bn254/point.d.ts.map +1 -0
- package/dest/curves/bn254/point.js +143 -0
- package/dest/curves/grumpkin/index.d.ts +10 -0
- package/dest/curves/grumpkin/index.d.ts.map +1 -0
- package/dest/curves/grumpkin/index.js +3 -0
- package/dest/{fields → curves/grumpkin}/point.d.ts +13 -4
- package/dest/curves/grumpkin/point.d.ts.map +1 -0
- package/dest/{fields → curves/grumpkin}/point.js +7 -7
- package/dest/error/index.d.ts +4 -4
- package/dest/error/index.d.ts.map +1 -1
- package/dest/eth-address/index.d.ts +3 -2
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +10 -3
- package/dest/eth-signature/eth_signature.d.ts +4 -1
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/iterator/filter.d.ts +3 -0
- package/dest/iterator/filter.d.ts.map +1 -0
- package/dest/iterator/filter.js +7 -0
- package/dest/iterator/index.d.ts +2 -0
- package/dest/iterator/index.d.ts.map +1 -0
- package/dest/iterator/index.js +1 -0
- package/dest/jest/setup.js +4 -1
- package/dest/json-rpc/client/undici.d.ts +1 -1
- package/dest/json-rpc/client/undici.d.ts.map +1 -1
- package/dest/json-rpc/client/undici.js +21 -4
- package/dest/json-rpc/fixtures/class_a.d.ts +3 -3
- package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/class_b.d.ts +3 -3
- package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.js +1 -1
- package/dest/log/libp2p_logger.d.ts +5 -2
- package/dest/log/libp2p_logger.d.ts.map +1 -1
- package/dest/log/libp2p_logger.js +14 -4
- package/dest/log/log-filters.d.ts +17 -4
- package/dest/log/log-filters.d.ts.map +1 -1
- package/dest/log/log-filters.js +26 -12
- package/dest/log/pino-logger-server.d.ts +9 -0
- package/dest/log/pino-logger-server.d.ts.map +1 -0
- package/dest/log/pino-logger-server.js +18 -0
- package/dest/log/pino-logger.d.ts +37 -8
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +118 -29
- package/dest/queue/base_memory_queue.d.ts +2 -2
- package/dest/queue/base_memory_queue.d.ts.map +1 -1
- package/dest/queue/semaphore.d.ts +5 -1
- package/dest/queue/semaphore.d.ts.map +1 -1
- package/dest/retry/index.d.ts +11 -1
- package/dest/retry/index.d.ts.map +1 -1
- package/dest/retry/index.js +11 -0
- package/dest/schemas/schemas.d.ts +7 -3
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +9 -3
- package/dest/schemas/types.d.ts +31 -1
- package/dest/schemas/types.d.ts.map +1 -1
- package/dest/schemas/types.js +25 -1
- package/dest/serialize/buffer_reader.d.ts +14 -4
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +26 -4
- package/dest/serialize/field_reader.d.ts +2 -2
- package/dest/serialize/field_reader.d.ts.map +1 -1
- package/dest/serialize/field_reader.js +1 -1
- package/dest/serialize/free_funcs.d.ts +2 -2
- package/dest/serialize/free_funcs.d.ts.map +1 -1
- package/dest/serialize/free_funcs.js +1 -1
- package/dest/serialize/serialize.d.ts +20 -2
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +32 -1
- package/dest/sleep/index.d.ts +3 -1
- package/dest/sleep/index.d.ts.map +1 -1
- package/dest/sleep/index.js +4 -0
- package/dest/timer/date.d.ts +24 -1
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +32 -0
- package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
- package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
- package/dest/trees/{balanced_merkle_tree.js → balanced_merkle_tree_root.js} +2 -15
- package/dest/trees/hasher.d.ts +3 -1
- package/dest/trees/hasher.d.ts.map +1 -1
- package/dest/trees/hasher.js +10 -5
- package/dest/trees/index.d.ts +4 -4
- package/dest/trees/index.d.ts.map +1 -1
- package/dest/trees/index.js +3 -3
- package/dest/trees/indexed_merkle_tree.js +1 -1
- package/dest/trees/membership_witness.d.ts +12 -2
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/membership_witness.js +10 -1
- package/dest/trees/merkle_tree_calculator.d.ts +1 -1
- package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.js +2 -2
- package/dest/trees/sibling_path.d.ts +3 -2
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +3 -3
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +2 -3
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree_calculator.js +1 -5
- package/dest/trees/{unbalanced_merkle_tree.d.ts → unbalanced_merkle_tree_root.d.ts} +3 -5
- package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
- package/dest/trees/{unbalanced_merkle_tree.js → unbalanced_merkle_tree_root.js} +11 -49
- package/dest/trees/unbalanced_tree_store.d.ts +5 -1
- package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
- package/dest/trees/unbalanced_tree_store.js +49 -1
- package/dest/types/index.d.ts +6 -2
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +6 -0
- package/package.json +48 -9
- package/src/array/index.ts +1 -0
- package/src/array/sorted_array.ts +138 -0
- package/src/branded-types/block_number.ts +117 -0
- package/src/branded-types/checkpoint_number.ts +115 -0
- package/src/branded-types/index.ts +3 -0
- package/src/branded-types/index_within_checkpoint.ts +88 -0
- package/src/buffer/buffer16.ts +2 -2
- package/src/buffer/buffer32.ts +2 -2
- package/src/collection/array.ts +52 -0
- package/src/config/env_var.ts +63 -13
- package/src/config/index.ts +39 -6
- package/src/config/network_config.ts +2 -0
- package/src/config/parse-env.ts +4 -0
- package/src/crypto/bls/bn254_keystore.ts +1 -1
- package/src/crypto/bls/index.ts +1 -1
- package/src/crypto/bn254/index.ts +50 -159
- package/src/crypto/ecdsa/signature.ts +2 -2
- package/src/crypto/grumpkin/index.ts +3 -1
- package/src/crypto/keys/index.ts +1 -1
- package/src/crypto/pedersen/pedersen.wasm.ts +1 -1
- package/src/crypto/poseidon/index.ts +1 -11
- package/src/crypto/random/randomness_singleton.ts +6 -4
- package/src/crypto/schnorr/index.ts +2 -1
- package/src/crypto/schnorr/signature.ts +2 -2
- package/src/crypto/sha256/index.ts +1 -1
- package/src/crypto/sha512/index.ts +1 -1
- package/src/crypto/signature/index.ts +1 -1
- package/src/crypto/sync/pedersen/index.ts +1 -1
- package/src/crypto/sync/poseidon/index.ts +1 -10
- package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +6 -6
- package/src/curves/bls12/index.ts +2 -0
- package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
- package/src/{fields/fields.ts → curves/bn254/field.ts} +33 -56
- package/src/curves/bn254/index.ts +2 -0
- package/src/curves/bn254/point.ts +170 -0
- package/src/curves/grumpkin/index.ts +11 -0
- package/src/{fields → curves/grumpkin}/point.ts +7 -7
- package/src/eth-address/index.ts +8 -2
- package/src/iterator/filter.ts +11 -0
- package/src/iterator/index.ts +1 -0
- package/src/jest/setup.mjs +4 -1
- package/src/json-rpc/client/undici.ts +21 -3
- package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
- package/src/log/libp2p_logger.ts +12 -5
- package/src/log/log-filters.ts +29 -11
- package/src/log/pino-logger-server.ts +25 -0
- package/src/log/pino-logger.ts +140 -39
- package/src/queue/base_memory_queue.ts +1 -1
- package/src/queue/semaphore.ts +5 -0
- package/src/retry/index.ts +18 -0
- package/src/schemas/schemas.ts +14 -3
- package/src/schemas/types.ts +33 -0
- package/src/serialize/buffer_reader.ts +36 -9
- package/src/serialize/field_reader.ts +1 -1
- package/src/serialize/free_funcs.ts +1 -1
- package/src/serialize/serialize.ts +33 -1
- package/src/sleep/index.ts +6 -0
- package/src/timer/date.ts +46 -0
- package/src/trees/{balanced_merkle_tree.ts → balanced_merkle_tree_root.ts} +2 -16
- package/src/trees/hasher.ts +9 -0
- package/src/trees/index.ts +3 -3
- package/src/trees/indexed_merkle_tree.ts +1 -1
- package/src/trees/membership_witness.ts +9 -1
- package/src/trees/merkle_tree_calculator.ts +2 -2
- package/src/trees/sibling_path.ts +3 -3
- package/src/trees/unbalanced_merkle_tree_calculator.ts +1 -12
- package/src/trees/{unbalanced_merkle_tree.ts → unbalanced_merkle_tree_root.ts} +17 -61
- package/src/trees/unbalanced_tree_store.ts +57 -2
- package/src/types/index.ts +11 -1
- package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
- package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
- package/dest/crypto/bn254/bn254_utils.js +0 -56
- package/dest/crypto/index.d.ts +0 -17
- package/dest/crypto/index.d.ts.map +0 -1
- package/dest/crypto/index.js +0 -16
- package/dest/fields/bls12_fields.d.ts.map +0 -1
- package/dest/fields/bls12_point.d.ts.map +0 -1
- package/dest/fields/coordinate.d.ts +0 -63
- package/dest/fields/coordinate.d.ts.map +0 -1
- package/dest/fields/coordinate.js +0 -96
- package/dest/fields/fields.d.ts.map +0 -1
- package/dest/fields/index.d.ts +0 -6
- package/dest/fields/index.d.ts.map +0 -1
- package/dest/fields/index.js +0 -5
- package/dest/fields/point.d.ts.map +0 -1
- package/dest/index.d.ts +0 -31
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -31
- package/dest/json-rpc/server/telemetry.d.ts +0 -2
- package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
- package/dest/json-rpc/server/telemetry.js +0 -0
- package/dest/trees/balanced_merkle_tree.d.ts +0 -22
- package/dest/trees/balanced_merkle_tree.d.ts.map +0 -1
- package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
- package/src/crypto/bn254/bn254_utils.ts +0 -64
- package/src/crypto/index.ts +0 -16
- package/src/fields/coordinate.ts +0 -104
- package/src/fields/index.ts +0 -5
- package/src/index.ts +0 -31
- package/src/json-rpc/server/telemetry.ts +0 -0
package/dest/schemas/schemas.js
CHANGED
|
@@ -3,10 +3,10 @@ import { EpochNumberSchema } from '../branded-types/epoch.js';
|
|
|
3
3
|
import { SlotNumberSchema } from '../branded-types/slot.js';
|
|
4
4
|
import { Buffer32 } from '../buffer/buffer32.js';
|
|
5
5
|
import { SecretValue } from '../config/secret_value.js';
|
|
6
|
+
import { Fq, Fr } from '../curves/bn254/field.js';
|
|
7
|
+
import { Point } from '../curves/grumpkin/point.js';
|
|
6
8
|
import { EthAddress } from '../eth-address/index.js';
|
|
7
|
-
import {
|
|
8
|
-
import { Point } from '../fields/point.js';
|
|
9
|
-
import { isHex, withoutHexPrefix } from '../string/index.js';
|
|
9
|
+
import { isHex, withHexPrefix, withoutHexPrefix } from '../string/index.js';
|
|
10
10
|
import { bufferSchema, hexSchema } from './utils.js';
|
|
11
11
|
export const schemas = {
|
|
12
12
|
/** Accepts a number, bigint, or string as an EpochNumber. */ EpochNumber: EpochNumberSchema,
|
|
@@ -42,9 +42,15 @@ export const schemas = {
|
|
|
42
42
|
z.number(),
|
|
43
43
|
z.string()
|
|
44
44
|
]).pipe(z.coerce.number().int().min(0).max(2 ** 32 - 1)),
|
|
45
|
+
/** Coerces input to UInt64. */ UInt64: z.union([
|
|
46
|
+
z.bigint(),
|
|
47
|
+
z.number(),
|
|
48
|
+
z.string()
|
|
49
|
+
]).pipe(z.coerce.bigint().min(0n).max(2n ** 64n - 1n)),
|
|
45
50
|
/** Accepts a hex string as a Buffer32 type. */ Buffer32: z.string().refine(isHex, 'Not a valid hex string').transform(Buffer32.fromString),
|
|
46
51
|
/** Accepts a base64 string or an object `{ type: 'Buffer', data: [byte, byte...] }` as a buffer. */ Buffer: bufferSchema,
|
|
47
52
|
/** Accepts a hex string as a buffer. */ BufferHex: z.string().refine(isHex, 'Not a valid hex string').transform(withoutHexPrefix).transform((data)=>Buffer.from(data, 'hex')),
|
|
48
53
|
/** Hex string with an optional 0x prefix which gets removed as part of the parsing. */ HexString: hexSchema,
|
|
54
|
+
/** Hex string with an optional 0x prefix which gets enforced as part of the parsing. */ HexStringWith0x: z.string().refine(isHex, 'Not a valid hex string').transform(withHexPrefix),
|
|
49
55
|
/** A secret config value */ SecretValue: SecretValue.schema
|
|
50
56
|
};
|
package/dest/schemas/types.d.ts
CHANGED
|
@@ -1,3 +1,33 @@
|
|
|
1
1
|
import type { ZodType } from 'zod';
|
|
2
2
|
export type ZodFor<T> = ZodType<T, any, any>;
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Creates a schema validator that enforces all properties of type T are present in the schema.
|
|
5
|
+
* This provides compile-time safety to ensure schemas don't miss optional properties.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* interface MyConfig {
|
|
10
|
+
* foo: string;
|
|
11
|
+
* bar?: number;
|
|
12
|
+
* }
|
|
13
|
+
*
|
|
14
|
+
* // ✅ This will work - all keys present
|
|
15
|
+
* const schema1 = zodFor<MyConfig>()(z.object({
|
|
16
|
+
* foo: z.string(),
|
|
17
|
+
* bar: z.number().optional(),
|
|
18
|
+
* }));
|
|
19
|
+
*
|
|
20
|
+
* // ❌ This will error - 'bar' is missing
|
|
21
|
+
* const schema2 = zodFor<MyConfig>()(z.object({
|
|
22
|
+
* foo: z.string(),
|
|
23
|
+
* }));
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function zodFor<T>(): <S extends ZodType<any, any, any>>(schema: keyof T extends keyof S["_output"] ? keyof S["_output"] extends keyof T ? S : S & {
|
|
27
|
+
__error__: "Schema has extra keys not in type";
|
|
28
|
+
__extra__: Exclude<keyof S["_output"], keyof T>;
|
|
29
|
+
} : S & {
|
|
30
|
+
__error__: "Schema is missing keys from type";
|
|
31
|
+
__missing__: Exclude<keyof T, keyof S["_output"]>;
|
|
32
|
+
}) => S;
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQUssQ0FBQztBQUVuQyxNQUFNLE1BQU0sTUFBTSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUU3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILHdCQUFnQixNQUFNLENBQUMsQ0FBQyxNQUNRLENBQUM7Ozs7OztRQU9oQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schemas/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schemas/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CAAC,CAAC,MACQ,CAAC;;;;;;QAOhC"}
|
package/dest/schemas/types.js
CHANGED
|
@@ -1 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Creates a schema validator that enforces all properties of type T are present in the schema.
|
|
3
|
+
* This provides compile-time safety to ensure schemas don't miss optional properties.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```ts
|
|
7
|
+
* interface MyConfig {
|
|
8
|
+
* foo: string;
|
|
9
|
+
* bar?: number;
|
|
10
|
+
* }
|
|
11
|
+
*
|
|
12
|
+
* // ✅ This will work - all keys present
|
|
13
|
+
* const schema1 = zodFor<MyConfig>()(z.object({
|
|
14
|
+
* foo: z.string(),
|
|
15
|
+
* bar: z.number().optional(),
|
|
16
|
+
* }));
|
|
17
|
+
*
|
|
18
|
+
* // ❌ This will error - 'bar' is missing
|
|
19
|
+
* const schema2 = zodFor<MyConfig>()(z.object({
|
|
20
|
+
* foo: z.string(),
|
|
21
|
+
* }));
|
|
22
|
+
* ```
|
|
23
|
+
*/ export function zodFor() {
|
|
24
|
+
return (schema)=>schema;
|
|
25
|
+
}
|
|
@@ -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,
|
|
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":"
|
|
1
|
+
{"version":3,"file":"buffer_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/buffer_reader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAY;;IAGrB,OAAO,CAAC,MAAM;IAFhB,OAAO,CAAC,KAAK,CAAS;IACtB,YACU,MAAM,EAAE,MAAM,EACtB,MAAM,SAAI,EAGX;IAED;;;;;;;OAOG;IACH,OAAc,QAAQ,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,CAUvF;IAED,0EAA0E;IACnE,OAAO,IAAI,OAAO,CAExB;IAED;;;;;OAKG;IACI,UAAU,IAAI,MAAM,CAI1B;IAED;;;;OAIG;IACI,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAG/D;IAED;;;;;;;OAOG;IACI,UAAU,IAAI,MAAM,CAO1B;IAED;;;;;;;OAOG;IACI,WAAW,IAAI,MAAM,CAU3B;IAED;;;;;;;OAOG;IACI,WAAW,IAAI,MAAM,CAU3B;IAED;;;;;OAKG;IACI,UAAU,IAAI,MAAM,CAM1B;IAED,4BAA4B;IACrB,UAAU,IAAI,MAAM,CAE1B;IAED;;;;;OAKG;IACI,UAAU,IAAI,MAAM,CAI1B;IAED;;;;;OAKG;IACI,SAAS,IAAI,MAAM,CAIzB;IAED;;;;;;OAMG;IACI,WAAW,IAAI,OAAO,CAI5B;IAED;;;;;;;OAOG;IACI,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIlC;IAED,yCAAyC;IAClC,SAAS,IAAI,MAAM,CAIzB;IAED;;;;;OAKG;IACI,gBAAgB,IAAI,MAAM,EAAE,CAIlC;IAED;;;;;OAKG;IACI,iBAAiB,IAAI,MAAM,EAAE,CAInC;IAED;;;;;;;;;OASG;IACI,UAAU,CAAC,CAAC,EACjB,gBAAgB,EAAE;QAChB;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,EACD,OAAO,CAAC,EAAE,MAAM,GACf,CAAC,EAAE,CAUL;IAED;;;;;;;;OAQG;IACI,qBAAqB,CAAC,CAAC,EAAE,gBAAgB,EAAE;QAChD;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GAAG,CAAC,EAAE,CAON;IAED;;;;;;;;;OASG;IACI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAClC,IAAI,EAAE,CAAC,EACP,gBAAgB,EAAE;QAChB;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GACA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAGb;IAED;;;;;;;OAOG;IACI,eAAe,CAAC,IAAI,SAAK,GAAG,MAAM,EAAE,CAe1C;IAED;;;;;;OAMG;IACI,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE;QACjC;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GAAG,CAAC,CAEJ;IAED;;;;;;OAMG;IACI,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAGnC;IAED;;;;;;;OAOG;IACI,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1C;IAED;;;;;;;;OAQG;IACI,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAO1C;IAED;;;;;;;OAOG;IACI,cAAc,IAAI,UAAU,CAIlC;IAED;;;;;;;;OAQG;IACI,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE;QAC9B;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,CAAC,CAAC;KACzC,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAA;KAAE,CASvB;IAED;;;OAGG;IACI,SAAS,IAAI,MAAM,CAEzB;IAED;;;OAGG;IACI,cAAc,IAAI,MAAM,CAE9B;CASF;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B"}
|
|
@@ -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
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fq, type Fr } from '../
|
|
1
|
+
import { Fq, type Fr } from '../curves/bn254/field.js';
|
|
2
2
|
import type { Tuple } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* The FieldReader class provides a utility for reading various data types from a field array.
|
|
@@ -118,4 +118,4 @@ export declare class FieldReader {
|
|
|
118
118
|
*/
|
|
119
119
|
isFinished(): boolean;
|
|
120
120
|
}
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRfcmVhZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplL2ZpZWxkX3JlYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXhDOzs7Ozs7O0dBT0c7QUFDSCxxQkFBYSxXQUFXO0lBS3BCLE9BQU8sQ0FBQyxNQUFNO0lBSmhCLE9BQU8sQ0FBQyxLQUFLLENBQVM7SUFDdEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQVM7SUFFaEMsWUFDVSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQ3BCLE1BQU0sU0FBSSxFQU9YO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFjLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FNOUQ7SUFFRDs7OztPQUlHO0lBQ0gsSUFBVyxNQUFNLFdBRWhCO0lBRU0sZUFBZSxJQUFJLE1BQU0sQ0FFL0I7SUFFRDs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLENBQUMsRUFBRSxNQUFNLFFBS3BCO0lBRUQ7Ozs7T0FJRztJQUNJLFNBQVMsSUFBSSxFQUFFLENBS3JCO0lBRUQ7Ozs7T0FJRztJQUNJLFNBQVMsSUFBSSxFQUFFLENBS3JCO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sSUFBSSxFQUFFLENBRWxCO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLFdBQVcsSUFBSSxPQUFPLENBTzVCO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksT0FBTyxJQUFJLE1BQU0sQ0FPdkI7SUFFRDs7Ozs7O09BTUc7SUFDSSxPQUFPLElBQUksTUFBTSxDQU92QjtJQUVEOzs7OztPQUtHO0lBQ0ksY0FBYyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQU03RDtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLE1BQU0sRUFDbEMsSUFBSSxFQUFFLENBQUMsRUFDUCxnQkFBZ0IsRUFBRTtRQUNoQjs7V0FFRztRQUNILFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLEtBQUssQ0FBQyxDQUFDO0tBQ3hDLEdBQ0EsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FHYjtJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVUsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFO1FBQ2pDOztXQUVHO1FBQ0gsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsS0FBSyxDQUFDLENBQUM7S0FDeEMsR0FBRyxDQUFDLENBRUo7SUFFRDs7O09BR0c7SUFDSSxVQUFVLElBQUksT0FBTyxDQUUzQjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/field_reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"field_reader.d.ts","sourceRoot":"","sources":["../../src/serialize/field_reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;GAOG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,MAAM;IAJhB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,YACU,MAAM,EAAE,EAAE,EAAE,EACpB,MAAM,SAAI,EAOX;IAED;;;;;OAKG;IACH,OAAc,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,WAAW,CAM9D;IAED;;;;OAIG;IACH,IAAW,MAAM,WAEhB;IAEM,eAAe,IAAI,MAAM,CAE/B;IAED;;;;OAIG;IACI,IAAI,CAAC,CAAC,EAAE,MAAM,QAKpB;IAED;;;;OAIG;IACI,SAAS,IAAI,EAAE,CAKrB;IAED;;;;OAIG;IACI,SAAS,IAAI,EAAE,CAKrB;IAED;;;;OAIG;IACI,MAAM,IAAI,EAAE,CAElB;IAED;;;;;;;OAOG;IACI,WAAW,IAAI,OAAO,CAO5B;IAED;;;;;;OAMG;IACI,OAAO,IAAI,MAAM,CAOvB;IAED;;;;;;OAMG;IACI,OAAO,IAAI,MAAM,CAOvB;IAED;;;;;OAKG;IACI,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAM7D;IAED;;;;;;;;;OASG;IACI,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAClC,IAAI,EAAE,CAAC,EACP,gBAAgB,EAAE;QAChB;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,CAAC;KACxC,GACA,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAGb;IAED;;;;;;OAMG;IACI,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE;QACjC;;WAEG;QACH,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,CAAC;KACxC,GAAG,CAAC,CAEJ;IAED;;;OAGG;IACI,UAAU,IAAI,OAAO,CAE3B;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr } from '../
|
|
1
|
+
import { Fr } from '../curves/bn254/field.js';
|
|
2
2
|
import type { Tuple } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Convert a boolean value to its corresponding byte representation in a Buffer of size 1.
|
|
@@ -104,4 +104,4 @@ export declare function from2Fields(field1: Fr, field2: Fr): Buffer;
|
|
|
104
104
|
export declare function truncateAndPad(buf: Buffer): Buffer;
|
|
105
105
|
export declare function fromFieldsTuple(fields: Tuple<Fr, 2>): Buffer;
|
|
106
106
|
export declare function toHumanReadable(buf: Buffer, maxLen?: number): string;
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlZV9mdW5jcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcmlhbGl6ZS9mcmVlX2Z1bmNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFeEM7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixVQUFVLENBQUMsQ0FBQyxFQUFFLE9BQU8sdUJBSXBDO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixhQUFhLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLFNBQUksdUJBSXREO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsU0FBSSx1QkFJdEQ7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsd0JBQWdCLGFBQWEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsU0FBSSx1QkFJdEQ7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLFNBQUksdUJBSXpEO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLGlCQUFpQixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxTQUFLLDJCQUUzRDtBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCx3QkFBZ0IsWUFBWSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxTQUFJLHVCQUlyRDtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLFVBQVUsQ0FBQyxDQUFDLEVBQUUsTUFBTSx1QkFLbkM7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHNCQUFzQixDQUFDLEdBQUcsRUFBRSxNQUFNLHVCQUlqRDtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FNNUM7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQVUvQztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsTUFBTSxDQVcxRDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQU1sRDtBQUVELHdCQUFnQixlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUU1RDtBQUVELHdCQUFnQixlQUFlLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQU1wRSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"free_funcs.d.ts","sourceRoot":"","sources":["../../src/serialize/free_funcs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"free_funcs.d.ts","sourceRoot":"","sources":["../../src/serialize/free_funcs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,uBAIpC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,uBAItD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,uBAItD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,uBAItD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,uBAIzD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAK,2BAE3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,uBAIrD;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,uBAKnC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,uBAIjD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM5C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAU/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAW1D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,CAE5D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAMpE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { toBufferBE } from '../bigint-buffer/index.js';
|
|
2
|
-
import { Fr } from '../
|
|
2
|
+
import { Fr } from '../curves/bn254/field.js';
|
|
3
3
|
/**
|
|
4
4
|
* Convert a boolean value to its corresponding byte representation in a Buffer of size 1.
|
|
5
5
|
* The function takes a boolean value and writes it into a new buffer as either 1 (true) or 0 (false).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr } from '../
|
|
1
|
+
import { Fr } from '../curves/bn254/field.js';
|
|
2
2
|
/**
|
|
3
3
|
* For serializing an array of fixed length buffers.
|
|
4
4
|
* @param arr - Array of bufferable.
|
|
@@ -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,
|
|
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,
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/serialize/serialize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { toBigIntBE, toBufferBE } from '../bigint-buffer/index.js';
|
|
2
|
-
import { Fr } from '../
|
|
2
|
+
import { Fr } from '../curves/bn254/field.js';
|
|
3
3
|
import { numToUInt32BE } from './free_funcs.js';
|
|
4
4
|
/**
|
|
5
5
|
* For serializing an array of fixed length buffers.
|
|
@@ -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.
|
package/dest/sleep/index.d.ts
CHANGED
|
@@ -48,4 +48,6 @@ export declare class InterruptibleSleep {
|
|
|
48
48
|
* @returns A Promise that resolves after the specified duration, allowing the use of 'await' to pause execution.
|
|
49
49
|
*/
|
|
50
50
|
export declare function sleep<T>(ms: number, returnValue?: T): Promise<T>;
|
|
51
|
-
|
|
51
|
+
/** Sleeps until the target date */
|
|
52
|
+
export declare function sleepUntil<T>(target: Date, now: Date, returnValue?: T): Promise<T>;
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zbGVlcC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILHFCQUFhLGtCQUFrQjtJQUM3QixPQUFPLENBQUMsVUFBVSxDQUE2QztJQUUvRDs7Ozs7OztPQU9HO0lBQ1UsS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWU1QztJQUVEOzs7Ozs7T0FNRztJQUNJLFNBQVMsQ0FBQyxnQkFBZ0IsVUFBUSxHQUFHLElBQUksQ0FHL0M7Q0FDRjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUVoRTtBQUVELG1DQUFtQztBQUNuQyx3QkFBZ0IsVUFBVSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FHbEYifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sleep/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAA6C;IAE/D;;;;;;;OAOG;IACU,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe5C;IAED;;;;;;OAMG;IACI,SAAS,CAAC,gBAAgB,UAAQ,GAAG,IAAI,CAG/C;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhE"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sleep/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAA6C;IAE/D;;;;;;;OAOG;IACU,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe5C;IAED;;;;;;OAMG;IACI,SAAS,CAAC,gBAAgB,UAAQ,GAAG,IAAI,CAG/C;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhE;AAED,mCAAmC;AACnC,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAGlF"}
|
package/dest/sleep/index.js
CHANGED
|
@@ -65,3 +65,7 @@ import { InterruptError } from '../error/index.js';
|
|
|
65
65
|
*/ export function sleep(ms, returnValue) {
|
|
66
66
|
return new Promise((resolve)=>setTimeout(()=>resolve(returnValue), ms));
|
|
67
67
|
}
|
|
68
|
+
/** Sleeps until the target date */ export function sleepUntil(target, now, returnValue) {
|
|
69
|
+
const ms = target.getTime() - now.getTime();
|
|
70
|
+
return sleep(ms, returnValue);
|
|
71
|
+
}
|
package/dest/timer/date.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export declare class DateProvider {
|
|
3
3
|
now(): number;
|
|
4
4
|
nowInSeconds(): number;
|
|
5
|
+
nowAsDate(): Date;
|
|
5
6
|
}
|
|
6
7
|
/** Returns current datetime and allows to override it. */
|
|
7
8
|
export declare class TestDateProvider extends DateProvider {
|
|
@@ -10,5 +11,27 @@ export declare class TestDateProvider extends DateProvider {
|
|
|
10
11
|
constructor(logger?: import("../log/pino-logger.js").Logger);
|
|
11
12
|
now(): number;
|
|
12
13
|
setTime(timeMs: number): void;
|
|
14
|
+
/** Advances the time by the given number of seconds. */
|
|
15
|
+
advanceTime(seconds: number): void;
|
|
13
16
|
}
|
|
14
|
-
|
|
17
|
+
/**
|
|
18
|
+
* A date provider for tests that only advances time via explicit advanceTime() calls.
|
|
19
|
+
* Unlike TestDateProvider, this does NOT track real time progression - time is completely
|
|
20
|
+
* frozen until explicitly advanced. This eliminates flakiness from tests taking
|
|
21
|
+
* varying amounts of real time to execute.
|
|
22
|
+
*/
|
|
23
|
+
export declare class ManualDateProvider extends DateProvider {
|
|
24
|
+
private currentTimeMs;
|
|
25
|
+
/**
|
|
26
|
+
* @param initialTimeMs - Initial time in milliseconds. Defaults to a round timestamp for easy visualization.
|
|
27
|
+
*/
|
|
28
|
+
constructor(initialTimeMs?: number);
|
|
29
|
+
now(): number;
|
|
30
|
+
/** Sets the current time to the given timestamp in milliseconds. */
|
|
31
|
+
setTime(timeMs: number): void;
|
|
32
|
+
/** Advances the time by the given number of seconds. */
|
|
33
|
+
advanceTime(seconds: number): void;
|
|
34
|
+
/** Advances the time by the given number of milliseconds. */
|
|
35
|
+
advanceTimeMs(ms: number): void;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RpbWVyL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsZ0NBQWdDO0FBQ2hDLHFCQUFhLFlBQVk7SUFDaEIsR0FBRyxJQUFJLE1BQU0sQ0FFbkI7SUFFTSxZQUFZLElBQUksTUFBTSxDQUU1QjtJQUVNLFNBQVMsSUFBSSxJQUFJLENBRXZCO0NBQ0Y7QUFFRCwwREFBMEQ7QUFDMUQscUJBQWEsZ0JBQWlCLFNBQVEsWUFBWTtJQUdwQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU07SUFGbkMsT0FBTyxDQUFDLE1BQU0sQ0FBSztJQUVuQixZQUE2QixNQUFNLHlDQUFnRCxFQUVsRjtJQUVlLEdBQUcsSUFBSSxNQUFNLENBRTVCO0lBRU0sT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLFFBRzVCO0lBRUQsd0RBQXdEO0lBQ2pELFdBQVcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxRQUVqQztDQUNGO0FBRUQ7Ozs7O0dBS0c7QUFDSCxxQkFBYSxrQkFBbUIsU0FBUSxZQUFZO0lBQ2xELE9BQU8sQ0FBQyxhQUFhLENBQVM7SUFFOUI7O09BRUc7SUFDSCxZQUFZLGFBQWEsR0FBRSxNQUFzQyxFQUdoRTtJQUVlLEdBQUcsSUFBSSxNQUFNLENBRTVCO0lBRUQsb0VBQW9FO0lBQzdELE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxRQUU1QjtJQUVELHdEQUF3RDtJQUNqRCxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sUUFFakM7SUFFRCw2REFBNkQ7SUFDdEQsYUFBYSxDQUFDLEVBQUUsRUFBRSxNQUFNLFFBRTlCO0NBQ0YifQ==
|
package/dest/timer/date.d.ts.map
CHANGED
|
@@ -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;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,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"}
|
package/dest/timer/date.js
CHANGED
|
@@ -6,6 +6,9 @@ import { createLogger } from '../log/pino-logger.js';
|
|
|
6
6
|
nowInSeconds() {
|
|
7
7
|
return Math.floor(this.now() / 1000);
|
|
8
8
|
}
|
|
9
|
+
nowAsDate() {
|
|
10
|
+
return new Date(this.now());
|
|
11
|
+
}
|
|
9
12
|
}
|
|
10
13
|
/** Returns current datetime and allows to override it. */ export class TestDateProvider extends DateProvider {
|
|
11
14
|
logger;
|
|
@@ -23,4 +26,33 @@ import { createLogger } from '../log/pino-logger.js';
|
|
|
23
26
|
timeMs
|
|
24
27
|
});
|
|
25
28
|
}
|
|
29
|
+
/** Advances the time by the given number of seconds. */ advanceTime(seconds) {
|
|
30
|
+
this.offset += seconds * 1000;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A date provider for tests that only advances time via explicit advanceTime() calls.
|
|
35
|
+
* Unlike TestDateProvider, this does NOT track real time progression - time is completely
|
|
36
|
+
* frozen until explicitly advanced. This eliminates flakiness from tests taking
|
|
37
|
+
* varying amounts of real time to execute.
|
|
38
|
+
*/ export class ManualDateProvider extends DateProvider {
|
|
39
|
+
currentTimeMs;
|
|
40
|
+
/**
|
|
41
|
+
* @param initialTimeMs - Initial time in milliseconds. Defaults to a round timestamp for easy visualization.
|
|
42
|
+
*/ constructor(initialTimeMs = Date.UTC(2025, 0, 1, 0, 0, 0)){
|
|
43
|
+
super();
|
|
44
|
+
this.currentTimeMs = initialTimeMs;
|
|
45
|
+
}
|
|
46
|
+
now() {
|
|
47
|
+
return this.currentTimeMs;
|
|
48
|
+
}
|
|
49
|
+
/** Sets the current time to the given timestamp in milliseconds. */ setTime(timeMs) {
|
|
50
|
+
this.currentTimeMs = timeMs;
|
|
51
|
+
}
|
|
52
|
+
/** Advances the time by the given number of seconds. */ advanceTime(seconds) {
|
|
53
|
+
this.currentTimeMs += seconds * 1000;
|
|
54
|
+
}
|
|
55
|
+
/** Advances the time by the given number of milliseconds. */ advanceTimeMs(ms) {
|
|
56
|
+
this.currentTimeMs += ms;
|
|
57
|
+
}
|
|
26
58
|
}
|
|
@@ -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,18 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const shaMerkleHash = (left, right)=>sha256Trunc(Buffer.concat([
|
|
3
|
-
left,
|
|
4
|
-
right
|
|
5
|
-
]));
|
|
6
|
-
export const pedersenMerkleHash = async (left, right)=>(await pedersenHashArray([
|
|
7
|
-
left,
|
|
8
|
-
right
|
|
9
|
-
])).toBuffer();
|
|
10
|
-
export const poseidonMerkleHash = async (left, right)=>(await poseidon2Hash([
|
|
11
|
-
left,
|
|
12
|
-
right
|
|
13
|
-
])).toBuffer();
|
|
1
|
+
import { poseidonMerkleHash, shaMerkleHash } from './hasher.js';
|
|
14
2
|
export const computeBalancedShaRoot = (leaves)=>computeBalancedMerkleTreeRoot(leaves);
|
|
15
|
-
export const computeBalancedPedersenRoot = async (leaves)=>await computeBalancedMerkleTreeRootAsync(leaves, pedersenMerkleHash);
|
|
16
3
|
export const computeBalancedPoseidonRoot = async (leaves)=>await computeBalancedMerkleTreeRootAsync(leaves, poseidonMerkleHash);
|
|
17
4
|
/**
|
|
18
5
|
* Computes the Merkle root with the provided leaves **synchronously**.
|
|
@@ -35,7 +22,7 @@ export const computeBalancedPoseidonRoot = async (leaves)=>await computeBalanced
|
|
|
35
22
|
}
|
|
36
23
|
/**
|
|
37
24
|
* Computes the Merkle root with the provided leaves **asynchronously**.
|
|
38
|
-
* This method uses an asynchronous hash function (defaults to `
|
|
25
|
+
* This method uses an asynchronous hash function (defaults to `poseidon2Hash`).
|
|
39
26
|
*
|
|
40
27
|
* @throws If the number of leaves is not a power of two.
|
|
41
28
|
*/ export async function computeBalancedMerkleTreeRootAsync(leaves, hasher = poseidonMerkleHash) {
|