* First pass making matching on signed exts more general and handlng SkipCheckifFeeless
* remove unneeded derives (only exts we can decode into are handled by the user)
* No SkipCheckIfFeeless in integration tests either
* Cargo fmt
* Remove SkipCheckIfFeeless specific logic
* clippy
* matches to just return bool, not result
* remove now-invalid comment
* return error from find if .iter() errors
* config: Add `SkipCheckIfFeeless` signed extension
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* config: Add extra extension to the default params
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* examples: Adjust signed extension example
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* config: Extend SkipCheckIfFeeless with inner signed extension
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* config: Configure SkipCheck with inner signed extension params
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* config: Implement Deafult for SkipCheckIfFeelessParams with Option
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* examples: Fix example with proper extension
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* config: Extend <T as Config>::AssetId with EncodeAsType and Clone
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* config: Add SkipCheck with AssetTx
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* config: Encode as type from metadata the inner signed extensions
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Adjust examples
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* blocks: Use `SkipCheckIfFeeless` for decoding the tip of extensions
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* config: Decode `SkipCheckIfFeeless` with `Self`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* tests: Adjust testing
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* config: Descriptive errors for building `SkipCheckIfFeeless`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* config: Add docs for extra error types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Add extra derives to signed extensions
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* config: Use `Default::default` to simplify type init
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* 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
* add Decoded type
* fix merging bug and tests
* add decoded type in CustomSignedExtension
* fix minor issues, extend test
* cargo fmt differences
* remove the `decoded` function
* new as_signed_extra fn, do not expose as_type anymore
* fix Result-Option order, simplify obtaining Nonce
* tx: Remove `wait_for_in_block` helper method (#1237)
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update smoldot to 0.12 (#1212)
* Update lightclient
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Fix typo
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Update cargo.toml
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Add tracing logs to improve debugging
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Add socket buffers module for `PlatformRef`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Update `SubxtPlatform`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cargo: Add lightclient dependencies
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update cargo.lock of wasm tests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Add constant for with-buffer module
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Replace rand crate with getrandom
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* example: Update cargo lock file
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* examples: Update deps
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Tadeo Hepperle <62739623+tadeohepperle@users.noreply.github.com>
* 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>
* generic AssetId
* fix generics
* fmt
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: James Wilson <james@jsdw.me>
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
* 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>
* 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
* 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