subxt-core crate (#1466)
* start migrating, broken * first iteration of updating * fmt and clippy * add Composite<u32> decoding via scale value patch * bump scale type gen versions * fix decoding with new scale decode * compiling with changed deps * core utils, condig, client, metadata * core crate compiling * signer crate no once lock * add core to no-std-tests, change imports * broken commit, start pulling everything together in subxt * port more things to subxt * events in core crate, extrinsics sadly much more difficult * almost all examples pass again * dynamic values fix in examples * fix no std issue and fmt * remove unused dependencies * fix lightclient impl * runtime version refactor * formatting and addressing nits * more comments addressed * update wasm example and no-std-signer tests * other nits and error impl on signer errors * fix feature flag * fix runtime version refactor * fix doc links * fix integration tests * fix feature flag gated client state * fix native feature in CI * fix lightclient utils * make imports more lean in subxt-core * integrate changes from subxt-core imports into subxt * other changes in subxt simplify imports more * fix and docs * doc false for cli * fix clippy * remove events block hash in tests * codegen no-std support in generated code * export alloc crate for no-std codegen * fix doc test * implement James comments * remove std traits, use core traits instead * address nits * remove unusued dep in no-std tests * fix Box import in no_std * sp-crypto-hashing instead of sp-core-hashing * bump scale-typegen, add no std codegen tests * fix some things * replace unmaintained derivative with derive_where to remove non-canonical warnings * fmt * remove unused dep * fix deps * update artifacts to fix type ID mismatches * bump to latest scale-typegen --------- Co-authored-by: James Wilson <james@jsdw.me>
subxt ·

A library to submit extrinsics to a substrate node via RPC.
Usage
Take a look in the examples folder or the examples folder for various smaller or
larger subxt usage examples, or read the guide to learn more.
Downloading metadata from a Substrate node
Use the subxt-cli tool to download the metadata for your target runtime from a node.
- Install:
cargo install subxt-cli
- Save the encoded metadata to a file:
subxt metadata -f bytes > metadata.scale
This defaults to querying the metadata of a locally running node on the default http://localhost:9933/. If querying
a different node then the metadata command accepts a --url argument.
Subxt Documentation
For more details regarding utilizing subxt, please visit the documentation.
Integration Testing
Most tests require a running substrate node to communicate with. This is done by spawning an instance of the
substrate node per test. It requires an up-to-date substrate executable on your path.
This can be installed from source via cargo:
cargo install --git https://github.com/paritytech/polkadot-sdk staging-node-cli --force
Real world usage
Please add your project to this list via a PR.
- cargo-contract CLI for interacting with Wasm smart contracts.
- xcm-cli CLI for submitting XCM messages.
- phala-pherry The relayer between Phala blockchain and the off-chain Secure workers.
- crunch CLI to claim staking rewards in batch every Era or X hours for substrate-based chains.
- interbtc-clients Client implementations for the interBTC parachain; notably the Vault / Relayer and Oracle.
- tidext Tidechain client with Stronghold signer.
- staking-miner-v2 Submit NPos election solutions and get rewards.
- polkadot-introspector Tools for monitoring Polkadot nodes.
- ink! Smart contract language that uses
subxtfor allowing developers to conduct End-to-End testing of their contracts. - Chainflip A decentralised exchange for native cross-chain swaps.
Alternatives
substrate-api-client provides similar functionality.
License
The entire code within this repository is dual licensed under the GPL-3.0 or Apache-2.0 licenses. See the LICENSE file for more details.
Please contact us if you have questions about the licensing of our products.