{"version":3,"file":"fiat-command.mjs","names":[],"sources":["../../../src/commands/fiat-command.ts"],"sourcesContent":["/**\n * Fiat commands — view fiat rail status, providers, and recent transfers.\n *\n * /fiat — Show configured fiat providers and recent transfer summary.\n */\n\nimport { getFiatService } from '../services/fiat-service.js';\nimport { getWalletState } from '../services/walletconnect-service.js';\n\nexport const fiatCommand = {\n  name: 'fiat',\n  description: 'Show fiat rail status: configured providers, linked bank accounts, and recent transfers',\n  acceptsArgs: false,\n  requireAuth: false,\n  handler: async () => {\n    const fiat = getFiatService();\n    const providers = fiat.getConfiguredProviders();\n    const state = getWalletState();\n\n    const sections: string[] = [];\n\n    // Provider status\n    if (providers.length === 0) {\n      sections.push(\n        '**Fiat Providers:** None configured\\n' +\n        'Set `BRIDGE_API_KEY` or `MOONPAY_API_KEY` to enable fiat rails.'\n      );\n    } else {\n      sections.push(`**Fiat Providers:** ${providers.join(', ')}`);\n    }\n\n    // Env var hints\n    const envHints: string[] = [];\n    if (process.env.BRIDGE_API_KEY) envHints.push('`BRIDGE_API_KEY` set (Bridge.xyz)');\n    if (process.env.MOONPAY_API_KEY) envHints.push('`MOONPAY_API_KEY` set (MoonPay)');\n    if (process.env.FIAT_CURRENCY) envHints.push(`Default currency: \\`${process.env.FIAT_CURRENCY}\\``);\n\n    if (envHints.length > 0) {\n      sections.push(`**Configuration:**\\n${envHints.map(h => `  ${h}`).join('\\n')}`);\n    }\n\n    // Bank accounts (if available)\n    if (providers.length > 0) {\n      try {\n        const accounts = await fiat.listBankAccounts();\n        if (accounts.length > 0) {\n          const accountLines = accounts.map(a =>\n            `  ${a.label} (${a.maskedNumber}) — ${a.bankName} [${a.currency}] via ${a.provider}`\n          );\n          sections.push(`**Linked Accounts:** ${accounts.length}\\n${accountLines.join('\\n')}`);\n        } else {\n          sections.push('**Linked Accounts:** None');\n        }\n      } catch {\n        sections.push('**Linked Accounts:** Unable to fetch');\n      }\n    }\n\n    // Recent transfers\n    const userId = state.address ?? undefined;\n    const transfers = fiat.listTransfers(userId);\n    if (transfers.length > 0) {\n      // Sort by most recent\n      transfers.sort((a, b) => b.createdAt - a.createdAt);\n      const recent = transfers.slice(0, 5);\n      const lines = recent.map(t => {\n        const dir = t.direction === 'off_ramp' ? 'SELL' : 'BUY';\n        const date = new Date(t.createdAt).toLocaleDateString();\n        return `  ${dir} ${t.cryptoAmount} ${t.cryptoToken} for ${t.fiatAmount} ${t.fiatCurrency} — ${t.status} (${date}) via ${t.provider}`;\n      });\n      sections.push(`**Recent Transfers:** ${transfers.length} total\\n${lines.join('\\n')}`);\n    } else {\n      sections.push('**Recent Transfers:** None');\n    }\n\n    sections.push('\\nUse the `fiat_payment` tool to get quotes, execute transfers, or check status.');\n\n    return { text: sections.join('\\n\\n') };\n  },\n};\n"],"mappings":";;;;;;;;AASA,MAAa,cAAc;CACzB,MAAM;CACN,aAAa;CACb,aAAa;CACb,aAAa;CACb,SAAS,YAAY;EACnB,MAAM,OAAO,gBAAgB;EAC7B,MAAM,YAAY,KAAK,wBAAwB;EAC/C,MAAM,QAAQ,gBAAgB;EAE9B,MAAM,WAAqB,EAAE;AAG7B,MAAI,UAAU,WAAW,EACvB,UAAS,KACP,uGAED;MAED,UAAS,KAAK,uBAAuB,UAAU,KAAK,KAAK,GAAG;EAI9D,MAAM,WAAqB,EAAE;AAC7B,MAAI,QAAQ,IAAI,eAAgB,UAAS,KAAK,oCAAoC;AAClF,MAAI,QAAQ,IAAI,gBAAiB,UAAS,KAAK,kCAAkC;AACjF,MAAI,QAAQ,IAAI,cAAe,UAAS,KAAK,uBAAuB,QAAQ,IAAI,cAAc,IAAI;AAElG,MAAI,SAAS,SAAS,EACpB,UAAS,KAAK,uBAAuB,SAAS,KAAI,MAAK,KAAK,IAAI,CAAC,KAAK,KAAK,GAAG;AAIhF,MAAI,UAAU,SAAS,EACrB,KAAI;GACF,MAAM,WAAW,MAAM,KAAK,kBAAkB;AAC9C,OAAI,SAAS,SAAS,GAAG;IACvB,MAAM,eAAe,SAAS,KAAI,MAChC,KAAK,EAAE,MAAM,IAAI,EAAE,aAAa,MAAM,EAAE,SAAS,IAAI,EAAE,SAAS,QAAQ,EAAE,WAC3E;AACD,aAAS,KAAK,wBAAwB,SAAS,OAAO,IAAI,aAAa,KAAK,KAAK,GAAG;SAEpF,UAAS,KAAK,4BAA4B;UAEtC;AACN,YAAS,KAAK,uCAAuC;;EAKzD,MAAM,SAAS,MAAM,WAAW,KAAA;EAChC,MAAM,YAAY,KAAK,cAAc,OAAO;AAC5C,MAAI,UAAU,SAAS,GAAG;AAExB,aAAU,MAAM,GAAG,MAAM,EAAE,YAAY,EAAE,UAAU;GAEnD,MAAM,QADS,UAAU,MAAM,GAAG,EAAE,CACf,KAAI,MAAK;IAC5B,MAAM,MAAM,EAAE,cAAc,aAAa,SAAS;IAClD,MAAM,OAAO,IAAI,KAAK,EAAE,UAAU,CAAC,oBAAoB;AACvD,WAAO,KAAK,IAAI,GAAG,EAAE,aAAa,GAAG,EAAE,YAAY,OAAO,EAAE,WAAW,GAAG,EAAE,aAAa,KAAK,EAAE,OAAO,IAAI,KAAK,QAAQ,EAAE;KAC1H;AACF,YAAS,KAAK,yBAAyB,UAAU,OAAO,UAAU,MAAM,KAAK,KAAK,GAAG;QAErF,UAAS,KAAK,6BAA6B;AAG7C,WAAS,KAAK,mFAAmF;AAEjG,SAAO,EAAE,MAAM,SAAS,KAAK,OAAO,EAAE;;CAEzC"}