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
Showing
- substrate/Cargo.lock 3 additions, 3 deletionssubstrate/Cargo.lock
- substrate/core/client/src/client.rs 23 additions, 7 deletionssubstrate/core/client/src/client.rs
- substrate/core/client/src/genesis.rs 6 additions, 6 deletionssubstrate/core/client/src/genesis.rs
- substrate/core/client/src/light/call_executor.rs 2 additions, 2 deletionssubstrate/core/client/src/light/call_executor.rs
- substrate/core/client/src/runtime_api.rs 21 additions, 47 deletionssubstrate/core/client/src/runtime_api.rs
- substrate/core/executor/src/native_executor.rs 1 addition, 1 deletionsubstrate/core/executor/src/native_executor.rs
- substrate/core/finality-grandpa/src/tests.rs 9 additions, 5 deletionssubstrate/core/finality-grandpa/src/tests.rs
- substrate/core/rpc/src/chain/tests.rs 2 additions, 9 deletionssubstrate/core/rpc/src/chain/tests.rs
- substrate/core/service/src/consensus.rs 5 additions, 5 deletionssubstrate/core/service/src/consensus.rs
- substrate/core/sr-api-macros/Cargo.toml 3 additions, 3 deletionssubstrate/core/sr-api-macros/Cargo.toml
- substrate/core/sr-api-macros/src/compile_fail_tests.rs 119 additions, 129 deletionssubstrate/core/sr-api-macros/src/compile_fail_tests.rs
- substrate/core/sr-api-macros/src/decl_runtime_apis.rs 128 additions, 14 deletionssubstrate/core/sr-api-macros/src/decl_runtime_apis.rs
- substrate/core/sr-api-macros/src/impl_runtime_apis.rs 127 additions, 39 deletionssubstrate/core/sr-api-macros/src/impl_runtime_apis.rs
- substrate/core/sr-api-macros/src/lib.rs 55 additions, 29 deletionssubstrate/core/sr-api-macros/src/lib.rs
- substrate/core/sr-api-macros/tests/decl_and_impl.rs 48 additions, 33 deletionssubstrate/core/sr-api-macros/tests/decl_and_impl.rs
- substrate/core/sr-primitives/src/lib.rs 14 additions, 2 deletionssubstrate/core/sr-primitives/src/lib.rs
- substrate/core/sr-primitives/src/traits.rs 8 additions, 0 deletionssubstrate/core/sr-primitives/src/traits.rs
- substrate/core/sr-version/src/lib.rs 21 additions, 16 deletionssubstrate/core/sr-version/src/lib.rs
- substrate/core/test-runtime/src/lib.rs 3 additions, 3 deletionssubstrate/core/test-runtime/src/lib.rs
- substrate/core/test-runtime/wasm/Cargo.lock 6 additions, 4 deletionssubstrate/core/test-runtime/wasm/Cargo.lock
Please register or sign in to comment