paytaca-cli 0.4.1 → 0.5.1

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.
Files changed (58) hide show
  1. package/README.md +29 -9
  2. package/dist/commands/balance.d.ts.map +1 -1
  3. package/dist/commands/balance.js +22 -9
  4. package/dist/commands/balance.js.map +1 -1
  5. package/dist/commands/history.d.ts.map +1 -1
  6. package/dist/commands/history.js +10 -2
  7. package/dist/commands/history.js.map +1 -1
  8. package/dist/commands/send.d.ts +2 -1
  9. package/dist/commands/send.d.ts.map +1 -1
  10. package/dist/commands/send.js +22 -7
  11. package/dist/commands/send.js.map +1 -1
  12. package/dist/commands/swap.d.ts +19 -0
  13. package/dist/commands/swap.d.ts.map +1 -0
  14. package/dist/commands/swap.js +129 -0
  15. package/dist/commands/swap.js.map +1 -0
  16. package/dist/commands/token.d.ts.map +1 -1
  17. package/dist/commands/token.js +140 -1
  18. package/dist/commands/token.js.map +1 -1
  19. package/dist/commands/wallet.d.ts.map +1 -1
  20. package/dist/commands/wallet.js +12 -3
  21. package/dist/commands/wallet.js.map +1 -1
  22. package/dist/index.js +2 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/nostr/store.test.js +12 -4
  25. package/dist/nostr/store.test.js.map +1 -1
  26. package/dist/utils/prices.d.ts +46 -0
  27. package/dist/utils/prices.d.ts.map +1 -0
  28. package/dist/utils/prices.js +92 -0
  29. package/dist/utils/prices.js.map +1 -0
  30. package/dist/utils/prices.test.d.ts +5 -0
  31. package/dist/utils/prices.test.d.ts.map +1 -0
  32. package/dist/utils/prices.test.js +62 -0
  33. package/dist/utils/prices.test.js.map +1 -0
  34. package/dist/wallet/bch.d.ts +14 -0
  35. package/dist/wallet/bch.d.ts.map +1 -1
  36. package/dist/wallet/bch.js +24 -0
  37. package/dist/wallet/bch.js.map +1 -1
  38. package/dist/wallet/cauldron/api.d.ts +58 -0
  39. package/dist/wallet/cauldron/api.d.ts.map +1 -0
  40. package/dist/wallet/cauldron/api.js +60 -0
  41. package/dist/wallet/cauldron/api.js.map +1 -0
  42. package/dist/wallet/cauldron/pools.d.ts +66 -0
  43. package/dist/wallet/cauldron/pools.d.ts.map +1 -0
  44. package/dist/wallet/cauldron/pools.js +96 -0
  45. package/dist/wallet/cauldron/pools.js.map +1 -0
  46. package/dist/wallet/cauldron/pools.test.d.ts +3 -0
  47. package/dist/wallet/cauldron/pools.test.d.ts.map +1 -0
  48. package/dist/wallet/cauldron/pools.test.js +149 -0
  49. package/dist/wallet/cauldron/pools.test.js.map +1 -0
  50. package/dist/wallet/cauldron/swap.d.ts +69 -0
  51. package/dist/wallet/cauldron/swap.d.ts.map +1 -0
  52. package/dist/wallet/cauldron/swap.js +173 -0
  53. package/dist/wallet/cauldron/swap.js.map +1 -0
  54. package/dist/wallet/cauldron/transact.d.ts +98 -0
  55. package/dist/wallet/cauldron/transact.d.ts.map +1 -0
  56. package/dist/wallet/cauldron/transact.js +307 -0
  57. package/dist/wallet/cauldron/transact.js.map +1 -0
  58. package/package.json +3 -2
package/README.md CHANGED
@@ -42,12 +42,14 @@ paytaca wallet export # Display the stored seed phrase
42
42
  ### Balance
43
43
 
44
44
  ```bash
45
- paytaca balance # Show BCH balance (BCH + sats)
45
+ paytaca balance # Show BCH balance with USD conversion
46
46
  paytaca balance --sats # Show in satoshis only
47
47
  paytaca balance --token <category> # Show balance for a specific CashToken
48
48
  paytaca balance --chipnet # Query chipnet balance
49
49
  ```
50
50
 
51
+ The default balance view shows the BCH (or token) amount plus its fiat value (e.g. `0.01218811 BCH` / `≈ 3.17 USD`). Fiat conversion is skipped when no price is available.
52
+
51
53
  ### Receive
52
54
 
53
55
  ```bash
@@ -63,11 +65,15 @@ paytaca receive --token <category> --amount 100 # PayPro URI with token amount
63
65
  ### Send
64
66
 
65
67
  ```bash
66
- paytaca send <address> <amount> # Send BCH
67
- paytaca send <address> 50000 --unit sats # Send in satoshis
68
- paytaca send <address> 0.001 --chipnet # Send on chipnet
68
+ paytaca send <address> <amount> # Send BCH (default currency: bch)
69
+ paytaca send <address> 50000 sats # Send in satoshis
70
+ paytaca send <address> 50000 satoshis # Send in satoshis (alias)
71
+ paytaca send <address> 10 usd # Send a USD amount (converted at live rate)
72
+ paytaca send <address> 0.001 --chipnet # Send on chipnet
69
73
  ```
70
74
 
75
+ The `[currency]` argument is positional: `bch` (default), `sats`/`satoshis`, or `usd`. When sending with `usd`, the current BCH-USD rate is fetched and applied, and the fiat value is shown inline with the amount.
76
+
71
77
  ### Transaction History
72
78
 
73
79
  ```bash
@@ -92,12 +98,24 @@ paytaca address list --token # List token-aware z-prefix addresses
92
98
  ### CashTokens
93
99
 
94
100
  ```bash
95
- paytaca token list # List fungible tokens with balances
96
- paytaca token info <category> # Token metadata, balance, and NFTs
101
+ paytaca token list # List fungible tokens with balances and USD values
102
+ paytaca token info <category> # Token metadata, balance, USD value, and NFTs
103
+ paytaca token price <category> [amount] # USD price of a token and value of an amount (default: balance)
97
104
  paytaca token send <address> <amount> --token <cat> # Send fungible tokens
98
105
  paytaca token send-nft <address> --token <cat> --commitment <hex> # Send an NFT
99
106
  ```
100
107
 
108
+ ### Swap (Cauldron DEX)
109
+
110
+ ```bash
111
+ paytaca swap <tokenId> <amount> # Sell tokens for BCH (default: sell)
112
+ paytaca swap <tokenId> <amount> --action buy # Buy tokens with BCH
113
+ paytaca swap <tokenId> <amount> --raw # Amount is in raw base units
114
+ paytaca swap <tokenId> <amount> --yes # Skip the confirmation prompt
115
+ ```
116
+
117
+ The `--action` option is `sell` (token→BCH) or `buy` (BCH→token). Swaps run on mainnet only.
118
+
101
119
  ### x402 Payments
102
120
 
103
121
  The x402 protocol enables HTTP payments via BCH. Some APIs (like nanogpt) require payment to access.
@@ -175,12 +193,13 @@ Powered by [@napi-rs/keyring](https://github.com/Brooooooklyn/keyring-node) (pre
175
193
  src/
176
194
  commands/ CLI command definitions (Commander.js)
177
195
  wallet.ts wallet create | import | info | export
178
- balance.ts balance display (BCH and CashTokens)
196
+ balance.ts balance display (BCH and CashTokens, USD conversion)
179
197
  receive.ts receiving address + QR code + payment URIs
180
- send.ts BCH sending
198
+ send.ts BCH sending (bch/sats/usd amounts)
181
199
  history.ts transaction history (BCH and CashTokens)
182
200
  address.ts HD address derivation (standard and z-prefix)
183
- token.ts CashToken commands (list, info, send, send-nft)
201
+ token.ts CashToken commands (list, info, price, send, send-nft)
202
+ swap.ts Cauldron DEX swaps (sell/buy with --action)
184
203
  pay.ts x402 BCH payment handler for HTTP requests
185
204
  check.ts Check if URL requires x402 payment
186
205
  wallet/
@@ -193,6 +212,7 @@ src/
193
212
  utils/
194
213
  crypto.ts pubkey -> CashAddress pipeline
195
214
  network.ts Watchtower URLs, derivation paths
215
+ prices.ts Watchtower asset-prices client (USD per token/BCH)
196
216
  x402.ts x402 header parsing, payment requirement selection
197
217
  types/
198
218
  x402.ts x402 payment types (PaymentRequired, PaymentPayload, etc.)
@@ -1 +1 @@
1
- {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAcnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0H7D"}
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAenC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoI7D"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import chalk from 'chalk';
11
11
  import { loadWallet, loadMnemonic } from '../wallet/index.js';
12
+ import { getBchUsdPrice, formatUsd, getUsdPerToken, tokenAmountToUsd } from '../utils/prices.js';
12
13
  /** Convert BCH to satoshis (1 BCH = 100,000,000 sats) */
13
14
  function bchToSats(bch) {
14
15
  return Math.round(bch * 1e8);
@@ -68,13 +69,20 @@ export function registerBalanceCommand(program) {
68
69
  const displayBalance = decimals > 0
69
70
  ? (result.balance / 10 ** decimals)
70
71
  : result.balance;
71
- const displaySpendable = decimals > 0
72
- ? (result.spendable / 10 ** decimals)
73
- : result.spendable;
74
72
  const unit = tokenSymbol || 'tokens';
73
+ let usdPerToken;
74
+ try {
75
+ const p = await getUsdPerToken(tokenId, isChipnet);
76
+ if (p !== null)
77
+ usdPerToken = p;
78
+ }
79
+ catch {
80
+ // Pricing unavailable — show token only
81
+ }
75
82
  console.log(` Balance: ${displayBalance} ${unit}`);
76
- if (result.spendable !== result.balance) {
77
- console.log(chalk.dim(` Spendable: ${displaySpendable} ${unit}`));
83
+ if (usdPerToken !== undefined) {
84
+ const usdValue = tokenAmountToUsd(result.balance, decimals, usdPerToken);
85
+ console.log(chalk.dim(` ≈ ${formatUsd(usdValue)}`));
78
86
  }
79
87
  }
80
88
  else {
@@ -90,11 +98,16 @@ export function registerBalanceCommand(program) {
90
98
  }
91
99
  }
92
100
  else {
101
+ let usdPerBch = null;
102
+ try {
103
+ usdPerBch = await getBchUsdPrice(isChipnet);
104
+ }
105
+ catch {
106
+ // USD price unavailable — show BCH only
107
+ }
93
108
  console.log(` Balance: ${result.balance} BCH`);
94
- console.log(chalk.dim(` ${formatSats(balanceSats)} sats`));
95
- if (result.spendable !== result.balance) {
96
- console.log(` Spendable: ${result.spendable} BCH`);
97
- console.log(chalk.dim(` ${formatSats(spendableSats)} sats`));
109
+ if (usdPerBch !== null) {
110
+ console.log(chalk.dim(` ≈ ${formatUsd(result.balance * usdPerBch)}`));
98
111
  }
99
112
  }
100
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA6BnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqJ7D"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA8BnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6J7D"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import chalk from 'chalk';
11
11
  import { loadWallet, loadMnemonic } from '../wallet/index.js';
12
+ import { formatUsd } from '../utils/prices.js';
12
13
  /** Convert BCH to satoshis (1 BCH = 100,000,000 sats) */
13
14
  function bchToSats(bch) {
14
15
  return Math.round(bch * 1e8);
@@ -112,9 +113,16 @@ export function registerHistoryCommand(program) {
112
113
  : showSats
113
114
  ? `${bchToSats(tx.amount).toLocaleString('en-US')} sats`
114
115
  : `${tx.amount} BCH`;
115
- const amountColored = isIncoming
116
+ let usdSuffix = '';
117
+ if (!tokenId && typeof tx.usd_price === 'number' && tx.usd_price > 0 && tx.amount != null) {
118
+ const usdValue = tx.amount * tx.usd_price;
119
+ if (usdValue > 0) {
120
+ usdSuffix = chalk.dim(` | ≈ ${formatUsd(usdValue)}`);
121
+ }
122
+ }
123
+ const amountColored = (isIncoming
116
124
  ? chalk.green(`+${amount}`)
117
- : chalk.red(`-${amount}`);
125
+ : chalk.red(`-${amount}`)) + usdSuffix;
118
126
  const date = formatDate(tx.tx_timestamp || tx.date_created);
119
127
  console.log(` ${arrow} ${amountColored}`);
120
128
  console.log(chalk.dim(` ${date}`));
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  /**
2
- * CLI command: send <address> <amount>
2
+ * CLI command: send <address> <amount> [currency]
3
3
  *
4
4
  * Sends BCH from the wallet to an external address.
5
+ * currency defaults to "bch"; also accepts "sats" / "satoshis" or "usd".
5
6
  *
6
7
  * The transaction flow is identical to paytaca-app:
7
8
  * 1. Load mnemonic + walletHash from keychain
@@ -1 +1 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyF1D"}
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqG1D"}
@@ -1,7 +1,8 @@
1
1
  /**
2
- * CLI command: send <address> <amount>
2
+ * CLI command: send <address> <amount> [currency]
3
3
  *
4
4
  * Sends BCH from the wallet to an external address.
5
+ * currency defaults to "bch"; also accepts "sats" / "satoshis" or "usd".
5
6
  *
6
7
  * The transaction flow is identical to paytaca-app:
7
8
  * 1. Load mnemonic + walletHash from keychain
@@ -16,17 +17,18 @@
16
17
  import chalk from 'chalk';
17
18
  import { Address } from 'watchtower-cash-js';
18
19
  import { loadWallet, loadMnemonic } from '../wallet/index.js';
20
+ import { getBchUsdPrice, formatUsd } from '../utils/prices.js';
19
21
  export function registerSendCommand(program) {
20
22
  program
21
23
  .command('send')
22
24
  .description('Send BCH to an address')
23
25
  .argument('<address>', 'Recipient BCH address (CashAddr format)')
24
26
  .argument('<amount>', 'Amount to send')
25
- .option('--unit <unit>', 'Amount unit: bch or sats (default: bch)', 'bch')
27
+ .argument('[currency]', 'Currency: bch (default), sats / satoshis, or usd', 'bch')
26
28
  .option('--chipnet', 'Use chipnet (testnet) instead of mainnet')
27
- .action(async (address, amountStr, opts) => {
29
+ .action(async (address, amountStr, currency, opts) => {
28
30
  const isChipnet = Boolean(opts.chipnet);
29
- const unit = opts.unit;
31
+ const unit = currency.toLowerCase();
30
32
  const network = isChipnet ? 'chipnet' : 'mainnet';
31
33
  // ── Validate wallet ──────────────────────────────────────────────
32
34
  const data = loadMnemonic();
@@ -40,11 +42,20 @@ export function registerSendCommand(program) {
40
42
  console.log(chalk.red('\nError: Amount must be a positive number.\n'));
41
43
  process.exit(1);
42
44
  }
43
- if (unit === 'sats') {
45
+ let usdPrice = null;
46
+ if (unit === 'sats' || unit === 'satoshis') {
44
47
  amountBch = amountBch / 1e8;
45
48
  }
49
+ else if (unit === 'usd') {
50
+ usdPrice = await getBchUsdPrice(isChipnet);
51
+ if (usdPrice === null) {
52
+ console.log(chalk.red('\nError: Unable to fetch current BCH-USD price.\n'));
53
+ process.exit(1);
54
+ }
55
+ amountBch = amountBch / usdPrice;
56
+ }
46
57
  else if (unit !== 'bch') {
47
- console.log(chalk.red('\nError: Unit must be "bch" or "sats".\n'));
58
+ console.log(chalk.red("\nError: Currency must be 'bch', 'sats'/'satoshis', or 'usd'.\n"));
48
59
  process.exit(1);
49
60
  }
50
61
  // ── Validate recipient address ───────────────────────────────────
@@ -61,7 +72,11 @@ export function registerSendCommand(program) {
61
72
  // Use the first receiving address as change address (same as paytaca-app default)
62
73
  const changeAddressSet = bchWallet.getAddressSetAt(0);
63
74
  const changeAddress = changeAddressSet.change;
64
- console.log(`\n Sending ${chalk.bold(amountBch + ' BCH')} on ${chalk.cyan(network)}`);
75
+ const bchFormatted = amountBch.toFixed(8).replace(/\.?0+$/, '');
76
+ console.log(`\n Sending ${chalk.bold(bchFormatted + ' BCH')}${usdPrice !== null ? chalk.dim(` (≈ ${formatUsd(amountBch * usdPrice)})`) : ''} on ${chalk.cyan(network)}`);
77
+ if (usdPrice !== null) {
78
+ console.log(chalk.dim(` Rate: 1 BCH = ${formatUsd(usdPrice)}`));
79
+ }
65
80
  console.log(chalk.dim(` To: ${address}`));
66
81
  console.log(chalk.dim(` Change: ${changeAddress}`));
67
82
  console.log();
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * CLI command: swap <tokenId> <amount>
3
+ *
4
+ * Swap a CashToken against BCH through Cauldron pools.
5
+ *
6
+ * Two directions:
7
+ * - sell (default): sell tokens for BCH
8
+ * - buy: spend BCH to buy tokens
9
+ *
10
+ * Shows a quote (rate, amounts, trade fee), asks for confirmation, then
11
+ * builds + signs the trade transaction and broadcasts it.
12
+ *
13
+ * Cauldron is a liquidity protocol on Bitcoin Cash. Swaps execute against
14
+ * the active pools advertised by the riften indexer; the trade transaction
15
+ * is built with @cashlab/cauldron's ExchangeLab (libauth templates).
16
+ */
17
+ import { Command } from 'commander';
18
+ export declare function registerSwapCommand(program: Command): void;
19
+ //# sourceMappingURL=swap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../src/commands/swap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA4BnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmH1D"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * CLI command: swap <tokenId> <amount>
3
+ *
4
+ * Swap a CashToken against BCH through Cauldron pools.
5
+ *
6
+ * Two directions:
7
+ * - sell (default): sell tokens for BCH
8
+ * - buy: spend BCH to buy tokens
9
+ *
10
+ * Shows a quote (rate, amounts, trade fee), asks for confirmation, then
11
+ * builds + signs the trade transaction and broadcasts it.
12
+ *
13
+ * Cauldron is a liquidity protocol on Bitcoin Cash. Swaps execute against
14
+ * the active pools advertised by the riften indexer; the trade transaction
15
+ * is built with @cashlab/cauldron's ExchangeLab (libauth templates).
16
+ */
17
+ import readline from 'readline';
18
+ import chalk from 'chalk';
19
+ import { loadWallet, loadMnemonic } from '../wallet/index.js';
20
+ import { BCH_DERIVATION_PATH } from '../utils/network.js';
21
+ import { executeSwap, estimateSwap, formatQuote, } from '../wallet/cauldron/swap.js';
22
+ import { fetchTokenData } from '../wallet/cauldron/api.js';
23
+ function promptConfirmation(message) {
24
+ const rl = readline.createInterface({
25
+ input: process.stdin,
26
+ output: process.stdout,
27
+ });
28
+ return new Promise((resolve) => {
29
+ rl.question(chalk.bold(`\n ${message} (y/N): `), (answer) => {
30
+ rl.close();
31
+ const confirmed = answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes';
32
+ resolve(confirmed);
33
+ });
34
+ });
35
+ }
36
+ export function registerSwapCommand(program) {
37
+ program
38
+ .command('swap')
39
+ .description('Swap a CashToken for BCH (sell) or BCH for a CashToken (buy)')
40
+ .argument('<tokenId>', '64-char hex token category to swap')
41
+ .argument('<amount>', 'Token amount (in the token\'s units)')
42
+ .option('--action <action>', 'Swap action: sell (token→BCH) or buy (BCH→token) (default: sell)', 'sell')
43
+ .option('--raw', 'Interpret <amount> as raw base units instead of decimal token units')
44
+ .option('--yes', 'Skip the confirmation prompt')
45
+ .option('--chipnet', 'Use chipnet (testnet) instead of mainnet')
46
+ .action(async (tokenId, amountStr, opts) => {
47
+ if (opts.chipnet) {
48
+ console.log(chalk.red('\nError: Cauldron swaps are not yet supported on chipnet.\n'));
49
+ process.exit(1);
50
+ }
51
+ const isChipnet = false;
52
+ const network = 'mainnet';
53
+ const direction = opts.action === 'buy' ? 'buy' : 'sell';
54
+ const data = loadMnemonic();
55
+ if (!data) {
56
+ console.log(chalk.red('\nNo wallet found. Run `paytaca wallet create` or `paytaca wallet import` first.\n'));
57
+ process.exit(1);
58
+ }
59
+ if (!/^[a-fA-F0-9]{64}$/.test(tokenId)) {
60
+ console.log(chalk.red('\nError: tokenId must be a 64-char hex token category.\n'));
61
+ process.exit(1);
62
+ }
63
+ const parsedAmount = parseFloat(amountStr);
64
+ if (isNaN(parsedAmount) || parsedAmount <= 0) {
65
+ console.log(chalk.red('\nError: Amount must be a positive number.\n'));
66
+ process.exit(1);
67
+ }
68
+ console.log(chalk.bold(`\n ${direction === 'buy' ? 'Buying' : 'Selling'} token on ${network}`));
69
+ console.log(chalk.dim(` Token: ${tokenId}`));
70
+ console.log();
71
+ try {
72
+ // Resolve token metadata for decimals + symbol
73
+ const tokenData = await fetchTokenData(tokenId);
74
+ if (!tokenData) {
75
+ console.log(chalk.red('\nError: No cauldron token data found for this token.\n'));
76
+ process.exit(1);
77
+ }
78
+ const decimals = tokenData.bcmr.token.decimals;
79
+ const symbol = tokenData.bcmr.token.symbol || tokenData.display_symbol;
80
+ // Convert decimal amount to base units
81
+ const amount = opts.raw
82
+ ? BigInt(parsedAmount)
83
+ : BigInt(Math.round(parsedAmount * 10 ** decimals));
84
+ // Show quote first
85
+ const quote = await estimateSwap({ tokenId, direction, amount });
86
+ console.log(chalk.cyan(' Quote:'));
87
+ for (const line of formatQuote(quote).split('\n')) {
88
+ console.log(` ${line}`);
89
+ }
90
+ console.log();
91
+ if (!opts.yes) {
92
+ const confirmed = await promptConfirmation('Confirm swap?');
93
+ if (!confirmed) {
94
+ console.log(chalk.yellow(' Swap cancelled.\n'));
95
+ process.exit(0);
96
+ }
97
+ }
98
+ const w = loadWallet();
99
+ const bchWallet = w.forNetwork(isChipnet);
100
+ const result = await executeSwap({
101
+ tokenId,
102
+ direction,
103
+ amount,
104
+ bchWallet,
105
+ mnemonic: data.mnemonic,
106
+ derivationPath: BCH_DERIVATION_PATH,
107
+ });
108
+ if (result.success) {
109
+ console.log(chalk.green('\n Swap successful!\n'));
110
+ if (result.txid) {
111
+ console.log(` txid: ${result.txid}`);
112
+ const explorer = isChipnet
113
+ ? 'https://chipnet.chaingraph.cash/tx/'
114
+ : 'https://bchexplorer.info/tx/';
115
+ console.log(chalk.dim(` ${explorer}${result.txid}`));
116
+ }
117
+ }
118
+ else {
119
+ console.log(chalk.red(`\n Swap failed: ${result.error || 'Unknown error'}\n`));
120
+ process.exit(1);
121
+ }
122
+ }
123
+ catch (err) {
124
+ console.log(chalk.red(`\n Error: ${err.message || err}\n`));
125
+ process.exit(1);
126
+ }
127
+ });
128
+ }
129
+ //# sourceMappingURL=swap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/commands/swap.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/commands/token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAqBnC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8Y5D"}
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/commands/token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2BnC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgjB5D"}