Skip to content

Commit

Permalink
pallet-base-fee storage utility functions (polkadot-evm#585)
Browse files Browse the repository at this point in the history
* `pallet-base-fee` storage utility functions

* fmt
  • Loading branch information
tgmichel committed Feb 24, 2022
1 parent 70ad1ed commit efc4403
Showing 1 changed file with 23 additions and 5 deletions.
28 changes: 23 additions & 5 deletions frame/base-fee/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,15 @@

pub use self::pallet::*;

use frame_support::{traits::Get, weights::Weight};
use sp_core::U256;
use sp_runtime::Permill;

#[frame_support::pallet]
pub mod pallet {
use super::*;
use frame_support::{dispatch::DispatchResult, pallet_prelude::*};
use frame_system::pallet_prelude::*;
use sp_core::U256;
use sp_runtime::Permill;

pub trait BaseFeeThreshold {
fn lower() -> Permill;
Expand Down Expand Up @@ -211,23 +214,23 @@ pub mod pallet {
#[pallet::weight(10_000 + T::DbWeight::get().writes(1))]
pub fn set_base_fee_per_gas(origin: OriginFor<T>, fee: U256) -> DispatchResult {
ensure_root(origin)?;
<BaseFeePerGas<T>>::put(fee);
let _ = Self::set_base_fee_per_gas_inner(fee);
Self::deposit_event(Event::NewBaseFeePerGas(fee));
Ok(())
}

#[pallet::weight(10_000 + T::DbWeight::get().writes(1))]
pub fn set_is_active(origin: OriginFor<T>, is_active: bool) -> DispatchResult {
ensure_root(origin)?;
<IsActive<T>>::put(is_active);
let _ = Self::set_is_active_inner(is_active);
Self::deposit_event(Event::IsActive(is_active));
Ok(())
}

#[pallet::weight(10_000 + T::DbWeight::get().writes(1))]
pub fn set_elasticity(origin: OriginFor<T>, elasticity: Permill) -> DispatchResult {
ensure_root(origin)?;
<Elasticity<T>>::put(elasticity);
let _ = Self::set_elasticity_inner(elasticity);
Self::deposit_event(Event::NewElasticity(elasticity));
Ok(())
}
Expand All @@ -240,6 +243,21 @@ pub mod pallet {
}
}

impl<T: Config> Pallet<T> {
pub fn set_base_fee_per_gas_inner(value: U256) -> Weight {
<BaseFeePerGas<T>>::put(value);
T::DbWeight::get().write
}
pub fn set_elasticity_inner(value: Permill) -> Weight {
<Elasticity<T>>::put(value);
T::DbWeight::get().write
}
pub fn set_is_active_inner(value: bool) -> Weight {
<IsActive<T>>::put(value);
T::DbWeight::get().write
}
}

#[cfg(test)]
mod tests {
use super::*;
Expand Down

0 comments on commit efc4403

Please sign in to comment.