@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport_server.d.ts","sourceRoot":"","sources":["../../src/transport/transport_server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"transport_server.d.ts","sourceRoot":"","sources":["../../src/transport/transport_server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD;;GAEG;AACH,qBAAa,eAAe,CAAC,OAAO;IAGtB,OAAO,CAAC,QAAQ;IAAY,OAAO,CAAC,YAAY;IAF5D,OAAO,CAAC,OAAO,CAAgB;gBAEX,QAAQ,EAAE,QAAQ,EAAU,YAAY,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC;IAE5F;;;;OAIG;IACH,KAAK;IAKL;;;OAGG;IACH,IAAI;IAIJ;;;;;;;OAOG;IACG,SAAS,CAAC,GAAG,EAAE,OAAO;IAI5B;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAcvB;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;;;;;;;OAQG;YACW,mBAAmB;CAalC"}
|
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
import { isTransferDescriptor } from './interface/transferable.js';
|
|
2
2
|
/**
|
|
3
3
|
* Keeps track of clients, providing a broadcast, and request/response api with multiplexing.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
*/ export class TransportServer {
|
|
5
|
+
listener;
|
|
6
|
+
msgHandlerFn;
|
|
7
|
+
sockets;
|
|
8
|
+
constructor(listener, msgHandlerFn){
|
|
7
9
|
this.listener = listener;
|
|
8
10
|
this.msgHandlerFn = msgHandlerFn;
|
|
9
11
|
this.sockets = [];
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
this.listener.on('new_socket', client => this.handleNewSocket(client));
|
|
14
|
+
* Starts the TransportServer, allowing it to accept new connections and handle incoming messages.
|
|
15
|
+
* The server will listen for 'new_socket' events from the underlying listener and invoke the provided message handler function
|
|
16
|
+
* for each received message. The server remains active until the 'stop' method is called.
|
|
17
|
+
*/ start() {
|
|
18
|
+
this.listener.on('new_socket', (client)=>this.handleNewSocket(client));
|
|
18
19
|
this.listener.open();
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
stop() {
|
|
22
|
+
* Stops accepting new connections. It doesn't close existing sockets.
|
|
23
|
+
* It's expected the clients will gracefully complete by closing their end, sending an `undefined` message.
|
|
24
|
+
*/ stop() {
|
|
25
25
|
this.listener.close();
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
* Sends a broadcast message to all connected clients.
|
|
29
|
+
* The given payload will be sent to all the clients currently connected to the TransportServer.
|
|
30
|
+
* It waits for all the messages to be sent and resolves when they are all sent successfully.
|
|
31
|
+
*
|
|
32
|
+
* @param msg - The payload to broadcast to all connected clients.
|
|
33
|
+
* @returns A Promise that resolves when all messages have been sent successfully.
|
|
34
|
+
*/ async broadcast(msg) {
|
|
35
|
+
await Promise.all(this.sockets.map((s)=>s.send({
|
|
36
|
+
payload: msg
|
|
37
|
+
})));
|
|
37
38
|
}
|
|
38
39
|
/**
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
socket.registerHandler(async (msg) => {
|
|
40
|
+
* Handles the addition of a new socket to the server by registering a message handler for the client
|
|
41
|
+
* and adding the socket to the list of active sockets. The message handler processes incoming messages
|
|
42
|
+
* from the client, including detecting client disconnection and removing the closed socket.
|
|
43
|
+
*
|
|
44
|
+
* @param socket - The new Socket instance that has connected to the server.
|
|
45
|
+
*/ handleNewSocket(socket) {
|
|
46
|
+
socket.registerHandler(async (msg)=>{
|
|
47
47
|
if (msg === undefined) {
|
|
48
48
|
// Client socket has closed. Remove it from the list of sockets. Call close on it for any cleanup.
|
|
49
|
-
const socketIndex = this.sockets.findIndex(s
|
|
49
|
+
const socketIndex = this.sockets.findIndex((s)=>s === socket);
|
|
50
50
|
const [closingSocket] = this.sockets.splice(socketIndex, 1);
|
|
51
51
|
closingSocket.close();
|
|
52
52
|
return;
|
|
@@ -56,46 +56,59 @@ export class TransportServer {
|
|
|
56
56
|
this.sockets.push(socket);
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
getPayloadAndTransfers(data) {
|
|
59
|
+
* Detect the 'transferables' argument to our socket from our message
|
|
60
|
+
* handler return type.
|
|
61
|
+
* @param data - The compound payload data.
|
|
62
|
+
* @returns The split data and transferables.
|
|
63
|
+
*/ getPayloadAndTransfers(data) {
|
|
65
64
|
if (isTransferDescriptor(data)) {
|
|
66
65
|
// We treat PayloadWithTransfers specially so that we're able to
|
|
67
66
|
// attach transferables while keeping a simple return-type based usage
|
|
68
|
-
return [
|
|
67
|
+
return [
|
|
68
|
+
data.send,
|
|
69
|
+
data.transferables
|
|
70
|
+
];
|
|
69
71
|
}
|
|
70
72
|
if (data instanceof Uint8Array) {
|
|
71
73
|
// We may want to devise a better solution to this. We maybe given a view over a non cloneable/transferrable
|
|
72
74
|
// ArrayBuffer (such as a view over wasm memory). In this case we want to take a copy, and then transfer it.
|
|
73
75
|
const respPayload = data instanceof Uint8Array && ArrayBuffer.isView(data) ? new Uint8Array(data) : data;
|
|
74
|
-
const transferables = data instanceof Uint8Array ? [
|
|
75
|
-
|
|
76
|
+
const transferables = data instanceof Uint8Array ? [
|
|
77
|
+
respPayload.buffer
|
|
78
|
+
] : [];
|
|
79
|
+
return [
|
|
80
|
+
respPayload,
|
|
81
|
+
transferables
|
|
82
|
+
];
|
|
76
83
|
}
|
|
77
|
-
return [
|
|
84
|
+
return [
|
|
85
|
+
data,
|
|
86
|
+
[]
|
|
87
|
+
];
|
|
78
88
|
}
|
|
79
89
|
/**
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
async handleSocketMessage(socket, { msgId, payload }) {
|
|
90
|
+
* Handles incoming socket messages, processing the request and sending back a response.
|
|
91
|
+
* This function is responsible for invoking the registered message handler function with the received
|
|
92
|
+
* payload, extracting the result and transferables, and sending a response message back to the client.
|
|
93
|
+
* In case of an error during message handling, it sends an error response with the stack trace.
|
|
94
|
+
*
|
|
95
|
+
* @param socket - The Socket instance from which the message was received.
|
|
96
|
+
* @param msg - The RequestMessage object containing the message ID and payload.
|
|
97
|
+
*/ async handleSocketMessage(socket, { msgId, payload }) {
|
|
89
98
|
try {
|
|
90
99
|
const data = await this.msgHandlerFn(payload);
|
|
91
100
|
const [respPayload, transferables] = this.getPayloadAndTransfers(data);
|
|
92
|
-
const rep = {
|
|
101
|
+
const rep = {
|
|
102
|
+
msgId,
|
|
103
|
+
payload: respPayload
|
|
104
|
+
};
|
|
93
105
|
await socket.send(rep, transferables);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
106
|
+
} catch (err) {
|
|
107
|
+
const rep = {
|
|
108
|
+
msgId,
|
|
109
|
+
error: err.stack
|
|
110
|
+
};
|
|
97
111
|
await socket.send(rep);
|
|
98
112
|
}
|
|
99
113
|
}
|
|
100
114
|
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNwb3J0X3NlcnZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc3BvcnQvdHJhbnNwb3J0X3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVuRTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQW9CLFFBQWtCLEVBQVUsWUFBNEM7UUFBeEUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFnQztRQUZwRixZQUFPLEdBQWEsRUFBRSxDQUFDO0lBRWdFLENBQUM7SUFFaEc7Ozs7T0FJRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSTtRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQVk7UUFDMUIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssZUFBZSxDQUFDLE1BQWM7UUFDcEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUMsR0FBRyxFQUFDLEVBQUU7WUFDakMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3RCLGtHQUFrRztnQkFDbEcsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUFDLENBQUM7Z0JBQzlELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVELGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdEIsT0FBTztZQUNULENBQUM7WUFDRCxPQUFPLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLHNCQUFzQixDQUFDLElBQVM7UUFDdEMsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQy9CLGdFQUFnRTtZQUNoRSxzRUFBc0U7WUFDdEUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLElBQUksWUFBWSxVQUFVLEVBQUUsQ0FBQztZQUMvQiw0R0FBNEc7WUFDNUcsNEdBQTRHO1lBQzVHLE1BQU0sV0FBVyxHQUFHLElBQUksWUFBWSxVQUFVLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN6RyxNQUFNLGFBQWEsR0FBRyxJQUFJLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUNEOzs7Ozs7OztPQVFHO0lBQ0ssS0FBSyxDQUFDLG1CQUFtQixDQUFDLE1BQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQTJCO1FBQzNGLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU5QyxNQUFNLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RSxNQUFNLEdBQUcsR0FBNkIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBRXRFLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7WUFDbEIsTUFBTSxHQUFHLEdBQTZCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEUsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
/**
|
|
4
|
+
* Defines hasher interface used by Merkle trees.
|
|
5
|
+
*/
|
|
6
|
+
export interface Hasher {
|
|
7
|
+
/**
|
|
8
|
+
* Hash two arrays.
|
|
9
|
+
* @param lhs - The first array.
|
|
10
|
+
* @param rhs - The second array.
|
|
11
|
+
* @returns The new 32-byte hash.
|
|
12
|
+
*/
|
|
13
|
+
hash(lhs: Uint8Array, rhs: Uint8Array): Buffer;
|
|
14
|
+
/**
|
|
15
|
+
* Hashes an array of buffers.
|
|
16
|
+
* @param inputs - The array of buffers to hash.
|
|
17
|
+
* @returns The resulting 32-byte hash.
|
|
18
|
+
*/
|
|
19
|
+
hashInputs(inputs: Buffer[]): Buffer;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Defines an async hasher interface used by Merkle trees.
|
|
23
|
+
*/
|
|
24
|
+
export interface AsyncHasher {
|
|
25
|
+
/**
|
|
26
|
+
* Hash two arrays.
|
|
27
|
+
* @param lhs - The first array.
|
|
28
|
+
* @param rhs - The second array.
|
|
29
|
+
* @returns The new 32-byte hash.
|
|
30
|
+
*/
|
|
31
|
+
hash(lhs: Uint8Array, rhs: Uint8Array): Promise<Buffer>;
|
|
32
|
+
/**
|
|
33
|
+
* Hashes an array of buffers.
|
|
34
|
+
* @param inputs - The array of buffers to hash.
|
|
35
|
+
* @returns The resulting 32-byte hash.
|
|
36
|
+
*/
|
|
37
|
+
hashInputs(inputs: Buffer[]): Promise<Buffer>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=hasher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasher.d.ts","sourceRoot":"","sources":["../../src/trees/hasher.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC;IAE/C;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C"}
|
package/dest/trees/index.d.ts
CHANGED
|
@@ -1,59 +1,11 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
1
|
export * from './unbalanced_merkle_tree.js';
|
|
4
2
|
export * from './unbalanced_tree_store.js';
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Serializes the leaf into a buffer.
|
|
15
|
-
*/
|
|
16
|
-
toBuffer(): Buffer;
|
|
17
|
-
/**
|
|
18
|
-
* Returns true if the leaf is empty.
|
|
19
|
-
*/
|
|
20
|
-
isEmpty(): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Updates the leaf with the data of another leaf.
|
|
23
|
-
* @param another - The leaf to update to.
|
|
24
|
-
* @returns The updated leaf.
|
|
25
|
-
*/
|
|
26
|
-
updateTo(another: IndexedTreeLeaf): IndexedTreeLeaf;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Preimage of a merkle tree leaf.
|
|
30
|
-
*/
|
|
31
|
-
export interface TreeLeafPreimage {
|
|
32
|
-
/**
|
|
33
|
-
* Returns key of the leaf corresponding to this preimage.
|
|
34
|
-
*/
|
|
35
|
-
getKey(): bigint;
|
|
36
|
-
/**
|
|
37
|
-
* Returns the preimage as a leaf.
|
|
38
|
-
*/
|
|
39
|
-
asLeaf(): IndexedTreeLeaf;
|
|
40
|
-
/**
|
|
41
|
-
* Serializes the preimage into a buffer.
|
|
42
|
-
*/
|
|
43
|
-
toBuffer(): Buffer;
|
|
44
|
-
/**
|
|
45
|
-
* Serializes the preimage to an array of buffers for hashing.
|
|
46
|
-
*/
|
|
47
|
-
toHashInputs(): Buffer[];
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Preimage of an indexed merkle tree leaf.
|
|
51
|
-
*/
|
|
52
|
-
export interface IndexedTreeLeafPreimage extends TreeLeafPreimage {
|
|
53
|
-
getNextKey(): bigint;
|
|
54
|
-
/**
|
|
55
|
-
* Returns the index of the next leaf.
|
|
56
|
-
*/
|
|
57
|
-
getNextIndex(): bigint;
|
|
58
|
-
}
|
|
3
|
+
export * from './merkle_tree_calculator.js';
|
|
4
|
+
export * from './merkle_tree.js';
|
|
5
|
+
export * from './indexed_merkle_tree_calculator.js';
|
|
6
|
+
export * from './indexed_merkle_tree.js';
|
|
7
|
+
export * from './sibling_path.js';
|
|
8
|
+
export * from './membership_witness.js';
|
|
9
|
+
export * from './hasher.js';
|
|
10
|
+
export * from './indexed_tree_leaf.js';
|
|
59
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trees/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trees/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qCAAqC,CAAC;AACpD,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC"}
|
package/dest/trees/index.js
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
export * from './unbalanced_merkle_tree.js';
|
|
2
2
|
export * from './unbalanced_tree_store.js';
|
|
3
|
-
|
|
3
|
+
export * from './merkle_tree_calculator.js';
|
|
4
|
+
export * from './merkle_tree.js';
|
|
5
|
+
export * from './indexed_merkle_tree_calculator.js';
|
|
6
|
+
export * from './indexed_merkle_tree.js';
|
|
7
|
+
export * from './sibling_path.js';
|
|
8
|
+
export * from './membership_witness.js';
|
|
9
|
+
export * from './hasher.js';
|
|
10
|
+
export * from './indexed_tree_leaf.js';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import type { IndexedTreeLeafPreimage } from './indexed_tree_leaf.js';
|
|
4
|
+
import { MembershipWitness } from './membership_witness.js';
|
|
5
|
+
import { MerkleTree } from './merkle_tree.js';
|
|
6
|
+
/** A simple immutable indexed merkle tree container. Use a IndexedMerkleTreeCalculator to create a new instance from a set of leaves. */
|
|
7
|
+
export declare class IndexedMerkleTree<T extends IndexedTreeLeafPreimage, N extends number> extends MerkleTree {
|
|
8
|
+
readonly leafPreimages: T[];
|
|
9
|
+
constructor(height: N, nodes: Buffer[], leafPreimages: T[]);
|
|
10
|
+
getLowLeaf(value: bigint): T;
|
|
11
|
+
getMembershipWitness(leafIndexOrLeaf: number | Buffer): MembershipWitness<N>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=indexed_merkle_tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexed_merkle_tree.d.ts","sourceRoot":"","sources":["../../src/trees/indexed_merkle_tree.ts"],"names":[],"mappings":";;AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,yIAAyI;AACzI,qBAAa,iBAAiB,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM,CAAE,SAAQ,UAAU;aAC5C,aAAa,EAAE,CAAC,EAAE;gBAA9D,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAkB,aAAa,EAAE,CAAC,EAAE;IAInE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC;IAc5B,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;CASpF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Fr } from '../fields/index.js';
|
|
2
|
+
import { assertLength } from '../serialize/index.js';
|
|
3
|
+
import { MembershipWitness } from './membership_witness.js';
|
|
4
|
+
import { MerkleTree } from './merkle_tree.js';
|
|
5
|
+
/** A simple immutable indexed merkle tree container. Use a IndexedMerkleTreeCalculator to create a new instance from a set of leaves. */ export class IndexedMerkleTree extends MerkleTree {
|
|
6
|
+
leafPreimages;
|
|
7
|
+
constructor(height, nodes, leafPreimages){
|
|
8
|
+
super(height, nodes), this.leafPreimages = leafPreimages;
|
|
9
|
+
}
|
|
10
|
+
getLowLeaf(value) {
|
|
11
|
+
let lowLeaf;
|
|
12
|
+
this.leafPreimages.forEach((leaf)=>{
|
|
13
|
+
if (leaf.getKey() < value && (leaf.getNextKey() > value || leaf.getNextKey() == BigInt(0))) {
|
|
14
|
+
lowLeaf = leaf;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
if (!lowLeaf) {
|
|
18
|
+
throw new Error(`Couldn't find low leaf for ${value}`);
|
|
19
|
+
}
|
|
20
|
+
return lowLeaf;
|
|
21
|
+
}
|
|
22
|
+
getMembershipWitness(leafIndexOrLeaf) {
|
|
23
|
+
const index = Buffer.isBuffer(leafIndexOrLeaf) ? this.getIndex(leafIndexOrLeaf) : leafIndexOrLeaf;
|
|
24
|
+
const siblingPath = this.getSiblingPath(index);
|
|
25
|
+
return new MembershipWitness(this.height, BigInt(index), assertLength(siblingPath.map(Fr.fromBuffer), this.height));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import type { IndexedTreeLeafPreimage } from '@aztec/foundation/trees';
|
|
4
|
+
import type { AsyncHasher } from './hasher.js';
|
|
5
|
+
import { IndexedMerkleTree } from './indexed_merkle_tree.js';
|
|
6
|
+
interface LeafPreimageFactory<T extends IndexedTreeLeafPreimage> {
|
|
7
|
+
fromBuffer(buffer: Buffer): T;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Indexed merkle tree calculator.
|
|
11
|
+
*/
|
|
12
|
+
export declare class IndexedMerkleTreeCalculator<T extends IndexedTreeLeafPreimage, N extends number> {
|
|
13
|
+
private height;
|
|
14
|
+
private zeroHashes;
|
|
15
|
+
private hasher;
|
|
16
|
+
private factory;
|
|
17
|
+
private constructor();
|
|
18
|
+
static create<T extends IndexedTreeLeafPreimage, N extends number>(height: N, hasher: AsyncHasher, factory: LeafPreimageFactory<T>, zeroLeaf?: Buffer): Promise<IndexedMerkleTreeCalculator<T, N>>;
|
|
19
|
+
computeTree(values: Buffer[]): Promise<IndexedMerkleTree<T, N>>;
|
|
20
|
+
computeTreeRoot(leaves?: Buffer[]): Promise<Buffer>;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=indexed_merkle_tree_calculator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexed_merkle_tree_calculator.d.ts","sourceRoot":"","sources":["../../src/trees/indexed_merkle_tree_calculator.ts"],"names":[],"mappings":";;AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,UAAU,mBAAmB,CAAC,CAAC,SAAS,uBAAuB;IAC7D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,2BAA2B,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM;IAExF,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IAJjB,OAAO;WAOM,MAAM,CAAC,CAAC,SAAS,uBAAuB,EAAE,CAAC,SAAS,MAAM,EACrE,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC/B,QAAQ,SAAmB;IASvB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAuC/D,eAAe,CAAC,MAAM,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAmB9D"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { toBigIntBE } from '@aztec/foundation/bigint-buffer';
|
|
2
|
+
import { numToUInt32BE } from '@aztec/foundation/serialize';
|
|
3
|
+
import { IndexedMerkleTree } from './indexed_merkle_tree.js';
|
|
4
|
+
/**
|
|
5
|
+
* Indexed merkle tree calculator.
|
|
6
|
+
*/ export class IndexedMerkleTreeCalculator {
|
|
7
|
+
height;
|
|
8
|
+
zeroHashes;
|
|
9
|
+
hasher;
|
|
10
|
+
factory;
|
|
11
|
+
constructor(height, zeroHashes, hasher, factory){
|
|
12
|
+
this.height = height;
|
|
13
|
+
this.zeroHashes = zeroHashes;
|
|
14
|
+
this.hasher = hasher;
|
|
15
|
+
this.factory = factory;
|
|
16
|
+
}
|
|
17
|
+
static async create(height, hasher, factory, zeroLeaf = Buffer.alloc(32)) {
|
|
18
|
+
const zeroHashes = [
|
|
19
|
+
zeroLeaf
|
|
20
|
+
];
|
|
21
|
+
for(let i = 0; i < height; i++){
|
|
22
|
+
zeroHashes.push(await hasher.hash(zeroHashes[i], zeroHashes[i]));
|
|
23
|
+
}
|
|
24
|
+
return new IndexedMerkleTreeCalculator(height, zeroHashes, hasher, factory);
|
|
25
|
+
}
|
|
26
|
+
async computeTree(values) {
|
|
27
|
+
if (!values.find((v)=>toBigIntBE(v) == BigInt(0))) {
|
|
28
|
+
// If we have no zero value, add one to form the zero leaf
|
|
29
|
+
values = [
|
|
30
|
+
Buffer.alloc(32),
|
|
31
|
+
...values
|
|
32
|
+
];
|
|
33
|
+
}
|
|
34
|
+
const sorted = values.map((v, i)=>({
|
|
35
|
+
value: v,
|
|
36
|
+
index: i
|
|
37
|
+
})).sort((a, b)=>Number(toBigIntBE(b.value) - toBigIntBE(a.value)));
|
|
38
|
+
const indexedLeaves = sorted.map((item, i)=>({
|
|
39
|
+
leaf: this.factory.fromBuffer(Buffer.concat([
|
|
40
|
+
item.value,
|
|
41
|
+
...i == 0 ? [
|
|
42
|
+
Buffer.alloc(32),
|
|
43
|
+
Buffer.alloc(32)
|
|
44
|
+
] : [
|
|
45
|
+
sorted[i - 1].value,
|
|
46
|
+
numToUInt32BE(sorted[i - 1].index, 32)
|
|
47
|
+
]
|
|
48
|
+
])),
|
|
49
|
+
index: item.index
|
|
50
|
+
}));
|
|
51
|
+
const resortedIndexedLeaves = indexedLeaves.sort((a, b)=>a.index - b.index).map((item)=>item.leaf);
|
|
52
|
+
let leaves = await Promise.all(resortedIndexedLeaves.map((l)=>this.hasher.hashInputs(l.toHashInputs())));
|
|
53
|
+
let result = leaves.slice();
|
|
54
|
+
for(let i = 0; i < this.height; ++i){
|
|
55
|
+
const numLeaves = 2 ** (this.height - i);
|
|
56
|
+
const newLeaves = [];
|
|
57
|
+
for(let j = 0; j < leaves.length / 2; ++j){
|
|
58
|
+
const l = leaves[j * 2];
|
|
59
|
+
const r = leaves[j * 2 + 1] || this.zeroHashes[i];
|
|
60
|
+
newLeaves[j] = await this.hasher.hash(l, r);
|
|
61
|
+
}
|
|
62
|
+
result = result.concat(new Array(numLeaves - leaves.length).fill(this.zeroHashes[i]), newLeaves);
|
|
63
|
+
leaves = newLeaves;
|
|
64
|
+
}
|
|
65
|
+
return new IndexedMerkleTree(this.height, result, resortedIndexedLeaves);
|
|
66
|
+
}
|
|
67
|
+
async computeTreeRoot(leaves = []) {
|
|
68
|
+
if (leaves.length === 0) {
|
|
69
|
+
return this.zeroHashes[this.zeroHashes.length - 1];
|
|
70
|
+
}
|
|
71
|
+
leaves = leaves.slice();
|
|
72
|
+
for(let i = 0; i < this.height; ++i){
|
|
73
|
+
let j = 0;
|
|
74
|
+
for(; j < leaves.length / 2; ++j){
|
|
75
|
+
const l = leaves[j * 2];
|
|
76
|
+
const r = leaves[j * 2 + 1] || this.zeroHashes[i];
|
|
77
|
+
leaves[j] = await this.hasher.hash(l, r);
|
|
78
|
+
}
|
|
79
|
+
leaves = leaves.slice(0, j);
|
|
80
|
+
}
|
|
81
|
+
return leaves[0];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
/**
|
|
4
|
+
* A leaf of an indexed merkle tree.
|
|
5
|
+
*/
|
|
6
|
+
export interface IndexedTreeLeaf {
|
|
7
|
+
/**
|
|
8
|
+
* Returns key of the leaf. It's used for indexing.
|
|
9
|
+
*/
|
|
10
|
+
getKey(): bigint;
|
|
11
|
+
/**
|
|
12
|
+
* Serializes the leaf into a buffer.
|
|
13
|
+
*/
|
|
14
|
+
toBuffer(): Buffer;
|
|
15
|
+
/**
|
|
16
|
+
* Returns true if the leaf is empty.
|
|
17
|
+
*/
|
|
18
|
+
isEmpty(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Updates the leaf with the data of another leaf.
|
|
21
|
+
* @param another - The leaf to update to.
|
|
22
|
+
* @returns The updated leaf.
|
|
23
|
+
*/
|
|
24
|
+
updateTo(another: IndexedTreeLeaf): IndexedTreeLeaf;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Preimage of a merkle tree leaf.
|
|
28
|
+
*/
|
|
29
|
+
export interface TreeLeafPreimage {
|
|
30
|
+
/**
|
|
31
|
+
* Returns key of the leaf corresponding to this preimage.
|
|
32
|
+
*/
|
|
33
|
+
getKey(): bigint;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the preimage as a leaf.
|
|
36
|
+
*/
|
|
37
|
+
asLeaf(): IndexedTreeLeaf;
|
|
38
|
+
/**
|
|
39
|
+
* Serializes the preimage into a buffer.
|
|
40
|
+
*/
|
|
41
|
+
toBuffer(): Buffer;
|
|
42
|
+
/**
|
|
43
|
+
* Serializes the preimage to an array of buffers for hashing.
|
|
44
|
+
*/
|
|
45
|
+
toHashInputs(): Buffer[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Preimage of an indexed merkle tree leaf.
|
|
49
|
+
*/
|
|
50
|
+
export interface IndexedTreeLeafPreimage extends TreeLeafPreimage {
|
|
51
|
+
getNextKey(): bigint;
|
|
52
|
+
/**
|
|
53
|
+
* Returns the index of the next leaf.
|
|
54
|
+
*/
|
|
55
|
+
getNextIndex(): bigint;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=indexed_tree_leaf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexed_tree_leaf.d.ts","sourceRoot":"","sources":["../../src/trees/indexed_tree_leaf.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC;IACjB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,eAAe,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,IAAI,eAAe,CAAC;IAC1B;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,UAAU,IAAI,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
+
import { Fr } from '../fields/fields.js';
|
|
4
|
+
import { BufferReader, type Tuple } from '../serialize/index.js';
|
|
5
|
+
import type { SiblingPath } from './sibling_path.js';
|
|
6
|
+
/**
|
|
7
|
+
* Contains information which can be used to prove that a leaf is a member of a Merkle tree.
|
|
8
|
+
*/
|
|
9
|
+
export declare class MembershipWitness<N extends number> {
|
|
10
|
+
/**
|
|
11
|
+
* Index of a leaf in the Merkle tree.
|
|
12
|
+
*/
|
|
13
|
+
leafIndex: bigint;
|
|
14
|
+
/**
|
|
15
|
+
* Sibling path of the leaf in the Merkle tree.
|
|
16
|
+
*/
|
|
17
|
+
siblingPath: Tuple<Fr, N>;
|
|
18
|
+
constructor(
|
|
19
|
+
/**
|
|
20
|
+
* Size of the sibling path (number of fields it contains).
|
|
21
|
+
*/
|
|
22
|
+
pathSize: N,
|
|
23
|
+
/**
|
|
24
|
+
* Index of a leaf in the Merkle tree.
|
|
25
|
+
*/
|
|
26
|
+
leafIndex: bigint,
|
|
27
|
+
/**
|
|
28
|
+
* Sibling path of the leaf in the Merkle tree.
|
|
29
|
+
*/
|
|
30
|
+
siblingPath: Tuple<Fr, N>);
|
|
31
|
+
toBuffer(): Buffer;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a random membership witness. Used for testing purposes.
|
|
34
|
+
* @param pathSize - Number of fields in the sibling path.
|
|
35
|
+
* @returns Random membership witness.
|
|
36
|
+
*/
|
|
37
|
+
static random<N extends number>(pathSize: N): MembershipWitness<N>;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a membership witness whose sibling path is full of zero fields.
|
|
40
|
+
* @param pathSize - Number of fields in the sibling path.
|
|
41
|
+
* @param leafIndex - Index of the leaf in the Merkle tree.
|
|
42
|
+
* @returns Membership witness with zero sibling path.
|
|
43
|
+
*/
|
|
44
|
+
static empty<N extends number>(pathSize: N, leafIndex?: bigint): MembershipWitness<N>;
|
|
45
|
+
static fromBufferArray<N extends number>(leafIndex: bigint, siblingPath: Tuple<Buffer, N>): MembershipWitness<N>;
|
|
46
|
+
/**
|
|
47
|
+
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
48
|
+
* @param buffer - Buffer or reader to read from.
|
|
49
|
+
* @returns The deserialized `MembershipWitness`.
|
|
50
|
+
*/
|
|
51
|
+
static fromBuffer<N extends number>(buffer: Buffer | BufferReader, size: N): MembershipWitness<N>;
|
|
52
|
+
/**
|
|
53
|
+
* Creates a deserializer object for a MembershipWitness with a given size.
|
|
54
|
+
* @param size - Expected size of the witness.
|
|
55
|
+
* @returns A deserializer object.
|
|
56
|
+
*/
|
|
57
|
+
static deserializer<N extends number>(size: N): {
|
|
58
|
+
fromBuffer(buffer: Buffer | BufferReader): MembershipWitness<N>;
|
|
59
|
+
};
|
|
60
|
+
static fromSiblingPath<N extends number>(leafIndex: bigint, siblingPath: SiblingPath<N>): MembershipWitness<N>;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=membership_witness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"membership_witness.d.ts","sourceRoot":"","sources":["../../src/trees/membership_witness.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAqB,MAAM,uBAAuB,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,MAAM;IAM3C;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;;IAXhC;;OAEG;IACH,QAAQ,EAAE,CAAC;IACX;;OAEG;IACI,SAAS,EAAE,MAAM;IACxB;;OAEG;IACI,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;IAKlC,QAAQ;IAIR;;;;OAIG;WACW,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC;IAUlD;;;;;OAKG;WACW,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,SAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAOxF,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAQhH;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAOjG;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG;QAAE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;KAAE;IAWnH,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAG/G"}
|