* speed up ui tests by reducing number of pallets
* add small and tiny versions of polkadot metadata
* change drop implementation fix test
* rust yml add nextest and merge tests
* 2
* 3
* 4
* 5
* 6
* add script for generating files
* Upgrade to `syn 2.0` (#875)
* WIP updating to syn 2.0.0
* WIP darling compat
* Update darling and syn workspace deps
* NestedMeta::parse_meta_list
* Rename attribute keyword type property to path
* Fmt
* Update more type to path
* Unused darling
* Cargo.lock
* Add missing syn features
* Metadata V15: Generate Runtime APIs (#918)
* 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 small and tiny versions of polkadot metadata
* add script for generating files
* new metadata
* Runtime APIs; don't ask for validation hash anywhere except new_static (#947)
* remove validation hash where not wanted
* .into()
* fix example
* cargo fmt
* Subxt Guide (#890)
* 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
* use new metadata files in book
* use mtadata full in docs
* regenerate polkadot.rs
* use small metadata in a couple of places
* Update scripts/artifacts.sh
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Andrew Jones <ascjones@gmail.com>
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
Co-authored-by: James Wilson <james@jsdw.me>
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* 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>
* WIP EncodeAsType and DecodeAsType
* remove silly cli experiment code
* Get things finally compiling with EncodeAsType and DecodeAsType
* update codegen test and WrapperKeepOpaque proper impl (in case it shows up in codegen)
* fix tests
* accomodate scale-value changes
* starting to migrate to EncodeAsType/DecodeAsType
* static event decoding and tx encoding to use DecodeAsFields/EncodeAsFields
* some tidy up and add decode(skip) attrs where needed
* fix root event decoding
* #[codec(skip)] will do, and combine map_key stuff into storage_address since it's all specific to that
* fmt and clippy
* update Cargo.lock
* remove patched scale-encode
* bump scale-encode to 0.1 and remove unused dep in testing crate
* update deps and use released scale-decode
* update scale-value to latest to remove git branch
* Apply suggestions from code review
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
* remove sorting in derives/attr generation; spit them out in order given
* re-add derive sorting; it's a hashmap
* StaticTxPayload and DynamicTxPayload rolled into single Payload struct
* StaticStorageAddress and DynamicStorageAddress into single Address struct
* Fix storage address byte retrieval
* StaticConstantAddress and DynamicConstantAddress => Address
* Simplify storage codegen to fix test
* Add comments
* Alias to RuntimeEvent rather than making another, and prep for substituting call type
* remove unnecessary clone
* Fix docs and failing UI test
* root_bytes -> to_root_bytes
* document error case in StorageClient::address_bytes()
---------
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
* 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
Removed in Rust 1.66:
```
warning: lint `const_err` has been removed: converted into hard error, see issue #71800 <https://github.com/rust-lang/rust/issues/71800> for more information
--> subxt/src/lib.rs:114:5
|
114 | const_err,
| ^^^^^^^^^
|
= note: `#[warn(renamed_and_removed_lints)]` on by default
```
* 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>
* 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>
* WIP API changes
* debug impls
* Get main crate compiling with first round of changes
* Some tidy up
* Add WithExtrinsicParams, and have SubstrateConfig + PolkadotConfig, not DefaultConfig
* move transaction into extrinsic folder
* Add runtime updates back to OnlineClient
* rework to be 'client first' to fit better with storage + events
* add support for events to Client
* tidy dupe trait bound
* Wire storage into client, but need to remove static reliance
* various tidy up and start stripping codegen to remove bits we dont need now
* First pass updating calls and constants codegen
* WIP storage client updates
* First pass migrated runtime storage over to new format
* pass over codegen to generate StorageAddresses and throw other stuff out
* don't need a Call trait any more
* shuffle things around a bit
* Various proc_macro fixes to get 'cargo check' working
* organise what's exposed from subxt
* Get first example working; balance_transfer_with_params
* get balance_transfer example compiling
* get concurrent_storage_requests.rs example compiling
* get fetch_all_accounts example compiling
* get a bunch more of the examples compiling
* almost get final example working; type mismatch to look into
* wee tweaks
* move StorageAddress to separate file
* pass Defaultable/Iterable info to StorageAddress in codegen
* fix storage validation ne, and partial run through example code
* Remove static iteration and strip a generic param from everything
* fix doc tests in subxt crate
* update test utils and start fixing frame tests
* fix frame staking tests
* fix the rest of the test compile issues, Borrow on storage values
* cargo fmt
* remove extra logging during tests
* Appease clippy and no more need for into_iter on events
* cargo fmt
* fix dryRun tests by waiting for blocks
* wait for blocks instead of sleeping or other test hacks
* cargo fmt
* Fix doc links
* Traitify StorageAddress
* remove out-of-date doc comments
* optimise decoding storage a little
* cleanup tx stuff, trait for TxPayload, remove Err type param and decode at runtime
* clippy fixes
* fix doc links
* fix doc example
* constant address trait for consistency
* fix a typo and remove EncodeWithMetadata stuff
* Put EventDetails behind a proper interface and allow decoding into top level event, too
* fix docs
* tweak StorageAddress docs
* re-export StorageAddress at root for consistency
* fix clippy things
* Add support for dynamic values
* fix double encoding of storage map key after refactor
* clippy fix
* Fixes and add a dynamic usage example (needs new scale_value release)
* bump scale_value version
* cargo fmt
* Tweak event bits
* cargo fmt
* Add a test and bump scale-value to 0.4.0 to support this
* remove unnecessary vec from dynamic example
* Various typo/grammar fixes
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
* Address PR nits
* Undo accidental rename in changelog
* Small PR nits/tidyups
* fix tests; codegen change against latest substrate
* tweak storage address util names
* move error decoding to DecodeError and expose
* impl some basic traits on the extrinsic param builder
Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
* subxt: Add subscription to runtime upgrades
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Synchronize and expose inner `RuntimeVersion` of the `Client`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* examples: Add runtime update example
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Expose `RuntimeVersion` as locked
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Expose `Metadata` as locked
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt/storage: Use locked metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Use parking lot RwLock variant for locked metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Utilize locked metadata variant
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt/transaction: Use locked metadata variant
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update subxt to use locked version of the Metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Add runtime update client wrapper
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* examples: Modify runtime update example
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Fix clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Fix cargo check
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Keep consistency with cargo check fix
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Remove unnecessary Arc
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Remove MetadataInner and use parking_lot::RwLock
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update polkadot.rs
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update polkadot.rs generation comment
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Switch to async::Mutex
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Block executor while decoding dynamic events
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Use async API to handle async locking
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Remove unused dependencies
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update examples and integration-tests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Fix test deadlock
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert back to sync lock
Revert "Fix test deadlock"
This reverts commit 4a79933df23e81573611cb14be6c5b5b2b56d4df.
Revert "Update examples and integration-tests"
This reverts commit 5423f6eb4131582909d5a4ca70adff75e27cdd0e.
Revert "Remove unused dependencies"
This reverts commit e8ecbabb5b01a7ba4ae83b8bde36295a3f64daf7.
Revert "codegen: Use async API to handle async locking"
This reverts commit ced4646541c431adcb973369b1061b7b3cbfaae1.
Revert "subxt: Block executor while decoding dynamic events"
This reverts commit 8b3ba4a5eabb29f77ac1ca671450956fc479a33d.
Revert "subxt: Switch to async::Mutex"
This reverts commit f5bde9b79394a6bf61b6b9daefc36ceaa84b82be.
* subxt: Perform RuntimeVersion update before fetching metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Reintroduce MetadataInner
* Use parking lot instead of std::RwLock
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Reduce lock metadata time when decoding events
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Update `validate_metdata` locking pattern
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt/examples: Update polkadot download link
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* tests: Wrap metadata in a helper function
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update examples/examples/subscribe_runtime_updates.rs
Co-authored-by: James Wilson <james@jsdw.me>
* subxt/updates: Update runtime if version is different
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: James Wilson <james@jsdw.me>
* codegen: Handle new errors of type [u8; 4] with backwards compatibility
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Add comments about the compatibility of `DispatchError::Module`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Handle legacy cases appropriately
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Introduce `ModuleErrorType` for compatibility versioning
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Implement `module_error_type` helper
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Implement `quote::ToTokens` for `ModuleErrorType`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Rename new error to ArrayError
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Add strict checks for ModuleError
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Fix cargo fmt
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen, subxt: Expose the error's raw bytes to user
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Update polkadot with ModuleErrorRaw
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Rename `ModuleErrorRaw` to `ModuleErrorData`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* subxt: Expose method to obtain error index
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* codegen: Rename `ModuleErrorRaw` to `ModuleErrorData`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* WIP extrinsic api updates
* First pass done; now to get things compiling again
* document and tweak new structs/traits
* cargo check --all-targets now compiles without issue
* Polkadot and Substrate take different extra params; support both
* Fix transaction format (missing byte from AccountId -> Address) and fmt
* Tweak Signer trait
* Tweak comments and such in extrinsic params
* check all examples against newer polkadot, add new one with params, import path tweaks
* clippy fix, and save an allocation when signing
* Remove unnecessary Default clauses
* Tidy up and fix comments. Panic if payload size >4GB
* fix typo
* remove code related to getting nonce from storage and use RPC call instead
* cargo fmt
* move nonce fetching into Rpc, since it's just an RPC call
* clippy
* Substitute BTreeMap/BTreeSet for Vec
* regen code
* cargo fmt
* undo test tweak since not substituting bounded things at the mo
* add a couple of comments
* Add error information back into metadata to roll back removal in #394
* Go back to obtaining runtime error info
* re-do codegen too to check that it's all gravy
* Convert DispatchError module errors into a module variant to make them easier to work with
* Fix broken doc link
* Add reworked event types
* first pass implementing event subscriptions
* make clear that some methods are private
* comment tidy
* use Events in transaction stuff
* align transaction and event APIs
* remove __private_ prefixes; they are ugly
* fix examples and remove old events and subscription code
* better comments on hidden event functions
* re-add find_first_event; it's used a bunch in tests and examples
* cargo check --all-targets now passes
* Fix up existing event tests
* cargo fmt
* change todo to note
* clippy and doc niggles
* revert to find_first_event
* Add specific subscription related tests
* cargo fmt
* Update tests and add/fix examples
* cargo fmt
* add a little to subscribe_all_events example
* cargo fmt
* move an example comment
* easy access to root mod for more clarity
* add a couple of tests to ensure that events properly decoded until naff bytes
* Simplify EventSubscription Stream impl a little
* Address some PR feedback
* move into subfolder step 1
* Make folders a workspace again
* Move examples into their own workspace crate to make them more visible and easier to run
* clippy fix
* newline
* tweak releasing steps for folder move
* reference exampels more clearly in top level readme