* 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
* Update frame-metadata to the latest branch
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Add outer enum types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Extend the extrinsic with address,call,sign,extra types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Codegen test Event, Error and Call for outer enums
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert "Codegen test Event, Error and Call for outer enums"
This reverts commit db542dca0369eedd257a7ec031d5b5549bc46a88.
* Update frame-metadata from the latest release
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update scale-info
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen/error: Support v15 message
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Convert v14 to v15
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata/retain: Adjust to extrinsic type for V15
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata/validation: Adjust hashing for extrinsic types V15
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* scripts: Fetch V15 and output codegen for full_client only
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt/blocks: Use extrinsic types directly
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Fetch V15 for build script
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* artifacts: Generate from latest polkadot version
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Fetch legacy with old API for v14 only
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* rpc: Fetch metadata versions
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* client: Fetch latest unstable then V15 then V14
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Adjust testing API to latest interface
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Adjust clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Generate the `RuntimeError` type for V14
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Remove testing files
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing/staking: Remove controller account from bond
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata/validation: Use specific variants for hashing RuntimeCall
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* XXX: Custom Substrate binary: must revert with next release
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* XXX: To revert: CI use hardcoded substrate
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Use v15 outer enum types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Retain outer enum types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Use outer enum types instead of generating them
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update artifacts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert "XXX: Custom Substrate binary: must revert with next release"
This reverts commit e9705298661919f5769720b35030759fb8a7b01d.
Revert "XXX: To revert: CI use hardcoded substrate"
This reverts commit b18a5a0985a56ee4ad99bc9a1c0f9cd733cf4271.
* testing: Include env for dummy wat contracts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Adjsut clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* ci: Use new link for fetching latest substrate binary
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* tests: Include dummy RuntimeEvent into test metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* ci: Bump light-client timeout tests to 25min
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata/validation: Use specific pallets as provided
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Rename metadata constant
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Use call_ty instead of signature_ty
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Rename retaining variant function
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Use Option<&[&str]>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* online_client: Fetch V15 metadata explicitely
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata/validation: Include the hash of the outer enum types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Fix sign typo
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* artifacts: Update the artifacts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Remove RootError RootEvent and RootExtrinsic traits
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update polkadot.rs
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata/tests: Ensure outer enum variants are retained
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* scripts: Include multiple pallets for our decoding purposes
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Apply clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* artifacts: Update small metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* error: Keep raw bytes for the ModuleError representation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* error: Modify docs to not include links
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt/tests: Propagate `RuntimeCall` to outer enums
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Provide proper byte slice for decoding
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update artifacts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli/tests: Adjust expected pallets message
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Test conversion from v14 to v15
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Fix typo
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update subxt/src/blocks/extrinsic_types.rs
Co-authored-by: James Wilson <james@jsdw.me>
* metadata: Simplify type path for RuntimeError
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata/validation: Use visited ids per outer enum
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* error: Remove RawModuleError
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Fix new clippy error from updated rust version
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>
* WIP new Metadata type
* Finish basic Metadata impl inc hashing and validation
* remove caching from metadata; can add that higher up
* remove caches
* update retain to use Metadata
* clippy fixes
* update codegen to use Metadata
* clippy
* WIP fixing subxt lib
* WIP fixing tests, rebuild artifacts, fix OrderedMap::retain
* get --all-targets compiling
* move DispatchError type lookup back to being optional
* cargo clippy
* fix docs
* re-use VariantIndex to get variants
* add docs and enforce docs on metadata crate
* fix docs
* add test and fix docs
* cargo fmt
* address review comments
* update lockfiles
* ExactSizeIter so we can ask for len() of things (and hopefully soon is_empty()
* WIP Starting to write book; extrinsics first pass done
* cargo fmt
* Ongoing work; events, constants, wip blocks
* at_latest() and wip blocks
* remove need to import parity-scale-codec crate with Subxt for macro to work
* More docs; expanding on setup guide and finish pass of main sections
* Tidy and remove example section for now
* format book lines to 100chars
* Fix example code
* cargo fmt
* cargo fmt
* fix example
* Fix typos
* fix broken doc links, pub mods
* Update Subxt macro docs
* can't link to Subxt here
* move macro docs to Subxt to make linking better and fix example code
* note on macro about docs
* cargo fmt
* document the no_default_derives macro feature
* Address feedback and remove redundant text
* address review comments; minor tweaks
* WIP add Runtime calls to book
* Improve Runtime API docs
* expose thing we forgot to expose and doc link fixes
* Add Static type which defers to Encode/Decode and impls EncodeAsType/DecodeAsType
* rename to static_type and impl Deref/Mut
* Improve type substitution in codegen so that concrete types can be swapped in
* A couple of comment tweaks and no need for a macro export
* Extend type substitution logic to work recursively on destination type
* cargo fmt
* Fix a couple of comments
* update ui test outpuot
* Add docs and missing_docs lint
* Add test for replacing multiple of Ident
* Update codegen/src/error.rs
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* update copyright year and fix ui test
* simplify another error
---------
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* better dispatch errors
* dry_run to use same DispatchError
* fix dry_run_fails; use correct transfer amount
* Hide ModuleError impl and avoid pulling details from metadata unless user needs them
* fix tests
* actually fix the tests (hopefully..)
* Add a couple more DispatchError test cases
* Add a comment about where the error was copied from
* Also expose a way to obtain the raw module error data
* Remove redundant variant prefixes
* explicit lifetime on From<str> for clarity
* fmt
* begin porting over traits; remove Config use of Hash
* port over the Header bits that we need
* sp_core_hashing where possible, move Verify to PairSigner, remove unused errors
* tidy up Config things and move related bits into one place
* fix codegen
* copy Era over
* move AccountId, Address, Signer to Signer trait and a pass over fixing examples
* impl MultiAddress, MultiSignature, AccountId32 and add back to Config (for decoding later)
* Copy over StorageKey, StorageData, StorageChangeSet
* subxt core compiling with no sp_core or sp_runtime
* Get examples compiling
* pass over fixing tests
* cargo fmt
* clippy tweaks and update polkadot.rs
* fix codegen docs
* port over special DigestItem encoding/decoding
* clippy and doc fixes
* cargo fmt and example fix
* more cargo fmt-ing...
* substrate-extra to substrate-compat
* cargo.toml comments
* simplify PairSigner trait bounds
* move RPC types to a separate file
* fix docs
* Add some tests for things and other PR feedback
* bump to latest sp deps
* avoid needing substrate-compat feature in a test
* First pass adding functions to get blocks and extrinsics
* cargo fmt and cache block events
* prefix block hash with 0x
* pin streams for better ergonomics and add an example of subscribing to blocks
* remove unused var
* standardise on _all, _best and _finalized for different block header subs
* WIP center subscribing around blocks
* Remove the event filtering/subscribing stuff
* clippy
* we need tokio, silly clippy
* add extrinsic_index() call
* Update subxt/src/blocks/block_types.rs
Co-authored-by: Andrew Jones <ascjones@gmail.com>
Co-authored-by: Andrew Jones <ascjones@gmail.com>
* rpc: Fill in any missing finalized blocks
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* tests: Move fill blocks test to RPC location
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* events: Remove the fill in strategy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* blocks: Introduce blocks client
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* client: Enable the block API
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* blocks: Simplify `subscribe_finalized_headers` method
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* tests: Add tests for `subscribe_finalized_headers`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* blocks: Implement `subscribe_headers`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* tests: Add tests for `subscribe_headers`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* tests: Move `missing_block_headers_will_be_filled_in` to blocks
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* events: Use the new subscribe to blocks
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* blocks: Change API to return future similar to events
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* events: Use blocks API for subscribing to blocks
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update subxt/src/blocks/blocks_client.rs
Co-authored-by: James Wilson <james@jsdw.me>
* blocks: Simplify docs for `subscribe_finalized_headers`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* blocks: Use `PhantomDataSendSync` to avoid other bounds on `T: Config`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* blocks: Add docs for best blocks
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* blocks: Avoid one clone for the `client.rpc()`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update testing/integration-tests/src/blocks/mod.rs
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* blocks: Improve `subscribe_headers` doc
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>
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>