memeputer 1.1.0 → 1.1.1
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/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +12 -2
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/x402Client.d.ts +3 -3
- package/dist/lib/x402Client.d.ts.map +1 -1
- package/dist/lib/x402Client.js +48 -24
- package/dist/lib/x402Client.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;IAsH7B;;;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
CHANGED
|
@@ -34,7 +34,12 @@ export class AgentsApiClient {
|
|
|
34
34
|
// Step 1: Make request without payment (will get 402)
|
|
35
35
|
let response;
|
|
36
36
|
try {
|
|
37
|
-
response = await axios.post(`${this.baseUrl}/x402/interact`, { agentId, message }, {
|
|
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
|
+
});
|
|
38
43
|
}
|
|
39
44
|
catch (error) {
|
|
40
45
|
if (error.response?.status !== 402) {
|
|
@@ -55,6 +60,8 @@ export class AgentsApiClient {
|
|
|
55
60
|
const amountMicroUsdc = parseInt(acceptDetails.maxAmountRequired || "10000");
|
|
56
61
|
const amountUsdc = amountMicroUsdc / 1_000_000;
|
|
57
62
|
const feePayer = acceptDetails.extra?.feePayer;
|
|
63
|
+
const scheme = acceptDetails.scheme || "exact";
|
|
64
|
+
const network = acceptDetails.network || "solana";
|
|
58
65
|
if (!recipient) {
|
|
59
66
|
throw new Error(`No recipient wallet (payTo) found in 402 response.`);
|
|
60
67
|
}
|
|
@@ -62,14 +69,17 @@ export class AgentsApiClient {
|
|
|
62
69
|
Recipient: ${recipient}
|
|
63
70
|
Amount: ${amountUsdc} USDC
|
|
64
71
|
Fee Payer: ${feePayer || "PayAI Facilitator"}
|
|
72
|
+
Scheme: ${scheme}
|
|
73
|
+
Network: ${network}
|
|
65
74
|
`);
|
|
66
75
|
// Step 3: Create and sign payment transaction
|
|
67
|
-
const { signature: paymentHeader } = await createPaymentTransaction(connection, wallet, recipient, amountUsdc);
|
|
76
|
+
const { signature: paymentHeader } = await createPaymentTransaction(connection, wallet, recipient, amountUsdc, scheme, network);
|
|
68
77
|
// Step 4: Retry request with X-PAYMENT header
|
|
69
78
|
response = await axios.post(`${this.baseUrl}/x402/interact`, { agentId, message }, {
|
|
70
79
|
headers: {
|
|
71
80
|
"Content-Type": "application/json",
|
|
72
81
|
"X-PAYMENT": paymentHeader,
|
|
82
|
+
"User-Agent": "memeputer-cli",
|
|
73
83
|
},
|
|
74
84
|
});
|
|
75
85
|
}
|
package/dist/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAiC3D,MAAM,OAAO,eAAe;IACN;IAApB,YAAoB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAEvC;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,iBAAiB,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAE3B,4DAA4D;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAEvC,MAAM,MAAM,GAAgB,WAAW,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC;YAC5D,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS;YACxD,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,eAAe;YAC/D,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,UAAU;YAC7C,KAAK,EACH,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM;gBAC7B,UAAU,CAAC,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,SAAS;YAC7D,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,YAAY;YAChD,cAAc,EAAE,MAAM,CAAC,KAAK,EAAE,cAAc,IAAI,EAAE;YAClD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;SAC1B,CAAC,CAAC,CAAC;QAEJ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,OAAe,EACf,OAAe,EACf,MAAe,EACf,UAAsB;QAEtB,IAAI,CAAC;YACH,sDAAsD;YACtD,IAAI,QAAQ,CAAC;YACb,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CACzB,GAAG,IAAI,CAAC,OAAO,gBAAgB,EAC/B,EAAE,OAAO,EAAE,OAAO,EAAE,EACpB,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/x402Client.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Connection, Keypair,
|
|
1
|
+
import { Connection, Keypair, VersionedTransaction } from "@solana/web3.js";
|
|
2
2
|
/**
|
|
3
3
|
* Create a simple USDC payment transaction (for CLI use)
|
|
4
4
|
* This creates a signed transaction that can be sent in the X-PAYMENT header
|
|
5
5
|
*/
|
|
6
|
-
export declare function createPaymentTransaction(connection: Connection, payer: Keypair, recipient: string, amountUsdc: number): Promise<{
|
|
7
|
-
transaction:
|
|
6
|
+
export declare function createPaymentTransaction(connection: Connection, payer: Keypair, recipient: string, amountUsdc: number, scheme?: string, network?: string): Promise<{
|
|
7
|
+
transaction: VersionedTransaction;
|
|
8
8
|
signature: string;
|
|
9
9
|
}>;
|
|
10
10
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402Client.d.ts","sourceRoot":"","sources":["../../src/lib/x402Client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,OAAO,
|
|
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"}
|
package/dist/lib/x402Client.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getAssociatedTokenAddress,
|
|
1
|
+
import { ComputeBudgetProgram, TransactionMessage, VersionedTransaction, } from "@solana/web3.js";
|
|
2
|
+
import { getAssociatedTokenAddress, createTransferCheckedInstruction, createAssociatedTokenAccountInstruction, TOKEN_PROGRAM_ID, } from "@solana/spl-token";
|
|
3
3
|
import { PublicKey } from "@solana/web3.js";
|
|
4
4
|
// USDC mint on Solana mainnet
|
|
5
5
|
const USDC_MINT = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
|
|
@@ -7,7 +7,7 @@ const USDC_MINT = new PublicKey("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v");
|
|
|
7
7
|
* Create a simple USDC payment transaction (for CLI use)
|
|
8
8
|
* This creates a signed transaction that can be sent in the X-PAYMENT header
|
|
9
9
|
*/
|
|
10
|
-
export async function createPaymentTransaction(connection, payer, recipient, amountUsdc) {
|
|
10
|
+
export async function createPaymentTransaction(connection, payer, recipient, amountUsdc, scheme = "exact", network = "solana") {
|
|
11
11
|
try {
|
|
12
12
|
const recipientPubkey = new PublicKey(recipient);
|
|
13
13
|
// Convert USDC amount to micro-USDC (6 decimals)
|
|
@@ -17,41 +17,65 @@ export async function createPaymentTransaction(connection, payer, recipient, amo
|
|
|
17
17
|
TOKEN_PROGRAM_ID);
|
|
18
18
|
const recipientTokenAccount = await getAssociatedTokenAddress(USDC_MINT, recipientPubkey, true, // allowOwnerOffCurve - critical for wallet adapter keys!
|
|
19
19
|
TOKEN_PROGRAM_ID);
|
|
20
|
-
// Build
|
|
21
|
-
const
|
|
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
|
+
}));
|
|
22
29
|
// Check if recipient token account exists, if not create it
|
|
23
30
|
const recipientAccountInfo = await connection.getAccountInfo(recipientTokenAccount);
|
|
24
31
|
if (!recipientAccountInfo) {
|
|
25
32
|
console.log(` 📝 Recipient token account doesn't exist, will create it`);
|
|
26
|
-
|
|
33
|
+
instructions.push(createAssociatedTokenAccountInstruction(payer.publicKey, // payer
|
|
27
34
|
recipientTokenAccount, // ata
|
|
28
35
|
recipientPubkey, // owner
|
|
29
36
|
USDC_MINT, // mint
|
|
30
37
|
TOKEN_PROGRAM_ID));
|
|
31
38
|
}
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
//
|
|
38
|
-
|
|
39
|
-
//
|
|
40
|
-
|
|
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]);
|
|
41
60
|
// Serialize transaction
|
|
42
|
-
const serialized = transaction.serialize(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
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
|
|
49
72
|
const paymentPayload = {
|
|
50
73
|
x402Version: 1,
|
|
51
|
-
scheme:
|
|
52
|
-
network:
|
|
74
|
+
scheme: scheme,
|
|
75
|
+
network: network,
|
|
53
76
|
payload: {
|
|
54
77
|
transaction: serializedTx,
|
|
78
|
+
signature: userSignature, // Include signature for reference (optional)
|
|
55
79
|
},
|
|
56
80
|
};
|
|
57
81
|
// Encode as base64
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402Client.js","sourceRoot":"","sources":["../../src/lib/x402Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,
|
|
1
|
+
{"version":3,"file":"x402Client.js","sourceRoot":"","sources":["../../src/lib/x402Client.ts"],"names":[],"mappings":"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"}
|