Commit Graph
100 Commits
Author SHA1 Message Date
Bastian Köcher 9303b9b7df Remove IncrementalInput and fix wasm storage_into* (#3224) 2019-07-29 10:44:40 +02:00
Bastian Köcher f7ff339ebd Expose instancing in metadata (#3188)
* Expose instancing in metadata

- Introduces metadata v7
- If a module is using instancing, the storage exposes the instance in
metadata
- Metadata module name is now the upper case one given to
`construct_runtime!`

* Remove obsolete macro

* Just expose one prefix

* Bump spec

* Fix prefix generation
2019-07-24 21:40:34 +02:00
Bastian Köcher 1c346d2190 Make function get of parameter types public (#3191)
I missed this while making parameter types more flexible.
2019-07-24 18:32:44 +02:00
Bastian Köcher 5d58d583e3 Switch srml-session keys to decl_storage! (#3184)
* Switch `srml-session` keys to `decl_storage!`

* Expose `DEDUP_KEY_PREFIX` in constants

* Fix test

* Bump spec version
2019-07-24 16:40:04 +08:00
Bastian Köcher 6e4066b62d Bkchr check all benches (#3180)
* Make sure CI checks all benchmarks

* Fix babe
2019-07-23 13:57:32 +02:00
Bastian Köcher a0bb34a584 Fix test-runtime build (#3176)
* Fix test-runtime build

* Fix build
2019-07-23 12:10:00 +02:00
Bastian Köcher af40c36873 Export VOTER_SET_SIZE and APPROVAL_SET_SIZE in srml elections (#3173)
* Export `VOTER_SET_SIZE` and `APPROVAL_SET_SIZE` in srml elections

* Fix compilation
2019-07-23 10:51:00 +02:00
Bastian Köcher 4f5654b67d Document decl_storage! hashers (#3170) 2019-07-22 19:00:20 +02:00
Bastian Köcher c42d73d302 Make parameter types implementation more flexible (#3112)
* Make parameter types implementation more flexible

* Bump `impl_version`
2019-07-13 10:54:41 +02:00
Bastian Köcher f5e921281e Cleanup CLI and introduce execution-all (#3098)
* Cleanup CLI and introduce `execution-all`

`--execution-all` sets the execution strategies for all available
execution contexts.

* Rename parameter
2019-07-11 16:57:59 +02:00
Bastian Köcher 26606eb492 Expose Aura storage and calls (#3089) 2019-07-10 16:56:49 +02:00
Bastian Köcher 0366f7b35c Check that validator set is not empty at genesis (#3083)
* Check that the returned validator set is not empty

* Move assert to session module

* Clean up
2019-07-10 14:38:07 +02:00
Bastian Köcher 29311e98b4 Make RUSTFLAGS configurable in wasm-builder (#3057)
* Make `RUSTFLAGS` configurable in `wasm-builder`

* Version ups

* Update `Cargo.lock`
2019-07-08 15:37:42 +02:00
Bastian Köcher c7e7b8b012 Document limitations of decl_storage! with instancing (#3044) 2019-07-06 13:56:55 +02:00
Bastian Köcher c03d3531d2 Make wasm-builder work with cargo install (#3043)
* Make `wasm-builder` work with `cargo install`

* Update `Cargo.lock`
2019-07-06 00:29:16 +02:00
Bastian Köcher 0e8c4de4b5 Implement SelectInitialValidators for () (#3037)
This is quite more idiomatic substrate :D
2019-07-05 15:41:51 +02:00
Bastian KöcherandAndré Silva 0ed2b26c96 End build when wasm-builder does not find a prerequisite (#3030)
* End build when `wasm-builder` does not find a prerequisite

Using `compile_error!` was a stupid idea by me, as rust would not
re-execute the build.rs.

* Increment the `wasm-builder` version

* Update core/utils/wasm-builder/src/lib.rs

Co-Authored-By: André Silva <andre.beat@gmail.com>
2019-07-05 15:02:14 +02:00
Bastian Köcher 7a2165cff2 Make wasm-builder less spammy (#3020)
* Don't clutter the output that much

* Support building from `crates` or from `path`

* Upgrade the versions

* Update `Cargo.lock`
2019-07-04 17:57:21 +02:00
Bastian Köcher ae80c05232 Fix node-template-release and make cargo doc faster (#3019) 2019-07-04 16:26:03 +02:00
fe08221479 Build WASM binaries as part of cargo build (#2868)
* Introduce `wasm-builder` and `wasm-builder-runner` to retire `build.sh`

Make use of `wasm-builder` in `test-runtime`.

* Add build script and remove the wasm project

* Port `node-runtime` to new wasm-builder

* Make `substrate-executor` tests work with `wasm-builder`

* Move `node-template` to `wasm-builder`

* Remove `build.sh` :)

* Remove the last include_bytes

* Adds the missing build.rs files

* Remove `build.sh` from CI

* Debug CI

* Make it work in CI

* CI attempt 3

* Make `substrate-runtime-test` compile on stable

* Ahhh, some missed `include_bytes!`

* AHH

* Add suggestions

* Improve search for `Cargo.lock` and don't panic if it is not found

* Searching from manifest path was no good idea

* Make the `wasm-builder` source better configurable

* Expose the bloaty wasm binary as well

* Make sure to rerun WASM recompilation on changes in dependencies

* Introduce new `WASM_BUILD_TYPE` env and make sure to call `build.rs` on
changes to env variables

* Remove `build.sh` from READMEs

* Rename the projects

* Fixes CI

* Update lock file

* Fixes merge-conflict

* Apply suggestions from code review

Co-Authored-By: TriplEight <denis.pisarev@parity.io>

* Try to make windows happy

* Replace all back slashes in paths with slashes

* Apply suggestions from code review

Co-Authored-By: Pierre Krieger <pierre.krieger1708@gmail.com>

* Use cargo from `CARGO` env variable

* Fix compilation

* Use `rustup` for running the nightly build

* Make individual projects skipable

* Fix compilation

* Fixes compilation

* Build all WASM projects in one workspace

* Replace more back slashes!

* Remove `inlcude_bytes!`

* Adds some documentation

* Apply suggestions from code review

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* Apply suggestions from code review

Co-Authored-By: Shawn Tabrizi <shawntabrizi@gmail.com>

* More review comments

* Update `Cargo.lock`

* Set license

* Apply suggestions from code review

Co-Authored-By: joe petrowski <25483142+joepetrowski@users.noreply.github.com>

* More review comments + adds `TRIGGER_WASM_BUILD` env

* Fix doc tests

* Increase version + update README

* Switch crates.io version of `wasm-builder`

* Update README

* Switch to released version of `wasm-builder-runner`
2019-07-04 11:34:06 +02:00
Bastian Köcher 4fe9e8732f Downgrade memory-db in test-runtime to fix WASM compilation (#3010)
* Downgrade `memory-db` in `test-runtime` to fix WASM compilation

* Remove unneeded `memory-db` dependency

* Update `Cargo.lock`
2019-07-03 21:26:36 +02:00
Bastian Köcher e9864b94a3 Allow where bounds on decl_module! and decl_storage! (#3000)
* Introduces a `where` bound to `decl_macro!` and `decl_storage!`

* More fixes

* Adds documentation
2019-07-03 21:07:39 +02:00
Bastian Köcher 5dc8792d8f Implement From module Call for outer Call (#3006)
* Implement `From` module `Call` for outer `Call`

* Fixes compilation and add test
2019-07-03 20:05:48 +02:00
Bastian Köcher bfe5347724 Adds a SpawnTaskHandle to core service (#2992)
* Adds a `SpawnTaskHandle` to core service

* Fixes compilation

* Remove `into()`
2019-07-02 10:39:41 +02:00
Bastian KöcherandYJ 7202403bfc Make constants exposable in metadata (#2975)
* Some cleanup

* Add module constant metadata declaration

* Begin to integrate the constants in `decl_module`

* Fixes tests

* Fix compilation and add tests

* Remove duplicate code

* Expose constants in democracy and staking + further fixes

* Update srml/metadata/src/lib.rs

Co-Authored-By: YJ <yjkimjunior@gmail.com>

* Hide `RawEvent` metadata function

* Prevent whitespaces in types

* Fix `offchain_worker` and `constants` with instances

* Up the `impl_version`

* Fix macro

* Incrase impl_version
2019-07-01 10:05:28 +02:00
Bastian Köcher 18be937cb5 Adds if_std! macro (#2979)
This macro compiles and executes the given code only when `std` feature
is enabled. This can be useful for debugging without needing to worry
that your code does not compile on `no_std`.
2019-06-29 20:12:46 +02:00
Bastian Köcherandthiolliere 62b7c05def Implement a proper generic resolution in decl_storage! (#2913)
* Add failing test case

* move storage maps to blake2_128 (#2268)

* remove default hash, introduce twox_128 and blake2

* use blake2_128 & create ext_blake2_128

* refactor code

* add benchmark

* factorize generator

* fix

* parameterizable hasher

* some fix

* fix

* fix

* fix

* metadata

* fix

* remove debug print

* map -> blake2_256

* fix test

* fix test

* Apply suggestions from code review

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* impl twox 128 concat (#2353)

* impl twox_128_concat

* comment addressed

* fix

* impl twox_128->64_concat

* fix test

* Fix compilation and cleanup some docs

* Lol

* Remove traits from storage types that are not generic

* Get instance test almost working as wanted

* Make `srml-support-test` compile again :)

* Fixes test of srml-support

* Fix compilation

* Break some lines

* Remove incorrect macro match arm

* Integrates review feedback

* Update documentation

* Fix compilation
2019-06-27 13:40:22 +02:00
Bastian Köcher 23ea5d1795 Remove Mutex from core-service (#2961)
* Remove `Mutex` from `core-service`

* Fixes sync test
2019-06-27 10:07:34 +02:00
Bastian Köcher 050377d1c0 Do not run build.rs of node-template everytime we compile (#2955) 2019-06-26 10:24:40 +02:00
37acb90847 Remove UserError and switch to error::Error (#2899)
* Remove `UserError` and switch to `error::Error`

* More cleanup

* Update core/executor/src/error.rs

Co-Authored-By: Sergei Pepyakin <s.pepyakin@gmail.com>

* Fix typo

* Update core/executor/src/allocator.rs

Co-Authored-By: Stanislav Tkach <stanislav.tkach@gmail.com>
2019-06-19 15:08:59 +02:00
Bastian Köcher 0d7cb00def Activate std feature of session in babe (#2907) 2019-06-19 15:07:40 +02:00
Bastian Köcher de90fd78b6 Re-expose system events (#2881) 2019-06-17 08:37:00 -04:00
Bastian Köcher c48aebe897 Expose srml-system in metadata as well (#2876) 2019-06-15 15:07:08 +02:00
Bastian Köcher e09045bde2 Fix several warnings and remove some forbid(warnings) (#2874) 2019-06-15 10:30:04 +02:00
Bastian Köcher db5722adc3 Make impl_opaque_keys more scope independent (#2873) 2019-06-15 07:41:46 +02:00
Bastian Köcher 4f888f34d3 Build LongestChain with TestClientBuilder (#2792)
* Switch to `TestClientBuilder` and support generating LongestChain

* Make sure test-client works without the wasm blob

* Use `TestClientBuilder` in more places
2019-06-05 13:45:18 +02:00
Bastian Köcher 4d9efbc1d5 Remove deprecated authorities function (#2785)
* Remove deprecated authorities function

* Bump spec

* Fixes compilation

* Remove last piece
2019-06-04 22:28:18 +02:00
Bastian Köcher 6142f95611 Fix tons of warnings in newest nightly (#2784)
* Fix tons of warnings in newest nightly

* Fix sr-api-macro doc tests
2019-06-04 20:09:49 +02:00
Bastian Köcher 4d476161e2 Generate docs for all workspace crates (#2773) 2019-06-04 10:14:46 +02:00
Bastian Köcher 80b18c8531 Remove StorageList (#2725)
* Remove `StorageList`

`StorageList` is not used anymore by `decl_storage!` and thus, it can be
removed.

* Fixes tests
2019-05-31 09:28:31 +02:00
Bastian Köcher e2d1d0c951 Fix doc propagation for Call enum (#2690)
* Fix doc propagation for `Call` enum

* Fix warnings while generating `srml-staking` docs

* Make the line check happy
2019-05-25 21:03:27 +02:00
Bastian Köcher cf39cbc1f0 Check for exact wasm blob size in RPC tests (#2687) 2019-05-25 21:02:50 +02:00
Bastian Köcher fcf9a46bcc Forward the result in a sudo call (#2594)
* Forward the result in a sudo call

* Print the error of the wrapped call in `sudo`
2019-05-15 18:14:33 +02:00
Bastian Köcher d50b717ff6 Generate correct serde bound for GenesisConfig (#2585)
* Generate correct serde bound for GenesisConfig

* Handle double map as well

* Adapt double map test
2019-05-15 11:54:00 +02:00
Bastian Köcher e67b653c85 Silence the deprecated warning in generated code (#2513)
`impl_runtime_apis!` is not only implementing the apis, it also calls
them internally and thus generates the warning. So, we just allow
depracted calls in the generated code.
2019-05-09 10:27:08 +02:00
Bastian Köcherandsvyatonik bad3ce4e17 Cumulus changes version 2 (#2313)
* ensure imbalances are properly accounted for (#2183)

* ensure imbalances are properly accounted for

* bump runtime version

* Update node/runtime/src/lib.rs

* implement contract events (#2161)

* implement contract events

* update runtime

* renaming

* update test code hash

* improve complexity details

* add deposit event base cost

* add test

* Revert "add deposit event base cost"

This reverts commit 58ec010c0f4f4f0e16935ad41da32aedd17a8c57.

* update test

* Revert "update test"

This reverts commit 6fe61a593ccf0d41f09a0b97472b28ed8751a999.

* Revert "Revert "add deposit event base cost""

This reverts commit 145e8a9bac15313a4c380aa66b94fd4d36fa3f6d.

* Fix format a bit

*  Replace Vec<u8> with [u8; 32] for contract storage key (#2184)

* Replace Vec<u8> with [u8; 32] for contract storage key

* Read storage keys from sandbox memory into fixed size buffer

* Increment `impl_version`

* Remove redundant Ok(()) and explicitly specify StorageKey buffer type (#2188)

* Switch to `derive(Encode, Decode)` for `Call` (#2178)

* Add some tests

* More tests

* Switch to `derive(Encode, Decode)` for `Call`

* Update lock files

* Simplify the macro cases

* Cache changes trie config in db storage (#2170)

* cache changes trie config in db storage

* Update core/client/db/src/lib.rs

Co-Authored-By: svyatonik <svyatonik@gmail.com>

* Update core/client/db/src/lib.rs

Co-Authored-By: svyatonik <svyatonik@gmail.com>

* Fix version check for renamed runtime api methods (#2190)

* Add feature to disable including the test-runtime wasm blob

* Enable `std` feature for `consensus_authorities`

* Implement `skip_initialize_block` and `initialize_block` for runtime api

* Add test and fixes bug

* Begin to implement support for passing the `ProofRecorder`

* Make sure proof generation works as intended

* Fixes tests

* Make `BlockBuilder` generate proofs on request.

* Adds `TestClientBuilder` to simplify creating a test client

* Add `include-wasm-blob` to `test-client` as well

* Make `test-client` compile without including the wasm file

* Disable more stuff in test-client without wasm

* Reorganize the re-exports

* Use correct bounds

* Update docs

* Update core/client/src/block_builder/block_builder.rs

Co-Authored-By: bkchr <bkchr@users.noreply.github.com>

* Extend test to actually generated proof

* Switch to enum for `skip_initialize_block`

* Some wasm files updates
2019-04-29 16:55:20 +02:00
Bastian Köcher 3c988ea7e9 Read locks once and not 2 times (#2394) 2019-04-27 14:14:00 +02:00
Bastian Köcher c1deb66962 Fixes node-template-release (#2375) 2019-04-25 12:03:30 +01:00
Bastian Köcherandthiolliere f0862606b7 Forward port blake2 storage support (#2360)
* move storage maps to blake2_128 (#2268)

* remove default hash, introduce twox_128 and blake2

* use blake2_128 & create ext_blake2_128

* refactor code

* add benchmark

* factorize generator

* fix

* parameterizable hasher

* some fix

* fix

* fix

* fix

* metadata

* fix

* remove debug print

* map -> blake2_256

* fix test

* fix test

* Apply suggestions from code review

Co-Authored-By: thiolliere <gui.thiolliere@gmail.com>

* impl twox 128 concat (#2353)

* impl twox_128_concat

* comment addressed

* fix

* impl twox_128->64_concat

* fix test

* Fix compilation and cleanup some docs

* Apply suggestions from code review

Co-Authored-By: bkchr <bkchr@users.noreply.github.com>
2019-04-24 11:05:22 +02:00
Bastian Köcher beadb4b1bd Build wasm files in doc release pipeline (#2340) 2019-04-23 10:31:25 +02:00
Bastian Köcher 12823383a2 Make correct feature selection in node-template Cargo.toml (#2306) 2019-04-19 13:55:04 +02:00
Bastian Köcher 96ef462c46 Remove peerset debug output test (#2311)
We should not test debug output, especially when it can change.
2019-04-17 15:04:50 +02:00
Bastian Köcher 72840bd71e Add StorageValue::append and speed-up deposit_event (#2282)
* Adds deposit event benchmark

* Add `StorageValue::append`

`StorageValue::append` can be used by types that implement `EncodeAppend` to speed-up situations where you just want to append
an item to storage without wanting to decode all previous items.

* Stay at 100 events

* Fixes compilation

* Use correct year and increase spec version
2019-04-16 13:17:02 +02:00
Bastian Köcher c11afbee22 Remove peerset debug output test (#2267)
* Remove peerset debug output test

We should not test debug output, especially when it can change.

* Update lock file
2019-04-15 15:47:06 +02:00
Bastian Köcher 0afc357a97 Throw a compile error for on_finalise and on_initialise (#2236) 2019-04-09 10:31:18 +02:00
Bastian Köcher dce0b4ea49 Use storage_root of newly calculated header (#2216)
Instead of calculating the `storage_root` a second time, we just can
take the `storage_root` from the new header.
2019-04-05 17:50:38 +01:00
Bastian Köcher 6920b169cd Introduce original_storage and original_storage_hash (#2211)
Both functions will ignore any overlayed changes and access the backend
directly.
2019-04-04 16:56:16 +02:00
Bastian Köcher 671c0a5e11 Enable std feature for all dependencies in node-runtime (#2193) 2019-04-03 14:31:09 +02:00
Bastian Köcher 2c401652f0 Fix version check for renamed runtime api methods (#2190) 2019-04-03 12:38:25 +02:00
Bastian Köcher e902c54399 Switch to derive(Encode, Decode) for Call (#2178)
* Add some tests

* More tests

* Switch to `derive(Encode, Decode)` for `Call`

* Update lock files

* Simplify the macro cases
2019-04-03 11:59:57 +02:00
Bastian Köcher 345145326b Implement support for renaming runtime api functions (#2160)
* Implement support for renaming runtime api functions

* Redelete the wasm files

* FIxes test

* Fix test correctly...

* Bring back old `authorities`

* Tag as deprecated

* Fixes compilation on WASM

* Add missing method implementations

* Fixes tests

* Increase `spec_version`
2019-04-02 10:05:35 +02:00
Bastian Köcher 137409f02a Remove execute_extrinsics_without_checks as it will not be required (#2145)
This functionality was added by me for Cumulus, but after better
understanding Cumulus, this will not be required.
2019-04-01 15:37:58 +02:00
Bastian Köcher 530c12b4dc Expose keyring accounts in CLI (#2032)
* Expose keyring accounts in CLI

So, `--alice` will give you a node with `--key //Alice --name Alice`.

* Update readme
2019-03-18 18:15:18 +01:00
Bastian Köcher 32ae38c79d Build docs with nightly (#2006) 2019-03-15 12:34:53 +01:00
Bastian Köcher a57f6bbe6a Remove warning and make __PhantomItem unconstructable (#2000)
* Remove warning and make `__PhantomItem` unconstructable

* Switch to unreachable
2019-03-14 21:53:05 +01:00
Bastian Köcher 990d368f0d Prerequisites for validate_block in Cumulus (#1926)
* Adds benchmark for direct/indirect wasm function calls

* Store the benchmark function pointer in a `Cell`

* Add some documentation

* Make function implementations exchangeable

* Add parachain stub

* Add macro for registering the `validate_block` function

* Make all functions replace-able by unimplemented

* Some more refactoring

* Adds tests for executing empty parachain block

* Work on a new test with empty witness data

* Don't exchange `ext_print_*` stuff

* Some cleanup and one more function for `validate_block`

* More tests and more functions

* Fixes after merging master

* Use `parity-codec` `derive` feature

* CHange implementation of `wasm-nice-panic-message`

* Move `parachain` stuff to cumulus

* Updated wasm files

* Integrate feedback

* Switch to `ExchangeableFunction` struct

* More fixes

* Switch to Cell and panic on multiple replaces

* Increase `impl_version`

* Fix shifting

* Make the API more verbose of `ExchangeableFunction`

* Increase `impl_version`
2019-03-14 21:29:12 +01:00
Bastian Köcher 17f093da13 Make use of assimilate_storage for GenesisConfig (#1982)
* Make use of `assimilate_storage` for `GenesisConfig`

Fixes incorrect initialization of the staking gensis storage.

* Add some documentation
2019-03-13 12:59:07 +01:00
Bastian Köcher 71c0d4d968 More documentation improvements (#1972)
* Bring back public calls in `Module` documentation
* Forward storage item documentation to storage structs
2019-03-12 13:58:15 +01:00
Bastian Köcher 0ea90111b4 Cleanup rustdoc (#1965)
* Hide `__GetByteStruct*` types in the docs

* Forward documentation to `GenesisConfig`

* Hide `PhantomItem` in docs for `Call`

* Hide public calls in `Module`

* Forward documenation for storage functions

* Hide auxiliary functions in documentation
2019-03-11 21:49:37 +01:00
Bastian Köcher 7927054f86 Update copyrights to 2019 (#1932) 2019-03-06 15:04:28 +01:00
Bastian Köcher 2e9b2be8fa Update parity-codec/-derive to 3.1 (#1900)
* Update parity-codec/-derive to 3.1

* Update wasm stuff
2019-03-01 09:04:53 +01:00
Bastian Köcher 1f05a47cdb Set initialised_block if we called initialise_block (#1767) 2019-02-12 14:52:00 +01:00
Bastian Köcher f9975af020 Make sr-api-macros and srml-support renaming of crates (#1757)
Procedural do not support `$crate` to get access to the crate where the
macro is defined. We use a hack to re-export the crate under a known
name. With rust edition 2018, people started to rename their crates in
`Cargo.toml`, but that breaks the re-export. This commit introduces
`proc-maco-crate` that supports finding the requested crate name, even
if it was renamed.
2019-02-11 13:58:41 +01:00
Bastian Köcher 461cd384fc Export TERM in node-template-release.sh (#1711) 2019-02-06 19:01:41 +01:00
Bastian Köcher 567122fab5 Moves node-template into substrate repo (#1637)
* Make runtime macros work without required `macro_use`

* Adds node-template

* Adds node-template-release tool

* Fixes building `node-template` and improve the release

* Add `profile.release` by release script to remove warning

* Adds script for releasing the node template

* Fixes compilation after master merge

* Port node-template to edition 2018

* Remove license

* Fixes compilation after master merge

* Add `node-template-release.sh` into the CI

* WIP Ci integrate node template (#1701)

* copy artifacts to s3 bucket latest path

* typo

* bucket name

* Update wasm files
2019-02-06 17:15:12 +01:00
Bastian Köcher 190393d476 Make API backwards compatible with CC (#1697)
* Rework how a runtime api calls into the runtime

Now we generate a default implementation for each api call that calls
a generated method `method_runtime_api_impl`. This newly generated
method is the one that will be implemented by the `impl_runtime_apis`
macro in the runtime for the client side.

* Support `changed_in` to change runtime api function signatures

* Update documentation

* Fixes tests

* Implement checking the api version with a predicate

* Make the implementation backwards compatible with CC

* Update wasm files after merge

* Check for wasm runtime differences by building master and current branch

* Update spec_version and wasm files

* Fixes

* Revert my changes

* Remove `patch.crates-io` from test-runtime
2019-02-06 11:47:47 +01:00
Bastian Köcher 471b7431bc Move CODE directly into TestExternalities (#1682)
* Move `CODE` directly into `TestExternalities`

This change allows tests to modify CODE in storage.

* Update more hashes

* Test

* Move `code` back into a field of `TestExternalities`

* Update wasm after master merge
2019-02-05 21:16:11 +01:00
Bastian Köcher 4ea3ac1c4a Use absolute path in native_executor for Blake2Hasher (#1671) 2019-02-04 11:26:51 +01:00
Bastian Köcher ef4dc12a5d Don't panic if parameter can not be converted between node and native runtime (#1659)
* Don't panic if parameter can not be converted between node and native runtime

* FIxes after merge

* Use correct copyright year
2019-02-02 14:13:50 +01:00
Bastian Köcher b187695af7 Aura: Remove unused structures and adds SlotDuration::get() (#1565) 2019-01-25 10:56:46 +00:00
Bastian Köcher 27a882bfac Refactor CLI handling (#1368)
* Rework cli handling

* Update readme

* Adds support for custom subcommands and extra run parameters

* Update readme

* Fixes compilation after master merge

* Make "Run" the default subcommand

Actually its hidden to the outside that is an subcommand.

* Rewrite CLI to work without breaking old CLI behavior

* Some cleanup

* Fix incorrect config setup

* Update README

* Fixes after merge

* Fixes incorrect README
2019-01-25 10:48:46 +00:00
Bastian Köcher 6543207062 Fix inconsistency between CheckInherentsResult::new()/default() (#1561) 2019-01-25 11:22:04 +01:00
Bastian Köcher 5be237030d Fix warnings in substrate (#1523)
* Fix warnings in substrate

* More warnings removed and wasm updated

* Fixes error on stable and grumbles

* Update wasm files

* Add links to the github issue for replacing `error-chain`
2019-01-24 16:10:07 +01:00
Bastian Köcher e5285e8a8d Adds some derives for the inherent data stuff (#1543)
* Adds some derives for the inherent data stuff

This makes working with them easier.

* More defaults!
2019-01-24 16:09:45 +01:00
Bastian Köcher ac065a96ba Make impl_outer_inherent do not require Extrinsic to be imported (#1526) 2019-01-23 13:41:14 +01:00
Bastian Köcher 70b1af7b1e Rewrite Inherent data (#1488)
* Implement new inherent data

* Fixes compilation on wasm

* Fixes after rebase

* Switch back to generate inherent stuff by macro

* Update after rebase

* Apply suggestions from code review

Co-Authored-By: bkchr <bkchr@users.noreply.github.com>

* Fix compilation after rebase

* Address grumbles

* Remove `InherentDataProviders` from `Client`

* Update wasm files after rebase

* Address grumbles

* Fixes compilation after latest merge

* Last fix
2019-01-22 17:52:08 +01:00
Bastian Köcher 010e63116f Make runtime api calls native when possible (#1302)
* Add simple benchmark for the runtime api

* Make the executor support native calls

* Some documentation

* Hide behind `feature = "std"`

* Rework the native calls

* Make all tests compile again

* Make every parameter using the Block serialized/deserialized in the native call

* Forward `UnwindSafe` requirement

* Remove debug stuff

* Add some documentation

* Fixes warnings

* Fixes errors after master rebase

* Fixes compilation after master rebase

* Fixes compilation after rebase
2019-01-21 14:32:53 +01:00
Bastian Köcher aad569a1e6 Revert new wasm allocator (#1502)
* Revert "Better allocator for wasm (#1460)"

This reverts commit 1ccb590d18.

* Update wasm files
2019-01-21 12:52:44 +01:00
Bastian Köcher d15cc63370 Make deposit_event work with none generic events (#1309)
* Make `deposit_event` work with none generic events

`fn deposit_event() = default` will now be used for none generic events
`fn deposit_event<T>() = default` is now for generic events.

* Update wasm files

* Fixes some spelling mistakes

* Update wasm and fix new module
2018-12-22 17:37:05 +01:00
Bastian Köcher 090ca9ee7c Upgrade sysinfo to fix compilation on windows (#1267) 2018-12-17 11:10:50 +01:00
Bastian Köcher 3c7ee7d041 Use dev as id in development_config_genesis (#1259) 2018-12-12 15:29:12 +01:00
Bastian Köcher acf1b77bcd Make decl_module not require a return type for functions (#1230)
If no return type is specified, `Result` is added and
`Ok(())` is returned by default.

Closes: #1182
2018-12-10 13:36:37 +01:00
Bastian Köcher 1f6719346f Make runtime api generate version and identifier information (#1226)
* Make `decl_runtime_apis!` implement `RuntimeApiInfo` for all runtime
apis

* Make the runtime side generate the info constants as well

* Make `RuntimeApiInfo` implementation use the correct generics

* Adds a test for the runtime api info stuff

* Remove duplicated code by using block from `test-client`

* Adds `compile_fail` tests for `api_version`

* Adds documentation for `api_version`

* Make `impl_runtime_apis!` generate `RUNTIME_API_VERSIONS`

* Update documentation and tests for `RUNTIME_API_VERSIONS`

* Implement `has_api` by using the `RuntimeApiInfo`

* Make `impl_runtime_apis` check that trait identifiers are unique

* Prefix all runtime api function with the corresponding trait

So `execute_block` will be called `Core_execute_block`.
This makes it possible to have traits implement a function with the
same name.

* Rebase master

* Update after master rebase
2018-12-10 11:48:07 +01:00
Bastian Köcher a4a67ccbe7 Make cli subcommands accept --dev, --chain and --base_path (#1214)
This restores an old behavior with more checks to inform the user
about misuse.
Only the `build-spec` parameter is not accepting these flags and options.
This subcommand only works with the options specified on the main command,
this is a restriction of the current cli parse/execute design.
2018-12-10 08:45:22 +01:00
Bastian Köcher 6caadd1968 Update rocksdb to try minimizing memory leaks (#1207)
* Update `rocksdb` to try minimizing memory leaks

* Update required dependencies
2018-12-05 13:54:13 +01:00
Bastian Köcher 69a288e586 Cleanup the cli interface (#1194)
Parameters like `--dev`, `--base-path` or `--chain` were replicated
for each subcommand and were also present in the "top". This pr removes
these parameters from the subcommands.
The subcommands also ignored stuff like `--dev` as it was only read in
the top matcher, that did not look into the subcommand matchers.
Now, if you specify one of the parameters for a subcommand, you will get
an error instead of silently ignoring it.
2018-12-03 10:16:06 +01:00
Bastian Köcher af918ce556 Make sr-api-macros require at least syn-0.15.22 (#1195) 2018-12-03 10:15:41 +01:00
Bastian Köcher 1dc56b48ab Make AuthorityId serialize/deserialize to/from ss58 (#1180)
* Make `AuthorityId` serialize/deserialize to/from `ss58`

* Updates the wasm files
2018-11-30 16:52:48 +01:00
Bastian Köcher ed421c56ee Rewrite impl_runtime_apis! and decl_runtime_apis! as proc-macro (#1174)
* Rewrites `impl_runtime_apis!` macro as `proc-macro`

* Adds some documentation

* Require the `impl_runtime_apis` to use a path for accessing the trait

* Make the runtime implement `GetNodeBlockType`

* Moves first chunk of runtime api code into the `impl_runtime_apis` macro

This also renames `ClientWithApi` into `RuntimeApi`.

* Make `impl_runtime_apis` use `runtime` api version automatically

* `decl_runtime_apis` automatically adds `Block: BlockT` as generic parameter

* Remove function generic arguments in block builder api

* Remove some unnused stuff from the `decl_runtime_apis` macro

* Make `InherentData` working again

* Make `impl_runtime_apis!` implement the `RuntimeApi` side as well

* Make it compile again after rebasing with master

* Split `sr-api-macros` into multiple files

* Reimplement `decl_runtime_apis!` as proc_macro

* Use `decl_runtime_apis!` for `Core` as well and improve error reporting

* Adds documentation for `decl_runtime_apis!` and `impl_runtime_apis!`

* Move some code

* Adds compile fail tests

* Adds a test and fixes some bugs

* Make `impl_runtime_apis!` support `_` as parameter name

* Fixes build errors with wasm

* Wasm rebuild after master rebase

* Apply suggestions from code review

Co-Authored-By: bkchr <bkchr@users.noreply.github.com>

* Addresses some grumbles

* Adds test to ensure that method signatures need to match

* New wasm files
2018-11-30 11:42:46 +01:00
Bastian Köcher 41aec063df Make grandpa export its calls (#1153) 2018-11-22 17:13:43 +01:00