@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
package/dest/abi/encoder.js
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import { Fr } from '../fields/index.js';
|
|
2
|
-
import { U128 } from './u128.js';
|
|
3
|
-
import { isAddressStruct, isFunctionSelectorStruct, isU128Struct, isWrappedFieldStruct } from './utils.js';
|
|
4
|
-
/**
|
|
5
|
-
* Encodes arguments for a function call.
|
|
6
|
-
* Missing support for integer and string.
|
|
7
|
-
*/
|
|
8
|
-
class ArgumentEncoder {
|
|
9
|
-
constructor(abi, args) {
|
|
10
|
-
this.abi = abi;
|
|
11
|
-
this.args = args;
|
|
12
|
-
this.flattened = [];
|
|
13
|
-
}
|
|
14
|
-
static typeSize(abiType) {
|
|
15
|
-
switch (abiType.kind) {
|
|
16
|
-
case 'field':
|
|
17
|
-
case 'boolean':
|
|
18
|
-
case 'integer':
|
|
19
|
-
return 1;
|
|
20
|
-
case 'string':
|
|
21
|
-
return abiType.length;
|
|
22
|
-
case 'array':
|
|
23
|
-
return abiType.length * ArgumentEncoder.typeSize(abiType.type);
|
|
24
|
-
case 'struct':
|
|
25
|
-
return abiType.fields.reduce((acc, field) => acc + ArgumentEncoder.typeSize(field.type), 0);
|
|
26
|
-
case 'tuple':
|
|
27
|
-
return abiType.fields.reduce((acc, field) => acc + ArgumentEncoder.typeSize(field), 0);
|
|
28
|
-
default: {
|
|
29
|
-
const exhaustiveCheck = abiType;
|
|
30
|
-
throw new Error(`Unhandled abi type: ${exhaustiveCheck}`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Encodes a single argument from the given type to field.
|
|
36
|
-
* @param abiType - The abi type of the argument.
|
|
37
|
-
* @param arg - The value to encode.
|
|
38
|
-
* @param name - Name.
|
|
39
|
-
*/
|
|
40
|
-
encodeArgument(abiType, arg, name) {
|
|
41
|
-
if (arg === undefined || arg == null) {
|
|
42
|
-
throw new Error(`Undefined argument ${name ?? 'unnamed'} of type ${abiType.kind}`);
|
|
43
|
-
}
|
|
44
|
-
switch (abiType.kind) {
|
|
45
|
-
case 'field':
|
|
46
|
-
if (typeof arg === 'number') {
|
|
47
|
-
this.flattened.push(new Fr(BigInt(arg)));
|
|
48
|
-
}
|
|
49
|
-
else if (typeof arg === 'bigint') {
|
|
50
|
-
this.flattened.push(new Fr(arg));
|
|
51
|
-
}
|
|
52
|
-
else if (typeof arg === 'string') {
|
|
53
|
-
this.flattened.push(Fr.fromString(arg));
|
|
54
|
-
}
|
|
55
|
-
else if (typeof arg === 'boolean') {
|
|
56
|
-
this.flattened.push(new Fr(arg ? 1n : 0n));
|
|
57
|
-
}
|
|
58
|
-
else if (typeof arg === 'object') {
|
|
59
|
-
if (Buffer.isBuffer(arg)) {
|
|
60
|
-
this.flattened.push(Fr.fromBuffer(arg));
|
|
61
|
-
}
|
|
62
|
-
else if (typeof arg.toField === 'function') {
|
|
63
|
-
this.flattened.push(arg.toField());
|
|
64
|
-
}
|
|
65
|
-
else if (typeof arg.value === 'string') {
|
|
66
|
-
this.flattened.push(Fr.fromHexString(arg.value));
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
throw new Error(`Argument for ${name} cannot be serialized to a field`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
throw new Error(`Invalid argument "${arg}" of type ${abiType.kind}`);
|
|
74
|
-
}
|
|
75
|
-
break;
|
|
76
|
-
case 'boolean':
|
|
77
|
-
this.flattened.push(new Fr(arg ? 1n : 0n));
|
|
78
|
-
break;
|
|
79
|
-
case 'array':
|
|
80
|
-
for (let i = 0; i < abiType.length; i += 1) {
|
|
81
|
-
this.encodeArgument(abiType.type, arg[i], `${name}[${i}]`);
|
|
82
|
-
}
|
|
83
|
-
break;
|
|
84
|
-
case 'string':
|
|
85
|
-
for (let i = 0; i < abiType.length; i += 1) {
|
|
86
|
-
// If the string is shorter than the defined length, pad it with 0s.
|
|
87
|
-
const toInsert = i < arg.length ? BigInt(arg.charCodeAt(i)) : 0n;
|
|
88
|
-
this.flattened.push(new Fr(toInsert));
|
|
89
|
-
}
|
|
90
|
-
break;
|
|
91
|
-
case 'struct': {
|
|
92
|
-
// If the type defines the encoding to noir, we use it
|
|
93
|
-
if (arg.encodeToNoir !== undefined) {
|
|
94
|
-
this.flattened.push(...arg.encodeToNoir());
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
// If the abi expects a struct like { address: Field } and the supplied arg does not have
|
|
98
|
-
// an address field in it, we try to encode it as if it were a field directly.
|
|
99
|
-
const isAddress = isAddressStruct(abiType);
|
|
100
|
-
if (isAddress && typeof arg.address === 'undefined' && typeof arg.inner === 'undefined') {
|
|
101
|
-
this.encodeArgument({ kind: 'field' }, arg, `${name}.inner`);
|
|
102
|
-
break;
|
|
103
|
-
}
|
|
104
|
-
// Or if the supplied argument does have an address field in it, like a CompleteAddress,
|
|
105
|
-
// we encode it directly as a field.
|
|
106
|
-
if (isAddress && typeof arg.address !== 'undefined') {
|
|
107
|
-
this.encodeArgument({ kind: 'field' }, arg.address, `${name}.address`);
|
|
108
|
-
break;
|
|
109
|
-
}
|
|
110
|
-
if (isFunctionSelectorStruct(abiType)) {
|
|
111
|
-
this.encodeArgument({ kind: 'integer', sign: 'unsigned', width: 32 }, arg.value ?? arg, `${name}.inner`);
|
|
112
|
-
break;
|
|
113
|
-
}
|
|
114
|
-
if (isU128Struct(abiType)) {
|
|
115
|
-
// U128 struct has low and high limbs - so we first convert the value to the 2 limbs and then we encode them
|
|
116
|
-
const value = new U128(arg);
|
|
117
|
-
const limbs = value.toFields();
|
|
118
|
-
const limbNames = U128.getLimbNames();
|
|
119
|
-
this.encodeArgument({ kind: 'field' }, limbs[0], `${name}.${limbNames[0]}`);
|
|
120
|
-
this.encodeArgument({ kind: 'field' }, limbs[1], `${name}.${limbNames[1]}`);
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
if (isWrappedFieldStruct(abiType)) {
|
|
124
|
-
this.encodeArgument({ kind: 'field' }, arg.inner ?? arg, `${name}.inner`);
|
|
125
|
-
break;
|
|
126
|
-
}
|
|
127
|
-
for (const field of abiType.fields) {
|
|
128
|
-
this.encodeArgument(field.type, arg[field.name], `${name}.${field.name}`);
|
|
129
|
-
}
|
|
130
|
-
break;
|
|
131
|
-
}
|
|
132
|
-
case 'integer':
|
|
133
|
-
if (typeof arg === 'string') {
|
|
134
|
-
const value = BigInt(arg);
|
|
135
|
-
this.flattened.push(new Fr(value));
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
this.flattened.push(new Fr(arg));
|
|
139
|
-
}
|
|
140
|
-
break;
|
|
141
|
-
default:
|
|
142
|
-
throw new Error(`Unsupported type: ${abiType}`);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Encodes all the arguments for the given function ABI.
|
|
147
|
-
* @returns The encoded arguments.
|
|
148
|
-
*/
|
|
149
|
-
encode() {
|
|
150
|
-
for (let i = 0; i < this.abi.parameters.length; i += 1) {
|
|
151
|
-
const parameterAbi = this.abi.parameters[i];
|
|
152
|
-
this.encodeArgument(parameterAbi.type, this.args[i], parameterAbi.name);
|
|
153
|
-
}
|
|
154
|
-
return this.flattened;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Encodes all the arguments for a function call.
|
|
159
|
-
* @param abi - The function ABI entry.
|
|
160
|
-
* @param args - The arguments to encode.
|
|
161
|
-
* @returns The encoded arguments.
|
|
162
|
-
*/
|
|
163
|
-
export function encodeArguments(abi, args) {
|
|
164
|
-
return new ArgumentEncoder(abi, args).encode();
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Returns the size of the arguments for a function ABI.
|
|
168
|
-
* @param abi - The function ABI entry.
|
|
169
|
-
* @returns The size of the arguments.
|
|
170
|
-
*/
|
|
171
|
-
export function countArgumentsSize(abi) {
|
|
172
|
-
return abi.parameters.reduce((acc, parameter) => acc + ArgumentEncoder.typeSize(parameter.type), 0);
|
|
173
|
-
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hYmkvZW5jb2Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzRzs7O0dBR0c7QUFDSCxNQUFNLGVBQWU7SUFHbkIsWUFBb0IsR0FBZ0IsRUFBVSxJQUFXO1FBQXJDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFPO1FBRmpELGNBQVMsR0FBUyxFQUFFLENBQUM7SUFFK0IsQ0FBQztJQUU3RCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQWdCO1FBQzlCLFFBQVEsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxDQUFDLENBQUM7WUFDWCxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ3hCLEtBQUssT0FBTztnQkFDVixPQUFPLE9BQU8sQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsS0FBSyxRQUFRO2dCQUNYLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUYsS0FBSyxPQUFPO2dCQUNWLE9BQU8sT0FBTyxDQUFDLE1BQU0s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
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
import { type Fr } from '../fields/fields.js';
|
|
4
|
-
import { BufferReader } from '../serialize/buffer_reader.js';
|
|
5
|
-
import { Selector } from './selector.js';
|
|
6
|
-
/** Event selector branding */
|
|
7
|
-
export interface EventSelector {
|
|
8
|
-
/** Brand. */
|
|
9
|
-
_branding: 'EventSelector';
|
|
10
|
-
}
|
|
11
|
-
/** An event selector is the first 4 bytes of the hash of an event signature. */
|
|
12
|
-
export declare class EventSelector extends Selector {
|
|
13
|
-
/**
|
|
14
|
-
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
15
|
-
* @param buffer - Buffer or BufferReader to read from.
|
|
16
|
-
* @returns The Selector.
|
|
17
|
-
*/
|
|
18
|
-
static fromBuffer(buffer: Buffer | BufferReader): EventSelector;
|
|
19
|
-
/**
|
|
20
|
-
* Converts a field to selector.
|
|
21
|
-
* @param fr - The field to convert.
|
|
22
|
-
* @returns The selector.
|
|
23
|
-
*/
|
|
24
|
-
static fromField(fr: Fr): EventSelector;
|
|
25
|
-
/**
|
|
26
|
-
* Creates a selector from a signature.
|
|
27
|
-
* @param signature - Signature to generate the selector for (e.g. "transfer(field,field)").
|
|
28
|
-
* @returns selector.
|
|
29
|
-
*/
|
|
30
|
-
static fromSignature(signature: string): Promise<EventSelector>;
|
|
31
|
-
/**
|
|
32
|
-
* Create a Selector instance from a hex-encoded string.
|
|
33
|
-
*
|
|
34
|
-
* @param selector - The hex-encoded string representing the Selector.
|
|
35
|
-
* @returns An Selector instance.
|
|
36
|
-
* @throws If the selector length is invalid.
|
|
37
|
-
*/
|
|
38
|
-
static fromString(selector: string): EventSelector;
|
|
39
|
-
/**
|
|
40
|
-
* Creates an empty selector.
|
|
41
|
-
* @returns An empty selector.
|
|
42
|
-
*/
|
|
43
|
-
static empty(): EventSelector;
|
|
44
|
-
/**
|
|
45
|
-
* Creates a random selector.
|
|
46
|
-
* @returns A random selector.
|
|
47
|
-
*/
|
|
48
|
-
static random(): EventSelector;
|
|
49
|
-
toJSON(): string;
|
|
50
|
-
static get schema(): import("zod").ZodType<EventSelector, any, string>;
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=event_selector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event_selector.d.ts","sourceRoot":"","sources":["../../src/abi/event_selector.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,aAAa;IACb,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED,gFAAgF;AAChF,qBAAa,aAAc,SAAQ,QAAQ;IACzC;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAM/C;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE;IAIvB;;;;OAIG;WACU,aAAa,CAAC,SAAS,EAAE,MAAM;IAW5C;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM;IAQlC;;;OAGG;IACH,MAAM,CAAC,KAAK;IAIZ;;;OAGG;IACH,MAAM,CAAC,MAAM;IAIb,MAAM;IAIN,MAAM,KAAK,MAAM,sDAEhB;CACF"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { fromHex, toBigIntBE } from '../bigint-buffer/index.js';
|
|
2
|
-
import { poseidon2HashBytes, randomBytes } from '../crypto/index.js';
|
|
3
|
-
import { hexSchemaFor } from '../schemas/utils.js';
|
|
4
|
-
import { BufferReader } from '../serialize/buffer_reader.js';
|
|
5
|
-
import { Selector } from './selector.js';
|
|
6
|
-
/** An event selector is the first 4 bytes of the hash of an event signature. */
|
|
7
|
-
export class EventSelector extends Selector {
|
|
8
|
-
/**
|
|
9
|
-
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
10
|
-
* @param buffer - Buffer or BufferReader to read from.
|
|
11
|
-
* @returns The Selector.
|
|
12
|
-
*/
|
|
13
|
-
static fromBuffer(buffer) {
|
|
14
|
-
const reader = BufferReader.asReader(buffer);
|
|
15
|
-
const value = Number(toBigIntBE(reader.readBytes(Selector.SIZE)));
|
|
16
|
-
return new EventSelector(value);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Converts a field to selector.
|
|
20
|
-
* @param fr - The field to convert.
|
|
21
|
-
* @returns The selector.
|
|
22
|
-
*/
|
|
23
|
-
static fromField(fr) {
|
|
24
|
-
return new EventSelector(Number(fr.toBigInt()));
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Creates a selector from a signature.
|
|
28
|
-
* @param signature - Signature to generate the selector for (e.g. "transfer(field,field)").
|
|
29
|
-
* @returns selector.
|
|
30
|
-
*/
|
|
31
|
-
static async fromSignature(signature) {
|
|
32
|
-
// throw if signature contains whitespace
|
|
33
|
-
if (/\s/.test(signature)) {
|
|
34
|
-
throw new Error('Signature cannot contain whitespace');
|
|
35
|
-
}
|
|
36
|
-
const hash = await poseidon2HashBytes(Buffer.from(signature));
|
|
37
|
-
// We take the last Selector.SIZE big endian bytes
|
|
38
|
-
const bytes = hash.toBuffer().slice(-Selector.SIZE);
|
|
39
|
-
return EventSelector.fromBuffer(bytes);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Create a Selector instance from a hex-encoded string.
|
|
43
|
-
*
|
|
44
|
-
* @param selector - The hex-encoded string representing the Selector.
|
|
45
|
-
* @returns An Selector instance.
|
|
46
|
-
* @throws If the selector length is invalid.
|
|
47
|
-
*/
|
|
48
|
-
static fromString(selector) {
|
|
49
|
-
const buf = fromHex(selector);
|
|
50
|
-
if (buf.length !== Selector.SIZE) {
|
|
51
|
-
throw new Error(`Invalid EventSelector length ${buf.length} (expected ${Selector.SIZE}).`);
|
|
52
|
-
}
|
|
53
|
-
return EventSelector.fromBuffer(buf);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Creates an empty selector.
|
|
57
|
-
* @returns An empty selector.
|
|
58
|
-
*/
|
|
59
|
-
static empty() {
|
|
60
|
-
return new EventSelector(0);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Creates a random selector.
|
|
64
|
-
* @returns A random selector.
|
|
65
|
-
*/
|
|
66
|
-
static random() {
|
|
67
|
-
return EventSelector.fromBuffer(randomBytes(Selector.SIZE));
|
|
68
|
-
}
|
|
69
|
-
toJSON() {
|
|
70
|
-
return this.toString();
|
|
71
|
-
}
|
|
72
|
-
static get schema() {
|
|
73
|
-
return hexSchemaFor(EventSelector);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRfc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL2V2ZW50X3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVV6QyxnRkFBZ0Y7QUFDaEYsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUFRO0lBQ3pDOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQTZCO1FBQzdDLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBTTtRQUNyQixPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBaUI7UUFDMUMseUNBQXlDO1FBQ3pDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsa0RBQWtEO1FBQ2xELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsT0FBTyxhQUFhLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQWdCO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLEdBQUcsQ0FBQyxNQUFNLGNBQWMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQUs7UUFDVixPQUFPLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsTUFBTTtRQUNYLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTSxLQUFLLE1BQU07UUFDZixPQUFPLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0YifQ==
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
import { type Fr } from '../fields/fields.js';
|
|
4
|
-
import { BufferReader } from '../serialize/buffer_reader.js';
|
|
5
|
-
import { FieldReader } from '../serialize/field_reader.js';
|
|
6
|
-
import { type ABIParameter } from './abi.js';
|
|
7
|
-
import { Selector } from './selector.js';
|
|
8
|
-
/** Function selector branding */
|
|
9
|
-
export interface FunctionSelector {
|
|
10
|
-
/** Brand. */
|
|
11
|
-
_branding: 'FunctionSelector';
|
|
12
|
-
}
|
|
13
|
-
/** A function selector is the first 4 bytes of the hash of a function signature. */
|
|
14
|
-
export declare class FunctionSelector extends Selector {
|
|
15
|
-
/**
|
|
16
|
-
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
17
|
-
* @param buffer - Buffer or BufferReader to read from.
|
|
18
|
-
* @returns The Selector.
|
|
19
|
-
*/
|
|
20
|
-
static fromBuffer(buffer: Buffer | BufferReader): FunctionSelector;
|
|
21
|
-
/**
|
|
22
|
-
* Converts a field to selector.
|
|
23
|
-
* @param fr - The field to convert.
|
|
24
|
-
* @returns The selector.
|
|
25
|
-
*/
|
|
26
|
-
static fromField(fr: Fr): FunctionSelector;
|
|
27
|
-
static fromFields(fields: Fr[] | FieldReader): FunctionSelector;
|
|
28
|
-
/**
|
|
29
|
-
* Creates a selector from a signature.
|
|
30
|
-
* @param signature - Signature to generate the selector for (e.g. "transfer(field,field)").
|
|
31
|
-
* @returns selector.
|
|
32
|
-
*/
|
|
33
|
-
static fromSignature(signature: string): Promise<FunctionSelector>;
|
|
34
|
-
/**
|
|
35
|
-
* Create a Selector instance from a hex-encoded string.
|
|
36
|
-
*
|
|
37
|
-
* @param selector - The hex-encoded string representing the Selector.
|
|
38
|
-
* @returns An Selector instance.
|
|
39
|
-
* @throws If the selector length is invalid.
|
|
40
|
-
*/
|
|
41
|
-
static fromString(selector: string): FunctionSelector;
|
|
42
|
-
/**
|
|
43
|
-
* Creates an empty selector.
|
|
44
|
-
* @returns An empty selector.
|
|
45
|
-
*/
|
|
46
|
-
static empty(): FunctionSelector;
|
|
47
|
-
/**
|
|
48
|
-
* Creates a function selector for a given function name and parameters.
|
|
49
|
-
* @param name - The name of the function.
|
|
50
|
-
* @param parameters - An array of ABIParameter objects, each containing the type information of a function parameter.
|
|
51
|
-
* @returns A Buffer containing the 4-byte selector.
|
|
52
|
-
*/
|
|
53
|
-
static fromNameAndParameters(args: {
|
|
54
|
-
name: string;
|
|
55
|
-
parameters: ABIParameter[];
|
|
56
|
-
}): Promise<FunctionSelector>;
|
|
57
|
-
static fromNameAndParameters(name: string, parameters: ABIParameter[]): Promise<FunctionSelector>;
|
|
58
|
-
/**
|
|
59
|
-
* Creates a random instance.
|
|
60
|
-
*/
|
|
61
|
-
static random(): FunctionSelector;
|
|
62
|
-
toJSON(): string;
|
|
63
|
-
static get schema(): import("zod").ZodType<FunctionSelector, any, string>;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=function_selector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"function_selector.d.ts","sourceRoot":"","sources":["../../src/abi/function_selector.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,iCAAiC;AACjC,MAAM,WAAW,gBAAgB;IAC/B,aAAa;IACb,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED,oFAAoF;AACpF,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAM/C;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE;IAIvB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW;IAK5C;;;;OAIG;WACU,aAAa,CAAC,SAAS,EAAE,MAAM;IAW5C;;;;;;OAMG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM;IAQlC;;;OAGG;IACH,MAAM,CAAC,KAAK;IAIZ;;;;;OAKG;IACH,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,YAAY,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC3G,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAcjG;;OAEG;IACH,MAAM,CAAC,MAAM;IAIb,MAAM;IAIN,MAAM,KAAK,MAAM,yDAEhB;CACF"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { fromHex, toBigIntBE } from '../bigint-buffer/index.js';
|
|
2
|
-
import { poseidon2HashBytes, randomBytes } from '../crypto/index.js';
|
|
3
|
-
import { hexSchemaFor } from '../schemas/utils.js';
|
|
4
|
-
import { BufferReader } from '../serialize/buffer_reader.js';
|
|
5
|
-
import { FieldReader } from '../serialize/field_reader.js';
|
|
6
|
-
import { TypeRegistry } from '../serialize/type_registry.js';
|
|
7
|
-
import { decodeFunctionSignature } from './decoder.js';
|
|
8
|
-
import { Selector } from './selector.js';
|
|
9
|
-
/** A function selector is the first 4 bytes of the hash of a function signature. */
|
|
10
|
-
export class FunctionSelector extends Selector {
|
|
11
|
-
/**
|
|
12
|
-
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
13
|
-
* @param buffer - Buffer or BufferReader to read from.
|
|
14
|
-
* @returns The Selector.
|
|
15
|
-
*/
|
|
16
|
-
static fromBuffer(buffer) {
|
|
17
|
-
const reader = BufferReader.asReader(buffer);
|
|
18
|
-
const value = Number(toBigIntBE(reader.readBytes(Selector.SIZE)));
|
|
19
|
-
return new FunctionSelector(value);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Converts a field to selector.
|
|
23
|
-
* @param fr - The field to convert.
|
|
24
|
-
* @returns The selector.
|
|
25
|
-
*/
|
|
26
|
-
static fromField(fr) {
|
|
27
|
-
return new FunctionSelector(Number(fr.toBigInt()));
|
|
28
|
-
}
|
|
29
|
-
static fromFields(fields) {
|
|
30
|
-
const reader = FieldReader.asReader(fields);
|
|
31
|
-
return FunctionSelector.fromField(reader.readField());
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Creates a selector from a signature.
|
|
35
|
-
* @param signature - Signature to generate the selector for (e.g. "transfer(field,field)").
|
|
36
|
-
* @returns selector.
|
|
37
|
-
*/
|
|
38
|
-
static async fromSignature(signature) {
|
|
39
|
-
// throw if signature contains whitespace
|
|
40
|
-
if (/\s/.test(signature)) {
|
|
41
|
-
throw new Error('Signature cannot contain whitespace');
|
|
42
|
-
}
|
|
43
|
-
const hash = await poseidon2HashBytes(Buffer.from(signature));
|
|
44
|
-
// We take the last Selector.SIZE big endian bytes
|
|
45
|
-
const bytes = hash.toBuffer().slice(-Selector.SIZE);
|
|
46
|
-
return FunctionSelector.fromBuffer(bytes);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Create a Selector instance from a hex-encoded string.
|
|
50
|
-
*
|
|
51
|
-
* @param selector - The hex-encoded string representing the Selector.
|
|
52
|
-
* @returns An Selector instance.
|
|
53
|
-
* @throws If the selector length is invalid.
|
|
54
|
-
*/
|
|
55
|
-
static fromString(selector) {
|
|
56
|
-
const buf = fromHex(selector);
|
|
57
|
-
if (buf.length !== Selector.SIZE) {
|
|
58
|
-
throw new Error(`Invalid FunctionSelector length ${buf.length} (expected ${Selector.SIZE}).`);
|
|
59
|
-
}
|
|
60
|
-
return FunctionSelector.fromBuffer(buf);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Creates an empty selector.
|
|
64
|
-
* @returns An empty selector.
|
|
65
|
-
*/
|
|
66
|
-
static empty() {
|
|
67
|
-
return new FunctionSelector(0);
|
|
68
|
-
}
|
|
69
|
-
static async fromNameAndParameters(nameOrArgs, maybeParameters) {
|
|
70
|
-
const { name, parameters } = typeof nameOrArgs === 'string' ? { name: nameOrArgs, parameters: maybeParameters } : nameOrArgs;
|
|
71
|
-
const signature = decodeFunctionSignature(name, parameters);
|
|
72
|
-
const selector = await this.fromSignature(signature);
|
|
73
|
-
// If using the debug logger here it kill the typing in the `server_world_state_synchronizer` and jest tests.
|
|
74
|
-
// console.log(`selector for ${signature} is ${selector}`);
|
|
75
|
-
return selector;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Creates a random instance.
|
|
79
|
-
*/
|
|
80
|
-
static random() {
|
|
81
|
-
return FunctionSelector.fromBuffer(randomBytes(Selector.SIZE));
|
|
82
|
-
}
|
|
83
|
-
toJSON() {
|
|
84
|
-
return this.toString();
|
|
85
|
-
}
|
|
86
|
-
static get schema() {
|
|
87
|
-
return hexSchemaFor(FunctionSelector);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
// For deserializing JSON.
|
|
91
|
-
TypeRegistry.register('FunctionSelector', FunctionSelector);
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25fc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL2Z1bmN0aW9uX3NlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVV6QyxvRkFBb0Y7QUFDcEYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7SUFDNUM7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBNkI7UUFDN0MsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRSxPQUFPLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQU07UUFDckIsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FB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
|
package/dest/abi/index.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './abi.js';
|
|
2
|
-
export * from './buffer.js';
|
|
3
|
-
export * from './decoder.js';
|
|
4
|
-
export * from './encoder.js';
|
|
5
|
-
export * from './event_selector.js';
|
|
6
|
-
export * from './function_selector.js';
|
|
7
|
-
export * from './note_selector.js';
|
|
8
|
-
export * from './utils.js';
|
|
9
|
-
export * from './u128.js';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dest/abi/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abi/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
package/dest/abi/index.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './abi.js';
|
|
2
|
-
export * from './buffer.js';
|
|
3
|
-
export * from './decoder.js';
|
|
4
|
-
export * from './encoder.js';
|
|
5
|
-
export * from './event_selector.js';
|
|
6
|
-
export * from './function_selector.js';
|
|
7
|
-
export * from './note_selector.js';
|
|
8
|
-
export * from './utils.js';
|
|
9
|
-
export * from './u128.js';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWJpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsV0FBVyxDQUFDIn0=
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
3
|
-
import { Fr } from '../fields/fields.js';
|
|
4
|
-
import { BufferReader } from '../serialize/buffer_reader.js';
|
|
5
|
-
import { Selector } from './selector.js';
|
|
6
|
-
/** Note selector branding */
|
|
7
|
-
export interface NoteSelector {
|
|
8
|
-
/** Brand. */
|
|
9
|
-
_branding: 'NoteSelector';
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* A note selector is a 7 bit long value that identifies a note type within a contract.
|
|
13
|
-
* TODO(#10952): Encoding of note type id can be reduced to 7 bits.
|
|
14
|
-
*/
|
|
15
|
-
export declare class NoteSelector extends Selector {
|
|
16
|
-
/**
|
|
17
|
-
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
18
|
-
* @param buffer - Buffer or BufferReader to read from.
|
|
19
|
-
* @returns The Selector.
|
|
20
|
-
*/
|
|
21
|
-
static fromBuffer(buffer: Buffer | BufferReader): NoteSelector;
|
|
22
|
-
static fromString(buf: string): NoteSelector;
|
|
23
|
-
/**
|
|
24
|
-
* Converts a field to selector.
|
|
25
|
-
* @param fr - The field to convert.
|
|
26
|
-
* @returns The selector.
|
|
27
|
-
*/
|
|
28
|
-
static fromField(fr: Fr): NoteSelector;
|
|
29
|
-
/**
|
|
30
|
-
* Creates an empty selector.
|
|
31
|
-
* @returns An empty selector.
|
|
32
|
-
*/
|
|
33
|
-
static empty(): NoteSelector;
|
|
34
|
-
/**
|
|
35
|
-
* Creates a random selector.
|
|
36
|
-
* @returns A random selector.
|
|
37
|
-
*/
|
|
38
|
-
static random(): NoteSelector;
|
|
39
|
-
toJSON(): string;
|
|
40
|
-
static get schema(): import("zod").ZodType<NoteSelector, any, string>;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=note_selector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"note_selector.d.ts","sourceRoot":"","sources":["../../src/abi/note_selector.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC,6BAA6B;AAC7B,MAAM,WAAW,YAAY;IAC3B,aAAa;IACb,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,QAAQ;IACxC;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAS/C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAM7B;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE;IAIvB;;;OAGG;IACH,MAAM,CAAC,KAAK;IAIZ;;;OAGG;IACH,MAAM,CAAC,MAAM;IAKb,MAAM;IAIN,MAAM,KAAK,MAAM,qDAEhB;CACF"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { toBigIntBE } from '../bigint-buffer/index.js';
|
|
2
|
-
import { randomInt } from '../crypto/index.js';
|
|
3
|
-
import { Fr } from '../fields/fields.js';
|
|
4
|
-
import { hexSchemaFor } from '../schemas/utils.js';
|
|
5
|
-
import { BufferReader } from '../serialize/buffer_reader.js';
|
|
6
|
-
import { TypeRegistry } from '../serialize/type_registry.js';
|
|
7
|
-
import { Selector } from './selector.js';
|
|
8
|
-
/**
|
|
9
|
-
* A note selector is a 7 bit long value that identifies a note type within a contract.
|
|
10
|
-
* TODO(#10952): Encoding of note type id can be reduced to 7 bits.
|
|
11
|
-
*/
|
|
12
|
-
export class NoteSelector extends Selector {
|
|
13
|
-
/**
|
|
14
|
-
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
15
|
-
* @param buffer - Buffer or BufferReader to read from.
|
|
16
|
-
* @returns The Selector.
|
|
17
|
-
*/
|
|
18
|
-
static fromBuffer(buffer) {
|
|
19
|
-
const reader = BufferReader.asReader(buffer);
|
|
20
|
-
const value = Number(toBigIntBE(reader.readBytes(Selector.SIZE)));
|
|
21
|
-
if (value >= 1 << 7) {
|
|
22
|
-
throw new Error(`Invalid note selector: ${value}`);
|
|
23
|
-
}
|
|
24
|
-
return new NoteSelector(value);
|
|
25
|
-
}
|
|
26
|
-
static fromString(buf) {
|
|
27
|
-
const withoutPrefix = buf.replace(/^0x/i, '').slice(-8);
|
|
28
|
-
const buffer = Buffer.from(withoutPrefix, 'hex');
|
|
29
|
-
return NoteSelector.fromBuffer(buffer);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Converts a field to selector.
|
|
33
|
-
* @param fr - The field to convert.
|
|
34
|
-
* @returns The selector.
|
|
35
|
-
*/
|
|
36
|
-
static fromField(fr) {
|
|
37
|
-
return new NoteSelector(Number(fr.toBigInt()));
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Creates an empty selector.
|
|
41
|
-
* @returns An empty selector.
|
|
42
|
-
*/
|
|
43
|
-
static empty() {
|
|
44
|
-
return new NoteSelector(0);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Creates a random selector.
|
|
48
|
-
* @returns A random selector.
|
|
49
|
-
*/
|
|
50
|
-
static random() {
|
|
51
|
-
const value = randomInt(1 << 7);
|
|
52
|
-
return NoteSelector.fromField(new Fr(value));
|
|
53
|
-
}
|
|
54
|
-
toJSON() {
|
|
55
|
-
return this.toString();
|
|
56
|
-
}
|
|
57
|
-
static get schema() {
|
|
58
|
-
return hexSchemaFor(NoteSelector);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
// For deserializing JSON.
|
|
62
|
-
TypeRegistry.register('NoteSelector', NoteSelector);
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZV9zZWxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hYmkvbm90ZV9zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVXpDOzs7R0FHRztBQUNILE1BQU0sT0FBTyxZQUFhLFNBQVEsUUFBUTtJQUN4Qzs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUE2QjtRQUM3QyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxPQUFPLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQVc7UUFDM0IsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakQsT0FBTyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFNO1FBQ3JCLE9BQU8sSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFLO1FBQ1YsT0FBTyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLE1BQU07UUFDWCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sS0FBSyxNQUFNO1FBQ2YsT0FBTyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEMsQ0FBQztDQUNGO0FBRUQsMEJBQTBCO0FBQzFCLFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDIn0=
|