facinet 2.4.1 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,28 +21,28 @@ const CHAINS = {
21
21
  rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',
22
22
  usdcAddress: '0x5425890298aed601595a70AB815c96711a31Bc65',
23
23
  chainId: 43113,
24
- apiUrl: 'https://x402-avalanche-chi.vercel.app',
24
+ apiUrl: 'https://facinet.vercel.app',
25
25
  },
26
26
  ethereum: {
27
27
  name: 'Ethereum Sepolia',
28
28
  rpcUrl: 'https://ethereum-sepolia-rpc.publicnode.com',
29
29
  usdcAddress: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',
30
30
  chainId: 11155111,
31
- apiUrl: 'https://x402-ethereum-chi.vercel.app',
31
+ apiUrl: 'https://facinet.vercel.app',
32
32
  },
33
33
  base: {
34
34
  name: 'Base Sepolia',
35
35
  rpcUrl: 'https://sepolia.base.org',
36
36
  usdcAddress: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
37
37
  chainId: 84532,
38
- apiUrl: 'https://x402-base-chi.vercel.app',
38
+ apiUrl: 'https://facinet.vercel.app',
39
39
  },
40
40
  polygon: {
41
41
  name: 'Polygon Amoy',
42
42
  rpcUrl: 'https://rpc-amoy.polygon.technology',
43
43
  usdcAddress: '0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582',
44
44
  chainId: 80002,
45
- apiUrl: 'https://x402-polygon-chi.vercel.app',
45
+ apiUrl: 'https://facinet.vercel.app',
46
46
  },
47
47
  };
48
48
  async function payCommand(options) {
@@ -93,8 +93,8 @@ async function payCommand(options) {
93
93
  }
94
94
  let spinner = (0, ora_1.default)('Selecting random facilitator...').start();
95
95
  try {
96
- // Use network-specific API URL
97
- const apiUrl = config.apiUrl || chain.apiUrl || 'https://x402-avalanche-chi.vercel.app';
96
+ // Use unified API URL
97
+ const apiUrl = config.apiUrl || chain.apiUrl || 'https://facinet.vercel.app';
98
98
  const facilitator = await (0, api_1.selectRandomFacilitator)(apiUrl, chain.chainId);
99
99
  spinner.succeed(`Selected facilitator: ${chalk_1.default.green(facilitator.name || facilitator.id)}`);
100
100
  spinner = (0, ora_1.default)('Preparing transaction...').start();
@@ -1 +1 @@
1
- {"version":3,"file":"pay.js","sourceRoot":"","sources":["../../src/commands/pay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pay.js","sourceRoot":"","sources":["../../src/commands/pay.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -160,28 +160,28 @@ var CHAINS = {
160
160
  rpcUrl: "https://api.avax-test.network/ext/bc/C/rpc",
161
161
  usdcAddress: "0x5425890298aed601595a70AB815c96711a31Bc65",
162
162
  chainId: 43113,
163
- apiUrl: "https://x402-avalanche-chi.vercel.app"
163
+ apiUrl: "https://facinet.vercel.app"
164
164
  },
165
165
  ethereum: {
166
166
  name: "Ethereum Sepolia",
167
167
  rpcUrl: "https://ethereum-sepolia-rpc.publicnode.com",
168
168
  usdcAddress: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
169
169
  chainId: 11155111,
170
- apiUrl: "https://x402-ethereum-chi.vercel.app"
170
+ apiUrl: "https://facinet.vercel.app"
171
171
  },
172
172
  base: {
173
173
  name: "Base Sepolia",
174
174
  rpcUrl: "https://sepolia.base.org",
175
175
  usdcAddress: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
176
176
  chainId: 84532,
177
- apiUrl: "https://x402-base-chi.vercel.app"
177
+ apiUrl: "https://facinet.vercel.app"
178
178
  },
179
179
  polygon: {
180
180
  name: "Polygon Amoy",
181
181
  rpcUrl: "https://rpc-amoy.polygon.technology",
182
182
  usdcAddress: "0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582",
183
183
  chainId: 80002,
184
- apiUrl: "https://x402-polygon-chi.vercel.app"
184
+ apiUrl: "https://facinet.vercel.app"
185
185
  }
186
186
  };
187
187
  async function payCommand(options) {
@@ -234,7 +234,7 @@ async function payCommand(options) {
234
234
  }
235
235
  let spinner = (0, import_ora.default)("Selecting random facilitator...").start();
236
236
  try {
237
- const apiUrl = config.apiUrl || chain.apiUrl || "https://x402-avalanche-chi.vercel.app";
237
+ const apiUrl = config.apiUrl || chain.apiUrl || "https://facinet.vercel.app";
238
238
  const facilitator2 = await selectRandomFacilitator(apiUrl, chain.chainId);
239
239
  spinner.succeed(`Selected facilitator: ${import_chalk.default.green(facilitator2.name || facilitator2.id)}`);
240
240
  spinner = (0, import_ora.default)("Preparing transaction...").start();
@@ -618,29 +618,29 @@ console.log(
618
618
  \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D
619
619
  `)
620
620
  );
621
- program.name("facinet").description("CLI tool for x402 Facilitator Network").version("2.4.0");
621
+ program.name("facinet").description("CLI tool for x402 Facilitator Network").version("2.4.1");
622
622
  program.command("connect").description("Connect your wallet to Facinet").action(connectCommand);
623
623
  program.command("pay").description("Make a payment via x402 facilitator network").option("-a, --amount <amount>", "Payment amount in USDC", "1").option("-t, --to <address>", "Recipient address").option("-c, --chain <chain>", "Blockchain network (avalanche, ethereum, base, polygon)", "avalanche").option("-n, --network <url>", "Custom network URL").action(payCommand);
624
624
  var facilitator = program.command("facilitator").alias("fac").description("Manage facilitators");
625
625
  facilitator.command("create").description("Create a new facilitator").option("-n, --name <name>", "Facilitator name").option("-r, --recipient <address>", "Payment recipient address").option(
626
626
  "-u, --url <url>",
627
627
  "API URL",
628
- "https://x402-avalanche-chi.vercel.app"
628
+ "https://facinet.vercel.app"
629
629
  ).action(facilitatorCommand.create);
630
630
  facilitator.command("list").description("List all active facilitators").option(
631
631
  "-u, --url <url>",
632
632
  "API URL",
633
- "https://x402-avalanche-chi.vercel.app"
633
+ "https://facinet.vercel.app"
634
634
  ).action(facilitatorCommand.list);
635
635
  facilitator.command("status <id>").description("Check facilitator status").option(
636
636
  "-u, --url <url>",
637
637
  "API URL",
638
- "https://x402-avalanche-chi.vercel.app"
638
+ "https://facinet.vercel.app"
639
639
  ).action(facilitatorCommand.status);
640
640
  facilitator.command("balance <id>").description("Check facilitator gas balance").option(
641
641
  "-u, --url <url>",
642
642
  "API URL",
643
- "https://x402-avalanche-chi.vercel.app"
643
+ "https://facinet.vercel.app"
644
644
  ).action(facilitatorCommand.balance);
645
645
  program.on("--help", () => {
646
646
  console.log("");
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/commands/pay.ts", "../src/utils/config.ts", "../src/utils/api.ts", "../src/commands/facilitator.ts", "../src/commands/connect.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n/**\n * Facinet CLI - x402 Facilitator Network\n *\n * Command-line tool for making payments and managing facilitators\n * on the x402 payment network.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { payCommand } from './commands/pay';\nimport { facilitatorCommand } from './commands/facilitator';\nimport { connectCommand } from './commands/connect';\n\nconst program = new Command();\n\n// ASCII Art Banner\nconsole.log(\n chalk.cyan(`\n\\u2554\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2557\n\\u2551 \\u2551\n\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2557 \\u2551\n\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255D\\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2557\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255D\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2551\n\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2551\n\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u255D \\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2551\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2551\\u255A\\u2588\\u2588\\u2557\\u2551\n\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u255A\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2551 \\u255A\\u2588\\u2588\\u2551\n\\u2551 \\u255A\\u2550\\u255D \\u255A\\u2550\\u255D \\u255A\\u2550\\u255D \\u255A\\u2550\\u2550\\u2550\\u2550\\u2550\\u255D\\u255A\\u2550\\u255D\\u255A\\u2550\\u255D \\u255A\\u2550\\u2551\n\\u2551 \\u2551\n\\u2551 x402 Facilitator Network CLI \\u2551\n\\u2551 \\u2551\n\\u255A\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255D\n`)\n);\n\nprogram\n .name('facinet')\n .description('CLI tool for x402 Facilitator Network')\n .version('2.4.0');\n\n// Connect wallet command\nprogram\n .command('connect')\n .description('Connect your wallet to Facinet')\n .action(connectCommand);\n\n// Pay command\nprogram\n .command('pay')\n .description('Make a payment via x402 facilitator network')\n .option('-a, --amount <amount>', 'Payment amount in USDC', '1')\n .option('-t, --to <address>', 'Recipient address')\n .option('-c, --chain <chain>', 'Blockchain network (avalanche, ethereum, base, polygon)', 'avalanche')\n .option('-n, --network <url>', 'Custom network URL')\n .action(payCommand);\n\n// Facilitator commands\nconst facilitator = program\n .command('facilitator')\n .alias('fac')\n .description('Manage facilitators');\n\nfacilitator\n .command('create')\n .description('Create a new facilitator')\n .option('-n, --name <name>', 'Facilitator name')\n .option('-r, --recipient <address>', 'Payment recipient address')\n .option(\n '-u, --url <url>',\n 'API URL',\n 'https://x402-avalanche-chi.vercel.app'\n )\n .action(facilitatorCommand.create);\n\nfacilitator\n .command('list')\n .description('List all active facilitators')\n .option(\n '-u, --url <url>',\n 'API URL',\n 'https://x402-avalanche-chi.vercel.app'\n )\n .action(facilitatorCommand.list);\n\nfacilitator\n .command('status <id>')\n .description('Check facilitator status')\n .option(\n '-u, --url <url>',\n 'API URL',\n 'https://x402-avalanche-chi.vercel.app'\n )\n .action(facilitatorCommand.status);\n\nfacilitator\n .command('balance <id>')\n .description('Check facilitator gas balance')\n .option(\n '-u, --url <url>',\n 'API URL',\n 'https://x402-avalanche-chi.vercel.app'\n )\n .action(facilitatorCommand.balance);\n\n// Help command\nprogram.on('--help', () => {\n console.log('');\n console.log(chalk.cyan('Examples:'));\n console.log('');\n console.log(' $ facinet connect');\n console.log(' $ facinet pay --amount 1 --to 0x123... --chain base');\n console.log(' $ facinet facilitator create --name \"MyNode\"');\n console.log(' $ facinet facilitator list');\n console.log(' $ facinet facilitator status fac_xyz123');\n console.log('');\n console.log(chalk.cyan('Supported Chains:'));\n console.log(' avalanche - Avalanche Fuji (Testnet)');\n console.log(' ethereum - Ethereum Sepolia (Testnet)');\n console.log(' base - Base Sepolia (Testnet)');\n console.log(' polygon - Polygon Amoy (Testnet)');\n console.log('');\n});\n\nprogram.parse(process.argv);\n\nif (!process.argv.slice(2).length) {\n program.outputHelp();\n}\n", "/**\n * Pay Command\n *\n * Make a payment via x402 facilitator network\n */\n\nimport inquirer from 'inquirer';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { Wallet, JsonRpcProvider } from 'ethers';\nimport { getConfig } from '../utils/config';\nimport { selectRandomFacilitator } from '../utils/api';\n\nconst CHAINS: Record<string, any> = {\n avalanche: {\n name: 'Avalanche Fuji',\n rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',\n usdcAddress: '0x5425890298aed601595a70AB815c96711a31Bc65',\n chainId: 43113,\n apiUrl: 'https://x402-avalanche-chi.vercel.app',\n },\n ethereum: {\n name: 'Ethereum Sepolia',\n rpcUrl: 'https://ethereum-sepolia-rpc.publicnode.com',\n usdcAddress: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n chainId: 11155111,\n apiUrl: 'https://x402-ethereum-chi.vercel.app',\n },\n base: {\n name: 'Base Sepolia',\n rpcUrl: 'https://sepolia.base.org',\n usdcAddress: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n chainId: 84532,\n apiUrl: 'https://x402-base-chi.vercel.app',\n },\n polygon: {\n name: 'Polygon Amoy',\n rpcUrl: 'https://rpc-amoy.polygon.technology',\n usdcAddress: '0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582',\n chainId: 80002,\n apiUrl: 'https://x402-polygon-chi.vercel.app',\n },\n};\n\nexport async function payCommand(options: any) {\n console.log(chalk.cyan('\\n\\uD83D\\uDCB3 Make Payment via x402 Network\\n'));\n\n const config = getConfig();\n if (!config.privateKey) {\n console.log(chalk.red('\\u274C No wallet connected. Run `facinet connect` first.'));\n process.exit(1);\n }\n\n let recipient = options.to;\n if (!recipient) {\n const answer = await inquirer.prompt([\n {\n type: 'input',\n name: 'recipient',\n message: 'Recipient address:',\n validate: (input: string) => {\n if (!input.match(/^0x[a-fA-F0-9]{40}$/)) {\n return 'Invalid Ethereum address';\n }\n return true;\n },\n },\n ]);\n recipient = answer.recipient;\n }\n\n const chain = CHAINS[options.chain];\n if (!chain) {\n console.log(chalk.red(`\\u274C Unsupported chain: ${options.chain}. Supported: ${Object.keys(CHAINS).join(', ')}`));\n process.exit(1);\n }\n\n console.log(chalk.gray(`\\n\\uD83D\\uDCCA Payment Details:`));\n console.log(chalk.gray(` Amount: ${options.amount} USDC`));\n console.log(chalk.gray(` To: ${recipient}`));\n console.log(chalk.gray(` Chain: ${chain.name}`));\n console.log(chalk.gray(` Your Address: ${config.address}\\n`));\n\n const { confirm } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirm',\n message: 'Proceed with payment?',\n default: true,\n },\n ]);\n\n if (!confirm) {\n console.log(chalk.yellow('Payment cancelled.'));\n process.exit(0);\n }\n\n let spinner = ora('Selecting random facilitator...').start();\n\n try {\n // Use network-specific API URL\n const apiUrl = config.apiUrl || chain.apiUrl || 'https://x402-avalanche-chi.vercel.app';\n const facilitator = await selectRandomFacilitator(apiUrl, chain.chainId);\n spinner.succeed(`Selected facilitator: ${chalk.green(facilitator.name || facilitator.id)}`);\n\n spinner = ora('Preparing transaction...').start();\n const wallet = new Wallet(config.privateKey);\n const provider = new JsonRpcProvider(chain.rpcUrl);\n const connectedWallet = wallet.connect(provider);\n\n const amount = BigInt(parseFloat(options.amount) * 1000000);\n const validAfter = Math.floor(Date.now() / 1000) - 60;\n const validBefore = validAfter + 3600;\n const nonce =\n '0x' +\n Array.from({ length: 64 }, () =>\n Math.floor(Math.random() * 16).toString(16)\n ).join('');\n\n const domain = {\n name: 'USD Coin',\n version: '2',\n chainId: chain.chainId,\n verifyingContract: chain.usdcAddress,\n };\n\n const types = {\n TransferWithAuthorization: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'validAfter', type: 'uint256' },\n { name: 'validBefore', type: 'uint256' },\n { name: 'nonce', type: 'bytes32' },\n ],\n };\n\n const value = {\n from: wallet.address,\n to: recipient,\n value: amount,\n validAfter,\n validBefore,\n nonce,\n };\n\n spinner.text = 'Signing authorization...';\n const signature = await connectedWallet.signTypedData(domain, types, value);\n spinner.succeed('Authorization signed!');\n\n spinner = ora('Submitting to facilitator...').start();\n\n const paymentPayload = {\n signature,\n authorization: {\n from: wallet.address,\n to: recipient,\n value: amount.toString(),\n validAfter: validAfter.toString(),\n validBefore: validBefore.toString(),\n nonce,\n },\n };\n\n const axios = require('axios');\n // Reuse the apiUrl variable defined above\n const response = await axios.post(`${apiUrl}/api/x402/settle-custom`, {\n facilitatorId: facilitator.id,\n paymentPayload,\n });\n\n if (!response.data.success) {\n throw new Error(response.data.error || 'Payment failed');\n }\n\n spinner.succeed('Payment submitted!');\n\n const txHash = response.data.txHash;\n console.log(chalk.green('\\n\\u2705 Payment processed successfully!'));\n console.log(chalk.gray(`\\n\\uD83D\\uDCC4 Payment Details:`));\n console.log(chalk.gray(` Facilitator: ${facilitator.name || facilitator.id}`));\n console.log(chalk.gray(` Facilitator ID: ${facilitator.id}`));\n console.log(chalk.gray(` Amount: ${options.amount} USDC`));\n console.log(chalk.gray(` Recipient: ${recipient}`));\n console.log(chalk.gray(` Chain: ${chain.name} (Chain ID: ${chain.chainId})`));\n console.log(chalk.gray(` Transaction: ${txHash}\\n`));\n\n console.log(chalk.cyan(`\\uD83D\\uDD17 View on explorer: ${chain.name.includes('Avalanche')\n ? `https://testnet.snowtrace.io/tx/${txHash}`\n : chain.name.includes('Base')\n ? `https://sepolia.basescan.org/tx/${txHash}`\n : chain.name.includes('Polygon')\n ? `https://amoy.polygonscan.com/tx/${txHash}`\n : `https://sepolia.etherscan.io/tx/${txHash}`\n }\\n`));\n } catch (error: any) {\n spinner.fail('Payment failed');\n console.log(chalk.red(`\\n\\u274C Error: ${error.message}\\n`));\n process.exit(1);\n }\n}\n", "/**\n * Configuration Management\n *\n * Save and load user configuration\n */\n\nimport fs from 'fs';\nimport path from 'path';\nimport os from 'os';\n\nconst CONFIG_DIR = path.join(os.homedir(), '.facinet');\nconst CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');\n\n/**\n * Get configuration\n */\nexport function getConfig(): Record<string, any> {\n try {\n if (!fs.existsSync(CONFIG_FILE)) {\n return {};\n }\n const data = fs.readFileSync(CONFIG_FILE, 'utf8');\n return JSON.parse(data);\n } catch (error) {\n return {};\n }\n}\n\n/**\n * Save configuration\n */\nexport function saveConfig(config: Record<string, any>): void {\n try {\n if (!fs.existsSync(CONFIG_DIR)) {\n fs.mkdirSync(CONFIG_DIR, { recursive: true });\n }\n const existingConfig = getConfig();\n const newConfig = { ...existingConfig, ...config };\n fs.writeFileSync(CONFIG_FILE, JSON.stringify(newConfig, null, 2), 'utf8');\n } catch (error: any) {\n throw new Error(`Failed to save configuration: ${error.message}`);\n }\n}\n\n/**\n * Clear configuration\n */\nexport function clearConfig(): void {\n try {\n if (fs.existsSync(CONFIG_FILE)) {\n fs.unlinkSync(CONFIG_FILE);\n }\n } catch (error: any) {\n throw new Error(`Failed to clear configuration: ${error.message}`);\n }\n}\n", "/**\n * API Client\n *\n * Interact with x402 backend APIs\n */\n\nimport axios from 'axios';\n\n/**\n * Get all active facilitators\n * @param apiUrl - API URL for the facilitator network\n * @param chainId - Optional chain ID to filter facilitators by network\n */\nexport async function listFacilitators(apiUrl: string, chainId?: number) {\n try {\n const response = await axios.get(`${apiUrl}/api/facilitator/list`, {\n timeout: 10000,\n headers: {\n 'User-Agent': 'Facinet-CLI/2.3.0',\n },\n });\n\n if (response.data.success && Array.isArray(response.data.facilitators)) {\n return response.data.facilitators.filter((f: any) => {\n // Must be active\n if (f.status !== 'active') {\n return false;\n }\n \n // If chainId is provided, filter by it\n if (chainId !== undefined && f.chainId !== undefined) {\n return f.chainId === chainId;\n }\n \n // If facilitator has network property, it should match (handled by SDK)\n return true;\n });\n }\n return [];\n } catch (error: any) {\n throw new Error(\n `Failed to fetch facilitators from ${apiUrl}: ${error.message || error.code || 'Unknown error'}`\n );\n }\n}\n\n/**\n * Select a random active facilitator\n * @param apiUrl - API URL for the facilitator network\n * @param chainId - Optional chain ID to filter facilitators by network\n */\nexport async function selectRandomFacilitator(apiUrl: string, chainId?: number) {\n const facilitators = await listFacilitators(apiUrl, chainId);\n\n if (facilitators.length === 0) {\n const networkInfo = chainId ? ` (Chain ID: ${chainId})` : '';\n throw new Error(\n `No active facilitators available${networkInfo}. API URL: ${apiUrl}`\n );\n }\n\n const randomIndex = Math.floor(Math.random() * facilitators.length);\n const facilitator = facilitators[randomIndex];\n \n // Ensure facilitator has a name\n if (!facilitator.name) {\n facilitator.name = `Facilitator ${facilitator.id?.slice(0, 8) || 'Unknown'}`;\n }\n \n return facilitator;\n}\n\n/**\n * Get facilitator by ID\n */\nexport async function getFacilitatorById(apiUrl: string, id: string) {\n try {\n const response = await axios.get(`${apiUrl}/api/facilitator/list`);\n if (response.data.success) {\n const facilitator = response.data.facilitators.find((f: any) => f.id === id);\n if (!facilitator) {\n throw new Error('Facilitator not found');\n }\n return facilitator;\n }\n throw new Error('Failed to fetch facilitator');\n } catch (error: any) {\n throw new Error(`Failed to get facilitator: ${error.message}`);\n }\n}\n\n/**\n * Get facilitator status\n */\nexport async function getFacilitatorStatus(apiUrl: string, id: string) {\n return getFacilitatorById(apiUrl, id);\n}\n\n/**\n * Get facilitator balance\n */\nexport async function getFacilitatorBalance(apiUrl: string, id: string) {\n try {\n const response = await axios.post(`${apiUrl}/api/facilitator/balance`, {\n facilitatorId: id,\n });\n\n if (response.data.success) {\n return {\n name: response.data.name,\n wallet: response.data.wallet,\n balance: response.data.balance,\n status: response.data.status,\n };\n }\n throw new Error('Failed to fetch balance');\n } catch (error: any) {\n throw new Error(`Failed to get balance: ${error.message}`);\n }\n}\n\n/**\n * Create a new facilitator\n */\nexport async function createFacilitator(apiUrl: string, payload: any) {\n try {\n throw new Error(\n 'Facilitator creation requires payment flow. Please use the web interface at ' +\n apiUrl\n );\n } catch (error: any) {\n throw new Error(`Failed to create facilitator: ${error.message}`);\n }\n}\n\n/**\n * Submit payment to facilitator\n */\nexport async function submitPayment(\n apiUrl: string,\n facilitatorId: string,\n paymentPayload: any\n) {\n try {\n const response = await axios.post(`${apiUrl}/api/x402/settle-custom`, {\n facilitatorId,\n paymentPayload,\n });\n\n if (response.data.success) {\n return {\n txHash: response.data.txHash,\n facilitatorWallet: response.data.facilitatorWallet,\n facilitatorName: response.data.facilitatorName,\n };\n }\n throw new Error('Payment submission failed');\n } catch (error: any) {\n throw new Error(`Failed to submit payment: ${error.message}`);\n }\n}\n", "/**\n * Facilitator Commands\n *\n * Create and manage facilitators\n */\n\nimport inquirer from 'inquirer';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { Wallet } from 'ethers';\nimport { getConfig } from '../utils/config';\nimport {\n listFacilitators,\n createFacilitator,\n getFacilitatorStatus,\n getFacilitatorBalance,\n} from '../utils/api';\n\n/**\n * Create a new facilitator\n */\nasync function create(options: any) {\n console.log(chalk.cyan('\\n\\uD83D\\uDE80 Create New Facilitator\\n'));\n\n const config = getConfig();\n if (!config.privateKey) {\n console.log(chalk.red('\\u274C No wallet connected. Run `facinet connect` first.'));\n process.exit(1);\n }\n\n const answers = await inquirer.prompt([\n {\n type: 'input',\n name: 'name',\n message: 'Facilitator name:',\n when: !options.name,\n validate: (input: string) => {\n if (input.length < 3 || input.length > 50) {\n return 'Name must be between 3 and 50 characters';\n }\n return true;\n },\n },\n {\n type: 'input',\n name: 'recipient',\n message: 'Payment recipient address:',\n when: !options.recipient,\n default: config.address,\n validate: (input: string) => {\n if (!input.match(/^0x[a-fA-F0-9]{40}$/)) {\n return 'Invalid Ethereum address';\n }\n return true;\n },\n },\n ]);\n\n const name = options.name || answers.name;\n const recipient = options.recipient || answers.recipient;\n\n console.log(chalk.gray(`\\n\\uD83D\\uDCCB Facilitator Details:`));\n console.log(chalk.gray(` Name: ${name}`));\n console.log(chalk.gray(` Recipient: ${recipient}`));\n console.log(chalk.gray(` Creator: ${config.address}\\n`));\n\n const { confirm } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirm',\n message: 'Create facilitator? (Requires 1 USDC registration fee)',\n default: true,\n },\n ]);\n\n if (!confirm) {\n console.log(chalk.yellow('Cancelled.'));\n process.exit(0);\n }\n\n const spinner = ora('Creating facilitator...').start();\n\n try {\n const wallet = new Wallet(config.privateKey);\n const facilitatorWallet = Wallet.createRandom();\n\n spinner.text = 'Registering facilitator...';\n\n // Note: createFacilitator always throws an error directing users to web interface\n // This is intentional - facilitator creation requires payment flow\n await createFacilitator(options.url, {\n name,\n facilitatorWallet: facilitatorWallet.address,\n facilitatorPrivateKey: facilitatorWallet.privateKey,\n paymentRecipient: recipient,\n createdBy: wallet.address,\n });\n\n // This code won't be reached since createFacilitator throws\n spinner.succeed('Facilitator created!');\n\n console.log(chalk.green('\\n\\u2705 Facilitator created successfully!'));\n console.log(chalk.gray(`\\n\\uD83D\\uDCC4 Details:`));\n console.log(chalk.gray(` Name: ${name}`));\n console.log(chalk.gray(` Wallet: ${facilitatorWallet.address}`));\n console.log(chalk.yellow(`\\n\\u26A0\\uFE0F IMPORTANT: Save facilitator wallet private key!`));\n console.log(chalk.gray(` Private Key: ${facilitatorWallet.privateKey}\\n`));\n\n console.log(chalk.cyan('\\uD83D\\uDCA1 Next steps:'));\n console.log(chalk.gray(` 1. Fund facilitator wallet with gas token`));\n console.log(chalk.gray(` 2. Use the web interface to complete facilitator registration`));\n console.log(chalk.gray(` 3. Check status: facinet facilitator list\\n`));\n } catch (error: any) {\n spinner.fail('Failed to create facilitator');\n console.log(chalk.red(`\\n\\u274C Error: ${error.message}\\n`));\n process.exit(1);\n }\n}\n\n/**\n * List all facilitators\n */\nasync function list(options: any) {\n console.log(chalk.cyan('\\n\\uD83D\\uDCCB Active Facilitators\\n'));\n\n const spinner = ora('Loading facilitators...').start();\n\n try {\n const facilitators = await listFacilitators(options.url);\n spinner.stop();\n\n if (facilitators.length === 0) {\n console.log(chalk.yellow('No active facilitators found.\\n'));\n return;\n }\n\n console.log(chalk.gray(`Found ${facilitators.length} active facilitator(s):\\n`));\n\n facilitators.forEach((fac: any, index: number) => {\n const facilitatorName = fac.name || `Facilitator ${fac.id?.slice(0, 8) || 'Unknown'}`;\n console.log(chalk.cyan(`${index + 1}. ${facilitatorName}`));\n console.log(chalk.gray(` ID: ${fac.id}`));\n console.log(chalk.gray(` Wallet: ${fac.facilitatorWallet}`));\n console.log(\n chalk.gray(` Status: ${getStatusEmoji(fac.status)} ${fac.status.toUpperCase()}`)\n );\n if (fac.network) {\n console.log(chalk.gray(` Network: ${fac.network}`));\n }\n if (fac.chainId) {\n console.log(chalk.gray(` Chain ID: ${fac.chainId}`));\n }\n console.log(chalk.gray(` Payments: ${fac.totalPayments || 0}`));\n console.log(chalk.gray(` Created by: ${fac.createdBy || 'Unknown'}`));\n console.log('');\n });\n } catch (error: any) {\n spinner.fail('Failed to load facilitators');\n console.log(chalk.red(`\\n\\u274C Error: ${error.message}\\n`));\n process.exit(1);\n }\n}\n\n/**\n * Check facilitator status\n */\nasync function status(id: string, options: any) {\n console.log(chalk.cyan(`\\n\\uD83D\\uDCCA Facilitator Status\\n`));\n\n const spinner = ora('Checking status...').start();\n\n try {\n const fac = await getFacilitatorStatus(options.url, id);\n spinner.stop();\n\n console.log(chalk.cyan(`${fac.name}`));\n console.log(chalk.gray(`ID: ${fac.id}\\n`));\n console.log(\n chalk.gray(\n `Status: ${getStatusEmoji(fac.status)} ${chalk.bold(fac.status.toUpperCase())}`\n )\n );\n console.log(chalk.gray(`Wallet: ${fac.facilitatorWallet}`));\n console.log(chalk.gray(`Recipient: ${fac.paymentRecipient}`));\n console.log(chalk.gray(`Total Payments: ${fac.totalPayments}`));\n console.log(chalk.gray(`Gas Balance: ${fac.gasBalance || 'Unknown'}`));\n console.log(chalk.gray(`Created: ${new Date(fac.lastUsed).toLocaleString()}\\n`));\n\n if (fac.status === 'needs_funding') {\n console.log(chalk.yellow('\\u26A0\\uFE0F Facilitator needs gas token for fees'));\n console.log(chalk.gray(` Send gas token to: ${fac.facilitatorWallet}\\n`));\n }\n } catch (error: any) {\n spinner.fail('Failed to get status');\n console.log(chalk.red(`\\n\\u274C Error: ${error.message}\\n`));\n process.exit(1);\n }\n}\n\n/**\n * Check facilitator balance\n */\nasync function balance(id: string, options: any) {\n console.log(chalk.cyan(`\\n\\uD83D\\uDCB0 Facilitator Balance\\n`));\n\n const spinner = ora('Checking balance...').start();\n\n try {\n const result = await getFacilitatorBalance(options.url, id);\n spinner.stop();\n\n console.log(chalk.gray(`Facilitator: ${result.name}`));\n console.log(chalk.gray(`Wallet: ${result.wallet}\\n`));\n console.log(chalk.cyan(`Balance: ${chalk.bold(result.balance)}`));\n console.log(\n chalk.gray(`Status: ${getStatusEmoji(result.status)} ${result.status.toUpperCase()}\\n`)\n );\n\n if (parseFloat(result.balance) < 0.1) {\n console.log(chalk.yellow('\\u26A0\\uFE0F Low balance! Facilitator may become inactive.\\n'));\n }\n } catch (error: any) {\n spinner.fail('Failed to check balance');\n console.log(chalk.red(`\\n\\u274C Error: ${error.message}\\n`));\n process.exit(1);\n }\n}\n\nfunction getStatusEmoji(status: string): string {\n switch (status) {\n case 'active':\n return '\\u2705';\n case 'needs_funding':\n return '\\u26A0\\uFE0F';\n case 'inactive':\n return '\\u274C';\n default:\n return '\\u2753';\n }\n}\n\nexport const facilitatorCommand = {\n create,\n list,\n status,\n balance,\n};\n", "/**\n * Connect Command\n *\n * Connect wallet to Facinet CLI\n */\n\nimport inquirer from 'inquirer';\nimport chalk from 'chalk';\nimport { Wallet } from 'ethers';\nimport { getConfig, saveConfig } from '../utils/config';\nimport ora from 'ora';\n\nexport async function connectCommand() {\n console.log(chalk.cyan('\\n\\uD83D\\uDD17 Connect Wallet to Facinet\\n'));\n\n const { method } = await inquirer.prompt([\n {\n type: 'list',\n name: 'method',\n message: 'How would you like to connect?',\n choices: [\n { name: 'Enter Private Key (for testing)', value: 'privateKey' },\n { name: 'Generate New Wallet', value: 'generate' },\n ],\n },\n ]);\n\n if (method === 'privateKey') {\n const { privateKey } = await inquirer.prompt([\n {\n type: 'password',\n name: 'privateKey',\n message: 'Enter your private key:',\n mask: '*',\n },\n ]);\n\n try {\n const wallet = new Wallet(privateKey);\n saveConfig({ privateKey, address: wallet.address });\n console.log(chalk.green('\\n\\u2705 Wallet connected successfully!'));\n console.log(chalk.gray(`Address: ${wallet.address}`));\n } catch (error) {\n console.log(chalk.red('\\n\\u274C Invalid private key'));\n process.exit(1);\n }\n } else {\n const spinner = ora('Generating new wallet...').start();\n const wallet = Wallet.createRandom();\n spinner.succeed('Wallet generated!');\n\n console.log(chalk.green('\\n\\u2705 New wallet created!'));\n console.log(chalk.yellow('\\n\\u26A0\\uFE0F IMPORTANT: Save your private key securely!'));\n console.log(chalk.gray(`\\nAddress: ${wallet.address}`));\n console.log(chalk.gray(`Private Key: ${wallet.privateKey}`));\n console.log(chalk.gray(`Mnemonic: ${wallet.mnemonic?.phrase}\\n`));\n\n const { confirm } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirm',\n message: 'Have you saved your private key?',\n default: false,\n },\n ]);\n\n if (!confirm) {\n console.log(chalk.red('\\nPlease save your private key before continuing.'));\n process.exit(0);\n }\n\n saveConfig({ privateKey: wallet.privateKey, address: wallet.address });\n console.log(chalk.green('\\u2705 Configuration saved!'));\n }\n\n const config = getConfig();\n console.log(chalk.cyan('\\n\\uD83D\\uDCE1 Network Configuration:'));\n console.log(chalk.gray(`Network: ${config.network || 'avalanche-fuji'}`));\n console.log(chalk.gray(`API URL: ${config.apiUrl || 'http://localhost:3000'}\\n`));\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * Facinet CLI - x402 Facilitator Network\n *\n * Command-line tool for making payments and managing facilitators\n * on the x402 payment network.\n */\n\nimport { Command } from 'commander';\nimport chalk from 'chalk';\nimport { payCommand } from './commands/pay';\nimport { facilitatorCommand } from './commands/facilitator';\nimport { connectCommand } from './commands/connect';\n\nconst program = new Command();\n\n// ASCII Art Banner\nconsole.log(\n chalk.cyan(`\n\\u2554\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2557\n\\u2551 \\u2551\n\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2557 \\u2551\n\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255D\\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2557\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255D\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2551\n\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2551\n\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u255D \\u2588\\u2588\\u2554\\u2550\\u2550\\u2588\\u2588\\u2551\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2551\\u255A\\u2588\\u2588\\u2557\\u2551\n\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u255A\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2551 \\u255A\\u2588\\u2588\\u2551\n\\u2551 \\u255A\\u2550\\u255D \\u255A\\u2550\\u255D \\u255A\\u2550\\u255D \\u255A\\u2550\\u2550\\u2550\\u2550\\u2550\\u255D\\u255A\\u2550\\u255D\\u255A\\u2550\\u255D \\u255A\\u2550\\u2551\n\\u2551 \\u2551\n\\u2551 x402 Facilitator Network CLI \\u2551\n\\u2551 \\u2551\n\\u255A\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255D\n`)\n);\n\nprogram\n .name('facinet')\n .description('CLI tool for x402 Facilitator Network')\n .version('2.4.1');\n\n// Connect wallet command\nprogram\n .command('connect')\n .description('Connect your wallet to Facinet')\n .action(connectCommand);\n\n// Pay command\nprogram\n .command('pay')\n .description('Make a payment via x402 facilitator network')\n .option('-a, --amount <amount>', 'Payment amount in USDC', '1')\n .option('-t, --to <address>', 'Recipient address')\n .option('-c, --chain <chain>', 'Blockchain network (avalanche, ethereum, base, polygon)', 'avalanche')\n .option('-n, --network <url>', 'Custom network URL')\n .action(payCommand);\n\n// Facilitator commands\nconst facilitator = program\n .command('facilitator')\n .alias('fac')\n .description('Manage facilitators');\n\nfacilitator\n .command('create')\n .description('Create a new facilitator')\n .option('-n, --name <name>', 'Facilitator name')\n .option('-r, --recipient <address>', 'Payment recipient address')\n .option(\n '-u, --url <url>',\n 'API URL',\n 'https://facinet.vercel.app'\n )\n .action(facilitatorCommand.create);\n\nfacilitator\n .command('list')\n .description('List all active facilitators')\n .option(\n '-u, --url <url>',\n 'API URL',\n 'https://facinet.vercel.app'\n )\n .action(facilitatorCommand.list);\n\nfacilitator\n .command('status <id>')\n .description('Check facilitator status')\n .option(\n '-u, --url <url>',\n 'API URL',\n 'https://facinet.vercel.app'\n )\n .action(facilitatorCommand.status);\n\nfacilitator\n .command('balance <id>')\n .description('Check facilitator gas balance')\n .option(\n '-u, --url <url>',\n 'API URL',\n 'https://facinet.vercel.app'\n )\n .action(facilitatorCommand.balance);\n\n// Help command\nprogram.on('--help', () => {\n console.log('');\n console.log(chalk.cyan('Examples:'));\n console.log('');\n console.log(' $ facinet connect');\n console.log(' $ facinet pay --amount 1 --to 0x123... --chain base');\n console.log(' $ facinet facilitator create --name \"MyNode\"');\n console.log(' $ facinet facilitator list');\n console.log(' $ facinet facilitator status fac_xyz123');\n console.log('');\n console.log(chalk.cyan('Supported Chains:'));\n console.log(' avalanche - Avalanche Fuji (Testnet)');\n console.log(' ethereum - Ethereum Sepolia (Testnet)');\n console.log(' base - Base Sepolia (Testnet)');\n console.log(' polygon - Polygon Amoy (Testnet)');\n console.log('');\n});\n\nprogram.parse(process.argv);\n\nif (!process.argv.slice(2).length) {\n program.outputHelp();\n}\n", "/**\n * Pay Command\n *\n * Make a payment via x402 facilitator network\n */\n\nimport inquirer from 'inquirer';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { Wallet, JsonRpcProvider } from 'ethers';\nimport { getConfig } from '../utils/config';\nimport { selectRandomFacilitator } from '../utils/api';\n\nconst CHAINS: Record<string, any> = {\n avalanche: {\n name: 'Avalanche Fuji',\n rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',\n usdcAddress: '0x5425890298aed601595a70AB815c96711a31Bc65',\n chainId: 43113,\n apiUrl: 'https://facinet.vercel.app',\n },\n ethereum: {\n name: 'Ethereum Sepolia',\n rpcUrl: 'https://ethereum-sepolia-rpc.publicnode.com',\n usdcAddress: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n chainId: 11155111,\n apiUrl: 'https://facinet.vercel.app',\n },\n base: {\n name: 'Base Sepolia',\n rpcUrl: 'https://sepolia.base.org',\n usdcAddress: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n chainId: 84532,\n apiUrl: 'https://facinet.vercel.app',\n },\n polygon: {\n name: 'Polygon Amoy',\n rpcUrl: 'https://rpc-amoy.polygon.technology',\n usdcAddress: '0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582',\n chainId: 80002,\n apiUrl: 'https://facinet.vercel.app',\n },\n};\n\nexport async function payCommand(options: any) {\n console.log(chalk.cyan('\\n\\uD83D\\uDCB3 Make Payment via x402 Network\\n'));\n\n const config = getConfig();\n if (!config.privateKey) {\n console.log(chalk.red('\\u274C No wallet connected. Run `facinet connect` first.'));\n process.exit(1);\n }\n\n let recipient = options.to;\n if (!recipient) {\n const answer = await inquirer.prompt([\n {\n type: 'input',\n name: 'recipient',\n message: 'Recipient address:',\n validate: (input: string) => {\n if (!input.match(/^0x[a-fA-F0-9]{40}$/)) {\n return 'Invalid Ethereum address';\n }\n return true;\n },\n },\n ]);\n recipient = answer.recipient;\n }\n\n const chain = CHAINS[options.chain];\n if (!chain) {\n console.log(chalk.red(`\\u274C Unsupported chain: ${options.chain}. Supported: ${Object.keys(CHAINS).join(', ')}`));\n process.exit(1);\n }\n\n console.log(chalk.gray(`\\n\\uD83D\\uDCCA Payment Details:`));\n console.log(chalk.gray(` Amount: ${options.amount} USDC`));\n console.log(chalk.gray(` To: ${recipient}`));\n console.log(chalk.gray(` Chain: ${chain.name}`));\n console.log(chalk.gray(` Your Address: ${config.address}\\n`));\n\n const { confirm } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirm',\n message: 'Proceed with payment?',\n default: true,\n },\n ]);\n\n if (!confirm) {\n console.log(chalk.yellow('Payment cancelled.'));\n process.exit(0);\n }\n\n let spinner = ora('Selecting random facilitator...').start();\n\n try {\n // Use unified API URL\n const apiUrl = config.apiUrl || chain.apiUrl || 'https://facinet.vercel.app';\n const facilitator = await selectRandomFacilitator(apiUrl, chain.chainId);\n spinner.succeed(`Selected facilitator: ${chalk.green(facilitator.name || facilitator.id)}`);\n\n spinner = ora('Preparing transaction...').start();\n const wallet = new Wallet(config.privateKey);\n const provider = new JsonRpcProvider(chain.rpcUrl);\n const connectedWallet = wallet.connect(provider);\n\n const amount = BigInt(parseFloat(options.amount) * 1000000);\n const validAfter = Math.floor(Date.now() / 1000) - 60;\n const validBefore = validAfter + 3600;\n const nonce =\n '0x' +\n Array.from({ length: 64 }, () =>\n Math.floor(Math.random() * 16).toString(16)\n ).join('');\n\n const domain = {\n name: 'USD Coin',\n version: '2',\n chainId: chain.chainId,\n verifyingContract: chain.usdcAddress,\n };\n\n const types = {\n TransferWithAuthorization: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'validAfter', type: 'uint256' },\n { name: 'validBefore', type: 'uint256' },\n { name: 'nonce', type: 'bytes32' },\n ],\n };\n\n const value = {\n from: wallet.address,\n to: recipient,\n value: amount,\n validAfter,\n validBefore,\n nonce,\n };\n\n spinner.text = 'Signing authorization...';\n const signature = await connectedWallet.signTypedData(domain, types, value);\n spinner.succeed('Authorization signed!');\n\n spinner = ora('Submitting to facilitator...').start();\n\n const paymentPayload = {\n signature,\n authorization: {\n from: wallet.address,\n to: recipient,\n value: amount.toString(),\n validAfter: validAfter.toString(),\n validBefore: validBefore.toString(),\n nonce,\n },\n };\n\n const axios = require('axios');\n // Reuse the apiUrl variable defined above\n const response = await axios.post(`${apiUrl}/api/x402/settle-custom`, {\n facilitatorId: facilitator.id,\n paymentPayload,\n });\n\n if (!response.data.success) {\n throw new Error(response.data.error || 'Payment failed');\n }\n\n spinner.succeed('Payment submitted!');\n\n const txHash = response.data.txHash;\n console.log(chalk.green('\\n\\u2705 Payment processed successfully!'));\n console.log(chalk.gray(`\\n\\uD83D\\uDCC4 Payment Details:`));\n console.log(chalk.gray(` Facilitator: ${facilitator.name || facilitator.id}`));\n console.log(chalk.gray(` Facilitator ID: ${facilitator.id}`));\n console.log(chalk.gray(` Amount: ${options.amount} USDC`));\n console.log(chalk.gray(` Recipient: ${recipient}`));\n console.log(chalk.gray(` Chain: ${chain.name} (Chain ID: ${chain.chainId})`));\n console.log(chalk.gray(` Transaction: ${txHash}\\n`));\n\n console.log(chalk.cyan(`\\uD83D\\uDD17 View on explorer: ${chain.name.includes('Avalanche')\n ? `https://testnet.snowtrace.io/tx/${txHash}`\n : chain.name.includes('Base')\n ? `https://sepolia.basescan.org/tx/${txHash}`\n : chain.name.includes('Polygon')\n ? `https://amoy.polygonscan.com/tx/${txHash}`\n : `https://sepolia.etherscan.io/tx/${txHash}`\n }\\n`));\n } catch (error: any) {\n spinner.fail('Payment failed');\n console.log(chalk.red(`\\n\\u274C Error: ${error.message}\\n`));\n process.exit(1);\n }\n}\n", "/**\n * Configuration Management\n *\n * Save and load user configuration\n */\n\nimport fs from 'fs';\nimport path from 'path';\nimport os from 'os';\n\nconst CONFIG_DIR = path.join(os.homedir(), '.facinet');\nconst CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');\n\n/**\n * Get configuration\n */\nexport function getConfig(): Record<string, any> {\n try {\n if (!fs.existsSync(CONFIG_FILE)) {\n return {};\n }\n const data = fs.readFileSync(CONFIG_FILE, 'utf8');\n return JSON.parse(data);\n } catch (error) {\n return {};\n }\n}\n\n/**\n * Save configuration\n */\nexport function saveConfig(config: Record<string, any>): void {\n try {\n if (!fs.existsSync(CONFIG_DIR)) {\n fs.mkdirSync(CONFIG_DIR, { recursive: true });\n }\n const existingConfig = getConfig();\n const newConfig = { ...existingConfig, ...config };\n fs.writeFileSync(CONFIG_FILE, JSON.stringify(newConfig, null, 2), 'utf8');\n } catch (error: any) {\n throw new Error(`Failed to save configuration: ${error.message}`);\n }\n}\n\n/**\n * Clear configuration\n */\nexport function clearConfig(): void {\n try {\n if (fs.existsSync(CONFIG_FILE)) {\n fs.unlinkSync(CONFIG_FILE);\n }\n } catch (error: any) {\n throw new Error(`Failed to clear configuration: ${error.message}`);\n }\n}\n", "/**\n * API Client\n *\n * Interact with x402 backend APIs\n */\n\nimport axios from 'axios';\n\n/**\n * Get all active facilitators\n * @param apiUrl - API URL for the facilitator network\n * @param chainId - Optional chain ID to filter facilitators by network\n */\nexport async function listFacilitators(apiUrl: string, chainId?: number) {\n try {\n const response = await axios.get(`${apiUrl}/api/facilitator/list`, {\n timeout: 10000,\n headers: {\n 'User-Agent': 'Facinet-CLI/2.3.0',\n },\n });\n\n if (response.data.success && Array.isArray(response.data.facilitators)) {\n return response.data.facilitators.filter((f: any) => {\n // Must be active\n if (f.status !== 'active') {\n return false;\n }\n \n // If chainId is provided, filter by it\n if (chainId !== undefined && f.chainId !== undefined) {\n return f.chainId === chainId;\n }\n \n // If facilitator has network property, it should match (handled by SDK)\n return true;\n });\n }\n return [];\n } catch (error: any) {\n throw new Error(\n `Failed to fetch facilitators from ${apiUrl}: ${error.message || error.code || 'Unknown error'}`\n );\n }\n}\n\n/**\n * Select a random active facilitator\n * @param apiUrl - API URL for the facilitator network\n * @param chainId - Optional chain ID to filter facilitators by network\n */\nexport async function selectRandomFacilitator(apiUrl: string, chainId?: number) {\n const facilitators = await listFacilitators(apiUrl, chainId);\n\n if (facilitators.length === 0) {\n const networkInfo = chainId ? ` (Chain ID: ${chainId})` : '';\n throw new Error(\n `No active facilitators available${networkInfo}. API URL: ${apiUrl}`\n );\n }\n\n const randomIndex = Math.floor(Math.random() * facilitators.length);\n const facilitator = facilitators[randomIndex];\n \n // Ensure facilitator has a name\n if (!facilitator.name) {\n facilitator.name = `Facilitator ${facilitator.id?.slice(0, 8) || 'Unknown'}`;\n }\n \n return facilitator;\n}\n\n/**\n * Get facilitator by ID\n */\nexport async function getFacilitatorById(apiUrl: string, id: string) {\n try {\n const response = await axios.get(`${apiUrl}/api/facilitator/list`);\n if (response.data.success) {\n const facilitator = response.data.facilitators.find((f: any) => f.id === id);\n if (!facilitator) {\n throw new Error('Facilitator not found');\n }\n return facilitator;\n }\n throw new Error('Failed to fetch facilitator');\n } catch (error: any) {\n throw new Error(`Failed to get facilitator: ${error.message}`);\n }\n}\n\n/**\n * Get facilitator status\n */\nexport async function getFacilitatorStatus(apiUrl: string, id: string) {\n return getFacilitatorById(apiUrl, id);\n}\n\n/**\n * Get facilitator balance\n */\nexport async function getFacilitatorBalance(apiUrl: string, id: string) {\n try {\n const response = await axios.post(`${apiUrl}/api/facilitator/balance`, {\n facilitatorId: id,\n });\n\n if (response.data.success) {\n return {\n name: response.data.name,\n wallet: response.data.wallet,\n balance: response.data.balance,\n status: response.data.status,\n };\n }\n throw new Error('Failed to fetch balance');\n } catch (error: any) {\n throw new Error(`Failed to get balance: ${error.message}`);\n }\n}\n\n/**\n * Create a new facilitator\n */\nexport async function createFacilitator(apiUrl: string, payload: any) {\n try {\n throw new Error(\n 'Facilitator creation requires payment flow. Please use the web interface at ' +\n apiUrl\n );\n } catch (error: any) {\n throw new Error(`Failed to create facilitator: ${error.message}`);\n }\n}\n\n/**\n * Submit payment to facilitator\n */\nexport async function submitPayment(\n apiUrl: string,\n facilitatorId: string,\n paymentPayload: any\n) {\n try {\n const response = await axios.post(`${apiUrl}/api/x402/settle-custom`, {\n facilitatorId,\n paymentPayload,\n });\n\n if (response.data.success) {\n return {\n txHash: response.data.txHash,\n facilitatorWallet: response.data.facilitatorWallet,\n facilitatorName: response.data.facilitatorName,\n };\n }\n throw new Error('Payment submission failed');\n } catch (error: any) {\n throw new Error(`Failed to submit payment: ${error.message}`);\n }\n}\n", "/**\n * Facilitator Commands\n *\n * Create and manage facilitators\n */\n\nimport inquirer from 'inquirer';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { Wallet } from 'ethers';\nimport { getConfig } from '../utils/config';\nimport {\n listFacilitators,\n createFacilitator,\n getFacilitatorStatus,\n getFacilitatorBalance,\n} from '../utils/api';\n\n/**\n * Create a new facilitator\n */\nasync function create(options: any) {\n console.log(chalk.cyan('\\n\\uD83D\\uDE80 Create New Facilitator\\n'));\n\n const config = getConfig();\n if (!config.privateKey) {\n console.log(chalk.red('\\u274C No wallet connected. Run `facinet connect` first.'));\n process.exit(1);\n }\n\n const answers = await inquirer.prompt([\n {\n type: 'input',\n name: 'name',\n message: 'Facilitator name:',\n when: !options.name,\n validate: (input: string) => {\n if (input.length < 3 || input.length > 50) {\n return 'Name must be between 3 and 50 characters';\n }\n return true;\n },\n },\n {\n type: 'input',\n name: 'recipient',\n message: 'Payment recipient address:',\n when: !options.recipient,\n default: config.address,\n validate: (input: string) => {\n if (!input.match(/^0x[a-fA-F0-9]{40}$/)) {\n return 'Invalid Ethereum address';\n }\n return true;\n },\n },\n ]);\n\n const name = options.name || answers.name;\n const recipient = options.recipient || answers.recipient;\n\n console.log(chalk.gray(`\\n\\uD83D\\uDCCB Facilitator Details:`));\n console.log(chalk.gray(` Name: ${name}`));\n console.log(chalk.gray(` Recipient: ${recipient}`));\n console.log(chalk.gray(` Creator: ${config.address}\\n`));\n\n const { confirm } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirm',\n message: 'Create facilitator? (Requires 1 USDC registration fee)',\n default: true,\n },\n ]);\n\n if (!confirm) {\n console.log(chalk.yellow('Cancelled.'));\n process.exit(0);\n }\n\n const spinner = ora('Creating facilitator...').start();\n\n try {\n const wallet = new Wallet(config.privateKey);\n const facilitatorWallet = Wallet.createRandom();\n\n spinner.text = 'Registering facilitator...';\n\n // Note: createFacilitator always throws an error directing users to web interface\n // This is intentional - facilitator creation requires payment flow\n await createFacilitator(options.url, {\n name,\n facilitatorWallet: facilitatorWallet.address,\n facilitatorPrivateKey: facilitatorWallet.privateKey,\n paymentRecipient: recipient,\n createdBy: wallet.address,\n });\n\n // This code won't be reached since createFacilitator throws\n spinner.succeed('Facilitator created!');\n\n console.log(chalk.green('\\n\\u2705 Facilitator created successfully!'));\n console.log(chalk.gray(`\\n\\uD83D\\uDCC4 Details:`));\n console.log(chalk.gray(` Name: ${name}`));\n console.log(chalk.gray(` Wallet: ${facilitatorWallet.address}`));\n console.log(chalk.yellow(`\\n\\u26A0\\uFE0F IMPORTANT: Save facilitator wallet private key!`));\n console.log(chalk.gray(` Private Key: ${facilitatorWallet.privateKey}\\n`));\n\n console.log(chalk.cyan('\\uD83D\\uDCA1 Next steps:'));\n console.log(chalk.gray(` 1. Fund facilitator wallet with gas token`));\n console.log(chalk.gray(` 2. Use the web interface to complete facilitator registration`));\n console.log(chalk.gray(` 3. Check status: facinet facilitator list\\n`));\n } catch (error: any) {\n spinner.fail('Failed to create facilitator');\n console.log(chalk.red(`\\n\\u274C Error: ${error.message}\\n`));\n process.exit(1);\n }\n}\n\n/**\n * List all facilitators\n */\nasync function list(options: any) {\n console.log(chalk.cyan('\\n\\uD83D\\uDCCB Active Facilitators\\n'));\n\n const spinner = ora('Loading facilitators...').start();\n\n try {\n const facilitators = await listFacilitators(options.url);\n spinner.stop();\n\n if (facilitators.length === 0) {\n console.log(chalk.yellow('No active facilitators found.\\n'));\n return;\n }\n\n console.log(chalk.gray(`Found ${facilitators.length} active facilitator(s):\\n`));\n\n facilitators.forEach((fac: any, index: number) => {\n const facilitatorName = fac.name || `Facilitator ${fac.id?.slice(0, 8) || 'Unknown'}`;\n console.log(chalk.cyan(`${index + 1}. ${facilitatorName}`));\n console.log(chalk.gray(` ID: ${fac.id}`));\n console.log(chalk.gray(` Wallet: ${fac.facilitatorWallet}`));\n console.log(\n chalk.gray(` Status: ${getStatusEmoji(fac.status)} ${fac.status.toUpperCase()}`)\n );\n if (fac.network) {\n console.log(chalk.gray(` Network: ${fac.network}`));\n }\n if (fac.chainId) {\n console.log(chalk.gray(` Chain ID: ${fac.chainId}`));\n }\n console.log(chalk.gray(` Payments: ${fac.totalPayments || 0}`));\n console.log(chalk.gray(` Created by: ${fac.createdBy || 'Unknown'}`));\n console.log('');\n });\n } catch (error: any) {\n spinner.fail('Failed to load facilitators');\n console.log(chalk.red(`\\n\\u274C Error: ${error.message}\\n`));\n process.exit(1);\n }\n}\n\n/**\n * Check facilitator status\n */\nasync function status(id: string, options: any) {\n console.log(chalk.cyan(`\\n\\uD83D\\uDCCA Facilitator Status\\n`));\n\n const spinner = ora('Checking status...').start();\n\n try {\n const fac = await getFacilitatorStatus(options.url, id);\n spinner.stop();\n\n console.log(chalk.cyan(`${fac.name}`));\n console.log(chalk.gray(`ID: ${fac.id}\\n`));\n console.log(\n chalk.gray(\n `Status: ${getStatusEmoji(fac.status)} ${chalk.bold(fac.status.toUpperCase())}`\n )\n );\n console.log(chalk.gray(`Wallet: ${fac.facilitatorWallet}`));\n console.log(chalk.gray(`Recipient: ${fac.paymentRecipient}`));\n console.log(chalk.gray(`Total Payments: ${fac.totalPayments}`));\n console.log(chalk.gray(`Gas Balance: ${fac.gasBalance || 'Unknown'}`));\n console.log(chalk.gray(`Created: ${new Date(fac.lastUsed).toLocaleString()}\\n`));\n\n if (fac.status === 'needs_funding') {\n console.log(chalk.yellow('\\u26A0\\uFE0F Facilitator needs gas token for fees'));\n console.log(chalk.gray(` Send gas token to: ${fac.facilitatorWallet}\\n`));\n }\n } catch (error: any) {\n spinner.fail('Failed to get status');\n console.log(chalk.red(`\\n\\u274C Error: ${error.message}\\n`));\n process.exit(1);\n }\n}\n\n/**\n * Check facilitator balance\n */\nasync function balance(id: string, options: any) {\n console.log(chalk.cyan(`\\n\\uD83D\\uDCB0 Facilitator Balance\\n`));\n\n const spinner = ora('Checking balance...').start();\n\n try {\n const result = await getFacilitatorBalance(options.url, id);\n spinner.stop();\n\n console.log(chalk.gray(`Facilitator: ${result.name}`));\n console.log(chalk.gray(`Wallet: ${result.wallet}\\n`));\n console.log(chalk.cyan(`Balance: ${chalk.bold(result.balance)}`));\n console.log(\n chalk.gray(`Status: ${getStatusEmoji(result.status)} ${result.status.toUpperCase()}\\n`)\n );\n\n if (parseFloat(result.balance) < 0.1) {\n console.log(chalk.yellow('\\u26A0\\uFE0F Low balance! Facilitator may become inactive.\\n'));\n }\n } catch (error: any) {\n spinner.fail('Failed to check balance');\n console.log(chalk.red(`\\n\\u274C Error: ${error.message}\\n`));\n process.exit(1);\n }\n}\n\nfunction getStatusEmoji(status: string): string {\n switch (status) {\n case 'active':\n return '\\u2705';\n case 'needs_funding':\n return '\\u26A0\\uFE0F';\n case 'inactive':\n return '\\u274C';\n default:\n return '\\u2753';\n }\n}\n\nexport const facilitatorCommand = {\n create,\n list,\n status,\n balance,\n};\n", "/**\n * Connect Command\n *\n * Connect wallet to Facinet CLI\n */\n\nimport inquirer from 'inquirer';\nimport chalk from 'chalk';\nimport { Wallet } from 'ethers';\nimport { getConfig, saveConfig } from '../utils/config';\nimport ora from 'ora';\n\nexport async function connectCommand() {\n console.log(chalk.cyan('\\n\\uD83D\\uDD17 Connect Wallet to Facinet\\n'));\n\n const { method } = await inquirer.prompt([\n {\n type: 'list',\n name: 'method',\n message: 'How would you like to connect?',\n choices: [\n { name: 'Enter Private Key (for testing)', value: 'privateKey' },\n { name: 'Generate New Wallet', value: 'generate' },\n ],\n },\n ]);\n\n if (method === 'privateKey') {\n const { privateKey } = await inquirer.prompt([\n {\n type: 'password',\n name: 'privateKey',\n message: 'Enter your private key:',\n mask: '*',\n },\n ]);\n\n try {\n const wallet = new Wallet(privateKey);\n saveConfig({ privateKey, address: wallet.address });\n console.log(chalk.green('\\n\\u2705 Wallet connected successfully!'));\n console.log(chalk.gray(`Address: ${wallet.address}`));\n } catch (error) {\n console.log(chalk.red('\\n\\u274C Invalid private key'));\n process.exit(1);\n }\n } else {\n const spinner = ora('Generating new wallet...').start();\n const wallet = Wallet.createRandom();\n spinner.succeed('Wallet generated!');\n\n console.log(chalk.green('\\n\\u2705 New wallet created!'));\n console.log(chalk.yellow('\\n\\u26A0\\uFE0F IMPORTANT: Save your private key securely!'));\n console.log(chalk.gray(`\\nAddress: ${wallet.address}`));\n console.log(chalk.gray(`Private Key: ${wallet.privateKey}`));\n console.log(chalk.gray(`Mnemonic: ${wallet.mnemonic?.phrase}\\n`));\n\n const { confirm } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'confirm',\n message: 'Have you saved your private key?',\n default: false,\n },\n ]);\n\n if (!confirm) {\n console.log(chalk.red('\\nPlease save your private key before continuing.'));\n process.exit(0);\n }\n\n saveConfig({ privateKey: wallet.privateKey, address: wallet.address });\n console.log(chalk.green('\\u2705 Configuration saved!'));\n }\n\n const config = getConfig();\n console.log(chalk.cyan('\\n\\uD83D\\uDCE1 Network Configuration:'));\n console.log(chalk.gray(`Network: ${config.network || 'avalanche-fuji'}`));\n console.log(chalk.gray(`API URL: ${config.apiUrl || 'http://localhost:3000'}\\n`));\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_chalk", "path", "os", "fs", "axios", "facilitator", "chalk", "inquirer", "ora", "facilitator", "axios", "import_inquirer", "import_chalk", "import_ora", "import_ethers", "chalk", "inquirer", "ora", "status", "import_inquirer", "import_chalk", "import_ethers", "import_ora", "chalk", "inquirer", "ora", "chalk"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Facinet.d.ts","sourceRoot":"","sources":["../../src/sdk/Facinet.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAwFrG,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAgF;IAC9F,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAC,CAA8B;gBAEjC,MAAM,GAAE,aAAkB;IA0BtC;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,WAAW,EAAE;IAI1C;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,MAAM,EAAE;IAIvC;;;;;;;;;;;;;OAaG;IACG,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAoKxD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IA0C/C;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,WAAW,CAAC;IAqBrD;;;;;;;;;;;;;OAaG;WACU,QAAQ,CACnB,MAAM,EAAE,aAAa,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;KAAE,GAClF,OAAO,CAAC,aAAa,CAAC;CAY1B"}
1
+ {"version":3,"file":"Facinet.d.ts","sourceRoot":"","sources":["../../src/sdk/Facinet.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAkFrG,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAgF;IAC9F,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAC,CAA8B;gBAEjC,MAAM,GAAE,aAAkB;IA0BtC;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,WAAW,EAAE;IAI1C;;OAEG;IACH,MAAM,CAAC,oBAAoB,IAAI,MAAM,EAAE;IAIvC;;;;;;;;;;;;;OAaG;IACG,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAoKxD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IA0C/C;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,WAAW,CAAC;IAqBrD;;;;;;;;;;;;;OAaG;WACU,QAAQ,CACnB,MAAM,EAAE,aAAa,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;KAAE,GAClF,OAAO,CAAC,aAAa,CAAC;CAY1B"}
@@ -103,13 +103,8 @@ const NETWORK_ALIASES = {
103
103
  'polygon': 'polygon-amoy',
104
104
  'base': 'base-sepolia',
105
105
  };
106
- // Network-specific API URLs
107
- const NETWORK_API_URLS = {
108
- 'avalanche-fuji': 'https://x402-avalanche-chi.vercel.app',
109
- 'ethereum-sepolia': 'https://x402-ethereum-chi.vercel.app',
110
- 'base-sepolia': 'https://x402-base-chi.vercel.app',
111
- 'polygon-amoy': 'https://x402-polygon-chi.vercel.app',
112
- };
106
+ // Unified API URL for all networks
107
+ const DEFAULT_API_URL = 'https://facinet.vercel.app';
113
108
  /**
114
109
  * Resolve network name (handles legacy aliases)
115
110
  */
@@ -123,8 +118,7 @@ function getApiUrlForNetwork(network, customApiUrl) {
123
118
  if (customApiUrl) {
124
119
  return customApiUrl.replace(/\/$/, '');
125
120
  }
126
- const resolvedNetwork = resolveNetwork(network);
127
- return NETWORK_API_URLS[resolvedNetwork] || NETWORK_API_URLS['avalanche-fuji'];
121
+ return DEFAULT_API_URL;
128
122
  }
129
123
  class Facinet {
130
124
  constructor(config = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"Facinet.js","sourceRoot":"","sources":["../../src/sdk/Facinet.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,kDAA0B;AAC1B,mCAAiD;AAGjD,yBAAyB;AACzB,MAAM,MAAM,GAAgC;IAC1C,gBAAgB,EAAE;QAChB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,4CAA4C;QACpD,WAAW,EAAE,4CAA4C;QACzD,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,MAAM;QAChB,aAAa,EAAE,8BAA8B;QAC7C,iBAAiB,EAAE,UAAU;QAC7B,oBAAoB,EAAE,GAAG;KAC1B;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,QAAQ;QACjB,MAAM,EAAE,6CAA6C;QACrD,WAAW,EAAE,4CAA4C;QACzD,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,8BAA8B;QAC7C,iBAAiB,EAAE,MAAM;QACzB,oBAAoB,EAAE,GAAG;KAC1B;IACD,cAAc,EAAE;QACd,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,0BAA0B;QAClC,WAAW,EAAE,4CAA4C;QACzD,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,KAAK;QACf,aAAa,EAAE,8BAA8B;QAC7C,iBAAiB,EAAE,MAAM;QACzB,oBAAoB,EAAE,GAAG;KAC1B;IACD,cAAc,EAAE;QACd,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,qCAAqC;QAC7C,WAAW,EAAE,4CAA4C;QACzD,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,OAAO;QACjB,aAAa,EAAE,8BAA8B;QAC7C,iBAAiB,EAAE,MAAM;QACzB,oBAAoB,EAAE,GAAG;KAC1B;CACF,CAAC;AAEF,6CAA6C;AAC7C,MAAM,eAAe,GAA2B;IAC9C,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,kBAAkB;IAC9B,SAAS,EAAE,cAAc;IACzB,MAAM,EAAE,cAAc;CACvB,CAAC;AAEF,4BAA4B;AAC5B,MAAM,gBAAgB,GAA2B;IAC/C,gBAAgB,EAAE,uCAAuC;IACzD,kBAAkB,EAAE,sCAAsC;IAC1D,cAAc,EAAE,kCAAkC;IAClD,cAAc,EAAE,qCAAqC;CACtD,CAAC;AAEF;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,OAAe,EAAE,YAAqB;IACjE,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,gBAAgB,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AACjF,CAAC;AAED,MAAa,OAAO;IAKlB,YAAY,SAAwB,EAAE;QACpC,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,mBAAmB,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC,MAAM,GAAG;YACZ,MAAM;YACN,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,EAAE;YACnC,OAAO,EAAE,eAAsB;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;SAC5B,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CACb,wBAAwB,MAAM,CAAC,OAAO,yBAAyB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,wBAAe,CAClC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CACxC,CAAC;YACF,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB;QACzB,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,GAAG,CAAC,MAAqB;QAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,wBAAwB;QACxB,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAwB,CAAC;YACtD,CAAC;iBAAM,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,QAAQ,EAAE,CAAC;gBACrE,MAAM,QAAQ,GAAG,MAAO,MAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;oBACtD,MAAM,EAAE,qBAAqB;iBAC9B,CAAC,CAAC;gBACH,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,YAAY,GAAG,YAAY,CAAC,WAAW,EAAmB,CAAC;QAC3D,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAExD,4BAA4B;QAC5B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAEzD,gCAAgC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,sBAAsB;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,kBAAkB;QACzD,MAAM,KAAK,GACT,IAAI;YACJ,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC5C,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEb,mDAAmD;QACnD,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB;YAClC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB;YACxC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;SAC1C,CAAC;QAEF,MAAM,KAAK,GAAG;YACZ,yBAAyB,EAAE;gBACzB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;gBACjC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;gBACvC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;gBACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;aACnC;SACF,CAAC;QAEF,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,YAAY;YAClB,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,MAAM;YACb,UAAU;YACV,WAAW;YACX,KAAK;SACN,CAAC;QAEF,yBAAyB;QACzB,IAAI,SAAiB,CAAC;QAEtB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,QAAQ,EAAE,CAAC;YACrE,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,QAAQ,GAAC,CAAC;YAEpD,MAAM,iBAAiB,GAAG;gBACxB,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,gBAAgB;gBACpB,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;gBACxB,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;gBACjC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;gBACnC,KAAK;aACN,CAAC;YAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;gBACtC,KAAK,EAAE;oBACL,YAAY,EAAE;wBACZ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;wBACpC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;qBAC/C;oBACD,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;iBAC3D;gBACD,MAAM;gBACN,WAAW,EAAE,2BAA2B;gBACxC,OAAO,EAAE,iBAAiB;aAC3B,CAAC,CAAC;YAEH,SAAS,GAAG,MAAO,MAAc,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACjD,MAAM,EAAE,sBAAsB;gBAC9B,MAAM,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,wBAAwB;QACxB,MAAM,cAAc,GAAG;YACrB,SAAS;YACT,aAAa,EAAE;gBACb,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,gBAAgB;gBACpB,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;gBACxB,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;gBACjC,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;gBACnC,KAAK;aACN;SACF,CAAC;QAEF,wBAAwB;QACxB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAC/B,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,yBAAyB,EAC9C;gBACE,aAAa,EAAE,WAAW,CAAC,EAAE;gBAC7B,cAAc;aACf,CACF,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,gBAAgB,CACjE,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;gBAC5B,WAAW,EAAE;oBACX,EAAE,EAAE,WAAW,CAAC,EAAE;oBAClB,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,eAAe,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;oBACrE,MAAM,EAAE,WAAW,CAAC,iBAAiB;iBACtC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,YAAY;oBAClB,EAAE,EAAE,gBAAgB;oBACpB,MAAM,EAAE,MAAM,CAAC,MAAM;oBACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;iBAC7B;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACzB,MAAM,YAAY,GAChB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC3D,MAAM,IAAI,KAAK,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,uBAAuB,EAC5C;gBACE,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE;oBACP,YAAY,EAAE,mBAAmB;iBAClC;aACF,CACF,CAAC;YAEF,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACvE,uCAAuC;gBACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAc,EAAE,EAAE;oBAC1D,iBAAiB;oBACjB,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC1B,OAAO,KAAK,CAAC;oBACf,CAAC;oBAED,qEAAqE;oBACrE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;wBACd,OAAO,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;oBAC3C,CAAC;oBAED,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC5B,OAAO,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC1C,CAAC;oBAED,wEAAwE;oBACxE,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;YACL,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,MAAM,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE,CAC3H,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB;QAC3B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAElD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,wCAAwC,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,eAAe,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK;gBAC5H,4EAA4E,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CACjG,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,mBAAmB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAEtD,gCAAgC;QAChC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAC9B,mBAAmB,CAAC,IAAI,GAAG,eAAe,mBAAmB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACjF,CAAC;QAED,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,CACnB,MAAmF;QAEnF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,GAAG,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC;IACL,CAAC;CACF;AAvUD,0BAuUC"}
1
+ {"version":3,"file":"Facinet.js","sourceRoot":"","sources":["../../src/sdk/Facinet.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  export interface FacinetConfig {
5
5
  /**
6
6
  * API URL for x402 facilitator network
7
- * @default 'https://x402-avalanche-chi.vercel.app'
7
+ * @default 'https://facinet.vercel.app'
8
8
  */
9
9
  apiUrl?: string;
10
10
  /**
package/dist/sdk.js CHANGED
@@ -94,12 +94,7 @@ var NETWORK_ALIASES = {
94
94
  "polygon": "polygon-amoy",
95
95
  "base": "base-sepolia"
96
96
  };
97
- var NETWORK_API_URLS = {
98
- "avalanche-fuji": "https://x402-avalanche-chi.vercel.app",
99
- "ethereum-sepolia": "https://x402-ethereum-chi.vercel.app",
100
- "base-sepolia": "https://x402-base-chi.vercel.app",
101
- "polygon-amoy": "https://x402-polygon-chi.vercel.app"
102
- };
97
+ var DEFAULT_API_URL = "https://facinet.vercel.app";
103
98
  function resolveNetwork(network) {
104
99
  return NETWORK_ALIASES[network] || network;
105
100
  }
@@ -107,8 +102,7 @@ function getApiUrlForNetwork(network, customApiUrl) {
107
102
  if (customApiUrl) {
108
103
  return customApiUrl.replace(/\/$/, "");
109
104
  }
110
- const resolvedNetwork = resolveNetwork(network);
111
- return NETWORK_API_URLS[resolvedNetwork] || NETWORK_API_URLS["avalanche-fuji"];
105
+ return DEFAULT_API_URL;
112
106
  }
113
107
  var Facinet = class _Facinet {
114
108
  constructor(config = {}) {
package/dist/sdk.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/sdk.ts", "../src/sdk/Facinet.ts"],
4
- "sourcesContent": ["/**\n * Facinet SDK - Main Export\n *\n * Use this when installing as a library:\n * npm install facinet\n *\n * @example\n * ```typescript\n * import { Facinet } from 'facinet';\n *\n * const facinet = new Facinet({ network: 'base-sepolia' });\n * await facinet.pay({\n * amount: '1',\n * recipient: '0xYourAddress'\n * });\n * ```\n */\n\nexport { Facinet } from './sdk/Facinet';\nexport type {\n FacinetConfig,\n PaymentParams,\n PaymentResult,\n Facilitator,\n ChainConfig,\n} from './sdk/types';\nexport { Facinet as default } from './sdk/Facinet';\n", "/**\n * Facinet SDK - Main Class\n *\n * JavaScript/TypeScript SDK for integrating x402 payments\n * Supports multichain: Avalanche Fuji, Ethereum Sepolia, Base Sepolia, Polygon Amoy\n */\n\nimport axios from 'axios';\nimport { Wallet, JsonRpcProvider } from 'ethers';\nimport type { FacinetConfig, PaymentParams, PaymentResult, Facilitator, ChainConfig } from './types';\n\n// All 4 supported chains\nconst CHAINS: Record<string, ChainConfig> = {\n 'avalanche-fuji': {\n name: 'avalanche-fuji',\n displayName: 'Avalanche Fuji',\n chainId: 43113,\n rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',\n usdcAddress: '0x5425890298aed601595a70AB815c96711a31Bc65',\n usdcDecimals: 6,\n gasToken: 'AVAX',\n blockExplorer: 'https://testnet.snowtrace.io',\n erc3009DomainName: 'USD Coin',\n erc3009DomainVersion: '2',\n },\n 'ethereum-sepolia': {\n name: 'ethereum-sepolia',\n displayName: 'Ethereum Sepolia',\n chainId: 11155111,\n rpcUrl: 'https://ethereum-sepolia-rpc.publicnode.com',\n usdcAddress: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n usdcDecimals: 6,\n gasToken: 'ETH',\n blockExplorer: 'https://sepolia.etherscan.io',\n erc3009DomainName: 'USDC',\n erc3009DomainVersion: '2',\n },\n 'base-sepolia': {\n name: 'base-sepolia',\n displayName: 'Base Sepolia',\n chainId: 84532,\n rpcUrl: 'https://sepolia.base.org',\n usdcAddress: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n usdcDecimals: 6,\n gasToken: 'ETH',\n blockExplorer: 'https://sepolia.basescan.org',\n erc3009DomainName: 'USDC',\n erc3009DomainVersion: '2',\n },\n 'polygon-amoy': {\n name: 'polygon-amoy',\n displayName: 'Polygon Amoy',\n chainId: 80002,\n rpcUrl: 'https://rpc-amoy.polygon.technology',\n usdcAddress: '0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582',\n usdcDecimals: 6,\n gasToken: 'MATIC',\n blockExplorer: 'https://amoy.polygonscan.com',\n erc3009DomainName: 'USDC',\n erc3009DomainVersion: '2',\n },\n};\n\n// Legacy aliases for backwards compatibility\nconst NETWORK_ALIASES: Record<string, string> = {\n 'avalanche': 'avalanche-fuji',\n 'ethereum': 'ethereum-sepolia',\n 'polygon': 'polygon-amoy',\n 'base': 'base-sepolia',\n};\n\n// Network-specific API URLs\nconst NETWORK_API_URLS: Record<string, string> = {\n 'avalanche-fuji': 'https://x402-avalanche-chi.vercel.app',\n 'ethereum-sepolia': 'https://x402-ethereum-chi.vercel.app',\n 'base-sepolia': 'https://x402-base-chi.vercel.app',\n 'polygon-amoy': 'https://x402-polygon-chi.vercel.app',\n};\n\n/**\n * Resolve network name (handles legacy aliases)\n */\nfunction resolveNetwork(network: string): string {\n return NETWORK_ALIASES[network] || network;\n}\n\n/**\n * Get API URL for a network\n */\nfunction getApiUrlForNetwork(network: string, customApiUrl?: string): string {\n if (customApiUrl) {\n return customApiUrl.replace(/\\/$/, '');\n }\n const resolvedNetwork = resolveNetwork(network);\n return NETWORK_API_URLS[resolvedNetwork] || NETWORK_API_URLS['avalanche-fuji'];\n}\n\nexport class Facinet {\n private config: Required<Pick<FacinetConfig, 'apiUrl' | 'privateKey' | 'network' | 'rpcUrl'>>;\n private chain: ChainConfig;\n private wallet?: InstanceType<typeof Wallet>;\n\n constructor(config: FacinetConfig = {}) {\n const resolvedNetwork = resolveNetwork(config.network || 'avalanche-fuji');\n const apiUrl = getApiUrlForNetwork(resolvedNetwork, config.apiUrl);\n\n this.config = {\n apiUrl,\n privateKey: config.privateKey || '',\n network: resolvedNetwork as any,\n rpcUrl: config.rpcUrl || '',\n };\n\n this.chain = CHAINS[resolvedNetwork];\n if (!this.chain) {\n throw new Error(\n `Unsupported network: ${config.network}. Supported networks: ${Object.keys(CHAINS).join(', ')}`\n );\n }\n\n if (this.config.privateKey) {\n const provider = new JsonRpcProvider(\n this.config.rpcUrl || this.chain.rpcUrl\n );\n this.wallet = new Wallet(this.config.privateKey, provider);\n }\n }\n\n /**\n * Get the current chain configuration\n */\n getChain(): ChainConfig {\n return { ...this.chain };\n }\n\n /**\n * Get all supported chains\n */\n static getSupportedChains(): ChainConfig[] {\n return Object.values(CHAINS);\n }\n\n /**\n * Get supported network names\n */\n static getSupportedNetworks(): string[] {\n return Object.keys(CHAINS);\n }\n\n /**\n * Make a payment via x402 facilitator network\n *\n * @example\n * ```typescript\n * const facinet = new Facinet({ network: 'base-sepolia' });\n * const result = await facinet.pay({\n * amount: '1',\n * recipient: '0xMerchantAddress',\n * payerAddress: '0xCustomerAddress'\n * });\n * console.log('Payment successful!', result.txHash);\n * ```\n */\n async pay(params: PaymentParams): Promise<PaymentResult> {\n if (!params.amount || parseFloat(params.amount) <= 0) {\n throw new Error('Invalid amount');\n }\n\n if (!params.recipient.match(/^0x[a-fA-F0-9]{40}$/)) {\n throw new Error('Invalid recipient address');\n }\n\n // Resolve payer address\n let payerAddress = params.payerAddress || '';\n if (!payerAddress) {\n if (this.wallet) {\n payerAddress = this.wallet.address as `0x${string}`;\n } else if (typeof window !== 'undefined' && (window as any).ethereum) {\n const accounts = await (window as any).ethereum.request({\n method: 'eth_requestAccounts',\n });\n payerAddress = accounts[0];\n } else {\n throw new Error(\n 'No payer address provided and no wallet available. Provide payerAddress or privateKey in config.'\n );\n }\n }\n\n payerAddress = payerAddress.toLowerCase() as `0x${string}`;\n const recipientAddress = params.recipient.toLowerCase();\n\n // Select random facilitator\n const facilitator = await this.selectRandomFacilitator();\n\n // Create ERC-3009 authorization\n const amount = BigInt(parseFloat(params.amount) * 1e6); // 6 decimals for USDC\n const validAfter = Math.floor(Date.now() / 1000) - 60;\n const validBefore = validAfter + 3600; // 1 hour validity\n const nonce =\n '0x' +\n Array.from({ length: 64 }, () =>\n Math.floor(Math.random() * 16).toString(16)\n ).join('');\n\n // EIP-712 Domain - uses chain-specific domain name\n const domain = {\n name: this.chain.erc3009DomainName,\n version: this.chain.erc3009DomainVersion,\n chainId: this.chain.chainId,\n verifyingContract: this.chain.usdcAddress,\n };\n\n const types = {\n TransferWithAuthorization: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'validAfter', type: 'uint256' },\n { name: 'validBefore', type: 'uint256' },\n { name: 'nonce', type: 'bytes32' },\n ],\n };\n\n const value = {\n from: payerAddress,\n to: recipientAddress,\n value: amount,\n validAfter,\n validBefore,\n nonce,\n };\n\n // Sign the authorization\n let signature: string;\n\n if (this.wallet) {\n signature = await this.wallet.signTypedData(domain, types, value);\n } else if (typeof window !== 'undefined' && (window as any).ethereum) {\n const { TypedDataEncoder } = await import('ethers');\n\n const messageForSigning = {\n from: payerAddress,\n to: recipientAddress,\n value: amount.toString(),\n validAfter: validAfter.toString(),\n validBefore: validBefore.toString(),\n nonce,\n };\n\n const typedDataPayload = JSON.stringify({\n types: {\n EIP712Domain: [\n { name: 'name', type: 'string' },\n { name: 'version', type: 'string' },\n { name: 'chainId', type: 'uint256' },\n { name: 'verifyingContract', type: 'address' },\n ],\n TransferWithAuthorization: types.TransferWithAuthorization,\n },\n domain,\n primaryType: 'TransferWithAuthorization',\n message: messageForSigning,\n });\n\n signature = await (window as any).ethereum.request({\n method: 'eth_signTypedData_v4',\n params: [payerAddress, typedDataPayload],\n });\n } else {\n throw new Error('No signing method available');\n }\n\n // Build payment payload\n const paymentPayload = {\n signature,\n authorization: {\n from: payerAddress,\n to: recipientAddress,\n value: amount.toString(),\n validAfter: validAfter.toString(),\n validBefore: validBefore.toString(),\n nonce,\n },\n };\n\n // Submit to facilitator\n try {\n const response = await axios.post(\n `${this.config.apiUrl}/api/x402/settle-custom`,\n {\n facilitatorId: facilitator.id,\n paymentPayload,\n }\n );\n\n if (!response.data.success) {\n throw new Error(\n response.data.error || response.data.message || 'Payment failed'\n );\n }\n\n return {\n success: true,\n txHash: response.data.txHash,\n facilitator: {\n id: facilitator.id,\n name: facilitator.name || `Facilitator ${facilitator.id.slice(0, 8)}`,\n wallet: facilitator.facilitatorWallet,\n },\n payment: {\n from: payerAddress,\n to: recipientAddress,\n amount: params.amount,\n network: this.config.network,\n },\n };\n } catch (error: any) {\n if (error.response?.data) {\n const backendError =\n error.response.data.message || error.response.data.error;\n throw new Error(`Payment failed: ${backendError}`);\n }\n throw error;\n }\n }\n\n /**\n * Get all active facilitators for the current network\n */\n async getFacilitators(): Promise<Facilitator[]> {\n try {\n const response = await axios.get(\n `${this.config.apiUrl}/api/facilitator/list`,\n {\n timeout: 10000,\n headers: {\n 'User-Agent': 'Facinet-SDK/2.3.0',\n },\n }\n );\n\n if (response.data.success && Array.isArray(response.data.facilitators)) {\n // Filter by status and network/chainId\n return response.data.facilitators.filter((f: Facilitator) => {\n // Must be active\n if (f.status !== 'active') {\n return false;\n }\n \n // If facilitator has network or chainId, match it with current chain\n if (f.network) {\n return f.network === this.config.network;\n }\n \n if (f.chainId !== undefined) {\n return f.chainId === this.chain.chainId;\n }\n \n // If no network/chainId specified, include it (backwards compatibility)\n return true;\n });\n }\n\n return [];\n } catch (error: any) {\n throw new Error(\n `Failed to fetch facilitators for ${this.chain.displayName} (${this.config.network}): ${error.message || 'Unknown error'}`\n );\n }\n }\n\n /**\n * Select a random active facilitator for the current network\n */\n async selectRandomFacilitator(): Promise<Facilitator> {\n const facilitators = await this.getFacilitators();\n\n if (facilitators.length === 0) {\n throw new Error(\n `No active facilitators available for ${this.chain.displayName} (${this.config.network}, Chain ID: ${this.chain.chainId}). ` +\n `Please check that facilitators are registered for this network. API URL: ${this.config.apiUrl}`\n );\n }\n\n const randomIndex = Math.floor(Math.random() * facilitators.length);\n const selectedFacilitator = facilitators[randomIndex];\n \n // Ensure facilitator has a name\n if (!selectedFacilitator.name) {\n selectedFacilitator.name = `Facilitator ${selectedFacilitator.id.slice(0, 8)}`;\n }\n \n return selectedFacilitator;\n }\n\n /**\n * Quick payment helper (static method)\n *\n * @example\n * ```typescript\n * // Pay on Base Sepolia\n * await Facinet.quickPay({\n * amount: '1',\n * recipient: '0xMerchantAddress',\n * privateKey: process.env.PRIVATE_KEY,\n * network: 'base-sepolia'\n * });\n * ```\n */\n static async quickPay(\n params: PaymentParams & { privateKey?: string; network?: FacinetConfig['network'] }\n ): Promise<PaymentResult> {\n const facinet = new Facinet({\n privateKey: params.privateKey,\n network: params.network,\n });\n\n return facinet.pay({\n amount: params.amount,\n recipient: params.recipient,\n payerAddress: params.payerAddress,\n });\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * Facinet SDK - Main Export\n *\n * Use this when installing as a library:\n * npm install facinet\n *\n * @example\n * ```typescript\n * import { Facinet } from 'facinet';\n *\n * const facinet = new Facinet({ network: 'base-sepolia' });\n * await facinet.pay({\n * amount: '1',\n * recipient: '0xYourAddress'\n * });\n * ```\n */\n\nexport { Facinet } from './sdk/Facinet';\nexport type {\n FacinetConfig,\n PaymentParams,\n PaymentResult,\n Facilitator,\n ChainConfig,\n} from './sdk/types';\nexport { Facinet as default } from './sdk/Facinet';\n", "/**\n * Facinet SDK - Main Class\n *\n * JavaScript/TypeScript SDK for integrating x402 payments\n * Supports multichain: Avalanche Fuji, Ethereum Sepolia, Base Sepolia, Polygon Amoy\n */\n\nimport axios from 'axios';\nimport { Wallet, JsonRpcProvider } from 'ethers';\nimport type { FacinetConfig, PaymentParams, PaymentResult, Facilitator, ChainConfig } from './types';\n\n// All 4 supported chains\nconst CHAINS: Record<string, ChainConfig> = {\n 'avalanche-fuji': {\n name: 'avalanche-fuji',\n displayName: 'Avalanche Fuji',\n chainId: 43113,\n rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',\n usdcAddress: '0x5425890298aed601595a70AB815c96711a31Bc65',\n usdcDecimals: 6,\n gasToken: 'AVAX',\n blockExplorer: 'https://testnet.snowtrace.io',\n erc3009DomainName: 'USD Coin',\n erc3009DomainVersion: '2',\n },\n 'ethereum-sepolia': {\n name: 'ethereum-sepolia',\n displayName: 'Ethereum Sepolia',\n chainId: 11155111,\n rpcUrl: 'https://ethereum-sepolia-rpc.publicnode.com',\n usdcAddress: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n usdcDecimals: 6,\n gasToken: 'ETH',\n blockExplorer: 'https://sepolia.etherscan.io',\n erc3009DomainName: 'USDC',\n erc3009DomainVersion: '2',\n },\n 'base-sepolia': {\n name: 'base-sepolia',\n displayName: 'Base Sepolia',\n chainId: 84532,\n rpcUrl: 'https://sepolia.base.org',\n usdcAddress: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n usdcDecimals: 6,\n gasToken: 'ETH',\n blockExplorer: 'https://sepolia.basescan.org',\n erc3009DomainName: 'USDC',\n erc3009DomainVersion: '2',\n },\n 'polygon-amoy': {\n name: 'polygon-amoy',\n displayName: 'Polygon Amoy',\n chainId: 80002,\n rpcUrl: 'https://rpc-amoy.polygon.technology',\n usdcAddress: '0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582',\n usdcDecimals: 6,\n gasToken: 'MATIC',\n blockExplorer: 'https://amoy.polygonscan.com',\n erc3009DomainName: 'USDC',\n erc3009DomainVersion: '2',\n },\n};\n\n// Legacy aliases for backwards compatibility\nconst NETWORK_ALIASES: Record<string, string> = {\n 'avalanche': 'avalanche-fuji',\n 'ethereum': 'ethereum-sepolia',\n 'polygon': 'polygon-amoy',\n 'base': 'base-sepolia',\n};\n\n// Unified API URL for all networks\nconst DEFAULT_API_URL = 'https://facinet.vercel.app';\n\n/**\n * Resolve network name (handles legacy aliases)\n */\nfunction resolveNetwork(network: string): string {\n return NETWORK_ALIASES[network] || network;\n}\n\n/**\n * Get API URL for a network\n */\nfunction getApiUrlForNetwork(network: string, customApiUrl?: string): string {\n if (customApiUrl) {\n return customApiUrl.replace(/\\/$/, '');\n }\n return DEFAULT_API_URL;\n}\n\nexport class Facinet {\n private config: Required<Pick<FacinetConfig, 'apiUrl' | 'privateKey' | 'network' | 'rpcUrl'>>;\n private chain: ChainConfig;\n private wallet?: InstanceType<typeof Wallet>;\n\n constructor(config: FacinetConfig = {}) {\n const resolvedNetwork = resolveNetwork(config.network || 'avalanche-fuji');\n const apiUrl = getApiUrlForNetwork(resolvedNetwork, config.apiUrl);\n\n this.config = {\n apiUrl,\n privateKey: config.privateKey || '',\n network: resolvedNetwork as any,\n rpcUrl: config.rpcUrl || '',\n };\n\n this.chain = CHAINS[resolvedNetwork];\n if (!this.chain) {\n throw new Error(\n `Unsupported network: ${config.network}. Supported networks: ${Object.keys(CHAINS).join(', ')}`\n );\n }\n\n if (this.config.privateKey) {\n const provider = new JsonRpcProvider(\n this.config.rpcUrl || this.chain.rpcUrl\n );\n this.wallet = new Wallet(this.config.privateKey, provider);\n }\n }\n\n /**\n * Get the current chain configuration\n */\n getChain(): ChainConfig {\n return { ...this.chain };\n }\n\n /**\n * Get all supported chains\n */\n static getSupportedChains(): ChainConfig[] {\n return Object.values(CHAINS);\n }\n\n /**\n * Get supported network names\n */\n static getSupportedNetworks(): string[] {\n return Object.keys(CHAINS);\n }\n\n /**\n * Make a payment via x402 facilitator network\n *\n * @example\n * ```typescript\n * const facinet = new Facinet({ network: 'base-sepolia' });\n * const result = await facinet.pay({\n * amount: '1',\n * recipient: '0xMerchantAddress',\n * payerAddress: '0xCustomerAddress'\n * });\n * console.log('Payment successful!', result.txHash);\n * ```\n */\n async pay(params: PaymentParams): Promise<PaymentResult> {\n if (!params.amount || parseFloat(params.amount) <= 0) {\n throw new Error('Invalid amount');\n }\n\n if (!params.recipient.match(/^0x[a-fA-F0-9]{40}$/)) {\n throw new Error('Invalid recipient address');\n }\n\n // Resolve payer address\n let payerAddress = params.payerAddress || '';\n if (!payerAddress) {\n if (this.wallet) {\n payerAddress = this.wallet.address as `0x${string}`;\n } else if (typeof window !== 'undefined' && (window as any).ethereum) {\n const accounts = await (window as any).ethereum.request({\n method: 'eth_requestAccounts',\n });\n payerAddress = accounts[0];\n } else {\n throw new Error(\n 'No payer address provided and no wallet available. Provide payerAddress or privateKey in config.'\n );\n }\n }\n\n payerAddress = payerAddress.toLowerCase() as `0x${string}`;\n const recipientAddress = params.recipient.toLowerCase();\n\n // Select random facilitator\n const facilitator = await this.selectRandomFacilitator();\n\n // Create ERC-3009 authorization\n const amount = BigInt(parseFloat(params.amount) * 1e6); // 6 decimals for USDC\n const validAfter = Math.floor(Date.now() / 1000) - 60;\n const validBefore = validAfter + 3600; // 1 hour validity\n const nonce =\n '0x' +\n Array.from({ length: 64 }, () =>\n Math.floor(Math.random() * 16).toString(16)\n ).join('');\n\n // EIP-712 Domain - uses chain-specific domain name\n const domain = {\n name: this.chain.erc3009DomainName,\n version: this.chain.erc3009DomainVersion,\n chainId: this.chain.chainId,\n verifyingContract: this.chain.usdcAddress,\n };\n\n const types = {\n TransferWithAuthorization: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'validAfter', type: 'uint256' },\n { name: 'validBefore', type: 'uint256' },\n { name: 'nonce', type: 'bytes32' },\n ],\n };\n\n const value = {\n from: payerAddress,\n to: recipientAddress,\n value: amount,\n validAfter,\n validBefore,\n nonce,\n };\n\n // Sign the authorization\n let signature: string;\n\n if (this.wallet) {\n signature = await this.wallet.signTypedData(domain, types, value);\n } else if (typeof window !== 'undefined' && (window as any).ethereum) {\n const { TypedDataEncoder } = await import('ethers');\n\n const messageForSigning = {\n from: payerAddress,\n to: recipientAddress,\n value: amount.toString(),\n validAfter: validAfter.toString(),\n validBefore: validBefore.toString(),\n nonce,\n };\n\n const typedDataPayload = JSON.stringify({\n types: {\n EIP712Domain: [\n { name: 'name', type: 'string' },\n { name: 'version', type: 'string' },\n { name: 'chainId', type: 'uint256' },\n { name: 'verifyingContract', type: 'address' },\n ],\n TransferWithAuthorization: types.TransferWithAuthorization,\n },\n domain,\n primaryType: 'TransferWithAuthorization',\n message: messageForSigning,\n });\n\n signature = await (window as any).ethereum.request({\n method: 'eth_signTypedData_v4',\n params: [payerAddress, typedDataPayload],\n });\n } else {\n throw new Error('No signing method available');\n }\n\n // Build payment payload\n const paymentPayload = {\n signature,\n authorization: {\n from: payerAddress,\n to: recipientAddress,\n value: amount.toString(),\n validAfter: validAfter.toString(),\n validBefore: validBefore.toString(),\n nonce,\n },\n };\n\n // Submit to facilitator\n try {\n const response = await axios.post(\n `${this.config.apiUrl}/api/x402/settle-custom`,\n {\n facilitatorId: facilitator.id,\n paymentPayload,\n }\n );\n\n if (!response.data.success) {\n throw new Error(\n response.data.error || response.data.message || 'Payment failed'\n );\n }\n\n return {\n success: true,\n txHash: response.data.txHash,\n facilitator: {\n id: facilitator.id,\n name: facilitator.name || `Facilitator ${facilitator.id.slice(0, 8)}`,\n wallet: facilitator.facilitatorWallet,\n },\n payment: {\n from: payerAddress,\n to: recipientAddress,\n amount: params.amount,\n network: this.config.network,\n },\n };\n } catch (error: any) {\n if (error.response?.data) {\n const backendError =\n error.response.data.message || error.response.data.error;\n throw new Error(`Payment failed: ${backendError}`);\n }\n throw error;\n }\n }\n\n /**\n * Get all active facilitators for the current network\n */\n async getFacilitators(): Promise<Facilitator[]> {\n try {\n const response = await axios.get(\n `${this.config.apiUrl}/api/facilitator/list`,\n {\n timeout: 10000,\n headers: {\n 'User-Agent': 'Facinet-SDK/2.3.0',\n },\n }\n );\n\n if (response.data.success && Array.isArray(response.data.facilitators)) {\n // Filter by status and network/chainId\n return response.data.facilitators.filter((f: Facilitator) => {\n // Must be active\n if (f.status !== 'active') {\n return false;\n }\n \n // If facilitator has network or chainId, match it with current chain\n if (f.network) {\n return f.network === this.config.network;\n }\n \n if (f.chainId !== undefined) {\n return f.chainId === this.chain.chainId;\n }\n \n // If no network/chainId specified, include it (backwards compatibility)\n return true;\n });\n }\n\n return [];\n } catch (error: any) {\n throw new Error(\n `Failed to fetch facilitators for ${this.chain.displayName} (${this.config.network}): ${error.message || 'Unknown error'}`\n );\n }\n }\n\n /**\n * Select a random active facilitator for the current network\n */\n async selectRandomFacilitator(): Promise<Facilitator> {\n const facilitators = await this.getFacilitators();\n\n if (facilitators.length === 0) {\n throw new Error(\n `No active facilitators available for ${this.chain.displayName} (${this.config.network}, Chain ID: ${this.chain.chainId}). ` +\n `Please check that facilitators are registered for this network. API URL: ${this.config.apiUrl}`\n );\n }\n\n const randomIndex = Math.floor(Math.random() * facilitators.length);\n const selectedFacilitator = facilitators[randomIndex];\n \n // Ensure facilitator has a name\n if (!selectedFacilitator.name) {\n selectedFacilitator.name = `Facilitator ${selectedFacilitator.id.slice(0, 8)}`;\n }\n \n return selectedFacilitator;\n }\n\n /**\n * Quick payment helper (static method)\n *\n * @example\n * ```typescript\n * // Pay on Base Sepolia\n * await Facinet.quickPay({\n * amount: '1',\n * recipient: '0xMerchantAddress',\n * privateKey: process.env.PRIVATE_KEY,\n * network: 'base-sepolia'\n * });\n * ```\n */\n static async quickPay(\n params: PaymentParams & { privateKey?: string; network?: FacinetConfig['network'] }\n ): Promise<PaymentResult> {\n const facinet = new Facinet({\n privateKey: params.privateKey,\n network: params.network,\n });\n\n return facinet.pay({\n amount: params.amount,\n recipient: params.recipient,\n payerAddress: params.payerAddress,\n });\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["axios"]
7
7
  }