paytaca-cli 0.6.2 → 0.8.0
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 +183 -34
- package/dist/ai/autoRefill.d.ts +85 -0
- package/dist/ai/autoRefill.d.ts.map +1 -0
- package/dist/ai/autoRefill.js +266 -0
- package/dist/ai/autoRefill.js.map +1 -0
- package/dist/ai/client.d.ts +73 -0
- package/dist/ai/client.d.ts.map +1 -0
- package/dist/ai/client.js +90 -0
- package/dist/ai/client.js.map +1 -0
- package/dist/ai/config.d.ts +8 -0
- package/dist/ai/config.d.ts.map +1 -0
- package/dist/ai/config.js +17 -0
- package/dist/ai/config.js.map +1 -0
- package/dist/ai/configure.d.ts +61 -0
- package/dist/ai/configure.d.ts.map +1 -0
- package/dist/ai/configure.js +452 -0
- package/dist/ai/configure.js.map +1 -0
- package/dist/ai/credits.d.ts +27 -0
- package/dist/ai/credits.d.ts.map +1 -0
- package/dist/ai/credits.js +108 -0
- package/dist/ai/credits.js.map +1 -0
- package/dist/ai/images.d.ts +128 -0
- package/dist/ai/images.d.ts.map +1 -0
- package/dist/ai/images.js +399 -0
- package/dist/ai/images.js.map +1 -0
- package/dist/ai/models.d.ts +13 -0
- package/dist/ai/models.d.ts.map +1 -0
- package/dist/ai/models.js +49 -0
- package/dist/ai/models.js.map +1 -0
- package/dist/ai/oauth.d.ts +45 -0
- package/dist/ai/oauth.d.ts.map +1 -0
- package/dist/ai/oauth.js +137 -0
- package/dist/ai/oauth.js.map +1 -0
- package/dist/ai/purchase.d.ts +30 -0
- package/dist/ai/purchase.d.ts.map +1 -0
- package/dist/ai/purchase.js +456 -0
- package/dist/ai/purchase.js.map +1 -0
- package/dist/commands/address.d.ts.map +1 -1
- package/dist/commands/address.js +86 -47
- package/dist/commands/address.js.map +1 -1
- package/dist/commands/ai.d.ts +9 -0
- package/dist/commands/ai.d.ts.map +1 -0
- package/dist/commands/ai.js +951 -0
- package/dist/commands/ai.js.map +1 -0
- package/dist/commands/balance.d.ts.map +1 -1
- package/dist/commands/balance.js +68 -129
- package/dist/commands/balance.js.map +1 -1
- package/dist/commands/history.d.ts.map +1 -1
- package/dist/commands/history.js +38 -78
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/mcp.d.ts +14 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +68 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/pay.js +1 -1
- package/dist/commands/pay.js.map +1 -1
- package/dist/commands/receive.d.ts +1 -8
- package/dist/commands/receive.d.ts.map +1 -1
- package/dist/commands/receive.js +51 -124
- package/dist/commands/receive.js.map +1 -1
- package/dist/commands/send.d.ts +0 -10
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +40 -50
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/swap.js +1 -1
- package/dist/commands/swap.js.map +1 -1
- package/dist/commands/token.d.ts +1 -9
- package/dist/commands/token.d.ts.map +1 -1
- package/dist/commands/token.js +192 -289
- package/dist/commands/token.js.map +1 -1
- package/dist/commands/update.d.ts +32 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +200 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/wallet.js +1 -1
- package/dist/commands/wallet.js.map +1 -1
- package/dist/commands/web.d.ts +3 -0
- package/dist/commands/web.d.ts.map +1 -0
- package/dist/commands/web.js +71 -0
- package/dist/commands/web.js.map +1 -0
- package/dist/core/context.d.ts +30 -0
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +45 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/wallet.d.ts +130 -0
- package/dist/core/wallet.d.ts.map +1 -0
- package/dist/core/wallet.js +276 -0
- package/dist/core/wallet.js.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +8 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +52 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +7 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +752 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/utils/format.d.ts +23 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +62 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/x402.js +1 -1
- package/dist/utils/x402.js.map +1 -1
- package/dist/wallet/cauldron/swap.d.ts +15 -0
- package/dist/wallet/cauldron/swap.d.ts.map +1 -1
- package/dist/wallet/cauldron/swap.js +31 -0
- package/dist/wallet/cauldron/swap.js.map +1 -1
- package/dist/wallet/index.d.ts +29 -1
- package/dist/wallet/index.d.ts.map +1 -1
- package/dist/wallet/index.js +92 -8
- package/dist/wallet/index.js.map +1 -1
- package/dist/wallet/keys.d.ts.map +1 -1
- package/dist/wallet/keys.js +2 -0
- package/dist/wallet/keys.js.map +1 -1
- package/dist/web/assets.d.ts +3 -0
- package/dist/web/assets.d.ts.map +1 -0
- package/dist/web/assets.js +3 -0
- package/dist/web/assets.js.map +1 -0
- package/dist/web/page.d.ts +2 -0
- package/dist/web/page.d.ts.map +1 -0
- package/dist/web/page.js +637 -0
- package/dist/web/page.js.map +1 -0
- package/dist/web/server.d.ts +79 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +665 -0
- package/dist/web/server.js.map +1 -0
- package/package.json +8 -3
- package/dist/commands/wallet.test.d.ts +0 -2
- package/dist/commands/wallet.test.d.ts.map +0 -1
- package/dist/commands/wallet.test.js +0 -68
- package/dist/commands/wallet.test.js.map +0 -1
- package/dist/nostr/chat.test.d.ts +0 -2
- package/dist/nostr/chat.test.d.ts.map +0 -1
- package/dist/nostr/chat.test.js +0 -121
- package/dist/nostr/chat.test.js.map +0 -1
- package/dist/nostr/store.test.d.ts +0 -2
- package/dist/nostr/store.test.d.ts.map +0 -1
- package/dist/nostr/store.test.js +0 -456
- package/dist/nostr/store.test.js.map +0 -1
- package/dist/utils/prices.test.d.ts +0 -5
- package/dist/utils/prices.test.d.ts.map +0 -1
- package/dist/utils/prices.test.js +0 -62
- package/dist/utils/prices.test.js.map +0 -1
- package/dist/utils/x402.test.d.ts +0 -2
- package/dist/utils/x402.test.d.ts.map +0 -1
- package/dist/utils/x402.test.js +0 -216
- package/dist/utils/x402.test.js.map +0 -1
- package/dist/wallet/cauldron/pools.test.d.ts +0 -3
- package/dist/wallet/cauldron/pools.test.d.ts.map +0 -1
- package/dist/wallet/cauldron/pools.test.js +0 -149
- package/dist/wallet/cauldron/pools.test.js.map +0 -1
- package/dist/wallet/cauldron/swap.test.d.ts +0 -2
- package/dist/wallet/cauldron/swap.test.d.ts.map +0 -1
- package/dist/wallet/cauldron/swap.test.js +0 -179
- package/dist/wallet/cauldron/swap.test.js.map +0 -1
- package/skills/README.md +0 -68
- package/skills/paytaca-send/SKILL.md +0 -159
- package/skills/paytaca-wallet/SKILL.md +0 -164
- package/skills/paytaca-x402/SKILL.md +0 -130
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core wallet operations returning typed, render-agnostic results.
|
|
3
|
+
*
|
|
4
|
+
* Both the CLI commands and the MCP tools call these functions.
|
|
5
|
+
* No chalk, no process.exit(), no console output.
|
|
6
|
+
*/
|
|
7
|
+
import { resolveNetwork, type Network } from './context.js';
|
|
8
|
+
import type { NftUtxo } from '../wallet/bch.js';
|
|
9
|
+
export interface BalanceView {
|
|
10
|
+
network: Network;
|
|
11
|
+
walletHash: string;
|
|
12
|
+
balanceBch: number;
|
|
13
|
+
balanceSats: number;
|
|
14
|
+
spendableBch: number;
|
|
15
|
+
spendableSats: number;
|
|
16
|
+
usdPerBch: number | null;
|
|
17
|
+
usd: number | null;
|
|
18
|
+
}
|
|
19
|
+
export interface TokenBalanceView {
|
|
20
|
+
category: string;
|
|
21
|
+
name: string;
|
|
22
|
+
symbol: string;
|
|
23
|
+
decimals: number;
|
|
24
|
+
rawBalance: number;
|
|
25
|
+
displayBalance: string;
|
|
26
|
+
usdPerToken: number | null;
|
|
27
|
+
usd: number | null;
|
|
28
|
+
}
|
|
29
|
+
export interface TokenListResult {
|
|
30
|
+
network: Network;
|
|
31
|
+
walletHash: string;
|
|
32
|
+
tokens: TokenBalanceView[];
|
|
33
|
+
}
|
|
34
|
+
export interface TokenDetailResult {
|
|
35
|
+
network: Network;
|
|
36
|
+
walletHash: string;
|
|
37
|
+
category: string;
|
|
38
|
+
name: string;
|
|
39
|
+
symbol: string;
|
|
40
|
+
decimals: number;
|
|
41
|
+
rawBalance: number;
|
|
42
|
+
displayBalance: string;
|
|
43
|
+
usdPerToken: number | null;
|
|
44
|
+
usd: number | null;
|
|
45
|
+
nfts: NftUtxo[];
|
|
46
|
+
}
|
|
47
|
+
export interface HistoryRecord {
|
|
48
|
+
record_type: 'outgoing' | 'incoming';
|
|
49
|
+
txid: string;
|
|
50
|
+
amount: number;
|
|
51
|
+
tx_fee: number;
|
|
52
|
+
senders: any[][];
|
|
53
|
+
recipients: any[][];
|
|
54
|
+
date_created: string;
|
|
55
|
+
tx_timestamp: string;
|
|
56
|
+
usd_price: number;
|
|
57
|
+
market_prices: Record<string, number>;
|
|
58
|
+
attributes: any;
|
|
59
|
+
}
|
|
60
|
+
export interface HistoryView {
|
|
61
|
+
network: Network;
|
|
62
|
+
tokenId: string;
|
|
63
|
+
headerLabel: string;
|
|
64
|
+
records: HistoryRecord[];
|
|
65
|
+
page: number;
|
|
66
|
+
numPages: number;
|
|
67
|
+
hasNext: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface ReceiveAddressView {
|
|
70
|
+
network: Network;
|
|
71
|
+
address: string;
|
|
72
|
+
index: number;
|
|
73
|
+
token: boolean;
|
|
74
|
+
category: string;
|
|
75
|
+
tokenName: string;
|
|
76
|
+
decimals: number;
|
|
77
|
+
amount: number | undefined;
|
|
78
|
+
paymentUri: string;
|
|
79
|
+
qrContent: string;
|
|
80
|
+
subscribed: boolean;
|
|
81
|
+
}
|
|
82
|
+
export interface WalletInfoView {
|
|
83
|
+
network: Network;
|
|
84
|
+
walletHash: string;
|
|
85
|
+
address: string;
|
|
86
|
+
balance: BalanceView;
|
|
87
|
+
}
|
|
88
|
+
export interface SendOutcome {
|
|
89
|
+
network: Network;
|
|
90
|
+
success: boolean;
|
|
91
|
+
txid?: string;
|
|
92
|
+
explorerUrl?: string;
|
|
93
|
+
error?: string;
|
|
94
|
+
lackingSats?: string;
|
|
95
|
+
}
|
|
96
|
+
export declare function getBalanceView(isChipnet?: boolean): Promise<BalanceView>;
|
|
97
|
+
export declare function getTokenBalances(isChipnet?: boolean, opts?: {
|
|
98
|
+
includeZero?: boolean;
|
|
99
|
+
}): Promise<TokenListResult>;
|
|
100
|
+
export declare function getTokenDetail(category: string, isChipnet?: boolean): Promise<TokenDetailResult>;
|
|
101
|
+
export declare function getHistoryView(opts?: {
|
|
102
|
+
page?: number;
|
|
103
|
+
recordType?: string;
|
|
104
|
+
tokenId?: string;
|
|
105
|
+
}, isChipnet?: boolean): Promise<HistoryView>;
|
|
106
|
+
export declare function buildBchPaymentUri(address: string, amount?: number): string;
|
|
107
|
+
export declare function buildTokenPaymentUri(address: string, category: string, baseUnitAmount?: number): string;
|
|
108
|
+
export declare function getReceiveAddressView(opts?: {
|
|
109
|
+
index?: number;
|
|
110
|
+
token?: boolean;
|
|
111
|
+
category?: string;
|
|
112
|
+
amount?: number;
|
|
113
|
+
subscribe?: boolean;
|
|
114
|
+
}, isChipnet?: boolean): Promise<ReceiveAddressView>;
|
|
115
|
+
export declare function getWalletInfoView(isChipnet?: boolean): Promise<WalletInfoView>;
|
|
116
|
+
export declare function isValidBchAddress(address: string, isChipnet: boolean): boolean;
|
|
117
|
+
export declare function isTokenAddress(address: string): boolean;
|
|
118
|
+
export declare function sendBch(opts: {
|
|
119
|
+
address: string;
|
|
120
|
+
amountBch: number;
|
|
121
|
+
changeAddress?: string;
|
|
122
|
+
}, isChipnet?: boolean): Promise<SendOutcome>;
|
|
123
|
+
export declare function sendToken(opts: {
|
|
124
|
+
category: string;
|
|
125
|
+
amount: bigint;
|
|
126
|
+
address: string;
|
|
127
|
+
changeAddress?: string;
|
|
128
|
+
}, isChipnet?: boolean): Promise<SendOutcome>;
|
|
129
|
+
export { resolveNetwork };
|
|
130
|
+
//# sourceMappingURL=wallet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/core/wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core wallet operations returning typed, render-agnostic results.
|
|
3
|
+
*
|
|
4
|
+
* Both the CLI commands and the MCP tools call these functions.
|
|
5
|
+
* No chalk, no process.exit(), no console output.
|
|
6
|
+
*/
|
|
7
|
+
import { Address } from 'watchtower-cash-js';
|
|
8
|
+
import { requireWallet, resolveNetwork } from './context.js';
|
|
9
|
+
import { bchToSats, explorerTxUrl, formatTokenAmount } from '../utils/format.js';
|
|
10
|
+
import { fetchAssetPrices, getBchUsdPrice, getUsdPerToken, tokenAmountToUsd, } from '../utils/prices.js';
|
|
11
|
+
async function fetchTokenPriceMap(categories, isChipnet) {
|
|
12
|
+
const prices = new Map();
|
|
13
|
+
if (categories.length === 0)
|
|
14
|
+
return prices;
|
|
15
|
+
try {
|
|
16
|
+
const priceData = await fetchAssetPrices(categories.map((c) => `ct/${c}`), ['USD'], isChipnet);
|
|
17
|
+
for (const p of priceData) {
|
|
18
|
+
if (String(p.currency || '').toLowerCase() !== 'usd')
|
|
19
|
+
continue;
|
|
20
|
+
const catMatch = String(p.asset || '').match(/^ct\/([a-fA-F0-9]+)$/);
|
|
21
|
+
if (!catMatch)
|
|
22
|
+
continue;
|
|
23
|
+
const raw = parseFloat(p.price_value);
|
|
24
|
+
if (!isFinite(raw) || raw === 0)
|
|
25
|
+
continue;
|
|
26
|
+
prices.set(catMatch[1], 1 / raw);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// Pricing unavailable — proceed without USD values
|
|
31
|
+
}
|
|
32
|
+
return prices;
|
|
33
|
+
}
|
|
34
|
+
export async function getBalanceView(isChipnet = false) {
|
|
35
|
+
const ctx = requireWallet(isChipnet);
|
|
36
|
+
const result = await ctx.bch.getBalance();
|
|
37
|
+
let usdPerBch = null;
|
|
38
|
+
try {
|
|
39
|
+
usdPerBch = await getBchUsdPrice(isChipnet);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// USD price unavailable
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
network: ctx.network,
|
|
46
|
+
walletHash: ctx.walletHash,
|
|
47
|
+
balanceBch: result.balance,
|
|
48
|
+
balanceSats: bchToSats(result.balance),
|
|
49
|
+
spendableBch: result.spendable,
|
|
50
|
+
spendableSats: bchToSats(result.spendable),
|
|
51
|
+
usdPerBch,
|
|
52
|
+
usd: usdPerBch !== null ? result.balance * usdPerBch : null,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export async function getTokenBalances(isChipnet = false, opts = {}) {
|
|
56
|
+
const ctx = requireWallet(isChipnet);
|
|
57
|
+
const all = await ctx.bch.getFungibleTokens();
|
|
58
|
+
const tokens = opts.includeZero ? all : all.filter((t) => t.balance > 0);
|
|
59
|
+
const priceMap = await fetchTokenPriceMap(tokens.map((t) => t.category), isChipnet);
|
|
60
|
+
return {
|
|
61
|
+
network: ctx.network,
|
|
62
|
+
walletHash: ctx.walletHash,
|
|
63
|
+
tokens: tokens.map((t) => {
|
|
64
|
+
const usdPerToken = priceMap.get(t.category) ?? null;
|
|
65
|
+
return {
|
|
66
|
+
category: t.category,
|
|
67
|
+
name: t.name,
|
|
68
|
+
symbol: t.symbol,
|
|
69
|
+
decimals: t.decimals,
|
|
70
|
+
rawBalance: t.balance,
|
|
71
|
+
displayBalance: formatTokenAmount(t.balance, t.decimals),
|
|
72
|
+
usdPerToken,
|
|
73
|
+
usd: usdPerToken !== null
|
|
74
|
+
? tokenAmountToUsd(t.balance, t.decimals, usdPerToken)
|
|
75
|
+
: null,
|
|
76
|
+
};
|
|
77
|
+
}),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export async function getTokenDetail(category, isChipnet = false) {
|
|
81
|
+
const ctx = requireWallet(isChipnet);
|
|
82
|
+
let info = null;
|
|
83
|
+
try {
|
|
84
|
+
info = await ctx.bch.getTokenInfo(category);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// metadata unavailable
|
|
88
|
+
}
|
|
89
|
+
let usdPerToken = null;
|
|
90
|
+
try {
|
|
91
|
+
usdPerToken = await getUsdPerToken(category, isChipnet);
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// pricing unavailable
|
|
95
|
+
}
|
|
96
|
+
let rawBalance = 0;
|
|
97
|
+
try {
|
|
98
|
+
const bal = await ctx.bch.getTokenBalance(category);
|
|
99
|
+
rawBalance = bal.balance;
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// balance unavailable
|
|
103
|
+
}
|
|
104
|
+
let nfts = [];
|
|
105
|
+
try {
|
|
106
|
+
nfts = await ctx.bch.getNftUtxos(category);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// NFT fetch non-critical
|
|
110
|
+
}
|
|
111
|
+
const decimals = info?.decimals ?? 0;
|
|
112
|
+
return {
|
|
113
|
+
network: ctx.network,
|
|
114
|
+
walletHash: ctx.walletHash,
|
|
115
|
+
category,
|
|
116
|
+
name: info?.name ?? 'Unknown Token',
|
|
117
|
+
symbol: info?.symbol ?? '',
|
|
118
|
+
decimals,
|
|
119
|
+
rawBalance,
|
|
120
|
+
displayBalance: formatTokenAmount(rawBalance, decimals),
|
|
121
|
+
usdPerToken,
|
|
122
|
+
usd: usdPerToken !== null
|
|
123
|
+
? tokenAmountToUsd(rawBalance, decimals, usdPerToken)
|
|
124
|
+
: null,
|
|
125
|
+
nfts,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
export async function getHistoryView(opts = {}, isChipnet = false) {
|
|
129
|
+
const ctx = requireWallet(isChipnet);
|
|
130
|
+
const tokenId = opts.tokenId ?? '';
|
|
131
|
+
const page = opts.page ?? 1;
|
|
132
|
+
let headerLabel = 'Transaction History';
|
|
133
|
+
if (tokenId) {
|
|
134
|
+
headerLabel = 'Token Transaction History';
|
|
135
|
+
try {
|
|
136
|
+
const info = await ctx.bch.getTokenInfo(tokenId);
|
|
137
|
+
if (info?.symbol)
|
|
138
|
+
headerLabel = `${info.symbol} Transaction History`;
|
|
139
|
+
else if (info?.name && info.name !== 'Unknown Token')
|
|
140
|
+
headerLabel = `${info.name} Transaction History`;
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
// keep generic label
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const result = await ctx.bch.getHistory({
|
|
147
|
+
page,
|
|
148
|
+
recordType: opts.recordType,
|
|
149
|
+
tokenId,
|
|
150
|
+
});
|
|
151
|
+
return {
|
|
152
|
+
network: ctx.network,
|
|
153
|
+
tokenId,
|
|
154
|
+
headerLabel,
|
|
155
|
+
records: result.history ?? [],
|
|
156
|
+
page: parseInt(result.page, 10) || page,
|
|
157
|
+
numPages: result.num_pages,
|
|
158
|
+
hasNext: result.has_next,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
export function buildBchPaymentUri(address, amount) {
|
|
162
|
+
const bare = address.replace(/^(bitcoincash|bchtest):/, '');
|
|
163
|
+
let uri = `bitcoincash:${bare}`;
|
|
164
|
+
if (amount !== undefined && amount > 0)
|
|
165
|
+
uri += `?amount=${amount}`;
|
|
166
|
+
return uri;
|
|
167
|
+
}
|
|
168
|
+
export function buildTokenPaymentUri(address, category, baseUnitAmount) {
|
|
169
|
+
const bare = address.replace(/^(bitcoincash|bchtest):/, '');
|
|
170
|
+
let uri = `bitcoincash:${bare}?c=${category}`;
|
|
171
|
+
if (baseUnitAmount !== undefined && baseUnitAmount > 0) {
|
|
172
|
+
uri += `&f=${Math.round(baseUnitAmount)}`;
|
|
173
|
+
}
|
|
174
|
+
return uri;
|
|
175
|
+
}
|
|
176
|
+
export async function getReceiveAddressView(opts = {}, isChipnet = false) {
|
|
177
|
+
const ctx = requireWallet(isChipnet);
|
|
178
|
+
const index = opts.index ?? 0;
|
|
179
|
+
const isToken = Boolean(opts.token);
|
|
180
|
+
const category = opts.category ?? '';
|
|
181
|
+
const address = isToken
|
|
182
|
+
? ctx.bch.getTokenAddressSetAt(index).receiving
|
|
183
|
+
: ctx.bch.getAddressSetAt(index).receiving;
|
|
184
|
+
let subscribed = false;
|
|
185
|
+
if (opts.subscribe !== false) {
|
|
186
|
+
try {
|
|
187
|
+
subscribed = Boolean(await ctx.bch.getNewAddressSet(index));
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
// non-critical
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
let tokenName = '';
|
|
194
|
+
let decimals = 0;
|
|
195
|
+
if (category) {
|
|
196
|
+
try {
|
|
197
|
+
const info = await ctx.bch.getTokenInfo(category);
|
|
198
|
+
if (info?.symbol)
|
|
199
|
+
tokenName = info.symbol;
|
|
200
|
+
else if (info?.name && info.name !== 'Unknown Token')
|
|
201
|
+
tokenName = info.name;
|
|
202
|
+
decimals = info?.decimals ?? 0;
|
|
203
|
+
}
|
|
204
|
+
catch {
|
|
205
|
+
// token metadata unavailable
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
let paymentUri = '';
|
|
209
|
+
if (category) {
|
|
210
|
+
const baseUnitAmount = opts.amount !== undefined ? opts.amount * 10 ** decimals : undefined;
|
|
211
|
+
paymentUri = buildTokenPaymentUri(address, category, baseUnitAmount);
|
|
212
|
+
}
|
|
213
|
+
else if (opts.amount !== undefined) {
|
|
214
|
+
paymentUri = buildBchPaymentUri(address, opts.amount);
|
|
215
|
+
}
|
|
216
|
+
return {
|
|
217
|
+
network: ctx.network,
|
|
218
|
+
address,
|
|
219
|
+
index,
|
|
220
|
+
token: isToken,
|
|
221
|
+
category,
|
|
222
|
+
tokenName,
|
|
223
|
+
decimals,
|
|
224
|
+
amount: opts.amount,
|
|
225
|
+
paymentUri,
|
|
226
|
+
qrContent: paymentUri || address,
|
|
227
|
+
subscribed,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
export async function getWalletInfoView(isChipnet = false) {
|
|
231
|
+
const ctx = requireWallet(isChipnet);
|
|
232
|
+
const address = ctx.bch.getAddressSetAt(0).receiving;
|
|
233
|
+
const balance = await getBalanceView(isChipnet);
|
|
234
|
+
return {
|
|
235
|
+
network: ctx.network,
|
|
236
|
+
walletHash: ctx.walletHash,
|
|
237
|
+
address,
|
|
238
|
+
balance,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
export function isValidBchAddress(address, isChipnet) {
|
|
242
|
+
const validator = new Address(address);
|
|
243
|
+
return Boolean(validator.isValidBCHAddress(isChipnet) ||
|
|
244
|
+
validator.isP2SH?.() ||
|
|
245
|
+
validator.isTokenAddress?.());
|
|
246
|
+
}
|
|
247
|
+
export function isTokenAddress(address) {
|
|
248
|
+
return Boolean(new Address(address).isTokenAddress?.());
|
|
249
|
+
}
|
|
250
|
+
export async function sendBch(opts, isChipnet = false) {
|
|
251
|
+
const ctx = requireWallet(isChipnet);
|
|
252
|
+
const changeAddress = opts.changeAddress ?? ctx.bch.getAddressSetAt(0).change;
|
|
253
|
+
const result = await ctx.bch.sendBch(opts.amountBch, opts.address, changeAddress);
|
|
254
|
+
return toSendOutcome(result, ctx.network, isChipnet);
|
|
255
|
+
}
|
|
256
|
+
export async function sendToken(opts, isChipnet = false) {
|
|
257
|
+
const ctx = requireWallet(isChipnet);
|
|
258
|
+
const changeAddress = opts.changeAddress ?? ctx.bch.getTokenAddressSetAt(0).change;
|
|
259
|
+
const result = await ctx.bch.sendToken(opts.category, opts.amount, opts.address, changeAddress);
|
|
260
|
+
return toSendOutcome(result, ctx.network, isChipnet);
|
|
261
|
+
}
|
|
262
|
+
function toSendOutcome(result, network, isChipnet) {
|
|
263
|
+
const outcome = {
|
|
264
|
+
network,
|
|
265
|
+
success: result.success,
|
|
266
|
+
error: result.error,
|
|
267
|
+
lackingSats: result.lackingSats?.toString(),
|
|
268
|
+
};
|
|
269
|
+
if (result.txid) {
|
|
270
|
+
outcome.txid = result.txid;
|
|
271
|
+
outcome.explorerUrl = explorerTxUrl(result.txid, isChipnet);
|
|
272
|
+
}
|
|
273
|
+
return outcome;
|
|
274
|
+
}
|
|
275
|
+
export { resolveNetwork };
|
|
276
|
+
//# sourceMappingURL=wallet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../src/core/wallet.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,10 @@ import { registerPayCommand } from './commands/pay.js';
|
|
|
18
18
|
import { registerCheckCommand } from './commands/check.js';
|
|
19
19
|
import { registerChatCommands } from './commands/chat.js';
|
|
20
20
|
import { registerSwapCommand } from './commands/swap.js';
|
|
21
|
+
import { registerAiCommands } from './commands/ai.js';
|
|
22
|
+
import { registerMcpCommand } from './commands/mcp.js';
|
|
23
|
+
import { registerUpdateCommand } from './commands/update.js';
|
|
24
|
+
import { registerWebCommand } from './commands/web.js';
|
|
21
25
|
const packageJson = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf-8'));
|
|
22
26
|
const program = new Command();
|
|
23
27
|
program
|
|
@@ -35,5 +39,9 @@ registerPayCommand(program);
|
|
|
35
39
|
registerCheckCommand(program);
|
|
36
40
|
registerChatCommands(program);
|
|
37
41
|
registerSwapCommand(program);
|
|
42
|
+
registerAiCommands(program);
|
|
43
|
+
registerMcpCommand(program);
|
|
44
|
+
registerUpdateCommand(program);
|
|
45
|
+
registerWebCommand(program);
|
|
38
46
|
program.parse();
|
|
39
47
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CACnE,CAAA;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAE/B,sBAAsB,CAAC,OAAO,CAAC,CAAA;AAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC5B,sBAAsB,CAAC,OAAO,CAAC,CAAA;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAA;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAA;AAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAC3B,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAC5B,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAC3B,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAC3B,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAE3B,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
export declare function createServer(opts?: {
|
|
3
|
+
defaultChipnet?: boolean;
|
|
4
|
+
}): McpServer;
|
|
5
|
+
export declare function runMcpServer(opts?: {
|
|
6
|
+
defaultChipnet?: boolean;
|
|
7
|
+
}): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAiBnE,wBAAgB,YAAY,CAAC,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,SAAS,CAO/E;AAED,wBAAsB,YAAY,CAAC,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAKzF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
|
+
import { createRefillTickDeps, registerTools } from './tools.js';
|
|
5
|
+
import { startAutoRefillLoop } from '../ai/autoRefill.js';
|
|
6
|
+
import { loadWalletRef } from '../wallet/index.js';
|
|
7
|
+
function readVersion() {
|
|
8
|
+
try {
|
|
9
|
+
const pkg = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf-8'));
|
|
10
|
+
return pkg.version || '0.0.0';
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return '0.0.0';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function createServer(opts = {}) {
|
|
17
|
+
const server = new McpServer({ name: 'paytaca', version: readVersion() }, { capabilities: { tools: {} } });
|
|
18
|
+
registerTools(server, opts);
|
|
19
|
+
return server;
|
|
20
|
+
}
|
|
21
|
+
export async function runMcpServer(opts = {}) {
|
|
22
|
+
const server = createServer(opts);
|
|
23
|
+
const transport = new StdioServerTransport();
|
|
24
|
+
await server.connect(transport);
|
|
25
|
+
startRefillLoop(Boolean(opts.defaultChipnet));
|
|
26
|
+
}
|
|
27
|
+
function startRefillLoop(isChipnet) {
|
|
28
|
+
let wallet;
|
|
29
|
+
try {
|
|
30
|
+
wallet = loadWalletRef();
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return () => { };
|
|
34
|
+
}
|
|
35
|
+
if (!wallet || !wallet.canSign)
|
|
36
|
+
return () => { };
|
|
37
|
+
return startAutoRefillLoop({
|
|
38
|
+
...createRefillTickDeps(isChipnet),
|
|
39
|
+
onEvent: (result) => {
|
|
40
|
+
if (result.action === 'refilled') {
|
|
41
|
+
console.error(`[paytaca] auto-refill: bought ${result.state.minutes} min of ${result.state.model}`);
|
|
42
|
+
}
|
|
43
|
+
else if (result.action === 'disarmed') {
|
|
44
|
+
console.error(`[paytaca] auto-refill disarmed: ${result.reason}`);
|
|
45
|
+
}
|
|
46
|
+
else if (result.action === 'skipped') {
|
|
47
|
+
console.error(`[paytaca] auto-refill skipped: ${result.reason}`);
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CACtE,CAAA;QACD,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAA;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAA;IAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAqC,EAAE;IAClE,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAC3C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAA;IACD,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC3B,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAqC,EAAE;IACxE,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC/B,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,SAAkB;IACzC,IAAI,MAAM,CAAA;IACV,IAAI,CAAC;QACH,MAAM,GAAG,aAAa,EAAE,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACjB,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IAE/C,OAAO,mBAAmB,CAAC;QACzB,GAAG,oBAAoB,CAAC,SAAS,CAAC;QAClC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;YAClB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,CACX,iCAAiC,MAAM,CAAC,KAAK,CAAC,OAAO,WAAW,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CACrF,CAAA;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,OAAO,CAAC,KAAK,CAAC,mCAAmC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;YACnE,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvC,OAAO,CAAC,KAAK,CAAC,kCAAkC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;YAClE,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { type RefillTickDeps } from '../ai/autoRefill.js';
|
|
3
|
+
export declare function createRefillTickDeps(isChipnet: boolean, backendUrl?: string): RefillTickDeps;
|
|
4
|
+
export declare function registerTools(server: McpServer, opts?: {
|
|
5
|
+
defaultChipnet?: boolean;
|
|
6
|
+
}): void;
|
|
7
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAmCxE,OAAO,EAQL,KAAK,cAAc,EAEpB,MAAM,qBAAqB,CAAA;AAoB5B,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,OAAO,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,cAAc,CA6BhB;AA4OD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,IAAI,CA2lBN"}
|