mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-08 19:28:01 +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:
@@ -78,8 +78,7 @@ fn create_approved_proposals<T: Config<I>, I: 'static>(n: u32) -> Result<(), &'s
|
||||
#[allow(deprecated)]
|
||||
Treasury::<T, I>::propose_spend(RawOrigin::Signed(caller).into(), value, lookup)?;
|
||||
let proposal_id = <ProposalCount<T, I>>::get() - 1;
|
||||
#[allow(deprecated)]
|
||||
Treasury::<T, I>::approve_proposal(RawOrigin::Root.into(), proposal_id)?;
|
||||
Approvals::<T, I>::try_append(proposal_id).unwrap();
|
||||
}
|
||||
ensure!(<Approvals<T, I>>::get().len() == n as usize, "Not all approved");
|
||||
Ok(())
|
||||
@@ -163,6 +162,8 @@ mod benchmarks {
|
||||
fn approve_proposal(
|
||||
p: Linear<0, { T::MaxApprovals::get() - 1 }>,
|
||||
) -> Result<(), BenchmarkError> {
|
||||
let approve_origin =
|
||||
T::ApproveOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
|
||||
create_approved_proposals::<T, _>(p)?;
|
||||
let (caller, value, beneficiary_lookup) = setup_proposal::<T, _>(SEED);
|
||||
#[allow(deprecated)]
|
||||
@@ -172,8 +173,6 @@ mod benchmarks {
|
||||
beneficiary_lookup,
|
||||
)?;
|
||||
let proposal_id = Treasury::<T, _>::proposal_count() - 1;
|
||||
let approve_origin =
|
||||
T::ApproveOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
|
||||
|
||||
#[extrinsic_call]
|
||||
_(approve_origin as T::RuntimeOrigin, proposal_id);
|
||||
@@ -191,8 +190,7 @@ mod benchmarks {
|
||||
beneficiary_lookup,
|
||||
)?;
|
||||
let proposal_id = Treasury::<T, _>::proposal_count() - 1;
|
||||
#[allow(deprecated)]
|
||||
Treasury::<T, I>::approve_proposal(RawOrigin::Root.into(), proposal_id)?;
|
||||
Approvals::<T, _>::try_append(proposal_id).unwrap();
|
||||
let reject_origin =
|
||||
T::RejectOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user