Commit 29ea9e0a authored by Alexandru Vasile's avatar Alexandru Vasile Committed by GitHub
Browse files

Metadata V15: Add Runtime API metadata (#13302)



* impl_runtime_apis: Generate getters for `metadata_at` functions

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* runtime: Implement new `Metadata` runtime trait

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* runtime: Move `metadata_at` functions to construct_runtime macro

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* contruct_runtime: Use `OpaqueMetadata` from hidden imports

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Adjust testing

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame/tests: Add tests for the new API

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/proc-macro: Helper to extract documentation literals

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/proc-macro: Helper to filter all `cfg` attributes

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/proc-macro: Generate documentation getters for metadata

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/proc-macro: Avoid trait collision with snake case methods

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* proc-macro/tests: Check doc getters

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/proc-macro: Generate metadata for runtime methods

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/api: Export scale-info and frame-metadata

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/proc-macro: Generate metadata for runtime traits

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame/runtime: Expose metadata v15 internally

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* test: Use metadata v15 from `lexnv/md_v15_test` branch

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/proc-macro: Generate crate access one module up

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame: Implement `runtime_metadata` for mocks and tests

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/proc-macro: Fix warnings

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/proc-macro: Add no-docs flag

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame: Adjust more tests

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame/tests: Check runtime metadata correctness

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame/benchmarking: Adjust benchmarks

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame/benchmarks: Adjust more benchmarks

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/api: Fix clippy

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/proc-macro: Generate runtime metadata on the `decl_runtime_apis`

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame: Abuse Deref to resolve `runtime_metadata`

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Revert "frame: Implement `runtime_metadata` for mocks and tests"

This reverts commit b7f41aa189218589392a6e713ea9488e93c4db45.

Revert "frame: Adjust more tests"

This reverts commit 3cba5982c7f45552e76335e96c430aecbc42d8c6.

Revert "frame/benchmarking: Adjust benchmarks"

This reverts commit 60b382ada486c791ffceeb65da587e949b90ec5d.

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

Revert "frame/benchmarks: Adjust more benchmarks"

This reverts commit eb75c477179b1a27347a5554c5732ef26a00d7e8.

* primitives/proc-macro: Remove unused imports and function

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame/support: Adjust runtime metadata test

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/tests: Remove doc getter test

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame/support: Enable `no-metadata-docs` feature from `sp-api`

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/tests: Add `TypeInfo` for test::extrinsic

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/api: Expose scale-info and frame-metadata

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Update frame-metadata to include v15

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Fix merge conflicts

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame/metadata_ir: Add IR for runtime API metadata

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame/metadata_ir: Convert IR to V15

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/api: Collect IR metadata for runtime API

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/api: Move `metadata_ir` from frame/support

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame/tests: Adjust testing

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame/tests: Adjust `metadata_versions` test

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/runtime_metadata: Exclude default type parameters from methods

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Update primitives/api/proc-macro/src/runtime_metadata.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* Update primitives/api/src/metadata_ir/types.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* Update primitives/api/src/metadata_ir/mod.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* Update primitives/api/proc-macro/src/utils.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* Update primitives/api/proc-macro/src/runtime_metadata.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* Update primitives/api/proc-macro/src/runtime_metadata.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* Update primitives/api/proc-macro/src/runtime_metadata.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* Update primitives/api/proc-macro/src/runtime_metadata.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* Update primitives/api/proc-macro/src/runtime_metadata.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* Update primitives/api/proc-macro/src/runtime_metadata.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* primitives: Fix build

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives/metadata-ir: Move IR to dedicated crate

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives: Reexport metadata-ir and frame-metadata

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* frame: Use apis field instead of runtime

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Better documentation for the `Deref` abstraction

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* ui-tests: Check empty `impl_runtime_apis`

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives: Remove unneeded bounds on generic params

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives: Rename `collect_where_bounds` to `get_argument_type_param`

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives: Generate crate access per fn call

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Revert "primitives: Remove unneeded bounds on generic params"

This reverts commit 5178e38cf21cfb481156eefd628d62989201d59a.

* metadata-ir: Add no-std

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* primitives: Adjust where bounds

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Change `frame-metadata` branch to "origin/main"

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Update to `main` from origin

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Update frame-metadata to crates.io v15.1

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Revert "ui-tests: Check empty `impl_runtime_apis`"

This reverts commit cf78a7190ad9cba3c3bb2e78dc3d0dc382b2fea9.

* Move ui test to primitives/ui

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Update frame/support/test/tests/runtime_metadata.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* Update primitives/api/proc-macro/src/runtime_metadata.rs

Co-authored-by: default avatarBastian Köcher <[email protected]>

* Test already covered by `empty_impl_runtime_apis_call.stderr`

This reverts commit 3bafb294cbe9745569bf5e5a1a2e6b4a4c1aadc5.

* Retriger CI

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

* Import `TokenStream` as `TokenStream2`

Signed-off-by: default avatarAlexandru Vasile <[email protected]>

---------

Signed-off-by: default avatarAlexandru Vasile <[email protected]>
Co-authored-by: parity-processbot <>
Co-authored-by: default avatarBastian Köcher <[email protected]>
parent 17765733
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment