@aztec/foundation 0.0.1-commit.b655e406 → 0.0.1-commit.bf2612ae
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 +6 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +27 -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 +2 -2
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
- package/dest/crypto/random/randomness_singleton.js +3 -3
- package/dest/crypto/schnorr/index.d.ts +3 -2
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +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/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 +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 +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 +1 -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 +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 +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 +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 +29 -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 +31 -0
- package/src/config/env_var.ts +44 -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 +2 -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/json-rpc/client/undici.ts +21 -3
- package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
- package/src/log/pino-logger.ts +2 -1
- 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
package/src/collection/array.ts
CHANGED
|
@@ -250,6 +250,37 @@ export function chunk<T>(items: T[], chunkSize: number): T[][] {
|
|
|
250
250
|
return chunks;
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
+
const UNINITIALIZED = Symbol('uninitialized');
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Splits the given iterable into chunks based on the key returned by the given function.
|
|
257
|
+
* Items must be contiguous to be included in the same chunk.
|
|
258
|
+
*/
|
|
259
|
+
export function chunkBy<T, U>(items: T[], fn: (item: T) => U): T[][] {
|
|
260
|
+
const chunks: T[][] = [];
|
|
261
|
+
let currentChunk: T[] = [];
|
|
262
|
+
let currentKey: U | typeof UNINITIALIZED = UNINITIALIZED;
|
|
263
|
+
|
|
264
|
+
for (const item of items) {
|
|
265
|
+
const key = fn(item);
|
|
266
|
+
if (currentKey === UNINITIALIZED || key !== currentKey) {
|
|
267
|
+
if (currentChunk.length > 0) {
|
|
268
|
+
chunks.push(currentChunk);
|
|
269
|
+
}
|
|
270
|
+
currentChunk = [item];
|
|
271
|
+
currentKey = key;
|
|
272
|
+
} else {
|
|
273
|
+
currentChunk.push(item);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
if (currentChunk.length > 0) {
|
|
278
|
+
chunks.push(currentChunk);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
return chunks;
|
|
282
|
+
}
|
|
283
|
+
|
|
253
284
|
/** Partitions the given iterable into two arrays based on the predicate. */
|
|
254
285
|
export function partition<T>(items: T[], predicate: (item: T) => boolean): [T[], T[]] {
|
|
255
286
|
const pass: T[] = [];
|
package/src/config/env_var.ts
CHANGED
|
@@ -21,12 +21,13 @@ export type EnvVar =
|
|
|
21
21
|
| 'BB_NUM_IVC_VERIFIERS'
|
|
22
22
|
| 'BB_IVC_CONCURRENCY'
|
|
23
23
|
| 'BOOTSTRAP_NODES'
|
|
24
|
-
| '
|
|
25
|
-
| '
|
|
26
|
-
| '
|
|
24
|
+
| 'BLOB_ARCHIVE_API_URL'
|
|
25
|
+
| 'BLOB_FILE_STORE_URLS'
|
|
26
|
+
| 'BLOB_FILE_STORE_UPLOAD_URL'
|
|
27
|
+
| 'BLOB_HEALTHCHECK_UPLOAD_INTERVAL_MINUTES'
|
|
27
28
|
| 'BOT_DA_GAS_LIMIT'
|
|
28
29
|
| 'BOT_FEE_PAYMENT_METHOD'
|
|
29
|
-
| '
|
|
30
|
+
| 'BOT_MIN_FEE_PADDING'
|
|
30
31
|
| 'BOT_FLUSH_SETUP_TRANSACTIONS'
|
|
31
32
|
| 'BOT_FOLLOW_CHAIN'
|
|
32
33
|
| 'BOT_L2_GAS_LIMIT'
|
|
@@ -63,8 +64,9 @@ export type EnvVar =
|
|
|
63
64
|
| 'PUBLIC_DATA_TREE_MAP_SIZE_KB'
|
|
64
65
|
| 'DEBUG'
|
|
65
66
|
| 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY'
|
|
66
|
-
| 'DEPLOY_AZTEC_CONTRACTS_SALT'
|
|
67
67
|
| 'ETHEREUM_HOSTS'
|
|
68
|
+
| 'ETHEREUM_DEBUG_HOSTS'
|
|
69
|
+
| 'ETHEREUM_ALLOW_NO_DEBUG_HOSTS'
|
|
68
70
|
| 'FEE_RECIPIENT'
|
|
69
71
|
| 'FORCE_COLOR'
|
|
70
72
|
| 'GOVERNANCE_PROPOSER_PAYLOAD_ADDRESS'
|
|
@@ -86,6 +88,7 @@ export type EnvVar =
|
|
|
86
88
|
| 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT'
|
|
87
89
|
| 'OTEL_COLLECT_INTERVAL_MS'
|
|
88
90
|
| 'OTEL_EXCLUDE_METRICS'
|
|
91
|
+
| 'OTEL_INCLUDE_METRICS'
|
|
89
92
|
| 'OTEL_EXPORT_TIMEOUT_MS'
|
|
90
93
|
| 'PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
|
|
91
94
|
| 'PUBLIC_OTEL_INCLUDE_METRICS'
|
|
@@ -130,12 +133,12 @@ export type EnvVar =
|
|
|
130
133
|
| 'P2P_TRUSTED_PEERS'
|
|
131
134
|
| 'P2P_PRIVATE_PEERS'
|
|
132
135
|
| 'P2P_PREFERRED_PEERS'
|
|
133
|
-
| '
|
|
134
|
-
| 'P2P_TX_POOL_OVERFLOW_FACTOR'
|
|
136
|
+
| 'P2P_MAX_PENDING_TX_COUNT'
|
|
135
137
|
| 'P2P_SEEN_MSG_CACHE_SIZE'
|
|
136
138
|
| 'P2P_DROP_TX'
|
|
137
139
|
| 'P2P_DROP_TX_CHANCE'
|
|
138
140
|
| 'P2P_TX_POOL_DELETE_TXS_AFTER_REORG'
|
|
141
|
+
| 'DEBUG_P2P_INSTRUMENT_MESSAGES'
|
|
139
142
|
| 'PEER_ID_PRIVATE_KEY'
|
|
140
143
|
| 'PEER_ID_PRIVATE_KEY_PATH'
|
|
141
144
|
| 'PROVER_AGENT_COUNT'
|
|
@@ -148,6 +151,7 @@ export type EnvVar =
|
|
|
148
151
|
| 'PROVER_BROKER_BATCH_INTERVAL_MS'
|
|
149
152
|
| 'PROVER_BROKER_BATCH_SIZE'
|
|
150
153
|
| 'PROVER_BROKER_MAX_EPOCHS_TO_KEEP_RESULTS_FOR'
|
|
154
|
+
| 'PROVER_CANCEL_JOBS_ON_STOP'
|
|
151
155
|
| 'PROVER_COORDINATION_NODE_URLS'
|
|
152
156
|
| 'PROVER_FAILED_PROOF_STORE'
|
|
153
157
|
| 'PROVER_NODE_FAILED_EPOCH_STORE'
|
|
@@ -164,12 +168,15 @@ export type EnvVar =
|
|
|
164
168
|
| 'PROVER_PUBLISHER_PRIVATE_KEYS'
|
|
165
169
|
| 'PROVER_PUBLISHER_ADDRESSES'
|
|
166
170
|
| 'PROVER_PUBLISHER_ALLOW_INVALID_STATES'
|
|
171
|
+
| 'PROVER_PUBLISHER_FORWARDER_ADDRESS'
|
|
167
172
|
| 'PROVER_REAL_PROOFS'
|
|
168
173
|
| 'PROVER_TEST_DELAY_FACTOR'
|
|
169
174
|
| 'PROVER_TEST_DELAY_MS'
|
|
170
175
|
| 'PROVER_TEST_DELAY_TYPE'
|
|
176
|
+
| 'PROVER_TEST_VERIFICATION_DELAY_MS'
|
|
171
177
|
| 'PXE_L2_BLOCK_BATCH_SIZE'
|
|
172
178
|
| 'PXE_PROVER_ENABLED'
|
|
179
|
+
| 'PXE_SYNC_CHAIN_TIP'
|
|
173
180
|
| 'RPC_MAX_BATCH_SIZE'
|
|
174
181
|
| 'RPC_MAX_BODY_SIZE'
|
|
175
182
|
| 'RPC_SIMULATE_PUBLIC_MAX_GAS_LIMIT'
|
|
@@ -187,10 +194,13 @@ export type EnvVar =
|
|
|
187
194
|
| 'SEQ_PUBLISHER_PRIVATE_KEYS'
|
|
188
195
|
| 'SEQ_PUBLISHER_ADDRESSES'
|
|
189
196
|
| 'SEQ_PUBLISHER_ALLOW_INVALID_STATES'
|
|
190
|
-
| '
|
|
197
|
+
| 'SEQ_PUBLISHER_FORWARDER_ADDRESS'
|
|
198
|
+
| 'SEQ_POLLING_INTERVAL_MS'
|
|
191
199
|
| 'SEQ_ENFORCE_TIME_TABLE'
|
|
192
|
-
| '
|
|
200
|
+
| 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT'
|
|
193
201
|
| 'SEQ_ATTESTATION_PROPAGATION_TIME'
|
|
202
|
+
| 'SEQ_BLOCK_DURATION_MS'
|
|
203
|
+
| 'SEQ_BUILD_CHECKPOINT_IF_EMPTY'
|
|
194
204
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_COMMITTEE_MEMBER'
|
|
195
205
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_NON_COMMITTEE_MEMBER'
|
|
196
206
|
| 'SLASH_MIN_PENALTY_PERCENTAGE'
|
|
@@ -238,7 +248,6 @@ export type EnvVar =
|
|
|
238
248
|
| 'VALIDATOR_ADDRESSES'
|
|
239
249
|
| 'ROLLUP_VERSION'
|
|
240
250
|
| 'WS_BLOCK_CHECK_INTERVAL_MS'
|
|
241
|
-
| 'WS_PROVEN_BLOCKS_ONLY'
|
|
242
251
|
| 'WS_BLOCK_REQUEST_BATCH_SIZE'
|
|
243
252
|
| 'L1_READER_VIEM_POLLING_INTERVAL_MS'
|
|
244
253
|
| 'WS_DATA_DIRECTORY'
|
|
@@ -247,13 +256,16 @@ export type EnvVar =
|
|
|
247
256
|
| 'AZTEC_SLOT_DURATION'
|
|
248
257
|
| 'AZTEC_EPOCH_DURATION'
|
|
249
258
|
| 'AZTEC_TARGET_COMMITTEE_SIZE'
|
|
250
|
-
| '
|
|
259
|
+
| 'AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET'
|
|
260
|
+
| 'AZTEC_LAG_IN_EPOCHS_FOR_RANDAO'
|
|
261
|
+
| 'AZTEC_INBOX_LAG'
|
|
251
262
|
| 'AZTEC_PROOF_SUBMISSION_EPOCHS'
|
|
252
263
|
| 'AZTEC_ACTIVATION_THRESHOLD'
|
|
253
264
|
| 'AZTEC_EJECTION_THRESHOLD'
|
|
254
265
|
| 'AZTEC_LOCAL_EJECTION_THRESHOLD'
|
|
255
266
|
| 'AZTEC_MANA_TARGET'
|
|
256
267
|
| 'AZTEC_PROVING_COST_PER_MANA'
|
|
268
|
+
| 'AZTEC_INITIAL_ETH_PER_FEE_ASSET'
|
|
257
269
|
| 'AZTEC_SLASHING_QUORUM'
|
|
258
270
|
| 'AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS'
|
|
259
271
|
| 'AZTEC_SLASHING_LIFETIME_IN_ROUNDS'
|
|
@@ -267,13 +279,18 @@ export type EnvVar =
|
|
|
267
279
|
| 'AZTEC_SLASHER_FLAVOR'
|
|
268
280
|
| 'AZTEC_GOVERNANCE_PROPOSER_QUORUM'
|
|
269
281
|
| 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE'
|
|
282
|
+
| 'AZTEC_GOVERNANCE_VOTING_DURATION'
|
|
270
283
|
| 'AZTEC_EXIT_DELAY_SECONDS'
|
|
271
284
|
| 'L1_GAS_LIMIT_BUFFER_PERCENTAGE'
|
|
272
285
|
| 'L1_GAS_PRICE_MAX'
|
|
286
|
+
| 'L1_FEE_PER_GAS_GWEI_MAX'
|
|
273
287
|
| 'L1_BLOB_FEE_PER_GAS_MAX'
|
|
288
|
+
| 'L1_BLOB_FEE_PER_GAS_GWEI_MAX'
|
|
274
289
|
| 'L1_PRIORITY_FEE_BUMP_PERCENTAGE'
|
|
275
290
|
| 'L1_PRIORITY_FEE_RETRY_BUMP_PERCENTAGE'
|
|
291
|
+
| 'L1_MINIMUM_PRIORITY_FEE_PER_GAS_GWEI'
|
|
276
292
|
| 'L1_FIXED_PRIORITY_FEE_PER_GAS'
|
|
293
|
+
| 'L1_FIXED_PRIORITY_FEE_PER_GAS_GWEI'
|
|
277
294
|
| 'L1_TX_MONITOR_MAX_ATTEMPTS'
|
|
278
295
|
| 'L1_TX_MONITOR_CHECK_INTERVAL_MS'
|
|
279
296
|
| 'L1_TX_MONITOR_STALL_TIME_MS'
|
|
@@ -289,9 +306,23 @@ export type EnvVar =
|
|
|
289
306
|
| 'K8S_POD_UID'
|
|
290
307
|
| 'K8S_NAMESPACE_NAME'
|
|
291
308
|
| 'VALIDATOR_REEXECUTE_DEADLINE_MS'
|
|
292
|
-
| 'ALWAYS_REEXECUTE_BLOCK_PROPOSALS'
|
|
293
309
|
| 'AUTO_UPDATE'
|
|
294
310
|
| 'AUTO_UPDATE_URL'
|
|
295
311
|
| 'WEB3_SIGNER_URL'
|
|
296
312
|
| 'SKIP_ARCHIVER_INITIAL_SYNC'
|
|
297
|
-
| 'BLOB_ALLOW_EMPTY_SOURCES'
|
|
313
|
+
| 'BLOB_ALLOW_EMPTY_SOURCES'
|
|
314
|
+
| 'FISHERMAN_MODE'
|
|
315
|
+
| 'MAX_ALLOWED_ETH_CLIENT_DRIFT_SECONDS'
|
|
316
|
+
| 'LEGACY_BLS_CLI'
|
|
317
|
+
| 'DEBUG_FORCE_TX_PROOF_VERIFICATION'
|
|
318
|
+
| 'VALIDATOR_HA_SIGNING_ENABLED'
|
|
319
|
+
| 'VALIDATOR_HA_NODE_ID'
|
|
320
|
+
| 'VALIDATOR_HA_POLLING_INTERVAL_MS'
|
|
321
|
+
| 'VALIDATOR_HA_SIGNING_TIMEOUT_MS'
|
|
322
|
+
| 'VALIDATOR_HA_MAX_STUCK_DUTIES_AGE_MS'
|
|
323
|
+
| 'VALIDATOR_HA_DATABASE_URL'
|
|
324
|
+
| 'VALIDATOR_HA_RUN_MIGRATIONS'
|
|
325
|
+
| 'VALIDATOR_HA_POOL_MAX'
|
|
326
|
+
| 'VALIDATOR_HA_POOL_MIN'
|
|
327
|
+
| 'VALIDATOR_HA_POOL_IDLE_TIMEOUT_MS'
|
|
328
|
+
| 'VALIDATOR_HA_POOL_CONNECTION_TIMEOUT_MS';
|
package/src/config/index.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Fq, Fr } from '../
|
|
1
|
+
import { Fq, Fr } from '../curves/bn254/field.js';
|
|
2
|
+
import { createConsoleLogger } from '../log/console.js';
|
|
2
3
|
import type { EnvVar } from './env_var.js';
|
|
3
4
|
import { type NetworkNames, getActiveNetworkName } from './network_name.js';
|
|
5
|
+
import { parseBooleanEnv } from './parse-env.js';
|
|
4
6
|
import { SecretValue } from './secret_value.js';
|
|
5
7
|
|
|
6
8
|
export { SecretValue, getActiveNetworkName };
|
|
@@ -17,6 +19,11 @@ export interface ConfigMapping {
|
|
|
17
19
|
isBoolean?: boolean;
|
|
18
20
|
nested?: Record<string, ConfigMapping>;
|
|
19
21
|
fallback?: EnvVar[];
|
|
22
|
+
/**
|
|
23
|
+
* List of deprecated env vars that are still supported but will log a warning.
|
|
24
|
+
* These should also be included in the fallback array for parsing.
|
|
25
|
+
*/
|
|
26
|
+
deprecatedFallback?: { env: EnvVar; message?: string }[];
|
|
20
27
|
}
|
|
21
28
|
|
|
22
29
|
export function isBooleanConfigValue<T>(obj: T, key: keyof T): boolean {
|
|
@@ -72,12 +79,24 @@ export function getConfigFromMappings<T>(configMappings: ConfigMappingsType<T>):
|
|
|
72
79
|
const config = {} as T;
|
|
73
80
|
|
|
74
81
|
for (const key in configMappings) {
|
|
75
|
-
const { env, parseEnv, defaultValue, nested, fallback } = configMappings[key];
|
|
82
|
+
const { env, parseEnv, defaultValue, nested, fallback, deprecatedFallback } = configMappings[key];
|
|
76
83
|
if (nested) {
|
|
77
84
|
(config as any)[key] = getConfigFromMappings(nested);
|
|
78
85
|
} else {
|
|
79
86
|
// Use the shared utility function
|
|
80
87
|
(config as any)[key] = getValueFromEnvWithFallback(env, parseEnv, defaultValue, fallback);
|
|
88
|
+
|
|
89
|
+
// Check for deprecated env vars and warn if logger is set
|
|
90
|
+
if (deprecatedFallback?.length) {
|
|
91
|
+
const userLog = createConsoleLogger('[DEPRECATED]');
|
|
92
|
+
for (const { env: deprecatedEnv, message } of deprecatedFallback) {
|
|
93
|
+
if (process.env[deprecatedEnv]) {
|
|
94
|
+
const warningMessage =
|
|
95
|
+
message ?? `Environment variable ${deprecatedEnv} is deprecated. Please use ${env} instead.`;
|
|
96
|
+
userLog(warningMessage, { deprecatedEnvVar: deprecatedEnv, newEnvVar: env });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
81
100
|
}
|
|
82
101
|
}
|
|
83
102
|
|
|
@@ -130,6 +149,23 @@ export function floatConfigHelper(
|
|
|
130
149
|
};
|
|
131
150
|
}
|
|
132
151
|
|
|
152
|
+
/**
|
|
153
|
+
* Parses an environment variable to a 0-1 percentage value
|
|
154
|
+
*/
|
|
155
|
+
export function percentageConfigHelper(defaultVal: number): Pick<ConfigMapping, 'parseEnv' | 'defaultValue'> {
|
|
156
|
+
return {
|
|
157
|
+
parseEnv: (val: string): number => {
|
|
158
|
+
const parsed = safeParseFloat(val, defaultVal);
|
|
159
|
+
if (parsed < 0 || parsed > 1) {
|
|
160
|
+
throw new TypeError(`Invalid percentage value: ${parsed} should be between 0 and 1`);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
return parsed;
|
|
164
|
+
},
|
|
165
|
+
defaultValue: defaultVal,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
|
|
133
169
|
/**
|
|
134
170
|
* Generates parseEnv and default values for a numerical config value.
|
|
135
171
|
* @param defaultVal - The default numerical value to use if the environment variable is not set or is invalid
|
|
@@ -213,10 +249,7 @@ export function secretValueConfigHelper<T>(parse: (val: string | undefined) => T
|
|
|
213
249
|
};
|
|
214
250
|
}
|
|
215
251
|
|
|
216
|
-
|
|
217
|
-
export function parseBooleanEnv(val: string | undefined): boolean {
|
|
218
|
-
return val !== undefined && ['1', 'true', 'TRUE'].includes(val);
|
|
219
|
-
}
|
|
252
|
+
export { parseBooleanEnv } from './parse-env.js';
|
|
220
253
|
|
|
221
254
|
export function secretStringConfigHelper(): Required<
|
|
222
255
|
Pick<ConfigMapping, 'parseEnv' | 'defaultValue' | 'isBoolean'> & {
|
|
@@ -4,9 +4,11 @@ export const NetworkConfigSchema = z
|
|
|
4
4
|
.object({
|
|
5
5
|
bootnodes: z.array(z.string()),
|
|
6
6
|
snapshots: z.array(z.string()),
|
|
7
|
+
blobFileStoreUrls: z.array(z.string()).optional(),
|
|
7
8
|
registryAddress: z.string(),
|
|
8
9
|
feeAssetHandlerAddress: z.string().optional(),
|
|
9
10
|
l1ChainId: z.number(),
|
|
11
|
+
blockDurationMs: z.number().positive().optional(),
|
|
10
12
|
})
|
|
11
13
|
.passthrough(); // Allow additional unknown fields to pass through
|
|
12
14
|
|
|
@@ -22,7 +22,7 @@ export class Aes128 {
|
|
|
22
22
|
paddingBuffer.fill(numPaddingBytes);
|
|
23
23
|
const input = Buffer.concat([data, paddingBuffer]);
|
|
24
24
|
|
|
25
|
-
await BarretenbergSync.initSingleton(
|
|
25
|
+
await BarretenbergSync.initSingleton();
|
|
26
26
|
const api = BarretenbergSync.getSingleton();
|
|
27
27
|
const response = api.aesEncrypt({
|
|
28
28
|
plaintext: input,
|
|
@@ -42,7 +42,7 @@ export class Aes128 {
|
|
|
42
42
|
* @returns Decrypted data.
|
|
43
43
|
*/
|
|
44
44
|
public async decryptBufferCBCKeepPadding(data: Uint8Array, iv: Uint8Array, key: Uint8Array): Promise<Buffer> {
|
|
45
|
-
await BarretenbergSync.initSingleton(
|
|
45
|
+
await BarretenbergSync.initSingleton();
|
|
46
46
|
const api = BarretenbergSync.getSingleton();
|
|
47
47
|
const response = api.aesDecrypt({
|
|
48
48
|
ciphertext: data,
|
package/src/crypto/bls/index.ts
CHANGED
|
@@ -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)));
|