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

// 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)