ivanceras / substrate-api-client

Library for connecting to substrate API over WebSockets

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

substrate-api-client

substrate-api-client a library written in Rust for connecting to the substrate's RPC interface via WebSockets allowing to

  • Compose extrinsics, send them and subscribe to updates (synchronously).
  • supports composing extrinsics for no_std builds
  • Watch events and execute code upon events.
  • Parse and print the node metadata.

Prerequisites

In order to build the substrate-api-client and the examples, Rust and the wasm target are needed. For Linux:

curl https://sh.rustup.rs -sSf | sh

rustup default nightly
rustup target add wasm32-unknown-unknown --toolchain nightly

For more information, please refer to the substrate repository.

Substrate node

To execute the examples, a running substrate node is needed. You can download our node artifact from our GitHub Actions CI, which can be found in the 'Actions' tab.

The unpacked node can be run with:

./node-template --dev

Tutorial

There is a detailed tutorial in the tutorials folder.

Examples

To run an example, clone the substrate-api-client repository and run the desired example directly with the cargo command:

    git clone https://github.com/scs/substrate-api-client.git
    cd substrate-api-client
    cargo run --example get_storage

Set the output verbosity by prepending RUST_LOG=info or RUST_LOG=debug.

The following examples can be found in the examples folder:

Alternatives

Parity offers a Rust client with similar functionality: https://github.com/paritytech/substrate-subxt

Acknowledgements

The development of substrate-api-client is financed by web3 foundation's grant programme.

We also thank the teams at

About

Library for connecting to substrate API over WebSockets

License:Apache License 2.0


Languages

Language:Rust 99.8%Language:Shell 0.2%