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