mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-13 20:55:50 +00:00
82f3c3e2e8
Moved from https://github.com/paritytech/substrate/pull/14788 ---- Fixes https://github.com/paritytech/polkadot-sdk/issues/232 This PR introduces outer-macro approach for `construct_runtime` as discussed in the linked issue. It looks like the following: ```rust #[frame_support::runtime] mod runtime { #[runtime::runtime] #[runtime::derive( RuntimeCall, RuntimeEvent, RuntimeError, RuntimeOrigin, RuntimeFreezeReason, RuntimeHoldReason, RuntimeSlashReason, RuntimeLockId, RuntimeTask, )] pub struct Runtime; #[runtime::pallet_index(0)] pub type System = frame_system; #[runtime::pallet_index(1)] pub type Timestamp = pallet_timestamp; #[runtime::pallet_index(2)] pub type Aura = pallet_aura; #[runtime::pallet_index(3)] pub type Grandpa = pallet_grandpa; #[runtime::pallet_index(4)] pub type Balances = pallet_balances; #[runtime::pallet_index(5)] pub type TransactionPayment = pallet_transaction_payment; #[runtime::pallet_index(6)] pub type Sudo = pallet_sudo; // Include the custom logic from the pallet-template in the runtime. #[runtime::pallet_index(7)] pub type TemplateModule = pallet_template; } ``` ## Features - `#[runtime::runtime]` attached to a struct defines the main runtime - `#[runtime::derive]` attached to this struct defines the types generated by runtime - `#[runtime::pallet_index]` must be attached to a pallet to define its index - `#[runtime::disable_call]` can be optionally attached to a pallet to disable its calls - `#[runtime::disable_unsigned]` can be optionally attached to a pallet to disable unsigned calls - A pallet instance can be defined as `TemplateModule: pallet_template<Instance>` - An optional attribute can be defined as `#[frame_support::runtime(legacy_ordering)]` to ensure that the order of hooks is same as the order of pallets (and not based on the pallet_index). This is to support legacy runtimes and should be avoided for new ones. ## Todo - [x] Update the latest syntax in kitchensink and tests - [x] Update UI tests - [x] Docs ## Extension - Abstract away the Executive similar to https://github.com/paritytech/substrate/pull/14742 - Optionally avoid the need to specify all runtime types (TBD) --------- Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com> Co-authored-by: Nikhil Gupta <>
153 lines
5.4 KiB
TOML
153 lines
5.4 KiB
TOML
[package]
|
|
name = "solochain-template-runtime"
|
|
description = "A solochain runtime template built with Substrate, part of Polkadot Sdk."
|
|
version = "0.0.0"
|
|
license = "MIT-0"
|
|
authors.workspace = true
|
|
homepage.workspace = true
|
|
repository.workspace = true
|
|
edition.workspace = true
|
|
publish = false
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[package.metadata.docs.rs]
|
|
targets = ["x86_64-unknown-linux-gnu"]
|
|
|
|
[dependencies]
|
|
codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = [
|
|
"derive",
|
|
] }
|
|
scale-info = { version = "2.10.0", default-features = false, features = [
|
|
"derive",
|
|
"serde",
|
|
] }
|
|
|
|
# frame
|
|
frame-support = { path = "../../../substrate/frame/support", default-features = false, features = ["experimental"] }
|
|
frame-system = { path = "../../../substrate/frame/system", default-features = false }
|
|
frame-try-runtime = { path = "../../../substrate/frame/try-runtime", default-features = false, optional = true }
|
|
frame-executive = { path = "../../../substrate/frame/executive", default-features = false }
|
|
|
|
# frame pallets
|
|
pallet-aura = { path = "../../../substrate/frame/aura", default-features = false }
|
|
pallet-balances = { path = "../../../substrate/frame/balances", default-features = false }
|
|
pallet-grandpa = { path = "../../../substrate/frame/grandpa", default-features = false }
|
|
pallet-sudo = { path = "../../../substrate/frame/sudo", default-features = false }
|
|
pallet-timestamp = { path = "../../../substrate/frame/timestamp", default-features = false }
|
|
pallet-transaction-payment = { path = "../../../substrate/frame/transaction-payment", default-features = false }
|
|
|
|
# primitives
|
|
sp-api = { path = "../../../substrate/primitives/api", default-features = false }
|
|
sp-block-builder = { path = "../../../substrate/primitives/block-builder", default-features = false }
|
|
sp-consensus-aura = { path = "../../../substrate/primitives/consensus/aura", default-features = false, features = [
|
|
"serde",
|
|
] }
|
|
sp-consensus-grandpa = { path = "../../../substrate/primitives/consensus/grandpa", default-features = false, features = [
|
|
"serde",
|
|
] }
|
|
sp-core = { path = "../../../substrate/primitives/core", default-features = false, features = [
|
|
"serde",
|
|
] }
|
|
sp-inherents = { path = "../../../substrate/primitives/inherents", default-features = false }
|
|
sp-offchain = { path = "../../../substrate/primitives/offchain", default-features = false }
|
|
sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false, features = [
|
|
"serde",
|
|
] }
|
|
sp-session = { path = "../../../substrate/primitives/session", default-features = false }
|
|
sp-std = { path = "../../../substrate/primitives/std", default-features = false }
|
|
sp-storage = { path = "../../../substrate/primitives/storage", default-features = false }
|
|
sp-transaction-pool = { path = "../../../substrate/primitives/transaction-pool", default-features = false }
|
|
sp-version = { path = "../../../substrate/primitives/version", default-features = false, features = [
|
|
"serde",
|
|
] }
|
|
sp-genesis-builder = { default-features = false, path = "../../../substrate/primitives/genesis-builder" }
|
|
|
|
# RPC related
|
|
frame-system-rpc-runtime-api = { path = "../../../substrate/frame/system/rpc/runtime-api", default-features = false }
|
|
pallet-transaction-payment-rpc-runtime-api = { path = "../../../substrate/frame/transaction-payment/rpc/runtime-api", default-features = false }
|
|
|
|
# Used for runtime benchmarking
|
|
frame-benchmarking = { path = "../../../substrate/frame/benchmarking", default-features = false, optional = true }
|
|
frame-system-benchmarking = { path = "../../../substrate/frame/system/benchmarking", default-features = false, optional = true }
|
|
|
|
# The pallet in this template.
|
|
pallet-template = { path = "../pallets/template", default-features = false }
|
|
|
|
[build-dependencies]
|
|
substrate-wasm-builder = { path = "../../../substrate/utils/wasm-builder", optional = true }
|
|
|
|
[features]
|
|
default = ["std"]
|
|
std = [
|
|
"codec/std",
|
|
"scale-info/std",
|
|
|
|
"frame-executive/std",
|
|
"frame-support/std",
|
|
"frame-system-benchmarking?/std",
|
|
"frame-system-rpc-runtime-api/std",
|
|
"frame-system/std",
|
|
|
|
"frame-benchmarking?/std",
|
|
"frame-try-runtime?/std",
|
|
|
|
"pallet-aura/std",
|
|
"pallet-balances/std",
|
|
"pallet-grandpa/std",
|
|
"pallet-sudo/std",
|
|
"pallet-template/std",
|
|
"pallet-timestamp/std",
|
|
"pallet-transaction-payment-rpc-runtime-api/std",
|
|
"pallet-transaction-payment/std",
|
|
|
|
"sp-api/std",
|
|
"sp-block-builder/std",
|
|
"sp-consensus-aura/std",
|
|
"sp-consensus-grandpa/std",
|
|
"sp-core/std",
|
|
"sp-genesis-builder/std",
|
|
"sp-inherents/std",
|
|
"sp-offchain/std",
|
|
"sp-runtime/std",
|
|
"sp-session/std",
|
|
"sp-std/std",
|
|
"sp-storage/std",
|
|
"sp-transaction-pool/std",
|
|
"sp-version/std",
|
|
|
|
"substrate-wasm-builder",
|
|
]
|
|
|
|
runtime-benchmarks = [
|
|
"frame-benchmarking/runtime-benchmarks",
|
|
"frame-support/runtime-benchmarks",
|
|
"frame-system-benchmarking/runtime-benchmarks",
|
|
"frame-system/runtime-benchmarks",
|
|
"pallet-balances/runtime-benchmarks",
|
|
"pallet-grandpa/runtime-benchmarks",
|
|
"pallet-sudo/runtime-benchmarks",
|
|
"pallet-template/runtime-benchmarks",
|
|
"pallet-timestamp/runtime-benchmarks",
|
|
"pallet-transaction-payment/runtime-benchmarks",
|
|
"sp-runtime/runtime-benchmarks",
|
|
]
|
|
|
|
try-runtime = [
|
|
"frame-executive/try-runtime",
|
|
"frame-support/try-runtime",
|
|
"frame-system/try-runtime",
|
|
"frame-try-runtime/try-runtime",
|
|
"pallet-aura/try-runtime",
|
|
"pallet-balances/try-runtime",
|
|
"pallet-grandpa/try-runtime",
|
|
"pallet-sudo/try-runtime",
|
|
"pallet-template/try-runtime",
|
|
"pallet-timestamp/try-runtime",
|
|
"pallet-transaction-payment/try-runtime",
|
|
"sp-runtime/try-runtime",
|
|
]
|
|
|
|
experimental = ["pallet-aura/experimental"]
|