@aztec/foundation 0.0.0-test.1 → 0.0.1-commit.5476d83
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 +1 -1
- 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/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 +4 -0
- package/dest/branded-types/index.d.ts.map +1 -0
- package/dest/branded-types/index.js +2 -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 +77 -0
- package/dest/buffer/buffer16.d.ts.map +1 -0
- package/dest/buffer/buffer16.js +100 -0
- package/dest/buffer/buffer32.d.ts +4 -11
- package/dest/buffer/buffer32.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +6 -6
- 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 +17 -4
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +57 -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 +49 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +115 -7
- package/dest/config/network_config.d.ts +42 -0
- package/dest/config/network_config.d.ts.map +1 -0
- package/dest/config/network_config.js +9 -0
- package/dest/config/network_name.d.ts +3 -0
- package/dest/config/network_name.d.ts.map +1 -0
- package/dest/config/network_name.js +19 -0
- package/dest/config/secret_value.d.ts +28 -0
- package/dest/config/secret_value.d.ts.map +1 -0
- package/dest/config/secret_value.js +34 -0
- package/dest/crypto/aes128/index.d.ts +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/bn254_utils.d.ts +39 -0
- package/dest/crypto/bn254/bn254_utils.d.ts.map +1 -0
- package/dest/crypto/bn254/bn254_utils.js +56 -0
- package/dest/crypto/bn254/index.d.ts +55 -0
- package/dest/crypto/bn254/index.d.ts.map +1 -0
- package/dest/crypto/bn254/index.js +145 -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 +2 -13
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.d.ts +7 -14
- package/dest/crypto/grumpkin/index.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.js +59 -54
- package/dest/crypto/index.d.ts +3 -1
- package/dest/crypto/index.d.ts.map +1 -1
- package/dest/crypto/index.js +2 -0
- 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 +1 -3
- package/dest/crypto/keys/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.js +7 -4
- 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 +3 -5
- package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.js +23 -13
- package/dest/crypto/poseidon/index.d.ts +1 -3
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +32 -17
- 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 +1 -3
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.d.ts +1 -1
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +29 -37
- package/dest/crypto/schnorr/signature.d.ts +4 -6
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- 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 +22 -5
- package/dest/crypto/sha256/index.d.ts.map +1 -1
- package/dest/crypto/sha256/index.js +42 -0
- package/dest/crypto/sha512/index.d.ts +2 -4
- package/dest/crypto/sha512/index.d.ts.map +1 -1
- package/dest/crypto/signature/index.d.ts +1 -3
- 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 +3 -5
- package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
- package/dest/crypto/sync/pedersen/index.js +17 -10
- package/dest/crypto/sync/poseidon/index.d.ts +1 -3
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/sync/poseidon/index.js +27 -12
- 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 +4 -4
- package/dest/error/index.d.ts.map +1 -1
- package/dest/eth-address/index.d.ts +16 -8
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +22 -0
- package/dest/eth-signature/eth_signature.d.ts +17 -18
- 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/fields/bls12_fields.d.ts +148 -0
- package/dest/fields/bls12_fields.d.ts.map +1 -0
- package/dest/fields/bls12_fields.js +359 -0
- package/dest/fields/bls12_point.d.ts +220 -0
- package/dest/fields/bls12_point.d.ts.map +1 -0
- package/dest/fields/bls12_point.js +398 -0
- package/dest/fields/coordinate.d.ts +1 -6
- package/dest/fields/coordinate.d.ts.map +1 -1
- package/dest/fields/fields.d.ts +16 -4
- package/dest/fields/fields.d.ts.map +1 -1
- package/dest/fields/fields.js +57 -15
- package/dest/fields/index.d.ts +3 -1
- package/dest/fields/index.d.ts.map +1 -1
- package/dest/fields/index.js +2 -0
- package/dest/fields/point.d.ts +13 -15
- package/dest/fields/point.d.ts.map +1 -1
- package/dest/fields/point.js +20 -3
- 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/index.d.ts +3 -3
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -2
- 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/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 +6 -7
- 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 +4 -2
- package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/class_b.d.ts +4 -2
- 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/server/telemetry.d.ts +1 -1
- 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 +28 -2
- 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 +4 -3
- package/dest/retry/index.d.ts.map +1 -1
- package/dest/retry/index.js +2 -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 +15 -18
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +20 -8
- package/dest/schemas/types.d.ts +1 -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 +28 -3
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +44 -2
- package/dest/serialize/field_reader.d.ts +11 -2
- package/dest/serialize/field_reader.d.ts.map +1 -1
- package/dest/serialize/field_reader.js +18 -1
- package/dest/serialize/free_funcs.d.ts +24 -22
- package/dest/serialize/free_funcs.d.ts.map +1 -1
- package/dest/serialize/free_funcs.js +21 -27
- package/dest/serialize/index.d.ts +1 -1
- package/dest/serialize/serialize.d.ts +5 -6
- package/dest/serialize/serialize.d.ts.map +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 +1 -1
- package/dest/sleep/index.d.ts.map +1 -1
- 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 +3 -2
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +5 -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.d.ts +22 -0
- package/dest/trees/balanced_merkle_tree.d.ts.map +1 -0
- package/dest/trees/balanced_merkle_tree.js +64 -0
- package/dest/trees/hasher.d.ts +5 -7
- package/dest/trees/hasher.d.ts.map +1 -1
- package/dest/trees/index.d.ts +3 -1
- package/dest/trees/index.d.ts.map +1 -1
- package/dest/trees/index.js +2 -0
- 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_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 +5 -10
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/membership_witness.js +13 -0
- package/dest/trees/merkle_tree.d.ts +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/sibling_path.d.ts +5 -41
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree.d.ts +23 -10
- package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree.js +72 -50
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +49 -0
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
- package/dest/trees/unbalanced_merkle_tree_calculator.js +158 -0
- package/dest/trees/unbalanced_tree_store.d.ts +2 -1
- package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
- package/dest/trees/unbalanced_tree_store.js +6 -0
- package/dest/types/index.d.ts +26 -3
- package/dest/types/index.d.ts.map +1 -1
- 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 +39 -43
- package/src/array/array.ts +13 -16
- package/src/async-pool/index.ts +1 -0
- package/src/bigint/index.ts +20 -0
- package/src/branded-types/epoch.ts +88 -0
- package/src/branded-types/index.ts +4 -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 +8 -6
- package/src/buffer/index.ts +1 -0
- package/src/collection/array.ts +66 -4
- package/src/collection/object.ts +37 -0
- package/src/config/env_var.ts +152 -52
- package/src/config/index.ts +191 -8
- package/src/config/network_config.ts +16 -0
- package/src/config/network_name.ts +28 -0
- package/src/config/secret_value.ts +49 -0
- package/src/crypto/aes128/index.ts +19 -10
- package/src/crypto/bls/bn254_keystore.ts +287 -0
- package/src/crypto/bls/index.ts +77 -0
- package/src/crypto/bn254/bn254_utils.ts +64 -0
- package/src/crypto/bn254/index.ts +173 -0
- package/src/crypto/ecdsa/index.ts +41 -23
- package/src/crypto/grumpkin/index.ts +35 -45
- package/src/crypto/index.ts +2 -0
- package/src/crypto/keys/index.ts +5 -5
- package/src/crypto/pedersen/pedersen.wasm.ts +22 -18
- package/src/crypto/poseidon/index.ts +32 -24
- package/src/crypto/random/index.ts +2 -40
- package/src/crypto/schnorr/index.ts +20 -17
- package/src/crypto/secp256k1/index.ts +15 -11
- package/src/crypto/secp256k1-signer/utils.ts +120 -7
- package/src/crypto/sha256/index.ts +47 -0
- package/src/crypto/sync/index.ts +1 -1
- package/src/crypto/sync/pedersen/index.ts +16 -15
- package/src/crypto/sync/poseidon/index.ts +27 -22
- package/src/eth-address/index.ts +28 -2
- package/src/eth-signature/eth_signature.ts +44 -22
- package/src/fields/bls12_fields.ts +463 -0
- package/src/fields/bls12_point.ts +450 -0
- package/src/fields/fields.ts +53 -9
- package/src/fields/index.ts +2 -0
- package/src/fields/point.ts +20 -3
- package/src/fs/index.ts +1 -0
- package/src/fs/try_rm_dir.ts +15 -0
- package/src/index.ts +2 -2
- package/src/iterable/filter.ts +1 -1
- package/src/iterable/map.ts +1 -1
- package/src/jest/env.mjs +52 -0
- package/src/jest/setupAfterEnv.mjs +3 -0
- package/src/json-rpc/client/fetch.ts +14 -33
- package/src/json-rpc/client/safe_json_rpc_client.ts +226 -13
- package/src/json-rpc/client/undici.ts +8 -15
- package/src/json-rpc/convert.ts +3 -12
- package/src/json-rpc/errors.ts +6 -0
- package/src/json-rpc/fixtures/class_a.ts +4 -1
- package/src/json-rpc/fixtures/class_b.ts +4 -1
- package/src/json-rpc/index.ts +2 -1
- package/src/json-rpc/server/safe_json_rpc_server.ts +141 -48
- package/src/json-rpc/test/integration.ts +1 -1
- package/src/log/console.ts +4 -1
- package/src/log/gcloud-logger-config.ts +3 -7
- package/src/log/index.ts +4 -4
- package/src/log/libp2p_logger.ts +21 -2
- package/src/log/log_fn.ts +1 -1
- package/src/log/noir_debug_log_util.ts +21 -0
- package/src/log/pino-logger.ts +33 -2
- package/src/message/index.ts +5 -1
- package/src/mutex/mutex_database.ts +2 -3
- package/src/number/index.ts +14 -0
- package/src/profiler/index.ts +1 -0
- package/src/profiler/profiler.ts +125 -0
- package/src/promise/running-promise.ts +2 -2
- package/src/queue/batch_queue.ts +1 -1
- package/src/queue/bounded_serial_queue.ts +4 -1
- package/src/queue/serial_queue.ts +5 -5
- package/src/retry/index.ts +10 -5
- package/src/schemas/api.ts +4 -4
- package/src/schemas/parse.ts +1 -1
- package/src/schemas/schemas.ts +28 -10
- package/src/schemas/utils.ts +21 -8
- package/src/serialize/buffer_reader.ts +60 -3
- package/src/serialize/field_reader.ts +27 -3
- package/src/serialize/free_funcs.ts +25 -31
- package/src/serialize/serialize.ts +2 -0
- package/src/string/index.ts +36 -1
- package/src/testing/files/index.ts +7 -3
- package/src/testing/formatting.ts +3 -0
- package/src/testing/index.ts +1 -0
- package/src/timer/date.ts +9 -3
- package/src/timer/index.ts +1 -1
- package/src/timer/timeout.ts +54 -19
- package/src/transport/index.ts +0 -1
- package/src/transport/interface/connector.ts +0 -1
- package/src/transport/interface/listener.ts +2 -3
- package/src/transport/interface/socket.ts +2 -3
- package/src/transport/transport_client.ts +3 -4
- package/src/transport/transport_server.ts +4 -1
- package/src/trees/balanced_merkle_tree.ts +82 -0
- package/src/trees/hasher.ts +4 -4
- package/src/trees/index.ts +2 -0
- package/src/trees/indexed_merkle_tree.ts +5 -1
- package/src/trees/indexed_merkle_tree_calculator.ts +2 -2
- package/src/trees/membership_witness.ts +13 -0
- package/src/trees/merkle_tree.ts +4 -1
- package/src/trees/merkle_tree_calculator.ts +9 -4
- package/src/trees/unbalanced_merkle_tree.ts +98 -42
- package/src/trees/unbalanced_merkle_tree_calculator.ts +187 -0
- package/src/trees/unbalanced_tree_store.ts +5 -1
- package/src/types/index.ts +25 -4
- package/src/url/index.ts +0 -1
- package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
- package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
- package/dest/crypto/pedersen/pedersen.elliptic.js +0 -582
- package/dest/log/debug.d.ts +0 -56
- package/dest/log/debug.d.ts.map +0 -1
- package/dest/log/debug.js +0 -75
- package/dest/log/log_history.d.ts +0 -31
- package/dest/log/log_history.d.ts.map +0 -1
- package/dest/log/log_history.js +0 -38
- package/dest/transport/browser/index.d.ts +0 -5
- package/dest/transport/browser/index.d.ts.map +0 -1
- package/dest/transport/browser/index.js +0 -4
- package/dest/transport/browser/message_port_socket.d.ts +0 -37
- package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
- package/dest/transport/browser/message_port_socket.js +0 -42
- package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
- package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
- package/dest/transport/browser/shared_worker_connector.js +0 -19
- package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
- package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
- package/dest/transport/browser/shared_worker_listener.js +0 -33
- package/dest/transport/browser/worker_connector.d.ts +0 -26
- package/dest/transport/browser/worker_connector.d.ts.map +0 -1
- package/dest/transport/browser/worker_connector.js +0 -30
- package/dest/transport/browser/worker_listener.d.ts +0 -39
- package/dest/transport/browser/worker_listener.d.ts.map +0 -1
- package/dest/transport/browser/worker_listener.js +0 -35
- package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
- package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
- package/dest/wasm/empty_wasi_sdk.js +0 -148
- package/dest/wasm/index.d.ts +0 -2
- package/dest/wasm/index.d.ts.map +0 -1
- package/dest/wasm/index.js +0 -1
- package/dest/wasm/wasm_module.d.ts +0 -136
- package/dest/wasm/wasm_module.d.ts.map +0 -1
- package/dest/wasm/wasm_module.js +0 -196
- package/dest/worker/browser/index.d.ts +0 -3
- package/dest/worker/browser/index.d.ts.map +0 -1
- package/dest/worker/browser/index.js +0 -2
- package/dest/worker/browser/start_web_module.d.ts +0 -7
- package/dest/worker/browser/start_web_module.d.ts.map +0 -1
- package/dest/worker/browser/start_web_module.js +0 -27
- package/dest/worker/browser/web_data_store.d.ts +0 -24
- package/dest/worker/browser/web_data_store.d.ts.map +0 -1
- package/dest/worker/browser/web_data_store.js +0 -29
- package/dest/worker/browser/web_worker.d.ts +0 -10
- package/dest/worker/browser/web_worker.d.ts.map +0 -1
- package/dest/worker/browser/web_worker.js +0 -25
- package/dest/worker/data_store.d.ts +0 -21
- package/dest/worker/data_store.d.ts.map +0 -1
- package/dest/worker/data_store.js +0 -3
- package/dest/worker/index.d.ts +0 -3
- package/dest/worker/index.d.ts.map +0 -1
- package/dest/worker/index.js +0 -1
- package/dest/worker/node/index.d.ts +0 -3
- package/dest/worker/node/index.d.ts.map +0 -1
- package/dest/worker/node/index.js +0 -2
- package/dest/worker/node/node_data_store.d.ts +0 -13
- package/dest/worker/node/node_data_store.d.ts.map +0 -1
- package/dest/worker/node/node_data_store.js +0 -20
- package/dest/worker/node/node_worker.d.ts +0 -6
- package/dest/worker/node/node_worker.d.ts.map +0 -1
- package/dest/worker/node/node_worker.js +0 -22
- package/dest/worker/node/start_node_module.d.ts +0 -7
- package/dest/worker/node/start_node_module.d.ts.map +0 -1
- package/dest/worker/node/start_node_module.js +0 -31
- package/dest/worker/wasm_worker.d.ts +0 -9
- package/dest/worker/wasm_worker.d.ts.map +0 -1
- package/dest/worker/wasm_worker.js +0 -3
- package/dest/worker/worker_pool.d.ts +0 -40
- package/dest/worker/worker_pool.d.ts.map +0 -1
- package/dest/worker/worker_pool.js +0 -51
- package/src/crypto/pedersen/pedersen.elliptic.ts +0 -584
- package/src/log/debug.ts +0 -104
- package/src/log/log_history.ts +0 -44
- package/src/transport/browser/index.ts +0 -4
- package/src/transport/browser/message_port_socket.ts +0 -48
- package/src/transport/browser/shared_worker_connector.ts +0 -21
- package/src/transport/browser/shared_worker_listener.ts +0 -53
- package/src/transport/browser/worker_connector.ts +0 -30
- package/src/transport/browser/worker_listener.ts +0 -54
- package/src/wasm/README.md +0 -6
- package/src/wasm/empty_wasi_sdk.ts +0 -166
- package/src/wasm/fixtures/gcd.wasm +0 -0
- package/src/wasm/fixtures/gcd.wat +0 -27
- package/src/wasm/index.ts +0 -1
- package/src/wasm/wasm_module.ts +0 -260
- package/src/worker/browser/index.ts +0 -2
- package/src/worker/browser/start_web_module.ts +0 -24
- package/src/worker/browser/web_data_store.ts +0 -38
- package/src/worker/browser/web_worker.ts +0 -25
- package/src/worker/data_store.ts +0 -19
- package/src/worker/index.ts +0 -2
- package/src/worker/node/index.ts +0 -2
- package/src/worker/node/node_data_store.ts +0 -27
- package/src/worker/node/node_worker.ts +0 -23
- package/src/worker/node/start_node_module.ts +0 -30
- package/src/worker/wasm_worker.ts +0 -7
- package/src/worker/worker_pool.ts +0 -73
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { inspect } from 'util';
|
|
2
|
+
import { BufferReader } from '../serialize/buffer_reader.js';
|
|
3
|
+
import { Fr } from './fields.js';
|
|
4
|
+
/**
|
|
5
|
+
* Base BLS12field class.
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class BLS12Field {
|
|
8
|
+
private asBuffer?;
|
|
9
|
+
private asBigInt?;
|
|
10
|
+
protected constructor(value: number | bigint | Buffer);
|
|
11
|
+
protected abstract modulus(): bigint;
|
|
12
|
+
protected abstract size(): number;
|
|
13
|
+
/**
|
|
14
|
+
* We return a copy of the Buffer to ensure this remains immutable.
|
|
15
|
+
*/
|
|
16
|
+
toBuffer(): Buffer;
|
|
17
|
+
toString(): `0x${string}`;
|
|
18
|
+
toBigInt(): bigint;
|
|
19
|
+
toNoirBigNum(): {
|
|
20
|
+
limbs: string[];
|
|
21
|
+
};
|
|
22
|
+
equals(rhs: BLS12Field): boolean;
|
|
23
|
+
lt(rhs: BLS12Field): boolean;
|
|
24
|
+
isZero(): boolean;
|
|
25
|
+
isEmpty(): boolean;
|
|
26
|
+
isNegative(): boolean;
|
|
27
|
+
toFriendlyJSON(): string;
|
|
28
|
+
toField(): this;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Fr field class.
|
|
32
|
+
* @dev This class is used to represent elements of BLS12-381 scalar field.
|
|
33
|
+
*/
|
|
34
|
+
export declare class BLS12Fr extends BLS12Field {
|
|
35
|
+
static SIZE_IN_BYTES: number;
|
|
36
|
+
static MODULUS: bigint;
|
|
37
|
+
static ZERO: BLS12Fr;
|
|
38
|
+
static ONE: BLS12Fr;
|
|
39
|
+
static MAX_FIELD_VALUE: BLS12Fr;
|
|
40
|
+
constructor(value: number | bigint | Buffer);
|
|
41
|
+
[inspect.custom](): string;
|
|
42
|
+
protected modulus(): bigint;
|
|
43
|
+
protected size(): number;
|
|
44
|
+
static random(): BLS12Fr;
|
|
45
|
+
static zero(): BLS12Fr;
|
|
46
|
+
static isZero(value: BLS12Fr): boolean;
|
|
47
|
+
static fromBuffer(buffer: Buffer | BufferReader): BLS12Fr;
|
|
48
|
+
/**
|
|
49
|
+
* Creates a BLS12Fr instance from a string.
|
|
50
|
+
* @param buf - the string to create a BLS12Fr from.
|
|
51
|
+
* @returns the BLS12Fr instance
|
|
52
|
+
* @remarks if the string only consists of numbers, we assume we are parsing a bigint,
|
|
53
|
+
* otherwise we require the hex string to be prepended with "0x", to ensure there is no misunderstanding
|
|
54
|
+
* as to what is being parsed.
|
|
55
|
+
*/
|
|
56
|
+
static fromString(buf: string): BLS12Fr;
|
|
57
|
+
/**
|
|
58
|
+
* Creates a BLS12Fr instance from a hex string.
|
|
59
|
+
* @param buf - a hex encoded string.
|
|
60
|
+
* @returns the BLS12Fr instance
|
|
61
|
+
*/
|
|
62
|
+
static fromHexString(buf: string): BLS12Fr;
|
|
63
|
+
/**
|
|
64
|
+
* Constructs a field from noir BigNum type.
|
|
65
|
+
*/
|
|
66
|
+
static fromNoirBigNum(bignum: {
|
|
67
|
+
limbs: string[];
|
|
68
|
+
}): BLS12Fr;
|
|
69
|
+
/**
|
|
70
|
+
* Creates a BLS12Fr instance from a BN254 Fr instance.
|
|
71
|
+
* @dev The BN254 field size < BLS12_381, so we cannot overflow here.
|
|
72
|
+
* Useful for blob related calculations.
|
|
73
|
+
* @param field - a BN254 Fr instance.
|
|
74
|
+
* @returns the BLS12Fr instance
|
|
75
|
+
*/
|
|
76
|
+
static fromBN254Fr(field: Fr): BLS12Fr;
|
|
77
|
+
/**
|
|
78
|
+
* Creates a BN254 Fr instance from a BLS12Fr instance.
|
|
79
|
+
* @dev The BN254 field size < BLS12_381, so we must check the size here
|
|
80
|
+
* Useful for blob related calculations.
|
|
81
|
+
* @param field - a BLS12Fr instance.
|
|
82
|
+
* @returns the BN254 Fr instance
|
|
83
|
+
*/
|
|
84
|
+
toBN254Fr(): Fr;
|
|
85
|
+
/** Arithmetic - wrapper around noble curves */
|
|
86
|
+
add(rhs: BLS12Fr): BLS12Fr;
|
|
87
|
+
square(): BLS12Fr;
|
|
88
|
+
negate(): BLS12Fr;
|
|
89
|
+
sub(rhs: BLS12Fr): BLS12Fr;
|
|
90
|
+
mul(rhs: BLS12Fr): BLS12Fr;
|
|
91
|
+
div(rhs: BLS12Fr): BLS12Fr;
|
|
92
|
+
sqrt(): BLS12Fr | null;
|
|
93
|
+
pow(rhs: bigint): BLS12Fr;
|
|
94
|
+
toJSON(): `0x${string}`;
|
|
95
|
+
static get schema(): import("zod").ZodType<BLS12Fr, any, string>;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Fq field class.
|
|
99
|
+
* @dev This class is used to represent elements of BLS12-381 base field.
|
|
100
|
+
*/
|
|
101
|
+
export declare class BLS12Fq extends BLS12Field {
|
|
102
|
+
static SIZE_IN_BYTES: number;
|
|
103
|
+
static MODULUS: bigint;
|
|
104
|
+
static ZERO: BLS12Fq;
|
|
105
|
+
static ONE: BLS12Fq;
|
|
106
|
+
static MAX_FIELD_VALUE: BLS12Fq;
|
|
107
|
+
constructor(value: number | bigint | Buffer);
|
|
108
|
+
[inspect.custom](): string;
|
|
109
|
+
protected modulus(): bigint;
|
|
110
|
+
protected size(): number;
|
|
111
|
+
static random(): BLS12Fq;
|
|
112
|
+
static zero(): BLS12Fq;
|
|
113
|
+
static isZero(value: BLS12Fq): boolean;
|
|
114
|
+
static fromBuffer(buffer: Buffer | BufferReader): BLS12Fq;
|
|
115
|
+
/**
|
|
116
|
+
* Creates a BLS12Fq instance from a string.
|
|
117
|
+
* @param buf - the string to create a BLS12Fq from.
|
|
118
|
+
* @returns the BLS12Fq instance
|
|
119
|
+
* @remarks if the string only consists of numbers, we assume we are parsing a bigint,
|
|
120
|
+
* otherwise we require the hex string to be prepended with "0x", to ensure there is no misunderstanding
|
|
121
|
+
* as to what is being parsed.
|
|
122
|
+
*/
|
|
123
|
+
static fromString(buf: string): BLS12Fq;
|
|
124
|
+
/**
|
|
125
|
+
* Creates a BLS12Fq instance from a hex string.
|
|
126
|
+
* @param buf - a hex encoded string.
|
|
127
|
+
* @returns the BLS12Fq instance
|
|
128
|
+
*/
|
|
129
|
+
static fromHexString(buf: string): BLS12Fq;
|
|
130
|
+
/**
|
|
131
|
+
* Constructs a field from noir BigNum type.
|
|
132
|
+
*/
|
|
133
|
+
static fromNoirBigNum(bignum: {
|
|
134
|
+
limbs: string[];
|
|
135
|
+
}): BLS12Fq;
|
|
136
|
+
/** Arithmetic - wrapper around noble curves */
|
|
137
|
+
add(rhs: BLS12Fq): BLS12Fq;
|
|
138
|
+
square(): BLS12Fq;
|
|
139
|
+
negate(): BLS12Fq;
|
|
140
|
+
sub(rhs: BLS12Fq): BLS12Fq;
|
|
141
|
+
mul(rhs: BLS12Fq): BLS12Fq;
|
|
142
|
+
div(rhs: BLS12Fq): BLS12Fq;
|
|
143
|
+
sqrt(): BLS12Fq | null;
|
|
144
|
+
pow(rhs: bigint): BLS12Fq;
|
|
145
|
+
toJSON(): `0x${string}`;
|
|
146
|
+
static get schema(): import("zod").ZodType<BLS12Fq, any, string>;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxzMTJfZmllbGRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmllbGRzL2JsczEyX2ZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBY2pDOztHQUVHO0FBQ0gsOEJBQXNCLFVBQVU7SUFDOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFTO0lBQzFCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBUztJQUUxQixTQUFTLGFBQWEsS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTSxFQWlCcEQ7SUFFRCxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUM7SUFDckMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDO0lBRWxDOztPQUVHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FLakI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRCxRQUFRLElBQUksTUFBTSxDQVFqQjtJQUVELFlBQVksSUFBSTtRQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLENBVWxDO0lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUUvQjtJQUVELEVBQUUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FFM0I7SUFFRCxNQUFNLElBQUksT0FBTyxDQUVoQjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsVUFBVSxJQUFJLE9BQU8sQ0FJcEI7SUFFRCxjQUFjLElBQUksTUFBTSxDQUV2QjtJQUVELE9BQU8sU0FFTjtDQUNGO0FBa0REOzs7R0FHRztBQUNILHFCQUFhLE9BQVEsU0FBUSxVQUFV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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bls12_fields.d.ts","sourceRoot":"","sources":["../../src/fields/bls12_fields.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
/* eslint-disable camelcase */ import { bls12_381 } from '@noble/curves/bls12-381';
|
|
2
|
+
import { inspect } from 'util';
|
|
3
|
+
import { toBigIntBE, toBufferBE } from '../bigint-buffer/index.js';
|
|
4
|
+
import { randomBytes } from '../crypto/random/index.js';
|
|
5
|
+
import { hexSchemaFor } from '../schemas/utils.js';
|
|
6
|
+
import { BufferReader } from '../serialize/buffer_reader.js';
|
|
7
|
+
import { TypeRegistry } from '../serialize/type_registry.js';
|
|
8
|
+
import { Fr } from './fields.js';
|
|
9
|
+
/**
|
|
10
|
+
* Base BLS12field class.
|
|
11
|
+
*/ export class BLS12Field {
|
|
12
|
+
asBuffer;
|
|
13
|
+
asBigInt;
|
|
14
|
+
constructor(value){
|
|
15
|
+
if (Buffer.isBuffer(value)) {
|
|
16
|
+
if (value.length > this.size()) {
|
|
17
|
+
throw new Error(`Value length ${value.length} exceeds ${this.size()}`);
|
|
18
|
+
}
|
|
19
|
+
this.asBuffer = value.length === this.size() ? value : Buffer.concat([
|
|
20
|
+
Buffer.alloc(this.size() - value.length),
|
|
21
|
+
value
|
|
22
|
+
]);
|
|
23
|
+
this.toBigInt();
|
|
24
|
+
} else if (typeof value === 'bigint' || typeof value === 'number') {
|
|
25
|
+
this.asBigInt = BigInt(value);
|
|
26
|
+
if (this.asBigInt >= this.modulus()) {
|
|
27
|
+
throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
|
|
28
|
+
}
|
|
29
|
+
this.toBuffer();
|
|
30
|
+
} else {
|
|
31
|
+
throw new Error(`Type '${typeof value}' with value '${value}' passed to BLS12Field constructor.`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* We return a copy of the Buffer to ensure this remains immutable.
|
|
36
|
+
*/ toBuffer() {
|
|
37
|
+
if (!this.asBuffer) {
|
|
38
|
+
this.asBuffer = toBufferBE(this.asBigInt, this.size());
|
|
39
|
+
}
|
|
40
|
+
return Buffer.from(this.asBuffer);
|
|
41
|
+
}
|
|
42
|
+
toString() {
|
|
43
|
+
return `0x${this.toBuffer().toString('hex')}`;
|
|
44
|
+
}
|
|
45
|
+
toBigInt() {
|
|
46
|
+
if (this.asBigInt === undefined) {
|
|
47
|
+
this.asBigInt = toBigIntBE(this.asBuffer);
|
|
48
|
+
if (this.asBigInt >= this.modulus()) {
|
|
49
|
+
throw new Error(`Value 0x${this.asBigInt.toString(16)} is greater or equal to field modulus.`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return this.asBigInt;
|
|
53
|
+
}
|
|
54
|
+
toNoirBigNum() {
|
|
55
|
+
const buffer = this.toBuffer();
|
|
56
|
+
const limbs = [];
|
|
57
|
+
// Split into 120 bit (=15 byte) limbs
|
|
58
|
+
for(let i = 0; i < Math.ceil(this.size() / 15); i++){
|
|
59
|
+
limbs.push(buffer.subarray(-(i + 1) * 15, this.size() - i * 15));
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
limbs: limbs.map((l)=>`0x${l.toString('hex')}`)
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
equals(rhs) {
|
|
66
|
+
return this.toBuffer().equals(rhs.toBuffer());
|
|
67
|
+
}
|
|
68
|
+
lt(rhs) {
|
|
69
|
+
return this.toBigInt() < rhs.toBigInt();
|
|
70
|
+
}
|
|
71
|
+
isZero() {
|
|
72
|
+
return this.toBigInt() === 0n;
|
|
73
|
+
}
|
|
74
|
+
isEmpty() {
|
|
75
|
+
return this.isZero();
|
|
76
|
+
}
|
|
77
|
+
isNegative() {
|
|
78
|
+
// Returns whether the field element is above the halfway point of (p-1)/2
|
|
79
|
+
// Generally referred to as 'negative' but also referred to as 'greater' (e.g. in point compression)
|
|
80
|
+
return this.toBigInt() > (this.modulus() - 1n) / 2n;
|
|
81
|
+
}
|
|
82
|
+
toFriendlyJSON() {
|
|
83
|
+
return this.toString();
|
|
84
|
+
}
|
|
85
|
+
toField() {
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Constructs a field from a Buffer of BufferReader.
|
|
91
|
+
* It maybe not read the full SIZE_IN_BYTES bytes if the Buffer is shorter, but it will padded in BLS12Field constructor.
|
|
92
|
+
*/ function fromBuffer(buffer, f) {
|
|
93
|
+
const reader = BufferReader.asReader(buffer);
|
|
94
|
+
return new f(reader.readBytes(f.SIZE_IN_BYTES));
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Returns a random field element.
|
|
98
|
+
*/ function random(f) {
|
|
99
|
+
return new f(toBigIntBE(randomBytes(f.SIZE_IN_BYTES * 2)) % f.MODULUS);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Constructs a field from a 0x prefixed hex string.
|
|
103
|
+
*/ function fromHexString(str, f) {
|
|
104
|
+
return new f(bufferFromHexString(str));
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Constructs a field from noir BigNum type.
|
|
108
|
+
*/ function fromNoirBigNum(bignum, f) {
|
|
109
|
+
// We have 120 bit (=15 byte) limbs
|
|
110
|
+
let bigint = 0n;
|
|
111
|
+
for(let i = 0; i < bignum.limbs.length; i++){
|
|
112
|
+
bigint += BigInt(bignum.limbs[i]) << BigInt(120 * i);
|
|
113
|
+
}
|
|
114
|
+
return new f(bigint);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Constructs a buffer from a hex string.
|
|
118
|
+
* Differs from bigint-buffer's fromHex() by allowing odd number of characters.
|
|
119
|
+
*/ function bufferFromHexString(str) {
|
|
120
|
+
const withoutPrefix = str.replace(/^0x/i, '');
|
|
121
|
+
const checked = withoutPrefix.match(/^[0-9A-F]+$/i)?.[0];
|
|
122
|
+
if (checked === undefined) {
|
|
123
|
+
throw new Error(`Invalid hex-encoded string: "${str}"`);
|
|
124
|
+
}
|
|
125
|
+
return Buffer.from(checked.length % 2 === 1 ? '0' + checked : checked, 'hex');
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Fr field class.
|
|
129
|
+
* @dev This class is used to represent elements of BLS12-381 scalar field.
|
|
130
|
+
*/ export class BLS12Fr extends BLS12Field {
|
|
131
|
+
static SIZE_IN_BYTES = bls12_381.fields.Fr.BYTES;
|
|
132
|
+
static MODULUS = bls12_381.fields.Fr.ORDER;
|
|
133
|
+
static ZERO = new BLS12Fr(0n);
|
|
134
|
+
static ONE = new BLS12Fr(1n);
|
|
135
|
+
static MAX_FIELD_VALUE = new BLS12Fr(this.MODULUS - 1n);
|
|
136
|
+
constructor(value){
|
|
137
|
+
super(value);
|
|
138
|
+
}
|
|
139
|
+
[inspect.custom]() {
|
|
140
|
+
return `BLS12Fr<${this.toString()}>`;
|
|
141
|
+
}
|
|
142
|
+
modulus() {
|
|
143
|
+
return BLS12Fr.MODULUS;
|
|
144
|
+
}
|
|
145
|
+
size() {
|
|
146
|
+
return BLS12Fr.SIZE_IN_BYTES;
|
|
147
|
+
}
|
|
148
|
+
static random() {
|
|
149
|
+
return random(BLS12Fr);
|
|
150
|
+
}
|
|
151
|
+
static zero() {
|
|
152
|
+
return BLS12Fr.ZERO;
|
|
153
|
+
}
|
|
154
|
+
static isZero(value) {
|
|
155
|
+
return value.isZero();
|
|
156
|
+
}
|
|
157
|
+
static fromBuffer(buffer) {
|
|
158
|
+
return fromBuffer(buffer, BLS12Fr);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Creates a BLS12Fr instance from a string.
|
|
162
|
+
* @param buf - the string to create a BLS12Fr from.
|
|
163
|
+
* @returns the BLS12Fr instance
|
|
164
|
+
* @remarks if the string only consists of numbers, we assume we are parsing a bigint,
|
|
165
|
+
* otherwise we require the hex string to be prepended with "0x", to ensure there is no misunderstanding
|
|
166
|
+
* as to what is being parsed.
|
|
167
|
+
*/ static fromString(buf) {
|
|
168
|
+
if (buf.match(/^\d+$/) !== null) {
|
|
169
|
+
return new BLS12Fr(toBufferBE(BigInt(buf), BLS12Fr.SIZE_IN_BYTES));
|
|
170
|
+
}
|
|
171
|
+
if (buf.match(/^0x/i) !== null) {
|
|
172
|
+
return fromHexString(buf, BLS12Fr);
|
|
173
|
+
}
|
|
174
|
+
throw new Error(`Tried to create a BLS12Fr from an invalid string: ${buf}`);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Creates a BLS12Fr instance from a hex string.
|
|
178
|
+
* @param buf - a hex encoded string.
|
|
179
|
+
* @returns the BLS12Fr instance
|
|
180
|
+
*/ static fromHexString(buf) {
|
|
181
|
+
return fromHexString(buf, BLS12Fr);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Constructs a field from noir BigNum type.
|
|
185
|
+
*/ static fromNoirBigNum(bignum) {
|
|
186
|
+
return fromNoirBigNum(bignum, BLS12Fr);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Creates a BLS12Fr instance from a BN254 Fr instance.
|
|
190
|
+
* @dev The BN254 field size < BLS12_381, so we cannot overflow here.
|
|
191
|
+
* Useful for blob related calculations.
|
|
192
|
+
* @param field - a BN254 Fr instance.
|
|
193
|
+
* @returns the BLS12Fr instance
|
|
194
|
+
*/ static fromBN254Fr(field) {
|
|
195
|
+
return BLS12Fr.fromBuffer(field.toBuffer());
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Creates a BN254 Fr instance from a BLS12Fr instance.
|
|
199
|
+
* @dev The BN254 field size < BLS12_381, so we must check the size here
|
|
200
|
+
* Useful for blob related calculations.
|
|
201
|
+
* @param field - a BLS12Fr instance.
|
|
202
|
+
* @returns the BN254 Fr instance
|
|
203
|
+
*/ toBN254Fr() {
|
|
204
|
+
if (this.toBigInt() >= Fr.MODULUS) {
|
|
205
|
+
throw new Error(`BLS12-381 Fr field ${this} too large to be converted into a BN254 Fr field`);
|
|
206
|
+
}
|
|
207
|
+
return Fr.fromBuffer(this.toBuffer());
|
|
208
|
+
}
|
|
209
|
+
/** Arithmetic - wrapper around noble curves */ add(rhs) {
|
|
210
|
+
return new BLS12Fr(bls12_381.fields.Fr.add(this.toBigInt(), rhs.toBigInt()));
|
|
211
|
+
}
|
|
212
|
+
square() {
|
|
213
|
+
return new BLS12Fr(bls12_381.fields.Fr.sqr(this.toBigInt()));
|
|
214
|
+
}
|
|
215
|
+
negate() {
|
|
216
|
+
return new BLS12Fr(bls12_381.fields.Fr.neg(this.toBigInt()));
|
|
217
|
+
}
|
|
218
|
+
sub(rhs) {
|
|
219
|
+
return new BLS12Fr(bls12_381.fields.Fr.sub(this.toBigInt(), rhs.toBigInt()));
|
|
220
|
+
}
|
|
221
|
+
mul(rhs) {
|
|
222
|
+
return new BLS12Fr(bls12_381.fields.Fr.mul(this.toBigInt(), rhs.toBigInt()));
|
|
223
|
+
}
|
|
224
|
+
div(rhs) {
|
|
225
|
+
return new BLS12Fr(bls12_381.fields.Fr.div(this.toBigInt(), rhs.toBigInt()));
|
|
226
|
+
}
|
|
227
|
+
sqrt() {
|
|
228
|
+
// The noble library throws when the field does not have a sqrt.
|
|
229
|
+
// We would rather have it return null to avoid throwing when (e.g.) checking candidates.
|
|
230
|
+
let res;
|
|
231
|
+
try {
|
|
232
|
+
res = bls12_381.fields.Fr.sqrt(this.toBigInt());
|
|
233
|
+
} catch (error) {
|
|
234
|
+
if (error.message.includes('Cannot find square root')) {
|
|
235
|
+
return null;
|
|
236
|
+
} else {
|
|
237
|
+
throw error;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return new BLS12Fr(res);
|
|
241
|
+
}
|
|
242
|
+
pow(rhs) {
|
|
243
|
+
return new BLS12Fr(bls12_381.fields.Fr.pow(this.toBigInt(), rhs));
|
|
244
|
+
}
|
|
245
|
+
toJSON() {
|
|
246
|
+
return this.toString();
|
|
247
|
+
}
|
|
248
|
+
static get schema() {
|
|
249
|
+
return hexSchemaFor(BLS12Fr);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// For deserializing JSON.
|
|
253
|
+
TypeRegistry.register('BLS12Fr', BLS12Fr);
|
|
254
|
+
/**
|
|
255
|
+
* Fq field class.
|
|
256
|
+
* @dev This class is used to represent elements of BLS12-381 base field.
|
|
257
|
+
*/ export class BLS12Fq extends BLS12Field {
|
|
258
|
+
static SIZE_IN_BYTES = bls12_381.fields.Fp.BYTES;
|
|
259
|
+
static MODULUS = bls12_381.fields.Fp.ORDER;
|
|
260
|
+
static ZERO = new BLS12Fq(0n);
|
|
261
|
+
static ONE = new BLS12Fq(1n);
|
|
262
|
+
static MAX_FIELD_VALUE = new BLS12Fq(this.MODULUS - 1n);
|
|
263
|
+
constructor(value){
|
|
264
|
+
super(value);
|
|
265
|
+
}
|
|
266
|
+
[inspect.custom]() {
|
|
267
|
+
return `BLS12Fq<${this.toString()}>`;
|
|
268
|
+
}
|
|
269
|
+
modulus() {
|
|
270
|
+
return BLS12Fq.MODULUS;
|
|
271
|
+
}
|
|
272
|
+
size() {
|
|
273
|
+
return BLS12Fq.SIZE_IN_BYTES;
|
|
274
|
+
}
|
|
275
|
+
static random() {
|
|
276
|
+
return random(BLS12Fq);
|
|
277
|
+
}
|
|
278
|
+
static zero() {
|
|
279
|
+
return BLS12Fq.ZERO;
|
|
280
|
+
}
|
|
281
|
+
static isZero(value) {
|
|
282
|
+
return value.isZero();
|
|
283
|
+
}
|
|
284
|
+
static fromBuffer(buffer) {
|
|
285
|
+
return fromBuffer(buffer, BLS12Fq);
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Creates a BLS12Fq instance from a string.
|
|
289
|
+
* @param buf - the string to create a BLS12Fq from.
|
|
290
|
+
* @returns the BLS12Fq instance
|
|
291
|
+
* @remarks if the string only consists of numbers, we assume we are parsing a bigint,
|
|
292
|
+
* otherwise we require the hex string to be prepended with "0x", to ensure there is no misunderstanding
|
|
293
|
+
* as to what is being parsed.
|
|
294
|
+
*/ static fromString(buf) {
|
|
295
|
+
if (buf.match(/^\d+$/) !== null) {
|
|
296
|
+
return new BLS12Fq(toBufferBE(BigInt(buf), BLS12Fq.SIZE_IN_BYTES));
|
|
297
|
+
}
|
|
298
|
+
if (buf.match(/^0x/i) !== null) {
|
|
299
|
+
return fromHexString(buf, BLS12Fq);
|
|
300
|
+
}
|
|
301
|
+
throw new Error(`Tried to create a BLS12Fq from an invalid string: ${buf}`);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Creates a BLS12Fq instance from a hex string.
|
|
305
|
+
* @param buf - a hex encoded string.
|
|
306
|
+
* @returns the BLS12Fq instance
|
|
307
|
+
*/ static fromHexString(buf) {
|
|
308
|
+
return fromHexString(buf, BLS12Fq);
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Constructs a field from noir BigNum type.
|
|
312
|
+
*/ static fromNoirBigNum(bignum) {
|
|
313
|
+
return fromNoirBigNum(bignum, BLS12Fq);
|
|
314
|
+
}
|
|
315
|
+
/** Arithmetic - wrapper around noble curves */ add(rhs) {
|
|
316
|
+
return new BLS12Fq(bls12_381.fields.Fp.add(this.toBigInt(), rhs.toBigInt()));
|
|
317
|
+
}
|
|
318
|
+
square() {
|
|
319
|
+
return new BLS12Fq(bls12_381.fields.Fp.sqr(this.toBigInt()));
|
|
320
|
+
}
|
|
321
|
+
negate() {
|
|
322
|
+
return new BLS12Fq(bls12_381.fields.Fp.neg(this.toBigInt()));
|
|
323
|
+
}
|
|
324
|
+
sub(rhs) {
|
|
325
|
+
return new BLS12Fq(bls12_381.fields.Fp.sub(this.toBigInt(), rhs.toBigInt()));
|
|
326
|
+
}
|
|
327
|
+
mul(rhs) {
|
|
328
|
+
return new BLS12Fq(bls12_381.fields.Fp.mul(this.toBigInt(), rhs.toBigInt()));
|
|
329
|
+
}
|
|
330
|
+
div(rhs) {
|
|
331
|
+
return new BLS12Fq(bls12_381.fields.Fp.div(this.toBigInt(), rhs.toBigInt()));
|
|
332
|
+
}
|
|
333
|
+
sqrt() {
|
|
334
|
+
// The noble library throws when the field does not have a sqrt.
|
|
335
|
+
// We would rather have it return null to avoid throwing when (e.g.) checking candidates.
|
|
336
|
+
let res;
|
|
337
|
+
try {
|
|
338
|
+
res = bls12_381.fields.Fp.sqrt(this.toBigInt());
|
|
339
|
+
} catch (error) {
|
|
340
|
+
if (error.message.includes('Cannot find square root')) {
|
|
341
|
+
return null;
|
|
342
|
+
} else {
|
|
343
|
+
throw error;
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
return new BLS12Fq(res);
|
|
347
|
+
}
|
|
348
|
+
pow(rhs) {
|
|
349
|
+
return new BLS12Fq(bls12_381.fields.Fp.pow(this.toBigInt(), rhs));
|
|
350
|
+
}
|
|
351
|
+
toJSON() {
|
|
352
|
+
return this.toString();
|
|
353
|
+
}
|
|
354
|
+
static get schema() {
|
|
355
|
+
return hexSchemaFor(BLS12Fq);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// For deserializing JSON.
|
|
359
|
+
TypeRegistry.register('BLS12Fq', BLS12Fq);
|