@aztec/foundation 0.0.1-commit.96bb3f7 → 0.0.1-commit.993d240
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/sorted_array.d.ts +6 -1
- package/dest/array/sorted_array.d.ts.map +1 -1
- package/dest/array/sorted_array.js +18 -15
- package/dest/bigint-buffer/index.d.ts +1 -1
- package/dest/bigint-buffer/index.d.ts.map +1 -1
- package/dest/bigint-buffer/index.js +6 -1
- package/dest/branded-types/block_number.d.ts +6 -3
- package/dest/branded-types/block_number.d.ts.map +1 -1
- package/dest/branded-types/block_number.js +18 -4
- package/dest/branded-types/buffer32_hash.d.ts +27 -0
- package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
- package/dest/branded-types/buffer32_hash.js +12 -0
- package/dest/branded-types/checkpoint_number.d.ts +9 -3
- package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
- package/dest/branded-types/checkpoint_number.js +11 -0
- package/dest/branded-types/epoch.d.ts +2 -2
- package/dest/branded-types/epoch.d.ts.map +1 -1
- package/dest/branded-types/index.d.ts +3 -1
- package/dest/branded-types/index.d.ts.map +1 -1
- package/dest/branded-types/index.js +2 -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/branded-types/slot.d.ts +5 -2
- package/dest/branded-types/slot.d.ts.map +1 -1
- package/dest/branded-types/slot.js +3 -0
- package/dest/buffer/buffer16.d.ts +6 -1
- package/dest/buffer/buffer16.d.ts.map +1 -1
- package/dest/buffer/buffer32.d.ts +28 -58
- package/dest/buffer/buffer32.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +29 -63
- package/dest/buffer/index.d.ts +2 -1
- package/dest/buffer/index.d.ts.map +1 -1
- package/dest/buffer/index.js +1 -0
- package/dest/buffer/utils.d.ts +3 -0
- package/dest/buffer/utils.d.ts.map +1 -0
- package/dest/buffer/utils.js +7 -0
- package/dest/collection/array.d.ts +22 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +84 -0
- package/dest/collection/index.d.ts +3 -1
- package/dest/collection/index.d.ts.map +1 -1
- package/dest/collection/index.js +2 -0
- package/dest/collection/lru_map.d.ts +41 -0
- package/dest/collection/lru_map.d.ts.map +1 -0
- package/dest/collection/lru_map.js +119 -0
- package/dest/collection/lru_set.d.ts +35 -0
- package/dest/collection/lru_set.d.ts.map +1 -0
- package/dest/collection/lru_set.js +95 -0
- package/dest/committable/committable.js +1 -1
- 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 +50 -29
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +57 -43
- package/dest/config/network_config.d.ts +15 -41
- package/dest/config/network_config.d.ts.map +1 -1
- package/dest/config/network_config.js +4 -1
- package/dest/config/network_name.d.ts +2 -2
- package/dest/config/network_name.d.ts.map +1 -1
- package/dest/config/network_name.js +2 -2
- package/dest/config/secret_value.d.ts +2 -2
- package/dest/config/secret_value.d.ts.map +1 -1
- package/dest/crypto/aes128/index.d.ts +2 -1
- package/dest/crypto/aes128/index.d.ts.map +1 -1
- package/dest/crypto/aes128/index.js +11 -2
- package/dest/crypto/bls/bn254_keystore.d.ts +9 -176
- package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
- package/dest/crypto/bls/bn254_keystore.js +0 -17
- package/dest/crypto/ecdsa/signature.d.ts +10 -1
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.d.ts +1 -2
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +40 -42
- 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 +4 -4
- package/dest/crypto/schnorr/index.d.ts +8 -7
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +6 -6
- package/dest/crypto/schnorr/signature.d.ts +9 -29
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- package/dest/crypto/schnorr/signature.js +20 -36
- package/dest/crypto/secp256k1-signer/utils.d.ts +12 -1
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/utils.js +26 -0
- package/dest/crypto/sync/poseidon/index.d.ts +1 -2
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/sync/poseidon/index.js +0 -8
- package/dest/curves/bls12/field.d.ts +3 -3
- package/dest/curves/bls12/field.d.ts.map +1 -1
- package/dest/curves/bls12/field.js +0 -5
- package/dest/curves/bls12/point.d.ts +11 -2
- package/dest/curves/bls12/point.d.ts.map +1 -1
- package/dest/curves/bn254/field.d.ts +24 -19
- package/dest/curves/bn254/field.d.ts.map +1 -1
- package/dest/curves/bn254/field.js +28 -19
- package/dest/curves/grumpkin/point.d.ts +21 -26
- package/dest/curves/grumpkin/point.d.ts.map +1 -1
- package/dest/curves/grumpkin/point.js +29 -43
- package/dest/error/index.d.ts +4 -4
- package/dest/error/index.d.ts.map +1 -1
- package/dest/eth-address/index.d.ts +2 -2
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +0 -3
- package/dest/eth-signature/eth_signature.d.ts +6 -2
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/eth-signature/eth_signature.js +7 -2
- package/dest/fifo/fifo_frame_reader.d.ts +41 -0
- package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
- package/dest/fifo/fifo_frame_reader.js +74 -0
- package/dest/fifo/index.d.ts +2 -0
- package/dest/fifo/index.d.ts.map +1 -0
- package/dest/fifo/index.js +1 -0
- package/dest/fifo_set/fifo_set.d.ts +15 -0
- package/dest/fifo_set/fifo_set.d.ts.map +1 -0
- package/dest/fifo_set/fifo_set.js +39 -0
- package/dest/fifo_set/index.d.ts +2 -0
- package/dest/fifo_set/index.d.ts.map +1 -0
- package/dest/fifo_set/index.js +1 -0
- package/dest/jest/setup.js +28 -1
- package/dest/json-rpc/client/fetch.d.ts +1 -1
- package/dest/json-rpc/client/fetch.d.ts.map +1 -1
- package/dest/json-rpc/client/fetch.js +4 -3
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.js +3 -3
- 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 +23 -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/fixtures/test_state.d.ts +4 -8
- package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/test_state.js +57 -17
- package/dest/json-rpc/server/api_key_auth.d.ts +19 -0
- package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
- package/dest/json-rpc/server/api_key_auth.js +57 -0
- package/dest/json-rpc/server/index.d.ts +2 -1
- package/dest/json-rpc/server/index.d.ts.map +1 -1
- package/dest/json-rpc/server/index.js +1 -0
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts +8 -3
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.js +28 -14
- package/dest/log/bigint-utils.d.ts +5 -0
- package/dest/log/bigint-utils.d.ts.map +1 -0
- package/dest/log/bigint-utils.js +21 -0
- package/dest/log/gcloud-logger-config.d.ts +1 -1
- package/dest/log/gcloud-logger-config.d.ts.map +1 -1
- package/dest/log/gcloud-logger-config.js +3 -0
- 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 +137 -29
- package/dest/noir/noir_package_config.d.ts +19 -104
- package/dest/noir/noir_package_config.d.ts.map +1 -1
- package/dest/noir/noir_package_config.js +1 -1
- package/dest/queue/base_memory_queue.d.ts +2 -2
- package/dest/queue/base_memory_queue.d.ts.map +1 -1
- package/dest/queue/batch_queue.d.ts +1 -1
- package/dest/queue/batch_queue.d.ts.map +1 -1
- package/dest/queue/batch_queue.js +1 -0
- package/dest/queue/semaphore.d.ts +5 -1
- package/dest/queue/semaphore.d.ts.map +1 -1
- package/dest/retry/index.d.ts +22 -1
- package/dest/retry/index.d.ts.map +1 -1
- package/dest/retry/index.js +32 -0
- package/dest/schemas/api.d.ts +12 -10
- package/dest/schemas/api.d.ts.map +1 -1
- package/dest/schemas/api.js +7 -1
- package/dest/schemas/parse.d.ts +4 -4
- package/dest/schemas/parse.d.ts.map +1 -1
- package/dest/schemas/parse.js +6 -5
- package/dest/schemas/schemas.d.ts +15 -15
- package/dest/schemas/types.d.ts +3 -3
- package/dest/schemas/types.d.ts.map +1 -1
- package/dest/schemas/utils.d.ts +7 -11
- package/dest/schemas/utils.d.ts.map +1 -1
- package/dest/schemas/utils.js +2 -18
- 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/buffer_sink.d.ts +134 -0
- package/dest/serialize/buffer_sink.d.ts.map +1 -0
- package/dest/serialize/buffer_sink.js +297 -0
- package/dest/serialize/index.d.ts +2 -1
- package/dest/serialize/index.d.ts.map +1 -1
- package/dest/serialize/index.js +1 -0
- package/dest/serialize/serialize.d.ts +19 -1
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +31 -0
- package/dest/sleep/index.d.ts +2 -1
- package/dest/sleep/index.d.ts.map +1 -1
- package/dest/sleep/index.js +10 -1
- package/dest/string/index.js +1 -1
- package/dest/timer/date.d.ts +25 -1
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +33 -0
- package/dest/timer/index.d.ts +2 -2
- package/dest/timer/index.d.ts.map +1 -1
- package/dest/timer/index.js +1 -1
- package/dest/timer/timeout.d.ts +3 -1
- package/dest/timer/timeout.d.ts.map +1 -1
- package/dest/timer/timeout.js +26 -0
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts +11 -2
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
- package/dest/transport/index.d.ts +1 -2
- package/dest/transport/index.d.ts.map +1 -1
- package/dest/transport/index.js +0 -1
- package/dest/transport/transport_client.js +2 -2
- package/dest/trees/balanced_merkle_tree_root.d.ts +16 -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} +3 -19
- package/dest/trees/hasher.d.ts +4 -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_calculator.d.ts +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.js +5 -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 +9 -0
- package/dest/trees/merkle_tree_calculator.d.ts +4 -2
- package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.js +1 -5
- package/dest/trees/sibling_path.d.ts +6 -4
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +10 -8
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +2 -2
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree_calculator.js +1 -1
- package/dest/trees/{unbalanced_merkle_tree.d.ts → unbalanced_merkle_tree_root.d.ts} +4 -9
- package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
- package/dest/trees/{unbalanced_merkle_tree.js → unbalanced_merkle_tree_root.js} +9 -54
- 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 +12 -2
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +3 -0
- package/package.json +29 -6
- package/src/array/sorted_array.ts +22 -17
- package/src/bigint-buffer/index.ts +6 -1
- package/src/branded-types/block_number.ts +25 -2
- package/src/branded-types/buffer32_hash.ts +38 -0
- package/src/branded-types/checkpoint_number.ts +16 -1
- package/src/branded-types/epoch.ts +1 -1
- package/src/branded-types/index.ts +2 -0
- package/src/branded-types/index_within_checkpoint.ts +88 -0
- package/src/branded-types/slot.ts +6 -1
- package/src/buffer/buffer16.ts +3 -0
- package/src/buffer/buffer32.ts +39 -68
- package/src/buffer/index.ts +1 -0
- package/src/buffer/utils.ts +8 -0
- package/src/collection/array.ts +86 -0
- package/src/collection/index.ts +2 -0
- package/src/collection/lru_map.ts +143 -0
- package/src/collection/lru_set.ts +115 -0
- package/src/committable/committable.ts +1 -1
- package/src/config/env_var.ts +84 -28
- package/src/config/index.ts +132 -95
- package/src/config/network_config.ts +3 -0
- package/src/config/network_name.ts +4 -4
- package/src/config/secret_value.ts +1 -1
- package/src/crypto/aes128/index.ts +11 -2
- package/src/crypto/bls/bn254_keystore.ts +0 -23
- package/src/crypto/poseidon/index.ts +42 -44
- package/src/crypto/random/randomness_singleton.ts +9 -5
- package/src/crypto/schnorr/index.ts +9 -8
- package/src/crypto/schnorr/signature.ts +17 -46
- package/src/crypto/secp256k1-signer/utils.ts +32 -0
- package/src/crypto/sync/poseidon/index.ts +0 -9
- package/src/curves/bls12/field.ts +0 -7
- package/src/curves/bn254/field.ts +41 -36
- package/src/curves/grumpkin/point.ts +23 -40
- package/src/eth-address/index.ts +0 -4
- package/src/eth-signature/eth_signature.ts +7 -1
- package/src/fifo/fifo_frame_reader.ts +98 -0
- package/src/fifo/index.ts +1 -0
- package/src/fifo_set/fifo_set.ts +52 -0
- package/src/fifo_set/index.ts +1 -0
- package/src/jest/setup.mjs +31 -1
- package/src/json-rpc/client/fetch.ts +4 -3
- package/src/json-rpc/client/safe_json_rpc_client.ts +4 -2
- package/src/json-rpc/client/undici.ts +23 -3
- package/src/json-rpc/fixtures/test_state.ts +10 -10
- package/src/json-rpc/server/api_key_auth.ts +63 -0
- package/src/json-rpc/server/index.ts +1 -0
- package/src/json-rpc/server/safe_json_rpc_server.ts +32 -14
- package/src/log/bigint-utils.ts +25 -0
- package/src/log/gcloud-logger-config.ts +5 -0
- 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 +160 -39
- package/src/noir/noir_package_config.ts +32 -20
- package/src/queue/base_memory_queue.ts +1 -1
- package/src/queue/batch_queue.ts +1 -0
- package/src/queue/semaphore.ts +5 -0
- package/src/retry/index.ts +48 -0
- package/src/schemas/api.ts +25 -25
- package/src/schemas/parse.ts +9 -6
- package/src/schemas/schemas.ts +4 -4
- package/src/schemas/types.ts +2 -2
- package/src/schemas/utils.ts +4 -38
- package/src/serialize/buffer_reader.ts +36 -9
- package/src/serialize/buffer_sink.ts +350 -0
- package/src/serialize/index.ts +1 -0
- package/src/serialize/serialize.ts +32 -0
- package/src/sleep/index.ts +10 -1
- package/src/string/index.ts +1 -1
- package/src/timer/date.ts +48 -0
- package/src/timer/index.ts +1 -1
- package/src/timer/timeout.ts +31 -0
- package/src/transport/dispatch/create_dispatch_proxy.ts +11 -1
- package/src/transport/index.ts +0 -1
- package/src/transport/transport_client.ts +2 -2
- package/src/trees/{balanced_merkle_tree.ts → balanced_merkle_tree_root.ts} +3 -22
- package/src/trees/hasher.ts +12 -0
- package/src/trees/index.ts +3 -3
- package/src/trees/indexed_merkle_tree_calculator.ts +5 -1
- package/src/trees/membership_witness.ts +8 -0
- package/src/trees/merkle_tree_calculator.ts +4 -10
- package/src/trees/sibling_path.ts +11 -6
- package/src/trees/unbalanced_merkle_tree_calculator.ts +1 -2
- package/src/trees/{unbalanced_merkle_tree.ts → unbalanced_merkle_tree_root.ts} +9 -70
- package/src/trees/unbalanced_tree_store.ts +57 -2
- package/src/types/index.ts +20 -1
- package/dest/crypto/serialize.d.ts +0 -51
- package/dest/crypto/serialize.d.ts.map +0 -1
- package/dest/crypto/serialize.js +0 -68
- package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
- package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
- package/dest/transport/dispatch/create_dispatch_fn.js +0 -17
- 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/serialize.ts +0 -85
- package/src/transport/dispatch/create_dispatch_fn.ts +0 -35
|
@@ -137,7 +137,7 @@ export declare class EthAddress {
|
|
|
137
137
|
/** Converts a number into an address. Useful for testing. */
|
|
138
138
|
static fromNumber(num: bigint | number): EthAddress;
|
|
139
139
|
toJSON(): `0x${string}`;
|
|
140
|
-
static get schema(): import("zod").ZodType<EthAddress,
|
|
140
|
+
static get schema(): import("zod").ZodType<EthAddress, string, import("zod/v4/core").$ZodTypeInternals<EthAddress, string>>;
|
|
141
141
|
static areEqual(a: EthAddress | string, b: EthAddress | string): boolean;
|
|
142
142
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldGgtYWRkcmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2xFOzs7OztHQUtHO0FBQ0gscUJBQWEsVUFBVTtJQU1ULE9BQU8sQ0FBQyxNQUFNO0lBTDFCLGdEQUFnRDtJQUNoRCxPQUFjLGFBQWEsU0FBTTtJQUNqQywwRUFBMEU7SUFDMUUsT0FBYyxJQUFJLGFBQTBEO0lBRTVFLFlBQW9CLE1BQU0sRUFBRSxNQUFNLEVBSWpDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLGNBS3ZDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQVFsRDtJQUVEOzs7Ozs7T0FNRztJQUNILE9BQWMsTUFBTSxlQUVuQjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsT0FBYyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sV0FVdEM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sWUFFWjtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxNQUFNLFdBY2pEO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsT0FBYyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLEtBQUssTUFBTSxFQUFFLENBa0I5RDtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxXQUU1QjtJQUVEOzs7Ozs7T0FNRztJQUNJLFFBQVEsa0JBRWQ7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FFZjtJQUVEOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixrQkFFdEI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLDRCQUVkO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksVUFBVSx3QkFJaEI7SUFFRDs7OztPQUlHO0lBQ0ksT0FBTyxPQUViO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxVQUFVLENBRW5DO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxjQUczQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFVBQVUsQ0FHM0Q7SUFFRCw2REFBNkQ7SUFDN0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxVQUFVLENBSWxEO0lBRUQsTUFBTSxrQkFFTDtJQUVELE1BQU0sS0FBSyxNQUFNLDJHQUdoQjtJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLFdBSTdEO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eth-address/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eth-address/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGlE;;;;;GAKG;AACH,qBAAa,UAAU;IAMT,OAAO,CAAC,MAAM;IAL1B,gDAAgD;IAChD,OAAc,aAAa,SAAM;IACjC,0EAA0E;IAC1E,OAAc,IAAI,aAA0D;IAE5E,YAAoB,MAAM,EAAE,MAAM,EAIjC;IAED;;;;;;;OAOG;IACH,OAAc,UAAU,CAAC,OAAO,EAAE,MAAM,cAKvC;IAED;;;;;;;OAOG;IACH,OAAc,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAQlD;IAED;;;;;;OAMG;IACH,OAAc,MAAM,eAEnB;IAED;;;;;;;;OAQG;IACH,OAAc,SAAS,CAAC,OAAO,EAAE,MAAM,WAUtC;IAED;;;;;OAKG;IACI,MAAM,YAEZ;IAED;;;;;;;OAOG;IACH,OAAc,oBAAoB,CAAC,OAAO,EAAE,MAAM,WAcjD;IAED;;;;;;;;;OASG;IACH,OAAc,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAkB9D;IAED;;;;;;OAMG;IACI,MAAM,CAAC,GAAG,EAAE,UAAU,WAE5B;IAED;;;;;;OAMG;IACI,QAAQ,kBAEd;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;IAED;;;;;;OAMG;IACI,gBAAgB,kBAEtB;IAED;;;OAGG;IACI,QAAQ,4BAEd;IAED;;;;;;OAMG;IACI,UAAU,wBAIhB;IAED;;;;OAIG;IACI,OAAO,OAEb;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,CAEnC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAG3C;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAG3D;IAED,6DAA6D;IAC7D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAIlD;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,2GAGhB;IAED,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,WAI7D;CACF"}
|
|
@@ -5,7 +5,6 @@ import { randomBytes } from '../crypto/random/index.js';
|
|
|
5
5
|
import { Fr } from '../curves/bn254/index.js';
|
|
6
6
|
import { hexSchemaFor } from '../schemas/utils.js';
|
|
7
7
|
import { BufferReader, FieldReader } from '../serialize/index.js';
|
|
8
|
-
import { TypeRegistry } from '../serialize/type_registry.js';
|
|
9
8
|
import { bufferToHex } from '../string/index.js';
|
|
10
9
|
_computedKey = inspect.custom;
|
|
11
10
|
/**
|
|
@@ -223,5 +222,3 @@ _computedKey = inspect.custom;
|
|
|
223
222
|
return addrA.equals(addrB);
|
|
224
223
|
}
|
|
225
224
|
}
|
|
226
|
-
// For deserializing JSON.
|
|
227
|
-
TypeRegistry.register('EthAddress', EthAddress);
|
|
@@ -18,8 +18,11 @@ export type ViemTransactionSignature = {
|
|
|
18
18
|
* Contains a signature split into it's primary components (r,s,v)
|
|
19
19
|
*/
|
|
20
20
|
export declare class Signature {
|
|
21
|
+
/** The r value of the signature */
|
|
21
22
|
readonly r: Buffer32;
|
|
23
|
+
/** The s value of the signature */
|
|
22
24
|
readonly s: Buffer32;
|
|
25
|
+
/** The v value of the signature */
|
|
23
26
|
readonly v: number;
|
|
24
27
|
private size;
|
|
25
28
|
readonly empty: boolean;
|
|
@@ -40,6 +43,7 @@ export declare class Signature {
|
|
|
40
43
|
static fromString(sig: `0x${string}`): Signature;
|
|
41
44
|
static fromViemSignature(sig: ViemSignature): Signature;
|
|
42
45
|
static fromViemTransactionSignature(sig: ViemTransactionSignature): Signature;
|
|
46
|
+
/** Generates a random valid ECDSA signature with a low s-value by signing a random message with a random key. */
|
|
43
47
|
static random(): Signature;
|
|
44
48
|
static empty(): Signature;
|
|
45
49
|
isEmpty(): boolean;
|
|
@@ -56,6 +60,6 @@ export declare class Signature {
|
|
|
56
60
|
*/
|
|
57
61
|
toViemTransactionSignature(): ViemTransactionSignature;
|
|
58
62
|
toJSON(): `0x${string}`;
|
|
59
|
-
static get schema(): z.
|
|
63
|
+
static get schema(): z.ZodPipe<z.ZodString & z.ZodType<`0x${string}`, string, z.core.$ZodTypeInternals<`0x${string}`, string>>, z.ZodTransform<Signature, `0x${string}`>>;
|
|
60
64
|
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX3NpZ25hdHVyZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V0aC1zaWduYXR1cmUvZXRoX3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUc5RSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBS3hCOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGFBQWEsR0FBRztJQUMxQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ1gsQ0FBQztBQUVGLE1BQU0sTUFBTSx3QkFBd0IsR0FBRztJQUNyQyxDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNoQixDQUFDO0FBRUY7O0dBRUc7QUFDSCxxQkFBYSxTQUFTO0lBT2xCLG1DQUFtQzthQUNuQixDQUFDLEVBQUUsUUFBUTtJQUMzQixtQ0FBbUM7YUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO2FBQ25CLENBQUMsRUFBRSxNQUFNO0lBVjNCLE9BQU8sQ0FBQyxJQUFJLENBQXFCO0lBRWpDLFNBQWdCLEtBQUssRUFBRSxPQUFPLENBQUM7SUFFL0I7SUFDRSxtQ0FBbUM7SUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO0lBQ25CLENBQUMsRUFBRSxRQUFRO0lBQzNCLG1DQUFtQztJQUNuQixDQUFDLEVBQUUsTUFBTSxFQUcxQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsU0FBUyxDQVF2RDtJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUVoRDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FRL0M7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxTQUFTLENBRXREO0lBRUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRSx3QkFBd0IsR0FBRyxTQUFTLENBRTVFO0lBRUQsaUhBQWlIO0lBQ2pILE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUt6QjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxDQUV4QjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUVoQztJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsT0FBTyxJQUFJLE1BQU0sQ0FRaEI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRDs7T0FFRztJQUNILGVBQWUsSUFBSSxhQUFhLENBTS9CO0lBRUQ7O09BRUc7SUFDSCwwQkFBMEIsSUFBSSx3QkFBd0IsQ0FTckQ7SUFFRCxNQUFNLGtCQUVMO0lBRUQsTUFBTSxLQUFLLE1BQU0seUpBTWhCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eth_signature.d.ts","sourceRoot":"","sources":["../../src/eth-signature/eth_signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"eth_signature.d.ts","sourceRoot":"","sources":["../../src/eth-signature/eth_signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAG9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IAOlB,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,MAAM;IAV3B,OAAO,CAAC,IAAI,CAAqB;IAEjC,SAAgB,KAAK,EAAE,OAAO,CAAC;IAE/B;IACE,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,MAAM,EAG1B;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQvD;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO,CAEhD;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAQ/C;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CAEtD;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,wBAAwB,GAAG,SAAS,CAE5E;IAED,iHAAiH;IACjH,MAAM,CAAC,MAAM,IAAI,SAAS,CAKzB;IAED,MAAM,CAAC,KAAK,IAAI,SAAS,CAExB;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEhC;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,OAAO,IAAI,MAAM,CAQhB;IAED,QAAQ,IAAI,KAAK,MAAM,EAAE,CAExB;IAED;;OAEG;IACH,eAAe,IAAI,aAAa,CAM/B;IAED;;OAEG;IACH,0BAA0B,IAAI,wBAAwB,CASrD;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,yJAMhB;CACF"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
2
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
|
+
import { secp256k1 } from '@noble/curves/secp256k1';
|
|
3
4
|
import { z } from 'zod';
|
|
5
|
+
import { randomBytes } from '../crypto/random/index.js';
|
|
4
6
|
import { hasHexPrefix, hexToBuffer } from '../string/index.js';
|
|
5
7
|
/**
|
|
6
8
|
* Contains a signature split into it's primary components (r,s,v)
|
|
@@ -45,8 +47,11 @@ import { hasHexPrefix, hexToBuffer } from '../string/index.js';
|
|
|
45
47
|
static fromViemTransactionSignature(sig) {
|
|
46
48
|
return new Signature(Buffer32.fromBuffer(hexToBuffer(sig.r)), Buffer32.fromBuffer(hexToBuffer(sig.s)), sig.yParity);
|
|
47
49
|
}
|
|
48
|
-
static random() {
|
|
49
|
-
|
|
50
|
+
/** Generates a random valid ECDSA signature with a low s-value by signing a random message with a random key. */ static random() {
|
|
51
|
+
const privateKey = randomBytes(32);
|
|
52
|
+
const message = randomBytes(32);
|
|
53
|
+
const { r, s, recovery } = secp256k1.sign(message, privateKey);
|
|
54
|
+
return new Signature(Buffer32.fromBigInt(r), Buffer32.fromBigInt(s), recovery ? 28 : 27);
|
|
50
55
|
}
|
|
51
56
|
static empty() {
|
|
52
57
|
return new Signature(Buffer32.ZERO, Buffer32.ZERO, 0);
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import EventEmitter from 'node:events';
|
|
2
|
+
import type { Readable } from 'node:stream';
|
|
3
|
+
/**
|
|
4
|
+
* Events emitted by FifoFrameReader.
|
|
5
|
+
*
|
|
6
|
+
* - `frame`: A complete frame payload (without the 4-byte length header).
|
|
7
|
+
* - `error`: An unrecoverable error (invalid frame length, stream error).
|
|
8
|
+
* - `end`: The underlying stream has ended.
|
|
9
|
+
*/
|
|
10
|
+
export interface FifoFrameReaderEvents {
|
|
11
|
+
frame: [payload: Buffer];
|
|
12
|
+
error: [error: Error];
|
|
13
|
+
end: [];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Reads length-delimited frames from a readable stream (typically a named FIFO pipe).
|
|
17
|
+
*
|
|
18
|
+
* Wire format: `[4-byte big-endian payload length][payload bytes]`
|
|
19
|
+
*
|
|
20
|
+
* Emits a `frame` event for each complete frame with the raw payload buffer.
|
|
21
|
+
* Callers are responsible for deserializing the payload (e.g., via msgpack).
|
|
22
|
+
*
|
|
23
|
+
* On encountering an invalid payload length (0 or >maxPayloadSize), emits `error`
|
|
24
|
+
* and destroys the stream.
|
|
25
|
+
*/
|
|
26
|
+
export declare class FifoFrameReader extends EventEmitter<FifoFrameReaderEvents> {
|
|
27
|
+
private readonly maxPayloadSize;
|
|
28
|
+
private stream;
|
|
29
|
+
private pendingBuf;
|
|
30
|
+
private running;
|
|
31
|
+
constructor(maxPayloadSize?: number);
|
|
32
|
+
/** Open a FIFO at the given path and start reading frames. */
|
|
33
|
+
start(fifoPath: string, highWaterMark?: number): void;
|
|
34
|
+
/** Start reading frames from an existing readable stream. */
|
|
35
|
+
startFromStream(stream: Readable): void;
|
|
36
|
+
/** Stop reading and destroy the underlying stream. */
|
|
37
|
+
stop(): void;
|
|
38
|
+
/** Parse complete frames out of the pending buffer. */
|
|
39
|
+
private drainFrames;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlmb19mcmFtZV9yZWFkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWZvL2ZpZm9fZnJhbWVfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBWSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxXQUFXLHFCQUFxQjtJQUNwQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekIsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLEdBQUcsRUFBRSxFQUFFLENBQUM7Q0FDVDtBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxxQkFBYSxlQUFnQixTQUFRLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQztJQUsxRCxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWM7SUFKM0MsT0FBTyxDQUFDLE1BQU0sQ0FBeUI7SUFDdkMsT0FBTyxDQUFDLFVBQVUsQ0FBMkI7SUFDN0MsT0FBTyxDQUFDLE9BQU8sQ0FBUztJQUV4QixZQUE2QixjQUFjLFNBQW1CLEVBRTdEO0lBRUQsOERBQThEO0lBQzlELEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLGFBQWEsU0FBWSxHQUFHLElBQUksQ0FFdkQ7SUFFRCw2REFBNkQ7SUFDN0QsZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLEdBQUcsSUFBSSxDQXVCdEM7SUFFRCxzREFBc0Q7SUFDdEQsSUFBSSxJQUFJLElBQUksQ0FNWDtJQUVELHVEQUF1RDtJQUN2RCxPQUFPLENBQUMsV0FBVztDQW1CcEIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fifo_frame_reader.d.ts","sourceRoot":"","sources":["../../src/fifo/fifo_frame_reader.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtB,GAAG,EAAE,EAAE,CAAC;CACT;AAED;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IAK1D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAJ3C,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,OAAO,CAAS;IAExB,YAA6B,cAAc,SAAmB,EAE7D;IAED,8DAA8D;IAC9D,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,SAAY,GAAG,IAAI,CAEvD;IAED,6DAA6D;IAC7D,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAuBtC;IAED,sDAAsD;IACtD,IAAI,IAAI,IAAI,CAMX;IAED,uDAAuD;IACvD,OAAO,CAAC,WAAW;CAmBpB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import EventEmitter from 'node:events';
|
|
2
|
+
import * as fs from 'node:fs';
|
|
3
|
+
/**
|
|
4
|
+
* Reads length-delimited frames from a readable stream (typically a named FIFO pipe).
|
|
5
|
+
*
|
|
6
|
+
* Wire format: `[4-byte big-endian payload length][payload bytes]`
|
|
7
|
+
*
|
|
8
|
+
* Emits a `frame` event for each complete frame with the raw payload buffer.
|
|
9
|
+
* Callers are responsible for deserializing the payload (e.g., via msgpack).
|
|
10
|
+
*
|
|
11
|
+
* On encountering an invalid payload length (0 or >maxPayloadSize), emits `error`
|
|
12
|
+
* and destroys the stream.
|
|
13
|
+
*/ export class FifoFrameReader extends EventEmitter {
|
|
14
|
+
maxPayloadSize;
|
|
15
|
+
stream;
|
|
16
|
+
pendingBuf;
|
|
17
|
+
running;
|
|
18
|
+
constructor(maxPayloadSize = 10 * 1024 * 1024){
|
|
19
|
+
super(), this.maxPayloadSize = maxPayloadSize, this.stream = null, this.pendingBuf = Buffer.alloc(0), this.running = false;
|
|
20
|
+
}
|
|
21
|
+
/** Open a FIFO at the given path and start reading frames. */ start(fifoPath, highWaterMark = 64 * 1024) {
|
|
22
|
+
this.startFromStream(fs.createReadStream(fifoPath, {
|
|
23
|
+
highWaterMark
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
/** Start reading frames from an existing readable stream. */ startFromStream(stream) {
|
|
27
|
+
if (this.running) {
|
|
28
|
+
throw new Error('FifoFrameReader is already running');
|
|
29
|
+
}
|
|
30
|
+
this.running = true;
|
|
31
|
+
this.pendingBuf = Buffer.alloc(0);
|
|
32
|
+
this.stream = stream;
|
|
33
|
+
stream.on('data', (chunk)=>{
|
|
34
|
+
const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
35
|
+
this.pendingBuf = this.pendingBuf.length > 0 ? Buffer.concat([
|
|
36
|
+
this.pendingBuf,
|
|
37
|
+
buf
|
|
38
|
+
]) : buf;
|
|
39
|
+
this.drainFrames();
|
|
40
|
+
});
|
|
41
|
+
stream.on('error', (err)=>{
|
|
42
|
+
if (this.running) {
|
|
43
|
+
this.emit('error', err);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
stream.on('end', ()=>{
|
|
47
|
+
this.emit('end');
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/** Stop reading and destroy the underlying stream. */ stop() {
|
|
51
|
+
this.running = false;
|
|
52
|
+
if (this.stream) {
|
|
53
|
+
this.stream.destroy();
|
|
54
|
+
this.stream = null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/** Parse complete frames out of the pending buffer. */ drainFrames() {
|
|
58
|
+
while(this.pendingBuf.length >= 4){
|
|
59
|
+
const payloadLen = this.pendingBuf.readUInt32BE(0);
|
|
60
|
+
if (payloadLen === 0 || payloadLen > this.maxPayloadSize) {
|
|
61
|
+
this.emit('error', new Error(`Invalid payload length: ${payloadLen}`));
|
|
62
|
+
this.stop();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const frameLen = 4 + payloadLen;
|
|
66
|
+
if (this.pendingBuf.length < frameLen) {
|
|
67
|
+
break; // Wait for more data
|
|
68
|
+
}
|
|
69
|
+
const payload = this.pendingBuf.subarray(4, frameLen);
|
|
70
|
+
this.pendingBuf = this.pendingBuf.subarray(frameLen);
|
|
71
|
+
this.emit('frame', Buffer.from(payload));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { FifoFrameReader } from './fifo_frame_reader.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWZvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fifo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FifoFrameReader } from './fifo_frame_reader.js';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** A Set capped to a fixed number of entries, evicting the oldest inserted value when full. */
|
|
2
|
+
export declare class FifoSet<T> extends Set<T> {
|
|
3
|
+
private _limit;
|
|
4
|
+
private constructor();
|
|
5
|
+
/** Creates a bounded set with a positive integer limit. */
|
|
6
|
+
static withLimit<T>(limit: number, values?: Iterable<T>): FifoSet<T>;
|
|
7
|
+
add(value: T): this;
|
|
8
|
+
/** Maximum number of entries retained by this set. */
|
|
9
|
+
get limit(): number;
|
|
10
|
+
/** Evicts oldest entries until the set is within its limit. */
|
|
11
|
+
compact(): void;
|
|
12
|
+
/** Adds a value only if it is absent, returning whether the set changed. */
|
|
13
|
+
addIfAbsent(value: T): boolean;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlmb19zZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWZvX3NldC9maWZvX3NldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrRkFBK0Y7QUFDL0YscUJBQWEsT0FBTyxDQUFDLENBQUMsQ0FBRSxTQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEMsT0FBTyxDQUFDLE1BQU0sQ0FBcUI7SUFFbkMsT0FBTyxlQUVOO0lBRUQsMkRBQTJEO0lBQzNELE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FVbkU7SUFFUSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLENBSTNCO0lBRUQsc0RBQXNEO0lBQ3RELElBQVcsS0FBSyxJQUFJLE1BQU0sQ0FFekI7SUFFRCwrREFBK0Q7SUFDeEQsT0FBTyxJQUFJLElBQUksQ0FRckI7SUFFRCw0RUFBNEU7SUFDckUsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsT0FBTyxDQU1wQztDQUNGIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fifo_set.d.ts","sourceRoot":"","sources":["../../src/fifo_set/fifo_set.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,qBAAa,OAAO,CAAC,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,MAAM,CAAqB;IAEnC,OAAO,eAEN;IAED,2DAA2D;IAC3D,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAUnE;IAEQ,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAI3B;IAED,sDAAsD;IACtD,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,+DAA+D;IACxD,OAAO,IAAI,IAAI,CAQrB;IAED,4EAA4E;IACrE,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAMpC;CACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** A Set capped to a fixed number of entries, evicting the oldest inserted value when full. */ export class FifoSet extends Set {
|
|
2
|
+
_limit;
|
|
3
|
+
constructor(values){
|
|
4
|
+
super(values);
|
|
5
|
+
}
|
|
6
|
+
/** Creates a bounded set with a positive integer limit. */ static withLimit(limit, values) {
|
|
7
|
+
if (!Number.isSafeInteger(limit) || limit <= 0) {
|
|
8
|
+
throw new TypeError(`FifoSet limit must be a positive safe integer: ${limit}`);
|
|
9
|
+
}
|
|
10
|
+
const set = new FifoSet(values);
|
|
11
|
+
set._limit = limit;
|
|
12
|
+
set.compact();
|
|
13
|
+
return set;
|
|
14
|
+
}
|
|
15
|
+
add(value) {
|
|
16
|
+
super.add(value);
|
|
17
|
+
this.compact();
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
/** Maximum number of entries retained by this set. */ get limit() {
|
|
21
|
+
return this._limit ?? Infinity;
|
|
22
|
+
}
|
|
23
|
+
/** Evicts oldest entries until the set is within its limit. */ compact() {
|
|
24
|
+
while(this.size > this.limit){
|
|
25
|
+
const head = this.values().next();
|
|
26
|
+
if (head.done) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.delete(head.value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/** Adds a value only if it is absent, returning whether the set changed. */ addIfAbsent(value) {
|
|
33
|
+
if (this.has(value)) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
this.add(value);
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fifo_set/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './fifo_set.js';
|
package/dest/jest/setup.js
CHANGED
|
@@ -1,7 +1,34 @@
|
|
|
1
|
+
import { parseBooleanEnv } from '@aztec/foundation/config';
|
|
1
2
|
import { overwriteLoggingStream, pinoPrettyOpts } from '@aztec/foundation/log';
|
|
2
3
|
import pretty from 'pino-pretty';
|
|
3
4
|
// Overwrite logging stream with pino-pretty. We define this as a separate
|
|
4
5
|
// file so we don't mess up with dependencies in non-testing environments,
|
|
5
6
|
// since pino-pretty messes up with browser bundles.
|
|
6
7
|
// See also https://www.npmjs.com/package/pino-pretty?activeTab=readme#user-content-usage-with-jest
|
|
7
|
-
|
|
8
|
+
if (!parseBooleanEnv(process.env.LOG_JSON)) {
|
|
9
|
+
overwriteLoggingStream(pretty(pinoPrettyOpts));
|
|
10
|
+
}
|
|
11
|
+
// Prevent timers from keeping the process alive after tests complete.
|
|
12
|
+
// Libraries like viem create internal polling loops (via setTimeout) that
|
|
13
|
+
// reschedule themselves indefinitely. In test environments we never want a
|
|
14
|
+
// timer to be the reason the process can't exit. We also unref stdout/stderr
|
|
15
|
+
// which, when they are pipes (as in Jest workers), remain ref'd by default.
|
|
16
|
+
{
|
|
17
|
+
const origSetTimeout = globalThis.setTimeout;
|
|
18
|
+
const origSetInterval = globalThis.setInterval;
|
|
19
|
+
globalThis.setTimeout = function unrefSetTimeout(...args) {
|
|
20
|
+
const id = origSetTimeout.apply(this, args);
|
|
21
|
+
id?.unref?.();
|
|
22
|
+
return id;
|
|
23
|
+
};
|
|
24
|
+
// Preserve .unref, .__promisify__ etc. that may exist on the original
|
|
25
|
+
Object.setPrototypeOf(globalThis.setTimeout, origSetTimeout);
|
|
26
|
+
globalThis.setInterval = function unrefSetInterval(...args) {
|
|
27
|
+
const id = origSetInterval.apply(this, args);
|
|
28
|
+
id?.unref?.();
|
|
29
|
+
return id;
|
|
30
|
+
};
|
|
31
|
+
Object.setPrototypeOf(globalThis.setInterval, origSetInterval);
|
|
32
|
+
if (process.stdout?._handle?.unref) process.stdout._handle.unref();
|
|
33
|
+
if (process.stderr?._handle?.unref) process.stderr._handle.unref();
|
|
34
|
+
}
|
|
@@ -29,4 +29,4 @@ export declare function defaultFetch(host: string, body: unknown, extraHeaders?:
|
|
|
29
29
|
* @returns A fetch function.
|
|
30
30
|
*/
|
|
31
31
|
export declare function makeFetch(retries: number[], defaultNoRetry: boolean, log?: Logger): typeof defaultFetch;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2guZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9qc29uLXJwYy9jbGllbnQvZmV0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLG9CQUFvQixDQUFDO0FBTS9ELE1BQU0sTUFBTSxZQUFZLEdBQUcsQ0FDekIsSUFBSSxFQUFFLE1BQU0sRUFDWixJQUFJLEVBQUUsR0FBRyxFQUNULFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQ3JDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sS0FDZCxPQUFPLENBQUM7SUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDO0lBQUMsT0FBTyxFQUFFO1FBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQTtLQUFFLENBQUE7Q0FBRSxDQUFDLENBQUM7QUFFakc7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQXNCLFlBQVksQ0FDaEMsSUFBSSxFQUFFLE1BQU0sRUFDWixJQUFJLEVBQUUsT0FBTyxFQUNiLFlBQVksR0FBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBTSxFQUN6QyxPQUFPLFVBQVEsR0FDZCxPQUFPLENBQUM7SUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDO0lBQUMsT0FBTyxFQUFFO1FBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQTtLQUFFLENBQUE7Q0FBRSxDQUFDLENBbUM3RjtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFnQixTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sWUFBWSxDQVV2RyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/fetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,oBAAoB,CAAC;AAM/D,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,OAAO,CAAC,EAAE,OAAO,KACd,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,CAAC,CAAC;AAEjG;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACzC,OAAO,UAAQ,GACd,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/fetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,oBAAoB,CAAC;AAM/D,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EACT,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,OAAO,CAAC,EAAE,OAAO,KACd,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,CAAC,CAAC;AAEjG;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,OAAO,EACb,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACzC,OAAO,UAAQ,GACd,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAA;CAAE,CAAC,CAmC7F;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,YAAY,CAUvG"}
|
|
@@ -29,16 +29,17 @@ const log = createLogger('json-rpc:json_rpc_client');
|
|
|
29
29
|
throw new Error(errorMessage);
|
|
30
30
|
}
|
|
31
31
|
let responseJson;
|
|
32
|
+
const responseText = await resp.text();
|
|
32
33
|
try {
|
|
33
|
-
responseJson =
|
|
34
|
+
responseJson = JSON.parse(responseText);
|
|
34
35
|
} catch {
|
|
35
36
|
if (!resp.ok) {
|
|
36
37
|
throw new Error(resp.statusText);
|
|
37
38
|
}
|
|
38
|
-
throw new Error(`Failed to parse body as JSON: ${
|
|
39
|
+
throw new Error(`Failed to parse body as JSON: ${responseText}`);
|
|
39
40
|
}
|
|
40
41
|
if (!resp.ok) {
|
|
41
|
-
const errorMessage = `Error ${resp.status} from server ${host}: ${responseJson
|
|
42
|
+
const errorMessage = `Error ${resp.status} from server ${host}: ${responseJson?.error?.message ?? JSON.stringify(responseJson)}`;
|
|
42
43
|
if (noRetry || resp.status >= 400 && resp.status < 500) {
|
|
43
44
|
throw new NoRetryError(errorMessage);
|
|
44
45
|
} else {
|
|
@@ -8,6 +8,7 @@ export type SafeJsonRpcClientOptions = {
|
|
|
8
8
|
batchWindowMS?: number;
|
|
9
9
|
maxBatchSize?: number;
|
|
10
10
|
maxRequestBodySize?: number;
|
|
11
|
+
extraHeaders?: Record<string, string>;
|
|
11
12
|
onResponse?: (res: {
|
|
12
13
|
response: any;
|
|
13
14
|
headers: {
|
|
@@ -29,4 +30,4 @@ export declare function createSafeJsonRpcClient<T extends object>(host: string,
|
|
|
29
30
|
export declare function batch<T extends readonly unknown[]>(values: T): Promise<{
|
|
30
31
|
-readonly [P in keyof T]: Awaited<T[P]>;
|
|
31
32
|
}>;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZV9qc29uX3JwY19jbGllbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9qc29uLXJwYy9jbGllbnQvc2FmZV9qc29uX3JwY19jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXJFLE9BQU8sRUFBa0IsS0FBSyxZQUFZLEVBQXdDLE1BQU0sc0JBQXNCLENBQUM7QUFFL0csT0FBTyxFQUFFLEtBQUssWUFBWSxFQUFnQixNQUFNLFlBQVksQ0FBQztBQWE3RCxNQUFNLE1BQU0sd0JBQXdCLEdBQUc7SUFDckMsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2xDLEtBQUssQ0FBQyxFQUFFLFlBQVksQ0FBQztJQUNyQixHQUFHLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDYixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzVCLFlBQVksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUU7UUFDakIsUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUNkLE9BQU8sRUFBRTtZQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxTQUFTLENBQUE7U0FBRSxDQUFDO0tBQ2pFLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0NBQ3JCLENBQUM7QUE2QkY7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLHVCQUF1QixDQUFDLENBQUMsU0FBUyxNQUFNLEVBQ3RELElBQUksRUFBRSxNQUFNLEVBQ1osTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFDdkIsTUFBTSxHQUFFLHdCQUE2QixHQUNwQyxDQUFDLENBb0xIO0FBRUQ7O0dBRUc7QUFDSCx3QkFBc0IsS0FBSyxDQUFDLENBQUMsU0FBUyxTQUFTLE9BQU8sRUFBRSxFQUN0RCxNQUFNLEVBQUUsQ0FBQyxHQUNSLE9BQU8sQ0FBQztJQUFFLENBQUMsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUFFLENBQUMsQ0F1QnREIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe_json_rpc_client.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/safe_json_rpc_client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAkB,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"safe_json_rpc_client.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/safe_json_rpc_client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAkB,KAAK,YAAY,EAAwC,MAAM,sBAAsB,CAAC;AAE/G,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,YAAY,CAAC;AAa7D,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE;QACjB,QAAQ,EAAE,GAAG,CAAC;QACd,OAAO,EAAE;YAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;SAAE,CAAC;KACjE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB,CAAC;AA6BF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,MAAM,GAAE,wBAA6B,GACpC,CAAC,CAoLH;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EACtD,MAAM,EAAE,CAAC,GACR,OAAO,CAAC;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,CAuBtD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { format } from 'util';
|
|
2
2
|
import { createLogger } from '../../log/pino-logger.js';
|
|
3
3
|
import { promiseWithResolvers } from '../../promise/utils.js';
|
|
4
|
-
import { schemaHasMethod } from '../../schemas/api.js';
|
|
4
|
+
import { getSchemaReturnType, schemaHasMethod } from '../../schemas/api.js';
|
|
5
5
|
import { jsonStringify } from '../convert.js';
|
|
6
6
|
import { defaultFetch } from './fetch.js';
|
|
7
7
|
// batch window of 0 would capture all requests in the current sync iteration of the event loop
|
|
@@ -64,7 +64,7 @@ const clients = new Map();
|
|
|
64
64
|
methods: rpcCalls.map(({ request })=>request.method)
|
|
65
65
|
});
|
|
66
66
|
try {
|
|
67
|
-
const { response, headers } = await fetch(host, rpcCalls.map(({ request })=>request));
|
|
67
|
+
const { response, headers } = await fetch(host, rpcCalls.map(({ request })=>request), config.extraHeaders);
|
|
68
68
|
if (config.onResponse) {
|
|
69
69
|
await config.onResponse({
|
|
70
70
|
response,
|
|
@@ -178,7 +178,7 @@ const clients = new Map();
|
|
|
178
178
|
].includes(response.result)) {
|
|
179
179
|
return;
|
|
180
180
|
}
|
|
181
|
-
return schema[methodName]
|
|
181
|
+
return getSchemaReturnType(schema[methodName]).parseAsync(response.result);
|
|
182
182
|
};
|
|
183
183
|
const clientId = nextClientId++;
|
|
184
184
|
const proxy = {
|
|
@@ -2,4 +2,4 @@ import { Agent } from 'undici';
|
|
|
2
2
|
import type { JsonRpcFetch } from './fetch.js';
|
|
3
3
|
export { Agent };
|
|
4
4
|
export declare function makeUndiciFetch(client?: Agent): JsonRpcFetch;
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5kaWNpLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvanNvbi1ycGMvY2xpZW50L3VuZGljaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsS0FBSyxFQUFtQixNQUFNLFFBQVEsQ0FBQztBQUtoRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFVL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBRWpCLHdCQUFnQixlQUFlLENBQUMsTUFBTSxRQUFjLEdBQUcsWUFBWSxDQW9FbEUifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"undici.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/undici.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"undici.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/undici.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAmB,MAAM,QAAQ,CAAC;AAKhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAU/C,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,wBAAgB,eAAe,CAAC,MAAM,QAAc,GAAG,YAAY,CAoElE"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { promisify } from 'node:util';
|
|
2
|
+
import { gunzip as gunzipCb, gzip as gzipCb } from 'node:zlib';
|
|
1
3
|
import { Agent } from 'undici';
|
|
2
4
|
import { createLogger } from '../../log/pino-logger.js';
|
|
3
5
|
import { NoRetryError } from '../../retry/index.js';
|
|
4
6
|
import { jsonStringify } from '../convert.js';
|
|
7
|
+
const gzip = promisify(gzipCb);
|
|
8
|
+
const gunzip = promisify(gunzipCb);
|
|
5
9
|
const log = createLogger('json-rpc:json_rpc_client:undici');
|
|
10
|
+
/** Minimum request size in bytes to trigger compression. */ const COMPRESSION_THRESHOLD = 1024;
|
|
6
11
|
export { Agent };
|
|
7
12
|
export function makeUndiciFetch(client = new Agent()) {
|
|
8
13
|
return async (host, body, extraHeaders = {}, noRetry = false)=>{
|
|
@@ -12,14 +17,20 @@ export function makeUndiciFetch(client = new Agent()) {
|
|
|
12
17
|
});
|
|
13
18
|
let resp;
|
|
14
19
|
try {
|
|
20
|
+
const jsonBody = Buffer.from(jsonStringify(body));
|
|
21
|
+
const shouldCompress = jsonBody.length >= COMPRESSION_THRESHOLD;
|
|
15
22
|
resp = await client.request({
|
|
16
23
|
method: 'POST',
|
|
17
24
|
origin: new URL(host),
|
|
18
25
|
path: '/',
|
|
19
|
-
body:
|
|
26
|
+
body: shouldCompress ? await gzip(jsonBody) : jsonBody,
|
|
20
27
|
headers: {
|
|
21
28
|
...extraHeaders,
|
|
22
|
-
'content-type': 'application/json'
|
|
29
|
+
'content-type': 'application/json',
|
|
30
|
+
...shouldCompress && {
|
|
31
|
+
'content-encoding': 'gzip'
|
|
32
|
+
},
|
|
33
|
+
'accept-encoding': 'gzip'
|
|
23
34
|
}
|
|
24
35
|
});
|
|
25
36
|
} catch (err) {
|
|
@@ -28,13 +39,21 @@ export function makeUndiciFetch(client = new Agent()) {
|
|
|
28
39
|
}
|
|
29
40
|
let responseJson;
|
|
30
41
|
const responseOk = resp.statusCode >= 200 && resp.statusCode <= 299;
|
|
42
|
+
const contentEncoding = resp.headers['content-encoding'];
|
|
43
|
+
let responseText;
|
|
31
44
|
try {
|
|
32
|
-
|
|
45
|
+
if (contentEncoding === 'gzip') {
|
|
46
|
+
const jsonBuffer = await gunzip(await resp.body.arrayBuffer());
|
|
47
|
+
responseText = jsonBuffer.toString('utf-8');
|
|
48
|
+
} else {
|
|
49
|
+
responseText = await resp.body.text();
|
|
50
|
+
}
|
|
51
|
+
responseJson = JSON.parse(responseText);
|
|
33
52
|
} catch {
|
|
34
53
|
if (!responseOk) {
|
|
35
54
|
throw new Error('HTTP ' + resp.statusCode);
|
|
36
55
|
}
|
|
37
|
-
throw new Error(`Failed to parse body as JSON: ${
|
|
56
|
+
throw new Error(`Failed to parse body as JSON. encoding: ${contentEncoding}, body: ${responseText}`);
|
|
38
57
|
}
|
|
39
58
|
if (!responseOk) {
|
|
40
59
|
const errorMessage = `Error ${resp.statusCode} response from server ${host}: ${responseJson}`;
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Test class for testing string converter.
|
|
3
3
|
*/
|
|
4
4
|
export declare class ToStringClass {
|
|
5
|
-
readonly x: string;
|
|
6
|
-
readonly y: string;
|
|
5
|
+
/** A value */ readonly x: string;
|
|
6
|
+
/** Another value */ readonly y: string;
|
|
7
7
|
constructor(
|
|
8
8
|
/** A value */ x: string,
|
|
9
9
|
/** Another value */ y: string);
|
|
10
10
|
toString(): string;
|
|
11
11
|
static fromString(value: string): ToStringClass;
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NfYS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2pzb24tcnBjL2ZpeHR1cmVzL2NsYXNzX2EudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxxQkFBYSxhQUFhO0lBRXRCLGNBQWMsVUFBaUIsQ0FBQyxFQUFFLE1BQU07SUFDeEMsb0JBQW9CLFVBQWlCLENBQUMsRUFBRSxNQUFNO0lBRmhEO0lBQ0UsY0FBYyxDQUFpQixDQUFDLEVBQUUsTUFBTTtJQUN4QyxvQkFBb0IsQ0FBaUIsQ0FBQyxFQUFFLE1BQU0sRUFDNUM7SUFFSixRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0saUJBRzlCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class_a.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/fixtures/class_a.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"class_a.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/fixtures/class_a.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;IAEtB,cAAc,UAAiB,CAAC,EAAE,MAAM;IACxC,oBAAoB,UAAiB,CAAC,EAAE,MAAM;IAFhD;IACE,cAAc,CAAiB,CAAC,EAAE,MAAM;IACxC,oBAAoB,CAAiB,CAAC,EAAE,MAAM,EAC5C;IAEJ,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,iBAG9B;CACF"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Test class for testing string converter.
|
|
3
3
|
*/
|
|
4
4
|
export declare class ToStringClass {
|
|
5
|
-
readonly x: string;
|
|
6
|
-
readonly y: string;
|
|
5
|
+
/** A value */ readonly x: string;
|
|
6
|
+
/** Another value */ readonly y: string;
|
|
7
7
|
constructor(
|
|
8
8
|
/** A value */ x: string,
|
|
9
9
|
/** Another value */ y: string);
|
|
10
10
|
toString(): string;
|
|
11
11
|
static fromString(value: string): ToStringClass;
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NfYi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2pzb24tcnBjL2ZpeHR1cmVzL2NsYXNzX2IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxxQkFBYSxhQUFhO0lBRXRCLGNBQWMsVUFBaUIsQ0FBQyxFQUFFLE1BQU07SUFDeEMsb0JBQW9CLFVBQWlCLENBQUMsRUFBRSxNQUFNO0lBRmhEO0lBQ0UsY0FBYyxDQUFpQixDQUFDLEVBQUUsTUFBTTtJQUN4QyxvQkFBb0IsQ0FBaUIsQ0FBQyxFQUFFLE1BQU0sRUFDNUM7SUFFSixRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0saUJBRzlCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class_b.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/fixtures/class_b.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"class_b.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/fixtures/class_b.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;IAEtB,cAAc,UAAiB,CAAC,EAAE,MAAM;IACxC,oBAAoB,UAAiB,CAAC,EAAE,MAAM;IAFhD;IACE,cAAc,CAAiB,CAAC,EAAE,MAAM;IACxC,oBAAoB,CAAiB,CAAC,EAAE,MAAM,EAC5C;IAEJ,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,iBAG9B;CACF"}
|
|
@@ -6,15 +6,11 @@ import { type ApiSchemaFor } from '../../schemas/index.js';
|
|
|
6
6
|
export declare class TestNote {
|
|
7
7
|
private data;
|
|
8
8
|
constructor(data: string);
|
|
9
|
-
static get schema(): z.
|
|
9
|
+
static get schema(): z.ZodPipe<z.ZodObject<{
|
|
10
10
|
data: z.ZodString;
|
|
11
|
-
},
|
|
11
|
+
}, z.core.$strip>, z.ZodTransform<TestNote, {
|
|
12
12
|
data: string;
|
|
13
|
-
}
|
|
14
|
-
data: string;
|
|
15
|
-
}>, TestNote, {
|
|
16
|
-
data: string;
|
|
17
|
-
}>;
|
|
13
|
+
}>>;
|
|
18
14
|
toJSON(): {
|
|
19
15
|
data: string;
|
|
20
16
|
};
|
|
@@ -86,4 +82,4 @@ export declare class TestState implements TestStateApi {
|
|
|
86
82
|
getTuple(): Promise<[string, string | undefined, number]>;
|
|
87
83
|
}
|
|
88
84
|
export declare const TestStateSchema: ApiSchemaFor<TestStateApi>;
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9zdGF0ZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2pzb24tcnBjL2ZpeHR1cmVzL3Rlc3Rfc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQXFCLE1BQU0sd0JBQXdCLENBQUM7QUFHOUU7O0dBRUc7QUFDSCxxQkFBYSxRQUFRO0lBQ1AsT0FBTyxDQUFDLElBQUk7SUFBeEIsWUFBb0IsSUFBSSxFQUFFLE1BQU0sRUFBSTtJQUVwQyxNQUFNLEtBQUssTUFBTTs7OztRQUVoQjtJQUVELE1BQU07O01BRUw7SUFFRDs7O09BR0c7SUFDSCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUNEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsUUFBUSxDQUV4QztDQUNGO0FBRUQsTUFBTSxXQUFXLFlBQVk7SUFDM0IsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQzFELFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNsRCxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLFNBQVMsS0FBSyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM5RCxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEtBQUssT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkQsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNyRCxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztRQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQyxDQUFDO0lBQzVELFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0NBQzNEO0FBRUQ7Ozs7R0FJRztBQUNILHFCQUFhLFNBQVUsWUFBVyxZQUFZO0lBQ3pCLEtBQUssRUFBRSxRQUFRLEVBQUU7SUFBcEMsWUFBbUIsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFJO0lBQ3hDOzs7Ozs7O09BT0c7SUFDRyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBRzlDO0lBRUQsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFcEI7SUFFSyxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUc3QjtJQUVLLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBR2xEO0lBRUssU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsU0FBUyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUc5RDtJQUVLLFNBQVMsQ0FBQyxLQUFLLFNBQUksR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FHOUM7SUFFSyxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUczQjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0csUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FNckQ7SUFFSyxVQUFVLGtCQUdmO0lBRUssU0FBUyxJQUFJLE9BQU8sQ0FBQztRQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQyxDQUc1RDtJQUVLLFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUc5RDtDQUNGO0FBRUQsZUFBTyxNQUFNLGVBQWUsRUFBRSxZQUFZLENBQUMsWUFBWSxDQVd0RCxDQUFDIn0=
|