@aztec/foundation 0.74.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2
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/abi/abi.js +157 -93
- package/dest/abi/buffer.js +9 -9
- package/dest/abi/decoder.js +89 -86
- package/dest/abi/encoder.js +91 -87
- package/dest/abi/event_selector.js +25 -33
- package/dest/abi/function_selector.js +28 -33
- package/dest/abi/index.js +0 -1
- package/dest/abi/note_selector.js +15 -21
- package/dest/abi/selector.js +22 -29
- package/dest/abi/u128.js +11 -5
- package/dest/abi/utils.js +9 -20
- 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/aztec-address/index.js +14 -19
- package/dest/bigint-buffer/index.js +6 -13
- package/dest/buffer/buffer32.js +53 -66
- package/dest/buffer/index.js +0 -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.js +1 -2
- package/dest/config/index.js +31 -36
- package/dest/crypto/index.js +0 -1
- package/dest/crypto/keccak/index.js +60 -69
- package/dest/crypto/keys/index.js +1 -2
- 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 +14 -13
- package/dest/crypto/poseidon/index.js +10 -14
- package/dest/crypto/random/index.js +7 -12
- package/dest/crypto/random/randomness_singleton.js +12 -12
- package/dest/crypto/secp256k1-signer/index.js +0 -1
- package/dest/crypto/secp256k1-signer/secp256k1_signer.js +8 -9
- package/dest/crypto/secp256k1-signer/utils.js +11 -16
- package/dest/crypto/sha256/index.js +80 -30
- package/dest/crypto/sha512/index.js +2 -4
- package/dest/crypto/sync/index.js +0 -1
- 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.js +47 -46
- package/dest/fields/fields.js +112 -127
- 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.js +6 -6
- package/dest/index.js +0 -2
- 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 +21 -19
- package/dest/json-rpc/client/index.js +0 -1
- package/dest/json-rpc/client/safe_json_rpc_client.js +16 -8
- 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.js +8 -3
- package/dest/log/console.js +14 -16
- package/dest/log/debug.js +9 -18
- package/dest/log/gcloud-logger-config.js +17 -15
- package/dest/log/index.js +0 -1
- package/dest/log/log-filters.js +13 -11
- 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.js +82 -64
- package/dest/message/index.js +7 -3
- 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.js +28 -28
- package/dest/promise/utils.js +3 -5
- package/dest/queue/base_memory_queue.js +51 -59
- package/dest/queue/bounded_serial_queue.js +41 -51
- 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.js +2 -7
- package/dest/schemas/index.js +0 -1
- package/dest/schemas/parse.js +4 -8
- package/dest/schemas/schemas.js +33 -48
- package/dest/schemas/types.js +1 -2
- package/dest/schemas/utils.js +18 -31
- package/dest/serialize/buffer_reader.js +164 -188
- package/dest/serialize/field_reader.js +70 -79
- 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 +5 -8
- package/dest/testing/index.js +0 -1
- package/dest/testing/port_allocator.js +7 -10
- 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.js +26 -30
- package/dest/transport/browser/shared_worker_connector.js +8 -10
- package/dest/transport/browser/shared_worker_listener.js +13 -17
- package/dest/transport/browser/worker_connector.js +12 -12
- 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.js +16 -13
- package/dest/transport/dispatch/messages.js +4 -3
- package/dest/transport/index.js +0 -1
- package/dest/transport/interface/connector.js +3 -2
- 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.js +9 -11
- package/dest/transport/node/node_connector_socket.js +21 -25
- package/dest/transport/node/node_listener.js +11 -15
- package/dest/transport/node/node_listener_socket.js +23 -27
- package/dest/transport/transport_client.js +47 -46
- package/dest/transport/transport_server.js +68 -55
- package/dest/trees/index.js +0 -1
- package/dest/trees/unbalanced_merkle_tree.js +26 -16
- 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.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.js +9 -5
- package/dest/worker/browser/web_data_store.js +12 -15
- package/dest/worker/browser/web_worker.js +6 -5
- package/dest/worker/data_store.js +3 -2
- package/dest/worker/index.js +0 -1
- package/dest/worker/node/index.js +0 -1
- package/dest/worker/node/node_data_store.js +4 -5
- package/dest/worker/node/node_worker.js +6 -5
- package/dest/worker/node/start_node_module.js +9 -5
- package/dest/worker/wasm_worker.js +3 -2
- package/dest/worker/worker_pool.js +32 -43
- package/package.json +3 -4
- package/src/fields/fields.ts +2 -2
- package/src/index.ts +0 -1
- package/src/queue/serial_queue.ts +1 -1
- package/src/testing/files/index.ts +2 -1
- package/src/wasm/index.ts +1 -1
- package/src/worker/index.ts +1 -1
- package/dest/abi/abi.d.ts +0 -853
- package/dest/abi/abi.d.ts.map +0 -1
- package/dest/abi/buffer.d.ts +0 -18
- package/dest/abi/buffer.d.ts.map +0 -1
- package/dest/abi/decoder.d.ts +0 -58
- package/dest/abi/decoder.d.ts.map +0 -1
- package/dest/abi/encoder.d.ts +0 -16
- package/dest/abi/encoder.d.ts.map +0 -1
- package/dest/abi/event_selector.d.ts +0 -52
- package/dest/abi/event_selector.d.ts.map +0 -1
- package/dest/abi/function_selector.d.ts +0 -65
- package/dest/abi/function_selector.d.ts.map +0 -1
- package/dest/abi/index.d.ts +0 -10
- package/dest/abi/index.d.ts.map +0 -1
- package/dest/abi/note_selector.d.ts +0 -42
- package/dest/abi/note_selector.d.ts.map +0 -1
- package/dest/abi/selector.d.ts +0 -42
- package/dest/abi/selector.d.ts.map +0 -1
- package/dest/abi/u128.d.ts +0 -13
- package/dest/abi/u128.d.ts.map +0 -1
- package/dest/abi/utils.d.ts +0 -44
- package/dest/abi/utils.d.ts.map +0 -1
- package/dest/array/array.d.ts +0 -71
- package/dest/array/array.d.ts.map +0 -1
- package/dest/array/index.d.ts +0 -2
- package/dest/array/index.d.ts.map +0 -1
- package/dest/async-map/index.d.ts +0 -13
- package/dest/async-map/index.d.ts.map +0 -1
- package/dest/async-pool/index.d.ts +0 -3
- package/dest/async-pool/index.d.ts.map +0 -1
- package/dest/aztec-address/index.d.ts +0 -57
- package/dest/aztec-address/index.d.ts.map +0 -1
- package/dest/bigint-buffer/index.d.ts +0 -42
- package/dest/bigint-buffer/index.d.ts.map +0 -1
- package/dest/blob/blob.d.ts +0 -154
- package/dest/blob/blob.d.ts.map +0 -1
- package/dest/blob/blob.js +0 -264
- package/dest/blob/encoding.d.ts +0 -53
- package/dest/blob/encoding.d.ts.map +0 -1
- package/dest/blob/encoding.js +0 -87
- package/dest/blob/errors.d.ts +0 -4
- package/dest/blob/errors.d.ts.map +0 -1
- package/dest/blob/errors.js +0 -7
- package/dest/blob/index.d.ts +0 -6
- package/dest/blob/index.d.ts.map +0 -1
- package/dest/blob/index.js +0 -22
- package/dest/blob/interface.d.ts +0 -10
- package/dest/blob/interface.d.ts.map +0 -1
- package/dest/blob/interface.js +0 -2
- package/dest/blob/mocks.d.ts +0 -20
- package/dest/blob/mocks.d.ts.map +0 -1
- package/dest/blob/mocks.js +0 -42
- package/dest/buffer/buffer32.d.ts +0 -91
- package/dest/buffer/buffer32.d.ts.map +0 -1
- package/dest/buffer/index.d.ts +0 -2
- package/dest/buffer/index.d.ts.map +0 -1
- package/dest/collection/array.d.ts +0 -101
- package/dest/collection/array.d.ts.map +0 -1
- package/dest/collection/index.d.ts +0 -3
- package/dest/collection/index.d.ts.map +0 -1
- package/dest/collection/object.d.ts +0 -14
- package/dest/collection/object.d.ts.map +0 -1
- package/dest/committable/committable.d.ts +0 -28
- package/dest/committable/committable.d.ts.map +0 -1
- package/dest/committable/index.d.ts +0 -2
- package/dest/committable/index.d.ts.map +0 -1
- package/dest/config/env_var.d.ts +0 -2
- package/dest/config/env_var.d.ts.map +0 -1
- package/dest/config/index.d.ts +0 -66
- package/dest/config/index.d.ts.map +0 -1
- package/dest/crypto/index.d.ts +0 -9
- package/dest/crypto/index.d.ts.map +0 -1
- package/dest/crypto/keccak/index.d.ts +0 -28
- package/dest/crypto/keccak/index.d.ts.map +0 -1
- package/dest/crypto/keys/index.d.ts +0 -5
- package/dest/crypto/keys/index.d.ts.map +0 -1
- package/dest/crypto/pedersen/index.d.ts +0 -2
- package/dest/crypto/pedersen/index.d.ts.map +0 -1
- package/dest/crypto/pedersen/pedersen.elliptic.d.ts +0 -13
- package/dest/crypto/pedersen/pedersen.elliptic.d.ts.map +0 -1
- package/dest/crypto/pedersen/pedersen.noble.d.ts +0 -11
- package/dest/crypto/pedersen/pedersen.noble.d.ts.map +0 -1
- package/dest/crypto/pedersen/pedersen.wasm.d.ts +0 -21
- package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +0 -1
- package/dest/crypto/poseidon/index.d.ts +0 -26
- package/dest/crypto/poseidon/index.d.ts.map +0 -1
- package/dest/crypto/random/index.d.ts +0 -25
- package/dest/crypto/random/index.d.ts.map +0 -1
- package/dest/crypto/random/randomness_singleton.d.ts +0 -25
- package/dest/crypto/random/randomness_singleton.d.ts.map +0 -1
- package/dest/crypto/secp256k1-signer/index.d.ts +0 -3
- package/dest/crypto/secp256k1-signer/index.d.ts.map +0 -1
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts +0 -24
- package/dest/crypto/secp256k1-signer/secp256k1_signer.d.ts.map +0 -1
- package/dest/crypto/secp256k1-signer/utils.d.ts +0 -40
- package/dest/crypto/secp256k1-signer/utils.d.ts.map +0 -1
- package/dest/crypto/sha256/index.d.ts +0 -20
- package/dest/crypto/sha256/index.d.ts.map +0 -1
- package/dest/crypto/sha512/index.d.ts +0 -11
- package/dest/crypto/sha512/index.d.ts.map +0 -1
- package/dest/crypto/sync/index.d.ts +0 -3
- package/dest/crypto/sync/index.d.ts.map +0 -1
- package/dest/crypto/sync/pedersen/index.d.ts +0 -21
- package/dest/crypto/sync/pedersen/index.d.ts.map +0 -1
- package/dest/crypto/sync/poseidon/index.d.ts +0 -26
- package/dest/crypto/sync/poseidon/index.d.ts.map +0 -1
- package/dest/decorators/index.d.ts +0 -2
- package/dest/decorators/index.d.ts.map +0 -1
- package/dest/decorators/memoize.d.ts +0 -2
- package/dest/decorators/memoize.d.ts.map +0 -1
- package/dest/error/index.d.ts +0 -21
- package/dest/error/index.d.ts.map +0 -1
- package/dest/eth-address/index.d.ts +0 -134
- package/dest/eth-address/index.d.ts.map +0 -1
- package/dest/eth-signature/eth_signature.d.ts +0 -62
- package/dest/eth-signature/eth_signature.d.ts.map +0 -1
- package/dest/eth-signature/index.d.ts +0 -2
- package/dest/eth-signature/index.d.ts.map +0 -1
- package/dest/fields/coordinate.d.ts +0 -68
- package/dest/fields/coordinate.d.ts.map +0 -1
- package/dest/fields/fields.d.ts +0 -176
- package/dest/fields/fields.d.ts.map +0 -1
- package/dest/fields/index.d.ts +0 -4
- package/dest/fields/index.d.ts.map +0 -1
- package/dest/fields/point.d.ts +0 -175
- package/dest/fields/point.d.ts.map +0 -1
- package/dest/fs/index.d.ts +0 -2
- package/dest/fs/index.d.ts.map +0 -1
- package/dest/fs/run_in_dir.d.ts +0 -2
- package/dest/fs/run_in_dir.d.ts.map +0 -1
- package/dest/index.d.ts +0 -34
- package/dest/index.d.ts.map +0 -1
- package/dest/iterable/all.d.ts +0 -9
- package/dest/iterable/all.d.ts.map +0 -1
- package/dest/iterable/filter.d.ts +0 -10
- package/dest/iterable/filter.d.ts.map +0 -1
- package/dest/iterable/index.d.ts +0 -8
- package/dest/iterable/index.d.ts.map +0 -1
- package/dest/iterable/isAsyncIt.d.ts +0 -7
- package/dest/iterable/isAsyncIt.d.ts.map +0 -1
- package/dest/iterable/map.d.ts +0 -12
- package/dest/iterable/map.d.ts.map +0 -1
- package/dest/iterable/peek.d.ts +0 -19
- package/dest/iterable/peek.d.ts.map +0 -1
- package/dest/iterable/sort.d.ts +0 -14
- package/dest/iterable/sort.d.ts.map +0 -1
- package/dest/iterable/take.d.ts +0 -10
- package/dest/iterable/take.d.ts.map +0 -1
- package/dest/iterable/toArray.d.ts +0 -2
- package/dest/iterable/toArray.d.ts.map +0 -1
- package/dest/json-rpc/client/fetch.d.ts +0 -21
- package/dest/json-rpc/client/fetch.d.ts.map +0 -1
- package/dest/json-rpc/client/index.d.ts +0 -3
- package/dest/json-rpc/client/index.d.ts.map +0 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +0 -13
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +0 -1
- package/dest/json-rpc/convert.d.ts +0 -20
- package/dest/json-rpc/convert.d.ts.map +0 -1
- package/dest/json-rpc/fixtures/class_a.d.ts +0 -11
- package/dest/json-rpc/fixtures/class_a.d.ts.map +0 -1
- package/dest/json-rpc/fixtures/class_b.d.ts +0 -11
- package/dest/json-rpc/fixtures/class_b.d.ts.map +0 -1
- package/dest/json-rpc/fixtures/test_state.d.ts +0 -89
- package/dest/json-rpc/fixtures/test_state.d.ts.map +0 -1
- package/dest/json-rpc/index.d.ts +0 -2
- package/dest/json-rpc/index.d.ts.map +0 -1
- package/dest/json-rpc/js_utils.d.ts +0 -13
- package/dest/json-rpc/js_utils.d.ts.map +0 -1
- package/dest/json-rpc/server/index.d.ts +0 -2
- package/dest/json-rpc/server/index.d.ts.map +0 -1
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts +0 -140
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +0 -1
- package/dest/json-rpc/server/telemetry.d.ts +0 -2
- package/dest/json-rpc/server/telemetry.d.ts.map +0 -1
- package/dest/json-rpc/test/index.d.ts +0 -2
- package/dest/json-rpc/test/index.d.ts.map +0 -1
- package/dest/json-rpc/test/integration.d.ts +0 -13
- package/dest/json-rpc/test/integration.d.ts.map +0 -1
- package/dest/log/console.d.ts +0 -11
- package/dest/log/console.d.ts.map +0 -1
- package/dest/log/debug.d.ts +0 -56
- package/dest/log/debug.d.ts.map +0 -1
- package/dest/log/gcloud-logger-config.d.ts +0 -14
- package/dest/log/gcloud-logger-config.d.ts.map +0 -1
- package/dest/log/index.d.ts +0 -6
- package/dest/log/index.d.ts.map +0 -1
- package/dest/log/log-filters.d.ts +0 -7
- package/dest/log/log-filters.d.ts.map +0 -1
- package/dest/log/log-levels.d.ts +0 -3
- package/dest/log/log-levels.d.ts.map +0 -1
- package/dest/log/log_fn.d.ts +0 -7
- package/dest/log/log_fn.d.ts.map +0 -1
- package/dest/log/log_history.d.ts +0 -31
- package/dest/log/log_history.d.ts.map +0 -1
- package/dest/log/pino-logger.d.ts +0 -53
- package/dest/log/pino-logger.d.ts.map +0 -1
- package/dest/message/index.d.ts +0 -32
- package/dest/message/index.d.ts.map +0 -1
- package/dest/mutex/index.d.ts +0 -53
- package/dest/mutex/index.d.ts.map +0 -1
- package/dest/mutex/mutex_database.d.ts +0 -10
- package/dest/mutex/mutex_database.d.ts.map +0 -1
- package/dest/noir/index.d.ts +0 -2
- package/dest/noir/index.d.ts.map +0 -1
- package/dest/noir/noir_package_config.d.ts +0 -129
- package/dest/noir/noir_package_config.d.ts.map +0 -1
- package/dest/promise/index.d.ts +0 -3
- package/dest/promise/index.d.ts.map +0 -1
- package/dest/promise/running-promise.d.ts +0 -41
- package/dest/promise/running-promise.d.ts.map +0 -1
- package/dest/promise/utils.d.ts +0 -12
- package/dest/promise/utils.d.ts.map +0 -1
- package/dest/queue/base_memory_queue.d.ts +0 -65
- package/dest/queue/base_memory_queue.d.ts.map +0 -1
- package/dest/queue/bounded_serial_queue.d.ts +0 -56
- package/dest/queue/bounded_serial_queue.d.ts.map +0 -1
- package/dest/queue/fifo_memory_queue.d.ts +0 -21
- package/dest/queue/fifo_memory_queue.d.ts.map +0 -1
- package/dest/queue/index.d.ts +0 -6
- package/dest/queue/index.d.ts.map +0 -1
- package/dest/queue/priority_memory_queue.d.ts +0 -13
- package/dest/queue/priority_memory_queue.d.ts.map +0 -1
- package/dest/queue/priority_queue.d.ts +0 -14
- package/dest/queue/priority_queue.d.ts.map +0 -1
- package/dest/queue/semaphore.d.ts +0 -23
- package/dest/queue/semaphore.d.ts.map +0 -1
- package/dest/queue/serial_queue.d.ts +0 -49
- package/dest/queue/serial_queue.d.ts.map +0 -1
- package/dest/retry/index.d.ts +0 -44
- package/dest/retry/index.d.ts.map +0 -1
- package/dest/running-promise/index.d.ts +0 -2
- package/dest/running-promise/index.d.ts.map +0 -1
- package/dest/schemas/api.d.ts +0 -21
- package/dest/schemas/api.d.ts.map +0 -1
- package/dest/schemas/index.d.ts +0 -6
- package/dest/schemas/index.d.ts.map +0 -1
- package/dest/schemas/parse.d.ts +0 -9
- package/dest/schemas/parse.d.ts.map +0 -1
- package/dest/schemas/schemas.d.ts +0 -60
- package/dest/schemas/schemas.d.ts.map +0 -1
- package/dest/schemas/types.d.ts +0 -3
- package/dest/schemas/types.d.ts.map +0 -1
- package/dest/schemas/utils.d.ts +0 -53
- package/dest/schemas/utils.d.ts.map +0 -1
- package/dest/serialize/buffer_reader.d.ts +0 -239
- package/dest/serialize/buffer_reader.d.ts.map +0 -1
- package/dest/serialize/field_reader.d.ts +0 -112
- package/dest/serialize/field_reader.d.ts.map +0 -1
- package/dest/serialize/free_funcs.d.ts +0 -105
- package/dest/serialize/free_funcs.d.ts.map +0 -1
- package/dest/serialize/index.d.ts +0 -7
- package/dest/serialize/index.d.ts.map +0 -1
- package/dest/serialize/serialize.d.ts +0 -182
- package/dest/serialize/serialize.d.ts.map +0 -1
- package/dest/serialize/type_registry.d.ts +0 -23
- package/dest/serialize/type_registry.d.ts.map +0 -1
- package/dest/serialize/types.d.ts +0 -33
- package/dest/serialize/types.d.ts.map +0 -1
- package/dest/sleep/index.d.ts +0 -51
- package/dest/sleep/index.d.ts.map +0 -1
- package/dest/string/index.d.ts +0 -11
- package/dest/string/index.d.ts.map +0 -1
- package/dest/testing/files/index.d.ts +0 -19
- package/dest/testing/files/index.d.ts.map +0 -1
- package/dest/testing/index.d.ts +0 -4
- package/dest/testing/index.d.ts.map +0 -1
- package/dest/testing/port_allocator.d.ts +0 -10
- package/dest/testing/port_allocator.d.ts.map +0 -1
- package/dest/testing/snapshot_serializer.d.ts +0 -5
- package/dest/testing/snapshot_serializer.d.ts.map +0 -1
- package/dest/testing/test_data.d.ts +0 -7
- package/dest/testing/test_data.d.ts.map +0 -1
- package/dest/timer/date.d.ts +0 -13
- package/dest/timer/date.d.ts.map +0 -1
- package/dest/timer/elapsed.d.ts +0 -13
- package/dest/timer/elapsed.d.ts.map +0 -1
- package/dest/timer/index.d.ts +0 -5
- package/dest/timer/index.d.ts.map +0 -1
- package/dest/timer/timeout.d.ts +0 -41
- package/dest/timer/timeout.d.ts.map +0 -1
- package/dest/timer/timer.d.ts +0 -37
- package/dest/timer/timer.d.ts.map +0 -1
- package/dest/transport/browser/index.d.ts +0 -5
- package/dest/transport/browser/index.d.ts.map +0 -1
- package/dest/transport/browser/message_port_socket.d.ts +0 -37
- package/dest/transport/browser/message_port_socket.d.ts.map +0 -1
- package/dest/transport/browser/shared_worker_connector.d.ts +0 -19
- package/dest/transport/browser/shared_worker_connector.d.ts.map +0 -1
- package/dest/transport/browser/shared_worker_listener.d.ts +0 -38
- package/dest/transport/browser/shared_worker_listener.d.ts.map +0 -1
- package/dest/transport/browser/worker_connector.d.ts +0 -26
- package/dest/transport/browser/worker_connector.d.ts.map +0 -1
- package/dest/transport/browser/worker_listener.d.ts +0 -39
- package/dest/transport/browser/worker_listener.d.ts.map +0 -1
- package/dest/transport/dispatch/create_dispatch_fn.d.ts +0 -25
- package/dest/transport/dispatch/create_dispatch_fn.d.ts.map +0 -1
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts +0 -102
- package/dest/transport/dispatch/create_dispatch_proxy.d.ts.map +0 -1
- package/dest/transport/dispatch/messages.d.ts +0 -52
- package/dest/transport/dispatch/messages.d.ts.map +0 -1
- package/dest/transport/index.d.ts +0 -12
- package/dest/transport/index.d.ts.map +0 -1
- package/dest/transport/interface/connector.d.ts +0 -8
- package/dest/transport/interface/connector.d.ts.map +0 -1
- package/dest/transport/interface/listener.d.ts +0 -13
- package/dest/transport/interface/listener.d.ts.map +0 -1
- package/dest/transport/interface/socket.d.ts +0 -13
- package/dest/transport/interface/socket.d.ts.map +0 -1
- package/dest/transport/interface/transferable.d.ts +0 -68
- package/dest/transport/interface/transferable.d.ts.map +0 -1
- package/dest/transport/node/index.d.ts +0 -3
- package/dest/transport/node/index.d.ts.map +0 -1
- package/dest/transport/node/node_connector.d.ts +0 -28
- package/dest/transport/node/node_connector.d.ts.map +0 -1
- package/dest/transport/node/node_connector_socket.d.ts +0 -42
- package/dest/transport/node/node_connector_socket.d.ts.map +0 -1
- package/dest/transport/node/node_listener.d.ts +0 -26
- package/dest/transport/node/node_listener.d.ts.map +0 -1
- package/dest/transport/node/node_listener_socket.d.ts +0 -37
- package/dest/transport/node/node_listener_socket.d.ts.map +0 -1
- package/dest/transport/transport_client.d.ts +0 -61
- package/dest/transport/transport_client.d.ts.map +0 -1
- package/dest/transport/transport_server.d.ts +0 -56
- package/dest/transport/transport_server.d.ts.map +0 -1
- package/dest/trees/index.d.ts +0 -59
- package/dest/trees/index.d.ts.map +0 -1
- package/dest/trees/unbalanced_merkle_tree.d.ts +0 -17
- package/dest/trees/unbalanced_merkle_tree.d.ts.map +0 -1
- package/dest/trees/unbalanced_tree_store.d.ts +0 -19
- package/dest/trees/unbalanced_tree_store.d.ts.map +0 -1
- package/dest/types/index.d.ts +0 -19
- package/dest/types/index.d.ts.map +0 -1
- package/dest/url/index.d.ts +0 -9
- package/dest/url/index.d.ts.map +0 -1
- package/dest/validation/index.d.ts +0 -9
- package/dest/validation/index.d.ts.map +0 -1
- package/dest/wasm/empty_wasi_sdk.d.ts +0 -130
- package/dest/wasm/empty_wasi_sdk.d.ts.map +0 -1
- package/dest/wasm/index.d.ts +0 -2
- package/dest/wasm/index.d.ts.map +0 -1
- package/dest/wasm/wasm_module.d.ts +0 -136
- package/dest/wasm/wasm_module.d.ts.map +0 -1
- package/dest/worker/browser/index.d.ts +0 -3
- package/dest/worker/browser/index.d.ts.map +0 -1
- package/dest/worker/browser/start_web_module.d.ts +0 -7
- package/dest/worker/browser/start_web_module.d.ts.map +0 -1
- package/dest/worker/browser/web_data_store.d.ts +0 -24
- package/dest/worker/browser/web_data_store.d.ts.map +0 -1
- package/dest/worker/browser/web_worker.d.ts +0 -10
- package/dest/worker/browser/web_worker.d.ts.map +0 -1
- package/dest/worker/data_store.d.ts +0 -21
- package/dest/worker/data_store.d.ts.map +0 -1
- package/dest/worker/index.d.ts +0 -3
- package/dest/worker/index.d.ts.map +0 -1
- package/dest/worker/node/index.d.ts +0 -3
- package/dest/worker/node/index.d.ts.map +0 -1
- package/dest/worker/node/node_data_store.d.ts +0 -13
- package/dest/worker/node/node_data_store.d.ts.map +0 -1
- package/dest/worker/node/node_worker.d.ts +0 -6
- package/dest/worker/node/node_worker.d.ts.map +0 -1
- package/dest/worker/node/start_node_module.d.ts +0 -7
- package/dest/worker/node/start_node_module.d.ts.map +0 -1
- package/dest/worker/wasm_worker.d.ts +0 -9
- package/dest/worker/wasm_worker.d.ts.map +0 -1
- package/dest/worker/worker_pool.d.ts +0 -40
- package/dest/worker/worker_pool.d.ts.map +0 -1
- package/src/blob/blob.ts +0 -311
- package/src/blob/encoding.ts +0 -98
- package/src/blob/errors.ts +0 -6
- package/src/blob/index.ts +0 -22
- package/src/blob/interface.ts +0 -11
- package/src/blob/mocks.ts +0 -48
|
@@ -4,37 +4,38 @@ import { serializeToFields } from '../../serialize/serialize.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Create a pedersen commitment (point) from an array of input fields.
|
|
6
6
|
* Left pads any inputs less than 32 bytes.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
if (!input.every(i => i.length <= 32)) {
|
|
7
|
+
*/ export async function pedersenCommit(input, offset = 0) {
|
|
8
|
+
if (!input.every((i)=>i.length <= 32)) {
|
|
10
9
|
throw new Error('All Pedersen Commit input buffers must be <= 32 bytes.');
|
|
11
10
|
}
|
|
12
|
-
input = input.map(i
|
|
11
|
+
input = input.map((i)=>i.length < 32 ? Buffer.concat([
|
|
12
|
+
Buffer.alloc(32 - i.length, 0),
|
|
13
|
+
i
|
|
14
|
+
]) : i);
|
|
13
15
|
const api = await BarretenbergSync.initSingleton();
|
|
14
|
-
const point = api.pedersenCommit(input.map(i
|
|
16
|
+
const point = api.pedersenCommit(input.map((i)=>new FrBarretenberg(i)), offset);
|
|
15
17
|
// toBuffer returns Uint8Arrays (browser/worker-boundary friendly).
|
|
16
18
|
// TODO: rename toTypedArray()?
|
|
17
|
-
return [
|
|
19
|
+
return [
|
|
20
|
+
Buffer.from(point.x.toBuffer()),
|
|
21
|
+
Buffer.from(point.y.toBuffer())
|
|
22
|
+
];
|
|
18
23
|
}
|
|
19
24
|
/**
|
|
20
25
|
* Create a pedersen hash (field) from an array of input fields.
|
|
21
26
|
* @param input - The input fieldables to hash.
|
|
22
27
|
* @param index - The separator index to use for the hash.
|
|
23
28
|
* @returns The pedersen hash.
|
|
24
|
-
*/
|
|
25
|
-
export async function pedersenHash(input, index = 0) {
|
|
29
|
+
*/ export async function pedersenHash(input, index = 0) {
|
|
26
30
|
const inputFields = serializeToFields(input);
|
|
27
31
|
const api = await BarretenbergSync.initSingleton();
|
|
28
|
-
const hash = api.pedersenHash(inputFields.map(i
|
|
29
|
-
index);
|
|
32
|
+
const hash = api.pedersenHash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())), index);
|
|
30
33
|
return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
36
|
* Create a pedersen hash from an arbitrary length buffer.
|
|
34
|
-
*/
|
|
35
|
-
export async function pedersenHashBuffer(input, index = 0) {
|
|
37
|
+
*/ export async function pedersenHashBuffer(input, index = 0) {
|
|
36
38
|
const api = await BarretenbergSync.initSingleton();
|
|
37
39
|
const result = api.pedersenHashBuffer(input, index);
|
|
38
40
|
return Buffer.from(result.toBuffer());
|
|
39
41
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVkZXJzZW4ud2FzbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jcnlwdG8vcGVkZXJzZW4vcGVkZXJzZW4ud2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUMsT0FBTyxFQUFrQixpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWpGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUFDLEtBQWUsRUFBRSxNQUFNLEdBQUcsQ0FBQztJQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRyxNQUFNLEdBQUcsR0FBRyxNQUFNLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25ELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQzlCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNyQyxNQUFNLENBQ1AsQ0FBQztJQUNGLG1FQUFtRTtJQUNuRSwrQkFBK0I7SUFDL0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxZQUFZLENBQUMsS0FBa0IsRUFBRSxLQUFLLEdBQUcsQ0FBQztJQUM5RCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxNQUFNLEdBQUcsR0FBRyxNQUFNLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25ELE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQzNCLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLDZDQUE2QztJQUNyRyxLQUFLLENBQ04sQ0FBQztJQUNGLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxLQUFhLEVBQUUsS0FBSyxHQUFHLENBQUM7SUFDL0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDIn0=
|
|
@@ -5,11 +5,10 @@ import { serializeToFields } from '../../serialize/serialize.js';
|
|
|
5
5
|
* Create a poseidon hash (field) from an array of input fields.
|
|
6
6
|
* @param input - The input fields to hash.
|
|
7
7
|
* @returns The poseidon hash.
|
|
8
|
-
*/
|
|
9
|
-
export async function poseidon2Hash(input) {
|
|
8
|
+
*/ export async function poseidon2Hash(input) {
|
|
10
9
|
const inputFields = serializeToFields(input);
|
|
11
10
|
const api = await BarretenbergSync.initSingleton();
|
|
12
|
-
const hash = api.poseidon2Hash(inputFields.map(i
|
|
11
|
+
const hash = api.poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
|
|
13
12
|
return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
@@ -17,38 +16,36 @@ export async function poseidon2Hash(input) {
|
|
|
17
16
|
* @param input - The input fields to hash.
|
|
18
17
|
* @param separator - The domain separator.
|
|
19
18
|
* @returns The poseidon hash.
|
|
20
|
-
*/
|
|
21
|
-
export async function poseidon2HashWithSeparator(input, separator) {
|
|
19
|
+
*/ export async function poseidon2HashWithSeparator(input, separator) {
|
|
22
20
|
const inputFields = serializeToFields(input);
|
|
23
21
|
inputFields.unshift(new Fr(separator));
|
|
24
22
|
const api = await BarretenbergSync.initSingleton();
|
|
25
|
-
const hash = api.poseidon2Hash(inputFields.map(i
|
|
23
|
+
const hash = api.poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
|
|
26
24
|
return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
|
|
27
25
|
}
|
|
28
26
|
export async function poseidon2HashAccumulate(input) {
|
|
29
27
|
const inputFields = serializeToFields(input);
|
|
30
28
|
const api = await BarretenbergSync.initSingleton();
|
|
31
|
-
const result = api.poseidon2HashAccumulate(inputFields.map(i
|
|
29
|
+
const result = api.poseidon2HashAccumulate(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
|
|
32
30
|
return Fr.fromBuffer(Buffer.from(result.toBuffer()));
|
|
33
31
|
}
|
|
34
32
|
/**
|
|
35
33
|
* Runs a Poseidon2 permutation.
|
|
36
34
|
* @param input the input state. Expected to be of size 4.
|
|
37
35
|
* @returns the output state, size 4.
|
|
38
|
-
*/
|
|
39
|
-
export async function poseidon2Permutation(input) {
|
|
36
|
+
*/ export async function poseidon2Permutation(input) {
|
|
40
37
|
const inputFields = serializeToFields(input);
|
|
41
38
|
// We'd like this assertion but it's not possible to use it in the browser.
|
|
42
39
|
// assert(input.length === 4, 'Input state must be of size 4');
|
|
43
40
|
const api = await BarretenbergSync.initSingleton();
|
|
44
|
-
const res = api.poseidon2Permutation(inputFields.map(i
|
|
41
|
+
const res = api.poseidon2Permutation(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
|
|
45
42
|
// We'd like this assertion but it's not possible to use it in the browser.
|
|
46
43
|
// assert(res.length === 4, 'Output state must be of size 4');
|
|
47
|
-
return res.map(o
|
|
44
|
+
return res.map((o)=>Fr.fromBuffer(Buffer.from(o.toBuffer())));
|
|
48
45
|
}
|
|
49
46
|
export async function poseidon2HashBytes(input) {
|
|
50
47
|
const inputFields = [];
|
|
51
|
-
for
|
|
48
|
+
for(let i = 0; i < input.length; i += 31){
|
|
52
49
|
const fieldBytes = Buffer.alloc(32, 0);
|
|
53
50
|
input.slice(i, i + 31).copy(fieldBytes);
|
|
54
51
|
// Noir builds the bytes as little-endian, so we need to reverse them.
|
|
@@ -56,7 +53,6 @@ export async function poseidon2HashBytes(input) {
|
|
|
56
53
|
inputFields.push(Fr.fromBuffer(fieldBytes));
|
|
57
54
|
}
|
|
58
55
|
const api = await BarretenbergSync.initSingleton();
|
|
59
|
-
const res = api.poseidon2Hash(inputFields.map(i
|
|
56
|
+
const res = api.poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
|
|
60
57
|
return Fr.fromBuffer(Buffer.from(res.toBuffer()));
|
|
61
58
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3Bvc2VpZG9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLElBQUksY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1QyxPQUFPLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFakY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsYUFBYSxDQUFDLEtBQWtCO0lBQ3BELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLE1BQU0sR0FBRyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDbkQsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FDNUIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQ3ZELENBQUM7SUFDRixPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsMEJBQTBCLENBQUMsS0FBa0IsRUFBRSxTQUFpQjtJQUNwRixNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsTUFBTSxHQUFHLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUVuRCxN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
|
|
@@ -4,7 +4,7 @@ import { RandomnessSingleton } from './randomness_singleton.js';
|
|
|
4
4
|
// limit of Crypto.getRandomValues()
|
|
5
5
|
// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
|
|
6
6
|
const MAX_BYTES = 65536;
|
|
7
|
-
const getWebCrypto = ()
|
|
7
|
+
const getWebCrypto = ()=>{
|
|
8
8
|
if (typeof window !== 'undefined' && window.crypto) {
|
|
9
9
|
return window.crypto;
|
|
10
10
|
}
|
|
@@ -13,7 +13,7 @@ const getWebCrypto = () => {
|
|
|
13
13
|
}
|
|
14
14
|
return undefined;
|
|
15
15
|
};
|
|
16
|
-
export const randomBytes = (len)
|
|
16
|
+
export const randomBytes = (len)=>{
|
|
17
17
|
const singleton = RandomnessSingleton.getInstance();
|
|
18
18
|
if (singleton.isDeterministic()) {
|
|
19
19
|
return singleton.getBytes(len);
|
|
@@ -29,13 +29,12 @@ export const randomBytes = (len) => {
|
|
|
29
29
|
if (len > MAX_BYTES) {
|
|
30
30
|
// this is the max bytes crypto.getRandomValues
|
|
31
31
|
// can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
|
|
32
|
-
for
|
|
32
|
+
for(let generated = 0; generated < len; generated += MAX_BYTES){
|
|
33
33
|
// buffer.slice automatically checks if the end is past the end of
|
|
34
34
|
// the buffer so we don't have to here
|
|
35
35
|
crypto.getRandomValues(buf.slice(generated, generated + MAX_BYTES));
|
|
36
36
|
}
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
37
|
+
} else {
|
|
39
38
|
crypto.getRandomValues(buf);
|
|
40
39
|
}
|
|
41
40
|
return buf;
|
|
@@ -46,8 +45,7 @@ export const randomBytes = (len) => {
|
|
|
46
45
|
* @returns A random integer.
|
|
47
46
|
*
|
|
48
47
|
* TODO(#3949): This is insecure as it's modulo biased. Nuke or safeguard before mainnet.
|
|
49
|
-
*/
|
|
50
|
-
export const randomInt = (max) => {
|
|
48
|
+
*/ export const randomInt = (max)=>{
|
|
51
49
|
const randomBuffer = randomBytes(6); // Generate a buffer of 6 random bytes.
|
|
52
50
|
const randomInt = parseInt(randomBuffer.toString('hex'), 16); // Convert buffer to a large integer.
|
|
53
51
|
return randomInt % max; // Use modulo to ensure the result is less than max.
|
|
@@ -58,8 +56,7 @@ export const randomInt = (max) => {
|
|
|
58
56
|
* @returns A random bigint.
|
|
59
57
|
*
|
|
60
58
|
* TODO(#3949): This is insecure as it's modulo biased. Nuke or safeguard before mainnet.
|
|
61
|
-
*/
|
|
62
|
-
export const randomBigInt = (max) => {
|
|
59
|
+
*/ export const randomBigInt = (max)=>{
|
|
63
60
|
const randomBuffer = randomBytes(8); // Generate a buffer of 8 random bytes.
|
|
64
61
|
const randomBigInt = BigInt(`0x${randomBuffer.toString('hex')}`); // Convert buffer to a large integer.
|
|
65
62
|
return randomBigInt % max; // Use modulo to ensure the result is less than max.
|
|
@@ -67,9 +64,7 @@ export const randomBigInt = (max) => {
|
|
|
67
64
|
/**
|
|
68
65
|
* Generate a random boolean value.
|
|
69
66
|
* @returns A random boolean value.
|
|
70
|
-
*/
|
|
71
|
-
export const randomBoolean = () => {
|
|
67
|
+
*/ export const randomBoolean = ()=>{
|
|
72
68
|
const randomByte = randomBytes(1)[0]; // Generate a single random byte.
|
|
73
69
|
return randomByte % 2 === 0; // Use modulo to determine if the byte is even or odd.
|
|
74
70
|
};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3JhbmRvbS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFVBQVUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBRWpDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWhFLG9DQUFvQztBQUNwQywwRUFBMEU7QUFDMUUsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBRXhCLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRTtJQUN4QixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUN6QyxNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUVwRCxJQUFJLFNBQVMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQVcsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsWUFBWSxFQUFFLENBQUM7SUFDOUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLElBQUksR0FBRyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQ3BCLCtDQUErQztRQUMvQyxvR0FBb0c7UUFDcEcsS0FBSyxJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUFHLEdBQUcsRUFBRSxTQUFTLElBQUksU0FBUyxFQUFFLENBQUM7WUFDaEUsa0VBQWtFO1lBQ2xFLHNDQUFzQztZQUN0QyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDdkMsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsdUNBQXVDO0lBQzVFLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMscUNBQXFDO0lBQ25HLE9BQU8sU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDLG9EQUFvRDtBQUM5RSxDQUFDLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUMxQyxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx1Q0FBdUM7SUFDNUUsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7SUFDdkcsT0FBTyxZQUFZLEdBQUcsR0FBRyxDQUFDLENBQUMsb0RBQW9EO0FBQ2pGLENBQUMsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7SUFDaEMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO0lBQ3ZFLE9BQU8sVUFBVSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxzREFBc0Q7QUFDckYsQ0FBQyxDQUFDIn0=
|
|
@@ -6,17 +6,19 @@ import { createLogger } from '../../log/pino-logger.js';
|
|
|
6
6
|
* @remarks This class was implemented so that tests can be run deterministically.
|
|
7
7
|
*
|
|
8
8
|
* TODO(#3949): This is not safe enough for production and should be made safer or removed before mainnet.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
*/ export class RandomnessSingleton {
|
|
10
|
+
seed;
|
|
11
|
+
log;
|
|
12
|
+
static instance;
|
|
13
|
+
counter;
|
|
14
|
+
constructor(seed, log = createLogger('foundation:randomness_singleton')){
|
|
12
15
|
this.seed = seed;
|
|
13
16
|
this.log = log;
|
|
14
17
|
this.counter = 0;
|
|
15
18
|
if (seed !== undefined) {
|
|
16
19
|
this.log.debug(`Using pseudo-randomness with seed: ${seed}`);
|
|
17
20
|
this.counter = seed;
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
21
|
+
} else {
|
|
20
22
|
this.log.debug('Using true randomness');
|
|
21
23
|
}
|
|
22
24
|
}
|
|
@@ -28,10 +30,9 @@ export class RandomnessSingleton {
|
|
|
28
30
|
return RandomnessSingleton.instance;
|
|
29
31
|
}
|
|
30
32
|
/**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
isDeterministic() {
|
|
33
|
+
* Indicates whether the generator is deterministic (was seeded) or not.
|
|
34
|
+
* @returns Whether the generator is deterministic.
|
|
35
|
+
*/ isDeterministic() {
|
|
35
36
|
return this.seed !== undefined;
|
|
36
37
|
}
|
|
37
38
|
getBytes(length) {
|
|
@@ -43,13 +44,12 @@ export class RandomnessSingleton {
|
|
|
43
44
|
throw new Error('RandomnessSingleton is not implemented for non-deterministic mode');
|
|
44
45
|
}
|
|
45
46
|
const result = Buffer.alloc(length);
|
|
46
|
-
for
|
|
47
|
+
for(let i = 0; i < length; i++){
|
|
47
48
|
// Each byte of the buffer is set to a 1 byte of this.counter's value. 0xff is 255 in decimal and it's used as
|
|
48
49
|
// a mask to get the last 8 bits of the shifted counter.
|
|
49
|
-
result[i] =
|
|
50
|
+
result[i] = this.counter >> i * 8 & 0xff;
|
|
50
51
|
}
|
|
51
52
|
this.counter++;
|
|
52
53
|
return result;
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9tbmVzc19zaW5nbGV0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3JhbmRvbS9yYW5kb21uZXNzX3NpbmdsZXRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxtQkFBbUI7SUFLOUIsWUFDbUIsSUFBYSxFQUNiLE1BQU0sWUFBWSxDQUFDLGlDQUFpQyxDQUFDO1FBRHJELFNBQUksR0FBSixJQUFJLENBQVM7UUFDYixRQUFHLEdBQUgsR0FBRyxDQUFrRDtRQUpoRSxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBTWxCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXO1FBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNyRSxtQkFBbUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsT0FBTyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sUUFBUSxDQUFDLE1BQWM7UUFDNUIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLDZGQUE2RjtZQUM3Riw0RkFBNEY7WUFDNUYsOEZBQThGO1lBQzlGLGlEQUFpRDtZQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLG1FQUFtRSxDQUFDLENBQUM7UUFDdkYsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLDhHQUE4RztZQUM5Ryx3REFBd0Q7WUFDeEQsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMvQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIn0=
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
export * from './secp256k1_signer.js';
|
|
2
2
|
export * from './utils.js';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3NlY3AyNTZrMS1zaWduZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLFlBQVksQ0FBQyJ9
|
|
@@ -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=
|
|
@@ -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
|
|
@@ -2,4 +2,3 @@ import { BarretenbergSync } from '@aztec/bb.js';
|
|
|
2
2
|
export * from './poseidon/index.js';
|
|
3
3
|
export * from './pedersen/index.js';
|
|
4
4
|
await BarretenbergSync.initSingleton();
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY3J5cHRvL3N5bmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxNQUFNLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDIn0=
|
|
@@ -4,34 +4,35 @@ import { serializeToFields } from '../../../serialize/serialize.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* Create a pedersen commitment (point) from an array of input fields.
|
|
6
6
|
* Left pads any inputs less than 32 bytes.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
if (!input.every(i => i.length <= 32)) {
|
|
7
|
+
*/ export function pedersenCommit(input, offset = 0) {
|
|
8
|
+
if (!input.every((i)=>i.length <= 32)) {
|
|
10
9
|
throw new Error('All Pedersen Commit input buffers must be <= 32 bytes.');
|
|
11
10
|
}
|
|
12
|
-
input = input.map(i
|
|
13
|
-
|
|
11
|
+
input = input.map((i)=>i.length < 32 ? Buffer.concat([
|
|
12
|
+
Buffer.alloc(32 - i.length, 0),
|
|
13
|
+
i
|
|
14
|
+
]) : i);
|
|
15
|
+
const point = BarretenbergSync.getSingleton().pedersenCommit(input.map((i)=>new FrBarretenberg(i)), offset);
|
|
14
16
|
// toBuffer returns Uint8Arrays (browser/worker-boundary friendly).
|
|
15
17
|
// TODO: rename toTypedArray()?
|
|
16
|
-
return [
|
|
18
|
+
return [
|
|
19
|
+
Buffer.from(point.x.toBuffer()),
|
|
20
|
+
Buffer.from(point.y.toBuffer())
|
|
21
|
+
];
|
|
17
22
|
}
|
|
18
23
|
/**
|
|
19
24
|
* Create a pedersen hash (field) from an array of input fields.
|
|
20
25
|
* @param input - The input fieldables to hash.
|
|
21
26
|
* @param index - The separator index to use for the hash.
|
|
22
27
|
* @returns The pedersen hash.
|
|
23
|
-
*/
|
|
24
|
-
export function pedersenHash(input, index = 0) {
|
|
28
|
+
*/ export function pedersenHash(input, index = 0) {
|
|
25
29
|
const inputFields = serializeToFields(input);
|
|
26
|
-
const hash = BarretenbergSync.getSingleton().pedersenHash(inputFields.map(i
|
|
27
|
-
index);
|
|
30
|
+
const hash = BarretenbergSync.getSingleton().pedersenHash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())), index);
|
|
28
31
|
return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
|
|
29
32
|
}
|
|
30
33
|
/**
|
|
31
34
|
* Create a pedersen hash from an arbitrary length buffer.
|
|
32
|
-
*/
|
|
33
|
-
export function pedersenHashBuffer(input, index = 0) {
|
|
35
|
+
*/ export function pedersenHashBuffer(input, index = 0) {
|
|
34
36
|
const result = BarretenbergSync.getSingleton().pedersenHashBuffer(input, index);
|
|
35
37
|
return Buffer.from(result.toBuffer());
|
|
36
38
|
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY3J5cHRvL3N5bmMvcGVkZXJzZW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9DLE9BQU8sRUFBa0IsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQWUsRUFBRSxNQUFNLEdBQUcsQ0FBQztJQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHdEQUF3RCxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQzFELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNyQyxNQUFNLENBQ1AsQ0FBQztJQUNGLG1FQUFtRTtJQUNuRSwrQkFBK0I7SUFDL0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFrQixFQUFFLEtBQUssR0FBRyxDQUFDO0lBQ3hELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FDdkQsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsNkNBQTZDO0lBQ3JHLEtBQUssQ0FDTixDQUFDO0lBQ0YsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNyRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBYSxFQUFFLEtBQUssR0FBRyxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDeEMsQ0FBQyJ9
|