@x402-crosschain/sdk 2.0.0 → 2.1.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/dist/client/browser-client.d.ts +1 -1
- package/dist/client/browser-client.d.ts.map +1 -1
- package/dist/client/browser-client.js +30 -23
- package/dist/client/browser-client.js.map +1 -1
- package/dist/client/payment-client.d.ts +1 -1
- package/dist/client/payment-client.d.ts.map +1 -1
- package/dist/client/payment-client.js +33 -49
- package/dist/client/payment-client.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/payment-middleware.d.ts +1 -0
- package/dist/middleware/payment-middleware.d.ts.map +1 -1
- package/dist/middleware/payment-middleware.js +5 -1
- package/dist/middleware/payment-middleware.js.map +1 -1
- package/dist/types.d.ts +10 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/package.json +3 -1
|
@@ -3,7 +3,7 @@ import type { WalletClient } from 'viem';
|
|
|
3
3
|
import type { PaymentPreferences } from '../types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Create an x402-compatible payment client for BROWSER use with MetaMask/Coinbase Wallet
|
|
6
|
-
* Signs
|
|
6
|
+
* Signs Permit2 transfers or EIP-3009 authorizations (gasless for customer)
|
|
7
7
|
*/
|
|
8
8
|
export declare function createBrowserPaymentClient(walletClient: WalletClient, preferences?: PaymentPreferences): AxiosInstance;
|
|
9
9
|
//# sourceMappingURL=browser-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/client/browser-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAc,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAO,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAuC,kBAAkB,EAAgB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-client.d.ts","sourceRoot":"","sources":["../../src/client/browser-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAc,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAO,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAuC,kBAAkB,EAAgB,MAAM,aAAa,CAAC;AA8BzG;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,YAAY,EAC1B,WAAW,CAAC,EAAE,kBAAkB,GAC/B,aAAa,CAqGf"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { keccak256, toHex } from 'viem';
|
|
3
|
-
import { CHAIN_IDS, NETWORK_NAMES, USDC_ADDRESSES } from '../types.js';
|
|
3
|
+
import { CHAIN_IDS, NETWORK_NAMES, USDC_ADDRESSES, PERMIT2_ADDRESS } from '../types.js';
|
|
4
4
|
// EIP-3009 TransferWithAuthorization types for USDC
|
|
5
5
|
const AUTHORIZATION_TYPES = {
|
|
6
6
|
TransferWithAuthorization: [
|
|
@@ -12,19 +12,23 @@ const AUTHORIZATION_TYPES = {
|
|
|
12
12
|
{ name: 'nonce', type: 'bytes32' },
|
|
13
13
|
],
|
|
14
14
|
};
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
// Permit2 SignatureTransfer types for EIP-712 signing
|
|
16
|
+
// Domain: { name: 'Permit2', chainId, verifyingContract: PERMIT2_ADDRESS }
|
|
17
|
+
const PERMIT2_TRANSFER_TYPES = {
|
|
18
|
+
PermitTransferFrom: [
|
|
19
|
+
{ name: 'permitted', type: 'TokenPermissions' },
|
|
19
20
|
{ name: 'spender', type: 'address' },
|
|
20
|
-
{ name: 'value', type: 'uint256' },
|
|
21
21
|
{ name: 'nonce', type: 'uint256' },
|
|
22
22
|
{ name: 'deadline', type: 'uint256' },
|
|
23
23
|
],
|
|
24
|
+
TokenPermissions: [
|
|
25
|
+
{ name: 'token', type: 'address' },
|
|
26
|
+
{ name: 'amount', type: 'uint256' },
|
|
27
|
+
],
|
|
24
28
|
};
|
|
25
29
|
/**
|
|
26
30
|
* Create an x402-compatible payment client for BROWSER use with MetaMask/Coinbase Wallet
|
|
27
|
-
* Signs
|
|
31
|
+
* Signs Permit2 transfers or EIP-3009 authorizations (gasless for customer)
|
|
28
32
|
*/
|
|
29
33
|
export function createBrowserPaymentClient(walletClient, preferences) {
|
|
30
34
|
const client = axios.create();
|
|
@@ -109,13 +113,12 @@ async function createBrowserSignedPayment(walletClient, userAddress, chainId, to
|
|
|
109
113
|
const isUsdc = Object.values(USDC_ADDRESSES).some(addr => addr.toLowerCase() === tokenAddress.toLowerCase());
|
|
110
114
|
// Get spender address (facilitator)
|
|
111
115
|
const spender = paymentRequirements.extra?.facilitatorAddress || paymentRequirements.payTo;
|
|
112
|
-
// Get token name and version for EIP-712 domain
|
|
113
|
-
const tokenName = paymentRequirements.extra?.name || (isUsdc ? 'USD Coin' : 'Unknown Token');
|
|
114
|
-
const tokenVersion = paymentRequirements.extra?.version || '2';
|
|
115
116
|
const deadline = BigInt(Math.floor(Date.now() / 1000) + (paymentRequirements.maxTimeoutSeconds || 300));
|
|
116
117
|
if (isUsdc) {
|
|
117
118
|
// EIP-3009 TransferWithAuthorization for USDC
|
|
118
119
|
console.log('[Browser Payment] Signing EIP-3009 authorization (USDC)...');
|
|
120
|
+
const tokenName = paymentRequirements.extra?.name || 'USD Coin';
|
|
121
|
+
const tokenVersion = paymentRequirements.extra?.version || '2';
|
|
119
122
|
// Generate random nonce
|
|
120
123
|
const nonce = keccak256(toHex(Date.now().toString() + Math.random().toString()));
|
|
121
124
|
const domain = {
|
|
@@ -157,28 +160,31 @@ async function createBrowserSignedPayment(walletClient, userAddress, chainId, to
|
|
|
157
160
|
};
|
|
158
161
|
}
|
|
159
162
|
else {
|
|
160
|
-
// ERC-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
163
|
+
// Permit2 SignatureTransfer for non-USDC ERC-20 tokens (WETH, DAI, etc.)
|
|
164
|
+
// Requires: token.approve(PERMIT2_ADDRESS, maxUint256) done once by the user
|
|
165
|
+
console.log('[Browser Payment] Signing Permit2 transfer...');
|
|
166
|
+
// Random nonce - Permit2 uses unordered bitmap nonces (no sequential front-running)
|
|
167
|
+
const nonce = BigInt(keccak256(toHex(Date.now().toString() + Math.random().toString())));
|
|
168
|
+
// Permit2 domain is always the canonical Permit2 contract - not the token
|
|
164
169
|
const domain = {
|
|
165
|
-
name:
|
|
166
|
-
version: tokenVersion,
|
|
170
|
+
name: 'Permit2',
|
|
167
171
|
chainId: paymentRequirements.extra?.chainId || chainId,
|
|
168
|
-
verifyingContract:
|
|
172
|
+
verifyingContract: PERMIT2_ADDRESS,
|
|
169
173
|
};
|
|
170
174
|
const message = {
|
|
171
|
-
|
|
175
|
+
permitted: {
|
|
176
|
+
token: tokenAddress,
|
|
177
|
+
amount: BigInt(amount),
|
|
178
|
+
},
|
|
172
179
|
spender: spender,
|
|
173
|
-
value: BigInt(amount),
|
|
174
180
|
nonce,
|
|
175
181
|
deadline,
|
|
176
182
|
};
|
|
177
183
|
const signature = await walletClient.signTypedData({
|
|
178
184
|
account: walletClient.account,
|
|
179
185
|
domain,
|
|
180
|
-
types:
|
|
181
|
-
primaryType: '
|
|
186
|
+
types: PERMIT2_TRANSFER_TYPES,
|
|
187
|
+
primaryType: 'PermitTransferFrom',
|
|
182
188
|
message,
|
|
183
189
|
});
|
|
184
190
|
return {
|
|
@@ -186,10 +192,11 @@ async function createBrowserSignedPayment(walletClient, userAddress, chainId, to
|
|
|
186
192
|
scheme: 'exact',
|
|
187
193
|
network: NETWORK_NAMES[chainId] || 'base',
|
|
188
194
|
payload: {
|
|
189
|
-
|
|
195
|
+
permit2: {
|
|
190
196
|
owner: userAddress,
|
|
191
197
|
spender,
|
|
192
|
-
|
|
198
|
+
token: tokenAddress,
|
|
199
|
+
amount,
|
|
193
200
|
nonce: nonce.toString(),
|
|
194
201
|
deadline: deadline.toString(),
|
|
195
202
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-client.js","sourceRoot":"","sources":["../../src/client/browser-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"browser-client.js","sourceRoot":"","sources":["../../src/client/browser-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { AxiosInstance } from 'axios';
|
|
|
2
2
|
import type { PaymentPreferences } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Create an x402-compatible payment client
|
|
5
|
-
* Signs
|
|
5
|
+
* Signs Permit2 transfers or EIP-3009 authorizations (gasless for customer)
|
|
6
6
|
* Facilitator executes the bridge and transfer
|
|
7
7
|
*/
|
|
8
8
|
export declare function createPaymentClient(privateKey: `0x${string}`, preferences?: PaymentPreferences): AxiosInstance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-client.d.ts","sourceRoot":"","sources":["../../src/client/payment-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAc,MAAM,OAAO,CAAC;AAIzD,OAAO,KAAK,EAGV,kBAAkB,EAGnB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"payment-client.d.ts","sourceRoot":"","sources":["../../src/client/payment-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAc,MAAM,OAAO,CAAC;AAIzD,OAAO,KAAK,EAGV,kBAAkB,EAGnB,MAAM,aAAa,CAAC;AAsDrB;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,KAAK,MAAM,EAAE,EACzB,WAAW,CAAC,EAAE,kBAAkB,GAC/B,aAAa,CAkGf"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
3
|
-
import { createWalletClient,
|
|
3
|
+
import { createWalletClient, http, keccak256, toHex } from 'viem';
|
|
4
4
|
import { arbitrum, base, optimism, polygon, mainnet, baseSepolia } from 'viem/chains';
|
|
5
|
-
import { CHAIN_IDS, NETWORK_NAMES, USDC_ADDRESSES } from '../types.js';
|
|
5
|
+
import { CHAIN_IDS, NETWORK_NAMES, USDC_ADDRESSES, PERMIT2_ADDRESS } from '../types.js';
|
|
6
6
|
// Chain mapping
|
|
7
7
|
const CHAIN_MAP = {
|
|
8
8
|
1: mainnet,
|
|
@@ -24,15 +24,20 @@ const RPC_URLS = {
|
|
|
24
24
|
324: 'https://mainnet.era.zksync.io',
|
|
25
25
|
59144: 'https://rpc.linea.build',
|
|
26
26
|
};
|
|
27
|
-
//
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
// Permit2 SignatureTransfer types for EIP-712 signing
|
|
28
|
+
// Domain: { name: 'Permit2', chainId, verifyingContract: PERMIT2_ADDRESS }
|
|
29
|
+
// Works with any ERC-20 including WETH - no per-token permit() needed
|
|
30
|
+
const PERMIT2_TRANSFER_TYPES = {
|
|
31
|
+
PermitTransferFrom: [
|
|
32
|
+
{ name: 'permitted', type: 'TokenPermissions' },
|
|
31
33
|
{ name: 'spender', type: 'address' },
|
|
32
|
-
{ name: 'value', type: 'uint256' },
|
|
33
34
|
{ name: 'nonce', type: 'uint256' },
|
|
34
35
|
{ name: 'deadline', type: 'uint256' },
|
|
35
36
|
],
|
|
37
|
+
TokenPermissions: [
|
|
38
|
+
{ name: 'token', type: 'address' },
|
|
39
|
+
{ name: 'amount', type: 'uint256' },
|
|
40
|
+
],
|
|
36
41
|
};
|
|
37
42
|
// EIP-3009 TransferWithAuthorization types for USDC
|
|
38
43
|
const AUTHORIZATION_TYPES = {
|
|
@@ -47,7 +52,7 @@ const AUTHORIZATION_TYPES = {
|
|
|
47
52
|
};
|
|
48
53
|
/**
|
|
49
54
|
* Create an x402-compatible payment client
|
|
50
|
-
* Signs
|
|
55
|
+
* Signs Permit2 transfers or EIP-3009 authorizations (gasless for customer)
|
|
51
56
|
* Facilitator executes the bridge and transfer
|
|
52
57
|
*/
|
|
53
58
|
export function createPaymentClient(privateKey, preferences) {
|
|
@@ -130,7 +135,7 @@ const NATIVE_TOKEN = '0x0000000000000000000000000000000000000000';
|
|
|
130
135
|
* Create a signed payment payload
|
|
131
136
|
* - Native ETH: Customer sends transaction directly (not gasless)
|
|
132
137
|
* - USDC: EIP-3009 TransferWithAuthorization (gasless)
|
|
133
|
-
* - Other ERC-20:
|
|
138
|
+
* - Other ERC-20 (WETH, DAI, etc.): Permit2 SignatureTransfer (gasless, requires one-time approve to Permit2 contract)
|
|
134
139
|
*/
|
|
135
140
|
async function createSignedPayment(privateKey, chainId, tokenAddress, amount, paymentRequirements, x402Version) {
|
|
136
141
|
const account = privateKeyToAccount(privateKey);
|
|
@@ -144,11 +149,6 @@ async function createSignedPayment(privateKey, chainId, tokenAddress, amount, pa
|
|
|
144
149
|
chain,
|
|
145
150
|
transport: http(RPC_URLS[chainId]),
|
|
146
151
|
});
|
|
147
|
-
// Create public client for reading contract state
|
|
148
|
-
const publicClient = createPublicClient({
|
|
149
|
-
chain,
|
|
150
|
-
transport: http(RPC_URLS[chainId]),
|
|
151
|
-
});
|
|
152
152
|
// Check if this is native ETH
|
|
153
153
|
const isNativeToken = tokenAddress.toLowerCase() === NATIVE_TOKEN.toLowerCase();
|
|
154
154
|
// Determine if this is USDC (use EIP-3009) or other token (use ERC-2612)
|
|
@@ -235,13 +235,12 @@ async function createSignedPayment(privateKey, chainId, tokenAddress, amount, pa
|
|
|
235
235
|
}
|
|
236
236
|
// Get spender address (facilitator)
|
|
237
237
|
const spender = paymentRequirements.extra?.facilitatorAddress || paymentRequirements.payTo;
|
|
238
|
-
// Get token name and version for EIP-712 domain
|
|
239
|
-
const tokenName = paymentRequirements.extra?.name || (isUsdc ? 'USD Coin' : 'Unknown Token');
|
|
240
|
-
const tokenVersion = paymentRequirements.extra?.version || '2';
|
|
241
238
|
const deadline = BigInt(Math.floor(Date.now() / 1000) + (paymentRequirements.maxTimeoutSeconds || 300));
|
|
242
239
|
if (isUsdc) {
|
|
243
240
|
// EIP-3009 TransferWithAuthorization for USDC
|
|
244
241
|
console.log('[Payment Client] Signing EIP-3009 authorization (USDC)...');
|
|
242
|
+
const tokenName = paymentRequirements.extra?.name || 'USD Coin';
|
|
243
|
+
const tokenVersion = paymentRequirements.extra?.version || '2';
|
|
245
244
|
// Generate random nonce
|
|
246
245
|
const nonce = keccak256(toHex(Date.now().toString() + Math.random().toString()));
|
|
247
246
|
const domain = {
|
|
@@ -282,46 +281,30 @@ async function createSignedPayment(privateKey, chainId, tokenAddress, amount, pa
|
|
|
282
281
|
};
|
|
283
282
|
}
|
|
284
283
|
else {
|
|
285
|
-
// ERC-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
address: tokenAddress,
|
|
292
|
-
abi: [
|
|
293
|
-
{
|
|
294
|
-
inputs: [{ name: 'owner', type: 'address' }],
|
|
295
|
-
name: 'nonces',
|
|
296
|
-
outputs: [{ name: '', type: 'uint256' }],
|
|
297
|
-
stateMutability: 'view',
|
|
298
|
-
type: 'function',
|
|
299
|
-
},
|
|
300
|
-
],
|
|
301
|
-
functionName: 'nonces',
|
|
302
|
-
args: [account.address],
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
catch (e) {
|
|
306
|
-
console.warn('[Payment Client] Could not read nonce, using 0');
|
|
307
|
-
}
|
|
284
|
+
// Permit2 SignatureTransfer for non-USDC ERC-20 tokens (WETH, DAI, etc.)
|
|
285
|
+
// Requires: token.approve(PERMIT2_ADDRESS, maxUint256) done once by the user
|
|
286
|
+
console.log('[Payment Client] Signing Permit2 transfer...');
|
|
287
|
+
// Random nonce - Permit2 uses unordered bitmap nonces (no sequential front-running)
|
|
288
|
+
const nonce = BigInt(keccak256(toHex(Date.now().toString() + Math.random().toString())));
|
|
289
|
+
// Permit2 domain is always the same contract - not the token contract
|
|
308
290
|
const domain = {
|
|
309
|
-
name:
|
|
310
|
-
version: tokenVersion,
|
|
291
|
+
name: 'Permit2',
|
|
311
292
|
chainId: paymentRequirements.extra?.chainId || chainId,
|
|
312
|
-
verifyingContract:
|
|
293
|
+
verifyingContract: PERMIT2_ADDRESS,
|
|
313
294
|
};
|
|
314
295
|
const message = {
|
|
315
|
-
|
|
296
|
+
permitted: {
|
|
297
|
+
token: tokenAddress,
|
|
298
|
+
amount: BigInt(amount),
|
|
299
|
+
},
|
|
316
300
|
spender: spender,
|
|
317
|
-
value: BigInt(amount),
|
|
318
301
|
nonce,
|
|
319
302
|
deadline,
|
|
320
303
|
};
|
|
321
304
|
const signature = await walletClient.signTypedData({
|
|
322
305
|
domain,
|
|
323
|
-
types:
|
|
324
|
-
primaryType: '
|
|
306
|
+
types: PERMIT2_TRANSFER_TYPES,
|
|
307
|
+
primaryType: 'PermitTransferFrom',
|
|
325
308
|
message,
|
|
326
309
|
});
|
|
327
310
|
return {
|
|
@@ -329,10 +312,11 @@ async function createSignedPayment(privateKey, chainId, tokenAddress, amount, pa
|
|
|
329
312
|
scheme: 'exact',
|
|
330
313
|
network: NETWORK_NAMES[chainId] || 'base',
|
|
331
314
|
payload: {
|
|
332
|
-
|
|
315
|
+
permit2: {
|
|
333
316
|
owner: account.address,
|
|
334
317
|
spender,
|
|
335
|
-
|
|
318
|
+
token: tokenAddress,
|
|
319
|
+
amount,
|
|
336
320
|
nonce: nonce.toString(),
|
|
337
321
|
deadline: deadline.toString(),
|
|
338
322
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-client.js","sourceRoot":"","sources":["../../src/client/payment-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"payment-client.js","sourceRoot":"","sources":["../../src/client/payment-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { createPaymentClient } from './client/payment-client.js';
|
|
2
2
|
export { createBrowserPaymentClient } from './client/browser-client.js';
|
|
3
3
|
export { paymentMiddleware } from './middleware/payment-middleware.js';
|
|
4
|
-
export type { PaymentRequirements, PaymentPayload,
|
|
5
|
-
export { CHAIN_IDS, NETWORK_NAMES, USDC_ADDRESSES, WETH_ADDRESSES } from './types.js';
|
|
4
|
+
export type { PaymentRequirements, PaymentPayload, Permit2Payload, AuthorizationPayload, VerifyResponse, SettleResponse, X402Response, PaymentPreferences, Network, } from './types.js';
|
|
5
|
+
export { CHAIN_IDS, NETWORK_NAMES, USDC_ADDRESSES, WETH_ADDRESSES, PERMIT2_ADDRESS } from './types.js';
|
|
6
6
|
export type { MiddlewareConfig } from './middleware/payment-middleware.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAGvE,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAGvE,YAAY,EACV,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,OAAO,GACR,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEvG,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -4,5 +4,5 @@ export { createBrowserPaymentClient } from './client/browser-client.js'; // For
|
|
|
4
4
|
// Export middleware
|
|
5
5
|
export { paymentMiddleware } from './middleware/payment-middleware.js';
|
|
6
6
|
// Export constants
|
|
7
|
-
export { CHAIN_IDS, NETWORK_NAMES, USDC_ADDRESSES, WETH_ADDRESSES } from './types.js';
|
|
7
|
+
export { CHAIN_IDS, NETWORK_NAMES, USDC_ADDRESSES, WETH_ADDRESSES, PERMIT2_ADDRESS } from './types.js';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC,CAAC,6BAA6B;AAC/F,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC,CAAC,iCAAiC;AAE1G,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAevE,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC,CAAC,6BAA6B;AAC/F,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC,CAAC,iCAAiC;AAE1G,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAevE,mBAAmB;AACnB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/payment-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK1D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,IAI1C,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"payment-middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/payment-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK1D,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,IAI1C,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,6DA+J9D"}
|
|
@@ -40,6 +40,9 @@ export function paymentMiddleware(config) {
|
|
|
40
40
|
paymentRequirements.srcTokenAddress = preferredToken;
|
|
41
41
|
paymentRequirements.srcNetwork = preferredNetwork;
|
|
42
42
|
}
|
|
43
|
+
if (config.facilitatorAddress) {
|
|
44
|
+
paymentRequirements.extra.facilitatorAddress = config.facilitatorAddress;
|
|
45
|
+
}
|
|
43
46
|
return res.status(402).json({
|
|
44
47
|
x402Version: 1,
|
|
45
48
|
accepts: [paymentRequirements],
|
|
@@ -49,7 +52,7 @@ export function paymentMiddleware(config) {
|
|
|
49
52
|
// Decode payment payload (x402 standard format)
|
|
50
53
|
const paymentPayload = JSON.parse(Buffer.from(paymentHeader, 'base64').toString('utf-8'));
|
|
51
54
|
// Get payer from payload
|
|
52
|
-
const payer = paymentPayload.payload?.
|
|
55
|
+
const payer = paymentPayload.payload?.permit2?.owner ||
|
|
53
56
|
paymentPayload.payload?.authorization?.from;
|
|
54
57
|
// Build payment requirements
|
|
55
58
|
const paymentRequirements = {
|
|
@@ -63,6 +66,7 @@ export function paymentMiddleware(config) {
|
|
|
63
66
|
version: config.tokenVersion || '2',
|
|
64
67
|
chainId: chainId,
|
|
65
68
|
verifyingContract: usdcAddress,
|
|
69
|
+
facilitatorAddress: config.facilitatorAddress, // Spender for Permit2 messages
|
|
66
70
|
},
|
|
67
71
|
};
|
|
68
72
|
// Add cross-chain support
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-middleware.js","sourceRoot":"","sources":["../../src/middleware/payment-middleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"payment-middleware.js","sourceRoot":"","sources":["../../src/middleware/payment-middleware.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -22,16 +22,19 @@ export interface PaymentRequirements {
|
|
|
22
22
|
chainId?: number;
|
|
23
23
|
verifyingContract?: string;
|
|
24
24
|
facilitatorAddress?: string;
|
|
25
|
-
signatureType?: '
|
|
25
|
+
signatureType?: 'permit2' | 'authorization';
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
29
|
+
* Permit2 SignatureTransfer payload - for non-USDC ERC-20 tokens (including WETH)
|
|
30
|
+
* Uses Uniswap's canonical Permit2 contract instead of per-token ERC-2612 permit()
|
|
31
|
+
* Works with any ERC-20 that has approved the Permit2 contract
|
|
30
32
|
*/
|
|
31
|
-
export interface
|
|
33
|
+
export interface Permit2Payload {
|
|
32
34
|
owner: string;
|
|
33
35
|
spender: string;
|
|
34
|
-
|
|
36
|
+
token: string;
|
|
37
|
+
amount: string;
|
|
35
38
|
nonce: string;
|
|
36
39
|
deadline: string;
|
|
37
40
|
}
|
|
@@ -48,14 +51,14 @@ export interface AuthorizationPayload {
|
|
|
48
51
|
}
|
|
49
52
|
/**
|
|
50
53
|
* x402 Payment Payload - standard format compatible with all x402 clients
|
|
51
|
-
* Supports
|
|
54
|
+
* Supports Permit2 (non-USDC ERC-20s including WETH), EIP-3009 (USDC), and native ETH
|
|
52
55
|
*/
|
|
53
56
|
export interface PaymentPayload {
|
|
54
57
|
x402Version: number;
|
|
55
58
|
scheme: string;
|
|
56
59
|
network: string;
|
|
57
60
|
payload: {
|
|
58
|
-
|
|
61
|
+
permit2?: Permit2Payload;
|
|
59
62
|
authorization?: AuthorizationPayload;
|
|
60
63
|
nativePayment?: {
|
|
61
64
|
from: string;
|
|
@@ -92,6 +95,7 @@ export interface PaymentPreferences {
|
|
|
92
95
|
export type Network = 'base' | 'base-sepolia' | 'arbitrum' | 'optimism' | 'mainnet' | 'polygon' | 'bsc' | 'avalanche' | 'zksync' | 'linea';
|
|
93
96
|
export declare const CHAIN_IDS: Record<string, number>;
|
|
94
97
|
export declare const NETWORK_NAMES: Record<number, string>;
|
|
98
|
+
export declare const PERMIT2_ADDRESS: "0x000000000022D473030F116dDEE9F6B43aC78BA3";
|
|
95
99
|
export declare const USDC_ADDRESSES: Record<number, string>;
|
|
96
100
|
export declare const WETH_ADDRESSES: Record<number, string>;
|
|
97
101
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC;IAEnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC;IAEnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,aAAa,CAAC,EAAE,SAAS,GAAG,eAAe,CAAC;KAC7C,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QAEP,OAAO,CAAC,EAAE,cAAc,CAAC;QAEzB,aAAa,CAAC,EAAE,oBAAoB,CAAC;QAErC,aAAa,CAAC,EAAE;YACd,IAAI,EAAE,MAAM,CAAC;YACb,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;QAEF,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAGD,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE3I,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW5C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWhD,CAAC;AAIF,eAAO,MAAM,eAAe,EAAG,4CAAqD,CAAC;AAGrF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOjD,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMjD,CAAC"}
|
package/dist/types.js
CHANGED
|
@@ -23,6 +23,9 @@ export const NETWORK_NAMES = {
|
|
|
23
23
|
324: 'zksync',
|
|
24
24
|
59144: 'linea',
|
|
25
25
|
};
|
|
26
|
+
// Permit2 canonical contract - same address on all EVM chains (deployed by Uniswap)
|
|
27
|
+
// Any ERC-20 (including WETH) that has approved this address can use gasless Permit2 transfers
|
|
28
|
+
export const PERMIT2_ADDRESS = '0x000000000022D473030F116dDEE9F6B43aC78BA3';
|
|
26
29
|
// USDC addresses per chain
|
|
27
30
|
export const USDC_ADDRESSES = {
|
|
28
31
|
1: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2DAA2D;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAiH3D,MAAM,CAAC,MAAM,SAAS,GAA2B;IAC/C,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,IAAI;IACZ,cAAc,EAAE,KAAK;IACrB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,EAAE;IACT,WAAW,EAAE,KAAK;IAClB,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,KAAK;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA2B;IACnD,CAAC,EAAE,SAAS;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,cAAc;IACrB,KAAK,EAAE,UAAU;IACjB,EAAE,EAAE,UAAU;IACd,GAAG,EAAE,SAAS;IACd,EAAE,EAAE,KAAK;IACT,KAAK,EAAE,WAAW;IAClB,GAAG,EAAE,QAAQ;IACb,KAAK,EAAE,OAAO;CACf,CAAC;AAEF,oFAAoF;AACpF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,eAAe,GAAG,4CAAqD,CAAC;AAErF,2BAA2B;AAC3B,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,CAAC,EAAE,4CAA4C;IAC/C,IAAI,EAAE,4CAA4C;IAClD,KAAK,EAAE,4CAA4C;IACnD,KAAK,EAAE,4CAA4C;IACnD,EAAE,EAAE,4CAA4C;IAChD,GAAG,EAAE,4CAA4C;CAClD,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,CAAC,EAAE,4CAA4C;IAC/C,IAAI,EAAE,4CAA4C;IAClD,KAAK,EAAE,4CAA4C;IACnD,EAAE,EAAE,4CAA4C;IAChD,GAAG,EAAE,4CAA4C;CAClD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@x402-crosschain/sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "x402-compliant cross-chain payment SDK - gasless payments with Relay Network",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,7 +29,9 @@
|
|
|
29
29
|
"x402",
|
|
30
30
|
"cross-chain",
|
|
31
31
|
"payments",
|
|
32
|
+
"permit2",
|
|
32
33
|
"relay",
|
|
34
|
+
"weth",
|
|
33
35
|
"web3",
|
|
34
36
|
"ethereum",
|
|
35
37
|
"blockchain",
|