@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,116 @@
|
|
|
1
|
+
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
|
+
/**
|
|
3
|
+
* Secp256k1 elliptic curve operations.
|
|
4
|
+
*/ export class Secp256k1 {
|
|
5
|
+
// prettier-ignore
|
|
6
|
+
static generator = Buffer.from([
|
|
7
|
+
0x79,
|
|
8
|
+
0xbe,
|
|
9
|
+
0x66,
|
|
10
|
+
0x7e,
|
|
11
|
+
0xf9,
|
|
12
|
+
0xdc,
|
|
13
|
+
0xbb,
|
|
14
|
+
0xac,
|
|
15
|
+
0x55,
|
|
16
|
+
0xa0,
|
|
17
|
+
0x62,
|
|
18
|
+
0x95,
|
|
19
|
+
0xce,
|
|
20
|
+
0x87,
|
|
21
|
+
0x0b,
|
|
22
|
+
0x07,
|
|
23
|
+
0x02,
|
|
24
|
+
0x9b,
|
|
25
|
+
0xfc,
|
|
26
|
+
0xdb,
|
|
27
|
+
0x2d,
|
|
28
|
+
0xce,
|
|
29
|
+
0x28,
|
|
30
|
+
0xd9,
|
|
31
|
+
0x59,
|
|
32
|
+
0xf2,
|
|
33
|
+
0x81,
|
|
34
|
+
0x5b,
|
|
35
|
+
0x16,
|
|
36
|
+
0xf8,
|
|
37
|
+
0x17,
|
|
38
|
+
0x98,
|
|
39
|
+
0x48,
|
|
40
|
+
0x3a,
|
|
41
|
+
0xda,
|
|
42
|
+
0x77,
|
|
43
|
+
0x26,
|
|
44
|
+
0xa3,
|
|
45
|
+
0xc4,
|
|
46
|
+
0x65,
|
|
47
|
+
0x5d,
|
|
48
|
+
0xa4,
|
|
49
|
+
0xfb,
|
|
50
|
+
0xfc,
|
|
51
|
+
0x0e,
|
|
52
|
+
0x11,
|
|
53
|
+
0x08,
|
|
54
|
+
0xa8,
|
|
55
|
+
0xfd,
|
|
56
|
+
0x17,
|
|
57
|
+
0xb4,
|
|
58
|
+
0x48,
|
|
59
|
+
0xa6,
|
|
60
|
+
0x85,
|
|
61
|
+
0x54,
|
|
62
|
+
0x19,
|
|
63
|
+
0x9c,
|
|
64
|
+
0x47,
|
|
65
|
+
0xd0,
|
|
66
|
+
0x8f,
|
|
67
|
+
0xfb,
|
|
68
|
+
0x10,
|
|
69
|
+
0xd4,
|
|
70
|
+
0xb8
|
|
71
|
+
]);
|
|
72
|
+
/**
|
|
73
|
+
* Point generator
|
|
74
|
+
* @returns The generator for the curve.
|
|
75
|
+
*/ generator() {
|
|
76
|
+
return Secp256k1.generator;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Multiplies a point by a scalar (adds the point `scalar` amount of time).
|
|
80
|
+
* @param point - Point to multiply.
|
|
81
|
+
* @param scalar - Scalar to multiply by.
|
|
82
|
+
* @returns Result of the multiplication.
|
|
83
|
+
*/ async mul(point, scalar) {
|
|
84
|
+
const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
|
|
85
|
+
const [result] = api.getWasm().callWasmExport('ecc_secp256k1__mul', [
|
|
86
|
+
point,
|
|
87
|
+
scalar
|
|
88
|
+
], [
|
|
89
|
+
64
|
|
90
|
+
]);
|
|
91
|
+
return Buffer.from(result);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Gets a random field element.
|
|
95
|
+
* @returns Random field element.
|
|
96
|
+
*/ async getRandomFr() {
|
|
97
|
+
const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
|
|
98
|
+
const [result] = api.getWasm().callWasmExport('ecc_secp256k1__get_random_scalar_mod_circuit_modulus', [], [
|
|
99
|
+
32
|
|
100
|
+
]);
|
|
101
|
+
return Buffer.from(result);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Converts a 512 bits long buffer to a field.
|
|
105
|
+
* @param uint512Buf - The buffer to convert.
|
|
106
|
+
* @returns Buffer representation of the field element.
|
|
107
|
+
*/ async reduce512BufferToFr(uint512Buf) {
|
|
108
|
+
const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
|
|
109
|
+
const [result] = api.getWasm().callWasmExport('ecc_secp256k1__reduce512_buffer_mod_circuit_modulus', [
|
|
110
|
+
uint512Buf
|
|
111
|
+
], [
|
|
112
|
+
32
|
|
113
|
+
]);
|
|
114
|
+
return Buffer.from(result);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
export * from './secp256k1_signer.js';
|
|
2
2
|
export * from './utils.js';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3NlY3AyNTZrMS1zaWduZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLFlBQVksQ0FBQyJ9
|
|
@@ -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
|
* Secp256k1Signer
|
|
6
6
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256k1_signer.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1-signer/secp256k1_signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"secp256k1_signer.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1-signer/secp256k1_signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAIjE;;;;;;GAMG;AACH,qBAAa,eAAe;IAGd,OAAO,CAAC,UAAU;IAF9B,SAAgB,OAAO,EAAE,UAAU,CAAC;gBAEhB,UAAU,EAAE,QAAQ;IAIxC,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS;IAIlC;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS;IAKzC,MAAM,CAAC,MAAM,IAAI,eAAe;CAGjC"}
|
|
@@ -6,9 +6,10 @@ import { addressFromPrivateKey, makeEthSignDigest, signMessage } from './utils.j
|
|
|
6
6
|
* A class for signing messages using a secp256k1 private key.
|
|
7
7
|
* - This is a slim drop in replacement for an Ethereum signer, so it can be used in the same way.
|
|
8
8
|
* - See `utils.ts` for functions that enable recovering addresses and public keys from signatures.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
*/ export class Secp256k1Signer {
|
|
10
|
+
privateKey;
|
|
11
|
+
address;
|
|
12
|
+
constructor(privateKey){
|
|
12
13
|
this.privateKey = privateKey;
|
|
13
14
|
this.address = addressFromPrivateKey(privateKey.buffer);
|
|
14
15
|
}
|
|
@@ -16,11 +17,10 @@ export class Secp256k1Signer {
|
|
|
16
17
|
return signMessage(message, this.privateKey.buffer);
|
|
17
18
|
}
|
|
18
19
|
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
signMessage(message) {
|
|
20
|
+
* Sign a message using the same method as eth_sign
|
|
21
|
+
* @param message - The message to sign.
|
|
22
|
+
* @returns The signature.
|
|
23
|
+
*/ signMessage(message) {
|
|
24
24
|
const digest = makeEthSignDigest(message);
|
|
25
25
|
return this.sign(digest);
|
|
26
26
|
}
|
|
@@ -28,4 +28,3 @@ export class Secp256k1Signer {
|
|
|
28
28
|
return new Secp256k1Signer(Buffer32.random());
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcDI1NmsxX3NpZ25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vc2VjcDI1NmsxLXNpZ25lci9zZWNwMjU2azFfc2lnbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUlwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRW5GOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQW9CLFVBQW9CO1FBQXBCLGVBQVUsR0FBVixVQUFVLENBQVU7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFpQjtRQUNwQixPQUFPLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxPQUFpQjtRQUMzQixNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNO1FBQ1gsT0FBTyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0YifQ==
|
|
@@ -7,14 +7,16 @@ const ETH_SIGN_PREFIX = '\x19Ethereum Signed Message:\n32';
|
|
|
7
7
|
// We just hash the message to make it easier to work with in the smart contract.
|
|
8
8
|
export function makeEthSignDigest(message) {
|
|
9
9
|
const prefix = Buffer.from(ETH_SIGN_PREFIX);
|
|
10
|
-
return Buffer32.fromBuffer(keccak256(Buffer.concat([
|
|
10
|
+
return Buffer32.fromBuffer(keccak256(Buffer.concat([
|
|
11
|
+
prefix,
|
|
12
|
+
message.buffer
|
|
13
|
+
])));
|
|
11
14
|
}
|
|
12
15
|
/**
|
|
13
16
|
* Converts a public key to an address.
|
|
14
17
|
* @param publicKey - The public key to convert.
|
|
15
18
|
* @returns The address.
|
|
16
|
-
*/
|
|
17
|
-
function publicKeyToAddress(publicKey) {
|
|
19
|
+
*/ function publicKeyToAddress(publicKey) {
|
|
18
20
|
const hash = keccak256(publicKey.subarray(1));
|
|
19
21
|
return new EthAddress(hash.subarray(12));
|
|
20
22
|
}
|
|
@@ -22,16 +24,14 @@ function publicKeyToAddress(publicKey) {
|
|
|
22
24
|
* Converts a private key to a public key.
|
|
23
25
|
* @param privateKey - The private key to convert.
|
|
24
26
|
* @returns The public key.
|
|
25
|
-
*/
|
|
26
|
-
export function publicKeyFromPrivateKey(privateKey) {
|
|
27
|
+
*/ export function publicKeyFromPrivateKey(privateKey) {
|
|
27
28
|
return Buffer.from(secp256k1.getPublicKey(privateKey, false));
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
30
31
|
* Converts a private key to an address.
|
|
31
32
|
* @param privateKey - The private key to convert.
|
|
32
33
|
* @returns The address.
|
|
33
|
-
*/
|
|
34
|
-
export function addressFromPrivateKey(privateKey) {
|
|
34
|
+
*/ export function addressFromPrivateKey(privateKey) {
|
|
35
35
|
const publicKey = publicKeyFromPrivateKey(privateKey);
|
|
36
36
|
return publicKeyToAddress(publicKey);
|
|
37
37
|
}
|
|
@@ -40,8 +40,7 @@ export function addressFromPrivateKey(privateKey) {
|
|
|
40
40
|
* @param hash - The hash to recover the address from.
|
|
41
41
|
* @param signature - The signature to recover the address from.
|
|
42
42
|
* @returns The address.
|
|
43
|
-
*/
|
|
44
|
-
export function recoverAddress(hash, signature) {
|
|
43
|
+
*/ export function recoverAddress(hash, signature) {
|
|
45
44
|
const publicKey = recoverPublicKey(hash, signature);
|
|
46
45
|
return publicKeyToAddress(publicKey);
|
|
47
46
|
}
|
|
@@ -50,8 +49,7 @@ export function recoverAddress(hash, signature) {
|
|
|
50
49
|
* Converts a yParityOrV value to a recovery bit.
|
|
51
50
|
* @param yParityOrV - The yParityOrV value to convert.
|
|
52
51
|
* @returns The recovery bit.
|
|
53
|
-
*/
|
|
54
|
-
function toRecoveryBit(yParityOrV) {
|
|
52
|
+
*/ function toRecoveryBit(yParityOrV) {
|
|
55
53
|
if (yParityOrV === 0 || yParityOrV === 1) {
|
|
56
54
|
return yParityOrV;
|
|
57
55
|
}
|
|
@@ -68,8 +66,7 @@ function toRecoveryBit(yParityOrV) {
|
|
|
68
66
|
* @param message - The message to sign.
|
|
69
67
|
* @param privateKey - The private key to sign the message with.
|
|
70
68
|
* @returns The signature.
|
|
71
|
-
*/
|
|
72
|
-
export function signMessage(message, privateKey) {
|
|
69
|
+
*/ export function signMessage(message, privateKey) {
|
|
73
70
|
const { r, s, recovery } = secp256k1.sign(message.buffer, privateKey);
|
|
74
71
|
return new Signature(Buffer32.fromBigInt(r), Buffer32.fromBigInt(s), recovery ? 28 : 27);
|
|
75
72
|
}
|
|
@@ -78,12 +75,10 @@ export function signMessage(message, privateKey) {
|
|
|
78
75
|
* @param hash - The hash to recover the public key from.
|
|
79
76
|
* @param signature - The signature to recover the public key from.
|
|
80
77
|
* @returns The public key.
|
|
81
|
-
*/
|
|
82
|
-
export function recoverPublicKey(hash, signature) {
|
|
78
|
+
*/ export function recoverPublicKey(hash, signature) {
|
|
83
79
|
const { r, s, v } = signature;
|
|
84
80
|
const recoveryBit = toRecoveryBit(v);
|
|
85
81
|
const sig = new secp256k1.Signature(r.toBigInt(), s.toBigInt()).addRecoveryBit(recoveryBit);
|
|
86
82
|
const publicKey = sig.recoverPublicKey(hash.buffer).toHex(false);
|
|
87
83
|
return Buffer.from(publicKey, 'hex');
|
|
88
84
|
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3NlY3AyNTZrMS1zaWduZXIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXBELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvQyxNQUFNLGVBQWUsR0FBRyxrQ0FBa0MsQ0FBQztBQUUzRCxpRkFBaUY7QUFDakYsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQWlCO0lBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDNUMsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsa0JBQWtCLENBQUMsU0FBaUI7SUFDM0MsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxVQUFrQjtJQUN4RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxVQUFrQjtJQUN0RCxNQUFNLFNBQVMsR0FBRyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0RCxPQUFPLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsSUFBYyxFQUFFLFNBQW9CO0lBQ2pFLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNwRCxPQUFPLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsYUFBYSxDQUFDLFVBQWtCO0lBQ3ZDLElBQUksVUFBVSxLQUFLLENBQUMsSUFBSSxVQUFVLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUksVUFBVSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELElBQUksVUFBVSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQWlCLEVBQUUsVUFBa0I7SUFDL0QsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3RFLE9BQU8sSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBYyxFQUFFLFNBQW9CO0lBQ25FLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFNUYsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2QyxDQUFDIn0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import { Buffer } from 'buffer';
|
|
4
|
+
/**
|
|
5
|
+
* For serializing an array of fixed length buffers.
|
|
6
|
+
* TODO move to foundation pkg.
|
|
7
|
+
* @param arr - Array of bufffers.
|
|
8
|
+
* @returns The serialized buffers.
|
|
9
|
+
*/
|
|
10
|
+
export declare function serializeBufferArrayToVector(arr: Buffer[]): Buffer;
|
|
11
|
+
/**
|
|
12
|
+
* Helper function for deserializeArrayFromVector.
|
|
13
|
+
*/
|
|
14
|
+
type DeserializeFn<T> = (buf: Buffer, offset: number) => {
|
|
15
|
+
/**
|
|
16
|
+
* The deserialized type.
|
|
17
|
+
*/
|
|
18
|
+
elem: T;
|
|
19
|
+
/**
|
|
20
|
+
* How many bytes to advance by.
|
|
21
|
+
*/
|
|
22
|
+
adv: number;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* For deserializing numbers to 32-bit little-endian form.
|
|
26
|
+
* TODO move to foundation pkg.
|
|
27
|
+
* @param n - The number.
|
|
28
|
+
* @returns The endian-corrected number.
|
|
29
|
+
*/
|
|
30
|
+
export declare function deserializeArrayFromVector<T>(deserialize: DeserializeFn<T>, vector: Buffer, offset?: number): {
|
|
31
|
+
elem: T[];
|
|
32
|
+
adv: number;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* For serializing 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 declare function numToUInt32LE(n: number, bufferSize?: number): Buffer;
|
|
41
|
+
/**
|
|
42
|
+
* Deserialize the 256-bit number at address `offset`.
|
|
43
|
+
* @param buf - The buffer.
|
|
44
|
+
* @param offset - The address.
|
|
45
|
+
* @returns The derserialized 256-bit field.
|
|
46
|
+
*/
|
|
47
|
+
export declare function deserializeField(buf: Buffer, offset?: number): {
|
|
48
|
+
elem: Buffer;
|
|
49
|
+
adv: number;
|
|
50
|
+
};
|
|
51
|
+
export declare function concatenateUint8Arrays(arrayOfUint8Arrays: Uint8Array[]): Uint8Array;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=serialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/crypto/serialize.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,UAIzD;AAED;;GAEG;AACH,KAAK,aAAa,CAAC,CAAC,IAAI,CACtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,KACX;IACH;;OAEG;IACH,IAAI,EAAE,CAAC,CAAC;IACR;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAWtG;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,SAAI,UAItD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI;;;EAGvD;AAED,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,UAAU,EAAE,cAStE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
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
|
+
* For serializing an array of fixed length buffers.
|
|
6
|
+
* TODO move to foundation pkg.
|
|
7
|
+
* @param arr - Array of bufffers.
|
|
8
|
+
* @returns The serialized buffers.
|
|
9
|
+
*/ export function serializeBufferArrayToVector(arr) {
|
|
10
|
+
const lengthBuf = Buffer.alloc(4);
|
|
11
|
+
lengthBuf.writeUInt32BE(arr.length, 0);
|
|
12
|
+
return Buffer.concat([
|
|
13
|
+
lengthBuf,
|
|
14
|
+
...arr
|
|
15
|
+
]);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* For deserializing numbers to 32-bit little-endian form.
|
|
19
|
+
* TODO move to foundation pkg.
|
|
20
|
+
* @param n - The number.
|
|
21
|
+
* @returns The endian-corrected number.
|
|
22
|
+
*/ export function deserializeArrayFromVector(deserialize, vector, offset = 0) {
|
|
23
|
+
let pos = offset;
|
|
24
|
+
const size = vector.readUInt32BE(pos);
|
|
25
|
+
pos += 4;
|
|
26
|
+
const arr = new Array(size);
|
|
27
|
+
for(let i = 0; i < size; ++i){
|
|
28
|
+
const { elem, adv } = deserialize(vector, pos);
|
|
29
|
+
pos += adv;
|
|
30
|
+
arr[i] = elem;
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
elem: arr,
|
|
34
|
+
adv: pos - offset
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* For serializing numbers to 32 bit little-endian form.
|
|
39
|
+
* TODO move to foundation pkg.
|
|
40
|
+
* @param n - The number.
|
|
41
|
+
* @returns The endian-corrected number.
|
|
42
|
+
*/ export function numToUInt32LE(n, bufferSize = 4) {
|
|
43
|
+
const buf = Buffer.alloc(bufferSize);
|
|
44
|
+
buf.writeUInt32LE(n, bufferSize - 4);
|
|
45
|
+
return buf;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Deserialize the 256-bit number at address `offset`.
|
|
49
|
+
* @param buf - The buffer.
|
|
50
|
+
* @param offset - The address.
|
|
51
|
+
* @returns The derserialized 256-bit field.
|
|
52
|
+
*/ export function deserializeField(buf, offset = 0) {
|
|
53
|
+
const adv = 32;
|
|
54
|
+
return {
|
|
55
|
+
elem: buf.slice(offset, offset + adv),
|
|
56
|
+
adv
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export function concatenateUint8Arrays(arrayOfUint8Arrays) {
|
|
60
|
+
const totalLength = arrayOfUint8Arrays.reduce((prev, curr)=>prev + curr.length, 0);
|
|
61
|
+
const result = new Uint8Array(totalLength);
|
|
62
|
+
let length = 0;
|
|
63
|
+
for (const array of arrayOfUint8Arrays){
|
|
64
|
+
result.set(array, length);
|
|
65
|
+
length += array.length;
|
|
66
|
+
}
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
/* eslint-disable camelcase */
|
|
2
|
-
import { default as hash } from 'hash.js';
|
|
1
|
+
/* eslint-disable camelcase */ import { default as hash } from 'hash.js';
|
|
3
2
|
import { Fr } from '../../fields/fields.js';
|
|
4
3
|
import { truncateAndPad } from '../../serialize/free_funcs.js';
|
|
5
4
|
import { serializeToBuffer } from '../../serialize/serialize.js';
|
|
@@ -23,8 +22,7 @@ export function sha256ToField(data) {
|
|
|
23
22
|
* @param state - The initial state to operate on (modified in-place). 8 u32s.
|
|
24
23
|
* @param inputs - The inputs to compress into the state. 16 u32s.
|
|
25
24
|
* @returns The modified state. 8 u32s.
|
|
26
|
-
*/
|
|
27
|
-
export function sha256Compression(state, inputs) {
|
|
25
|
+
*/ export function sha256Compression(state, inputs) {
|
|
28
26
|
if (state.length !== 8) {
|
|
29
27
|
throw new Error('`state` argument to SHA256 compression must be of length 8');
|
|
30
28
|
}
|
|
@@ -33,22 +31,77 @@ export function sha256Compression(state, inputs) {
|
|
|
33
31
|
}
|
|
34
32
|
const W = new Array(64);
|
|
35
33
|
const k = [
|
|
36
|
-
0x428a2f98,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
0x428a2f98,
|
|
35
|
+
0x71374491,
|
|
36
|
+
0xb5c0fbcf,
|
|
37
|
+
0xe9b5dba5,
|
|
38
|
+
0x3956c25b,
|
|
39
|
+
0x59f111f1,
|
|
40
|
+
0x923f82a4,
|
|
41
|
+
0xab1c5ed5,
|
|
42
|
+
0xd807aa98,
|
|
43
|
+
0x12835b01,
|
|
44
|
+
0x243185be,
|
|
45
|
+
0x550c7dc3,
|
|
46
|
+
0x72be5d74,
|
|
47
|
+
0x80deb1fe,
|
|
48
|
+
0x9bdc06a7,
|
|
49
|
+
0xc19bf174,
|
|
50
|
+
0xe49b69c1,
|
|
51
|
+
0xefbe4786,
|
|
52
|
+
0x0fc19dc6,
|
|
53
|
+
0x240ca1cc,
|
|
54
|
+
0x2de92c6f,
|
|
55
|
+
0x4a7484aa,
|
|
56
|
+
0x5cb0a9dc,
|
|
57
|
+
0x76f988da,
|
|
58
|
+
0x983e5152,
|
|
59
|
+
0xa831c66d,
|
|
60
|
+
0xb00327c8,
|
|
61
|
+
0xbf597fc7,
|
|
62
|
+
0xc6e00bf3,
|
|
63
|
+
0xd5a79147,
|
|
64
|
+
0x06ca6351,
|
|
65
|
+
0x14292967,
|
|
66
|
+
0x27b70a85,
|
|
67
|
+
0x2e1b2138,
|
|
68
|
+
0x4d2c6dfc,
|
|
69
|
+
0x53380d13,
|
|
70
|
+
0x650a7354,
|
|
71
|
+
0x766a0abb,
|
|
72
|
+
0x81c2c92e,
|
|
73
|
+
0x92722c85,
|
|
74
|
+
0xa2bfe8a1,
|
|
75
|
+
0xa81a664b,
|
|
76
|
+
0xc24b8b70,
|
|
77
|
+
0xc76c51a3,
|
|
78
|
+
0xd192e819,
|
|
79
|
+
0xd6990624,
|
|
80
|
+
0xf40e3585,
|
|
81
|
+
0x106aa070,
|
|
82
|
+
0x19a4c116,
|
|
83
|
+
0x1e376c08,
|
|
84
|
+
0x2748774c,
|
|
85
|
+
0x34b0bcb5,
|
|
86
|
+
0x391c0cb3,
|
|
87
|
+
0x4ed8aa4a,
|
|
88
|
+
0x5b9cca4f,
|
|
89
|
+
0x682e6ff3,
|
|
90
|
+
0x748f82ee,
|
|
91
|
+
0x78a5636f,
|
|
92
|
+
0x84c87814,
|
|
93
|
+
0x8cc70208,
|
|
94
|
+
0x90befffa,
|
|
95
|
+
0xa4506ceb,
|
|
96
|
+
0xbef9a3f7,
|
|
97
|
+
0xc67178f2
|
|
44
98
|
];
|
|
45
99
|
let i = 0;
|
|
46
|
-
for
|
|
100
|
+
for(i = 0; i < 16; i++){
|
|
47
101
|
W[i] = inputs[i];
|
|
48
102
|
}
|
|
49
|
-
for
|
|
50
|
-
W[i] = sum32_4(W[i - 16], W[i - 7], g0_256(W[i - 15]),
|
|
51
|
-
g1_256(W[i - 2]));
|
|
103
|
+
for(i = 16; i < W.length; i++){
|
|
104
|
+
W[i] = sum32_4(W[i - 16], W[i - 7], g0_256(W[i - 15]), g1_256(W[i - 2]));
|
|
52
105
|
}
|
|
53
106
|
let a = state[0];
|
|
54
107
|
let b = state[1];
|
|
@@ -58,11 +111,9 @@ export function sha256Compression(state, inputs) {
|
|
|
58
111
|
let f = state[5];
|
|
59
112
|
let g = state[6];
|
|
60
113
|
let h = state[7];
|
|
61
|
-
for
|
|
62
|
-
const T1 = sum32_5(h, s1_256(e),
|
|
63
|
-
|
|
64
|
-
const T2 = sum32(s0_256(a), // Rot2, Rot13, Rot22
|
|
65
|
-
maj32(a, b, c));
|
|
114
|
+
for(let i = 0; i < 64; i++){
|
|
115
|
+
const T1 = sum32_5(h, s1_256(e), ch32(e, f, g), k[i], W[i]);
|
|
116
|
+
const T2 = sum32(s0_256(a), maj32(a, b, c));
|
|
66
117
|
h = g;
|
|
67
118
|
g = f;
|
|
68
119
|
f = e;
|
|
@@ -84,22 +135,22 @@ export function sha256Compression(state, inputs) {
|
|
|
84
135
|
}
|
|
85
136
|
// SHA256 HELPER FUNCTIONS (from hash.js package)
|
|
86
137
|
function rotr32(w, b) {
|
|
87
|
-
return
|
|
138
|
+
return w >>> b | w << 32 - b;
|
|
88
139
|
}
|
|
89
140
|
function sum32(a, b) {
|
|
90
|
-
return
|
|
141
|
+
return a + b >>> 0;
|
|
91
142
|
}
|
|
92
143
|
function sum32_4(a, b, c, d) {
|
|
93
|
-
return
|
|
144
|
+
return a + b + c + d >>> 0;
|
|
94
145
|
}
|
|
95
146
|
function sum32_5(a, b, c, d, e) {
|
|
96
|
-
return
|
|
147
|
+
return a + b + c + d + e >>> 0;
|
|
97
148
|
}
|
|
98
149
|
function ch32(x, y, z) {
|
|
99
|
-
return
|
|
150
|
+
return x & y ^ ~x & z;
|
|
100
151
|
}
|
|
101
152
|
function maj32(x, y, z) {
|
|
102
|
-
return
|
|
153
|
+
return x & y ^ x & z ^ y & z;
|
|
103
154
|
}
|
|
104
155
|
function s0_256(x) {
|
|
105
156
|
return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);
|
|
@@ -108,9 +159,8 @@ function s1_256(x) {
|
|
|
108
159
|
return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);
|
|
109
160
|
}
|
|
110
161
|
function g0_256(x) {
|
|
111
|
-
return rotr32(x, 7) ^ rotr32(x, 18) ^
|
|
162
|
+
return rotr32(x, 7) ^ rotr32(x, 18) ^ x >>> 3;
|
|
112
163
|
}
|
|
113
164
|
function g1_256(x) {
|
|
114
|
-
return rotr32(x, 17) ^ rotr32(x, 19) ^
|
|
165
|
+
return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10;
|
|
115
166
|
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3NoYTI1Ni9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFMUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQW1CLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEYsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFZO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUN0QyxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFrQjtJQUM5QyxNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBa0IsRUFBRSxNQUFtQjtJQUN2RSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixNQUFNLENBQUMsR0FBRztRQUNSLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtRQUMxRyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7UUFDMUcsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO1FBQzFHLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtRQUMxRyxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7UUFDMUcsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVO1FBQzFHLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTtRQUMxRyxVQUFVO0tBQ1gsQ0FBQztJQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNWLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDeEIsQ0FB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LENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUIsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsa0RBQWtEO0FBRWxELFNBQVMsTUFBTSxDQUFDLENBQVMsRUFBRSxDQUFTO0lBQ2xDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsU0FBUyxLQUFLLENBQUMsQ0FBUyxFQUFFLENBQVM7SUFDakMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELFNBQVMsT0FBTyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDekQsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDcEUsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELFNBQVMsSUFBSSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUztJQUMzQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQUVELFNBQVMsS0FBSyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUztJQUM1QyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxDQUFTO0lBQ3ZCLE9BQU8sTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELFNBQVMsTUFBTSxDQUFDLENBQVM7SUFDdkIsT0FBTyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsQ0FBUztJQUN2QixPQUFPLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsQ0FBUztJQUN2QixPQUFPLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUNwRCxDQUFDIn0=
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { default as hash } from 'hash.js';
|
|
2
2
|
import { GrumpkinScalar } from '../../fields/fields.js';
|
|
3
3
|
import { serializeToBuffer } from '../../serialize/serialize.js';
|
|
4
|
-
export const sha512 = (data)
|
|
4
|
+
export const sha512 = (data)=>Buffer.from(hash.sha512().update(data).digest());
|
|
5
5
|
/**
|
|
6
6
|
* @dev We don't truncate in this function (unlike in sha256ToField) because this function is used in situations where
|
|
7
7
|
* we don't care only about collision resistance but we need the output to be uniformly distributed as well. This is
|
|
8
8
|
* because we use it as a pseudo-random function.
|
|
9
|
-
*/
|
|
10
|
-
export const sha512ToGrumpkinScalar = (data) => {
|
|
9
|
+
*/ export const sha512ToGrumpkinScalar = (data)=>{
|
|
11
10
|
const buffer = serializeToBuffer(data);
|
|
12
11
|
return GrumpkinScalar.fromBufferReduce(sha512(buffer));
|
|
13
12
|
};
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3NoYTUxMi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFtQixpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWxGLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFFekY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsSUFBa0IsRUFBRSxFQUFFO0lBQzNELE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sY0FBYyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import type { Fr } from '@aztec/foundation/fields';
|
|
4
|
+
/**
|
|
5
|
+
* Interface to represent a signature.
|
|
6
|
+
*/
|
|
7
|
+
export interface Signature {
|
|
8
|
+
/**
|
|
9
|
+
* Serializes to a buffer.
|
|
10
|
+
* @returns A buffer.
|
|
11
|
+
*/
|
|
12
|
+
toBuffer(): Buffer;
|
|
13
|
+
/**
|
|
14
|
+
* Serializes to an array of fields.
|
|
15
|
+
* @returns Fields.
|
|
16
|
+
*/
|
|
17
|
+
toFields(): Fr[];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/signature/index.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAAC;CAClB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { BarretenbergSync } from '@aztec/bb.js';
|
|
2
2
|
export * from './poseidon/index.js';
|
|
3
3
|
export * from './pedersen/index.js';
|
|
4
|
-
await BarretenbergSync.initSingleton();
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3N5bmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxNQUFNLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDIn0=
|
|
4
|
+
await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
|