diff --git a/src/reducers/accounts.js b/src/reducers/accounts.js index d971216a..636c3783 100644 --- a/src/reducers/accounts.js +++ b/src/reducers/accounts.js @@ -1,19 +1,20 @@ // @flow import { handleActions } from 'redux-actions' +import { createAccountModel } from '@ledgerhq/wallet-common/lib/models/account' import every from 'lodash/every' import get from 'lodash/get' import reduce from 'lodash/reduce' import type { Account, AccountRaw } from '@ledgerhq/wallet-common/lib/types' -import { getDefaultUnitByCoinType, getCurrencyByCoinType } from '@ledgerhq/currencies' - import type { State } from 'reducers' export type AccountsState = Account[] const state: AccountsState = [] +const accountModel = createAccountModel() + function orderAccountsOperations(account: Account) { const { operations } = account operations.sort((a, b) => new Date(b.date) - new Date(a.date)) @@ -89,30 +90,12 @@ export function canCreateAccount(state: State): boolean { return every(getAccounts(state), a => get(a, 'operations.length', 0) > 0) } -export function serializeAccounts(accounts: Array) { - return accounts.map((account, key) => ({ - ...account, - currency: getCurrencyByCoinType(account.coinType), - name: account.name || `${key}`, - unit: account.unit || getDefaultUnitByCoinType(account.coinType), - })) +export function serializeAccounts(accounts: Account[]) { + return accounts.map(accountModel.decode) } -export function deserializeAccounts(accounts: Account[]) { - return accounts.map(account => ({ - id: account.id, - address: account.address, - addresses: account.addresses, - balance: account.balance, - balanceByDay: account.balanceByDay, - coinType: account.coinType, - index: account.index, - name: account.name, - operations: account.operations, - path: account.path, - rootPath: account.rootPath, - unit: account.unit, - })) +export function deserializeAccounts(accounts: AccountRaw[]) { + return accounts.map(accountModel.encode) } export default handleActions(handlers, state)