@aztec/foundation 0.0.0-test.1 → 0.0.1-commit.0b941701
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 +6 -9
- package/dest/array/array.d.ts.map +1 -1
- package/dest/array/array.js +11 -11
- package/dest/array/index.d.ts +2 -1
- package/dest/array/index.d.ts.map +1 -1
- package/dest/array/index.js +1 -0
- package/dest/array/sorted_array.d.ts +10 -0
- package/dest/array/sorted_array.d.ts.map +1 -0
- package/dest/array/sorted_array.js +106 -0
- package/dest/async-map/index.d.ts +1 -1
- package/dest/async-pool/index.d.ts +1 -1
- 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 +1 -3
- package/dest/bigint-buffer/index.d.ts.map +1 -1
- package/dest/branded-types/block_number.d.ts +56 -0
- package/dest/branded-types/block_number.d.ts.map +1 -0
- package/dest/branded-types/block_number.js +78 -0
- package/dest/branded-types/checkpoint_number.d.ts +54 -0
- package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
- package/dest/branded-types/checkpoint_number.js +77 -0
- package/dest/branded-types/epoch.d.ts +42 -0
- package/dest/branded-types/epoch.d.ts.map +1 -0
- package/dest/branded-types/epoch.js +59 -0
- package/dest/branded-types/index.d.ts +7 -0
- package/dest/branded-types/index.d.ts.map +1 -0
- package/dest/branded-types/index.js +5 -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 +42 -0
- package/dest/branded-types/slot.d.ts.map +1 -0
- package/dest/branded-types/slot.js +59 -0
- package/dest/branded-types/types.d.ts +5 -0
- package/dest/branded-types/types.d.ts.map +1 -0
- package/dest/branded-types/types.js +1 -0
- package/dest/buffer/buffer16.d.ts +80 -0
- package/dest/buffer/buffer16.d.ts.map +1 -0
- package/dest/buffer/buffer16.js +102 -0
- package/dest/buffer/buffer32.d.ts +5 -9
- package/dest/buffer/buffer32.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +9 -7
- 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/collection/array.d.ts +22 -4
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +84 -3
- package/dest/collection/index.d.ts +1 -1
- package/dest/collection/object.d.ts +17 -1
- package/dest/collection/object.d.ts.map +1 -1
- package/dest/collection/object.js +25 -0
- package/dest/committable/committable.d.ts +1 -1
- package/dest/committable/committable.d.ts.map +1 -1
- package/dest/committable/index.d.ts +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 +62 -4
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +143 -12
- package/dest/config/network_config.d.ts +54 -0
- package/dest/config/network_config.d.ts.map +1 -0
- package/dest/config/network_config.js +11 -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/parse-env.d.ts +3 -0
- package/dest/config/parse-env.d.ts.map +1 -0
- package/dest/config/parse-env.js +7 -0
- package/dest/config/secret_value.d.ts +28 -0
- package/dest/config/secret_value.d.ts.map +1 -0
- package/dest/config/secret_value.js +36 -0
- package/dest/crypto/aes128/index.d.ts +3 -5
- package/dest/crypto/aes128/index.d.ts.map +1 -1
- package/dest/crypto/aes128/index.js +19 -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/index.d.ts +39 -0
- package/dest/crypto/bn254/index.d.ts.map +1 -0
- package/dest/crypto/bn254/index.js +56 -0
- package/dest/crypto/ecdsa/index.d.ts +3 -3
- package/dest/crypto/ecdsa/index.d.ts.map +1 -1
- package/dest/crypto/ecdsa/index.js +62 -48
- package/dest/crypto/ecdsa/signature.d.ts +3 -5
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
- package/dest/crypto/ecdsa/signature.js +2 -2
- package/dest/crypto/grumpkin/index.d.ts +10 -15
- package/dest/crypto/grumpkin/index.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.js +61 -55
- package/dest/crypto/keccak/index.d.ts +3 -5
- package/dest/crypto/keccak/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.d.ts +2 -4
- package/dest/crypto/keys/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.js +8 -5
- package/dest/crypto/pedersen/index.d.ts +1 -1
- package/dest/crypto/pedersen/pedersen.noble.d.ts +3 -5
- package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.d.ts +4 -6
- package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.js +24 -14
- package/dest/crypto/poseidon/index.d.ts +2 -5
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +27 -21
- package/dest/crypto/random/index.d.ts +2 -4
- 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 +2 -4
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
- package/dest/crypto/random/randomness_singleton.js +3 -3
- package/dest/crypto/schnorr/index.d.ts +3 -2
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +30 -38
- package/dest/crypto/schnorr/signature.d.ts +5 -7
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- package/dest/crypto/schnorr/signature.js +2 -2
- package/dest/crypto/secp256k1/index.d.ts +5 -7
- package/dest/crypto/secp256k1/index.d.ts.map +1 -1
- package/dest/crypto/secp256k1/index.js +23 -18
- package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/utils.d.ts +56 -5
- 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 +5 -7
- package/dest/crypto/serialize.d.ts.map +1 -1
- package/dest/crypto/sha256/index.d.ts +23 -6
- package/dest/crypto/sha256/index.d.ts.map +1 -1
- package/dest/crypto/sha256/index.js +43 -1
- package/dest/crypto/sha512/index.d.ts +3 -5
- package/dest/crypto/sha512/index.d.ts.map +1 -1
- package/dest/crypto/sha512/index.js +1 -1
- package/dest/crypto/signature/index.d.ts +2 -4
- package/dest/crypto/signature/index.d.ts.map +1 -1
- package/dest/crypto/sync/index.d.ts +1 -1
- package/dest/crypto/sync/index.js +1 -1
- package/dest/crypto/sync/pedersen/index.d.ts +4 -6
- package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
- package/dest/crypto/sync/pedersen/index.js +18 -11
- package/dest/crypto/sync/poseidon/index.d.ts +2 -5
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/sync/poseidon/index.js +23 -16
- package/dest/curves/bls12/field.d.ts +148 -0
- package/dest/curves/bls12/field.d.ts.map +1 -0
- package/dest/curves/bls12/field.js +362 -0
- package/dest/curves/bls12/index.d.ts +3 -0
- package/dest/curves/bls12/index.d.ts.map +1 -0
- package/dest/curves/bls12/index.js +2 -0
- package/dest/curves/bls12/point.d.ts +229 -0
- package/dest/curves/bls12/point.d.ts.map +1 -0
- package/dest/curves/bls12/point.js +400 -0
- package/dest/curves/bn254/field.d.ts +180 -0
- package/dest/curves/bn254/field.d.ts.map +1 -0
- package/dest/{fields/fields.js → curves/bn254/field.js} +90 -62
- package/dest/curves/bn254/index.d.ts +3 -0
- package/dest/curves/bn254/index.d.ts.map +1 -0
- package/dest/curves/bn254/index.js +2 -0
- package/dest/curves/bn254/point.d.ts +54 -0
- package/dest/curves/bn254/point.d.ts.map +1 -0
- package/dest/curves/bn254/point.js +143 -0
- package/dest/curves/grumpkin/index.d.ts +10 -0
- package/dest/curves/grumpkin/index.d.ts.map +1 -0
- package/dest/curves/grumpkin/index.js +3 -0
- package/dest/{fields → curves/grumpkin}/point.d.ts +14 -7
- package/dest/curves/grumpkin/point.d.ts.map +1 -0
- package/dest/{fields → curves/grumpkin}/point.js +27 -10
- package/dest/decorators/index.d.ts +1 -1
- package/dest/decorators/memoize.d.ts +1 -1
- package/dest/decorators/memoize.d.ts.map +1 -1
- package/dest/error/index.d.ts +1 -1
- package/dest/eth-address/index.d.ts +18 -9
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +31 -2
- package/dest/eth-signature/eth_signature.d.ts +17 -15
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/eth-signature/eth_signature.js +31 -17
- package/dest/eth-signature/index.d.ts +1 -1
- package/dest/fs/index.d.ts +2 -1
- package/dest/fs/index.d.ts.map +1 -1
- package/dest/fs/index.js +1 -0
- package/dest/fs/run_in_dir.d.ts +1 -1
- 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/iterable/all.d.ts +1 -1
- package/dest/iterable/filter.d.ts +1 -1
- package/dest/iterable/filter.js +1 -1
- package/dest/iterable/index.d.ts +1 -1
- package/dest/iterable/isAsyncIt.d.ts +1 -1
- package/dest/iterable/map.d.ts +1 -1
- package/dest/iterable/map.js +1 -1
- package/dest/iterable/peek.d.ts +1 -1
- package/dest/iterable/sort.d.ts +1 -1
- package/dest/iterable/take.d.ts +1 -1
- package/dest/iterable/toArray.d.ts +1 -1
- package/dest/iterator/filter.d.ts +3 -0
- package/dest/iterator/filter.d.ts.map +1 -0
- package/dest/iterator/filter.js +7 -0
- package/dest/iterator/index.d.ts +2 -0
- package/dest/iterator/index.d.ts.map +1 -0
- package/dest/iterator/index.js +1 -0
- package/dest/jest/env.js +48 -0
- package/dest/jest/setupAfterEnv.js +3 -0
- package/dest/json-rpc/client/fetch.d.ts +3 -3
- 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/index.d.ts +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +10 -4
- 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 +1 -1
- package/dest/json-rpc/client/undici.d.ts.map +1 -1
- package/dest/json-rpc/client/undici.js +27 -11
- package/dest/json-rpc/convert.d.ts +3 -10
- 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 +6 -4
- package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/class_b.d.ts +6 -4
- package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/test_state.d.ts +1 -1
- package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
- package/dest/json-rpc/index.d.ts +3 -2
- 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 +1 -1
- package/dest/json-rpc/js_utils.d.ts.map +1 -1
- package/dest/json-rpc/server/index.d.ts +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts +22 -23
- 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/index.d.ts +1 -1
- package/dest/json-rpc/test/integration.d.ts +2 -3
- package/dest/json-rpc/test/integration.d.ts.map +1 -1
- package/dest/log/console.d.ts +1 -1
- package/dest/log/console.d.ts.map +1 -1
- package/dest/log/gcloud-logger-config.d.ts +1 -2
- 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 +5 -5
- package/dest/log/index.d.ts.map +1 -1
- package/dest/log/index.js +4 -4
- package/dest/log/libp2p_logger.d.ts +1 -1
- package/dest/log/libp2p_logger.js +13 -2
- package/dest/log/log-filters.d.ts +1 -1
- package/dest/log/log-levels.d.ts +1 -1
- package/dest/log/log_fn.d.ts +2 -2
- 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 +4 -4
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +29 -3
- package/dest/message/index.d.ts +1 -1
- package/dest/message/index.d.ts.map +1 -1
- package/dest/mutex/index.d.ts +1 -1
- package/dest/mutex/index.d.ts.map +1 -1
- package/dest/mutex/mutex_database.d.ts +1 -1
- package/dest/mutex/mutex_database.d.ts.map +1 -1
- package/dest/noir/index.d.ts +1 -1
- package/dest/noir/noir_package_config.d.ts +9 -9
- 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/index.d.ts +1 -1
- package/dest/promise/running-promise.d.ts +2 -2
- package/dest/promise/running-promise.d.ts.map +1 -1
- package/dest/promise/running-promise.js +2 -2
- package/dest/promise/utils.d.ts +1 -1
- package/dest/queue/base_memory_queue.d.ts +1 -1
- package/dest/queue/base_memory_queue.d.ts.map +1 -1
- package/dest/queue/batch_queue.d.ts +2 -2
- package/dest/queue/batch_queue.d.ts.map +1 -1
- package/dest/queue/batch_queue.js +1 -1
- package/dest/queue/bounded_serial_queue.d.ts +1 -1
- package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
- package/dest/queue/fifo_memory_queue.d.ts +1 -1
- package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
- package/dest/queue/index.d.ts +1 -1
- package/dest/queue/priority_memory_queue.d.ts +1 -1
- package/dest/queue/priority_memory_queue.d.ts.map +1 -1
- package/dest/queue/priority_queue.d.ts +1 -1
- package/dest/queue/priority_queue.d.ts.map +1 -1
- package/dest/queue/semaphore.d.ts +1 -1
- package/dest/queue/semaphore.d.ts.map +1 -1
- package/dest/queue/serial_queue.d.ts +3 -3
- package/dest/queue/serial_queue.d.ts.map +1 -1
- package/dest/queue/serial_queue.js +7 -5
- package/dest/retry/index.d.ts +14 -3
- package/dest/retry/index.d.ts.map +1 -1
- package/dest/retry/index.js +13 -2
- package/dest/running-promise/index.d.ts +1 -1
- package/dest/schemas/api.d.ts +1 -1
- package/dest/schemas/api.d.ts.map +1 -1
- package/dest/schemas/index.d.ts +1 -1
- package/dest/schemas/parse.d.ts +1 -1
- package/dest/schemas/parse.js +1 -1
- package/dest/schemas/schemas.d.ts +21 -20
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +29 -11
- package/dest/schemas/types.d.ts +31 -1
- package/dest/schemas/types.d.ts.map +1 -1
- package/dest/schemas/types.js +25 -1
- package/dest/schemas/utils.d.ts +4 -6
- package/dest/schemas/utils.d.ts.map +1 -1
- package/dest/schemas/utils.js +15 -5
- package/dest/serialize/buffer_reader.d.ts +34 -6
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +57 -6
- package/dest/serialize/field_reader.d.ts +12 -3
- package/dest/serialize/field_reader.d.ts.map +1 -1
- package/dest/serialize/field_reader.js +19 -2
- package/dest/serialize/free_funcs.d.ts +25 -23
- package/dest/serialize/free_funcs.d.ts.map +1 -1
- package/dest/serialize/free_funcs.js +22 -28
- package/dest/serialize/index.d.ts +1 -1
- package/dest/serialize/serialize.d.ts +6 -7
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +1 -1
- package/dest/serialize/type_registry.d.ts +1 -1
- package/dest/serialize/type_registry.d.ts.map +1 -1
- package/dest/serialize/types.d.ts +1 -1
- package/dest/sleep/index.d.ts +3 -1
- package/dest/sleep/index.d.ts.map +1 -1
- package/dest/sleep/index.js +4 -0
- package/dest/string/index.d.ts +8 -3
- package/dest/string/index.d.ts.map +1 -1
- package/dest/string/index.js +27 -1
- package/dest/testing/files/index.d.ts +2 -3
- package/dest/testing/files/index.d.ts.map +1 -1
- package/dest/testing/files/index.js +3 -3
- 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 +2 -1
- package/dest/testing/index.d.ts.map +1 -1
- package/dest/testing/index.js +1 -0
- package/dest/testing/port_allocator.d.ts +1 -1
- package/dest/testing/snapshot_serializer.d.ts +1 -1
- package/dest/testing/test_data.d.ts +1 -1
- package/dest/timer/date.d.ts +4 -2
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +8 -3
- package/dest/timer/elapsed.d.ts +1 -1
- 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 +19 -6
- package/dest/timer/timeout.d.ts.map +1 -1
- package/dest/timer/timeout.js +43 -22
- package/dest/timer/timer.d.ts +1 -1
- package/dest/timer/timer.d.ts.map +1 -1
- package/dest/transport/dispatch/create_dispatch_fn.d.ts +1 -1
- package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -1
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts +1 -1
- package/dest/transport/dispatch/messages.d.ts +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/interface/connector.d.ts +1 -1
- package/dest/transport/interface/connector.d.ts.map +1 -1
- package/dest/transport/interface/listener.d.ts +1 -2
- package/dest/transport/interface/listener.d.ts.map +1 -1
- package/dest/transport/interface/socket.d.ts +1 -1
- package/dest/transport/interface/socket.d.ts.map +1 -1
- package/dest/transport/interface/transferable.d.ts +1 -1
- package/dest/transport/node/index.d.ts +1 -1
- package/dest/transport/node/node_connector.d.ts +1 -2
- package/dest/transport/node/node_connector.d.ts.map +1 -1
- package/dest/transport/node/node_connector_socket.d.ts +1 -2
- package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
- package/dest/transport/node/node_listener.d.ts +1 -2
- package/dest/transport/node/node_listener.d.ts.map +1 -1
- package/dest/transport/node/node_listener_socket.d.ts +1 -2
- package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
- package/dest/transport/transport_client.d.ts +1 -2
- package/dest/transport/transport_client.d.ts.map +1 -1
- package/dest/transport/transport_server.d.ts +1 -10
- package/dest/transport/transport_server.d.ts.map +1 -1
- package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
- package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
- package/dest/trees/balanced_merkle_tree_root.js +51 -0
- package/dest/trees/hasher.d.ts +7 -7
- package/dest/trees/hasher.d.ts.map +1 -1
- package/dest/trees/hasher.js +10 -5
- package/dest/trees/index.d.ts +5 -3
- package/dest/trees/index.d.ts.map +1 -1
- package/dest/trees/index.js +4 -2
- package/dest/trees/indexed_merkle_tree.d.ts +1 -3
- package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
- package/dest/trees/indexed_merkle_tree.js +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.d.ts +2 -4
- package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/indexed_tree_leaf.d.ts +1 -3
- package/dest/trees/indexed_tree_leaf.d.ts.map +1 -1
- package/dest/trees/membership_witness.d.ts +10 -5
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/membership_witness.js +23 -1
- package/dest/trees/merkle_tree.d.ts +1 -3
- package/dest/trees/merkle_tree.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.d.ts +2 -4
- package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.js +2 -2
- package/dest/trees/sibling_path.d.ts +6 -41
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +3 -3
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
- package/dest/trees/unbalanced_merkle_tree_calculator.js +154 -0
- package/dest/trees/unbalanced_merkle_tree_root.d.ts +28 -0
- package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
- package/dest/trees/unbalanced_merkle_tree_root.js +84 -0
- package/dest/trees/unbalanced_tree_store.d.ts +6 -1
- package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
- package/dest/trees/unbalanced_tree_store.js +55 -1
- package/dest/types/index.d.ts +28 -3
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +3 -0
- package/dest/url/index.d.ts +1 -1
- package/dest/url/index.d.ts.map +1 -1
- package/dest/url/index.js +1 -1
- package/dest/validation/index.d.ts +1 -1
- package/package.json +59 -45
- package/src/array/array.ts +13 -16
- package/src/array/index.ts +1 -0
- package/src/array/sorted_array.ts +133 -0
- package/src/async-pool/index.ts +1 -0
- package/src/bigint/index.ts +20 -0
- package/src/branded-types/block_number.ts +117 -0
- package/src/branded-types/checkpoint_number.ts +115 -0
- package/src/branded-types/epoch.ts +88 -0
- package/src/branded-types/index.ts +7 -0
- package/src/branded-types/index_within_checkpoint.ts +88 -0
- package/src/branded-types/slot.ts +88 -0
- package/src/branded-types/types.ts +2 -0
- package/src/buffer/buffer16.ts +133 -0
- package/src/buffer/buffer32.ts +10 -8
- package/src/buffer/index.ts +1 -0
- package/src/collection/array.ts +97 -4
- package/src/collection/object.ts +37 -0
- package/src/config/env_var.ts +180 -59
- package/src/config/index.ts +226 -10
- package/src/config/network_config.ts +18 -0
- package/src/config/network_name.ts +28 -0
- package/src/config/parse-env.ts +4 -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/index.ts +64 -0
- package/src/crypto/ecdsa/index.ts +41 -23
- package/src/crypto/ecdsa/signature.ts +2 -2
- package/src/crypto/grumpkin/index.ts +38 -46
- package/src/crypto/keys/index.ts +6 -6
- package/src/crypto/pedersen/pedersen.wasm.ts +23 -19
- package/src/crypto/poseidon/index.ts +27 -29
- package/src/crypto/random/index.ts +2 -40
- package/src/crypto/random/randomness_singleton.ts +2 -4
- package/src/crypto/schnorr/index.ts +22 -18
- package/src/crypto/schnorr/signature.ts +2 -2
- package/src/crypto/secp256k1/index.ts +15 -11
- package/src/crypto/secp256k1-signer/utils.ts +120 -7
- package/src/crypto/sha256/index.ts +48 -1
- package/src/crypto/sha512/index.ts +1 -1
- package/src/crypto/signature/index.ts +1 -1
- package/src/crypto/sync/index.ts +1 -1
- package/src/crypto/sync/pedersen/index.ts +17 -16
- package/src/crypto/sync/poseidon/index.ts +23 -27
- package/src/curves/bls12/field.ts +463 -0
- package/src/curves/bls12/index.ts +2 -0
- package/src/curves/bls12/point.ts +450 -0
- package/src/{fields/fields.ts → curves/bn254/field.ts} +84 -63
- package/src/curves/bn254/index.ts +2 -0
- package/src/curves/bn254/point.ts +170 -0
- package/src/curves/grumpkin/index.ts +11 -0
- package/src/{fields → curves/grumpkin}/point.ts +27 -10
- package/src/eth-address/index.ts +35 -3
- package/src/eth-signature/eth_signature.ts +44 -22
- package/src/fs/index.ts +1 -0
- package/src/fs/try_rm_dir.ts +15 -0
- package/src/iterable/filter.ts +1 -1
- package/src/iterable/map.ts +1 -1
- package/src/iterator/filter.ts +11 -0
- package/src/iterator/index.ts +1 -0
- 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 +29 -18
- 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 +35 -3
- 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 +28 -5
- package/src/schemas/api.ts +4 -4
- package/src/schemas/parse.ts +1 -1
- package/src/schemas/schemas.ts +42 -13
- package/src/schemas/types.ts +33 -0
- package/src/schemas/utils.ts +21 -8
- package/src/serialize/buffer_reader.ts +81 -12
- package/src/serialize/field_reader.ts +28 -4
- package/src/serialize/free_funcs.ts +26 -32
- package/src/serialize/serialize.ts +3 -1
- package/src/sleep/index.ts +6 -0
- package/src/string/index.ts +36 -1
- package/src/testing/files/index.ts +7 -3
- package/src/testing/formatting.ts +3 -0
- package/src/testing/index.ts +1 -0
- package/src/timer/date.ts +13 -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/balanced_merkle_tree_root.ts +68 -0
- package/src/trees/hasher.ts +13 -4
- package/src/trees/index.ts +4 -2
- package/src/trees/indexed_merkle_tree.ts +6 -2
- package/src/trees/indexed_merkle_tree_calculator.ts +2 -2
- package/src/trees/membership_witness.ts +22 -1
- package/src/trees/merkle_tree.ts +4 -1
- package/src/trees/merkle_tree_calculator.ts +10 -5
- package/src/trees/sibling_path.ts +3 -3
- package/src/trees/unbalanced_merkle_tree_calculator.ts +176 -0
- package/src/trees/unbalanced_merkle_tree_root.ts +115 -0
- package/src/trees/unbalanced_tree_store.ts +62 -3
- package/src/types/index.ts +30 -4
- package/src/url/index.ts +0 -1
- package/dest/crypto/index.d.ts +0 -15
- package/dest/crypto/index.d.ts.map +0 -1
- package/dest/crypto/index.js +0 -14
- 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/fields/coordinate.d.ts +0 -68
- package/dest/fields/coordinate.d.ts.map +0 -1
- package/dest/fields/coordinate.js +0 -96
- package/dest/fields/fields.d.ts +0 -176
- package/dest/fields/fields.d.ts.map +0 -1
- package/dest/fields/index.d.ts +0 -4
- package/dest/fields/index.d.ts.map +0 -1
- package/dest/fields/index.js +0 -3
- package/dest/fields/point.d.ts.map +0 -1
- package/dest/index.d.ts +0 -31
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -31
- package/dest/json-rpc/server/telemetry.d.ts +0 -2
- package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
- package/dest/json-rpc/server/telemetry.js +0 -0
- package/dest/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/trees/unbalanced_merkle_tree.d.ts +0 -17
- package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
- package/dest/trees/unbalanced_merkle_tree.js +0 -100
- 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/index.ts +0 -14
- package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
- package/src/fields/coordinate.ts +0 -104
- package/src/fields/index.ts +0 -3
- package/src/index.ts +0 -31
- package/src/json-rpc/server/telemetry.ts +0 -0
- 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/trees/unbalanced_merkle_tree.ts +0 -103
- 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
|
@@ -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.
|
|
@@ -167,15 +224,22 @@ export class BufferReader {
|
|
|
167
224
|
* deserializing each one using the 'fromBuffer' method of 'itemDeserializer'.
|
|
168
225
|
*
|
|
169
226
|
* @param itemDeserializer - Object with 'fromBuffer' method to deserialize vector elements.
|
|
227
|
+
* @param maxSize - Optional maximum allowed size for the vector. If the size exceeds this, an error is thrown.
|
|
170
228
|
* @returns An array of deserialized elements of type T.
|
|
171
229
|
*/
|
|
172
|
-
public readVector<T>(
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
230
|
+
public readVector<T>(
|
|
231
|
+
itemDeserializer: {
|
|
232
|
+
/**
|
|
233
|
+
* A method to deserialize data from a buffer.
|
|
234
|
+
*/
|
|
235
|
+
fromBuffer: (reader: BufferReader) => T;
|
|
236
|
+
},
|
|
237
|
+
maxSize?: number,
|
|
238
|
+
): T[] {
|
|
178
239
|
const size = this.readNumber();
|
|
240
|
+
if (maxSize !== undefined && size > maxSize) {
|
|
241
|
+
throw new Error(`Vector size ${size} exceeds maximum allowed ${maxSize}`);
|
|
242
|
+
}
|
|
179
243
|
const result = new Array<T>(size);
|
|
180
244
|
for (let i = 0; i < size; i++) {
|
|
181
245
|
result[i] = itemDeserializer.fromBuffer(this);
|
|
@@ -287,10 +351,11 @@ export class BufferReader {
|
|
|
287
351
|
* The method first reads the size of the string, then reads the corresponding
|
|
288
352
|
* number of bytes from the buffer and converts them to a string.
|
|
289
353
|
*
|
|
354
|
+
* @param maxSize - Optional maximum allowed size for the string buffer. If the size exceeds this, an error is thrown.
|
|
290
355
|
* @returns The read string from the buffer.
|
|
291
356
|
*/
|
|
292
|
-
public readString(): string {
|
|
293
|
-
return this.readBuffer().toString();
|
|
357
|
+
public readString(maxSize?: number): string {
|
|
358
|
+
return this.readBuffer(maxSize).toString();
|
|
294
359
|
}
|
|
295
360
|
|
|
296
361
|
/**
|
|
@@ -299,10 +364,14 @@ export class BufferReader {
|
|
|
299
364
|
* a Buffer with that size containing the bytes. Useful for reading variable-length
|
|
300
365
|
* binary data encoded as (size, data) format.
|
|
301
366
|
*
|
|
367
|
+
* @param maxSize - Optional maximum allowed size for the buffer. If the size exceeds this, an error is thrown.
|
|
302
368
|
* @returns A Buffer containing the read bytes.
|
|
303
369
|
*/
|
|
304
|
-
public readBuffer(): Buffer {
|
|
370
|
+
public readBuffer(maxSize?: number): Buffer {
|
|
305
371
|
const size = this.readNumber();
|
|
372
|
+
if (maxSize !== undefined && size > maxSize) {
|
|
373
|
+
throw new Error(`Buffer size ${size} exceeds maximum allowed ${maxSize}`);
|
|
374
|
+
}
|
|
306
375
|
this.#rangeCheck(size);
|
|
307
376
|
return this.readBytes(size);
|
|
308
377
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fq, type Fr } from '../
|
|
1
|
+
import { Fq, type Fr } from '../curves/bn254/field.js';
|
|
2
2
|
import type { Tuple } from './types.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -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,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toBufferBE } from '../bigint-buffer/index.js';
|
|
2
|
+
import { Fr } from '../curves/bn254/field.js';
|
|
2
3
|
import type { Tuple } from './types.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -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
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { toBigIntBE, toBufferBE } from '../bigint-buffer/index.js';
|
|
2
|
-
import { Fr } from '../
|
|
2
|
+
import { Fr } from '../curves/bn254/field.js';
|
|
3
3
|
import { numToUInt32BE } from './free_funcs.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -145,6 +145,8 @@ export type Fieldable =
|
|
|
145
145
|
}
|
|
146
146
|
| Fieldable[];
|
|
147
147
|
|
|
148
|
+
export type Serializable = Bufferable & Fieldable;
|
|
149
|
+
|
|
148
150
|
/**
|
|
149
151
|
* Serializes a list of objects contiguously.
|
|
150
152
|
* @param objs - Objects to serialize.
|
package/src/sleep/index.ts
CHANGED
|
@@ -73,3 +73,9 @@ export class InterruptibleSleep {
|
|
|
73
73
|
export function sleep<T>(ms: number, returnValue?: T): Promise<T> {
|
|
74
74
|
return new Promise(resolve => setTimeout(() => resolve(returnValue as T), ms));
|
|
75
75
|
}
|
|
76
|
+
|
|
77
|
+
/** Sleeps until the target date */
|
|
78
|
+
export function sleepUntil<T>(target: Date, now: Date, returnValue?: T): Promise<T> {
|
|
79
|
+
const ms = target.getTime() - now.getTime();
|
|
80
|
+
return sleep(ms, returnValue);
|
|
81
|
+
}
|
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
|
}
|
|
@@ -59,7 +63,7 @@ export function updateProtocolCircuitSampleInputs(circuitName: string, value: st
|
|
|
59
63
|
logger(`Updated test data in ${targetFile} for ${circuitName}`);
|
|
60
64
|
}
|
|
61
65
|
|
|
62
|
-
function getPathToFile(targetFileFromRepoRoot: string) {
|
|
66
|
+
export function getPathToFile(targetFileFromRepoRoot: string) {
|
|
63
67
|
const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), '../../../../../');
|
|
64
68
|
if (!existsSync(join(repoRoot, 'CODEOWNERS'))) {
|
|
65
69
|
throw new Error(`Path to repo root is incorrect (got ${repoRoot})`);
|
package/src/testing/index.ts
CHANGED
package/src/timer/date.ts
CHANGED
|
@@ -5,15 +5,25 @@ 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
|
+
}
|
|
12
|
+
|
|
13
|
+
public nowAsDate(): Date {
|
|
14
|
+
return new Date(this.now());
|
|
15
|
+
}
|
|
8
16
|
}
|
|
9
17
|
|
|
10
18
|
/** Returns current datetime and allows to override it. */
|
|
11
|
-
export class TestDateProvider
|
|
19
|
+
export class TestDateProvider extends DateProvider {
|
|
12
20
|
private offset = 0;
|
|
13
21
|
|
|
14
|
-
constructor(private readonly logger = createLogger('foundation:test-date-provider')) {
|
|
22
|
+
constructor(private readonly logger = createLogger('foundation:test-date-provider')) {
|
|
23
|
+
super();
|
|
24
|
+
}
|
|
15
25
|
|
|
16
|
-
public now(): number {
|
|
26
|
+
public override now(): number {
|
|
17
27
|
return Date.now() + this.offset;
|
|
18
28
|
}
|
|
19
29
|
|
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
|
@@ -7,10 +7,9 @@ import type { Socket } from './socket.js';
|
|
|
7
7
|
* Possible implementations could include MessageChannels or WebSockets.
|
|
8
8
|
*/
|
|
9
9
|
export interface Listener extends EventEmitter {
|
|
10
|
-
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
11
10
|
open(): void;
|
|
12
|
-
|
|
11
|
+
|
|
13
12
|
close(): void;
|
|
14
|
-
|
|
13
|
+
|
|
15
14
|
on(name: 'new_socket', cb: (client: Socket) => void): this;
|
|
16
15
|
}
|
|
@@ -6,10 +6,9 @@
|
|
|
6
6
|
* If `registerHandler` callback receives `undefined` that signals the other end closed.
|
|
7
7
|
*/
|
|
8
8
|
export interface Socket {
|
|
9
|
-
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
10
9
|
send(msg: any, transfer?: Transferable[]): Promise<void>;
|
|
11
|
-
|
|
10
|
+
|
|
12
11
|
registerHandler(cb: (msg: any) => any): void;
|
|
13
|
-
|
|
12
|
+
|
|
14
13
|
close(): void;
|
|
15
14
|
}
|
|
@@ -18,9 +18,9 @@ interface PendingRequest {
|
|
|
18
18
|
* The unique message identifier used for tracking and matching request/response pairs.
|
|
19
19
|
*/
|
|
20
20
|
msgId: number;
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
resolve(data: any): void;
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
reject(error: Error): void;
|
|
25
25
|
}
|
|
26
26
|
|
|
@@ -30,9 +30,8 @@ interface PendingRequest {
|
|
|
30
30
|
* for efficient and concurrent communication with a corresponding TransportServer.
|
|
31
31
|
*/
|
|
32
32
|
export interface ITransportClient<Payload> extends EventEmitter {
|
|
33
|
-
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
34
33
|
on(name: 'event_msg', handler: (payload: Payload) => void): this;
|
|
35
|
-
|
|
34
|
+
|
|
36
35
|
emit(name: 'event_msg', payload: Payload): boolean;
|
|
37
36
|
}
|
|
38
37
|
|
|
@@ -9,7 +9,10 @@ import { isTransferDescriptor } from './interface/transferable.js';
|
|
|
9
9
|
export class TransportServer<Payload> {
|
|
10
10
|
private sockets: Socket[] = [];
|
|
11
11
|
|
|
12
|
-
constructor(
|
|
12
|
+
constructor(
|
|
13
|
+
private listener: Listener,
|
|
14
|
+
private msgHandlerFn: (msg: Payload) => Promise<any>,
|
|
15
|
+
) {}
|
|
13
16
|
|
|
14
17
|
/**
|
|
15
18
|
* Starts the TransportServer, allowing it to accept new connections and handle incoming messages.
|