@bankofai/x402 0.3.1 → 0.4.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 +70 -89
- package/dist/abi.d.ts +20 -4
- package/dist/abi.d.ts.map +1 -1
- package/dist/abi.js +13 -4
- package/dist/abi.js.map +1 -1
- package/dist/client/x402Client.d.ts +12 -5
- package/dist/client/x402Client.d.ts.map +1 -1
- package/dist/client/x402Client.js +11 -0
- package/dist/client/x402Client.js.map +1 -1
- package/dist/config.d.ts +26 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +66 -0
- package/dist/config.js.map +1 -1
- package/dist/mechanisms/exact.d.ts.map +1 -1
- package/dist/mechanisms/exact.js +2 -2
- package/dist/mechanisms/exact.js.map +1 -1
- package/dist/mechanisms/exactEvm.d.ts.map +1 -1
- package/dist/mechanisms/exactEvm.js +2 -2
- package/dist/mechanisms/exactEvm.js.map +1 -1
- package/dist/mechanisms/exactGasfree.d.ts +11 -0
- package/dist/mechanisms/exactGasfree.d.ts.map +1 -0
- package/dist/mechanisms/exactGasfree.js +136 -0
- package/dist/mechanisms/exactGasfree.js.map +1 -0
- package/dist/mechanisms/gasfree.d.ts +8 -0
- package/dist/mechanisms/gasfree.d.ts.map +1 -0
- package/dist/mechanisms/gasfree.js +125 -0
- package/dist/mechanisms/gasfree.js.map +1 -0
- package/dist/mechanisms/index.d.ts +1 -0
- package/dist/mechanisms/index.d.ts.map +1 -1
- package/dist/mechanisms/index.js +2 -0
- package/dist/mechanisms/index.js.map +1 -1
- package/dist/mechanisms/nativeExactEvm.d.ts.map +1 -1
- package/dist/mechanisms/nativeExactEvm.js +2 -2
- package/dist/mechanisms/nativeExactEvm.js.map +1 -1
- package/dist/mechanisms/nativeExactTron.d.ts.map +1 -1
- package/dist/mechanisms/nativeExactTron.js +2 -2
- package/dist/mechanisms/nativeExactTron.js.map +1 -1
- package/dist/signers/evmSigner.d.ts +2 -2
- package/dist/signers/evmSigner.d.ts.map +1 -1
- package/dist/signers/evmSigner.js +4 -10
- package/dist/signers/evmSigner.js.map +1 -1
- package/dist/signers/signer.d.ts +2 -2
- package/dist/signers/signer.d.ts.map +1 -1
- package/dist/signers/signer.js +6 -10
- package/dist/signers/signer.js.map +1 -1
- package/dist/utils/gasfree.d.ts +123 -0
- package/dist/utils/gasfree.d.ts.map +1 -0
- package/dist/utils/gasfree.js +228 -0
- package/dist/utils/gasfree.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +15 -14
package/README.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# @bankofai/x402
|
|
2
2
|
|
|
3
|
-
TypeScript
|
|
3
|
+
TypeScript SDK for the x402 payment protocol. Supports TRON and EVM (BSC) networks with automatic HTTP 402 payment handling.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
7
|
- 🔐 **Automatic Payment Handling** - Transparently handles HTTP 402 Payment Required responses
|
|
8
|
-
- ⛓️ **
|
|
9
|
-
- 🔑 **TIP-712 Signing** - Secure cryptographic signatures
|
|
10
|
-
- 💰 **
|
|
8
|
+
- ⛓️ **Multi-Chain** - TRON (Mainnet, Nile, Shasta) and EVM/BSC (Mainnet, Testnet)
|
|
9
|
+
- 🔑 **TIP-712 / EIP-712 Signing** - Secure cryptographic signatures
|
|
10
|
+
- 💰 **GasFree Support** - Pay with USDT/USDD on TRON without holding TRX for gas
|
|
11
11
|
- 🚀 **Simple Integration** - Just 3 lines of code to get started
|
|
12
|
-
- 📦 **
|
|
12
|
+
- 📦 **Lightweight** - Minimal dependencies (`tronweb` for TRON, `viem` for EVM)
|
|
13
13
|
|
|
14
14
|
## Installation
|
|
15
15
|
|
|
@@ -20,28 +20,21 @@ npm i @bankofai/x402 tronweb
|
|
|
20
20
|
## Quick Start
|
|
21
21
|
|
|
22
22
|
```typescript
|
|
23
|
-
import TronWeb from 'tronweb';
|
|
24
23
|
import {
|
|
25
24
|
X402Client,
|
|
26
25
|
X402FetchClient,
|
|
27
|
-
|
|
26
|
+
ExactPermitTronClientMechanism,
|
|
28
27
|
TronClientSigner,
|
|
29
28
|
} from '@bankofai/x402';
|
|
30
29
|
|
|
31
|
-
// 1.
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
privateKey: 'your_private_key_here',
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
// 2. Create signer and register payment mechanism
|
|
38
|
-
const signer = TronClientSigner.withPrivateKey(tronWeb, 'your_private_key_here', 'nile');
|
|
39
|
-
const x402Client = new X402Client().register('tron:*', new ExactTronClientMechanism(signer));
|
|
30
|
+
// 1. Create signer and register payment mechanism
|
|
31
|
+
const signer = new TronClientSigner(process.env.TRON_PRIVATE_KEY);
|
|
32
|
+
const x402Client = new X402Client().register('tron:*', new ExactPermitTronClientMechanism(signer));
|
|
40
33
|
|
|
41
|
-
//
|
|
34
|
+
// 2. Create HTTP client with automatic 402 handling
|
|
42
35
|
const client = new X402FetchClient(x402Client);
|
|
43
36
|
|
|
44
|
-
//
|
|
37
|
+
// 3. Make requests - payments are handled automatically!
|
|
45
38
|
const response = await client.get('https://api.example.com/premium-data');
|
|
46
39
|
const data = await response.json();
|
|
47
40
|
console.log(data);
|
|
@@ -63,8 +56,9 @@ When you make a request to a protected resource:
|
|
|
63
56
|
|
|
64
57
|
- **`X402Client`** - Core payment client that manages payment mechanisms
|
|
65
58
|
- **`X402FetchClient`** - HTTP client wrapper with automatic 402 handling
|
|
66
|
-
- **`TronClientSigner`** -
|
|
67
|
-
- **`
|
|
59
|
+
- **`TronClientSigner`** / **`EvmClientSigner`** - Sign payment permits using TIP-712 / EIP-712
|
|
60
|
+
- **`ExactPermitTronClientMechanism`** - Implements the "exact_permit" payment scheme for TRON
|
|
61
|
+
- **`ExactGasFreeClientMechanism`** - Implements the "exact_gasfree" scheme (no TRX gas needed)
|
|
68
62
|
|
|
69
63
|
## API Reference
|
|
70
64
|
|
|
@@ -83,8 +77,8 @@ const x402Client = new X402Client();
|
|
|
83
77
|
Register a payment mechanism for a network pattern.
|
|
84
78
|
|
|
85
79
|
```typescript
|
|
86
|
-
x402Client.register('tron:*', new
|
|
87
|
-
x402Client.register('tron:nile', new
|
|
80
|
+
x402Client.register('tron:*', new ExactPermitTronClientMechanism(signer));
|
|
81
|
+
x402Client.register('tron:nile', new ExactPermitTronClientMechanism(nileSigner));
|
|
88
82
|
```
|
|
89
83
|
|
|
90
84
|
##### `selectPaymentRequirements(accepts: PaymentRequirements[], filters?: PaymentRequirementsFilter): PaymentRequirements`
|
|
@@ -147,22 +141,8 @@ const response = await client.request('https://api.example.com/data', {
|
|
|
147
141
|
|
|
148
142
|
Signer for creating payment permits using TIP-712.
|
|
149
143
|
|
|
150
|
-
#### Static Methods
|
|
151
|
-
|
|
152
|
-
##### `withPrivateKey(tronWeb: TronWeb, privateKey: string, network?: TronNetwork): TronClientSigner`
|
|
153
|
-
|
|
154
|
-
Create a signer with an explicit private key.
|
|
155
|
-
|
|
156
|
-
```typescript
|
|
157
|
-
const signer = TronClientSigner.withPrivateKey(tronWeb, '0x...', 'nile');
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
##### `fromTronWeb(tronWeb: TronWeb, network?: TronNetwork): TronClientSigner`
|
|
161
|
-
|
|
162
|
-
Create a signer from a TronWeb instance (uses default private key).
|
|
163
|
-
|
|
164
144
|
```typescript
|
|
165
|
-
const signer = TronClientSigner
|
|
145
|
+
const signer = new TronClientSigner(privateKey);
|
|
166
146
|
```
|
|
167
147
|
|
|
168
148
|
#### Instance Methods
|
|
@@ -191,12 +171,28 @@ Ensure sufficient token allowance, approving if necessary.
|
|
|
191
171
|
await signer.ensureAllowance(tokenAddress, BigInt(1000000), 'tron:nile', 'auto');
|
|
192
172
|
```
|
|
193
173
|
|
|
194
|
-
###
|
|
174
|
+
### EvmClientSigner
|
|
175
|
+
|
|
176
|
+
Signer for creating payment permits using EIP-712 (BSC and other EVM networks).
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
const signer = new EvmClientSigner(privateKey);
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### ExactPermitTronClientMechanism
|
|
183
|
+
|
|
184
|
+
Payment mechanism implementing the "exact_permit" scheme for TRON.
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
const mechanism = new ExactPermitTronClientMechanism(signer);
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### ExactGasFreeClientMechanism
|
|
195
191
|
|
|
196
|
-
Payment mechanism implementing the "
|
|
192
|
+
Payment mechanism implementing the "exact_gasfree" scheme for TRON (no TRX gas needed).
|
|
197
193
|
|
|
198
194
|
```typescript
|
|
199
|
-
const mechanism = new
|
|
195
|
+
const mechanism = new ExactGasFreeClientMechanism(signer);
|
|
200
196
|
```
|
|
201
197
|
|
|
202
198
|
## Usage Examples
|
|
@@ -204,16 +200,10 @@ const mechanism = new ExactTronClientMechanism(signer);
|
|
|
204
200
|
### Basic Usage with Automatic Payment
|
|
205
201
|
|
|
206
202
|
```typescript
|
|
207
|
-
import
|
|
208
|
-
import { X402Client, X402FetchClient, ExactTronClientMechanism, TronClientSigner } from '@bankofai/x402';
|
|
203
|
+
import { X402Client, X402FetchClient, ExactPermitTronClientMechanism, TronClientSigner } from '@bankofai/x402';
|
|
209
204
|
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
privateKey: process.env.TRON_PRIVATE_KEY,
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
const signer = TronClientSigner.withPrivateKey(tronWeb, process.env.TRON_PRIVATE_KEY, 'nile');
|
|
216
|
-
const x402Client = new X402Client().register('tron:*', new ExactTronClientMechanism(signer));
|
|
205
|
+
const signer = new TronClientSigner(process.env.TRON_PRIVATE_KEY);
|
|
206
|
+
const x402Client = new X402Client().register('tron:*', new ExactPermitTronClientMechanism(signer));
|
|
217
207
|
const client = new X402FetchClient(x402Client);
|
|
218
208
|
|
|
219
209
|
// Automatic payment handling
|
|
@@ -225,12 +215,10 @@ console.log(weather);
|
|
|
225
215
|
### Manual Payment Handling
|
|
226
216
|
|
|
227
217
|
```typescript
|
|
228
|
-
import
|
|
229
|
-
import { X402Client, ExactTronClientMechanism, TronClientSigner, encodePaymentPayload } from '@bankofai/x402';
|
|
218
|
+
import { X402Client, ExactPermitTronClientMechanism, TronClientSigner, encodePaymentPayload } from '@bankofai/x402';
|
|
230
219
|
|
|
231
|
-
const
|
|
232
|
-
const
|
|
233
|
-
const x402Client = new X402Client().register('tron:*', new ExactTronClientMechanism(signer));
|
|
220
|
+
const signer = new TronClientSigner(process.env.TRON_PRIVATE_KEY);
|
|
221
|
+
const x402Client = new X402Client().register('tron:*', new ExactPermitTronClientMechanism(signer));
|
|
234
222
|
|
|
235
223
|
// First request
|
|
236
224
|
const response = await fetch('https://api.example.com/data');
|
|
@@ -261,7 +249,7 @@ if (response.status === 402) {
|
|
|
261
249
|
### Custom Payment Selection
|
|
262
250
|
|
|
263
251
|
```typescript
|
|
264
|
-
import { X402Client, X402FetchClient,
|
|
252
|
+
import { X402Client, X402FetchClient, ExactPermitTronClientMechanism, TronClientSigner } from '@bankofai/x402';
|
|
265
253
|
|
|
266
254
|
// Custom selector function
|
|
267
255
|
const selector = (requirements) => {
|
|
@@ -273,23 +261,16 @@ const client = new X402FetchClient(x402Client, selector);
|
|
|
273
261
|
const response = await client.get('https://api.example.com/data');
|
|
274
262
|
```
|
|
275
263
|
|
|
276
|
-
###
|
|
264
|
+
### GasFree Usage (No TRX Gas Needed)
|
|
277
265
|
|
|
278
266
|
```typescript
|
|
279
|
-
|
|
280
|
-
import { X402Client, X402FetchClient, ExactTronClientMechanism, TronClientSigner } from '@bankofai/x402';
|
|
281
|
-
|
|
282
|
-
// Wait for TronLink
|
|
283
|
-
const tronWeb = window.tronWeb;
|
|
284
|
-
if (!tronWeb) {
|
|
285
|
-
throw new Error('TronLink not found');
|
|
286
|
-
}
|
|
267
|
+
import { X402Client, X402FetchClient, ExactGasFreeClientMechanism, TronClientSigner } from '@bankofai/x402';
|
|
287
268
|
|
|
288
|
-
const signer = TronClientSigner.
|
|
289
|
-
const x402Client = new X402Client().register('tron:*', new
|
|
269
|
+
const signer = new TronClientSigner(process.env.TRON_PRIVATE_KEY);
|
|
270
|
+
const x402Client = new X402Client().register('tron:*', new ExactGasFreeClientMechanism(signer));
|
|
290
271
|
const client = new X402FetchClient(x402Client);
|
|
291
272
|
|
|
292
|
-
//
|
|
273
|
+
// Pay with USDT/USDD without holding TRX
|
|
293
274
|
const response = await client.get('https://api.example.com/premium-content');
|
|
294
275
|
```
|
|
295
276
|
|
|
@@ -298,9 +279,9 @@ const response = await client.get('https://api.example.com/premium-content');
|
|
|
298
279
|
```typescript
|
|
299
280
|
// Support multiple TRON networks
|
|
300
281
|
const nileClient = new X402Client()
|
|
301
|
-
.register('tron:nile', new
|
|
302
|
-
.register('tron:shasta', new
|
|
303
|
-
.register('tron:mainnet', new
|
|
282
|
+
.register('tron:nile', new ExactPermitTronClientMechanism(nileSigner))
|
|
283
|
+
.register('tron:shasta', new ExactPermitTronClientMechanism(shastaSigner))
|
|
284
|
+
.register('tron:mainnet', new ExactPermitTronClientMechanism(mainnetSigner));
|
|
304
285
|
```
|
|
305
286
|
|
|
306
287
|
## Supported Networks
|
|
@@ -308,18 +289,26 @@ const nileClient = new X402Client()
|
|
|
308
289
|
- **TRON Mainnet** - `tron:mainnet`
|
|
309
290
|
- **TRON Shasta Testnet** - `tron:shasta`
|
|
310
291
|
- **TRON Nile Testnet** - `tron:nile`
|
|
292
|
+
- **BSC Mainnet** - `eip155:56`
|
|
293
|
+
- **BSC Testnet** - `eip155:97`
|
|
311
294
|
|
|
312
295
|
## Payment Schemes
|
|
313
296
|
|
|
314
|
-
### Exact Scheme
|
|
297
|
+
### Exact Permit Scheme (`exact_permit`)
|
|
315
298
|
|
|
316
|
-
The
|
|
299
|
+
The standard x402 payment scheme using TIP-712/EIP-712 permits. Requires a pre-deployed `PaymentPermit` contract on the network.
|
|
317
300
|
|
|
318
|
-
|
|
319
|
-
- Fixed-price resources
|
|
320
|
-
- Predictable pricing for API calls
|
|
301
|
+
### GasFree Scheme (`exact_gasfree`)
|
|
321
302
|
|
|
322
|
-
|
|
303
|
+
Allows users to pay using TRC-20 tokens (USDT/USDD) without holding any TRX for gas.
|
|
304
|
+
|
|
305
|
+
- **Accountless**: Uses the official GasFree HTTP Proxy for settlement.
|
|
306
|
+
- **Dynamic**: Automatically discovers available service providers.
|
|
307
|
+
- **Status Tracking**: Built-in polling for transaction confirmation.
|
|
308
|
+
|
|
309
|
+
### Exact Scheme (`exact`)
|
|
310
|
+
|
|
311
|
+
Direct payment scheme using ERC-3009 (`TransferWithAuthorization`) where supported by the token contract (primarily for EVM networks like BSC).
|
|
323
312
|
|
|
324
313
|
## Security
|
|
325
314
|
|
|
@@ -343,23 +332,15 @@ npm i tronweb@latest
|
|
|
343
332
|
Ensure you've registered a mechanism for the network:
|
|
344
333
|
|
|
345
334
|
```typescript
|
|
346
|
-
x402Client.register('tron:nile', new
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
### "Insufficient allowance"
|
|
350
|
-
|
|
351
|
-
The SDK automatically handles token approvals in `auto` mode. If you're using `skip` mode, manually approve tokens:
|
|
352
|
-
|
|
353
|
-
```typescript
|
|
354
|
-
await signer.ensureAllowance(tokenAddress, amount, network, 'auto');
|
|
335
|
+
x402Client.register('tron:nile', new ExactPermitTronClientMechanism(signer));
|
|
355
336
|
```
|
|
356
337
|
|
|
357
338
|
## Links
|
|
358
339
|
|
|
359
|
-
- **Repository**: https://github.com/
|
|
360
|
-
- **Issues**: https://github.com/
|
|
361
|
-
- **Contributing**: https://github.com/
|
|
362
|
-
- **Documentation**: https://
|
|
340
|
+
- **Repository**: https://github.com/BofAI/x402
|
|
341
|
+
- **Issues**: https://github.com/BofAI/x402/issues
|
|
342
|
+
- **Contributing**: https://github.com/BofAI/CONTRIBUTING.md
|
|
343
|
+
- **Documentation**: https://docs.bankofai.io/
|
|
363
344
|
- **TRON Documentation**: https://developers.tron.network/
|
|
364
345
|
- **TIP-712 Specification**: https://github.com/tronprotocol/tips/blob/master/tip-712.md
|
|
365
346
|
|
package/dist/abi.d.ts
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
import type { DeliveryKind } from './types/payment.js';
|
|
6
6
|
/** EIP-712 Primary Type for PaymentPermit */
|
|
7
7
|
export declare const PAYMENT_PERMIT_PRIMARY_TYPE = "PaymentPermitDetails";
|
|
8
|
+
/** EIP-712 Primary Type for GasFree */
|
|
9
|
+
export declare const GASFREE_PRIMARY_TYPE = "PermitTransfer";
|
|
8
10
|
/**
|
|
9
|
-
* EIP-712 Domain Type
|
|
10
|
-
* Based on contract: keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)")
|
|
11
|
-
* Note: NO version field!
|
|
11
|
+
* EIP-712 Domain Type for PaymentPermit
|
|
12
12
|
*/
|
|
13
|
-
export declare const
|
|
13
|
+
export declare const PAYMENT_PERMIT_EIP712_DOMAIN_TYPE: readonly [{
|
|
14
14
|
readonly name: "name";
|
|
15
15
|
readonly type: "string";
|
|
16
16
|
}, {
|
|
@@ -20,6 +20,22 @@ export declare const EIP712_DOMAIN_TYPE: readonly [{
|
|
|
20
20
|
readonly name: "verifyingContract";
|
|
21
21
|
readonly type: "address";
|
|
22
22
|
}];
|
|
23
|
+
/**
|
|
24
|
+
* EIP-712 Domain Type for GasFree
|
|
25
|
+
*/
|
|
26
|
+
export declare const GASFREE_DOMAIN_TYPE: readonly [{
|
|
27
|
+
readonly name: "name";
|
|
28
|
+
readonly type: "string";
|
|
29
|
+
}, {
|
|
30
|
+
readonly name: "version";
|
|
31
|
+
readonly type: "string";
|
|
32
|
+
}, {
|
|
33
|
+
readonly name: "chainId";
|
|
34
|
+
readonly type: "uint256";
|
|
35
|
+
}, {
|
|
36
|
+
readonly name: "verifyingContract";
|
|
37
|
+
readonly type: "address";
|
|
38
|
+
}];
|
|
23
39
|
/**
|
|
24
40
|
* EIP-712 type definitions for PaymentPermit
|
|
25
41
|
* Based on PermitHash.sol from the contract
|
package/dist/abi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,6CAA6C;AAC7C,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAElE
|
|
1
|
+
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,6CAA6C;AAC7C,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAElE,uCAAuC;AACvC,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;EAIpC,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAKtB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBvB,CAAC;AAEX,mDAAmD;AACnD,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAEjD,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBZ,CAAC"}
|
package/dist/abi.js
CHANGED
|
@@ -4,16 +4,25 @@
|
|
|
4
4
|
*/
|
|
5
5
|
/** EIP-712 Primary Type for PaymentPermit */
|
|
6
6
|
export const PAYMENT_PERMIT_PRIMARY_TYPE = 'PaymentPermitDetails';
|
|
7
|
+
/** EIP-712 Primary Type for GasFree */
|
|
8
|
+
export const GASFREE_PRIMARY_TYPE = 'PermitTransfer';
|
|
7
9
|
/**
|
|
8
|
-
* EIP-712 Domain Type
|
|
9
|
-
* Based on contract: keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)")
|
|
10
|
-
* Note: NO version field!
|
|
10
|
+
* EIP-712 Domain Type for PaymentPermit
|
|
11
11
|
*/
|
|
12
|
-
export const
|
|
12
|
+
export const PAYMENT_PERMIT_EIP712_DOMAIN_TYPE = [
|
|
13
13
|
{ name: 'name', type: 'string' },
|
|
14
14
|
{ name: 'chainId', type: 'uint256' },
|
|
15
15
|
{ name: 'verifyingContract', type: 'address' },
|
|
16
16
|
];
|
|
17
|
+
/**
|
|
18
|
+
* EIP-712 Domain Type for GasFree
|
|
19
|
+
*/
|
|
20
|
+
export const GASFREE_DOMAIN_TYPE = [
|
|
21
|
+
{ name: 'name', type: 'string' },
|
|
22
|
+
{ name: 'version', type: 'string' },
|
|
23
|
+
{ name: 'chainId', type: 'uint256' },
|
|
24
|
+
{ name: 'verifyingContract', type: 'address' },
|
|
25
|
+
];
|
|
17
26
|
/**
|
|
18
27
|
* EIP-712 type definitions for PaymentPermit
|
|
19
28
|
* Based on PermitHash.sol from the contract
|
package/dist/abi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB,CAAC;AAElE
|
|
1
|
+
{"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,6CAA6C;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAG,sBAAsB,CAAC;AAElE,uCAAuC;AACvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;CACtC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,EAAE;CACtC,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE;QACV,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;QAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;KACzC;IACD,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;KACnC;IACD,GAAG,EAAE;QACH,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;KACvC;IACD,oBAAoB,EAAE;QACpB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE;QACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;QACpC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE;KAC7B;CACO,CAAC;AAEX,mDAAmD;AACnD,MAAM,CAAC,MAAM,QAAQ,GAAiC;IACpD,YAAY,EAAE,CAAC;CAChB,CAAC;AAEF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;SACrC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KACzC;IACD;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE;YACN,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;SACpC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KACtC;CACO,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Manages payment mechanism registry and coordinates payment flows.
|
|
5
5
|
*/
|
|
6
|
+
import { GasFreeAPIClient } from '../utils/gasfree.js';
|
|
6
7
|
import type { PaymentRequirements, PaymentPayload, PaymentPermitContext } from '../types/index.js';
|
|
7
8
|
import type { TokenSelectionStrategy } from './tokenSelection.js';
|
|
8
9
|
/** Client mechanism interface */
|
|
@@ -26,9 +27,9 @@ export interface ClientSigner {
|
|
|
26
27
|
/** Sign raw message */
|
|
27
28
|
signMessage(message: Uint8Array): Promise<string>;
|
|
28
29
|
/** Sign typed data (EIP-712) */
|
|
29
|
-
signTypedData(domain: Record<string, unknown>, types: Record<string, unknown>, message: Record<string, unknown
|
|
30
|
+
signTypedData(domain: Record<string, unknown>, types: Record<string, unknown>, message: Record<string, unknown>, primaryType: string): Promise<string>;
|
|
30
31
|
/** Check token balance */
|
|
31
|
-
checkBalance(token: string, network: string): Promise<bigint>;
|
|
32
|
+
checkBalance(token: string, network: string, address?: string): Promise<bigint>;
|
|
32
33
|
/** Check token allowance */
|
|
33
34
|
checkAllowance(token: string, amount: bigint, network: string): Promise<bigint>;
|
|
34
35
|
/** Ensure sufficient allowance */
|
|
@@ -87,6 +88,14 @@ export declare class X402Client {
|
|
|
87
88
|
* @returns this for method chaining
|
|
88
89
|
*/
|
|
89
90
|
register(networkPattern: string, mechanism: ClientMechanism): X402Client;
|
|
91
|
+
/**
|
|
92
|
+
* Register built-in GasFree mechanism for TRON
|
|
93
|
+
*
|
|
94
|
+
* @param signer - Client signer instance
|
|
95
|
+
* @param clients - Optional GasFree API clients per network
|
|
96
|
+
* @returns this for method chaining
|
|
97
|
+
*/
|
|
98
|
+
registerGasFree(signer: ClientSigner, clients?: Record<string, GasFreeAPIClient>): X402Client;
|
|
90
99
|
/**
|
|
91
100
|
* Select payment requirements from available options
|
|
92
101
|
*
|
|
@@ -115,9 +124,7 @@ export declare class X402Client {
|
|
|
115
124
|
* @param selector - Optional custom selector
|
|
116
125
|
* @returns Payment payload
|
|
117
126
|
*/
|
|
118
|
-
handlePayment(accepts: PaymentRequirements[], resource: string, extensions?:
|
|
119
|
-
paymentPermitContext?: PaymentPermitContext;
|
|
120
|
-
}, selector?: PaymentRequirementsSelector): Promise<PaymentPayload>;
|
|
127
|
+
handlePayment(accepts: PaymentRequirements[], resource: string, extensions?: Record<string, unknown>, selector?: PaymentRequirementsSelector): Promise<PaymentPayload>;
|
|
121
128
|
/**
|
|
122
129
|
* Find mechanism for scheme and network
|
|
123
130
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402Client.d.ts","sourceRoot":"","sources":["../../src/client/x402Client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"x402Client.d.ts","sourceRoot":"","sources":["../../src/client/x402Client.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Manages payment mechanism registry and coordinates payment flows.
|
|
5
5
|
*/
|
|
6
|
+
import { ExactGasFreeClientMechanism } from '../mechanisms/exactGasfree.js';
|
|
6
7
|
import { DefaultTokenSelectionStrategy } from './tokenSelection.js';
|
|
7
8
|
import { UnsupportedNetworkError } from '../errors.js';
|
|
8
9
|
/**
|
|
@@ -57,6 +58,16 @@ export class X402Client {
|
|
|
57
58
|
this.mechanisms.sort((a, b) => b.priority - a.priority);
|
|
58
59
|
return this;
|
|
59
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Register built-in GasFree mechanism for TRON
|
|
63
|
+
*
|
|
64
|
+
* @param signer - Client signer instance
|
|
65
|
+
* @param clients - Optional GasFree API clients per network
|
|
66
|
+
* @returns this for method chaining
|
|
67
|
+
*/
|
|
68
|
+
registerGasFree(signer, clients = {}) {
|
|
69
|
+
return this.register('tron:*', new ExactGasFreeClientMechanism(signer, clients));
|
|
70
|
+
}
|
|
60
71
|
/**
|
|
61
72
|
* Select payment requirements from available options
|
|
62
73
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402Client.js","sourceRoot":"","sources":["../../src/client/x402Client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"x402Client.js","sourceRoot":"","sources":["../../src/client/x402Client.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -16,6 +16,12 @@ export declare const NETWORKS: {
|
|
|
16
16
|
};
|
|
17
17
|
/** PaymentPermit contract addresses */
|
|
18
18
|
export declare const PAYMENT_PERMIT_ADDRESSES: Record<string, string>;
|
|
19
|
+
/** GasFreeController contract addresses */
|
|
20
|
+
export declare const GASFREE_CONTROLLER_ADDRESSES: Record<string, string>;
|
|
21
|
+
/** GasFree beacon addresses */
|
|
22
|
+
export declare const GASFREE_BEACON_ADDRESSES: Record<string, string>;
|
|
23
|
+
/** GasFree API Base URLs */
|
|
24
|
+
export declare const GASFREE_API_BASE_URLS: Record<string, string>;
|
|
19
25
|
/** Default RPC URLs for EVM networks */
|
|
20
26
|
export declare const EVM_RPC_URLS: Record<string, string>;
|
|
21
27
|
/** Default TronGrid hosts for TRON networks */
|
|
@@ -37,6 +43,26 @@ export declare function getChainId(network: string): number;
|
|
|
37
43
|
* Get PaymentPermit contract address for network
|
|
38
44
|
*/
|
|
39
45
|
export declare function getPaymentPermitAddress(network: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Get GasFreeController contract address for network
|
|
48
|
+
*/
|
|
49
|
+
export declare function getGasFreeControllerAddress(network: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Get GasFree beacon address for network
|
|
52
|
+
*/
|
|
53
|
+
export declare function getGasFreeBeaconAddress(network: string): string;
|
|
54
|
+
/**
|
|
55
|
+
* Get GasFree API Base URL for network
|
|
56
|
+
*/
|
|
57
|
+
export declare function getGasFreeApiBaseUrl(network: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Get GasFree API Key
|
|
60
|
+
*/
|
|
61
|
+
export declare function getGasFreeApiKey(network?: string): string | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Get GasFree API Secret
|
|
64
|
+
*/
|
|
65
|
+
export declare function getGasFreeApiSecret(network?: string): string | undefined;
|
|
40
66
|
/**
|
|
41
67
|
* Check if network is TRON
|
|
42
68
|
*/
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,uCAAuC;AACvC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW5C,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,QAAQ;;;;;;;;CAQX,CAAC;AAEX,uCAAuC;AACvC,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3D,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI/C,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIhD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB,uCAAuC,CAAC;AAEtE,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,+CAA+C,CAAC;AAE7E;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAelD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,uCAAuC;AACvC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW5C,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,QAAQ;;;;;;;;CAQX,CAAC;AAEX,uCAAuC;AACvC,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3D,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI/D,CAAC;AAEF,+BAA+B;AAC/B,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI3D,CAAC;AAEF,4BAA4B;AAC5B,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIxD,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI/C,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIhD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB,uCAAuC,CAAC;AAEtE,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,+CAA+C,CAAC;AAE7E;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAelD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD"}
|
package/dist/config.js
CHANGED
|
@@ -33,6 +33,24 @@ export const PAYMENT_PERMIT_ADDRESSES = {
|
|
|
33
33
|
'eip155:97': '0x1825bB32db3443dEc2cc7508b2D818fc13EaD878',
|
|
34
34
|
'eip155:56': '0x1825bB32db3443dEc2cc7508b2D818fc13EaD878',
|
|
35
35
|
};
|
|
36
|
+
/** GasFreeController contract addresses */
|
|
37
|
+
export const GASFREE_CONTROLLER_ADDRESSES = {
|
|
38
|
+
'tron:mainnet': 'TFFAMLQZybALab4uxHA9RBE7pxhUAjfF3U',
|
|
39
|
+
'tron:shasta': 'TQghdCeVDA6CnuNVTUhfaAyPfTetqZWNpm',
|
|
40
|
+
'tron:nile': 'THQGuFzL87ZqhxkgqYEryRAd7gqFqL5rdc',
|
|
41
|
+
};
|
|
42
|
+
/** GasFree beacon addresses */
|
|
43
|
+
export const GASFREE_BEACON_ADDRESSES = {
|
|
44
|
+
'tron:mainnet': 'TSP9UW6FQhT76XD2jWA6ipGMx3yGbjDffP',
|
|
45
|
+
'tron:shasta': 'TQ1jvA3nLDMDNbJoMPLzTPoqAg8NvZ5CCW',
|
|
46
|
+
'tron:nile': 'TLtCGmaxH3PbuaF6kbybwteZcHptEdgQGC',
|
|
47
|
+
};
|
|
48
|
+
/** GasFree API Base URLs */
|
|
49
|
+
export const GASFREE_API_BASE_URLS = {
|
|
50
|
+
'tron:mainnet': 'https://open.gasfree.io/tron',
|
|
51
|
+
'tron:shasta': 'https://open-test.gasfree.io/shasta',
|
|
52
|
+
'tron:nile': 'https://open-test.gasfree.io/nile',
|
|
53
|
+
};
|
|
36
54
|
/** Default RPC URLs for EVM networks */
|
|
37
55
|
export const EVM_RPC_URLS = {
|
|
38
56
|
'eip155:97': 'https://data-seed-prebsc-1-s1.binance.org:8545/',
|
|
@@ -86,6 +104,54 @@ export function getPaymentPermitAddress(network) {
|
|
|
86
104
|
return EVM_ZERO_ADDRESS;
|
|
87
105
|
return TRON_ZERO_ADDRESS;
|
|
88
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Get GasFreeController contract address for network
|
|
109
|
+
*/
|
|
110
|
+
export function getGasFreeControllerAddress(network) {
|
|
111
|
+
return GASFREE_CONTROLLER_ADDRESSES[network] ?? TRON_ZERO_ADDRESS;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Get GasFree beacon address for network
|
|
115
|
+
*/
|
|
116
|
+
export function getGasFreeBeaconAddress(network) {
|
|
117
|
+
return GASFREE_BEACON_ADDRESSES[network] ?? TRON_ZERO_ADDRESS;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get GasFree API Base URL for network
|
|
121
|
+
*/
|
|
122
|
+
export function getGasFreeApiBaseUrl(network) {
|
|
123
|
+
return GASFREE_API_BASE_URLS[network] ?? 'https://api.gasfree.io/v1';
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get GasFree API Key
|
|
127
|
+
*/
|
|
128
|
+
export function getGasFreeApiKey(network) {
|
|
129
|
+
if (typeof process !== 'undefined') {
|
|
130
|
+
if (network) {
|
|
131
|
+
const suffix = network.split(':').pop()?.toUpperCase();
|
|
132
|
+
const networkKey = process.env[`GASFREE_API_KEY_${suffix}`];
|
|
133
|
+
if (networkKey)
|
|
134
|
+
return networkKey;
|
|
135
|
+
}
|
|
136
|
+
return process.env.GASFREE_API_KEY;
|
|
137
|
+
}
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get GasFree API Secret
|
|
142
|
+
*/
|
|
143
|
+
export function getGasFreeApiSecret(network) {
|
|
144
|
+
if (typeof process !== 'undefined') {
|
|
145
|
+
if (network) {
|
|
146
|
+
const suffix = network.split(':').pop()?.toUpperCase();
|
|
147
|
+
const networkSecret = process.env[`GASFREE_API_SECRET_${suffix}`];
|
|
148
|
+
if (networkSecret)
|
|
149
|
+
return networkSecret;
|
|
150
|
+
}
|
|
151
|
+
return process.env.GASFREE_API_SECRET;
|
|
152
|
+
}
|
|
153
|
+
return undefined;
|
|
154
|
+
}
|
|
89
155
|
/**
|
|
90
156
|
* Check if network is TRON
|
|
91
157
|
*/
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exact.d.ts","sourceRoot":"","sources":["../../src/mechanisms/exact.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,cAAc,EAEd,oBAAoB,EACrB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"exact.d.ts","sourceRoot":"","sources":["../../src/mechanisms/exact.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,cAAc,EAEd,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAarB;;GAEG;AACH,qBAAa,8BAA+B,YAAW,eAAe;IACpE,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,gBAAgB,CAA8B;gBAE1C,MAAM,EAAE,YAAY;IAIhC,SAAS,IAAI,YAAY;IAIzB,MAAM,IAAI,MAAM;IAIV,oBAAoB,CACxB,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAC3D,OAAO,CAAC,cAAc,CAAC;CAyG3B"}
|
package/dist/mechanisms/exact.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Uses TIP-712 (TRON's EIP-712 implementation) for signing PaymentPermit.
|
|
5
5
|
*/
|
|
6
|
-
import { KIND_MAP, PAYMENT_PERMIT_TYPES, getChainId, getPaymentPermitAddress, TronAddressConverter, TRON_ZERO_ADDRESS, PermitValidationError, } from '../index.js';
|
|
6
|
+
import { KIND_MAP, PAYMENT_PERMIT_TYPES, PAYMENT_PERMIT_PRIMARY_TYPE, getChainId, getPaymentPermitAddress, TronAddressConverter, TRON_ZERO_ADDRESS, PermitValidationError, } from '../index.js';
|
|
7
7
|
/**
|
|
8
8
|
* TRON client mechanism for "exact_permit" payment scheme
|
|
9
9
|
*/
|
|
@@ -93,7 +93,7 @@ export class ExactPermitTronClientMechanism {
|
|
|
93
93
|
}
|
|
94
94
|
return value;
|
|
95
95
|
}));
|
|
96
|
-
const signature = await this.signer.signTypedData(domain, PAYMENT_PERMIT_TYPES, permitForSigning);
|
|
96
|
+
const signature = await this.signer.signTypedData(domain, PAYMENT_PERMIT_TYPES, permitForSigning, PAYMENT_PERMIT_PRIMARY_TYPE);
|
|
97
97
|
console.log('[SIGN] Signature:', signature);
|
|
98
98
|
return {
|
|
99
99
|
x402Version: 2,
|