diff --git a/__tests__/components/transaction-item.test.js b/__tests__/components/transaction-item.test.js index 295cefb..65bb0a0 100644 --- a/__tests__/components/transaction-item.test.js +++ b/__tests__/components/transaction-item.test.js @@ -36,6 +36,8 @@ describe('', () => { const { container } = render( ', () => { date: '2019-02-20T19:31:57.117Z', theme: appTheme, fees: 0.001, + confirmations: 10, + confirmed: true, }, { type: 'send', @@ -59,6 +61,8 @@ describe('', () => { date: '2019-02-20T19:31:57.117Z', theme: appTheme, fees: 0.001, + confirmed: false, + confirmations: 3, }, ]} /> diff --git a/app/components/transaction-daily.js b/app/components/transaction-daily.js index b063351..84b4b99 100644 --- a/app/components/transaction-daily.js +++ b/app/components/transaction-daily.js @@ -38,21 +38,25 @@ export const TransactionDailyComponent = ({ transactionsDate, transactions, zecP - {transactions.map(({ - date, type, address, amount, transactionId, fees, - }) => ( - - - - ))} + {transactions.map( + ({ + date, type, address, amount, transactionId, fees, confirmed, confirmations, + }) => ( + + + + ), + )} ); diff --git a/app/components/transaction-item.js b/app/components/transaction-item.js index 851a319..a142302 100644 --- a/app/components/transaction-item.js +++ b/app/components/transaction-item.js @@ -71,6 +71,8 @@ const TransactionColumn = styled(ColumnComponent)` `; export type Transaction = { + confirmed: boolean, // eslint-disable-line + confirmations: number, // eslint-disable-line type: 'send' | 'receive', date: string, address: string, @@ -82,6 +84,8 @@ export type Transaction = { }; const Component = ({ + // confirmed, + // confirmations, type, date, address, diff --git a/app/constants/zcash-network.js b/app/constants/zcash-network.js index a874c6e..435691f 100644 --- a/app/constants/zcash-network.js +++ b/app/constants/zcash-network.js @@ -8,3 +8,5 @@ export const TESTNET = 'TESTNET'; export const SPROUT = 'sprout'; export const SAPLING = 'sapling'; + +export const MIN_CONFIRMATIONS_NUMBER = 12; diff --git a/app/containers/dashboard.js b/app/containers/dashboard.js index 8a20c3c..19ff9bb 100644 --- a/app/containers/dashboard.js +++ b/app/containers/dashboard.js @@ -11,7 +11,7 @@ import { DashboardView } from '../views/dashboard'; import rpc from '../../services/api'; import store from '../../config/electron-store'; -import { SAPLING } from '../constants/zcash-network'; +import { SAPLING, MIN_CONFIRMATIONS_NUMBER } from '../constants/zcash-network'; import { listShieldedTransactions } from '../../services/shielded-transactions'; import { sortByDescend } from '../utils/sort-by-descend'; @@ -56,6 +56,8 @@ const mapDispatchToProps = (dispatch: Dispatch) => ({ const formattedTransactions: Array = flow([ arr => arr.map(transaction => ({ + confirmed: transaction.confirmations >= MIN_CONFIRMATIONS_NUMBER, + confirmations: transaction.confirmations, transactionId: transaction.txid, type: transaction.category, date: new Date(transaction.time * 1000).toISOString(), diff --git a/app/containers/transactions.js b/app/containers/transactions.js index 12755b8..de2e108 100644 --- a/app/containers/transactions.js +++ b/app/containers/transactions.js @@ -14,6 +14,7 @@ import { import rpc from '../../services/api'; import { listShieldedTransactions } from '../../services/shielded-transactions'; import store from '../../config/electron-store'; +import { MIN_CONFIRMATIONS_NUMBER } from '../constants/zcash-network'; import { sortByDescend } from '../utils/sort-by-descend'; @@ -64,6 +65,11 @@ const mapDispatchToProps = (dispatch: Dispatch): MapDispatchToProps => ({ ...transactions, ...listShieldedTransactions({ count, offset: shieldedTransactionsCount }), ].map(transaction => ({ + confirmations: transaction.confirmations !== undefined ? transaction.confirmations : 0, + confirmed: + transaction.confirmations !== undefined + ? transaction.confirmations >= MIN_CONFIRMATIONS_NUMBER + : true, transactionId: transaction.txid, type: transaction.category, date: new Date(transaction.time * 1000).toISOString(), diff --git a/app/views/transactions.js b/app/views/transactions.js index 3034951..60604e6 100644 --- a/app/views/transactions.js +++ b/app/views/transactions.js @@ -37,8 +37,7 @@ const RoundedTransactionWrapper = styled.div` : ` border-bottom-left-radius: ${props.theme.boxBorderRadius}; border-bottom-right-radius: ${props.theme.boxBorderRadius}; - ` - )} + `)} `; const ListWrapper = styled.div` @@ -109,6 +108,8 @@ export class TransactionsView extends PureComponent { nextTransactionDate: nextTransaction ? new Date(nextTransaction.date) : null, component: ( { return transactionItem; }; - renderRow = ( - { index, key, style }: { index: number, key: string, style: Object }, - ) => ( + renderRow = ({ index, key, style }: { index: number, key: string, style: Object }) => (
- {this.isRowLoaded({ index }) - ? this.renderTransactions({ index }) - : 'Loading...' - } + {this.isRowLoaded({ index }) ? this.renderTransactions({ index }) : 'Loading...'}
); diff --git a/services/utils.js b/services/utils.js index b55f560..128d4c1 100644 --- a/services/utils.js +++ b/services/utils.js @@ -219,7 +219,7 @@ export type APIMethods = { bytes: string, usage: string, }>, - getrawmempool: () => Promise, + getrawmempool: (verbose?: number) => Promise, gettxout: ( txid: string, n: number,