[package] name = "subxt" version = "0.28.0" authors.workspace = true edition.workspace = true rust-version.workspace = true publish = true license.workspace = true readme = "../README.md" repository.workspace = true documentation.workspace = true homepage.workspace = true description = "Submit extrinsics (transactions) to a substrate node via RPC" keywords = ["parity", "substrate", "blockchain"] [features] default = ["jsonrpsee-ws", "substrate-compat"] # Activate this feature to pull in extra Substrate dependencies which make it # possible to provide a proper extrinsic Signer implementation (PairSigner). substrate-compat = [ "sp-core", "sp-runtime" ] # Activate this to expose functionality only used for integration testing. # The exposed functionality is subject to breaking changes at any point, # and should not be relied upon. integration-tests = [] # Jsonrpsee if the default RPC provider used in Subxt. However, it can be # swapped out for an alternative implementation, and so is optional. jsonrpsee-ws = ["jsonrpsee/async-client", "jsonrpsee/client-ws-transport"] jsonrpsee-web = ["jsonrpsee/async-wasm-client", "jsonrpsee/client-web-transport"] [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "full"] } scale-info = "2.5.0" scale-value = "0.7.0" scale-bits = "0.3" scale-decode = "0.5.0" scale-encode = "0.1.0" futures = { version = "0.3.27", default-features = false, features = ["std"] } hex = "0.4.3" jsonrpsee = { version = "0.16", optional = true, features = ["jsonrpsee-types"] } serde = { version = "1.0.159", features = ["derive"] } serde_json = { version = "1.0.95", features = ["raw_value"] } thiserror = "1.0.40" tracing = "0.1.34" parking_lot = "0.12.0" frame-metadata = { version = "15.1.0", features = ["v14", "v15-unstable", "std"] } derivative = "2.2.0" either = "1.8.1" subxt-macro = { version = "0.28.0", path = "../macro" } subxt-metadata = { version = "0.28.0", path = "../metadata" } # Provides some deserialization, types like U256/H256 and hashing impls like twox/blake256: impl-serde = { version = "0.4.0" } primitive-types = { version = "0.12.1", default-features = false, features = ["codec", "scale-info", "serde"] } sp-core-hashing = "8.0.0" # For ss58 encoding AccountId32 to serialize them properly: base58 = { version = "0.2.0" } blake2 = { version = "0.10.4", default-features = false } # These are only included is "substrate-compat" is enabled. sp-core = { version = "20.0.0", default-features = false, optional = true } sp-runtime = { version = "23.0.0", optional = true } [target.wasm32-unknown-unknown.dependencies] getrandom = { version = "0.2", features = ["js"] } [dev-dependencies] bitvec = "1" codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive", "full", "bit-vec"] } scale-info = { version = "2.5.0", features = ["bit-vec"] } tokio = { version = "1.27", features = ["macros", "time", "rt-multi-thread"] } sp-core = { version = "20.0.0", default-features = false } sp-runtime = "23.0.0" sp-keyring = "23.0.0" sp-version = "21.0.0"