OverviewFilesCommitsIssuesDocsReleasesPeers

hyper-wallet-desktop / debug-address-storage.cjs

68 lines · javascript ref:
#!/usr/bin/env node

/**
 * Debug: Read address storage to see what addresses are stored
 */

// Use Bare runtime compatibility
require('bare-node-runtime/global')

const Corestore = require('corestore')
const Autobase = require('autobase')
const Hyperbee = require('hyperbee')
const path = require('bare-path')
const os = require('bare-os')

const STORAGE_DIR = path.join(os.homedir(), '.hyper-wallet', 'storage')

async function debugStorage() {
  console.log('Reading wallet address storage...\n')

  const store = new Corestore(STORAGE_DIR)
  const autobase = new Autobase(store, null, { valueEncoding: 'json', open: () => store.get({ name: 'main' }) })
  const db = new Hyperbee(autobase.view, { keyEncoding: 'utf-8', valueEncoding: 'json' })

  await db.ready()

  console.log('Searching for stored addresses...\n')

  // Look for ethereum addresses
  const ethAddresses = db.createReadStream({
    gte: 'wallet:address:ethereum:',
    lt: 'wallet:address:ethereum:\xFF'
  })

  for await (const { key, value } of ethAddresses) {
    console.log(`Key: ${key}`)
    console.log(`Address: ${value.address}`)
    console.log(`Index: ${value.index}`)
    console.log(`Path: ${value.path}`)
    console.log(`Current: ${value.isCurrent || false}`)
    console.log(`Network: ${value.network}`)
    console.log()
  }

  // Look for ethereum-usdt addresses
  console.log('--- USDT Addresses ---\n')
  const usdtAddresses = db.createReadStream({
    gte: 'wallet:address:ethereum-usdt:',
    lt: 'wallet:address:ethereum-usdt:\xFF'
  })

  for await (const { key, value } of usdtAddresses) {
    console.log(`Key: ${key}`)
    console.log(`Address: ${value.address}`)
    console.log(`Index: ${value.index}`)
    console.log(`Current: ${value.isCurrent || false}`)
    console.log()
  }

  await db.close()
  await store.close()
}

debugStorage().catch(err => {
  console.error('Error:', err)
  process.exit(1)
})