@aztec/foundation 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107
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 +53 -0
- package/dest/branded-types/block_number.d.ts.map +1 -0
- package/dest/branded-types/block_number.js +75 -0
- package/dest/branded-types/checkpoint_number.d.ts +46 -0
- package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
- package/dest/branded-types/checkpoint_number.js +68 -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 +6 -0
- package/dest/branded-types/index.d.ts.map +1 -0
- package/dest/branded-types/index.js +4 -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 -5
- package/dest/buffer/buffer16.d.ts.map +1 -1
- package/dest/buffer/buffer16.js +4 -2
- package/dest/buffer/buffer32.d.ts +2 -5
- 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 +3 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +12 -3
- package/dest/collection/index.d.ts +1 -1
- package/dest/collection/object.d.ts +5 -1
- package/dest/collection/object.d.ts.map +1 -1
- package/dest/collection/object.js +6 -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 +12 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +17 -2
- package/dest/config/network_config.d.ts +54 -0
- package/dest/config/network_config.d.ts.map +1 -0
- package/dest/config/network_config.js +11 -0
- package/dest/config/network_name.d.ts +2 -2
- package/dest/config/network_name.d.ts.map +1 -1
- package/dest/config/network_name.js +10 -2
- 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 +19 -6
- package/dest/crypto/bls/bn254_keystore.d.ts +296 -0
- package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
- package/dest/crypto/bls/bn254_keystore.js +218 -0
- package/dest/crypto/bls/index.d.ts +13 -0
- package/dest/crypto/bls/index.d.ts.map +1 -0
- package/dest/crypto/bls/index.js +87 -0
- package/dest/crypto/bn254/index.d.ts +39 -0
- package/dest/crypto/bn254/index.d.ts.map +1 -0
- package/dest/crypto/bn254/index.js +56 -0
- package/dest/crypto/ecdsa/index.d.ts +1 -1
- package/dest/crypto/ecdsa/index.d.ts.map +1 -1
- package/dest/crypto/ecdsa/index.js +58 -48
- package/dest/crypto/ecdsa/signature.d.ts +2 -11
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
- package/dest/crypto/ecdsa/signature.js +2 -2
- package/dest/crypto/grumpkin/index.d.ts +10 -13
- package/dest/crypto/grumpkin/index.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.js +61 -55
- package/dest/crypto/keccak/index.d.ts +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 +8 -5
- 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 +24 -14
- package/dest/crypto/poseidon/index.d.ts +2 -2
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +33 -18
- 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 +1 -1
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.d.ts +3 -2
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +30 -38
- package/dest/crypto/schnorr/signature.d.ts +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 +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 +49 -3
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/utils.js +87 -5
- 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 -1
- 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 +18 -11
- package/dest/crypto/sync/poseidon/index.d.ts +2 -2
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/sync/poseidon/index.js +28 -13
- 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} +11 -20
- package/dest/curves/bls12/point.d.ts.map +1 -0
- package/dest/{fields/bls12_point.js → curves/bls12/point.js} +17 -15
- package/dest/curves/bn254/field.d.ts +180 -0
- package/dest/curves/bn254/field.d.ts.map +1 -0
- package/dest/{fields/fields.js → curves/bn254/field.js} +71 -59
- 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 +13 -13
- 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 +4 -4
- package/dest/error/index.d.ts.map +1 -1
- package/dest/eth-address/index.d.ts +14 -4
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +26 -2
- package/dest/eth-signature/eth_signature.d.ts +1 -4
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/eth-signature/eth_signature.js +2 -4
- 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/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/safe_json_rpc_client.d.ts.map +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.js +9 -0
- package/dest/json-rpc/client/undici.d.ts +1 -1
- 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 +3 -3
- package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/class_b.d.ts +3 -3
- 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/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 +1 -1
- 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 +1 -1
- package/dest/log/pino-logger.d.ts +2 -2
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +0 -1
- 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 +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 +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 +1 -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 +1 -1
- 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 +3 -1
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +3 -0
- 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 +5 -1
- package/dest/string/index.d.ts.map +1 -1
- package/dest/string/index.js +19 -2
- 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 +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 +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.d.ts +22 -0
- package/dest/trees/balanced_merkle_tree.d.ts.map +1 -0
- package/dest/trees/balanced_merkle_tree.js +66 -0
- package/dest/trees/hasher.d.ts +1 -1
- package/dest/trees/index.d.ts +2 -1
- package/dest/trees/index.d.ts.map +1 -1
- package/dest/trees/index.js +1 -0
- 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 +3 -24
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/membership_witness.js +1 -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 +1 -31
- package/dest/trees/sibling_path.d.ts +5 -39
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +2 -2
- package/dest/trees/unbalanced_merkle_tree.d.ts +5 -4
- package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree.js +33 -10
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +27 -23
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree_calculator.js +123 -97
- 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 +3 -1
- 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 +32 -8
- 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 +112 -0
- package/src/branded-types/checkpoint_number.ts +100 -0
- package/src/branded-types/epoch.ts +88 -0
- package/src/branded-types/index.ts +6 -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 +15 -3
- package/src/collection/object.ts +8 -0
- package/src/config/env_var.ts +44 -10
- package/src/config/index.ts +22 -2
- package/src/config/network_config.ts +18 -0
- package/src/config/network_name.ts +18 -3
- package/src/crypto/aes128/index.ts +19 -10
- package/src/crypto/bls/bn254_keystore.ts +287 -0
- package/src/crypto/bls/index.ts +77 -0
- package/src/crypto/bn254/index.ts +64 -0
- package/src/crypto/ecdsa/index.ts +40 -37
- package/src/crypto/ecdsa/signature.ts +2 -2
- package/src/crypto/grumpkin/index.ts +38 -46
- package/src/crypto/keys/index.ts +6 -6
- package/src/crypto/pedersen/pedersen.wasm.ts +23 -19
- package/src/crypto/poseidon/index.ts +33 -25
- package/src/crypto/schnorr/index.ts +22 -18
- package/src/crypto/schnorr/signature.ts +2 -2
- package/src/crypto/secp256k1/index.ts +15 -11
- package/src/crypto/secp256k1-signer/utils.ts +115 -7
- 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 +17 -16
- package/src/crypto/sync/poseidon/index.ts +28 -23
- 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} +14 -14
- package/src/{fields/fields.ts → curves/bn254/field.ts} +69 -62
- 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 +28 -3
- package/src/eth-signature/eth_signature.ts +2 -4
- package/src/iterator/filter.ts +11 -0
- package/src/iterator/index.ts +1 -0
- package/src/json-rpc/client/safe_json_rpc_client.ts +9 -0
- package/src/log/log_fn.ts +1 -1
- package/src/log/pino-logger.ts +0 -1
- package/src/profiler/index.ts +1 -0
- package/src/profiler/profiler.ts +125 -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 +5 -0
- 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/string/index.ts +24 -1
- package/src/testing/files/index.ts +1 -1
- package/src/testing/formatting.ts +3 -0
- package/src/testing/index.ts +1 -0
- package/src/timer/date.ts +4 -0
- package/src/trees/balanced_merkle_tree.ts +84 -0
- package/src/trees/index.ts +1 -0
- package/src/trees/indexed_merkle_tree.ts +1 -1
- package/src/trees/membership_witness.ts +1 -1
- package/src/trees/merkle_tree_calculator.ts +1 -34
- package/src/trees/sibling_path.ts +2 -2
- package/src/trees/unbalanced_merkle_tree.ts +55 -7
- package/src/trees/unbalanced_merkle_tree_calculator.ts +134 -93
- package/src/trees/unbalanced_tree_store.ts +5 -1
- package/src/types/index.ts +5 -0
- package/dest/crypto/index.d.ts +0 -15
- package/dest/crypto/index.d.ts.map +0 -1
- package/dest/crypto/index.js +0 -14
- package/dest/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 +0 -174
- 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 -29
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -29
- 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/src/crypto/index.ts +0 -14
- package/src/fields/coordinate.ts +0 -104
- package/src/fields/index.ts +0 -5
- package/src/index.ts +0 -29
- package/src/json-rpc/server/telemetry.ts +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import { mod } from '@noble/curves/abstract/modular';
|
|
3
|
+
import { bytesToNumberBE } from '@noble/curves/abstract/utils';
|
|
4
|
+
import { hmac } from '@noble/hashes/hmac';
|
|
5
|
+
import { sha512 } from '@noble/hashes/sha2';
|
|
6
|
+
import { mnemonicToSeedSync } from '@scure/bip39';
|
|
7
|
+
export function deriveBlsPrivateKey(mnemonic, ikm, path) {
|
|
8
|
+
if (ikm) {
|
|
9
|
+
return deriveBlsKeyFromEntropy(ikm, path);
|
|
10
|
+
}
|
|
11
|
+
if (!mnemonic) {
|
|
12
|
+
throw new Error('Either mnemonic or ikm must be provided for BLS derivation');
|
|
13
|
+
}
|
|
14
|
+
return deriveBlsKeyFromMnemonic(mnemonic, path);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Deterministically derive a BN254 BLS private key from mnemonic and derivation path.
|
|
18
|
+
* Returns a 0x-prefixed 32-byte hex string representing an Fr in [1, r-1].
|
|
19
|
+
*/ export function deriveBlsKeyFromMnemonic(mnemonic, derivationPath, passphrase = '') {
|
|
20
|
+
const seed = Buffer.from(mnemonicToSeedSync(mnemonic, passphrase)); // 64 bytes
|
|
21
|
+
const data = Buffer.concat([
|
|
22
|
+
Buffer.from([
|
|
23
|
+
0x00
|
|
24
|
+
]),
|
|
25
|
+
seed,
|
|
26
|
+
Buffer.from(derivationPath, 'utf8')
|
|
27
|
+
]);
|
|
28
|
+
const sk = deriveBn254ScalarFromData(data);
|
|
29
|
+
return `0x${toFixed32(sk).toString('hex')}`;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Deterministically derive a BN254 BLS private key from input keying material (IKM) and derivation path.
|
|
33
|
+
* Returns a 0x-prefixed 32-byte hex string representing an Fr in [1, r-1].
|
|
34
|
+
*/ export function deriveBlsKeyFromEntropy(ikm, derivationPath) {
|
|
35
|
+
const ikmBytes = parseIkm(ikm);
|
|
36
|
+
const data = Buffer.concat([
|
|
37
|
+
Buffer.from([
|
|
38
|
+
0x01
|
|
39
|
+
]),
|
|
40
|
+
ikmBytes,
|
|
41
|
+
Buffer.from(derivationPath, 'utf8')
|
|
42
|
+
]);
|
|
43
|
+
const sk = deriveBn254ScalarFromData(data);
|
|
44
|
+
return `0x${toFixed32(sk).toString('hex')}`;
|
|
45
|
+
}
|
|
46
|
+
function deriveBn254ScalarFromData(data) {
|
|
47
|
+
// Domain-separated HMAC-SHA512, then map to BN254 Fr using noble modular math. Retry on zero.
|
|
48
|
+
const domainKey = Buffer.from('Aztec bn254 key', 'utf8');
|
|
49
|
+
for(let counter = 0;; counter = counter + 1 & 0xff){
|
|
50
|
+
const msg = counter === 0 ? data : Buffer.concat([
|
|
51
|
+
data,
|
|
52
|
+
Buffer.from([
|
|
53
|
+
counter
|
|
54
|
+
])
|
|
55
|
+
]);
|
|
56
|
+
const digest = hmac(sha512, domainKey, msg); // 64 bytes
|
|
57
|
+
const x = bytesToNumberBE(digest);
|
|
58
|
+
const sk = mod(x, Fr.MODULUS);
|
|
59
|
+
if (sk !== 0n) {
|
|
60
|
+
return sk;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function parseIkm(ikm) {
|
|
65
|
+
const hexMatch = ikm.replace(/^0x/i, '');
|
|
66
|
+
if (/^[0-9a-fA-F]+$/.test(hexMatch) && hexMatch.length >= 2) {
|
|
67
|
+
const normalized = hexMatch.length % 2 === 1 ? `0${hexMatch}` : hexMatch;
|
|
68
|
+
return Buffer.from(normalized, 'hex');
|
|
69
|
+
}
|
|
70
|
+
return Buffer.from(ikm, 'utf8');
|
|
71
|
+
}
|
|
72
|
+
function toFixed32(x) {
|
|
73
|
+
const hex = x.toString(16);
|
|
74
|
+
const padded = hex.length % 2 === 1 ? `0${hex}` : hex;
|
|
75
|
+
const buf = Buffer.from(padded, 'hex');
|
|
76
|
+
if (buf.length === 32) {
|
|
77
|
+
return buf;
|
|
78
|
+
}
|
|
79
|
+
if (buf.length < 32) {
|
|
80
|
+
return Buffer.concat([
|
|
81
|
+
Buffer.alloc(32 - buf.length, 0),
|
|
82
|
+
buf
|
|
83
|
+
]);
|
|
84
|
+
}
|
|
85
|
+
// Should never happen since x < bn254.Fr.ORDER < 2^256, but guard anyway
|
|
86
|
+
return buf.subarray(buf.length - 32);
|
|
87
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BN254 utility functions for point operations.
|
|
3
|
+
* Provides compression, decompression, and public key generation for the BN254 curve.
|
|
4
|
+
* Uses the bb.js Barretenberg backend for point operations.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Generate a compressed BN254 G1 public key from a private key.
|
|
8
|
+
*
|
|
9
|
+
* @param privateKeyHex - Private key as 0x-prefixed hex string
|
|
10
|
+
* @returns Compressed G1 point (32 bytes with sign bit in MSB)
|
|
11
|
+
*/
|
|
12
|
+
export declare function computeBn254G1PublicKeyCompressed(privateKeyHex: string): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Generate uncompressed BN254 G1 public key from a private key.
|
|
15
|
+
*
|
|
16
|
+
* @param privateKeyHex - Private key as 0x-prefixed hex string
|
|
17
|
+
* @returns G1 point in affine coordinates
|
|
18
|
+
*/
|
|
19
|
+
export declare function computeBn254G1PublicKey(privateKeyHex: string): Promise<{
|
|
20
|
+
x: bigint;
|
|
21
|
+
y: bigint;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Generate BN254 G2 public key from a private key.
|
|
25
|
+
*
|
|
26
|
+
* @param privateKeyHex - Private key as 0x-prefixed hex string
|
|
27
|
+
* @returns G2 point in affine coordinates
|
|
28
|
+
*/
|
|
29
|
+
export declare function computeBn254G2PublicKey(privateKeyHex: string): Promise<{
|
|
30
|
+
x: {
|
|
31
|
+
c0: bigint;
|
|
32
|
+
c1: bigint;
|
|
33
|
+
};
|
|
34
|
+
y: {
|
|
35
|
+
c0: bigint;
|
|
36
|
+
c1: bigint;
|
|
37
|
+
};
|
|
38
|
+
}>;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vYm4yNTQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7Ozs7R0FJRztBQUVIOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGlDQUFpQyxDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQVU5RjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLHVCQUF1QixDQUFDLGFBQWEsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUFDLENBQUMsRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDLENBUXRHO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsdUJBQXVCLENBQUMsYUFBYSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDNUUsQ0FBQyxFQUFFO1FBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQztRQUFDLEVBQUUsRUFBRSxNQUFNLENBQUE7S0FBRSxDQUFDO0lBQzlCLENBQUMsRUFBRTtRQUFFLEVBQUUsRUFBRSxNQUFNLENBQUM7UUFBQyxFQUFFLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0FBQztDQUMvQixDQUFDLENBV0QifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/bn254/index.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH;;;;;GAKG;AACH,wBAAsB,iCAAiC,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU9F;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAQtG;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5E,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B,CAAC,CAWD"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Fr } from '../../curves/bn254/field.js';
|
|
2
|
+
import { Bn254G1Point, Bn254G2Point } from '../../curves/bn254/point.js';
|
|
3
|
+
/**
|
|
4
|
+
* BN254 utility functions for point operations.
|
|
5
|
+
* Provides compression, decompression, and public key generation for the BN254 curve.
|
|
6
|
+
* Uses the bb.js Barretenberg backend for point operations.
|
|
7
|
+
*/ /**
|
|
8
|
+
* Generate a compressed BN254 G1 public key from a private key.
|
|
9
|
+
*
|
|
10
|
+
* @param privateKeyHex - Private key as 0x-prefixed hex string
|
|
11
|
+
* @returns Compressed G1 point (32 bytes with sign bit in MSB)
|
|
12
|
+
*/ export async function computeBn254G1PublicKeyCompressed(privateKeyHex) {
|
|
13
|
+
const sk = BigInt(privateKeyHex);
|
|
14
|
+
const skReduced = sk % Fr.MODULUS;
|
|
15
|
+
// Generate G1 point on BN254 curve using bb.js
|
|
16
|
+
const scalar = Fr.fromString(skReduced.toString());
|
|
17
|
+
const pk1 = await Bn254G1Point.generator(scalar);
|
|
18
|
+
// Compress the point using the primitive method
|
|
19
|
+
return '0x' + pk1.compress().toString('hex');
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Generate uncompressed BN254 G1 public key from a private key.
|
|
23
|
+
*
|
|
24
|
+
* @param privateKeyHex - Private key as 0x-prefixed hex string
|
|
25
|
+
* @returns G1 point in affine coordinates
|
|
26
|
+
*/ export async function computeBn254G1PublicKey(privateKeyHex) {
|
|
27
|
+
const sk = BigInt(privateKeyHex);
|
|
28
|
+
const skReduced = sk % Fr.MODULUS;
|
|
29
|
+
const scalar = Fr.fromString(skReduced.toString());
|
|
30
|
+
const pk1 = await Bn254G1Point.generator(scalar);
|
|
31
|
+
return {
|
|
32
|
+
x: pk1.x.toBigInt(),
|
|
33
|
+
y: pk1.y.toBigInt()
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Generate BN254 G2 public key from a private key.
|
|
38
|
+
*
|
|
39
|
+
* @param privateKeyHex - Private key as 0x-prefixed hex string
|
|
40
|
+
* @returns G2 point in affine coordinates
|
|
41
|
+
*/ export async function computeBn254G2PublicKey(privateKeyHex) {
|
|
42
|
+
const sk = BigInt(privateKeyHex);
|
|
43
|
+
const skReduced = sk % Fr.MODULUS;
|
|
44
|
+
const scalar = Fr.fromString(skReduced.toString());
|
|
45
|
+
const pk2 = await Bn254G2Point.generator(scalar);
|
|
46
|
+
return {
|
|
47
|
+
x: {
|
|
48
|
+
c0: pk2.x[0].toBigInt(),
|
|
49
|
+
c1: pk2.x[1].toBigInt()
|
|
50
|
+
},
|
|
51
|
+
y: {
|
|
52
|
+
c0: pk2.y[0].toBigInt(),
|
|
53
|
+
c1: pk2.y[1].toBigInt()
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
@@ -36,4 +36,4 @@ export declare class Ecdsa {
|
|
|
36
36
|
*/
|
|
37
37
|
verifySignature(msg: Uint8Array, pubKey: Buffer, sig: EcdsaSignature): Promise<boolean>;
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vZWNkc2EvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELGNBQWMsZ0JBQWdCLENBQUM7QUFFL0I7OztHQUdHO0FBQ0gscUJBQWEsS0FBSztJQUNKLE9BQU8sQ0FBQyxLQUFLO0lBQXpCLFlBQW9CLEtBQUssR0FBRSxXQUFXLEdBQUcsV0FBeUIsRUFBSTtJQUN0RTs7OztPQUlHO0lBQ1UsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBUWpFO0lBRUQ7Ozs7O09BS0c7SUFDVSxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQVFsRTtJQUVEOzs7OztPQUtHO0lBQ1UsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FRbkY7SUFFRDs7Ozs7O09BTUc7SUFDVSxlQUFlLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxjQUFjLG9CQW9CaEY7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,cAAc,gBAAgB,CAAC;AAE/B;;;GAGG;AACH,qBAAa,KAAK;IACJ,OAAO,CAAC,KAAK;IAAzB,YAAoB,KAAK,GAAE,WAAW,GAAG,WAAyB,EAAI;IACtE;;;;OAIG;IACU,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQjE;IAED;;;;;OAKG;IACU,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAQlE;IAED;;;;;OAKG;IACU,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAQnF;IAED;;;;;;OAMG;IACU,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,oBAoBhF;CACF"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
|
-
import { numToInt32BE } from '@aztec/foundation/serialize';
|
|
3
|
-
import { concatenateUint8Arrays } from '../serialize.js';
|
|
4
2
|
import { EcdsaSignature } from './signature.js';
|
|
5
3
|
export * from './signature.js';
|
|
6
4
|
/**
|
|
@@ -16,13 +14,17 @@ export * from './signature.js';
|
|
|
16
14
|
* @param privateKey - Secp256k1 private key.
|
|
17
15
|
* @returns A secp256k1 public key.
|
|
18
16
|
*/ async computePublicKey(privateKey) {
|
|
19
|
-
|
|
20
|
-
const
|
|
17
|
+
await BarretenbergSync.initSingleton();
|
|
18
|
+
const api = BarretenbergSync.getSingleton();
|
|
19
|
+
const response = this.curve === 'secp256r1' ? api.ecdsaSecp256r1ComputePublicKey({
|
|
21
20
|
privateKey
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
}) : api.ecdsaSecp256k1ComputePublicKey({
|
|
22
|
+
privateKey
|
|
23
|
+
});
|
|
24
|
+
return Buffer.concat([
|
|
25
|
+
Buffer.from(response.publicKey.x),
|
|
26
|
+
Buffer.from(response.publicKey.y)
|
|
24
27
|
]);
|
|
25
|
-
return Buffer.from(result);
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
28
30
|
* Constructs an ECDSA signature given a msg and a private key.
|
|
@@ -30,20 +32,18 @@ export * from './signature.js';
|
|
|
30
32
|
* @param privateKey - The secp256k1 private key of the signer.
|
|
31
33
|
* @returns An ECDSA signature of the form (r, s, v).
|
|
32
34
|
*/ async constructSignature(msg, privateKey) {
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
msg
|
|
37
|
-
]);
|
|
38
|
-
const [r, s, v] = api.getWasm().callWasmExport(`ecdsa_${this.curve === 'secp256r1' ? 'r' : ''}_construct_signature_`, [
|
|
39
|
-
messageArray,
|
|
35
|
+
await BarretenbergSync.initSingleton();
|
|
36
|
+
const api = BarretenbergSync.getSingleton();
|
|
37
|
+
const response = this.curve === 'secp256r1' ? api.ecdsaSecp256r1ConstructSignature({
|
|
38
|
+
message: msg,
|
|
40
39
|
privateKey
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
40
|
+
}) : api.ecdsaSecp256k1ConstructSignature({
|
|
41
|
+
message: msg,
|
|
42
|
+
privateKey
|
|
43
|
+
});
|
|
44
|
+
return new EcdsaSignature(Buffer.from(response.r), Buffer.from(response.s), Buffer.from([
|
|
45
|
+
response.v
|
|
46
|
+
]));
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* Recovers a secp256k1 public key from an ECDSA signature (similar to ecrecover).
|
|
@@ -51,20 +51,23 @@ export * from './signature.js';
|
|
|
51
51
|
* @param sig - The ECDSA signature.
|
|
52
52
|
* @returns The secp256k1 public key of the signer.
|
|
53
53
|
*/ async recoverPublicKey(msg, sig) {
|
|
54
|
-
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
msg
|
|
54
|
+
await BarretenbergSync.initSingleton();
|
|
55
|
+
const api = BarretenbergSync.getSingleton();
|
|
56
|
+
const response = this.curve === 'secp256r1' ? api.ecdsaSecp256r1RecoverPublicKey({
|
|
57
|
+
message: msg,
|
|
58
|
+
r: sig.r,
|
|
59
|
+
s: sig.s,
|
|
60
|
+
v: sig.v[0]
|
|
61
|
+
}) : api.ecdsaSecp256k1RecoverPublicKey({
|
|
62
|
+
message: msg,
|
|
63
|
+
r: sig.r,
|
|
64
|
+
s: sig.s,
|
|
65
|
+
v: sig.v[0]
|
|
66
|
+
});
|
|
67
|
+
return Buffer.concat([
|
|
68
|
+
Buffer.from(response.publicKey.x),
|
|
69
|
+
Buffer.from(response.publicKey.y)
|
|
58
70
|
]);
|
|
59
|
-
const [result] = api.getWasm().callWasmExport(`ecdsa_${this.curve === 'secp256r1' ? 'r' : ''}_recover_public_key_from_signature_`, [
|
|
60
|
-
messageArray,
|
|
61
|
-
sig.r,
|
|
62
|
-
sig.s,
|
|
63
|
-
sig.v
|
|
64
|
-
], [
|
|
65
|
-
64
|
|
66
|
-
]);
|
|
67
|
-
return Buffer.from(result);
|
|
68
71
|
}
|
|
69
72
|
/**
|
|
70
73
|
* Verifies and ECDSA signature given a secp256k1 public key.
|
|
@@ -73,20 +76,27 @@ export * from './signature.js';
|
|
|
73
76
|
* @param sig - The ECDSA signature.
|
|
74
77
|
* @returns True or false.
|
|
75
78
|
*/ async verifySignature(msg, pubKey, sig) {
|
|
76
|
-
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
msg
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
sig.r,
|
|
85
|
-
sig.s,
|
|
86
|
-
sig.v
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
79
|
+
await BarretenbergSync.initSingleton();
|
|
80
|
+
const api = BarretenbergSync.getSingleton();
|
|
81
|
+
const response = this.curve === 'secp256r1' ? api.ecdsaSecp256r1VerifySignature({
|
|
82
|
+
message: msg,
|
|
83
|
+
publicKey: {
|
|
84
|
+
x: pubKey.subarray(0, 32),
|
|
85
|
+
y: pubKey.subarray(32, 64)
|
|
86
|
+
},
|
|
87
|
+
r: sig.r,
|
|
88
|
+
s: sig.s,
|
|
89
|
+
v: sig.v[0]
|
|
90
|
+
}) : api.ecdsaSecp256k1VerifySignature({
|
|
91
|
+
message: msg,
|
|
92
|
+
publicKey: {
|
|
93
|
+
x: pubKey.subarray(0, 32),
|
|
94
|
+
y: pubKey.subarray(32, 64)
|
|
95
|
+
},
|
|
96
|
+
r: sig.r,
|
|
97
|
+
s: sig.s,
|
|
98
|
+
v: sig.v[0]
|
|
99
|
+
});
|
|
100
|
+
return response.verified;
|
|
91
101
|
}
|
|
92
102
|
}
|
|
@@ -1,21 +1,12 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import type { Signature } from '../signature/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* ECDSA signature used for transactions.
|
|
5
5
|
* @see cpp/barretenberg/cpp/src/barretenberg/crypto/ecdsa/ecdsa.hpp
|
|
6
6
|
*/
|
|
7
7
|
export declare class EcdsaSignature implements Signature {
|
|
8
|
-
/**
|
|
9
|
-
* The r byte-array (32 bytes) in an ECDSA signature.
|
|
10
|
-
*/
|
|
11
8
|
r: Buffer;
|
|
12
|
-
/**
|
|
13
|
-
* The s byte-array (32 bytes) in an ECDSA signature.
|
|
14
|
-
*/
|
|
15
9
|
s: Buffer;
|
|
16
|
-
/**
|
|
17
|
-
* The recovery id (1 byte) in an ECDSA signature.
|
|
18
|
-
*/
|
|
19
10
|
v: Buffer;
|
|
20
11
|
constructor(
|
|
21
12
|
/**
|
|
@@ -66,4 +57,4 @@ export declare class EcdsaSignature implements Signature {
|
|
|
66
57
|
*/
|
|
67
58
|
toFields(includeV?: boolean): Fr[];
|
|
68
59
|
}
|
|
69
|
-
//# sourceMappingURL=
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL2VjZHNhL3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHcEQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQ7OztHQUdHO0FBQ0gscUJBQWEsY0FBZSxZQUFXLFNBQVM7SUFLckMsQ0FBQyxFQUFFLE1BQU07SUFJVCxDQUFDLEVBQUUsTUFBTTtJQUlULENBQUMsRUFBRSxNQUFNO0lBWmxCO0lBQ0U7O09BRUc7SUFDSSxDQUFDLEVBQUUsTUFBTTtJQUNoQjs7T0FFRztJQUNJLENBQUMsRUFBRSxNQUFNO0lBQ2hCOztPQUVHO0lBQ0ksQ0FBQyxFQUFFLE1BQU0sRUFXakI7SUFFRDs7O09BR0c7SUFDSCxRQUFRLHdCQUVQO0lBRUQ7Ozs7T0FJRztJQUNILE9BQWMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLGtCQUV0QztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQWMsV0FBVyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFFeEQ7SUFFRDs7O09BR0c7SUFDSCxPQUFjLE1BQU0sbUJBRW5CO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxXQUVQO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxRQUFRLFVBQVEsR0FBRyxFQUFFLEVBQUUsQ0FZL0I7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/signature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../../src/crypto/ecdsa/signature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,cAAe,YAAW,SAAS;IAKrC,CAAC,EAAE,MAAM;IAIT,CAAC,EAAE,MAAM;IAIT,CAAC,EAAE,MAAM;IAZlB;IACE;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM;IAChB;;OAEG;IACI,CAAC,EAAE,MAAM,EAWjB;IAED;;;OAGG;IACH,QAAQ,wBAEP;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,kBAEtC;IAED;;;;;;OAMG;IACH,OAAc,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,kBAExD;IAED;;;OAGG;IACH,OAAc,MAAM,mBAEnB;IAED;;;OAGG;IACH,QAAQ,WAEP;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,UAAQ,GAAG,EAAE,EAAE,CAY/B;CACF"}
|
|
@@ -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
|
* ECDSA signature used for transactions.
|
|
@@ -1,45 +1,42 @@
|
|
|
1
|
-
import { Fr
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import type { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
|
|
3
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
2
4
|
/**
|
|
3
5
|
* Grumpkin elliptic curve operations.
|
|
4
6
|
*/
|
|
5
7
|
export declare class Grumpkin {
|
|
6
|
-
static generator: Point;
|
|
7
|
-
/**
|
|
8
|
-
* Point generator
|
|
9
|
-
* @returns The generator for the curve.
|
|
10
|
-
*/
|
|
11
|
-
generator(): Point;
|
|
8
|
+
static readonly generator: Point;
|
|
12
9
|
/**
|
|
13
10
|
* Multiplies a point by a scalar (adds the point `scalar` amount of times).
|
|
14
11
|
* @param point - Point to multiply.
|
|
15
12
|
* @param scalar - Scalar to multiply by.
|
|
16
13
|
* @returns Result of the multiplication.
|
|
17
14
|
*/
|
|
18
|
-
mul(point: Point, scalar: GrumpkinScalar): Promise<Point>;
|
|
15
|
+
static mul(point: Point, scalar: GrumpkinScalar): Promise<Point>;
|
|
19
16
|
/**
|
|
20
17
|
* Add two points.
|
|
21
18
|
* @param a - Point a in the addition
|
|
22
19
|
* @param b - Point b to add to a
|
|
23
20
|
* @returns Result of the addition.
|
|
24
21
|
*/
|
|
25
|
-
add(a: Point, b: Point): Promise<Point>;
|
|
22
|
+
static add(a: Point, b: Point): Promise<Point>;
|
|
26
23
|
/**
|
|
27
24
|
* Multiplies a set of points by a scalar.
|
|
28
25
|
* @param points - Points to multiply.
|
|
29
26
|
* @param scalar - Scalar to multiply by.
|
|
30
27
|
* @returns Points multiplied by the scalar.
|
|
31
28
|
*/
|
|
32
|
-
batchMul(points: Point[], scalar: GrumpkinScalar): Promise<Point[]>;
|
|
29
|
+
static batchMul(points: Point[], scalar: GrumpkinScalar): Promise<Point[]>;
|
|
33
30
|
/**
|
|
34
31
|
* Gets a random field element.
|
|
35
32
|
* @returns Random field element.
|
|
36
33
|
*/
|
|
37
|
-
getRandomFr(): Promise<Fr>;
|
|
34
|
+
static getRandomFr(): Promise<Fr>;
|
|
38
35
|
/**
|
|
39
36
|
* Converts a 512 bits long buffer to a field.
|
|
40
37
|
* @param uint512Buf - The buffer to convert.
|
|
41
38
|
* @returns Buffer representation of the field element.
|
|
42
39
|
*/
|
|
43
|
-
reduce512BufferToFr(uint512Buf: Buffer): Promise<Fr>;
|
|
40
|
+
static reduce512BufferToFr(uint512Buf: Buffer): Promise<Fr>;
|
|
44
41
|
}
|
|
45
|
-
//# sourceMappingURL=
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vZ3J1bXBraW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUxRDs7R0FFRztBQUNILHFCQUFhLFFBQVE7SUFFbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLFFBS3JCO0lBRUo7Ozs7O09BS0c7SUFDSCxPQUFvQixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FRNUU7SUFFRDs7Ozs7T0FLRztJQUNILE9BQW9CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQVExRDtJQUVEOzs7OztPQUtHO0lBQ0gsT0FBb0IsUUFBUSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsY0FBYyxvQkFTbkU7SUFFRDs7O09BR0c7SUFDSCxPQUFvQixXQUFXLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUs3QztJQUVEOzs7O09BSUc7SUFDSCxPQUFvQixtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FLdkU7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/grumpkin/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,KAAK,cAAc,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/grumpkin/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D;;GAEG;AACH,qBAAa,QAAQ;IAEnB,MAAM,CAAC,QAAQ,CAAC,SAAS,QAKrB;IAEJ;;;;;OAKG;IACH,OAAoB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAQ5E;IAED;;;;;OAKG;IACH,OAAoB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAQ1D;IAED;;;;;OAKG;IACH,OAAoB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc,oBASnE;IAED;;;OAGG;IACH,OAAoB,WAAW,IAAI,OAAO,CAAC,EAAE,CAAC,CAK7C;IAED;;;;OAIG;IACH,OAAoB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAKvE;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
|
-
import { Fr
|
|
2
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
3
4
|
/**
|
|
4
5
|
* Grumpkin elliptic curve operations.
|
|
5
6
|
*/ export class Grumpkin {
|
|
@@ -71,84 +72,89 @@ import { Fr, Point } from '@aztec/foundation/fields';
|
|
|
71
72
|
0x2c
|
|
72
73
|
]));
|
|
73
74
|
/**
|
|
74
|
-
* Point generator
|
|
75
|
-
* @returns The generator for the curve.
|
|
76
|
-
*/ generator() {
|
|
77
|
-
return Grumpkin.generator;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
75
|
* Multiplies a point by a scalar (adds the point `scalar` amount of times).
|
|
81
76
|
* @param point - Point to multiply.
|
|
82
77
|
* @param scalar - Scalar to multiply by.
|
|
83
78
|
* @returns Result of the multiplication.
|
|
84
|
-
*/ async mul(point, scalar) {
|
|
85
|
-
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
79
|
+
*/ static async mul(point, scalar) {
|
|
80
|
+
await BarretenbergSync.initSingleton();
|
|
81
|
+
const api = BarretenbergSync.getSingleton();
|
|
82
|
+
const response = api.grumpkinMul({
|
|
83
|
+
point: {
|
|
84
|
+
x: point.x.toBuffer(),
|
|
85
|
+
y: point.y.toBuffer()
|
|
86
|
+
},
|
|
87
|
+
scalar: scalar.toBuffer()
|
|
88
|
+
});
|
|
89
|
+
return Point.fromBuffer(Buffer.concat([
|
|
90
|
+
Buffer.from(response.point.x),
|
|
91
|
+
Buffer.from(response.point.y)
|
|
92
|
+
]));
|
|
93
93
|
}
|
|
94
94
|
/**
|
|
95
95
|
* Add two points.
|
|
96
96
|
* @param a - Point a in the addition
|
|
97
97
|
* @param b - Point b to add to a
|
|
98
98
|
* @returns Result of the addition.
|
|
99
|
-
*/ async add(a, b) {
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
99
|
+
*/ static async add(a, b) {
|
|
100
|
+
await BarretenbergSync.initSingleton();
|
|
101
|
+
const api = BarretenbergSync.getSingleton();
|
|
102
|
+
const response = api.grumpkinAdd({
|
|
103
|
+
pointA: {
|
|
104
|
+
x: a.x.toBuffer(),
|
|
105
|
+
y: a.y.toBuffer()
|
|
106
|
+
},
|
|
107
|
+
pointB: {
|
|
108
|
+
x: b.x.toBuffer(),
|
|
109
|
+
y: b.y.toBuffer()
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
return Point.fromBuffer(Buffer.concat([
|
|
113
|
+
Buffer.from(response.point.x),
|
|
114
|
+
Buffer.from(response.point.y)
|
|
115
|
+
]));
|
|
108
116
|
}
|
|
109
117
|
/**
|
|
110
118
|
* Multiplies a set of points by a scalar.
|
|
111
119
|
* @param points - Points to multiply.
|
|
112
120
|
* @param scalar - Scalar to multiply by.
|
|
113
121
|
* @returns Points multiplied by the scalar.
|
|
114
|
-
*/ async batchMul(points, scalar) {
|
|
115
|
-
|
|
116
|
-
const
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
}
|
|
129
|
-
return parsedResult;
|
|
122
|
+
*/ static async batchMul(points, scalar) {
|
|
123
|
+
await BarretenbergSync.initSingleton();
|
|
124
|
+
const api = BarretenbergSync.getSingleton();
|
|
125
|
+
const response = api.grumpkinBatchMul({
|
|
126
|
+
points: points.map((p)=>({
|
|
127
|
+
x: p.x.toBuffer(),
|
|
128
|
+
y: p.y.toBuffer()
|
|
129
|
+
})),
|
|
130
|
+
scalar: scalar.toBuffer()
|
|
131
|
+
});
|
|
132
|
+
return response.points.map((p)=>Point.fromBuffer(Buffer.concat([
|
|
133
|
+
Buffer.from(p.x),
|
|
134
|
+
Buffer.from(p.y)
|
|
135
|
+
])));
|
|
130
136
|
}
|
|
131
137
|
/**
|
|
132
138
|
* Gets a random field element.
|
|
133
139
|
* @returns Random field element.
|
|
134
|
-
*/ async getRandomFr() {
|
|
135
|
-
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
*/ static async getRandomFr() {
|
|
141
|
+
await BarretenbergSync.initSingleton();
|
|
142
|
+
const api = BarretenbergSync.getSingleton();
|
|
143
|
+
const response = api.grumpkinGetRandomFr({
|
|
144
|
+
dummy: 0
|
|
145
|
+
});
|
|
146
|
+
return Fr.fromBuffer(Buffer.from(response.value));
|
|
140
147
|
}
|
|
141
148
|
/**
|
|
142
149
|
* Converts a 512 bits long buffer to a field.
|
|
143
150
|
* @param uint512Buf - The buffer to convert.
|
|
144
151
|
* @returns Buffer representation of the field element.
|
|
145
|
-
*/ async reduce512BufferToFr(uint512Buf) {
|
|
146
|
-
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
return Fr.fromBuffer(Buffer.from(result));
|
|
152
|
+
*/ static async reduce512BufferToFr(uint512Buf) {
|
|
153
|
+
await BarretenbergSync.initSingleton();
|
|
154
|
+
const api = BarretenbergSync.getSingleton();
|
|
155
|
+
const response = api.grumpkinReduce512({
|
|
156
|
+
input: uint512Buf
|
|
157
|
+
});
|
|
158
|
+
return Fr.fromBuffer(Buffer.from(response.value));
|
|
153
159
|
}
|
|
154
160
|
}
|
|
@@ -23,4 +23,4 @@ export declare function keccak224(input: Buffer): Buffer<ArrayBufferLike>;
|
|
|
23
23
|
* @returns The permuted state.
|
|
24
24
|
*/
|
|
25
25
|
export declare function keccakf1600(state: bigint[]): bigint[];
|
|
26
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8va2VjY2FrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRDs7Ozs7R0FLRztBQUNILHdCQUFnQixTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxRQUFRLDJCQU1qRDtBQUVEOztHQUVHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxVQUs1QztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSwyQkFHdEM7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBK01yRCJ9
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { Fr } from '../../
|
|
1
|
+
import { Fr } from '../../curves/bn254/field.js';
|
|
2
2
|
export declare function vkAsFieldsMegaHonk(input: Buffer): Promise<Fr[]>;
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8va2V5cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFakQsd0JBQXNCLGtCQUFrQixDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBS3JFIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/keys/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/keys/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AAEjD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAKrE"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { BarretenbergSync
|
|
2
|
-
import { Fr } from '../../
|
|
1
|
+
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
|
+
import { Fr } from '../../curves/bn254/field.js';
|
|
3
3
|
export async function vkAsFieldsMegaHonk(input) {
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
4
|
+
await BarretenbergSync.initSingleton();
|
|
5
|
+
const api = BarretenbergSync.getSingleton();
|
|
6
|
+
const response = api.megaVkAsFields({
|
|
7
|
+
verificationKey: input
|
|
8
|
+
});
|
|
9
|
+
return response.fields.map((field)=>Fr.fromBuffer(Buffer.from(field)));
|
|
7
10
|
}
|