@aztec/foundation 0.0.1-commit.b655e406 → 0.0.1-commit.c31f2472
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 +1 -9
- package/dest/array/array.d.ts.map +1 -1
- package/dest/array/array.js +0 -11
- package/dest/array/index.d.ts +2 -1
- package/dest/array/index.d.ts.map +1 -1
- package/dest/array/index.js +1 -0
- package/dest/array/sorted_array.d.ts +10 -0
- package/dest/array/sorted_array.d.ts.map +1 -0
- package/dest/array/sorted_array.js +106 -0
- package/dest/async-map/index.d.ts +1 -1
- package/dest/async-pool/index.d.ts +1 -1
- package/dest/bigint/index.d.ts +1 -1
- package/dest/bigint-buffer/index.d.ts +1 -1
- package/dest/branded-types/block_number.d.ts +56 -0
- package/dest/branded-types/block_number.d.ts.map +1 -0
- package/dest/branded-types/block_number.js +78 -0
- package/dest/branded-types/checkpoint_number.d.ts +54 -0
- package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
- package/dest/branded-types/checkpoint_number.js +77 -0
- package/dest/branded-types/epoch.d.ts +42 -0
- package/dest/branded-types/epoch.d.ts.map +1 -0
- package/dest/branded-types/epoch.js +59 -0
- package/dest/branded-types/index.d.ts +7 -0
- package/dest/branded-types/index.d.ts.map +1 -0
- package/dest/branded-types/index.js +5 -0
- package/dest/branded-types/index_within_checkpoint.d.ts +42 -0
- package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -0
- package/dest/branded-types/index_within_checkpoint.js +59 -0
- package/dest/branded-types/slot.d.ts +42 -0
- package/dest/branded-types/slot.d.ts.map +1 -0
- package/dest/branded-types/slot.js +59 -0
- package/dest/branded-types/types.d.ts +5 -0
- package/dest/branded-types/types.d.ts.map +1 -0
- package/dest/branded-types/types.js +1 -0
- package/dest/buffer/buffer16.d.ts +2 -2
- package/dest/buffer/buffer16.d.ts.map +1 -1
- package/dest/buffer/buffer16.js +4 -2
- package/dest/buffer/buffer32.d.ts +2 -2
- package/dest/buffer/buffer32.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +4 -2
- package/dest/buffer/index.d.ts +1 -1
- package/dest/collection/array.d.ts +12 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +51 -0
- package/dest/collection/index.d.ts +1 -1
- package/dest/collection/object.d.ts +1 -1
- 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 +15 -4
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +32 -9
- package/dest/config/network_config.d.ts +13 -1
- package/dest/config/network_config.d.ts.map +1 -1
- package/dest/config/network_config.js +3 -1
- package/dest/config/network_name.d.ts +1 -1
- package/dest/config/parse-env.d.ts +3 -0
- package/dest/config/parse-env.d.ts.map +1 -0
- package/dest/config/parse-env.js +7 -0
- package/dest/config/secret_value.d.ts +1 -1
- package/dest/config/secret_value.d.ts.map +1 -1
- package/dest/config/secret_value.js +3 -1
- package/dest/crypto/aes128/index.d.ts +1 -1
- package/dest/crypto/aes128/index.d.ts.map +1 -1
- package/dest/crypto/aes128/index.js +2 -6
- package/dest/crypto/bls/bn254_keystore.d.ts +15 -15
- package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
- package/dest/crypto/bls/bn254_keystore.js +1 -1
- package/dest/crypto/bls/index.d.ts +1 -1
- package/dest/crypto/bls/index.js +1 -1
- package/dest/crypto/bn254/index.d.ts +35 -51
- package/dest/crypto/bn254/index.d.ts.map +1 -1
- package/dest/crypto/bn254/index.js +51 -137
- package/dest/crypto/ecdsa/index.d.ts +1 -1
- package/dest/crypto/ecdsa/index.d.ts.map +1 -1
- package/dest/crypto/ecdsa/index.js +4 -12
- package/dest/crypto/ecdsa/signature.d.ts +2 -2
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
- package/dest/crypto/ecdsa/signature.js +2 -2
- package/dest/crypto/grumpkin/index.d.ts +4 -2
- package/dest/crypto/grumpkin/index.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.js +7 -16
- package/dest/crypto/keccak/index.d.ts +1 -1
- package/dest/crypto/keys/index.d.ts +2 -2
- package/dest/crypto/keys/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.js +2 -4
- package/dest/crypto/pedersen/index.d.ts +1 -1
- package/dest/crypto/pedersen/pedersen.noble.d.ts +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
- package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.js +4 -10
- package/dest/crypto/poseidon/index.d.ts +2 -3
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +5 -24
- package/dest/crypto/random/index.d.ts +1 -1
- package/dest/crypto/random/index.d.ts.map +1 -1
- package/dest/crypto/random/randomness_singleton.d.ts +4 -3
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
- package/dest/crypto/random/randomness_singleton.js +5 -5
- package/dest/crypto/schnorr/index.d.ts +3 -2
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +4 -10
- package/dest/crypto/schnorr/signature.d.ts +2 -2
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- package/dest/crypto/schnorr/signature.js +2 -2
- package/dest/crypto/secp256k1/index.d.ts +1 -1
- package/dest/crypto/secp256k1/index.d.ts.map +1 -1
- package/dest/crypto/secp256k1/index.js +3 -9
- 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 +1 -1
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
- package/dest/crypto/serialize.d.ts +1 -1
- package/dest/crypto/sha256/index.d.ts +2 -2
- package/dest/crypto/sha256/index.d.ts.map +1 -1
- package/dest/crypto/sha256/index.js +1 -1
- package/dest/crypto/sha512/index.d.ts +3 -3
- package/dest/crypto/sha512/index.d.ts.map +1 -1
- package/dest/crypto/sha512/index.js +1 -1
- package/dest/crypto/signature/index.d.ts +2 -2
- 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 -3
- package/dest/crypto/sync/pedersen/index.d.ts +2 -2
- package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
- package/dest/crypto/sync/pedersen/index.js +1 -1
- package/dest/crypto/sync/poseidon/index.d.ts +2 -3
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/sync/poseidon/index.js +1 -9
- package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +3 -3
- package/dest/curves/bls12/field.d.ts.map +1 -0
- package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +12 -9
- package/dest/curves/bls12/index.d.ts +3 -0
- package/dest/curves/bls12/index.d.ts.map +1 -0
- package/dest/curves/bls12/index.js +2 -0
- package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +4 -4
- package/dest/curves/bls12/point.d.ts.map +1 -0
- package/dest/{fields/bls12_point.js → curves/bls12/point.js} +10 -8
- package/dest/{fields/fields.d.ts → curves/bn254/field.d.ts} +16 -15
- package/dest/curves/bn254/field.d.ts.map +1 -0
- package/dest/{fields/fields.js → curves/bn254/field.js} +49 -49
- package/dest/curves/bn254/index.d.ts +3 -0
- package/dest/curves/bn254/index.d.ts.map +1 -0
- package/dest/curves/bn254/index.js +2 -0
- package/dest/curves/bn254/point.d.ts +54 -0
- package/dest/curves/bn254/point.d.ts.map +1 -0
- package/dest/curves/bn254/point.js +143 -0
- package/dest/curves/grumpkin/index.d.ts +10 -0
- package/dest/curves/grumpkin/index.d.ts.map +1 -0
- package/dest/curves/grumpkin/index.js +3 -0
- package/dest/{fields → curves/grumpkin}/point.d.ts +12 -3
- package/dest/curves/grumpkin/point.d.ts.map +1 -0
- package/dest/{fields → curves/grumpkin}/point.js +24 -7
- package/dest/decorators/index.d.ts +1 -1
- package/dest/decorators/memoize.d.ts +1 -1
- package/dest/decorators/memoize.d.ts.map +1 -1
- package/dest/error/index.d.ts +1 -1
- package/dest/eth-address/index.d.ts +12 -2
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +27 -3
- package/dest/eth-signature/eth_signature.d.ts +1 -1
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/eth-signature/index.d.ts +1 -1
- package/dest/fs/index.d.ts +1 -1
- package/dest/fs/run_in_dir.d.ts +1 -1
- package/dest/fs/try_rm_dir.d.ts +1 -1
- package/dest/iterable/all.d.ts +1 -1
- package/dest/iterable/filter.d.ts +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/peek.d.ts +1 -1
- package/dest/iterable/sort.d.ts +1 -1
- package/dest/iterable/take.d.ts +1 -1
- package/dest/iterable/toArray.d.ts +1 -1
- package/dest/iterator/filter.d.ts +3 -0
- package/dest/iterator/filter.d.ts.map +1 -0
- package/dest/iterator/filter.js +7 -0
- package/dest/iterator/index.d.ts +2 -0
- package/dest/iterator/index.d.ts.map +1 -0
- package/dest/iterator/index.js +1 -0
- package/dest/jest/setup.js +4 -1
- package/dest/json-rpc/client/fetch.d.ts +1 -1
- package/dest/json-rpc/client/index.d.ts +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
- 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 +21 -4
- package/dest/json-rpc/convert.d.ts +1 -1
- package/dest/json-rpc/errors.d.ts +1 -1
- package/dest/json-rpc/errors.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/class_a.d.ts +1 -1
- package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/class_b.d.ts +1 -1
- 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 +1 -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 +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.js +1 -1
- package/dest/json-rpc/test/index.d.ts +1 -1
- package/dest/json-rpc/test/integration.d.ts +1 -1
- package/dest/log/console.d.ts +1 -1
- package/dest/log/gcloud-logger-config.d.ts +1 -1
- package/dest/log/gcloud-logger-config.d.ts.map +1 -1
- package/dest/log/index.d.ts +1 -1
- package/dest/log/libp2p_logger.d.ts +5 -2
- package/dest/log/libp2p_logger.d.ts.map +1 -1
- package/dest/log/libp2p_logger.js +14 -4
- package/dest/log/log-filters.d.ts +1 -1
- package/dest/log/log-levels.d.ts +1 -1
- package/dest/log/log_fn.d.ts +1 -1
- package/dest/log/noir_debug_log_util.d.ts +1 -1
- package/dest/log/pino-logger-server.d.ts +9 -0
- package/dest/log/pino-logger-server.d.ts.map +1 -0
- package/dest/log/pino-logger-server.js +18 -0
- package/dest/log/pino-logger.d.ts +38 -9
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +116 -27
- 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/noir/index.d.ts +1 -1
- package/dest/noir/noir_package_config.d.ts +9 -9
- package/dest/number/index.d.ts +1 -1
- package/dest/profiler/index.d.ts +1 -1
- package/dest/profiler/profiler.d.ts +1 -1
- package/dest/promise/index.d.ts +1 -1
- package/dest/promise/running-promise.d.ts +1 -1
- package/dest/promise/running-promise.d.ts.map +1 -1
- 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 +1 -1
- package/dest/queue/batch_queue.d.ts.map +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 +5 -1
- package/dest/queue/semaphore.d.ts.map +1 -1
- package/dest/queue/serial_queue.d.ts +1 -1
- package/dest/queue/serial_queue.d.ts.map +1 -1
- package/dest/retry/index.d.ts +11 -1
- package/dest/retry/index.d.ts.map +1 -1
- package/dest/retry/index.js +11 -0
- package/dest/running-promise/index.d.ts +1 -1
- package/dest/schemas/api.d.ts +1 -1
- package/dest/schemas/index.d.ts +1 -1
- package/dest/schemas/parse.d.ts +1 -1
- package/dest/schemas/schemas.d.ts +15 -17
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +14 -10
- package/dest/schemas/types.d.ts +31 -1
- package/dest/schemas/types.d.ts.map +1 -1
- package/dest/schemas/types.js +25 -1
- package/dest/schemas/utils.d.ts +4 -4
- package/dest/schemas/utils.d.ts.map +1 -1
- package/dest/schemas/utils.js +15 -5
- package/dest/serialize/buffer_reader.d.ts +7 -4
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +13 -4
- package/dest/serialize/field_reader.d.ts +2 -2
- package/dest/serialize/field_reader.d.ts.map +1 -1
- package/dest/serialize/field_reader.js +1 -1
- package/dest/serialize/free_funcs.d.ts +2 -2
- package/dest/serialize/free_funcs.d.ts.map +1 -1
- package/dest/serialize/free_funcs.js +1 -1
- package/dest/serialize/index.d.ts +1 -1
- package/dest/serialize/serialize.d.ts +2 -2
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +1 -1
- package/dest/serialize/type_registry.d.ts +1 -1
- package/dest/serialize/type_registry.d.ts.map +1 -1
- package/dest/serialize/types.d.ts +1 -1
- package/dest/sleep/index.d.ts +3 -1
- package/dest/sleep/index.d.ts.map +1 -1
- package/dest/sleep/index.js +4 -0
- package/dest/string/index.d.ts +1 -1
- package/dest/testing/files/index.d.ts +2 -1
- package/dest/testing/files/index.d.ts.map +1 -1
- package/dest/testing/files/index.js +1 -1
- package/dest/testing/formatting.d.ts +1 -1
- package/dest/testing/index.d.ts +1 -1
- 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 +2 -1
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +3 -0
- package/dest/timer/elapsed.d.ts +1 -1
- package/dest/timer/index.d.ts +1 -1
- package/dest/timer/timeout.d.ts +1 -1
- package/dest/timer/timeout.d.ts.map +1 -1
- 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 -1
- package/dest/transport/interface/connector.d.ts +1 -1
- package/dest/transport/interface/listener.d.ts +1 -1
- package/dest/transport/interface/socket.d.ts +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 -1
- package/dest/transport/node/node_connector.d.ts.map +1 -1
- package/dest/transport/node/node_connector_socket.d.ts +1 -1
- package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
- package/dest/transport/node/node_listener.d.ts +1 -1
- package/dest/transport/node/node_listener.d.ts.map +1 -1
- package/dest/transport/node/node_listener_socket.d.ts +1 -1
- package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
- package/dest/transport/transport_client.d.ts +1 -1
- package/dest/transport/transport_client.d.ts.map +1 -1
- package/dest/transport/transport_server.d.ts +1 -10
- package/dest/transport/transport_server.d.ts.map +1 -1
- package/dest/trees/balanced_merkle_tree_root.d.ts +17 -0
- package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
- package/dest/trees/balanced_merkle_tree_root.js +51 -0
- package/dest/trees/hasher.d.ts +3 -1
- package/dest/trees/hasher.d.ts.map +1 -1
- package/dest/trees/hasher.js +10 -5
- package/dest/trees/index.d.ts +4 -3
- package/dest/trees/index.d.ts.map +1 -1
- package/dest/trees/index.js +3 -2
- package/dest/trees/indexed_merkle_tree.d.ts +1 -1
- package/dest/trees/indexed_merkle_tree.d.ts.map +1 -1
- package/dest/trees/indexed_merkle_tree.js +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.d.ts +1 -1
- package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/indexed_tree_leaf.d.ts +1 -1
- package/dest/trees/membership_witness.d.ts +7 -18
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/membership_witness.js +10 -1
- package/dest/trees/merkle_tree.d.ts +1 -1
- package/dest/trees/merkle_tree.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.d.ts +2 -12
- package/dest/trees/merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/merkle_tree_calculator.js +2 -32
- package/dest/trees/sibling_path.d.ts +5 -38
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +3 -3
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +6 -6
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree_calculator.js +34 -42
- package/dest/trees/unbalanced_merkle_tree_root.d.ts +28 -0
- package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
- package/dest/trees/unbalanced_merkle_tree_root.js +84 -0
- package/dest/trees/unbalanced_tree_store.d.ts +5 -1
- package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
- package/dest/trees/unbalanced_tree_store.js +49 -1
- package/dest/types/index.d.ts +4 -2
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +3 -0
- package/dest/url/index.d.ts +1 -1
- package/dest/validation/index.d.ts +1 -1
- package/package.json +30 -9
- package/src/array/array.ts +0 -16
- package/src/array/index.ts +1 -0
- package/src/array/sorted_array.ts +133 -0
- package/src/branded-types/block_number.ts +117 -0
- package/src/branded-types/checkpoint_number.ts +115 -0
- package/src/branded-types/epoch.ts +88 -0
- package/src/branded-types/index.ts +7 -0
- package/src/branded-types/index_within_checkpoint.ts +88 -0
- package/src/branded-types/slot.ts +88 -0
- package/src/branded-types/types.ts +2 -0
- package/src/buffer/buffer16.ts +2 -2
- package/src/buffer/buffer32.ts +2 -2
- package/src/collection/array.ts +52 -0
- package/src/config/env_var.ts +50 -13
- package/src/config/index.ts +39 -6
- package/src/config/network_config.ts +2 -0
- package/src/config/parse-env.ts +4 -0
- package/src/crypto/aes128/index.ts +2 -2
- package/src/crypto/bls/bn254_keystore.ts +1 -1
- package/src/crypto/bls/index.ts +1 -1
- package/src/crypto/bn254/index.ts +50 -156
- package/src/crypto/ecdsa/index.ts +4 -4
- package/src/crypto/ecdsa/signature.ts +2 -2
- package/src/crypto/grumpkin/index.ts +8 -6
- package/src/crypto/keys/index.ts +2 -2
- package/src/crypto/pedersen/pedersen.wasm.ts +4 -4
- package/src/crypto/poseidon/index.ts +5 -15
- package/src/crypto/random/randomness_singleton.ts +6 -4
- package/src/crypto/schnorr/index.ts +5 -4
- package/src/crypto/schnorr/signature.ts +2 -2
- package/src/crypto/secp256k1/index.ts +3 -3
- package/src/crypto/sha256/index.ts +1 -1
- package/src/crypto/sha512/index.ts +1 -1
- package/src/crypto/signature/index.ts +1 -1
- package/src/crypto/sync/index.ts +1 -1
- package/src/crypto/sync/pedersen/index.ts +1 -1
- package/src/crypto/sync/poseidon/index.ts +1 -10
- package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +6 -6
- package/src/curves/bls12/index.ts +2 -0
- package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
- package/src/{fields/fields.ts → curves/bn254/field.ts} +49 -56
- package/src/curves/bn254/index.ts +2 -0
- package/src/curves/bn254/point.ts +170 -0
- package/src/curves/grumpkin/index.ts +11 -0
- package/src/{fields → curves/grumpkin}/point.ts +26 -7
- package/src/eth-address/index.ts +27 -2
- package/src/iterator/filter.ts +11 -0
- package/src/iterator/index.ts +1 -0
- package/src/jest/setup.mjs +4 -1
- package/src/json-rpc/client/undici.ts +21 -3
- package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
- package/src/log/libp2p_logger.ts +12 -5
- package/src/log/pino-logger-server.ts +25 -0
- package/src/log/pino-logger.ts +138 -37
- package/src/queue/semaphore.ts +5 -0
- package/src/retry/index.ts +18 -0
- package/src/schemas/schemas.ts +24 -13
- package/src/schemas/types.ts +33 -0
- package/src/schemas/utils.ts +21 -8
- package/src/serialize/buffer_reader.ts +21 -9
- package/src/serialize/field_reader.ts +1 -1
- package/src/serialize/free_funcs.ts +1 -1
- package/src/serialize/serialize.ts +1 -1
- package/src/sleep/index.ts +6 -0
- package/src/testing/files/index.ts +1 -1
- package/src/timer/date.ts +4 -0
- package/src/trees/balanced_merkle_tree_root.ts +68 -0
- package/src/trees/hasher.ts +9 -0
- package/src/trees/index.ts +3 -2
- package/src/trees/indexed_merkle_tree.ts +1 -1
- package/src/trees/membership_witness.ts +9 -1
- package/src/trees/merkle_tree_calculator.ts +2 -35
- package/src/trees/sibling_path.ts +3 -3
- package/src/trees/unbalanced_merkle_tree_calculator.ts +32 -50
- package/src/trees/unbalanced_merkle_tree_root.ts +115 -0
- package/src/trees/unbalanced_tree_store.ts +57 -2
- package/src/types/index.ts +6 -1
- package/dest/crypto/bn254/bn254_utils.d.ts +0 -39
- package/dest/crypto/bn254/bn254_utils.d.ts.map +0 -1
- package/dest/crypto/bn254/bn254_utils.js +0 -56
- package/dest/crypto/index.d.ts +0 -17
- package/dest/crypto/index.d.ts.map +0 -1
- package/dest/crypto/index.js +0 -16
- package/dest/fields/bls12_fields.d.ts.map +0 -1
- package/dest/fields/bls12_point.d.ts.map +0 -1
- package/dest/fields/coordinate.d.ts +0 -66
- package/dest/fields/coordinate.d.ts.map +0 -1
- package/dest/fields/coordinate.js +0 -96
- package/dest/fields/fields.d.ts.map +0 -1
- package/dest/fields/index.d.ts +0 -6
- package/dest/fields/index.d.ts.map +0 -1
- package/dest/fields/index.js +0 -5
- package/dest/fields/point.d.ts.map +0 -1
- package/dest/index.d.ts +0 -30
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -30
- package/dest/json-rpc/server/telemetry.d.ts +0 -2
- package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
- package/dest/json-rpc/server/telemetry.js +0 -0
- package/dest/trees/unbalanced_merkle_tree.d.ts +0 -28
- package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
- package/dest/trees/unbalanced_merkle_tree.js +0 -99
- package/src/crypto/bn254/bn254_utils.ts +0 -64
- package/src/crypto/index.ts +0 -16
- package/src/fields/coordinate.ts +0 -104
- package/src/fields/index.ts +0 -5
- package/src/index.ts +0 -30
- package/src/json-rpc/server/telemetry.ts +0 -0
- package/src/trees/unbalanced_merkle_tree.ts +0 -111
|
@@ -1,170 +1,64 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
BN254_G2_GENERATOR,
|
|
4
|
-
BarretenbergSync,
|
|
5
|
-
type Bn254G1Point as BbApiBn254G1Point,
|
|
6
|
-
type Bn254G2Point as BbApiBn254G2Point,
|
|
7
|
-
} from '@aztec/bb.js';
|
|
8
|
-
|
|
9
|
-
import { Fq, Fr } from '../../fields/fields.js';
|
|
1
|
+
import { Fr } from '../../curves/bn254/field.js';
|
|
2
|
+
import { Bn254G1Point, Bn254G2Point } from '../../curves/bn254/point.js';
|
|
10
3
|
|
|
11
4
|
/**
|
|
12
|
-
* BN254
|
|
13
|
-
*
|
|
5
|
+
* BN254 utility functions for point operations.
|
|
6
|
+
* Provides compression, decompression, and public key generation for the BN254 curve.
|
|
7
|
+
* Uses the bb.js Barretenberg backend for point operations.
|
|
14
8
|
*/
|
|
15
|
-
export class Bn254G1Point {
|
|
16
|
-
constructor(
|
|
17
|
-
public readonly x: Fq,
|
|
18
|
-
public readonly y: Fq,
|
|
19
|
-
) {}
|
|
20
|
-
|
|
21
|
-
private toBbApiPoint(): BbApiBn254G1Point {
|
|
22
|
-
return {
|
|
23
|
-
x: this.x.toBuffer(),
|
|
24
|
-
y: this.y.toBuffer(),
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
private static fromBbApiPoint(point: BbApiBn254G1Point): Bn254G1Point {
|
|
29
|
-
return new Bn254G1Point(Fq.fromBuffer(Buffer.from(point.x)), Fq.fromBuffer(Buffer.from(point.y)));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
async isOnCurve(): Promise<boolean> {
|
|
33
|
-
await BarretenbergSync.initSingleton();
|
|
34
|
-
const api = BarretenbergSync.getSingleton();
|
|
35
|
-
|
|
36
|
-
const apiPoint = this.toBbApiPoint();
|
|
37
|
-
const response = api.bn254G1IsOnCurve({ point: apiPoint });
|
|
38
|
-
return response.isOnCurve;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Get the generator point for BN254 G1, or perform scalar multiplication.
|
|
43
|
-
* When called without arguments, returns the base generator point.
|
|
44
|
-
* When called with a scalar, returns scalar * generator (useful for public key derivation).
|
|
45
|
-
*/
|
|
46
|
-
static async generator(scalar?: Fr): Promise<Bn254G1Point> {
|
|
47
|
-
if (!scalar) {
|
|
48
|
-
return new Bn254G1Point(
|
|
49
|
-
Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.x)),
|
|
50
|
-
Fq.fromBuffer(Buffer.from(BN254_G1_GENERATOR.y)),
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
await BarretenbergSync.initSingleton();
|
|
55
|
-
const api = BarretenbergSync.getSingleton();
|
|
56
|
-
|
|
57
|
-
const response = api.bn254G1Mul({
|
|
58
|
-
point: BN254_G1_GENERATOR,
|
|
59
|
-
scalar: scalar.toBuffer(),
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
return Bn254G1Point.fromBbApiPoint(response.point);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Decompress a BN254 G1 point from compressed form (32 bytes).
|
|
67
|
-
* The compressed format encodes the x-coordinate and the sign bit of the y-coordinate
|
|
68
|
-
* in the most significant bit.
|
|
69
|
-
*/
|
|
70
|
-
static async fromCompressed(compressed: Buffer): Promise<Bn254G1Point> {
|
|
71
|
-
await BarretenbergSync.initSingleton();
|
|
72
|
-
const api = BarretenbergSync.getSingleton();
|
|
73
|
-
|
|
74
|
-
const response = api.bn254G1FromCompressed({
|
|
75
|
-
compressed: new Uint8Array(compressed),
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
return Bn254G1Point.fromBbApiPoint(response.point);
|
|
79
|
-
}
|
|
80
9
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
// If y is odd, set the most significant bit (bit 255) of the output
|
|
91
|
-
if (yLsb === 1n) {
|
|
92
|
-
xBytes[0] |= 0x80;
|
|
93
|
-
}
|
|
94
|
-
return xBytes;
|
|
95
|
-
}
|
|
10
|
+
/**
|
|
11
|
+
* Generate a compressed BN254 G1 public key from a private key.
|
|
12
|
+
*
|
|
13
|
+
* @param privateKeyHex - Private key as 0x-prefixed hex string
|
|
14
|
+
* @returns Compressed G1 point (32 bytes with sign bit in MSB)
|
|
15
|
+
*/
|
|
16
|
+
export async function computeBn254G1PublicKeyCompressed(privateKeyHex: string): Promise<string> {
|
|
17
|
+
const sk = BigInt(privateKeyHex);
|
|
18
|
+
const skReduced = sk % Fr.MODULUS;
|
|
96
19
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
20
|
+
// Generate G1 point on BN254 curve using bb.js
|
|
21
|
+
const scalar = Fr.fromString(skReduced.toString());
|
|
22
|
+
const pk1 = await Bn254G1Point.generator(scalar);
|
|
100
23
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
24
|
+
// Compress the point using the primitive method
|
|
25
|
+
return '0x' + pk1.compress().toString('hex');
|
|
104
26
|
}
|
|
105
27
|
|
|
106
28
|
/**
|
|
107
|
-
* BN254
|
|
108
|
-
*
|
|
109
|
-
*
|
|
29
|
+
* Generate uncompressed BN254 G1 public key from a private key.
|
|
30
|
+
*
|
|
31
|
+
* @param privateKeyHex - Private key as 0x-prefixed hex string
|
|
32
|
+
* @returns G1 point in affine coordinates
|
|
110
33
|
*/
|
|
111
|
-
export
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
public readonly y: [Fq, Fq],
|
|
115
|
-
) {}
|
|
116
|
-
|
|
117
|
-
private toBbApiPoint(): BbApiBn254G2Point {
|
|
118
|
-
return {
|
|
119
|
-
x: [this.x[0].toBuffer(), this.x[1].toBuffer()],
|
|
120
|
-
y: [this.y[0].toBuffer(), this.y[1].toBuffer()],
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
private static fromBbApiPoint(point: BbApiBn254G2Point): Bn254G2Point {
|
|
125
|
-
return new Bn254G2Point(
|
|
126
|
-
[Fq.fromBuffer(Buffer.from(point.x[0])), Fq.fromBuffer(Buffer.from(point.x[1]))],
|
|
127
|
-
[Fq.fromBuffer(Buffer.from(point.y[0])), Fq.fromBuffer(Buffer.from(point.y[1]))],
|
|
128
|
-
);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Get the generator point for BN254 G2, or perform scalar multiplication.
|
|
133
|
-
* When called without arguments, returns the base generator point.
|
|
134
|
-
* When called with a scalar, returns scalar * generator.
|
|
135
|
-
*/
|
|
136
|
-
static async generator(scalar?: Fr): Promise<Bn254G2Point> {
|
|
137
|
-
if (!scalar) {
|
|
138
|
-
return new Bn254G2Point(
|
|
139
|
-
[Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[0])), Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.x[1]))],
|
|
140
|
-
[Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[0])), Fq.fromBuffer(Buffer.from(BN254_G2_GENERATOR.y[1]))],
|
|
141
|
-
);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
await BarretenbergSync.initSingleton();
|
|
145
|
-
const api = BarretenbergSync.getSingleton();
|
|
34
|
+
export async function computeBn254G1PublicKey(privateKeyHex: string): Promise<{ x: bigint; y: bigint }> {
|
|
35
|
+
const sk = BigInt(privateKeyHex);
|
|
36
|
+
const skReduced = sk % Fr.MODULUS;
|
|
146
37
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
scalar: scalar.toBuffer(),
|
|
150
|
-
});
|
|
38
|
+
const scalar = Fr.fromString(skReduced.toString());
|
|
39
|
+
const pk1 = await Bn254G1Point.generator(scalar);
|
|
151
40
|
|
|
152
|
-
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
equals(other: Bn254G2Point): boolean {
|
|
156
|
-
return (
|
|
157
|
-
this.x[0].equals(other.x[0]) &&
|
|
158
|
-
this.x[1].equals(other.x[1]) &&
|
|
159
|
-
this.y[0].equals(other.y[0]) &&
|
|
160
|
-
this.y[1].equals(other.y[1])
|
|
161
|
-
);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
toString(): string {
|
|
165
|
-
return `Bn254G2Point(x: (${this.x[0].toString()}, ${this.x[1].toString()}), y: (${this.y[0].toString()}, ${this.y[1].toString()}))`;
|
|
166
|
-
}
|
|
41
|
+
return { x: pk1.x.toBigInt(), y: pk1.y.toBigInt() };
|
|
167
42
|
}
|
|
168
43
|
|
|
169
|
-
|
|
170
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Generate BN254 G2 public key from a private key.
|
|
46
|
+
*
|
|
47
|
+
* @param privateKeyHex - Private key as 0x-prefixed hex string
|
|
48
|
+
* @returns G2 point in affine coordinates
|
|
49
|
+
*/
|
|
50
|
+
export async function computeBn254G2PublicKey(privateKeyHex: string): Promise<{
|
|
51
|
+
x: { c0: bigint; c1: bigint };
|
|
52
|
+
y: { c0: bigint; c1: bigint };
|
|
53
|
+
}> {
|
|
54
|
+
const sk = BigInt(privateKeyHex);
|
|
55
|
+
const skReduced = sk % Fr.MODULUS;
|
|
56
|
+
|
|
57
|
+
const scalar = Fr.fromString(skReduced.toString());
|
|
58
|
+
const pk2 = await Bn254G2Point.generator(scalar);
|
|
59
|
+
|
|
60
|
+
return {
|
|
61
|
+
x: { c0: pk2.x[0].toBigInt(), c1: pk2.x[1].toBigInt() },
|
|
62
|
+
y: { c0: pk2.y[0].toBigInt(), c1: pk2.y[1].toBigInt() },
|
|
63
|
+
};
|
|
64
|
+
}
|
|
@@ -16,7 +16,7 @@ export class Ecdsa {
|
|
|
16
16
|
* @returns A secp256k1 public key.
|
|
17
17
|
*/
|
|
18
18
|
public async computePublicKey(privateKey: Buffer): Promise<Buffer> {
|
|
19
|
-
await BarretenbergSync.initSingleton(
|
|
19
|
+
await BarretenbergSync.initSingleton();
|
|
20
20
|
const api = BarretenbergSync.getSingleton();
|
|
21
21
|
const response =
|
|
22
22
|
this.curve === 'secp256r1'
|
|
@@ -32,7 +32,7 @@ export class Ecdsa {
|
|
|
32
32
|
* @returns An ECDSA signature of the form (r, s, v).
|
|
33
33
|
*/
|
|
34
34
|
public async constructSignature(msg: Uint8Array, privateKey: Buffer) {
|
|
35
|
-
await BarretenbergSync.initSingleton(
|
|
35
|
+
await BarretenbergSync.initSingleton();
|
|
36
36
|
const api = BarretenbergSync.getSingleton();
|
|
37
37
|
const response =
|
|
38
38
|
this.curve === 'secp256r1'
|
|
@@ -48,7 +48,7 @@ export class Ecdsa {
|
|
|
48
48
|
* @returns The secp256k1 public key of the signer.
|
|
49
49
|
*/
|
|
50
50
|
public async recoverPublicKey(msg: Uint8Array, sig: EcdsaSignature): Promise<Buffer> {
|
|
51
|
-
await BarretenbergSync.initSingleton(
|
|
51
|
+
await BarretenbergSync.initSingleton();
|
|
52
52
|
const api = BarretenbergSync.getSingleton();
|
|
53
53
|
const response =
|
|
54
54
|
this.curve === 'secp256r1'
|
|
@@ -65,7 +65,7 @@ export class Ecdsa {
|
|
|
65
65
|
* @returns True or false.
|
|
66
66
|
*/
|
|
67
67
|
public async verifySignature(msg: Uint8Array, pubKey: Buffer, sig: EcdsaSignature) {
|
|
68
|
-
await BarretenbergSync.initSingleton(
|
|
68
|
+
await BarretenbergSync.initSingleton();
|
|
69
69
|
const api = BarretenbergSync.getSingleton();
|
|
70
70
|
const response =
|
|
71
71
|
this.curve === 'secp256r1'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
2
|
-
import { randomBytes } from '@aztec/foundation/crypto';
|
|
3
|
-
import { Fr } from '@aztec/foundation/
|
|
2
|
+
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
3
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { mapTuple } from '@aztec/foundation/serialize';
|
|
5
5
|
|
|
6
6
|
import type { Signature } from '../signature/index.js';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
|
-
import { Fr
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import type { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
|
|
4
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* Grumpkin elliptic curve operations.
|
|
@@ -20,7 +22,7 @@ export class Grumpkin {
|
|
|
20
22
|
* @returns Result of the multiplication.
|
|
21
23
|
*/
|
|
22
24
|
public static async mul(point: Point, scalar: GrumpkinScalar): Promise<Point> {
|
|
23
|
-
await BarretenbergSync.initSingleton(
|
|
25
|
+
await BarretenbergSync.initSingleton();
|
|
24
26
|
const api = BarretenbergSync.getSingleton();
|
|
25
27
|
const response = api.grumpkinMul({
|
|
26
28
|
point: { x: point.x.toBuffer(), y: point.y.toBuffer() },
|
|
@@ -36,7 +38,7 @@ export class Grumpkin {
|
|
|
36
38
|
* @returns Result of the addition.
|
|
37
39
|
*/
|
|
38
40
|
public static async add(a: Point, b: Point): Promise<Point> {
|
|
39
|
-
await BarretenbergSync.initSingleton(
|
|
41
|
+
await BarretenbergSync.initSingleton();
|
|
40
42
|
const api = BarretenbergSync.getSingleton();
|
|
41
43
|
const response = api.grumpkinAdd({
|
|
42
44
|
pointA: { x: a.x.toBuffer(), y: a.y.toBuffer() },
|
|
@@ -52,7 +54,7 @@ export class Grumpkin {
|
|
|
52
54
|
* @returns Points multiplied by the scalar.
|
|
53
55
|
*/
|
|
54
56
|
public static async batchMul(points: Point[], scalar: GrumpkinScalar) {
|
|
55
|
-
await BarretenbergSync.initSingleton(
|
|
57
|
+
await BarretenbergSync.initSingleton();
|
|
56
58
|
const api = BarretenbergSync.getSingleton();
|
|
57
59
|
const response = api.grumpkinBatchMul({
|
|
58
60
|
points: points.map(p => ({ x: p.x.toBuffer(), y: p.y.toBuffer() })),
|
|
@@ -67,7 +69,7 @@ export class Grumpkin {
|
|
|
67
69
|
* @returns Random field element.
|
|
68
70
|
*/
|
|
69
71
|
public static async getRandomFr(): Promise<Fr> {
|
|
70
|
-
await BarretenbergSync.initSingleton(
|
|
72
|
+
await BarretenbergSync.initSingleton();
|
|
71
73
|
const api = BarretenbergSync.getSingleton();
|
|
72
74
|
const response = api.grumpkinGetRandomFr({ dummy: 0 });
|
|
73
75
|
return Fr.fromBuffer(Buffer.from(response.value));
|
|
@@ -79,7 +81,7 @@ export class Grumpkin {
|
|
|
79
81
|
* @returns Buffer representation of the field element.
|
|
80
82
|
*/
|
|
81
83
|
public static async reduce512BufferToFr(uint512Buf: Buffer): Promise<Fr> {
|
|
82
|
-
await BarretenbergSync.initSingleton(
|
|
84
|
+
await BarretenbergSync.initSingleton();
|
|
83
85
|
const api = BarretenbergSync.getSingleton();
|
|
84
86
|
const response = api.grumpkinReduce512({ input: uint512Buf });
|
|
85
87
|
return Fr.fromBuffer(Buffer.from(response.value));
|
package/src/crypto/keys/index.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
2
|
|
|
3
|
-
import { Fr } from '../../
|
|
3
|
+
import { Fr } from '../../curves/bn254/field.js';
|
|
4
4
|
|
|
5
5
|
export async function vkAsFieldsMegaHonk(input: Buffer): Promise<Fr[]> {
|
|
6
|
-
await BarretenbergSync.initSingleton(
|
|
6
|
+
await BarretenbergSync.initSingleton();
|
|
7
7
|
const api = BarretenbergSync.getSingleton();
|
|
8
8
|
const response = api.megaVkAsFields({ verificationKey: input });
|
|
9
9
|
return response.fields.map(field => Fr.fromBuffer(Buffer.from(field)));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
2
|
|
|
3
|
-
import { Fr } from '../../
|
|
3
|
+
import { Fr } from '../../curves/bn254/field.js';
|
|
4
4
|
import { type Fieldable, serializeToFields } from '../../serialize/serialize.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -12,7 +12,7 @@ export async function pedersenCommit(input: Buffer[], offset = 0) {
|
|
|
12
12
|
throw new Error('All Pedersen Commit input buffers must be <= 32 bytes.');
|
|
13
13
|
}
|
|
14
14
|
input = input.map(i => (i.length < 32 ? Buffer.concat([Buffer.alloc(32 - i.length, 0), i]) : i));
|
|
15
|
-
await BarretenbergSync.initSingleton(
|
|
15
|
+
await BarretenbergSync.initSingleton();
|
|
16
16
|
const api = BarretenbergSync.getSingleton();
|
|
17
17
|
const response = api.pedersenCommit({
|
|
18
18
|
inputs: input,
|
|
@@ -29,7 +29,7 @@ export async function pedersenCommit(input: Buffer[], offset = 0) {
|
|
|
29
29
|
*/
|
|
30
30
|
export async function pedersenHash(input: Fieldable[], index = 0): Promise<Fr> {
|
|
31
31
|
const inputFields = serializeToFields(input);
|
|
32
|
-
await BarretenbergSync.initSingleton(
|
|
32
|
+
await BarretenbergSync.initSingleton();
|
|
33
33
|
const api = BarretenbergSync.getSingleton();
|
|
34
34
|
const response = api.pedersenHash({
|
|
35
35
|
inputs: inputFields.map(i => i.toBuffer()),
|
|
@@ -42,7 +42,7 @@ export async function pedersenHash(input: Fieldable[], index = 0): Promise<Fr> {
|
|
|
42
42
|
* Create a pedersen hash from an arbitrary length buffer.
|
|
43
43
|
*/
|
|
44
44
|
export async function pedersenHashBuffer(input: Buffer, index = 0) {
|
|
45
|
-
await BarretenbergSync.initSingleton(
|
|
45
|
+
await BarretenbergSync.initSingleton();
|
|
46
46
|
const api = BarretenbergSync.getSingleton();
|
|
47
47
|
const response = api.pedersenHashBuffer({
|
|
48
48
|
input,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
2
|
|
|
3
|
-
import { Fr } from '../../
|
|
3
|
+
import { Fr } from '../../curves/bn254/field.js';
|
|
4
4
|
import { type Fieldable, serializeToFields } from '../../serialize/serialize.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -10,7 +10,7 @@ import { type Fieldable, serializeToFields } from '../../serialize/serialize.js'
|
|
|
10
10
|
*/
|
|
11
11
|
export async function poseidon2Hash(input: Fieldable[]): Promise<Fr> {
|
|
12
12
|
const inputFields = serializeToFields(input);
|
|
13
|
-
await BarretenbergSync.initSingleton(
|
|
13
|
+
await BarretenbergSync.initSingleton();
|
|
14
14
|
const api = BarretenbergSync.getSingleton();
|
|
15
15
|
const response = api.poseidon2Hash({
|
|
16
16
|
inputs: inputFields.map(i => i.toBuffer()),
|
|
@@ -27,7 +27,7 @@ export async function poseidon2Hash(input: Fieldable[]): Promise<Fr> {
|
|
|
27
27
|
export async function poseidon2HashWithSeparator(input: Fieldable[], separator: number): Promise<Fr> {
|
|
28
28
|
const inputFields = serializeToFields(input);
|
|
29
29
|
inputFields.unshift(new Fr(separator));
|
|
30
|
-
await BarretenbergSync.initSingleton(
|
|
30
|
+
await BarretenbergSync.initSingleton();
|
|
31
31
|
const api = BarretenbergSync.getSingleton();
|
|
32
32
|
const response = api.poseidon2Hash({
|
|
33
33
|
inputs: inputFields.map(i => i.toBuffer()),
|
|
@@ -35,16 +35,6 @@ export async function poseidon2HashWithSeparator(input: Fieldable[], separator:
|
|
|
35
35
|
return Fr.fromBuffer(Buffer.from(response.hash));
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
export async function poseidon2HashAccumulate(input: Fieldable[]): Promise<Fr> {
|
|
39
|
-
const inputFields = serializeToFields(input);
|
|
40
|
-
await BarretenbergSync.initSingleton({ wasmPath: process.env.BB_WASM_PATH });
|
|
41
|
-
const api = BarretenbergSync.getSingleton();
|
|
42
|
-
const response = api.poseidon2HashAccumulate({
|
|
43
|
-
inputs: inputFields.map(i => i.toBuffer()),
|
|
44
|
-
});
|
|
45
|
-
return Fr.fromBuffer(Buffer.from(response.hash));
|
|
46
|
-
}
|
|
47
|
-
|
|
48
38
|
/**
|
|
49
39
|
* Runs a Poseidon2 permutation.
|
|
50
40
|
* @param input the input state. Expected to be of size 4.
|
|
@@ -54,7 +44,7 @@ export async function poseidon2Permutation(input: Fieldable[]): Promise<Fr[]> {
|
|
|
54
44
|
const inputFields = serializeToFields(input);
|
|
55
45
|
// We'd like this assertion but it's not possible to use it in the browser.
|
|
56
46
|
// assert(input.length === 4, 'Input state must be of size 4');
|
|
57
|
-
await BarretenbergSync.initSingleton(
|
|
47
|
+
await BarretenbergSync.initSingleton();
|
|
58
48
|
const api = BarretenbergSync.getSingleton();
|
|
59
49
|
const response = api.poseidon2Permutation({
|
|
60
50
|
inputs: inputFields.map(i => i.toBuffer()),
|
|
@@ -75,7 +65,7 @@ export async function poseidon2HashBytes(input: Buffer): Promise<Fr> {
|
|
|
75
65
|
inputFields.push(Fr.fromBuffer(fieldBytes));
|
|
76
66
|
}
|
|
77
67
|
|
|
78
|
-
await BarretenbergSync.initSingleton(
|
|
68
|
+
await BarretenbergSync.initSingleton();
|
|
79
69
|
const api = BarretenbergSync.getSingleton();
|
|
80
70
|
const response = api.poseidon2Hash({
|
|
81
71
|
inputs: inputFields.map(i => i.toBuffer()),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createLogger } from '../../log/pino-logger.js';
|
|
1
|
+
import { type Logger, type LoggerBindings, createLogger } from '../../log/pino-logger.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* A number generator which is used as a source of randomness in the system. If the SEED env variable is set, the
|
|
@@ -12,11 +12,13 @@ export class RandomnessSingleton {
|
|
|
12
12
|
private static instance: RandomnessSingleton;
|
|
13
13
|
|
|
14
14
|
private counter = 0;
|
|
15
|
+
private log: Logger;
|
|
15
16
|
|
|
16
17
|
private constructor(
|
|
17
18
|
private readonly seed?: number,
|
|
18
|
-
|
|
19
|
+
bindings?: LoggerBindings,
|
|
19
20
|
) {
|
|
21
|
+
this.log = createLogger('foundation:randomness_singleton', bindings);
|
|
20
22
|
if (seed !== undefined) {
|
|
21
23
|
this.log.debug(`Using pseudo-randomness with seed: ${seed}`);
|
|
22
24
|
this.counter = seed;
|
|
@@ -25,10 +27,10 @@ export class RandomnessSingleton {
|
|
|
25
27
|
}
|
|
26
28
|
}
|
|
27
29
|
|
|
28
|
-
public static getInstance(): RandomnessSingleton {
|
|
30
|
+
public static getInstance(bindings?: LoggerBindings): RandomnessSingleton {
|
|
29
31
|
if (!RandomnessSingleton.instance) {
|
|
30
32
|
const seed = process.env.SEED ? Number(process.env.SEED) : undefined;
|
|
31
|
-
RandomnessSingleton.instance = new RandomnessSingleton(seed);
|
|
33
|
+
RandomnessSingleton.instance = new RandomnessSingleton(seed, bindings);
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
return RandomnessSingleton.instance;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
|
-
import {
|
|
2
|
+
import type { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
|
|
3
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
3
4
|
|
|
4
5
|
import { SchnorrSignature } from './signature.js';
|
|
5
6
|
|
|
@@ -15,7 +16,7 @@ export class Schnorr {
|
|
|
15
16
|
* @returns A grumpkin public key.
|
|
16
17
|
*/
|
|
17
18
|
public async computePublicKey(privateKey: GrumpkinScalar): Promise<Point> {
|
|
18
|
-
await BarretenbergSync.initSingleton(
|
|
19
|
+
await BarretenbergSync.initSingleton();
|
|
19
20
|
const api = BarretenbergSync.getSingleton();
|
|
20
21
|
const response = api.schnorrComputePublicKey({ privateKey: privateKey.toBuffer() });
|
|
21
22
|
return Point.fromBuffer(Buffer.concat([Buffer.from(response.publicKey.x), Buffer.from(response.publicKey.y)]));
|
|
@@ -28,7 +29,7 @@ export class Schnorr {
|
|
|
28
29
|
* @returns A Schnorr signature of the form (s, e).
|
|
29
30
|
*/
|
|
30
31
|
public async constructSignature(msg: Uint8Array, privateKey: GrumpkinScalar) {
|
|
31
|
-
await BarretenbergSync.initSingleton(
|
|
32
|
+
await BarretenbergSync.initSingleton();
|
|
32
33
|
const api = BarretenbergSync.getSingleton();
|
|
33
34
|
const response = api.schnorrConstructSignature({
|
|
34
35
|
message: msg,
|
|
@@ -45,7 +46,7 @@ export class Schnorr {
|
|
|
45
46
|
* @returns True or false.
|
|
46
47
|
*/
|
|
47
48
|
public async verifySignature(msg: Uint8Array, pubKey: Point, sig: SchnorrSignature) {
|
|
48
|
-
await BarretenbergSync.initSingleton(
|
|
49
|
+
await BarretenbergSync.initSingleton();
|
|
49
50
|
const api = BarretenbergSync.getSingleton();
|
|
50
51
|
const response = api.schnorrVerifySignature({
|
|
51
52
|
message: msg,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { randomBytes } from '@aztec/foundation/crypto';
|
|
2
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
|
|
4
4
|
|
|
5
5
|
import type { Signature } from '../signature/index.js';
|
|
@@ -27,7 +27,7 @@ export class Secp256k1 {
|
|
|
27
27
|
* @returns Result of the multiplication.
|
|
28
28
|
*/
|
|
29
29
|
public async mul(point: Uint8Array, scalar: Uint8Array) {
|
|
30
|
-
await BarretenbergSync.initSingleton(
|
|
30
|
+
await BarretenbergSync.initSingleton();
|
|
31
31
|
const api = BarretenbergSync.getSingleton();
|
|
32
32
|
const response = api.secp256k1Mul({
|
|
33
33
|
point: { x: point.subarray(0, 32), y: point.subarray(32, 64) },
|
|
@@ -41,7 +41,7 @@ export class Secp256k1 {
|
|
|
41
41
|
* @returns Random field element.
|
|
42
42
|
*/
|
|
43
43
|
public async getRandomFr() {
|
|
44
|
-
await BarretenbergSync.initSingleton(
|
|
44
|
+
await BarretenbergSync.initSingleton();
|
|
45
45
|
const api = BarretenbergSync.getSingleton();
|
|
46
46
|
const response = api.secp256k1GetRandomFr({ dummy: 0 });
|
|
47
47
|
return Buffer.from(response.value);
|
|
@@ -53,7 +53,7 @@ export class Secp256k1 {
|
|
|
53
53
|
* @returns Buffer representation of the field element.
|
|
54
54
|
*/
|
|
55
55
|
public async reduce512BufferToFr(uint512Buf: Buffer) {
|
|
56
|
-
await BarretenbergSync.initSingleton(
|
|
56
|
+
await BarretenbergSync.initSingleton();
|
|
57
57
|
const api = BarretenbergSync.getSingleton();
|
|
58
58
|
const response = api.secp256k1Reduce512({ input: uint512Buf });
|
|
59
59
|
return Buffer.from(response.value);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable camelcase */
|
|
2
2
|
import { default as hash } from 'hash.js';
|
|
3
3
|
|
|
4
|
-
import { Fr } from '../../
|
|
4
|
+
import { Fr } from '../../curves/bn254/field.js';
|
|
5
5
|
import { truncateAndPad } from '../../serialize/free_funcs.js';
|
|
6
6
|
import { type Bufferable, serializeToBuffer } from '../../serialize/serialize.js';
|
|
7
7
|
import type { Hasher } from '../../trees/hasher.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as hash } from 'hash.js';
|
|
2
2
|
|
|
3
|
-
import { GrumpkinScalar } from '../../
|
|
3
|
+
import { GrumpkinScalar } from '../../curves/grumpkin/index.js';
|
|
4
4
|
import { type Bufferable, serializeToBuffer } from '../../serialize/serialize.js';
|
|
5
5
|
|
|
6
6
|
export const sha512 = (data: Buffer) => Buffer.from(hash.sha512().update(data).digest());
|
package/src/crypto/sync/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
2
|
|
|
3
|
-
import { Fr } from '../../../
|
|
3
|
+
import { Fr } from '../../../curves/bn254/field.js';
|
|
4
4
|
import { type Fieldable, serializeToFields } from '../../../serialize/serialize.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -34,15 +34,6 @@ export function poseidon2HashWithSeparator(input: Fieldable[], separator: number
|
|
|
34
34
|
return Fr.fromBuffer(Buffer.from(response.hash));
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
export function poseidon2HashAccumulate(input: Fieldable[]): Fr {
|
|
38
|
-
const inputFields = serializeToFields(input);
|
|
39
|
-
const api = BarretenbergSync.getSingleton();
|
|
40
|
-
const response = api.poseidon2HashAccumulate({
|
|
41
|
-
inputs: inputFields.map(i => i.toBuffer()),
|
|
42
|
-
});
|
|
43
|
-
return Fr.fromBuffer(Buffer.from(response.hash));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
37
|
/**
|
|
47
38
|
* Runs a Poseidon2 permutation.
|
|
48
39
|
* @param input the input state. Expected to be of size 4.
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { bls12_381 } from '@noble/curves/bls12-381';
|
|
3
3
|
import { inspect } from 'util';
|
|
4
4
|
|
|
5
|
-
import { toBigIntBE, toBufferBE } from '
|
|
6
|
-
import { randomBytes } from '
|
|
7
|
-
import { hexSchemaFor } from '
|
|
8
|
-
import { BufferReader } from '
|
|
9
|
-
import { TypeRegistry } from '
|
|
10
|
-
import { Fr } from '
|
|
5
|
+
import { toBigIntBE, toBufferBE } from '../../bigint-buffer/index.js';
|
|
6
|
+
import { randomBytes } from '../../crypto/random/index.js';
|
|
7
|
+
import { hexSchemaFor } from '../../schemas/utils.js';
|
|
8
|
+
import { BufferReader } from '../../serialize/buffer_reader.js';
|
|
9
|
+
import { TypeRegistry } from '../../serialize/type_registry.js';
|
|
10
|
+
import { Fr } from '../bn254/field.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Represents a field derived from BLS12Field.
|
|
@@ -3,13 +3,13 @@ import type { ProjPointType } from '@noble/curves/abstract/weierstrass';
|
|
|
3
3
|
import { bls12_381 } from '@noble/curves/bls12-381';
|
|
4
4
|
import { inspect } from 'util';
|
|
5
5
|
|
|
6
|
-
import { toBufferBE } from '
|
|
7
|
-
import { randomBoolean } from '
|
|
8
|
-
import { hexSchemaFor } from '
|
|
9
|
-
import { BufferReader, serializeToBuffer } from '
|
|
10
|
-
import { bufferToHex, hexToBuffer } from '
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
6
|
+
import { toBufferBE } from '../../bigint-buffer/index.js';
|
|
7
|
+
import { randomBoolean } from '../../crypto/random/index.js';
|
|
8
|
+
import { hexSchemaFor } from '../../schemas/utils.js';
|
|
9
|
+
import { BufferReader, serializeToBuffer } from '../../serialize/index.js';
|
|
10
|
+
import { bufferToHex, hexToBuffer } from '../../string/index.js';
|
|
11
|
+
import { Fr } from '../bn254/field.js';
|
|
12
|
+
import { BLS12Fq, BLS12Fr } from './field.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Represents a Point on an elliptic curve with x and y coordinates.
|