Commit Graph

348 Commits

Author SHA1 Message Date
James Wilson da507fa6d2 No need to entangle Signer and nonce now (#702)
* no need to entangle Signr and nonce now

* fmt
2022-10-28 15:15:16 +02:00
Andrew Jones 563afdaded Fix contracts integration test (#699) 2022-10-25 15:32:41 +02:00
Alexandru Vasile 6742fe0b12 error: RpcError with custom client error (#694)
* error: `RpcError` with custom client error

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* error: Add `SubscriptionDropped` and panic on param errors

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Update subxt/src/rpc/rpc_client_t.rs

Co-authored-by: James Wilson <james@jsdw.me>

* Apply rustfmt

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>
2022-10-20 14:33:50 +01:00
Alexandru Vasile 1736f618d9 codegen: Increase request timeout from 1min to 3min (#696)
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2022-10-20 14:17:28 +01:00
Michael Müller 2ed959e0e3 Add getters for Module (#697)
* Add getters for `Module`

* Return `Iterator` instead
2022-10-20 14:13:11 +01:00
James Wilson d03e599684 Add runtime_metadata_url to pull metadata directly from a node (#689)
* 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
2022-10-19 11:07:12 +01:00
dependabot[bot] d7546db843 Bump Swatinem/rust-cache from 2.0.0 to 2.0.1 (#690)
* Bump Swatinem/rust-cache from 2.0.0 to 2.0.1

Bumps [Swatinem/rust-cache](https://github.com/Swatinem/rust-cache) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/Swatinem/rust-cache/releases)
- [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Swatinem/rust-cache/compare/6720f05bc48b77f96918929a9019fb2203ff71f8...22c9328bcba27aa81a32b1bef27c7e3c78052531)

---
updated-dependencies:
- dependency-name: Swatinem/rust-cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* gha match hash and version

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sergejs Kostjucenko <sergejs@parity.io>
2022-10-17 11:06:04 +01:00
James Wilson 353cdb8748 into_encoded() for consistency (#685)
* into_encoded() for consistency

* clippy fix
2022-10-10 16:30:35 +02:00
Alexandru Vasile 95e6aa9dda Implement BlocksClient for working with blocks (#671)
* 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>
2022-10-10 10:31:54 +01:00
MOZGIII 10def3c2c4 Allow taking out raw bytes from a SubmittableExtrinsic (#683) 2022-10-10 10:28:23 +01:00
Web3 Smith 51179a8b72 make subxt::Config::Extrinsic Send (#681) 2022-10-07 12:16:59 +01:00
James Wilson 98af356644 Add DecodedValueThunk to allow getting bytes back from dynamic queries (#680) 2022-10-06 09:58:01 +01:00
Web3 Philosopher 81175b2dd9 expose jsonrpc-core client (#672)
* expose jsonrpc-core client

* use shared reference to RpcClienT

* don't expose Arc<dyn RpcClientT>

* cargo fmt
2022-10-04 09:56:51 +01:00
Andrew Jones 6cfd3bb511 Upgrade clap to v4 (#678) 2022-10-03 18:40:06 +01:00
Andrew Jones 432df581f6 Fix contracts integration test (#679)
* Fix contracts integration test

* Revert proof size to 0

* Upload code for instantiate test

* Set proof size to half of max
2022-10-03 18:11:28 +01:00
Alexandru Vasile d4fda9366e tests: Add proof_size field for the Weight (#673)
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2022-09-29 18:17:15 +03:00
James Wilson 4722028ce7 Refactor CLI tool to give room for growth (#667)
* refactor CLI commands for easier expansion

* add license headers

* cargo fmt
2022-09-27 12:29:34 +01:00
Michael Müller f115ff975c Allow specifying the subxt crate path for generated code (#664)
* Allow specifying the `subxt` crate path for generated code

* Make `clippy` happy

* Add documentation

* Improve optics

* Remove custom crate path test

* Implement comments

* Update comment

* Make `crate_path` property instead of argument

* Remove unnecessary derives

* Remove `Default` impls in favor of explicit constructors

* Remove unnecessary `into`

* Update codegen/src/types/mod.rs

Co-authored-by: Andrew Jones <ascjones@gmail.com>

Co-authored-by: Andrew Jones <ascjones@gmail.com>
2022-09-27 11:41:36 +01:00
James Wilson 75e383dfcf Prep for 0.24 release (#663)
* Bump versions and update changelog

* tweak text

* merge a couple of related changelog entries
v0.24.0
2022-09-22 17:16:04 +01:00
Alexandru Vasile f48a5df2ca Fix history_depth testing (#662)
* testing/staking: `history_depth` storage is now a constant

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* artifacts: Update metadata from `9ffe6e9e3da`

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* testing: Update `polkadot.rs` from `9ffe6e9e3da`

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* examples: Update comment wrt polkadot version

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* codegen: Fix clippy

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2022-09-22 16:02:30 +01:00
Niklas Adolfsson e233dd6bcb feat: add low-level runtime upgrade API (#657)
* feat: add low-level runtime upgrade API

* grumbles

* cargo fmt

* dont use apply_update in perform_runtime_upgrades

* fix nit

* remove metadata check

* fix doc tests

* fix final comments

* Update subxt/src/client/online_client.rs

* cargo fmt

* Update subxt/src/client/online_client.rs
2022-09-22 14:07:50 +02:00
Michael Müller 93cc55feb4 Add accessor for StaticTxPayload::call_data (#660) 2022-09-21 14:26:34 +02:00
Andrew Jones c100b0b2ba Export EventFieldMetadata (#656)
* Export EventFieldMetadata

* Fix up comments for public api
2022-09-21 12:59:14 +01:00
James Wilson 52dd640b5e Bump scale-value and scale-decode (#659)
* Bump scale-value and scale-decode (these both compile to wasm ok)

* clippy
2022-09-21 12:58:26 +01:00
Andrew Jones 3bf7ddc18c Fix codegen for codec::Compact as type parameters (#651)
* Add failing test for compact generic parameter

* WIP refactor type generation

* Fmt

* Remove deprecated rustfmt optionns

* Remove license template path

* Update parent type parameter visitor

* Introduce different methods for generating a type path for a field

* Add comment

* Fix weights refs

* Add extra compact test cases

* Fmt
2022-09-21 10:03:47 +01:00
German 033ceb246f Store type name of a field in event metadata (#654) 2022-09-20 09:59:14 +01:00
Andrew Jones 359c3dae41 Fix latest substrate compatibility check (#653)
* Fix weights refs

* Update Runtime Call name
2022-09-15 10:10:47 +01:00
dependabot[bot] e64ab19a18 Update criterion requirement from 0.3 to 0.4 (#650)
Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs) to permit the latest version.
- [Release notes](https://github.com/bheisler/criterion.rs/releases)
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bheisler/criterion.rs/compare/0.3.0...0.4.0)

---
updated-dependencies:
- dependency-name: criterion
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-12 11:16:56 +01:00
James Wilson 99cea97f81 Add Staking Miner and Introspector to usage list (#647)
* Add Staking Miner and Introspector to usage list

* Update README.md

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
2022-09-06 11:38:45 +02:00
James Wilson 06287fc119 Remove unnecessary async and fix latest substrate changes (#645) 2022-09-05 18:40:00 +02:00
James Wilson 599107b432 Allow generalising over RPC implementation (#634)
* WIP generalising RPC client

* WIP: non-object-safe RpcClientT.. aah generics everywhere

* WIP object-safe RpcClientT trait and no more extra generics

* Get core things compiling again with object-safe RpcClientT trait

* Make jsonrpsee optional and get test-runtime working again

* cargo fmt

* add RpcParams object to enforce correct formatting of rps params

* Wee tweaks

* clippy fixes

* cargo fmt

* TWeak a few types

* make sure we get jsonrpsee-types, too

* Add examples for rpc_params/RpcParams

* more doc tweaks

* remove a now unneeded dev note

* Option<Box<RawValue>> instead to avoid allocations in some cases

* update docs

* tweak RpcClientT trait docs

* Tweak docs around RpcClient and RpcClientT. Don't expose RpcClientT directly

* more doc tweaking about RpcParams and undo decision not to expose RpcParamsT

* Doc tweak

Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>

* more doc tweaks

* Fix doc thing

* Add an example of injecting a custom RPC client

* Fix a typo

* Address clippy things in example

* Fix a silly typo

* another clippy fix

* rpc_params to panic instead of returning a result, like serde_json::json, and deref on Rpc<T>

* fix docs

Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
2022-08-31 10:00:49 +01:00
James Wilson 5ff849318b Simplify the TxPayload trait a little (#638)
* Simplify TxPayload trait; don't need to get names unless validating

* cargo fmt

* Expose a way to create a SubmittableExtrinsic from pre-prepaed tx bytes

* remove unneeded refs
2022-08-29 19:46:47 +01:00
Michael Müller 0b2c31e303 Add conversion and default functions for NumberOrHex (#636)
* Add conversion and default functions for `NumberOrHex`

* Update subxt/src/rpc.rs

Co-authored-by: Andrew Jones <ascjones@gmail.com>

* Derive `Debug` with `thiserror::Error`

* Remove unnecessary `#[cfg(test)]`

* Add `#[error(…)]`

* Remove `()`

Co-authored-by: Andrew Jones <ascjones@gmail.com>
2022-08-25 13:42:18 +01:00
Sergejs Kostjucenko 2076cc8f77 pin gha versions (#635) 2022-08-25 12:58:55 +01:00
Alexandru Vasile 798e3aa48c Specialize metadata errors (#633)
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2022-08-24 11:53:29 +03:00
James Wilson a71223ab4a Allow creating/submitting unsigned transactions, too. (#625)
* add tx.create_unsigned method

* check unsigned extrinsic shape against pjs output to give us some confidence it's ok
2022-08-18 17:51:45 +01:00
James Wilson 4f39f6f8fc use 'sp_core::Hxxx' for all hash types (#623) 2022-08-17 18:10:45 +01:00
James Wilson 2fe9a1446d Tweak 0.23 notes and add another test for events (#618)
* Tweak 0.23 notes and add another test for events

* Address new Eq clippy lint
2022-08-12 15:38:06 +01:00
James Wilson a3ea12663e Update version, tweak docs, and write up changelog (#616) v0.23.0 2022-08-11 15:04:50 +01:00
James Wilson 7e51b3ed66 Expose the extrinsic hash from TxProgress (#614) 2022-08-10 11:59:49 +01:00
James Wilson cb43ffe03a Use scale-decode to help optimise event decoding (#607)
* WIP use scale-decode

* Use scale-decode for event decoding and other optimising in that area

* comment tweaks

* samll optimisation on as_event fn
2022-08-10 11:59:33 +01:00
James Wilson e48f0e3b1d Rework Subxt API to support offline and dynamic transactions (#593)
* 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>
2022-08-08 11:55:20 +01:00
dependabot[bot] 7a09ac6cd7 Bump Swatinem/rust-cache from 1.4.0 to 2.0.0 (#597)
Bumps [Swatinem/rust-cache](https://github.com/Swatinem/rust-cache) from 1.4.0 to 2.0.0.
- [Release notes](https://github.com/Swatinem/rust-cache/releases)
- [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Swatinem/rust-cache/compare/v1.4.0...v2.0.0)

---
updated-dependencies:
- dependency-name: Swatinem/rust-cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-02 17:54:17 +01:00
dependabot[bot] 6a2aabc2a6 Update jsonrpsee requirement from 0.14.0 to 0.15.1 (#603)
Updates the requirements on [jsonrpsee](https://github.com/paritytech/jsonrpsee) to permit the latest version.
- [Release notes](https://github.com/paritytech/jsonrpsee/releases)
- [Changelog](https://github.com/paritytech/jsonrpsee/blob/master/CHANGELOG.md)
- [Commits](https://github.com/paritytech/jsonrpsee/compare/v0.14.0...v0.15.1)

---
updated-dependencies:
- dependency-name: jsonrpsee
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-01 10:31:18 +01:00
Alexandru Vasile b3f6ff1cf8 metadata: Exclude field::type_name from metadata validation (#595)
* metadata: Exclude `field::type_name` from metadata validation

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Adjust code-base to rust `1.62.0`

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2022-07-07 12:23:23 +03:00
James Wilson c55b7ba3e3 dual license (#590) 2022-06-28 14:09:41 +01:00
James Wilson a90697ca29 Don't hash constant values; only their types (#587)
* Don't hash constant values; only their types

* Fix a test

* cargo fmt
2022-06-27 17:02:16 +02:00
Alexandru Vasile f97b8963f5 Add support for ws in subxt-cli (#579)
* cli: Support ws or wss connection via jsonrpsee

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* cli: Handle `http` connections via `ureq`

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* cli: Use Jsonrpsee HTTP client

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* cli: Remove `node.to_string()` calls

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
2022-06-24 15:50:27 +03:00
James Wilson 6d7a6c9388 Expose the SCALE encoded call data of an extrinsic (#573)
* Expose SCALE encoded call data of an extrinsic

* Update subxt/src/client.rs

Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>

Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com>
2022-06-22 11:30:06 +01:00
James Wilson 1e8d0956cc Decode raw events using scale_value and return the decoded Values, too (#576)
* Decode raw events using scale_value and return the decoded Values, too

* cargo fmt

* cargo fmt and slight rearranging of test code
2022-06-22 10:43:21 +01:00