* 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>
* Fix integration test
* Fix extrinsic encoding
* Units
* comment out dry_run and transfer_error
* fmt
* imports
* imports
---------
Co-authored-by: James Wilson <james@jsdw.me>
* create_partial et al to expose the signer payload and call data just prior to being signed
* remove unnecessary Result
* fmt, make it easier to pass in signature bytes, and add a test for this flow
* remove unnecessary deref
* chore: use workspace inheritance for package info
* add rust-version field into workspace package
* .workspace = true
---------
Co-authored-by: James Wilson <james@jsdw.me>
* feat!: Allow for remapping type parameters in type substitutions
* chore: cargo fmt
* chore: cargo clippy
* chore: Remove some old code
* a little tidy
* address comment nit
Co-authored-by: James Wilson <james@jsdw.me>
* 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
* refactor: Simplify collecting type substitutes
* Simplify ItemMod::from
* Preserve inner Rust items when expanding the subxt::subxt macro
* No named lifetimes
* Update codegen/src/api/mod.rs
Co-authored-by: Andrew Jones <ascjones@gmail.com>
* Move passing UI tests under `ui_tests`
Co-authored-by: Andrew Jones <ascjones@gmail.com>
* Patch all substrate deps to use my substrate branch
* default-features = false causing issus in test-runtime
* Use substrate polkadot release branch
* Use default-features for sp-runtime again :(
* Restore default-features for subxt-cli/sp-core
* Fix module error integration test
* Add Send + Sync bounds to ExtrinsicEvents::iter()
* Elide lifetime
* Revert adding Send + Sync
* Add Sync bound to Rpc::ClientError
* Remove version in subxt-metadata
* Use released crates
* Use released sp-keyring
* Fix sp-keyring deps
* Remove unnecessary sp-keyring default-features = false
* 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>
* Add dynbamic nested query example and make dynamic::tx a little easier to work with
* calL_value -> inner_tx
* rename example to dynamic_multisig to align with #713 naming
* align dynamic and static multisig examples
* Fix comment typo
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
Co-authored-by: Andrew Jones <ascjones@gmail.com>
Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
* 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>
* Allow metadata to be pulled directly from a node with runtime_metadata_url
* Update docs
* https too, and abstract out block_on fn
* tweak a comment in the example
* 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>