* Support v16 metadata and use it by default if it's available
* lockfile
* fix blocks test; new transaction extension in kitchensink runtime
* Bump scale-typegen to 0.11.1 to cater for Duration prelude type
* fmt
* Fix no-std test building
* Cargo update and bump substrate deps
* Update test and no-std deps
* fmt
* fix test
* Support Pallet View Functions in Subxt
* fmt
* clippy
* Move a little view function logic to subxt_core
* clippy
* Add back check that prob isnt needed
* avoid vec macro in core
* Add view funciton test and apply various fixes to get it working
* Add test for dynamic view fn call and fix issues
* clippy
* fix test-runtime
* fmt
* remove export
* avoid vec for nostd core
* use const instead of fn for view fn call name
* Update to support latest unstable metadata
* Update metadata stripping tests for new v16 version
* WIP extract RPCs into separate crate
* fmt
* Fix test
* Remove unused deps
* fix import
* WIP: Fix up errors and most tests. Start extracintg some tests/code to rpc crate
* MockRpcClient sync or async
* MockRpcClient only async but better type inference
* WIP MockRpcClient FnMuts and some test updates to use it
* Get all but one test working with new MockRpcClient
* WIP trying to debug failure
* WIP, Tests mostly fixed, need to add back oen more
* Get mock RPC tests working
* fmt
* fmt
* Clippy and comment tweak
* update CI to explicitly check subxt-rpc features
* clippy
* small tweaks after pass over
* feature flag rename
* update some docs
* Fix some examples
* fmt
* Fix features flags to work with web/wasm32
* Fix unused dep warning
* explicit targets in wasm CI
* Add better crate level docs
* fmt
* Address review comments
* Comment out flaky test for now and make more obvious how similar POlkadot and Substrate configs are
* Not a doc comment
* Remove unused imports
* Move Extrinsic decoding things to subxt_core and various tidy-ups
* A couple more fixes and fmt
* first pass moving tx logic to subxt_core
* cargo fmt
* fix wasm example
* clippy
* more clippy
* WIP Adding examples and such
* Move storage functionality more fully to subxt_core and nice examples for storage and txs
* Add example for events
* consistify how addresses/payloads are exposed in subxt-core and add runtime API fns
* Add runtime API core example
* fmt
* remove scale-info patch
* Add a little to the top level docs
* swap args around
* clippy
* cargo fmt and fix wasm-example
* doc fixes
* no-std-ise new subxt-core additions
* alloc, not core
* more no-std fixes
* A couple more fixes
* Add back extrinsic decode test
* 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>
* WIP second pass over light client code for simpler API
* First pass new light client
* pub(crate) LightClientRpc::new_raw(), and fmt
* Update examples and add back a way to configure boot nodes and fetch chainspec from a URL
* Fix light client examples
* remove unused deps and tidy lightclient feature flags
* fix wasm error
* LightClientRpc can be cloned
* update light client tests
* Other small fixes
* exclude mod unless jsonrpsee
* Fix wasm-lightclient-tests
* add back docsrs bit and web+native feature flag compile error
* update book and light client example names
* fix docs
* lightclient: Refactor the background protocol to receive unsub method
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* light-client: Unsubscribe if the user dropped the subscription
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Refactor background task for borrow-checker
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient/rpc: Pass the unsub method name to the background task
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Unsubscribe with subscription ID as param
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Rename subscription states
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing(fix): Ensure lightclient chainSpec is at least one block old
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert "testing(fix): Ensure lightclient chainSpec is at least one block old"
This reverts commit 0eafcb2ca59d1f1cd2cef86b770f5a0401cce59f.
* lightclient(fix): Ensure lightclient chainSpec is at least one block old
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Link smoldot issue
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Use tokio under lightclient feature flag
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Do not sleep on errors to fetch the chainSpec
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* artifacts: Remove test file
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Subscribe to two finalized blocks
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Revert cargo toml
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* generate docs for feature-gated items on crates.io
* add newline in Cargo.toml
* unify newlines
* fix clippy
* introduce macros for features
* commit missing file
* Update subxt/src/lib.rs
* make it compile
* add insecure url checks
* rename variables
* add feature flags to expose Url properly
* fix test compile error
* fix feature errors
* remove comment
* add url crate and use it for url parsing
* fix compile errors
* satisfy the holy clippy
* fix typos and host loopback
* macro attribute, provide validation function in utils
* fix expected output of ui tests
* remove the success case for --allow-insecure because we cannot establish ws:// connection at the moment.
* lightclient: Make `smoldot::chainID` part of the RPC requests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Make `BackgroundTask` generic over `PlatformRef` and chain
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Construct from raw smoldot and target different chains
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Update cargo lock for wasm tests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Reuse `new_from_client` method and removed unused imports
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Reexport smoldot client and RPC objects used in pub
interface
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Adjust `new_from_client` interface
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Extend background to poll over multiple RPC objects
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Build light client from raw and target different chains
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* artifacts: Add demo chain specs
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* artifacts: Move artifacts to dedicated folder
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Use SelectAll to drive all streams
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Fetch initial data from the target chain
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Reexport other smoldot objects
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Target chain with potentially different config
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt/rpc: Log chainID for debugging
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt/examples: Add smoldot client with parachain example
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Propagate chain ID together with rpc responses object
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Multiplex responses by request ID and chain ID
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Add raw light client builder
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Add cargo feature flag for parachains example
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Derive default for internal structure
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Guard reexports by std feature flag
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update subxt/src/client/light_client/mod.rs
Co-authored-by: James Wilson <james@jsdw.me>
* lightclient: Update the builder pattern and chain targetting
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Fix documentation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Provide more insightful docs wrt native/wasm panics
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* examples: Adjust comment location
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Refactor UniqueChainId into the background task
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update lightclient/src/background.rs
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* Update subxt/src/client/light_client/builder.rs
Co-authored-by: James Wilson <james@jsdw.me>
* lightclient: Update docs wrt panics
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Update docs wrt to smoldot instance -> client
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Use IntoIter instead of Iterator
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Adjsut docs wrt [`Self::new_from_client`]
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Remove RawRpc from LightClient in favor of chainID
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* lightclient: Reexport everything under smoldot module
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* artifacts: Use stateRootHash instead of genesis.raw
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>
* Clone + Debug on Payloads/Addresses, and compare child storage results
* , to .
* clippy and fixes
* fix
* use derivative instead to remove boilerplate impls
* add missing import
* tidy up and extend wasm test timeout
* try 5 mins instead of 2
* 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
* refactor: support default port in URL
Update jsonrpsee to v0.20 to support the default port number in URLs.
* fix nit, revert web feature
* fix lightclient code
* work in progress
* add custom types access
* nit
* custom values client
* adjust light client
* adjust doc comments
* adjust book for custom values in code gen
* format and check docs
* use ignore in docs in book
* 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>
* 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>
* 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
* 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()
* Update frame-metadata to v15.1.0
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Enable V15 unstable metadata in frame-metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Move validation hashing to dedicated file
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Use sp-metadata-ir from substrate to work with metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert using sp-metadata-ir in favor of conversion to v15
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Convert v14 to v15
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Use v15 for validation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Use v15 for codegen
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata/bench: Use v15
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Adjust to v15 metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Adjust testing
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Improve documentation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* force CI
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* rpc: Fetch metadata at version
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* artifacts: Update polkadot.scale from commit 6dc9e84dde2
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Fetch V15 using the new API
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Add runtime API interface
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Hash runtime API metadata for validation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Extract runtime API metadata wrapper from subxt::Metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Adjust hashing cache to reflect root+item keys
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* rpc: Add raw state_call API method
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* runtime_api: Add payload with static and dynamic variants
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Allow payloads to call into the runtime
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* examples: Add example to make a runtime API call both static and dynamic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update polkadot.rs
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Simplify client fetching
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Address feedback and fallback to old API if needed
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* runtime_api: Make mutability conditional on input params
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Regenerate polkadot.rs
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Retain only pallets without runtime API info
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Retry via `Metadata_metadata` without conversion
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* payload: Remove `Decode` and change validation fn
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Retain runtime API types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Runtime APIs documentation based on flag
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update examples/examples/custom_metadata_url.rs
Co-authored-by: James Wilson <james@jsdw.me>
* Update artifacts from polkadot-a6cfdb16e9
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update polkadot.rs with polkadot-a6cfdb16e9
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Generate input structures for runtime API
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* runtime_api: Remove the static paylaod and use single impl
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* examples: Fetch account nonce
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Adjust build script to fetch latest metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Check account nonce from runtime API
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update cargo.lock
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Fix doc generation for runtime types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Rename `inputs` runtime calls module to `types`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Generate Calls structs inside the types module
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Check Alice account nonce before submitting the tx
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Add metadata version option flag supporting v14 and unstable
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Specify version to fetch
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Fallback to fetching latest stable metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Add unstable-metadata feature to fetch the latest
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* RuntimeVersion with Latest and Version(u32)
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update polkadot.rs
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Adjust fetch_metadata to inspect version list
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Adjust metadata to metadata_legacy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* events: Adjust docs to use metadata_legacy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* have a pass over fetch_metadata
* cargo fmt
* Option<String> when fetch metadata via latest API
* clippy
* fmt
* cli: Use the MetadataVersion from codegen
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Specify latest as default for MetadataVersion
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cli: Remove version from metadata and use the one from file_or_url
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Fix clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Decode metadata independently for different RPC calls
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>
* 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>
* Add _at and _with methods to OnlineClient to allow for more instantiation options
* tweak warnings
* move a confusing comment
* expose ability to set metadata and such in OnlineClient, but remove most _at methods
* 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
* subxt/rpc: Fetch metadata at arbitrary blocks
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt/events: Fetch metadata for events at arbitrary blocks
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert "subxt/events: Fetch metadata for events at arbitrary blocks"
This reverts commit 381409b7a8916611d7c44dc6ad58a90993b6c297.
* subxt/events: Custom constructor with metadata for events
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update subxt/src/events/events_type.rs
Co-authored-by: James Wilson <james@jsdw.me>
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: James Wilson <james@jsdw.me>
* get started
* make it work again
* make it compile again
* Use async-wasm-feature of jsonrpsee from the master branch
* Ensure we enable JS feature of getrandom for the wasm target
* Update subxt/src/lib.rs
* update jsonrpsee
* fix CI
* cargo fmt
* fix wasm test
* fix grumbles
* exclude wasm-tests from workspace
To avoid leaking `jsonrpsee-web` feature into the workspace
Co-authored-by: Igor Matuszewski <xanewok@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>