@bankofai/x402 0.3.1 → 0.4.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.
Files changed (56) hide show
  1. package/README.md +70 -89
  2. package/dist/abi.d.ts +20 -4
  3. package/dist/abi.d.ts.map +1 -1
  4. package/dist/abi.js +13 -4
  5. package/dist/abi.js.map +1 -1
  6. package/dist/client/x402Client.d.ts +12 -5
  7. package/dist/client/x402Client.d.ts.map +1 -1
  8. package/dist/client/x402Client.js +11 -0
  9. package/dist/client/x402Client.js.map +1 -1
  10. package/dist/config.d.ts +26 -0
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +66 -0
  13. package/dist/config.js.map +1 -1
  14. package/dist/mechanisms/exact.d.ts.map +1 -1
  15. package/dist/mechanisms/exact.js +2 -2
  16. package/dist/mechanisms/exact.js.map +1 -1
  17. package/dist/mechanisms/exactEvm.d.ts.map +1 -1
  18. package/dist/mechanisms/exactEvm.js +2 -2
  19. package/dist/mechanisms/exactEvm.js.map +1 -1
  20. package/dist/mechanisms/exactGasfree.d.ts +11 -0
  21. package/dist/mechanisms/exactGasfree.d.ts.map +1 -0
  22. package/dist/mechanisms/exactGasfree.js +136 -0
  23. package/dist/mechanisms/exactGasfree.js.map +1 -0
  24. package/dist/mechanisms/gasfree.d.ts +8 -0
  25. package/dist/mechanisms/gasfree.d.ts.map +1 -0
  26. package/dist/mechanisms/gasfree.js +125 -0
  27. package/dist/mechanisms/gasfree.js.map +1 -0
  28. package/dist/mechanisms/index.d.ts +1 -0
  29. package/dist/mechanisms/index.d.ts.map +1 -1
  30. package/dist/mechanisms/index.js +2 -0
  31. package/dist/mechanisms/index.js.map +1 -1
  32. package/dist/mechanisms/nativeExactEvm.d.ts.map +1 -1
  33. package/dist/mechanisms/nativeExactEvm.js +2 -2
  34. package/dist/mechanisms/nativeExactEvm.js.map +1 -1
  35. package/dist/mechanisms/nativeExactTron.d.ts.map +1 -1
  36. package/dist/mechanisms/nativeExactTron.js +2 -2
  37. package/dist/mechanisms/nativeExactTron.js.map +1 -1
  38. package/dist/signers/evmSigner.d.ts +2 -2
  39. package/dist/signers/evmSigner.d.ts.map +1 -1
  40. package/dist/signers/evmSigner.js +4 -10
  41. package/dist/signers/evmSigner.js.map +1 -1
  42. package/dist/signers/signer.d.ts +2 -2
  43. package/dist/signers/signer.d.ts.map +1 -1
  44. package/dist/signers/signer.js +6 -10
  45. package/dist/signers/signer.js.map +1 -1
  46. package/dist/types/responses.d.ts +4 -5
  47. package/dist/types/responses.d.ts.map +1 -1
  48. package/dist/utils/gasfree.d.ts +123 -0
  49. package/dist/utils/gasfree.d.ts.map +1 -0
  50. package/dist/utils/gasfree.js +228 -0
  51. package/dist/utils/gasfree.js.map +1 -0
  52. package/dist/utils/index.d.ts +1 -0
  53. package/dist/utils/index.d.ts.map +1 -1
  54. package/dist/utils/index.js +1 -0
  55. package/dist/utils/index.js.map +1 -1
  56. package/package.json +15 -14
@@ -68,13 +68,7 @@ export class TronClientSigner {
68
68
  /**
69
69
  * Sign EIP-712 typed data using TronWeb's signTypedData (TIP-712)
70
70
  */
71
- async signTypedData(domain, types, message) {
72
- // Prepare domain
73
- const typedDomain = {
74
- name: domain.name,
75
- chainId: domain.chainId,
76
- verifyingContract: domain.verifyingContract,
77
- };
71
+ async signTypedData(domain, types, message, _primaryType) {
78
72
  // Signing is pure crypto — any TronWeb instance works
79
73
  const tw = this.getDefaultTronWeb();
80
74
  // Use signTypedData (stable API) or fall back to _signTypedData (legacy)
@@ -82,11 +76,13 @@ export class TronClientSigner {
82
76
  if (!signFn) {
83
77
  throw new SignatureCreationError('TronWeb does not support signTypedData. Please upgrade to TronWeb >= 5.0');
84
78
  }
85
- return signFn.call(tw.trx, typedDomain, types, message, this.privateKey);
79
+ // Pure Passthrough: Let TronWeb handle the domain and types as-is.
80
+ return signFn.call(tw.trx, domain, types, message, this.privateKey);
86
81
  }
87
- async checkBalance(token, network) {
82
+ async checkBalance(token, network, address) {
88
83
  try {
89
- const ownerHex = toEvmHex(this.address);
84
+ const targetAddress = address || this.address;
85
+ const ownerHex = toEvmHex(targetAddress);
90
86
  const tw = this.getTronWeb(network);
91
87
  const result = await tw.transactionBuilder.triggerConstantContract(token, 'balanceOf(address)', {}, [{ type: 'address', value: ownerHex }], this.address);
92
88
  if (result.result?.result && result.constant_result?.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signers/signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signers/signer.ts"],"names":[],"mappings":"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"}
@@ -53,11 +53,6 @@ export interface SupportedResponse {
53
53
  scheme: string;
54
54
  network: string;
55
55
  }>;
56
- /** Fee configuration */
57
- fee?: {
58
- feeTo: string;
59
- pricing: 'per_accept' | 'flat';
60
- };
61
56
  }
62
57
  /** Fee quote response from facilitator */
63
58
  export interface FeeQuoteResponse {
@@ -68,8 +63,12 @@ export interface FeeQuoteResponse {
68
63
  };
69
64
  /** Pricing model */
70
65
  pricing: string;
66
+ /** Payment scheme */
67
+ scheme: string;
71
68
  /** Network identifier */
72
69
  network: string;
70
+ /** Token asset address */
71
+ asset: string;
73
72
  /** Quote expiry time */
74
73
  expiresAt?: number;
75
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/types/responses.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE9E,2BAA2B;AAC3B,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,+BAA+B;IAC/B,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,iBAAiB;IACjB,UAAU,CAAC,EAAE;QACX,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;QAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,KAAK,EAAE,KAAK,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,wBAAwB;IACxB,GAAG,CAAC,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,YAAY,GAAG,MAAM,CAAC;KAChC,CAAC;CACH;AAED,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/types/responses.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE9E,2BAA2B;AAC3B,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,sCAAsC;AACtC,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,+BAA+B;IAC/B,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,iBAAiB;IACjB,UAAU,CAAC,EAAE;QACX,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;QAC5C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,KAAK,EAAE,KAAK,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,GAAG,EAAE;QACH,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * GasFree utility functions for API interaction and domain helpers.
3
+ */
4
+ export interface GasFreeResponse<T> {
5
+ code: number;
6
+ reason: string | null;
7
+ message: string | null;
8
+ data: T;
9
+ }
10
+ export interface GasFreeAsset {
11
+ tokenAddress: string;
12
+ tokenSymbol: string;
13
+ activateFee: number;
14
+ transferFee: number;
15
+ decimal: number;
16
+ frozen: number;
17
+ balance?: string | number;
18
+ }
19
+ export interface GasFreeAddressInfo {
20
+ accountAddress: string;
21
+ gasFreeAddress: string;
22
+ active: boolean;
23
+ nonce: number;
24
+ allowSubmit: boolean;
25
+ assets: GasFreeAsset[];
26
+ }
27
+ export interface GasFreeSubmitResponseData {
28
+ id: string;
29
+ state: 'WAITING' | 'INPROGRESS' | 'CONFIRMING' | 'SUCCEED' | 'FAILED';
30
+ createdAt: string;
31
+ accountAddress: string;
32
+ gasFreeAddress: string;
33
+ providerAddress: string;
34
+ targetAddress: string;
35
+ nonce: number;
36
+ tokenAddress: string;
37
+ amount: string;
38
+ expiredAt: string;
39
+ reason?: string;
40
+ txnHash?: string;
41
+ txnState?: 'INIT' | 'NOT_ON_CHAIN' | 'ON_CHAIN' | 'SOLIDITY' | 'ON_CHAIN_FAILED';
42
+ }
43
+ export interface GasFreeProvider {
44
+ address: string;
45
+ name: string;
46
+ icon: string;
47
+ website: string;
48
+ config: {
49
+ maxPendingTransfer: number;
50
+ minDeadlineDuration: number;
51
+ maxDeadlineDuration: number;
52
+ defaultDeadlineDuration: number;
53
+ };
54
+ }
55
+ export declare const GASFREE_TYPES: {
56
+ readonly PermitTransfer: readonly [{
57
+ readonly name: "token";
58
+ readonly type: "address";
59
+ }, {
60
+ readonly name: "serviceProvider";
61
+ readonly type: "address";
62
+ }, {
63
+ readonly name: "user";
64
+ readonly type: "address";
65
+ }, {
66
+ readonly name: "receiver";
67
+ readonly type: "address";
68
+ }, {
69
+ readonly name: "value";
70
+ readonly type: "uint256";
71
+ }, {
72
+ readonly name: "maxFee";
73
+ readonly type: "uint256";
74
+ }, {
75
+ readonly name: "deadline";
76
+ readonly type: "uint256";
77
+ }, {
78
+ readonly name: "version";
79
+ readonly type: "uint256";
80
+ }, {
81
+ readonly name: "nonce";
82
+ readonly type: "uint256";
83
+ }];
84
+ };
85
+ export declare class GasFreeAPIClient {
86
+ private baseUrl;
87
+ private apiKey?;
88
+ private apiSecret?;
89
+ constructor(baseUrl: string, apiKey?: string, apiSecret?: string);
90
+ /**
91
+ * Generate HMAC signature for authentication
92
+ */
93
+ private generateSignature;
94
+ /**
95
+ * Get headers with authentication if keys are provided
96
+ */
97
+ private getHeaders;
98
+ /**
99
+ * Get all supported service providers
100
+ */
101
+ getProviders(): Promise<GasFreeProvider[]>;
102
+ /**
103
+ * Get the current recommended nonce for a user
104
+ */
105
+ getNonce(user: string): Promise<number>;
106
+ /**
107
+ * Get full account info (activation, balance, nonce) for a user
108
+ */
109
+ getAddressInfo(user: string): Promise<GasFreeAddressInfo>;
110
+ /**
111
+ * Get status of a submitted GasFree transaction
112
+ */
113
+ getStatus(traceId: string): Promise<GasFreeSubmitResponseData>;
114
+ /**
115
+ * Wait for a GasFree transaction to reach a terminal state or ON_CHAIN state
116
+ */
117
+ waitForSuccess(traceId: string, timeout?: number, pollInterval?: number): Promise<GasFreeSubmitResponseData>;
118
+ /**
119
+ * Submit a signed GasFree transaction to the official relayer
120
+ */
121
+ submit(domain: any, message: any, signature: string): Promise<string>;
122
+ }
123
+ //# sourceMappingURL=gasfree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gasfree.d.ts","sourceRoot":"","sources":["../../src/utils/gasfree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,228 @@
1
+ import { GASFREE_PRIMARY_TYPE, } from '../abi.js';
2
+ import { getGasFreeApiKey, getGasFreeApiSecret } from '../config.js';
3
+ // GasFree TIP-712 Types
4
+ export const GASFREE_TYPES = {
5
+ [GASFREE_PRIMARY_TYPE]: [
6
+ { name: 'token', type: 'address' },
7
+ { name: 'serviceProvider', type: 'address' },
8
+ { name: 'user', type: 'address' },
9
+ { name: 'receiver', type: 'address' },
10
+ { name: 'value', type: 'uint256' },
11
+ { name: 'maxFee', type: 'uint256' },
12
+ { name: 'deadline', type: 'uint256' },
13
+ { name: 'version', type: 'uint256' },
14
+ { name: 'nonce', type: 'uint256' },
15
+ ],
16
+ };
17
+ export class GasFreeAPIClient {
18
+ baseUrl;
19
+ apiKey;
20
+ apiSecret;
21
+ constructor(baseUrl, apiKey, apiSecret) {
22
+ this.baseUrl = baseUrl.replace(/\/$/, '');
23
+ // Fallback to environment variables if keys are missing
24
+ if (!apiKey || !apiSecret) {
25
+ let network = 'tron:mainnet';
26
+ if (this.baseUrl.includes('open-test')) {
27
+ if (this.baseUrl.includes('nile'))
28
+ network = 'tron:nile';
29
+ else if (this.baseUrl.includes('shasta'))
30
+ network = 'tron:shasta';
31
+ }
32
+ this.apiKey = apiKey || getGasFreeApiKey(network);
33
+ this.apiSecret = apiSecret || getGasFreeApiSecret(network);
34
+ }
35
+ else {
36
+ this.apiKey = apiKey;
37
+ this.apiSecret = apiSecret;
38
+ }
39
+ }
40
+ /**
41
+ * Generate HMAC signature for authentication
42
+ */
43
+ async generateSignature(method, path, timestamp) {
44
+ if (!this.apiSecret)
45
+ return '';
46
+ const message = `${method.toUpperCase()}${path}${timestamp}`;
47
+ console.debug(`GasFree HMAC base string: ${message}`);
48
+ // Check if we are in Node.js environment
49
+ if (typeof process !== 'undefined' && process.versions && process.versions.node) {
50
+ const crypto = await import('node:crypto');
51
+ return crypto
52
+ .createHmac('sha256', this.apiSecret)
53
+ .update(message)
54
+ .digest('base64');
55
+ }
56
+ else {
57
+ // Browser implementation using Web Crypto API
58
+ const encoder = new TextEncoder();
59
+ const keyData = encoder.encode(this.apiSecret);
60
+ const msgData = encoder.encode(message);
61
+ const cryptoKey = await globalThis.crypto.subtle.importKey('raw', keyData, { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
62
+ const signature = await globalThis.crypto.subtle.sign('HMAC', cryptoKey, msgData);
63
+ return btoa(String.fromCharCode(...new Uint8Array(signature)));
64
+ }
65
+ }
66
+ /**
67
+ * Get headers with authentication if keys are provided
68
+ */
69
+ async getHeaders(method, path) {
70
+ const headers = {
71
+ 'Content-Type': 'application/json',
72
+ };
73
+ if (this.apiKey && this.apiSecret) {
74
+ const timestamp = Math.floor(Date.now() / 1000);
75
+ // The Provider expects the FULL path including /nile or /tron for signature
76
+ let fullPath = path;
77
+ const urlParts = this.baseUrl.split('/');
78
+ if (urlParts.length > 3) {
79
+ const prefix = '/' + urlParts.slice(3).join('/');
80
+ if (!fullPath.startsWith(prefix)) {
81
+ fullPath = prefix + path;
82
+ }
83
+ }
84
+ const signature = await this.generateSignature(method, fullPath, timestamp);
85
+ headers['Timestamp'] = timestamp.toString();
86
+ headers['Authorization'] = `ApiKey ${this.apiKey}:${signature}`;
87
+ }
88
+ return headers;
89
+ }
90
+ /**
91
+ * Get all supported service providers
92
+ */
93
+ async getProviders() {
94
+ const path = '/api/v1/config/provider/all';
95
+ const url = `${this.baseUrl}${path}`;
96
+ const headers = await this.getHeaders('GET', path);
97
+ const response = await fetch(url, { headers });
98
+ const bodyText = await response.text();
99
+ if (!response.ok) {
100
+ console.error(`GasFree config API HTTP error ${response.status} at ${url}: ${bodyText}`);
101
+ throw new Error(`GasFree config API error: ${response.status}`);
102
+ }
103
+ const result = JSON.parse(bodyText);
104
+ if (result.code !== 200) {
105
+ console.error(`GasFree config API business error at ${url}: ${result.message || result.reason}`);
106
+ throw new Error(`GasFree config API error: ${result.message || result.reason}`);
107
+ }
108
+ return result.data.providers;
109
+ }
110
+ /**
111
+ * Get the current recommended nonce for a user
112
+ */
113
+ async getNonce(user) {
114
+ try {
115
+ const data = await this.getAddressInfo(user);
116
+ return data.nonce ?? 0;
117
+ }
118
+ catch (error) {
119
+ console.warn(`Failed to get nonce from GasFree API: ${error}. Defaulting to 0.`);
120
+ return 0;
121
+ }
122
+ }
123
+ /**
124
+ * Get full account info (activation, balance, nonce) for a user
125
+ */
126
+ async getAddressInfo(user) {
127
+ const path = `/api/v1/address/${user}`;
128
+ const url = `${this.baseUrl}${path}`;
129
+ const headers = await this.getHeaders('GET', path);
130
+ const response = await fetch(url, { headers });
131
+ const bodyText = await response.text();
132
+ if (!response.ok) {
133
+ console.error(`GasFree API HTTP error ${response.status} at ${url}: ${bodyText}`);
134
+ throw new Error(`GasFree API HTTP error: ${response.status} - Body: ${bodyText}`);
135
+ }
136
+ const result = JSON.parse(bodyText);
137
+ if (result.code !== 200) {
138
+ console.error(`GasFree API business error at ${url}: ${result.message || result.reason} - Body: ${bodyText}`);
139
+ throw new Error(`GasFree API error: ${result.message || result.reason} - Body: ${bodyText}`);
140
+ }
141
+ return result.data;
142
+ }
143
+ /**
144
+ * Get status of a submitted GasFree transaction
145
+ */
146
+ async getStatus(traceId) {
147
+ const path = `/api/v1/gasfree/${traceId}`;
148
+ const url = `${this.baseUrl}${path}`;
149
+ const headers = await this.getHeaders('GET', path);
150
+ const response = await fetch(url, { headers });
151
+ const bodyText = await response.text();
152
+ if (!response.ok) {
153
+ console.error(`GasFree status API HTTP error ${response.status} at ${url}: ${bodyText}`);
154
+ throw new Error(`GasFree status API error: ${response.status}`);
155
+ }
156
+ const result = JSON.parse(bodyText);
157
+ if (result.code !== 200) {
158
+ console.error(`GasFree status API business error at ${url}: ${result.message || result.reason}`);
159
+ throw new Error(`GasFree status API error: ${result.message || result.reason}`);
160
+ }
161
+ return result.data;
162
+ }
163
+ /**
164
+ * Wait for a GasFree transaction to reach a terminal state or ON_CHAIN state
165
+ */
166
+ async waitForSuccess(traceId, timeout = 120000, pollInterval = 5000) {
167
+ const startTime = Date.now();
168
+ while (Date.now() - startTime < timeout) {
169
+ const statusData = await this.getStatus(traceId);
170
+ const state = statusData.state.toUpperCase();
171
+ const txnState = (statusData.txnState || '').toUpperCase();
172
+ // 1. Immediate return for successful or "good enough" states
173
+ if (state === 'SUCCEED' || (statusData.txnHash && ['ON_CHAIN', 'SOLIDITY'].includes(txnState))) {
174
+ return statusData;
175
+ }
176
+ if (state === 'FAILED' || txnState === 'ON_CHAIN_FAILED') {
177
+ throw new Error(`GasFree transaction failed. Reason: ${statusData.reason || 'Unknown'}`);
178
+ }
179
+ console.debug(`GasFree transaction ${traceId} is ${state} (${txnState}), waiting...`);
180
+ await new Promise((resolve) => setTimeout(resolve, pollInterval));
181
+ }
182
+ throw new Error(`GasFree transaction ${traceId} timed out after ${timeout / 1000}s`);
183
+ }
184
+ /**
185
+ * Submit a signed GasFree transaction to the official relayer
186
+ */
187
+ async submit(domain, message, signature) {
188
+ const path = '/api/v1/gasfree/submit';
189
+ const url = `${this.baseUrl}${path}`;
190
+ const payload = {
191
+ token: message.token,
192
+ serviceProvider: message.serviceProvider,
193
+ user: message.user,
194
+ receiver: message.receiver,
195
+ value: message.value.toString(),
196
+ maxFee: message.maxFee.toString(),
197
+ deadline: Number(message.deadline),
198
+ version: 1,
199
+ nonce: Number(message.nonce),
200
+ sig: signature.startsWith('0x') ? signature.slice(2) : signature,
201
+ requestId: `x402-${Date.now()}-${signature.slice(2, 10)}`,
202
+ };
203
+ try {
204
+ const headers = await this.getHeaders('POST', path);
205
+ const response = await fetch(url, {
206
+ method: 'POST',
207
+ headers,
208
+ body: JSON.stringify(payload),
209
+ });
210
+ const bodyText = await response.text();
211
+ if (!response.ok) {
212
+ console.error(`GasFree submit HTTP error ${response.status} at ${url}: ${bodyText}`);
213
+ throw new Error(`GasFree submit HTTP error: ${response.status} - Body: ${bodyText}`);
214
+ }
215
+ const result = JSON.parse(bodyText);
216
+ if (result.code !== 200) {
217
+ console.error(`GasFree submit API business error at ${url}: ${result.message || result.reason} - Body: ${bodyText}`);
218
+ throw new Error(`GasFree submit API error: ${result.message || result.reason} - Body: ${bodyText}`);
219
+ }
220
+ return result.data.id;
221
+ }
222
+ catch (error) {
223
+ console.error(`Failed to submit GasFree transaction: ${error}`);
224
+ throw error;
225
+ }
226
+ }
227
+ }
228
+ //# sourceMappingURL=gasfree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gasfree.js","sourceRoot":"","sources":["../../src/utils/gasfree.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export * from './encoding.js';
5
5
  export { encodeBase64, decodeBase64, decodeBase64ToBytes, hexToBytes, bytesToHex, paymentIdToBytes } from './encoding.js';
6
+ export * from './gasfree.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1H,cAAc,cAAc,CAAC"}
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export * from './encoding.js';
5
5
  export { encodeBase64, decodeBase64, decodeBase64ToBytes, hexToBytes, bytesToHex, paymentIdToBytes } from './encoding.js';
6
+ export * from './gasfree.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1H,cAAc,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bankofai/x402",
3
- "version": "0.3.1",
3
+ "version": "0.4.1",
4
4
  "description": "x402 TypeScript SDK (TRON and EVM support)",
5
5
  "keywords": [
6
6
  "x402",
@@ -11,13 +11,13 @@
11
11
  "payment",
12
12
  "blockchain"
13
13
  ],
14
- "homepage": "https://github.com/bankofai/x402#readme",
14
+ "homepage": "https://github.com/BofAI/x402#readme",
15
15
  "bugs": {
16
- "url": "https://github.com/bankofai/x402/issues"
16
+ "url": "https://github.com/BofAI/x402/issues"
17
17
  },
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "git+https://github.com/bankofai/x402.git",
20
+ "url": "git+https://github.com/BofAI/x402.git",
21
21
  "directory": "typescript/packages/x402"
22
22
  },
23
23
  "engines": {
@@ -27,6 +27,10 @@
27
27
  "main": "./dist/index.js",
28
28
  "module": "./dist/index.js",
29
29
  "types": "./dist/index.d.ts",
30
+ "dependencies": {
31
+ "@gasfree/gasfree-sdk": "^1.1.2",
32
+ "viem": "^2.45.2"
33
+ },
30
34
  "exports": {
31
35
  ".": {
32
36
  "import": "./dist/index.js",
@@ -37,12 +41,14 @@
37
41
  "dist",
38
42
  "README.md"
39
43
  ],
44
+ "scripts": {
45
+ "build": "tsc",
46
+ "clean": "rm -rf dist",
47
+ "test": "vitest run"
48
+ },
40
49
  "peerDependencies": {
41
50
  "tronweb": "^5.0.0 || ^6.0.0"
42
51
  },
43
- "dependencies": {
44
- "viem": "^2.45.2"
45
- },
46
52
  "devDependencies": {
47
53
  "@types/node": "^20.10.0",
48
54
  "typescript": "^5.3.0",
@@ -51,10 +57,5 @@
51
57
  "publishConfig": {
52
58
  "access": "public"
53
59
  },
54
- "license": "MIT",
55
- "scripts": {
56
- "build": "tsc",
57
- "clean": "rm -rf dist",
58
- "test": "vitest run"
59
- }
60
- }
60
+ "license": "MIT"
61
+ }