@springmint/x402-payment 1.0.1 → 1.0.2

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 CHANGED
@@ -148,9 +148,27 @@ npx @springmint/x402-payment \
148
148
  | `--input` | No | JSON request body |
149
149
  | `--method` | No | HTTP method (default: GET for direct, POST for entrypoint) |
150
150
  | `--check` | No | Verify wallet configuration and exit |
151
+ | `--approve` | No | Approve token spending (requires `--token` and `--network`) |
152
+ | `--allowance` | No | Check current token allowance (requires `--token` and `--network`) |
153
+ | `--token` | No | Token contract address (used with `--approve` / `--allowance`) |
154
+ | `--network` | No | Network identifier, e.g. `eip155:97`, `tron:nile` (used with `--approve` / `--allowance`) |
155
+ | `--type` | No | Chain type: `evm` (default) or `tron` (used with `--approve` / `--allowance`) |
151
156
 
152
157
  Output goes to **stdout** as JSON. Logs go to **stderr**.
153
158
 
159
+ **Token approval examples:**
160
+
161
+ ```bash
162
+ # Check USDT allowance on BSC testnet
163
+ npx @springmint/x402-payment --allowance --token 0x337610d27c682E347C9cD60BD4b3b107C9d34dDd --network eip155:97
164
+
165
+ # Approve USDT on BSC testnet
166
+ npx @springmint/x402-payment --approve --token 0x337610d27c682E347C9cD60BD4b3b107C9d34dDd --network eip155:97
167
+
168
+ # Approve USDT on TRON nile
169
+ npx @springmint/x402-payment --approve --token TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf --network tron:nile --type tron
170
+ ```
171
+
154
172
  ## API Reference
155
173
 
156
174
  ### `createX402FetchClient(options?)`
@@ -190,6 +208,23 @@ Search for a private key following the lookup order described in [Wallet Configu
190
208
 
191
209
  Search for TronGrid API key using the same lookup order.
192
210
 
211
+ ### `checkAllowance(type, token, network, options?)`
212
+
213
+ Check current token allowance for the wallet.
214
+
215
+ ```ts
216
+ const allowance = await checkAllowance("evm", "0x55d3...7955", "eip155:56");
217
+ console.log(`Allowance: ${allowance}`);
218
+ ```
219
+
220
+ ### `approveToken(type, token, network, options?)`
221
+
222
+ Approve unlimited token spending for x402 payments.
223
+
224
+ ```ts
225
+ await approveToken("evm", "0x55d3...7955", "eip155:56");
226
+ ```
227
+
193
228
  ## Supported Networks & Tokens
194
229
 
195
230
  | Chain | Network | Tokens | Example USDT Contract |
@@ -201,32 +236,104 @@ Search for TronGrid API key using the same lookup order.
201
236
 
202
237
  Both **direct transfer** and **permit-based** payment mechanisms are supported on all chains.
203
238
 
204
- ## For AI Agent Skill Developers
239
+ ## Create Your Own Skill with x402 Payment
205
240
 
206
- If you're building a skill that calls a paid API, add this package as a dependency:
241
+ If you have a paid API protected by x402, you can create a skill file so AI agents can call it automatically.
207
242
 
208
- ```bash
209
- npm install @springmint/x402-payment
210
- ```
243
+ ### Step 1: Create SKILL.md
211
244
 
212
- Then in your skill's code:
245
+ Create a `SKILL.md` file for your API:
213
246
 
214
- ```ts
247
+ ```markdown
248
+ ---
249
+ name: my-api-skill
250
+ description: "Description of your API and when to use it."
251
+ version: 1.0.0
252
+ dependencies:
253
+ - "@springmint/x402-payment"
254
+ ---
255
+
256
+ # My API Skill
257
+
258
+ > **Prerequisites**: Install and configure `@springmint/x402-payment`.
259
+ > See [wallet configuration](https://github.com/springmint/x402-payment#wallet-configuration).
260
+ >
261
+ > ```bash
262
+ > npm install @springmint/x402-payment
263
+ > npx @springmint/x402-payment --check
264
+ > ```
265
+
266
+ ## Endpoint
267
+
268
+ \`\`\`
269
+ POST https://your-api.com/api/your-endpoint
270
+ Content-Type: application/json
271
+ \`\`\`
272
+
273
+ ## Using with x402-payment
274
+
275
+ ### CLI (AI Agent)
276
+
277
+ \`\`\`bash
278
+ npx @springmint/x402-payment \
279
+ --url https://your-api.com/api/your-endpoint \
280
+ --method POST \
281
+ --input '{"key": "value"}'
282
+ \`\`\`
283
+
284
+ ### Library (Node.js)
285
+
286
+ \`\`\`ts
215
287
  import { createX402FetchClient } from "@springmint/x402-payment";
216
288
 
217
289
  const client = await createX402FetchClient();
218
- const res = await client.request("https://your-paid-api.com/endpoint", {
290
+ const response = await client.request("https://your-api.com/api/your-endpoint", {
219
291
  method: "POST",
220
292
  headers: { "Content-Type": "application/json" },
221
- body: JSON.stringify({ /* your request */ }),
293
+ body: JSON.stringify({ key: "value" }),
222
294
  });
295
+ const data = await response.json();
296
+ \`\`\`
297
+
298
+ ## Request / Response
299
+
300
+ [Document your API parameters and response format here]
301
+
302
+ ## Error Handling
303
+
304
+ ### Insufficient Allowance
305
+
306
+ \`\`\`bash
307
+ npx @springmint/x402-payment --approve --token <TOKEN_ADDRESS> --network <NETWORK>
308
+ \`\`\`
223
309
  ```
224
310
 
225
- And in your skill's `SKILL.md`, declare the dependency:
311
+ ### Step 2: Agent Workflow
226
312
 
227
- ```yaml
228
- dependencies:
229
- - x402-payment
313
+ When an AI agent receives your skill, the complete flow is:
314
+
315
+ ```
316
+ 1. Agent reads SKILL.md
317
+
318
+ 2. Checks if @springmint/x402-payment is installed
319
+ └─ If not: runs `npm install @springmint/x402-payment`
320
+
321
+ 3. Verifies wallet: `npx @springmint/x402-payment --check`
322
+ └─ If no wallet: asks user to configure private key
323
+
324
+ 4. Calls your API via CLI or library
325
+
326
+ 5. Gets 402 → SDK auto-pays → gets result
327
+
328
+ 6. If allowance error: runs --approve, then retries
329
+ ```
330
+
331
+ ### Step 3: Publish
332
+
333
+ Put your `SKILL.md` in a git repository. AI agents can use it by reading the file:
334
+
335
+ ```
336
+ Read my-api-skill/SKILL.md and call the API with {"key": "value"}
230
337
  ```
231
338
 
232
339
  See [cpbox-skills/batch-balance](https://github.com/springmint/cpbox-skills) for a real-world example.
package/SKILL.md CHANGED
@@ -7,7 +7,7 @@ compatibility:
7
7
  tools:
8
8
  - x402_invoke
9
9
  metadata:
10
- version: 1.0.1
10
+ version: 1.0.2
11
11
  author: cppay.finance
12
12
  homepage: https://x402.org
13
13
  tags: [crypto, payments, x402, agents, api, usdt, usdd, usdc, tron, ethereum, evm, erc20, trc20, sdk]
@@ -146,7 +146,23 @@ If the endpoint returns an image or binary data (CLI mode only):
146
146
 
147
147
  ### Insufficient Allowance
148
148
 
149
- If allowance is insufficient, the tool will automatically attempt an "infinite approval" transaction. Ensure you have native tokens (TRX or BNB/ETH) for gas.
149
+ If you get an allowance error, approve the token first:
150
+
151
+ ```bash
152
+ # Check current allowance
153
+ npx @springmint/x402-payment --allowance --token <TOKEN_ADDRESS> --network <NETWORK>
154
+
155
+ # Approve token spending
156
+ npx @springmint/x402-payment --approve --token <TOKEN_ADDRESS> --network <NETWORK>
157
+ ```
158
+
159
+ Or in code:
160
+ ```ts
161
+ import { approveToken } from "@springmint/x402-payment";
162
+ await approveToken("evm", "0x55d3...7955", "eip155:97");
163
+ ```
164
+
165
+ Ensure you have native tokens (TRX or BNB/ETH) for gas.
150
166
 
151
167
  ### Insufficient Balance
152
168
 
@@ -60,3 +60,22 @@ export declare function invokeEndpoint(url: string, options?: {
60
60
  headers: Record<string, string>;
61
61
  body: any;
62
62
  }>;
63
+ /**
64
+ * Check token allowance for the current wallet.
65
+ *
66
+ * Usage:
67
+ * ```ts
68
+ * const allowance = await checkAllowance("evm", "0x55d3...7955", "eip155:56");
69
+ * console.log(`Current allowance: ${allowance}`);
70
+ * ```
71
+ */
72
+ export declare function checkAllowance(type: "tron" | "evm", token: string, network: string, options?: CreateClientOptions): Promise<bigint>;
73
+ /**
74
+ * Approve token spending for x402 payments. Calls `ensureAllowance` on the signer.
75
+ *
76
+ * Usage:
77
+ * ```ts
78
+ * await approveToken("evm", "0x55d3...7955", "eip155:56");
79
+ * ```
80
+ */
81
+ export declare function approveToken(type: "tron" | "evm", token: string, network: string, options?: CreateClientOptions): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///Users/mac/Desktop/Work/cpbox-projects/x402-payment/src/client.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,mBAAwB,kDA2CvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,GAAE,mBAAwB,uDAI5E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,mBAAmB,CAAC;CAChC,GACL,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAC,CAoCzE"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///Users/mac/Desktop/Work/cpbox-projects/x402-payment/src/client.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,mBAAwB,kDA2CvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,GAAE,mBAAwB,uDAI5E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,mBAAmB,CAAC;CAChC,GACL,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAC,CAoCzE;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,GAAG,KAAK,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,GAAG,KAAK,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,OAAO,CAAC,CAgBlB"}
@@ -1,3 +1,3 @@
1
1
  export { findPrivateKey, findApiKey } from "./config.js";
2
- export { createX402Client, createX402FetchClient, invokeEndpoint } from "./client.js";
2
+ export { createX402Client, createX402FetchClient, invokeEndpoint, checkAllowance, approveToken } from "./client.js";
3
3
  export type { CreateClientOptions } from "./client.js";
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///Users/mac/Desktop/Work/cpbox-projects/x402-payment/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACtF,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///Users/mac/Desktop/Work/cpbox-projects/x402-payment/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpH,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -511,6 +511,51 @@ async function invokeEndpoint(url, options = {}) {
511
511
  body,
512
512
  };
513
513
  }
514
+ /**
515
+ * Check token allowance for the current wallet.
516
+ *
517
+ * Usage:
518
+ * ```ts
519
+ * const allowance = await checkAllowance("evm", "0x55d3...7955", "eip155:56");
520
+ * console.log(`Current allowance: ${allowance}`);
521
+ * ```
522
+ */
523
+ async function checkAllowance(type, token, network, options = {}) {
524
+ const { TronClientSigner, EvmClientSigner } = await __nccwpck_require__.e(/* import() */ 743).then(__nccwpck_require__.bind(__nccwpck_require__, 3743));
525
+ const key = type === "tron"
526
+ ? (options.tronPrivateKey ?? await findPrivateKey("tron"))
527
+ : (options.evmPrivateKey ?? await findPrivateKey("evm"));
528
+ if (!key)
529
+ throw new Error(`No ${type.toUpperCase()} private key found.`);
530
+ const apiKey = options.tronGridApiKey ?? (await findApiKey());
531
+ if (apiKey)
532
+ process.env.TRON_GRID_API_KEY = apiKey;
533
+ const signer = type === "tron" ? new TronClientSigner(key) : new EvmClientSigner(key);
534
+ return signer.checkAllowance(token, BigInt(0), network);
535
+ }
536
+ /**
537
+ * Approve token spending for x402 payments. Calls `ensureAllowance` on the signer.
538
+ *
539
+ * Usage:
540
+ * ```ts
541
+ * await approveToken("evm", "0x55d3...7955", "eip155:56");
542
+ * ```
543
+ */
544
+ async function approveToken(type, token, network, options = {}) {
545
+ const { TronClientSigner, EvmClientSigner } = await __nccwpck_require__.e(/* import() */ 743).then(__nccwpck_require__.bind(__nccwpck_require__, 3743));
546
+ const key = type === "tron"
547
+ ? (options.tronPrivateKey ?? await findPrivateKey("tron"))
548
+ : (options.evmPrivateKey ?? await findPrivateKey("evm"));
549
+ if (!key)
550
+ throw new Error(`No ${type.toUpperCase()} private key found.`);
551
+ const apiKey = options.tronGridApiKey ?? (await findApiKey());
552
+ if (apiKey)
553
+ process.env.TRON_GRID_API_KEY = apiKey;
554
+ const signer = type === "tron" ? new TronClientSigner(key) : new EvmClientSigner(key);
555
+ // Use max uint256 for unlimited approval
556
+ const maxAmount = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
557
+ return signer.ensureAllowance(token, maxAmount, network, "auto");
558
+ }
514
559
 
515
560
  ;// CONCATENATED MODULE: ./src/cli.ts
516
561
 
@@ -559,6 +604,54 @@ async function main() {
559
604
  }
560
605
  process.exit(0);
561
606
  }
607
+ // --allowance --token <address> --network <network> [--type evm|tron]
608
+ if (options.allowance === "true") {
609
+ const token = options.token;
610
+ const network = options.network;
611
+ const type = (options.type || "evm");
612
+ if (!token || !network) {
613
+ console.error("Error: --allowance requires --token and --network");
614
+ process.exit(1);
615
+ }
616
+ try {
617
+ const allowance = await checkAllowance(type, token, network, {
618
+ tronPrivateKey: tronKey,
619
+ evmPrivateKey: evmKey,
620
+ tronGridApiKey: apiKey,
621
+ });
622
+ process.stdout.write(JSON.stringify({ allowance: allowance.toString() }, null, 2) + "\n");
623
+ }
624
+ catch (e) {
625
+ console.error(`[x402] Error: ${e.message}`);
626
+ process.exit(1);
627
+ }
628
+ process.exit(0);
629
+ }
630
+ // --approve --token <address> --network <network> [--type evm|tron]
631
+ if (options.approve === "true") {
632
+ const token = options.token;
633
+ const network = options.network;
634
+ const type = (options.type || "evm");
635
+ if (!token || !network) {
636
+ console.error("Error: --approve requires --token and --network");
637
+ process.exit(1);
638
+ }
639
+ try {
640
+ console.error(`[x402] Approving ${token} on ${network} (${type})...`);
641
+ const result = await approveToken(type, token, network, {
642
+ tronPrivateKey: tronKey,
643
+ evmPrivateKey: evmKey,
644
+ tronGridApiKey: apiKey,
645
+ });
646
+ console.error(`[x402] Approval ${result ? "successful" : "not needed (already approved)"}.`);
647
+ process.stdout.write(JSON.stringify({ approved: result }, null, 2) + "\n");
648
+ }
649
+ catch (e) {
650
+ console.error(`[x402] Error: ${e.message}`);
651
+ process.exit(1);
652
+ }
653
+ process.exit(0);
654
+ }
562
655
  if (!url) {
563
656
  console.error("Error: --url is required");
564
657
  process.exit(1);
@@ -60,4 +60,23 @@ export declare function invokeEndpoint(url: string, options?: {
60
60
  headers: Record<string, string>;
61
61
  body: any;
62
62
  }>;
63
+ /**
64
+ * Check token allowance for the current wallet.
65
+ *
66
+ * Usage:
67
+ * ```ts
68
+ * const allowance = await checkAllowance("evm", "0x55d3...7955", "eip155:56");
69
+ * console.log(`Current allowance: ${allowance}`);
70
+ * ```
71
+ */
72
+ export declare function checkAllowance(type: "tron" | "evm", token: string, network: string, options?: CreateClientOptions): Promise<bigint>;
73
+ /**
74
+ * Approve token spending for x402 payments. Calls `ensureAllowance` on the signer.
75
+ *
76
+ * Usage:
77
+ * ```ts
78
+ * await approveToken("evm", "0x55d3...7955", "eip155:56");
79
+ * ```
80
+ */
81
+ export declare function approveToken(type: "tron" | "evm", token: string, network: string, options?: CreateClientOptions): Promise<boolean>;
63
82
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,mBAAwB,kDA2CvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,GAAE,mBAAwB,uDAI5E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,mBAAmB,CAAC;CAChC,GACL,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAC,CAoCzE"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,mBAAwB,kDA2CvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,GAAE,mBAAwB,uDAI5E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IACP,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,mBAAmB,CAAC;CAChC,GACL,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAC,CAoCzE;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,GAAG,KAAK,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,GAAG,KAAK,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,OAAO,CAAC,CAgBlB"}
@@ -105,4 +105,49 @@ export async function invokeEndpoint(url, options = {}) {
105
105
  body,
106
106
  };
107
107
  }
108
+ /**
109
+ * Check token allowance for the current wallet.
110
+ *
111
+ * Usage:
112
+ * ```ts
113
+ * const allowance = await checkAllowance("evm", "0x55d3...7955", "eip155:56");
114
+ * console.log(`Current allowance: ${allowance}`);
115
+ * ```
116
+ */
117
+ export async function checkAllowance(type, token, network, options = {}) {
118
+ const { TronClientSigner, EvmClientSigner } = await import("@springmint/x402");
119
+ const key = type === "tron"
120
+ ? (options.tronPrivateKey ?? await findPrivateKey("tron"))
121
+ : (options.evmPrivateKey ?? await findPrivateKey("evm"));
122
+ if (!key)
123
+ throw new Error(`No ${type.toUpperCase()} private key found.`);
124
+ const apiKey = options.tronGridApiKey ?? (await findApiKey());
125
+ if (apiKey)
126
+ process.env.TRON_GRID_API_KEY = apiKey;
127
+ const signer = type === "tron" ? new TronClientSigner(key) : new EvmClientSigner(key);
128
+ return signer.checkAllowance(token, BigInt(0), network);
129
+ }
130
+ /**
131
+ * Approve token spending for x402 payments. Calls `ensureAllowance` on the signer.
132
+ *
133
+ * Usage:
134
+ * ```ts
135
+ * await approveToken("evm", "0x55d3...7955", "eip155:56");
136
+ * ```
137
+ */
138
+ export async function approveToken(type, token, network, options = {}) {
139
+ const { TronClientSigner, EvmClientSigner } = await import("@springmint/x402");
140
+ const key = type === "tron"
141
+ ? (options.tronPrivateKey ?? await findPrivateKey("tron"))
142
+ : (options.evmPrivateKey ?? await findPrivateKey("evm"));
143
+ if (!key)
144
+ throw new Error(`No ${type.toUpperCase()} private key found.`);
145
+ const apiKey = options.tronGridApiKey ?? (await findApiKey());
146
+ if (apiKey)
147
+ process.env.TRON_GRID_API_KEY = apiKey;
148
+ const signer = type === "tron" ? new TronClientSigner(key) : new EvmClientSigner(key);
149
+ // Use max uint256 for unlimited approval
150
+ const maxAmount = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
151
+ return signer.ensureAllowance(token, maxAmount, network, "auto");
152
+ }
108
153
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export { findPrivateKey, findApiKey } from "./config.js";
2
- export { createX402Client, createX402FetchClient, invokeEndpoint } from "./client.js";
2
+ export { createX402Client, createX402FetchClient, invokeEndpoint, checkAllowance, approveToken } from "./client.js";
3
3
  export type { CreateClientOptions } from "./client.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACtF,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpH,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
package/dist/lib/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export { findPrivateKey, findApiKey } from "./config.js";
2
- export { createX402Client, createX402FetchClient, invokeEndpoint } from "./client.js";
2
+ export { createX402Client, createX402FetchClient, invokeEndpoint, checkAllowance, approveToken } from "./client.js";
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@springmint/x402-payment",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "x402 payment SDK - Add x402 pay-per-use capability to your AI agent skills and Node.js applications",
5
5
  "license": "MIT",
6
6
  "type": "module",