Commit Graph

47 Commits

Author SHA1 Message Date
Niklas a5df40ab09 fix nit 2022-02-03 11:52:04 +01:00
Niklas d433828060 Merge remote-tracking branch 'origin/na-jsonrpsee-core-client' into na-jsonrpsee-core-client 2022-02-03 11:19:35 +01:00
Niklas f603d68a1a pre-generate metadata 2022-02-03 11:17:42 +01:00
Niklas fa3b9057ae fixes 2022-02-03 00:37:43 +01:00
Niklas ae24d3b37b fixes 2022-02-03 00:37:08 +01:00
Niklas 8dc7dda99c Merge remote-tracking branch 'origin/master' into na-jsonrpsee-core-client 2022-02-02 19:16:59 +01:00
Niklas c988c4a16a rewrite me 2022-01-20 15:07:14 +01:00
Niklas 65fb71a8d3 compile please 2022-01-04 18:46:42 +01:00
Niklas 1551e70ec7 fmt 2022-01-04 17:52:49 +01:00
Niklas 937e9a6481 fix build 2022-01-04 17:41:26 +01:00
Niklas e2a93e3abb use jsonrpsee crates.io release 2021-12-22 16:22:40 +01:00
Niklas bca14735ab hacky update jsonrpsee 2021-12-22 13:19:54 +01:00
Niklas 8e6b277e34 client: add missing features 2021-12-03 12:35:15 +01:00
Niklas Adolfsson 1a3b5a9fe1 cargo fmt 2021-11-30 22:34:51 +01:00
Niklas Adolfsson 212d79f1a6 subxt client tests 2021-11-30 20:50:07 +01:00
Niklas Adolfsson 1fb8c8d368 cargo fmt 2021-11-30 19:46:38 +01:00
Niklas Adolfsson a45bf143bb add client example should be removed from this repo 2021-11-30 19:35:42 +01:00
Andrew Jones 793c945fbd Generate runtime API from metadata (#294)
* Remove test macro

* Remove client crate

* Create tests crate and move pallet specific tests there

* Extract client, remove metadata and extra, more demolition

* Update substrate dependencies to git dependencies

* Remove Store stuff for now

* Comment out some Call usages

* Add back Runtime trait coped from original System trait

* Make subxt lib compile

* Delete old proc macros and copy over type generation from chameleon

* WIP make transfer balance test pass

* Change to subxt attribute macro

* WIP provide user defined type substitutes

* User defined type substitutes compile

* WIP submitting transactions

* WIP transfer balance test

* Fix macro

* Cargo fmt

* WIP generating storage hashers

* WIP add AccountData trait for fetching the nonce

* Support single type storage map keys

* WIP impl AccountInfo retrieval

* Fix up storage struct generation

* Implement AccountData triait directly on storage entry

* Borrow storage map key and convert account id

* Implement storage fetch client methods

* Remove legacy metadata storage key construction

* Rename CheckEra to CheckMortality

* Substitute perthings types for compact impls

* Fmt

* Downgrade dyn-clone for cargo-contract compat

* Scale-fo 1.0

* scale-info 1.0

* Remove special range handling

* Restore wildcard type params

* Frame metadata 14.0

* WIP decoding events

* WIP more dynamically decoding events

* Fmt

* Decode events, handle errors

* Uncomment some tests

* Remove unused get_mod function

* Fix some warnings

* Fix some more warnings

* Fix some more warnings

* Add tests mod

* Rename node-runtime tests mod to frame

* Fix some warnings

* Fmt

* WIP generate storage client with getters

* Storage client compiling

* Generate storage client api

* Fix up system account query account ids

* WIP generating tx api fns

* Only generate tx api fields when calls available

* Fix tx api call fns

* Fmt

* WIP generate event structs

* call functions not async

* Derive Eq for comparison on generated types

* Generate event structs

* Fix call name

* Fmt

* Update node runtime metadata to substrate c000780db

* Download latest substrate release for integration testing

* Fix event decoding

* Remove unused imports

* Fix plain storage access, total_issuance pass

* Fmt

* Restore contracts tests

* Backoff connecting to substrate node

* Add required TypeInfo impls for local SignedExtension impls

* Remove unnecessary assert formatting

* Fix handling of DispatchError

* Refactor contracts tests

* Troubleshooting contract not found

* Remove more client feature stuff

* Fix dynamic event variant decoding, write consumed index to output

* Fmt

* Use substrate branch with heavy dependency removed

* Remove sp-rcp dependency, define types locally

* Ignore cargo timeing files

* Use my branch for substrate test deps

* Fix storage key type gen

* Comment out fetching contract info

* Add key iteration, extract storage client from main client

* Debugging key generation

* Use substrate master branch

* Fix call test

* Remove TypeSegmenter and dynclone dependency

* Publicly expose Rpc mod

* Unused import warnings

* Add getter for runtime metadata

* Add pallet and event indices for raw events

* Add is_call and is_event convenience trait functions

* Add missing docs

* Refactor tests crate

* Restore remaining client tests

* Fmt

* Fix warnings

* Restore get_mod as test helper and fmt

* Use client references for api calls

* Fix api usages with methods

* Use Bytes for RawEvent debug

* Update metadata

* Restoring some Balances tests

* Populate runtime storage metadata

* Restore balances lock test

* Restore Balances error test

* Fmt

* Restore transfer subscription API

* Staking test

* Restore another staking test

* Restore another staking test

* Restore another staking test

* Partially restore chill_works_for_controller_only staking test

* Fix fetching Optional storage entries

* Restore staking bond test

* Restore remaining staking tests

* Fmt

* Restore sudo tests

* Add some system tests

* Fmt

* Resolve some todos

* Remove pass through rpc methods on Client, expose via rpc() getter

* Remove more rpc pass through methods

* Remove submit tx pass through rpc methods

* Add some comments to SubmittableExtrinsic methods

* Construct the runtime api from the client

* Fmt

* Use From trait instead of new for AccountData query

* Rename subxt_proc_macro crate to subxt_macro

* Fix AccountData From impl

* Extract codegen crate from macro crate

* Fmt

* Replace chameleon hidden field name

* Extract StructDef for generating structs

* More refactoring of StructDef, moving towards sharing with typegen

* Replace explicit tests crate with single implicit integration tests crate

* Rename from substrate-subxt to subxt

* Fix runtime path relative to root Cargo.toml

* Move RpcClient creation to RpcClient

* WIP get examples to compile

* Rename Runtime to Config trait

* WIP implementing default Config

* WIP implementing default extrinsic extras

* fix metadata constants (#299)

* Move DefaultConfig definition and impl to macro

* Extract type substitute parsing to ir mod

* Extract calls, events and storage from api generation

* Add some hardcoded type substitute defaults

* Fmt

* Add utility pallet tests (#300)

* add batch call test example

* add pallet utility tests

* add utility module

* fix warnings

* Add polkadot runtime metadata for example

* Fix system errors and fmt

* Add subxt-cli crate

* Add metadata and codegen subcommands

* Make subxt-cli codegen command work

* Fmt

* Add polkadot codegen test

* Comment about how to run codegen

* Derive AsCompact for structs with single concrete unsigned int field

* Fix bitvec codegen, adds as non optional dependency

* Regenerate polkadot api with bitvec fix

* Edition 2021

* Fix polkadot codegen with bitvec

* Polkadot balance transfer is working

* Fix fetch remote

* Fix transfer_subscribe example

* Fix submit_and_watch example

* Fmt

* Generate storage iter method for iterating over keys

* Fmt

* Fix existential deposit test

* Fix staking tests

* Add option for custom generated type derives

* Add generated type derives for test runtime api

* Fmt

* Copy WrapperTypeOpaque from substrate, add Encode/Decode

* Fmt

* Extract type generator to module, separate & fix tests

* Fully qualified primitive and prelude types

* Fix up remaining type gen tests

* Skip formatting of generated polkadot example code

* Remove empty utility test file.

* Newline

* Update cli/src/main.rs

Co-authored-by: David <dvdplm@gmail.com>

* Rename subxt-cli executable to subxt

* Update src/client.rs

Co-authored-by: David <dvdplm@gmail.com>

* Add some code docs to TypeGenerator.

* Extract TypePath to own file

* Extract type def generation to separate file

* Renamed ModuleType to TypeDefGen

* Fmt

* Factor out type parameter from final_key

* Fix some type paths

* Resolve some todos

* Resolve some panic todos in events

* Add EventsDecodingError

* Decode compact composite types with a single primitive field

* Decode compact composite types with a single primitive field

* Update src/metadata.rs

Co-authored-by: Andrew Plaza <aplaza@liquidthink.net>

* Remove Perbill compact substitute types

* Remove todos regarding maintaining Rust code items, promoted to follow up issue.

* Remove todo regarding overridding default config impl

* Remove todo regarding overridding default Extra

* Remove todo regarding AccountData storage type defintion

* Remove todo regarding borrowing storage key arguments

* Remove type substitution tests todo

* Remove `Box` field name type hack todo

* Remove Compact todo

* Remove sudo todos

* Remove BitVec implementation todo

* Fmt

* Add health warning to README

* Fix up health warning

Co-authored-by: Paulo Martins <paulormart@users.noreply.github.com>
Co-authored-by: David <dvdplm@gmail.com>
Co-authored-by: Andrew Plaza <aplaza@liquidthink.net>
2021-11-03 11:28:59 +00:00
Squirrel d582479367 Updated to later version of substrate so that it compiles. (#295)
* Updated to later version of substrate so that it compiles.

(Referencing substrate this way you only have to search and replace one string to upgrade)

* cargo fmt
2021-09-20 09:33:33 +01:00
Greg Hill 2749bd300b deps: update jsonrpsee 0.3.0 (#289)
Signed-off-by: Gregory Hill <gregorydhill@outlook.com>
2021-08-03 10:26:29 +01:00
Niklas Adolfsson 08a3e6574d deps: update jsonrpsee 0.2.0 (#285)
* deps: update jsonrpsee 0.2.0

The motivation is to avoid pinning certain alpha versions and to avoid
breaking users builds without having to some `Cargo.lock` updating.

* cargo fmt

* fix tests

* fix a few clippy lints

* cargo fmt
2021-06-08 19:15:12 +02:00
Liu-Cheng Xu 490836fa2d Reorg the order of deps (#284)
* Reorg the order of deps

This patch is simply for easier editor operation when replacing the
substrate deps.

* .
2021-06-06 17:10:34 +01:00
Niklas Adolfsson 94db874942 update jsonrpsee to 0.2.0-alpha.6 (#266)
* update jsonrpsee to 0.2.0-alpha.5

* downgrade subxt client

* cleanup

* make subxt-client compile again

* update jsonrpsee v0.2.0-alpha.6

* fix build again

* remove needless type hints

* cargo fmt

* address grumbles

* remove remaining type hints

* cargo fmt
2021-05-20 21:48:56 +02:00
Andrew Jones 1a8e0bc63b Release v0.15 (#248)
* Add 0.15.0 changelog section

* Update CHANGELOG.md format

* Bump versions

* Update CHANGELOG.md

* Specify explicit version for client

* Remove unused subxt dev dependency

* Upgrade deps
2021-03-22 17:37:15 +00:00
Andrew Jones 9742c09b27 Remove test-node crate (#254) 2021-03-19 12:42:11 +00:00
Niklas Adolfsson 3b362fb072 update jsonrpsee (#251) 2021-03-16 16:00:32 +00:00
Greg Hill c1d4804ccd implement session handling for unsubscribe in subxt-client (#242)
* implement session handling for unsubscribe in subxt-client

Signed-off-by: Gregory Hill <gregorydhill@outlook.com>

* update jsonrpsee to `v0.2.0-alpha.2`

Closes #241

* use new jsonrpsee request message types in subxt client

Signed-off-by: Gregory Hill <gregorydhill@outlook.com>

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
2021-03-09 22:29:21 +01:00
Greg Hill 201a13aa4e re-export WasmExecutionMethod for downstream usage (#239)
Signed-off-by: Gregory Hill <gregorydhill@outlook.com>
2021-03-08 10:55:42 +00:00
Niklas Adolfsson a920e34c20 integration with jsonrpsee v2 (#214)
* hacky integration with jsonrpsee v2

* stray todos

* fmt

* add http support

* make test build compile

* Update src/rpc.rs

* bring back set_client

* use crates.io version jsonrpsee

* WIP: workaround for embedded subxt client (#236)

* workaround for embedded subxt client

Signed-off-by: Gregory Hill <gregorydhill@outlook.com>

* increase default channel size on subxt client

Signed-off-by: Gregory Hill <gregorydhill@outlook.com>

* remove client tests due to inference problem on From

Signed-off-by: Gregory Hill <gregorydhill@outlook.com>

* add comments for missing impls

* more verbose errors

* make subscription notifs buffer bigger

* fmt

Co-authored-by: Greg Hill <gregorydhill@outlook.com>
2021-03-08 10:52:23 +00:00
Greg Hill e524c2d744 expose wasm execution method on subxt client config (#230)
Signed-off-by: Gregory Hill <gregorydhill@outlook.com>
2021-02-19 11:40:35 +00:00
Andrew Jones 2c8e5211aa Substrate 3.0 (#232)
* Update substrate deps to 3.0.0 and 0.9.0

* Update substrate wasm tools

* Fixing errors for 3.0.0 compat

* Fixing more errors for 3.0.0 compat

* Use MultiAddress for test runtime

* Fmt

* Fix node test

* Pin Funty

* Update AccountInfo struct

* Add comment about funty pin
2021-02-17 16:45:05 +00:00
Andrew Jones 51c48f223a Update license header, bye bye 2020 👋 (#231) 2021-02-11 17:17:24 +00:00
Andrew Jones 032ba029af Release v0.14.0 (#226)
* Update CHANGELOG

* Bump versions

* Update client dep versions
2021-02-08 10:51:52 +00:00
Andrew Jones 6175cb70b9 Upgrade dependencies, bumps substrate to 2.0.1 (#219)
* Upgrade dependencies, bumps substrate to 2.0.1

* Upgrade test-node dependencies

* Upgrade client dependencies

* Upgrade proc-macro dependencies

* Revert futures01 dependency

* Upgrade futures

* Remove redundant package specifiers
2021-01-14 16:47:01 +00:00
David fc2da6b9c7 Release v0.13 (#175)
* Upgrade to substrate 2.0.0

* WIP implement Subcommand manually (see https://github.com/paritytech/substrate/pull/6894#issuecomment-676060197)

* Add pallet-staking/std to the std feature

* Sort out the subcommand impl

* Sort out the module index (ty @ascjones)
Sort out the RefCount type (ty @dvc94ch)
Random tweaks to make test-node more similar to the vanilla node-template

* obey the fmt

* Add changelog and bump versions

* Merge #165 and update CHANGELOG

* Update test-node/runtime/src/lib.rs

Co-authored-by: Demi Marie Obenour <demiobenour@gmail.com>

* Update CHANGELOG.md

Co-authored-by: Demi Marie Obenour <demiobenour@gmail.com>

Co-authored-by: Demi Marie Obenour <demiobenour@gmail.com>
2020-10-05 10:56:27 +02:00
David 8e2a4f06ee Upgrade to substrate 2.0.0 (#173)
* Upgrade to substrate 2.0.0

* WIP implement Subcommand manually (see https://github.com/paritytech/substrate/pull/6894#issuecomment-676060197)

* Add pallet-staking/std to the std feature

* Sort out the subcommand impl

* Sort out the module index (ty @ascjones)
Sort out the RefCount type (ty @dvc94ch)
Random tweaks to make test-node more similar to the vanilla node-template

* obey the fmt

* cleanup

* more cleanup
2020-09-24 12:57:35 +01:00
Andrew Jones af45c39fb1 Release v0.12.0 (#157)
* Bump version, update changelog

* Bump proc-macro crate

* Bump client crate
2020-09-01 15:54:01 +01:00
David Craven 3ea9d3b8bb Update to rc6. (#155)
* Update to rc6.

* Fix clippy warnings.
2020-08-25 09:50:14 +01:00
David Craven 9aa32ef63d Fix port number. (#151) 2020-08-13 16:04:30 +01:00
Andrew Jones d3e7bd2282 Release v0.11.0 (#145)
* Bump versions

* Update changelog

* Update PR links

* Fix changelog linebreak

* Remove explicit wabt-sys dependency

* Update changelog

* Update parity-scale-codec version
2020-07-31 11:02:21 +01:00
David Craven e6f3a82f99 Rc5 (#143)
* Update to rc6.

* Update runtime.

* Update node to rc6.

* Update client.

* Fix node.

* Add option to enable telemetry.
2020-07-27 08:53:02 +01:00
David Craven c6350fcc11 Support authors api. (#134) 2020-07-01 15:27:14 +01:00
Andrew Jones cc25207a2a Release client v0.2.0 (#133)
* Bump client version

* Bump client dev dependency version

* Changelog

* Bump subxt version
2020-06-29 10:12:21 +01:00
Andrew Jones d3e9e3f757 Upgrade to substrate rc4 release (#131)
* Upgrade to substrate rc4 release

* Fix up test-node/service

* Fix up client node config

* Fix up remaining compilation errors

* Fmt

* Remove fixme

* Fix test

* Release v0.10.0
2020-06-29 09:32:07 +01:00
David Craven 7f0847107c Events sub (#126)
* Make event subscription logic more generic.

* Fix build.

* Add test-node.

* Update deps.

* Address review comments.
2020-06-25 07:05:00 +01:00
David Craven 3080ec91a6 Improve error handling in proc-macros, handle DispatchError etc. (#123)
* Improve error handling.

* Fix build.

* Handle runtime errors.

* Add runtime trait for better type inference.

* Use runtime trait part 1.

* wip

* Add support for sudo.

* Finish error handling.

* Fix tests.

* Fix clippy warnings.
2020-06-22 07:39:40 +01:00
David Craven 21d07c6c24 Support embedded full/light node clients. (#91)
* Add support for light clients.

* Add wasm toolchain to ci.

* Fix ci tests.

* Address review comments.

* Use expect instead of unwrap.

* Purge light client chain too.

* Add README section.
2020-06-15 08:01:16 +01:00