use WEIGHT_PER_SECOND in FixedRateOfFungible (#3611)

* use WEIGHT_PER_SECOND in FixedRateOfFungible

* move import
This commit is contained in:
Alexander Popiak
2021-08-11 15:44:00 +02:00
committed by GitHub
parent 8c3202f063
commit a8245e4a3e
+2 -4
View File
@@ -16,7 +16,7 @@
use frame_support::{ use frame_support::{
traits::{tokens::currency::Currency as CurrencyT, Get, OnUnbalanced as OnUnbalancedT}, traits::{tokens::currency::Currency as CurrencyT, Get, OnUnbalanced as OnUnbalancedT},
weights::{GetDispatchInfo, Weight, WeightToFeePolynomial}, weights::{constants::WEIGHT_PER_SECOND, GetDispatchInfo, Weight, WeightToFeePolynomial},
}; };
use parity_scale_codec::Decode; use parity_scale_codec::Decode;
use sp_runtime::traits::{SaturatedConversion, Saturating, Zero}; use sp_runtime::traits::{SaturatedConversion, Saturating, Zero};
@@ -131,7 +131,6 @@ impl<T: Get<(MultiLocation, u128)>, R: TakeRevenue> WeightTrader
fn buy_weight(&mut self, weight: Weight, payment: Assets) -> Result<Assets, Error> { fn buy_weight(&mut self, weight: Weight, payment: Assets) -> Result<Assets, Error> {
let (id, units_per_second) = T::get(); let (id, units_per_second) = T::get();
use frame_support::weights::constants::WEIGHT_PER_SECOND;
let amount = units_per_second * (weight as u128) / (WEIGHT_PER_SECOND as u128); let amount = units_per_second * (weight as u128) / (WEIGHT_PER_SECOND as u128);
let unused = payment.checked_sub((id, amount).into()).map_err(|_| Error::TooExpensive)?; let unused = payment.checked_sub((id, amount).into()).map_err(|_| Error::TooExpensive)?;
self.0 = self.0.saturating_add(weight); self.0 = self.0.saturating_add(weight);
@@ -177,7 +176,6 @@ impl<T: Get<(AssetId, u128)>, R: TakeRevenue> WeightTrader for FixedRateOfFungib
fn buy_weight(&mut self, weight: Weight, payment: Assets) -> Result<Assets, Error> { fn buy_weight(&mut self, weight: Weight, payment: Assets) -> Result<Assets, Error> {
let (id, units_per_second) = T::get(); let (id, units_per_second) = T::get();
use frame_support::weights::constants::WEIGHT_PER_SECOND;
let amount = units_per_second * (weight as u128) / (WEIGHT_PER_SECOND as u128); let amount = units_per_second * (weight as u128) / (WEIGHT_PER_SECOND as u128);
if amount == 0 { if amount == 0 {
return Ok(payment) return Ok(payment)
@@ -191,7 +189,7 @@ impl<T: Get<(AssetId, u128)>, R: TakeRevenue> WeightTrader for FixedRateOfFungib
fn refund_weight(&mut self, weight: Weight) -> Option<MultiAsset> { fn refund_weight(&mut self, weight: Weight) -> Option<MultiAsset> {
let (id, units_per_second) = T::get(); let (id, units_per_second) = T::get();
let weight = weight.min(self.0); let weight = weight.min(self.0);
let amount = units_per_second * (weight as u128) / 1_000_000_000_000u128; let amount = units_per_second * (weight as u128) / (WEIGHT_PER_SECOND as u128);
self.0 -= weight; self.0 -= weight;
self.1 = self.1.saturating_sub(amount); self.1 = self.1.saturating_sub(amount);
if amount > 0 { if amount > 0 {