current.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import AccountsCommandBase from '../../base/AccountsCommandBase'
  2. import { AccountSummary, NameValueObj, NamedKeyringPair } from '../../Types'
  3. import { displayHeader, displayNameValueTable } from '../../helpers/display'
  4. import { formatBalance } from '@polkadot/util'
  5. import moment from 'moment'
  6. export default class AccountCurrent extends AccountsCommandBase {
  7. static description = 'Display information about currently choosen default account'
  8. static aliases = ['account:info', 'account:default']
  9. async run() {
  10. const currentAccount: NamedKeyringPair = await this.getRequiredSelectedAccount(false)
  11. const summary: AccountSummary = await this.getApi().getAccountSummary(currentAccount.address)
  12. displayHeader('Account information')
  13. const creationDate: string = currentAccount.meta.whenCreated
  14. ? moment(currentAccount.meta.whenCreated as string | number).format('YYYY-MM-DD HH:mm:ss')
  15. : '?'
  16. const accountRows: NameValueObj[] = [
  17. { name: 'Account name:', value: currentAccount.meta.name },
  18. { name: 'Address:', value: currentAccount.address },
  19. { name: 'Created:', value: creationDate },
  20. ]
  21. displayNameValueTable(accountRows)
  22. displayHeader('Balances')
  23. const balances = summary.balances
  24. const balancesRows: NameValueObj[] = [
  25. { name: 'Total balance:', value: formatBalance(balances.votingBalance) },
  26. { name: 'Transferable balance:', value: formatBalance(balances.availableBalance) },
  27. ]
  28. if (balances.lockedBalance.gtn(0)) {
  29. balancesRows.push({ name: 'Locked balance:', value: formatBalance(balances.lockedBalance) })
  30. }
  31. if (balances.reservedBalance.gtn(0)) {
  32. balancesRows.push({ name: 'Reserved balance:', value: formatBalance(balances.reservedBalance) })
  33. }
  34. displayNameValueTable(balancesRows)
  35. }
  36. }