// 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('')
}
}
]
}