@aztec/foundation 0.0.0-test.0
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/README.md +1 -0
- package/dest/array/array.d.ts +71 -0
- package/dest/array/array.d.ts.map +1 -0
- package/dest/array/array.js +100 -0
- package/dest/array/index.d.ts +2 -0
- package/dest/array/index.d.ts.map +1 -0
- package/dest/array/index.js +1 -0
- package/dest/async-map/index.d.ts +13 -0
- package/dest/async-map/index.d.ts.map +1 -0
- package/dest/async-map/index.js +17 -0
- package/dest/async-pool/index.d.ts +3 -0
- package/dest/async-pool/index.d.ts.map +1 -0
- package/dest/async-pool/index.js +47 -0
- package/dest/bigint-buffer/index.d.ts +42 -0
- package/dest/bigint-buffer/index.d.ts.map +1 -0
- package/dest/bigint-buffer/index.js +76 -0
- package/dest/buffer/buffer32.d.ts +91 -0
- package/dest/buffer/buffer32.d.ts.map +1 -0
- package/dest/buffer/buffer32.js +115 -0
- package/dest/buffer/index.d.ts +2 -0
- package/dest/buffer/index.d.ts.map +1 -0
- package/dest/buffer/index.js +1 -0
- package/dest/collection/array.d.ts +101 -0
- package/dest/collection/array.d.ts.map +1 -0
- package/dest/collection/array.js +164 -0
- package/dest/collection/index.d.ts +3 -0
- package/dest/collection/index.d.ts.map +1 -0
- package/dest/collection/index.js +2 -0
- package/dest/collection/object.d.ts +14 -0
- package/dest/collection/object.d.ts.map +1 -0
- package/dest/collection/object.js +32 -0
- package/dest/committable/committable.d.ts +28 -0
- package/dest/committable/committable.d.ts.map +1 -0
- package/dest/committable/committable.js +36 -0
- package/dest/committable/index.d.ts +2 -0
- package/dest/committable/index.d.ts.map +1 -0
- package/dest/committable/index.js +1 -0
- package/dest/config/env_var.d.ts +2 -0
- package/dest/config/env_var.d.ts.map +1 -0
- package/dest/config/env_var.js +1 -0
- package/dest/config/index.d.ts +66 -0
- package/dest/config/index.d.ts.map +1 -0
- package/dest/config/index.js +125 -0
- package/dest/crypto/aes128/index.d.ts +34 -0
- package/dest/crypto/aes128/index.d.ts.map +1 -0
- package/dest/crypto/aes128/index.js +49 -0
- package/dest/crypto/ecdsa/index.d.ts +39 -0
- package/dest/crypto/ecdsa/index.d.ts.map +1 -0
- package/dest/crypto/ecdsa/index.js +88 -0
- package/dest/crypto/ecdsa/signature.d.ts +71 -0
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -0
- package/dest/crypto/ecdsa/signature.js +92 -0
- package/dest/crypto/grumpkin/index.d.ts +47 -0
- package/dest/crypto/grumpkin/index.d.ts.map +1 -0
- package/dest/crypto/grumpkin/index.js +154 -0
- package/dest/crypto/index.d.ts +15 -0
- package/dest/crypto/index.d.ts.map +1 -0
- package/dest/crypto/index.js +14 -0
- package/dest/crypto/keccak/index.d.ts +28 -0
- package/dest/crypto/keccak/index.d.ts.map +1 -0
- package/dest/crypto/keccak/index.js +248 -0
- package/dest/crypto/keys/index.d.ts +5 -0
- package/dest/crypto/keys/index.d.ts.map +1 -0
- package/dest/crypto/keys/index.js +7 -0
- package/dest/crypto/pedersen/index.d.ts +2 -0
- package/dest/crypto/pedersen/index.d.ts.map +1 -0
- package/dest/crypto/pedersen/index.js +1 -0
- package/dest/crypto/pedersen/pedersen.elliptic.d.ts +13 -0
- package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +1 -0
- package/dest/crypto/pedersen/pedersen.elliptic.js +582 -0
- package/dest/crypto/pedersen/pedersen.noble.d.ts +11 -0
- package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -0
- package/dest/crypto/pedersen/pedersen.noble.js +558 -0
- package/dest/crypto/pedersen/pedersen.wasm.d.ts +21 -0
- package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -0
- package/dest/crypto/pedersen/pedersen.wasm.js +41 -0
- package/dest/crypto/poseidon/index.d.ts +26 -0
- package/dest/crypto/poseidon/index.d.ts.map +1 -0
- package/dest/crypto/poseidon/index.js +58 -0
- package/dest/crypto/random/index.d.ts +25 -0
- package/dest/crypto/random/index.d.ts.map +1 -0
- package/dest/crypto/random/index.js +70 -0
- package/dest/crypto/random/randomness_singleton.d.ts +25 -0
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -0
- package/dest/crypto/random/randomness_singleton.js +55 -0
- package/dest/crypto/schnorr/index.d.ts +30 -0
- package/dest/crypto/schnorr/index.d.ts.map +1 -0
- package/dest/crypto/schnorr/index.js +68 -0
- package/dest/crypto/schnorr/signature.d.ts +70 -0
- package/dest/crypto/schnorr/signature.d.ts.map +1 -0
- package/dest/crypto/schnorr/signature.js +93 -0
- package/dest/crypto/secp256k1/index.d.ts +32 -0
- package/dest/crypto/secp256k1/index.d.ts.map +1 -0
- package/dest/crypto/secp256k1/index.js +116 -0
- package/dest/crypto/secp256k1-signer/index.d.ts +3 -0
- package/dest/crypto/secp256k1-signer/index.d.ts.map +1 -0
- package/dest/crypto/secp256k1-signer/index.js +2 -0
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +24 -0
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -0
- package/dest/crypto/secp256k1-signer/secp256k1_signer.js +30 -0
- package/dest/crypto/secp256k1-signer/utils.d.ts +40 -0
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -0
- package/dest/crypto/secp256k1-signer/utils.js +84 -0
- package/dest/crypto/serialize.d.ts +53 -0
- package/dest/crypto/serialize.d.ts.map +1 -0
- package/dest/crypto/serialize.js +68 -0
- package/dest/crypto/sha256/index.d.ts +20 -0
- package/dest/crypto/sha256/index.d.ts.map +1 -0
- package/dest/crypto/sha256/index.js +166 -0
- package/dest/crypto/sha512/index.d.ts +11 -0
- package/dest/crypto/sha512/index.d.ts.map +1 -0
- package/dest/crypto/sha512/index.js +12 -0
- package/dest/crypto/signature/index.d.ts +19 -0
- package/dest/crypto/signature/index.d.ts.map +1 -0
- package/dest/crypto/signature/index.js +3 -0
- package/dest/crypto/sync/index.d.ts +3 -0
- package/dest/crypto/sync/index.d.ts.map +1 -0
- package/dest/crypto/sync/index.js +4 -0
- package/dest/crypto/sync/pedersen/index.d.ts +21 -0
- package/dest/crypto/sync/pedersen/index.d.ts.map +1 -0
- package/dest/crypto/sync/pedersen/index.js +38 -0
- package/dest/crypto/sync/poseidon/index.d.ts +26 -0
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -0
- package/dest/crypto/sync/poseidon/index.js +53 -0
- package/dest/decorators/index.d.ts +2 -0
- package/dest/decorators/index.d.ts.map +1 -0
- package/dest/decorators/index.js +1 -0
- package/dest/decorators/memoize.d.ts +2 -0
- package/dest/decorators/memoize.d.ts.map +1 -0
- package/dest/decorators/memoize.js +11 -0
- package/dest/error/index.d.ts +21 -0
- package/dest/error/index.d.ts.map +1 -0
- package/dest/error/index.js +17 -0
- package/dest/eth-address/index.d.ts +134 -0
- package/dest/eth-address/index.d.ts.map +1 -0
- package/dest/eth-address/index.js +198 -0
- package/dest/eth-signature/eth_signature.d.ts +62 -0
- package/dest/eth-signature/eth_signature.d.ts.map +1 -0
- package/dest/eth-signature/eth_signature.js +91 -0
- package/dest/eth-signature/index.d.ts +2 -0
- package/dest/eth-signature/index.d.ts.map +1 -0
- package/dest/eth-signature/index.js +1 -0
- package/dest/fields/coordinate.d.ts +68 -0
- package/dest/fields/coordinate.d.ts.map +1 -0
- package/dest/fields/coordinate.js +96 -0
- package/dest/fields/fields.d.ts +176 -0
- package/dest/fields/fields.d.ts.map +1 -0
- package/dest/fields/fields.js +383 -0
- package/dest/fields/index.d.ts +4 -0
- package/dest/fields/index.d.ts.map +1 -0
- package/dest/fields/index.js +3 -0
- package/dest/fields/point.d.ts +175 -0
- package/dest/fields/point.d.ts.map +1 -0
- package/dest/fields/point.js +260 -0
- package/dest/fs/index.d.ts +2 -0
- package/dest/fs/index.d.ts.map +1 -0
- package/dest/fs/index.js +1 -0
- package/dest/fs/run_in_dir.d.ts +2 -0
- package/dest/fs/run_in_dir.d.ts.map +1 -0
- package/dest/fs/run_in_dir.js +31 -0
- package/dest/index.d.ts +31 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +31 -0
- package/dest/iterable/all.d.ts +9 -0
- package/dest/iterable/all.d.ts.map +1 -0
- package/dest/iterable/all.js +18 -0
- package/dest/iterable/filter.d.ts +10 -0
- package/dest/iterable/filter.d.ts.map +1 -0
- package/dest/iterable/filter.js +48 -0
- package/dest/iterable/index.d.ts +8 -0
- package/dest/iterable/index.d.ts.map +1 -0
- package/dest/iterable/index.js +7 -0
- package/dest/iterable/isAsyncIt.d.ts +7 -0
- package/dest/iterable/isAsyncIt.d.ts.map +1 -0
- package/dest/iterable/isAsyncIt.js +7 -0
- package/dest/iterable/map.d.ts +12 -0
- package/dest/iterable/map.d.ts.map +1 -0
- package/dest/iterable/map.js +36 -0
- package/dest/iterable/peek.d.ts +19 -0
- package/dest/iterable/peek.d.ts.map +1 -0
- package/dest/iterable/peek.js +33 -0
- package/dest/iterable/sort.d.ts +14 -0
- package/dest/iterable/sort.d.ts.map +1 -0
- package/dest/iterable/sort.js +15 -0
- package/dest/iterable/take.d.ts +10 -0
- package/dest/iterable/take.d.ts.map +1 -0
- package/dest/iterable/take.js +32 -0
- package/dest/iterable/toArray.d.ts +2 -0
- package/dest/iterable/toArray.d.ts.map +1 -0
- package/dest/iterable/toArray.js +7 -0
- package/dest/jest/setup.js +7 -0
- package/dest/json-rpc/client/fetch.d.ts +32 -0
- package/dest/json-rpc/client/fetch.d.ts.map +1 -0
- package/dest/json-rpc/client/fetch.js +77 -0
- package/dest/json-rpc/client/index.d.ts +3 -0
- package/dest/json-rpc/client/index.d.ts.map +1 -0
- package/dest/json-rpc/client/index.js +2 -0
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +26 -0
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -0
- package/dest/json-rpc/client/safe_json_rpc_client.js +57 -0
- package/dest/json-rpc/client/undici.d.ts +5 -0
- package/dest/json-rpc/client/undici.d.ts.map +1 -0
- package/dest/json-rpc/client/undici.js +63 -0
- package/dest/json-rpc/convert.d.ts +27 -0
- package/dest/json-rpc/convert.d.ts.map +1 -0
- package/dest/json-rpc/convert.js +48 -0
- package/dest/json-rpc/fixtures/class_a.d.ts +11 -0
- package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -0
- package/dest/json-rpc/fixtures/class_a.js +20 -0
- package/dest/json-rpc/fixtures/class_b.d.ts +11 -0
- package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -0
- package/dest/json-rpc/fixtures/class_b.js +20 -0
- package/dest/json-rpc/fixtures/test_state.d.ts +89 -0
- package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -0
- package/dest/json-rpc/fixtures/test_state.js +131 -0
- package/dest/json-rpc/index.d.ts +2 -0
- package/dest/json-rpc/index.d.ts.map +1 -0
- package/dest/json-rpc/index.js +1 -0
- package/dest/json-rpc/js_utils.d.ts +13 -0
- package/dest/json-rpc/js_utils.d.ts.map +1 -0
- package/dest/json-rpc/js_utils.js +16 -0
- package/dest/json-rpc/server/index.d.ts +2 -0
- package/dest/json-rpc/server/index.d.ts.map +1 -0
- package/dest/json-rpc/server/index.js +1 -0
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts +140 -0
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -0
- package/dest/json-rpc/server/safe_json_rpc_server.js +346 -0
- package/dest/json-rpc/server/telemetry.d.ts +2 -0
- package/dest/json-rpc/server/telemetry.d.ts.map +1 -0
- package/dest/json-rpc/server/telemetry.js +0 -0
- package/dest/json-rpc/test/index.d.ts +2 -0
- package/dest/json-rpc/test/index.d.ts.map +1 -0
- package/dest/json-rpc/test/index.js +1 -0
- package/dest/json-rpc/test/integration.d.ts +15 -0
- package/dest/json-rpc/test/integration.d.ts.map +1 -0
- package/dest/json-rpc/test/integration.js +21 -0
- package/dest/log/console.d.ts +11 -0
- package/dest/log/console.d.ts.map +1 -0
- package/dest/log/console.js +36 -0
- package/dest/log/debug.d.ts +56 -0
- package/dest/log/debug.d.ts.map +1 -0
- package/dest/log/debug.js +75 -0
- package/dest/log/gcloud-logger-config.d.ts +14 -0
- package/dest/log/gcloud-logger-config.d.ts.map +1 -0
- package/dest/log/gcloud-logger-config.js +66 -0
- package/dest/log/index.d.ts +7 -0
- package/dest/log/index.d.ts.map +1 -0
- package/dest/log/index.js +6 -0
- package/dest/log/libp2p_logger.d.ts +7 -0
- package/dest/log/libp2p_logger.d.ts.map +1 -0
- package/dest/log/libp2p_logger.js +55 -0
- package/dest/log/log-filters.d.ts +7 -0
- package/dest/log/log-filters.d.ts.map +1 -0
- package/dest/log/log-filters.js +59 -0
- package/dest/log/log-levels.d.ts +3 -0
- package/dest/log/log-levels.d.ts.map +1 -0
- package/dest/log/log-levels.js +10 -0
- package/dest/log/log_fn.d.ts +7 -0
- package/dest/log/log_fn.d.ts.map +1 -0
- package/dest/log/log_fn.js +1 -0
- package/dest/log/log_history.d.ts +31 -0
- package/dest/log/log_history.d.ts.map +1 -0
- package/dest/log/log_history.js +38 -0
- package/dest/log/pino-logger.d.ts +57 -0
- package/dest/log/pino-logger.d.ts.map +1 -0
- package/dest/log/pino-logger.js +207 -0
- package/dest/message/index.d.ts +32 -0
- package/dest/message/index.d.ts.map +1 -0
- package/dest/message/index.js +27 -0
- package/dest/mutex/index.d.ts +53 -0
- package/dest/mutex/index.d.ts.map +1 -0
- package/dest/mutex/index.js +78 -0
- package/dest/mutex/mutex_database.d.ts +10 -0
- package/dest/mutex/mutex_database.d.ts.map +1 -0
- package/dest/mutex/mutex_database.js +4 -0
- package/dest/noir/index.d.ts +2 -0
- package/dest/noir/index.d.ts.map +1 -0
- package/dest/noir/index.js +1 -0
- package/dest/noir/noir_package_config.d.ts +129 -0
- package/dest/noir/noir_package_config.d.ts.map +1 -0
- package/dest/noir/noir_package_config.js +36 -0
- package/dest/promise/index.d.ts +3 -0
- package/dest/promise/index.d.ts.map +1 -0
- package/dest/promise/index.js +2 -0
- package/dest/promise/running-promise.d.ts +47 -0
- package/dest/promise/running-promise.d.ts.map +1 -0
- package/dest/promise/running-promise.js +110 -0
- package/dest/promise/utils.d.ts +12 -0
- package/dest/promise/utils.d.ts.map +1 -0
- package/dest/promise/utils.js +20 -0
- package/dest/queue/base_memory_queue.d.ts +65 -0
- package/dest/queue/base_memory_queue.d.ts.map +1 -0
- package/dest/queue/base_memory_queue.js +116 -0
- package/dest/queue/batch_queue.d.ts +47 -0
- package/dest/queue/batch_queue.d.ts.map +1 -0
- package/dest/queue/batch_queue.js +105 -0
- package/dest/queue/bounded_serial_queue.d.ts +56 -0
- package/dest/queue/bounded_serial_queue.d.ts.map +1 -0
- package/dest/queue/bounded_serial_queue.js +84 -0
- package/dest/queue/fifo_memory_queue.d.ts +21 -0
- package/dest/queue/fifo_memory_queue.d.ts.map +1 -0
- package/dest/queue/fifo_memory_queue.js +29 -0
- package/dest/queue/index.d.ts +7 -0
- package/dest/queue/index.d.ts.map +1 -0
- package/dest/queue/index.js +6 -0
- package/dest/queue/priority_memory_queue.d.ts +13 -0
- package/dest/queue/priority_memory_queue.d.ts.map +1 -0
- package/dest/queue/priority_memory_queue.js +16 -0
- package/dest/queue/priority_queue.d.ts +14 -0
- package/dest/queue/priority_queue.d.ts.map +1 -0
- package/dest/queue/priority_queue.js +29 -0
- package/dest/queue/semaphore.d.ts +23 -0
- package/dest/queue/semaphore.d.ts.map +1 -0
- package/dest/queue/semaphore.js +26 -0
- package/dest/queue/serial_queue.d.ts +49 -0
- package/dest/queue/serial_queue.d.ts.map +1 -0
- package/dest/queue/serial_queue.js +72 -0
- package/dest/retry/index.d.ts +44 -0
- package/dest/retry/index.d.ts.map +1 -0
- package/dest/retry/index.js +93 -0
- package/dest/running-promise/index.d.ts +2 -0
- package/dest/running-promise/index.d.ts.map +1 -0
- package/dest/running-promise/index.js +1 -0
- package/dest/schemas/api.d.ts +21 -0
- package/dest/schemas/api.d.ts.map +1 -0
- package/dest/schemas/api.js +3 -0
- package/dest/schemas/index.d.ts +6 -0
- package/dest/schemas/index.d.ts.map +1 -0
- package/dest/schemas/index.js +5 -0
- package/dest/schemas/parse.d.ts +9 -0
- package/dest/schemas/parse.d.ts.map +1 -0
- package/dest/schemas/parse.js +22 -0
- package/dest/schemas/schemas.d.ts +45 -0
- package/dest/schemas/schemas.d.ts.map +1 -0
- package/dest/schemas/schemas.js +38 -0
- package/dest/schemas/types.d.ts +3 -0
- package/dest/schemas/types.d.ts.map +1 -0
- package/dest/schemas/types.js +1 -0
- package/dest/schemas/utils.d.ts +53 -0
- package/dest/schemas/utils.d.ts.map +1 -0
- package/dest/schemas/utils.js +60 -0
- package/dest/serialize/buffer_reader.d.ts +239 -0
- package/dest/serialize/buffer_reader.d.ts.map +1 -0
- package/dest/serialize/buffer_reader.js +290 -0
- package/dest/serialize/field_reader.d.ts +112 -0
- package/dest/serialize/field_reader.d.ts.map +1 -0
- package/dest/serialize/field_reader.js +147 -0
- package/dest/serialize/free_funcs.d.ts +105 -0
- package/dest/serialize/free_funcs.d.ts.map +1 -0
- package/dest/serialize/free_funcs.js +189 -0
- package/dest/serialize/index.d.ts +7 -0
- package/dest/serialize/index.d.ts.map +1 -0
- package/dest/serialize/index.js +6 -0
- package/dest/serialize/serialize.d.ts +182 -0
- package/dest/serialize/serialize.d.ts.map +1 -0
- package/dest/serialize/serialize.js +248 -0
- package/dest/serialize/type_registry.d.ts +23 -0
- package/dest/serialize/type_registry.d.ts.map +1 -0
- package/dest/serialize/type_registry.js +61 -0
- package/dest/serialize/types.d.ts +33 -0
- package/dest/serialize/types.d.ts.map +1 -0
- package/dest/serialize/types.js +21 -0
- package/dest/sleep/index.d.ts +51 -0
- package/dest/sleep/index.d.ts.map +1 -0
- package/dest/sleep/index.js +67 -0
- package/dest/string/index.d.ts +11 -0
- package/dest/string/index.d.ts.map +1 -0
- package/dest/string/index.js +24 -0
- package/dest/testing/files/index.d.ts +20 -0
- package/dest/testing/files/index.d.ts.map +1 -0
- package/dest/testing/files/index.js +58 -0
- package/dest/testing/index.d.ts +4 -0
- package/dest/testing/index.d.ts.map +1 -0
- package/dest/testing/index.js +3 -0
- package/dest/testing/port_allocator.d.ts +10 -0
- package/dest/testing/port_allocator.d.ts.map +1 -0
- package/dest/testing/port_allocator.js +29 -0
- package/dest/testing/snapshot_serializer.d.ts +5 -0
- package/dest/testing/snapshot_serializer.d.ts.map +1 -0
- package/dest/testing/snapshot_serializer.js +32 -0
- package/dest/testing/test_data.d.ts +7 -0
- package/dest/testing/test_data.d.ts.map +1 -0
- package/dest/testing/test_data.js +29 -0
- package/dest/timer/date.d.ts +13 -0
- package/dest/timer/date.d.ts.map +1 -0
- package/dest/timer/date.js +24 -0
- package/dest/timer/elapsed.d.ts +13 -0
- package/dest/timer/elapsed.d.ts.map +1 -0
- package/dest/timer/elapsed.js +25 -0
- package/dest/timer/index.d.ts +5 -0
- package/dest/timer/index.d.ts.map +1 -0
- package/dest/timer/index.js +4 -0
- package/dest/timer/timeout.d.ts +41 -0
- package/dest/timer/timeout.d.ts.map +1 -0
- package/dest/timer/timeout.js +66 -0
- package/dest/timer/timer.d.ts +37 -0
- package/dest/timer/timer.d.ts.map +1 -0
- package/dest/timer/timer.js +40 -0
- package/dest/transport/browser/index.d.ts +5 -0
- package/dest/transport/browser/index.d.ts.map +1 -0
- package/dest/transport/browser/index.js +4 -0
- package/dest/transport/browser/message_port_socket.d.ts +37 -0
- package/dest/transport/browser/message_port_socket.d.ts.map +1 -0
- package/dest/transport/browser/message_port_socket.js +42 -0
- package/dest/transport/browser/shared_worker_connector.d.ts +19 -0
- package/dest/transport/browser/shared_worker_connector.d.ts.map +1 -0
- package/dest/transport/browser/shared_worker_connector.js +19 -0
- package/dest/transport/browser/shared_worker_listener.d.ts +38 -0
- package/dest/transport/browser/shared_worker_listener.d.ts.map +1 -0
- package/dest/transport/browser/shared_worker_listener.js +33 -0
- package/dest/transport/browser/worker_connector.d.ts +26 -0
- package/dest/transport/browser/worker_connector.d.ts.map +1 -0
- package/dest/transport/browser/worker_connector.js +30 -0
- package/dest/transport/browser/worker_listener.d.ts +39 -0
- package/dest/transport/browser/worker_listener.d.ts.map +1 -0
- package/dest/transport/browser/worker_listener.js +35 -0
- package/dest/transport/dispatch/create_dispatch_fn.d.ts +25 -0
- package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +1 -0
- package/dest/transport/dispatch/create_dispatch_fn.js +17 -0
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts +102 -0
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -0
- package/dest/transport/dispatch/create_dispatch_proxy.js +59 -0
- package/dest/transport/dispatch/messages.d.ts +52 -0
- package/dest/transport/dispatch/messages.d.ts.map +1 -0
- package/dest/transport/dispatch/messages.js +13 -0
- package/dest/transport/index.d.ts +12 -0
- package/dest/transport/index.d.ts.map +1 -0
- package/dest/transport/index.js +11 -0
- package/dest/transport/interface/connector.d.ts +8 -0
- package/dest/transport/interface/connector.d.ts.map +1 -0
- package/dest/transport/interface/connector.js +3 -0
- package/dest/transport/interface/listener.d.ts +13 -0
- package/dest/transport/interface/listener.d.ts.map +1 -0
- package/dest/transport/interface/listener.js +4 -0
- package/dest/transport/interface/socket.d.ts +13 -0
- package/dest/transport/interface/socket.d.ts.map +1 -0
- package/dest/transport/interface/socket.js +7 -0
- package/dest/transport/interface/transferable.d.ts +68 -0
- package/dest/transport/interface/transferable.d.ts.map +1 -0
- package/dest/transport/interface/transferable.js +63 -0
- package/dest/transport/node/index.d.ts +3 -0
- package/dest/transport/node/index.d.ts.map +1 -0
- package/dest/transport/node/index.js +2 -0
- package/dest/transport/node/node_connector.d.ts +28 -0
- package/dest/transport/node/node_connector.d.ts.map +1 -0
- package/dest/transport/node/node_connector.js +26 -0
- package/dest/transport/node/node_connector_socket.d.ts +42 -0
- package/dest/transport/node/node_connector_socket.d.ts.map +1 -0
- package/dest/transport/node/node_connector_socket.js +44 -0
- package/dest/transport/node/node_listener.d.ts +26 -0
- package/dest/transport/node/node_listener.d.ts.map +1 -0
- package/dest/transport/node/node_listener.js +26 -0
- package/dest/transport/node/node_listener_socket.d.ts +37 -0
- package/dest/transport/node/node_listener_socket.d.ts.map +1 -0
- package/dest/transport/node/node_listener_socket.js +40 -0
- package/dest/transport/transport_client.d.ts +61 -0
- package/dest/transport/transport_client.d.ts.map +1 -0
- package/dest/transport/transport_client.js +96 -0
- package/dest/transport/transport_server.d.ts +56 -0
- package/dest/transport/transport_server.d.ts.map +1 -0
- package/dest/transport/transport_server.js +114 -0
- package/dest/trees/hasher.d.ts +39 -0
- package/dest/trees/hasher.d.ts.map +1 -0
- package/dest/trees/hasher.js +5 -0
- package/dest/trees/index.d.ts +11 -0
- package/dest/trees/index.d.ts.map +1 -0
- package/dest/trees/index.js +10 -0
- package/dest/trees/indexed_merkle_tree.d.ts +13 -0
- package/dest/trees/indexed_merkle_tree.d.ts.map +1 -0
- package/dest/trees/indexed_merkle_tree.js +27 -0
- package/dest/trees/indexed_merkle_tree_calculator.d.ts +23 -0
- package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -0
- package/dest/trees/indexed_merkle_tree_calculator.js +83 -0
- package/dest/trees/indexed_tree_leaf.d.ts +57 -0
- package/dest/trees/indexed_tree_leaf.d.ts.map +1 -0
- package/dest/trees/indexed_tree_leaf.js +5 -0
- package/dest/trees/membership_witness.d.ts +62 -0
- package/dest/trees/membership_witness.d.ts.map +1 -0
- package/dest/trees/membership_witness.js +70 -0
- package/dest/trees/merkle_tree.d.ts +18 -0
- package/dest/trees/merkle_tree.d.ts.map +1 -0
- package/dest/trees/merkle_tree.js +58 -0
- package/dest/trees/merkle_tree_calculator.d.ts +16 -0
- package/dest/trees/merkle_tree_calculator.d.ts.map +1 -0
- package/dest/trees/merkle_tree_calculator.js +61 -0
- package/dest/trees/sibling_path.d.ts +132 -0
- package/dest/trees/sibling_path.d.ts.map +1 -0
- package/dest/trees/sibling_path.js +144 -0
- package/dest/trees/unbalanced_merkle_tree.d.ts +17 -0
- package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -0
- package/dest/trees/unbalanced_merkle_tree.js +100 -0
- package/dest/trees/unbalanced_tree_store.d.ts +19 -0
- package/dest/trees/unbalanced_tree_store.d.ts.map +1 -0
- package/dest/trees/unbalanced_tree_store.js +94 -0
- package/dest/types/index.d.ts +19 -0
- package/dest/types/index.d.ts.map +1 -0
- package/dest/types/index.js +3 -0
- package/dest/url/index.d.ts +9 -0
- package/dest/url/index.d.ts.map +1 -0
- package/dest/url/index.js +62 -0
- package/dest/validation/index.d.ts +9 -0
- package/dest/validation/index.d.ts.map +1 -0
- package/dest/validation/index.js +15 -0
- package/dest/wasm/empty_wasi_sdk.d.ts +130 -0
- package/dest/wasm/empty_wasi_sdk.d.ts.map +1 -0
- package/dest/wasm/empty_wasi_sdk.js +148 -0
- package/dest/wasm/index.d.ts +2 -0
- package/dest/wasm/index.d.ts.map +1 -0
- package/dest/wasm/index.js +1 -0
- package/dest/wasm/wasm_module.d.ts +136 -0
- package/dest/wasm/wasm_module.d.ts.map +1 -0
- package/dest/wasm/wasm_module.js +196 -0
- package/dest/worker/browser/index.d.ts +3 -0
- package/dest/worker/browser/index.d.ts.map +1 -0
- package/dest/worker/browser/index.js +2 -0
- package/dest/worker/browser/start_web_module.d.ts +7 -0
- package/dest/worker/browser/start_web_module.d.ts.map +1 -0
- package/dest/worker/browser/start_web_module.js +27 -0
- package/dest/worker/browser/web_data_store.d.ts +24 -0
- package/dest/worker/browser/web_data_store.d.ts.map +1 -0
- package/dest/worker/browser/web_data_store.js +29 -0
- package/dest/worker/browser/web_worker.d.ts +10 -0
- package/dest/worker/browser/web_worker.d.ts.map +1 -0
- package/dest/worker/browser/web_worker.js +25 -0
- package/dest/worker/data_store.d.ts +21 -0
- package/dest/worker/data_store.d.ts.map +1 -0
- package/dest/worker/data_store.js +3 -0
- package/dest/worker/index.d.ts +3 -0
- package/dest/worker/index.d.ts.map +1 -0
- package/dest/worker/index.js +1 -0
- package/dest/worker/node/index.d.ts +3 -0
- package/dest/worker/node/index.d.ts.map +1 -0
- package/dest/worker/node/index.js +2 -0
- package/dest/worker/node/node_data_store.d.ts +13 -0
- package/dest/worker/node/node_data_store.d.ts.map +1 -0
- package/dest/worker/node/node_data_store.js +20 -0
- package/dest/worker/node/node_worker.d.ts +6 -0
- package/dest/worker/node/node_worker.d.ts.map +1 -0
- package/dest/worker/node/node_worker.js +22 -0
- package/dest/worker/node/start_node_module.d.ts +7 -0
- package/dest/worker/node/start_node_module.d.ts.map +1 -0
- package/dest/worker/node/start_node_module.js +31 -0
- package/dest/worker/wasm_worker.d.ts +9 -0
- package/dest/worker/wasm_worker.d.ts.map +1 -0
- package/dest/worker/wasm_worker.js +3 -0
- package/dest/worker/worker_pool.d.ts +40 -0
- package/dest/worker/worker_pool.d.ts.map +1 -0
- package/dest/worker/worker_pool.js +51 -0
- package/package.json +176 -0
- package/src/array/array.ts +150 -0
- package/src/array/index.ts +1 -0
- package/src/async-map/index.ts +18 -0
- package/src/async-pool/index.ts +50 -0
- package/src/bigint-buffer/index.ts +87 -0
- package/src/buffer/buffer32.ts +144 -0
- package/src/buffer/index.ts +1 -0
- package/src/collection/array.ts +203 -0
- package/src/collection/index.ts +2 -0
- package/src/collection/object.ts +52 -0
- package/src/committable/committable.ts +46 -0
- package/src/committable/index.ts +1 -0
- package/src/config/env_var.ts +207 -0
- package/src/config/index.ts +167 -0
- package/src/crypto/aes128/index.ts +59 -0
- package/src/crypto/ecdsa/index.ts +70 -0
- package/src/crypto/ecdsa/signature.ts +100 -0
- package/src/crypto/grumpkin/index.ts +97 -0
- package/src/crypto/index.ts +14 -0
- package/src/crypto/keccak/index.ts +283 -0
- package/src/crypto/keys/index.ts +10 -0
- package/src/crypto/pedersen/index.ts +1 -0
- package/src/crypto/pedersen/pedersen.elliptic.ts +584 -0
- package/src/crypto/pedersen/pedersen.noble.ts +573 -0
- package/src/crypto/pedersen/pedersen.wasm.ts +48 -0
- package/src/crypto/poseidon/index.ts +77 -0
- package/src/crypto/random/index.ts +85 -0
- package/src/crypto/random/randomness_singleton.ts +62 -0
- package/src/crypto/schnorr/index.ts +55 -0
- package/src/crypto/schnorr/signature.ts +116 -0
- package/src/crypto/secp256k1/index.ts +57 -0
- package/src/crypto/secp256k1-signer/index.ts +2 -0
- package/src/crypto/secp256k1-signer/secp256k1_signer.ts +38 -0
- package/src/crypto/secp256k1-signer/utils.ts +99 -0
- package/src/crypto/serialize.ts +85 -0
- package/src/crypto/sha256/index.ts +147 -0
- package/src/crypto/sha512/index.ts +16 -0
- package/src/crypto/signature/index.ts +17 -0
- package/src/crypto/sync/index.ts +6 -0
- package/src/crypto/sync/pedersen/index.ts +45 -0
- package/src/crypto/sync/poseidon/index.ts +76 -0
- package/src/decorators/index.ts +1 -0
- package/src/decorators/memoize.ts +11 -0
- package/src/error/index.ts +22 -0
- package/src/eth-address/index.ts +241 -0
- package/src/eth-signature/eth_signature.ts +128 -0
- package/src/eth-signature/index.ts +1 -0
- package/src/fields/coordinate.ts +104 -0
- package/src/fields/fields.ts +505 -0
- package/src/fields/index.ts +3 -0
- package/src/fields/point.ts +300 -0
- package/src/fs/index.ts +1 -0
- package/src/fs/run_in_dir.ts +33 -0
- package/src/index.ts +31 -0
- package/src/iterable/all.ts +32 -0
- package/src/iterable/filter.ts +77 -0
- package/src/iterable/index.ts +7 -0
- package/src/iterable/isAsyncIt.ts +8 -0
- package/src/iterable/map.ts +66 -0
- package/src/iterable/peek.ts +58 -0
- package/src/iterable/sort.ts +39 -0
- package/src/iterable/take.ts +54 -0
- package/src/iterable/toArray.ts +9 -0
- package/src/jest/setup.mjs +9 -0
- package/src/json-rpc/README.md +55 -0
- package/src/json-rpc/client/fetch.ts +103 -0
- package/src/json-rpc/client/index.ts +2 -0
- package/src/json-rpc/client/safe_json_rpc_client.ts +67 -0
- package/src/json-rpc/client/undici.ts +75 -0
- package/src/json-rpc/convert.ts +61 -0
- package/src/json-rpc/fixtures/class_a.ts +15 -0
- package/src/json-rpc/fixtures/class_b.ts +15 -0
- package/src/json-rpc/fixtures/test_state.ts +143 -0
- package/src/json-rpc/index.ts +1 -0
- package/src/json-rpc/js_utils.ts +21 -0
- package/src/json-rpc/server/index.ts +1 -0
- package/src/json-rpc/server/safe_json_rpc_server.ts +376 -0
- package/src/json-rpc/server/telemetry.ts +0 -0
- package/src/json-rpc/test/index.ts +1 -0
- package/src/json-rpc/test/integration.ts +35 -0
- package/src/log/console.ts +39 -0
- package/src/log/debug.ts +104 -0
- package/src/log/gcloud-logger-config.ts +71 -0
- package/src/log/index.ts +6 -0
- package/src/log/libp2p_logger.ts +67 -0
- package/src/log/log-filters.ts +63 -0
- package/src/log/log-levels.ts +3 -0
- package/src/log/log_fn.ts +5 -0
- package/src/log/log_history.ts +44 -0
- package/src/log/pino-logger.ts +243 -0
- package/src/message/index.ts +43 -0
- package/src/mutex/index.ts +84 -0
- package/src/mutex/mutex_database.ts +12 -0
- package/src/noir/index.ts +1 -0
- package/src/noir/noir_package_config.ts +54 -0
- package/src/promise/index.ts +2 -0
- package/src/promise/running-promise.ts +125 -0
- package/src/promise/utils.ts +29 -0
- package/src/queue/base_memory_queue.ts +138 -0
- package/src/queue/batch_queue.ts +120 -0
- package/src/queue/bounded_serial_queue.ts +100 -0
- package/src/queue/fifo_memory_queue.ts +39 -0
- package/src/queue/index.ts +6 -0
- package/src/queue/priority_memory_queue.ts +20 -0
- package/src/queue/priority_queue.ts +34 -0
- package/src/queue/semaphore.ts +33 -0
- package/src/queue/serial_queue.ts +86 -0
- package/src/retry/index.ts +100 -0
- package/src/running-promise/index.ts +1 -0
- package/src/schemas/api.ts +47 -0
- package/src/schemas/index.ts +5 -0
- package/src/schemas/parse.ts +29 -0
- package/src/schemas/schemas.ts +64 -0
- package/src/schemas/types.ts +3 -0
- package/src/schemas/utils.ts +112 -0
- package/src/serialize/buffer_reader.ts +383 -0
- package/src/serialize/field_reader.ts +184 -0
- package/src/serialize/free_funcs.ts +204 -0
- package/src/serialize/index.ts +6 -0
- package/src/serialize/serialize.ts +336 -0
- package/src/serialize/type_registry.ts +75 -0
- package/src/serialize/types.ts +40 -0
- package/src/sleep/index.ts +75 -0
- package/src/string/index.ts +31 -0
- package/src/testing/files/index.ts +69 -0
- package/src/testing/index.ts +3 -0
- package/src/testing/port_allocator.ts +31 -0
- package/src/testing/snapshot_serializer.ts +33 -0
- package/src/testing/test_data.ts +36 -0
- package/src/timer/date.ts +24 -0
- package/src/timer/elapsed.ts +23 -0
- package/src/timer/index.ts +4 -0
- package/src/timer/timeout.ts +70 -0
- package/src/timer/timer.ts +48 -0
- package/src/transport/browser/index.ts +4 -0
- package/src/transport/browser/message_port_socket.ts +48 -0
- package/src/transport/browser/shared_worker_connector.ts +21 -0
- package/src/transport/browser/shared_worker_listener.ts +53 -0
- package/src/transport/browser/worker_connector.ts +30 -0
- package/src/transport/browser/worker_listener.ts +54 -0
- package/src/transport/dispatch/create_dispatch_fn.ts +35 -0
- package/src/transport/dispatch/create_dispatch_proxy.ts +141 -0
- package/src/transport/dispatch/messages.ts +58 -0
- package/src/transport/index.ts +11 -0
- package/src/transport/interface/connector.ts +9 -0
- package/src/transport/interface/listener.ts +16 -0
- package/src/transport/interface/socket.ts +15 -0
- package/src/transport/interface/transferable.ts +125 -0
- package/src/transport/node/index.ts +2 -0
- package/src/transport/node/node_connector.ts +30 -0
- package/src/transport/node/node_connector_socket.ts +52 -0
- package/src/transport/node/node_listener.ts +34 -0
- package/src/transport/node/node_listener_socket.ts +48 -0
- package/src/transport/transport_client.ts +131 -0
- package/src/transport/transport_server.ts +108 -0
- package/src/trees/hasher.ts +39 -0
- package/src/trees/index.ts +10 -0
- package/src/trees/indexed_merkle_tree.ts +36 -0
- package/src/trees/indexed_merkle_tree_calculator.ts +94 -0
- package/src/trees/indexed_tree_leaf.ts +56 -0
- package/src/trees/membership_witness.ts +99 -0
- package/src/trees/merkle_tree.ts +72 -0
- package/src/trees/merkle_tree_calculator.ts +67 -0
- package/src/trees/sibling_path.ts +183 -0
- package/src/trees/unbalanced_merkle_tree.ts +103 -0
- package/src/trees/unbalanced_tree_store.ts +102 -0
- package/src/types/index.ts +25 -0
- package/src/url/index.ts +73 -0
- package/src/validation/index.ts +18 -0
- package/src/wasm/README.md +6 -0
- package/src/wasm/empty_wasi_sdk.ts +166 -0
- package/src/wasm/fixtures/gcd.wasm +0 -0
- package/src/wasm/fixtures/gcd.wat +27 -0
- package/src/wasm/index.ts +1 -0
- package/src/wasm/wasm_module.ts +260 -0
- package/src/worker/browser/index.ts +2 -0
- package/src/worker/browser/start_web_module.ts +24 -0
- package/src/worker/browser/web_data_store.ts +38 -0
- package/src/worker/browser/web_worker.ts +25 -0
- package/src/worker/data_store.ts +19 -0
- package/src/worker/index.ts +2 -0
- package/src/worker/node/index.ts +2 -0
- package/src/worker/node/node_data_store.ts +27 -0
- package/src/worker/node/node_worker.ts +23 -0
- package/src/worker/node/start_node_module.ts +30 -0
- package/src/worker/wasm_worker.ts +7 -0
- package/src/worker/worker_pool.ts +73 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { mapValues } from '../collection/object.js';
|
|
2
|
+
/**
|
|
3
|
+
* Register a class here that has a toJSON method that returns:
|
|
4
|
+
* ```
|
|
5
|
+
* {
|
|
6
|
+
* "type": "ExampleClassName",
|
|
7
|
+
* "value": <result of ExampleClassName.toString()>
|
|
8
|
+
* }
|
|
9
|
+
* ```
|
|
10
|
+
* and has an e.g. ExampleClassName.fromString(string) method.
|
|
11
|
+
* This means you can then easily serialize/deserialize the type using JSON.stringify and JSON.parse.
|
|
12
|
+
*/ export class TypeRegistry {
|
|
13
|
+
static registry = new Map();
|
|
14
|
+
static register(typeName, constructor) {
|
|
15
|
+
this.registry.set(typeName, constructor);
|
|
16
|
+
}
|
|
17
|
+
static getConstructor(typeName) {
|
|
18
|
+
return this.registry.get(typeName);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function replace(value) {
|
|
22
|
+
if (value && typeof value === 'object' && 'toString' in value && TypeRegistry.getConstructor(value.constructor.name)) {
|
|
23
|
+
return {
|
|
24
|
+
type: value.constructor.name,
|
|
25
|
+
value: value.toString()
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
// Resolver function that enables JSON serialization of BigInts.
|
|
31
|
+
export function resolver(_, value) {
|
|
32
|
+
if (typeof value === 'bigint') {
|
|
33
|
+
return value.toString() + 'n';
|
|
34
|
+
}
|
|
35
|
+
if (typeof value === 'object' && value) {
|
|
36
|
+
if (Array.isArray(value)) {
|
|
37
|
+
return value.map(replace);
|
|
38
|
+
} else if (Buffer.isBuffer(value)) {
|
|
39
|
+
return {
|
|
40
|
+
type: 'buffer',
|
|
41
|
+
value: value.toString('hex')
|
|
42
|
+
};
|
|
43
|
+
} else {
|
|
44
|
+
return mapValues(value, replace);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return value;
|
|
48
|
+
}
|
|
49
|
+
// Reviver function that uses TypeRegistry to instantiate objects.
|
|
50
|
+
export function reviver(key, value) {
|
|
51
|
+
if (typeof value === 'string' && /^\d+n$/.test(value)) {
|
|
52
|
+
return BigInt(value.slice(0, -1));
|
|
53
|
+
}
|
|
54
|
+
if (value && typeof value === 'object' && 'type' in value && 'value' in value) {
|
|
55
|
+
const Constructor = TypeRegistry.getConstructor(value.type);
|
|
56
|
+
if (Constructor) {
|
|
57
|
+
return Constructor.fromString(value.value);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a fixed-length array.
|
|
3
|
+
*/
|
|
4
|
+
export type Tuple<T, N extends number> = N extends N ? (number extends N ? T[] : _Tuple<T, N, []>) : never;
|
|
5
|
+
/**
|
|
6
|
+
* Recursive type helper for constructing a fixed-length tuple of a given type.
|
|
7
|
+
* This is utilized internally by Tuple to create the final fixed-length tuple.
|
|
8
|
+
*/
|
|
9
|
+
type _Tuple<T, N extends number, R extends unknown[]> = R['length'] extends N ? R : _Tuple<T, N, [T, ...R]>;
|
|
10
|
+
/**
|
|
11
|
+
* Check an array size, and cast it to a tuple.
|
|
12
|
+
* @param array - The array.
|
|
13
|
+
* @param n - The size.
|
|
14
|
+
* @returns The case tuple, or throws Error.
|
|
15
|
+
*/
|
|
16
|
+
export declare function assertLength<T, N extends number>(array: T[], n: N): Tuple<T, N>;
|
|
17
|
+
/**
|
|
18
|
+
* Annoying, mapping a tuple does not preserve length.
|
|
19
|
+
* This is a helper to preserve length during a map operation.
|
|
20
|
+
* @typeparam T - The original array type.
|
|
21
|
+
*/
|
|
22
|
+
type MapTuple<T extends any[], F extends (item: any) => any> = {
|
|
23
|
+
[K in keyof T]: T[K] extends infer U ? (F extends (item: U) => infer V ? V : never) : never;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Annoyingly, mapping a tuple does not preserve length.
|
|
27
|
+
* This is a helper to preserve length during a map operation.
|
|
28
|
+
* @see https://github.com/microsoft/TypeScript/issues/29841.
|
|
29
|
+
* @param array - A tuple array.
|
|
30
|
+
*/
|
|
31
|
+
export declare function mapTuple<T extends any[], F extends (item: T[number]) => any>(tuple: T, fn: F): MapTuple<T, F>;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/serialize/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;AAC3G;;;GAGG;AACH,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAE5G;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAK/E;AACD;;;;GAIG;AACH,KAAK,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,IAAI;KAC5D,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK;CAC5F,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAE7G"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a fixed-length array.
|
|
3
|
+
*/ /**
|
|
4
|
+
* Check an array size, and cast it to a tuple.
|
|
5
|
+
* @param array - The array.
|
|
6
|
+
* @param n - The size.
|
|
7
|
+
* @returns The case tuple, or throws Error.
|
|
8
|
+
*/ export function assertLength(array, n) {
|
|
9
|
+
if (array.length !== n) {
|
|
10
|
+
throw new Error(`Wrong 'fixed array' size. Expected ${n}, got ${array.length}.`);
|
|
11
|
+
}
|
|
12
|
+
return array;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Annoyingly, mapping a tuple does not preserve length.
|
|
16
|
+
* This is a helper to preserve length during a map operation.
|
|
17
|
+
* @see https://github.com/microsoft/TypeScript/issues/29841.
|
|
18
|
+
* @param array - A tuple array.
|
|
19
|
+
*/ export function mapTuple(tuple, fn) {
|
|
20
|
+
return tuple.map(fn);
|
|
21
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InterruptibleSleep is a utility class that allows you to create an interruptible sleep function.
|
|
3
|
+
* The sleep function can be interrupted at any time by calling the `interrupt` method, which can
|
|
4
|
+
* also specify whether the sleep should throw an error or just return. This is useful when you need
|
|
5
|
+
* to terminate long-running processes or perform cleanup tasks in response to external events.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* const sleeper = new InterruptibleSleep();
|
|
9
|
+
*
|
|
10
|
+
* async function longRunningTask() \{
|
|
11
|
+
* try \{
|
|
12
|
+
* await sleeper.sleep(3000);
|
|
13
|
+
* console.log('Task completed after 3 seconds');
|
|
14
|
+
* \} catch (e) \{
|
|
15
|
+
* console.log('Task was interrupted');
|
|
16
|
+
* \}
|
|
17
|
+
* \}
|
|
18
|
+
*
|
|
19
|
+
* setTimeout(() =\> sleeper.interrupt(true), 1500); // Interrupt the sleep after 1.5 seconds
|
|
20
|
+
*/
|
|
21
|
+
export declare class InterruptibleSleep {
|
|
22
|
+
private interrupts;
|
|
23
|
+
/**
|
|
24
|
+
* Sleep for a specified amount of time in milliseconds.
|
|
25
|
+
* The sleep function will pause the execution of the current async function
|
|
26
|
+
* for the given time period, allowing other tasks to run before resuming.
|
|
27
|
+
*
|
|
28
|
+
* @param ms - The number of milliseconds to sleep.
|
|
29
|
+
* @returns A Promise that resolves after the specified time has passed.
|
|
30
|
+
*/
|
|
31
|
+
sleep(ms: number): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Interrupts the current sleep operation and optionally throws an error if specified.
|
|
34
|
+
* By default, when interrupted, the sleep operation will resolve without throwing.
|
|
35
|
+
* If 'sleepShouldThrow' is set to true, the sleep operation will throw an InterruptError instead.
|
|
36
|
+
*
|
|
37
|
+
* @param sleepShouldThrow - A boolean value indicating whether the sleep operation should throw an error when interrupted. Default is false.
|
|
38
|
+
*/
|
|
39
|
+
interrupt(sleepShouldThrow?: boolean): void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Puts the current execution context to sleep for a specified duration.
|
|
43
|
+
* This simulates a blocking sleep operation by using an asynchronous function and a Promise that resolves after the given duration.
|
|
44
|
+
* The sleep function can be interrupted by the 'interrupt' method of the InterruptibleSleep class.
|
|
45
|
+
*
|
|
46
|
+
* @param ms - The duration in milliseconds for which the sleep operation should last.
|
|
47
|
+
* @param returnValue - The return value of the promise.
|
|
48
|
+
* @returns A Promise that resolves after the specified duration, allowing the use of 'await' to pause execution.
|
|
49
|
+
*/
|
|
50
|
+
export declare function sleep<T>(ms: number, returnValue?: T): Promise<T>;
|
|
51
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sleep/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAA6C;IAE/D;;;;;;;OAOG;IACU,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7C;;;;;;OAMG;IACI,SAAS,CAAC,gBAAgB,UAAQ,GAAG,IAAI;CAIjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAEhE"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { InterruptError } from '../error/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* InterruptibleSleep is a utility class that allows you to create an interruptible sleep function.
|
|
4
|
+
* The sleep function can be interrupted at any time by calling the `interrupt` method, which can
|
|
5
|
+
* also specify whether the sleep should throw an error or just return. This is useful when you need
|
|
6
|
+
* to terminate long-running processes or perform cleanup tasks in response to external events.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const sleeper = new InterruptibleSleep();
|
|
10
|
+
*
|
|
11
|
+
* async function longRunningTask() \{
|
|
12
|
+
* try \{
|
|
13
|
+
* await sleeper.sleep(3000);
|
|
14
|
+
* console.log('Task completed after 3 seconds');
|
|
15
|
+
* \} catch (e) \{
|
|
16
|
+
* console.log('Task was interrupted');
|
|
17
|
+
* \}
|
|
18
|
+
* \}
|
|
19
|
+
*
|
|
20
|
+
* setTimeout(() =\> sleeper.interrupt(true), 1500); // Interrupt the sleep after 1.5 seconds
|
|
21
|
+
*/ export class InterruptibleSleep {
|
|
22
|
+
interrupts = [];
|
|
23
|
+
/**
|
|
24
|
+
* Sleep for a specified amount of time in milliseconds.
|
|
25
|
+
* The sleep function will pause the execution of the current async function
|
|
26
|
+
* for the given time period, allowing other tasks to run before resuming.
|
|
27
|
+
*
|
|
28
|
+
* @param ms - The number of milliseconds to sleep.
|
|
29
|
+
* @returns A Promise that resolves after the specified time has passed.
|
|
30
|
+
*/ async sleep(ms) {
|
|
31
|
+
let interruptResolve;
|
|
32
|
+
const interruptPromise = new Promise((resolve)=>{
|
|
33
|
+
interruptResolve = resolve;
|
|
34
|
+
this.interrupts.push(resolve);
|
|
35
|
+
});
|
|
36
|
+
const timeoutPromise = new Promise((resolve)=>setTimeout(()=>resolve(false), ms));
|
|
37
|
+
const shouldThrow = await Promise.race([
|
|
38
|
+
interruptPromise,
|
|
39
|
+
timeoutPromise
|
|
40
|
+
]);
|
|
41
|
+
this.interrupts = this.interrupts.filter((res)=>res !== interruptResolve);
|
|
42
|
+
if (shouldThrow) {
|
|
43
|
+
throw new InterruptError('Interrupted.');
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Interrupts the current sleep operation and optionally throws an error if specified.
|
|
48
|
+
* By default, when interrupted, the sleep operation will resolve without throwing.
|
|
49
|
+
* If 'sleepShouldThrow' is set to true, the sleep operation will throw an InterruptError instead.
|
|
50
|
+
*
|
|
51
|
+
* @param sleepShouldThrow - A boolean value indicating whether the sleep operation should throw an error when interrupted. Default is false.
|
|
52
|
+
*/ interrupt(sleepShouldThrow = false) {
|
|
53
|
+
this.interrupts.forEach((resolve)=>resolve(sleepShouldThrow));
|
|
54
|
+
this.interrupts = [];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Puts the current execution context to sleep for a specified duration.
|
|
59
|
+
* This simulates a blocking sleep operation by using an asynchronous function and a Promise that resolves after the given duration.
|
|
60
|
+
* The sleep function can be interrupted by the 'interrupt' method of the InterruptibleSleep class.
|
|
61
|
+
*
|
|
62
|
+
* @param ms - The duration in milliseconds for which the sleep operation should last.
|
|
63
|
+
* @param returnValue - The return value of the promise.
|
|
64
|
+
* @returns A Promise that resolves after the specified duration, allowing the use of 'await' to pause execution.
|
|
65
|
+
*/ export function sleep(ms, returnValue) {
|
|
66
|
+
return new Promise((resolve)=>setTimeout(()=>resolve(returnValue), ms));
|
|
67
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
export declare function hasHexPrefix(str: string): str is `0x${string}`;
|
|
4
|
+
export declare function withoutHexPrefix(str: string): string;
|
|
5
|
+
export declare function isHex(str: string): boolean;
|
|
6
|
+
export declare function hexToBuffer(str: string): Buffer;
|
|
7
|
+
export declare function bufferToHex(buffer: Buffer): `0x${string}`;
|
|
8
|
+
export declare function pluralize(str: string, count: number | bigint, plural?: string): string;
|
|
9
|
+
export declare function count(count: number | bigint, str: string, plural?: string): string;
|
|
10
|
+
export declare function truncate(str: string, length?: number): string;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/string/index.ts"],"names":[],"mappings":";;AAAA,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,KAAK,MAAM,EAAE,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1C;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAEzD;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAElF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAW,GAAG,MAAM,CAEjE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function hasHexPrefix(str) {
|
|
2
|
+
return str.startsWith('0x');
|
|
3
|
+
}
|
|
4
|
+
export function withoutHexPrefix(str) {
|
|
5
|
+
return hasHexPrefix(str) ? str.slice(2) : str;
|
|
6
|
+
}
|
|
7
|
+
export function isHex(str) {
|
|
8
|
+
return /^(0x)?[0-9a-fA-F]*$/.test(str);
|
|
9
|
+
}
|
|
10
|
+
export function hexToBuffer(str) {
|
|
11
|
+
return Buffer.from(withoutHexPrefix(str), 'hex');
|
|
12
|
+
}
|
|
13
|
+
export function bufferToHex(buffer) {
|
|
14
|
+
return `0x${buffer.toString('hex')}`;
|
|
15
|
+
}
|
|
16
|
+
export function pluralize(str, count, plural) {
|
|
17
|
+
return count === 1 || count === 1n ? str : plural ?? `${str}s`;
|
|
18
|
+
}
|
|
19
|
+
export function count(count, str, plural) {
|
|
20
|
+
return `${count} ${pluralize(str, count, plural)}`;
|
|
21
|
+
}
|
|
22
|
+
export function truncate(str, length = 64) {
|
|
23
|
+
return str.length > length ? str.slice(0, length) + '...' : str;
|
|
24
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
/** Writes the contents specified to the target file if test data generation is enabled. */
|
|
4
|
+
export declare function writeTestData(targetFileFromRepoRoot: string, contents: string | Buffer, raw?: boolean): void;
|
|
5
|
+
export declare function readTestData(repoPath: string): Buffer;
|
|
6
|
+
/**
|
|
7
|
+
* Looks for a variable assignment in the target file and updates the value, only if test data generation is enabled.
|
|
8
|
+
* Note that a magic inline comment would be a cleaner approach, like `/* TEST-DATA-START *\/` and `/* TEST-DATA-END *\/`,
|
|
9
|
+
* but running nargo fmt on it panics since the comment would be erased, so we roll with this for now.
|
|
10
|
+
* @remarks Requires AZTEC_GENERATE_TEST_DATA=1 to be set
|
|
11
|
+
*/
|
|
12
|
+
export declare function updateInlineTestData(targetFileFromRepoRoot: string, itemName: string, value: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Updates the sample Prover.toml files in noir-projects/noir-protocol-circuits/crates/.
|
|
15
|
+
* @remarks Requires AZTEC_GENERATE_TEST_DATA=1 to be set
|
|
16
|
+
* To re-gen, run 'AZTEC_GENERATE_TEST_DATA=1 FAKE_PROOFS=1 yarn test:e2e full.test'
|
|
17
|
+
* To re-gen public base only, run 'AZTEC_GENERATE_TEST_DATA=1 yarn workspace @aztec/prover-client test orchestrator_public_functions'
|
|
18
|
+
*/
|
|
19
|
+
export declare function updateProtocolCircuitSampleInputs(circuitName: string, value: string): void;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/files/index.ts"],"names":[],"mappings":";;AAOA,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,sBAAsB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,GAAE,OAAe,QAS5G;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,sBAAsB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAenG;AAED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAMnF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
2
|
+
import { dirname, join, resolve } from 'path';
|
|
3
|
+
import { createConsoleLogger } from '../../log/console.js';
|
|
4
|
+
import { fileURLToPath } from '../../url/index.js';
|
|
5
|
+
import { isGenerateTestDataEnabled } from '../test_data.js';
|
|
6
|
+
/** Writes the contents specified to the target file if test data generation is enabled. */ export function writeTestData(targetFileFromRepoRoot, contents, raw = false) {
|
|
7
|
+
if (!isGenerateTestDataEnabled()) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const targetFile = getPathToFile(targetFileFromRepoRoot);
|
|
11
|
+
const toWrite = raw ? contents : typeof contents === 'string' ? contents : contents.toString('hex');
|
|
12
|
+
writeFileSync(targetFile, toWrite);
|
|
13
|
+
const logger = createConsoleLogger('aztec:testing:test_data');
|
|
14
|
+
logger(`Wrote test data to ${targetFile}`);
|
|
15
|
+
}
|
|
16
|
+
export function readTestData(repoPath) {
|
|
17
|
+
const targetFile = getPathToFile(repoPath);
|
|
18
|
+
return readFileSync(targetFile);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Looks for a variable assignment in the target file and updates the value, only if test data generation is enabled.
|
|
22
|
+
* Note that a magic inline comment would be a cleaner approach, like `/* TEST-DATA-START *\/` and `/* TEST-DATA-END *\/`,
|
|
23
|
+
* but running nargo fmt on it panics since the comment would be erased, so we roll with this for now.
|
|
24
|
+
* @remarks Requires AZTEC_GENERATE_TEST_DATA=1 to be set
|
|
25
|
+
*/ export function updateInlineTestData(targetFileFromRepoRoot, itemName, value) {
|
|
26
|
+
if (!isGenerateTestDataEnabled()) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const logger = createConsoleLogger('aztec:testing:test_data');
|
|
30
|
+
const targetFile = getPathToFile(targetFileFromRepoRoot);
|
|
31
|
+
const contents = readFileSync(targetFile, 'utf8').toString();
|
|
32
|
+
const regex = new RegExp(`let ${itemName} =[\\s\\S]*?;`, 'g');
|
|
33
|
+
if (!regex.exec(contents)) {
|
|
34
|
+
throw new Error(`Test data marker for ${itemName} not found in ${targetFile}`);
|
|
35
|
+
}
|
|
36
|
+
const updatedContents = contents.replaceAll(regex, `let ${itemName} = ${value};`);
|
|
37
|
+
writeFileSync(targetFile, updatedContents);
|
|
38
|
+
logger(`Updated test data in ${targetFile} for ${itemName} to ${value}`);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Updates the sample Prover.toml files in noir-projects/noir-protocol-circuits/crates/.
|
|
42
|
+
* @remarks Requires AZTEC_GENERATE_TEST_DATA=1 to be set
|
|
43
|
+
* To re-gen, run 'AZTEC_GENERATE_TEST_DATA=1 FAKE_PROOFS=1 yarn test:e2e full.test'
|
|
44
|
+
* To re-gen public base only, run 'AZTEC_GENERATE_TEST_DATA=1 yarn workspace @aztec/prover-client test orchestrator_public_functions'
|
|
45
|
+
*/ export function updateProtocolCircuitSampleInputs(circuitName, value) {
|
|
46
|
+
const logger = createConsoleLogger('aztec:testing:test_data');
|
|
47
|
+
const targetFileFromRepoRoot = `noir-projects/noir-protocol-circuits/crates/${circuitName}/Prover.toml`;
|
|
48
|
+
const targetFile = getPathToFile(targetFileFromRepoRoot);
|
|
49
|
+
writeFileSync(targetFile, value);
|
|
50
|
+
logger(`Updated test data in ${targetFile} for ${circuitName}`);
|
|
51
|
+
}
|
|
52
|
+
function getPathToFile(targetFileFromRepoRoot) {
|
|
53
|
+
const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), '../../../../../');
|
|
54
|
+
if (!existsSync(join(repoRoot, 'CODEOWNERS'))) {
|
|
55
|
+
throw new Error(`Path to repo root is incorrect (got ${repoRoot})`);
|
|
56
|
+
}
|
|
57
|
+
return join(repoRoot, targetFileFromRepoRoot);
|
|
58
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a random port that is free to use.
|
|
3
|
+
* Returns undefined if it fails to get a port.
|
|
4
|
+
*
|
|
5
|
+
* @attribution: adapted from https://stackoverflow.com/a/71178451
|
|
6
|
+
*
|
|
7
|
+
* @returns a random port that is free to use.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getRandomPort(): Promise<number | undefined>;
|
|
10
|
+
//# sourceMappingURL=port_allocator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port_allocator.d.ts","sourceRoot":"","sources":["../../src/testing/port_allocator.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoB3D"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import net from 'net';
|
|
2
|
+
/**
|
|
3
|
+
* Get a random port that is free to use.
|
|
4
|
+
* Returns undefined if it fails to get a port.
|
|
5
|
+
*
|
|
6
|
+
* @attribution: adapted from https://stackoverflow.com/a/71178451
|
|
7
|
+
*
|
|
8
|
+
* @returns a random port that is free to use.
|
|
9
|
+
*/ export function getRandomPort() {
|
|
10
|
+
return new Promise((resolve)=>{
|
|
11
|
+
const server = net.createServer();
|
|
12
|
+
server.listen(0, ()=>{
|
|
13
|
+
const address = server.address();
|
|
14
|
+
if (address && typeof address === 'object' && 'port' in address) {
|
|
15
|
+
const port = address.port;
|
|
16
|
+
server.close(()=>{
|
|
17
|
+
resolve(port);
|
|
18
|
+
});
|
|
19
|
+
} else {
|
|
20
|
+
server.close(()=>{
|
|
21
|
+
resolve(undefined);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
server.on('error', ()=>{
|
|
26
|
+
resolve(undefined);
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot_serializer.d.ts","sourceRoot":"","sources":["../../src/testing/snapshot_serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA2B/C,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IAAE,qBAAqB,EAAE,CAAC,UAAU,EAAE,SAAS,KAAK,IAAI,CAAA;CAAE,QAKhH"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { inspect } from 'util';
|
|
2
|
+
function makeSerializerForCustomInspect(prefix) {
|
|
3
|
+
return {
|
|
4
|
+
serialize (val) {
|
|
5
|
+
return inspect(val);
|
|
6
|
+
},
|
|
7
|
+
test (arg) {
|
|
8
|
+
return inspect(arg).startsWith(prefix);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
const bufferSerializer = {
|
|
13
|
+
serialize (val) {
|
|
14
|
+
return `Buffer<0x${val.toString('hex')}>`;
|
|
15
|
+
},
|
|
16
|
+
test (arg) {
|
|
17
|
+
return Buffer.isBuffer(arg);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const CUSTOM_INSPECT_SERIALIZABLE_TYPES = [
|
|
21
|
+
'AztecAddress',
|
|
22
|
+
'Fr',
|
|
23
|
+
'Fq',
|
|
24
|
+
'Selector',
|
|
25
|
+
'EthAddress'
|
|
26
|
+
];
|
|
27
|
+
export function setupCustomSnapshotSerializers(expect) {
|
|
28
|
+
for (const type of CUSTOM_INSPECT_SERIALIZABLE_TYPES){
|
|
29
|
+
expect.addSnapshotSerializer(makeSerializerForCustomInspect(type));
|
|
30
|
+
}
|
|
31
|
+
expect.addSnapshotSerializer(bufferSerializer);
|
|
32
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Returns whether test data generation is enabled */
|
|
2
|
+
export declare function isGenerateTestDataEnabled(): boolean;
|
|
3
|
+
/** Pushes test data with the given name, only if test data generation is enabled. */
|
|
4
|
+
export declare function pushTestData<T>(itemName: string, data: T): void;
|
|
5
|
+
/** Returns all instances of pushed test data with the given name, or empty if test data generation is not enabled. */
|
|
6
|
+
export declare function getTestData(itemName: string): unknown[];
|
|
7
|
+
//# sourceMappingURL=test_data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_data.d.ts","sourceRoot":"","sources":["../../src/testing/test_data.ts"],"names":[],"mappings":"AAEA,sDAAsD;AACtD,wBAAgB,yBAAyB,YAExC;AAED,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,QAgBxD;AAED,sHAAsH;AACtH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE,CAQvD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const testData = {};
|
|
2
|
+
/** Returns whether test data generation is enabled */ export function isGenerateTestDataEnabled() {
|
|
3
|
+
return [
|
|
4
|
+
'1',
|
|
5
|
+
'true'
|
|
6
|
+
].includes(process.env.AZTEC_GENERATE_TEST_DATA ?? '') && typeof expect !== 'undefined';
|
|
7
|
+
}
|
|
8
|
+
/** Pushes test data with the given name, only if test data generation is enabled. */ export function pushTestData(itemName, data) {
|
|
9
|
+
if (!isGenerateTestDataEnabled()) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (typeof expect === 'undefined') {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const testName = expect.getState().currentTestName;
|
|
16
|
+
const fullItemName = `${testName} ${itemName}`;
|
|
17
|
+
if (!testData[fullItemName]) {
|
|
18
|
+
testData[fullItemName] = [];
|
|
19
|
+
}
|
|
20
|
+
testData[fullItemName].push(data);
|
|
21
|
+
}
|
|
22
|
+
/** Returns all instances of pushed test data with the given name, or empty if test data generation is not enabled. */ export function getTestData(itemName) {
|
|
23
|
+
if (!isGenerateTestDataEnabled()) {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
const testName = expect.getState().currentTestName;
|
|
27
|
+
const fullItemName = `${testName} ${itemName}`;
|
|
28
|
+
return testData[fullItemName];
|
|
29
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Returns current datetime. */
|
|
2
|
+
export declare class DateProvider {
|
|
3
|
+
now(): number;
|
|
4
|
+
}
|
|
5
|
+
/** Returns current datetime and allows to override it. */
|
|
6
|
+
export declare class TestDateProvider implements DateProvider {
|
|
7
|
+
private readonly logger;
|
|
8
|
+
private offset;
|
|
9
|
+
constructor(logger?: import("../log/pino-logger.js").Logger);
|
|
10
|
+
now(): number;
|
|
11
|
+
setTime(timeMs: number): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=date.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/timer/date.ts"],"names":[],"mappings":"AAEA,gCAAgC;AAChC,qBAAa,YAAY;IAChB,GAAG,IAAI,MAAM;CAGrB;AAED,0DAA0D;AAC1D,qBAAa,gBAAiB,YAAW,YAAY;IAGvC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,MAAM,CAAK;gBAEU,MAAM,yCAAgD;IAE5E,GAAG,IAAI,MAAM;IAIb,OAAO,CAAC,MAAM,EAAE,MAAM;CAI9B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createLogger } from '../log/pino-logger.js';
|
|
2
|
+
/** Returns current datetime. */ export class DateProvider {
|
|
3
|
+
now() {
|
|
4
|
+
return Date.now();
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
/** Returns current datetime and allows to override it. */ export class TestDateProvider {
|
|
8
|
+
logger;
|
|
9
|
+
offset;
|
|
10
|
+
constructor(logger = createLogger('foundation:test-date-provider')){
|
|
11
|
+
this.logger = logger;
|
|
12
|
+
this.offset = 0;
|
|
13
|
+
}
|
|
14
|
+
now() {
|
|
15
|
+
return Date.now() + this.offset;
|
|
16
|
+
}
|
|
17
|
+
setTime(timeMs) {
|
|
18
|
+
this.offset = timeMs - Date.now();
|
|
19
|
+
this.logger.warn(`Time set to ${new Date(timeMs).toISOString()}`, {
|
|
20
|
+
offset: this.offset,
|
|
21
|
+
timeMs
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Measures the elapsed execution time of a function call or promise once it is awaited.
|
|
3
|
+
* @param fn - Function or promise.
|
|
4
|
+
* @returns The number of ms and the result.
|
|
5
|
+
*/
|
|
6
|
+
export declare function elapsed<T>(fn: Promise<T> | (() => T | Promise<T>)): Promise<[number, T]>;
|
|
7
|
+
/**
|
|
8
|
+
* Measures the elapsed execution time of a synchronous function call once it is awaited.
|
|
9
|
+
* @param fn - Function.
|
|
10
|
+
* @returns The number of ms and the result.
|
|
11
|
+
*/
|
|
12
|
+
export declare function elapsedSync<T>(fn: () => T): [number, T];
|
|
13
|
+
//# sourceMappingURL=elapsed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elapsed.d.ts","sourceRoot":"","sources":["../../src/timer/elapsed.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAI9F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAIvD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Timer } from './timer.js';
|
|
2
|
+
/**
|
|
3
|
+
* Measures the elapsed execution time of a function call or promise once it is awaited.
|
|
4
|
+
* @param fn - Function or promise.
|
|
5
|
+
* @returns The number of ms and the result.
|
|
6
|
+
*/ export async function elapsed(fn) {
|
|
7
|
+
const timer = new Timer();
|
|
8
|
+
const result = await (typeof fn === 'function' ? fn() : fn);
|
|
9
|
+
return [
|
|
10
|
+
timer.ms(),
|
|
11
|
+
result
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Measures the elapsed execution time of a synchronous function call once it is awaited.
|
|
16
|
+
* @param fn - Function.
|
|
17
|
+
* @returns The number of ms and the result.
|
|
18
|
+
*/ export function elapsedSync(fn) {
|
|
19
|
+
const timer = new Timer();
|
|
20
|
+
const result = fn();
|
|
21
|
+
return [
|
|
22
|
+
timer.ms(),
|
|
23
|
+
result
|
|
24
|
+
];
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/timer/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
|