@aztec/foundation 0.0.0-test.1 → 0.0.1-commit.b655e406
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/array.d.ts +5 -0
- package/dest/array/array.d.ts.map +1 -1
- package/dest/array/array.js +11 -0
- package/dest/async-pool/index.d.ts.map +1 -1
- package/dest/async-pool/index.js +1 -0
- package/dest/bigint/index.d.ts +7 -0
- package/dest/bigint/index.d.ts.map +1 -0
- package/dest/bigint/index.js +15 -0
- package/dest/bigint-buffer/index.d.ts +0 -2
- package/dest/bigint-buffer/index.d.ts.map +1 -1
- package/dest/buffer/buffer16.d.ts +80 -0
- package/dest/buffer/buffer16.d.ts.map +1 -0
- package/dest/buffer/buffer16.js +100 -0
- package/dest/buffer/buffer32.d.ts +3 -7
- package/dest/buffer/buffer32.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +6 -6
- package/dest/buffer/index.d.ts +1 -0
- package/dest/buffer/index.d.ts.map +1 -1
- package/dest/buffer/index.js +1 -0
- package/dest/collection/array.d.ts +16 -3
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +57 -3
- package/dest/collection/object.d.ts +16 -0
- package/dest/collection/object.d.ts.map +1 -1
- package/dest/collection/object.js +25 -0
- package/dest/config/env_var.d.ts +1 -1
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/index.d.ts +48 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +115 -7
- package/dest/config/network_config.d.ts +42 -0
- package/dest/config/network_config.d.ts.map +1 -0
- package/dest/config/network_config.js +9 -0
- package/dest/config/network_name.d.ts +3 -0
- package/dest/config/network_name.d.ts.map +1 -0
- package/dest/config/network_name.js +19 -0
- package/dest/config/secret_value.d.ts +28 -0
- package/dest/config/secret_value.d.ts.map +1 -0
- package/dest/config/secret_value.js +34 -0
- package/dest/crypto/aes128/index.d.ts +2 -4
- package/dest/crypto/aes128/index.d.ts.map +1 -1
- package/dest/crypto/aes128/index.js +23 -6
- package/dest/crypto/bls/bn254_keystore.d.ts +296 -0
- package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
- package/dest/crypto/bls/bn254_keystore.js +218 -0
- package/dest/crypto/bls/index.d.ts +13 -0
- package/dest/crypto/bls/index.d.ts.map +1 -0
- package/dest/crypto/bls/index.js +87 -0
- package/dest/crypto/bn254/bn254_utils.d.ts +39 -0
- package/dest/crypto/bn254/bn254_utils.d.ts.map +1 -0
- package/dest/crypto/bn254/bn254_utils.js +56 -0
- package/dest/crypto/bn254/index.d.ts +55 -0
- package/dest/crypto/bn254/index.d.ts.map +1 -0
- package/dest/crypto/bn254/index.js +142 -0
- package/dest/crypto/ecdsa/index.d.ts +2 -2
- package/dest/crypto/ecdsa/index.d.ts.map +1 -1
- package/dest/crypto/ecdsa/index.js +70 -48
- package/dest/crypto/ecdsa/signature.d.ts +1 -3
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.d.ts +6 -13
- package/dest/crypto/grumpkin/index.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.js +69 -54
- package/dest/crypto/index.d.ts +2 -0
- package/dest/crypto/index.d.ts.map +1 -1
- package/dest/crypto/index.js +2 -0
- package/dest/crypto/keccak/index.d.ts +2 -4
- package/dest/crypto/keccak/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.d.ts +0 -2
- package/dest/crypto/keys/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.js +9 -4
- package/dest/crypto/pedersen/pedersen.noble.d.ts +2 -4
- package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -4
- package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.js +29 -13
- package/dest/crypto/poseidon/index.d.ts +0 -2
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +42 -17
- package/dest/crypto/random/index.d.ts +1 -3
- package/dest/crypto/random/index.d.ts.map +1 -1
- package/dest/crypto/random/index.js +2 -34
- package/dest/crypto/random/randomness_singleton.d.ts +0 -2
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +35 -37
- package/dest/crypto/schnorr/signature.d.ts +3 -5
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- package/dest/crypto/secp256k1/index.d.ts +4 -6
- package/dest/crypto/secp256k1/index.d.ts.map +1 -1
- package/dest/crypto/secp256k1/index.js +29 -18
- package/dest/crypto/secp256k1-signer/utils.d.ts +55 -4
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/utils.js +92 -6
- package/dest/crypto/serialize.d.ts +4 -6
- package/dest/crypto/serialize.d.ts.map +1 -1
- package/dest/crypto/sha256/index.d.ts +21 -4
- package/dest/crypto/sha256/index.d.ts.map +1 -1
- package/dest/crypto/sha256/index.js +42 -0
- package/dest/crypto/sha512/index.d.ts +1 -3
- package/dest/crypto/sha512/index.d.ts.map +1 -1
- package/dest/crypto/signature/index.d.ts +0 -2
- package/dest/crypto/signature/index.d.ts.map +1 -1
- package/dest/crypto/sync/index.js +3 -1
- package/dest/crypto/sync/pedersen/index.d.ts +2 -4
- package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
- package/dest/crypto/sync/pedersen/index.js +17 -10
- package/dest/crypto/sync/poseidon/index.d.ts +0 -2
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/sync/poseidon/index.js +27 -12
- package/dest/decorators/memoize.d.ts.map +1 -1
- package/dest/eth-address/index.d.ts +6 -7
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +5 -0
- package/dest/eth-signature/eth_signature.d.ts +16 -14
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/eth-signature/eth_signature.js +31 -17
- package/dest/fields/bls12_fields.d.ts +148 -0
- package/dest/fields/bls12_fields.d.ts.map +1 -0
- package/dest/fields/bls12_fields.js +359 -0
- package/dest/fields/bls12_point.d.ts +229 -0
- package/dest/fields/bls12_point.d.ts.map +1 -0
- package/dest/fields/bls12_point.js +398 -0
- package/dest/fields/coordinate.d.ts +0 -2
- package/dest/fields/coordinate.d.ts.map +1 -1
- package/dest/fields/fields.d.ts +6 -3
- package/dest/fields/fields.d.ts.map +1 -1
- package/dest/fields/fields.js +43 -15
- package/dest/fields/index.d.ts +2 -0
- package/dest/fields/index.d.ts.map +1 -1
- package/dest/fields/index.js +2 -0
- package/dest/fields/point.d.ts +2 -4
- package/dest/fields/point.d.ts.map +1 -1
- package/dest/fields/point.js +3 -3
- package/dest/fs/index.d.ts +1 -0
- package/dest/fs/index.d.ts.map +1 -1
- package/dest/fs/index.js +1 -0
- package/dest/fs/try_rm_dir.d.ts +3 -0
- package/dest/fs/try_rm_dir.d.ts.map +1 -0
- package/dest/fs/try_rm_dir.js +16 -0
- package/dest/index.d.ts +1 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -2
- package/dest/iterable/filter.js +1 -1
- package/dest/iterable/map.js +1 -1
- package/dest/jest/env.js +48 -0
- package/dest/jest/setupAfterEnv.js +3 -0
- package/dest/json-rpc/client/fetch.d.ts +2 -2
- package/dest/json-rpc/client/fetch.d.ts.map +1 -1
- package/dest/json-rpc/client/fetch.js +16 -30
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +9 -3
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.js +173 -13
- package/dest/json-rpc/client/undici.d.ts.map +1 -1
- package/dest/json-rpc/client/undici.js +6 -7
- package/dest/json-rpc/convert.d.ts +2 -9
- package/dest/json-rpc/convert.d.ts.map +1 -1
- package/dest/json-rpc/convert.js +1 -9
- package/dest/json-rpc/errors.d.ts +4 -0
- package/dest/json-rpc/errors.d.ts.map +1 -0
- package/dest/json-rpc/errors.js +6 -0
- package/dest/json-rpc/fixtures/class_a.d.ts +5 -3
- package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/class_b.d.ts +5 -3
- package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
- package/dest/json-rpc/index.d.ts +2 -1
- package/dest/json-rpc/index.d.ts.map +1 -1
- package/dest/json-rpc/index.js +2 -1
- package/dest/json-rpc/js_utils.d.ts.map +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts +21 -22
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.js +161 -56
- package/dest/json-rpc/test/integration.d.ts +1 -2
- package/dest/json-rpc/test/integration.d.ts.map +1 -1
- package/dest/log/console.d.ts.map +1 -1
- package/dest/log/gcloud-logger-config.d.ts +0 -1
- package/dest/log/gcloud-logger-config.d.ts.map +1 -1
- package/dest/log/gcloud-logger-config.js +1 -9
- package/dest/log/index.d.ts +4 -4
- package/dest/log/index.d.ts.map +1 -1
- package/dest/log/index.js +4 -4
- package/dest/log/libp2p_logger.js +13 -2
- package/dest/log/log_fn.d.ts +1 -1
- package/dest/log/log_fn.d.ts.map +1 -1
- package/dest/log/noir_debug_log_util.d.ts +14 -0
- package/dest/log/noir_debug_log_util.d.ts.map +1 -0
- package/dest/log/noir_debug_log_util.js +14 -0
- package/dest/log/pino-logger.d.ts +2 -2
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +28 -2
- package/dest/message/index.d.ts.map +1 -1
- package/dest/mutex/mutex_database.d.ts.map +1 -1
- package/dest/noir/noir_package_config.d.ts +4 -4
- package/dest/number/index.d.ts +3 -0
- package/dest/number/index.d.ts.map +1 -0
- package/dest/number/index.js +12 -0
- package/dest/profiler/index.d.ts +2 -0
- package/dest/profiler/index.d.ts.map +1 -0
- package/dest/profiler/index.js +1 -0
- package/dest/profiler/profiler.d.ts +8 -0
- package/dest/profiler/profiler.d.ts.map +1 -0
- package/dest/profiler/profiler.js +97 -0
- package/dest/promise/running-promise.d.ts +1 -1
- package/dest/promise/running-promise.d.ts.map +1 -1
- package/dest/promise/running-promise.js +2 -2
- package/dest/queue/batch_queue.d.ts +1 -1
- package/dest/queue/batch_queue.js +1 -1
- package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
- package/dest/queue/serial_queue.d.ts +2 -2
- package/dest/queue/serial_queue.d.ts.map +1 -1
- package/dest/queue/serial_queue.js +7 -5
- package/dest/retry/index.d.ts +3 -2
- package/dest/retry/index.d.ts.map +1 -1
- package/dest/retry/index.js +2 -2
- package/dest/schemas/api.d.ts.map +1 -1
- package/dest/schemas/parse.js +1 -1
- package/dest/schemas/schemas.d.ts +9 -6
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +15 -1
- package/dest/schemas/utils.d.ts +1 -3
- package/dest/schemas/utils.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.d.ts +27 -2
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +44 -2
- package/dest/serialize/field_reader.d.ts +10 -1
- package/dest/serialize/field_reader.d.ts.map +1 -1
- package/dest/serialize/field_reader.js +18 -1
- package/dest/serialize/free_funcs.d.ts +23 -21
- package/dest/serialize/free_funcs.d.ts.map +1 -1
- package/dest/serialize/free_funcs.js +21 -27
- package/dest/serialize/serialize.d.ts +4 -5
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/string/index.d.ts +7 -2
- package/dest/string/index.d.ts.map +1 -1
- package/dest/string/index.js +27 -1
- package/dest/testing/files/index.d.ts +0 -2
- package/dest/testing/files/index.d.ts.map +1 -1
- package/dest/testing/files/index.js +2 -2
- package/dest/testing/formatting.d.ts +4 -0
- package/dest/testing/formatting.d.ts.map +1 -0
- package/dest/testing/formatting.js +3 -0
- package/dest/testing/index.d.ts +1 -0
- package/dest/testing/index.d.ts.map +1 -1
- package/dest/testing/index.js +1 -0
- package/dest/timer/date.d.ts +2 -1
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +5 -3
- package/dest/timer/index.d.ts +1 -1
- package/dest/timer/index.d.ts.map +1 -1
- package/dest/timer/index.js +1 -1
- package/dest/timer/timeout.d.ts +18 -5
- package/dest/timer/timeout.d.ts.map +1 -1
- package/dest/timer/timeout.js +43 -22
- package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
- package/dest/transport/index.d.ts +0 -1
- package/dest/transport/index.d.ts.map +1 -1
- package/dest/transport/index.js +0 -1
- package/dest/transport/interface/connector.d.ts.map +1 -1
- package/dest/transport/interface/listener.d.ts +0 -1
- package/dest/transport/interface/listener.d.ts.map +1 -1
- package/dest/transport/interface/socket.d.ts.map +1 -1
- package/dest/transport/node/node_connector.d.ts +0 -1
- package/dest/transport/node/node_connector.d.ts.map +1 -1
- package/dest/transport/node/node_connector_socket.d.ts +0 -1
- package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
- package/dest/transport/node/node_listener.d.ts +0 -1
- package/dest/transport/node/node_listener.d.ts.map +1 -1
- package/dest/transport/node/node_listener_socket.d.ts +0 -1
- package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
- package/dest/transport/transport_client.d.ts +0 -1
- package/dest/transport/transport_client.d.ts.map +1 -1
- package/dest/transport/transport_server.d.ts.map +1 -1
- package/dest/trees/hasher.d.ts +4 -6
- package/dest/trees/hasher.d.ts.map +1 -1
- package/dest/trees/index.d.ts +1 -0
- package/dest/trees/index.d.ts.map +1 -1
- package/dest/trees/index.js +1 -0
- package/dest/trees/indexed_merkle_tree.d.ts +0 -2
- package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -3
- package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/indexed_tree_leaf.d.ts +0 -2
- package/dest/trees/indexed_tree_leaf.d.ts.map +1 -1
- package/dest/trees/membership_witness.d.ts +19 -3
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/membership_witness.js +13 -0
- package/dest/trees/merkle_tree.d.ts +0 -2
- package/dest/trees/merkle_tree.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.d.ts +11 -3
- package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.js +31 -1
- package/dest/trees/sibling_path.d.ts +6 -8
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree.d.ts +19 -8
- package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree.js +49 -50
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
- package/dest/trees/unbalanced_merkle_tree_calculator.js +162 -0
- package/dest/trees/unbalanced_tree_store.d.ts +1 -0
- package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
- package/dest/trees/unbalanced_tree_store.js +6 -0
- package/dest/types/index.d.ts +25 -2
- package/dest/types/index.d.ts.map +1 -1
- package/dest/url/index.d.ts.map +1 -1
- package/dest/url/index.js +1 -1
- package/package.json +35 -41
- package/src/array/array.ts +13 -0
- package/src/async-pool/index.ts +1 -0
- package/src/bigint/index.ts +20 -0
- package/src/buffer/buffer16.ts +133 -0
- package/src/buffer/buffer32.ts +8 -6
- package/src/buffer/index.ts +1 -0
- package/src/collection/array.ts +66 -4
- package/src/collection/object.ts +37 -0
- package/src/config/env_var.ts +142 -52
- package/src/config/index.ts +191 -8
- package/src/config/network_config.ts +16 -0
- package/src/config/network_name.ts +28 -0
- package/src/config/secret_value.ts +49 -0
- package/src/crypto/aes128/index.ts +19 -10
- package/src/crypto/bls/bn254_keystore.ts +287 -0
- package/src/crypto/bls/index.ts +77 -0
- package/src/crypto/bn254/bn254_utils.ts +64 -0
- package/src/crypto/bn254/index.ts +170 -0
- package/src/crypto/ecdsa/index.ts +41 -23
- package/src/crypto/grumpkin/index.ts +35 -45
- package/src/crypto/index.ts +2 -0
- package/src/crypto/keys/index.ts +5 -5
- package/src/crypto/pedersen/pedersen.wasm.ts +22 -18
- package/src/crypto/poseidon/index.ts +32 -24
- package/src/crypto/random/index.ts +2 -40
- package/src/crypto/schnorr/index.ts +20 -17
- package/src/crypto/secp256k1/index.ts +15 -11
- package/src/crypto/secp256k1-signer/utils.ts +120 -7
- package/src/crypto/sha256/index.ts +47 -0
- package/src/crypto/sync/index.ts +1 -1
- package/src/crypto/sync/pedersen/index.ts +16 -15
- package/src/crypto/sync/poseidon/index.ts +27 -22
- package/src/eth-address/index.ts +9 -2
- package/src/eth-signature/eth_signature.ts +44 -22
- package/src/fields/bls12_fields.ts +463 -0
- package/src/fields/bls12_point.ts +450 -0
- package/src/fields/fields.ts +37 -9
- package/src/fields/index.ts +2 -0
- package/src/fields/point.ts +1 -3
- package/src/fs/index.ts +1 -0
- package/src/fs/try_rm_dir.ts +15 -0
- package/src/index.ts +1 -2
- package/src/iterable/filter.ts +1 -1
- package/src/iterable/map.ts +1 -1
- package/src/jest/env.mjs +52 -0
- package/src/jest/setupAfterEnv.mjs +3 -0
- package/src/json-rpc/client/fetch.ts +14 -33
- package/src/json-rpc/client/safe_json_rpc_client.ts +226 -13
- package/src/json-rpc/client/undici.ts +8 -15
- package/src/json-rpc/convert.ts +3 -12
- package/src/json-rpc/errors.ts +6 -0
- package/src/json-rpc/fixtures/class_a.ts +4 -1
- package/src/json-rpc/fixtures/class_b.ts +4 -1
- package/src/json-rpc/index.ts +2 -1
- package/src/json-rpc/server/safe_json_rpc_server.ts +141 -48
- package/src/json-rpc/test/integration.ts +1 -1
- package/src/log/console.ts +4 -1
- package/src/log/gcloud-logger-config.ts +3 -7
- package/src/log/index.ts +4 -4
- package/src/log/libp2p_logger.ts +21 -2
- package/src/log/log_fn.ts +1 -1
- package/src/log/noir_debug_log_util.ts +21 -0
- package/src/log/pino-logger.ts +33 -2
- package/src/message/index.ts +5 -1
- package/src/mutex/mutex_database.ts +2 -3
- package/src/number/index.ts +14 -0
- package/src/profiler/index.ts +1 -0
- package/src/profiler/profiler.ts +125 -0
- package/src/promise/running-promise.ts +2 -2
- package/src/queue/batch_queue.ts +1 -1
- package/src/queue/bounded_serial_queue.ts +4 -1
- package/src/queue/serial_queue.ts +5 -5
- package/src/retry/index.ts +10 -5
- package/src/schemas/api.ts +4 -4
- package/src/schemas/parse.ts +1 -1
- package/src/schemas/schemas.ts +19 -1
- package/src/serialize/buffer_reader.ts +60 -3
- package/src/serialize/field_reader.ts +27 -3
- package/src/serialize/free_funcs.ts +25 -31
- package/src/serialize/serialize.ts +2 -0
- package/src/string/index.ts +36 -1
- package/src/testing/files/index.ts +6 -2
- package/src/testing/formatting.ts +3 -0
- package/src/testing/index.ts +1 -0
- package/src/timer/date.ts +9 -3
- package/src/timer/index.ts +1 -1
- package/src/timer/timeout.ts +54 -19
- package/src/transport/index.ts +0 -1
- package/src/transport/interface/connector.ts +0 -1
- package/src/transport/interface/listener.ts +2 -3
- package/src/transport/interface/socket.ts +2 -3
- package/src/transport/transport_client.ts +3 -4
- package/src/transport/transport_server.ts +4 -1
- package/src/trees/hasher.ts +4 -4
- package/src/trees/index.ts +1 -0
- package/src/trees/indexed_merkle_tree.ts +5 -1
- package/src/trees/indexed_merkle_tree_calculator.ts +2 -2
- package/src/trees/membership_witness.ts +13 -0
- package/src/trees/merkle_tree.ts +4 -1
- package/src/trees/merkle_tree_calculator.ts +43 -5
- package/src/trees/unbalanced_merkle_tree.ts +50 -42
- package/src/trees/unbalanced_merkle_tree_calculator.ts +194 -0
- package/src/trees/unbalanced_tree_store.ts +5 -1
- package/src/types/index.ts +25 -4
- package/src/url/index.ts +0 -1
- package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
- package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
- package/dest/crypto/pedersen/pedersen.elliptic.js +0 -582
- package/dest/log/debug.d.ts +0 -56
- package/dest/log/debug.d.ts.map +0 -1
- package/dest/log/debug.js +0 -75
- package/dest/log/log_history.d.ts +0 -31
- package/dest/log/log_history.d.ts.map +0 -1
- package/dest/log/log_history.js +0 -38
- package/dest/transport/browser/index.d.ts +0 -5
- package/dest/transport/browser/index.d.ts.map +0 -1
- package/dest/transport/browser/index.js +0 -4
- package/dest/transport/browser/message_port_socket.d.ts +0 -37
- package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
- package/dest/transport/browser/message_port_socket.js +0 -42
- package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
- package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
- package/dest/transport/browser/shared_worker_connector.js +0 -19
- package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
- package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
- package/dest/transport/browser/shared_worker_listener.js +0 -33
- package/dest/transport/browser/worker_connector.d.ts +0 -26
- package/dest/transport/browser/worker_connector.d.ts.map +0 -1
- package/dest/transport/browser/worker_connector.js +0 -30
- package/dest/transport/browser/worker_listener.d.ts +0 -39
- package/dest/transport/browser/worker_listener.d.ts.map +0 -1
- package/dest/transport/browser/worker_listener.js +0 -35
- package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
- package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
- package/dest/wasm/empty_wasi_sdk.js +0 -148
- package/dest/wasm/index.d.ts +0 -2
- package/dest/wasm/index.d.ts.map +0 -1
- package/dest/wasm/index.js +0 -1
- package/dest/wasm/wasm_module.d.ts +0 -136
- package/dest/wasm/wasm_module.d.ts.map +0 -1
- package/dest/wasm/wasm_module.js +0 -196
- package/dest/worker/browser/index.d.ts +0 -3
- package/dest/worker/browser/index.d.ts.map +0 -1
- package/dest/worker/browser/index.js +0 -2
- package/dest/worker/browser/start_web_module.d.ts +0 -7
- package/dest/worker/browser/start_web_module.d.ts.map +0 -1
- package/dest/worker/browser/start_web_module.js +0 -27
- package/dest/worker/browser/web_data_store.d.ts +0 -24
- package/dest/worker/browser/web_data_store.d.ts.map +0 -1
- package/dest/worker/browser/web_data_store.js +0 -29
- package/dest/worker/browser/web_worker.d.ts +0 -10
- package/dest/worker/browser/web_worker.d.ts.map +0 -1
- package/dest/worker/browser/web_worker.js +0 -25
- package/dest/worker/data_store.d.ts +0 -21
- package/dest/worker/data_store.d.ts.map +0 -1
- package/dest/worker/data_store.js +0 -3
- package/dest/worker/index.d.ts +0 -3
- package/dest/worker/index.d.ts.map +0 -1
- package/dest/worker/index.js +0 -1
- package/dest/worker/node/index.d.ts +0 -3
- package/dest/worker/node/index.d.ts.map +0 -1
- package/dest/worker/node/index.js +0 -2
- package/dest/worker/node/node_data_store.d.ts +0 -13
- package/dest/worker/node/node_data_store.d.ts.map +0 -1
- package/dest/worker/node/node_data_store.js +0 -20
- package/dest/worker/node/node_worker.d.ts +0 -6
- package/dest/worker/node/node_worker.d.ts.map +0 -1
- package/dest/worker/node/node_worker.js +0 -22
- package/dest/worker/node/start_node_module.d.ts +0 -7
- package/dest/worker/node/start_node_module.d.ts.map +0 -1
- package/dest/worker/node/start_node_module.js +0 -31
- package/dest/worker/wasm_worker.d.ts +0 -9
- package/dest/worker/wasm_worker.d.ts.map +0 -1
- package/dest/worker/wasm_worker.js +0 -3
- package/dest/worker/worker_pool.d.ts +0 -40
- package/dest/worker/worker_pool.d.ts.map +0 -1
- package/dest/worker/worker_pool.js +0 -51
- package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
- package/src/log/debug.ts +0 -104
- package/src/log/log_history.ts +0 -44
- package/src/transport/browser/index.ts +0 -4
- package/src/transport/browser/message_port_socket.ts +0 -48
- package/src/transport/browser/shared_worker_connector.ts +0 -21
- package/src/transport/browser/shared_worker_listener.ts +0 -53
- package/src/transport/browser/worker_connector.ts +0 -30
- package/src/transport/browser/worker_listener.ts +0 -54
- package/src/wasm/README.md +0 -6
- package/src/wasm/empty_wasi_sdk.ts +0 -166
- package/src/wasm/fixtures/gcd.wasm +0 -0
- package/src/wasm/fixtures/gcd.wat +0 -27
- package/src/wasm/index.ts +0 -1
- package/src/wasm/wasm_module.ts +0 -260
- package/src/worker/browser/index.ts +0 -2
- package/src/worker/browser/start_web_module.ts +0 -24
- package/src/worker/browser/web_data_store.ts +0 -38
- package/src/worker/browser/web_worker.ts +0 -25
- package/src/worker/data_store.ts +0 -19
- package/src/worker/index.ts +0 -2
- package/src/worker/node/index.ts +0 -2
- package/src/worker/node/node_data_store.ts +0 -27
- package/src/worker/node/node_worker.ts +0 -23
- package/src/worker/node/start_node_module.ts +0 -30
- package/src/worker/wasm_worker.ts +0 -7
- package/src/worker/worker_pool.ts +0 -73
|
@@ -43,7 +43,7 @@ export class RunningPromise {
|
|
|
43
43
|
public start() {
|
|
44
44
|
if (this.running) {
|
|
45
45
|
this.logger.warn(`Attempted to start running promise that was already started`);
|
|
46
|
-
return;
|
|
46
|
+
return this;
|
|
47
47
|
}
|
|
48
48
|
this.running = true;
|
|
49
49
|
|
|
@@ -73,6 +73,7 @@ export class RunningPromise {
|
|
|
73
73
|
}
|
|
74
74
|
};
|
|
75
75
|
this.runningPromise = poll();
|
|
76
|
+
return this;
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
/**
|
|
@@ -81,7 +82,6 @@ export class RunningPromise {
|
|
|
81
82
|
*/
|
|
82
83
|
async stop(): Promise<void> {
|
|
83
84
|
if (!this.running) {
|
|
84
|
-
this.logger.warn(`Running promise was not started`);
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
87
|
this.running = false;
|
package/src/queue/batch_queue.ts
CHANGED
|
@@ -13,7 +13,7 @@ type Batch<T, K> = {
|
|
|
13
13
|
* A queue that groups items into batches based on a group key.
|
|
14
14
|
*
|
|
15
15
|
* The batching algorithm is greedy, meaning that as long as consecutive items have the same group key then they will
|
|
16
|
-
* be
|
|
16
|
+
* be batched together. As soon as an item with a different group key is encountered, the old batch is flushed to the
|
|
17
17
|
* queue and a new batch is started.
|
|
18
18
|
*
|
|
19
19
|
* A batch can also be flushed to the queue if:
|
|
@@ -10,7 +10,10 @@ export class BoundedSerialQueue {
|
|
|
10
10
|
private readonly queue = new SerialQueue();
|
|
11
11
|
private semaphore: Semaphore;
|
|
12
12
|
|
|
13
|
-
constructor(
|
|
13
|
+
constructor(
|
|
14
|
+
maxQueueSize: number,
|
|
15
|
+
private log = createLogger('foundation:bounded_serial_queue'),
|
|
16
|
+
) {
|
|
14
17
|
this.semaphore = new Semaphore(maxQueueSize);
|
|
15
18
|
}
|
|
16
19
|
|
|
@@ -5,7 +5,7 @@ import { FifoMemoryQueue } from './fifo_memory_queue.js';
|
|
|
5
5
|
*/
|
|
6
6
|
export class SerialQueue {
|
|
7
7
|
private readonly queue = new FifoMemoryQueue<() => Promise<void>>();
|
|
8
|
-
private
|
|
8
|
+
private runningPromises: Promise<void>[] = [];
|
|
9
9
|
private started = false;
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -14,11 +14,11 @@ export class SerialQueue {
|
|
|
14
14
|
* waiting for the completion of the previous one before starting its execution.
|
|
15
15
|
* This method should be called once to start processing the queue.
|
|
16
16
|
*/
|
|
17
|
-
public start() {
|
|
17
|
+
public start(numWorkers = 1) {
|
|
18
18
|
if (this.started) {
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
|
-
this.
|
|
21
|
+
this.runningPromises = Array.from({ length: numWorkers }, () => this.queue.process(fn => fn()));
|
|
22
22
|
this.started = true;
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -41,7 +41,7 @@ export class SerialQueue {
|
|
|
41
41
|
*/
|
|
42
42
|
public cancel() {
|
|
43
43
|
this.queue.cancel();
|
|
44
|
-
return this.
|
|
44
|
+
return Promise.all(this.runningPromises).then(() => {});
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
@@ -52,7 +52,7 @@ export class SerialQueue {
|
|
|
52
52
|
*/
|
|
53
53
|
public end() {
|
|
54
54
|
this.queue.end();
|
|
55
|
-
return this.
|
|
55
|
+
return Promise.all(this.runningPromises).then(() => {});
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
/**
|
package/src/retry/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TimeoutError } from '../error/index.js';
|
|
2
|
-
import { createLogger } from '../log/index.js';
|
|
2
|
+
import { type Logger, createLogger } from '../log/index.js';
|
|
3
3
|
import { sleep } from '../sleep/index.js';
|
|
4
4
|
import { Timer } from '../timer/index.js';
|
|
5
5
|
|
|
@@ -49,7 +49,7 @@ export async function retry<Result>(
|
|
|
49
49
|
fn: () => Promise<Result>,
|
|
50
50
|
name = 'Operation',
|
|
51
51
|
backoff = backoffGenerator(),
|
|
52
|
-
log = createLogger('foundation:retry'),
|
|
52
|
+
log: Logger = createLogger('foundation:retry'),
|
|
53
53
|
failSilently = false,
|
|
54
54
|
) {
|
|
55
55
|
while (true) {
|
|
@@ -64,8 +64,8 @@ export async function retry<Result>(
|
|
|
64
64
|
if (s === undefined) {
|
|
65
65
|
throw err;
|
|
66
66
|
}
|
|
67
|
-
log
|
|
68
|
-
!failSilently && log
|
|
67
|
+
log?.debug(`${name} failed. Will retry in ${s}s...`);
|
|
68
|
+
!failSilently && log?.error(`Error while retrying ${name}`, err);
|
|
69
69
|
await sleep(s * 1000);
|
|
70
70
|
continue;
|
|
71
71
|
}
|
|
@@ -83,7 +83,12 @@ export async function retry<Result>(
|
|
|
83
83
|
* @param interval - The optional interval, in seconds, between retry attempts. Defaults to 1 second.
|
|
84
84
|
* @returns A Promise that resolves with the successful (truthy) result of the provided function, or rejects if timeout is exceeded.
|
|
85
85
|
*/
|
|
86
|
-
export async function retryUntil<T>(
|
|
86
|
+
export async function retryUntil<T>(
|
|
87
|
+
fn: () => (T | undefined) | Promise<T | undefined>,
|
|
88
|
+
name = '',
|
|
89
|
+
timeout = 0,
|
|
90
|
+
interval = 1,
|
|
91
|
+
) {
|
|
87
92
|
const timer = new Timer();
|
|
88
93
|
while (true) {
|
|
89
94
|
const result = await fn();
|
package/src/schemas/api.ts
CHANGED
|
@@ -19,10 +19,10 @@ type ZodReturnTypeFor<T> = z.ZodType<T, z.ZodTypeDef, any>;
|
|
|
19
19
|
type ZodMapParameterTypes<T> = T extends []
|
|
20
20
|
? []
|
|
21
21
|
: T extends [item: infer Head, ...infer Rest]
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
? [ZodParameterTypeFor<Head>, ...{ [K in keyof Rest]: ZodParameterTypeFor<Rest[K]> }]
|
|
23
|
+
: T extends [item?: infer Head, ...infer Rest]
|
|
24
|
+
? [ZodNullableOptional<ZodParameterTypeFor<Head>>, ...{ [K in keyof Rest]: ZodParameterTypeFor<Rest[K]> }]
|
|
25
|
+
: never;
|
|
26
26
|
|
|
27
27
|
/** Maps all functions in an interface to their schema representation. */
|
|
28
28
|
export type ApiSchemaFor<T> = {
|
package/src/schemas/parse.ts
CHANGED
|
@@ -22,7 +22,7 @@ export function parseWithOptionals<T extends z.AnyZodTuple>(args: any[], schema:
|
|
|
22
22
|
function isOptional(schema: z.ZodTypeAny) {
|
|
23
23
|
try {
|
|
24
24
|
return schema.isOptional();
|
|
25
|
-
} catch
|
|
25
|
+
} catch {
|
|
26
26
|
// See https://github.com/colinhacks/zod/issues/1911
|
|
27
27
|
return schema._def.typeName === 'ZodOptional';
|
|
28
28
|
}
|
package/src/schemas/schemas.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
|
|
3
3
|
import { Buffer32 } from '../buffer/buffer32.js';
|
|
4
|
+
import { SecretValue } from '../config/secret_value.js';
|
|
4
5
|
import { EthAddress } from '../eth-address/index.js';
|
|
5
6
|
import { Fq, Fr } from '../fields/fields.js';
|
|
6
7
|
import { Point } from '../fields/point.js';
|
|
@@ -20,6 +21,20 @@ export const schemas = {
|
|
|
20
21
|
/** Point. Serialized as a hex string. */
|
|
21
22
|
Point: Point.schema,
|
|
22
23
|
|
|
24
|
+
/** Coerces truthy-like string values to boolean. */
|
|
25
|
+
Boolean: z.union([
|
|
26
|
+
z.boolean(),
|
|
27
|
+
z
|
|
28
|
+
.number()
|
|
29
|
+
.refine(arg => arg === 0 || arg === 1, { message: `Numeric value for a boolean variable must be 0 or 1` })
|
|
30
|
+
.transform(arg => arg === 1),
|
|
31
|
+
z
|
|
32
|
+
.string()
|
|
33
|
+
.transform(arg => arg.trim().toLowerCase())
|
|
34
|
+
.refine(arg => ['true', 'false', '1', '0'].includes(arg))
|
|
35
|
+
.transform(arg => arg === '1' || arg === 'true'),
|
|
36
|
+
]),
|
|
37
|
+
|
|
23
38
|
/** Coerces any input to bigint. */
|
|
24
39
|
BigInt: z.union([z.bigint(), z.number(), z.string()]).pipe(z.coerce.bigint()),
|
|
25
40
|
|
|
@@ -58,7 +73,10 @@ export const schemas = {
|
|
|
58
73
|
|
|
59
74
|
/** Hex string with an optional 0x prefix which gets removed as part of the parsing. */
|
|
60
75
|
HexString: hexSchema,
|
|
76
|
+
|
|
77
|
+
/** A secret config value */
|
|
78
|
+
SecretValue: SecretValue.schema,
|
|
61
79
|
};
|
|
62
80
|
|
|
63
81
|
// These are needed to avoid errors such as: "The inferred type of 'YourClassSchema' cannot be named without a reference to..."
|
|
64
|
-
export type { EthAddress,
|
|
82
|
+
export type { EthAddress, Fq, Fr, Point };
|
|
@@ -19,7 +19,10 @@ import type { Tuple } from './types.js';
|
|
|
19
19
|
*/
|
|
20
20
|
export class BufferReader {
|
|
21
21
|
private index: number;
|
|
22
|
-
constructor(
|
|
22
|
+
constructor(
|
|
23
|
+
private buffer: Buffer,
|
|
24
|
+
offset = 0,
|
|
25
|
+
) {
|
|
23
26
|
this.index = offset;
|
|
24
27
|
}
|
|
25
28
|
|
|
@@ -70,6 +73,43 @@ export class BufferReader {
|
|
|
70
73
|
return result as Tuple<number, N>;
|
|
71
74
|
}
|
|
72
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Reads a 256-bit unsigned integer from the buffer at the current index position.
|
|
78
|
+
* Updates the index position by 32 bytes after reading the number.
|
|
79
|
+
*
|
|
80
|
+
* Assumes the number is stored in big-endian format.
|
|
81
|
+
*
|
|
82
|
+
* @returns The read 256 bit value as a bigint.
|
|
83
|
+
*/
|
|
84
|
+
public readUInt64(): bigint {
|
|
85
|
+
this.#rangeCheck(8);
|
|
86
|
+
|
|
87
|
+
const result = this.buffer.readBigUInt64BE(this.index);
|
|
88
|
+
|
|
89
|
+
this.index += 8;
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Reads a 128-bit unsigned integer from the buffer at the current index position.
|
|
95
|
+
* Updates the index position by 16 bytes after reading the number.
|
|
96
|
+
*
|
|
97
|
+
* Assumes the number is stored in big-endian format.
|
|
98
|
+
*
|
|
99
|
+
* @returns The read 128 bit value as a bigint.
|
|
100
|
+
*/
|
|
101
|
+
public readUInt128(): bigint {
|
|
102
|
+
this.#rangeCheck(16);
|
|
103
|
+
|
|
104
|
+
let result = BigInt(0);
|
|
105
|
+
for (let i = 0; i < 2; i++) {
|
|
106
|
+
result = (result << BigInt(64)) | this.buffer.readBigUInt64BE(this.index + i * 8);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
this.index += 16;
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
|
|
73
113
|
/**
|
|
74
114
|
* Reads a 256-bit unsigned integer from the buffer at the current index position.
|
|
75
115
|
* Updates the index position by 32 bytes after reading the number.
|
|
@@ -82,14 +122,19 @@ export class BufferReader {
|
|
|
82
122
|
this.#rangeCheck(32);
|
|
83
123
|
|
|
84
124
|
let result = BigInt(0);
|
|
85
|
-
for (let i = 0; i <
|
|
86
|
-
result = (result << BigInt(
|
|
125
|
+
for (let i = 0; i < 4; i++) {
|
|
126
|
+
result = (result << BigInt(64)) | this.buffer.readBigUInt64BE(this.index + i * 8);
|
|
87
127
|
}
|
|
88
128
|
|
|
89
129
|
this.index += 32;
|
|
90
130
|
return result;
|
|
91
131
|
}
|
|
92
132
|
|
|
133
|
+
/** Alias for readUInt256 */
|
|
134
|
+
public readBigInt(): bigint {
|
|
135
|
+
return this.readUInt256();
|
|
136
|
+
}
|
|
137
|
+
|
|
93
138
|
/**
|
|
94
139
|
* Reads a 16-bit unsigned integer from the buffer at the current index position.
|
|
95
140
|
* Updates the index position by 2 bytes after reading the number.
|
|
@@ -160,6 +205,18 @@ export class BufferReader {
|
|
|
160
205
|
});
|
|
161
206
|
}
|
|
162
207
|
|
|
208
|
+
/**
|
|
209
|
+
* Reads a vector of 256-bit unsigned integers from the buffer and returns it as an array of bigints.
|
|
210
|
+
* The method utilizes the 'readVector' method, passing a deserializer that reads bigints.
|
|
211
|
+
*
|
|
212
|
+
* @returns An array of bigints representing the vector read from the buffer.
|
|
213
|
+
*/
|
|
214
|
+
public readUint256Vector(): bigint[] {
|
|
215
|
+
return this.readVector({
|
|
216
|
+
fromBuffer: (reader: BufferReader) => reader.readUInt256(),
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
|
|
163
220
|
/**
|
|
164
221
|
* Reads a vector of fixed size from the buffer and deserializes its elements using the provided itemDeserializer object.
|
|
165
222
|
* The 'itemDeserializer' object should have a 'fromBuffer' method that takes a BufferReader instance and returns the deserialized element.
|
|
@@ -11,11 +11,15 @@ import type { Tuple } from './types.js';
|
|
|
11
11
|
*/
|
|
12
12
|
export class FieldReader {
|
|
13
13
|
private index: number;
|
|
14
|
-
private length: number;
|
|
15
|
-
|
|
14
|
+
private readonly length: number;
|
|
15
|
+
|
|
16
|
+
constructor(
|
|
17
|
+
private fields: Fr[],
|
|
18
|
+
offset = 0,
|
|
19
|
+
) {
|
|
16
20
|
this.index = offset;
|
|
17
21
|
this.length = fields.length;
|
|
18
|
-
if (offset
|
|
22
|
+
if (offset > this.length) {
|
|
19
23
|
throw new Error('Offset out of bounds.');
|
|
20
24
|
}
|
|
21
25
|
}
|
|
@@ -43,6 +47,10 @@ export class FieldReader {
|
|
|
43
47
|
return this.index;
|
|
44
48
|
}
|
|
45
49
|
|
|
50
|
+
public remainingFields(): number {
|
|
51
|
+
return this.length - this.index;
|
|
52
|
+
}
|
|
53
|
+
|
|
46
54
|
/**
|
|
47
55
|
* Skips the next n fields.
|
|
48
56
|
*
|
|
@@ -121,6 +129,22 @@ export class FieldReader {
|
|
|
121
129
|
return Number(value);
|
|
122
130
|
}
|
|
123
131
|
|
|
132
|
+
/**
|
|
133
|
+
* Reads a 64-bit unsigned integer from the field array at the current index position.
|
|
134
|
+
* Updates the index position by 1 after reading the number.
|
|
135
|
+
* Throw if the value is greater than 2 ** 64.
|
|
136
|
+
*
|
|
137
|
+
* @returns The read 64-bit unsigned integer value as a bigint.
|
|
138
|
+
*/
|
|
139
|
+
public readU64(): bigint {
|
|
140
|
+
const field = this.readField();
|
|
141
|
+
const value = field.toBigInt();
|
|
142
|
+
if (value >= 1n << 64n) {
|
|
143
|
+
throw new Error('Field is not a u64.');
|
|
144
|
+
}
|
|
145
|
+
return value;
|
|
146
|
+
}
|
|
147
|
+
|
|
124
148
|
/**
|
|
125
149
|
* Read an array of a fixed size field array.
|
|
126
150
|
*
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { toBufferBE } from '../bigint-buffer/index.js';
|
|
1
2
|
import { Fr } from '../fields/fields.js';
|
|
2
3
|
import type { Tuple } from './types.js';
|
|
3
4
|
|
|
@@ -56,6 +57,30 @@ export function numToUInt32BE(n: number, bufferSize = 4) {
|
|
|
56
57
|
return buf;
|
|
57
58
|
}
|
|
58
59
|
|
|
60
|
+
/**
|
|
61
|
+
* Convert a bigint to a big-endian unsigned 64-bit integer Buffer.
|
|
62
|
+
*
|
|
63
|
+
* @param n - The bigint to be converted to a big-endian unsigned 64-bit integer Buffer.
|
|
64
|
+
* @param bufferSize - Optional, the size of the output Buffer (default is 8).
|
|
65
|
+
* @returns A Buffer containing the big-endian unsigned 64-bit integer representation of the input number.
|
|
66
|
+
*/
|
|
67
|
+
export function bigintToUInt64BE(n: bigint, bufferSize = 8) {
|
|
68
|
+
const buf = Buffer.alloc(bufferSize);
|
|
69
|
+
buf.writeBigUInt64BE(n, bufferSize - 8);
|
|
70
|
+
return buf;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Convert a bigint to a big-endian unsigned 128-bit integer Buffer.
|
|
75
|
+
*
|
|
76
|
+
* @param n - The bigint to be converted to a big-endian unsigned 128-bit integer Buffer.
|
|
77
|
+
* @param bufferSize - Optional, the size of the output Buffer (default is 16).
|
|
78
|
+
* @returns A Buffer containing the big-endian unsigned 128-bit integer representation of the input number.
|
|
79
|
+
*/
|
|
80
|
+
export function bigintToUInt128BE(n: bigint, bufferSize = 16) {
|
|
81
|
+
return toBufferBE(n, bufferSize);
|
|
82
|
+
}
|
|
83
|
+
|
|
59
84
|
/**
|
|
60
85
|
* Serialize a number into a big-endian signed 32-bit integer Buffer with the specified buffer size.
|
|
61
86
|
* This function converts the input number into its binary representation and stores it in a Buffer
|
|
@@ -160,37 +185,6 @@ export function truncateAndPad(buf: Buffer): Buffer {
|
|
|
160
185
|
return Buffer.concat([Buffer.alloc(1), buf.subarray(0, 31)]);
|
|
161
186
|
}
|
|
162
187
|
|
|
163
|
-
/**
|
|
164
|
-
* Stores 248 bits of information in 1 field.
|
|
165
|
-
* @param buf - 32 or 31 bytes of data
|
|
166
|
-
* @returns 1 field element
|
|
167
|
-
*/
|
|
168
|
-
export function toTruncField(buf: Buffer): Fr {
|
|
169
|
-
if (buf.length !== 32 && buf.length !== 31) {
|
|
170
|
-
throw new Error('Buffer must be 31 or 32 bytes');
|
|
171
|
-
}
|
|
172
|
-
if ((buf.length == 32 && buf[0] == 0) || buf.length == 31) {
|
|
173
|
-
return Fr.fromBuffer(buf);
|
|
174
|
-
} else {
|
|
175
|
-
// Note: safer to NOT truncate here, all inputs are expected to be truncated
|
|
176
|
-
// from Noir or L1 Contracts or Class.hash() methods
|
|
177
|
-
throw new Error(`Number ${toBigInt(buf)} does not fit in 31 byte truncated buffer`);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Reconstructs the original 31 bytes of data from 1 truncated field element.
|
|
183
|
-
* @param field - field element
|
|
184
|
-
* @returns 31 bytes of data as a Buffer
|
|
185
|
-
*/
|
|
186
|
-
export function fromTruncField(field: Fr): Buffer {
|
|
187
|
-
const buffer = field.toBuffer();
|
|
188
|
-
if (buffer[0] != 0) {
|
|
189
|
-
throw new Error(`Number ${field} does not fit in 31 byte truncated buffer`);
|
|
190
|
-
}
|
|
191
|
-
return buffer;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
188
|
export function fromFieldsTuple(fields: Tuple<Fr, 2>): Buffer {
|
|
195
189
|
return from2Fields(fields[0], fields[1]);
|
|
196
190
|
}
|
package/src/string/index.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/** Parameterized hex string type for specific byte lengths */
|
|
2
|
+
export type Hex<TByteLength extends number> = `0x${string}` & { readonly _length: TByteLength };
|
|
3
|
+
|
|
1
4
|
export function hasHexPrefix(str: string): str is `0x${string}` {
|
|
2
5
|
return str.startsWith('0x');
|
|
3
6
|
}
|
|
@@ -6,6 +9,10 @@ export function withoutHexPrefix(str: string): string {
|
|
|
6
9
|
return hasHexPrefix(str) ? str.slice(2) : str;
|
|
7
10
|
}
|
|
8
11
|
|
|
12
|
+
export function withHexPrefix(str: string): `0x${string}` {
|
|
13
|
+
return hasHexPrefix(str) ? str : `0x${str}`;
|
|
14
|
+
}
|
|
15
|
+
|
|
9
16
|
export function isHex(str: string): boolean {
|
|
10
17
|
return /^(0x)?[0-9a-fA-F]*$/.test(str);
|
|
11
18
|
}
|
|
@@ -19,7 +26,7 @@ export function bufferToHex(buffer: Buffer): `0x${string}` {
|
|
|
19
26
|
}
|
|
20
27
|
|
|
21
28
|
export function pluralize(str: string, count: number | bigint, plural?: string): string {
|
|
22
|
-
return count === 1 || count === 1n ? str : plural ?? `${str}s
|
|
29
|
+
return count === 1 || count === 1n ? str : (plural ?? `${str}s`);
|
|
23
30
|
}
|
|
24
31
|
|
|
25
32
|
export function count(count: number | bigint, str: string, plural?: string): string {
|
|
@@ -29,3 +36,31 @@ export function count(count: number | bigint, str: string, plural?: string): str
|
|
|
29
36
|
export function truncate(str: string, length: number = 64): string {
|
|
30
37
|
return str.length > length ? str.slice(0, length) + '...' : str;
|
|
31
38
|
}
|
|
39
|
+
|
|
40
|
+
export function isoDate(date?: Date) {
|
|
41
|
+
return (date ?? new Date()).toISOString().replace(/[-:T]/g, '').replace(/\..+$/, '');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function urlJoin(...args: string[]): string {
|
|
45
|
+
const processed = [];
|
|
46
|
+
for (const arg of args) {
|
|
47
|
+
if (arg.length === 0) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
let start = 0;
|
|
52
|
+
let end = arg.length - 1;
|
|
53
|
+
|
|
54
|
+
while (start <= end && arg[start] === '/') {
|
|
55
|
+
start++;
|
|
56
|
+
}
|
|
57
|
+
while (end >= start && arg[end] === '/') {
|
|
58
|
+
end--;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (start < end) {
|
|
62
|
+
processed.push(arg.slice(start, end + 1));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return processed.join('/');
|
|
66
|
+
}
|
|
@@ -35,12 +35,16 @@ export function updateInlineTestData(targetFileFromRepoRoot: string, itemName: s
|
|
|
35
35
|
const logger = createConsoleLogger('aztec:testing:test_data');
|
|
36
36
|
const targetFile = getPathToFile(targetFileFromRepoRoot);
|
|
37
37
|
const contents = readFileSync(targetFile, 'utf8').toString();
|
|
38
|
-
const regex = new RegExp(`let
|
|
38
|
+
const regex = new RegExp(`(let|pub\\s+global)\\s+${itemName}(\\s*:\\s*[^=]+)?\\s*=\\s*([\\s\\S]*?);`, 'g');
|
|
39
39
|
if (!regex.exec(contents)) {
|
|
40
40
|
throw new Error(`Test data marker for ${itemName} not found in ${targetFile}`);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
const updatedContents = contents.
|
|
43
|
+
const updatedContents = contents.replace(
|
|
44
|
+
regex,
|
|
45
|
+
(_, declareKeyword, typeAnnotation) =>
|
|
46
|
+
`${declareKeyword} ${itemName}${(typeAnnotation || '').trimEnd()} = ${value};`,
|
|
47
|
+
);
|
|
44
48
|
writeFileSync(targetFile, updatedContents);
|
|
45
49
|
logger(`Updated test data in ${targetFile} for ${itemName} to ${value}`);
|
|
46
50
|
}
|
package/src/testing/index.ts
CHANGED
package/src/timer/date.ts
CHANGED
|
@@ -5,15 +5,21 @@ export class DateProvider {
|
|
|
5
5
|
public now(): number {
|
|
6
6
|
return Date.now();
|
|
7
7
|
}
|
|
8
|
+
|
|
9
|
+
public nowInSeconds(): number {
|
|
10
|
+
return Math.floor(this.now() / 1000);
|
|
11
|
+
}
|
|
8
12
|
}
|
|
9
13
|
|
|
10
14
|
/** Returns current datetime and allows to override it. */
|
|
11
|
-
export class TestDateProvider
|
|
15
|
+
export class TestDateProvider extends DateProvider {
|
|
12
16
|
private offset = 0;
|
|
13
17
|
|
|
14
|
-
constructor(private readonly logger = createLogger('foundation:test-date-provider')) {
|
|
18
|
+
constructor(private readonly logger = createLogger('foundation:test-date-provider')) {
|
|
19
|
+
super();
|
|
20
|
+
}
|
|
15
21
|
|
|
16
|
-
public now(): number {
|
|
22
|
+
public override now(): number {
|
|
17
23
|
return Date.now() + this.offset;
|
|
18
24
|
}
|
|
19
25
|
|
package/src/timer/index.ts
CHANGED
package/src/timer/timeout.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TimeoutError } from '../error/index.js';
|
|
2
|
+
import { promiseWithResolvers } from '../promise/utils.js';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* TimeoutTask class creates an instance for managing and executing a given asynchronous function with a specified timeout duration.
|
|
@@ -8,15 +9,15 @@ import { TimeoutError } from '../error/index.js';
|
|
|
8
9
|
* @typeparam T - The return type of the asynchronous function to be executed.
|
|
9
10
|
*/
|
|
10
11
|
export class TimeoutTask<T> {
|
|
11
|
-
private interruptPromise!: Promise<any>;
|
|
12
|
-
private interrupt = () => {};
|
|
13
12
|
private totalTime = 0;
|
|
13
|
+
private timeoutPromise: Promise<never> | undefined;
|
|
14
14
|
|
|
15
|
-
constructor(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
constructor(
|
|
16
|
+
private fn: (signal: AbortSignal) => Promise<T>,
|
|
17
|
+
private timeout: number,
|
|
18
|
+
private errorFn: () => Error,
|
|
19
|
+
private onAbort?: () => void,
|
|
20
|
+
) {}
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* Executes the given function with a specified timeout.
|
|
@@ -27,15 +28,22 @@ export class TimeoutTask<T> {
|
|
|
27
28
|
* @throws An error with a message indicating the function was interrupted due to exceeding the specified timeout.
|
|
28
29
|
*/
|
|
29
30
|
public async exec() {
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
31
|
+
const signal = AbortSignal.timeout(this.timeout);
|
|
32
|
+
this.timeoutPromise = new Promise<never>((_, reject) => {
|
|
33
|
+
signal!.addEventListener(
|
|
34
|
+
'abort',
|
|
35
|
+
() => {
|
|
36
|
+
this.onAbort?.();
|
|
37
|
+
reject(this.errorFn());
|
|
38
|
+
},
|
|
39
|
+
{ once: true },
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
const start = Date.now();
|
|
44
|
+
const result = await Promise.race<T>([this.fn(signal), this.timeoutPromise]);
|
|
45
|
+
this.totalTime = Date.now() - start;
|
|
46
|
+
return result;
|
|
39
47
|
}
|
|
40
48
|
|
|
41
49
|
/**
|
|
@@ -46,7 +54,7 @@ export class TimeoutTask<T> {
|
|
|
46
54
|
* @returns The interrupt promise associated with the task.
|
|
47
55
|
*/
|
|
48
56
|
public getInterruptPromise() {
|
|
49
|
-
return this.
|
|
57
|
+
return this.timeoutPromise;
|
|
50
58
|
}
|
|
51
59
|
|
|
52
60
|
/**
|
|
@@ -60,11 +68,38 @@ export class TimeoutTask<T> {
|
|
|
60
68
|
}
|
|
61
69
|
}
|
|
62
70
|
|
|
63
|
-
|
|
71
|
+
/**
|
|
72
|
+
* Executes a function with a timeout.
|
|
73
|
+
* @param fn - The function to execute, accepts AbortSignal and returns a Promise.
|
|
74
|
+
* @param timeout - The maximum time in milliseconds to allow the function to run.
|
|
75
|
+
* @param errorOrFnName - Optional function name or a function that returns an Error to throw if the timeout is reached.
|
|
76
|
+
* @param onAbort - Optional callback to execute when the task is aborted.
|
|
77
|
+
*
|
|
78
|
+
* @returns A Promise that resolves with the result of the function fn if it completes within the timeout
|
|
79
|
+
*
|
|
80
|
+
* */
|
|
81
|
+
export async function executeTimeout<T>(
|
|
82
|
+
fn: (signal: AbortSignal) => Promise<T>,
|
|
83
|
+
timeout: number,
|
|
84
|
+
errorOrFnName?: string | (() => Error),
|
|
85
|
+
onAbort?: () => void,
|
|
86
|
+
) {
|
|
64
87
|
const errorFn =
|
|
65
88
|
typeof errorOrFnName === 'function'
|
|
66
89
|
? errorOrFnName
|
|
67
90
|
: () => new TimeoutError(`Timeout running ${errorOrFnName ?? 'function'} after ${timeout}ms.`);
|
|
68
|
-
const task = new TimeoutTask(fn, timeout, errorFn);
|
|
91
|
+
const task = new TimeoutTask(fn, timeout, errorFn, onAbort);
|
|
69
92
|
return await task.exec();
|
|
70
93
|
}
|
|
94
|
+
|
|
95
|
+
/** Returns a promise that rejects after the given timeout */
|
|
96
|
+
export function timeoutPromise(timeoutMs: number, errorMessage?: string) {
|
|
97
|
+
const promise = promiseWithResolvers<never>();
|
|
98
|
+
|
|
99
|
+
const timer = setTimeout(() => {
|
|
100
|
+
promise.reject(new TimeoutError(errorMessage ?? `Operation timed out after ${timeoutMs}ms`));
|
|
101
|
+
}, timeoutMs);
|
|
102
|
+
|
|
103
|
+
const cleanup = () => clearTimeout(timer);
|
|
104
|
+
return promise.promise.finally(cleanup);
|
|
105
|
+
}
|
package/src/transport/index.ts
CHANGED