@aztec/foundation 0.76.4 → 0.77.0-testnet-ignition.21
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 -1
- package/dest/array/array.d.ts.map +1 -1
- package/dest/array/array.js +19 -26
- package/dest/array/index.js +0 -1
- package/dest/async-map/index.js +2 -4
- package/dest/async-pool/index.js +6 -9
- package/dest/bigint-buffer/index.js +6 -13
- package/dest/buffer/buffer32.d.ts +1 -1
- package/dest/buffer/buffer32.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +53 -66
- package/dest/buffer/index.js +0 -1
- package/dest/collection/array.d.ts +1 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +47 -59
- package/dest/collection/index.js +0 -1
- package/dest/collection/object.js +9 -9
- package/dest/committable/committable.js +15 -20
- package/dest/committable/index.js +0 -1
- package/dest/config/env_var.d.ts +1 -1
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/env_var.js +1 -2
- package/dest/config/index.d.ts +1 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +31 -36
- package/dest/crypto/aes128/index.d.ts +34 -0
- package/dest/crypto/aes128/index.d.ts.map +1 -0
- package/dest/crypto/aes128/index.js +49 -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 +88 -0
- package/dest/crypto/ecdsa/signature.d.ts +71 -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 +47 -0
- package/dest/crypto/grumpkin/index.d.ts.map +1 -0
- package/dest/crypto/grumpkin/index.js +154 -0
- package/dest/crypto/index.d.ts +6 -0
- package/dest/crypto/index.d.ts.map +1 -1
- package/dest/crypto/index.js +6 -1
- package/dest/crypto/keccak/index.js +60 -69
- package/dest/crypto/keys/index.js +2 -3
- package/dest/crypto/pedersen/index.js +0 -1
- package/dest/crypto/pedersen/pedersen.elliptic.js +153 -146
- package/dest/crypto/pedersen/pedersen.noble.js +140 -142
- package/dest/crypto/pedersen/pedersen.wasm.js +17 -16
- package/dest/crypto/poseidon/index.js +15 -19
- package/dest/crypto/random/index.js +7 -12
- package/dest/crypto/random/randomness_singleton.js +12 -12
- package/dest/crypto/schnorr/index.d.ts +30 -0
- package/dest/crypto/schnorr/index.d.ts.map +1 -0
- package/dest/crypto/schnorr/index.js +68 -0
- package/dest/crypto/schnorr/signature.d.ts +70 -0
- package/dest/crypto/schnorr/signature.d.ts.map +1 -0
- package/dest/crypto/schnorr/signature.js +93 -0
- package/dest/crypto/secp256k1/index.d.ts +32 -0
- package/dest/crypto/secp256k1/index.d.ts.map +1 -0
- package/dest/crypto/secp256k1/index.js +116 -0
- package/dest/crypto/secp256k1-signer/index.js +0 -1
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +2 -2
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +1 -1
- package/dest/crypto/secp256k1-signer/secp256k1_signer.js +8 -9
- package/dest/crypto/secp256k1-signer/utils.js +11 -16
- package/dest/crypto/serialize.d.ts +53 -0
- package/dest/crypto/serialize.d.ts.map +1 -0
- package/dest/crypto/serialize.js +68 -0
- package/dest/crypto/sha256/index.js +80 -30
- package/dest/crypto/sha512/index.js +2 -4
- package/dest/crypto/signature/index.d.ts +19 -0
- package/dest/crypto/signature/index.d.ts.map +1 -0
- package/dest/crypto/signature/index.js +3 -0
- package/dest/crypto/sync/index.js +1 -2
- package/dest/crypto/sync/pedersen/index.js +14 -13
- package/dest/crypto/sync/poseidon/index.js +10 -14
- package/dest/decorators/index.js +0 -1
- package/dest/decorators/memoize.js +1 -2
- package/dest/error/index.js +6 -19
- package/dest/eth-address/index.js +92 -113
- package/dest/eth-signature/eth_signature.js +21 -27
- package/dest/eth-signature/index.js +0 -1
- package/dest/fields/coordinate.d.ts +1 -1
- package/dest/fields/coordinate.d.ts.map +1 -1
- package/dest/fields/coordinate.js +47 -46
- package/dest/fields/fields.d.ts.map +1 -1
- package/dest/fields/fields.js +112 -126
- package/dest/fields/index.js +0 -1
- package/dest/fields/point.js +119 -129
- package/dest/fs/index.js +0 -1
- package/dest/fs/run_in_dir.d.ts +1 -1
- package/dest/fs/run_in_dir.d.ts.map +1 -1
- package/dest/fs/run_in_dir.js +16 -7
- package/dest/index.d.ts +0 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +0 -3
- package/dest/iterable/all.js +3 -4
- package/dest/iterable/filter.js +10 -11
- package/dest/iterable/index.js +0 -1
- package/dest/iterable/isAsyncIt.js +1 -3
- package/dest/iterable/map.js +10 -11
- package/dest/iterable/peek.js +14 -14
- package/dest/iterable/sort.js +4 -5
- package/dest/iterable/take.js +6 -7
- package/dest/iterable/toArray.js +1 -2
- package/dest/jest/setup.js +7 -0
- package/dest/json-rpc/client/fetch.js +25 -20
- package/dest/json-rpc/client/index.js +0 -1
- package/dest/json-rpc/client/safe_json_rpc_client.js +20 -9
- 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 +16 -17
- package/dest/json-rpc/convert.d.ts +1 -1
- package/dest/json-rpc/convert.d.ts.map +1 -1
- package/dest/json-rpc/convert.js +10 -20
- package/dest/json-rpc/fixtures/class_a.js +8 -5
- package/dest/json-rpc/fixtures/class_b.js +8 -5
- package/dest/json-rpc/fixtures/test_state.js +53 -40
- package/dest/json-rpc/index.js +0 -1
- package/dest/json-rpc/js_utils.js +2 -5
- package/dest/json-rpc/server/index.js +0 -1
- package/dest/json-rpc/server/safe_json_rpc_server.js +145 -101
- package/dest/json-rpc/server/telemetry.js +0 -2
- package/dest/json-rpc/test/index.js +0 -1
- package/dest/json-rpc/test/integration.d.ts +1 -1
- package/dest/json-rpc/test/integration.d.ts.map +1 -1
- package/dest/json-rpc/test/integration.js +11 -5
- package/dest/log/console.d.ts +1 -1
- package/dest/log/console.d.ts.map +1 -1
- package/dest/log/console.js +14 -16
- package/dest/log/debug.d.ts +1 -1
- package/dest/log/debug.d.ts.map +1 -1
- package/dest/log/debug.js +9 -18
- package/dest/log/gcloud-logger-config.js +17 -15
- package/dest/log/index.d.ts +1 -0
- package/dest/log/index.d.ts.map +1 -1
- package/dest/log/index.js +1 -1
- package/dest/log/libp2p_logger.d.ts +7 -0
- package/dest/log/libp2p_logger.d.ts.map +1 -0
- package/dest/log/libp2p_logger.js +55 -0
- package/dest/log/log-filters.js +14 -13
- package/dest/log/log-levels.js +10 -2
- package/dest/log/log_fn.js +1 -2
- package/dest/log/log_history.js +21 -25
- package/dest/log/pino-logger.d.ts +8 -4
- package/dest/log/pino-logger.d.ts.map +1 -1
- package/dest/log/pino-logger.js +92 -74
- package/dest/message/index.js +7 -3
- package/dest/mutex/index.d.ts +1 -1
- package/dest/mutex/index.d.ts.map +1 -1
- package/dest/mutex/index.js +34 -32
- package/dest/mutex/mutex_database.js +4 -2
- package/dest/noir/index.js +0 -1
- package/dest/noir/noir_package_config.js +13 -8
- package/dest/promise/index.js +0 -1
- package/dest/promise/running-promise.d.ts +8 -2
- package/dest/promise/running-promise.d.ts.map +1 -1
- package/dest/promise/running-promise.js +44 -31
- package/dest/promise/utils.js +3 -5
- package/dest/queue/base_memory_queue.js +51 -59
- package/dest/queue/batch_queue.js +34 -27
- package/dest/queue/bounded_serial_queue.js +41 -51
- package/dest/queue/fifo_memory_queue.d.ts +1 -1
- package/dest/queue/fifo_memory_queue.d.ts.map +1 -1
- package/dest/queue/fifo_memory_queue.js +4 -8
- package/dest/queue/index.js +0 -1
- package/dest/queue/priority_memory_queue.js +3 -4
- package/dest/queue/priority_queue.js +5 -5
- package/dest/queue/semaphore.js +15 -19
- package/dest/queue/serial_queue.js +37 -47
- package/dest/retry/index.js +21 -18
- package/dest/running-promise/index.js +0 -1
- package/dest/schemas/api.d.ts +2 -2
- package/dest/schemas/api.d.ts.map +1 -1
- package/dest/schemas/api.js +2 -7
- package/dest/schemas/index.d.ts +1 -1
- package/dest/schemas/index.d.ts.map +1 -1
- package/dest/schemas/index.js +1 -2
- package/dest/schemas/parse.js +4 -8
- package/dest/schemas/schemas.d.ts +1 -16
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +28 -56
- package/dest/schemas/types.d.ts +1 -1
- package/dest/schemas/types.d.ts.map +1 -1
- package/dest/schemas/types.js +1 -2
- package/dest/schemas/utils.d.ts +1 -1
- package/dest/schemas/utils.d.ts.map +1 -1
- package/dest/schemas/utils.js +18 -31
- package/dest/serialize/buffer_reader.d.ts +1 -1
- package/dest/serialize/buffer_reader.d.ts.map +1 -1
- package/dest/serialize/buffer_reader.js +164 -188
- package/dest/serialize/field_reader.d.ts +1 -1
- package/dest/serialize/field_reader.d.ts.map +1 -1
- package/dest/serialize/field_reader.js +70 -79
- package/dest/serialize/free_funcs.d.ts +1 -1
- package/dest/serialize/free_funcs.d.ts.map +1 -1
- package/dest/serialize/free_funcs.js +40 -37
- package/dest/serialize/index.js +0 -1
- package/dest/serialize/serialize.js +72 -83
- package/dest/serialize/type_registry.js +10 -14
- package/dest/serialize/types.js +4 -5
- package/dest/sleep/index.js +25 -29
- package/dest/string/index.js +0 -1
- package/dest/testing/files/index.js +3 -7
- package/dest/testing/index.js +0 -1
- package/dest/testing/port_allocator.js +7 -10
- package/dest/testing/snapshot_serializer.d.ts +1 -1
- package/dest/testing/snapshot_serializer.d.ts.map +1 -1
- package/dest/testing/snapshot_serializer.js +14 -9
- package/dest/testing/test_data.js +7 -8
- package/dest/timer/date.js +9 -7
- package/dest/timer/elapsed.js +10 -7
- package/dest/timer/index.js +0 -1
- package/dest/timer/timeout.js +34 -34
- package/dest/timer/timer.js +17 -21
- package/dest/transport/browser/index.js +0 -1
- package/dest/transport/browser/message_port_socket.d.ts +1 -1
- package/dest/transport/browser/message_port_socket.d.ts.map +1 -1
- package/dest/transport/browser/message_port_socket.js +26 -30
- package/dest/transport/browser/shared_worker_connector.d.ts +1 -1
- package/dest/transport/browser/shared_worker_connector.d.ts.map +1 -1
- package/dest/transport/browser/shared_worker_connector.js +8 -10
- package/dest/transport/browser/shared_worker_listener.d.ts +1 -1
- package/dest/transport/browser/shared_worker_listener.d.ts.map +1 -1
- package/dest/transport/browser/shared_worker_listener.js +13 -17
- package/dest/transport/browser/worker_connector.d.ts +1 -1
- package/dest/transport/browser/worker_connector.d.ts.map +1 -1
- package/dest/transport/browser/worker_connector.js +12 -12
- package/dest/transport/browser/worker_listener.d.ts +1 -1
- package/dest/transport/browser/worker_listener.d.ts.map +1 -1
- package/dest/transport/browser/worker_listener.js +13 -17
- package/dest/transport/dispatch/create_dispatch_fn.js +2 -4
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts +2 -2
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +1 -1
- package/dest/transport/dispatch/create_dispatch_proxy.js +16 -13
- package/dest/transport/dispatch/messages.js +4 -3
- package/dest/transport/index.js +0 -1
- package/dest/transport/interface/connector.d.ts +1 -1
- package/dest/transport/interface/connector.d.ts.map +1 -1
- package/dest/transport/interface/connector.js +3 -2
- package/dest/transport/interface/listener.d.ts +1 -1
- package/dest/transport/interface/listener.d.ts.map +1 -1
- package/dest/transport/interface/listener.js +4 -2
- package/dest/transport/interface/socket.js +7 -2
- package/dest/transport/interface/transferable.js +7 -9
- package/dest/transport/node/index.js +0 -1
- package/dest/transport/node/node_connector.d.ts +2 -2
- package/dest/transport/node/node_connector.d.ts.map +1 -1
- package/dest/transport/node/node_connector.js +9 -11
- package/dest/transport/node/node_connector_socket.d.ts +2 -2
- package/dest/transport/node/node_connector_socket.d.ts.map +1 -1
- package/dest/transport/node/node_connector_socket.js +21 -25
- 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.js +11 -15
- package/dest/transport/node/node_listener_socket.d.ts +2 -2
- package/dest/transport/node/node_listener_socket.d.ts.map +1 -1
- package/dest/transport/node/node_listener_socket.js +23 -27
- package/dest/transport/transport_client.d.ts +1 -1
- package/dest/transport/transport_client.d.ts.map +1 -1
- package/dest/transport/transport_client.js +47 -46
- package/dest/transport/transport_server.d.ts +1 -1
- package/dest/transport/transport_server.d.ts.map +1 -1
- package/dest/transport/transport_server.js +68 -55
- package/dest/trees/hasher.d.ts +39 -0
- package/dest/trees/hasher.d.ts.map +1 -0
- package/dest/trees/hasher.js +5 -0
- package/dest/trees/index.d.ts +8 -56
- package/dest/trees/index.d.ts.map +1 -1
- package/dest/trees/index.js +8 -1
- package/dest/trees/indexed_merkle_tree.d.ts +13 -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 +23 -0
- package/dest/trees/indexed_merkle_tree_calculator.d.ts.map +1 -0
- package/dest/trees/indexed_merkle_tree_calculator.js +83 -0
- package/dest/trees/indexed_tree_leaf.d.ts +57 -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 +62 -0
- package/dest/trees/membership_witness.d.ts.map +1 -0
- package/dest/trees/membership_witness.js +70 -0
- package/dest/trees/merkle_tree.d.ts +18 -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 +61 -0
- package/dest/trees/sibling_path.d.ts +132 -0
- package/dest/trees/sibling_path.d.ts.map +1 -0
- package/dest/trees/sibling_path.js +144 -0
- package/dest/trees/unbalanced_merkle_tree.d.ts +1 -1
- package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
- package/dest/trees/unbalanced_merkle_tree.js +28 -18
- package/dest/trees/unbalanced_tree_store.js +43 -29
- package/dest/types/index.js +1 -3
- package/dest/url/index.js +4 -8
- package/dest/validation/index.js +2 -5
- package/dest/wasm/empty_wasi_sdk.js +142 -160
- package/dest/wasm/index.d.ts +1 -1
- package/dest/wasm/index.d.ts.map +1 -1
- package/dest/wasm/index.js +0 -1
- package/dest/wasm/wasm_module.js +80 -90
- package/dest/worker/browser/index.js +0 -1
- package/dest/worker/browser/start_web_module.d.ts +1 -1
- package/dest/worker/browser/start_web_module.d.ts.map +1 -1
- package/dest/worker/browser/start_web_module.js +9 -5
- package/dest/worker/browser/web_data_store.d.ts +1 -1
- package/dest/worker/browser/web_data_store.d.ts.map +1 -1
- package/dest/worker/browser/web_data_store.js +12 -15
- package/dest/worker/browser/web_worker.d.ts +1 -1
- package/dest/worker/browser/web_worker.d.ts.map +1 -1
- package/dest/worker/browser/web_worker.js +6 -5
- package/dest/worker/data_store.js +3 -2
- package/dest/worker/index.d.ts +1 -1
- package/dest/worker/index.d.ts.map +1 -1
- package/dest/worker/index.js +0 -1
- package/dest/worker/node/index.js +0 -1
- package/dest/worker/node/node_data_store.d.ts +1 -1
- package/dest/worker/node/node_data_store.d.ts.map +1 -1
- package/dest/worker/node/node_data_store.js +4 -5
- package/dest/worker/node/node_worker.d.ts +1 -1
- package/dest/worker/node/node_worker.d.ts.map +1 -1
- package/dest/worker/node/node_worker.js +6 -5
- package/dest/worker/node/start_node_module.d.ts +1 -1
- package/dest/worker/node/start_node_module.d.ts.map +1 -1
- package/dest/worker/node/start_node_module.js +9 -5
- package/dest/worker/wasm_worker.d.ts +2 -2
- package/dest/worker/wasm_worker.d.ts.map +1 -1
- package/dest/worker/wasm_worker.js +3 -2
- package/dest/worker/worker_pool.d.ts +1 -1
- package/dest/worker/worker_pool.d.ts.map +1 -1
- package/dest/worker/worker_pool.js +32 -43
- package/package.json +5 -5
- package/src/array/array.ts +1 -1
- package/src/buffer/buffer32.ts +1 -1
- package/src/collection/array.ts +1 -1
- package/src/config/env_var.ts +7 -5
- package/src/config/index.ts +1 -1
- package/src/crypto/aes128/index.ts +59 -0
- package/src/crypto/ecdsa/index.ts +70 -0
- package/src/crypto/ecdsa/signature.ts +100 -0
- package/src/crypto/grumpkin/index.ts +97 -0
- package/src/crypto/index.ts +6 -0
- package/src/crypto/keys/index.ts +1 -1
- package/src/crypto/pedersen/pedersen.wasm.ts +3 -3
- package/src/crypto/poseidon/index.ts +5 -5
- package/src/crypto/schnorr/index.ts +55 -0
- package/src/crypto/schnorr/signature.ts +116 -0
- package/src/crypto/secp256k1/index.ts +57 -0
- package/src/crypto/secp256k1-signer/secp256k1_signer.ts +2 -2
- package/src/crypto/serialize.ts +85 -0
- package/src/crypto/signature/index.ts +17 -0
- package/src/crypto/sync/index.ts +1 -1
- package/src/fields/coordinate.ts +1 -1
- package/src/fields/fields.ts +2 -1
- package/src/fs/run_in_dir.ts +8 -1
- package/src/index.ts +0 -2
- package/src/json-rpc/client/undici.ts +1 -1
- package/src/json-rpc/convert.ts +1 -1
- package/src/json-rpc/server/safe_json_rpc_server.ts +1 -1
- package/src/json-rpc/test/integration.ts +1 -1
- package/src/log/console.ts +1 -1
- package/src/log/debug.ts +1 -1
- package/src/log/gcloud-logger-config.ts +1 -1
- package/src/log/index.ts +1 -0
- package/src/log/libp2p_logger.ts +67 -0
- package/src/log/pino-logger.ts +16 -16
- package/src/mutex/index.ts +1 -1
- package/src/promise/running-promise.ts +24 -5
- package/src/queue/fifo_memory_queue.ts +1 -1
- package/src/schemas/api.ts +2 -2
- package/src/schemas/index.ts +1 -1
- package/src/schemas/schemas.ts +2 -26
- package/src/schemas/types.ts +1 -1
- package/src/schemas/utils.ts +1 -1
- package/src/serialize/buffer_reader.ts +1 -1
- package/src/serialize/field_reader.ts +1 -1
- package/src/serialize/free_funcs.ts +1 -1
- package/src/testing/snapshot_serializer.ts +1 -1
- package/src/transport/browser/message_port_socket.ts +1 -1
- package/src/transport/browser/shared_worker_connector.ts +1 -1
- package/src/transport/browser/shared_worker_listener.ts +1 -1
- package/src/transport/browser/worker_connector.ts +1 -1
- package/src/transport/browser/worker_listener.ts +1 -1
- package/src/transport/dispatch/create_dispatch_proxy.ts +2 -2
- package/src/transport/interface/connector.ts +1 -1
- package/src/transport/interface/listener.ts +1 -1
- package/src/transport/node/node_connector.ts +2 -2
- package/src/transport/node/node_connector_socket.ts +2 -2
- package/src/transport/node/node_listener.ts +1 -1
- package/src/transport/node/node_listener_socket.ts +2 -2
- package/src/transport/transport_client.ts +2 -2
- package/src/transport/transport_server.ts +3 -3
- package/src/trees/hasher.ts +39 -0
- package/src/trees/index.ts +8 -57
- package/src/trees/indexed_merkle_tree.ts +36 -0
- package/src/trees/indexed_merkle_tree_calculator.ts +94 -0
- package/src/trees/indexed_tree_leaf.ts +56 -0
- package/src/trees/membership_witness.ts +99 -0
- package/src/trees/merkle_tree.ts +72 -0
- package/src/trees/merkle_tree_calculator.ts +67 -0
- package/src/trees/sibling_path.ts +183 -0
- package/src/trees/unbalanced_merkle_tree.ts +2 -2
- package/src/wasm/index.ts +1 -1
- package/src/worker/browser/start_web_module.ts +1 -1
- package/src/worker/browser/web_data_store.ts +1 -1
- package/src/worker/browser/web_worker.ts +1 -1
- package/src/worker/index.ts +1 -1
- package/src/worker/node/node_data_store.ts +1 -1
- package/src/worker/node/node_worker.ts +1 -1
- package/src/worker/node/start_node_module.ts +1 -1
- package/src/worker/wasm_worker.ts +2 -2
- package/src/worker/worker_pool.ts +1 -1
- package/dest/abi/abi.d.ts +0 -853
- package/dest/abi/abi.d.ts.map +0 -1
- package/dest/abi/abi.js +0 -214
- package/dest/abi/buffer.d.ts +0 -18
- package/dest/abi/buffer.d.ts.map +0 -1
- package/dest/abi/buffer.js +0 -34
- package/dest/abi/decoder.d.ts +0 -58
- package/dest/abi/decoder.d.ts.map +0 -1
- package/dest/abi/decoder.js +0 -180
- package/dest/abi/encoder.d.ts +0 -16
- package/dest/abi/encoder.d.ts.map +0 -1
- package/dest/abi/encoder.js +0 -174
- package/dest/abi/event_selector.d.ts +0 -52
- package/dest/abi/event_selector.d.ts.map +0 -1
- package/dest/abi/event_selector.js +0 -76
- package/dest/abi/function_selector.d.ts +0 -65
- package/dest/abi/function_selector.d.ts.map +0 -1
- package/dest/abi/function_selector.js +0 -92
- package/dest/abi/index.d.ts +0 -10
- package/dest/abi/index.d.ts.map +0 -1
- package/dest/abi/index.js +0 -10
- package/dest/abi/note_selector.d.ts +0 -42
- package/dest/abi/note_selector.d.ts.map +0 -1
- package/dest/abi/note_selector.js +0 -63
- package/dest/abi/selector.d.ts +0 -42
- package/dest/abi/selector.d.ts.map +0 -1
- package/dest/abi/selector.js +0 -57
- package/dest/abi/u128.d.ts +0 -13
- package/dest/abi/u128.d.ts.map +0 -1
- package/dest/abi/u128.js +0 -58
- package/dest/abi/utils.d.ts +0 -44
- package/dest/abi/utils.d.ts.map +0 -1
- package/dest/abi/utils.js +0 -72
- package/dest/aztec-address/index.d.ts +0 -57
- package/dest/aztec-address/index.d.ts.map +0 -1
- package/dest/aztec-address/index.js +0 -114
- package/src/abi/abi.ts +0 -504
- package/src/abi/buffer.ts +0 -36
- package/src/abi/decoder.ts +0 -195
- package/src/abi/encoder.ts +0 -170
- package/src/abi/event_selector.ts +0 -92
- package/src/abi/function_selector.ts +0 -124
- package/src/abi/index.ts +0 -9
- package/src/abi/note_selector.ts +0 -78
- package/src/abi/selector.ts +0 -64
- package/src/abi/u128.ts +0 -71
- package/src/abi/utils.ts +0 -86
- package/src/aztec-address/index.ts +0 -146
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
|
+
import { type GrumpkinScalar, Point } from '@aztec/foundation/fields';
|
|
3
|
+
import { numToInt32BE } from '@aztec/foundation/serialize';
|
|
4
|
+
|
|
5
|
+
import { concatenateUint8Arrays } from '../serialize.js';
|
|
6
|
+
import { SchnorrSignature } from './signature.js';
|
|
7
|
+
|
|
8
|
+
export * from './signature.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Schnorr signature construction and helper operations.
|
|
12
|
+
*/
|
|
13
|
+
export class Schnorr {
|
|
14
|
+
/**
|
|
15
|
+
* Computes a grumpkin public key from a private key.
|
|
16
|
+
* @param privateKey - The private key.
|
|
17
|
+
* @returns A grumpkin public key.
|
|
18
|
+
*/
|
|
19
|
+
public async computePublicKey(privateKey: GrumpkinScalar): Promise<Point> {
|
|
20
|
+
const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
|
|
21
|
+
const [result] = api.getWasm().callWasmExport('schnorr_compute_public_key', [privateKey.toBuffer()], [64]);
|
|
22
|
+
return Point.fromBuffer(Buffer.from(result));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Constructs a Schnorr signature given a msg and a private key.
|
|
27
|
+
* @param msg - Message over which the signature is constructed.
|
|
28
|
+
* @param privateKey - The private key of the signer.
|
|
29
|
+
* @returns A Schnorr signature of the form (s, e).
|
|
30
|
+
*/
|
|
31
|
+
public async constructSignature(msg: Uint8Array, privateKey: GrumpkinScalar) {
|
|
32
|
+
const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
|
|
33
|
+
const messageArray = concatenateUint8Arrays([numToInt32BE(msg.length), msg]);
|
|
34
|
+
const [s, e] = api
|
|
35
|
+
.getWasm()
|
|
36
|
+
.callWasmExport('schnorr_construct_signature', [messageArray, privateKey.toBuffer()], [32, 32]);
|
|
37
|
+
return new SchnorrSignature(Buffer.from([...s, ...e]));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Verifies a Schnorr signature given a Grumpkin public key.
|
|
42
|
+
* @param msg - Message over which the signature was constructed.
|
|
43
|
+
* @param pubKey - The Grumpkin public key of the signer.
|
|
44
|
+
* @param sig - The Schnorr signature.
|
|
45
|
+
* @returns True or false.
|
|
46
|
+
*/
|
|
47
|
+
public async verifySignature(msg: Uint8Array, pubKey: Point, sig: SchnorrSignature) {
|
|
48
|
+
const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
|
|
49
|
+
const messageArray = concatenateUint8Arrays([numToInt32BE(msg.length), msg]);
|
|
50
|
+
const [result] = api
|
|
51
|
+
.getWasm()
|
|
52
|
+
.callWasmExport('schnorr_verify_signature', [messageArray, pubKey.toBuffer(), sig.s, sig.e], [1]);
|
|
53
|
+
return result[0] === 1;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { randomBytes } from '@aztec/foundation/crypto';
|
|
2
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
import { BufferReader, mapTuple } from '@aztec/foundation/serialize';
|
|
4
|
+
|
|
5
|
+
import type { Signature } from '../signature/index.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Schnorr signature used for transactions.
|
|
9
|
+
* @see cpp/barretenberg/cpp/src/barretenberg/crypto/schnorr/schnorr.hpp
|
|
10
|
+
*/
|
|
11
|
+
export class SchnorrSignature implements Signature {
|
|
12
|
+
/**
|
|
13
|
+
* The size of the signature in bytes.
|
|
14
|
+
*/
|
|
15
|
+
public static SIZE = 64;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* An empty signature.
|
|
19
|
+
*/
|
|
20
|
+
public static EMPTY = new SchnorrSignature(Buffer.alloc(64));
|
|
21
|
+
|
|
22
|
+
constructor(private buffer: Buffer) {
|
|
23
|
+
if (buffer.length !== SchnorrSignature.SIZE) {
|
|
24
|
+
throw new Error(`Invalid signature buffer of length ${buffer.length}.`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Determines if the provided signature is valid or not.
|
|
30
|
+
* @param signature - The data to be checked.
|
|
31
|
+
* @returns Boolean indicating if the provided data is a valid schnorr signature.
|
|
32
|
+
*/
|
|
33
|
+
public static isSignature(signature: string) {
|
|
34
|
+
return /^(0x)?[0-9a-f]{128}$/i.test(signature);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Constructs a SchnorrSignature from the provided string.
|
|
39
|
+
* @param signature - The string to be converted to a schnorr signature.
|
|
40
|
+
* @returns The constructed schnorr signature.
|
|
41
|
+
*/
|
|
42
|
+
public static fromString(signature: string) {
|
|
43
|
+
if (!SchnorrSignature.isSignature(signature)) {
|
|
44
|
+
throw new Error(`Invalid signature string: ${signature}`);
|
|
45
|
+
}
|
|
46
|
+
return new SchnorrSignature(Buffer.from(signature.replace(/^0x/i, ''), 'hex'));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Generates a random schnorr signature.
|
|
51
|
+
* @returns The randomly constructed signature.
|
|
52
|
+
*/
|
|
53
|
+
public static random() {
|
|
54
|
+
return new SchnorrSignature(randomBytes(64));
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Returns the 's' component of the signature.
|
|
59
|
+
* @returns A buffer containing the signature's 's' component.
|
|
60
|
+
*/
|
|
61
|
+
get s() {
|
|
62
|
+
return this.buffer.subarray(0, 32);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Returns the 'e' component of the signature.
|
|
67
|
+
* @returns A buffer containing the signature's 'e' component.
|
|
68
|
+
*/
|
|
69
|
+
get e() {
|
|
70
|
+
return this.buffer.subarray(32);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Returns the full signature as a buffer.
|
|
75
|
+
* @returns A buffer containing the signature.
|
|
76
|
+
*/
|
|
77
|
+
toBuffer() {
|
|
78
|
+
return this.buffer;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Deserializes from a buffer.
|
|
83
|
+
* @param buffer - The buffer representation of the object.
|
|
84
|
+
* @returns The new object.
|
|
85
|
+
*/
|
|
86
|
+
static fromBuffer(buffer: Buffer | BufferReader): SchnorrSignature {
|
|
87
|
+
const reader = BufferReader.asReader(buffer);
|
|
88
|
+
return new SchnorrSignature(reader.readBytes(SchnorrSignature.SIZE));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Returns the full signature as a hex string.
|
|
93
|
+
* @returns A string containing the signature in hex format.
|
|
94
|
+
*/
|
|
95
|
+
toString() {
|
|
96
|
+
return `0x${this.buffer.toString('hex')}`;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Converts the signature to an array of three fields.
|
|
101
|
+
* @returns The signature components as an array of three fields
|
|
102
|
+
*/
|
|
103
|
+
toFields(): Fr[] {
|
|
104
|
+
const sig = this.toBuffer();
|
|
105
|
+
|
|
106
|
+
const buf1 = Buffer.alloc(32);
|
|
107
|
+
const buf2 = Buffer.alloc(32);
|
|
108
|
+
const buf3 = Buffer.alloc(32);
|
|
109
|
+
|
|
110
|
+
sig.copy(buf1, 1, 0, 31);
|
|
111
|
+
sig.copy(buf2, 1, 31, 62);
|
|
112
|
+
sig.copy(buf3, 1, 62, 64);
|
|
113
|
+
|
|
114
|
+
return mapTuple([buf1, buf2, buf3], Fr.fromBuffer);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Secp256k1 elliptic curve operations.
|
|
5
|
+
*/
|
|
6
|
+
export class Secp256k1 {
|
|
7
|
+
// prettier-ignore
|
|
8
|
+
static generator = Buffer.from([
|
|
9
|
+
0x79, 0xbe, 0x66, 0x7e, 0xf9, 0xdc, 0xbb, 0xac, 0x55, 0xa0, 0x62, 0x95, 0xce, 0x87, 0x0b, 0x07,
|
|
10
|
+
0x02, 0x9b, 0xfc, 0xdb, 0x2d, 0xce, 0x28, 0xd9, 0x59, 0xf2, 0x81, 0x5b, 0x16, 0xf8, 0x17, 0x98,
|
|
11
|
+
0x48, 0x3a, 0xda, 0x77, 0x26, 0xa3, 0xc4, 0x65, 0x5d, 0xa4, 0xfb, 0xfc, 0x0e, 0x11, 0x08, 0xa8,
|
|
12
|
+
0xfd, 0x17, 0xb4, 0x48, 0xa6, 0x85, 0x54, 0x19, 0x9c, 0x47, 0xd0, 0x8f, 0xfb, 0x10, 0xd4, 0xb8,
|
|
13
|
+
]);
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Point generator
|
|
17
|
+
* @returns The generator for the curve.
|
|
18
|
+
*/
|
|
19
|
+
public generator(): Buffer {
|
|
20
|
+
return Secp256k1.generator;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Multiplies a point by a scalar (adds the point `scalar` amount of time).
|
|
25
|
+
* @param point - Point to multiply.
|
|
26
|
+
* @param scalar - Scalar to multiply by.
|
|
27
|
+
* @returns Result of the multiplication.
|
|
28
|
+
*/
|
|
29
|
+
public async mul(point: Uint8Array, scalar: Uint8Array) {
|
|
30
|
+
const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
|
|
31
|
+
const [result] = api.getWasm().callWasmExport('ecc_secp256k1__mul', [point, scalar], [64]);
|
|
32
|
+
return Buffer.from(result);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Gets a random field element.
|
|
37
|
+
* @returns Random field element.
|
|
38
|
+
*/
|
|
39
|
+
public async getRandomFr() {
|
|
40
|
+
const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
|
|
41
|
+
const [result] = api.getWasm().callWasmExport('ecc_secp256k1__get_random_scalar_mod_circuit_modulus', [], [32]);
|
|
42
|
+
return Buffer.from(result);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Converts a 512 bits long buffer to a field.
|
|
47
|
+
* @param uint512Buf - The buffer to convert.
|
|
48
|
+
* @returns Buffer representation of the field element.
|
|
49
|
+
*/
|
|
50
|
+
public async reduce512BufferToFr(uint512Buf: Buffer) {
|
|
51
|
+
const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
|
|
52
|
+
const [result] = api
|
|
53
|
+
.getWasm()
|
|
54
|
+
.callWasmExport('ecc_secp256k1__reduce512_buffer_mod_circuit_modulus', [uint512Buf], [32]);
|
|
55
|
+
return Buffer.from(result);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
|
+
import type { Signature } from '@aztec/foundation/eth-signature';
|
|
4
4
|
|
|
5
5
|
import { addressFromPrivateKey, makeEthSignDigest, signMessage } from './utils.js';
|
|
6
6
|
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// TODO find a new home for this as we move to external bb.js
|
|
2
|
+
// See https://github.com/AztecProtocol/aztec-packages/issues/782
|
|
3
|
+
import { Buffer } from 'buffer';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* For serializing an array of fixed length buffers.
|
|
7
|
+
* TODO move to foundation pkg.
|
|
8
|
+
* @param arr - Array of bufffers.
|
|
9
|
+
* @returns The serialized buffers.
|
|
10
|
+
*/
|
|
11
|
+
export function serializeBufferArrayToVector(arr: Buffer[]) {
|
|
12
|
+
const lengthBuf = Buffer.alloc(4);
|
|
13
|
+
lengthBuf.writeUInt32BE(arr.length, 0);
|
|
14
|
+
return Buffer.concat([lengthBuf, ...arr]);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Helper function for deserializeArrayFromVector.
|
|
19
|
+
*/
|
|
20
|
+
type DeserializeFn<T> = (
|
|
21
|
+
buf: Buffer,
|
|
22
|
+
offset: number,
|
|
23
|
+
) => {
|
|
24
|
+
/**
|
|
25
|
+
* The deserialized type.
|
|
26
|
+
*/
|
|
27
|
+
elem: T;
|
|
28
|
+
/**
|
|
29
|
+
* How many bytes to advance by.
|
|
30
|
+
*/
|
|
31
|
+
adv: number;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* For deserializing numbers to 32-bit little-endian form.
|
|
36
|
+
* TODO move to foundation pkg.
|
|
37
|
+
* @param n - The number.
|
|
38
|
+
* @returns The endian-corrected number.
|
|
39
|
+
*/
|
|
40
|
+
export function deserializeArrayFromVector<T>(deserialize: DeserializeFn<T>, vector: Buffer, offset = 0) {
|
|
41
|
+
let pos = offset;
|
|
42
|
+
const size = vector.readUInt32BE(pos);
|
|
43
|
+
pos += 4;
|
|
44
|
+
const arr = new Array<T>(size);
|
|
45
|
+
for (let i = 0; i < size; ++i) {
|
|
46
|
+
const { elem, adv } = deserialize(vector, pos);
|
|
47
|
+
pos += adv;
|
|
48
|
+
arr[i] = elem;
|
|
49
|
+
}
|
|
50
|
+
return { elem: arr, adv: pos - offset };
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* For serializing numbers to 32 bit little-endian form.
|
|
55
|
+
* TODO move to foundation pkg.
|
|
56
|
+
* @param n - The number.
|
|
57
|
+
* @returns The endian-corrected number.
|
|
58
|
+
*/
|
|
59
|
+
export function numToUInt32LE(n: number, bufferSize = 4) {
|
|
60
|
+
const buf = Buffer.alloc(bufferSize);
|
|
61
|
+
buf.writeUInt32LE(n, bufferSize - 4);
|
|
62
|
+
return buf;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Deserialize the 256-bit number at address `offset`.
|
|
67
|
+
* @param buf - The buffer.
|
|
68
|
+
* @param offset - The address.
|
|
69
|
+
* @returns The derserialized 256-bit field.
|
|
70
|
+
*/
|
|
71
|
+
export function deserializeField(buf: Buffer, offset = 0) {
|
|
72
|
+
const adv = 32;
|
|
73
|
+
return { elem: buf.slice(offset, offset + adv), adv };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export function concatenateUint8Arrays(arrayOfUint8Arrays: Uint8Array[]) {
|
|
77
|
+
const totalLength = arrayOfUint8Arrays.reduce((prev, curr) => prev + curr.length, 0);
|
|
78
|
+
const result = new Uint8Array(totalLength);
|
|
79
|
+
let length = 0;
|
|
80
|
+
for (const array of arrayOfUint8Arrays) {
|
|
81
|
+
result.set(array, length);
|
|
82
|
+
length += array.length;
|
|
83
|
+
}
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Interface to represent a signature.
|
|
5
|
+
*/
|
|
6
|
+
export interface Signature {
|
|
7
|
+
/**
|
|
8
|
+
* Serializes to a buffer.
|
|
9
|
+
* @returns A buffer.
|
|
10
|
+
*/
|
|
11
|
+
toBuffer(): Buffer;
|
|
12
|
+
/**
|
|
13
|
+
* Serializes to an array of fields.
|
|
14
|
+
* @returns Fields.
|
|
15
|
+
*/
|
|
16
|
+
toFields(): Fr[];
|
|
17
|
+
}
|
package/src/crypto/sync/index.ts
CHANGED
package/src/fields/coordinate.ts
CHANGED
package/src/fields/fields.ts
CHANGED
|
@@ -319,7 +319,8 @@ export class Fr extends BaseField {
|
|
|
319
319
|
* @returns A square root of the field element (null if it does not exist).
|
|
320
320
|
*/
|
|
321
321
|
async sqrt(): Promise<Fr | null> {
|
|
322
|
-
const
|
|
322
|
+
const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
|
|
323
|
+
const wasm = api.getWasm();
|
|
323
324
|
const [buf] = wasm.callWasmExport('bn254_fr_sqrt', [this.toBuffer()], [Fr.SIZE_IN_BYTES + 1]);
|
|
324
325
|
const isSqrt = buf[0] === 1;
|
|
325
326
|
if (!isSqrt) {
|
package/src/fs/run_in_dir.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { promises as fs } from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
|
|
4
|
+
import { createLogger } from '../log/pino-logger.js';
|
|
5
|
+
|
|
4
6
|
// Create a random directory underneath a 'base' directory
|
|
5
7
|
// Calls a provided method, ensures the random directory is cleaned up afterwards unless the operation fails
|
|
6
8
|
export async function runInDirectory<T>(
|
|
7
9
|
workingDirBase: string,
|
|
8
10
|
fn: (dir: string) => Promise<T>,
|
|
9
11
|
skipCleanup: boolean | undefined,
|
|
12
|
+
logger = createLogger('foundation:run-in-directory'),
|
|
10
13
|
): Promise<T> {
|
|
11
14
|
// Create random directory to be used for temp files
|
|
12
15
|
const workingDirectory = await fs.mkdtemp(path.join(workingDirBase, 'tmp-'));
|
|
@@ -20,7 +23,11 @@ export async function runInDirectory<T>(
|
|
|
20
23
|
throw err;
|
|
21
24
|
} finally {
|
|
22
25
|
if (!skipCleanup) {
|
|
23
|
-
|
|
26
|
+
try {
|
|
27
|
+
await fs.rm(workingDirectory, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
|
|
28
|
+
} catch (err) {
|
|
29
|
+
logger.warn(`Failed to cleanup temporary directory ${workingDirectory}: ${err}`, { err });
|
|
30
|
+
}
|
|
24
31
|
}
|
|
25
32
|
}
|
|
26
33
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
// Reexport all folders at the root for packages targeting CommonJS
|
|
2
|
-
export * as abi from './abi/index.js';
|
|
3
2
|
export * as asyncMap from './async-map/index.js';
|
|
4
|
-
export * as aztecAddress from './aztec-address/index.js';
|
|
5
3
|
export * as bigintBuffer from './bigint-buffer/index.js';
|
|
6
4
|
export * as collection from './collection/index.js';
|
|
7
5
|
export * as committable from './committable/index.js';
|
|
@@ -3,7 +3,7 @@ import { Agent, type Dispatcher } from 'undici';
|
|
|
3
3
|
import { createLogger } from '../../log/pino-logger.js';
|
|
4
4
|
import { NoRetryError } from '../../retry/index.js';
|
|
5
5
|
import { jsonStringify } from '../convert.js';
|
|
6
|
-
import {
|
|
6
|
+
import type { JsonRpcFetch } from './fetch.js';
|
|
7
7
|
|
|
8
8
|
const log = createLogger('json-rpc:json_rpc_client:undici');
|
|
9
9
|
|
package/src/json-rpc/convert.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { type default as Application, default as Koa } from 'koa';
|
|
|
4
4
|
import bodyParser from 'koa-bodyparser';
|
|
5
5
|
import compress from 'koa-compress';
|
|
6
6
|
import Router from 'koa-router';
|
|
7
|
-
import {
|
|
7
|
+
import type { AddressInfo } from 'net';
|
|
8
8
|
import { format, inspect } from 'util';
|
|
9
9
|
import { ZodError } from 'zod';
|
|
10
10
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type http from 'http';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import type { ApiSchemaFor } from '../../schemas/api.js';
|
|
4
4
|
import { makeFetch } from '../client/fetch.js';
|
|
5
5
|
import { type SafeJsonRpcClientOptions, createSafeJsonRpcClient } from '../client/safe_json_rpc_client.js';
|
|
6
6
|
import {
|
package/src/log/console.ts
CHANGED
package/src/log/debug.ts
CHANGED
package/src/log/index.ts
CHANGED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { ComponentLogger, Logger } from '@libp2p/interface';
|
|
2
|
+
|
|
3
|
+
import { getLogLevelFromFilters } from './log-filters.js';
|
|
4
|
+
import type { LogLevel } from './log-levels.js';
|
|
5
|
+
import { logFilters, logger } from './pino-logger.js';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Creates a libp2p compatible logger that wraps our pino logger.
|
|
9
|
+
* This adapter implements the ComponentLogger interface required by libp2p.
|
|
10
|
+
*/
|
|
11
|
+
export function createLibp2pComponentLogger(namespace: string): ComponentLogger {
|
|
12
|
+
return {
|
|
13
|
+
forComponent: (component: string) => createLibp2pLogger(`${namespace}:${component}`),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Lipp2p libraries use arbitrary string substitutions, so we need to replace them with %s, this is slow so avoid doing it unless trace debugging
|
|
18
|
+
function replaceFormatting(message: string) {
|
|
19
|
+
// Message can sometimes not be a string, e.g. an error object, just return it as is
|
|
20
|
+
if (!message?.replace) {
|
|
21
|
+
return message;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return message.replace(/(%p|%a)/g, '%s');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function createLibp2pLogger(component: string): Logger {
|
|
28
|
+
// Create a direct pino logger instance for libp2p that supports string interpolation
|
|
29
|
+
const log = logger.child({ module: component }, { level: getLogLevelFromFilters(logFilters, component) });
|
|
30
|
+
|
|
31
|
+
const logIfEnabled = (level: LogLevel, message: string, ...args: unknown[]) => {
|
|
32
|
+
if (!log.isLevelEnabled(level)) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
log[level](replaceFormatting(message), ...args);
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// Default log level is trace as this is super super noisy
|
|
40
|
+
const logFn = (message: string, ...args: unknown[]) => {
|
|
41
|
+
logIfEnabled('trace', message, ...args);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
return Object.assign(logFn, {
|
|
45
|
+
enabled: log.isLevelEnabled('debug'),
|
|
46
|
+
error(message: string, ...args: unknown[]) {
|
|
47
|
+
// We write error outputs as debug as they are often expected, e.g. connection errors can happen in happy paths
|
|
48
|
+
logIfEnabled('debug', message, ...args);
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
debug(message: string, ...args: unknown[]) {
|
|
52
|
+
logIfEnabled('debug', message, ...args);
|
|
53
|
+
},
|
|
54
|
+
|
|
55
|
+
info(message: string, ...args: unknown[]) {
|
|
56
|
+
logIfEnabled('info', message, ...args);
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
warn(message: string, ...args: unknown[]) {
|
|
60
|
+
logIfEnabled('warn', message, ...args);
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
trace(message: string, ...args: unknown[]) {
|
|
64
|
+
logIfEnabled('trace', message, ...args);
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
}
|
package/src/log/pino-logger.ts
CHANGED
|
@@ -1,33 +1,24 @@
|
|
|
1
1
|
import { createColors, isColorSupported } from 'colorette';
|
|
2
2
|
import isNode from 'detect-node';
|
|
3
3
|
import { pino, symbols } from 'pino';
|
|
4
|
-
import {
|
|
4
|
+
import type { Writable } from 'stream';
|
|
5
5
|
import { inspect } from 'util';
|
|
6
6
|
|
|
7
7
|
import { compactArray } from '../collection/array.js';
|
|
8
8
|
import { type EnvVar, parseBooleanEnv } from '../config/index.js';
|
|
9
9
|
import { GoogleCloudLoggerConfig } from './gcloud-logger-config.js';
|
|
10
10
|
import { getLogLevelFromFilters, parseEnv } from './log-filters.js';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
11
|
+
import type { LogLevel } from './log-levels.js';
|
|
12
|
+
import type { LogData, LogFn } from './log_fn.js';
|
|
13
13
|
|
|
14
|
-
export function createLogger(module: string
|
|
14
|
+
export function createLogger(module: string): Logger {
|
|
15
15
|
module = logNameHandlers.reduce((moduleName, handler) => handler(moduleName), module.replace(/^aztec:/, ''));
|
|
16
16
|
const pinoLogger = logger.child({ module }, { level: getLogLevelFromFilters(logFilters, module) });
|
|
17
17
|
|
|
18
|
-
// Only perform copy of data if fixed terms are provided
|
|
19
|
-
const hasFixedTerms = Object.keys(fixedTerms).length > 0;
|
|
20
|
-
|
|
21
18
|
// We check manually for isLevelEnabled to avoid calling processLogData unnecessarily.
|
|
22
19
|
// Note that isLevelEnabled is missing from the browser version of pino.
|
|
23
20
|
const logFn = (level: LogLevel, msg: string, data?: unknown) =>
|
|
24
|
-
isLevelEnabled(pinoLogger, level) &&
|
|
25
|
-
pinoLogger[level](
|
|
26
|
-
hasFixedTerms
|
|
27
|
-
? processLogData({ ...fixedTerms, ...(data ?? {}) } as LogData)
|
|
28
|
-
: processLogData((data as LogData) ?? {}),
|
|
29
|
-
msg,
|
|
30
|
-
);
|
|
21
|
+
isLevelEnabled(pinoLogger, level) && pinoLogger[level](processLogData((data as LogData) ?? {}), msg);
|
|
31
22
|
|
|
32
23
|
return {
|
|
33
24
|
silent: () => {},
|
|
@@ -83,6 +74,15 @@ export function removeLogNameHandler(handler: LogNameHandler) {
|
|
|
83
74
|
}
|
|
84
75
|
}
|
|
85
76
|
|
|
77
|
+
/** Creates all loggers within the given callback with the suffix appended to the module name. */
|
|
78
|
+
export async function withLogNameSuffix<T>(suffix: string, callback: () => Promise<T>): Promise<T> {
|
|
79
|
+
const logNameHandler = (module: string) => `${module}:${suffix}`;
|
|
80
|
+
addLogNameHandler(logNameHandler);
|
|
81
|
+
const result = await callback();
|
|
82
|
+
removeLogNameHandler(logNameHandler);
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
86
|
// Patch isLevelEnabled missing from pino/browser.
|
|
87
87
|
function isLevelEnabled(logger: pino.Logger<'verbose', boolean>, level: LogLevel): boolean {
|
|
88
88
|
return typeof logger.isLevelEnabled === 'function'
|
|
@@ -92,7 +92,7 @@ function isLevelEnabled(logger: pino.Logger<'verbose', boolean>, level: LogLevel
|
|
|
92
92
|
|
|
93
93
|
// Load log levels from environment variables.
|
|
94
94
|
const defaultLogLevel = process.env.NODE_ENV === 'test' ? 'silent' : 'info';
|
|
95
|
-
const [logLevel, logFilters] = parseEnv(process.env.LOG_LEVEL, defaultLogLevel);
|
|
95
|
+
export const [logLevel, logFilters] = parseEnv(process.env.LOG_LEVEL, defaultLogLevel);
|
|
96
96
|
|
|
97
97
|
// Define custom logging levels for pino.
|
|
98
98
|
const customLevels = { verbose: 25 };
|
|
@@ -178,7 +178,7 @@ function makeLogger() {
|
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
-
const logger = makeLogger();
|
|
181
|
+
export const logger = makeLogger();
|
|
182
182
|
|
|
183
183
|
// Log the logger configuration.
|
|
184
184
|
logger.verbose(
|
package/src/mutex/index.ts
CHANGED