Skip to content
This repository has been archived by the owner on Mar 13, 2023. It is now read-only.

Commit

Permalink
Update conversion approach
Browse files Browse the repository at this point in the history
  • Loading branch information
boundless-forest committed Nov 5, 2020
1 parent ad62b55 commit e45971a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 12 deletions.
15 changes: 8 additions & 7 deletions frame/dvm/ethereum/src/account_basic.rs
Original file line number Diff line number Diff line change
@@ -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};
Expand All @@ -15,22 +16,22 @@ impl<T: crate::Trait + darwinia_balances::Trait<darwinia_balances::Instance0>> 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::<u128>::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::<T>::remaining_balance(&account_id);
let remaining_balance = U256::from(UniqueSaturatedInto::<u128>::unique_saturated_into(
remaining_balance,
));
let remaining_balance: U256 = crate::Module::<T>::remaining_balance(&account_id)
.unique_saturated_into()
.into();

// Final balance = balance * 10^9 + remaining_balance
let final_balance = U256::from(balance * helper)
.overflowing_add(remaining_balance)
.0;

EVMAccount {
nonce: U256::from(UniqueSaturatedInto::<u128>::unique_saturated_into(nonce)),
nonce: nonce.unique_saturated_into().into(),
balance: final_balance,
}
}
Expand Down
8 changes: 3 additions & 5 deletions frame/dvm/ethereum/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
},
Expand All @@ -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;
Expand Down Expand Up @@ -323,9 +323,7 @@ impl<T: Trait> Module<T> {
/// 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);
<RemainingBalance<T>>::insert(account_id, updated_balance);
}

Expand Down

0 comments on commit e45971a

Please sign in to comment.