fuego-cli 1.2.0 → 1.3.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 +42 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +11 -3
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/purch.d.ts +13 -0
- package/dist/commands/purch.d.ts.map +1 -0
- package/dist/commands/purch.js +104 -0
- package/dist/commands/purch.js.map +1 -0
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +6 -7
- package/dist/commands/send.js.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/fuego-cli-1.3.0.tgz +0 -0
- package/package.json +1 -1
- package/src/commands/install.ts +13 -3
- package/src/commands/purch.ts +125 -0
- package/src/commands/send.ts +6 -7
- package/src/index.ts +14 -0
package/README.md
CHANGED
|
@@ -74,6 +74,7 @@ fuego dashboard
|
|
|
74
74
|
| `fuego contacts` | Manage your contacts |
|
|
75
75
|
| `fuego fund` | Show funding options: MoonPay link + QR code |
|
|
76
76
|
| `fuego send` | Send SOL, USDC, or USDT to an address or contact |
|
|
77
|
+
| `fuego purch` | Purchase products via x402 (Amazon, Shopify, etc.) |
|
|
77
78
|
|
|
78
79
|
### Project Management
|
|
79
80
|
|
|
@@ -305,9 +306,49 @@ fuego send melanie 5 --token USDT --yes
|
|
|
305
306
|
|
|
306
307
|
---
|
|
307
308
|
|
|
309
|
+
### `fuego purch <product-url>`
|
|
310
|
+
|
|
311
|
+
Purchase products via x402/Purch.xyz (Amazon, Shopify, etc.) using USDC on Solana.
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
# Purchase from Amazon
|
|
315
|
+
fuego purch https://amazon.com/dp/B071G6PFDR \
|
|
316
|
+
--email user@example.com \
|
|
317
|
+
--name "John Doe" \
|
|
318
|
+
--address-line1 "123 Main St" \
|
|
319
|
+
--address-line2 "Apt 4B" \
|
|
320
|
+
--city "Austin" \
|
|
321
|
+
--state TX \
|
|
322
|
+
--postal-code 78701 \
|
|
323
|
+
--country US
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
**Required Options:**
|
|
327
|
+
- `--email <email>` — Email for order notifications
|
|
328
|
+
- `--name <name>` — Full name for shipping
|
|
329
|
+
- `--address-line1 <address>` — Street address line 1
|
|
330
|
+
- `--city <city>` — City
|
|
331
|
+
- `--state <state>` — State/Province code (e.g., TX)
|
|
332
|
+
- `--postal-code <code>` — Postal/ZIP code
|
|
333
|
+
|
|
334
|
+
**Optional:**
|
|
335
|
+
- `--address-line2 <address>` — Apartment, suite, etc.
|
|
336
|
+
- `--country <code>` — Country code (default: US)
|
|
337
|
+
|
|
338
|
+
**How it works:**
|
|
339
|
+
1. Sends product URL and shipping info to Purch.xyz
|
|
340
|
+
2. Receives x402 payment challenge ($0.01 USDC fee)
|
|
341
|
+
3. Builds and signs x402 payment transaction
|
|
342
|
+
4. Submits payment to Purch.xyz
|
|
343
|
+
5. Receives order transaction (ready for final submission)
|
|
344
|
+
|
|
345
|
+
**Note:** The final order transaction is displayed but not automatically submitted. Review the output to complete the purchase.
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
308
349
|
### `fuego install [options]`
|
|
309
350
|
|
|
310
|
-
Install the [Fuego project](https://github.com/willmcdeezy/fuego) — Rust server,
|
|
351
|
+
Install the [Fuego project](https://github.com/willmcdeezy/fuego) — Rust server, scripts, and dashboard. Automatically runs `npm install` after cloning.
|
|
311
352
|
|
|
312
353
|
**Auto-detection:**
|
|
313
354
|
1. Checks for `~/.openclaw/workspace` first (OpenClaw agent machines)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA2F3E"}
|
package/dist/commands/install.js
CHANGED
|
@@ -37,6 +37,10 @@ export async function installCommand(options) {
|
|
|
37
37
|
// Clone the main Fuego repo
|
|
38
38
|
const repoUrl = 'https://github.com/willmcdeezy/fuego.git';
|
|
39
39
|
execSync(`git clone ${repoUrl} "${installPath}"`, { stdio: 'pipe' });
|
|
40
|
+
spinner.text = 'Installing dependencies...';
|
|
41
|
+
spinner.color = 'green';
|
|
42
|
+
// Run npm install in the installed directory
|
|
43
|
+
execSync('npm install', { cwd: installPath, stdio: 'pipe' });
|
|
40
44
|
spinner.stop();
|
|
41
45
|
// Get the commit hash as version
|
|
42
46
|
const commitHash = execSync('git rev-parse --short HEAD', {
|
|
@@ -49,10 +53,14 @@ export async function installCommand(options) {
|
|
|
49
53
|
const cdPath = relativePath.startsWith('..') ? installPath : relativePath;
|
|
50
54
|
const safeCdPath = cdPath.includes(' ') ? `"${cdPath}"` : cdPath;
|
|
51
55
|
showSuccess('🔥 Fuego Installed Successfully!', `Location: ${chalk.cyan(installPath)}\nVersion: ${chalk.cyan(commitHash)}`);
|
|
52
|
-
showInfo('🚀
|
|
56
|
+
showInfo('🚀 You are all set!', [
|
|
53
57
|
`cd ${safeCdPath}`,
|
|
54
|
-
'
|
|
55
|
-
'
|
|
58
|
+
'',
|
|
59
|
+
'Next steps:',
|
|
60
|
+
' • Start the server: fuego serve',
|
|
61
|
+
' • Fund your wallet: fuego fund',
|
|
62
|
+
' • Open dashboard: fuego dashboard',
|
|
63
|
+
' • Check balance: fuego balance'
|
|
56
64
|
]);
|
|
57
65
|
flameDivider();
|
|
58
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface PurchOptions {
|
|
2
|
+
email: string;
|
|
3
|
+
name: string;
|
|
4
|
+
addressLine1: string;
|
|
5
|
+
addressLine2?: string;
|
|
6
|
+
city: string;
|
|
7
|
+
state: string;
|
|
8
|
+
postalCode: string;
|
|
9
|
+
country?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function purchCommand(productUrl: string, options: PurchOptions): Promise<void>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=purch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purch.d.ts","sourceRoot":"","sources":["../../src/commands/purch.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA2G3F"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { spawn } from 'child_process';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { loadWalletConfig, findFuegoPath } from '../lib/config.js';
|
|
5
|
+
import { showSuccess, showInfo, showError, flameDivider } from '../lib/ascii.js';
|
|
6
|
+
export async function purchCommand(productUrl, options) {
|
|
7
|
+
console.log();
|
|
8
|
+
// Validate required options
|
|
9
|
+
if (!options.email || !options.name || !options.addressLine1 || !options.city || !options.state || !options.postalCode) {
|
|
10
|
+
console.log(chalk.red('❌ Missing required options.'));
|
|
11
|
+
console.log(chalk.gray('\nUsage:'));
|
|
12
|
+
console.log(chalk.gray(' fuego purch <product-url>'));
|
|
13
|
+
console.log(chalk.gray(' --email <email>'));
|
|
14
|
+
console.log(chalk.gray(' --name <full-name>'));
|
|
15
|
+
console.log(chalk.gray(' --address-line1 <street-address>'));
|
|
16
|
+
console.log(chalk.gray(' --address-line2 <apartment/suite>'));
|
|
17
|
+
console.log(chalk.gray(' --city <city>'));
|
|
18
|
+
console.log(chalk.gray(' --state <state-code>'));
|
|
19
|
+
console.log(chalk.gray(' --postal-code <zip>'));
|
|
20
|
+
console.log(chalk.gray(' --country <country-code>'));
|
|
21
|
+
console.log(chalk.gray('\nExample:'));
|
|
22
|
+
console.log(chalk.gray(' fuego purch https://amazon.com/dp/B071G6PFDR \\'));
|
|
23
|
+
console.log(chalk.gray(' --email <your-email@example.com> \\'));
|
|
24
|
+
console.log(chalk.gray(' --name "<your-full-name>" \\'));
|
|
25
|
+
console.log(chalk.gray(' --address-line1 "<your-street-address>" \\'));
|
|
26
|
+
console.log(chalk.gray(' --address-line2 "<apartment-or-suite>" \\'));
|
|
27
|
+
console.log(chalk.gray(' --city "<your-city>" \\'));
|
|
28
|
+
console.log(chalk.gray(' --state <ST> \\'));
|
|
29
|
+
console.log(chalk.gray(' --postal-code <ZIP> \\'));
|
|
30
|
+
console.log(chalk.gray(' --country <CC>'));
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
// Load wallet
|
|
34
|
+
const walletConfig = loadWalletConfig();
|
|
35
|
+
if (!walletConfig) {
|
|
36
|
+
console.log(chalk.red('❌ No wallet found. Run "fuego create" first.'));
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
// Show order preview
|
|
40
|
+
showInfo('🛒 x402 Purchase Preview', [
|
|
41
|
+
`Product: ${chalk.cyan(productUrl)}`,
|
|
42
|
+
`Email: ${chalk.cyan(options.email)}`,
|
|
43
|
+
`Name: ${chalk.cyan(options.name)}`,
|
|
44
|
+
`Address: ${chalk.cyan(options.addressLine1)}${options.addressLine2 ? ', ' + options.addressLine2 : ''}`,
|
|
45
|
+
`City: ${chalk.cyan(options.city)}, ${chalk.cyan(options.state)} ${chalk.cyan(options.postalCode)}`,
|
|
46
|
+
`Country: ${chalk.cyan(options.country || 'US')}`,
|
|
47
|
+
`Wallet: ${chalk.gray(walletConfig.publicKey)}`,
|
|
48
|
+
`Network: ${chalk.gray('mainnet-beta')}`
|
|
49
|
+
]);
|
|
50
|
+
console.log();
|
|
51
|
+
console.log(chalk.blue('⏳ Processing x402 payment via Purch.xyz...'));
|
|
52
|
+
// Find fuego installation path and call Node.js script
|
|
53
|
+
const fuegoPath = findFuegoPath();
|
|
54
|
+
if (!fuegoPath) {
|
|
55
|
+
showError('Fuego installation not found. Run "fuego install" first.');
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
const scriptPath = path.join(fuegoPath, 'scripts', 'x402_purch.mjs');
|
|
59
|
+
const args = [
|
|
60
|
+
scriptPath,
|
|
61
|
+
'--product-url', productUrl,
|
|
62
|
+
'--email', options.email,
|
|
63
|
+
'--name', options.name,
|
|
64
|
+
'--address-line1', options.addressLine1,
|
|
65
|
+
'--city', options.city,
|
|
66
|
+
'--state', options.state,
|
|
67
|
+
'--postal-code', options.postalCode,
|
|
68
|
+
'--country', options.country || 'US'
|
|
69
|
+
];
|
|
70
|
+
if (options.addressLine2) {
|
|
71
|
+
args.push('--address-line2', options.addressLine2);
|
|
72
|
+
}
|
|
73
|
+
const nodeProcess = spawn('node', args);
|
|
74
|
+
let output = '';
|
|
75
|
+
let errorOutput = '';
|
|
76
|
+
nodeProcess.stdout.on('data', (data) => {
|
|
77
|
+
output += data.toString();
|
|
78
|
+
process.stdout.write(data);
|
|
79
|
+
});
|
|
80
|
+
nodeProcess.stderr.on('data', (data) => {
|
|
81
|
+
errorOutput += data.toString();
|
|
82
|
+
});
|
|
83
|
+
nodeProcess.on('close', (code) => {
|
|
84
|
+
if (code === 0) {
|
|
85
|
+
// Check if payment was successful
|
|
86
|
+
if (output.includes('PAYMENT ACCEPTED') || output.includes('SUCCESS')) {
|
|
87
|
+
showSuccess('✅ x402 Payment Complete!', 'Order transaction received from Purch.xyz');
|
|
88
|
+
}
|
|
89
|
+
else if (output.includes('failed') || output.includes('❌')) {
|
|
90
|
+
showError('Payment was not accepted. Check output above for details.');
|
|
91
|
+
process.exit(1);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
showSuccess('✅ x402 Purchase Flow Complete', '');
|
|
95
|
+
}
|
|
96
|
+
flameDivider();
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
showError(`x402 purchase failed: ${errorOutput || 'Unknown error'}`);
|
|
100
|
+
process.exit(1);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=purch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purch.js","sourceRoot":"","sources":["../../src/commands/purch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAUA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAiCD,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAUA,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAiCD,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAkHxG"}
|
package/dist/commands/send.js
CHANGED
|
@@ -84,30 +84,29 @@ export async function sendCommand(recipient, amount, options) {
|
|
|
84
84
|
}
|
|
85
85
|
console.log();
|
|
86
86
|
console.log(chalk.blue('⏳ Executing transaction via Fuego...'));
|
|
87
|
-
// Find fuego installation path and call
|
|
87
|
+
// Find fuego installation path and call Node.js script
|
|
88
88
|
const fuegoPath = findFuegoPath();
|
|
89
89
|
if (!fuegoPath) {
|
|
90
90
|
showError('Fuego installation not found. Run "fuego install" first.');
|
|
91
91
|
process.exit(1);
|
|
92
92
|
}
|
|
93
|
-
const scriptPath = path.join(fuegoPath, 'scripts', 'fuego_transfer.
|
|
94
|
-
const
|
|
93
|
+
const scriptPath = path.join(fuegoPath, 'scripts', 'fuego_transfer.mjs');
|
|
94
|
+
const nodeProcess = spawn('node', [
|
|
95
95
|
scriptPath,
|
|
96
|
-
'--from', walletConfig.publicKey,
|
|
97
96
|
'--to', resolvedAddress,
|
|
98
97
|
'--amount', amount,
|
|
99
98
|
'--token', token
|
|
100
99
|
]);
|
|
101
100
|
let output = '';
|
|
102
101
|
let errorOutput = '';
|
|
103
|
-
|
|
102
|
+
nodeProcess.stdout.on('data', (data) => {
|
|
104
103
|
output += data.toString();
|
|
105
104
|
process.stdout.write(data);
|
|
106
105
|
});
|
|
107
|
-
|
|
106
|
+
nodeProcess.stderr.on('data', (data) => {
|
|
108
107
|
errorOutput += data.toString();
|
|
109
108
|
});
|
|
110
|
-
|
|
109
|
+
nodeProcess.on('close', (code) => {
|
|
111
110
|
if (code === 0) {
|
|
112
111
|
// Extract signature from output if present
|
|
113
112
|
const sigMatch = output.match(/Signature: ([A-Za-z0-9]+)/);
|
|
@@ -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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"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import { rpcCommand } from './commands/rpc.js';
|
|
|
12
12
|
import { contactsAddCommand, contactsListCommand, contactsShowCommand, contactsRemoveCommand } from './commands/contacts.js';
|
|
13
13
|
import { sendCommand } from './commands/send.js';
|
|
14
14
|
import { fundCommand } from './commands/fund.js';
|
|
15
|
+
import { purchCommand } from './commands/purch.js';
|
|
15
16
|
import { showBanner } from './lib/ascii.js';
|
|
16
17
|
import { getFuegoCliVersion } from './lib/config.js';
|
|
17
18
|
async function main() {
|
|
@@ -102,6 +103,18 @@ async function main() {
|
|
|
102
103
|
.requiredOption('-t, --token <token>', 'Token to send (SOL, USDC, USDT)')
|
|
103
104
|
.option('-y, --yes', 'Skip confirmation and send immediately')
|
|
104
105
|
.action(sendCommand);
|
|
106
|
+
program
|
|
107
|
+
.command('purch <product-url>')
|
|
108
|
+
.description('Purchase products via x402/Purch.xyz (Amazon, Shopify, etc.)')
|
|
109
|
+
.requiredOption('--email <email>', 'Email for order notifications')
|
|
110
|
+
.requiredOption('--name <name>', 'Full name for shipping')
|
|
111
|
+
.requiredOption('--address-line1 <address>', 'Street address line 1')
|
|
112
|
+
.option('--address-line2 <address>', 'Apartment, suite, etc. (optional)')
|
|
113
|
+
.requiredOption('--city <city>', 'City')
|
|
114
|
+
.requiredOption('--state <state>', 'State/Province code (e.g., TX)')
|
|
115
|
+
.requiredOption('--postal-code <code>', 'Postal/ZIP code')
|
|
116
|
+
.option('--country <code>', 'Country code (default: US)', 'US')
|
|
117
|
+
.action(purchCommand);
|
|
105
118
|
await program.parseAsync(process.argv);
|
|
106
119
|
}
|
|
107
120
|
main().catch((error) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
package/src/commands/install.ts
CHANGED
|
@@ -54,6 +54,12 @@ export async function installCommand(options: InstallOptions): Promise<void> {
|
|
|
54
54
|
const repoUrl = 'https://github.com/willmcdeezy/fuego.git';
|
|
55
55
|
execSync(`git clone ${repoUrl} "${installPath}"`, { stdio: 'pipe' });
|
|
56
56
|
|
|
57
|
+
spinner.text = 'Installing dependencies...';
|
|
58
|
+
spinner.color = 'green';
|
|
59
|
+
|
|
60
|
+
// Run npm install in the installed directory
|
|
61
|
+
execSync('npm install', { cwd: installPath, stdio: 'pipe' });
|
|
62
|
+
|
|
57
63
|
spinner.stop();
|
|
58
64
|
|
|
59
65
|
// Get the commit hash as version
|
|
@@ -74,10 +80,14 @@ export async function installCommand(options: InstallOptions): Promise<void> {
|
|
|
74
80
|
`Location: ${chalk.cyan(installPath)}\nVersion: ${chalk.cyan(commitHash)}`
|
|
75
81
|
);
|
|
76
82
|
|
|
77
|
-
showInfo('🚀
|
|
83
|
+
showInfo('🚀 You are all set!', [
|
|
78
84
|
`cd ${safeCdPath}`,
|
|
79
|
-
'
|
|
80
|
-
'
|
|
85
|
+
'',
|
|
86
|
+
'Next steps:',
|
|
87
|
+
' • Start the server: fuego serve',
|
|
88
|
+
' • Fund your wallet: fuego fund',
|
|
89
|
+
' • Open dashboard: fuego dashboard',
|
|
90
|
+
' • Check balance: fuego balance'
|
|
81
91
|
]);
|
|
82
92
|
|
|
83
93
|
flameDivider();
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { spawn } from 'child_process';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { loadWalletConfig, findFuegoPath } from '../lib/config.js';
|
|
5
|
+
import { showSuccess, showInfo, showError, flameDivider } from '../lib/ascii.js';
|
|
6
|
+
|
|
7
|
+
interface PurchOptions {
|
|
8
|
+
email: string;
|
|
9
|
+
name: string;
|
|
10
|
+
addressLine1: string;
|
|
11
|
+
addressLine2?: string;
|
|
12
|
+
city: string;
|
|
13
|
+
state: string;
|
|
14
|
+
postalCode: string;
|
|
15
|
+
country?: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export async function purchCommand(productUrl: string, options: PurchOptions): Promise<void> {
|
|
19
|
+
console.log();
|
|
20
|
+
|
|
21
|
+
// Validate required options
|
|
22
|
+
if (!options.email || !options.name || !options.addressLine1 || !options.city || !options.state || !options.postalCode) {
|
|
23
|
+
console.log(chalk.red('❌ Missing required options.'));
|
|
24
|
+
console.log(chalk.gray('\nUsage:'));
|
|
25
|
+
console.log(chalk.gray(' fuego purch <product-url>'));
|
|
26
|
+
console.log(chalk.gray(' --email <email>'));
|
|
27
|
+
console.log(chalk.gray(' --name <full-name>'));
|
|
28
|
+
console.log(chalk.gray(' --address-line1 <street-address>'));
|
|
29
|
+
console.log(chalk.gray(' --address-line2 <apartment/suite>'));
|
|
30
|
+
console.log(chalk.gray(' --city <city>'));
|
|
31
|
+
console.log(chalk.gray(' --state <state-code>'));
|
|
32
|
+
console.log(chalk.gray(' --postal-code <zip>'));
|
|
33
|
+
console.log(chalk.gray(' --country <country-code>'));
|
|
34
|
+
console.log(chalk.gray('\nExample:'));
|
|
35
|
+
console.log(chalk.gray(' fuego purch https://amazon.com/dp/B071G6PFDR \\'));
|
|
36
|
+
console.log(chalk.gray(' --email <your-email@example.com> \\'));
|
|
37
|
+
console.log(chalk.gray(' --name "<your-full-name>" \\'));
|
|
38
|
+
console.log(chalk.gray(' --address-line1 "<your-street-address>" \\'));
|
|
39
|
+
console.log(chalk.gray(' --address-line2 "<apartment-or-suite>" \\'));
|
|
40
|
+
console.log(chalk.gray(' --city "<your-city>" \\'));
|
|
41
|
+
console.log(chalk.gray(' --state <ST> \\'));
|
|
42
|
+
console.log(chalk.gray(' --postal-code <ZIP> \\'));
|
|
43
|
+
console.log(chalk.gray(' --country <CC>'));
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Load wallet
|
|
48
|
+
const walletConfig = loadWalletConfig();
|
|
49
|
+
if (!walletConfig) {
|
|
50
|
+
console.log(chalk.red('❌ No wallet found. Run "fuego create" first.'));
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Show order preview
|
|
55
|
+
showInfo('🛒 x402 Purchase Preview', [
|
|
56
|
+
`Product: ${chalk.cyan(productUrl)}`,
|
|
57
|
+
`Email: ${chalk.cyan(options.email)}`,
|
|
58
|
+
`Name: ${chalk.cyan(options.name)}`,
|
|
59
|
+
`Address: ${chalk.cyan(options.addressLine1)}${options.addressLine2 ? ', ' + options.addressLine2 : ''}`,
|
|
60
|
+
`City: ${chalk.cyan(options.city)}, ${chalk.cyan(options.state)} ${chalk.cyan(options.postalCode)}`,
|
|
61
|
+
`Country: ${chalk.cyan(options.country || 'US')}`,
|
|
62
|
+
`Wallet: ${chalk.gray(walletConfig.publicKey)}`,
|
|
63
|
+
`Network: ${chalk.gray('mainnet-beta')}`
|
|
64
|
+
]);
|
|
65
|
+
|
|
66
|
+
console.log();
|
|
67
|
+
console.log(chalk.blue('⏳ Processing x402 payment via Purch.xyz...'));
|
|
68
|
+
|
|
69
|
+
// Find fuego installation path and call Node.js script
|
|
70
|
+
const fuegoPath = findFuegoPath();
|
|
71
|
+
if (!fuegoPath) {
|
|
72
|
+
showError('Fuego installation not found. Run "fuego install" first.');
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const scriptPath = path.join(fuegoPath, 'scripts', 'x402_purch.mjs');
|
|
77
|
+
|
|
78
|
+
const args = [
|
|
79
|
+
scriptPath,
|
|
80
|
+
'--product-url', productUrl,
|
|
81
|
+
'--email', options.email,
|
|
82
|
+
'--name', options.name,
|
|
83
|
+
'--address-line1', options.addressLine1,
|
|
84
|
+
'--city', options.city,
|
|
85
|
+
'--state', options.state,
|
|
86
|
+
'--postal-code', options.postalCode,
|
|
87
|
+
'--country', options.country || 'US'
|
|
88
|
+
];
|
|
89
|
+
|
|
90
|
+
if (options.addressLine2) {
|
|
91
|
+
args.push('--address-line2', options.addressLine2);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
const nodeProcess = spawn('node', args);
|
|
95
|
+
|
|
96
|
+
let output = '';
|
|
97
|
+
let errorOutput = '';
|
|
98
|
+
|
|
99
|
+
nodeProcess.stdout.on('data', (data) => {
|
|
100
|
+
output += data.toString();
|
|
101
|
+
process.stdout.write(data);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
nodeProcess.stderr.on('data', (data) => {
|
|
105
|
+
errorOutput += data.toString();
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
nodeProcess.on('close', (code) => {
|
|
109
|
+
if (code === 0) {
|
|
110
|
+
// Check if payment was successful
|
|
111
|
+
if (output.includes('PAYMENT ACCEPTED') || output.includes('SUCCESS')) {
|
|
112
|
+
showSuccess('✅ x402 Payment Complete!', 'Order transaction received from Purch.xyz');
|
|
113
|
+
} else if (output.includes('failed') || output.includes('❌')) {
|
|
114
|
+
showError('Payment was not accepted. Check output above for details.');
|
|
115
|
+
process.exit(1);
|
|
116
|
+
} else {
|
|
117
|
+
showSuccess('✅ x402 Purchase Flow Complete', '');
|
|
118
|
+
}
|
|
119
|
+
flameDivider();
|
|
120
|
+
} else {
|
|
121
|
+
showError(`x402 purchase failed: ${errorOutput || 'Unknown error'}`);
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
package/src/commands/send.ts
CHANGED
|
@@ -112,18 +112,17 @@ export async function sendCommand(recipient: string, amount: string, options: Se
|
|
|
112
112
|
console.log();
|
|
113
113
|
console.log(chalk.blue('⏳ Executing transaction via Fuego...'));
|
|
114
114
|
|
|
115
|
-
// Find fuego installation path and call
|
|
115
|
+
// Find fuego installation path and call Node.js script
|
|
116
116
|
const fuegoPath = findFuegoPath();
|
|
117
117
|
if (!fuegoPath) {
|
|
118
118
|
showError('Fuego installation not found. Run "fuego install" first.');
|
|
119
119
|
process.exit(1);
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
const scriptPath = path.join(fuegoPath, 'scripts', 'fuego_transfer.
|
|
122
|
+
const scriptPath = path.join(fuegoPath, 'scripts', 'fuego_transfer.mjs');
|
|
123
123
|
|
|
124
|
-
const
|
|
124
|
+
const nodeProcess = spawn('node', [
|
|
125
125
|
scriptPath,
|
|
126
|
-
'--from', walletConfig.publicKey,
|
|
127
126
|
'--to', resolvedAddress,
|
|
128
127
|
'--amount', amount,
|
|
129
128
|
'--token', token
|
|
@@ -132,16 +131,16 @@ export async function sendCommand(recipient: string, amount: string, options: Se
|
|
|
132
131
|
let output = '';
|
|
133
132
|
let errorOutput = '';
|
|
134
133
|
|
|
135
|
-
|
|
134
|
+
nodeProcess.stdout.on('data', (data) => {
|
|
136
135
|
output += data.toString();
|
|
137
136
|
process.stdout.write(data);
|
|
138
137
|
});
|
|
139
138
|
|
|
140
|
-
|
|
139
|
+
nodeProcess.stderr.on('data', (data) => {
|
|
141
140
|
errorOutput += data.toString();
|
|
142
141
|
});
|
|
143
142
|
|
|
144
|
-
|
|
143
|
+
nodeProcess.on('close', (code) => {
|
|
145
144
|
if (code === 0) {
|
|
146
145
|
// Extract signature from output if present
|
|
147
146
|
const sigMatch = output.match(/Signature: ([A-Za-z0-9]+)/);
|
package/src/index.ts
CHANGED
|
@@ -13,6 +13,7 @@ import { rpcCommand } from './commands/rpc.js';
|
|
|
13
13
|
import { contactsAddCommand, contactsListCommand, contactsShowCommand, contactsRemoveCommand } from './commands/contacts.js';
|
|
14
14
|
import { sendCommand } from './commands/send.js';
|
|
15
15
|
import { fundCommand } from './commands/fund.js';
|
|
16
|
+
import { purchCommand } from './commands/purch.js';
|
|
16
17
|
import { showBanner } from './lib/ascii.js';
|
|
17
18
|
import { getFuegoCliVersion } from './lib/config.js';
|
|
18
19
|
|
|
@@ -122,6 +123,19 @@ async function main() {
|
|
|
122
123
|
.option('-y, --yes', 'Skip confirmation and send immediately')
|
|
123
124
|
.action(sendCommand);
|
|
124
125
|
|
|
126
|
+
program
|
|
127
|
+
.command('purch <product-url>')
|
|
128
|
+
.description('Purchase products via x402/Purch.xyz (Amazon, Shopify, etc.)')
|
|
129
|
+
.requiredOption('--email <email>', 'Email for order notifications')
|
|
130
|
+
.requiredOption('--name <name>', 'Full name for shipping')
|
|
131
|
+
.requiredOption('--address-line1 <address>', 'Street address line 1')
|
|
132
|
+
.option('--address-line2 <address>', 'Apartment, suite, etc. (optional)')
|
|
133
|
+
.requiredOption('--city <city>', 'City')
|
|
134
|
+
.requiredOption('--state <state>', 'State/Province code (e.g., TX)')
|
|
135
|
+
.requiredOption('--postal-code <code>', 'Postal/ZIP code')
|
|
136
|
+
.option('--country <code>', 'Country code (default: US)', 'US')
|
|
137
|
+
.action(purchCommand);
|
|
138
|
+
|
|
125
139
|
await program.parseAsync(process.argv);
|
|
126
140
|
}
|
|
127
141
|
|