* 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>
* 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
* re-batchify fetching storage values
* cargo fmt
* make page size static again; probably makes more sense to make it configurable if that is needed enough
* clippy
* add web feature to subxt codegen
* add getrandom
* remove compile error
* metadata: Generate runtime outer enums if not present in V14 (#1174)
* metadata: Extend outer enum generation for V14
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Generate outer enums if not present
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Porpagate v14 error instead of panic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Try to find `RuntimeCall` then `Call` enums
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Ensure the returned type is variant for outer enums
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Replace or with or_else
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Apply clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Return error and generate only `RuntimeError`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata: Remove modified path
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata/tests: Check missing runtime types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* add empty use of getrandom
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
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
* add proper tests for custom values
* remove try operators
* use sustrate compat for import of hash
* add license and hex
* add script to artifacts.sh
* custom values with ids not in metadata can be accessed in static interface
* fmt and clippy
* access bytes of custom values directly, even if type id wrong
* final fixes
* removing substrate-compat flag from ui tests
* Update subxt/src/custom_values/custom_values_client.rs
Co-authored-by: James Wilson <james@jsdw.me>
* remove types access in type generator
* 2 extra lines
---------
Co-authored-by: James Wilson <james@jsdw.me>
* Custom `Debug` impl for `DispatchError`
* Implement suggestion
* Display bytes if details cannot be resolved
* Extract fn and use from Display impl
* Display just shows {details}
* add back unstable APIs and tests
* clippy fixes
* fmt with new rust
* deserialize from object or array into api versions
* remove inspect
* add some of the other unstable RPC methods we might want
* clippy fix
* no unused deps warning in test crate
* fix doc fails
* legacy -> unstable
Co-authored-by: Tadeo Hepperle <62739623+tadeohepperle@users.noreply.github.com>
* runtime_updates -> with_runtiem
* add test and be consistent with naming of unstable RPCs
---------
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
Co-authored-by: Tadeo Hepperle <62739623+tadeohepperle@users.noreply.github.com>
* 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
* work in progress
* add custom types access
* nit
* custom values client
* adjust light client
* codegen and validation
* adjust docs
* use ignore in docs in book
* change iter implementation
* use validation hash and other codegen changes
* add ui test for custom values codegen
* allow 'latest' metadata to be returned from the fallback code (#1127)
* nits
* fix validation check
* fix comments
* nits
---------
Co-authored-by: James Wilson <james@jsdw.me>
* 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
* Bump to latest scale-encode,decode,value and fix test running
* remove patch deps
* update CI to spit out 'substrate-node' binary now
* fmt
* Fix test: compact type ID no longer present so can't re-encode Value in same way
* remove patch
* Fix cargo.lock
* Fix other compact test
* remove defautl feature, add target cfg, change CI job waml
* adjust CI job
* Adjust docs
* adjust the CI job
* add wasm targe to ci again
* remove the unresolved links from the book
* Update subxt/src/book/usage/transactions.rs
---------
Co-authored-by: James Wilson <james@jsdw.me>
* 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>
* codegen: Add uncheckedExtrinsic substitute
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Add uncheckedExtrinsic replacement
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Test uncheckedExtrinsic encoding
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* testing: Apply clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Implement encode_to instead of encode for uncheckedExtrinsic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Remove encode_as_fields from uncheckedExtrinsic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* utils: Extend the UncheckedExtrinsic interface
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* utils: Use Static<Encoded> for uncheckedExtrinsic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* utils: Remove extra impl on the uncheckedExtrinsic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* utils: Add back the EncodeAsType
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* utils: Simplify the decode_as_type
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* utils: Use encode_as_type
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* utils: impl Decode for UncheckedExtrinsic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update subxt/src/utils/unchecked_extrinsic.rs
Co-authored-by: James Wilson <james@jsdw.me>
* utils: Apply cargo fmt
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* utils: Check encoding / decoding of uncheckedExtrinsic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* utils/tests: Use an already encoded tx bytes to start with
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>
* 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>
* Add ecdsa support to signer
* Remove nix. Cleanup.
* remove ecdsa example and small tidy
* fmt
* fix wasm test
* feature flag ecdsa/sr25519 support, use global signing context
* clippy fix
* ensure signers all impl Signer trait in doc test
* fix CI
* fix digner test
* remove dead code warnings when no features enabled
* move dead code attr to right place
* fix random clippy error that popped up
---------
Co-authored-by: Lech Głowiak <lech.glowiak@gmail.com>
* 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
* modify code gen
* cargo fmt
* fix return
* move the runtime_apis static
* small layout change
* tidy up metadata UI testing and test validation function too
* fix validation tests to point to metadata
* update codegen
* fix clippy and tests
* tweak a comment
* rename validate_codegen => is_codegen_valid_for
---------
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()
* Have a pass over metadata validation
* trait metadata; fold instead of map+for
* remove a couple of other XORs, so all uses of it are now commented
* appease clippy