mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 22:41:02 +00:00
Westend: Fellowship Treasury (#2532)
Treasury Pallet Instance for the Fellowship in Westend Collectives. In this update, we present a Treasury Pallet Instance that is under the control of the Fellowship body, with oversight from the Root and Treasurer origins. Here's how it is governed: - the Root origin have the authority to reject or approve spend proposals, with no amount limit for approvals. - the Treasurer origin have the authority to reject or approve spend proposals, with approval limits of up to 10,000,000 DOT. - Voice of all Fellows ranked at 3 or above can reject or approve spend proposals, with a maximum approval limit of 10,000 DOT. - Voice of Fellows ranked at 4 or above can also reject or approve spend proposals, with a maximum approval limit of 10,000,000 DOT. Additionally, we introduce the Asset Rate Pallet Instance to establish conversion rates from asset A to B. This is used to determine if a proposed spend amount involving a non-native asset is permissible by the commanding origin. The rates can be set up by the Root, Treasurer origins, or Voice of all Fellows. --------- Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Co-authored-by: joepetrowski <joe@parity.io>
This commit is contained in:
@@ -21,7 +21,7 @@ use super::{
|
||||
GeneralAdmin, ParaId, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, StakingAdmin,
|
||||
TransactionByteFee, Treasury, WeightToFee, XcmPallet,
|
||||
};
|
||||
|
||||
use crate::governance::pallet_custom_origins::Treasurer;
|
||||
use frame_support::{
|
||||
match_types, parameter_types,
|
||||
traits::{Everything, Nothing},
|
||||
@@ -34,7 +34,9 @@ use runtime_common::{
|
||||
};
|
||||
use sp_core::ConstU32;
|
||||
use westend_runtime_constants::{
|
||||
currency::CENTS, system_parachain::*, xcm::body::FELLOWSHIP_ADMIN_INDEX,
|
||||
currency::CENTS,
|
||||
system_parachain::*,
|
||||
xcm::body::{FELLOWSHIP_ADMIN_INDEX, TREASURER_INDEX},
|
||||
};
|
||||
use xcm::latest::prelude::*;
|
||||
use xcm_builder::{
|
||||
@@ -198,6 +200,8 @@ parameter_types! {
|
||||
pub const StakingAdminBodyId: BodyId = BodyId::Defense;
|
||||
// FellowshipAdmin pluralistic body.
|
||||
pub const FellowshipAdminBodyId: BodyId = BodyId::Index(FELLOWSHIP_ADMIN_INDEX);
|
||||
// `Treasurer` pluralistic body.
|
||||
pub const TreasurerBodyId: BodyId = BodyId::Index(TREASURER_INDEX);
|
||||
}
|
||||
|
||||
/// Type to convert the `GeneralAdmin` origin to a Plurality `MultiLocation` value.
|
||||
@@ -220,6 +224,9 @@ pub type StakingAdminToPlurality =
|
||||
pub type FellowshipAdminToPlurality =
|
||||
OriginToPluralityVoice<RuntimeOrigin, FellowshipAdmin, FellowshipAdminBodyId>;
|
||||
|
||||
/// Type to convert the `Treasurer` origin to a Plurality `MultiLocation` value.
|
||||
pub type TreasurerToPlurality = OriginToPluralityVoice<RuntimeOrigin, Treasurer, TreasurerBodyId>;
|
||||
|
||||
/// Type to convert a pallet `Origin` type value into a `MultiLocation` value which represents an
|
||||
/// interior location of this chain for a destination chain.
|
||||
pub type LocalPalletOriginToLocation = (
|
||||
@@ -229,6 +236,8 @@ pub type LocalPalletOriginToLocation = (
|
||||
StakingAdminToPlurality,
|
||||
// FellowshipAdmin origin to be used in XCM as a corresponding Plurality `MultiLocation` value.
|
||||
FellowshipAdminToPlurality,
|
||||
// `Treasurer` origin to be used in XCM as a corresponding Plurality `MultiLocation` value.
|
||||
TreasurerToPlurality,
|
||||
);
|
||||
|
||||
impl pallet_xcm::Config for Runtime {
|
||||
|
||||
Reference in New Issue
Block a user