Tadeo Hepperle and James Wilson
fd0fe57002
ChargeAssetTxPayment: support providing u32 or MultiLocation in default impl ( #1227 )
...
* Asset Id in Config trait
* add example configuring the config
* fmt
* fix Default trait bound
* merge examples, fix default again
* adjust config in examples
* Update subxt/src/config/mod.rs
Co-authored-by: James Wilson <james@jsdw.me >
---------
Co-authored-by: James Wilson <james@jsdw.me >
2023-11-03 14:22:48 +01:00
Tadeo Hepperle and James Wilson
1b88ebf78e
Support decoding signed extensions ( #1209 )
...
* skeleton commit
* signed extension decoding
* fix some minor things
* make api more similar to Extrinsics
* defer decoding of signed extensions
* fix byte slices
* add test for nonce signed extension
* adjust test and extend for tip
* clippy
* support both ChargeTransactionPayment and ChargeAssetTxPayment
* address PR comments
* Extend lifetimes, expose pub structs, remove as_type
* add signed extensions to block subscribing example
* make example less ugly
---------
Co-authored-by: James Wilson <james@jsdw.me >
2023-10-31 10:40:23 +01:00
James Wilson
e91d0c7b37
allow getting account nonce at arbitrary blocks, too ( #1182 )
2023-10-03 00:10:34 +02:00
James Wilson
cf7e2db1b7
chainHead based backend implementation ( #1161 )
...
* add follow_stream impl
* follow_stream_unpin first draft
* add tests for follow_stream_unpin
* more tests and fixes for follow_stream_unpin
* first pass follow_stream_driver
* follow_stream_driver: add tests, fix things, buffer events from last finalized
* First pass finishing Backend impl
* Fix test compile issues
* clippy fixes
* clippy fix and consistify light_client
* revert lightclient tweak
* revert other lightclient thing
* cargo fmt
* start testing unstable backend behind feature flag
* more test fixes and move test-runtime metadata path just incase
* fix compile error
* ensure transaction progress stream actually used and fix another test
* cargo fmt
* CI tweak
* improve some comments and address some feedback bits
* update CI to use our own nightly binary
* wait for finalized block perhaps
2023-09-26 16:58:30 +01:00
James Wilson
d7124b56f7
Introduce Backend trait to allow different RPC (or other) backends to be implemented ( #1126 )
...
* WIP backend trait
* WIP converting higher level stuff to using Backend impl
* more implementing new backend trait, mainly storage focused
* Get core code compiling with new backend bits
* subxt crate checks passing
* fix tests
* cargo fmt
* clippy/fixes
* merging and other fixes
* fix test
* fix lightclient code
* Fix some broken doc links
* another book link fix
* fix broken test when moving default_rpc_client
* fix dry_run test
* fix more tests; lightclient and wasm
* fix wasm tests
* fix some doc examples
* use next() instead of next_item()
* missing next_item() -> next()s
* move legacy RPc methods to LegacyRpcMethods type to host generic param instead of RpcClient
* standardise on all RpcClient types prefixed with Rpc, and 'raw' trait types prefixed with RawRpc so it's less ocnfusing which is which
* rename fixes
* doc fixes
* Add back system_dryRun RPC method and rename tx.dry_run() to tx.validate(), to signal that the calls are different
* Add a test that we return the correct extrinsic hash from submit()
* add TransactionValid details back, and protect against out of range bytes
* add test for decoding transaction validation from empty bytes
* fix clippy warning
2023-08-22 12:32:22 +01:00
43809ee592
Storage: Support iterating over NMaps with partial keys ( #1079 )
...
* implement partial key iters
* format
* make tests compile
* fix docs and try example
* codegen: Fetch and decode metadata version then fallback (#1092 )
* codegen: Fetch and decode metadata version then fallback
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io >
* cli: Add `unstable-metadata` attribute to the subxt macro
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io >
* docs: Add missing comma
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io >
* macro: Add `GenerateRuntimeApi`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io >
* Update subxt/src/lib.rs
Co-authored-by: James Wilson <james@jsdw.me >
* Update macro/src/lib.rs
Co-authored-by: James Wilson <james@jsdw.me >
* subxt: Adjust docs
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io >
* cli: Import `GenerateRuntimeApi`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io >
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io >
Co-authored-by: James Wilson <james@jsdw.me >
* Bump darling from 0.20.1 to 0.20.3 (#1085 )
Bumps [darling](https://github.com/TedDriggs/darling ) from 0.20.1 to 0.20.3.
- [Release notes](https://github.com/TedDriggs/darling/releases )
- [Changelog](https://github.com/TedDriggs/darling/blob/master/CHANGELOG.md )
- [Commits](https://github.com/TedDriggs/darling/compare/v0.20.1...v0.20.3 )
---
updated-dependencies:
- dependency-name: darling
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Wilson <james@jsdw.me >
* Bump either from 1.8.1 to 1.9.0 (#1084 )
Bumps [either](https://github.com/bluss/either ) from 1.8.1 to 1.9.0.
- [Commits](https://github.com/bluss/either/compare/1.8.1...1.9.0 )
---
updated-dependencies:
- dependency-name: either
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Wilson <james@jsdw.me >
* Bump clap from 4.3.11 to 4.3.19 (#1083 )
Bumps [clap](https://github.com/clap-rs/clap ) from 4.3.11 to 4.3.19.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v4.3.11...v4.3.19 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Wilson <james@jsdw.me >
Co-authored-by: Tadeo Hepperle <62739623+tadeohepperle@users.noreply.github.com >
* Bump trybuild from 1.0.81 to 1.0.82 (#1082 )
Bumps [trybuild](https://github.com/dtolnay/trybuild ) from 1.0.81 to 1.0.82.
- [Release notes](https://github.com/dtolnay/trybuild/releases )
- [Commits](https://github.com/dtolnay/trybuild/compare/1.0.81...1.0.82 )
---
updated-dependencies:
- dependency-name: trybuild
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Wilson <james@jsdw.me >
* Prep for 0.30.1 release (#1094 )
* Set minimum supported `rust-version` to `1.70` (#1097 )
* Bump serde_json from 1.0.103 to 1.0.104 (#1100 )
Bumps [serde_json](https://github.com/serde-rs/json ) from 1.0.103 to 1.0.104.
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.103...v1.0.104 )
---
updated-dependencies:
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump serde from 1.0.175 to 1.0.179 (#1101 )
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.175 to 1.0.179.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.175...v1.0.179 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Tests: support 'substrate-node' too and allow multiple binary paths (#1102 )
* Support 'substrate-node' too and allow multiple binary paths
* fmt
* clippy
* fix path
* adjust book
* remove the partial iteration example. there was nothing good to show
* revert spaces in changelog
* Support more types in Storage entry constructors (#1105 )
* implement test for type alias being used
* Bump serde from 1.0.179 to 1.0.183 (#1112 )
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.179 to 1.0.183.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.179...v1.0.183 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump regex from 1.9.1 to 1.9.3 (#1110 )
Bumps [regex](https://github.com/rust-lang/regex ) from 1.9.1 to 1.9.3.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.9.1...1.9.3 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* revert yaml changes
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Update subxt/src/book/usage/storage.rs
Co-authored-by: James Wilson <james@jsdw.me >
* remove dynamic_iter
* fix example
* format
* add example, adjust book
* Update subxt/src/book/usage/storage.rs
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com >
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com >
Co-authored-by: James Wilson <james@jsdw.me >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Andrew Jones <ascjones@gmail.com >
2023-08-11 16:06:41 +02:00
James Wilson and Niklas Adolfsson
9b86b55b56
Make ExtrinsicParams more flexible, and introduce signed extensions ( #1107 )
...
* WIP new SignedExtensions
* Integrate new signex extension stuff, update docs, remove Static wrapper
* remove impl Into in tx_client to avoid type inference annoyances
* clippy and fix example
* Fix book links
* clippy
* book tweaks
* fmt: remove spaces
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com >
* re-expose Era in utils, and tweak wasm-example
* clippy; remove useless conversion
---------
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com >
2023-08-08 09:37:06 +01:00
James Wilson
770483d9cd
Add LightClient::builder() ( #1088 )
...
* Add LightClient::build()
* newline
* fmt
* Tweaks to make LightClient more like OnlineClient in interface
2023-07-24 15:59:45 +01:00
Tadeo Hepperle and James Wilson
8b23b2b83c
Example: How to connect to parachain ( #1043 )
...
* parachain rpc lists
* guide almost done
* add the 3rd config
* subscribe to block with configs
* delete table file
* spaces instead of tabs
* remove original ajuna example
* zombienet setup
* nft minting example
* include port, use different names
* link the example from the book
* format book
* add config creation to book, simplify example structure
* fix the nft creation script
* fix doc ref
* fixing links to foreign crates
* fix table formatting
* include nits
* move more docs to book, and simplify parachain-example
* another pass over docs and link to exampels from guide
* nit: adjust comment to numbers
* teeny README fix for parachain-example
* fix command in readme
* add CI for examples and fix parachain-example bug I left in
* add target arch
* cargo fmt
* make CI not fail
* remove index from docs
---------
Co-authored-by: James Wilson <james@jsdw.me >
2023-07-21 13:55:48 +02:00
Tadeo Hepperle and James Wilson
c2875de172
Remove Index type from Config trait ( #1074 )
...
* remove config, doc tests are expected to fail (book not adjusted yet)
* make doc tests pass
* Prevent bug when reusing type ids in hashing (#1075 )
* practice TDD
* implement a hashmap 2-phases approach
* use nicer types
* add test for cache filling
* adjust test
---------
Co-authored-by: James Wilson <james@jsdw.me >
* remove the unnecessary intos
---------
Co-authored-by: James Wilson <james@jsdw.me >
2023-07-20 15:13:55 +02:00
Alexandru Vasile and Niklas Adolfsson
ef89752904
light-client: Add experimental light-client support ( #965 )
...
* 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 >
2023-06-26 12:10:57 +03:00
James Wilson
b4eb406ee5
Add subxt_signer crate for native & WASM compatible signing ( #1016 )
...
* Add and use subxt-signer crate for WASM compatible signing
* cargo fmt
* dev keypairs already references
* WIP fix various breakages
* re-jig features to be simpler and various test fixes etc
* doc and web fix
* fix various bits and pieces
* fix a test I broke
* dev-deps can't be linked to in docs, hrmph
* cargo fmt
* another doc link
* document the subxt_signer crate more thoroughly
* move feature flag for consistency
* more docs, no default subxt feature flag on signer, update release instrs
* Add missing license header
* unwrap_inner => into_inner
* extend a test a little to better check derive junctions
* note more clearly that the crypto bits come from sp_core::crypto
2023-06-20 11:32:12 +01:00
James Wilson
e40a8629e2
move examples to main repo so we can include_str them for publishing ( #993 )
...
* move exampels to main repo so we can include_str them for publishing
* update CI to not break examples
2023-06-01 14:27:12 +01:00