@aztec/foundation 0.0.1-fake-c83136db25 → 0.0.2-commit.217f559981
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 +15 -0
- package/dest/array/sorted_array.d.ts.map +1 -0
- package/dest/array/sorted_array.js +109 -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 +14 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +63 -3
- 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 +2 -2
- package/dest/config/network_name.d.ts.map +1 -1
- package/dest/config/network_name.js +2 -0
- 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 +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 +35 -50
- package/dest/crypto/bn254/index.d.ts.map +1 -1
- package/dest/crypto/bn254/index.js +51 -135
- package/dest/crypto/ecdsa/index.d.ts +1 -1
- package/dest/crypto/ecdsa/index.d.ts.map +1 -1
- package/dest/crypto/ecdsa/index.js +4 -12
- package/dest/crypto/ecdsa/signature.d.ts +2 -2
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -1
- package/dest/crypto/ecdsa/signature.js +2 -2
- package/dest/crypto/grumpkin/index.d.ts +4 -2
- package/dest/crypto/grumpkin/index.d.ts.map +1 -1
- package/dest/crypto/grumpkin/index.js +7 -16
- package/dest/crypto/keccak/index.d.ts +1 -1
- package/dest/crypto/keys/index.d.ts +2 -2
- package/dest/crypto/keys/index.d.ts.map +1 -1
- package/dest/crypto/keys/index.js +2 -4
- package/dest/crypto/pedersen/index.d.ts +1 -1
- package/dest/crypto/pedersen/pedersen.noble.d.ts +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.d.ts +2 -2
- package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
- package/dest/crypto/pedersen/pedersen.wasm.js +4 -10
- package/dest/crypto/poseidon/index.d.ts +2 -3
- package/dest/crypto/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/poseidon/index.js +5 -24
- package/dest/crypto/random/index.d.ts +1 -1
- package/dest/crypto/random/index.d.ts.map +1 -1
- package/dest/crypto/random/randomness_singleton.d.ts +4 -3
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -1
- package/dest/crypto/random/randomness_singleton.js +5 -5
- package/dest/crypto/schnorr/index.d.ts +3 -2
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +4 -10
- package/dest/crypto/schnorr/signature.d.ts +2 -2
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- package/dest/crypto/schnorr/signature.js +2 -2
- package/dest/crypto/secp256k1/index.d.ts +1 -1
- package/dest/crypto/secp256k1/index.d.ts.map +1 -1
- package/dest/crypto/secp256k1/index.js +3 -9
- package/dest/crypto/secp256k1-signer/index.d.ts +1 -1
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +1 -1
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/utils.d.ts +43 -5
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/utils.js +76 -8
- package/dest/crypto/serialize.d.ts +1 -1
- package/dest/crypto/sha256/index.d.ts +2 -2
- package/dest/crypto/sha256/index.d.ts.map +1 -1
- package/dest/crypto/sha256/index.js +1 -1
- package/dest/crypto/sha512/index.d.ts +3 -3
- package/dest/crypto/sha512/index.d.ts.map +1 -1
- package/dest/crypto/sha512/index.js +1 -1
- package/dest/crypto/signature/index.d.ts +2 -2
- package/dest/crypto/signature/index.d.ts.map +1 -1
- package/dest/crypto/sync/index.d.ts +1 -1
- package/dest/crypto/sync/index.js +1 -3
- package/dest/crypto/sync/pedersen/index.d.ts +2 -2
- package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
- package/dest/crypto/sync/pedersen/index.js +1 -1
- package/dest/crypto/sync/poseidon/index.d.ts +2 -3
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
- package/dest/crypto/sync/poseidon/index.js +1 -9
- package/dest/{fields/bls12_fields.d.ts → curves/bls12/field.d.ts} +3 -3
- package/dest/curves/bls12/field.d.ts.map +1 -0
- package/dest/{fields/bls12_fields.js → curves/bls12/field.js} +12 -9
- package/dest/curves/bls12/index.d.ts +3 -0
- package/dest/curves/bls12/index.d.ts.map +1 -0
- package/dest/curves/bls12/index.js +2 -0
- package/dest/{fields/bls12_point.d.ts → curves/bls12/point.d.ts} +4 -4
- package/dest/curves/bls12/point.d.ts.map +1 -0
- package/dest/{fields/bls12_point.js → curves/bls12/point.js} +10 -8
- package/dest/{fields/fields.d.ts → curves/bn254/field.d.ts} +16 -15
- package/dest/curves/bn254/field.d.ts.map +1 -0
- package/dest/{fields/fields.js → curves/bn254/field.js} +49 -49
- package/dest/curves/bn254/index.d.ts +3 -0
- package/dest/curves/bn254/index.d.ts.map +1 -0
- package/dest/curves/bn254/index.js +2 -0
- package/dest/curves/bn254/point.d.ts +54 -0
- package/dest/curves/bn254/point.d.ts.map +1 -0
- package/dest/curves/bn254/point.js +143 -0
- package/dest/curves/grumpkin/index.d.ts +10 -0
- package/dest/curves/grumpkin/index.d.ts.map +1 -0
- package/dest/curves/grumpkin/index.js +3 -0
- package/dest/{fields → curves/grumpkin}/point.d.ts +12 -3
- package/dest/curves/grumpkin/point.d.ts.map +1 -0
- package/dest/{fields → curves/grumpkin}/point.js +24 -7
- package/dest/decorators/index.d.ts +1 -1
- package/dest/decorators/memoize.d.ts +1 -1
- package/dest/decorators/memoize.d.ts.map +1 -1
- package/dest/error/index.d.ts +1 -1
- package/dest/eth-address/index.d.ts +12 -2
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-address/index.js +27 -3
- package/dest/eth-signature/eth_signature.d.ts +1 -1
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/eth-signature/index.d.ts +1 -1
- package/dest/fs/index.d.ts +1 -1
- package/dest/fs/run_in_dir.d.ts +1 -1
- package/dest/fs/try_rm_dir.d.ts +1 -1
- package/dest/iterable/all.d.ts +1 -1
- package/dest/iterable/filter.d.ts +1 -1
- package/dest/iterable/index.d.ts +1 -1
- package/dest/iterable/isAsyncIt.d.ts +1 -1
- package/dest/iterable/map.d.ts +1 -1
- package/dest/iterable/peek.d.ts +1 -1
- package/dest/iterable/sort.d.ts +1 -1
- package/dest/iterable/take.d.ts +1 -1
- package/dest/iterable/toArray.d.ts +1 -1
- package/dest/iterator/filter.d.ts +3 -0
- package/dest/iterator/filter.d.ts.map +1 -0
- package/dest/iterator/filter.js +7 -0
- package/dest/iterator/index.d.ts +2 -0
- package/dest/iterator/index.d.ts.map +1 -0
- package/dest/iterator/index.js +1 -0
- package/dest/jest/setup.js +4 -1
- package/dest/json-rpc/client/fetch.d.ts +1 -1
- package/dest/json-rpc/client/index.d.ts +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +2 -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 +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/api_key_auth.d.ts +19 -0
- package/dest/json-rpc/server/api_key_auth.d.ts.map +1 -0
- package/dest/json-rpc/server/api_key_auth.js +57 -0
- package/dest/json-rpc/server/index.d.ts +2 -1
- package/dest/json-rpc/server/index.d.ts.map +1 -1
- package/dest/json-rpc/server/index.js +1 -0
- 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/bigint-utils.d.ts +5 -0
- package/dest/log/bigint-utils.d.ts.map +1 -0
- package/dest/log/bigint-utils.js +18 -0
- 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/gcloud-logger-config.js +3 -0
- package/dest/log/index.d.ts +1 -1
- package/dest/log/libp2p_logger.d.ts +5 -2
- package/dest/log/libp2p_logger.d.ts.map +1 -1
- package/dest/log/libp2p_logger.js +14 -4
- package/dest/log/log-filters.d.ts +17 -4
- package/dest/log/log-filters.d.ts.map +1 -1
- package/dest/log/log-filters.js +26 -12
- package/dest/log/log-levels.d.ts +1 -1
- package/dest/log/log_fn.d.ts +1 -1
- package/dest/log/noir_debug_log_util.d.ts +1 -1
- package/dest/log/pino-logger-server.d.ts +9 -0
- package/dest/log/pino-logger-server.d.ts.map +1 -0
- package/dest/log/pino-logger-server.js +18 -0
- package/dest/log/pino-logger.d.ts +38 -9
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +122 -29
- 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 +2 -2
- package/dest/queue/base_memory_queue.d.ts.map +1 -1
- package/dest/queue/batch_queue.d.ts +1 -1
- package/dest/queue/batch_queue.d.ts.map +1 -1
- package/dest/queue/bounded_serial_queue.d.ts +1 -1
- package/dest/queue/bounded_serial_queue.d.ts.map +1 -1
- package/dest/queue/fifo_memory_queue.d.ts +1 -1
- package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
- package/dest/queue/index.d.ts +1 -1
- package/dest/queue/priority_memory_queue.d.ts +1 -1
- package/dest/queue/priority_memory_queue.d.ts.map +1 -1
- package/dest/queue/priority_queue.d.ts +1 -1
- package/dest/queue/priority_queue.d.ts.map +1 -1
- package/dest/queue/semaphore.d.ts +5 -1
- package/dest/queue/semaphore.d.ts.map +1 -1
- package/dest/queue/serial_queue.d.ts +1 -1
- package/dest/queue/serial_queue.d.ts.map +1 -1
- package/dest/retry/index.d.ts +11 -1
- package/dest/retry/index.d.ts.map +1 -1
- package/dest/retry/index.js +11 -0
- package/dest/running-promise/index.d.ts +1 -1
- package/dest/schemas/api.d.ts +1 -1
- package/dest/schemas/index.d.ts +1 -1
- package/dest/schemas/parse.d.ts +1 -1
- package/dest/schemas/schemas.d.ts +15 -17
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +14 -10
- package/dest/schemas/types.d.ts +31 -1
- package/dest/schemas/types.d.ts.map +1 -1
- package/dest/schemas/types.js +25 -1
- package/dest/schemas/utils.d.ts +4 -4
- package/dest/schemas/utils.d.ts.map +1 -1
- package/dest/schemas/utils.js +15 -5
- package/dest/serialize/buffer_reader.d.ts +14 -4
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +26 -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 +20 -2
- package/dest/serialize/serialize.d.ts.map +1 -1
- package/dest/serialize/serialize.js +32 -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 +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 +26 -1
- package/dest/timer/date.d.ts.map +1 -1
- package/dest/timer/date.js +36 -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 +6 -2
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +6 -0
- package/dest/url/index.d.ts +1 -1
- package/dest/validation/index.d.ts +1 -1
- package/package.json +52 -8
- package/src/array/array.ts +0 -16
- package/src/array/index.ts +1 -0
- package/src/array/sorted_array.ts +138 -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 +67 -3
- package/src/config/env_var.ts +81 -15
- package/src/config/index.ts +39 -6
- package/src/config/network_config.ts +2 -0
- package/src/config/network_name.ts +4 -1
- package/src/config/parse-env.ts +4 -0
- package/src/crypto/aes128/index.ts +2 -2
- package/src/crypto/bls/bn254_keystore.ts +287 -0
- package/src/crypto/bls/index.ts +77 -0
- package/src/crypto/bn254/index.ts +50 -153
- package/src/crypto/ecdsa/index.ts +4 -4
- package/src/crypto/ecdsa/signature.ts +2 -2
- package/src/crypto/grumpkin/index.ts +8 -6
- package/src/crypto/keys/index.ts +2 -2
- package/src/crypto/pedersen/pedersen.wasm.ts +4 -4
- package/src/crypto/poseidon/index.ts +5 -15
- package/src/crypto/random/randomness_singleton.ts +6 -4
- package/src/crypto/schnorr/index.ts +5 -4
- package/src/crypto/schnorr/signature.ts +2 -2
- package/src/crypto/secp256k1/index.ts +3 -3
- package/src/crypto/secp256k1-signer/utils.ts +102 -10
- package/src/crypto/sha256/index.ts +1 -1
- package/src/crypto/sha512/index.ts +1 -1
- package/src/crypto/signature/index.ts +1 -1
- package/src/crypto/sync/index.ts +1 -1
- package/src/crypto/sync/pedersen/index.ts +1 -1
- package/src/crypto/sync/poseidon/index.ts +1 -10
- package/src/{fields/bls12_fields.ts → curves/bls12/field.ts} +6 -6
- package/src/curves/bls12/index.ts +2 -0
- package/src/{fields/bls12_point.ts → curves/bls12/point.ts} +7 -7
- package/src/{fields/fields.ts → curves/bn254/field.ts} +49 -56
- package/src/curves/bn254/index.ts +2 -0
- package/src/curves/bn254/point.ts +170 -0
- package/src/curves/grumpkin/index.ts +11 -0
- package/src/{fields → curves/grumpkin}/point.ts +26 -7
- package/src/eth-address/index.ts +27 -2
- package/src/iterator/filter.ts +11 -0
- package/src/iterator/index.ts +1 -0
- package/src/jest/setup.mjs +4 -1
- package/src/json-rpc/client/safe_json_rpc_client.ts +2 -0
- package/src/json-rpc/client/undici.ts +21 -3
- package/src/json-rpc/server/api_key_auth.ts +63 -0
- package/src/json-rpc/server/index.ts +1 -0
- package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
- package/src/log/bigint-utils.ts +22 -0
- package/src/log/gcloud-logger-config.ts +5 -0
- package/src/log/libp2p_logger.ts +12 -5
- package/src/log/log-filters.ts +29 -11
- package/src/log/pino-logger-server.ts +25 -0
- package/src/log/pino-logger.ts +144 -39
- package/src/queue/base_memory_queue.ts +1 -1
- package/src/queue/semaphore.ts +5 -0
- package/src/retry/index.ts +18 -0
- package/src/schemas/schemas.ts +24 -13
- package/src/schemas/types.ts +33 -0
- package/src/schemas/utils.ts +21 -8
- package/src/serialize/buffer_reader.ts +36 -9
- package/src/serialize/field_reader.ts +1 -1
- package/src/serialize/free_funcs.ts +1 -1
- package/src/serialize/serialize.ts +33 -1
- package/src/sleep/index.ts +6 -0
- package/src/string/index.ts +3 -0
- package/src/testing/files/index.ts +1 -1
- package/src/timer/date.ts +52 -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 +11 -1
- package/dest/crypto/index.d.ts +0 -16
- package/dest/crypto/index.d.ts.map +0 -1
- package/dest/crypto/index.js +0 -15
- 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/index.ts +0 -15
- 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/config/env_var.ts
CHANGED
|
@@ -12,6 +12,9 @@ export type EnvVar =
|
|
|
12
12
|
| 'ARCHIVER_VIEM_POLLING_INTERVAL_MS'
|
|
13
13
|
| 'ARCHIVER_BATCH_SIZE'
|
|
14
14
|
| 'AZTEC_ADMIN_PORT'
|
|
15
|
+
| 'AZTEC_ADMIN_API_KEY_HASH'
|
|
16
|
+
| 'AZTEC_DISABLE_ADMIN_API_KEY'
|
|
17
|
+
| 'AZTEC_RESET_ADMIN_API_KEY'
|
|
15
18
|
| 'AZTEC_NODE_ADMIN_URL'
|
|
16
19
|
| 'AZTEC_NODE_URL'
|
|
17
20
|
| 'AZTEC_PORT'
|
|
@@ -21,12 +24,13 @@ export type EnvVar =
|
|
|
21
24
|
| 'BB_NUM_IVC_VERIFIERS'
|
|
22
25
|
| 'BB_IVC_CONCURRENCY'
|
|
23
26
|
| 'BOOTSTRAP_NODES'
|
|
24
|
-
| '
|
|
25
|
-
| '
|
|
26
|
-
| '
|
|
27
|
+
| 'BLOB_ARCHIVE_API_URL'
|
|
28
|
+
| 'BLOB_FILE_STORE_URLS'
|
|
29
|
+
| 'BLOB_FILE_STORE_UPLOAD_URL'
|
|
30
|
+
| 'BLOB_HEALTHCHECK_UPLOAD_INTERVAL_MINUTES'
|
|
27
31
|
| 'BOT_DA_GAS_LIMIT'
|
|
28
32
|
| 'BOT_FEE_PAYMENT_METHOD'
|
|
29
|
-
| '
|
|
33
|
+
| 'BOT_MIN_FEE_PADDING'
|
|
30
34
|
| 'BOT_FLUSH_SETUP_TRANSACTIONS'
|
|
31
35
|
| 'BOT_FOLLOW_CHAIN'
|
|
32
36
|
| 'BOT_L2_GAS_LIMIT'
|
|
@@ -46,7 +50,10 @@ export type EnvVar =
|
|
|
46
50
|
| 'BOT_TX_MINED_WAIT_SECONDS'
|
|
47
51
|
| 'BOT_MAX_CONSECUTIVE_ERRORS'
|
|
48
52
|
| 'BOT_STOP_WHEN_UNHEALTHY'
|
|
49
|
-
| '
|
|
53
|
+
| 'BOT_MODE'
|
|
54
|
+
| 'BOT_L2_TO_L1_MESSAGES_PER_TX'
|
|
55
|
+
| 'BOT_L1_TO_L2_SEED_COUNT'
|
|
56
|
+
| 'BOT_L1_TO_L2_SEED_INTERVAL'
|
|
50
57
|
| 'COINBASE'
|
|
51
58
|
| 'CRS_PATH'
|
|
52
59
|
| 'DATA_DIRECTORY'
|
|
@@ -63,8 +70,10 @@ export type EnvVar =
|
|
|
63
70
|
| 'PUBLIC_DATA_TREE_MAP_SIZE_KB'
|
|
64
71
|
| 'DEBUG'
|
|
65
72
|
| 'DEBUG_P2P_DISABLE_COLOCATION_PENALTY'
|
|
66
|
-
| '
|
|
73
|
+
| 'ENABLE_PROVER_NODE'
|
|
67
74
|
| 'ETHEREUM_HOSTS'
|
|
75
|
+
| 'ETHEREUM_DEBUG_HOSTS'
|
|
76
|
+
| 'ETHEREUM_ALLOW_NO_DEBUG_HOSTS'
|
|
68
77
|
| 'FEE_RECIPIENT'
|
|
69
78
|
| 'FORCE_COLOR'
|
|
70
79
|
| 'GOVERNANCE_PROPOSER_PAYLOAD_ADDRESS'
|
|
@@ -75,6 +84,7 @@ export type EnvVar =
|
|
|
75
84
|
| 'L1_CONSENSUS_HOST_API_KEY_HEADERS'
|
|
76
85
|
| 'LOG_JSON'
|
|
77
86
|
| 'LOG_MULTILINE'
|
|
87
|
+
| 'LOG_NO_COLOR_PER_ACTOR'
|
|
78
88
|
| 'LOG_LEVEL'
|
|
79
89
|
| 'MNEMONIC'
|
|
80
90
|
| 'NETWORK'
|
|
@@ -86,12 +96,18 @@ export type EnvVar =
|
|
|
86
96
|
| 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT'
|
|
87
97
|
| 'OTEL_COLLECT_INTERVAL_MS'
|
|
88
98
|
| 'OTEL_EXCLUDE_METRICS'
|
|
99
|
+
| 'OTEL_INCLUDE_METRICS'
|
|
89
100
|
| 'OTEL_EXPORT_TIMEOUT_MS'
|
|
90
101
|
| 'PUBLIC_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT'
|
|
91
102
|
| 'PUBLIC_OTEL_INCLUDE_METRICS'
|
|
92
103
|
| 'PUBLIC_OTEL_COLLECT_FROM'
|
|
93
104
|
| 'PUBLIC_OTEL_OPT_OUT'
|
|
105
|
+
| 'P2P_BATCH_TX_REQUESTER_SMART_PARALLEL_WORKER_COUNT'
|
|
106
|
+
| 'P2P_BATCH_TX_REQUESTER_DUMB_PARALLEL_WORKER_COUNT'
|
|
107
|
+
| 'P2P_BATCH_TX_REQUESTER_TX_BATCH_SIZE'
|
|
108
|
+
| 'P2P_BATCH_TX_REQUESTER_BAD_PEER_THRESHOLD'
|
|
94
109
|
| 'P2P_BLOCK_CHECK_INTERVAL_MS'
|
|
110
|
+
| 'P2P_SLOT_CHECK_INTERVAL_MS'
|
|
95
111
|
| 'P2P_BLOCK_REQUEST_BATCH_SIZE'
|
|
96
112
|
| 'P2P_BOOTSTRAP_NODE_ENR_VERSION_CHECK'
|
|
97
113
|
| 'P2P_BOOTSTRAP_NODES_AS_FULL_PEERS'
|
|
@@ -130,12 +146,12 @@ export type EnvVar =
|
|
|
130
146
|
| 'P2P_TRUSTED_PEERS'
|
|
131
147
|
| 'P2P_PRIVATE_PEERS'
|
|
132
148
|
| 'P2P_PREFERRED_PEERS'
|
|
133
|
-
| '
|
|
134
|
-
| 'P2P_TX_POOL_OVERFLOW_FACTOR'
|
|
149
|
+
| 'P2P_MAX_PENDING_TX_COUNT'
|
|
135
150
|
| 'P2P_SEEN_MSG_CACHE_SIZE'
|
|
136
|
-
| 'P2P_DROP_TX'
|
|
137
151
|
| 'P2P_DROP_TX_CHANCE'
|
|
138
152
|
| 'P2P_TX_POOL_DELETE_TXS_AFTER_REORG'
|
|
153
|
+
| 'P2P_MIN_TX_POOL_AGE_MS'
|
|
154
|
+
| 'DEBUG_P2P_INSTRUMENT_MESSAGES'
|
|
139
155
|
| 'PEER_ID_PRIVATE_KEY'
|
|
140
156
|
| 'PEER_ID_PRIVATE_KEY_PATH'
|
|
141
157
|
| 'PROVER_AGENT_COUNT'
|
|
@@ -148,7 +164,10 @@ export type EnvVar =
|
|
|
148
164
|
| 'PROVER_BROKER_BATCH_INTERVAL_MS'
|
|
149
165
|
| 'PROVER_BROKER_BATCH_SIZE'
|
|
150
166
|
| 'PROVER_BROKER_MAX_EPOCHS_TO_KEEP_RESULTS_FOR'
|
|
167
|
+
| 'PROVER_BROKER_DEBUG_REPLAY_ENABLED'
|
|
168
|
+
| 'PROVER_CANCEL_JOBS_ON_STOP'
|
|
151
169
|
| 'PROVER_COORDINATION_NODE_URLS'
|
|
170
|
+
| 'PROVER_PROOF_STORE'
|
|
152
171
|
| 'PROVER_FAILED_PROOF_STORE'
|
|
153
172
|
| 'PROVER_NODE_FAILED_EPOCH_STORE'
|
|
154
173
|
| 'PROVER_NODE_DISABLE_PROOF_PUBLISH'
|
|
@@ -164,12 +183,15 @@ export type EnvVar =
|
|
|
164
183
|
| 'PROVER_PUBLISHER_PRIVATE_KEYS'
|
|
165
184
|
| 'PROVER_PUBLISHER_ADDRESSES'
|
|
166
185
|
| 'PROVER_PUBLISHER_ALLOW_INVALID_STATES'
|
|
186
|
+
| 'PROVER_PUBLISHER_FORWARDER_ADDRESS'
|
|
167
187
|
| 'PROVER_REAL_PROOFS'
|
|
168
188
|
| 'PROVER_TEST_DELAY_FACTOR'
|
|
169
189
|
| 'PROVER_TEST_DELAY_MS'
|
|
170
190
|
| 'PROVER_TEST_DELAY_TYPE'
|
|
191
|
+
| 'PROVER_TEST_VERIFICATION_DELAY_MS'
|
|
171
192
|
| 'PXE_L2_BLOCK_BATCH_SIZE'
|
|
172
193
|
| 'PXE_PROVER_ENABLED'
|
|
194
|
+
| 'PXE_SYNC_CHAIN_TIP'
|
|
173
195
|
| 'RPC_MAX_BATCH_SIZE'
|
|
174
196
|
| 'RPC_MAX_BODY_SIZE'
|
|
175
197
|
| 'RPC_SIMULATE_PUBLIC_MAX_GAS_LIMIT'
|
|
@@ -187,12 +209,17 @@ export type EnvVar =
|
|
|
187
209
|
| 'SEQ_PUBLISHER_PRIVATE_KEYS'
|
|
188
210
|
| 'SEQ_PUBLISHER_ADDRESSES'
|
|
189
211
|
| 'SEQ_PUBLISHER_ALLOW_INVALID_STATES'
|
|
190
|
-
| '
|
|
212
|
+
| 'SEQ_PUBLISHER_FORWARDER_ADDRESS'
|
|
213
|
+
| 'SEQ_POLLING_INTERVAL_MS'
|
|
191
214
|
| 'SEQ_ENFORCE_TIME_TABLE'
|
|
192
|
-
| '
|
|
215
|
+
| 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT'
|
|
193
216
|
| 'SEQ_ATTESTATION_PROPAGATION_TIME'
|
|
217
|
+
| 'SEQ_BLOCK_DURATION_MS'
|
|
218
|
+
| 'SEQ_EXPECTED_BLOCK_PROPOSALS_PER_SLOT'
|
|
219
|
+
| 'SEQ_BUILD_CHECKPOINT_IF_EMPTY'
|
|
194
220
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_COMMITTEE_MEMBER'
|
|
195
221
|
| 'SEQ_SECONDS_BEFORE_INVALIDATING_BLOCK_AS_NON_COMMITTEE_MEMBER'
|
|
222
|
+
| 'SEQ_SKIP_CHECKPOINT_PUBLISH_PERCENT'
|
|
196
223
|
| 'SLASH_MIN_PENALTY_PERCENTAGE'
|
|
197
224
|
| 'SLASH_MAX_PENALTY_PERCENTAGE'
|
|
198
225
|
| 'SLASH_VALIDATORS_ALWAYS'
|
|
@@ -203,6 +230,8 @@ export type EnvVar =
|
|
|
203
230
|
| 'SLASH_INACTIVITY_TARGET_PERCENTAGE'
|
|
204
231
|
| 'SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD'
|
|
205
232
|
| 'SLASH_INVALID_BLOCK_PENALTY'
|
|
233
|
+
| 'SLASH_DUPLICATE_PROPOSAL_PENALTY'
|
|
234
|
+
| 'SLASH_DUPLICATE_ATTESTATION_PENALTY'
|
|
206
235
|
| 'SLASH_OVERRIDE_PAYLOAD'
|
|
207
236
|
| 'SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY'
|
|
208
237
|
| 'SLASH_ATTEST_DESCENDANT_OF_INVALID_PENALTY'
|
|
@@ -227,6 +256,20 @@ export type EnvVar =
|
|
|
227
256
|
| 'TX_COLLECTION_FAST_MAX_PARALLEL_REQUESTS_PER_NODE'
|
|
228
257
|
| 'TX_COLLECTION_NODE_RPC_MAX_BATCH_SIZE'
|
|
229
258
|
| 'TX_COLLECTION_NODE_RPC_URLS'
|
|
259
|
+
| 'TX_COLLECTION_MISSING_TXS_COLLECTOR_TYPE'
|
|
260
|
+
| 'TX_COLLECTION_FILE_STORE_URLS'
|
|
261
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_DELAY_MS'
|
|
262
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_DELAY_MS'
|
|
263
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_WORKER_COUNT'
|
|
264
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_WORKER_COUNT'
|
|
265
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_BASE_MS'
|
|
266
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_BASE_MS'
|
|
267
|
+
| 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_MAX_MS'
|
|
268
|
+
| 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_MAX_MS'
|
|
269
|
+
| 'TX_FILE_STORE_URL'
|
|
270
|
+
| 'TX_FILE_STORE_UPLOAD_CONCURRENCY'
|
|
271
|
+
| 'TX_FILE_STORE_MAX_QUEUE_SIZE'
|
|
272
|
+
| 'TX_FILE_STORE_ENABLED'
|
|
230
273
|
| 'TX_PUBLIC_SETUP_ALLOWLIST'
|
|
231
274
|
| 'TXE_PORT'
|
|
232
275
|
| 'TRANSACTIONS_DISABLED'
|
|
@@ -238,22 +281,25 @@ export type EnvVar =
|
|
|
238
281
|
| 'VALIDATOR_ADDRESSES'
|
|
239
282
|
| 'ROLLUP_VERSION'
|
|
240
283
|
| 'WS_BLOCK_CHECK_INTERVAL_MS'
|
|
241
|
-
| 'WS_PROVEN_BLOCKS_ONLY'
|
|
242
284
|
| 'WS_BLOCK_REQUEST_BATCH_SIZE'
|
|
243
285
|
| 'L1_READER_VIEM_POLLING_INTERVAL_MS'
|
|
244
286
|
| 'WS_DATA_DIRECTORY'
|
|
287
|
+
| 'WS_NUM_HISTORIC_CHECKPOINTS'
|
|
245
288
|
| 'WS_NUM_HISTORIC_BLOCKS'
|
|
246
289
|
| 'ETHEREUM_SLOT_DURATION'
|
|
247
290
|
| 'AZTEC_SLOT_DURATION'
|
|
248
291
|
| 'AZTEC_EPOCH_DURATION'
|
|
249
292
|
| 'AZTEC_TARGET_COMMITTEE_SIZE'
|
|
250
|
-
| '
|
|
293
|
+
| 'AZTEC_LAG_IN_EPOCHS_FOR_VALIDATOR_SET'
|
|
294
|
+
| 'AZTEC_LAG_IN_EPOCHS_FOR_RANDAO'
|
|
295
|
+
| 'AZTEC_INBOX_LAG'
|
|
251
296
|
| 'AZTEC_PROOF_SUBMISSION_EPOCHS'
|
|
252
297
|
| 'AZTEC_ACTIVATION_THRESHOLD'
|
|
253
298
|
| 'AZTEC_EJECTION_THRESHOLD'
|
|
254
299
|
| 'AZTEC_LOCAL_EJECTION_THRESHOLD'
|
|
255
300
|
| 'AZTEC_MANA_TARGET'
|
|
256
301
|
| 'AZTEC_PROVING_COST_PER_MANA'
|
|
302
|
+
| 'AZTEC_INITIAL_ETH_PER_FEE_ASSET'
|
|
257
303
|
| 'AZTEC_SLASHING_QUORUM'
|
|
258
304
|
| 'AZTEC_SLASHING_ROUND_SIZE_IN_EPOCHS'
|
|
259
305
|
| 'AZTEC_SLASHING_LIFETIME_IN_ROUNDS'
|
|
@@ -267,13 +313,18 @@ export type EnvVar =
|
|
|
267
313
|
| 'AZTEC_SLASHER_FLAVOR'
|
|
268
314
|
| 'AZTEC_GOVERNANCE_PROPOSER_QUORUM'
|
|
269
315
|
| 'AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE'
|
|
316
|
+
| 'AZTEC_GOVERNANCE_VOTING_DURATION'
|
|
270
317
|
| 'AZTEC_EXIT_DELAY_SECONDS'
|
|
271
318
|
| 'L1_GAS_LIMIT_BUFFER_PERCENTAGE'
|
|
272
319
|
| 'L1_GAS_PRICE_MAX'
|
|
320
|
+
| 'L1_FEE_PER_GAS_GWEI_MAX'
|
|
273
321
|
| 'L1_BLOB_FEE_PER_GAS_MAX'
|
|
322
|
+
| 'L1_BLOB_FEE_PER_GAS_GWEI_MAX'
|
|
274
323
|
| 'L1_PRIORITY_FEE_BUMP_PERCENTAGE'
|
|
275
324
|
| 'L1_PRIORITY_FEE_RETRY_BUMP_PERCENTAGE'
|
|
325
|
+
| 'L1_MINIMUM_PRIORITY_FEE_PER_GAS_GWEI'
|
|
276
326
|
| 'L1_FIXED_PRIORITY_FEE_PER_GAS'
|
|
327
|
+
| 'L1_FIXED_PRIORITY_FEE_PER_GAS_GWEI'
|
|
277
328
|
| 'L1_TX_MONITOR_MAX_ATTEMPTS'
|
|
278
329
|
| 'L1_TX_MONITOR_CHECK_INTERVAL_MS'
|
|
279
330
|
| 'L1_TX_MONITOR_STALL_TIME_MS'
|
|
@@ -289,9 +340,24 @@ export type EnvVar =
|
|
|
289
340
|
| 'K8S_POD_UID'
|
|
290
341
|
| 'K8S_NAMESPACE_NAME'
|
|
291
342
|
| 'VALIDATOR_REEXECUTE_DEADLINE_MS'
|
|
292
|
-
| 'ALWAYS_REEXECUTE_BLOCK_PROPOSALS'
|
|
293
343
|
| 'AUTO_UPDATE'
|
|
294
344
|
| 'AUTO_UPDATE_URL'
|
|
295
345
|
| 'WEB3_SIGNER_URL'
|
|
296
346
|
| 'SKIP_ARCHIVER_INITIAL_SYNC'
|
|
297
|
-
| 'BLOB_ALLOW_EMPTY_SOURCES'
|
|
347
|
+
| 'BLOB_ALLOW_EMPTY_SOURCES'
|
|
348
|
+
| 'FISHERMAN_MODE'
|
|
349
|
+
| 'MAX_ALLOWED_ETH_CLIENT_DRIFT_SECONDS'
|
|
350
|
+
| 'LEGACY_BLS_CLI'
|
|
351
|
+
| 'DEBUG_FORCE_TX_PROOF_VERIFICATION'
|
|
352
|
+
| 'VALIDATOR_HA_SIGNING_ENABLED'
|
|
353
|
+
| 'VALIDATOR_HA_NODE_ID'
|
|
354
|
+
| 'VALIDATOR_HA_POLLING_INTERVAL_MS'
|
|
355
|
+
| 'VALIDATOR_HA_SIGNING_TIMEOUT_MS'
|
|
356
|
+
| 'VALIDATOR_HA_MAX_STUCK_DUTIES_AGE_MS'
|
|
357
|
+
| 'VALIDATOR_HA_OLD_DUTIES_MAX_AGE_H'
|
|
358
|
+
| 'VALIDATOR_HA_DATABASE_URL'
|
|
359
|
+
| 'VALIDATOR_HA_RUN_MIGRATIONS'
|
|
360
|
+
| 'VALIDATOR_HA_POOL_MAX'
|
|
361
|
+
| 'VALIDATOR_HA_POOL_MIN'
|
|
362
|
+
| 'VALIDATOR_HA_POOL_IDLE_TIMEOUT_MS'
|
|
363
|
+
| '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
|
|
|
@@ -5,7 +5,8 @@ export type NetworkNames =
|
|
|
5
5
|
| 'testnet'
|
|
6
6
|
| 'mainnet'
|
|
7
7
|
| 'next-net'
|
|
8
|
-
| 'devnet'
|
|
8
|
+
| 'devnet'
|
|
9
|
+
| `v${number}-devnet-${number}`;
|
|
9
10
|
|
|
10
11
|
export function getActiveNetworkName(name?: string): NetworkNames {
|
|
11
12
|
const network = name || process.env.NETWORK;
|
|
@@ -23,6 +24,8 @@ export function getActiveNetworkName(name?: string): NetworkNames {
|
|
|
23
24
|
return 'next-net';
|
|
24
25
|
} else if (network === 'devnet') {
|
|
25
26
|
return 'devnet';
|
|
27
|
+
} else if (/^v\d+-devnet-\d+$/.test(network)) {
|
|
28
|
+
return network as `v${number}-devnet-${number}`;
|
|
26
29
|
}
|
|
27
30
|
throw new Error(`Unknown network: ${network}`);
|
|
28
31
|
}
|
|
@@ -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,
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
2
|
+
|
|
3
|
+
import { createCipheriv, createDecipheriv, createHash, pbkdf2Sync, randomUUID } from 'crypto';
|
|
4
|
+
import { readFileSync } from 'fs';
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* BN254 Keystore Format
|
|
9
|
+
*
|
|
10
|
+
* Implements encryption and decryption of keystores for BN254 BLS private keys
|
|
11
|
+
* using PBKDF2 and AES-128-CTR. This format is inspired by EIP-2335 but adapted
|
|
12
|
+
* for BN254 keys rather than BLS12-381.
|
|
13
|
+
*
|
|
14
|
+
* @see https://eips.ethereum.org/EIPS/eip-2335
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Zod schema for validating BN254 keystore structure
|
|
19
|
+
*/
|
|
20
|
+
const bn254KeystoreSchema = z.object({
|
|
21
|
+
crypto: z.object({
|
|
22
|
+
kdf: z.object({
|
|
23
|
+
function: z.literal('pbkdf2'),
|
|
24
|
+
params: z.object({
|
|
25
|
+
dklen: z.number(),
|
|
26
|
+
c: z.number(),
|
|
27
|
+
prf: z.string(),
|
|
28
|
+
salt: z.string(),
|
|
29
|
+
}),
|
|
30
|
+
message: z.string(),
|
|
31
|
+
}),
|
|
32
|
+
checksum: z.object({
|
|
33
|
+
function: z.literal('sha256'),
|
|
34
|
+
params: z.object({}),
|
|
35
|
+
message: z.string(),
|
|
36
|
+
}),
|
|
37
|
+
cipher: z.object({
|
|
38
|
+
function: z.literal('aes-128-ctr'),
|
|
39
|
+
params: z.object({
|
|
40
|
+
iv: z.string(),
|
|
41
|
+
}),
|
|
42
|
+
message: z.string(),
|
|
43
|
+
}),
|
|
44
|
+
}),
|
|
45
|
+
description: z.string().optional(),
|
|
46
|
+
pubkey: z.string(),
|
|
47
|
+
path: z.string(),
|
|
48
|
+
uuid: z.string(),
|
|
49
|
+
version: z.number(),
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Error thrown when BN254 keystore operations fail
|
|
54
|
+
*/
|
|
55
|
+
export class Bn254KeystoreError extends Error {
|
|
56
|
+
constructor(
|
|
57
|
+
message: string,
|
|
58
|
+
public override cause?: Error,
|
|
59
|
+
) {
|
|
60
|
+
super(message);
|
|
61
|
+
this.name = 'Bn254KeystoreError';
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export type Bn254Keystore = z.infer<typeof bn254KeystoreSchema>;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* The JSON structure of a BN254 keystore file.
|
|
69
|
+
* @deprecated Use the inferred type from bn254KeystoreSchema instead
|
|
70
|
+
*/
|
|
71
|
+
export interface Bn254KeystoreInterface {
|
|
72
|
+
crypto: {
|
|
73
|
+
kdf: {
|
|
74
|
+
function: 'pbkdf2';
|
|
75
|
+
params: {
|
|
76
|
+
dklen: number;
|
|
77
|
+
c: number;
|
|
78
|
+
prf: string;
|
|
79
|
+
salt: string;
|
|
80
|
+
};
|
|
81
|
+
message: string;
|
|
82
|
+
};
|
|
83
|
+
checksum: {
|
|
84
|
+
function: 'sha256';
|
|
85
|
+
params: Record<string, never>;
|
|
86
|
+
message: string;
|
|
87
|
+
};
|
|
88
|
+
cipher: {
|
|
89
|
+
function: 'aes-128-ctr';
|
|
90
|
+
params: {
|
|
91
|
+
iv: string;
|
|
92
|
+
};
|
|
93
|
+
message: string;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
description: string;
|
|
97
|
+
pubkey: string;
|
|
98
|
+
path: string;
|
|
99
|
+
uuid: string;
|
|
100
|
+
version: number;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Creates a BN254 keystore object for a BN254 BLS private key.
|
|
105
|
+
*
|
|
106
|
+
* Uses PBKDF2 with SHA-256 for key derivation and AES-128-CTR for encryption,
|
|
107
|
+
* following the EIP-2335 specification format.
|
|
108
|
+
*
|
|
109
|
+
* @param password - Password for encrypting the private key
|
|
110
|
+
* @param privateKeyHex - Private key as 0x-prefixed hex string (32 bytes)
|
|
111
|
+
* @param pubkeyHex - Public key as hex string (compressed or uncompressed)
|
|
112
|
+
* @param derivationPath - BIP-44 style derivation path (e.g., "m/12381/3600/0/0/0")
|
|
113
|
+
* @returns BN254 keystore object ready to be serialized to JSON
|
|
114
|
+
* @throws Error if private key is not 32-byte hex
|
|
115
|
+
*/
|
|
116
|
+
export function createBn254Keystore(
|
|
117
|
+
password: string,
|
|
118
|
+
privateKeyHex: string,
|
|
119
|
+
pubkeyHex: string,
|
|
120
|
+
derivationPath: string,
|
|
121
|
+
): Bn254Keystore {
|
|
122
|
+
const ensureHex = (hex: string) => hex.replace(/^0x/i, '');
|
|
123
|
+
const privHex = ensureHex(privateKeyHex);
|
|
124
|
+
if (!/^[0-9a-fA-F]{64}$/.test(privHex)) {
|
|
125
|
+
throw new Error('BLS private key must be 32-byte hex');
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
const salt = randomBytes(32);
|
|
129
|
+
const iv = randomBytes(16);
|
|
130
|
+
const dk = pbkdf2Sync(Buffer.from(password.normalize('NFKD'), 'utf8'), salt, 262144, 32, 'sha256');
|
|
131
|
+
const cipherKey = dk.subarray(0, 16);
|
|
132
|
+
|
|
133
|
+
const cipher = createCipheriv('aes-128-ctr', cipherKey, iv);
|
|
134
|
+
const plaintext = Buffer.from(privHex, 'hex');
|
|
135
|
+
const ciphertext = Buffer.concat([cipher.update(plaintext), cipher.final()]);
|
|
136
|
+
|
|
137
|
+
const checksum = createHash('sha256')
|
|
138
|
+
.update(Buffer.concat([dk.subarray(16, 32), ciphertext]))
|
|
139
|
+
.digest();
|
|
140
|
+
|
|
141
|
+
const uuid = randomUUID();
|
|
142
|
+
|
|
143
|
+
return {
|
|
144
|
+
crypto: {
|
|
145
|
+
kdf: {
|
|
146
|
+
function: 'pbkdf2',
|
|
147
|
+
params: { dklen: 32, c: 262144, prf: 'hmac-sha256', salt: salt.toString('hex') },
|
|
148
|
+
message: '',
|
|
149
|
+
},
|
|
150
|
+
checksum: {
|
|
151
|
+
function: 'sha256',
|
|
152
|
+
params: {},
|
|
153
|
+
message: checksum.toString('hex'),
|
|
154
|
+
},
|
|
155
|
+
cipher: {
|
|
156
|
+
function: 'aes-128-ctr',
|
|
157
|
+
params: { iv: iv.toString('hex') },
|
|
158
|
+
message: ciphertext.toString('hex'),
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
description: ensureHex(pubkeyHex),
|
|
162
|
+
pubkey: pubkeyHex,
|
|
163
|
+
path: derivationPath ?? '',
|
|
164
|
+
uuid,
|
|
165
|
+
version: 4,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Loads and validates a BN254 keystore file.
|
|
171
|
+
*
|
|
172
|
+
* @param filePath - Path to the BN254 keystore JSON file
|
|
173
|
+
* @returns Validated keystore object
|
|
174
|
+
* @throws Bn254KeystoreError if file cannot be read or validated
|
|
175
|
+
*/
|
|
176
|
+
export function loadBn254Keystore(filePath: string): Bn254Keystore {
|
|
177
|
+
try {
|
|
178
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
179
|
+
const json = JSON.parse(content);
|
|
180
|
+
return bn254KeystoreSchema.parse(json);
|
|
181
|
+
} catch (error) {
|
|
182
|
+
if (error instanceof SyntaxError) {
|
|
183
|
+
throw new Bn254KeystoreError(`Invalid JSON in keystore file: ${filePath}`, error);
|
|
184
|
+
}
|
|
185
|
+
if (error && typeof error === 'object' && 'issues' in error) {
|
|
186
|
+
const issues = (error as any).issues ?? [];
|
|
187
|
+
const message = issues.map((e: any) => `${e.message} at ${e.path?.join('.') ?? 'root'}`).join('; ');
|
|
188
|
+
throw new Bn254KeystoreError(`Invalid BN254 keystore format: ${message}`);
|
|
189
|
+
}
|
|
190
|
+
throw new Bn254KeystoreError(`Failed to load keystore from ${filePath}: ${String(error)}`, error as Error);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Decrypts a BN254 BLS private key from a keystore file.
|
|
196
|
+
*
|
|
197
|
+
* @param filePath - Path to the BN254 keystore JSON file
|
|
198
|
+
* @param password - Password to decrypt the keystore
|
|
199
|
+
* @returns Decrypted private key as 0x-prefixed hex string (32 bytes)
|
|
200
|
+
* @throws Bn254KeystoreError if decryption fails or checksum is invalid
|
|
201
|
+
*/
|
|
202
|
+
export function decryptBn254Keystore(filePath: string, password: string): string {
|
|
203
|
+
const keystore = loadBn254Keystore(filePath);
|
|
204
|
+
return decryptBn254KeystoreFromObject(keystore, password);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Decrypts a BN254 BLS private key from a keystore object.
|
|
209
|
+
*
|
|
210
|
+
* @param keystore - BN254 keystore object
|
|
211
|
+
* @param password - Password to decrypt the keystore
|
|
212
|
+
* @returns Decrypted private key as 0x-prefixed hex string (32 bytes)
|
|
213
|
+
* @throws Bn254KeystoreError if decryption fails or checksum is invalid
|
|
214
|
+
*/
|
|
215
|
+
export function decryptBn254KeystoreFromObject(keystore: Bn254Keystore, password: string): string {
|
|
216
|
+
try {
|
|
217
|
+
const { crypto } = keystore;
|
|
218
|
+
|
|
219
|
+
// Only support PBKDF2 + AES-128-CTR (as per our implementation)
|
|
220
|
+
if (crypto.kdf.function !== 'pbkdf2') {
|
|
221
|
+
throw new Bn254KeystoreError(`Unsupported KDF function: ${crypto.kdf.function}`);
|
|
222
|
+
}
|
|
223
|
+
if (crypto.cipher.function !== 'aes-128-ctr') {
|
|
224
|
+
throw new Bn254KeystoreError(`Unsupported cipher function: ${crypto.cipher.function}`);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// Derive decryption key using PBKDF2
|
|
228
|
+
const salt = Buffer.from(crypto.kdf.params.salt, 'hex');
|
|
229
|
+
const dk = pbkdf2Sync(
|
|
230
|
+
Buffer.from(password.normalize('NFKD'), 'utf8'),
|
|
231
|
+
salt,
|
|
232
|
+
crypto.kdf.params.c,
|
|
233
|
+
crypto.kdf.params.dklen,
|
|
234
|
+
'sha256',
|
|
235
|
+
);
|
|
236
|
+
|
|
237
|
+
const cipherKey = dk.subarray(0, 16);
|
|
238
|
+
const checksumKey = dk.subarray(16, 32);
|
|
239
|
+
|
|
240
|
+
// Decrypt the ciphertext
|
|
241
|
+
const iv = Buffer.from(crypto.cipher.params.iv, 'hex');
|
|
242
|
+
const ciphertext = Buffer.from(crypto.cipher.message, 'hex');
|
|
243
|
+
const decipher = createDecipheriv('aes-128-ctr', cipherKey, iv);
|
|
244
|
+
const decrypted = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
245
|
+
|
|
246
|
+
// Verify checksum
|
|
247
|
+
const computedChecksum = createHash('sha256')
|
|
248
|
+
.update(Buffer.concat([checksumKey, ciphertext]))
|
|
249
|
+
.digest();
|
|
250
|
+
const expectedChecksum = Buffer.from(crypto.checksum.message, 'hex');
|
|
251
|
+
|
|
252
|
+
if (!computedChecksum.equals(expectedChecksum)) {
|
|
253
|
+
throw new Bn254KeystoreError('Checksum verification failed - incorrect password or corrupted keystore');
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Return as 0x-prefixed hex
|
|
257
|
+
return '0x' + decrypted.toString('hex');
|
|
258
|
+
} catch (error) {
|
|
259
|
+
if (error instanceof Bn254KeystoreError) {
|
|
260
|
+
throw error;
|
|
261
|
+
}
|
|
262
|
+
throw new Bn254KeystoreError(`Failed to decrypt keystore: ${String(error)}`, error as Error);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Validates that a decrypted private key matches the public key in the keystore.
|
|
268
|
+
*
|
|
269
|
+
* @param privateKeyHex - Decrypted private key (0x-prefixed)
|
|
270
|
+
* @param expectedPubkey - Expected public key from keystore
|
|
271
|
+
* @param computePublicKey - Function to compute public key from private key
|
|
272
|
+
* @returns true if keys match, false otherwise
|
|
273
|
+
*/
|
|
274
|
+
export function verifyBn254Keypair(
|
|
275
|
+
privateKeyHex: string,
|
|
276
|
+
expectedPubkey: string,
|
|
277
|
+
computePublicKey: (privateKey: string) => string,
|
|
278
|
+
): boolean {
|
|
279
|
+
try {
|
|
280
|
+
const computedPubkey = computePublicKey(privateKeyHex);
|
|
281
|
+
const normalizedExpected = expectedPubkey.toLowerCase().replace(/^0x/i, '');
|
|
282
|
+
const normalizedComputed = computedPubkey.toLowerCase().replace(/^0x/i, '');
|
|
283
|
+
return normalizedExpected === normalizedComputed;
|
|
284
|
+
} catch {
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
287
|
+
}
|