memeputer 1.1.2 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/__tests__/config.test.d.ts +2 -0
  2. package/dist/__tests__/config.test.d.ts.map +1 -0
  3. package/dist/__tests__/config.test.js +40 -0
  4. package/dist/__tests__/config.test.js.map +1 -0
  5. package/dist/__tests__/formatting.test.d.ts +2 -0
  6. package/dist/__tests__/formatting.test.d.ts.map +1 -0
  7. package/dist/__tests__/formatting.test.js +57 -0
  8. package/dist/__tests__/formatting.test.js.map +1 -0
  9. package/dist/__tests__/wallet.test.d.ts +2 -0
  10. package/dist/__tests__/wallet.test.d.ts.map +1 -0
  11. package/dist/__tests__/wallet.test.js +30 -0
  12. package/dist/__tests__/wallet.test.js.map +1 -0
  13. package/dist/commands/agents.js +2 -2
  14. package/dist/commands/agents.js.map +1 -1
  15. package/dist/commands/balance.js +1 -1
  16. package/dist/commands/balance.js.map +1 -1
  17. package/dist/commands/command.d.ts.map +1 -1
  18. package/dist/commands/command.js +59 -14
  19. package/dist/commands/command.js.map +1 -1
  20. package/dist/commands/prompt.d.ts +3 -0
  21. package/dist/commands/prompt.d.ts.map +1 -0
  22. package/dist/commands/{ask.js → prompt.js} +19 -10
  23. package/dist/commands/prompt.js.map +1 -0
  24. package/dist/index.js +5 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/config.d.ts.map +1 -1
  27. package/dist/lib/config.js +16 -6
  28. package/dist/lib/config.js.map +1 -1
  29. package/dist/utils/formatting.d.ts +2 -0
  30. package/dist/utils/formatting.d.ts.map +1 -1
  31. package/dist/utils/formatting.js +13 -1
  32. package/dist/utils/formatting.js.map +1 -1
  33. package/package.json +17 -12
  34. package/vitest.config.ts +9 -0
  35. package/dist/commands/ask.d.ts +0 -3
  36. package/dist/commands/ask.d.ts.map +0 -1
  37. package/dist/commands/ask.js.map +0 -1
  38. package/dist/commands/pfp.d.ts +0 -3
  39. package/dist/commands/pfp.d.ts.map +0 -1
  40. package/dist/commands/pfp.js +0 -99
  41. package/dist/commands/pfp.js.map +0 -1
  42. package/dist/lib/api.d.ts +0 -56
  43. package/dist/lib/api.d.ts.map +0 -1
  44. package/dist/lib/api.js +0 -160
  45. package/dist/lib/api.js.map +0 -1
  46. package/dist/lib/x402Client.d.ts +0 -14
  47. package/dist/lib/x402Client.d.ts.map +0 -1
  48. package/dist/lib/x402Client.js +0 -105
  49. package/dist/lib/x402Client.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../src/utils/formatting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../src/utils/formatting.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "memeputer",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "description": "CLI tool for interacting with Memeputer AI agents via x402 payments",
5
5
  "bin": {
6
6
  "memeputer": "./dist/index.js"
@@ -9,7 +9,9 @@
9
9
  "type": "module",
10
10
  "scripts": {
11
11
  "dev": "echo '✅ CLI is ready! Run: cd apps/cli && tsx src/index.ts -- agents'",
12
- "test": "tsx src/index.ts agents",
12
+ "test": "vitest",
13
+ "test:run": "vitest run",
14
+ "test:ui": "vitest --ui",
13
15
  "build": "tsc",
14
16
  "start": "node dist/index.js",
15
17
  "prepublishOnly": "npm run build"
@@ -27,26 +29,29 @@
27
29
  "license": "MIT",
28
30
  "repository": {
29
31
  "type": "git",
30
- "url": "https://github.com/memeputer/memeputer"
32
+ "url": "https://github.com/memeputer/memeputer-oss.git",
33
+ "directory": "packages/cli"
31
34
  },
32
35
  "homepage": "https://memeputer.com",
33
36
  "bugs": {
34
- "url": "https://github.com/memeputer/memeputer/issues"
37
+ "url": "https://github.com/memeputer/memeputer-oss/issues"
35
38
  },
36
39
  "dependencies": {
37
- "commander": "^11.1.0",
38
- "ora": "^8.0.1",
39
- "chalk": "^5.3.0",
40
- "axios": "^1.6.5",
40
+ "@memeputer/sdk": "workspace:*",
41
41
  "@solana/web3.js": "^1.98.4",
42
- "@solana/spl-token": "^0.4.14",
43
- "bs58": "^5.0.0",
44
- "dotenv": "^16.3.1"
42
+ "axios": "^1.7.7",
43
+ "bs58": "^6.0.0",
44
+ "chalk": "^5.3.0",
45
+ "commander": "^11.1.0",
46
+ "dotenv": "^16.3.1",
47
+ "ora": "^8.0.1"
45
48
  },
46
49
  "devDependencies": {
47
50
  "@types/node": "^20.10.6",
51
+ "@vitest/ui": "^4.0.8",
48
52
  "tsx": "^4.7.0",
49
- "typescript": "^5.3.3"
53
+ "typescript": "^5.3.3",
54
+ "vitest": "^4.0.8"
50
55
  },
51
56
  "engines": {
52
57
  "node": ">=18.0.0"
@@ -0,0 +1,9 @@
1
+ import { defineConfig } from 'vitest/config';
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ globals: true,
6
+ environment: 'node',
7
+ },
8
+ });
9
+
@@ -1,3 +0,0 @@
1
- import { Command } from "commander";
2
- export declare function createAskCommand(): Command;
3
- //# sourceMappingURL=ask.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,gBAAgB,IAAI,OAAO,CAoM1C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from "commander";
2
- export declare function createPfpCommand(): Command;
3
- //# sourceMappingURL=pfp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pfp.d.ts","sourceRoot":"","sources":["../../src/commands/pfp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,wBAAgB,gBAAgB,IAAI,OAAO,CAmI1C"}
@@ -1,99 +0,0 @@
1
- import { Command } from "commander";
2
- import { Connection } from "@solana/web3.js";
3
- import ora from "ora";
4
- import chalk from "chalk";
5
- import axios from "axios";
6
- import { writeFileSync } from "fs";
7
- import { resolve } from "path";
8
- import { loadConfig, getDefaultWalletPath } from "../lib/config.js";
9
- import { loadWallet, formatPublicKey } from "../lib/wallet.js";
10
- import { AgentsApiClient } from "../lib/api.js";
11
- import { formatSuccess, formatError, formatInfo, formatAgent, } from "../utils/formatting.js";
12
- export function createPfpCommand() {
13
- return new Command("pfp")
14
- .description("Generate a profile picture with PFPputer")
15
- .argument("<prompt>", "Description of the PFP you want to generate")
16
- .option("-w, --wallet <path>", "Path to Solana wallet keypair")
17
- .option("-o, --output <path>", "Save image to file path")
18
- .option("--json", "Output in JSON format")
19
- .option("-q, --quiet", "Suppress progress output")
20
- .action(async (prompt, options) => {
21
- try {
22
- const config = loadConfig();
23
- const apiUrl = config.apiUrl;
24
- const rpcUrl = config.rpcUrl;
25
- const walletPath = options.wallet || config.wallet || getDefaultWalletPath();
26
- if (!walletPath) {
27
- console.error(formatError("No wallet specified. Use --wallet or set MEMEPUTER_WALLET"));
28
- process.exit(1);
29
- }
30
- const quiet = options.quiet || options.json;
31
- // Load wallet
32
- let spinner = quiet ? null : ora("Loading wallet...").start();
33
- const wallet = loadWallet(walletPath);
34
- if (spinner) {
35
- spinner.succeed(`Wallet loaded: ${formatPublicKey(wallet.publicKey.toBase58())}`);
36
- }
37
- // Connect to Solana
38
- spinner = quiet ? null : ora("Connecting to Solana...").start();
39
- const connection = new Connection(rpcUrl, "confirmed");
40
- if (spinner) {
41
- spinner.succeed("Connected to Solana");
42
- }
43
- // Call PFPputer API with x402 payment
44
- spinner = quiet
45
- ? null
46
- : ora(`Generating PFP with ${formatAgent("PFPputer")}... (processing payment)`).start();
47
- const apiClient = new AgentsApiClient(apiUrl);
48
- const result = await apiClient.interact("pfpputer", prompt, wallet, connection);
49
- if (spinner) {
50
- spinner.succeed(`PFP generated by ${formatAgent("PFPputer")}`);
51
- }
52
- // Download image if requested
53
- if (options.output && result.mediaUrl) {
54
- spinner = quiet ? null : ora("Downloading image...").start();
55
- const imageResponse = await axios.get(result.mediaUrl, {
56
- responseType: "arraybuffer",
57
- });
58
- const outputPath = resolve(options.output);
59
- writeFileSync(outputPath, imageResponse.data);
60
- if (spinner) {
61
- spinner.succeed(`Image saved to ${chalk.cyan(outputPath)}`);
62
- }
63
- }
64
- // Output results
65
- if (options.json) {
66
- console.log(JSON.stringify({
67
- success: result.success,
68
- response: result.response,
69
- mediaUrl: result.mediaUrl,
70
- signature: result.transactionSignature,
71
- savedTo: options.output ? resolve(options.output) : null,
72
- }, null, 2));
73
- }
74
- else {
75
- console.log();
76
- console.log(formatSuccess("PFP Generated!"));
77
- console.log();
78
- console.log(chalk.white(result.response));
79
- console.log();
80
- if (result.mediaUrl) {
81
- console.log(formatInfo(`Image URL: ${chalk.underline(result.mediaUrl)}`));
82
- }
83
- if (result.transactionSignature) {
84
- console.log(formatInfo(`Transaction: ${chalk.underline(`https://solscan.io/tx/${result.transactionSignature}`)}`));
85
- console.log(chalk.green("💚 You paid $0 in gas fees (PayAI Facilitator covered it)!"));
86
- }
87
- if (options.output) {
88
- console.log(formatInfo(`Saved to: ${chalk.cyan(resolve(options.output))}`));
89
- }
90
- console.log();
91
- }
92
- }
93
- catch (error) {
94
- console.error(formatError(error.message || "Failed to generate PFP"));
95
- process.exit(1);
96
- }
97
- });
98
- }
99
- //# sourceMappingURL=pfp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pfp.js","sourceRoot":"","sources":["../../src/commands/pfp.ts"],"names":[],"mappings":"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"}
package/dist/lib/api.d.ts DELETED
@@ -1,56 +0,0 @@
1
- import { Connection, Keypair } from "@solana/web3.js";
2
- export interface AgentInfo {
3
- id: string;
4
- name: string;
5
- description: string;
6
- price: number;
7
- category: string;
8
- examplePrompts: string[];
9
- payTo: string;
10
- }
11
- export interface InteractionResult {
12
- success: boolean;
13
- response: string;
14
- format: "text" | "image" | "video" | "audio";
15
- mediaUrl?: string;
16
- statusUrl?: string;
17
- imageUrl?: string;
18
- etaSeconds?: number;
19
- transactionSignature?: string;
20
- agentId?: string;
21
- error?: string;
22
- }
23
- export interface StatusCheckResult {
24
- status: "pending" | "processing" | "completed" | "failed";
25
- message?: string;
26
- imageUrl?: string;
27
- mediaUrl?: string;
28
- error?: string;
29
- }
30
- export declare class AgentsApiClient {
31
- private baseUrl;
32
- constructor(baseUrl: string);
33
- /**
34
- * List all available agents from the x402 resources endpoint
35
- */
36
- listAgents(): Promise<AgentInfo[]>;
37
- /**
38
- * Interact with an agent using x402 payment
39
- * Manual x402 flow: 402 → create payment → retry with X-PAYMENT header
40
- */
41
- interact(agentId: string, message: string, wallet: Keypair, connection: Connection): Promise<InteractionResult>;
42
- /**
43
- * Check status of async operation
44
- * Status URLs point to agents-api proxy (no auth required)
45
- */
46
- checkStatus(statusUrl: string): Promise<StatusCheckResult>;
47
- /**
48
- * Poll status URL until completion or timeout
49
- */
50
- pollStatus(statusUrl: string, options?: {
51
- maxAttempts?: number;
52
- intervalMs?: number;
53
- onProgress?: (attempt: number, status: StatusCheckResult) => void;
54
- }): Promise<StatusCheckResult>;
55
- }
56
- //# sourceMappingURL=api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM;IAEnC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAsBxC;;;OAGG;IACG,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,iBAAiB,CAAC;IA8G7B;;;OAGG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwBhE;;OAEG;IACG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;KAC9D,GACL,OAAO,CAAC,iBAAiB,CAAC;CAyB9B"}
package/dist/lib/api.js DELETED
@@ -1,160 +0,0 @@
1
- import axios from "axios";
2
- import { createPaymentTransaction } from "./x402Client.js";
3
- export class AgentsApiClient {
4
- baseUrl;
5
- constructor(baseUrl) {
6
- this.baseUrl = baseUrl;
7
- }
8
- /**
9
- * List all available agents from the x402 resources endpoint
10
- */
11
- async listAgents() {
12
- const response = await axios.get(`${this.baseUrl}/x402/resources`);
13
- const data = response.data;
14
- // Parse new x402 format: { x402Version: 1, accepts: [...] }
15
- const acceptsList = data.accepts || [];
16
- const agents = acceptsList.map((accept) => ({
17
- id: accept.extra?.agentId || accept.agentId || "unknown",
18
- name: accept.extra?.agentName || accept.name || "Unknown Agent",
19
- description: accept.description || "AI agent",
20
- price: accept.extra?.pricing?.amount ||
21
- parseFloat(accept.maxAmountRequired || "10000") / 1_000_000,
22
- category: accept.extra?.category || "General AI",
23
- examplePrompts: accept.extra?.examplePrompts || [],
24
- payTo: accept.payTo || "",
25
- }));
26
- return agents;
27
- }
28
- /**
29
- * Interact with an agent using x402 payment
30
- * Manual x402 flow: 402 → create payment → retry with X-PAYMENT header
31
- */
32
- async interact(agentId, message, wallet, connection) {
33
- try {
34
- // Step 1: Make request without payment (will get 402)
35
- let response;
36
- try {
37
- response = await axios.post(`${this.baseUrl}/x402/interact`, { agentId, message }, {
38
- headers: {
39
- "Content-Type": "application/json",
40
- "User-Agent": "memeputer-cli",
41
- },
42
- });
43
- }
44
- catch (error) {
45
- if (error.response?.status !== 402) {
46
- throw error;
47
- }
48
- // Got 402 - payment required
49
- response = error.response;
50
- }
51
- if (response.status === 402) {
52
- // Step 2: Get payment requirements from 402 response
53
- const paymentReq = response.data;
54
- // x402 format has payment details in accepts array
55
- const acceptDetails = paymentReq.accepts?.[0];
56
- if (!acceptDetails) {
57
- throw new Error(`No payment details in 402 response. Response: ${JSON.stringify(paymentReq)}`);
58
- }
59
- const recipient = acceptDetails.payTo;
60
- const amountMicroUsdc = parseInt(acceptDetails.maxAmountRequired || "10000");
61
- const amountUsdc = amountMicroUsdc / 1_000_000;
62
- const feePayer = acceptDetails.extra?.feePayer;
63
- const scheme = acceptDetails.scheme || "exact";
64
- const network = acceptDetails.network || "solana";
65
- if (!recipient) {
66
- throw new Error(`No recipient wallet (payTo) found in 402 response.`);
67
- }
68
- // Step 3: Create and sign payment transaction
69
- const { signature: paymentHeader } = await createPaymentTransaction(connection, wallet, recipient, amountUsdc, scheme, network);
70
- // Step 4: Retry request with X-PAYMENT header
71
- response = await axios.post(`${this.baseUrl}/x402/interact`, { agentId, message }, {
72
- headers: {
73
- "Content-Type": "application/json",
74
- "X-PAYMENT": paymentHeader,
75
- "User-Agent": "memeputer-cli",
76
- },
77
- });
78
- }
79
- // Parse successful response
80
- const data = response.data;
81
- return {
82
- success: data.success || true,
83
- response: data.response || data.message || "",
84
- format: data.format || "text",
85
- mediaUrl: data.mediaUrl || data.media_url,
86
- statusUrl: data.statusUrl || data.status_url,
87
- imageUrl: data.imageUrl || data.image_url,
88
- etaSeconds: data.etaSeconds || data.eta_seconds,
89
- transactionSignature: data.transactionSignature,
90
- agentId: data.agentId || agentId,
91
- };
92
- }
93
- catch (error) {
94
- // Better error messages
95
- if (error.response) {
96
- const status = error.response.status;
97
- const data = error.response.data;
98
- if (status === 402) {
99
- throw new Error(`Payment required but payment was rejected. Check your USDC balance.`);
100
- }
101
- if (data?.error) {
102
- throw new Error(data.error);
103
- }
104
- throw new Error(`API error (${status}): ${JSON.stringify(data)}`);
105
- }
106
- throw error;
107
- }
108
- }
109
- /**
110
- * Check status of async operation
111
- * Status URLs point to agents-api proxy (no auth required)
112
- */
113
- async checkStatus(statusUrl) {
114
- try {
115
- const response = await axios.get(statusUrl);
116
- // Handle both wrapped (ok()) and unwrapped responses
117
- const data = response.data.data || response.data;
118
- return {
119
- status: data.status || "pending",
120
- message: data.message,
121
- imageUrl: data.imageUrl || data.image_url,
122
- mediaUrl: data.mediaUrl || data.media_url,
123
- error: data.error,
124
- };
125
- }
126
- catch (error) {
127
- if (error.response?.data) {
128
- return {
129
- status: "failed",
130
- error: error.response.data.error || "Status check failed",
131
- };
132
- }
133
- throw error;
134
- }
135
- }
136
- /**
137
- * Poll status URL until completion or timeout
138
- */
139
- async pollStatus(statusUrl, options = {}) {
140
- const maxAttempts = options.maxAttempts || 60; // 5 minutes at 5s intervals
141
- const intervalMs = options.intervalMs || 5000;
142
- for (let attempt = 1; attempt <= maxAttempts; attempt++) {
143
- const result = await this.checkStatus(statusUrl);
144
- if (options.onProgress) {
145
- options.onProgress(attempt, result);
146
- }
147
- if (result.status === "completed" || result.status === "failed") {
148
- return result;
149
- }
150
- if (attempt < maxAttempts) {
151
- await new Promise((resolve) => setTimeout(resolve, intervalMs));
152
- }
153
- }
154
- return {
155
- status: "failed",
156
- error: "Timeout waiting for completion",
157
- };
158
- }
159
- }
160
- //# sourceMappingURL=api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { Connection, Keypair, VersionedTransaction } from "@solana/web3.js";
2
- /**
3
- * Create a simple USDC payment transaction (for CLI use)
4
- * This creates a signed transaction that can be sent in the X-PAYMENT header
5
- */
6
- export declare function createPaymentTransaction(connection: Connection, payer: Keypair, recipient: string, amountUsdc: number, scheme?: string, network?: string): Promise<{
7
- transaction: VersionedTransaction;
8
- signature: string;
9
- }>;
10
- /**
11
- * Get USDC balance for a wallet
12
- */
13
- export declare function getUsdcBalance(connection: Connection, keypair: Keypair): Promise<number>;
14
- //# sourceMappingURL=x402Client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"x402Client.d.ts","sourceRoot":"","sources":["../../src/lib/x402Client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,OAAO,EAIP,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AAYzB;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAgB,EACxB,OAAO,GAAE,MAAiB,GACzB,OAAO,CAAC;IAAE,WAAW,EAAE,oBAAoB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAsInE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,CAAC,CAejB"}
@@ -1,105 +0,0 @@
1
- import { ComputeBudgetProgram, TransactionMessage, VersionedTransaction, } from "@solana/web3.js";
2
- import { getAssociatedTokenAddress, createTransferCheckedInstruction, createAssociatedTokenAccountInstruction, TOKEN_PROGRAM_ID, } from "@solana/spl-token";
3
- import { PublicKey } from "@solana/web3.js";
4
- // USDC mint on Solana mainnet
5
- const USDC_MINT = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
6
- /**
7
- * Create a simple USDC payment transaction (for CLI use)
8
- * This creates a signed transaction that can be sent in the X-PAYMENT header
9
- */
10
- export async function createPaymentTransaction(connection, payer, recipient, amountUsdc, scheme = "exact", network = "solana") {
11
- try {
12
- const recipientPubkey = new PublicKey(recipient);
13
- // Convert USDC amount to micro-USDC (6 decimals)
14
- const amount = Math.floor(amountUsdc * 1_000_000);
15
- // Get token accounts (allowOwnerOffCurve fixes wallet adapter key issues)
16
- const payerTokenAccount = await getAssociatedTokenAddress(USDC_MINT, payer.publicKey, true, // allowOwnerOffCurve - critical for wallet adapter keys!
17
- TOKEN_PROGRAM_ID);
18
- const recipientTokenAccount = await getAssociatedTokenAddress(USDC_MINT, recipientPubkey, true, // allowOwnerOffCurve - critical for wallet adapter keys!
19
- TOKEN_PROGRAM_ID);
20
- // Build instructions array
21
- const instructions = [];
22
- // Add ComputeBudget instructions FIRST (required by facilitator!)
23
- instructions.push(ComputeBudgetProgram.setComputeUnitLimit({
24
- units: 40_000,
25
- }));
26
- instructions.push(ComputeBudgetProgram.setComputeUnitPrice({
27
- microLamports: 1,
28
- }));
29
- // Check if recipient token account exists, if not create it
30
- const recipientAccountInfo = await connection.getAccountInfo(recipientTokenAccount);
31
- if (!recipientAccountInfo) {
32
- console.log(` 📝 Recipient token account doesn't exist, will create it`);
33
- instructions.push(createAssociatedTokenAccountInstruction(payer.publicKey, // payer
34
- recipientTokenAccount, // ata
35
- recipientPubkey, // owner
36
- USDC_MINT, // mint
37
- TOKEN_PROGRAM_ID));
38
- }
39
- // Add the transfer instruction (use checked version like agent-to-agent payments)
40
- instructions.push(createTransferCheckedInstruction(payerTokenAccount, USDC_MINT, recipientTokenAccount, payer.publicKey, amount, 6, // USDC has 6 decimals
41
- [], TOKEN_PROGRAM_ID));
42
- // Get recent blockhash
43
- const { blockhash } = await connection.getLatestBlockhash("confirmed");
44
- // Set facilitator as fee payer for gas-free transactions!
45
- const facilitatorPublicKey = new PublicKey("2wKupLR9q6wXYppw8Gr2NvWxKBUqm4PPJKkQfoxHDBg4");
46
- // Create VersionedTransaction (x402 standard)
47
- const message = new TransactionMessage({
48
- payerKey: facilitatorPublicKey,
49
- recentBlockhash: blockhash,
50
- instructions,
51
- }).compileToV0Message();
52
- const transaction = new VersionedTransaction(message);
53
- // Find which signature slot corresponds to the user's public key
54
- // The facilitator is at index 0 (fee payer), user is at a different index
55
- const userPubkey = payer.publicKey;
56
- const staticAccountKeys = transaction.message.staticAccountKeys;
57
- const userSignatureIndex = staticAccountKeys.findIndex((key) => key.equals(userPubkey));
58
- // Sign with user's wallet (facilitator will add its signature)
59
- transaction.sign([payer]);
60
- // Serialize transaction
61
- const serialized = transaction.serialize();
62
- const serializedTx = Buffer.from(serialized).toString("base64");
63
- // Extract the user's signature from the correct slot (bs58 encoded)
64
- const bs58 = await import("bs58");
65
- const userSignature = userSignatureIndex >= 0 &&
66
- transaction.signatures?.[userSignatureIndex] &&
67
- !transaction.signatures[userSignatureIndex].every((b) => b === 0)
68
- ? bs58.default.encode(transaction.signatures[userSignatureIndex])
69
- : undefined;
70
- // Create X-PAYMENT header in x402 format (minimal format matching agent-to-agent)
71
- // This matches the exact format from @payai/x402-solana
72
- const paymentPayload = {
73
- x402Version: 1,
74
- scheme: scheme,
75
- network: network,
76
- payload: {
77
- transaction: serializedTx,
78
- signature: userSignature, // Include signature for reference (optional)
79
- },
80
- };
81
- // Encode as base64
82
- const paymentHeader = Buffer.from(JSON.stringify(paymentPayload)).toString("base64");
83
- return { transaction, signature: paymentHeader };
84
- }
85
- catch (error) {
86
- console.error("Error creating payment transaction:", error);
87
- throw new Error(`Failed to create payment: ${error instanceof Error ? error.message : String(error)}`);
88
- }
89
- }
90
- /**
91
- * Get USDC balance for a wallet
92
- */
93
- export async function getUsdcBalance(connection, keypair) {
94
- try {
95
- const tokenAccount = await getAssociatedTokenAddress(USDC_MINT, keypair.publicKey, true, // allowOwnerOffCurve - critical for wallet adapter keys!
96
- TOKEN_PROGRAM_ID);
97
- const balance = await connection.getTokenAccountBalance(tokenAccount);
98
- return parseFloat(balance.value.uiAmount?.toString() || "0");
99
- }
100
- catch (error) {
101
- // Token account doesn't exist or other error
102
- return 0;
103
- }
104
- }
105
- //# sourceMappingURL=x402Client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"x402Client.js","sourceRoot":"","sources":["../../src/lib/x402Client.ts"],"names":[],"mappings":"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"}