* Add Assets module
* Fixes
* Fix
* Update comments
* Support `GenesisConfig` without any fields
Fixes: #923
* Do not generate an empty `GenesisConfig`, instead generate no `GenesisConfig`
* Adds new `ProvideInherent` trait
Also implements the new trait for `srml/consensus` and `srml/timestamp`.
* Adds `impl_outer_inherent!` macro
* Reexport macros from `alloc`
* Introduce `RuntimeString` and fix `ProvideInherent` on `no_std`
* Replace `VersionString` with `RuntimeString`
* Improvements for `impl_outer_inherent!`
* Make `construct_runtime!` support `impl_outer_inherent!`
* Fixes after rebase
* Whitespace
* Try to make everything compact
* Make `Clone` work
* Fix
* Move contracts and balances over to compact encoding
* Session and timestamp are compact
* Sataking uses compact numbers
* Treasury now compact
* Compact Democracy
* Council is compact
* Fix
* Adds new `check_inherents` function to the `BlockBuilder` API
* Switch to `check_inherents` in `node-consensus`
* Remove `CheckedBlock`, because it is not required anymore
* Fixes after rebase
* Fixes compilation on stable
* Make the graph generic.
* Adapting pool API for the graph.
* Merge pool & graph.
* Restructure.
* Fix test of transaction pool.
* Get rid of node/transaction-pool.
* Compilation fixes.
* Test7
* Fix compilation of tests.
* Revert runtime changes.
* Add validate_transaction to test-runtime.
* Fix RPC tests.
* Add clearing of the old transactions.
* Trigger pool events.
* Use new queue API.
* Fix wasm build, re-export Hasher.
* No warning if validate transaction fails.
* Get rid of Into<u64> and use As
* Rename `NewTxQueue` to `TaggedTransactionQueue`
* Remove `BlockBuilder` API and support adding documentation to the API functions
* Adds new `BlockBuilder` API
* Fixes compilation with new `BlockBuilder` API
* Some more cleanup
* Cargo.lock update
* Try to fix on stable
* Add missing `As` imports.
* Adds new API traits that will be used by the client and runtime
* Switch consensus to new API's
* Switches transaction-pool to new API's
* Move runtime api stuff into its own crate
* Adds `impl_apis!` macro for implementing the new API traits
* Make `metadata` return directly a blob
* Runtime replace `impl_stubs!` with `impl_apis!`
* Switches to none feature based approach for declaring the different API traits
* Fixes compilation error
* Fixes errors
* Make the `decl_apis!` trait usable from the outside
* Make the `test-client` use the new API traits
* Remove last `impl_stubs!` bits and move some of them into wasm executor for tests
* A little bit more documentation
* implement grandpa client
* consensus gossip with arbitrary topics
* defer GRANDPA messages until referenced blocks imported
* set up communication for voter in a transparent way
* instantiate GRANDPA voter
* keep last round state on disk
* switch back to crates.io finality-grandpa
* update cargo.lock
* use new `collect_garbage` API
* update sync test framework and make public
* test that observers can observe
* fix warning
* use more idiomatic predicate for collecting garbage in gossip
* kill spaces
* fix date
* fatal error when unable to complete
* rename run_voter to run_grandpa
* switch back to crates.io
* implement grandpa client
* consensus gossip with arbitrary topics
* defer GRANDPA messages until referenced blocks imported
* set up communication for voter in a transparent way
* instantiate GRANDPA voter
* keep last round state on disk
* switch back to crates.io finality-grandpa
* update cargo.lock
* use new `collect_garbage` API
* update sync test framework and make public
* test that observers can observe
* fix warning
* use more idiomatic predicate for collecting garbage in gossip
* kill spaces
* fix date
* Remove `node-api` from `node-consensus` and `node-transaction-pool`
* Remove the `node-api` crate and its last usages
* Remove left over file
* Fixes compilation errors
* Switch to `As` trait
* Rename trait
* Whitespace
* add stub for Client.best_chain_containing_block_hash
* add fn blockchain::Backend::leaf_hashes
* fix typo
* sketch out Client.best_chain_containing_block_hash
* fix indent
* Blockchain.leaf_hashes -> Blockchain.leaves
* add unimplemented! stub impls for Blockchain.leaves
* start impl of Blockchain.leaves for in-memory client db
* Client.best_chain_containing...: check canonical first and make compile
* first rough attempt at maintaining leaf list in in-memory db
* fix tab indent
* add test best_chain_containing_single_block
* add failing test best_chain_containing_with_fork
* pub use client::blockchain; in test-client to prevent circular dep in client tests
* best_chain_containing_with_single_block: improve and test leaves
* far improve in-memory Backend::leaves impl
* test blockchain::Backend::leaves more thoroughly
* handle more edge cases in blockchain::Backend::leaves impl for in memory
* fix test best_chain_containing_with_fork (two distinct test blocks had same hash)
* make best_chain_containing_block_hash pass existing tests
* improve docstring for Blockchain::leaves
* Client.best_chain_containing: some cleanup. support max_block_number
* best_chain_containing: remove broken outcommented fast check for best = canonical
* remove blank line
* best_block_containing: return None if target_hash not found
* best_chain_containing: add unreachable! at end of function
* improve tests for best_chain_containing
* renames
* more elaborate test scenario for best_containing
* best_containing: fix restriction of search through maybe_max_number
* best_containing: tests for restriction of search
* get rid of unnecessary clones
* replace Client::new_in_mem by new_with_backend which is useful for testing backends
* add test_client::new_with_backend for testing different backend impls
* add test for in_mem::Backend::leaves
* remove unused imports
* in_mem test_leaves: simplify
* flesh out tests for in_mem leaves impl
* remove tests for leaves from client which are now covered in implementing module
* improve comment
* add Client.new_in_mem again
* unwrap in test_client::new_with_backend
* make test_client::BlockBuilderExt work not just with in-mem backend
* make test client ext not just work with in mem backend
* add failing Backend.leaves test for client-db
* update Cargo.lock
* replace KeccakHasher with Blake2Hasher
* refactor
address grumble https://github.com/paritytech/substrate/pull/740#discussion_r217822862
* refactor using NumberFor
address grumble https://github.com/paritytech/substrate/pull/740#discussion_r217823341
* add test that exposes possible problem
* update docstring for Client.best_containing
* extract test for Backend.leaves for reuse
* improve test blockchain_header_and_hash_return_blocks_from_canonical_chain_given_block_numbers
* extract test_blockchain_query_by_number_gets_canonical to easily test multiple impls
* remove whitespace
* remove todo
* Client.best_containing: pre-empt search loop when target in canonical
* best_containing: prevent race condition by holding import lock
* add todo
* extract leaf list update code into function
* add comment
* client-db: use in-memory-kvdb for tests
* use BTreeSet to store leaves for in-mem which is faster and simpler
* add docstring
* add comments and fix formatting
* add initial raw version of LeafSet
* remove Client::update_leaves which has been superceded by LeafSet
* use LeafSet in in-mem backend
* keccak -> blake2
* don't reexport codec traits in primitives
addresses https://github.com/paritytech/substrate/pull/740#discussion_r219538185
* fix rebase mistake
* improve LeafSet and use it in state-db
* correct Transfer nonces to fix ApplyExtinsicFailed(Stale)
* use given backend in canoncal test
* kill dead tree-route code in util
* fix warnings
* tests for leafset
* reorganizations in in_mem backend
* fix reorganization canon block logic
* DB commit and safe reversion on write error
* fix style nits
* Rewrite the libp2p networking
* Fix erroneous replacement during rebase
* Update libp2p
* Update libp2p
* Remove the logic error about useless substreams
* Use the new NodeHandler system of libp2p
* Commit the Cargo.lock
* Upgrade yamux
* Forward port latest changes
* Fix compilation issues
* Implement the external URL
* Update to latest networking fixes
* Forward port rest of v0.2
* Fix reserved peers being dropped when we're full
* Move module metadata from json string to custom metadata
* Revisit the metadata structures
1. Move the structures into the metadata crate.
2. Switch to using Cow/MaybeOwnedArray to support Encode/Decode
* Adapt to new metadata structures
* Convert event json metadata to new metadata structures
* Convert storage json metadata to new metadata structures
* Convert runtime metadata from json to new metadata structs
* Implements new metadata structures in client and runtime
* Fixes errors on `no_std`
* Fixes errors after rebasing master
* Do not use `Cow` anymore in metadata
Also replace `String` with our own type definition `StringBuf`.
This fixes compilation on `no_std`.
* Wrap `RuntimeMetadata` in `RuntimeMetadataVersioned` to support versioning
* Move metadata into `srml` and make core unaware of the implementation
* First effort
* API versioning
* Introduce validate_transaction
* Introduce the API plus fixes.
* Docs
* Typo
* Add longevity parameter to transaction validity info.
* Make `system` module renamable in `impl_outer_event!`
* Implement `construct_runtime!` macro
This macro generates code for calling all the common `impl_outer_*` macros.
* Add documentation
* Fixes wrong declaration of `contract`
* Update dependencies to work on `no_std`
* One more `Cargo.lock` update
* Address comments
* Remove unneeded script
* Rename Substrate Demo -> Substrate
* Rename demo -> node
* Build wasm from last rename.
* Merge ed25519 into substrate-primitives
* Minor tweak
* Rename substrate -> core
* Move substrate-runtime-support to core/runtime/support
* Rename/move substrate-runtime-version
* Move codec up a level
* Rename substrate-codec -> parity-codec
* Move environmental up a level
* Move pwasm-* up to top, ready for removal
* Remove requirement of s-r-support from s-r-primitives
* Move core/runtime/primitives into core/runtime-primitives
* Remove s-r-support dep from s-r-version
* Remove dep of s-r-support from bft
* Remove dep of s-r-support from node/consensus
* Sever all other core deps from s-r-support
* Forgot the no_std directive
* Rename non-SRML modules to sr-* to avoid match clashes
* Move runtime/* to srml/*
* Rename substrate-runtime-* -> srml-*
* Move srml to top-level
* Introduce data and salt into ContractAddressFor
* Accept salt arg in ext_create.
* Integrate contracts into the demo runtime
* Make libcontract compile to wasm
* Remove salt parameter.
This now is concern of userspace.
* Rebuild binaries.
* Adds `impl_json_metadata!` for generating all metadata of a runtime
* Adds `json_metadata` RPC call
* Adds simple test for the `json_metadata` RPC call
* Implements json metadata in the demo runtime
* Fix indent
* Adds missing copyright headers
* Dispatch json metadata renamings and improvements
* Replaces `format!` & `String` with `Vec<JSONMetadata`
* Implements `Encode` and `Decode` for JSONMetadata
* Make `impl_json_metadata!` compileable on `no_std`
* Adapt the client to decode the correct type for `json_metadata`
* Fixes compile error and warning
* Whitespace