paytaca-cli 0.6.0 → 0.6.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.
- package/README.md +8 -4
- package/dist/commands/address.d.ts.map +1 -1
- package/dist/commands/address.js +14 -1
- package/dist/commands/address.js.map +1 -1
- package/dist/commands/balance.d.ts +4 -1
- package/dist/commands/balance.d.ts.map +1 -1
- package/dist/commands/balance.js +117 -27
- package/dist/commands/balance.js.map +1 -1
- package/dist/commands/receive.d.ts.map +1 -1
- package/dist/commands/receive.js +13 -0
- package/dist/commands/receive.js.map +1 -1
- package/package.json +2 -2
- package/skills/paytaca-wallet/SKILL.md +10 -1
- package/skills/paytaca-x402/SKILL.md +5 -5
package/README.md
CHANGED
|
@@ -49,10 +49,12 @@ paytaca wallet export # Display the stored seed phrase (interactive
|
|
|
49
49
|
paytaca balance # Show BCH balance with USD conversion
|
|
50
50
|
paytaca balance --sats # Show in satoshis only
|
|
51
51
|
paytaca balance --token <category> # Show balance for a specific CashToken
|
|
52
|
+
paytaca balance --tokens # Show CashToken balances only (balance > 0)
|
|
53
|
+
paytaca balance --all # Show BCH and CashToken balances
|
|
52
54
|
paytaca balance --chipnet # Query chipnet balance
|
|
53
55
|
```
|
|
54
56
|
|
|
55
|
-
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.
|
|
57
|
+
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. `--tokens` and `--all` list only tokens with a positive balance.
|
|
56
58
|
|
|
57
59
|
### Receive
|
|
58
60
|
|
|
@@ -66,6 +68,8 @@ paytaca receive --token <category> # PayPro URI for a specific token
|
|
|
66
68
|
paytaca receive --token <category> --amount 100 # PayPro URI with token amount
|
|
67
69
|
```
|
|
68
70
|
|
|
71
|
+
The displayed address (and its token-aware variant) is automatically subscribed with Watchtower so incoming BCH and CashTokens are monitored, even for indices not covered by the initial wallet scan.
|
|
72
|
+
|
|
69
73
|
### Send
|
|
70
74
|
|
|
71
75
|
```bash
|
|
@@ -122,7 +126,7 @@ The `--action` option is `sell` (token→BCH) or `buy` (BCH→token). Swaps run
|
|
|
122
126
|
|
|
123
127
|
### x402 Payments
|
|
124
128
|
|
|
125
|
-
The x402 protocol enables HTTP payments via BCH. Some APIs
|
|
129
|
+
The x402 protocol enables HTTP payments via BCH. Some APIs require payment to access.
|
|
126
130
|
|
|
127
131
|
```bash
|
|
128
132
|
paytaca check <url> # Check if URL requires payment, shows estimated cost
|
|
@@ -135,10 +139,10 @@ paytaca pay <url> --body '{"prompt":"hello"}'
|
|
|
135
139
|
|
|
136
140
|
**Example workflow:**
|
|
137
141
|
```bash
|
|
138
|
-
paytaca check https://api.
|
|
142
|
+
paytaca check https://api.example.com/v1/complete --json
|
|
139
143
|
# → {"paymentRequired": true, "estimatedCostSats": "100"}
|
|
140
144
|
|
|
141
|
-
paytaca pay https://api.
|
|
145
|
+
paytaca pay https://api.example.com/v1/complete --method POST --body '{"prompt":"hello"}'
|
|
142
146
|
# → Handles 402 → pays → returns response
|
|
143
147
|
```
|
|
144
148
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8G9D"}
|
package/dist/commands/address.js
CHANGED
|
@@ -20,7 +20,7 @@ export function registerAddressCommands(program) {
|
|
|
20
20
|
.argument('[index]', 'Address index (default: 0)', '0')
|
|
21
21
|
.option('--chipnet', 'Use chipnet (testnet) instead of mainnet')
|
|
22
22
|
.option('--token', 'Show token-aware (z-prefix) addresses for CashTokens')
|
|
23
|
-
.action((_index, opts) => {
|
|
23
|
+
.action(async (_index, opts) => {
|
|
24
24
|
const isChipnet = Boolean(opts.chipnet);
|
|
25
25
|
const isToken = Boolean(opts.token);
|
|
26
26
|
const index = parseInt(_index, 10);
|
|
@@ -39,6 +39,16 @@ export function registerAddressCommands(program) {
|
|
|
39
39
|
const addressSet = isToken
|
|
40
40
|
? bchWallet.getTokenAddressSetAt(index)
|
|
41
41
|
: bchWallet.getAddressSetAt(index);
|
|
42
|
+
// ── Subscribe the address with Watchtower ───────────────────────
|
|
43
|
+
// The backend derives the token-aware variant automatically, so this
|
|
44
|
+
// covers both BCH and CashToken payments to the derived addresses.
|
|
45
|
+
let subscribed = false;
|
|
46
|
+
try {
|
|
47
|
+
subscribed = Boolean(await bchWallet.getNewAddressSet(index));
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Non-critical: deriving the address should still succeed
|
|
51
|
+
}
|
|
42
52
|
const label = isToken ? 'Token address' : 'Address';
|
|
43
53
|
console.log(chalk.bold(`\n ${label} at index ${index} (${network})\n`));
|
|
44
54
|
console.log(` Receiving: ${addressSet.receiving}`);
|
|
@@ -46,6 +56,9 @@ export function registerAddressCommands(program) {
|
|
|
46
56
|
if (isToken) {
|
|
47
57
|
console.log(chalk.dim(' Type: token-aware (z-prefix)'));
|
|
48
58
|
}
|
|
59
|
+
console.log(subscribed
|
|
60
|
+
? chalk.dim(' Watching: subscribed with Watchtower')
|
|
61
|
+
: chalk.yellow(' Watching: not subscribed (address may not be monitored)'));
|
|
49
62
|
console.log();
|
|
50
63
|
});
|
|
51
64
|
// ── address list ───────────────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAE7D,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,+BAA+B,CAAC,CAAA;IAE/C,0EAA0E;IAC1E,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wDAAwD,CAAC;SACrE,QAAQ,CAAC,SAAS,EAAE,4BAA4B,EAAE,GAAG,CAAC;SACtD,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC;SAC/D,MAAM,CAAC,SAAS,EAAE,sDAAsD,CAAC;SACzE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/commands/address.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
* Shows both BCH and satoshi denominations, plus spendable vs total
|
|
6
6
|
* when they differ (e.g. unconfirmed UTXOs).
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* (default) BCH balance only
|
|
9
|
+
* --token <category> balance for a specific CashToken
|
|
10
|
+
* --tokens CashToken balances only (positive balances)
|
|
11
|
+
* --all BCH and CashToken balances
|
|
9
12
|
*/
|
|
10
13
|
import { Command } from 'commander';
|
|
11
14
|
export declare function registerBalanceCommand(program: Command): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmInC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoI7D"}
|
package/dist/commands/balance.js
CHANGED
|
@@ -5,11 +5,14 @@
|
|
|
5
5
|
* Shows both BCH and satoshi denominations, plus spendable vs total
|
|
6
6
|
* when they differ (e.g. unconfirmed UTXOs).
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* (default) BCH balance only
|
|
9
|
+
* --token <category> balance for a specific CashToken
|
|
10
|
+
* --tokens CashToken balances only (positive balances)
|
|
11
|
+
* --all BCH and CashToken balances
|
|
9
12
|
*/
|
|
10
13
|
import chalk from 'chalk';
|
|
11
14
|
import { loadWallet, loadMnemonic } from '../wallet/index.js';
|
|
12
|
-
import { getBchUsdPrice, formatUsd, getUsdPerToken, tokenAmountToUsd } from '../utils/prices.js';
|
|
15
|
+
import { getBchUsdPrice, formatUsd, fetchAssetPrices, getUsdPerToken, tokenAmountToUsd, } from '../utils/prices.js';
|
|
13
16
|
/** Convert BCH to satoshis (1 BCH = 100,000,000 sats) */
|
|
14
17
|
function bchToSats(bch) {
|
|
15
18
|
return Math.round(bch * 1e8);
|
|
@@ -18,22 +21,120 @@ function bchToSats(bch) {
|
|
|
18
21
|
function formatSats(sats) {
|
|
19
22
|
return sats.toLocaleString('en-US');
|
|
20
23
|
}
|
|
24
|
+
/** Format a token amount with decimals */
|
|
25
|
+
function formatTokenAmount(rawAmount, decimals) {
|
|
26
|
+
if (decimals === 0)
|
|
27
|
+
return rawAmount.toLocaleString('en-US');
|
|
28
|
+
const scaled = rawAmount / Math.pow(10, decimals);
|
|
29
|
+
return scaled.toLocaleString('en-US', {
|
|
30
|
+
minimumFractionDigits: 0,
|
|
31
|
+
maximumFractionDigits: decimals,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/** Print the BCH balance (BCH + USD, or sats with --sats). */
|
|
35
|
+
async function showBchBalance(bchWallet, isChipnet, showSatsOnly) {
|
|
36
|
+
const result = await bchWallet.getBalance();
|
|
37
|
+
const balanceSats = bchToSats(result.balance);
|
|
38
|
+
const spendableSats = bchToSats(result.spendable);
|
|
39
|
+
if (showSatsOnly) {
|
|
40
|
+
console.log(` Balance: ${formatSats(balanceSats)} sats`);
|
|
41
|
+
if (result.spendable !== result.balance) {
|
|
42
|
+
console.log(chalk.dim(` Spendable: ${formatSats(spendableSats)} sats`));
|
|
43
|
+
}
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
let usdPerBch = null;
|
|
47
|
+
try {
|
|
48
|
+
usdPerBch = await getBchUsdPrice(isChipnet);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// USD price unavailable — show BCH only
|
|
52
|
+
}
|
|
53
|
+
console.log(` Balance: ${result.balance} BCH`);
|
|
54
|
+
if (usdPerBch !== null) {
|
|
55
|
+
console.log(chalk.dim(` ≈ ${formatUsd(result.balance * usdPerBch)}`));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** Print CashToken balances, excluding tokens with a zero balance. */
|
|
59
|
+
async function showTokenBalances(bchWallet, isChipnet) {
|
|
60
|
+
const tokens = (await bchWallet.getFungibleTokens()).filter((t) => t.balance > 0);
|
|
61
|
+
if (tokens.length === 0) {
|
|
62
|
+
console.log(chalk.dim(' No CashTokens with a positive balance.\n'));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// Fetch USD prices for all held tokens (batched by the util)
|
|
66
|
+
const prices = new Map();
|
|
67
|
+
try {
|
|
68
|
+
const priceData = await fetchAssetPrices(tokens.map((t) => `ct/${t.category}`), ['USD'], isChipnet);
|
|
69
|
+
for (const p of priceData) {
|
|
70
|
+
if (String(p.currency || '').toLowerCase() !== 'usd')
|
|
71
|
+
continue;
|
|
72
|
+
const catMatch = String(p.asset || '').match(/^ct\/([a-fA-F0-9]+)$/);
|
|
73
|
+
if (!catMatch)
|
|
74
|
+
continue;
|
|
75
|
+
const raw = parseFloat(p.price_value);
|
|
76
|
+
if (!isFinite(raw) || raw === 0)
|
|
77
|
+
continue;
|
|
78
|
+
prices.set(catMatch[1], 1 / raw);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// Pricing unavailable — proceed without USD values
|
|
83
|
+
}
|
|
84
|
+
let totalUsd = 0;
|
|
85
|
+
let pricedCount = 0;
|
|
86
|
+
console.log(chalk.dim(' Tokens:'));
|
|
87
|
+
for (const t of tokens) {
|
|
88
|
+
const amount = formatTokenAmount(t.balance, t.decimals);
|
|
89
|
+
const symbol = t.symbol ? ` ${t.symbol}` : '';
|
|
90
|
+
const name = t.name !== 'Unknown Token' ? t.name : '';
|
|
91
|
+
const usdPerToken = prices.get(t.category);
|
|
92
|
+
console.log(` ${chalk.bold(amount + symbol)}`);
|
|
93
|
+
if (name) {
|
|
94
|
+
console.log(chalk.dim(` ${name}`));
|
|
95
|
+
}
|
|
96
|
+
console.log(chalk.dim(` ${t.category}`));
|
|
97
|
+
if (usdPerToken !== undefined) {
|
|
98
|
+
const usdValue = tokenAmountToUsd(t.balance, t.decimals, usdPerToken);
|
|
99
|
+
totalUsd += usdValue;
|
|
100
|
+
pricedCount += 1;
|
|
101
|
+
console.log(chalk.green(` ≈ ${formatUsd(usdValue)}`));
|
|
102
|
+
}
|
|
103
|
+
console.log();
|
|
104
|
+
}
|
|
105
|
+
console.log(chalk.dim(` ${tokens.length} token${tokens.length !== 1 ? 's' : ''} with balance`));
|
|
106
|
+
if (pricedCount > 0) {
|
|
107
|
+
console.log(chalk.bold(` Total: ${formatUsd(totalUsd)}`));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
21
110
|
export function registerBalanceCommand(program) {
|
|
22
111
|
program
|
|
23
112
|
.command('balance')
|
|
24
113
|
.description('Display wallet balance')
|
|
25
114
|
.option('--chipnet', 'Use chipnet (testnet) instead of mainnet')
|
|
26
115
|
.option('--token <id>', 'Show balance for a specific CashToken category (64-character hex)')
|
|
27
|
-
.option('--
|
|
116
|
+
.option('--tokens', 'Show CashToken balances only (excludes BCH)')
|
|
117
|
+
.option('--all', 'Show BCH and CashToken balances')
|
|
118
|
+
.option('--sats', 'Display BCH balance in satoshis only')
|
|
28
119
|
.action(async (opts) => {
|
|
29
120
|
const isChipnet = Boolean(opts.chipnet);
|
|
30
121
|
const showSatsOnly = Boolean(opts.sats);
|
|
122
|
+
const showTokens = Boolean(opts.tokens);
|
|
123
|
+
const showAll = Boolean(opts.all);
|
|
31
124
|
const network = isChipnet ? 'chipnet' : 'mainnet';
|
|
32
125
|
const tokenId = opts.token || '';
|
|
33
126
|
if (tokenId && !/^[a-fA-F0-9]{64}$/.test(tokenId)) {
|
|
34
127
|
console.log(chalk.red('\nError: Token must be a 64-character hex string.\n'));
|
|
35
128
|
process.exit(1);
|
|
36
129
|
}
|
|
130
|
+
if (showTokens && showAll) {
|
|
131
|
+
console.log(chalk.red('\nError: --tokens and --all cannot be used together.\n'));
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
if (tokenId && (showTokens || showAll)) {
|
|
135
|
+
console.log(chalk.red('\nError: --token cannot be combined with --tokens or --all.\n'));
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
37
138
|
// ── Validate wallet ──────────────────────────────────────────────
|
|
38
139
|
const data = loadMnemonic();
|
|
39
140
|
if (!data) {
|
|
@@ -44,7 +145,7 @@ export function registerBalanceCommand(program) {
|
|
|
44
145
|
const bchWallet = w.forNetwork(isChipnet);
|
|
45
146
|
try {
|
|
46
147
|
if (tokenId) {
|
|
47
|
-
// ──
|
|
148
|
+
// ── Specific token balance ──────────────────────────────────
|
|
48
149
|
let tokenName = '';
|
|
49
150
|
let tokenSymbol = '';
|
|
50
151
|
let decimals = 0;
|
|
@@ -85,31 +186,20 @@ export function registerBalanceCommand(program) {
|
|
|
85
186
|
console.log(chalk.dim(` ≈ ${formatUsd(usdValue)}`));
|
|
86
187
|
}
|
|
87
188
|
}
|
|
189
|
+
else if (showTokens || showAll) {
|
|
190
|
+
// ── Token balances, optionally with BCH ─────────────────────
|
|
191
|
+
const title = showAll ? 'Balances' : 'Token Balances';
|
|
192
|
+
console.log(chalk.bold(`\n ${title} (${network})\n`));
|
|
193
|
+
if (showAll) {
|
|
194
|
+
await showBchBalance(bchWallet, isChipnet, showSatsOnly);
|
|
195
|
+
console.log();
|
|
196
|
+
}
|
|
197
|
+
await showTokenBalances(bchWallet, isChipnet);
|
|
198
|
+
}
|
|
88
199
|
else {
|
|
89
|
-
// ── BCH balance
|
|
200
|
+
// ── BCH balance ─────────────────────────────────────────────
|
|
90
201
|
console.log(chalk.bold(`\n Balance (${network})\n`));
|
|
91
|
-
|
|
92
|
-
const balanceSats = bchToSats(result.balance);
|
|
93
|
-
const spendableSats = bchToSats(result.spendable);
|
|
94
|
-
if (showSatsOnly) {
|
|
95
|
-
console.log(` Balance: ${formatSats(balanceSats)} sats`);
|
|
96
|
-
if (result.spendable !== result.balance) {
|
|
97
|
-
console.log(chalk.dim(` Spendable: ${formatSats(spendableSats)} sats`));
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
let usdPerBch = null;
|
|
102
|
-
try {
|
|
103
|
-
usdPerBch = await getBchUsdPrice(isChipnet);
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
// USD price unavailable — show BCH only
|
|
107
|
-
}
|
|
108
|
-
console.log(` Balance: ${result.balance} BCH`);
|
|
109
|
-
if (usdPerBch !== null) {
|
|
110
|
-
console.log(chalk.dim(` ≈ ${formatUsd(result.balance * usdPerBch)}`));
|
|
111
|
-
}
|
|
112
|
-
}
|
|
202
|
+
await showBchBalance(bchWallet, isChipnet, showSatsOnly);
|
|
113
203
|
}
|
|
114
204
|
}
|
|
115
205
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/commands/balance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receive.d.ts","sourceRoot":"","sources":["../../src/commands/receive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAwCnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"receive.d.ts","sourceRoot":"","sources":["../../src/commands/receive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAwCnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2J7D"}
|
package/dist/commands/receive.js
CHANGED
|
@@ -90,6 +90,16 @@ export function registerReceiveCommand(program) {
|
|
|
90
90
|
const address = isToken
|
|
91
91
|
? bchWallet.getTokenAddressSetAt(index).receiving
|
|
92
92
|
: bchWallet.getAddressSetAt(index).receiving;
|
|
93
|
+
// ── Subscribe the address with Watchtower ───────────────────────
|
|
94
|
+
// The backend derives the token-aware variant automatically, so this
|
|
95
|
+
// covers both BCH and CashToken payments to the displayed address.
|
|
96
|
+
let subscribed = false;
|
|
97
|
+
try {
|
|
98
|
+
subscribed = Boolean(await bchWallet.getNewAddressSet(index));
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// Non-critical: displaying the address should still succeed
|
|
102
|
+
}
|
|
93
103
|
// ── Resolve token metadata (if category specified) ─────────────
|
|
94
104
|
let tokenInfo = null;
|
|
95
105
|
let tokenName = '';
|
|
@@ -131,6 +141,9 @@ export function registerReceiveCommand(program) {
|
|
|
131
141
|
console.log(chalk.bold(`\n ${label} (${network})\n`));
|
|
132
142
|
console.log(` Address: ${address}`);
|
|
133
143
|
console.log(chalk.dim(` Index: ${index}`));
|
|
144
|
+
console.log(subscribed
|
|
145
|
+
? chalk.dim(' Watching: subscribed with Watchtower')
|
|
146
|
+
: chalk.yellow(' Watching: not subscribed (address may not be monitored)'));
|
|
134
147
|
if (isToken) {
|
|
135
148
|
console.log(chalk.dim(' Type: token-aware (z-prefix)'));
|
|
136
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"receive.js","sourceRoot":"","sources":["../../src/commands/receive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"receive.js","sourceRoot":"","sources":["../../src/commands/receive.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "paytaca-cli",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.2",
|
|
4
4
|
"description": "Command-line interface for the Paytaca Bitcoin Cash wallet",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"js-sha256": "^0.9.0",
|
|
50
50
|
"nostr-tools": "^2.23.3",
|
|
51
51
|
"qrcode-terminal": "^0.12.0",
|
|
52
|
-
"watchtower-cash-js": "^0.2
|
|
52
|
+
"watchtower-cash-js": "^0.3.2"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@types/node": "^22.0.0",
|
|
@@ -18,7 +18,13 @@ paytaca balance
|
|
|
18
18
|
# Balance in satoshis
|
|
19
19
|
paytaca balance --sats
|
|
20
20
|
|
|
21
|
-
#
|
|
21
|
+
# CashToken balances only (positive balances)
|
|
22
|
+
paytaca balance --tokens
|
|
23
|
+
|
|
24
|
+
# BCH and CashToken balances
|
|
25
|
+
paytaca balance --all
|
|
26
|
+
|
|
27
|
+
# Balance for a specific token
|
|
22
28
|
paytaca balance --token <category>
|
|
23
29
|
|
|
24
30
|
# Testnet (chipnet)
|
|
@@ -67,6 +73,8 @@ paytaca receive --amount 0.5
|
|
|
67
73
|
paytaca receive --token <category> --amount 100
|
|
68
74
|
```
|
|
69
75
|
|
|
76
|
+
The displayed address (and its token-aware variant) is auto-subscribed with Watchtower, so incoming BCH and CashTokens are monitored even at indices beyond the initial wallet scan.
|
|
77
|
+
|
|
70
78
|
### Derive Addresses
|
|
71
79
|
|
|
72
80
|
```bash
|
|
@@ -144,6 +152,7 @@ paytaca receive
|
|
|
144
152
|
|
|
145
153
|
### Check token holdings
|
|
146
154
|
```bash
|
|
155
|
+
paytaca balance --tokens
|
|
147
156
|
paytaca token list
|
|
148
157
|
paytaca token info <category>
|
|
149
158
|
```
|
|
@@ -9,7 +9,7 @@ This skill teaches the agent how to handle x402-based HTTP payments using the Pa
|
|
|
9
9
|
|
|
10
10
|
## Overview
|
|
11
11
|
|
|
12
|
-
Some APIs
|
|
12
|
+
Some APIs use the x402 protocol for HTTP payments. When you call these APIs:
|
|
13
13
|
- Server returns **HTTP 402 PAYMENT REQUIRED**
|
|
14
14
|
- You must pay with BCH to access the resource
|
|
15
15
|
- After payment, the server returns the actual response
|
|
@@ -26,7 +26,7 @@ paytaca check <url> --json
|
|
|
26
26
|
Example output:
|
|
27
27
|
```json
|
|
28
28
|
{
|
|
29
|
-
"url": "https://api.
|
|
29
|
+
"url": "https://api.example.com/v1/complete",
|
|
30
30
|
"acceptsX402": true,
|
|
31
31
|
"acceptsBch": true,
|
|
32
32
|
"paymentRequired": true,
|
|
@@ -101,14 +101,14 @@ Do NOT assume the user wants to pay - even if the cost seems small.
|
|
|
101
101
|
## AI Agent Workflow
|
|
102
102
|
|
|
103
103
|
```
|
|
104
|
-
Task: Call
|
|
105
|
-
Agent: paytaca check https://api.
|
|
104
|
+
Task: Call a paid API
|
|
105
|
+
Agent: paytaca check https://api.example.com/v1/complete --json
|
|
106
106
|
→ {"acceptsBch": true, "estimatedCostSats": "100"}
|
|
107
107
|
|
|
108
108
|
Agent: Informs user "This API costs 100 sats (0.00000100 BCH). Approve to proceed?"
|
|
109
109
|
User: "yes"
|
|
110
110
|
|
|
111
|
-
Agent: paytaca pay https://api.
|
|
111
|
+
Agent: paytaca pay https://api.example.com/v1/complete --method POST --body '{"prompt":"hello"}' --confirmed --json
|
|
112
112
|
→ Handles 402 → pays 100 sats → returns response with txid
|
|
113
113
|
```
|
|
114
114
|
|