mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-22 09:08:06 +00:00
ef89752904
* rpc/types: Decode `SubstrateTxStatus` for substrate and smoldot Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * lightclient: Add light client Error Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * lightclient: Add background task to manage RPC responses Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * lightclient: Implement the light client RPC in subxt Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * subxt: Expose light client under experimental feature-flag Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * artifacts: Add development chain spec for local nodes Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Update cargo lock Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * examples: Add light client example Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Update sp-* crates and smoldot to use git with branch / rev Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Apply cargo fmt Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Fix clippy Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Import hashmap entry Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * lightclient: Fetch spec only if jsonrpsee feature is enabled Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Update subxt/src/rpc/lightclient/background.rs Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com> * Fix typo Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * artifacts: Update dev chain spec Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * types: Handle storage replies from chainHead_storage Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * artifacts: Add polkadot spec Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * lightclient: Handle RPC error responses Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * examples: Tx basic with light client for local nodes Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * example: Light client coprehensive example for live chains Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * examples: Remove prior light client example Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * feature: Rename experimental to unstable Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * book: Add light client section Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * testing: Fix clippy Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * lightclient: Ignore validated events Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust tests for light-clients and normal clients Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * testing: Keep lightclient variant Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Remove support for chainHead_storage for light client Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Update light client to point to crates.io Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Update sp-crates from crates.io Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Replace Atomic with u64 Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Add LightClientBuilder Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust chainspec with provided bootnodes Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Add potential_relay_chains to light client builder Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Move the light-client to the background task Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust tracing logs Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Update book and example Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Apply cargo fmt Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Remove dev_spec.json artifact Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Examples fix duplicate Cargo.toml Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Use tracing_subscriber crate Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Fix clippy for different features Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Add comment about bootNodes Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Add comment about tracing-sub dependency Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Run integration-tests with light-client Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Feature guard some incompatible tests Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * ci: Enable light-client tests under feature flag Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * ci: Fix git step name Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust flags for testing Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust warnings Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Rename feature flag jsonrpsee-ws to jsonrpsee Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Fix cargo check Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * ci: Run tests on just 2 threads Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Move light-client to subxt/src/client Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust LightClientBuilder Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Use ws_url to construct light client for testing Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Refactor background Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Address feedback Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Remove polkadot.spec and trim sub_id Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Wait for substrate to produce block before connecting light client Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust builder and tests Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Apply fmt Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * ci: Use release for light client testing Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Add single test for light-client Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Wait for more blocks Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Use polkadot endpoint for testing Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust cargo check Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * examples: Remove light client chain connection example Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust cargo.toml section for the old example Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust background task to use usize for subscription Id Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Build bootnodes with serde_json::Value directly Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Make channel between subxt user and subxt background unbounded Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Update subxt/src/client/lightclient/builder.rs Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com> * Switch to smoldot 0.6.0 from 0.5.0 Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Move testing to `full_client` and `light_client` higher modules Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Remove subscriptionID type Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Remove subxt/integration-testing feature flag Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust wait_for_blocks documentation Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Adjust utils import for testing Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> * Remove into_iter from builder construction Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> --------- Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io> Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
138 lines
4.6 KiB
TOML
138 lines
4.6 KiB
TOML
[package]
|
|
name = "subxt"
|
|
version.workspace = true
|
|
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]
|
|
# For dev and documentation reasons we enable more features than are often desired.
|
|
# it's recommended to use `--no-default-features` and then select what you need.
|
|
default = ["jsonrpsee", "native", "substrate-compat"]
|
|
|
|
# Enable this for native (ie non web/wasm builds).
|
|
# Exactly 1 of "web" and "native" is expected.
|
|
native = [
|
|
"jsonrpsee?/async-client",
|
|
"jsonrpsee?/client-ws-transport"
|
|
]
|
|
|
|
# Enable this for web/wasm builds.
|
|
# Exactly 1 of "web" and "native" is expected.
|
|
web = [
|
|
"jsonrpsee?/async-wasm-client",
|
|
"jsonrpsee?/client-web-transport",
|
|
"getrandom/js"
|
|
]
|
|
|
|
# Enable this to use jsonrpsee (allowing for example `OnlineClient::from_url`).
|
|
jsonrpsee = [
|
|
"dep:jsonrpsee"
|
|
]
|
|
|
|
# Enable this to pull in extra Substrate dependencies which make it possible to
|
|
# use the `sp_core::crypto::Pair` Signer implementation, as well as adding some
|
|
# `From` impls for types like `AccountId32`. Cannot be used with "web".
|
|
substrate-compat = [
|
|
"sp-core",
|
|
"sp-runtime"
|
|
]
|
|
|
|
# Enable this to fetch and utilize the latest unstable metadata from a node.
|
|
# The unstable metadata is subject to breaking changes and the subxt might
|
|
# fail to decode the metadata properly. Use this to experiment with the
|
|
# latest features exposed by the metadata.
|
|
unstable-metadata = []
|
|
|
|
# Activate this to expose the Light Client functionality.
|
|
# Note that this feature is experimental and things may break or not work as expected.
|
|
unstable-light-client = [
|
|
"smoldot-light/std",
|
|
"tokio-stream",
|
|
"tokio/sync",
|
|
"tokio/rt",
|
|
"futures-util",
|
|
]
|
|
|
|
[dependencies]
|
|
codec = { package = "parity-scale-codec", workspace = true, features = ["derive"] }
|
|
scale-info = { workspace = true }
|
|
scale-value = { workspace = true }
|
|
scale-bits = { workspace = true }
|
|
scale-decode = { workspace = true }
|
|
scale-encode = { workspace = true }
|
|
futures = { workspace = true }
|
|
hex = { workspace = true }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = { workspace = true, features = ["raw_value"] }
|
|
thiserror = { workspace = true }
|
|
tracing = { workspace = true }
|
|
frame-metadata = { workspace = true }
|
|
derivative = { workspace = true }
|
|
either = { workspace = true }
|
|
|
|
# Provides some deserialization, types like U256/H256 and hashing impls like twox/blake256:
|
|
impl-serde = { workspace = true }
|
|
primitive-types = { workspace = true }
|
|
sp-core-hashing = { workspace = true }
|
|
|
|
# For ss58 encoding AccountId32 to serialize them properly:
|
|
base58 = { workspace = true }
|
|
blake2 = { workspace = true }
|
|
|
|
# Included if the "jsonrpsee" feature is enabled.
|
|
jsonrpsee = { workspace = true, optional = true, features = ["jsonrpsee-types"] }
|
|
|
|
# Included if the "substrate-compat" feature is enabled.
|
|
sp-core = { workspace = true, optional = true }
|
|
sp-runtime = { workspace = true, optional = true }
|
|
|
|
# Other subxt crates we depend on.
|
|
subxt-macro = { workspace = true }
|
|
subxt-metadata = { workspace = true }
|
|
|
|
# Light client support:
|
|
smoldot-light = { workspace = true, optional = true }
|
|
tokio = { workspace = true, optional = true }
|
|
tokio-stream = { workspace = true, optional = true }
|
|
futures-util = { workspace = true, optional = true }
|
|
|
|
# Included if "web" feature is enabled, to enable its js feature.
|
|
getrandom = { workspace = true, optional = true }
|
|
|
|
[dev-dependencies]
|
|
bitvec = { workspace = true }
|
|
codec = { workspace = true, features = ["derive", "bit-vec"] }
|
|
scale-info = { workspace = true, features = ["bit-vec"] }
|
|
tokio = { workspace = true, features = ["macros", "time", "rt-multi-thread"] }
|
|
sp-core = { workspace = true }
|
|
sp-runtime = { workspace = true }
|
|
sp-keyring = { workspace = true }
|
|
sp-version = { workspace = true }
|
|
assert_matches = { workspace = true }
|
|
subxt-signer = { workspace = true, features = ["subxt"] }
|
|
# Tracing subscriber is useful for light-client examples to ensure that
|
|
# the `bootNodes` and chain spec are configured correctly. If all is fine, then
|
|
# the light-client wlll emit INFO logs with
|
|
# `GrandPa warp sync finished` and `Finalized block runtime ready.`
|
|
tracing-subscriber = { workspace = true }
|
|
|
|
[[example]]
|
|
name = "unstable_light_client_tx_basic"
|
|
path = "examples/unstable_light_client_tx_basic.rs"
|
|
required-features = ["unstable-light-client", "jsonrpsee"]
|
|
|
|
[profile.dev.package.smoldot-light]
|
|
opt-level = 2
|
|
[profile.test.package.smoldot-light]
|
|
opt-level = 2
|