Skip to content

Commit

Permalink
CI: markdown link checker (paritytech#7145)
Browse files Browse the repository at this point in the history
* change (CI): markdown link checker

* Fix some invalid doc links (re-run of cargo-unleash gen-readme w/ fixes).

* Fix some invalid doc links

* Fix some invalid doc links

* Fix some links

* Fix some links

* Apply @bkchr suggestions from code review

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

* Fix more links

* Fix more links

* typo

* Fix more links

* Fix more links

* Ignore valid link .. check wrongly sees it as invalid

* Fix style issue

* Fix style issue

* change (CI): update style guide link

* change (lib): suggestions

Co-authored-by: Dan Forbes <[email protected]>
Co-authored-by: Steve Degosserie <[email protected]>
Co-authored-by: Bastian Köcher <[email protected]>
  • Loading branch information
4 people authored Nov 5, 2020
1 parent b61d3b3 commit a285701
Show file tree
Hide file tree
Showing 30 changed files with 148 additions and 67 deletions.
19 changes: 19 additions & 0 deletions .github/workflows/md-link-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Check Links

on:
pull_request:
branches:
- master
push:
branches:
- master

jobs:
markdown-link-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
use-quiet-mode: 'yes'
config-file: '.github/workflows/mlc_config.json'
7 changes: 7 additions & 0 deletions .github/workflows/mlc_config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"ignorePatterns": [
{
"pattern": "^https://crates.io"
}
]
}
7 changes: 4 additions & 3 deletions .maintain/chaostest/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- markdown-link-check-disable -->
chaostest
=========

Expand Down Expand Up @@ -56,7 +57,7 @@ DESCRIPTION
Extra documentation goes here
```

_See code: [src/commands/spawn/index.js](https://github.com/paritytech/substrate/blob/harry/chaostest-init/.maintain/chaostest/src/commands/spawn/index.js)_
_See code: [src/commands/spawn/index.js](https://github.com/paritytech/substrate/blob/master/.maintain/chaostest/src/commands/spawn/index.js)_

## `chaostest singlenodeheight`

Expand All @@ -71,7 +72,7 @@ FLAGS
-t, the wait time out before it halts the polling
```

_See code: [src/commands/singlenodeheight/index.js](https://github.com/paritytech/substrate/blob/harry/chaostest-init/.maintain/chaostest/src/commands/singlenodeheight/index.js)_
_See code: [src/commands/singlenodeheight/index.js](https://github.com/paritytech/substrate/blob/master/.maintain/chaostest/src/commands/singlenodeheight/index.js)_

## `chaostest clean`

Expand All @@ -85,5 +86,5 @@ FLAGS
-n , the desired namespace to delete on your k8s cluster
```

_See code: [src/commands/clean/index.js](https://github.com/paritytech/substrate/blob/harry/chaostest-init/.maintain/chaostest/src/commands/clean/index.js)_
_See code: [src/commands/clean/index.js](https://github.com/paritytech/substrate/blob/master/.maintain/chaostest/src/commands/clean/index.js)_
<!-- commandsstop -->
4 changes: 2 additions & 2 deletions .maintain/gitlab/check_line_width.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ do
echo "| error!"
echo "| Lines must not be longer than ${LINE_WIDTH} characters."
echo "| "
echo "| see more https://wiki.parity.io/Substrate-Style-Guide"
echo "| see more https://github.com/paritytech/substrate/blob/master/docs/STYLE_GUIDE.md"
echo "|"
FAIL="true"
fi
Expand All @@ -41,7 +41,7 @@ do
echo "| warning!"
echo "| Lines should be longer than ${GOOD_LINE_WIDTH} characters only in exceptional circumstances!"
echo "| "
echo "| see more https://wiki.parity.io/Substrate-Style-Guide"
echo "| see more https://github.com/paritytech/substrate/blob/master/docs/STYLE_GUIDE.md"
echo "|"
fi
echo "| file: ${file}"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Substrate &middot; [![GitHub license](https://img.shields.io/badge/license-GPL3%2FApache2-blue)](LICENSE) [![GitLab Status](https://gitlab.parity.io/parity/substrate/badges/master/pipeline.svg)](https://gitlab.parity.io/parity/substrate/pipelines) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](docs/CONTRIBUTING.adoc)
# Substrate &middot; [![GitHub license](https://img.shields.io/badge/license-GPL3%2FApache2-blue)](#LICENSE) [![GitLab Status](https://gitlab.parity.io/parity/substrate/badges/master/pipeline.svg)](https://gitlab.parity.io/parity/substrate/pipelines) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](docs/CONTRIBUTING.adoc)

<p align="center">
<img src="/docs/media/sub.gif">
Expand Down
2 changes: 1 addition & 1 deletion bin/node-template/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ RUST_LOG=debug RUST_BACKTRACE=1 ./target/release/node-template -lruntime=debug -
### Multi-Node Local Testnet

To see the multi-node consensus algorithm in action, run a local testnet with two validator nodes,
Alice and Bob, that have been [configured](/bin/node-template/node/src/chain_spec.rs) as the initial
Alice and Bob, that have been [configured](./node/src/chain_spec.rs) as the initial
authorities of the `local` testnet chain and endowed with testnet units.

Note: this will require two terminal sessions (one for each node).
Expand Down
2 changes: 1 addition & 1 deletion client/block-builder/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Substrate block builder

This crate provides the [`BlockBuilder`] utility and the corresponding runtime api
[`BlockBuilder`](sp_block_builder::BlockBuilder).Error
[`BlockBuilder`](https://docs.rs/sc-block-builder/latest/sc_block_builder/struct.BlockBuilder.html).Error

The block builder utility is used in the node as an abstraction over the runtime api to
initialize a block, to push extrinsics and to finalize a block.
Expand Down
2 changes: 1 addition & 1 deletion client/block-builder/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
//! Substrate block builder
//!
//! This crate provides the [`BlockBuilder`] utility and the corresponding runtime api
//! [`BlockBuilder`](sp_block_builder::BlockBuilder).Error
//! [`BlockBuilder`](sp_block_builder::BlockBuilder).
//!
//! The block builder utility is used in the node as an abstraction over the runtime api to
//! initialize a block, to push extrinsics and to finalize a block.
Expand Down
2 changes: 1 addition & 1 deletion client/chain-spec/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This crate contains structs and utilities to declare
a runtime-specific configuration file (a.k.a chain spec).

Basic chain spec type containing all required parameters is
[`ChainSpec`](https://docs.rs/sc-chain-spec/latest/sc_chain_spec/struct.ChainSpec.html). It can be extended with
[`ChainSpec`](https://docs.rs/sc-chain-spec/latest/sc_chain_spec/struct.GenericChainSpec.html). It can be extended with
additional options that contain configuration specific to your chain.
Usually the extension is going to be an amalgamate of types exposed
by Substrate core modules. To allow the core modules to retrieve
Expand Down
2 changes: 1 addition & 1 deletion client/chain-spec/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
//! a runtime-specific configuration file (a.k.a chain spec).
//!
//! Basic chain spec type containing all required parameters is
//! [`ChainSpec`](./struct.ChainSpec.html). It can be extended with
//! [`GenericChainSpec`]. It can be extended with
//! additional options that contain configuration specific to your chain.
//! Usually the extension is going to be an amalgamate of types exposed
//! by Substrate core modules. To allow the core modules to retrieve
Expand Down
2 changes: 1 addition & 1 deletion client/consensus/babe/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,6 @@ primary blocks in the chain. We will pick the heaviest chain (more primary
blocks) and will go with the longest one in case of a tie.

An in-depth description and analysis of the protocol can be found here:
<https://research.web3.foundation/en/latest/polkadot/BABE/Babe.html>
<https://research.web3.foundation/en/latest/polkadot/block-production/Babe.html>

License: GPL-3.0-or-later WITH Classpath-exception-2.0
2 changes: 1 addition & 1 deletion client/consensus/babe/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
//! blocks) and will go with the longest one in case of a tie.
//!
//! An in-depth description and analysis of the protocol can be found here:
//! <https://research.web3.foundation/en/latest/polkadot/BABE/Babe.html>
//! <https://research.web3.foundation/en/latest/polkadot/block-production/Babe.html>
#![forbid(unsafe_code)]
#![warn(missing_docs)]
Expand Down
2 changes: 1 addition & 1 deletion docs/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Before you submitting, please check that:
- [ ] Github's project assignment
- [ ] You mentioned a related issue if this PR related to it, e.g. `Fixes #228` or `Related #1337`.
- [ ] You asked any particular reviewers to review. If you aren't sure, start with GH suggestions.
- [ ] Your PR adheres to [the style guide](https://wiki.parity.io/Substrate-Style-Guide)
- [ ] Your PR adheres to [the style guide](https://github.com/paritytech/substrate/blob/master/docs/STYLE_GUIDE.md)
- In particular, mind the maximal line length of 100 (120 in exceptional circumstances).
- There is no commented code checked in unless necessary.
- Any panickers have a proof or removed.
Expand Down
1 change: 1 addition & 0 deletions docs/SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- markdown-link-check-disable -->
# Security Policy

Parity Technologies is committed to resolving security vulnerabilities in our software quickly and carefully. We take the necessary steps to minimize risk, provide timely information, and deliver vulnerability fixes and mitigations required to address security issues.
Expand Down
2 changes: 1 addition & 1 deletion frame/balances/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ dealing with accounts that allow liquidity restrictions.
- [`Imbalance`](https://docs.rs/frame-support/latest/frame_support/traits/trait.Imbalance.html): Functions for handling
imbalances between total issuance in the system and account balances. Must be used when a function
creates new funds (e.g. a reward) or destroys some funds (e.g. a system fee).
- [`IsDeadAccount`](https://docs.rs/frame-system/latest/frame_system/trait.IsDeadAccount.html): Determiner to say whether a
- [`IsDeadAccount`](https://docs.rs/frame-support/latest/frame_support/traits/trait.IsDeadAccount.html): Determiner to say whether a
given account is unused.

## Interface
Expand Down
2 changes: 1 addition & 1 deletion frame/balances/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
//! - [`Imbalance`](../frame_support/traits/trait.Imbalance.html): Functions for handling
//! imbalances between total issuance in the system and account balances. Must be used when a function
//! creates new funds (e.g. a reward) or destroys some funds (e.g. a system fee).
//! - [`IsDeadAccount`](../frame_system/trait.IsDeadAccount.html): Determiner to say whether a
//! - [`IsDeadAccount`](../frame_support/traits/trait.IsDeadAccount.html): Determiner to say whether a
//! given account is unused.
//!
//! ## Interface
Expand Down
2 changes: 1 addition & 1 deletion frame/benchmarking/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ The benchmarking framework comes with the following tools:
* [A set of macros](./src/lib.rs) (`benchmarks!`, `add_benchmark!`, etc...) to make it easy to
write, test, and add runtime benchmarks.
* [A set of linear regression analysis functions](./src/analysis.rs) for processing benchmark data.
* [A CLI extension](../../utils/benchmarking-cli/) to make it easy to execute benchmarks on your
* [A CLI extension](../../utils/frame/benchmarking-cli/) to make it easy to execute benchmarks on your
node.

The end-to-end benchmarking pipeline is disabled by default when compiling a node. If you want to
Expand Down
7 changes: 4 additions & 3 deletions frame/example-offchain-worker/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- markdown-link-check-disable -->
# Offchain Worker Example Module

The Offchain Worker Example: A simple pallet demonstrating
Expand All @@ -6,9 +7,9 @@ concepts, APIs and structures common to most offchain workers.
Run `cargo doc --package pallet-example-offchain-worker --open` to view this module's
documentation.

- [`pallet_example_offchain_worker::Trait`](https://docs.rs/pallet-example-offchain-worker/latest/pallet_example_offchain_worker/trait.Trait.html)
- [`Call`](https://docs.rs/pallet-example-offchain-worker/latest/pallet_example_offchain_worker/enum.Call.html)
- [`Module`](https://docs.rs/pallet-example-offchain-worker/latest/pallet_example_offchain_worker/struct.Module.html)
- [`pallet_example_offchain_worker::Trait`](./trait.Trait.html)
- [`Call`](./enum.Call.html)
- [`Module`](./struct.Module.html)


## Overview
Expand Down
1 change: 1 addition & 0 deletions frame/example-offchain-worker/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

//! <!-- markdown-link-check-disable -->
//! # Offchain Worker Example Module
//!
//! The Offchain Worker Example: A simple pallet demonstrating
Expand Down
1 change: 1 addition & 0 deletions frame/example/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- markdown-link-check-disable -->
# Example Pallet

<!-- Original author of paragraph: @gavofyork -->
Expand Down
1 change: 1 addition & 0 deletions frame/example/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

//! <!-- markdown-link-check-disable -->
//! # Example Pallet
//!
//! <!-- Original author of paragraph: @gavofyork -->
Expand Down
2 changes: 1 addition & 1 deletion frame/society/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Of the non-suspended members, there is always a:

Of the non-suspended members of the society, a random set of them are chosen as
"skeptics". The mechanics of skeptics is explained in the
[member phase](#member-phase) below.
[member phase](https://docs.rs/pallet-society/latest/pallet_society/#member-phase) below.

### Mechanics

Expand Down
20 changes: 10 additions & 10 deletions frame/staking/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ There are three possible roles that any staked account pair can be in: `Validato
and `Idle` (defined in [`StakerStatus`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.StakerStatus.html)). There are three
corresponding instructions to change between roles, namely:
[`validate`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.validate),
[`nominate`](./enum.Call.html#variant.nominate), and [`chill`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.chill).
[`nominate`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.nominate), and [`chill`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.chill).

#### Validating

Expand All @@ -81,7 +81,7 @@ between the validator and its nominators. This rule incentivizes the nominators
the misbehaving/offline validators as much as possible, simply because the nominators will also
lose funds if they vote poorly.

An account can become a nominator via the [`nominate`](enum.Call.html#variant.nominate) call.
An account can become a nominator via the [`nominate`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.nominate) call.

#### Rewards and Slash

Expand All @@ -102,15 +102,15 @@ Slashing logic is further described in the documentation of the `slashing` modul

Similar to slashing, rewards are also shared among a validator and its associated nominators.
Yet, the reward funds are not always transferred to the stash account and can be configured. See
[Reward Calculation](#reward-calculation) for more details.
[Reward Calculation](https://docs.rs/pallet-staking/latest/pallet_staking/#reward-calculation) for more details.

#### Chilling

Finally, any of the roles above can choose to step back temporarily and just chill for a while.
This means that if they are a nominator, they will not be considered as voters anymore and if
they are validators, they will no longer be a candidate for the next election.

An account can step back via the [`chill`](enum.Call.html#variant.chill) call.
An account can step back via the [`chill`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.chill) call.

### Session managing

Expand Down Expand Up @@ -183,7 +183,7 @@ they received during the era. Points are added to a validator using
[`reward_by_ids`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.reward_by_ids) or
[`reward_by_indices`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.reward_by_indices).

[`Module`](./struct.Module.html) implements
[`Module`](https://docs.rs/pallet-staking/latest/pallet_staking/struct.Module.html) implements
[`pallet_authorship::EventHandler`](https://docs.rs/pallet-authorship/latest/pallet_authorship/trait.EventHandler.html) to add reward
points to block producer and block producer of referenced uncles.

Expand All @@ -198,11 +198,11 @@ validator and all of the nominators that nominated the validator, proportional t
staked behind this validator (_i.e._ dividing the
[`own`](https://docs.rs/pallet-staking/latest/pallet_staking/struct.Exposure.html#structfield.own) or
[`others`](https://docs.rs/pallet-staking/latest/pallet_staking/struct.Exposure.html#structfield.others) by
[`total`](./struct.Exposure.html#structfield.total) in [`Exposure`](https://docs.rs/pallet-staking/latest/pallet_staking/struct.Exposure.html)).
[`total`](https://docs.rs/pallet-staking/latest/pallet_staking/struct.Exposure.html#structfield.total) in [`Exposure`](https://docs.rs/pallet-staking/latest/pallet_staking/struct.Exposure.html)).

All entities who receive a reward have the option to choose their reward destination through the
[`Payee`](https://docs.rs/pallet-staking/latest/pallet_staking/struct.Payee.html) storage item (see
[`set_payee`](enum.Call.html#variant.set_payee)), to be one of the following:
[`set_payee`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.set_payee)), to be one of the following:

- Controller account, (obviously) not increasing the staked value.
- Stash account, not increasing the staked value.
Expand All @@ -213,14 +213,14 @@ All entities who receive a reward have the option to choose their reward destina
Any funds already placed into stash can be the target of the following operations:

The controller account can free a portion (or all) of the funds using the
[`unbond`](enum.Call.html#variant.unbond) call. Note that the funds are not immediately
accessible. Instead, a duration denoted by [`BondingDuration`](https://docs.rs/pallet-staking/latest/pallet_staking/struct.BondingDuration.html)
[`unbond`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.unbond) call. Note that the funds are not immediately
accessible. Instead, a duration denoted by [`BondingDuration`](https://docs.rs/pallet-staking/latest/pallet_staking/trait.Trait.html#associatedtype.BondingDuration)
(in number of eras) must pass until the funds can actually be removed. Once the
`BondingDuration` is over, the [`withdraw_unbonded`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.withdraw_unbonded)
call can be used to actually withdraw the funds.

Note that there is a limitation to the number of fund-chunks that can be scheduled to be
unlocked in the future via [`unbond`](enum.Call.html#variant.unbond). In case this maximum
unlocked in the future via [`unbond`](https://docs.rs/pallet-staking/latest/pallet_staking/enum.Call.html#variant.unbond). In case this maximum
(`MAX_UNLOCKING_CHUNKS`) is reached, the bonded account _must_ first wait until a successful
call to `withdraw_unbonded` to remove some of the chunks.

Expand Down
2 changes: 1 addition & 1 deletion frame/staking/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@
//!
//! The controller account can free a portion (or all) of the funds using the
//! [`unbond`](enum.Call.html#variant.unbond) call. Note that the funds are not immediately
//! accessible. Instead, a duration denoted by [`BondingDuration`](./struct.BondingDuration.html)
//! accessible. Instead, a duration denoted by [`BondingDuration`](./trait.Trait.html#associatedtype.BondingDuration)
//! (in number of eras) must pass until the funds can actually be removed. Once the
//! `BondingDuration` is over, the [`withdraw_unbonded`](./enum.Call.html#variant.withdraw_unbonded)
//! call can be used to actually withdraw the funds.
Expand Down
8 changes: 4 additions & 4 deletions frame/timestamp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

The Timestamp module provides functionality to get and set the on-chain time.

- [`timestamp::Trait`](https://docs.rs/pallet-timestamppallet-timestamp/latest/pallet_timestamp/trait.Trait.html)
- [`Call`](https://docs.rs/pallet-timestamppallet-timestamp/latest/pallet_timestamp/enum.Call.html)
- [`Module`](https://docs.rs/pallet-timestamppallet-timestamp/latest/pallet_timestamp/struct.Module.html)
- [`timestamp::Trait`](https://docs.rs/pallet-timestamp/latest/pallet_timestamp/trait.Trait.html)
- [`Call`](https://docs.rs/pallet-timestamp/latest/pallet_timestamp/enum.Call.html)
- [`Module`](https://docs.rs/pallet-timestamp/latest/pallet_timestamp/struct.Module.html)

## Overview

Expand Down Expand Up @@ -69,6 +69,6 @@ the Timestamp module for session management.

## Related Modules

* [Session](https://docs.rs/pallet-timestamppallet-session/latest/pallet_session/)
* [Session](https://docs.rs/pallet-session/latest/pallet_session/)

License: Apache-2.0
2 changes: 1 addition & 1 deletion primitives/allocator/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Collection of allocator implementations.

This crate provides the following allocator implementations:
- A freeing-bump allocator: [`FreeingBumpHeapAllocator`](freeing_bump::FreeingBumpHeapAllocator)
- A freeing-bump allocator: [`FreeingBumpHeapAllocator`](https://docs.rs/sp-allocator/latest/sp_allocator/struct.FreeingBumpHeapAllocator.html)

License: Apache-2.0
4 changes: 2 additions & 2 deletions primitives/api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ Substrate runtime api
The Substrate runtime api is the crucial interface between the node and the runtime.
Every call that goes into the runtime is done with a runtime api. The runtime apis are not fixed.
Every Substrate user can define its own apis with
[`decl_runtime_apis`](macro.decl_runtime_apis.html) and implement them in
the runtime with [`impl_runtime_apis`](macro.impl_runtime_apis.html).
[`decl_runtime_apis`](https://docs.rs/sp-api/latest/sp_api/macro.decl_runtime_apis.html) and implement them in
the runtime with [`impl_runtime_apis`](https://docs.rs/sp-api/latest/sp_api/macro.impl_runtime_apis.html).

Every Substrate runtime needs to implement the [`Core`] runtime api. This api provides the basic
functionality that every runtime needs to export.
Expand Down
Loading

0 comments on commit a285701

Please sign in to comment.