--- a/pallets/balances-adapter/src/common.rs +++ b/pallets/balances-adapter/src/common.rs @@ -45,7 +45,7 @@ } fn transfer() -> Weight { - as WeightInfo>::transfer() + as WeightInfo>::transfer_allow_death() } fn approve() -> Weight { @@ -57,7 +57,7 @@ } fn transfer_from() -> Weight { - as WeightInfo>::transfer() + as WeightInfo>::transfer_allow_death() } fn burn_from() -> Weight { --- a/pallets/balances-adapter/src/erc.rs +++ b/pallets/balances-adapter/src/erc.rs @@ -54,7 +54,7 @@ Ok(total.into()) } - #[weight(>::transfer())] + #[weight(>::transfer_allow_death())] fn transfer(&mut self, caller: Caller, to: Address, amount: U256) -> Result { let caller = T::CrossAccountId::from_eth(caller); let to = T::CrossAccountId::from_eth(to); @@ -68,7 +68,7 @@ Ok(true) } - #[weight(>::transfer())] + #[weight(>::transfer_allow_death())] fn transfer_from( &mut self, caller: Caller, @@ -102,7 +102,7 @@ Ok(balance.into()) } - #[weight(>::transfer())] + #[weight(>::transfer_allow_death())] fn transfer_cross(&mut self, caller: Caller, to: CrossAddress, amount: U256) -> Result { let caller = T::CrossAccountId::from_eth(caller); let to = to.into_sub_cross_account::()?; @@ -117,7 +117,7 @@ Ok(true) } - #[weight(>::transfer())] + #[weight(>::transfer_allow_death())] fn transfer_from_cross( &mut self, caller: Caller, --- a/pallets/balances-adapter/src/lib.rs +++ b/pallets/balances-adapter/src/lib.rs @@ -153,7 +153,7 @@ }; Ok(PostDispatchInfo { - actual_weight: Some(>::transfer()), + actual_weight: Some(>::transfer_allow_death()), pays_fee: Pays::Yes, }) } --- a/runtime/common/config/pallets/app_promotion.rs +++ b/runtime/common/config/pallets/app_promotion.rs @@ -31,6 +31,7 @@ pub const RecalculationInterval: BlockNumber = RELAY_DAYS; pub const PendingInterval: BlockNumber = 7 * DAYS; pub const Nominal: Balance = UNIQUE; + pub const HoldAndFreezeIdentifier: [u8; 16] = *b"appstakeappstake"; pub IntervalIncome: Perbill = Perbill::from_rational(5u32, 10_000); } @@ -47,4 +48,5 @@ type Nominal = Nominal; type IntervalIncome = IntervalIncome; type RuntimeEvent = RuntimeEvent; + type FreezeIdentifier = HoldAndFreezeIdentifier; }