Complete terminology rebrand to Pezkuwi ecosystem

Applied global changes: Polkadot->Pezkuwi, Parachain->TeyrChain, pallet->pezpallet, frame->pezframe.

Updated authors in Cargo.toml to include Kurdistan Tech Institute and pezkuwichain team.

Used Cargo aliases to maintain SDK compatibility while using rebranded names in source code.
This commit is contained in:
2025-12-22 09:03:43 +03:00
parent a52909422a
commit d839cbd92b
180 changed files with 3537 additions and 2889 deletions

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 145 KiB

+14 -14
View File
@@ -3,7 +3,7 @@
** xref:guides/weights_fees.adoc[Weights & Fees]
** xref:guides/async_backing.adoc[Async Backing]
** xref:guides/hrmp_channels.adoc[Sending XCM between Parachains]
** xref:guides/pallet_abstractions.adoc[OpenZeppelin Pallet Abstractions]
** xref:guides/pezpallet_abstractions.adoc[OpenZeppelin Pezpallet Abstractions]
** xref:guides/pay_dot_as_a_fee.adoc[Pay DOT as a Fee]
* EVM Template Guides
** xref:guides/contract_migration.adoc[Contract Migration]
@@ -15,19 +15,19 @@
** xref:runtimes/evm.adoc[EVM Runtime]
* Runtime Descriptions
** xref:runtime/xcm_executor.adoc[XCM Executor]
* Pallet Specifications
** xref:pallets/aura_ext.adoc[cumulus_pallet_aura_ext]
** xref:pallets/parachain-system.adoc[cumulus_pallet_parachain_system]
** xref:pallets/xcmp-queue.adoc[cumulus_pallet_xcmp_queue]
** xref:pallets/assets.adoc[pallet_assets]
** xref:pallets/balances.adoc[pallet_balances]
** xref:pallets/collator-selection.adoc[pallet_collator_selection]
** xref:pallets/message-queue.adoc[pallet_message_queue]
** xref:pallets/multisig.adoc[pallet_multisig]
** xref:pallets/proxy.adoc[pallet_proxy]
** xref:pallets/transaction_payment.adoc[pallet_transaction_payment]
** xref:pallets/treasury.adoc[pallet_treasury]
** xref:pallets/xcm.adoc[pallet_xcm]
* Pezpallet Specifications
** xref:pezpallets/aura_ext.adoc[cumulus_pezpallet_aura_ext]
** xref:pezpallets/parachain-system.adoc[cumulus_pezpallet_parachain_system]
** xref:pezpallets/xcmp-queue.adoc[cumulus_pezpallet_xcmp_queue]
** xref:pezpallets/assets.adoc[pezpallet_assets]
** xref:pezpallets/balances.adoc[pezpallet_balances]
** xref:pezpallets/collator-selection.adoc[pezpallet_collator_selection]
** xref:pezpallets/message-queue.adoc[pezpallet_message_queue]
** xref:pezpallets/multisig.adoc[pezpallet_multisig]
** xref:pezpallets/proxy.adoc[pezpallet_proxy]
** xref:pezpallets/transaction_payment.adoc[pezpallet_transaction_payment]
** xref:pezpallets/treasury.adoc[pezpallet_treasury]
** xref:pezpallets/xcm.adoc[pezpallet_xcm]
* Misc
** xref:misc/multisig-accounts.adoc[Multisig Accounts]
* Appendix
@@ -73,11 +73,11 @@ function sendToken(address token, ParaID destinationChain, MultiAddress destinat
payable;
```
If the ERC20 tokens has not been bridged before, there is a prerequisite step to register the ERC20 token on AssetHub via the `ForeignAssets` pallet. To register ERC20 tokens for the first time, the user may send the following transaction to the Gateway:
If the ERC20 tokens has not been bridged before, there is a prerequisite step to register the ERC20 token on AssetHub via the `ForeignAssets` pezpallet. To register ERC20 tokens for the first time, the user may send the following transaction to the Gateway:
```solidity, ignore
function registerToken(address token) external payable;
```
The above function sends a message to the AssetHub parachain to register a new fungible asset in the `ForeignAssets` pallet. To account for delivery costs, the above function charges a fee in Ether which may be retrieved beforehand by calling `quoteRegisterFee`.
The above function sends a message to the AssetHub parachain to register a new fungible asset in the `ForeignAssets` pezpallet. To account for delivery costs, the above function charges a fee in Ether which may be retrieved beforehand by calling `quoteRegisterFee`.
For more information, see the link:https://docs.snowbridge.network[Snowbridge Docs]. For more information on the Snowbridge deployment to Polkadot, see the link:https://polkadot.polkassembly.io/referenda/680[governance proposal which initialized Snowbridge on BridgeHub and AssetHub].
@@ -19,12 +19,12 @@ To add oracle members, you'll need to submit transactions with sudo or root priv
# Add a member (replace with actual address)
subxt tx --url "ws://localhost:9944" \
--suri "<sudo-suri>" \
pallet-membership add_member \
pezpallet-membership add_member \
--account "<oracle-public-key>"
# Verify members
subxt query --url "ws://localhost:9944" \
pallet-membership members
pezpallet-membership members
----
=== 2. Format Oracle Values
@@ -88,12 +88,12 @@ done
== Opting out
If you want to opt out of this feature, then you can just replace the `pallet_asset_tx_payment` with `pallet_transaction_payment` piece in `SignedExtra`:
If you want to opt out of this feature, then you can just replace the `pezpallet_asset_tx_payment` with `pezpallet_transaction_payment` piece in `SignedExtra`:
[source,patch]
pub type SignedExtra = (
...
- pallet_asset_tx_payment::ChargeAssetTxPayment<Runtime>,
+ pallet_transaction_payment::ChargeTransactionPayment<Runtime>,
- pezpallet_asset_tx_payment::ChargeAssetTxPayment<Runtime>,
+ pezpallet_transaction_payment::ChargeTransactionPayment<Runtime>,
...
);
@@ -2,19 +2,19 @@
:highlightjs-languages: rust
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
= OpenZeppelin Pallet Abstractions
= OpenZeppelin Pezpallet Abstractions
=== Introduction
link:https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions[openzeppelin-pallet-abstractions] is a Rust macro library designed to simplify and secure the configuration of Polkadot parachain runtimes. By reducing repetitive boilerplate and providing sensible defaults, the library helps developers configure their runtimes with fewer lines of code while ensuring flexibility for customizations.
link:https://github.com/OpenZeppelin/openzeppelin-pezpallet-abstractions[openzeppelin-pezpallet-abstractions] is a Rust macro library designed to simplify and secure the configuration of Polkadot parachain runtimes. By reducing repetitive boilerplate and providing sensible defaults, the library helps developers configure their runtimes with fewer lines of code while ensuring flexibility for customizations.
Note: This library has not been audited yet and should not be used in production environments.
=== 1. Installation
To start using the `openzeppelin-pallet-abstractions`, add it as a dependency in your Cargo.toml file:
To start using the `openzeppelin-pezpallet-abstractions`, add it as a dependency in your Cargo.toml file:
```toml
[dependencies]
openzeppelin-pallet-abstractions = { git = "https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions", tag = "v0.1.0" }
openzeppelin-pezpallet-abstractions = { git = "https://github.com/OpenZeppelin/openzeppelin-pezpallet-abstractions", tag = "v0.1.0" }
```
Then, import the required macros in your runtime configuration file.
@@ -25,7 +25,7 @@ The library offers a collection of macros for configuring various core runtime e
===== 1. System configuration
The `impl_openzeppelin_system!` macro facilitates the setup of foundational runtime components by implementing the `SystemConfig` trait for your custom runtime structure.
```rust
use openzeppelin_pallet_abstractions::{impl_openzeppelin_system, SystemConfig};
use openzeppelin_pezpallet_abstractions::{impl_openzeppelin_system, SystemConfig};
pub struct OpenZeppelinRuntime;
@@ -39,15 +39,15 @@ impl SystemConfig for OpenZeppelinRuntime {
}
impl_openzeppelin_system!(OpenZeppelinRuntime);
```
This expands to configure multiple core pallets like `frame_system`, `pallet_timestamp`, `parachain_info`, and others essential for a functioning parachain runtime.
This expands to configure multiple core pezpallets like `pezframe_system`, `pezpallet_timestamp`, `parachain_info`, and others essential for a functioning parachain runtime.
===== 2. Additional configurations
Further configuration can be achieved for pallets grouped by functionality, such as Assets, Consensus, EVM, Governance, and XCM. Each grouping has its own macro and configuration trait, making it easier to set up advanced components without redundant code.
Further configuration can be achieved for pezpallets grouped by functionality, such as Assets, Consensus, EVM, Governance, and XCM. Each grouping has its own macro and configuration trait, making it easier to set up advanced components without redundant code.
Example setup for additional configurations in an EVM-based runtime:
```rust
use openzeppelin_pallet_abstractions::{
use openzeppelin_pezpallet_abstractions::{
impl_openzeppelin_assets, impl_openzeppelin_consensus, impl_openzeppelin_evm,
impl_openzeppelin_governance, impl_openzeppelin_xcm, AssetsConfig,
ConsensusConfig, EvmConfig, GovernanceConfig, XcmConfig,
@@ -84,35 +84,35 @@ Custom Implementations: Integrate custom types (like `EitherOf`, `ConstU32`) or
While the library is built with security in mind, its essential to review each configuration for your specific runtime and context.
===== 5. Contributing and Feedback
We encourage contributions from the community to improve the library. Please refer to the link:https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions/blob/main/CONTRIBUTING.MD[CONTRIBUTING.md] for guidelines.
We encourage contributions from the community to improve the library. Please refer to the link:https://github.com/OpenZeppelin/openzeppelin-pezpallet-abstractions/blob/main/CONTRIBUTING.MD[CONTRIBUTING.md] for guidelines.
=== 3. Using Procedural Macros in OpenZeppelin Pallet Abstractions
=== 3. Using Procedural Macros in OpenZeppelin Pezpallet Abstractions
==== 1. `construct_runtime!` Macro
The `construct_runtime!` macro simplifies the assembly of runtime modules by abstracting over both OpenZeppelin abstractions and standard pallets. This is useful for developers aiming to build a runtime quickly, without manually managing each pallets configuration.
The `construct_runtime!` macro simplifies the assembly of runtime modules by abstracting over both OpenZeppelin abstractions and standard pezpallets. This is useful for developers aiming to build a runtime quickly, without manually managing each pezpallets configuration.
===== Usage Example
To use the macro, annotate a module with `#[openzeppelin_construct_runtime]` and define structs for each desired abstraction or regular pallet. Heres a basic example:
To use the macro, annotate a module with `#[openzeppelin_construct_runtime]` and define structs for each desired abstraction or regular pezpallet. Heres a basic example:
```rust
#[openzeppelin_construct_runtime]
mod runtime {
#[abstraction]
struct System; // Available abstractions: System, Consensus, XCM, Assets, Governance, EVM.
#[pallet]
type Pallet = pallet_crate; // Regular pallets defined with `#[pallet]` mimic the `construct_runtime!` structure.
#[pezpallet]
type Pezpallet = pezpallet_crate; // Regular pezpallets defined with `#[pezpallet]` mimic the `construct_runtime!` structure.
}
```
Note: Pallet index assignments are handled automatically by this macro. If you require explicit control over pallet indices, please consider submitting a link:https://github.com/OpenZeppelin/openzeppelin-pallet-abstractions/issues[feature request].
Note: Pezpallet index assignments are handled automatically by this macro. If you require explicit control over pezpallet indices, please consider submitting a link:https://github.com/OpenZeppelin/openzeppelin-pezpallet-abstractions/issues[feature request].
===== Supported Abstractions and their Pallets:
* System -- frame_system, pallet_timestamp, parachain_info, pallet_scheduler, pallet_preimage, pallet_proxy, pallet_balances, pallet_utility, cumulus_pallet_parachain_system, pallet_multisig, pallet_session
* Assets -- pallet_assets, pallet_transaction_payment, pallet_asset_manager
* Consensus -- pallet_authorship, pallet_aura, cumulus_pallet_aura_ext, pallet_collator_selection
* Governance -- pallet_sudo, pallet_treasury, pallet_conviction_voting, pallet_whitelist, pallet_custom_origins, pallet_referenda
* XCM -- pallet_message_queue, cumulus_pallet_xcmp_queue, pallet_xcm, cumulus_pallet_xcm, pallet_xcm_transactor, orml_xtokens, pallet_xcm_weight_trader
* EVM -- pallet_ethereum, pallet_evm, pallet_base_fee, pallet_evm_chain_id, pallet_erc20_xcm_bridge
===== Supported Abstractions and their Pezpallets:
* System -- pezframe_system, pezpallet_timestamp, parachain_info, pezpallet_scheduler, pezpallet_preimage, pezpallet_proxy, pezpallet_balances, pezpallet_utility, cumulus_pezpallet_parachain_system, pezpallet_multisig, pezpallet_session
* Assets -- pezpallet_assets, pezpallet_transaction_payment, pezpallet_asset_manager
* Consensus -- pezpallet_authorship, pezpallet_aura, cumulus_pezpallet_aura_ext, pezpallet_collator_selection
* Governance -- pezpallet_sudo, pezpallet_treasury, pezpallet_conviction_voting, pezpallet_whitelist, pezpallet_custom_origins, pezpallet_referenda
* XCM -- pezpallet_message_queue, cumulus_pezpallet_xcmp_queue, pezpallet_xcm, cumulus_pezpallet_xcm, pezpallet_xcm_transactor, orml_xtokens, pezpallet_xcm_weight_trader
* EVM -- pezpallet_ethereum, pezpallet_evm, pezpallet_base_fee, pezpallet_evm_chain_id, pezpallet_erc20_xcm_bridge
==== 2. `impl_runtime_apis!` Macro
@@ -148,24 +148,24 @@ mod apis {
| * `fp_rpc::EthereumRuntimeRPCApi` +
* `fp_rpc::ConvertTransactionRuntimeApi`
| * `RuntimeCall` -- runtime call generated by `construct_runtime` macro +
* `Executive` -- `frame_executive::Executive` specification used by parachain system +
* `Ethereum` -- `pallet_ethereum` pallet struct generated by `construct_runtime` macro
* `Executive` -- `pezframe_executive::Executive` specification used by parachain system +
* `Ethereum` -- `pezpallet_ethereum` pezpallet struct generated by `construct_runtime` macro
| assets
| * `pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi` +
* `pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi`
| * `TransactionPayment` -- `pallet_transaction_payment` struct pallet generated by `construct_runtime` macro +
| * `pezpallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi` +
* `pezpallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi`
| * `TransactionPayment` -- `pezpallet_transaction_payment` struct pezpallet generated by `construct_runtime` macro +
* `RuntimeCall` -- runtime call generated by `construct_runtime` macro +
* `Balance` -- type used for balance specification (e.g., in `pallet_balances` config)
* `Balance` -- type used for balance specification (e.g., in `pezpallet_balances` config)
| consensus
| * `sp_consensus_aura::AuraApi` +
* `sp_session::SessionKeys` +
* `cumulus_primitives_aura::AuraUnincludedSegmentApi` (if `async-backing` feature is enabled)
| * `SessionKeys` -- struct generated by `impl_opaque_keys` macro +
* `Aura` -- `pallet_aura` struct pallet generated by `construct_runtime` macro (only if `async-backing` feature is not enabled) +
* `Aura` -- `pezpallet_aura` struct pezpallet generated by `construct_runtime` macro (only if `async-backing` feature is not enabled) +
* `SlotDuration` -- constant used for slot duration definition (only if `async-backing` feature is enabled) +
* `ConsensusHook` -- type used in `cumulus_pallet_parachain_system::Config::ConsensusHook` (only if `async-backing` feature is enabled)
* `ConsensusHook` -- type used in `cumulus_pezpallet_parachain_system::Config::ConsensusHook` (only if `async-backing` feature is enabled)
| system
| * `sp_api::Core` +
@@ -173,37 +173,37 @@ mod apis {
* `sp_block_builder::BlockBuilder` +
* `sp_transaction_pool::runtime_api::TaggedTransactionQueue` +
* `sp_offchain::OffchainWorkerApi` +
* `frame_system_rpc_runtime_api::AccountNonceApi` +
* `pezframe_system_rpc_runtime_api::AccountNonceApi` +
* `cumulus_primitives_core::CollectCollationInfo` +
* `frame_try_runtime::TryRuntime` (under a `try-runtime` feature) +
* `pezframe_try_runtime::TryRuntime` (under a `try-runtime` feature) +
* `sp_genesis_builder::GenesisBuilder`
| * `Executive` -- `frame_executive::Executive` specification used by parachain system +
* `System` -- `frame_system` pallet struct generated by `construct_runtime` macro +
* `ParachainSystem` -- `cumulus_pallet_parachain_system` pallet struct generated by `construct_runtime` macro +
| * `Executive` -- `pezframe_executive::Executive` specification used by parachain system +
* `System` -- `pezframe_system` pezpallet struct generated by `construct_runtime` macro +
* `ParachainSystem` -- `cumulus_pezpallet_parachain_system` pezpallet struct generated by `construct_runtime` macro +
* `RuntimeVersion` -- runtime version, generated by `sp_version::runtime_version` +
* `AccountId` -- account id type specified in `frame_system::Config` +
* `Nonce` -- nonce type specified in `frame_system::Config` +
* `AccountId` -- account id type specified in `pezframe_system::Config` +
* `Nonce` -- nonce type specified in `pezframe_system::Config` +
* `RuntimeGenesisConfig` -- type generated by `construct_runtime` macro +
* `RuntimeBlockWeights` -- type implementing `Get<BlockWeights>`, often built by `BlockWeights::builder`
| benchmarks
| * `frame_benchmarking::Benchmark` (under `runtime-benchmarks` feature)
| * `Assets` -- `pallet_assets` pallet struct generated by `construct_runtime` macro +
* `AssetManager` -- `pallet_asset_manager` pallet struct generated by `construct_runtime` macro +
| * `pezframe_benchmarking::Benchmark` (under `runtime-benchmarks` feature)
| * `Assets` -- `pezpallet_assets` pezpallet struct generated by `construct_runtime` macro +
* `AssetManager` -- `pezpallet_asset_manager` pezpallet struct generated by `construct_runtime` macro +
* `AssetType` -- struct describing foreign assets in XCM configuration +
* `RuntimeOrigin` -- type generated by `construct_runtime` macro +
* `RelayLocation` -- `Location` type pointing to the relaychain +
* `System` -- `frame_system` pallet struct generated by `construct_runtime` macro +
* `ParachainSystem` -- `cumulus_pallet_parachain_system` pallet struct generated by `construct_runtime` macro +
* `System` -- `pezframe_system` pezpallet struct generated by `construct_runtime` macro +
* `ParachainSystem` -- `cumulus_pezpallet_parachain_system` pezpallet struct generated by `construct_runtime` macro +
* `ExistentialDeposit` -- type describing existential deposit +
* `AssetId` -- type describing internal asset id +
* `XCMConfig` -- struct implementing `xcm_executor::Config`, generated by XCM abstraction as `XcmExecutorConfig` +
* `AccountId` -- account id type specified in `frame_system::Config` +
* `AccountId` -- account id type specified in `pezframe_system::Config` +
* `Cents` -- constant representing 1/100 of the native token +
* `FeeAssetId` -- asset for XCM fees, generated by XCM abstraction +
* `TransactionByteFee` -- fee per byte of data, generated by assets abstraction +
* `Address` -- type describing address format for accounts +
* `Balances` -- `pallet_balances` pallet struct generated by `construct_runtime` macro
* `Balances` -- `pezpallet_balances` pezpallet struct generated by `construct_runtime` macro
|===
This macro allows for clear modularization of APIs, facilitating easier maintenance and extension of runtime functionalities.
@@ -132,4 +132,4 @@ At this point, you are free to use the omni-node. The command for using omni-nod
- Read our general guides to understand more about the concepts of runtime development.
- Learn more about the runtime configuration. Currently, we have two runtime templates: xref:runtimes/generic.adoc[Generic Runtime Template] and xref:runtimes/evm.adoc[EVM Runtime Template].
- Explore the documentation for pallets. It may be useful if you are considering building a frontend for your parachain.
- Explore the documentation for pezpallets. It may be useful if you are considering building a frontend for your parachain.
@@ -30,18 +30,18 @@ cargo build --features runtime-benchmarks
# Build release runtime benchmarks
cargo build --release --features=runtime-benchmarks
# Collect all pallets needed for benchmarking
# Makes the assumption all pallets are present at: /pallets/$PALLET_NAME
pallets=$(ls pallets/)
# Collect all pezpallets needed for benchmarking
# Makes the assumption all pezpallets are present at: /pezpallets/$PALLET_NAME
pezpallets=$(ls pezpallets/)
# Generate weights
for pallet_name in $pallets; do
./target/release/node benchmark pallet \
--pallet pallet_$pallet_name \
for pezpallet_name in $pezpallets; do
./target/release/node benchmark pezpallet \
--pezpallet pezpallet_$pezpallet_name \
--extrinsic "*" \
--steps 50 \
--repeat 20 \
--output ./runtime/src/weights/$pallet_name.rs
--output ./runtime/src/weights/$pezpallet_name.rs
done
```
[start=3]
@@ -2,17 +2,17 @@
:highlightjs-languages: rust
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
= pallet_assets
= pezpallet_assets
Branch/Release: `release-polkadot-v1.10.0`
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/frame/assets/src/lib.rs[{github-icon},role=heading-link]
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/pezframe/assets/src/lib.rs[{github-icon},role=heading-link]
== Purpose
The `pallet_assets` module is designed to manage and manipulate custom fungible asset types. It provides functionality for asset creation, management, and various operations, allowing for a flexible and scalable approach to asset handling.
The `pezpallet_assets` module is designed to manage and manipulate custom fungible asset types. It provides functionality for asset creation, management, and various operations, allowing for a flexible and scalable approach to asset handling.
== Pallet specific terms
== Pezpallet specific terms
** `Asset ID` - A unique identifier for an asset type.
** `Asset Owner` - The account that owns an asset.
@@ -21,7 +21,7 @@ The `pallet_assets` module is designed to manage and manipulate custom fungible
== Config
* Pallet-specific configs
* Pezpallet-specific configs
** `Balance` -- The balance unit type.
** `RemoveItemsLimit` -- The maximum number of items that can be removed in a single `destroy_accounts` and `destroy_approvals` call.
** `AssetId` -- The unique asset identifiers.
@@ -38,10 +38,10 @@ The `pallet_assets` module is designed to manage and manipulate custom fungible
** `Freezer` -- A hook to allow a per-asset, per-account minimum balance to be enforced.
** `Extra` -- The extra data to be stored with an account's asset balance.
** `CallbackHandle` -- An asset created or destroyed callback functions.
** `BenchmarkHelper` -- A helper type to benchmark the pallet's weight.
** `BenchmarkHelper` -- A helper type to benchmark the pezpallet's weight.
* Common configs
** `RuntimeEvent` -- The overarching event type.
** `WeightInfo` -- xref:glossary.adoc#weight[Weight] information for extrinsics in this pallet.
** `WeightInfo` -- xref:glossary.adoc#weight[Weight] information for extrinsics in this pezpallet.
== Events
@@ -128,7 +128,7 @@ pub fn force_create(
id: T::AssetIdParameter,
owner: AccountIdLookupOf<T>,
is_sufficient: bool,
#[pallet::compact] min_balance: T::Balance,
#[pezpallet::compact] min_balance: T::Balance,
) -> DispatchResult
----
Issues a new class of fungible assets from a privileged origin.
@@ -228,12 +228,12 @@ pub fn mint(
origin: OriginFor<T>,
id: T::AssetIdParameter,
beneficiary: AccountIdLookupOf<T>,
#[pallet::compact] amount: T::Balance,
#[pezpallet::compact] amount: T::Balance,
) -> DispatchResult
----
Mints new units of a specific asset and assigns them to a beneficiary account.
NOTE: The `mint` function allows authorized accounts to increase the supply of an asset. The origin must be authorized to mint assets, typically configured via `MintOrigin`. The `#[pallet::compact]` attribute is used to optimize the storage of the `amount` parameter. This function ensures that the total supply doesn't overflow and that the beneficiary is capable of holding the asset.
NOTE: The `mint` function allows authorized accounts to increase the supply of an asset. The origin must be authorized to mint assets, typically configured via `MintOrigin`. The `#[pezpallet::compact]` attribute is used to optimize the storage of the `amount` parameter. This function ensures that the total supply doesn't overflow and that the beneficiary is capable of holding the asset.
**Params:**
@@ -251,12 +251,12 @@ pub fn burn(
origin: OriginFor<T>,
id: T::AssetIdParameter,
who: AccountIdLookupOf<T>,
#[pallet::compact] amount: T::Balance,
#[pezpallet::compact] amount: T::Balance,
) -> DispatchResult
----
Destroys units of a specific asset from the specified account.
NOTE: The `burn` function decreases the supply of an asset by removing a specified amount from a particular account. The origin must be authorized to burn assets, typically configured via `BurnOrigin`. The `#[pallet::compact]` attribute optimizes the storage of the `amount` parameter. This function is used for asset management, such as reducing supply or removing assets from circulation for regulatory compliance.
NOTE: The `burn` function decreases the supply of an asset by removing a specified amount from a particular account. The origin must be authorized to burn assets, typically configured via `BurnOrigin`. The `#[pezpallet::compact]` attribute optimizes the storage of the `amount` parameter. This function is used for asset management, such as reducing supply or removing assets from circulation for regulatory compliance.
**Params:**
@@ -274,12 +274,12 @@ pub fn transfer(
origin: OriginFor<T>,
id: T::AssetIdParameter,
target: AccountIdLookupOf<T>,
#[pallet::compact] amount: T::Balance,
#[pezpallet::compact] amount: T::Balance,
) -> DispatchResult
----
Transfers a specified amount of a specific asset to a target account.
NOTE: The `transfer` function allows assets to be moved between accounts. The origin must be signed by the account wishing to transfer assets and must have sufficient balance. The `#[pallet::compact]` attribute is used for efficient storage of the `amount` parameter. This function checks for liquidity, asset validity, and the receiving account's ability to accept the asset, ensuring secure and accurate transactions.
NOTE: The `transfer` function allows assets to be moved between accounts. The origin must be signed by the account wishing to transfer assets and must have sufficient balance. The `#[pezpallet::compact]` attribute is used for efficient storage of the `amount` parameter. This function checks for liquidity, asset validity, and the receiving account's ability to accept the asset, ensuring secure and accurate transactions.
**Params:**
@@ -297,12 +297,12 @@ pub fn transfer_keep_alive(
origin: OriginFor<T>,
id: T::AssetIdParameter,
target: AccountIdLookupOf<T>,
#[pallet::compact] amount: T::Balance,
#[pezpallet::compact] amount: T::Balance,
) -> DispatchResult
----
Transfers a specified amount of a specific asset to a target account, ensuring that the transfer does not result in the sender's total demise.
NOTE: The `transfer_keep_alive` function is similar to `transfer` but includes an additional check that prevents the transfer if it would cause the origin account to be reaped. This is critical for ensuring the account's continued existence, particularly for accounts with minimum balance requirements. The `#[pallet::compact]` attribute is used for efficient storage of the `amount` parameter. Like `transfer`, it ensures secure and precise asset movement between accounts.
NOTE: The `transfer_keep_alive` function is similar to `transfer` but includes an additional check that prevents the transfer if it would cause the origin account to be reaped. This is critical for ensuring the account's continued existence, particularly for accounts with minimum balance requirements. The `#[pezpallet::compact]` attribute is used for efficient storage of the `amount` parameter. Like `transfer`, it ensures secure and precise asset movement between accounts.
**Params:**
@@ -321,12 +321,12 @@ pub fn force_transfer(
id: T::AssetIdParameter,
source: AccountIdLookupOf<T>,
dest: AccountIdLookupOf<T>,
#[pallet::compact] amount: T::Balance,
#[pezpallet::compact] amount: T::Balance,
) -> DispatchResult
----
Forces the transfer of a specified amount of a specific asset from a source account to a destination account.
NOTE: The `force_transfer` function is an administrative tool that allows a privileged origin, typically configured via `ForceOrigin`, to move assets between accounts without consent from the source. This might be used in exceptional scenarios, such as legal or administrative resolutions. The `#[pallet::compact]` attribute optimizes storage of the `amount` parameter. This function must be used with caution due to its power and potential impact on account balances.
NOTE: The `force_transfer` function is an administrative tool that allows a privileged origin, typically configured via `ForceOrigin`, to move assets between accounts without consent from the source. This might be used in exceptional scenarios, such as legal or administrative resolutions. The `#[pezpallet::compact]` attribute optimizes storage of the `amount` parameter. This function must be used with caution due to its power and potential impact on account balances.
**Params:**
@@ -564,7 +564,7 @@ pub fn force_asset_status(
issuer: AccountIdLookupOf<T>,
admin: AccountIdLookupOf<T>,
freezer: AccountIdLookupOf<T>,
#[pallet::compact] min_balance: T::Balance,
#[pezpallet::compact] min_balance: T::Balance,
is_sufficient: bool,
is_frozen: bool,
) -> DispatchResult
@@ -594,12 +594,12 @@ pub fn approve_transfer(
origin: OriginFor<T>,
id: T::AssetIdParameter,
delegate: AccountIdLookupOf<T>,
#[pallet::compact] amount: T::Balance,
#[pezpallet::compact] amount: T::Balance,
) -> DispatchResult
----
Approves a delegate to transfer a specified amount of a specific asset on behalf of the origin account.
NOTE: The `approve_transfer` function allows the origin account to delegate transfer rights for a portion of their assets to another account, known as the delegate. This is useful in scenarios where temporary or limited rights to transfer assets are needed without transferring full ownership. The approval specifies an exact amount of the asset that the delegate is allowed to transfer. The `#[pallet::compact]` attribute is used for efficient storage of the `amount` parameter. This function is often used in decentralized applications to enable features like spending allowances and automated payments.
NOTE: The `approve_transfer` function allows the origin account to delegate transfer rights for a portion of their assets to another account, known as the delegate. This is useful in scenarios where temporary or limited rights to transfer assets are needed without transferring full ownership. The approval specifies an exact amount of the asset that the delegate is allowed to transfer. The `#[pezpallet::compact]` attribute is used for efficient storage of the `amount` parameter. This function is often used in decentralized applications to enable features like spending allowances and automated payments.
**Params:**
@@ -663,12 +663,12 @@ pub fn transfer_approved(
id: T::AssetIdParameter,
owner: AccountIdLookupOf<T>,
destination: AccountIdLookupOf<T>,
#[pallet::compact] amount: T::Balance,
#[pezpallet::compact] amount: T::Balance,
) -> DispatchResult
----
Executes a transfer of a specified amount of an asset from an owner to a destination account, using a previously granted approval.
NOTE: The `transfer_approved` function allows a delegate (the origin) to transfer assets within the limits of an approval granted by the asset's owner. This enables scenarios where third parties are given limited rights to manage assets. The function ensures that the delegate cannot exceed the approved amount or perform transfers without a valid approval. The `#[pallet::compact]` attribute is used for efficient storage of the `amount` parameter. It's a critical function for flexible asset management in decentralized systems and applications.
NOTE: The `transfer_approved` function allows a delegate (the origin) to transfer assets within the limits of an approval granted by the asset's owner. This enables scenarios where third parties are given limited rights to manage assets. The function ensures that the delegate cannot exceed the approved amount or perform transfers without a valid approval. The `#[pezpallet::compact]` attribute is used for efficient storage of the `amount` parameter. It's a critical function for flexible asset management in decentralized systems and applications.
**Params:**
@@ -2,30 +2,30 @@
:highlightjs-languages: rust
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
= cumulus_pallet_aura_ext
= cumulus_pezpallet_aura_ext
Branch/Release: `release-polkadot-v1.10.0`
== Purpose
This pallet integrates parachains own block production mechanism (for example AuRa) into Cumulus parachain system. It allows:
This pezpallet integrates parachains own block production mechanism (for example AuRa) into Cumulus parachain system. It allows:
- to manage the unincluded blocks from the current slot
- to validate produced block against the relay chain
== Configuration and Integration link:https://github.com/paritytech/polkadot-sdk/tree/release-polkadot-v1.10.0/cumulus/pallets/aura-ext[{github-icon},role=heading-link]
== Configuration and Integration link:https://github.com/paritytech/polkadot-sdk/tree/release-polkadot-v1.10.0/cumulus/pezpallets/aura-ext[{github-icon},role=heading-link]
There is no special config for this integration and it has no dispatchables, but you need to integrate it with other `parachain-system` crate:
=== Integrate `BlockExecutor`
When you invoke the `register_validate_block` macro, you should provide `cumulus_pallet_aura_ext::BlockExecutor` to it to allow `aura-ext` to validate the blocks produced by `aura`
When you invoke the `register_validate_block` macro, you should provide `cumulus_pezpallet_aura_ext::BlockExecutor` to it to allow `aura-ext` to validate the blocks produced by `aura`
[source, rust]
----
cumulus_pallet_parachain_system::register_validate_block! {
cumulus_pezpallet_parachain_system::register_validate_block! {
Runtime = Runtime,
BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::<Runtime, Executive>,
BlockExecutor = cumulus_pezpallet_aura_ext::BlockExecutor::<Runtime, Executive>,
}
----
@@ -35,9 +35,9 @@ Also you might want to manage the consensus externally and control the segment t
[source, rust]
----
impl cumulus_pallet_parachain_system::Config for Runtime {
impl cumulus_pezpallet_parachain_system::Config for Runtime {
...
type ConsensusHook = cumulus_pallet_aura_ext::FixedVelocityConsensusHook<
type ConsensusHook = cumulus_pezpallet_aura_ext::FixedVelocityConsensusHook<
Runtime,
RELAY_CHAIN_SLOT_DURATION_MILLIS,
BLOCK_PROCESSING_VELOCITY,
@@ -2,15 +2,15 @@
:highlightjs-languages: rust
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
= pallet_balances
= pezpallet_balances
Branch/Release: `release-polkadot-v1.10.0`
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/frame/balances/src/lib.rs[{github-icon},role=heading-link]
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/pezframe/balances/src/lib.rs[{github-icon},role=heading-link]
== Purpose
The Balances pallet provides functions for:
The Balances pezpallet provides functions for:
* Getting and setting free balances.
* Retrieving total, reserved, and unreserved balances.
@@ -23,7 +23,7 @@ The Balances pallet provides functions for:
== Config
* Pallet-specific configs
* Pezpallet-specific configs
** `RuntimeHoldReason` -- The overarching xref:glossary.adoc#hold[hold] reason.
** `RuntimeFreezeReason` -- The overarching xref:glossary.adoc#freeze[freeze] reason.
** `Balance` -- The balance of an account
@@ -37,7 +37,7 @@ The Balances pallet provides functions for:
** `MaxFreezes` -- The maximum number of individual freeze locks that can exist on an account at any time.
* Common configs
** `RuntimeEvent` -- The overarching event type.
** `WeightInfo` -- xref:glossary.adoc#weight[Weight] information for extrinsics in this pallet.
** `WeightInfo` -- xref:glossary.adoc#weight[Weight] information for extrinsics in this pezpallet.
== Events
@@ -89,7 +89,7 @@ The Balances pallet provides functions for:
pub fn transfer_allow_death(
origin: OriginFor<T>,
dest: AccountIdLookupOf<T>,
#[pallet::compact] value: T::Balance,
#[pezpallet::compact] value: T::Balance,
) -> DispatchResult
----
Transfers the `value` from `origin` to `dest`.
@@ -111,7 +111,7 @@ NOTE: `allow_death` means, that if the account balance drops below the Existenti
pub fn transfer_keep_alive(
origin: OriginFor<T>,
dest: AccountIdLookupOf<T>,
#[pallet::compact] value: T::Balance,
#[pezpallet::compact] value: T::Balance,
) -> DispatchResult
----
Transfers the `value` from `origin` to `dest`.
@@ -135,7 +135,7 @@ pub fn force_transfer(
origin: OriginFor<T>,
source: AccountIdLookupOf<T>,
dest: AccountIdLookupOf<T>,
#[pallet::compact] value: T::Balance,
#[pezpallet::compact] value: T::Balance,
) -> DispatchResult
----
Exactly as `transfer_allow_death`, except the origin must be root and the source account may be specified.
@@ -214,7 +214,7 @@ NOTE: This will waive the transaction fee if at least all but 10% of the account
pub fn force_set_balance(
origin: OriginFor<T>,
who: AccountIdLookupOf<T>,
#[pallet::compact] new_free: T::Balance,
#[pezpallet::compact] new_free: T::Balance,
) -> DispatchResult
----
Set the regular balance of a given account. The caller (origin) must be root.
@@ -233,7 +233,7 @@ Set the regular balance of a given account. The caller (origin) must be root.
pub fn force_adjust_total_issuance(
origin: OriginFor<T>,
direction: AdjustmentDirection,
#[pallet::compact] delta: T::Balance,
#[pezpallet::compact] delta: T::Balance,
) -> DispatchResult
----
Adjust the total issuance in a saturating way.
@@ -6,15 +6,15 @@
Branch/Release: `release-polkadot-v1.10.0`
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/cumulus/pallets/collator-selection/src/lib.rs[{github-icon},role=heading-link]
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/cumulus/pezpallets/collator-selection/src/lib.rs[{github-icon},role=heading-link]
== Purpose
This pallet is needed to manage the set of xref:glossary.adoc#collator[collators] for each session and to provision the next session with the actual list of collators.
This pezpallet is needed to manage the set of xref:glossary.adoc#collator[collators] for each session and to provision the next session with the actual list of collators.
== Config
* Pallet-specific configs
* Pezpallet-specific configs
** `UpdateOrigin` — defines the list of origins that are able to modify the settings of collators (e.g. set and remove list of xref:glossary.adoc#invulnerable[invulnerables], desired xref:glossary.adoc#candidates[candidates], xref:glossary.adoc#candidacy_bond[candidacy bond]). This type should implement the trait `EnsureOrigin`.
** `PotId` — id of account that will hold a xref:glossary.adoc#pot[Pot].
** `MaxCandidates` — maximum number of candidates
@@ -2,29 +2,29 @@
:highlightjs-languages: rust
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
= pallet_message_queue
= pezpallet_message_queue
Branch/Release: `release-polkadot-v1.10.0`
Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/frame/message-queue/src/lib.rs[{github-icon},role=heading-link]
Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/pezframe/message-queue/src/lib.rs[{github-icon},role=heading-link]
== Purpose
Flexible FRAME pallet for implementing message queues. This pallet can also initiate message processing using the `MessageProcessor` (see `Config`).
Flexible FRAME pezpallet for implementing message queues. This pezpallet can also initiate message processing using the `MessageProcessor` (see `Config`).
== Config
* Pallet-specific configs:
* Pezpallet-specific configs:
** `MessageProcessor` -- Processor for messages
** `Size` -- Page/heap size type.
** `QueueChangeHandler` -- Code to be called when a message queue changes - either with items introduced or removed.
** `QueuePausedQuery` -- Queried by the pallet to check whether a queue can be serviced.
** `QueuePausedQuery` -- Queried by the pezpallet to check whether a queue can be serviced.
** `HeapSize` -- The size of the page; this also serves as the maximum message size which can be sent.
** `MaxStale` -- The maximum number of stale pages (i.e. of overweight messages) allowed before culling can happen. Once there are more stale pages than this, then historical pages may be dropped, even if they contain unprocessed overweight messages.
** `ServiceWeight` -- The amount of weight (if any) which should be provided to the message queue for servicing enqueued items `on_initialize`. This may be legitimately `None` in the case that you will call `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have it run in `on_idle`.
** `IdleMaxServiceWeight` -- The maximum amount of weight (if any) to be used from remaining weight `on_idle` which should be provided to the message queue for servicing enqueued items `on_idle`. Useful for parachains to process messages at the same block they are received. If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`.
* Common configs:
** `RuntimeEvent` -- The overarching event type.
** `WeightInfo` -- Weight information for extrinsics in this pallet.
** `WeightInfo` -- Weight information for extrinsics in this pezpallet.
== Dispatchables
@@ -46,7 +46,7 @@ Execute an overweight message.
NOTE: Temporary processing errors will be propagated whereas permanent errors are treated
as success condition.
IMPORTANT: The `weight_limit` passed to this function does not affect the `weight_limit` set in other parts of the pallet.
IMPORTANT: The `weight_limit` passed to this function does not affect the `weight_limit` set in other parts of the pezpallet.
**Params:**
@@ -56,7 +56,7 @@ IMPORTANT: The `weight_limit` passed to this function does not affect the `weigh
* `page: PageIndex` -- The page in the queue in which the message to be executed is sitting.
* `index: T::Size` -- The index into the queue of the message to be executed.
* `weight_limit: Weight` -- The maximum amount of weight allowed to be consumed in the execution
of the message. This weight limit does not affect other parts of the pallet, and it is only used for this call of `execute_overweight`.
of the message. This weight limit does not affect other parts of the pezpallet, and it is only used for this call of `execute_overweight`.
**Errors:**
@@ -64,7 +64,7 @@ of the message. This weight limit does not affect other parts of the pallet, and
* `NoPage` -- if the page that overweight message to be executed belongs to does not exist.
* `NoMessage` -- if the overweight message could not be found.
* `Queued` -- if the overweight message is already scheduled for future execution.
For a message to be labeled as overweight, the pallet must have previously attempted execution and
For a message to be labeled as overweight, the pezpallet must have previously attempted execution and
encountered failure due to insufficient weight for processing. Once marked as overweight, the message
is excluded from the queue for future execution.
* `AlreadyProcessed` -- if the overweight message is already processed.
@@ -108,12 +108,12 @@ Remove a page which has no more messages remaining to be processed or is stale.
== Important Mentions and FAQ's
IMPORTANT: The pallet utilizes the [`sp_weights::WeightMeter`] to manually track its consumption to always stay within
IMPORTANT: The pezpallet utilizes the [`sp_weights::WeightMeter`] to manually track its consumption to always stay within
the required limit. This implies that the message processor hook can calculate the weight of a message without executing it.
==== How does this pallet work under the hood?
==== How does this pezpallet work under the hood?
- This pallet utilizes queues to store, enqueue, dequeue, and process messages.
- This pezpallet utilizes queues to store, enqueue, dequeue, and process messages.
- Queues are stored in `BookStateFor` storage, with their origin serving as the key (so, we can identify queues by their origins).
- Each message has an origin (message_origin), that defines into which queue the message will be stored.
- Messages are stored by being appended to the last `Page` of the Queue's Book. A Queue is a book along with the MessageOrigin for that book.
@@ -2,11 +2,11 @@
:highlightjs-languages: rust
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
= pallet_multisig
= pezpallet_multisig
Branch/Release: `release-polkadot-v1.10.0`
== Source Code: link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/frame/multisig/src/lib.rs[{github-icon},role=heading-link]
== Source Code: link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/pezframe/multisig/src/lib.rs[{github-icon},role=heading-link]
== Purpose
@@ -14,7 +14,7 @@ This module enables multi-signature operations in your runtime. It allows multip
== Config
* Pallet-specific configs
* Pezpallet-specific configs
** `DepositBase` -- The base amount of currency needed to xref:glossary.adoc#reserve[reserve] for creating a multisig execution or to store a dispatch call for later. Recall: The deposit to be made by the account that creates the multisig is: `threshold * DepositFactor + DepositBase`
** `DepositFactor` -- The amount of currency needed per unit threshold when creating a multisig execution. Recall: The deposit to be made by the account that creates the multisig is: `threshold * DepositFactor + DepositBase`
** `MaxSignatories` -- The maximum amount of signatories allowed in the multisig.
@@ -22,7 +22,7 @@ This module enables multi-signature operations in your runtime. It allows multip
** `RuntimeEvent` -- The overarching event type.
** `RuntimeCall` -- The overarching call type.
** `Currency` -- The currency mechanism.
** `WeightInfo` -- xref:glossary.adoc#weight[Weight] information for extrinsics in this pallet.
** `WeightInfo` -- xref:glossary.adoc#weight[Weight] information for extrinsics in this pezpallet.
== Dispatchables
@@ -2,19 +2,19 @@
:highlightjs-languages: rust
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
= pallet_proxy
= pezpallet_proxy
Branch/Release: `release-polkadot-v1.10.0`
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/frame/proxy/src/lib.rs[{github-icon},role=heading-link]
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/pezframe/proxy/src/lib.rs[{github-icon},role=heading-link]
== Purpose
This pallet enables delegation of rights to execute certain call types from one origin to another.
This pezpallet enables delegation of rights to execute certain call types from one origin to another.
== Config
* Pallet-specific configs:
* Pezpallet-specific configs:
** `ProxyType` -- a type that describes different variants of xref:glossary.adoc#proxy[proxy]. It must implement `Default` trait and `InstanceFilter<RuntimeCall>` trait.
** `ProxyDepositBase` -- a base amount of currency that defines a deposit for proxy creation.
** `ProxyDepositFactor` -- an amount of currency that will be frozen along with the `ProxyDepositBase` for each additional proxy.
@@ -6,11 +6,11 @@
Branch/Release: `release-polkadot-v1.10.0`
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/cumulus/pallets/parachain-system/src/lib.rs[{github-icon},role=heading-link]
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/cumulus/pezpallets/parachain-system/src/lib.rs[{github-icon},role=heading-link]
== Purpose
This pallet is a core element of each parachain. It will:
This pezpallet is a core element of each parachain. It will:
- Aggregate information about built blocks
- Process binary code upgrades
@@ -20,7 +20,7 @@ This pallet is a core element of each parachain. It will:
== Config
* Pallet-specific configs:
* Pezpallet-specific configs:
** `OnSystemEvent` — a handler that will be called when new xref:glossary.adoc#validation_data[validation data] will be set (once each block). New validation data will also be passed to it. Look to `trait OnSystemEvent` for more details.
** `SelfParaId` — getter for a parachain id of this chain
** `OutboundXcmpMessageSource` — source of outgoing XCMP messages. It is queried in `finalize_block` and later included into collation information
@@ -30,7 +30,7 @@ This pallet is a core element of each parachain. It will:
** `ReservedXcmpWeight` — default weight limit for the for the XCMP message processing. May be overridden by storage `ReservedXcmpWeightOverride` . If incoming messages in block will exceed the weight limit, they wont be processed.
** `CheckAssociatedRelayNumber` — type that implements `trait CheckAssociatedRelayNumber` . Currently there are three implementations: no check (`AnyRelayNumber`), strict increase (`RelayNumberStrictlyIncreases`), monotonic increase (`RelayNumberMonotonicallyIncreases`). It is needed to maintain some order between blocks in relay chain and parachain.
** `ConsensusHook` — this is a feature-enabled config ( for the management of the xref:glossary.adoc#unincluded_segment[unincluded segment]. Requires the implementation of `trait ConsensusHook`. There are several implementations of it, in `parachain-system` crate (`FixedCapacityUnincludedSegment`) and in `aura-ext` crate (`FixedVelocityConsensusHook`). It is needed to maintain the logic of segment length handling.
* Common parameters for all pallets:
* Common parameters for all pezpallets:
** `RuntimeEvent`
** `WeightInfo`
@@ -115,7 +115,7 @@ Validate and perform the authorized upgrade.
== Important Mentions and FAQ's
=== Pallet's workflow
=== Pezpallet's workflow
* Block Initialization
** Remove already processed xref:glossary.adoc#validation_code[validation code]
@@ -2,21 +2,21 @@
:highlightjs-languages: rust
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
= pallet_transaction_payment
= pezpallet_transaction_payment
Branch/Release: `release-polkadot-v1.10.0`
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/frame/transaction-payment/src/lib.rs[{github-icon},role=heading-link]
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/pezframe/transaction-payment/src/lib.rs[{github-icon},role=heading-link]
== Purpose
`pallet-transaction-payment` implements transaction fee logic.
`pezpallet-transaction-payment` implements transaction fee logic.
In substrate, every transaction has an associated `call`, and each `call` has its own xref:glossary.adoc#weight[weight] function. The weight function estimates the time it takes to execute the `call`.
`Config::WeightToFee` is a mapping between the smallest unit of compute (*Weight*) and smallest unit of fee.
This pallet also exposes
This pezpallet also exposes
- how to update fees for the next block based on past fees (`Config::FeeMultiplierUpdate`)
- how fees are paid (`Config::OnChargeTransaction`)
@@ -29,20 +29,20 @@ The inputs are defined below in the glossary and config sections.
== Config
* Pallet-specific handlers:
* Pezpallet-specific handlers:
** `OnChargeTransaction` -- Handler for withdrawing, refunding and depositing the transaction fee. Type must implement the trait `OnChargeTransaction<Self>`.
** `FeeMultiplierUpdate` -- Handler to define how base fees change over time (over blocks). Type must implement the trait `MultiplierUpdate`. Possible assignments include `ConstantFee`, `SlowAdjustingFee`, and `FastAdjustingFee`.
* Pallet-specific converters:
* Pezpallet-specific converters:
** `WeightToFee` -- Mapping between the smallest unit of weight and smallest unit of fee. Type must implement the trait `WeightToFee<Balance = BalanceOf<Self>>`.
** `LengthToFee` -- Convert a length value into a deductible fee based on the currency type. Type must implement the trait `WeightToFee<Balance = BalanceOf<Self>>`.
* Pallet-specific constants:
* Pezpallet-specific constants:
** `OperationalFeeMultiplier` -- A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their `priority`. Type must implement the trait `Get<u32>`.
* Common configs:
** `RuntimeEvent`
== Dispatchables
There are no dispatchables (and no errors) in this pallet. This pallet is only intended to configure the transaction fee logic for a chain.
There are no dispatchables (and no errors) in this pezpallet. This pezpallet is only intended to configure the transaction fee logic for a chain.
**Events:**
@@ -2,24 +2,24 @@
:highlightjs-languages: rust
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
= pallet_treasury
= pezpallet_treasury
Branch/Release: `release-polkadot-v1.10.0`
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/frame/treasury/src/lib.rs[{github-icon},role=heading-link]
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/substrate/pezframe/treasury/src/lib.rs[{github-icon},role=heading-link]
== Purpose
The Treasury pallet provides a “pot” of funds that can be managed by stakeholders in the system and a structure for making spending proposals from this pot.
The Treasury pezpallet provides a “pot” of funds that can be managed by stakeholders in the system and a structure for making spending proposals from this pot.
== Config
* Pallet-specific configs
** `SpendPeriod` -- Period between successive spends. "Spend" means, treasury spending money to a proposal. `SpendPeriod` determines how often the treasury pallet distributes the assets to the proposals.
* Pezpallet-specific configs
** `SpendPeriod` -- Period between successive spends. "Spend" means, treasury spending money to a proposal. `SpendPeriod` determines how often the treasury pezpallet distributes the assets to the proposals.
** `Burn` -- Percentage of spare funds (if any) that are burnt per spend period.
** `BurnDestination` -- Handler for the unbalanced decrease when treasury funds are burned.
** `SpendFunds` -- Runtime hooks to external pallet using treasury to compute spend funds.
** `MaxApprovals` -- The maximum number of approvals that can wait in the spending queue. NOTE: This parameter is also used within the Bounties Pallet extension if enabled.
** `SpendFunds` -- Runtime hooks to external pezpallet using treasury to compute spend funds.
** `MaxApprovals` -- The maximum number of approvals that can wait in the spending queue. NOTE: This parameter is also used within the Bounties Pezpallet extension if enabled.
** `AssetKind` -- Type parameter representing the asset kinds to be spent from the treasury.
** `Beneficiary` -- Type parameter used to identify the beneficiaries eligible to receive treasury spends.
** `BeneficiaryLookup` -- Converting trait to take a source type and convert to [`Self::Beneficiary`].
@@ -27,15 +27,15 @@ The Treasury pallet provides a “pot” of funds that can be managed by stakeho
** `BalanceConverter` -- Type for converting the balance of an [Self::AssetKind] to the balance of the native asset, solely for the purpose of asserting the result against the maximum allowed spend amount of the [`Self::SpendOrigin`].
** `PayoutPeriod` -- The period during which an approved treasury spend has to be claimed by the beneficiary of the proposal.
* Pallet-specific origins:
* Pezpallet-specific origins:
** `RejectOrigin` -- Origin from which rejections must come.
** `SpendOrigin` -- The origin required for approving spends from the treasury outside of the proposal process. The `Success` value is the maximum amount in a native asset that this origin is allowed to spend at a time.
* Common configs
** `Currency` -- The staking balance.
** `RuntimeEvent` -- The overarching event type.
** `PalletId` -- The treasury's pallet id, used for deriving its sovereign account ID.
** `WeightInfo` -- Weight information for extrinsics in this pallet.
** `PezpalletId` -- The treasury's pezpallet id, used for deriving its sovereign account ID.
** `WeightInfo` -- Weight information for extrinsics in this pezpallet.
** `BenchmarkHelper` -- Helper type for benchmarks.
== Dispatchables
@@ -47,7 +47,7 @@ The Treasury pallet provides a “pot” of funds that can be managed by stakeho
----
pub fn spend_local(
origin: OriginFor<T>,
#[pallet::compact] amount: BalanceOf<T, I>,
#[pezpallet::compact] amount: BalanceOf<T, I>,
beneficiary: AccountIdLookupOf<T>,
) -> DispatchResult
----
@@ -239,7 +239,7 @@ You might have come across the below from official documentation or source-code:
The new `spend` dispatchable will not be able to solely `propose` or `approve` proposals separately, nor `reject` them.
After the deprecation update, `treasury` pallet no longer tracks `unapproved` proposals, but only approved ones.
After the deprecation update, `treasury` pezpallet no longer tracks `unapproved` proposals, but only approved ones.
The idea is to use the `treausry` pallet combined with some other pallet which will provide the functionality of tracking unapproved proposals (reject, approve, propose). For Polkadot it's OpenGov (referenda and conviction voting pallets).
The idea is to use the `treausry` pezpallet combined with some other pezpallet which will provide the functionality of tracking unapproved proposals (reject, approve, propose). For Polkadot it's OpenGov (referenda and conviction voting pezpallets).
@@ -2,45 +2,45 @@
:highlightjs-languages: rust
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
= pallet_xcm
= pezpallet_xcm
Branch/Release: `release-polkadot-v1.10.0`
Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/polkadot/xcm/pallet-xcm/src/lib.rs[{github-icon},role=heading-link]
Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/polkadot/xcm/pezpallet-xcm/src/lib.rs[{github-icon},role=heading-link]
== Purpose
`pallet-xcm` is responsible for filtering, routing, and executing incoming XCM.
`pezpallet-xcm` is responsible for filtering, routing, and executing incoming XCM.
== Config
* Pallet-specific origins:
** `AdminOrigin` -- The origin that is allowed to call privileged operations on the XCM pallet. Type must implement trait `EnsureOrigin`.
* Pezpallet-specific origins:
** `AdminOrigin` -- The origin that is allowed to call privileged operations on the XCM pezpallet. Type must implement trait `EnsureOrigin`.
** `ExecuteXcmOrigin` -- Required origin for executing XCM messages, including the teleport functionality. If successful, it returns a `xref:glossary.adoc#multilocation[MultiLocation]` which exists as an interior location within this chain's XCM context. Type must implement trait `EnsureOrigin`.
** `SendXcmOrigin` -- Required origin for sending XCM messages. If successful, it resolves to `MultiLocation`. Type must implement trait `EnsureOrigin`.
* Pallet-specific ID types:
* Pezpallet-specific ID types:
** `RemoteLockConsumerIdentifier` -- The ID type for local consumers of remote locks. The type must implement `Copy`.
* Pallet-specific handlers:
** `Currency` -- Lockable currency used in the pallet. Type must implement the trait `LockableCurrency`.
* Pezpallet-specific handlers:
** `Currency` -- Lockable currency used in the pezpallet. Type must implement the trait `LockableCurrency`.
** `Weigher` -- Measures xref:glossary.adoc#weight[weight] consumed by XCM local execution. Type must implement the trait `WeightBounds`.
** `XcmExecutor` -- Means of executing XCM. Type must implement the trait `ExecuteXcm`.
** `XcmRouter` -- The type used to dispatch an XCM to its destination. Type must implement the trait `SendXcm`.
* Pallet-specific filters:
* Pezpallet-specific filters:
** `XcmExecuteFilter` -- XCM filter for which messages to be executed using `XcmExecutor` must pass. Type must implement trait `Contains<(MultiLocation, Xcm<<Self as Config>::RuntimeCall>)>`.
** `XcmReserveTransferFilter` -- XCM filter for which messages to be reserve-transferred using the dedicated extrinsic must pass.Type must implement the trait `Contains<(MultiLocation, Vec<MultiAsset>)>`.
** `XcmTeleportFilter` -- XCM filter for which messages to be teleported using the dedicated extrinsic must pass. Type must implement the trait `Contains<(MultiLocation, Vec<MultiAsset>)>`.
** `TrustedLockers` -- Returns whether or not the origin can be trusted for a specific asset. Type must implement `ContainsPair` where each pair is an `asset` and an `origin` thereby entrusting `origin` for operations relating to `asset`.
* Pallet-specific converters:
* Pezpallet-specific converters:
** `CurrencyMatcher` -- The `xref:glossary.adoc#multiasset[MultiAsset]` matcher for `Currency`. Type must implement the trait `MatchesFungible`.
** `SovereignAccountOf` -- How to get an `AccountId` value from a `MultiLocation`, useful for handling asset locks. Type must implement `ConvertLocation`.
* Pallet-specific constants:
* Pezpallet-specific constants:
** `VERSION_DISCOVERY_QUEUE_SIZE` -- `u32` measures the size of the version discovery queue. Typically set to `100`.
** `AdvertisedXcmVersion` -- The latest supported XCM version that this chain accepts. Type must implement the trait `Get<XcmVersion>`. Commonly set to `pallet_xcm::CurrentXcmVersion`.
** `AdvertisedXcmVersion` -- The latest supported XCM version that this chain accepts. Type must implement the trait `Get<XcmVersion>`. Commonly set to `pezpallet_xcm::CurrentXcmVersion`.
** `MaxLockers` -- The maximum number of local XCM locks that a single account may have. Type must implement the trait `Get<u32>`.
** `MaxRemoteLockConsumers` -- The maximum number of consumers a single remote lock may have. Type must implement the trait `Get<u32>`.
** `UniversalLocation` -- This chain's Universal Location. Type must implement the trait `Get<InteriorMultiLocation>`.
@@ -68,10 +68,10 @@ pub fn send(
WARNING: DEPRECATED. `send` will be removed after June 2024. Use `send_blob` instead.
* Deprecation explanation:
** `pallet-xcm` has a new pair of extrinsics, `execute_blob` and `send_blob`. These are meant to be used instead of `execute` and `send`, which are now deprecated and will be removed eventually. These new extrinsics just require you to input the encoded XCM.
** `pezpallet-xcm` has a new pair of extrinsics, `execute_blob` and `send_blob`. These are meant to be used instead of `execute` and `send`, which are now deprecated and will be removed eventually. These new extrinsics just require you to input the encoded XCM.
** There's a new utility in PolkadotJS Apps for encoding XCMs you can use: https://polkadot.js.org/apps/#/utilities/xcm Just pass in the encoded XCM to the new extrinsics and you're done.
** The migration from the old extrinsic to the new is very simple. If you have your message `xcm: VersionedXcm<Call>`, then instead of passing in `Box::new(xcm)` to both `execute` and `send`, you would pass in `xcm.encode().try_into()` and handle the potential error of its encoded length being bigger than `MAX_XCM_ENCODED_SIZE`.
** `pallet-contracts` takes the XCM encoded now as well. It follows the same API as `execute_blob` and `send_blob`.
** `pezpallet-contracts` takes the XCM encoded now as well. It follows the same API as `execute_blob` and `send_blob`.
Send a versioned XCM `message` to the destination `dest`.
@@ -107,10 +107,10 @@ pub fn execute(
WARNING: DEPRECATED. `execute` will be removed after June 2024. Use `execute_blob` instead.
* Deprecation explanation:
** `pallet-xcm` has a new pair of extrinsics, `execute_blob` and `send_blob`. These are meant to be used instead of `execute` and `send`, which are now deprecated and will be removed eventually. These new extrinsics just require you to input the encoded XCM.
** `pezpallet-xcm` has a new pair of extrinsics, `execute_blob` and `send_blob`. These are meant to be used instead of `execute` and `send`, which are now deprecated and will be removed eventually. These new extrinsics just require you to input the encoded XCM.
** There's a new utility in PolkadotJS Apps for encoding XCMs you can use: https://polkadot.js.org/apps/#/utilities/xcm Just pass in the encoded XCM to the new extrinsics and you're done.
** The migration from the old extrinsic to the new is very simple. If you have your message `xcm: VersionedXcm<Call>`, then instead of passing in `Box::new(xcm)` to both `execute` and `send`, you would pass in `xcm.encode().try_into()` and handle the potential error of its encoded length being bigger than `MAX_XCM_ENCODED_SIZE`.
** `pallet-contracts` takes the XCM encoded now as well. It follows the same API as `execute_blob` and `send_blob`.
** `pezpallet-contracts` takes the XCM encoded now as well. It follows the same API as `execute_blob` and `send_blob`.
Execute an XCM message from a local, signed, origin.
@@ -2,19 +2,19 @@
:highlightjs-languages: rust
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
= cumulus_pallet_xcmp_queue
= cumulus_pezpallet_xcmp_queue
Branch/Release: `release-polkadot-v1.10.0`
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/cumulus/pallets/xcmp-queue/src/lib.rs[{github-icon},role=heading-link]
== Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkadot-v1.10.0/cumulus/pezpallets/xcmp-queue/src/lib.rs[{github-icon},role=heading-link]
== Purpose
Responsible for the Queues (both incoming and outgoing) for XCMP messages. This pallet does not actually receive or send messages. Its responsibility is to place the incoming and outgoing XCMP messages in their respective queues and manage these queues.
Responsible for the Queues (both incoming and outgoing) for XCMP messages. This pezpallet does not actually receive or send messages. Its responsibility is to place the incoming and outgoing XCMP messages in their respective queues and manage these queues.
== Config
* Pallet-specific configs
* Pezpallet-specific configs
** `ChannelInfo` -- Configures two functions `get_channel_status` and `get_channel_info` to provide information about channels (`ChannelStatus` and `ChannelInfo`).
** `VersionWrapper` -- Means of converting an `Xcm` into a `VersionedXcm`. Xcm's should be versioned in order to pass the validation.
** `XcmpQueue` -- Defines max length of an XCMP message, and how `enqueue_message` should behave.
@@ -24,7 +24,7 @@ Responsible for the Queues (both incoming and outgoing) for XCMP messages. This
** `PriceForSiblingDelivery` -- The price for delivering an XCM to a sibling parachain destination.
* Common configs
** `RuntimeEvent` -- The overarching event type.
** `WeightInfo` -- The xref:glossary.adoc#weight[weight] information of this pallet.
** `WeightInfo` -- The xref:glossary.adoc#weight[weight] information of this pezpallet.
== Dispatchables
@@ -12,9 +12,9 @@ Source Code link:https://github.com/paritytech/polkadot-sdk/blob/release-polkado
`XcmExecutor` is responsible for executing XCM messages locally.
`XcmExecutor` is usually the assignment for `pallet_xcm::Config::XcmExecutor` and is thereby used to execute XCM in that pallet.
`XcmExecutor` is usually the assignment for `pezpallet_xcm::Config::XcmExecutor` and is thereby used to execute XCM in that pezpallet.
NOTE: `XcmExecutor` is not a pallet, but rather it is a `struct` type parameterized by a `Config` trait. The inner config is the `trait Config` which parameterizes the outer config `struct XcmExecutor<Config>`. Both the inner and outer configs are configured in the runtime.
NOTE: `XcmExecutor` is not a pezpallet, but rather it is a `struct` type parameterized by a `Config` trait. The inner config is the `trait Config` which parameterizes the outer config `struct XcmExecutor<Config>`. Both the inner and outer configs are configured in the runtime.
== Inner Config
@@ -50,7 +50,7 @@ The inner `trait Config` used to parameterize `XcmExecutor` has the following as
* Accessors:
- `Weigher` -- The means of determining an XCM message's weight. Type must implement the trait `WeightBounds<Self::RuntimeCall>`.
- `PalletInstancesInfo` -- Information on all pallets. Type must implement the trait `PalletsInfoAccess`.
- `PezpalletInstancesInfo` -- Information on all pezpallets. Type must implement the trait `PezpalletsInfoAccess`.
* Constants:
- `UniversalLocation` -- This chain's Universal Location. Type must implement the trait `Get<InteriorMultiLocation>`.
+36 -36
View File
@@ -15,7 +15,7 @@ With this template, you can:
* Deploy and interact with ERC20 tokens.
* Migrate your existing dAPP from Ethereum ecosystem to Polkadot ecosystem.
The pallet list is constructed by the contributions of Parity, the community, and OpenZeppelin.
The pezpallet list is constructed by the contributions of Parity, the community, and OpenZeppelin.
To maximize the compatibility with EVM, we decided to use `AccountId20` type instead of `AccountId32`.
This choice allowed us to use the signature scheme compatible with Ethereum (ECDSA).
@@ -30,29 +30,29 @@ Metamask integration for example is way simpler for chains with the Ethereum acc
[%collapsible]
====
* https://paritytech.github.io/polkadot-sdk/master/frame_system/index.html#[frame_system] is responsible from creating the runtime, initializing the storage, and providing the base functionality for the runtime.
* https://paritytech.github.io/polkadot-sdk/master/pezframe_system/index.html#[pezframe_system] is responsible from creating the runtime, initializing the storage, and providing the base functionality for the runtime.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pallet_parachain_system/index.html#[cumulus_pallet_parachain_system] handles low-level details of being a parachain.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pezpallet_parachain_system/index.html#[cumulus_pezpallet_parachain_system] handles low-level details of being a parachain.
* https://paritytech.github.io/polkadot-sdk/master/pallet_timestamp/index.html#[pallet_timestamp] provides a way for consensus systems to set and check the onchain time.
* https://paritytech.github.io/polkadot-sdk/master/pezpallet_timestamp/index.html#[pezpallet_timestamp] provides a way for consensus systems to set and check the onchain time.
* https://docs.rs/staging-parachain-info/latest/staging_parachain_info/index.html#[parachain_info] provides a way for parachains to report their parachain id and the relay chain block number.
* https://docs.rs/pallet-proxy/latest/pallet_proxy/#[pallet_proxy] enables delegation of rights to execute certain call types from one origin to another.
* https://docs.rs/pezpallet-proxy/latest/pezpallet_proxy/#[pezpallet_proxy] enables delegation of rights to execute certain call types from one origin to another.
* https://paritytech.github.io/polkadot-sdk/master/pallet_utility/index.html#[pallet_utility] contains two basic pieces of functionality:
* https://paritytech.github.io/polkadot-sdk/master/pezpallet_utility/index.html#[pezpallet_utility] contains two basic pieces of functionality:
** Batch dispatch: A stateless operation, allowing any origin to execute multiple calls in a single dispatch. This can be useful to amalgamate proposals, combining `set_code` with corresponding `set_storage`s, for efficient multiple payouts with just a single signature verify, or in combination with one of the other two dispatch functionality.
*** https://paritytech.github.io/polkadot-sdk/master/pallet_utility/pallet/struct.Pallet.html#method.force_batch[force_batch]: Sends a batch of dispatch calls. Errors are allowed and wont interrupt
*** https://paritytech.github.io/polkadot-sdk/master/pallet_utility/pallet/struct.Pallet.html#method.batch[batch]: Sends a batch of dispatch calls. This will return `Ok` in all circumstances. To determine the success of the batch, an event is deposited. If a call failed and the batch was interrupted, then the `BatchInterrupted` event is deposited, along with the number of successful calls made and the error of the failed call. If all were successful, then the `BatchCompleted` event is deposited.
*** https://paritytech.github.io/polkadot-sdk/master/pallet_utility/pallet/struct.Pallet.html#method.batch_all[batch_all]: Send a batch of dispatch calls and atomically execute them. The whole transaction will rollback and fail if any of the calls failed.
*** https://paritytech.github.io/polkadot-sdk/master/pezpallet_utility/pezpallet/struct.Pezpallet.html#method.force_batch[force_batch]: Sends a batch of dispatch calls. Errors are allowed and wont interrupt
*** https://paritytech.github.io/polkadot-sdk/master/pezpallet_utility/pezpallet/struct.Pezpallet.html#method.batch[batch]: Sends a batch of dispatch calls. This will return `Ok` in all circumstances. To determine the success of the batch, an event is deposited. If a call failed and the batch was interrupted, then the `BatchInterrupted` event is deposited, along with the number of successful calls made and the error of the failed call. If all were successful, then the `BatchCompleted` event is deposited.
*** https://paritytech.github.io/polkadot-sdk/master/pezpallet_utility/pezpallet/struct.Pezpallet.html#method.batch_all[batch_all]: Send a batch of dispatch calls and atomically execute them. The whole transaction will rollback and fail if any of the calls failed.
** Pseudonymal dispatch: A stateless operation, allowing a signed origin to execute a call from an alternative signed origin. Each account has 2 * 2**16 possible “pseudonyms” (alternative account IDs) and these can be stacked. This can be useful as a key management tool, where you need multiple distinct accounts (e.g. as controllers for many staking accounts), but where its perfectly fine to have each of them controlled by the same underlying keypair. Derivative accounts are, for the purposes of proxy filtering considered exactly the same as the origin and are thus hampered with the origins filters.
* https://docs.rs/pallet-multisig/latest/pallet_multisig/#[pallet_multisig] enables multi-signature operations in your runtime. This module allows multiple signed origins (accounts) to coordinate and dispatch a call. For the call to execute, the threshold number of accounts from the set (signatories) must approve it.
* https://docs.rs/pezpallet-multisig/latest/pezpallet_multisig/#[pezpallet_multisig] enables multi-signature operations in your runtime. This module allows multiple signed origins (accounts) to coordinate and dispatch a call. For the call to execute, the threshold number of accounts from the set (signatories) must approve it.
* https://docs.rs/pallet-scheduler/latest/pallet_scheduler/#[pallet_scheduler] schedules runtime calls.
* https://docs.rs/pezpallet-scheduler/latest/pezpallet_scheduler/#[pezpallet_scheduler] schedules runtime calls.
* https://docs.rs/pallet-preimage/latest/pallet_preimage/#[preimage] allows for the users and the runtime to store the preimage of a hash on chain. This can be used by other pallets for storing and managing large byte-blobs.
* https://docs.rs/pezpallet-preimage/latest/pezpallet_preimage/#[preimage] allows for the users and the runtime to store the preimage of a hash on chain. This can be used by other pezpallets for storing and managing large byte-blobs.
====
@@ -61,7 +61,7 @@ Metamask integration for example is way simpler for chains with the Ethereum acc
[%collapsible]
====
* https://docs.rs/pallet-balances/latest/pallet_balances/#[pallet_balances] provides functions for:
* https://docs.rs/pezpallet-balances/latest/pezpallet_balances/#[pezpallet_balances] provides functions for:
** Getting and setting free balances.
** Retrieving total, reserved and unreserved balances.
** Repatriating a reserved balance to a beneficiary account that exists.
@@ -71,17 +71,17 @@ Metamask integration for example is way simpler for chains with the Ethereum acc
** Managing total issuance.
** Setting and managing locks.
* https://docs.rs/pallet-transaction-payment/latest/pallet_transaction_payment/#[pallet_transaction_payment] provides the basic logic needed to pay the absolute minimum amount needed for a transaction to be included. This includes:
* https://docs.rs/pezpallet-transaction-payment/latest/pezpallet_transaction_payment/#[pezpallet_transaction_payment] provides the basic logic needed to pay the absolute minimum amount needed for a transaction to be included. This includes:
** *base fee*: This is the minimum amount a user pays for a transaction. It is declared as a base *weight* in the runtime and converted to a fee using `WeightToFee`.
** *weight fee*: A fee proportional to amount of weight a transaction consumes.
** *length fee*: A fee proportional to the encoded length of the transaction.
** *tip*: An optional tip. Tip increases the priority of the transaction, giving it a higher chance to be included by the transaction queue.
* https://paritytech.github.io/polkadot-sdk/master/pallet_assets/index.html#[pallet_assets] deals with sets of assets implementing fungible traits, via [fungibles] traits in a simple, secure manner. This pallet makes heavy use of concepts such as Holds and Freezes from the [frame_support::traits::fungible] traits, therefore you should read and understand those docs as a prerequisite to understanding this pallet.
* https://paritytech.github.io/polkadot-sdk/master/pezpallet_assets/index.html#[pezpallet_assets] deals with sets of assets implementing fungible traits, via [fungibles] traits in a simple, secure manner. This pezpallet makes heavy use of concepts such as Holds and Freezes from the [pezframe_support::traits::fungible] traits, therefore you should read and understand those docs as a prerequisite to understanding this pezpallet.
* https://docs.rs/pallet-treasury/latest/pallet_treasury/#[pallet_treasury] provides a “pot” of funds that can be managed by stakeholders in the system and a structure for making spending proposals from this pot.
* https://docs.rs/pezpallet-treasury/latest/pezpallet_treasury/#[pezpallet_treasury] provides a “pot” of funds that can be managed by stakeholders in the system and a structure for making spending proposals from this pot.
* https://github.com/moonbeam-foundation/moonbeam/blob/master/pallets/asset-manager/src/lib.rs[#pallet_asset_manager] allows to register new assets if certain conditions are met.
* https://github.com/moonbeam-foundation/moonbeam/blob/master/pezpallets/asset-manager/src/lib.rs[#pezpallet_asset_manager] allows to register new assets if certain conditions are met.
====
@@ -90,15 +90,15 @@ Metamask integration for example is way simpler for chains with the Ethereum acc
[%collapsible]
====
* https://docs.rs/pallet-sudo/latest/pallet_sudo/#[pallet_sudo] provides a way to execute privileged runtime calls using a specified sudo (“superuser do”) account.
* https://docs.rs/pezpallet-sudo/latest/pezpallet_sudo/#[pezpallet_sudo] provides a way to execute privileged runtime calls using a specified sudo (“superuser do”) account.
* https://docs.rs/pallet-conviction-voting/latest/pallet_conviction_voting/#[pallet_conviction_voting] manages actual voting in polls
* https://docs.rs/pezpallet-conviction-voting/latest/pezpallet_conviction_voting/#[pezpallet_conviction_voting] manages actual voting in polls
* https://docs.rs/pallet-referenda/latest/pallet_referenda/#[pallet_referenda] executes referenda. No voting logic is present here, and the Polling and PollStatus traits are used to allow the voting logic (likely in a pallet) to be utilized.
* https://docs.rs/pezpallet-referenda/latest/pezpallet_referenda/#[pezpallet_referenda] executes referenda. No voting logic is present here, and the Polling and PollStatus traits are used to allow the voting logic (likely in a pezpallet) to be utilized.
* https://github.com/OpenZeppelin/polkadot-runtime-templates/blob/main/evm-template/runtime/src/configs/governance/origins.rs#[pallet_custom_origins] allows custom origins for governance. // TODO: double check this, is it really our own pallet, or just copy paste?
* https://github.com/OpenZeppelin/polkadot-runtime-templates/blob/main/evm-template/runtime/src/configs/governance/origins.rs#[pezpallet_custom_origins] allows custom origins for governance. // TODO: double check this, is it really our own pezpallet, or just copy paste?
* https://docs.rs/pallet-whitelist/latest/pallet_whitelist/index.html#[pallet_whitelist] allows some configurable origin: `Config::WhitelistOrigin` to whitelist some hash of a call, and allows another configurable origin: `Config::DispatchWhitelistedOrigin` to dispatch them with the root origin.
* https://docs.rs/pezpallet-whitelist/latest/pezpallet_whitelist/index.html#[pezpallet_whitelist] allows some configurable origin: `Config::WhitelistOrigin` to whitelist some hash of a call, and allows another configurable origin: `Config::DispatchWhitelistedOrigin` to dispatch them with the root origin.
====
@@ -108,24 +108,24 @@ Metamask integration for example is way simpler for chains with the Ethereum acc
[%collapsible]
====
* https://docs.rs/pallet-authorship/latest/pallet_authorship/#[pallet_authorship] provides authorship tracking for FRAME runtimes. This tracks the current author of the block and recent uncles.
* https://docs.rs/pezpallet-authorship/latest/pezpallet_authorship/#[pezpallet_authorship] provides authorship tracking for FRAME runtimes. This tracks the current author of the block and recent uncles.
* https://paritytech.github.io/polkadot-sdk/master/pallet_collator_selection/index.html#[pallet_collator_selection] - manages the collators of a parachain. **Collation is *not* a secure activity** and this pallet does not implement any game-theoretic mechanisms to meet BFT safety assumptions of the chosen set. This pallet can:
* https://paritytech.github.io/polkadot-sdk/master/pezpallet_collator_selection/index.html#[pezpallet_collator_selection] - manages the collators of a parachain. **Collation is *not* a secure activity** and this pezpallet does not implement any game-theoretic mechanisms to meet BFT safety assumptions of the chosen set. This pezpallet can:
** set invulnerable candidates (fixed candidates)
** set desired candidates (ideal number of non-fixed)
** set candidacy bond
** remove invulnerability (turn candidate into not fixed)
** and many more (all related to collators)
* https://paritytech.github.io/polkadot-sdk/master/pallet_session/index.html#[pallet_session] allows validators to manage their session keys, provides a function for changing the session length, and handles session rotation.
* https://paritytech.github.io/polkadot-sdk/master/pezpallet_session/index.html#[pezpallet_session] allows validators to manage their session keys, provides a function for changing the session length, and handles session rotation.
* https://docs.rs/pallet-aura/latest/pallet_aura/#[pallet_aura] extends Aura consensus by managing offline reporting. It can:
* https://docs.rs/pezpallet-aura/latest/pezpallet_aura/#[pezpallet_aura] extends Aura consensus by managing offline reporting. It can:
** get the current slot
** get the slot duration
** change and initialize authorities
** ensure the correctness of the state of this pallet
** ensure the correctness of the state of this pezpallet
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pallet_aura_ext/index.html#[cumulus_pallet_aura_ext] extends the Substrate AuRa pallet to make it compatible with parachains. It provides the Pallet, the Config and the GenesisConfig.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pezpallet_aura_ext/index.html#[cumulus_pezpallet_aura_ext] extends the Substrate AuRa pezpallet to make it compatible with parachains. It provides the Pezpallet, the Config and the GenesisConfig.
====
@@ -134,22 +134,22 @@ Metamask integration for example is way simpler for chains with the Ethereum acc
[%collapsible]
====
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pallet_xcmp_queue/index.html#[cumulus_pallet_xcmp_queue] Responsible for the Queues (both incoming and outgoing) for XCMP messages. This pallet does not actually receive or send messages. Its responsibility is to place the incoming and outgoing XCMP messages in their respective queues and manage these queues.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pezpallet_xcmp_queue/index.html#[cumulus_pezpallet_xcmp_queue] Responsible for the Queues (both incoming and outgoing) for XCMP messages. This pezpallet does not actually receive or send messages. Its responsibility is to place the incoming and outgoing XCMP messages in their respective queues and manage these queues.
* https://docs.rs/pallet-xcm/6.0.0/pallet_xcm/#[pallet_xcm] is responsible for filtering, routing, and executing incoming XCM.
* https://docs.rs/pezpallet-xcm/6.0.0/pezpallet_xcm/#[pezpallet_xcm] is responsible for filtering, routing, and executing incoming XCM.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pallet_xcm/index.html#[cumulus_pallet_xcm] is responsible from detecting and ensuring whether XCM's are coming from *Relay* or *Sibling* chain.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pezpallet_xcm/index.html#[cumulus_pezpallet_xcm] is responsible from detecting and ensuring whether XCM's are coming from *Relay* or *Sibling* chain.
* https://docs.rs/pallet-message-queue/latest/pallet_message_queue/#[MessageQueue] provides generalized message queuing and processing capabilities on a per-queue basis for arbitrary use-cases.
* https://docs.rs/pezpallet-message-queue/latest/pezpallet_message_queue/#[MessageQueue] provides generalized message queuing and processing capabilities on a per-queue basis for arbitrary use-cases.
====
=== EVM
* https://docs.rs/pallet-ethereum/latest/pallet_ethereum/#[Ethereum] works together with EVM pallet to provide full emulation for Ethereum block processing.
* https://docs.rs/pezpallet-ethereum/latest/pezpallet_ethereum/#[Ethereum] works together with EVM pezpallet to provide full emulation for Ethereum block processing.
* https://docs.rs/pallet-evm/5.0.0/pallet_evm/#[EVM] allows unmodified EVM code to be executed in a Substrate-based blockchain.
* https://docs.rs/pezpallet-evm/5.0.0/pezpallet_evm/#[EVM] allows unmodified EVM code to be executed in a Substrate-based blockchain.
* https://github.com/polkadot-evm/frontier/blob/master/frame/base-fee/src/lib.rs#[BaseFee] dynamically adjusts the `BaseFeePerGas` based on elasticity (zero elasticity means constant `BaseFeePerGas`).
* https://github.com/polkadot-evm/frontier/blob/master/pezframe/base-fee/src/lib.rs#[BaseFee] dynamically adjusts the `BaseFeePerGas` based on elasticity (zero elasticity means constant `BaseFeePerGas`).
* https://github.com/polkadot-evm/frontier/blob/master/frame/evm-chain-id/src/lib.rs#[EvmChainId] stores the numeric Ethereum-style chain id in the runtime. This pallet can simplify setting up multiple networks with different chain ID by configuring the chain spec without requiring changes to the runtime config.
* https://github.com/polkadot-evm/frontier/blob/master/pezframe/evm-chain-id/src/lib.rs#[EvmChainId] stores the numeric Ethereum-style chain id in the runtime. This pezpallet can simplify setting up multiple networks with different chain ID by configuring the chain spec without requiring changes to the runtime config.
+34 -34
View File
@@ -7,17 +7,17 @@
Generic Runtime Template is constructed with the purpose of providing the most generic template that is working out of the box.
The pallet list is constructed by the contributions of Parity, the community, and OpenZeppelin.
The pezpallet list is constructed by the contributions of Parity, the community, and OpenZeppelin.
Our motivation for crafting the pallet list was to be as minimalistic as possible,
whilst preserving the most important pallets that are used in the Polkadot ecosystem.
Our motivation for crafting the pezpallet list was to be as minimalistic as possible,
whilst preserving the most important pezpallets that are used in the Polkadot ecosystem.
We designed this template to be generic, so that it can be used as a starting point for any other project/template,
and we aim to base our future templates off of this one.
To demystify the hard concepts, we provided a documentation, in which you can find:
* Explanation of the pallets that are used in this template (purpose, terminology, configuration, dispatchables, etc.).
* Explanation of the pezpallets that are used in this template (purpose, terminology, configuration, dispatchables, etc.).
* General guides regarding this template.
* Runtime related guides.
* And miscellaneous topics.
@@ -29,29 +29,29 @@ To demystify the hard concepts, we provided a documentation, in which you can fi
[%collapsible]
====
* https://paritytech.github.io/polkadot-sdk/master/frame_system/index.html#[frame_system] is responsible from creating the runtime, initializing the storage, and providing the base functionality for the runtime.
* https://paritytech.github.io/polkadot-sdk/master/pezframe_system/index.html#[pezframe_system] is responsible from creating the runtime, initializing the storage, and providing the base functionality for the runtime.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pallet_parachain_system/index.html#[cumulus_pallet_parachain_system] handles low-level details of being a parachain.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pezpallet_parachain_system/index.html#[cumulus_pezpallet_parachain_system] handles low-level details of being a parachain.
* https://paritytech.github.io/polkadot-sdk/master/pallet_timestamp/index.html#[pallet_timestamp] provides a way for consensus systems to set and check the onchain time.
* https://paritytech.github.io/polkadot-sdk/master/pezpallet_timestamp/index.html#[pezpallet_timestamp] provides a way for consensus systems to set and check the onchain time.
* https://docs.rs/staging-parachain-info/latest/staging_parachain_info/index.html#[parachain_info] provides a way for parachains to report their parachain id and the relay chain block number.
* https://docs.rs/pallet-proxy/latest/pallet_proxy/#[pallet_proxy] enables delegation of rights to execute certain call types from one origin to another.
* https://docs.rs/pezpallet-proxy/latest/pezpallet_proxy/#[pezpallet_proxy] enables delegation of rights to execute certain call types from one origin to another.
* https://paritytech.github.io/polkadot-sdk/master/pallet_utility/index.html#[pallet_utility] contains two basic pieces of functionality:
* https://paritytech.github.io/polkadot-sdk/master/pezpallet_utility/index.html#[pezpallet_utility] contains two basic pieces of functionality:
** Batch dispatch: A stateless operation, allowing any origin to execute multiple calls in a single dispatch. This can be useful to amalgamate proposals, combining `set_code` with corresponding `set_storage`s, for efficient multiple payouts with just a single signature verify, or in combination with one of the other two dispatch functionality.
*** https://paritytech.github.io/polkadot-sdk/master/pallet_utility/pallet/struct.Pallet.html#method.force_batch[force_batch]: Sends a batch of dispatch calls. Errors are allowed and wont interrupt
*** https://paritytech.github.io/polkadot-sdk/master/pallet_utility/pallet/struct.Pallet.html#method.batch[batch]: Sends a batch of dispatch calls. This will return `Ok` in all circumstances. To determine the success of the batch, an event is deposited. If a call failed and the batch was interrupted, then the `BatchInterrupted` event is deposited, along with the number of successful calls made and the error of the failed call. If all were successful, then the `BatchCompleted` event is deposited.
*** https://paritytech.github.io/polkadot-sdk/master/pallet_utility/pallet/struct.Pallet.html#method.batch_all[batch_all]: Send a batch of dispatch calls and atomically execute them. The whole transaction will rollback and fail if any of the calls failed.
*** https://paritytech.github.io/polkadot-sdk/master/pezpallet_utility/pezpallet/struct.Pezpallet.html#method.force_batch[force_batch]: Sends a batch of dispatch calls. Errors are allowed and wont interrupt
*** https://paritytech.github.io/polkadot-sdk/master/pezpallet_utility/pezpallet/struct.Pezpallet.html#method.batch[batch]: Sends a batch of dispatch calls. This will return `Ok` in all circumstances. To determine the success of the batch, an event is deposited. If a call failed and the batch was interrupted, then the `BatchInterrupted` event is deposited, along with the number of successful calls made and the error of the failed call. If all were successful, then the `BatchCompleted` event is deposited.
*** https://paritytech.github.io/polkadot-sdk/master/pezpallet_utility/pezpallet/struct.Pezpallet.html#method.batch_all[batch_all]: Send a batch of dispatch calls and atomically execute them. The whole transaction will rollback and fail if any of the calls failed.
** Pseudonymal dispatch: A stateless operation, allowing a signed origin to execute a call from an alternative signed origin. Each account has 2 * 2**16 possible “pseudonyms” (alternative account IDs) and these can be stacked. This can be useful as a key management tool, where you need multiple distinct accounts (e.g. as controllers for many staking accounts), but where its perfectly fine to have each of them controlled by the same underlying keypair. Derivative accounts are, for the purposes of proxy filtering considered exactly the same as the origin and are thus hampered with the origins filters.
* https://docs.rs/pallet-multisig/latest/pallet_multisig/#[pallet_multisig] enables multi-signature operations in your runtime. This module allows multiple signed origins (accounts) to coordinate and dispatch a call. For the call to execute, the threshold number of accounts from the set (signatories) must approve it.
* https://docs.rs/pezpallet-multisig/latest/pezpallet_multisig/#[pezpallet_multisig] enables multi-signature operations in your runtime. This module allows multiple signed origins (accounts) to coordinate and dispatch a call. For the call to execute, the threshold number of accounts from the set (signatories) must approve it.
* https://docs.rs/pallet-scheduler/latest/pallet_scheduler/#[pallet_scheduler] schedules runtime calls.
* https://docs.rs/pezpallet-scheduler/latest/pezpallet_scheduler/#[pezpallet_scheduler] schedules runtime calls.
* https://docs.rs/pallet-preimage/latest/pallet_preimage/#[preimage] allows for the users and the runtime to store the preimage of a hash on chain. This can be used by other pallets for storing and managing large byte-blobs.
* https://docs.rs/pezpallet-preimage/latest/pezpallet_preimage/#[preimage] allows for the users and the runtime to store the preimage of a hash on chain. This can be used by other pezpallets for storing and managing large byte-blobs.
====
@@ -60,7 +60,7 @@ To demystify the hard concepts, we provided a documentation, in which you can fi
[%collapsible]
====
* https://docs.rs/pallet-balances/latest/pallet_balances/#[pallet_balances] provides functions for:
* https://docs.rs/pezpallet-balances/latest/pezpallet_balances/#[pezpallet_balances] provides functions for:
** Getting and setting free balances.
** Retrieving total, reserved and unreserved balances.
** Repatriating a reserved balance to a beneficiary account that exists.
@@ -70,15 +70,15 @@ To demystify the hard concepts, we provided a documentation, in which you can fi
** Managing total issuance.
** Setting and managing locks.
* https://docs.rs/pallet-transaction-payment/latest/pallet_transaction_payment/#[pallet_transaction_payment] provides the basic logic needed to pay the absolute minimum amount needed for a transaction to be included. This includes:
* https://docs.rs/pezpallet-transaction-payment/latest/pezpallet_transaction_payment/#[pezpallet_transaction_payment] provides the basic logic needed to pay the absolute minimum amount needed for a transaction to be included. This includes:
** *base fee*: This is the minimum amount a user pays for a transaction. It is declared as a base *weight* in the runtime and converted to a fee using `WeightToFee`.
** *weight fee*: A fee proportional to amount of weight a transaction consumes.
** *length fee*: A fee proportional to the encoded length of the transaction.
** *tip*: An optional tip. Tip increases the priority of the transaction, giving it a higher chance to be included by the transaction queue.
* https://paritytech.github.io/polkadot-sdk/master/pallet_assets/index.html#[pallet_assets] deals with sets of assets implementing fungible traits, via [fungibles] traits in a simple, secure manner. This pallet makes heavy use of concepts such as Holds and Freezes from the [frame_support::traits::fungible] traits, therefore you should read and understand those docs as a prerequisite to understanding this pallet.
* https://paritytech.github.io/polkadot-sdk/master/pezpallet_assets/index.html#[pezpallet_assets] deals with sets of assets implementing fungible traits, via [fungibles] traits in a simple, secure manner. This pezpallet makes heavy use of concepts such as Holds and Freezes from the [pezframe_support::traits::fungible] traits, therefore you should read and understand those docs as a prerequisite to understanding this pezpallet.
* https://docs.rs/pallet-treasury/latest/pallet_treasury/#[pallet_treasury] provides a “pot” of funds that can be managed by stakeholders in the system and a structure for making spending proposals from this pot.
* https://docs.rs/pezpallet-treasury/latest/pezpallet_treasury/#[pezpallet_treasury] provides a “pot” of funds that can be managed by stakeholders in the system and a structure for making spending proposals from this pot.
====
@@ -87,15 +87,15 @@ To demystify the hard concepts, we provided a documentation, in which you can fi
[%collapsible]
====
* https://docs.rs/pallet-sudo/latest/pallet_sudo/#[pallet_sudo] provides a way to execute privileged runtime calls using a specified sudo (“superuser do”) account.
* https://docs.rs/pezpallet-sudo/latest/pezpallet_sudo/#[pezpallet_sudo] provides a way to execute privileged runtime calls using a specified sudo (“superuser do”) account.
* https://docs.rs/pallet-conviction-voting/latest/pallet_conviction_voting/#[pallet_conviction_voting] manages actual voting in polls
* https://docs.rs/pezpallet-conviction-voting/latest/pezpallet_conviction_voting/#[pezpallet_conviction_voting] manages actual voting in polls
* https://docs.rs/pallet-referenda/latest/pallet_referenda/#[pallet_referenda] executes referenda. No voting logic is present here, and the Polling and PollStatus traits are used to allow the voting logic (likely in a pallet) to be utilized.
* https://docs.rs/pezpallet-referenda/latest/pezpallet_referenda/#[pezpallet_referenda] executes referenda. No voting logic is present here, and the Polling and PollStatus traits are used to allow the voting logic (likely in a pezpallet) to be utilized.
* https://github.com/OpenZeppelin/polkadot-runtime-templates/blob/main/evm-template/runtime/src/configs/governance/origins.rs#[pallet_custom_origins] allows custom origins for governance. // TODO: double check this, is it really our own pallet, or just copy paste?
* https://github.com/OpenZeppelin/polkadot-runtime-templates/blob/main/evm-template/runtime/src/configs/governance/origins.rs#[pezpallet_custom_origins] allows custom origins for governance. // TODO: double check this, is it really our own pezpallet, or just copy paste?
* https://docs.rs/pallet-whitelist/latest/pallet_whitelist/index.html#[pallet_whitelist] allows some configurable origin: `Config::WhitelistOrigin` to whitelist some hash of a call, and allows another configurable origin: `Config::DispatchWhitelistedOrigin` to dispatch them with the root origin.
* https://docs.rs/pezpallet-whitelist/latest/pezpallet_whitelist/index.html#[pezpallet_whitelist] allows some configurable origin: `Config::WhitelistOrigin` to whitelist some hash of a call, and allows another configurable origin: `Config::DispatchWhitelistedOrigin` to dispatch them with the root origin.
====
@@ -105,24 +105,24 @@ To demystify the hard concepts, we provided a documentation, in which you can fi
[%collapsible]
====
* https://docs.rs/pallet-authorship/latest/pallet_authorship/#[pallet_authorship] provides authorship tracking for FRAME runtimes. This tracks the current author of the block and recent uncles.
* https://docs.rs/pezpallet-authorship/latest/pezpallet_authorship/#[pezpallet_authorship] provides authorship tracking for FRAME runtimes. This tracks the current author of the block and recent uncles.
* https://paritytech.github.io/polkadot-sdk/master/pallet_collator_selection/index.html#[pallet_collator_selection] - manages the collators of a parachain. **Collation is *not* a secure activity** and this pallet does not implement any game-theoretic mechanisms to meet BFT safety assumptions of the chosen set. This pallet can:
* https://paritytech.github.io/polkadot-sdk/master/pezpallet_collator_selection/index.html#[pezpallet_collator_selection] - manages the collators of a parachain. **Collation is *not* a secure activity** and this pezpallet does not implement any game-theoretic mechanisms to meet BFT safety assumptions of the chosen set. This pezpallet can:
** set invulnerable candidates (fixed candidates)
** set desired candidates (ideal number of non-fixed)
** set candidacy bond
** remove invulnerability (turn candidate into not fixed)
** and many more (all related to collators)
* https://paritytech.github.io/polkadot-sdk/master/pallet_session/index.html#[pallet_session] allows validators to manage their session keys, provides a function for changing the session length, and handles session rotation.
* https://paritytech.github.io/polkadot-sdk/master/pezpallet_session/index.html#[pezpallet_session] allows validators to manage their session keys, provides a function for changing the session length, and handles session rotation.
* https://docs.rs/pallet-aura/latest/pallet_aura/#[pallet_aura] extends Aura consensus by managing offline reporting. It can:
* https://docs.rs/pezpallet-aura/latest/pezpallet_aura/#[pezpallet_aura] extends Aura consensus by managing offline reporting. It can:
** get the current slot
** get the slot duration
** change and initialize authorities
** ensure the correctness of the state of this pallet
** ensure the correctness of the state of this pezpallet
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pallet_aura_ext/index.html#[cumulus_pallet_aura_ext] extends the Substrate AuRa pallet to make it compatible with parachains. It provides the Pallet, the Config and the GenesisConfig.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pezpallet_aura_ext/index.html#[cumulus_pezpallet_aura_ext] extends the Substrate AuRa pezpallet to make it compatible with parachains. It provides the Pezpallet, the Config and the GenesisConfig.
====
@@ -131,12 +131,12 @@ To demystify the hard concepts, we provided a documentation, in which you can fi
[%collapsible]
====
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pallet_xcmp_queue/index.html#[cumulus_pallet_xcmp_queue] Responsible for the Queues (both incoming and outgoing) for XCMP messages. This pallet does not actually receive or send messages. Its responsibility is to place the incoming and outgoing XCMP messages in their respective queues and manage these queues.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pezpallet_xcmp_queue/index.html#[cumulus_pezpallet_xcmp_queue] Responsible for the Queues (both incoming and outgoing) for XCMP messages. This pezpallet does not actually receive or send messages. Its responsibility is to place the incoming and outgoing XCMP messages in their respective queues and manage these queues.
* https://docs.rs/pallet-xcm/6.0.0/pallet_xcm/#[pallet_xcm] is responsible for filtering, routing, and executing incoming XCM.
* https://docs.rs/pezpallet-xcm/6.0.0/pezpallet_xcm/#[pezpallet_xcm] is responsible for filtering, routing, and executing incoming XCM.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pallet_xcm/index.html#[cumulus_pallet_xcm] is responsible from detecting and ensuring whether XCM's are coming from *Relay* or *Sibling* chain.
* https://paritytech.github.io/polkadot-sdk/master/cumulus_pezpallet_xcm/index.html#[cumulus_pezpallet_xcm] is responsible from detecting and ensuring whether XCM's are coming from *Relay* or *Sibling* chain.
* https://docs.rs/pallet-message-queue/latest/pallet_message_queue/#[MessageQueue] provides generalized message queuing and processing capabilities on a per-queue basis for arbitrary use-cases.
* https://docs.rs/pezpallet-message-queue/latest/pezpallet_message_queue/#[MessageQueue] provides generalized message queuing and processing capabilities on a per-queue basis for arbitrary use-cases.
====