@palmyr/cli 1.6.0 → 1.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 +39 -4
- package/dist/cli.js +549 -6
- package/dist/cli.js.map +1 -1
- package/dist/pay-preflight.d.ts +54 -0
- package/dist/pay-preflight.js +202 -0
- package/dist/pay-preflight.js.map +1 -0
- package/dist/pay.js +79 -8
- package/dist/pay.js.map +1 -1
- package/dist/sdk.d.ts +30 -1
- package/dist/sdk.js +46 -2
- package/dist/sdk.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet/payment preflight for x402 paid commands.
|
|
3
|
+
*
|
|
4
|
+
* Answers the five-question checklist an agent needs BEFORE attempting any
|
|
5
|
+
* paid CLI call:
|
|
6
|
+
*
|
|
7
|
+
* 1. Which pay chain is selected? (solana | base)
|
|
8
|
+
* 2. Which wallet id will sign? (config, env, or auto-pick)
|
|
9
|
+
* 3. Can it decrypt / sign right now? (yes | no + why)
|
|
10
|
+
* 4. USDC balance + ATA status (only when checkBalance=true)
|
|
11
|
+
* 5. Exact fix if anything's off (one-line, copy-pasteable)
|
|
12
|
+
*
|
|
13
|
+
* Two surfaces:
|
|
14
|
+
*
|
|
15
|
+
* - `localPreflight(opts)` — no RPC. Runs at the top of paidRequest /
|
|
16
|
+
* paidStreamRequest so config + decryption failures bail out before the
|
|
17
|
+
* paid round-trip. Cheap enough to enable by default.
|
|
18
|
+
*
|
|
19
|
+
* - `fullPreflight(opts)` — `localPreflight` + USDC balance + ATA status
|
|
20
|
+
* via RPC. Used by `palmyr wallet pay-preflight`. Skip in hot paths —
|
|
21
|
+
* the Solana public RPC tends to 429 if you hammer it.
|
|
22
|
+
*/
|
|
23
|
+
export type PayChain = 'solana' | 'base';
|
|
24
|
+
export interface PayPreflightReport {
|
|
25
|
+
/** True only when every check that ran returned a pass. */
|
|
26
|
+
ok: boolean;
|
|
27
|
+
payChain: PayChain;
|
|
28
|
+
walletId: string | null;
|
|
29
|
+
walletAddress: string | null;
|
|
30
|
+
canSign: boolean;
|
|
31
|
+
/** Populated only by `fullPreflight` (or when checkBalance=true). */
|
|
32
|
+
usdc: {
|
|
33
|
+
balance: number | null;
|
|
34
|
+
requiredMin: number;
|
|
35
|
+
/** Solana-only — Base has no separate ATA concept. */
|
|
36
|
+
ataStatus?: 'exists' | 'missing' | 'unknown';
|
|
37
|
+
} | null;
|
|
38
|
+
/** One-line, copy-pasteable next step when ok=false. */
|
|
39
|
+
fix: string | null;
|
|
40
|
+
}
|
|
41
|
+
export interface PreflightOpts {
|
|
42
|
+
/** Override `config.defaultPayChain`. */
|
|
43
|
+
chain?: PayChain;
|
|
44
|
+
/** Override `config.defaultPayWalletId` / `PALMYR_PAY_WALLET` env. */
|
|
45
|
+
walletRef?: string;
|
|
46
|
+
/** Passphrase for vault decryption (also reads `PALMYR_WALLET_PASSPHRASE`). */
|
|
47
|
+
passphrase?: string;
|
|
48
|
+
/** USDC threshold for the balance check (full preflight only). Default 0. */
|
|
49
|
+
minUsdc?: number;
|
|
50
|
+
}
|
|
51
|
+
/** Cheap, no-RPC preflight. Safe to run before every paid command. */
|
|
52
|
+
export declare function localPreflight(opts?: PreflightOpts): Promise<PayPreflightReport>;
|
|
53
|
+
/** Full preflight including USDC balance + ATA status via RPC. */
|
|
54
|
+
export declare function fullPreflight(opts?: PreflightOpts): Promise<PayPreflightReport>;
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet/payment preflight for x402 paid commands.
|
|
3
|
+
*
|
|
4
|
+
* Answers the five-question checklist an agent needs BEFORE attempting any
|
|
5
|
+
* paid CLI call:
|
|
6
|
+
*
|
|
7
|
+
* 1. Which pay chain is selected? (solana | base)
|
|
8
|
+
* 2. Which wallet id will sign? (config, env, or auto-pick)
|
|
9
|
+
* 3. Can it decrypt / sign right now? (yes | no + why)
|
|
10
|
+
* 4. USDC balance + ATA status (only when checkBalance=true)
|
|
11
|
+
* 5. Exact fix if anything's off (one-line, copy-pasteable)
|
|
12
|
+
*
|
|
13
|
+
* Two surfaces:
|
|
14
|
+
*
|
|
15
|
+
* - `localPreflight(opts)` — no RPC. Runs at the top of paidRequest /
|
|
16
|
+
* paidStreamRequest so config + decryption failures bail out before the
|
|
17
|
+
* paid round-trip. Cheap enough to enable by default.
|
|
18
|
+
*
|
|
19
|
+
* - `fullPreflight(opts)` — `localPreflight` + USDC balance + ATA status
|
|
20
|
+
* via RPC. Used by `palmyr wallet pay-preflight`. Skip in hot paths —
|
|
21
|
+
* the Solana public RPC tends to 429 if you hammer it.
|
|
22
|
+
*/
|
|
23
|
+
import { loadConfig } from './config.js';
|
|
24
|
+
import { hasVaultWallets, listVaultWallets, getVaultEvmWallet, getVaultSolanaKeypair, } from './vault.js';
|
|
25
|
+
/** Canonical USDC mint / contract for each chain. */
|
|
26
|
+
const SOLANA_USDC_MINT = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v';
|
|
27
|
+
const BASE_USDC = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
|
|
28
|
+
async function runPreflight(opts) {
|
|
29
|
+
const cfg = loadConfig();
|
|
30
|
+
const payChain = opts.chain || (cfg.defaultPayChain || 'solana');
|
|
31
|
+
const minUsdc = opts.minUsdc ?? 0;
|
|
32
|
+
// ── 1. Resolve wallet id — mirrors pay.ts auto-pick fallback ──────────────
|
|
33
|
+
// Filters auto-picked candidates by chain so a Solana-only vault wallet
|
|
34
|
+
// never gets picked for a Base preflight (it would just fail at signing).
|
|
35
|
+
let walletId = opts.walletRef ||
|
|
36
|
+
cfg.defaultPayWalletId ||
|
|
37
|
+
process.env.PALMYR_PAY_WALLET ||
|
|
38
|
+
null;
|
|
39
|
+
if (!walletId && hasVaultWallets()) {
|
|
40
|
+
const wallets = listVaultWallets();
|
|
41
|
+
const candidate = payChain === 'base'
|
|
42
|
+
? wallets.find((w) => w.evmAddress)
|
|
43
|
+
: wallets.find((w) => w.solanaAddress);
|
|
44
|
+
if (candidate)
|
|
45
|
+
walletId = candidate.id;
|
|
46
|
+
}
|
|
47
|
+
if (!walletId) {
|
|
48
|
+
return {
|
|
49
|
+
ok: false,
|
|
50
|
+
payChain,
|
|
51
|
+
walletId: null,
|
|
52
|
+
walletAddress: null,
|
|
53
|
+
canSign: false,
|
|
54
|
+
usdc: null,
|
|
55
|
+
fix: noWalletFix(payChain),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
// ── 2. Try to decrypt & derive the chain-specific address (= can sign) ────
|
|
59
|
+
// Any throw from the vault helpers (missing keychain secret, wrong
|
|
60
|
+
// passphrase) is treated as "cannot sign" — we surface the underlying
|
|
61
|
+
// message in `fix` so the agent knows which knob to turn.
|
|
62
|
+
let walletAddress = null;
|
|
63
|
+
let canSign = false;
|
|
64
|
+
let signError = null;
|
|
65
|
+
try {
|
|
66
|
+
if (payChain === 'base') {
|
|
67
|
+
const w = getVaultEvmWallet(walletId, opts.passphrase);
|
|
68
|
+
walletAddress = String(w.address);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
const k = getVaultSolanaKeypair(walletId, opts.passphrase);
|
|
72
|
+
walletAddress = k.publicKey.toBase58();
|
|
73
|
+
}
|
|
74
|
+
canSign = true;
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
signError = err?.message || 'decrypt failed';
|
|
78
|
+
}
|
|
79
|
+
if (!canSign) {
|
|
80
|
+
return {
|
|
81
|
+
ok: false,
|
|
82
|
+
payChain,
|
|
83
|
+
walletId,
|
|
84
|
+
walletAddress: null,
|
|
85
|
+
canSign: false,
|
|
86
|
+
usdc: null,
|
|
87
|
+
fix: `Wallet ${walletId} exists but cannot decrypt (${signError}). Restore the OS credential-store session secret (re-run \`palmyr wallet create\` or the original import on this machine), set PALMYR_WALLET_PASSPHRASE=<phrase> in the env (or pass --passphrase <phrase>), or re-import the mnemonic with \`palmyr wallet import --mnemonic "..."\`.`,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
// ── 3. Local-only preflight stops here ────────────────────────────────────
|
|
91
|
+
if (!opts.checkBalance) {
|
|
92
|
+
return {
|
|
93
|
+
ok: true,
|
|
94
|
+
payChain,
|
|
95
|
+
walletId,
|
|
96
|
+
walletAddress,
|
|
97
|
+
canSign: true,
|
|
98
|
+
usdc: null,
|
|
99
|
+
fix: null,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
// ── 4. USDC balance + ATA status (one RPC per chain) ──────────────────────
|
|
103
|
+
let usdcBalance = null;
|
|
104
|
+
let ataStatus;
|
|
105
|
+
let balanceError = null;
|
|
106
|
+
try {
|
|
107
|
+
if (payChain === 'base') {
|
|
108
|
+
const { ethers } = await import('ethers');
|
|
109
|
+
const provider = new ethers.JsonRpcProvider(process.env.PALMYR_BASE_RPC || 'https://mainnet.base.org');
|
|
110
|
+
const erc20 = new ethers.Contract(BASE_USDC, ['function balanceOf(address) view returns (uint256)'], provider);
|
|
111
|
+
// Non-null assertion — we returned early above if canSign was false.
|
|
112
|
+
const wei = await erc20.balanceOf(walletAddress);
|
|
113
|
+
usdcBalance = Number(wei) / 1e6;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
const { Connection, PublicKey } = await import('@solana/web3.js');
|
|
117
|
+
const splToken = await import('@solana/spl-token');
|
|
118
|
+
const conn = new Connection(process.env.SOLANA_RPC_URL || 'https://api.mainnet-beta.solana.com', 'confirmed');
|
|
119
|
+
const owner = new PublicKey(walletAddress);
|
|
120
|
+
const mint = new PublicKey(SOLANA_USDC_MINT);
|
|
121
|
+
const ata = splToken.getAssociatedTokenAddressSync(mint, owner);
|
|
122
|
+
try {
|
|
123
|
+
const account = await splToken.getAccount(conn, ata, 'confirmed');
|
|
124
|
+
usdcBalance = Number(account.amount) / 1e6;
|
|
125
|
+
ataStatus = 'exists';
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
// `@solana/spl-token` exports several typed errors for the missing-ATA
|
|
129
|
+
// case; rather than matching all of them, recognize the signature
|
|
130
|
+
// ("could not find account" / "TokenAccountNotFound") and treat
|
|
131
|
+
// anything else as a generic RPC failure (ataStatus=unknown).
|
|
132
|
+
const msg = String(e?.message || '');
|
|
133
|
+
if (/TokenAccountNotFound/i.test(msg) ||
|
|
134
|
+
/could not find account/i.test(msg) ||
|
|
135
|
+
e?.name === 'TokenAccountNotFoundError') {
|
|
136
|
+
ataStatus = 'missing';
|
|
137
|
+
usdcBalance = 0;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
ataStatus = 'unknown';
|
|
141
|
+
balanceError = msg || 'balance check failed';
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
balanceError = err?.message || 'balance check failed';
|
|
148
|
+
}
|
|
149
|
+
// ── 5. Compute final verdict + fix ────────────────────────────────────────
|
|
150
|
+
let ok = false;
|
|
151
|
+
let fix = null;
|
|
152
|
+
if (balanceError) {
|
|
153
|
+
fix = `USDC balance check failed on ${payChain}: ${balanceError}. ${payChain === 'solana' ? 'Set SOLANA_RPC_URL=<url> to a less rate-limited endpoint and retry.' : 'Set PALMYR_BASE_RPC=<url> to a private RPC and retry.'}`;
|
|
154
|
+
}
|
|
155
|
+
else if (ataStatus === 'missing') {
|
|
156
|
+
// ATA missing is functionally "balance = 0 and you cannot receive
|
|
157
|
+
// SPL transfers yet". The first inbound transfer auto-creates the ATA,
|
|
158
|
+
// so the fix is simply "fund the wallet".
|
|
159
|
+
fix = `Solana USDC associated-token-account (ATA) not created yet for ${walletAddress}. The first inbound USDC transfer creates it automatically — fund the wallet with any amount of USDC on Solana, then retry.`;
|
|
160
|
+
}
|
|
161
|
+
else if (usdcBalance !== null && usdcBalance < minUsdc) {
|
|
162
|
+
fix = `USDC balance ${usdcBalance.toFixed(6)} on ${payChain} < required ${minUsdc.toFixed(6)}. Fund ${walletAddress} with at least ${(minUsdc - usdcBalance).toFixed(6)} more USDC on ${payChain}.`;
|
|
163
|
+
}
|
|
164
|
+
else if (usdcBalance !== null) {
|
|
165
|
+
ok = true;
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
ok,
|
|
169
|
+
payChain,
|
|
170
|
+
walletId,
|
|
171
|
+
walletAddress,
|
|
172
|
+
canSign: true,
|
|
173
|
+
usdc: {
|
|
174
|
+
balance: usdcBalance,
|
|
175
|
+
requiredMin: minUsdc,
|
|
176
|
+
...(payChain === 'solana' ? { ataStatus } : {}),
|
|
177
|
+
},
|
|
178
|
+
fix,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Build the fix string for the "no wallet resolvable" branch. Three states:
|
|
183
|
+
* - no vault wallets at all
|
|
184
|
+
* - vault wallets exist but none expose the selected chain's address
|
|
185
|
+
* - (impossible after auto-pick lands a hit, but kept as final fallback)
|
|
186
|
+
*/
|
|
187
|
+
function noWalletFix(payChain) {
|
|
188
|
+
if (!hasVaultWallets()) {
|
|
189
|
+
return 'No vault wallets found. Create one with: palmyr wallet create (a single mnemonic produces both Solana + Base addresses).';
|
|
190
|
+
}
|
|
191
|
+
const chainName = payChain === 'base' ? 'Base/EVM' : 'Solana';
|
|
192
|
+
return `Vault has wallets, but none expose a ${chainName} address. Re-create with: palmyr wallet create (or re-import with --${payChain} to materialize that chain).`;
|
|
193
|
+
}
|
|
194
|
+
/** Cheap, no-RPC preflight. Safe to run before every paid command. */
|
|
195
|
+
export async function localPreflight(opts = {}) {
|
|
196
|
+
return runPreflight({ ...opts, checkBalance: false });
|
|
197
|
+
}
|
|
198
|
+
/** Full preflight including USDC balance + ATA status via RPC. */
|
|
199
|
+
export async function fullPreflight(opts = {}) {
|
|
200
|
+
return runPreflight({ ...opts, checkBalance: true });
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=pay-preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pay-preflight.js","sourceRoot":"","sources":["../pay-preflight.ts"],"names":[],"mappings":"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"}
|
package/dist/pay.js
CHANGED
|
@@ -17,6 +17,46 @@ const SOLANA_RPC = process.env.SOLANA_RPC_URL || 'https://api.mainnet-beta.solan
|
|
|
17
17
|
// Base constants
|
|
18
18
|
const BASE_USDC = '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913';
|
|
19
19
|
const BASE_CHAIN_ID = 8453;
|
|
20
|
+
/**
|
|
21
|
+
* Run the cheap, no-RPC pay preflight before the probe request goes out.
|
|
22
|
+
*
|
|
23
|
+
* Catches the two failure modes that don't need the server to discover:
|
|
24
|
+
* - no Solana/Base wallet resolvable from config / env / vault
|
|
25
|
+
* - wallet exists but cannot decrypt (no keychain secret, wrong passphrase)
|
|
26
|
+
*
|
|
27
|
+
* Throws a structured Error with `.preflight` attached so the CLI can render
|
|
28
|
+
* the full report in agent mode. Skipped entirely when PALMYR_NO_PREFLIGHT=1
|
|
29
|
+
* (escape hatch for users running tight loops who'd rather eat the late error
|
|
30
|
+
* than pay a few ms per call).
|
|
31
|
+
*/
|
|
32
|
+
async function preflightOrThrow(passphrase) {
|
|
33
|
+
if (process.env.PALMYR_NO_PREFLIGHT === '1')
|
|
34
|
+
return;
|
|
35
|
+
const { localPreflight } = await import('./pay-preflight.js');
|
|
36
|
+
const report = await localPreflight({ passphrase });
|
|
37
|
+
if (report.ok)
|
|
38
|
+
return;
|
|
39
|
+
const err = new Error(`Pay preflight failed: ${report.fix || 'wallet not ready'}`);
|
|
40
|
+
err.preflight = report;
|
|
41
|
+
throw err;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build an actionable error message when EVM payment authorization fails because
|
|
45
|
+
* no usable Base wallet was found. The auto-pick fallback in
|
|
46
|
+
* buildEvmPaymentAuthorization handles "wallets exist + some have EVM but none
|
|
47
|
+
* is selected", so by the time we reach this helper we're in one of two states:
|
|
48
|
+
* - no vault wallets at all → tell the agent to create one
|
|
49
|
+
* - vault wallets exist but none expose an EVM address → tell them to
|
|
50
|
+
* re-derive / re-import with the EVM account materialized
|
|
51
|
+
* The legacy keyfile flow (`palmyr setup --keyfile`) is Solana-only, so it is
|
|
52
|
+
* deliberately NOT suggested here.
|
|
53
|
+
*/
|
|
54
|
+
function noEvmWalletError() {
|
|
55
|
+
if (!hasVaultWallets()) {
|
|
56
|
+
return 'Failed to build EVM payment authorization — no wallet configured. Create one with: palmyr wallet create (a single mnemonic produces both Solana + Base addresses).';
|
|
57
|
+
}
|
|
58
|
+
return 'Failed to build EVM payment authorization — vault has wallets, but none expose a Base/EVM address. Re-create with: palmyr wallet create (or pass --base on import to materialize the EVM account).';
|
|
59
|
+
}
|
|
20
60
|
/**
|
|
21
61
|
* Parse a 402 response. Returns available payment options by chain plus the
|
|
22
62
|
* top-level `resource` block so callers can echo it into the PaymentPayload.
|
|
@@ -64,6 +104,7 @@ function resolvePayerKeypair(walletId, passphrase) {
|
|
|
64
104
|
const cfg = loadConfig();
|
|
65
105
|
const pass = passphrase || process.env.PALMYR_WALLET_PASSPHRASE;
|
|
66
106
|
// Try the vault first (session secret from OS cred store, falls back to passphrase)
|
|
107
|
+
let vaultFailed = false;
|
|
67
108
|
if (hasVaultWallets()) {
|
|
68
109
|
const targetId = walletId || cfg.defaultPayWalletId || process.env.PALMYR_PAY_WALLET;
|
|
69
110
|
try {
|
|
@@ -75,8 +116,11 @@ function resolvePayerKeypair(walletId, passphrase) {
|
|
|
75
116
|
return getVaultSolanaKeypair(first.id, pass);
|
|
76
117
|
}
|
|
77
118
|
catch (err) {
|
|
119
|
+
// Don't swallow — surface what failed and that we're switching wallets so
|
|
120
|
+
// the agent isn't surprised when transfers come from a different address
|
|
121
|
+
// than `palmyr wallet pay-preflight` reported.
|
|
78
122
|
console.error(` Vault wallet load failed: ${err.message}`);
|
|
79
|
-
|
|
123
|
+
vaultFailed = true;
|
|
80
124
|
}
|
|
81
125
|
}
|
|
82
126
|
// Fall back to the legacy keyfile flow
|
|
@@ -84,7 +128,12 @@ function resolvePayerKeypair(walletId, passphrase) {
|
|
|
84
128
|
if (!keypairBytes)
|
|
85
129
|
return null;
|
|
86
130
|
const { Keypair } = require('@solana/web3.js');
|
|
87
|
-
|
|
131
|
+
const keyfileKp = Keypair.fromSecretKey(keypairBytes);
|
|
132
|
+
if (vaultFailed) {
|
|
133
|
+
console.error(` Falling back to legacy keyfile: ${keyfileKp.publicKey.toBase58()}. ` +
|
|
134
|
+
`Run \`palmyr wallet pay-preflight\` to verify USDC balance + ATA status.`);
|
|
135
|
+
}
|
|
136
|
+
return keyfileKp;
|
|
88
137
|
}
|
|
89
138
|
/**
|
|
90
139
|
* Build and partially sign a USDC transfer transaction for x402 payment.
|
|
@@ -151,16 +200,31 @@ export async function buildPaymentTransaction(payTo, amount, feePayer, walletId,
|
|
|
151
200
|
*/
|
|
152
201
|
async function buildEvmPaymentAuthorization(payTo, amount, walletId, passphrase) {
|
|
153
202
|
const cfg = loadConfig();
|
|
154
|
-
|
|
203
|
+
let targetId = walletId || cfg.defaultPayWalletId || process.env.PALMYR_PAY_WALLET;
|
|
204
|
+
// Mirror the Solana resolution chain (pay.ts:92-115): if no explicit target,
|
|
205
|
+
// auto-pick the first vault wallet that has an EVM address. Without this,
|
|
206
|
+
// a fresh `palmyr wallet create` user hits `no wallet configured` on Base
|
|
207
|
+
// even though there's an obvious wallet to use — Solana picks it; Base didn't.
|
|
208
|
+
if (!targetId && hasVaultWallets()) {
|
|
209
|
+
const firstEvm = listVaultWallets().find(w => w.evmAddress);
|
|
210
|
+
if (firstEvm)
|
|
211
|
+
targetId = firstEvm.id;
|
|
212
|
+
}
|
|
155
213
|
if (!targetId)
|
|
156
214
|
return null;
|
|
215
|
+
// From here on we have a wallet to try; any failure is a decryption / signing
|
|
216
|
+
// problem (typically: no OS-keychain session secret + no passphrase). Propagate
|
|
217
|
+
// it with an actionable hint instead of returning null, which would otherwise
|
|
218
|
+
// bubble up as the misleading "no wallet configured" message at the call site.
|
|
157
219
|
let evmWallet;
|
|
158
220
|
try {
|
|
159
221
|
evmWallet = getVaultEvmWallet(targetId, passphrase);
|
|
160
222
|
}
|
|
161
223
|
catch (err) {
|
|
162
|
-
|
|
163
|
-
|
|
224
|
+
throw new Error(`Wallet ${targetId} exists but cannot decrypt (${err.message}). ` +
|
|
225
|
+
`Restore the OS credential-store session secret (re-run \`palmyr wallet create\` or the original import on this machine), ` +
|
|
226
|
+
`set PALMYR_WALLET_PASSPHRASE=<phrase> in the env (or pass --passphrase <phrase>), ` +
|
|
227
|
+
`or re-import the mnemonic with \`palmyr wallet import --mnemonic "..."\`.`);
|
|
164
228
|
}
|
|
165
229
|
const { ethers } = require('ethers');
|
|
166
230
|
// Random 32-byte nonce
|
|
@@ -245,6 +309,7 @@ function buildSpecCompliantPayload(opts) {
|
|
|
245
309
|
* charges plan.total_cost_usdc rather than a fixed fee).
|
|
246
310
|
*/
|
|
247
311
|
export async function paidStreamRequest(api, method, path, body, passphrase) {
|
|
312
|
+
await preflightOrThrow(passphrase);
|
|
248
313
|
const probeOpts = {
|
|
249
314
|
method,
|
|
250
315
|
headers: { 'Content-Type': 'application/json', Accept: 'text/event-stream' },
|
|
@@ -270,7 +335,7 @@ export async function paidStreamRequest(api, method, path, body, passphrase) {
|
|
|
270
335
|
if (preferredChain === 'base') {
|
|
271
336
|
const auth = await buildEvmPaymentAuthorization(selected.payTo, selected.amount, undefined, passphrase);
|
|
272
337
|
if (!auth)
|
|
273
|
-
throw new Error(
|
|
338
|
+
throw new Error(noEvmWalletError());
|
|
274
339
|
paymentPayload = buildSpecCompliantPayload({
|
|
275
340
|
payload: { signature: auth.signature, authorization: auth.authorization },
|
|
276
341
|
requirements: selected.requirements,
|
|
@@ -324,6 +389,12 @@ function isTransientSolanaError(message) {
|
|
|
324
389
|
m.includes('blockhashnotfound'));
|
|
325
390
|
}
|
|
326
391
|
export async function paidRequest(api, method, path, body, passphrase, attempt = 1) {
|
|
392
|
+
// Only preflight on the FIRST attempt — on retry (attempt > 1) we've already
|
|
393
|
+
// signed once successfully, so re-running the local checks would only burn
|
|
394
|
+
// a few ms before discovering nothing changed.
|
|
395
|
+
if (attempt === 1) {
|
|
396
|
+
await preflightOrThrow(passphrase);
|
|
397
|
+
}
|
|
327
398
|
const opts = {
|
|
328
399
|
method,
|
|
329
400
|
headers: { 'Content-Type': 'application/json' },
|
|
@@ -366,7 +437,7 @@ export async function paidRequest(api, method, path, body, passphrase, attempt =
|
|
|
366
437
|
if (preferredChain === 'base') {
|
|
367
438
|
const auth = await buildEvmPaymentAuthorization(selected.payTo, selected.amount, undefined, passphrase);
|
|
368
439
|
if (!auth)
|
|
369
|
-
throw new Error(
|
|
440
|
+
throw new Error(noEvmWalletError());
|
|
370
441
|
paymentPayload = buildSpecCompliantPayload({
|
|
371
442
|
payload: {
|
|
372
443
|
signature: auth.signature,
|
|
@@ -381,7 +452,7 @@ export async function paidRequest(api, method, path, body, passphrase, attempt =
|
|
|
381
452
|
else {
|
|
382
453
|
const tx = await buildPaymentTransaction(selected.payTo, selected.amount, selected.feePayer, undefined, passphrase);
|
|
383
454
|
if (!tx)
|
|
384
|
-
throw new Error('Failed to build Solana payment transaction — no wallet configured');
|
|
455
|
+
throw new Error('Failed to build Solana payment transaction — no wallet configured. Create one with: palmyr wallet create. Or configure a keyfile: palmyr setup --keyfile /path/to/keypair.json');
|
|
385
456
|
paymentPayload = buildSpecCompliantPayload({
|
|
386
457
|
payload: { transaction: tx.transaction },
|
|
387
458
|
requirements: selected.requirements,
|
package/dist/pay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../pay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../pay.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk.d.ts
CHANGED
|
@@ -11,7 +11,36 @@ export declare class Palmyr {
|
|
|
11
11
|
phoneSearch(country: string, limit?: number): Promise<any>;
|
|
12
12
|
phoneBuy(country: string, areaCode?: string): Promise<any>;
|
|
13
13
|
phoneSms(phoneId: string, to: string, body: string): Promise<any>;
|
|
14
|
-
phoneCall(phoneId: string, to: string, tts?: string
|
|
14
|
+
phoneCall(phoneId: string, to: string, tts?: string, opts?: {
|
|
15
|
+
ttsVoice?: string;
|
|
16
|
+
audioUrl?: string;
|
|
17
|
+
record?: boolean;
|
|
18
|
+
timeoutSecs?: number;
|
|
19
|
+
}): Promise<any>;
|
|
20
|
+
phoneListNumbers(): Promise<any>;
|
|
21
|
+
phoneMessages(phoneId: string): Promise<any>;
|
|
22
|
+
phoneCalls(phoneId: string): Promise<any>;
|
|
23
|
+
phoneRelease(phoneId: string): Promise<any>;
|
|
24
|
+
phoneCallInfo(callControlId: string): Promise<any>;
|
|
25
|
+
phoneSpeak(callControlId: string, text: string, opts?: {
|
|
26
|
+
voice?: string;
|
|
27
|
+
language?: string;
|
|
28
|
+
}): Promise<any>;
|
|
29
|
+
phonePlay(callControlId: string, audioUrl: string): Promise<any>;
|
|
30
|
+
phoneDtmf(callControlId: string, digits: string): Promise<any>;
|
|
31
|
+
phoneGather(callControlId: string, opts?: {
|
|
32
|
+
minDigits?: number;
|
|
33
|
+
maxDigits?: number;
|
|
34
|
+
timeoutMillis?: number;
|
|
35
|
+
terminatingDigit?: string;
|
|
36
|
+
prompt?: string;
|
|
37
|
+
promptVoice?: string;
|
|
38
|
+
}): Promise<any>;
|
|
39
|
+
phoneRecord(callControlId: string, format?: string): Promise<any>;
|
|
40
|
+
phoneRecordStop(callControlId: string): Promise<any>;
|
|
41
|
+
phoneHangup(callControlId: string): Promise<any>;
|
|
42
|
+
phoneAnswer(callControlId: string): Promise<any>;
|
|
43
|
+
phoneTransfer(callControlId: string, to: string): Promise<any>;
|
|
15
44
|
emailCreate(name: string, walletAddress?: string, domain?: string): Promise<any>;
|
|
16
45
|
emailListInboxes(): Promise<any>;
|
|
17
46
|
emailDomainStatus(domain: string): Promise<any>;
|
package/dist/sdk.js
CHANGED
|
@@ -354,8 +354,52 @@ export class Palmyr {
|
|
|
354
354
|
async phoneSms(phoneId, to, body) {
|
|
355
355
|
return this.request('POST', `/phone/numbers/${phoneId}/send`, { to, body });
|
|
356
356
|
}
|
|
357
|
-
async phoneCall(phoneId, to, tts) {
|
|
358
|
-
return this.request('POST', `/phone/numbers/${phoneId}/call`, { to, tts });
|
|
357
|
+
async phoneCall(phoneId, to, tts, opts) {
|
|
358
|
+
return this.request('POST', `/phone/numbers/${phoneId}/call`, { to, tts, ...(opts || {}) });
|
|
359
|
+
}
|
|
360
|
+
// Phone-number-scoped reads & lifecycle
|
|
361
|
+
async phoneListNumbers() {
|
|
362
|
+
return this.request('GET', '/phone/numbers');
|
|
363
|
+
}
|
|
364
|
+
async phoneMessages(phoneId) {
|
|
365
|
+
return this.request('GET', `/phone/numbers/${phoneId}/messages`);
|
|
366
|
+
}
|
|
367
|
+
async phoneCalls(phoneId) {
|
|
368
|
+
return this.request('GET', `/phone/numbers/${phoneId}/calls`);
|
|
369
|
+
}
|
|
370
|
+
async phoneRelease(phoneId) {
|
|
371
|
+
return this.request('DELETE', `/phone/numbers/${phoneId}`);
|
|
372
|
+
}
|
|
373
|
+
// Call-control-scoped operations
|
|
374
|
+
async phoneCallInfo(callControlId) {
|
|
375
|
+
return this.request('GET', `/phone/calls/${callControlId}`);
|
|
376
|
+
}
|
|
377
|
+
async phoneSpeak(callControlId, text, opts) {
|
|
378
|
+
return this.request('POST', `/phone/calls/${callControlId}/speak`, { text, ...(opts || {}) });
|
|
379
|
+
}
|
|
380
|
+
async phonePlay(callControlId, audioUrl) {
|
|
381
|
+
return this.request('POST', `/phone/calls/${callControlId}/play`, { audioUrl });
|
|
382
|
+
}
|
|
383
|
+
async phoneDtmf(callControlId, digits) {
|
|
384
|
+
return this.request('POST', `/phone/calls/${callControlId}/dtmf`, { digits });
|
|
385
|
+
}
|
|
386
|
+
async phoneGather(callControlId, opts) {
|
|
387
|
+
return this.request('POST', `/phone/calls/${callControlId}/gather`, opts || {});
|
|
388
|
+
}
|
|
389
|
+
async phoneRecord(callControlId, format) {
|
|
390
|
+
return this.request('POST', `/phone/calls/${callControlId}/record`, format ? { format } : {});
|
|
391
|
+
}
|
|
392
|
+
async phoneRecordStop(callControlId) {
|
|
393
|
+
return this.request('POST', `/phone/calls/${callControlId}/record/stop`, {});
|
|
394
|
+
}
|
|
395
|
+
async phoneHangup(callControlId) {
|
|
396
|
+
return this.request('POST', `/phone/calls/${callControlId}/hangup`, {});
|
|
397
|
+
}
|
|
398
|
+
async phoneAnswer(callControlId) {
|
|
399
|
+
return this.request('POST', `/phone/calls/${callControlId}/answer`, {});
|
|
400
|
+
}
|
|
401
|
+
async phoneTransfer(callControlId, to) {
|
|
402
|
+
return this.request('POST', `/phone/calls/${callControlId}/transfer`, { to });
|
|
359
403
|
}
|
|
360
404
|
// ── Email ──
|
|
361
405
|
async emailCreate(name, walletAddress, domain) {
|