@aztec-labs/foundation 6.0.0-nightly.20260829
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/README.md +1 -0
- package/dest/array/array.d.ts +68 -0
- package/dest/array/array.d.ts.map +1 -0
- package/dest/array/array.js +100 -0
- package/dest/array/index.d.ts +3 -0
- package/dest/array/index.d.ts.map +1 -0
- package/dest/array/index.js +2 -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 +13 -0
- package/dest/async-map/index.d.ts.map +1 -0
- package/dest/async-map/index.js +17 -0
- package/dest/async-pool/index.d.ts +3 -0
- package/dest/async-pool/index.d.ts.map +1 -0
- package/dest/async-pool/index.js +48 -0
- package/dest/bigint/index.d.ts +7 -0
- package/dest/bigint/index.d.ts.map +1 -0
- package/dest/bigint/index.js +15 -0
- package/dest/bigint-buffer/index.d.ts +40 -0
- package/dest/bigint-buffer/index.d.ts.map +1 -0
- package/dest/bigint-buffer/index.js +81 -0
- 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 +89 -0
- package/dest/branded-types/buffer32_hash.d.ts +27 -0
- package/dest/branded-types/buffer32_hash.d.ts.map +1 -0
- package/dest/branded-types/buffer32_hash.js +12 -0
- package/dest/branded-types/checkpoint_number.d.ts +60 -0
- package/dest/branded-types/checkpoint_number.d.ts.map +1 -0
- package/dest/branded-types/checkpoint_number.js +88 -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 +8 -0
- package/dest/branded-types/index.d.ts.map +1 -0
- package/dest/branded-types/index.js +6 -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 +45 -0
- package/dest/branded-types/slot.d.ts.map +1 -0
- package/dest/branded-types/slot.js +62 -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 +82 -0
- package/dest/buffer/buffer16.d.ts.map +1 -0
- package/dest/buffer/buffer16.js +102 -0
- package/dest/buffer/buffer32.d.ts +54 -0
- package/dest/buffer/buffer32.d.ts.map +1 -0
- package/dest/buffer/buffer32.js +83 -0
- package/dest/buffer/index.d.ts +4 -0
- package/dest/buffer/index.d.ts.map +1 -0
- package/dest/buffer/index.js +3 -0
- package/dest/buffer/utils.d.ts +3 -0
- package/dest/buffer/utils.d.ts.map +1 -0
- package/dest/buffer/utils.js +7 -0
- package/dest/collection/array.d.ts +135 -0
- package/dest/collection/array.d.ts.map +1 -0
- package/dest/collection/array.js +302 -0
- package/dest/collection/index.d.ts +5 -0
- package/dest/collection/index.d.ts.map +1 -0
- package/dest/collection/index.js +4 -0
- package/dest/collection/lru_map.d.ts +41 -0
- package/dest/collection/lru_map.d.ts.map +1 -0
- package/dest/collection/lru_map.js +119 -0
- package/dest/collection/lru_set.d.ts +35 -0
- package/dest/collection/lru_set.d.ts.map +1 -0
- package/dest/collection/lru_set.js +95 -0
- package/dest/collection/object.d.ts +30 -0
- package/dest/collection/object.d.ts.map +1 -0
- package/dest/collection/object.js +57 -0
- package/dest/committable/committable.d.ts +28 -0
- package/dest/committable/committable.d.ts.map +1 -0
- package/dest/committable/committable.js +36 -0
- package/dest/committable/index.d.ts +2 -0
- package/dest/committable/index.d.ts.map +1 -0
- package/dest/committable/index.js +1 -0
- package/dest/config/env_var.d.ts +2 -0
- package/dest/config/env_var.d.ts.map +1 -0
- package/dest/config/env_var.js +1 -0
- package/dest/config/index.d.ts +154 -0
- package/dest/config/index.d.ts.map +1 -0
- package/dest/config/index.js +272 -0
- package/dest/config/network_config.d.ts +28 -0
- package/dest/config/network_config.d.ts.map +1 -0
- package/dest/config/network_config.js +14 -0
- package/dest/config/network_name.d.ts +3 -0
- package/dest/config/network_name.d.ts.map +1 -0
- package/dest/config/network_name.js +19 -0
- package/dest/config/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 +28 -0
- package/dest/config/secret_value.d.ts.map +1 -0
- package/dest/config/secret_value.js +36 -0
- package/dest/crypto/aes128/index.d.ts +33 -0
- package/dest/crypto/aes128/index.d.ts.map +1 -0
- package/dest/crypto/aes128/index.js +71 -0
- package/dest/crypto/bls/bn254_keystore.d.ts +129 -0
- package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -0
- package/dest/crypto/bls/bn254_keystore.js +206 -0
- package/dest/crypto/bls/index.d.ts +13 -0
- package/dest/crypto/bls/index.d.ts.map +1 -0
- package/dest/crypto/bls/index.js +87 -0
- package/dest/crypto/bn254/index.d.ts +39 -0
- package/dest/crypto/bn254/index.d.ts.map +1 -0
- package/dest/crypto/bn254/index.js +56 -0
- package/dest/crypto/ecdsa/index.d.ts +39 -0
- package/dest/crypto/ecdsa/index.d.ts.map +1 -0
- package/dest/crypto/ecdsa/index.js +102 -0
- package/dest/crypto/ecdsa/signature.d.ts +69 -0
- package/dest/crypto/ecdsa/signature.d.ts.map +1 -0
- package/dest/crypto/ecdsa/signature.js +92 -0
- package/dest/crypto/grumpkin/index.d.ts +42 -0
- package/dest/crypto/grumpkin/index.d.ts.map +1 -0
- package/dest/crypto/grumpkin/index.js +160 -0
- package/dest/crypto/keccak/index.d.ts +26 -0
- package/dest/crypto/keccak/index.d.ts.map +1 -0
- package/dest/crypto/keccak/index.js +248 -0
- package/dest/crypto/keys/index.d.ts +4 -0
- package/dest/crypto/keys/index.d.ts.map +1 -0
- package/dest/crypto/keys/index.js +34 -0
- package/dest/crypto/pedersen/index.d.ts +2 -0
- package/dest/crypto/pedersen/index.d.ts.map +1 -0
- package/dest/crypto/pedersen/index.js +1 -0
- package/dest/crypto/pedersen/pedersen.noble.d.ts +9 -0
- package/dest/crypto/pedersen/pedersen.noble.d.ts.map +1 -0
- package/dest/crypto/pedersen/pedersen.noble.js +558 -0
- package/dest/crypto/pedersen/pedersen.wasm.d.ts +19 -0
- package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -0
- package/dest/crypto/pedersen/pedersen.wasm.js +51 -0
- package/dest/crypto/poseidon/index.d.ts +23 -0
- package/dest/crypto/poseidon/index.d.ts.map +1 -0
- package/dest/crypto/poseidon/index.js +71 -0
- package/dest/crypto/random/index.d.ts +23 -0
- package/dest/crypto/random/index.d.ts.map +1 -0
- package/dest/crypto/random/index.js +38 -0
- package/dest/crypto/random/randomness_singleton.d.ts +24 -0
- package/dest/crypto/random/randomness_singleton.d.ts.map +1 -0
- package/dest/crypto/random/randomness_singleton.js +55 -0
- package/dest/crypto/schnorr/index.d.ts +32 -0
- package/dest/crypto/schnorr/index.d.ts.map +1 -0
- package/dest/crypto/schnorr/index.js +60 -0
- package/dest/crypto/schnorr/signature.d.ts +48 -0
- package/dest/crypto/schnorr/signature.d.ts.map +1 -0
- package/dest/crypto/schnorr/signature.js +77 -0
- package/dest/crypto/secp256k1/index.d.ts +30 -0
- package/dest/crypto/secp256k1/index.d.ts.map +1 -0
- package/dest/crypto/secp256k1/index.js +121 -0
- package/dest/crypto/secp256k1-signer/index.d.ts +3 -0
- package/dest/crypto/secp256k1-signer/index.d.ts.map +1 -0
- package/dest/crypto/secp256k1-signer/index.js +2 -0
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +24 -0
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -0
- package/dest/crypto/secp256k1-signer/secp256k1_signer.js +30 -0
- package/dest/crypto/secp256k1-signer/utils.d.ts +102 -0
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -0
- package/dest/crypto/secp256k1-signer/utils.js +196 -0
- package/dest/crypto/sha256/index.d.ts +37 -0
- package/dest/crypto/sha256/index.d.ts.map +1 -0
- package/dest/crypto/sha256/index.js +208 -0
- package/dest/crypto/sha512/index.d.ts +9 -0
- package/dest/crypto/sha512/index.d.ts.map +1 -0
- package/dest/crypto/sha512/index.js +12 -0
- package/dest/crypto/signature/index.d.ts +17 -0
- package/dest/crypto/signature/index.d.ts.map +1 -0
- package/dest/crypto/signature/index.js +3 -0
- package/dest/crypto/sync/index.d.ts +3 -0
- package/dest/crypto/sync/index.d.ts.map +1 -0
- package/dest/crypto/sync/index.js +4 -0
- package/dest/crypto/sync/pedersen/index.d.ts +19 -0
- package/dest/crypto/sync/pedersen/index.d.ts.map +1 -0
- package/dest/crypto/sync/pedersen/index.js +45 -0
- package/dest/crypto/sync/poseidon/index.d.ts +23 -0
- package/dest/crypto/sync/poseidon/index.d.ts.map +1 -0
- package/dest/crypto/sync/poseidon/index.js +60 -0
- package/dest/curves/bls12/field.d.ts +148 -0
- package/dest/curves/bls12/field.d.ts.map +1 -0
- package/dest/curves/bls12/field.js +357 -0
- 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/curves/bls12/point.d.ts +229 -0
- package/dest/curves/bls12/point.d.ts.map +1 -0
- package/dest/curves/bls12/point.js +400 -0
- package/dest/curves/bn254/field.d.ts +185 -0
- package/dest/curves/bn254/field.d.ts.map +1 -0
- package/dest/curves/bn254/field.js +420 -0
- 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/curves/grumpkin/point.d.ts +168 -0
- package/dest/curves/grumpkin/point.d.ts.map +1 -0
- package/dest/curves/grumpkin/point.js +263 -0
- package/dest/decorators/index.d.ts +2 -0
- package/dest/decorators/index.d.ts.map +1 -0
- package/dest/decorators/index.js +1 -0
- package/dest/decorators/memoize.d.ts +2 -0
- package/dest/decorators/memoize.d.ts.map +1 -0
- package/dest/decorators/memoize.js +11 -0
- package/dest/error/index.d.ts +21 -0
- package/dest/error/index.d.ts.map +1 -0
- package/dest/error/index.js +17 -0
- package/dest/eth-address/index.d.ts +143 -0
- package/dest/eth-address/index.d.ts.map +1 -0
- package/dest/eth-address/index.js +224 -0
- package/dest/eth-signature/eth_signature.d.ts +65 -0
- package/dest/eth-signature/eth_signature.d.ts.map +1 -0
- package/dest/eth-signature/eth_signature.js +110 -0
- package/dest/eth-signature/index.d.ts +2 -0
- package/dest/eth-signature/index.d.ts.map +1 -0
- package/dest/eth-signature/index.js +1 -0
- package/dest/fifo/fifo_frame_reader.d.ts +41 -0
- package/dest/fifo/fifo_frame_reader.d.ts.map +1 -0
- package/dest/fifo/fifo_frame_reader.js +91 -0
- package/dest/fifo/index.d.ts +2 -0
- package/dest/fifo/index.d.ts.map +1 -0
- package/dest/fifo/index.js +1 -0
- package/dest/fifo_set/fifo_set.d.ts +15 -0
- package/dest/fifo_set/fifo_set.d.ts.map +1 -0
- package/dest/fifo_set/fifo_set.js +39 -0
- package/dest/fifo_set/index.d.ts +2 -0
- package/dest/fifo_set/index.d.ts.map +1 -0
- package/dest/fifo_set/index.js +1 -0
- package/dest/fs/index.d.ts +3 -0
- package/dest/fs/index.d.ts.map +1 -0
- package/dest/fs/index.js +2 -0
- package/dest/fs/run_in_dir.d.ts +2 -0
- package/dest/fs/run_in_dir.d.ts.map +1 -0
- package/dest/fs/run_in_dir.js +31 -0
- package/dest/fs/try_rm_dir.d.ts +3 -0
- package/dest/fs/try_rm_dir.d.ts.map +1 -0
- package/dest/fs/try_rm_dir.js +16 -0
- package/dest/iterable/all.d.ts +9 -0
- package/dest/iterable/all.d.ts.map +1 -0
- package/dest/iterable/all.js +18 -0
- package/dest/iterable/filter.d.ts +10 -0
- package/dest/iterable/filter.d.ts.map +1 -0
- package/dest/iterable/filter.js +48 -0
- package/dest/iterable/first.d.ts +8 -0
- package/dest/iterable/first.d.ts.map +1 -0
- package/dest/iterable/first.js +11 -0
- package/dest/iterable/index.d.ts +9 -0
- package/dest/iterable/index.d.ts.map +1 -0
- package/dest/iterable/index.js +8 -0
- package/dest/iterable/isAsyncIt.d.ts +7 -0
- package/dest/iterable/isAsyncIt.d.ts.map +1 -0
- package/dest/iterable/isAsyncIt.js +7 -0
- package/dest/iterable/map.d.ts +12 -0
- package/dest/iterable/map.d.ts.map +1 -0
- package/dest/iterable/map.js +36 -0
- package/dest/iterable/peek.d.ts +19 -0
- package/dest/iterable/peek.d.ts.map +1 -0
- package/dest/iterable/peek.js +33 -0
- package/dest/iterable/sort.d.ts +14 -0
- package/dest/iterable/sort.d.ts.map +1 -0
- package/dest/iterable/sort.js +15 -0
- package/dest/iterable/take.d.ts +10 -0
- package/dest/iterable/take.d.ts.map +1 -0
- package/dest/iterable/take.js +32 -0
- package/dest/iterable/toArray.d.ts +2 -0
- package/dest/iterable/toArray.d.ts.map +1 -0
- package/dest/iterable/toArray.js +7 -0
- 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/env.js +48 -0
- package/dest/jest/setup.js +34 -0
- package/dest/jest/setupAfterEnv.js +3 -0
- package/dest/json-rpc/client/fetch.d.ts +37 -0
- package/dest/json-rpc/client/fetch.d.ts.map +1 -0
- package/dest/json-rpc/client/fetch.js +67 -0
- package/dest/json-rpc/client/index.d.ts +3 -0
- package/dest/json-rpc/client/index.d.ts.map +1 -0
- package/dest/json-rpc/client/index.js +2 -0
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +33 -0
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -0
- package/dest/json-rpc/client/safe_json_rpc_client.js +218 -0
- package/dest/json-rpc/client/undici.d.ts +16 -0
- package/dest/json-rpc/client/undici.d.ts.map +1 -0
- package/dest/json-rpc/client/undici.js +112 -0
- package/dest/json-rpc/convert.d.ts +20 -0
- package/dest/json-rpc/convert.d.ts.map +1 -0
- package/dest/json-rpc/convert.js +40 -0
- package/dest/json-rpc/errors.d.ts +4 -0
- package/dest/json-rpc/errors.d.ts.map +1 -0
- package/dest/json-rpc/errors.js +6 -0
- package/dest/json-rpc/fixtures/class_a.d.ts +13 -0
- package/dest/json-rpc/fixtures/class_a.d.ts.map +1 -0
- package/dest/json-rpc/fixtures/class_a.js +20 -0
- package/dest/json-rpc/fixtures/class_b.d.ts +13 -0
- package/dest/json-rpc/fixtures/class_b.d.ts.map +1 -0
- package/dest/json-rpc/fixtures/class_b.js +20 -0
- package/dest/json-rpc/fixtures/test_state.d.ts +85 -0
- package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -0
- package/dest/json-rpc/fixtures/test_state.js +171 -0
- package/dest/json-rpc/index.d.ts +3 -0
- package/dest/json-rpc/index.d.ts.map +1 -0
- package/dest/json-rpc/index.js +2 -0
- package/dest/json-rpc/js_utils.d.ts +13 -0
- package/dest/json-rpc/js_utils.d.ts.map +1 -0
- package/dest/json-rpc/js_utils.js +16 -0
- 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 +3 -0
- package/dest/json-rpc/server/index.d.ts.map +1 -0
- package/dest/json-rpc/server/index.js +2 -0
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts +177 -0
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -0
- package/dest/json-rpc/server/safe_json_rpc_server.js +570 -0
- package/dest/json-rpc/test/index.d.ts +2 -0
- package/dest/json-rpc/test/index.d.ts.map +1 -0
- package/dest/json-rpc/test/index.js +1 -0
- package/dest/json-rpc/test/integration.d.ts +14 -0
- package/dest/json-rpc/test/integration.d.ts.map +1 -0
- package/dest/json-rpc/test/integration.js +21 -0
- package/dest/log/aws-logger-config.d.ts +8 -0
- package/dest/log/aws-logger-config.d.ts.map +1 -0
- package/dest/log/aws-logger-config.js +55 -0
- 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 +21 -0
- package/dest/log/console.d.ts +11 -0
- package/dest/log/console.d.ts.map +1 -0
- package/dest/log/console.js +36 -0
- package/dest/log/gcloud-logger-config.d.ts +13 -0
- package/dest/log/gcloud-logger-config.d.ts.map +1 -0
- package/dest/log/gcloud-logger-config.js +61 -0
- package/dest/log/index.d.ts +7 -0
- package/dest/log/index.d.ts.map +1 -0
- package/dest/log/index.js +6 -0
- package/dest/log/libp2p_logger.d.ts +10 -0
- package/dest/log/libp2p_logger.d.ts.map +1 -0
- package/dest/log/libp2p_logger.js +76 -0
- package/dest/log/log-filters.d.ts +20 -0
- package/dest/log/log-filters.d.ts.map +1 -0
- package/dest/log/log-filters.js +73 -0
- package/dest/log/log-levels.d.ts +3 -0
- package/dest/log/log-levels.d.ts.map +1 -0
- package/dest/log/log-levels.js +10 -0
- package/dest/log/log_fn.d.ts +7 -0
- package/dest/log/log_fn.d.ts.map +1 -0
- package/dest/log/log_fn.js +1 -0
- package/dest/log/noir_debug_log_util.d.ts +14 -0
- package/dest/log/noir_debug_log_util.d.ts.map +1 -0
- package/dest/log/noir_debug_log_util.js +14 -0
- package/dest/log/pino-logger-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 +86 -0
- package/dest/log/pino-logger.d.ts.map +1 -0
- package/dest/log/pino-logger.js +347 -0
- package/dest/message/index.d.ts +32 -0
- package/dest/message/index.d.ts.map +1 -0
- package/dest/message/index.js +27 -0
- package/dest/mutex/index.d.ts +53 -0
- package/dest/mutex/index.d.ts.map +1 -0
- package/dest/mutex/index.js +78 -0
- package/dest/mutex/mutex_database.d.ts +10 -0
- package/dest/mutex/mutex_database.d.ts.map +1 -0
- package/dest/mutex/mutex_database.js +4 -0
- package/dest/noir/index.d.ts +2 -0
- package/dest/noir/index.d.ts.map +1 -0
- package/dest/noir/index.js +1 -0
- package/dest/noir/noir_package_config.d.ts +44 -0
- package/dest/noir/noir_package_config.d.ts.map +1 -0
- package/dest/noir/noir_package_config.js +36 -0
- package/dest/number/index.d.ts +3 -0
- package/dest/number/index.d.ts.map +1 -0
- package/dest/number/index.js +12 -0
- package/dest/profiler/index.d.ts +2 -0
- package/dest/profiler/index.d.ts.map +1 -0
- package/dest/profiler/index.js +1 -0
- package/dest/profiler/profiler.d.ts +8 -0
- package/dest/profiler/profiler.d.ts.map +1 -0
- package/dest/profiler/profiler.js +97 -0
- package/dest/promise/index.d.ts +3 -0
- package/dest/promise/index.d.ts.map +1 -0
- package/dest/promise/index.js +2 -0
- package/dest/promise/running-promise.d.ts +53 -0
- package/dest/promise/running-promise.d.ts.map +1 -0
- package/dest/promise/running-promise.js +122 -0
- package/dest/promise/utils.d.ts +25 -0
- package/dest/promise/utils.d.ts.map +1 -0
- package/dest/promise/utils.js +40 -0
- package/dest/queue/base_memory_queue.d.ts +65 -0
- package/dest/queue/base_memory_queue.d.ts.map +1 -0
- package/dest/queue/base_memory_queue.js +116 -0
- package/dest/queue/batch_queue.d.ts +47 -0
- package/dest/queue/batch_queue.d.ts.map +1 -0
- package/dest/queue/batch_queue.js +106 -0
- package/dest/queue/bounded_serial_queue.d.ts +56 -0
- package/dest/queue/bounded_serial_queue.d.ts.map +1 -0
- package/dest/queue/bounded_serial_queue.js +84 -0
- package/dest/queue/fifo_memory_queue.d.ts +21 -0
- package/dest/queue/fifo_memory_queue.d.ts.map +1 -0
- package/dest/queue/fifo_memory_queue.js +29 -0
- package/dest/queue/index.d.ts +7 -0
- package/dest/queue/index.d.ts.map +1 -0
- package/dest/queue/index.js +6 -0
- package/dest/queue/priority_memory_queue.d.ts +13 -0
- package/dest/queue/priority_memory_queue.d.ts.map +1 -0
- package/dest/queue/priority_memory_queue.js +16 -0
- package/dest/queue/priority_queue.d.ts +14 -0
- package/dest/queue/priority_queue.d.ts.map +1 -0
- package/dest/queue/priority_queue.js +29 -0
- package/dest/queue/semaphore.d.ts +27 -0
- package/dest/queue/semaphore.d.ts.map +1 -0
- package/dest/queue/semaphore.js +26 -0
- package/dest/queue/serial_queue.d.ts +49 -0
- package/dest/queue/serial_queue.d.ts.map +1 -0
- package/dest/queue/serial_queue.js +74 -0
- package/dest/retry/index.d.ts +83 -0
- package/dest/retry/index.d.ts.map +1 -0
- package/dest/retry/index.js +146 -0
- package/dest/running-promise/index.d.ts +2 -0
- package/dest/running-promise/index.d.ts.map +1 -0
- package/dest/running-promise/index.js +1 -0
- package/dest/schemas/api.d.ts +23 -0
- package/dest/schemas/api.d.ts.map +1 -0
- package/dest/schemas/api.js +9 -0
- package/dest/schemas/index.d.ts +6 -0
- package/dest/schemas/index.d.ts.map +1 -0
- package/dest/schemas/index.js +5 -0
- package/dest/schemas/parse.d.ts +9 -0
- package/dest/schemas/parse.d.ts.map +1 -0
- package/dest/schemas/parse.js +23 -0
- package/dest/schemas/schemas.d.ts +46 -0
- package/dest/schemas/schemas.d.ts.map +1 -0
- package/dest/schemas/schemas.js +56 -0
- package/dest/schemas/types.d.ts +33 -0
- package/dest/schemas/types.d.ts.map +1 -0
- package/dest/schemas/types.js +25 -0
- package/dest/schemas/utils.d.ts +47 -0
- package/dest/schemas/utils.d.ts.map +1 -0
- package/dest/schemas/utils.js +54 -0
- package/dest/serialize/buffer_reader.d.ts +274 -0
- package/dest/serialize/buffer_reader.d.ts.map +1 -0
- package/dest/serialize/buffer_reader.js +359 -0
- package/dest/serialize/buffer_sink.d.ts +134 -0
- package/dest/serialize/buffer_sink.d.ts.map +1 -0
- package/dest/serialize/buffer_sink.js +297 -0
- package/dest/serialize/field_reader.d.ts +121 -0
- package/dest/serialize/field_reader.d.ts.map +1 -0
- package/dest/serialize/field_reader.js +164 -0
- package/dest/serialize/free_funcs.d.ts +107 -0
- package/dest/serialize/free_funcs.d.ts.map +1 -0
- package/dest/serialize/free_funcs.js +183 -0
- package/dest/serialize/index.d.ts +8 -0
- package/dest/serialize/index.d.ts.map +1 -0
- package/dest/serialize/index.js +7 -0
- package/dest/serialize/serialize.d.ts +168 -0
- package/dest/serialize/serialize.d.ts.map +1 -0
- package/dest/serialize/serialize.js +258 -0
- package/dest/serialize/type_registry.d.ts +23 -0
- package/dest/serialize/type_registry.d.ts.map +1 -0
- package/dest/serialize/type_registry.js +61 -0
- package/dest/serialize/types.d.ts +33 -0
- package/dest/serialize/types.d.ts.map +1 -0
- package/dest/serialize/types.js +21 -0
- package/dest/sleep/index.d.ts +54 -0
- package/dest/sleep/index.d.ts.map +1 -0
- package/dest/sleep/index.js +80 -0
- package/dest/string/index.d.ts +18 -0
- package/dest/string/index.d.ts.map +1 -0
- package/dest/string/index.js +62 -0
- package/dest/testing/files/index.d.ts +20 -0
- package/dest/testing/files/index.d.ts.map +1 -0
- package/dest/testing/files/index.js +59 -0
- package/dest/testing/formatting.d.ts +4 -0
- package/dest/testing/formatting.d.ts.map +1 -0
- package/dest/testing/formatting.js +3 -0
- package/dest/testing/index.d.ts +5 -0
- package/dest/testing/index.d.ts.map +1 -0
- package/dest/testing/index.js +4 -0
- package/dest/testing/port_allocator.d.ts +10 -0
- package/dest/testing/port_allocator.d.ts.map +1 -0
- package/dest/testing/port_allocator.js +29 -0
- package/dest/testing/snapshot_serializer.d.ts +5 -0
- package/dest/testing/snapshot_serializer.d.ts.map +1 -0
- package/dest/testing/snapshot_serializer.js +32 -0
- package/dest/testing/test_data.d.ts +7 -0
- package/dest/testing/test_data.d.ts.map +1 -0
- package/dest/testing/test_data.js +29 -0
- package/dest/timer/date.d.ts +39 -0
- package/dest/timer/date.d.ts.map +1 -0
- package/dest/timer/date.js +62 -0
- package/dest/timer/elapsed.d.ts +13 -0
- package/dest/timer/elapsed.d.ts.map +1 -0
- package/dest/timer/elapsed.js +25 -0
- package/dest/timer/index.d.ts +5 -0
- package/dest/timer/index.d.ts.map +1 -0
- package/dest/timer/index.js +4 -0
- package/dest/timer/timeout.d.ts +56 -0
- package/dest/timer/timeout.d.ts.map +1 -0
- package/dest/timer/timeout.js +113 -0
- package/dest/timer/timer.d.ts +37 -0
- package/dest/timer/timer.d.ts.map +1 -0
- package/dest/timer/timer.js +40 -0
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts +111 -0
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -0
- package/dest/transport/dispatch/create_dispatch_proxy.js +59 -0
- package/dest/transport/dispatch/messages.d.ts +52 -0
- package/dest/transport/dispatch/messages.d.ts.map +1 -0
- package/dest/transport/dispatch/messages.js +13 -0
- package/dest/transport/index.d.ts +10 -0
- package/dest/transport/index.d.ts.map +1 -0
- package/dest/transport/index.js +9 -0
- package/dest/transport/interface/connector.d.ts +8 -0
- package/dest/transport/interface/connector.d.ts.map +1 -0
- package/dest/transport/interface/connector.js +3 -0
- package/dest/transport/interface/listener.d.ts +12 -0
- package/dest/transport/interface/listener.d.ts.map +1 -0
- package/dest/transport/interface/listener.js +4 -0
- package/dest/transport/interface/socket.d.ts +13 -0
- package/dest/transport/interface/socket.d.ts.map +1 -0
- package/dest/transport/interface/socket.js +7 -0
- package/dest/transport/interface/transferable.d.ts +68 -0
- package/dest/transport/interface/transferable.d.ts.map +1 -0
- package/dest/transport/interface/transferable.js +63 -0
- package/dest/transport/node/index.d.ts +3 -0
- package/dest/transport/node/index.d.ts.map +1 -0
- package/dest/transport/node/index.js +2 -0
- package/dest/transport/node/node_connector.d.ts +27 -0
- package/dest/transport/node/node_connector.d.ts.map +1 -0
- package/dest/transport/node/node_connector.js +26 -0
- package/dest/transport/node/node_connector_socket.d.ts +41 -0
- package/dest/transport/node/node_connector_socket.d.ts.map +1 -0
- package/dest/transport/node/node_connector_socket.js +44 -0
- package/dest/transport/node/node_listener.d.ts +25 -0
- package/dest/transport/node/node_listener.d.ts.map +1 -0
- package/dest/transport/node/node_listener.js +26 -0
- package/dest/transport/node/node_listener_socket.d.ts +36 -0
- package/dest/transport/node/node_listener_socket.d.ts.map +1 -0
- package/dest/transport/node/node_listener_socket.js +40 -0
- package/dest/transport/transport_client.d.ts +60 -0
- package/dest/transport/transport_client.d.ts.map +1 -0
- package/dest/transport/transport_client.js +96 -0
- package/dest/transport/transport_server.d.ts +47 -0
- package/dest/transport/transport_server.d.ts.map +1 -0
- package/dest/transport/transport_server.js +114 -0
- package/dest/trees/balanced_merkle_tree_root.d.ts +16 -0
- package/dest/trees/balanced_merkle_tree_root.d.ts.map +1 -0
- package/dest/trees/balanced_merkle_tree_root.js +50 -0
- package/dest/trees/hasher.d.ts +40 -0
- package/dest/trees/hasher.d.ts.map +1 -0
- package/dest/trees/hasher.js +10 -0
- package/dest/trees/index.d.ts +13 -0
- package/dest/trees/index.d.ts.map +1 -0
- package/dest/trees/index.js +12 -0
- package/dest/trees/indexed_merkle_tree.d.ts +11 -0
- package/dest/trees/indexed_merkle_tree.d.ts.map +1 -0
- package/dest/trees/indexed_merkle_tree.js +27 -0
- package/dest/trees/indexed_merkle_tree_calculator.d.ts +21 -0
- package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -0
- package/dest/trees/indexed_merkle_tree_calculator.js +87 -0
- package/dest/trees/indexed_tree_leaf.d.ts +55 -0
- package/dest/trees/indexed_tree_leaf.d.ts.map +1 -0
- package/dest/trees/indexed_tree_leaf.js +5 -0
- package/dest/trees/membership_witness.d.ts +63 -0
- package/dest/trees/membership_witness.d.ts.map +1 -0
- package/dest/trees/membership_witness.js +83 -0
- package/dest/trees/merkle_tree.d.ts +16 -0
- package/dest/trees/merkle_tree.d.ts.map +1 -0
- package/dest/trees/merkle_tree.js +58 -0
- package/dest/trees/merkle_tree_calculator.d.ts +16 -0
- package/dest/trees/merkle_tree_calculator.d.ts.map +1 -0
- package/dest/trees/merkle_tree_calculator.js +57 -0
- package/dest/trees/sibling_path.d.ts +96 -0
- package/dest/trees/sibling_path.d.ts.map +1 -0
- package/dest/trees/sibling_path.js +139 -0
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +48 -0
- package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -0
- package/dest/trees/unbalanced_merkle_tree_calculator.js +154 -0
- package/dest/trees/unbalanced_merkle_tree_root.d.ts +27 -0
- package/dest/trees/unbalanced_merkle_tree_root.d.ts.map +1 -0
- package/dest/trees/unbalanced_merkle_tree_root.js +83 -0
- package/dest/trees/unbalanced_tree_store.d.ts +24 -0
- package/dest/trees/unbalanced_tree_store.d.ts.map +1 -0
- package/dest/trees/unbalanced_tree_store.js +148 -0
- package/dest/types/index.d.ts +68 -0
- package/dest/types/index.d.ts.map +1 -0
- package/dest/types/index.js +24 -0
- package/dest/url/index.d.ts +9 -0
- package/dest/url/index.d.ts.map +1 -0
- package/dest/url/index.js +62 -0
- package/dest/validation/index.d.ts +9 -0
- package/dest/validation/index.d.ts.map +1 -0
- package/dest/validation/index.js +15 -0
- package/package.json +213 -0
- package/src/array/array.ts +147 -0
- package/src/array/index.ts +2 -0
- package/src/array/sorted_array.ts +138 -0
- package/src/async-map/index.ts +18 -0
- package/src/async-pool/index.ts +51 -0
- package/src/bigint/index.ts +20 -0
- package/src/bigint-buffer/index.ts +92 -0
- package/src/branded-types/block_number.ts +135 -0
- package/src/branded-types/buffer32_hash.ts +38 -0
- package/src/branded-types/checkpoint_number.ts +130 -0
- package/src/branded-types/epoch.ts +88 -0
- package/src/branded-types/index.ts +8 -0
- package/src/branded-types/index_within_checkpoint.ts +88 -0
- package/src/branded-types/slot.ts +93 -0
- package/src/branded-types/types.ts +2 -0
- package/src/buffer/buffer16.ts +135 -0
- package/src/buffer/buffer32.ts +116 -0
- package/src/buffer/index.ts +3 -0
- package/src/buffer/utils.ts +8 -0
- package/src/collection/array.ts +351 -0
- package/src/collection/index.ts +4 -0
- package/src/collection/lru_map.ts +143 -0
- package/src/collection/lru_set.ts +115 -0
- package/src/collection/object.ts +89 -0
- package/src/committable/committable.ts +46 -0
- package/src/committable/index.ts +1 -0
- package/src/config/env_var.ts +412 -0
- package/src/config/index.ts +419 -0
- package/src/config/network_config.ts +21 -0
- package/src/config/network_name.ts +28 -0
- package/src/config/parse-env.ts +4 -0
- package/src/config/secret_value.ts +49 -0
- package/src/crypto/aes128/index.ts +77 -0
- package/src/crypto/bls/bn254_keystore.ts +276 -0
- package/src/crypto/bls/index.ts +76 -0
- package/src/crypto/bn254/index.ts +64 -0
- package/src/crypto/ecdsa/index.ts +88 -0
- package/src/crypto/ecdsa/signature.ts +100 -0
- package/src/crypto/grumpkin/index.ts +90 -0
- package/src/crypto/keccak/index.ts +283 -0
- package/src/crypto/keys/index.ts +26 -0
- package/src/crypto/pedersen/index.ts +1 -0
- package/src/crypto/pedersen/pedersen.noble.ts +573 -0
- package/src/crypto/pedersen/pedersen.wasm.ts +52 -0
- package/src/crypto/poseidon/index.ts +83 -0
- package/src/crypto/random/index.ts +47 -0
- package/src/crypto/random/randomness_singleton.ts +64 -0
- package/src/crypto/schnorr/index.ts +61 -0
- package/src/crypto/schnorr/signature.ts +87 -0
- package/src/crypto/secp256k1/index.ts +61 -0
- package/src/crypto/secp256k1-signer/index.ts +2 -0
- package/src/crypto/secp256k1-signer/secp256k1_signer.ts +38 -0
- package/src/crypto/secp256k1-signer/utils.ts +244 -0
- package/src/crypto/sha256/index.ts +194 -0
- package/src/crypto/sha512/index.ts +16 -0
- package/src/crypto/signature/index.ts +17 -0
- package/src/crypto/sync/index.ts +6 -0
- package/src/crypto/sync/pedersen/index.ts +46 -0
- package/src/crypto/sync/poseidon/index.ts +72 -0
- package/src/curves/bls12/field.ts +456 -0
- package/src/curves/bls12/index.ts +2 -0
- package/src/curves/bls12/point.ts +450 -0
- package/src/curves/bn254/field.ts +531 -0
- 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/curves/grumpkin/point.ts +300 -0
- package/src/decorators/index.ts +1 -0
- package/src/decorators/memoize.ts +11 -0
- package/src/error/index.ts +22 -0
- package/src/eth-address/index.ts +269 -0
- package/src/eth-signature/eth_signature.ts +155 -0
- package/src/eth-signature/index.ts +1 -0
- package/src/fifo/fifo_frame_reader.ts +113 -0
- package/src/fifo/index.ts +1 -0
- package/src/fifo_set/fifo_set.ts +52 -0
- package/src/fifo_set/index.ts +1 -0
- package/src/fs/index.ts +2 -0
- package/src/fs/run_in_dir.ts +33 -0
- package/src/fs/try_rm_dir.ts +15 -0
- package/src/iterable/all.ts +32 -0
- package/src/iterable/filter.ts +77 -0
- package/src/iterable/first.ts +14 -0
- package/src/iterable/index.ts +8 -0
- package/src/iterable/isAsyncIt.ts +8 -0
- package/src/iterable/map.ts +66 -0
- package/src/iterable/peek.ts +58 -0
- package/src/iterable/sort.ts +39 -0
- package/src/iterable/take.ts +54 -0
- package/src/iterable/toArray.ts +9 -0
- package/src/iterator/filter.ts +11 -0
- package/src/iterator/index.ts +1 -0
- package/src/jest/env.mjs +52 -0
- package/src/jest/setup.mjs +38 -0
- package/src/jest/setupAfterEnv.mjs +3 -0
- package/src/json-rpc/README.md +55 -0
- package/src/json-rpc/client/fetch.ts +98 -0
- package/src/json-rpc/client/index.ts +2 -0
- package/src/json-rpc/client/safe_json_rpc_client.ts +283 -0
- package/src/json-rpc/client/undici.ts +128 -0
- package/src/json-rpc/convert.ts +52 -0
- package/src/json-rpc/errors.ts +6 -0
- package/src/json-rpc/fixtures/class_a.ts +18 -0
- package/src/json-rpc/fixtures/class_b.ts +18 -0
- package/src/json-rpc/fixtures/test_state.ts +143 -0
- package/src/json-rpc/index.ts +2 -0
- package/src/json-rpc/js_utils.ts +21 -0
- package/src/json-rpc/server/api_key_auth.ts +63 -0
- package/src/json-rpc/server/index.ts +2 -0
- package/src/json-rpc/server/safe_json_rpc_server.ts +626 -0
- package/src/json-rpc/test/index.ts +1 -0
- package/src/json-rpc/test/integration.ts +35 -0
- package/src/log/aws-logger-config.ts +32 -0
- package/src/log/bigint-utils.ts +25 -0
- package/src/log/console.ts +42 -0
- package/src/log/gcloud-logger-config.ts +72 -0
- package/src/log/index.ts +6 -0
- package/src/log/libp2p_logger.ts +93 -0
- package/src/log/log-filters.ts +81 -0
- package/src/log/log-levels.ts +3 -0
- package/src/log/log_fn.ts +5 -0
- package/src/log/noir_debug_log_util.ts +21 -0
- package/src/log/pino-logger-server.ts +25 -0
- package/src/log/pino-logger.ts +406 -0
- package/src/message/index.ts +47 -0
- package/src/mutex/index.ts +84 -0
- package/src/mutex/mutex_database.ts +11 -0
- package/src/noir/index.ts +1 -0
- package/src/noir/noir_package_config.ts +66 -0
- package/src/number/index.ts +14 -0
- package/src/profiler/index.ts +1 -0
- package/src/profiler/profiler.ts +125 -0
- package/src/promise/index.ts +2 -0
- package/src/promise/running-promise.ts +138 -0
- package/src/promise/utils.ts +60 -0
- package/src/queue/base_memory_queue.ts +138 -0
- package/src/queue/batch_queue.ts +121 -0
- package/src/queue/bounded_serial_queue.ts +103 -0
- package/src/queue/fifo_memory_queue.ts +39 -0
- package/src/queue/index.ts +6 -0
- package/src/queue/priority_memory_queue.ts +20 -0
- package/src/queue/priority_queue.ts +34 -0
- package/src/queue/semaphore.ts +38 -0
- package/src/queue/serial_queue.ts +86 -0
- package/src/retry/index.ts +185 -0
- package/src/running-promise/index.ts +1 -0
- package/src/schemas/api.ts +47 -0
- package/src/schemas/index.ts +5 -0
- package/src/schemas/parse.ts +32 -0
- package/src/schemas/schemas.ts +93 -0
- package/src/schemas/types.ts +36 -0
- package/src/schemas/utils.ts +91 -0
- package/src/serialize/buffer_reader.ts +472 -0
- package/src/serialize/buffer_sink.ts +350 -0
- package/src/serialize/field_reader.ts +208 -0
- package/src/serialize/free_funcs.ts +198 -0
- package/src/serialize/index.ts +7 -0
- package/src/serialize/serialize.ts +320 -0
- package/src/serialize/type_registry.ts +75 -0
- package/src/serialize/types.ts +40 -0
- package/src/sleep/index.ts +90 -0
- package/src/string/index.ts +80 -0
- package/src/testing/files/index.ts +74 -0
- package/src/testing/formatting.ts +3 -0
- package/src/testing/index.ts +4 -0
- package/src/testing/port_allocator.ts +31 -0
- package/src/testing/snapshot_serializer.ts +33 -0
- package/src/testing/test_data.ts +36 -0
- package/src/timer/date.ts +82 -0
- package/src/timer/elapsed.ts +23 -0
- package/src/timer/index.ts +4 -0
- package/src/timer/timeout.ts +136 -0
- package/src/timer/timer.ts +48 -0
- package/src/transport/dispatch/create_dispatch_proxy.ts +151 -0
- package/src/transport/dispatch/messages.ts +58 -0
- package/src/transport/index.ts +9 -0
- package/src/transport/interface/connector.ts +8 -0
- package/src/transport/interface/listener.ts +15 -0
- package/src/transport/interface/socket.ts +14 -0
- package/src/transport/interface/transferable.ts +125 -0
- package/src/transport/node/index.ts +2 -0
- package/src/transport/node/node_connector.ts +30 -0
- package/src/transport/node/node_connector_socket.ts +52 -0
- package/src/transport/node/node_listener.ts +34 -0
- package/src/transport/node/node_listener_socket.ts +48 -0
- package/src/transport/transport_client.ts +130 -0
- package/src/transport/transport_server.ts +111 -0
- package/src/trees/balanced_merkle_tree_root.ts +65 -0
- package/src/trees/hasher.ts +51 -0
- package/src/trees/index.ts +12 -0
- package/src/trees/indexed_merkle_tree.ts +40 -0
- package/src/trees/indexed_merkle_tree_calculator.ts +98 -0
- package/src/trees/indexed_tree_leaf.ts +56 -0
- package/src/trees/membership_witness.ts +112 -0
- package/src/trees/merkle_tree.ts +75 -0
- package/src/trees/merkle_tree_calculator.ts +66 -0
- package/src/trees/sibling_path.ts +177 -0
- package/src/trees/unbalanced_merkle_tree_calculator.ts +176 -0
- package/src/trees/unbalanced_merkle_tree_root.ts +112 -0
- package/src/trees/unbalanced_tree_store.ts +161 -0
- package/src/types/index.ts +103 -0
- package/src/url/index.ts +72 -0
- package/src/validation/index.ts +18 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents an error thrown when an operation is interrupted unexpectedly.
|
|
3
|
+
* This custom error class extends the built-in Error class in JavaScript and
|
|
4
|
+
* can be used to handle cases where a process or task is terminated before completion.
|
|
5
|
+
*/ export class InterruptError extends Error {
|
|
6
|
+
name = 'InterruptError';
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* An error thrown when an action times out.
|
|
10
|
+
*/ export class TimeoutError extends Error {
|
|
11
|
+
name = 'TimeoutError';
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Represents an error thrown when an operation is aborted.
|
|
15
|
+
*/ export class AbortError extends Error {
|
|
16
|
+
name = 'AbortError';
|
|
17
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { inspect } from 'util';
|
|
2
|
+
import { Fr } from '../curves/bn254/index.js';
|
|
3
|
+
import { BufferReader, FieldReader } from '../serialize/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Represents an Ethereum address as a 20-byte buffer and provides various utility methods
|
|
6
|
+
* for converting between different representations, generating random addresses, validating
|
|
7
|
+
* checksums, and comparing addresses. EthAddress can be instantiated using a buffer or string,
|
|
8
|
+
* and can be serialized/deserialized from a buffer or BufferReader.
|
|
9
|
+
*/
|
|
10
|
+
export declare class EthAddress {
|
|
11
|
+
private buffer;
|
|
12
|
+
/** The size of an Ethereum address in bytes. */
|
|
13
|
+
static SIZE_IN_BYTES: number;
|
|
14
|
+
/** Represents a zero Ethereum address with 20 bytes filled with zeros. */
|
|
15
|
+
static ZERO: EthAddress;
|
|
16
|
+
constructor(buffer: Buffer);
|
|
17
|
+
/**
|
|
18
|
+
* Creates an EthAddress instance from a valid Ethereum address string.
|
|
19
|
+
* The input 'address' can be either in checksum format or lowercase, and it can be prefixed with '0x'.
|
|
20
|
+
* Throws an error if the input is not a valid Ethereum address.
|
|
21
|
+
*
|
|
22
|
+
* @param address - The string representing the Ethereum address.
|
|
23
|
+
* @returns An EthAddress instance.
|
|
24
|
+
*/
|
|
25
|
+
static fromString(address: string): EthAddress;
|
|
26
|
+
/**
|
|
27
|
+
* Creates an EthAddress from a plain object without Zod validation.
|
|
28
|
+
* This method is optimized for performance and skips validation, making it suitable
|
|
29
|
+
* for deserializing trusted data (e.g., from C++ via MessagePack).
|
|
30
|
+
* Handles buffers (20 or 32 bytes), strings, or existing instances.
|
|
31
|
+
* @param obj - Plain object, buffer, string, or EthAddress instance
|
|
32
|
+
* @returns An EthAddress instance
|
|
33
|
+
*/
|
|
34
|
+
static fromPlainObject(obj: any): EthAddress;
|
|
35
|
+
/**
|
|
36
|
+
* Create a random EthAddress instance with 20 random bytes.
|
|
37
|
+
* This method generates a new Ethereum address with a randomly generated set of 20 bytes.
|
|
38
|
+
* It is useful for generating test addresses or unique identifiers.
|
|
39
|
+
*
|
|
40
|
+
* @returns A randomly generated EthAddress instance.
|
|
41
|
+
*/
|
|
42
|
+
static random(): EthAddress;
|
|
43
|
+
/**
|
|
44
|
+
* Determines if the given string represents a valid Ethereum address.
|
|
45
|
+
* A valid address should meet the following criteria:
|
|
46
|
+
* 1. Contains exactly 40 hex characters (excluding an optional '0x' prefix).
|
|
47
|
+
* 2. Is either all lowercase, all uppercase, or has a valid checksum based on EIP-55.
|
|
48
|
+
*
|
|
49
|
+
* @param address - The string to be checked for validity as an Ethereum address.
|
|
50
|
+
* @returns True if the input string represents a valid Ethereum address, false otherwise.
|
|
51
|
+
*/
|
|
52
|
+
static isAddress(address: string): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Checks if the EthAddress instance represents a zero address.
|
|
55
|
+
* A zero address consists of 20 bytes filled with zeros and is considered an invalid address.
|
|
56
|
+
*
|
|
57
|
+
* @returns A boolean indicating whether the EthAddress instance is a zero address or not.
|
|
58
|
+
*/
|
|
59
|
+
isZero(): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Checks if the given Ethereum address has a valid checksum.
|
|
62
|
+
* The input 'address' should be prefixed with '0x' or not, and have exactly 40 hex characters.
|
|
63
|
+
* Returns true if the address has a valid checksum, false otherwise.
|
|
64
|
+
*
|
|
65
|
+
* @param address - The hex-encoded string representing the Ethereum address.
|
|
66
|
+
* @returns A boolean value indicating whether the address has a valid checksum.
|
|
67
|
+
*/
|
|
68
|
+
static checkAddressChecksum(address: string): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Converts an Ethereum address to its checksum format.
|
|
71
|
+
* The input 'address' should be prefixed with '0x' or not, and have exactly 40 hex characters.
|
|
72
|
+
* The checksum format is created by capitalizing certain characters in the hex string
|
|
73
|
+
* based on the hash of the lowercase address.
|
|
74
|
+
* Throws an error if the input address is invalid.
|
|
75
|
+
*
|
|
76
|
+
* @param address - The Ethereum address as a hex-encoded string.
|
|
77
|
+
* @returns The Ethereum address in its checksum format.
|
|
78
|
+
*/
|
|
79
|
+
static toChecksumAddress(address: string): `0x${string}`;
|
|
80
|
+
/**
|
|
81
|
+
* Checks whether the given EthAddress instance is equal to the current instance.
|
|
82
|
+
* Equality is determined by comparing the underlying byte buffers of both instances.
|
|
83
|
+
*
|
|
84
|
+
* @param rhs - The EthAddress instance to compare with the current instance.
|
|
85
|
+
* @returns A boolean value indicating whether the two instances are equal (true) or not (false).
|
|
86
|
+
*/
|
|
87
|
+
equals(rhs: EthAddress): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Converts the Ethereum address to a hex-encoded string.
|
|
90
|
+
* The resulting string is prefixed with '0x' and has exactly 40 hex characters.
|
|
91
|
+
* This method can be used to represent the EthAddress instance in the widely used hexadecimal format.
|
|
92
|
+
*
|
|
93
|
+
* @returns A hex-encoded string representation of the Ethereum address.
|
|
94
|
+
*/
|
|
95
|
+
toString(): `0x${string}`;
|
|
96
|
+
[inspect.custom](): string;
|
|
97
|
+
/**
|
|
98
|
+
* Returns the Ethereum address as a checksummed string.
|
|
99
|
+
* The output string will have characters in the correct upper or lowercase form, according to EIP-55.
|
|
100
|
+
* This provides a way to verify if an address is typed correctly, by checking the character casing.
|
|
101
|
+
*
|
|
102
|
+
* @returns A checksummed Ethereum address string.
|
|
103
|
+
*/
|
|
104
|
+
toChecksumString(): `0x${string}`;
|
|
105
|
+
/**
|
|
106
|
+
* Returns a 20-byte buffer representation of the Ethereum address.
|
|
107
|
+
* @returns A 20-byte Buffer containing the Ethereum address.
|
|
108
|
+
*/
|
|
109
|
+
toBuffer(): Buffer<ArrayBufferLike>;
|
|
110
|
+
/**
|
|
111
|
+
* Returns a 32-byte buffer representation of the Ethereum address, with the original 20-byte address
|
|
112
|
+
* occupying the last 20 bytes and the first 12 bytes being zero-filled.
|
|
113
|
+
* This format is commonly used in smart contracts when handling addresses as 32-byte values.
|
|
114
|
+
*
|
|
115
|
+
* @returns A 32-byte Buffer containing the padded Ethereum address.
|
|
116
|
+
*/
|
|
117
|
+
toBuffer32(): Buffer<ArrayBuffer>;
|
|
118
|
+
/**
|
|
119
|
+
* Returns a new field with the same contents as this EthAddress.
|
|
120
|
+
*
|
|
121
|
+
* @returns An Fr instance.
|
|
122
|
+
*/
|
|
123
|
+
toField(): Fr;
|
|
124
|
+
/**
|
|
125
|
+
* Converts a field to a eth address.
|
|
126
|
+
* @param fr - The field to convert.
|
|
127
|
+
* @returns The eth address.
|
|
128
|
+
*/
|
|
129
|
+
static fromField(fr: Fr): EthAddress;
|
|
130
|
+
static fromFields(fields: Fr[] | FieldReader): EthAddress;
|
|
131
|
+
/**
|
|
132
|
+
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
133
|
+
* @param buffer - Buffer to read from.
|
|
134
|
+
* @returns The EthAddress.
|
|
135
|
+
*/
|
|
136
|
+
static fromBuffer(buffer: Buffer | BufferReader): EthAddress;
|
|
137
|
+
/** Converts a number into an address. Useful for testing. */
|
|
138
|
+
static fromNumber(num: bigint | number): EthAddress;
|
|
139
|
+
toJSON(): `0x${string}`;
|
|
140
|
+
static get schema(): import("zod").ZodType<EthAddress, string, import("zod/v4/core").$ZodTypeInternals<EthAddress, string>>;
|
|
141
|
+
static areEqual(a: EthAddress | string, b: EthAddress | string): boolean;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldGgtYWRkcmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2xFOzs7OztHQUtHO0FBQ0gscUJBQWEsVUFBVTtJQU1ULE9BQU8sQ0FBQyxNQUFNO0lBTDFCLGdEQUFnRDtJQUNoRCxPQUFjLGFBQWEsU0FBTTtJQUNqQywwRUFBMEU7SUFDMUUsT0FBYyxJQUFJLGFBQTBEO0lBRTVFLFlBQW9CLE1BQU0sRUFBRSxNQUFNLEVBSWpDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLGNBS3ZDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQWMsZUFBZSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQVFsRDtJQUVEOzs7Ozs7T0FNRztJQUNILE9BQWMsTUFBTSxlQUVuQjtJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsT0FBYyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sV0FVdEM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sWUFFWjtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFjLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxNQUFNLFdBY2pEO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsT0FBYyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLEtBQUssTUFBTSxFQUFFLENBa0I5RDtJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxXQUU1QjtJQUVEOzs7Ozs7T0FNRztJQUNJLFFBQVEsa0JBRWQ7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FFZjtJQUVEOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixrQkFFdEI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLDRCQUVkO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksVUFBVSx3QkFJaEI7SUFFRDs7OztPQUlHO0lBQ0ksT0FBTyxPQUViO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxVQUFVLENBRW5DO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxjQUczQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFVBQVUsQ0FHM0Q7SUFFRCw2REFBNkQ7SUFDN0QsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE1BQU0sR0FBRyxVQUFVLENBSWxEO0lBRUQsTUFBTSxrQkFFTDtJQUVELE1BQU0sS0FBSyxNQUFNLDJHQUdoQjtJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFVBQVUsR0FBRyxNQUFNLFdBSTdEO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eth-address/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAI/B,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGlE;;;;;GAKG;AACH,qBAAa,UAAU;IAMT,OAAO,CAAC,MAAM;IAL1B,gDAAgD;IAChD,OAAc,aAAa,SAAM;IACjC,0EAA0E;IAC1E,OAAc,IAAI,aAA0D;IAE5E,YAAoB,MAAM,EAAE,MAAM,EAIjC;IAED;;;;;;;OAOG;IACH,OAAc,UAAU,CAAC,OAAO,EAAE,MAAM,cAKvC;IAED;;;;;;;OAOG;IACH,OAAc,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAQlD;IAED;;;;;;OAMG;IACH,OAAc,MAAM,eAEnB;IAED;;;;;;;;OAQG;IACH,OAAc,SAAS,CAAC,OAAO,EAAE,MAAM,WAUtC;IAED;;;;;OAKG;IACI,MAAM,YAEZ;IAED;;;;;;;OAOG;IACH,OAAc,oBAAoB,CAAC,OAAO,EAAE,MAAM,WAcjD;IAED;;;;;;;;;OASG;IACH,OAAc,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAkB9D;IAED;;;;;;OAMG;IACI,MAAM,CAAC,GAAG,EAAE,UAAU,WAE5B;IAED;;;;;;OAMG;IACI,QAAQ,kBAEd;IAED,CAAC,OAAO,CAAC,MAAM,CAAC,WAEf;IAED;;;;;;OAMG;IACI,gBAAgB,kBAEtB;IAED;;;OAGG;IACI,QAAQ,4BAEd;IAED;;;;;;OAMG;IACI,UAAU,wBAIhB;IAED;;;;OAIG;IACI,OAAO,OAEb;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,UAAU,CAEnC;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,cAG3C;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAG3D;IAED,6DAA6D;IAC7D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAIlD;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,2GAGhB;IAED,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,CAAC,EAAE,UAAU,GAAG,MAAM,WAI7D;CACF"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
var _computedKey;
|
|
2
|
+
import { inspect } from 'util';
|
|
3
|
+
import { keccak256String } from '../crypto/keccak/index.js';
|
|
4
|
+
import { randomBytes } from '../crypto/random/index.js';
|
|
5
|
+
import { Fr } from '../curves/bn254/index.js';
|
|
6
|
+
import { hexSchemaFor } from '../schemas/utils.js';
|
|
7
|
+
import { BufferReader, FieldReader } from '../serialize/index.js';
|
|
8
|
+
import { bufferToHex } from '../string/index.js';
|
|
9
|
+
_computedKey = inspect.custom;
|
|
10
|
+
/**
|
|
11
|
+
* Represents an Ethereum address as a 20-byte buffer and provides various utility methods
|
|
12
|
+
* for converting between different representations, generating random addresses, validating
|
|
13
|
+
* checksums, and comparing addresses. EthAddress can be instantiated using a buffer or string,
|
|
14
|
+
* and can be serialized/deserialized from a buffer or BufferReader.
|
|
15
|
+
*/ export class EthAddress {
|
|
16
|
+
buffer;
|
|
17
|
+
/** The size of an Ethereum address in bytes. */ static SIZE_IN_BYTES = 20;
|
|
18
|
+
/** Represents a zero Ethereum address with 20 bytes filled with zeros. */ static ZERO = new EthAddress(Buffer.alloc(EthAddress.SIZE_IN_BYTES));
|
|
19
|
+
constructor(buffer){
|
|
20
|
+
this.buffer = buffer;
|
|
21
|
+
if (buffer.length !== EthAddress.SIZE_IN_BYTES) {
|
|
22
|
+
throw new Error(`Expect buffer size to be ${EthAddress.SIZE_IN_BYTES}. Got ${buffer.length}.`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Creates an EthAddress instance from a valid Ethereum address string.
|
|
27
|
+
* The input 'address' can be either in checksum format or lowercase, and it can be prefixed with '0x'.
|
|
28
|
+
* Throws an error if the input is not a valid Ethereum address.
|
|
29
|
+
*
|
|
30
|
+
* @param address - The string representing the Ethereum address.
|
|
31
|
+
* @returns An EthAddress instance.
|
|
32
|
+
*/ static fromString(address) {
|
|
33
|
+
if (!EthAddress.isAddress(address)) {
|
|
34
|
+
throw new Error(`Invalid address string: ${address}`);
|
|
35
|
+
}
|
|
36
|
+
return new EthAddress(Buffer.from(address.replace(/^0x/i, ''), 'hex'));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Creates an EthAddress from a plain object without Zod validation.
|
|
40
|
+
* This method is optimized for performance and skips validation, making it suitable
|
|
41
|
+
* for deserializing trusted data (e.g., from C++ via MessagePack).
|
|
42
|
+
* Handles buffers (20 or 32 bytes), strings, or existing instances.
|
|
43
|
+
* @param obj - Plain object, buffer, string, or EthAddress instance
|
|
44
|
+
* @returns An EthAddress instance
|
|
45
|
+
*/ static fromPlainObject(obj) {
|
|
46
|
+
if (obj instanceof EthAddress) {
|
|
47
|
+
return obj;
|
|
48
|
+
}
|
|
49
|
+
if (obj instanceof Buffer || Buffer.isBuffer(obj)) {
|
|
50
|
+
return obj.length === 20 ? new EthAddress(obj) : EthAddress.fromField(new Fr(obj));
|
|
51
|
+
}
|
|
52
|
+
return EthAddress.fromString(obj);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Create a random EthAddress instance with 20 random bytes.
|
|
56
|
+
* This method generates a new Ethereum address with a randomly generated set of 20 bytes.
|
|
57
|
+
* It is useful for generating test addresses or unique identifiers.
|
|
58
|
+
*
|
|
59
|
+
* @returns A randomly generated EthAddress instance.
|
|
60
|
+
*/ static random() {
|
|
61
|
+
return new EthAddress(randomBytes(20));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Determines if the given string represents a valid Ethereum address.
|
|
65
|
+
* A valid address should meet the following criteria:
|
|
66
|
+
* 1. Contains exactly 40 hex characters (excluding an optional '0x' prefix).
|
|
67
|
+
* 2. Is either all lowercase, all uppercase, or has a valid checksum based on EIP-55.
|
|
68
|
+
*
|
|
69
|
+
* @param address - The string to be checked for validity as an Ethereum address.
|
|
70
|
+
* @returns True if the input string represents a valid Ethereum address, false otherwise.
|
|
71
|
+
*/ static isAddress(address) {
|
|
72
|
+
if (!/^(0x)?[0-9a-f]{40}$/i.test(address)) {
|
|
73
|
+
// Does not have the basic requirements of an address.
|
|
74
|
+
return false;
|
|
75
|
+
} else if (/^(0x|0X)?[0-9a-f]{40}$/.test(address) || /^(0x|0X)?[0-9A-F]{40}$/.test(address)) {
|
|
76
|
+
// It's ALL lowercase or ALL uppercase.
|
|
77
|
+
return true;
|
|
78
|
+
} else {
|
|
79
|
+
return EthAddress.checkAddressChecksum(address);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Checks if the EthAddress instance represents a zero address.
|
|
84
|
+
* A zero address consists of 20 bytes filled with zeros and is considered an invalid address.
|
|
85
|
+
*
|
|
86
|
+
* @returns A boolean indicating whether the EthAddress instance is a zero address or not.
|
|
87
|
+
*/ isZero() {
|
|
88
|
+
return this.equals(EthAddress.ZERO);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Checks if the given Ethereum address has a valid checksum.
|
|
92
|
+
* The input 'address' should be prefixed with '0x' or not, and have exactly 40 hex characters.
|
|
93
|
+
* Returns true if the address has a valid checksum, false otherwise.
|
|
94
|
+
*
|
|
95
|
+
* @param address - The hex-encoded string representing the Ethereum address.
|
|
96
|
+
* @returns A boolean value indicating whether the address has a valid checksum.
|
|
97
|
+
*/ static checkAddressChecksum(address) {
|
|
98
|
+
address = address.replace(/^0x/i, '');
|
|
99
|
+
const addressHash = keccak256String(address.toLowerCase());
|
|
100
|
+
for(let i = 0; i < 40; i++){
|
|
101
|
+
// The nth letter should be uppercase if the nth digit of casemap is 1.
|
|
102
|
+
if (parseInt(addressHash[i], 16) > 7 && address[i].toUpperCase() !== address[i] || parseInt(addressHash[i], 16) <= 7 && address[i].toLowerCase() !== address[i]) {
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Converts an Ethereum address to its checksum format.
|
|
110
|
+
* The input 'address' should be prefixed with '0x' or not, and have exactly 40 hex characters.
|
|
111
|
+
* The checksum format is created by capitalizing certain characters in the hex string
|
|
112
|
+
* based on the hash of the lowercase address.
|
|
113
|
+
* Throws an error if the input address is invalid.
|
|
114
|
+
*
|
|
115
|
+
* @param address - The Ethereum address as a hex-encoded string.
|
|
116
|
+
* @returns The Ethereum address in its checksum format.
|
|
117
|
+
*/ static toChecksumAddress(address) {
|
|
118
|
+
if (!EthAddress.isAddress(address)) {
|
|
119
|
+
throw new Error('Invalid address string.');
|
|
120
|
+
}
|
|
121
|
+
address = address.toLowerCase().replace(/^0x/i, '');
|
|
122
|
+
const addressHash = keccak256String(address);
|
|
123
|
+
let checksumAddress = '0x';
|
|
124
|
+
for(let i = 0; i < address.length; i++){
|
|
125
|
+
// If ith character is 9 to f then make it uppercase.
|
|
126
|
+
if (parseInt(addressHash[i], 16) > 7) {
|
|
127
|
+
checksumAddress += address[i].toUpperCase();
|
|
128
|
+
} else {
|
|
129
|
+
checksumAddress += address[i];
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return checksumAddress;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Checks whether the given EthAddress instance is equal to the current instance.
|
|
136
|
+
* Equality is determined by comparing the underlying byte buffers of both instances.
|
|
137
|
+
*
|
|
138
|
+
* @param rhs - The EthAddress instance to compare with the current instance.
|
|
139
|
+
* @returns A boolean value indicating whether the two instances are equal (true) or not (false).
|
|
140
|
+
*/ equals(rhs) {
|
|
141
|
+
return this.buffer.equals(rhs.buffer);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Converts the Ethereum address to a hex-encoded string.
|
|
145
|
+
* The resulting string is prefixed with '0x' and has exactly 40 hex characters.
|
|
146
|
+
* This method can be used to represent the EthAddress instance in the widely used hexadecimal format.
|
|
147
|
+
*
|
|
148
|
+
* @returns A hex-encoded string representation of the Ethereum address.
|
|
149
|
+
*/ toString() {
|
|
150
|
+
return bufferToHex(this.buffer);
|
|
151
|
+
}
|
|
152
|
+
[_computedKey]() {
|
|
153
|
+
return `EthAddress<${this.toString()}>`;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Returns the Ethereum address as a checksummed string.
|
|
157
|
+
* The output string will have characters in the correct upper or lowercase form, according to EIP-55.
|
|
158
|
+
* This provides a way to verify if an address is typed correctly, by checking the character casing.
|
|
159
|
+
*
|
|
160
|
+
* @returns A checksummed Ethereum address string.
|
|
161
|
+
*/ toChecksumString() {
|
|
162
|
+
return EthAddress.toChecksumAddress(this.buffer.toString('hex'));
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Returns a 20-byte buffer representation of the Ethereum address.
|
|
166
|
+
* @returns A 20-byte Buffer containing the Ethereum address.
|
|
167
|
+
*/ toBuffer() {
|
|
168
|
+
return this.buffer;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Returns a 32-byte buffer representation of the Ethereum address, with the original 20-byte address
|
|
172
|
+
* occupying the last 20 bytes and the first 12 bytes being zero-filled.
|
|
173
|
+
* This format is commonly used in smart contracts when handling addresses as 32-byte values.
|
|
174
|
+
*
|
|
175
|
+
* @returns A 32-byte Buffer containing the padded Ethereum address.
|
|
176
|
+
*/ toBuffer32() {
|
|
177
|
+
const buffer = Buffer.alloc(32);
|
|
178
|
+
this.buffer.copy(buffer, 12);
|
|
179
|
+
return buffer;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Returns a new field with the same contents as this EthAddress.
|
|
183
|
+
*
|
|
184
|
+
* @returns An Fr instance.
|
|
185
|
+
*/ toField() {
|
|
186
|
+
return Fr.fromBuffer(this.toBuffer32());
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Converts a field to a eth address.
|
|
190
|
+
* @param fr - The field to convert.
|
|
191
|
+
* @returns The eth address.
|
|
192
|
+
*/ static fromField(fr) {
|
|
193
|
+
return new EthAddress(fr.toBuffer().slice(-EthAddress.SIZE_IN_BYTES));
|
|
194
|
+
}
|
|
195
|
+
static fromFields(fields) {
|
|
196
|
+
const reader = FieldReader.asReader(fields);
|
|
197
|
+
return EthAddress.fromField(reader.readField());
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
201
|
+
* @param buffer - Buffer to read from.
|
|
202
|
+
* @returns The EthAddress.
|
|
203
|
+
*/ static fromBuffer(buffer) {
|
|
204
|
+
const reader = BufferReader.asReader(buffer);
|
|
205
|
+
return new EthAddress(reader.readBytes(EthAddress.SIZE_IN_BYTES));
|
|
206
|
+
}
|
|
207
|
+
/** Converts a number into an address. Useful for testing. */ static fromNumber(num) {
|
|
208
|
+
const buffer = Buffer.alloc(EthAddress.SIZE_IN_BYTES);
|
|
209
|
+
buffer.writeBigUInt64BE(BigInt(num), EthAddress.SIZE_IN_BYTES - 8);
|
|
210
|
+
return new EthAddress(buffer);
|
|
211
|
+
}
|
|
212
|
+
toJSON() {
|
|
213
|
+
return this.toString();
|
|
214
|
+
}
|
|
215
|
+
static get schema() {
|
|
216
|
+
// Serialization from hex string.
|
|
217
|
+
return hexSchemaFor(EthAddress, EthAddress.isAddress);
|
|
218
|
+
}
|
|
219
|
+
static areEqual(a, b) {
|
|
220
|
+
const addrA = typeof a === 'string' ? EthAddress.fromString(a) : a;
|
|
221
|
+
const addrB = typeof b === 'string' ? EthAddress.fromString(b) : b;
|
|
222
|
+
return addrA.equals(addrB);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Buffer32 } from '@aztec-labs/foundation/buffer';
|
|
2
|
+
import { BufferReader } from '@aztec-labs/foundation/serialize';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
/**
|
|
5
|
+
* A version of the Signature class that uses `0x${string}` values for r and s rather than Buffer32s
|
|
6
|
+
*/
|
|
7
|
+
export type ViemSignature = {
|
|
8
|
+
r: `0x${string}`;
|
|
9
|
+
s: `0x${string}`;
|
|
10
|
+
v: number;
|
|
11
|
+
};
|
|
12
|
+
export type ViemTransactionSignature = {
|
|
13
|
+
r: `0x${string}`;
|
|
14
|
+
s: `0x${string}`;
|
|
15
|
+
yParity: 0 | 1;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Contains a signature split into it's primary components (r,s,v)
|
|
19
|
+
*/
|
|
20
|
+
export declare class Signature {
|
|
21
|
+
/** The r value of the signature */
|
|
22
|
+
readonly r: Buffer32;
|
|
23
|
+
/** The s value of the signature */
|
|
24
|
+
readonly s: Buffer32;
|
|
25
|
+
/** The v value of the signature */
|
|
26
|
+
readonly v: number;
|
|
27
|
+
private size;
|
|
28
|
+
readonly empty: boolean;
|
|
29
|
+
constructor(
|
|
30
|
+
/** The r value of the signature */
|
|
31
|
+
r: Buffer32,
|
|
32
|
+
/** The s value of the signature */
|
|
33
|
+
s: Buffer32,
|
|
34
|
+
/** The v value of the signature */
|
|
35
|
+
v: number);
|
|
36
|
+
static fromBuffer(buf: Buffer | BufferReader): Signature;
|
|
37
|
+
static isValidString(sig: `0x${string}`): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* A seperate method exists for this as when signing locally with viem, as when
|
|
40
|
+
* parsing from viem, we can expect the v value to be a u8, rather than our
|
|
41
|
+
* default serialization of u32
|
|
42
|
+
*/
|
|
43
|
+
static fromString(sig: `0x${string}`): Signature;
|
|
44
|
+
static fromViemSignature(sig: ViemSignature): Signature;
|
|
45
|
+
static fromViemTransactionSignature(sig: ViemTransactionSignature): Signature;
|
|
46
|
+
/** Generates a random valid ECDSA signature with a low s-value by signing a random message with a random key. */
|
|
47
|
+
static random(): Signature;
|
|
48
|
+
static empty(): Signature;
|
|
49
|
+
isEmpty(): boolean;
|
|
50
|
+
equals(other: Signature): boolean;
|
|
51
|
+
toBuffer(): Buffer;
|
|
52
|
+
getSize(): number;
|
|
53
|
+
toString(): `0x${string}`;
|
|
54
|
+
/**
|
|
55
|
+
* Return the signature with `0x${string}` encodings for r and s
|
|
56
|
+
*/
|
|
57
|
+
toViemSignature(): ViemSignature;
|
|
58
|
+
/**
|
|
59
|
+
* Return the signature with `0x${string}` encodings for r and s. Verifies v is valid
|
|
60
|
+
*/
|
|
61
|
+
toViemTransactionSignature(): ViemTransactionSignature;
|
|
62
|
+
toJSON(): `0x${string}`;
|
|
63
|
+
static get schema(): z.ZodPipe<z.ZodString & z.ZodType<`0x${string}`, string, z.core.$ZodTypeInternals<`0x${string}`, string>>, z.ZodTransform<Signature, `0x${string}`>>;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX3NpZ25hdHVyZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V0aC1zaWduYXR1cmUvZXRoX3NpZ25hdHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBcUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUVuRixPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBS3hCOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGFBQWEsR0FBRztJQUMxQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ1gsQ0FBQztBQUVGLE1BQU0sTUFBTSx3QkFBd0IsR0FBRztJQUNyQyxDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixDQUFDLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztJQUNqQixPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNoQixDQUFDO0FBRUY7O0dBRUc7QUFDSCxxQkFBYSxTQUFTO0lBT2xCLG1DQUFtQzthQUNuQixDQUFDLEVBQUUsUUFBUTtJQUMzQixtQ0FBbUM7YUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO2FBQ25CLENBQUMsRUFBRSxNQUFNO0lBVjNCLE9BQU8sQ0FBQyxJQUFJLENBQXFCO0lBRWpDLFNBQWdCLEtBQUssRUFBRSxPQUFPLENBQUM7SUFFL0I7SUFDRSxtQ0FBbUM7SUFDbkIsQ0FBQyxFQUFFLFFBQVE7SUFDM0IsbUNBQW1DO0lBQ25CLENBQUMsRUFBRSxRQUFRO0lBQzNCLG1DQUFtQztJQUNuQixDQUFDLEVBQUUsTUFBTSxFQUcxQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsU0FBUyxDQVF2RDtJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUVoRDtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FRL0M7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLGFBQWEsR0FBRyxTQUFTLENBRXREO0lBRUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsRUFBRSx3QkFBd0IsR0FBRyxTQUFTLENBRTVFO0lBRUQsaUhBQWlIO0lBQ2pILE1BQU0sQ0FBQyxNQUFNLElBQUksU0FBUyxDQUt6QjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxDQUV4QjtJQUVELE9BQU8sSUFBSSxPQUFPLENBRWpCO0lBRUQsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUVoQztJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsT0FBTyxJQUFJLE1BQU0sQ0FRaEI7SUFFRCxRQUFRLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FFeEI7SUFFRDs7T0FFRztJQUNILGVBQWUsSUFBSSxhQUFhLENBTS9CO0lBRUQ7O09BRUc7SUFDSCwwQkFBMEIsSUFBSSx3QkFBd0IsQ0FTckQ7SUFFRCxNQUFNLGtCQUVMO0lBRUQsTUFBTSxLQUFLLE1BQU0seUpBTWhCO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eth_signature.d.ts","sourceRoot":"","sources":["../../src/eth-signature/eth_signature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAqB,MAAM,kCAAkC,CAAC;AAEnF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IAOlB,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;aACnB,CAAC,EAAE,MAAM;IAV3B,OAAO,CAAC,IAAI,CAAqB;IAEjC,SAAgB,KAAK,EAAE,OAAO,CAAC;IAE/B;IACE,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,QAAQ;IAC3B,mCAAmC;IACnB,CAAC,EAAE,MAAM,EAG1B;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAQvD;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,OAAO,CAEhD;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAQ/C;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CAEtD;IAED,MAAM,CAAC,4BAA4B,CAAC,GAAG,EAAE,wBAAwB,GAAG,SAAS,CAE5E;IAED,iHAAiH;IACjH,MAAM,CAAC,MAAM,IAAI,SAAS,CAKzB;IAED,MAAM,CAAC,KAAK,IAAI,SAAS,CAExB;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAEhC;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,OAAO,IAAI,MAAM,CAQhB;IAED,QAAQ,IAAI,KAAK,MAAM,EAAE,CAExB;IAED;;OAEG;IACH,eAAe,IAAI,aAAa,CAM/B;IAED;;OAEG;IACH,0BAA0B,IAAI,wBAAwB,CASrD;IAED,MAAM,kBAEL;IAED,MAAM,KAAK,MAAM,yJAMhB;CACF"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Buffer32 } from '@aztec-labs/foundation/buffer';
|
|
2
|
+
import { BufferReader, serializeToBuffer } from '@aztec-labs/foundation/serialize';
|
|
3
|
+
import { secp256k1 } from '@noble/curves/secp256k1';
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { randomBytes } from '../crypto/random/index.js';
|
|
6
|
+
import { hasHexPrefix, hexToBuffer } from '../string/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Contains a signature split into it's primary components (r,s,v)
|
|
9
|
+
*/ export class Signature {
|
|
10
|
+
r;
|
|
11
|
+
s;
|
|
12
|
+
v;
|
|
13
|
+
// Cached values
|
|
14
|
+
size;
|
|
15
|
+
empty;
|
|
16
|
+
constructor(/** The r value of the signature */ r, /** The s value of the signature */ s, /** The v value of the signature */ v){
|
|
17
|
+
this.r = r;
|
|
18
|
+
this.s = s;
|
|
19
|
+
this.v = v;
|
|
20
|
+
this.empty = r.isZero() && s.isZero() && v === 0;
|
|
21
|
+
}
|
|
22
|
+
static fromBuffer(buf) {
|
|
23
|
+
const reader = BufferReader.asReader(buf);
|
|
24
|
+
const r = reader.readObject(Buffer32);
|
|
25
|
+
const s = reader.readObject(Buffer32);
|
|
26
|
+
const v = reader.readNumber();
|
|
27
|
+
return new Signature(r, s, v);
|
|
28
|
+
}
|
|
29
|
+
static isValidString(sig) {
|
|
30
|
+
return /^0x[0-9a-f]{129,}$/i.test(sig);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A seperate method exists for this as when signing locally with viem, as when
|
|
34
|
+
* parsing from viem, we can expect the v value to be a u8, rather than our
|
|
35
|
+
* default serialization of u32
|
|
36
|
+
*/ static fromString(sig) {
|
|
37
|
+
const buf = hexToBuffer(sig);
|
|
38
|
+
const reader = BufferReader.asReader(buf);
|
|
39
|
+
const r = reader.readObject(Buffer32);
|
|
40
|
+
const s = reader.readObject(Buffer32);
|
|
41
|
+
const v = parseInt(sig.slice(2 + 64 * 2), 16);
|
|
42
|
+
return new Signature(r, s, v);
|
|
43
|
+
}
|
|
44
|
+
static fromViemSignature(sig) {
|
|
45
|
+
return new Signature(Buffer32.fromBuffer(hexToBuffer(sig.r)), Buffer32.fromBuffer(hexToBuffer(sig.s)), sig.v);
|
|
46
|
+
}
|
|
47
|
+
static fromViemTransactionSignature(sig) {
|
|
48
|
+
return new Signature(Buffer32.fromBuffer(hexToBuffer(sig.r)), Buffer32.fromBuffer(hexToBuffer(sig.s)), sig.yParity);
|
|
49
|
+
}
|
|
50
|
+
/** Generates a random valid ECDSA signature with a low s-value by signing a random message with a random key. */ static random() {
|
|
51
|
+
const privateKey = randomBytes(32);
|
|
52
|
+
const message = randomBytes(32);
|
|
53
|
+
const { r, s, recovery } = secp256k1.sign(message, privateKey);
|
|
54
|
+
return new Signature(Buffer32.fromBigInt(r), Buffer32.fromBigInt(s), recovery ? 28 : 27);
|
|
55
|
+
}
|
|
56
|
+
static empty() {
|
|
57
|
+
return new Signature(Buffer32.ZERO, Buffer32.ZERO, 0);
|
|
58
|
+
}
|
|
59
|
+
isEmpty() {
|
|
60
|
+
return this.empty;
|
|
61
|
+
}
|
|
62
|
+
equals(other) {
|
|
63
|
+
return this.r.equals(other.r) && this.s.equals(other.s) && this.v === other.v && this.empty === other.empty;
|
|
64
|
+
}
|
|
65
|
+
toBuffer() {
|
|
66
|
+
return serializeToBuffer([
|
|
67
|
+
this.r,
|
|
68
|
+
this.s,
|
|
69
|
+
this.v
|
|
70
|
+
]);
|
|
71
|
+
}
|
|
72
|
+
getSize() {
|
|
73
|
+
// We cache size to avoid recalculating it
|
|
74
|
+
if (this.size) {
|
|
75
|
+
return this.size;
|
|
76
|
+
}
|
|
77
|
+
this.size = this.toBuffer().length;
|
|
78
|
+
return this.size;
|
|
79
|
+
}
|
|
80
|
+
toString() {
|
|
81
|
+
return `0x${this.r.buffer.toString('hex')}${this.s.buffer.toString('hex')}${this.v.toString(16)}`;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Return the signature with `0x${string}` encodings for r and s
|
|
85
|
+
*/ toViemSignature() {
|
|
86
|
+
return {
|
|
87
|
+
r: this.r.toString(),
|
|
88
|
+
s: this.s.toString(),
|
|
89
|
+
v: this.v
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Return the signature with `0x${string}` encodings for r and s. Verifies v is valid
|
|
94
|
+
*/ toViemTransactionSignature() {
|
|
95
|
+
if (this.v !== 0 && this.v !== 1) {
|
|
96
|
+
throw new Error('Invalid transaction signature');
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
r: this.r.toString(),
|
|
100
|
+
s: this.s.toString(),
|
|
101
|
+
yParity: this.v
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
toJSON() {
|
|
105
|
+
return this.toString();
|
|
106
|
+
}
|
|
107
|
+
static get schema() {
|
|
108
|
+
return z.string().refine(hasHexPrefix, 'No hex prefix').refine(Signature.isValidString, 'Not a valid Ethereum signature').transform(Signature.fromString);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './eth_signature.js';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldGgtc2lnbmF0dXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eth-signature/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './eth_signature.js';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import EventEmitter from 'node:events';
|
|
2
|
+
import type { Readable } from 'node:stream';
|
|
3
|
+
/**
|
|
4
|
+
* Events emitted by FifoFrameReader.
|
|
5
|
+
*
|
|
6
|
+
* - `frame`: A complete frame payload (without the 4-byte length header).
|
|
7
|
+
* - `error`: An unrecoverable error (invalid frame length, stream error).
|
|
8
|
+
* - `end`: The underlying stream has ended.
|
|
9
|
+
*/
|
|
10
|
+
export interface FifoFrameReaderEvents {
|
|
11
|
+
frame: [payload: Buffer];
|
|
12
|
+
error: [error: Error];
|
|
13
|
+
end: [];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Reads length-delimited frames from a readable stream (typically a named FIFO pipe).
|
|
17
|
+
*
|
|
18
|
+
* Wire format: `[4-byte big-endian payload length][payload bytes]`
|
|
19
|
+
*
|
|
20
|
+
* Emits a `frame` event for each complete frame with the raw payload buffer.
|
|
21
|
+
* Callers are responsible for deserializing the payload (e.g., via msgpack).
|
|
22
|
+
*
|
|
23
|
+
* On encountering an invalid payload length (0 or >maxPayloadSize), emits `error`
|
|
24
|
+
* and destroys the stream.
|
|
25
|
+
*/
|
|
26
|
+
export declare class FifoFrameReader extends EventEmitter<FifoFrameReaderEvents> {
|
|
27
|
+
private readonly maxPayloadSize;
|
|
28
|
+
private stream;
|
|
29
|
+
private pendingBuf;
|
|
30
|
+
private running;
|
|
31
|
+
constructor(maxPayloadSize?: number);
|
|
32
|
+
/** Open a FIFO at the given path and start reading frames. */
|
|
33
|
+
start(fifoPath: string): void;
|
|
34
|
+
/** Start reading frames from an existing readable stream. */
|
|
35
|
+
startFromStream(stream: Readable): void;
|
|
36
|
+
/** Stop reading and destroy the underlying stream. */
|
|
37
|
+
stop(): void;
|
|
38
|
+
/** Parse complete frames out of the pending buffer. */
|
|
39
|
+
private drainFrames;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlmb19mcmFtZV9yZWFkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWZvL2ZpZm9fZnJhbWVfcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sWUFBWSxNQUFNLGFBQWEsQ0FBQztBQUd2QyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxXQUFXLHFCQUFxQjtJQUNwQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDekIsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RCLEdBQUcsRUFBRSxFQUFFLENBQUM7Q0FDVDtBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxxQkFBYSxlQUFnQixTQUFRLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQztJQUsxRCxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWM7SUFKM0MsT0FBTyxDQUFDLE1BQU0sQ0FBeUI7SUFDdkMsT0FBTyxDQUFDLFVBQVUsQ0FBMkI7SUFDN0MsT0FBTyxDQUFDLE9BQU8sQ0FBUztJQUV4QixZQUE2QixjQUFjLFNBQW1CLEVBRTdEO0lBRUQsOERBQThEO0lBQzlELEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FnQjVCO0lBRUQsNkRBQTZEO0lBQzdELGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFHLElBQUksQ0F1QnRDO0lBRUQsc0RBQXNEO0lBQ3RELElBQUksSUFBSSxJQUFJLENBTVg7SUFFRCx1REFBdUQ7SUFDdkQsT0FBTyxDQUFDLFdBQVc7Q0FtQnBCIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fifo_frame_reader.d.ts","sourceRoot":"","sources":["../../src/fifo/fifo_frame_reader.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AAGvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzB,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtB,GAAG,EAAE,EAAE,CAAC;CACT;AAED;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IAK1D,OAAO,CAAC,QAAQ,CAAC,cAAc;IAJ3C,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,OAAO,CAAS;IAExB,YAA6B,cAAc,SAAmB,EAE7D;IAED,8DAA8D;IAC9D,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAgB5B;IAED,6DAA6D;IAC7D,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAuBtC;IAED,sDAAsD;IACtD,IAAI,IAAI,IAAI,CAMX;IAED,uDAAuD;IACvD,OAAO,CAAC,WAAW;CAmBpB"}
|