You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.7 KiB
63 lines
1.7 KiB
// Utility to human-read the accounts.json file
|
|
// You have to pass it in parameter, because the location
|
|
// differ depending on the OS.
|
|
|
|
const {
|
|
formatCurrencyUnit,
|
|
getCryptoCurrencyById,
|
|
} = require('@ledgerhq/live-common/lib/helpers/currencies')
|
|
const chalk = require('chalk')
|
|
const padStart = require('lodash/padStart')
|
|
const padEnd = require('lodash/padEnd')
|
|
|
|
const { argv } = process
|
|
|
|
const [, , FILE_PATH] = argv
|
|
|
|
if (!FILE_PATH) {
|
|
console.log(`You need to specify a file`)
|
|
process.exit(1)
|
|
}
|
|
|
|
const { data: wrappedAccounts } = require(FILE_PATH) // eslint-disable-line
|
|
|
|
const str = wrappedAccounts
|
|
.map(({ data: account }) => {
|
|
const currency = getCryptoCurrencyById(account.currencyId)
|
|
const unit = currency.units[0]
|
|
const headline = `${account.isSegwit ? '[SEGWIT]' : '[NOT SEGWIT]'} ${account.name} | ${
|
|
account.id
|
|
} | ${account.path} | balance: ${formatCurrencyUnit(unit, account.balance, {
|
|
showCode: true,
|
|
alwaysShowSign: true,
|
|
})}`
|
|
return [
|
|
headline,
|
|
headline
|
|
.split('')
|
|
.map(() => '-')
|
|
.join(''),
|
|
account.operations
|
|
.map(op => {
|
|
const opType = op.amount < 0 ? 'SEND' : 'RECEIVE'
|
|
return [
|
|
padEnd(opType, 8),
|
|
op.date.substr(0, 10),
|
|
chalk[opType === 'SEND' ? 'red' : 'green'](
|
|
padStart(
|
|
formatCurrencyUnit(unit, op.amount, {
|
|
showCode: true,
|
|
alwaysShowSign: true,
|
|
}),
|
|
15,
|
|
),
|
|
),
|
|
op.hash,
|
|
].join(' ')
|
|
})
|
|
.join('\n'),
|
|
].join('\n')
|
|
})
|
|
.join('\n\n')
|
|
|
|
console.log(str)
|
|
|