{"version":3,"file":"balance.mjs","names":[],"sources":["../../src/commands/balance.ts"],"sourcesContent":["/** Get native token balance for one or more addresses (supports ENS) */\nimport { defineCommand } from \"citty\";\nimport consola from \"consola\";\nimport { print } from \"./shared.js\";\n\nexport default defineCommand({\n  meta: {\n    name: \"balance\",\n    description:\n      \"Get native token balances with read time for one or more addresses (supports ENS)\",\n  },\n  args: {\n    address: {\n      type: \"positional\",\n      description: \"Blockchain address or ENS name; pass several to batch\",\n      required: true,\n    },\n    chain: {\n      type: \"string\",\n      alias: \"c\",\n      description: \"Chain (eth, base, arbitrum, bitcoin, ...)\",\n    },\n    provider: {\n      type: \"string\",\n      alias: \"p\",\n      description: \"Provider (etherscan, blockscout, blockchair)\",\n    },\n  },\n  async run({ args }) {\n    try {\n      const [{ withProvider }, { normalizeChain }, { resolveAddresses }] = await Promise.all([\n        import(\"../core/resolve.js\"),\n        import(\"../core/types.js\"),\n        import(\"../core/input.js\"),\n      ]);\n      const chainInput = args.chain as string | undefined;\n      const requestedChain = chainInput === undefined ? undefined : normalizeChain(chainInput);\n      await withProvider(\n        args.provider as string | undefined,\n        requestedChain,\n        async ({ chain, name, provider }) => {\n          const inputs = args._.length > 0 ? args._ : [args.address as string];\n          const addresses = await resolveAddresses(inputs, chain);\n          const balances = await Promise.all(\n            addresses.map((address) => provider.getBalance(address, chain)),\n          );\n          for (const balance of balances) {\n            print(`[${name}] ${balance.chain} balance for ${balance.address}`);\n            print(`  ${balance.balanceFormatted} ${balance.symbol}`);\n            print(`  Raw: ${balance.balance} base units`);\n            if (balance.unconfirmed !== undefined) {\n              print(`  Unconfirmed delta: ${balance.unconfirmed} base units`);\n            }\n            print(`  Fetched: ${balance.fetchedAt}`);\n            print(`  Block: ${balance.blockNumber ?? \"unknown\"}`);\n            if (balance.blockHash !== null) {\n              print(`  Block hash: ${balance.blockHash}`);\n            }\n            if (balance.funded !== undefined && balance.spent !== undefined) {\n              print(`  Funded: ${balance.funded} base units`);\n              print(`  Spent: ${balance.spent} base units`);\n            }\n          }\n        },\n        \"balances\",\n      );\n    } catch (error) {\n      consola.error(`Error: ${error instanceof Error ? error.message : String(error)}`);\n      process.exit(1);\n    }\n  },\n});\n"],"mappings":";;;AAKA,IAAA,kBAAe,cAAc;CAC3B,MAAM;EACJ,MAAM;EACN,aACE;CACJ;CACA,MAAM;EACJ,SAAS;GACP,MAAM;GACN,aAAa;GACb,UAAU;EACZ;EACA,OAAO;GACL,MAAM;GACN,OAAO;GACP,aAAa;EACf;EACA,UAAU;GACR,MAAM;GACN,OAAO;GACP,aAAa;EACf;CACF;CACA,MAAM,IAAI,EAAE,QAAQ;EAClB,IAAI;GACF,MAAM,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,sBAAsB,MAAM,QAAQ,IAAI;IACrF,OAAO,gBAAqB,CAAA,MAAA,MAAA,EAAA,eAAA;IAC5B,OAAO,cAAmB,CAAA,MAAA,MAAA,EAAA,aAAA;IAC1B,OAAO,cAAmB,CAAA,MAAA,MAAA,EAAA,aAAA;GAC5B,CAAC;GACD,MAAM,aAAa,KAAK;GACxB,MAAM,iBAAiB,eAAe,KAAA,IAAY,KAAA,IAAY,eAAe,UAAU;GACvF,MAAM,aACJ,KAAK,UACL,gBACA,OAAO,EAAE,OAAO,MAAM,eAAe;IACnC,MAAM,SAAS,KAAK,EAAE,SAAS,IAAI,KAAK,IAAI,CAAC,KAAK,OAAiB;IACnE,MAAM,YAAY,MAAM,iBAAiB,QAAQ,KAAK;IACtD,MAAM,WAAW,MAAM,QAAQ,IAC7B,UAAU,KAAK,YAAY,SAAS,WAAW,SAAS,KAAK,CAAC,CAChE;IACA,KAAK,MAAM,WAAW,UAAU;KAC9B,MAAM,IAAI,KAAK,IAAI,QAAQ,MAAM,eAAe,QAAQ,SAAS;KACjE,MAAM,KAAK,QAAQ,iBAAiB,GAAG,QAAQ,QAAQ;KACvD,MAAM,UAAU,QAAQ,QAAQ,YAAY;KAC5C,IAAI,QAAQ,gBAAgB,KAAA,GAC1B,MAAM,wBAAwB,QAAQ,YAAY,YAAY;KAEhE,MAAM,cAAc,QAAQ,WAAW;KACvC,MAAM,YAAY,QAAQ,eAAe,WAAW;KACpD,IAAI,QAAQ,cAAc,MACxB,MAAM,iBAAiB,QAAQ,WAAW;KAE5C,IAAI,QAAQ,WAAW,KAAA,KAAa,QAAQ,UAAU,KAAA,GAAW;MAC/D,MAAM,aAAa,QAAQ,OAAO,YAAY;MAC9C,MAAM,YAAY,QAAQ,MAAM,YAAY;KAC9C;IACF;GACF,GACA,UACF;EACF,SAAS,OAAO;GACd,QAAQ,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG;GAChF,QAAQ,KAAK,CAAC;EAChB;CACF;AACF,CAAC"}