Commit Graph

1237 Commits

Author SHA1 Message Date
Andrew Jones 5fd83f8bdb Release v0.9.0 (#129)
* Bump version, update changelog

* Add client version
v0.9.0
2020-06-25 10:49:28 +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
David Craven 91203b91d3 Zero sized types (#121)
* Fix zero sized types.

* Cleanup.

* Expose genesis hash.

* Fix clippy warnings.

* Readd default type sizes for now.

* Cleanup ret type.
2020-06-08 12:25:51 +01:00
David Craven 26ada75dec Fix optional store items. (#120)
* Fix optional store items.

* Support querying a block hash.
2020-06-01 12:24:56 +01:00
Demi Obenour a2eead0c3d Make signing fallable and asynchronous (#119)
* Make signing fallable and asynchronous

This is needed for hardware wallets, which require human confirmation to
sign transactions.  Blocking on a human to sign transactions is not a
good idea, and the signing might fail for many reasons (device
unplugged, authorization not granted, etc).

* Reformat

* Refactor as suggested by Andrew Jones (@ascjones).

* Use future::ok

Co-authored-by: Andrew Jones <ascjones@gmail.com>
2020-05-29 08:49:27 +01:00
Andrew Jones 5f9ebf28da Release v0.8.0 (#117)
* Bump version to 0.8

* Update changelog
v0.8.0
2020-05-26 14:53:52 +01:00
Andrew Jones 0d58f4b67c Update to Substrate release candidate (#116)
* Substrate rc1

* Add tx version extra

* Remove CheckBlockGasLimit

* Substrate rc2
2020-05-26 13:53:08 +01:00
David Craven 4dadb2c9b5 Update to alpha.8 (#114) 2020-05-26 10:55:54 +01:00
David Craven 67f3ce529e Refactors the api (#113)
* Refactor api.

* Try fix ci.

* Fix test.

* Address review comments.
2020-05-26 10:04:44 +01:00
Andrew Jones 6e6a8bbd28 Substrate alpha.8 2020-05-22 07:39:35 +01:00
Andrew Jones bec7e47d8c v0.7.0 release extras (#110)
* Explicit proc-macro version for crates.io release

* Upgrade partity-scale-codec

* Add proc-macro crate metadata
v0.7.0
2020-05-13 10:16:04 +01:00
Andrew Jones e8b4eb3030 Release v0.7.0 (#109)
* Bump version and update changelog

* Add link to examples in README
2020-05-13 09:13:53 +01:00
David Craven f861f3fac4 Split subxt (#102)
* Proc macro improvements.

* Use proc-macros.

* Update examples.

* Fix build.

* Run rustfmt.

* Fix total issuance test.

* Remove gas limit from put code call.

* Handle runtime errors.

* Fix tests.

* Make test more reliable.

* Revert "Handle runtime errors."

This reverts commit 26f30a9f4cfcfddfb3e49308cded46cfe6468697.

* Use expect instead of unwrap.

* Parse marker type.

* Fetch doesn't fail.
2020-05-12 12:25:22 +01:00
Yuanchao Sun 825f3ab64c Add support for RPC state_getReadProof (#106)
* Add support for RPC `state_getReadProof`

* Format code

* Add test
2020-05-07 07:41:27 +01:00
Andrew Jones f2c42f88cf Update to substrate alpha.7 release (#105)
* Update to substrate alpha.7

* Remove gas limit from contracts put code

* Rename SystemEvent::ReapedAccount to KilledAccount

* Log debug event received before attempting to decode

* Temporary registration of Balance type before #102 merged

* Show contract test errors, increase instantiate gas_limit
2020-05-06 09:15:14 +01:00
Cody Lamson 5001a161d7 file updates for license recognition (#101)
* file updates for license recognition

* update rustfmt to use FILE_TEMPLATE
2020-05-04 10:00:26 +01:00
Andrew Jones 194c7bcf2f Add missing license headers and CI check (#98)
* Add missing license headers and add CI check

* Remove log line

* Remove stale todos
2020-04-30 22:26:22 +01:00
David Craven 6f27489378 Double map and plain storage support, introduce macros (#93)
* Support custom clients.

* Simplify trait bounds.

* Plain and double map storage support.

* Simplify more trait bounds.

* Add proc macro.

* Add Call, Event and Store traits.

* Update proc-macros.

* Add with_system for proc-macro.

* proc-macro: test: support signature and extra fields.

* proc-macro: test: support sharing state accross steps.

* proc-macro: test: fetch state sequentially.

* Elide lifetimes.

* Add test for plain storage.

* Run rustfmt.
2020-04-28 20:04:26 +01:00
bwty 216b5614dd Raw payload return SignedPayload struct (#92)
* create SignedPayload struct

* align with generic extra updates

Co-authored-by: bwty <whalelephant@users.noreply.github.com>
2020-04-20 07:25:37 +01:00
Andrew Jones b8159efcab Release v0.6.0 (#90)
* Update to substrate alpha 6

* Bump version and add release notes

* Upgrade async-std dev dependency

* Fix readme license links
v0.6.0
2020-04-15 09:40:14 +01:00
Andrew Jones dc2a73dc4a Wrap and export BlockNumber (#87)
* Add fetch example and wrap BlockNumber impl

* Fmt
2020-04-15 08:45:58 +01:00
David Craven 8cf652605f Custom extra (#89)
* Run rustfmt.

* Make extra customizable.

* Update to alpha 6.
2020-04-15 08:21:19 +01:00
bwty bb465782dc raw_payload w/test (#83)
Co-authored-by: bwty <whalelephant@users.noreply.github.com>
2020-04-03 09:47:00 +01:00
Andrew Jones fb00479a3d Release v0.5.0 (#80)
* Update README.md

* Update to alpha.5 substrate packages

* Add identity storage hasher

* Bump version

* Add CHANGELOG.md

* Update crate metadata for publishing

* Update url crate
v0.5.0
2020-03-25 14:43:03 +00:00
Andrew Jones f5eecd746a Use jsonrpsee from crates.io 2020-03-20 11:23:05 +00:00
Black3HDF bee03e25df Fix submit_and_watch example (#77)
* fix submit_and_watch

* fix event name
2020-03-19 16:08:00 +00:00
Black3HDF f4ef19edc9 Remove unused things (#76)
* remove unused imports

* remove unused type alias

* remove unused imports
2020-03-19 16:07:08 +00:00
Andrew Jones c36b8494ee Add kusama runtime and example (#75) 2020-03-16 15:16:14 +00:00
Andrew Jones b8022a8932 Upgrade parity-scale-codec to 1.2 2020-03-06 12:19:06 +00:00
Andrew Jones 626cf48df5 Add github workflow CI (#74)
* Create rust.yml

* Add build badge to README

* Fix readme badge link
2020-03-06 12:14:55 +00:00
Andrew Jones 8ea264d7b0 Upgrade to substrate alpha.3 crates.io dependencies (#73)
* Use substrate dependencies from crates.io

* Remove test that depends on node_runtime.

Because node_runtime is not on crates.io and was downloading duplicate substrate dependencies. The integration tests will test whether the serialization of keys and calls works.

* Fix updated jsonrpsee compilation errors

* Add missing frame-metadata dependency
2020-03-06 11:58:23 +00:00
Andrew Jones dcc6b91d10 Use new AccountInfo struct for "System Account" storage data (#71)
* Add AccountInfo struct for "System Account" data

* Fmt

* Simplify AccountInfo struct constraints
2020-02-25 17:18:10 +00:00
Andrew Jones b7565ff435 Latest substrate updates (#70)
* Fix compilation errors with latest substrate

* System::Account replaces FreeBalance and Nonce

* System::Account replaces FreeBalance and Nonce

* Remove Balances FreeBalance, replaced with System Account

* Update system event, fix instantiate

* reorder deps
2020-02-20 13:09:11 +00:00
Andrew Jones 399ac68cb1 Allow irrefutable let pattern for subscriptions, remove legacy lint 2020-01-31 11:52:30 +00:00
Yuanchao Sun 1a5e74ac76 Update substrate, bump metadata version to v11 (#67) 2020-01-31 11:40:45 +00:00
Yuanchao Sun 3618b03dee Add methods to get header and storage change set (#65) 2020-01-21 09:43:10 +00:00
Andrew Jones 253a7d8b0b Convert to std futures (#58)
* WIP

* Begin converting rpc layer to use std futures and jsonrpsee

* Convert metadata to async/await

* Convert block_hash to async/await

* Convert more methods to async/await

* Remove sp_rpc

* Fix more compilation errors

* Remove connect

* Starting to convert subscription functions

* Use jsonrpsee branch from PR for public client types

* Implement subscribe events with jsonrpsee subscription

* Converting subscriptions and wait_for_block_events

* WIP converting lib methods to async

* Use shared client reference directly for rpc call

`rpc_api!` macro currently only supports RawClient (which cannot be shared).
Also supports named params only which is not currently compatible with substrate rpd which accepts only positional params.

* Use &self instead of &mut self for shared Client

* Convert submit_and_watch to async/await

* Convert more Client fns to async

* Pin some trait futures

* Add serde error

* Fix client creation

* Fix client request compiler errors

* Unify metadata errors

* Add WS handshake error variant

* Fix some more compiler errors

* Fix more compiler errors

* Convert submit_extrinsic to async

* Convert submit and submit_and_watch

* Add Send + Sync constraints

* Clone clients

* Fix EventArg conversion error

* Fix remaining warnings/errors

* Replace deny warnings with specific lints

* Infallable subscription loops

* Use jsonrpsee wss branch

* Fix example

* Start to fix up tests

* Make contracts tests compile

* Make some more tests pass

* Fix up remaining tests

* Fmt

* Use correct event storage key type

* Fix finding events

* Use master jsonrpsee
2020-01-20 12:00:08 +00:00
Maciej Hirsz 691244fef2 feat: generic Extrinsic on System; Client::storage taking Option<T::Hash>; (#63) 2020-01-14 15:09:01 +00:00
Andrew Jones d9e7848161 Add Ord constraint to System::Hash 2020-01-10 13:39:19 +00:00
Andrew Jones f998444619 Remove unwrap and format code (#62)
* Remove unwrap from metadata fetch

* Format code
2020-01-09 17:26:50 +00:00
Andrew Jones b159d0dae1 Improve dynamic events type sizes API (#61)
* Do not error if type sizes missing: log warn

* Split out EventsSubscriber, allow updating events decoder

* Format code

* Check missing type sizes after registration

* Add example which for submit and watching events
2020-01-07 15:14:30 +00:00
Andrew Jones 80663ec6e3 Support blake2_128Concat key hashing (#60) 2020-01-06 13:22:57 +00:00
Jun Jiang 3aa3598114 Update metadata.rs (#59) 2020-01-06 09:22:10 +00:00
Maciej Hirsz 923013628b Add a method to fetch current finalized head hash (#57)
* chore: Update to latest substrate master renames

* feat: Introduce Client::finalized_head
2019-12-19 16:58:08 +00:00
Andrew Jones a9df35c570 Add FromStr constraint to BlockNumber, bump version (#56) 2019-12-17 12:33:46 +00:00
Andrew Jones 6561535467 Remove pallet crates to improve compilation time (#55) 2019-12-17 11:41:40 +00:00
Andrew Jones daa1415297 Fix contracts instantiation (#51)
* Move contracts tests to contracts module

* Add test for instantiating a contract

* Fix InstantiateArgs encoding

* Ignore PhantomData primitives, they are 0

* Increase endowment and log code hash

* Update SystemEvent

* Fix codec import

* Oops

* Write buffer directly to output to avoid encoding vec

* Debug with StorageChanges encoded as hex

* Logging and format code
2019-12-17 09:39:56 +00:00
Andrew Jones f1926f55cf Update substrate and codec crate aliases (#54)
* Replace substrate crate aliases with actual crate names

* Alias parity-scale-codec to just codec, like in substrate

* Format code
2019-12-16 15:57:48 +00:00