diff --git a/frame/dvm/ethereum/src/account_basic.rs b/frame/dvm/ethereum/src/account_basic.rs index dcedeb1323..f1cc2a4831 100644 --- a/frame/dvm/ethereum/src/account_basic.rs +++ b/frame/dvm/ethereum/src/account_basic.rs @@ -1,3 +1,4 @@ +use frame_support::debug; use frame_support::traits::Currency; use pallet_evm::{Account as EVMAccount, AccountBasicMapping, AddressMapping}; use sp_core::{H160, U256}; @@ -15,14 +16,14 @@ impl> A let helper = U256::from(10).overflowing_pow(U256::from(9)).0; // Get balance from T::Currency - let balance = T::Currency::free_balance(&account_id); - let balance = U256::from(UniqueSaturatedInto::::unique_saturated_into(balance)); + let balance: U256 = T::Currency::free_balance(&account_id) + .unique_saturated_into() + .into(); // Get remaining balance from dvm - let remaining_balance = crate::Module::::remaining_balance(&account_id); - let remaining_balance = U256::from(UniqueSaturatedInto::::unique_saturated_into( - remaining_balance, - )); + let remaining_balance: U256 = crate::Module::::remaining_balance(&account_id) + .unique_saturated_into() + .into(); // Final balance = balance * 10^9 + remaining_balance let final_balance = U256::from(balance * helper) @@ -30,7 +31,7 @@ impl> A .0; EVMAccount { - nonce: U256::from(UniqueSaturatedInto::::unique_saturated_into(nonce)), + nonce: nonce.unique_saturated_into().into(), balance: final_balance, } } diff --git a/frame/dvm/ethereum/src/lib.rs b/frame/dvm/ethereum/src/lib.rs index 0741924dcd..be481dc5a9 100644 --- a/frame/dvm/ethereum/src/lib.rs +++ b/frame/dvm/ethereum/src/lib.rs @@ -33,7 +33,7 @@ use frame_system::ensure_none; use sha3::{Digest, Keccak256}; use sp_runtime::{ generic::DigestItem, - traits::UniqueSaturatedInto, + traits::{Saturating, UniqueSaturatedInto}, transaction_validity::{ InvalidTransaction, TransactionSource, TransactionValidity, ValidTransaction, }, @@ -45,7 +45,7 @@ pub use dvm_rpc_primitives::TransactionStatus; pub use ethereum::{Block, Log, Receipt, Transaction, TransactionAction}; use frame_support::traits::Currency; use pallet_evm::{AccountBasicMapping, AddressMapping}; -use sp_runtime::traits::{CheckedAdd, CheckedSub}; +use sp_runtime::traits::CheckedSub; #[cfg(all(feature = "std", test))] mod tests; @@ -323,9 +323,7 @@ impl Module { /// Inc remaining balance pub fn inc_remain_balance(account_id: &T::AccountId, value: T::Balance) { let remain_balance = Self::remaining_balance(account_id); - let updated_balance = remain_balance - .checked_add(&value) - .expect("Inc remain balance, panic!"); + let updated_balance = remain_balance.saturating_add(value); >::insert(account_id, updated_balance); }