Skip to content

Commit ff82c1b

Browse files
committed
Add InitBaseFeePerGas storage
1 parent 3bb085b commit ff82c1b

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

frame/base-fee/src/lib.rs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ pub mod pallet {
9696
#[pallet::storage]
9797
pub type BaseFeePerGas<T> = StorageValue<_, U256, ValueQuery, DefaultBaseFeePerGas<T>>;
9898

99+
#[pallet::storage]
100+
pub type InitBaseFeePerGas<T> = StorageValue<_, U256, ValueQuery, DefaultBaseFeePerGas<T>>;
101+
99102
#[pallet::type_value]
100103
pub fn DefaultElasticity<T: Config>() -> Permill {
101104
T::DefaultElasticity::get()
@@ -110,6 +113,7 @@ pub mod pallet {
110113
NewBaseFeePerGas { fee: U256 },
111114
BaseFeeOverflow,
112115
NewElasticity { elasticity: Permill },
116+
NewInitBaseFeePerGas { fee: U256 }
113117
}
114118

115119
#[pallet::hooks]
@@ -178,7 +182,7 @@ pub mod pallet {
178182
let decrease = scaled_basefee
179183
.checked_div(U256::from(1_000_000))
180184
.unwrap_or_else(U256::zero);
181-
let default_base_fee = T::DefaultBaseFeePerGas::get();
185+
let default_base_fee = InitBaseFeePerGas::<T>::get();
182186
// lowest fee is norm(DefaultBaseFeePerGas * Threshold::ideal()):
183187
let lowest_base_fee = default_base_fee
184188
.checked_mul(U256::from(T::Threshold::ideal().deconstruct()))
@@ -217,6 +221,15 @@ pub mod pallet {
217221
Self::deposit_event(Event::NewElasticity { elasticity });
218222
Ok(())
219223
}
224+
225+
#[pallet::call_index(1)]
226+
#[pallet::weight(10_000 + T::DbWeight::get().writes(1).ref_time())]
227+
pub fn set_init_base_fee_per_gas(origin: OriginFor<T>, fee: U256) -> DispatchResult {
228+
ensure_root(origin)?;
229+
let _ = Self::set_init_base_fee_per_gas_inner(fee);
230+
Self::deposit_event(Event::NewInitBaseFeePerGas { fee });
231+
Ok(())
232+
}
220233
}
221234
}
222235

@@ -235,4 +248,8 @@ impl<T: Config> Pallet<T> {
235248
<Elasticity<T>>::put(value);
236249
T::DbWeight::get().writes(1)
237250
}
251+
pub fn set_init_base_fee_per_gas_inner(value: U256) -> Weight {
252+
<InitBaseFeePerGas<T>>::put(value);
253+
T::DbWeight::get().writes(1)
254+
}
238255
}

0 commit comments

Comments
 (0)