OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-wallet / cmd / whoami.js

52 lines · javascript ref:
// cmd/whoami.js - Show Wallet Identity

/**
 * Whoami command handler
 * @param {WalletContext} context - Wallet context
 * @returns {Array} - Command definition
 */
export default function (context) {
  return [
    async function handler(args) {
      console.log('🔐 Wallet Identity')
      console.log('')

      // Check if initialized
      const meta = await context.db.get('meta/initialized')
      if (!meta) {
        console.error('❌ Wallet not initialized')
        console.log('   Run: hyper-wallet init')
        process.exit(1)
      }

      // Show identity info
      const identityKey = context.identity.identityPublicKey.toString('hex')
      console.log(`Identity Key: ${identityKey}`)
      console.log(`Initialized:  ${new Date(meta.value.timestamp).toLocaleString()}`)
      console.log(`Protocols:    ${meta.value.protocols.join(', ')}`)
      console.log('')

      // Show wallet addresses for each protocol
      console.log('💳 Wallet Addresses:')
      console.log('')

      for (const [protocol, instance] of Object.entries(context.protocols)) {
        console.log(`${protocol.toUpperCase()}:`)

        if (instance.accounts) {
          for (const [chain, account] of Object.entries(instance.accounts)) {
            try {
              const address = await account.getAddress()
              console.log(`  ${chain}: ${address}`)
            } catch (err) {
              console.log(`  ${chain}: Error - ${err.message}`)
            }
          }
        }

        console.log('')
      }
    }
  ]
}