referrerpolicy=no-referrer-when-downgrade

polkadot_sdk/
lib.rs

1// Copyright (C) Parity Technologies (UK) Ltd.
2// SPDX-License-Identifier: Apache-2.0
3
4#![cfg_attr(not(feature = "std"), no_std)]
5
6//! Polkadot SDK umbrella crate re-exporting all other published crates.
7//!
8//! This helps to set a single version number for all your dependencies. Docs are in the
9//! `polkadot-sdk-docs` crate.
10
11// This file is auto-generated and checked by the CI.  You can edit it manually, but it must be
12// exactly the way that the CI expects it.
13
14/// Test utils for Asset Hub runtimes.
15#[cfg(feature = "asset-test-utils")]
16pub use asset_test_utils;
17
18/// Assets common utilities.
19#[cfg(feature = "assets-common")]
20pub use assets_common;
21
22/// A no-std/Substrate compatible library to construct binary merkle tree.
23#[cfg(feature = "binary-merkle-tree")]
24pub use binary_merkle_tree;
25
26/// A common interface for describing what a bridge pallet should be able to do.
27#[cfg(feature = "bp-header-chain")]
28pub use bp_header_chain;
29
30/// Primitives of messages module.
31#[cfg(feature = "bp-messages")]
32pub use bp_messages;
33
34/// Primitives of parachains module.
35#[cfg(feature = "bp-parachains")]
36pub use bp_parachains;
37
38/// Primitives of Polkadot-like runtime.
39#[cfg(feature = "bp-polkadot-core")]
40pub use bp_polkadot_core;
41
42/// Primitives of relayers module.
43#[cfg(feature = "bp-relayers")]
44pub use bp_relayers;
45
46/// Primitives that may be used at (bridges) runtime level.
47#[cfg(feature = "bp-runtime")]
48pub use bp_runtime;
49
50/// Utilities for testing substrate-based runtime bridge code.
51#[cfg(feature = "bp-test-utils")]
52pub use bp_test_utils;
53
54/// Primitives of the xcm-bridge-hub pallet.
55#[cfg(feature = "bp-xcm-bridge-hub")]
56pub use bp_xcm_bridge_hub;
57
58/// Primitives of the xcm-bridge-hub fee pallet.
59#[cfg(feature = "bp-xcm-bridge-hub-router")]
60pub use bp_xcm_bridge_hub_router;
61
62/// Bridge hub common utilities.
63#[cfg(feature = "bridge-hub-common")]
64pub use bridge_hub_common;
65
66/// Utils for BridgeHub testing.
67#[cfg(feature = "bridge-hub-test-utils")]
68pub use bridge_hub_test_utils;
69
70/// Common types and functions that may be used by substrate-based runtimes of all bridged
71/// chains.
72#[cfg(feature = "bridge-runtime-common")]
73pub use bridge_runtime_common;
74
75/// Parachain bootnodes registration and discovery.
76#[cfg(feature = "cumulus-client-bootnodes")]
77pub use cumulus_client_bootnodes;
78
79/// Parachain node CLI utilities.
80#[cfg(feature = "cumulus-client-cli")]
81pub use cumulus_client_cli;
82
83/// Common node-side functionality and glue code to collate parachain blocks.
84#[cfg(feature = "cumulus-client-collator")]
85pub use cumulus_client_collator;
86
87/// AURA consensus algorithm for parachains.
88#[cfg(feature = "cumulus-client-consensus-aura")]
89pub use cumulus_client_consensus_aura;
90
91/// Cumulus specific common consensus implementations.
92#[cfg(feature = "cumulus-client-consensus-common")]
93pub use cumulus_client_consensus_common;
94
95/// The relay-chain provided consensus algorithm.
96#[cfg(feature = "cumulus-client-consensus-relay-chain")]
97pub use cumulus_client_consensus_relay_chain;
98
99/// Cumulus-specific networking protocol.
100#[cfg(feature = "cumulus-client-network")]
101pub use cumulus_client_network;
102
103/// Inherent that needs to be present in every parachain block. Contains messages and a relay
104/// chain storage-proof.
105#[cfg(feature = "cumulus-client-parachain-inherent")]
106pub use cumulus_client_parachain_inherent;
107
108/// Parachain PoV recovery.
109#[cfg(feature = "cumulus-client-pov-recovery")]
110pub use cumulus_client_pov_recovery;
111
112/// Storage proof size recording utilities.
113#[cfg(feature = "cumulus-client-proof-size-recording")]
114pub use cumulus_client_proof_size_recording;
115
116/// Common functions used to assemble the components of a parachain node.
117#[cfg(feature = "cumulus-client-service")]
118pub use cumulus_client_service;
119
120/// AURA consensus extension pallet for parachains.
121#[cfg(feature = "cumulus-pallet-aura-ext")]
122pub use cumulus_pallet_aura_ext;
123
124/// Migrates messages from the old DMP queue pallet.
125#[cfg(feature = "cumulus-pallet-dmp-queue")]
126pub use cumulus_pallet_dmp_queue;
127
128/// Base pallet for cumulus-based parachains.
129#[cfg(feature = "cumulus-pallet-parachain-system")]
130pub use cumulus_pallet_parachain_system;
131
132/// Proc macros provided by the parachain-system pallet.
133#[cfg(feature = "cumulus-pallet-parachain-system-proc-macro")]
134pub use cumulus_pallet_parachain_system_proc_macro;
135
136/// FRAME sessions pallet benchmarking.
137#[cfg(feature = "cumulus-pallet-session-benchmarking")]
138pub use cumulus_pallet_session_benchmarking;
139
140/// Adds functionality to migrate from a Solo to a Parachain.
141#[cfg(feature = "cumulus-pallet-solo-to-para")]
142pub use cumulus_pallet_solo_to_para;
143
144/// pallet and transaction extensions for accurate proof size reclaim.
145#[cfg(feature = "cumulus-pallet-weight-reclaim")]
146pub use cumulus_pallet_weight_reclaim;
147
148/// Pallet for stuff specific to parachains' usage of XCM.
149#[cfg(feature = "cumulus-pallet-xcm")]
150pub use cumulus_pallet_xcm;
151
152/// Pallet to queue outbound and inbound XCMP messages.
153#[cfg(feature = "cumulus-pallet-xcmp-queue")]
154pub use cumulus_pallet_xcmp_queue;
155
156/// Ping Pallet for Cumulus XCM/UMP testing.
157#[cfg(feature = "cumulus-ping")]
158pub use cumulus_ping;
159
160/// Core primitives for Aura in Cumulus.
161#[cfg(feature = "cumulus-primitives-aura")]
162pub use cumulus_primitives_aura;
163
164/// Cumulus related core primitive types and traits.
165#[cfg(feature = "cumulus-primitives-core")]
166pub use cumulus_primitives_core;
167
168/// Inherent that needs to be present in every parachain block. Contains messages and a relay
169/// chain storage-proof.
170#[cfg(feature = "cumulus-primitives-parachain-inherent")]
171pub use cumulus_primitives_parachain_inherent;
172
173/// Hostfunction exposing storage proof size to the runtime.
174#[cfg(feature = "cumulus-primitives-proof-size-hostfunction")]
175pub use cumulus_primitives_proof_size_hostfunction;
176
177/// Utilities to reclaim storage weight.
178#[cfg(feature = "cumulus-primitives-storage-weight-reclaim")]
179pub use cumulus_primitives_storage_weight_reclaim;
180
181/// Provides timestamp related functionality for parachains.
182#[cfg(feature = "cumulus-primitives-timestamp")]
183pub use cumulus_primitives_timestamp;
184
185/// Helper datatypes for Cumulus.
186#[cfg(feature = "cumulus-primitives-utility")]
187pub use cumulus_primitives_utility;
188
189/// Implementation of the RelayChainInterface trait for Polkadot full-nodes.
190#[cfg(feature = "cumulus-relay-chain-inprocess-interface")]
191pub use cumulus_relay_chain_inprocess_interface;
192
193/// Common interface for different relay chain datasources.
194#[cfg(feature = "cumulus-relay-chain-interface")]
195pub use cumulus_relay_chain_interface;
196
197/// Minimal node implementation to be used in tandem with RPC or light-client mode.
198#[cfg(feature = "cumulus-relay-chain-minimal-node")]
199pub use cumulus_relay_chain_minimal_node;
200
201/// Implementation of the RelayChainInterface trait that connects to a remote RPC-node.
202#[cfg(feature = "cumulus-relay-chain-rpc-interface")]
203pub use cumulus_relay_chain_rpc_interface;
204
205/// Cumulus client common relay chain streams.
206#[cfg(feature = "cumulus-relay-chain-streams")]
207pub use cumulus_relay_chain_streams;
208
209/// Mocked relay state proof builder for testing Cumulus.
210#[cfg(feature = "cumulus-test-relay-sproof-builder")]
211pub use cumulus_test_relay_sproof_builder;
212
213/// Common resources for integration testing with xcm-emulator.
214#[cfg(feature = "emulated-integration-tests-common")]
215pub use emulated_integration_tests_common;
216
217/// Interfaces for Ethereum standards.
218#[cfg(feature = "ethereum-standards")]
219pub use ethereum_standards;
220
221/// Utility library for managing tree-like ordered data with logic for pruning the tree while
222/// finalizing nodes.
223#[cfg(feature = "fork-tree")]
224pub use fork_tree;
225
226/// Macro for benchmarking a FRAME runtime.
227#[cfg(feature = "frame-benchmarking")]
228pub use frame_benchmarking;
229
230/// CLI for benchmarking FRAME.
231#[cfg(feature = "frame-benchmarking-cli")]
232pub use frame_benchmarking_cli;
233
234/// Pallet for testing FRAME PoV benchmarking.
235#[cfg(feature = "frame-benchmarking-pallet-pov")]
236pub use frame_benchmarking_pallet_pov;
237
238/// NPoS Solution Type.
239#[cfg(feature = "frame-election-provider-solution-type")]
240pub use frame_election_provider_solution_type;
241
242/// election provider supporting traits.
243#[cfg(feature = "frame-election-provider-support")]
244pub use frame_election_provider_support;
245
246/// FRAME executives engine.
247#[cfg(feature = "frame-executive")]
248pub use frame_executive;
249
250/// FRAME signed extension for verifying the metadata hash.
251#[cfg(feature = "frame-metadata-hash-extension")]
252pub use frame_metadata_hash_extension;
253
254/// An externalities provided environment that can load itself from remote nodes or cached
255/// files.
256#[cfg(feature = "frame-remote-externalities")]
257pub use frame_remote_externalities;
258
259/// Support code for the runtime.
260#[cfg(feature = "frame-support")]
261pub use frame_support;
262
263/// Proc macro of Support code for the runtime.
264#[cfg(feature = "frame-support-procedural")]
265pub use frame_support_procedural;
266
267/// Proc macro helpers for procedural macros.
268#[cfg(feature = "frame-support-procedural-tools")]
269pub use frame_support_procedural_tools;
270
271/// Use to derive parsing for parsing struct.
272#[cfg(feature = "frame-support-procedural-tools-derive")]
273pub use frame_support_procedural_tools_derive;
274
275/// FRAME system module.
276#[cfg(feature = "frame-system")]
277pub use frame_system;
278
279/// FRAME System benchmarking.
280#[cfg(feature = "frame-system-benchmarking")]
281pub use frame_system_benchmarking;
282
283/// Runtime API definition required by System RPC extensions.
284#[cfg(feature = "frame-system-rpc-runtime-api")]
285pub use frame_system_rpc_runtime_api;
286
287/// Supporting types for try-runtime, testing and dry-running commands.
288#[cfg(feature = "frame-try-runtime")]
289pub use frame_try_runtime;
290
291/// Bag threshold generation script for pallet-bag-list.
292#[cfg(feature = "generate-bags")]
293pub use generate_bags;
294
295/// MMR Client gadget for substrate.
296#[cfg(feature = "mmr-gadget")]
297pub use mmr_gadget;
298
299/// Node-specific RPC methods for interaction with Merkle Mountain Range pallet.
300#[cfg(feature = "mmr-rpc")]
301pub use mmr_rpc;
302
303/// FRAME pallet for periodic accumulation and forwarding of native token funds.
304#[cfg(feature = "pallet-accumulate-and-forward")]
305pub use pallet_accumulate_and_forward;
306
307/// The Alliance pallet provides a collective for standard-setting industry collaboration.
308#[cfg(feature = "pallet-alliance")]
309pub use pallet_alliance;
310
311/// FRAME asset conversion pallet.
312#[cfg(feature = "pallet-asset-conversion")]
313pub use pallet_asset_conversion;
314
315/// FRAME asset conversion pallet's operations suite.
316#[cfg(feature = "pallet-asset-conversion-ops")]
317pub use pallet_asset_conversion_ops;
318
319/// Provides precompiles for `pallet-asset-conversion`.
320#[cfg(feature = "pallet-asset-conversion-precompiles")]
321pub use pallet_asset_conversion_precompiles;
322
323/// Pallet to manage transaction payments in assets by converting them to native assets.
324#[cfg(feature = "pallet-asset-conversion-tx-payment")]
325pub use pallet_asset_conversion_tx_payment;
326
327/// Whitelist non-native assets for treasury spending and provide conversion to native balance.
328#[cfg(feature = "pallet-asset-rate")]
329pub use pallet_asset_rate;
330
331/// FRAME asset rewards pallet.
332#[cfg(feature = "pallet-asset-rewards")]
333pub use pallet_asset_rewards;
334
335/// pallet to manage transaction payments in assets.
336#[cfg(feature = "pallet-asset-tx-payment")]
337pub use pallet_asset_tx_payment;
338
339/// FRAME asset management pallet.
340#[cfg(feature = "pallet-assets")]
341pub use pallet_assets;
342
343/// Provides freezing features to `pallet-assets`.
344#[cfg(feature = "pallet-assets-freezer")]
345pub use pallet_assets_freezer;
346
347/// Provides holding features to `pallet-assets`.
348#[cfg(feature = "pallet-assets-holder")]
349pub use pallet_assets_holder;
350
351/// Provides precompiles for `pallet-assets`.
352#[cfg(feature = "pallet-assets-precompiles")]
353pub use pallet_assets_precompiles;
354
355/// FRAME atomic swap pallet.
356#[cfg(feature = "pallet-atomic-swap")]
357pub use pallet_atomic_swap;
358
359/// FRAME AURA consensus pallet.
360#[cfg(feature = "pallet-aura")]
361pub use pallet_aura;
362
363/// FRAME pallet for authority discovery.
364#[cfg(feature = "pallet-authority-discovery")]
365pub use pallet_authority_discovery;
366
367/// Block and Uncle Author tracking for the FRAME.
368#[cfg(feature = "pallet-authorship")]
369pub use pallet_authorship;
370
371/// Consensus extension module for BABE consensus. Collects on-chain randomness from VRF
372/// outputs and manages epoch transitions.
373#[cfg(feature = "pallet-babe")]
374pub use pallet_babe;
375
376/// FRAME pallet bags list.
377#[cfg(feature = "pallet-bags-list")]
378pub use pallet_bags_list;
379
380/// FRAME pallet to manage balances.
381#[cfg(feature = "pallet-balances")]
382pub use pallet_balances;
383
384/// BEEFY FRAME pallet.
385#[cfg(feature = "pallet-beefy")]
386pub use pallet_beefy;
387
388/// BEEFY + MMR runtime utilities.
389#[cfg(feature = "pallet-beefy-mmr")]
390pub use pallet_beefy_mmr;
391
392/// FRAME pallet to manage bounties.
393#[cfg(feature = "pallet-bounties")]
394pub use pallet_bounties;
395
396/// Module implementing GRANDPA on-chain light client used for bridging consensus of
397/// substrate-based chains.
398#[cfg(feature = "pallet-bridge-grandpa")]
399pub use pallet_bridge_grandpa;
400
401/// Module that allows bridged chains to exchange messages using lane concept.
402#[cfg(feature = "pallet-bridge-messages")]
403pub use pallet_bridge_messages;
404
405/// Module that allows bridged relay chains to exchange information on their parachains' heads.
406#[cfg(feature = "pallet-bridge-parachains")]
407pub use pallet_bridge_parachains;
408
409/// Module used to store relayer rewards and coordinate relayers set.
410#[cfg(feature = "pallet-bridge-relayers")]
411pub use pallet_bridge_relayers;
412
413/// Brokerage tool for managing Polkadot Core scheduling.
414#[cfg(feature = "pallet-broker")]
415pub use pallet_broker;
416
417/// FRAME pallet to manage child bounties.
418#[cfg(feature = "pallet-child-bounties")]
419pub use pallet_child_bounties;
420
421/// Simple pallet to select collators for a parachain.
422#[cfg(feature = "pallet-collator-selection")]
423pub use pallet_collator_selection;
424
425/// Collective system: Members of a set of account IDs can make their collective feelings known
426/// through dispatched calls from one of two specialized origins.
427#[cfg(feature = "pallet-collective")]
428pub use pallet_collective;
429
430/// Managed content.
431#[cfg(feature = "pallet-collective-content")]
432pub use pallet_collective_content;
433
434/// FRAME pallet for WASM contracts.
435#[cfg(feature = "pallet-contracts")]
436pub use pallet_contracts;
437
438/// A mock network for testing pallet-contracts.
439#[cfg(feature = "pallet-contracts-mock-network")]
440pub use pallet_contracts_mock_network;
441
442/// Procedural macros used in pallet_contracts.
443#[cfg(feature = "pallet-contracts-proc-macro")]
444pub use pallet_contracts_proc_macro;
445
446/// Exposes all the host functions that a contract can import.
447#[cfg(feature = "pallet-contracts-uapi")]
448pub use pallet_contracts_uapi;
449
450/// FRAME pallet for conviction voting in referenda.
451#[cfg(feature = "pallet-conviction-voting")]
452pub use pallet_conviction_voting;
453
454/// Logic as per the description of The Fellowship for core Polkadot technology.
455#[cfg(feature = "pallet-core-fellowship")]
456pub use pallet_core_fellowship;
457
458/// FRAME pallet for Dynamic Allocation Pool (DAP).
459#[cfg(feature = "pallet-dap")]
460pub use pallet_dap;
461
462/// FRAME delegated staking pallet.
463#[cfg(feature = "pallet-delegated-staking")]
464pub use pallet_delegated_staking;
465
466/// FRAME pallet for democracy.
467#[cfg(feature = "pallet-democracy")]
468pub use pallet_democracy;
469
470/// FRAME derivatives pallet.
471#[cfg(feature = "pallet-derivatives")]
472pub use pallet_derivatives;
473
474/// FRAME example pallet.
475#[cfg(feature = "pallet-dev-mode")]
476pub use pallet_dev_mode;
477
478/// Dummy DIM Pallet.
479#[cfg(feature = "pallet-dummy-dim")]
480pub use pallet_dummy_dim;
481
482/// PALLET multi phase+block election providers.
483#[cfg(feature = "pallet-election-provider-multi-block")]
484pub use pallet_election_provider_multi_block;
485
486/// PALLET two phase election providers.
487#[cfg(feature = "pallet-election-provider-multi-phase")]
488pub use pallet_election_provider_multi_phase;
489
490/// Benchmarking for election provider support onchain config trait.
491#[cfg(feature = "pallet-election-provider-support-benchmarking")]
492pub use pallet_election_provider_support_benchmarking;
493
494/// FRAME pallet based on seq-Phragmén election method.
495#[cfg(feature = "pallet-elections-phragmen")]
496pub use pallet_elections_phragmen;
497
498/// FRAME fast unstake pallet.
499#[cfg(feature = "pallet-fast-unstake")]
500pub use pallet_fast_unstake;
501
502/// FRAME pallet for pushing a chain to its weight limits.
503#[cfg(feature = "pallet-glutton")]
504pub use pallet_glutton;
505
506/// FRAME pallet for GRANDPA finality gadget.
507#[cfg(feature = "pallet-grandpa")]
508pub use pallet_grandpa;
509
510/// FRAME identity management pallet.
511#[cfg(feature = "pallet-identity")]
512pub use pallet_identity;
513
514/// FRAME's I'm online pallet.
515#[cfg(feature = "pallet-im-online")]
516pub use pallet_im_online;
517
518/// FRAME indices management pallet.
519#[cfg(feature = "pallet-indices")]
520pub use pallet_indices;
521
522/// Insecure do not use in production: FRAME randomness collective flip pallet.
523#[cfg(feature = "pallet-insecure-randomness-collective-flip")]
524pub use pallet_insecure_randomness_collective_flip;
525
526/// FRAME Participation Lottery Pallet.
527#[cfg(feature = "pallet-lottery")]
528pub use pallet_lottery;
529
530/// FRAME membership management pallet.
531#[cfg(feature = "pallet-membership")]
532pub use pallet_membership;
533
534/// FRAME pallet to queue and process messages.
535#[cfg(feature = "pallet-message-queue")]
536pub use pallet_message_queue;
537
538/// FRAME pallet enabling meta transactions.
539#[cfg(feature = "pallet-meta-tx")]
540pub use pallet_meta_tx;
541
542/// FRAME pallet to execute multi-block migrations.
543#[cfg(feature = "pallet-migrations")]
544pub use pallet_migrations;
545
546/// FRAME's mixnet pallet.
547#[cfg(feature = "pallet-mixnet")]
548pub use pallet_mixnet;
549
550/// FRAME Merkle Mountain Range pallet.
551#[cfg(feature = "pallet-mmr")]
552pub use pallet_mmr;
553
554/// FRAME pallet to manage multi-asset and cross-chain bounties.
555#[cfg(feature = "pallet-multi-asset-bounties")]
556pub use pallet_multi_asset_bounties;
557
558/// FRAME multi-signature dispatch pallet.
559#[cfg(feature = "pallet-multisig")]
560pub use pallet_multisig;
561
562/// FRAME pallet to convert non-fungible to fungible tokens.
563#[cfg(feature = "pallet-nft-fractionalization")]
564pub use pallet_nft_fractionalization;
565
566/// FRAME NFTs pallet.
567#[cfg(feature = "pallet-nfts")]
568pub use pallet_nfts;
569
570/// Runtime API for the FRAME NFTs pallet.
571#[cfg(feature = "pallet-nfts-runtime-api")]
572pub use pallet_nfts_runtime_api;
573
574/// FRAME pallet for rewarding account freezing.
575#[cfg(feature = "pallet-nis")]
576pub use pallet_nis;
577
578/// FRAME pallet for node authorization.
579#[cfg(feature = "pallet-node-authorization")]
580pub use pallet_node_authorization;
581
582/// FRAME nomination pools pallet.
583#[cfg(feature = "pallet-nomination-pools")]
584pub use pallet_nomination_pools;
585
586/// FRAME nomination pools pallet benchmarking.
587#[cfg(feature = "pallet-nomination-pools-benchmarking")]
588pub use pallet_nomination_pools_benchmarking;
589
590/// Runtime API for nomination-pools FRAME pallet.
591#[cfg(feature = "pallet-nomination-pools-runtime-api")]
592pub use pallet_nomination_pools_runtime_api;
593
594/// FRAME offences pallet.
595#[cfg(feature = "pallet-offences")]
596pub use pallet_offences;
597
598/// FRAME offences pallet benchmarking.
599#[cfg(feature = "pallet-offences-benchmarking")]
600pub use pallet_offences_benchmarking;
601
602/// FRAME oracle pallet for off-chain data.
603#[cfg(feature = "pallet-oracle")]
604pub use pallet_oracle;
605
606/// Runtime API for the oracle pallet.
607#[cfg(feature = "pallet-oracle-runtime-api")]
608pub use pallet_oracle_runtime_api;
609
610/// Pallet to give some execution allowance for some origins.
611#[cfg(feature = "pallet-origin-restriction")]
612pub use pallet_origin_restriction;
613
614/// FRAME pallet that provides a paged list data structure.
615#[cfg(feature = "pallet-paged-list")]
616pub use pallet_paged_list;
617
618/// Pallet to store and configure parameters.
619#[cfg(feature = "pallet-parameters")]
620pub use pallet_parameters;
621
622/// Personhood-tracking pallet.
623#[cfg(feature = "pallet-people")]
624pub use pallet_people;
625
626/// Transaction extension that pays transaction fees with a gas allowance asset.
627#[cfg(feature = "pallet-pgas-allowance")]
628pub use pallet_pgas_allowance;
629
630/// FRAME pallet for storing preimages of hashes.
631#[cfg(feature = "pallet-preimage")]
632pub use pallet_preimage;
633
634/// FRAME proxying pallet.
635#[cfg(feature = "pallet-proxy")]
636pub use pallet_proxy;
637
638/// FRAME pallet for the Peg Stability Module.
639#[cfg(feature = "pallet-psm")]
640pub use pallet_psm;
641
642/// Ranked collective system: Members of a set of account IDs can make their collective
643/// feelings known through dispatched calls from one of two specialized origins.
644#[cfg(feature = "pallet-ranked-collective")]
645pub use pallet_ranked_collective;
646
647/// FRAME account recovery pallet.
648#[cfg(feature = "pallet-recovery")]
649pub use pallet_recovery;
650
651/// FRAME pallet for inclusive on-chain decisions.
652#[cfg(feature = "pallet-referenda")]
653pub use pallet_referenda;
654
655/// Remark storage pallet.
656#[cfg(feature = "pallet-remark")]
657pub use pallet_remark;
658
659/// FRAME pallet for PolkaVM contracts.
660#[cfg(feature = "pallet-revive")]
661pub use pallet_revive;
662
663/// Procedural macros used in pallet_revive.
664#[cfg(feature = "pallet-revive-proc-macro")]
665pub use pallet_revive_proc_macro;
666
667/// Exposes all the host functions that a contract can import.
668#[cfg(feature = "pallet-revive-uapi")]
669pub use pallet_revive_uapi;
670
671/// FRAME root offences pallet.
672#[cfg(feature = "pallet-root-offences")]
673pub use pallet_root_offences;
674
675/// FRAME root testing pallet.
676#[cfg(feature = "pallet-root-testing")]
677pub use pallet_root_testing;
678
679/// FRAME safe-mode pallet.
680#[cfg(feature = "pallet-safe-mode")]
681pub use pallet_safe_mode;
682
683/// Paymaster.
684#[cfg(feature = "pallet-salary")]
685pub use pallet_salary;
686
687/// FRAME Scheduler pallet.
688#[cfg(feature = "pallet-scheduler")]
689pub use pallet_scheduler;
690
691/// FRAME pallet for scored pools.
692#[cfg(feature = "pallet-scored-pool")]
693pub use pallet_scored_pool;
694
695/// FRAME sessions pallet.
696#[cfg(feature = "pallet-session")]
697pub use pallet_session;
698
699/// FRAME sessions pallet benchmarking.
700#[cfg(feature = "pallet-session-benchmarking")]
701pub use pallet_session_benchmarking;
702
703/// Pallet to skip payments for calls annotated with `feeless_if` if the respective conditions
704/// are satisfied.
705#[cfg(feature = "pallet-skip-feeless-payment")]
706pub use pallet_skip_feeless_payment;
707
708/// FRAME society pallet.
709#[cfg(feature = "pallet-society")]
710pub use pallet_society;
711
712/// FRAME pallet staking.
713#[cfg(feature = "pallet-staking")]
714pub use pallet_staking;
715
716/// FRAME pallet staking async.
717#[cfg(feature = "pallet-staking-async")]
718pub use pallet_staking_async;
719
720/// Pallet handling the communication with staking-rc-client. It's role is to glue the staking
721/// pallet (on AssetHub chain) and session pallet (on Relay Chain) in a transparent way.
722#[cfg(feature = "pallet-staking-async-ah-client")]
723pub use pallet_staking_async_ah_client;
724
725/// Pallet handling the communication with staking-ah-client. It's role is to glue the staking
726/// pallet (on AssetHub chain) and session pallet (on Relay Chain) in a transparent way.
727#[cfg(feature = "pallet-staking-async-rc-client")]
728pub use pallet_staking_async_rc_client;
729
730/// RPC runtime API for transaction payment FRAME pallet.
731#[cfg(feature = "pallet-staking-async-runtime-api")]
732pub use pallet_staking_async_runtime_api;
733
734/// Reward Curve for FRAME staking pallet.
735#[cfg(feature = "pallet-staking-reward-curve")]
736pub use pallet_staking_reward_curve;
737
738/// Reward function for FRAME staking pallet.
739#[cfg(feature = "pallet-staking-reward-fn")]
740pub use pallet_staking_reward_fn;
741
742/// RPC runtime API for transaction payment FRAME pallet.
743#[cfg(feature = "pallet-staking-runtime-api")]
744pub use pallet_staking_runtime_api;
745
746/// FRAME pallet migration of trie.
747#[cfg(feature = "pallet-state-trie-migration")]
748pub use pallet_state_trie_migration;
749
750/// FRAME pallet for statement store.
751#[cfg(feature = "pallet-statement")]
752pub use pallet_statement;
753
754/// FRAME pallet for sudo.
755#[cfg(feature = "pallet-sudo")]
756pub use pallet_sudo;
757
758/// FRAME Timestamp Module.
759#[cfg(feature = "pallet-timestamp")]
760pub use pallet_timestamp;
761
762/// FRAME pallet to manage tips.
763#[cfg(feature = "pallet-tips")]
764pub use pallet_tips;
765
766/// FRAME pallet to manage transaction payments.
767#[cfg(feature = "pallet-transaction-payment")]
768pub use pallet_transaction_payment;
769
770/// RPC interface for the transaction payment pallet.
771#[cfg(feature = "pallet-transaction-payment-rpc")]
772pub use pallet_transaction_payment_rpc;
773
774/// RPC runtime API for transaction payment FRAME pallet.
775#[cfg(feature = "pallet-transaction-payment-rpc-runtime-api")]
776pub use pallet_transaction_payment_rpc_runtime_api;
777
778/// FRAME pallet to manage treasury.
779#[cfg(feature = "pallet-treasury")]
780pub use pallet_treasury;
781
782/// FRAME transaction pause pallet.
783#[cfg(feature = "pallet-tx-pause")]
784pub use pallet_tx_pause;
785
786/// FRAME NFT asset management pallet.
787#[cfg(feature = "pallet-uniques")]
788pub use pallet_uniques;
789
790/// FRAME utilities pallet.
791#[cfg(feature = "pallet-utility")]
792pub use pallet_utility;
793
794/// FRAME verify signature pallet.
795#[cfg(feature = "pallet-verify-signature")]
796pub use pallet_verify_signature;
797
798/// FRAME pallet for manage vesting.
799#[cfg(feature = "pallet-vesting")]
800pub use pallet_vesting;
801
802/// Vesting precompile exposing pallet-vesting to EVM contracts via pallet-revive.
803#[cfg(feature = "pallet-vesting-precompiles")]
804pub use pallet_vesting_precompiles;
805
806/// FRAME pallet for whitelisting calls, and dispatching from a specific origin.
807#[cfg(feature = "pallet-whitelist")]
808pub use pallet_whitelist;
809
810/// A pallet for handling XCM programs.
811#[cfg(feature = "pallet-xcm")]
812pub use pallet_xcm;
813
814/// Benchmarks for the XCM pallet.
815#[cfg(feature = "pallet-xcm-benchmarks")]
816pub use pallet_xcm_benchmarks;
817
818/// Module that adds dynamic bridges/lanes support to XCM infrastructure at the bridge hub.
819#[cfg(feature = "pallet-xcm-bridge-hub")]
820pub use pallet_xcm_bridge_hub;
821
822/// Bridge hub interface for sibling/parent chains with dynamic fees support.
823#[cfg(feature = "pallet-xcm-bridge-hub-router")]
824pub use pallet_xcm_bridge_hub_router;
825
826/// Provides precompiles for `pallet-xcm`.
827#[cfg(feature = "pallet-xcm-precompiles")]
828pub use pallet_xcm_precompiles;
829
830/// Logic which is common to all parachain runtimes.
831#[cfg(feature = "parachains-common")]
832pub use parachains_common;
833
834/// Common types for parachains.
835#[cfg(feature = "parachains-common-types")]
836pub use parachains_common_types;
837
838/// Utils for Runtimes testing.
839#[cfg(feature = "parachains-runtimes-test-utils")]
840pub use parachains_runtimes_test_utils;
841
842/// Polkadot Approval Distribution subsystem for the distribution of assignments and approvals
843/// for approval checks on candidates over the network.
844#[cfg(feature = "polkadot-approval-distribution")]
845pub use polkadot_approval_distribution;
846
847/// Polkadot Bitfiled Distribution subsystem, which gossips signed availability bitfields used
848/// to compactly determine which backed candidates are available or not based on a 2/3+ quorum.
849#[cfg(feature = "polkadot-availability-bitfield-distribution")]
850pub use polkadot_availability_bitfield_distribution;
851
852/// The Availability Distribution subsystem. Requests the required availability data. Also
853/// distributes availability data and chunks to requesters.
854#[cfg(feature = "polkadot-availability-distribution")]
855pub use polkadot_availability_distribution;
856
857/// The Availability Recovery subsystem. Handles requests for recovering the availability data
858/// of included candidates.
859#[cfg(feature = "polkadot-availability-recovery")]
860pub use polkadot_availability_recovery;
861
862/// Polkadot Relay-chain Client Node.
863#[cfg(feature = "polkadot-cli")]
864pub use polkadot_cli;
865
866/// Polkadot Collator Protocol subsystem. Allows collators and validators to talk to each
867/// other.
868#[cfg(feature = "polkadot-collator-protocol")]
869pub use polkadot_collator_protocol;
870
871/// Core Polkadot types used by Relay Chains and parachains.
872#[cfg(feature = "polkadot-core-primitives")]
873pub use polkadot_core_primitives;
874
875/// Polkadot Dispute Distribution subsystem, which ensures all concerned validators are aware
876/// of a dispute and have the relevant votes.
877#[cfg(feature = "polkadot-dispute-distribution")]
878pub use polkadot_dispute_distribution;
879
880/// Erasure coding used for Polkadot's availability system.
881#[cfg(feature = "polkadot-erasure-coding")]
882pub use polkadot_erasure_coding;
883
884/// Polkadot Gossip Support subsystem. Responsible for keeping track of session changes and
885/// issuing a connection request to the relevant validators on every new session.
886#[cfg(feature = "polkadot-gossip-support")]
887pub use polkadot_gossip_support;
888
889/// The Network Bridge Subsystem — protocol multiplexer for Polkadot.
890#[cfg(feature = "polkadot-network-bridge")]
891pub use polkadot_network_bridge;
892
893/// Clock abstraction shared by Polkadot node subsystems.
894#[cfg(feature = "polkadot-node-clock")]
895pub use polkadot_node_clock;
896
897/// Collator-side subsystem that handles incoming candidate submissions from the parachain.
898#[cfg(feature = "polkadot-node-collation-generation")]
899pub use polkadot_node_collation_generation;
900
901/// Approval Voting Subsystem of the Polkadot node.
902#[cfg(feature = "polkadot-node-core-approval-voting")]
903pub use polkadot_node_core_approval_voting;
904
905/// Approval Voting Subsystem running approval work in parallel.
906#[cfg(feature = "polkadot-node-core-approval-voting-parallel")]
907pub use polkadot_node_core_approval_voting_parallel;
908
909/// The Availability Store subsystem. Wrapper over the DB that stores availability data and
910/// chunks.
911#[cfg(feature = "polkadot-node-core-av-store")]
912pub use polkadot_node_core_av_store;
913
914/// The Candidate Backing Subsystem. Tracks parachain candidates that can be backed, as well as
915/// the issuance of statements about candidates.
916#[cfg(feature = "polkadot-node-core-backing")]
917pub use polkadot_node_core_backing;
918
919/// Bitfield signing subsystem for the Polkadot node.
920#[cfg(feature = "polkadot-node-core-bitfield-signing")]
921pub use polkadot_node_core_bitfield_signing;
922
923/// Polkadot crate that implements the Candidate Validation subsystem. Handles requests to
924/// validate candidates according to a PVF.
925#[cfg(feature = "polkadot-node-core-candidate-validation")]
926pub use polkadot_node_core_candidate_validation;
927
928/// The Chain API subsystem provides access to chain related utility functions like block
929/// number to hash conversions.
930#[cfg(feature = "polkadot-node-core-chain-api")]
931pub use polkadot_node_core_chain_api;
932
933/// Chain Selection Subsystem.
934#[cfg(feature = "polkadot-node-core-chain-selection")]
935pub use polkadot_node_core_chain_selection;
936
937/// The node-side components that participate in disputes.
938#[cfg(feature = "polkadot-node-core-dispute-coordinator")]
939pub use polkadot_node_core_dispute_coordinator;
940
941/// Parachains inherent data provider for Polkadot node.
942#[cfg(feature = "polkadot-node-core-parachains-inherent")]
943pub use polkadot_node_core_parachains_inherent;
944
945/// The Prospective Parachains subsystem. Tracks and handles prospective parachain fragments.
946#[cfg(feature = "polkadot-node-core-prospective-parachains")]
947pub use polkadot_node_core_prospective_parachains;
948
949/// Responsible for assembling a relay chain block from a set of available parachain
950/// candidates.
951#[cfg(feature = "polkadot-node-core-provisioner")]
952pub use polkadot_node_core_provisioner;
953
954/// Polkadot crate that implements the PVF validation host. Responsible for coordinating
955/// preparation and execution of PVFs.
956#[cfg(feature = "polkadot-node-core-pvf")]
957pub use polkadot_node_core_pvf;
958
959/// Polkadot crate that implements the PVF pre-checking subsystem. Responsible for checking and
960/// voting for PVFs that are pending approval.
961#[cfg(feature = "polkadot-node-core-pvf-checker")]
962pub use polkadot_node_core_pvf_checker;
963
964/// Polkadot crate that contains functionality related to PVFs that is shared by the PVF host
965/// and the PVF workers.
966#[cfg(feature = "polkadot-node-core-pvf-common")]
967pub use polkadot_node_core_pvf_common;
968
969/// Wrapper around the parachain-related runtime APIs.
970#[cfg(feature = "polkadot-node-core-runtime-api")]
971pub use polkadot_node_core_runtime_api;
972
973/// Subsystem metric helpers.
974#[cfg(feature = "polkadot-node-metrics")]
975pub use polkadot_node_metrics;
976
977/// Primitives types for the Node-side.
978#[cfg(feature = "polkadot-node-network-protocol")]
979pub use polkadot_node_network_protocol;
980
981/// Primitives types for the Node-side.
982#[cfg(feature = "polkadot-node-primitives")]
983pub use polkadot_node_primitives;
984
985/// Subsystem traits and message definitions and the generated overseer.
986#[cfg(feature = "polkadot-node-subsystem")]
987pub use polkadot_node_subsystem;
988
989/// Subsystem traits and message definitions.
990#[cfg(feature = "polkadot-node-subsystem-types")]
991pub use polkadot_node_subsystem_types;
992
993/// Subsystem traits and message definitions.
994#[cfg(feature = "polkadot-node-subsystem-util")]
995pub use polkadot_node_subsystem_util;
996
997/// Helper library that can be used to build a parachain node.
998#[cfg(feature = "polkadot-omni-node-lib")]
999pub use polkadot_omni_node_lib;
1000
1001/// System overseer of the Polkadot node.
1002#[cfg(feature = "polkadot-overseer")]
1003pub use polkadot_overseer;
1004
1005/// Types and utilities for creating and working with parachains.
1006#[cfg(feature = "polkadot-parachain-primitives")]
1007pub use polkadot_parachain_primitives;
1008
1009/// Shared primitives used by Polkadot runtime.
1010#[cfg(feature = "polkadot-primitives")]
1011pub use polkadot_primitives;
1012
1013/// Test helpers for Polkadot runtime primitives.
1014#[cfg(feature = "polkadot-primitives-test-helpers")]
1015pub use polkadot_primitives_test_helpers;
1016
1017/// Polkadot specific RPC functionality.
1018#[cfg(feature = "polkadot-rpc")]
1019pub use polkadot_rpc;
1020
1021/// Pallets and constants used in Relay Chain networks.
1022#[cfg(feature = "polkadot-runtime-common")]
1023pub use polkadot_runtime_common;
1024
1025/// Runtime metric interface for the Polkadot node.
1026#[cfg(feature = "polkadot-runtime-metrics")]
1027pub use polkadot_runtime_metrics;
1028
1029/// Relay Chain runtime code responsible for Parachains.
1030#[cfg(feature = "polkadot-runtime-parachains")]
1031pub use polkadot_runtime_parachains;
1032
1033/// The single package to get you started with building frame pallets and runtimes.
1034#[cfg(feature = "polkadot-sdk-frame")]
1035pub use polkadot_sdk_frame;
1036
1037/// Utils to tie different Polkadot components together and allow instantiation of a node.
1038#[cfg(feature = "polkadot-service")]
1039pub use polkadot_service;
1040
1041/// Statement Distribution Subsystem.
1042#[cfg(feature = "polkadot-statement-distribution")]
1043pub use polkadot_statement_distribution;
1044
1045/// Stores messages other authorities issue about candidates in Polkadot.
1046#[cfg(feature = "polkadot-statement-table")]
1047pub use polkadot_statement_table;
1048
1049/// Collection of allocator implementations.
1050#[cfg(feature = "sc-allocator")]
1051pub use sc_allocator;
1052
1053/// Substrate authority discovery.
1054#[cfg(feature = "sc-authority-discovery")]
1055pub use sc_authority_discovery;
1056
1057/// Basic implementation of block-authoring logic.
1058#[cfg(feature = "sc-basic-authorship")]
1059pub use sc_basic_authorship;
1060
1061/// Substrate block builder.
1062#[cfg(feature = "sc-block-builder")]
1063pub use sc_block_builder;
1064
1065/// Substrate chain configurations.
1066#[cfg(feature = "sc-chain-spec")]
1067pub use sc_chain_spec;
1068
1069/// Macros to derive chain spec extension traits implementation.
1070#[cfg(feature = "sc-chain-spec-derive")]
1071pub use sc_chain_spec_derive;
1072
1073/// Substrate CLI interface.
1074#[cfg(feature = "sc-cli")]
1075pub use sc_cli;
1076
1077/// Substrate client interfaces.
1078#[cfg(feature = "sc-client-api")]
1079pub use sc_client_api;
1080
1081/// Client backend that uses RocksDB database as storage.
1082#[cfg(feature = "sc-client-db")]
1083pub use sc_client_db;
1084
1085/// Collection of common consensus specific implementations for Substrate (client).
1086#[cfg(feature = "sc-consensus")]
1087pub use sc_consensus;
1088
1089/// Aura consensus algorithm for substrate.
1090#[cfg(feature = "sc-consensus-aura")]
1091pub use sc_consensus_aura;
1092
1093/// BABE consensus algorithm for substrate.
1094#[cfg(feature = "sc-consensus-babe")]
1095pub use sc_consensus_babe;
1096
1097/// RPC extensions for the BABE consensus algorithm.
1098#[cfg(feature = "sc-consensus-babe-rpc")]
1099pub use sc_consensus_babe_rpc;
1100
1101/// BEEFY Client gadget for substrate.
1102#[cfg(feature = "sc-consensus-beefy")]
1103pub use sc_consensus_beefy;
1104
1105/// RPC for the BEEFY Client gadget for substrate.
1106#[cfg(feature = "sc-consensus-beefy-rpc")]
1107pub use sc_consensus_beefy_rpc;
1108
1109/// Generic epochs-based utilities for consensus.
1110#[cfg(feature = "sc-consensus-epochs")]
1111pub use sc_consensus_epochs;
1112
1113/// Integration of the GRANDPA finality gadget into substrate.
1114#[cfg(feature = "sc-consensus-grandpa")]
1115pub use sc_consensus_grandpa;
1116
1117/// RPC extensions for the GRANDPA finality gadget.
1118#[cfg(feature = "sc-consensus-grandpa-rpc")]
1119pub use sc_consensus_grandpa_rpc;
1120
1121/// Manual sealing engine for Substrate.
1122#[cfg(feature = "sc-consensus-manual-seal")]
1123pub use sc_consensus_manual_seal;
1124
1125/// PoW consensus algorithm for substrate.
1126#[cfg(feature = "sc-consensus-pow")]
1127pub use sc_consensus_pow;
1128
1129/// Generic slots-based utilities for consensus.
1130#[cfg(feature = "sc-consensus-slots")]
1131pub use sc_consensus_slots;
1132
1133/// A crate that provides means of executing/dispatching calls into the runtime.
1134#[cfg(feature = "sc-executor")]
1135pub use sc_executor;
1136
1137/// A set of common definitions that are needed for defining execution engines.
1138#[cfg(feature = "sc-executor-common")]
1139pub use sc_executor_common;
1140
1141/// PolkaVM executor for Substrate.
1142#[cfg(feature = "sc-executor-polkavm")]
1143pub use sc_executor_polkavm;
1144
1145/// Defines a `WasmRuntime` that uses the Wasmtime JIT to execute.
1146#[cfg(feature = "sc-executor-wasmtime")]
1147pub use sc_executor_wasmtime;
1148
1149/// Hand-Off Protocol (HOP) ephemeral data pool service.
1150#[cfg(feature = "sc-hop")]
1151pub use sc_hop;
1152
1153/// Substrate informant.
1154#[cfg(feature = "sc-informant")]
1155pub use sc_informant;
1156
1157/// Keystore (and session key management) for ed25519 based chains like Polkadot.
1158#[cfg(feature = "sc-keystore")]
1159pub use sc_keystore;
1160
1161/// Substrate mixnet service.
1162#[cfg(feature = "sc-mixnet")]
1163pub use sc_mixnet;
1164
1165/// Substrate network protocol.
1166#[cfg(feature = "sc-network")]
1167pub use sc_network;
1168
1169/// Substrate network common.
1170#[cfg(feature = "sc-network-common")]
1171pub use sc_network_common;
1172
1173/// Gossiping for the Substrate network protocol.
1174#[cfg(feature = "sc-network-gossip")]
1175pub use sc_network_gossip;
1176
1177/// Substrate light network protocol.
1178#[cfg(feature = "sc-network-light")]
1179pub use sc_network_light;
1180
1181/// Substrate statement protocol.
1182#[cfg(feature = "sc-network-statement")]
1183pub use sc_network_statement;
1184
1185/// Substrate sync network protocol.
1186#[cfg(feature = "sc-network-sync")]
1187pub use sc_network_sync;
1188
1189/// Substrate transaction protocol.
1190#[cfg(feature = "sc-network-transactions")]
1191pub use sc_network_transactions;
1192
1193/// Substrate network types.
1194#[cfg(feature = "sc-network-types")]
1195pub use sc_network_types;
1196
1197/// Substrate offchain workers.
1198#[cfg(feature = "sc-offchain")]
1199pub use sc_offchain;
1200
1201/// Basic metrics for block production.
1202#[cfg(feature = "sc-proposer-metrics")]
1203pub use sc_proposer_metrics;
1204
1205/// Substrate Client RPC.
1206#[cfg(feature = "sc-rpc")]
1207pub use sc_rpc;
1208
1209/// Substrate RPC interfaces.
1210#[cfg(feature = "sc-rpc-api")]
1211pub use sc_rpc_api;
1212
1213/// Substrate RPC servers.
1214#[cfg(feature = "sc-rpc-server")]
1215pub use sc_rpc_server;
1216
1217/// Substrate RPC interface v2.
1218#[cfg(feature = "sc-rpc-spec-v2")]
1219pub use sc_rpc_spec_v2;
1220
1221/// Substrate client utilities for frame runtime functions calls.
1222#[cfg(feature = "sc-runtime-utilities")]
1223pub use sc_runtime_utilities;
1224
1225/// Substrate service. Starts a thread that spins up the network, client, and extrinsic pool.
1226/// Manages communication between them.
1227#[cfg(feature = "sc-service")]
1228pub use sc_service;
1229
1230/// State database maintenance. Handles canonicalization and pruning in the database.
1231#[cfg(feature = "sc-state-db")]
1232pub use sc_state_db;
1233
1234/// Substrate statement store.
1235#[cfg(feature = "sc-statement-store")]
1236pub use sc_statement_store;
1237
1238/// Storage monitor service for substrate.
1239#[cfg(feature = "sc-storage-monitor")]
1240pub use sc_storage_monitor;
1241
1242/// A RPC handler to create sync states for light clients.
1243#[cfg(feature = "sc-sync-state-rpc")]
1244pub use sc_sync_state_rpc;
1245
1246/// A crate that provides basic hardware and software telemetry information.
1247#[cfg(feature = "sc-sysinfo")]
1248pub use sc_sysinfo;
1249
1250/// Telemetry utils.
1251#[cfg(feature = "sc-telemetry")]
1252pub use sc_telemetry;
1253
1254/// Instrumentation implementation for substrate.
1255#[cfg(feature = "sc-tracing")]
1256pub use sc_tracing;
1257
1258/// Helper macros for Substrate's client CLI.
1259#[cfg(feature = "sc-tracing-proc-macro")]
1260pub use sc_tracing_proc_macro;
1261
1262/// Substrate transaction pool implementation.
1263#[cfg(feature = "sc-transaction-pool")]
1264pub use sc_transaction_pool;
1265
1266/// Transaction pool client facing API.
1267#[cfg(feature = "sc-transaction-pool-api")]
1268pub use sc_transaction_pool_api;
1269
1270/// I/O for Substrate runtimes.
1271#[cfg(feature = "sc-utils")]
1272pub use sc_utils;
1273
1274/// Host-side PolkaVM backend driving the sp-virtualization host functions.
1275#[cfg(feature = "sc-virtualization")]
1276pub use sc_virtualization;
1277
1278/// Helper crate for generating slot ranges for the Polkadot runtime.
1279#[cfg(feature = "slot-range-helper")]
1280pub use slot_range_helper;
1281
1282/// Substrate runtime api primitives.
1283#[cfg(feature = "sp-api")]
1284pub use sp_api;
1285
1286/// Macros for declaring and implementing runtime apis.
1287#[cfg(feature = "sp-api-proc-macro")]
1288pub use sp_api_proc_macro;
1289
1290/// Provides facilities for generating application specific crypto wrapper types.
1291#[cfg(feature = "sp-application-crypto")]
1292pub use sp_application_crypto;
1293
1294/// Minimal fixed point arithmetic primitives and types for runtime.
1295#[cfg(feature = "sp-arithmetic")]
1296pub use sp_arithmetic;
1297
1298/// Authority discovery primitives.
1299#[cfg(feature = "sp-authority-discovery")]
1300pub use sp_authority_discovery;
1301
1302/// The block builder runtime api.
1303#[cfg(feature = "sp-block-builder")]
1304pub use sp_block_builder;
1305
1306/// Substrate blockchain traits and primitives.
1307#[cfg(feature = "sp-blockchain")]
1308pub use sp_blockchain;
1309
1310/// Common utilities for building and using consensus engines in substrate.
1311#[cfg(feature = "sp-consensus")]
1312pub use sp_consensus;
1313
1314/// Primitives for Aura consensus.
1315#[cfg(feature = "sp-consensus-aura")]
1316pub use sp_consensus_aura;
1317
1318/// Primitives for BABE consensus.
1319#[cfg(feature = "sp-consensus-babe")]
1320pub use sp_consensus_babe;
1321
1322/// Primitives for BEEFY protocol.
1323#[cfg(feature = "sp-consensus-beefy")]
1324pub use sp_consensus_beefy;
1325
1326/// Primitives for GRANDPA integration, suitable for WASM compilation.
1327#[cfg(feature = "sp-consensus-grandpa")]
1328pub use sp_consensus_grandpa;
1329
1330/// Primitives for Aura consensus.
1331#[cfg(feature = "sp-consensus-pow")]
1332pub use sp_consensus_pow;
1333
1334/// Primitives for slots-based consensus.
1335#[cfg(feature = "sp-consensus-slots")]
1336pub use sp_consensus_slots;
1337
1338/// Shareable Substrate types.
1339#[cfg(feature = "sp-core")]
1340pub use sp_core;
1341
1342/// Hashing primitives (deprecated: use sp-crypto-hashing for new applications).
1343#[cfg(feature = "sp-core-hashing")]
1344pub use sp_core_hashing;
1345
1346/// Procedural macros for calculating static hashes (deprecated in favor of
1347/// `sp-crypto-hashing-proc-macro`).
1348#[cfg(feature = "sp-core-hashing-proc-macro")]
1349pub use sp_core_hashing_proc_macro;
1350
1351/// Host functions for common Arkworks elliptic curve operations.
1352#[cfg(feature = "sp-crypto-ec-utils")]
1353pub use sp_crypto_ec_utils;
1354
1355/// Hashing primitives.
1356#[cfg(feature = "sp-crypto-hashing")]
1357pub use sp_crypto_hashing;
1358
1359/// Procedural macros for calculating static hashes.
1360#[cfg(feature = "sp-crypto-hashing-proc-macro")]
1361pub use sp_crypto_hashing_proc_macro;
1362
1363/// Primitives for the Dynamic Allocation Pool (DAP).
1364#[cfg(feature = "sp-dap")]
1365pub use sp_dap;
1366
1367/// Substrate database trait.
1368#[cfg(feature = "sp-database")]
1369pub use sp_database;
1370
1371/// Macros to derive runtime debug implementation.
1372#[cfg(feature = "sp-debug-derive")]
1373pub use sp_debug_derive;
1374
1375/// Substrate externalities abstraction.
1376#[cfg(feature = "sp-externalities")]
1377pub use sp_externalities;
1378
1379/// Substrate RuntimeGenesisConfig builder API.
1380#[cfg(feature = "sp-genesis-builder")]
1381pub use sp_genesis_builder;
1382
1383/// HOP (Hand-Off Protocol) primitives and runtime API.
1384#[cfg(feature = "sp-hop")]
1385pub use sp_hop;
1386
1387/// Provides types and traits for creating and checking inherents.
1388#[cfg(feature = "sp-inherents")]
1389pub use sp_inherents;
1390
1391/// I/O for Substrate runtimes.
1392#[cfg(feature = "sp-io")]
1393pub use sp_io;
1394
1395/// Keyring support code for the runtime. A set of test accounts.
1396#[cfg(feature = "sp-keyring")]
1397pub use sp_keyring;
1398
1399/// Keystore primitives.
1400#[cfg(feature = "sp-keystore")]
1401pub use sp_keystore;
1402
1403/// Handling of blobs, usually Wasm code, which may be compressed.
1404#[cfg(feature = "sp-maybe-compressed-blob")]
1405pub use sp_maybe_compressed_blob;
1406
1407/// Intermediate representation of the runtime metadata.
1408#[cfg(feature = "sp-metadata-ir")]
1409pub use sp_metadata_ir;
1410
1411/// Substrate mixnet types and runtime interface.
1412#[cfg(feature = "sp-mixnet")]
1413pub use sp_mixnet;
1414
1415/// Merkle Mountain Range primitives.
1416#[cfg(feature = "sp-mmr-primitives")]
1417pub use sp_mmr_primitives;
1418
1419/// NPoS election algorithm primitives.
1420#[cfg(feature = "sp-npos-elections")]
1421pub use sp_npos_elections;
1422
1423/// Substrate offchain workers primitives.
1424#[cfg(feature = "sp-offchain")]
1425pub use sp_offchain;
1426
1427/// Custom panic hook with bug report link.
1428#[cfg(feature = "sp-panic-handler")]
1429pub use sp_panic_handler;
1430
1431/// Substrate RPC primitives and utilities.
1432#[cfg(feature = "sp-rpc")]
1433pub use sp_rpc;
1434
1435/// Runtime Modules shared primitive types.
1436#[cfg(feature = "sp-runtime")]
1437pub use sp_runtime;
1438
1439/// Substrate runtime interface.
1440#[cfg(feature = "sp-runtime-interface")]
1441pub use sp_runtime_interface;
1442
1443/// This crate provides procedural macros for usage within the context of the Substrate runtime
1444/// interface.
1445#[cfg(feature = "sp-runtime-interface-proc-macro")]
1446pub use sp_runtime_interface_proc_macro;
1447
1448/// Primitives for sessions.
1449#[cfg(feature = "sp-session")]
1450pub use sp_session;
1451
1452/// A crate which contains primitives that are useful for implementation that uses staking
1453/// approaches in general. Definitions related to sessions, slashing, etc go here.
1454#[cfg(feature = "sp-staking")]
1455pub use sp_staking;
1456
1457/// Substrate State Machine.
1458#[cfg(feature = "sp-state-machine")]
1459pub use sp_state_machine;
1460
1461/// A crate which contains primitives related to the statement store.
1462#[cfg(feature = "sp-statement-store")]
1463pub use sp_statement_store;
1464
1465/// Lowest-abstraction level for the Substrate runtime: just exports useful primitives from std
1466/// or client/alloc to be used with any code that depends on the runtime.
1467#[cfg(feature = "sp-std")]
1468pub use sp_std;
1469
1470/// Storage related primitives.
1471#[cfg(feature = "sp-storage")]
1472pub use sp_storage;
1473
1474/// Substrate core types and inherents for timestamps.
1475#[cfg(feature = "sp-timestamp")]
1476pub use sp_timestamp;
1477
1478/// Instrumentation primitives and macros for Substrate.
1479#[cfg(feature = "sp-tracing")]
1480pub use sp_tracing;
1481
1482/// Transaction pool runtime facing API.
1483#[cfg(feature = "sp-transaction-pool")]
1484pub use sp_transaction_pool;
1485
1486/// Transaction storage proof primitives.
1487#[cfg(feature = "sp-transaction-storage-proof")]
1488pub use sp_transaction_storage_proof;
1489
1490/// Patricia trie stuff using a parity-scale-codec node format.
1491#[cfg(feature = "sp-trie")]
1492pub use sp_trie;
1493
1494/// Version module for the Substrate runtime; Provides a function that returns the runtime
1495/// version.
1496#[cfg(feature = "sp-version")]
1497pub use sp_version;
1498
1499/// Macro for defining a runtime version.
1500#[cfg(feature = "sp-version-proc-macro")]
1501pub use sp_version_proc_macro;
1502
1503/// Spawn a new polkavm instance from within the runtime/pvf.
1504#[cfg(feature = "sp-virtualization")]
1505pub use sp_virtualization;
1506
1507/// A PolkaVM program that is used by the `sp-virtualization` tests.
1508#[cfg(feature = "sp-virtualization-test-fixture")]
1509pub use sp_virtualization_test_fixture;
1510
1511/// Types and traits for interfacing between the host and the wasm runtime.
1512#[cfg(feature = "sp-wasm-interface")]
1513pub use sp_wasm_interface;
1514
1515/// Types and traits for interfacing between the host and the wasm runtime.
1516#[cfg(feature = "sp-weights")]
1517pub use sp_weights;
1518
1519/// Utility for building chain-specification files for Substrate-based runtimes based on
1520/// `sp-genesis-builder`.
1521#[cfg(feature = "staging-chain-spec-builder")]
1522pub use staging_chain_spec_builder;
1523
1524/// Substrate node block inspection tool.
1525#[cfg(feature = "staging-node-inspect")]
1526pub use staging_node_inspect;
1527
1528/// Pallet to store the parachain ID.
1529#[cfg(feature = "staging-parachain-info")]
1530pub use staging_parachain_info;
1531
1532/// Tracking allocator to control the amount of memory consumed by the process.
1533#[cfg(feature = "staging-tracking-allocator")]
1534pub use staging_tracking_allocator;
1535
1536/// The basic XCM datastructures.
1537#[cfg(feature = "staging-xcm")]
1538pub use staging_xcm;
1539
1540/// Tools & types for building with XCM and its executor.
1541#[cfg(feature = "staging-xcm-builder")]
1542pub use staging_xcm_builder;
1543
1544/// An abstract and configurable XCM message executor.
1545#[cfg(feature = "staging-xcm-executor")]
1546pub use staging_xcm_executor;
1547
1548/// Generate and restore keys for Substrate based chains such as Polkadot, Kusama and a growing
1549/// number of parachains and Substrate based projects.
1550#[cfg(feature = "subkey")]
1551pub use subkey;
1552
1553/// Converting BIP39 entropy to valid Substrate (sr25519) SecretKeys.
1554#[cfg(feature = "substrate-bip39")]
1555pub use substrate_bip39;
1556
1557/// Crate with utility functions for `build.rs` scripts.
1558#[cfg(feature = "substrate-build-script-utils")]
1559pub use substrate_build_script_utils;
1560
1561/// Substrate RPC for FRAME's support.
1562#[cfg(feature = "substrate-frame-rpc-support")]
1563pub use substrate_frame_rpc_support;
1564
1565/// FRAME's system exposed over Substrate RPC.
1566#[cfg(feature = "substrate-frame-rpc-system")]
1567pub use substrate_frame_rpc_system;
1568
1569/// Endpoint to expose Prometheus metrics.
1570#[cfg(feature = "substrate-prometheus-endpoint")]
1571pub use substrate_prometheus_endpoint;
1572
1573/// Shared JSON-RPC client.
1574#[cfg(feature = "substrate-rpc-client")]
1575pub use substrate_rpc_client;
1576
1577/// Node-specific RPC methods for interaction with state trie migration.
1578#[cfg(feature = "substrate-state-trie-migration-rpc")]
1579pub use substrate_state_trie_migration_rpc;
1580
1581/// Utility for building WASM binaries.
1582#[cfg(feature = "substrate-wasm-builder")]
1583pub use substrate_wasm_builder;
1584
1585/// Common constants for Testnet Parachains runtimes.
1586#[cfg(feature = "testnet-parachains-constants")]
1587pub use testnet_parachains_constants;
1588
1589/// Stick logs together with the TraceID as provided by tempo.
1590#[cfg(feature = "tracing-gum")]
1591pub use tracing_gum;
1592
1593/// Generate an overseer including builder pattern and message wrapper from a single annotated
1594/// struct definition.
1595#[cfg(feature = "tracing-gum-proc-macro")]
1596pub use tracing_gum_proc_macro;
1597
1598/// Test kit to emulate XCM program execution.
1599#[cfg(feature = "xcm-emulator")]
1600pub use xcm_emulator;
1601
1602/// Procedural macros for XCM.
1603#[cfg(feature = "xcm-procedural")]
1604pub use xcm_procedural;
1605
1606/// XCM runtime APIs.
1607#[cfg(feature = "xcm-runtime-apis")]
1608pub use xcm_runtime_apis;
1609
1610/// Test kit to simulate cross-chain message passing and XCM execution.
1611#[cfg(feature = "xcm-simulator")]
1612pub use xcm_simulator;