@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 +120 -13
- package/SKILL.md +18 -2
- package/dist/cli/client.d.ts +19 -0
- package/dist/cli/client.d.ts.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/x402_invoke.js +93 -0
- package/dist/lib/client.d.ts +19 -0
- package/dist/lib/client.d.ts.map +1 -1
- package/dist/lib/client.js +45 -0
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -1
- package/dist/lib/index.js.map +1 -1
- package/package.json +1 -1
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
|
-
##
|
|
239
|
+
## Create Your Own Skill with x402 Payment
|
|
205
240
|
|
|
206
|
-
If you
|
|
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
|
-
|
|
209
|
-
npm install @springmint/x402-payment
|
|
210
|
-
```
|
|
243
|
+
### Step 1: Create SKILL.md
|
|
211
244
|
|
|
212
|
-
|
|
245
|
+
Create a `SKILL.md` file for your API:
|
|
213
246
|
|
|
214
|
-
```
|
|
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
|
|
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({
|
|
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
|
-
|
|
311
|
+
### Step 2: Agent Workflow
|
|
226
312
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
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.
|
|
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
|
|
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
|
|
package/dist/cli/client.d.ts
CHANGED
|
@@ -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>;
|
package/dist/cli/client.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/cli/index.d.ts
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
|
export type { CreateClientOptions } from "./client.js";
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/cli/x402_invoke.js
CHANGED
|
@@ -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);
|
package/dist/lib/client.d.ts
CHANGED
|
@@ -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
|
package/dist/lib/client.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/lib/client.js
CHANGED
|
@@ -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
|
package/dist/lib/client.js.map
CHANGED
|
@@ -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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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -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
|
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
package/dist/lib/index.js.map
CHANGED
|
@@ -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