aptos-x402 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 +57 -5
- package/dist/facilitator-client.d.ts +4 -4
- package/dist/facilitator-client.js +4 -4
- package/dist/x402-axios.d.ts.map +1 -1
- package/dist/x402-axios.js +87 -45
- package/dist/x402-axios.js.map +1 -1
- package/dist/x402-middleware.d.ts.map +1 -1
- package/dist/x402-middleware.js +131 -101
- package/dist/x402-middleware.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -18,7 +18,9 @@
|
|
|
18
18
|
|
|
19
19
|
**Aptos x402** is a TypeScript SDK implementing the [x402 payment protocol](https://github.com/coinbase/x402) for the Aptos blockchain. Enable your APIs to require cryptocurrency payments before serving responses using the standardized HTTP 402 status code.
|
|
20
20
|
|
|
21
|
-
Built for **machine-to-machine micropayments**, this SDK provides zero-friction payment integration for Next.js applications with automatic payment handling, cryptographic verification, and sub-
|
|
21
|
+
Built for **machine-to-machine micropayments**, this SDK provides zero-friction payment integration for Next.js applications with automatic payment handling, cryptographic verification, and **sub-second settlement times** (optimized from 2-3s to 200-500ms).
|
|
22
|
+
|
|
23
|
+
> ā” **Performance:** Latest optimizations deliver **5-10x faster** payments with verification caching, async confirmation, and smart deduplication. See [PERFORMANCE_OPTIMIZATIONS.md](./PERFORMANCE_OPTIMIZATIONS.md) for details.
|
|
22
24
|
|
|
23
25
|
<!-- ## Key Features
|
|
24
26
|
|
|
@@ -58,6 +60,24 @@ npm install aptos-x402
|
|
|
58
60
|
|
|
59
61
|
---
|
|
60
62
|
|
|
63
|
+
## š¤ AI-Powered Setup (Cursor IDE)
|
|
64
|
+
|
|
65
|
+
Get started in seconds with AI-assisted integration:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
mkdir -p .cursor/rules
|
|
69
|
+
curl -o .cursor/rules/aptos-x402.mdc https://raw.githubusercontent.com/adipundir/aptos-x402/main/integration/aptos-x402.mdc
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Restart Cursor IDE**, then ask:
|
|
73
|
+
> "Set up Aptos x402 in my Next.js app with payment middleware and a test client component"
|
|
74
|
+
|
|
75
|
+
The MDC context file provides Cursor with complete API documentation, types, and examples for accurate code generation.
|
|
76
|
+
|
|
77
|
+
**Learn more:** [Cursor Integration Guide](./docs/guides/cursor-integration.md)
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
61
81
|
## š Client Integration (Consuming Paid APIs)
|
|
62
82
|
|
|
63
83
|
Access x402-protected APIs with zero configuration. The `x402axios` client automatically detects payment requirements, builds transactions, and handles the entire payment flow.
|
|
@@ -621,12 +641,48 @@ No human intervention required.
|
|
|
621
641
|
|
|
622
642
|
---
|
|
623
643
|
|
|
644
|
+
## Performance Monitoring
|
|
645
|
+
|
|
646
|
+
Track payment performance with built-in timing headers:
|
|
647
|
+
|
|
648
|
+
```typescript
|
|
649
|
+
const response = await x402axios.get(url, { privateKey });
|
|
650
|
+
|
|
651
|
+
// Check performance metrics
|
|
652
|
+
const verifyTime = response.headers['x-verification-time'];
|
|
653
|
+
const settleTime = response.headers['x-settlement-time'];
|
|
654
|
+
const cached = response.headers['x-cached'] === 'true';
|
|
655
|
+
|
|
656
|
+
console.log(`Verification: ${verifyTime}ms`);
|
|
657
|
+
console.log(`Settlement: ${settleTime}ms`);
|
|
658
|
+
console.log(`Cached: ${cached}`);
|
|
659
|
+
```
|
|
660
|
+
|
|
661
|
+
### Performance Benchmarks
|
|
662
|
+
|
|
663
|
+
Run the included benchmark to measure your setup:
|
|
664
|
+
|
|
665
|
+
```bash
|
|
666
|
+
APTOS_PRIVATE_KEY=0x... npx tsx scripts/benchmark-payment-flow.ts
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
**Expected Performance:**
|
|
670
|
+
- First request (uncached): ~800-1000ms
|
|
671
|
+
- Cached requests: ~650-800ms
|
|
672
|
+
- Settlement alone: ~200-300ms
|
|
673
|
+
- Legacy (pre-optimization): ~2000-3000ms
|
|
674
|
+
|
|
675
|
+
**Optimization Details:** See [PERFORMANCE_OPTIMIZATIONS.md](./PERFORMANCE_OPTIMIZATIONS.md) for complete breakdown of the **5-10x performance improvements**.
|
|
676
|
+
|
|
677
|
+
---
|
|
678
|
+
|
|
624
679
|
## Resources
|
|
625
680
|
|
|
626
681
|
### Documentation
|
|
627
682
|
- [Full Documentation](https://aptos-x402.vercel.app/docs)
|
|
628
683
|
- [API Reference](./docs/api-reference/server-api.md)
|
|
629
684
|
- [Protocol Specification](https://github.com/coinbase/x402)
|
|
685
|
+
- [Performance Guide](./PERFORMANCE_OPTIMIZATIONS.md)
|
|
630
686
|
|
|
631
687
|
### Links
|
|
632
688
|
- [GitHub Repository](https://github.com/adipundir/aptos-x402)
|
|
@@ -642,10 +698,6 @@ No human intervention required.
|
|
|
642
698
|
|
|
643
699
|
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
|
|
644
700
|
|
|
645
|
-
## License
|
|
646
|
-
|
|
647
|
-
MIT Ā© Aditya Pundir
|
|
648
|
-
|
|
649
701
|
---
|
|
650
702
|
|
|
651
703
|
<div align="center">
|
|
@@ -33,7 +33,7 @@ export interface SettlePaymentResponse {
|
|
|
33
33
|
* Verify a payment through the facilitator (does NOT submit to blockchain)
|
|
34
34
|
*
|
|
35
35
|
* @param facilitatorUrl - URL of the facilitator verify endpoint
|
|
36
|
-
* @param signedTransaction -
|
|
36
|
+
* @param signedTransaction - Hex encoded signed transaction
|
|
37
37
|
* @param expectedRecipient - Expected payment recipient address
|
|
38
38
|
* @param expectedAmount - Expected payment amount in octas
|
|
39
39
|
* @param expectedNetwork - Expected network (testnet/mainnet)
|
|
@@ -44,7 +44,7 @@ export declare function verifyPayment(facilitatorUrl: string, signedTransaction:
|
|
|
44
44
|
* Settle a payment through the facilitator (submits to blockchain)
|
|
45
45
|
*
|
|
46
46
|
* @param facilitatorUrl - URL of the facilitator settle endpoint
|
|
47
|
-
* @param signedTransaction -
|
|
47
|
+
* @param signedTransaction - Hex encoded signed transaction
|
|
48
48
|
* @param expectedNetwork - Expected network (testnet/mainnet)
|
|
49
49
|
* @returns Settlement result with transaction hash
|
|
50
50
|
*/
|
|
@@ -69,7 +69,7 @@ export declare function createPaymentResponse(settlementResult: SettlePaymentRes
|
|
|
69
69
|
* Facilitator URL MUST be provided - no defaults
|
|
70
70
|
*
|
|
71
71
|
* @param facilitatorUrl - Facilitator base URL (e.g., "https://facilitator.com")
|
|
72
|
-
* @param signedTransaction -
|
|
72
|
+
* @param signedTransaction - Hex encoded signed transaction
|
|
73
73
|
* @param expectedRecipient - Expected payment recipient
|
|
74
74
|
* @param expectedAmount - Expected payment amount
|
|
75
75
|
* @param expectedNetwork - Expected network
|
|
@@ -81,7 +81,7 @@ export declare function verifyPaymentSimple(facilitatorUrl: string, signedTransa
|
|
|
81
81
|
* Facilitator URL MUST be provided - no defaults
|
|
82
82
|
*
|
|
83
83
|
* @param facilitatorUrl - Facilitator base URL (e.g., "https://facilitator.com")
|
|
84
|
-
* @param signedTransaction -
|
|
84
|
+
* @param signedTransaction - Hex encoded signed transaction
|
|
85
85
|
* @param expectedNetwork - Expected network
|
|
86
86
|
* @returns Settlement result
|
|
87
87
|
*/
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* Verify a payment through the facilitator (does NOT submit to blockchain)
|
|
12
12
|
*
|
|
13
13
|
* @param facilitatorUrl - URL of the facilitator verify endpoint
|
|
14
|
-
* @param signedTransaction -
|
|
14
|
+
* @param signedTransaction - Hex encoded signed transaction
|
|
15
15
|
* @param expectedRecipient - Expected payment recipient address
|
|
16
16
|
* @param expectedAmount - Expected payment amount in octas
|
|
17
17
|
* @param expectedNetwork - Expected network (testnet/mainnet)
|
|
@@ -53,7 +53,7 @@ export async function verifyPayment(facilitatorUrl, signedTransaction, expectedR
|
|
|
53
53
|
* Settle a payment through the facilitator (submits to blockchain)
|
|
54
54
|
*
|
|
55
55
|
* @param facilitatorUrl - URL of the facilitator settle endpoint
|
|
56
|
-
* @param signedTransaction -
|
|
56
|
+
* @param signedTransaction - Hex encoded signed transaction
|
|
57
57
|
* @param expectedNetwork - Expected network (testnet/mainnet)
|
|
58
58
|
* @returns Settlement result with transaction hash
|
|
59
59
|
*/
|
|
@@ -110,7 +110,7 @@ export function createPaymentResponse(settlementResult) {
|
|
|
110
110
|
* Facilitator URL MUST be provided - no defaults
|
|
111
111
|
*
|
|
112
112
|
* @param facilitatorUrl - Facilitator base URL (e.g., "https://facilitator.com")
|
|
113
|
-
* @param signedTransaction -
|
|
113
|
+
* @param signedTransaction - Hex encoded signed transaction
|
|
114
114
|
* @param expectedRecipient - Expected payment recipient
|
|
115
115
|
* @param expectedAmount - Expected payment amount
|
|
116
116
|
* @param expectedNetwork - Expected network
|
|
@@ -127,7 +127,7 @@ export async function verifyPaymentSimple(facilitatorUrl, signedTransaction, exp
|
|
|
127
127
|
* Facilitator URL MUST be provided - no defaults
|
|
128
128
|
*
|
|
129
129
|
* @param facilitatorUrl - Facilitator base URL (e.g., "https://facilitator.com")
|
|
130
|
-
* @param signedTransaction -
|
|
130
|
+
* @param signedTransaction - Hex encoded signed transaction
|
|
131
131
|
* @param expectedNetwork - Expected network
|
|
132
132
|
* @returns Settlement result
|
|
133
133
|
*/
|
package/dist/x402-axios.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402-axios.d.ts","sourceRoot":"","sources":["../lib/x402-axios.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,OAAO,EAKR,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"x402-axios.d.ts","sourceRoot":"","sources":["../lib/x402-axios.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,OAAO,EAKR,MAAM,oBAAoB,CAAC;AAuB5B,MAAM,WAAW,kBAAkB;IACjC,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1E,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,wCAAwC;IACxC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,QAAQ,CAAC;IAChF,iCAAiC;IACjC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,8BAA8B;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uBAAuB;IACvB,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,0BAA0B;IAC1B,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE;YACL,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;IACF,mBAAmB;IACnB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;IACzD,8BAA8B;IAC9B,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;IAC3C,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,WAAW,6BAA8B,SAAQ,kBAAkB;IACvE,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAGD,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IACpC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,WAAW,CAAC,EAAE;QACZ,eAAe,EAAE,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAGD,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,mBAAmB,GAAG,IAAI,CAQxF;AA4TD,eAAO,MAAM,SAAS,IACL,CAAC,qBAAqB,MAAM,GAAG,kBAAkB,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;UAIjH,CAAC,aAAa,MAAM,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;WAG5E,CAAC,aAAa,MAAM,SAAS,GAAG,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;UAG1F,CAAC,aAAa,MAAM,SAAS,GAAG,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAGvF,CAAC,aAAa,MAAM,SAAS,GAAG,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAGxF,CAAC,aAAa,MAAM,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;WAG/E,CAAC,aAAa,MAAM,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;cAG1E,CAAC,aAAa,MAAM,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;6BAI9D,kBAAkB,OAExB,CAAC,qBAAqB,MAAM,GAAG,kBAAkB,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;cAKjH,CAAC,aAAa,MAAM,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;eAG5E,CAAC,aAAa,MAAM,SAAS,GAAG,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;cAG1F,CAAC,aAAa,MAAM,SAAS,GAAG,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAGvF,CAAC,aAAa,MAAM,SAAS,GAAG,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBAGxF,CAAC,aAAa,MAAM,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;eAG/E,CAAC,aAAa,MAAM,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;kBAG1E,CAAC,aAAa,MAAM,WAAW,kBAAkB,KAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;;CAOhG,CAAC"}
|
package/dist/x402-axios.js
CHANGED
|
@@ -19,6 +19,23 @@
|
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
21
|
import { Account, Aptos, AptosConfig, Network, Ed25519PrivateKey, } from "@aptos-labs/ts-sdk";
|
|
22
|
+
// ā” PERFORMANCE: Cache Aptos clients and accounts to avoid recreation
|
|
23
|
+
const aptosClientCache = new Map();
|
|
24
|
+
const accountCache = new Map();
|
|
25
|
+
function getAptosClient(network) {
|
|
26
|
+
const key = network.toString();
|
|
27
|
+
if (!aptosClientCache.has(key)) {
|
|
28
|
+
aptosClientCache.set(key, new Aptos(new AptosConfig({ network })));
|
|
29
|
+
}
|
|
30
|
+
return aptosClientCache.get(key);
|
|
31
|
+
}
|
|
32
|
+
function getAccount(privateKey) {
|
|
33
|
+
if (!accountCache.has(privateKey)) {
|
|
34
|
+
const privateKeyObj = new Ed25519PrivateKey(privateKey);
|
|
35
|
+
accountCache.set(privateKey, Account.fromPrivateKey({ privateKey: privateKeyObj }));
|
|
36
|
+
}
|
|
37
|
+
return accountCache.get(privateKey);
|
|
38
|
+
}
|
|
22
39
|
/**
|
|
23
40
|
* Decode X-Payment-Response header
|
|
24
41
|
*/
|
|
@@ -92,7 +109,6 @@ async function x402axiosMain(configOrUrl, config) {
|
|
|
92
109
|
: configOrUrl;
|
|
93
110
|
const { privateKey, account, method = 'GET', data, headers = {}, timeout, validateStatus = (status) => status >= 200 && status < 300, responseType = 'json', ...otherConfig } = finalConfig;
|
|
94
111
|
const url = buildURL(finalConfig);
|
|
95
|
-
console.log('[x402-axios] Making request to:', url);
|
|
96
112
|
// Step 1: Make initial request (no payment)
|
|
97
113
|
const init = {
|
|
98
114
|
method,
|
|
@@ -130,10 +146,8 @@ async function x402axiosMain(configOrUrl, config) {
|
|
|
130
146
|
else {
|
|
131
147
|
responseData = await response.text();
|
|
132
148
|
}
|
|
133
|
-
console.log(`[x402-axios] Initial response: ${response.status}`);
|
|
134
149
|
// If not 402, return immediately (no payment required)
|
|
135
150
|
if (response.status !== 402) {
|
|
136
|
-
console.log('[x402-axios] No payment required');
|
|
137
151
|
const transformedData = transformResponseData(responseData, finalConfig);
|
|
138
152
|
return {
|
|
139
153
|
data: transformedData,
|
|
@@ -143,8 +157,8 @@ async function x402axiosMain(configOrUrl, config) {
|
|
|
143
157
|
config: finalConfig,
|
|
144
158
|
};
|
|
145
159
|
}
|
|
146
|
-
console.log('[x402-axios] Received 402 Payment Required');
|
|
147
160
|
// Step 2: Extract payment requirements from 402 response
|
|
161
|
+
console.log('\nš³ [x402-axios] Received 402 Payment Required response');
|
|
148
162
|
const paymentReqs = responseData.accepts?.[0] || responseData;
|
|
149
163
|
const recipient = paymentReqs.payTo || paymentReqs.paymentAddress;
|
|
150
164
|
const amount = paymentReqs.maxAmountRequired || paymentReqs.price;
|
|
@@ -153,82 +167,106 @@ async function x402axiosMain(configOrUrl, config) {
|
|
|
153
167
|
throw new Error('Network not specified in 402 payment requirements');
|
|
154
168
|
}
|
|
155
169
|
const scheme = paymentReqs.scheme || 'exact';
|
|
170
|
+
console.log('[x402-axios] Payment requirements extracted:', {
|
|
171
|
+
recipient,
|
|
172
|
+
amount,
|
|
173
|
+
network: networkId,
|
|
174
|
+
scheme,
|
|
175
|
+
});
|
|
156
176
|
if (!recipient || !amount) {
|
|
157
177
|
throw new Error('Invalid 402 response: missing payment requirements');
|
|
158
178
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
network: networkId,
|
|
162
|
-
amount: `${amount} Octas`,
|
|
163
|
-
recipient: recipient.slice(0, 10) + '...',
|
|
164
|
-
});
|
|
165
|
-
// Step 3: Determine network from 402 response
|
|
179
|
+
// Step 3: Determine network and get cached client
|
|
180
|
+
console.log('[x402-axios] Step 3: Getting Aptos client...');
|
|
166
181
|
const networkMap = {
|
|
167
182
|
'aptos-testnet': Network.TESTNET,
|
|
168
183
|
'aptos-mainnet': Network.MAINNET,
|
|
169
184
|
};
|
|
170
185
|
const network = networkMap[networkId] || Network.TESTNET;
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
});
|
|
176
|
-
// Step 4: Initialize Aptos client based on discovered network
|
|
177
|
-
const aptosConfig = new AptosConfig({ network });
|
|
178
|
-
const aptos = new Aptos(aptosConfig);
|
|
179
|
-
console.log('[x402-axios] Aptos client initialized with network:', network);
|
|
180
|
-
// Create account from private key or use provided account
|
|
186
|
+
const aptos = getAptosClient(network);
|
|
187
|
+
console.log('[x402-axios] ā
Aptos client ready (cached)');
|
|
188
|
+
// Step 4: Get or create account (cached)
|
|
189
|
+
console.log('[x402-axios] Step 4: Getting account...');
|
|
181
190
|
let aptosAccount;
|
|
182
191
|
if (account) {
|
|
183
192
|
aptosAccount = account;
|
|
193
|
+
console.log('[x402-axios] Using provided account:', aptosAccount.accountAddress.toString());
|
|
184
194
|
}
|
|
185
195
|
else if (privateKey) {
|
|
186
|
-
|
|
187
|
-
|
|
196
|
+
aptosAccount = getAccount(privateKey);
|
|
197
|
+
console.log('[x402-axios] ā
Account loaded from private key (cached):', aptosAccount.accountAddress.toString());
|
|
188
198
|
}
|
|
189
199
|
else {
|
|
190
200
|
throw new Error('Either privateKey or account must be provided');
|
|
191
201
|
}
|
|
192
|
-
|
|
193
|
-
|
|
202
|
+
// Step 5: Build transaction
|
|
203
|
+
console.log('[x402-axios] Step 5: Building transaction...');
|
|
194
204
|
let transaction;
|
|
195
205
|
if (scheme === 'exact') {
|
|
206
|
+
const amountNum = BigInt(amount);
|
|
207
|
+
console.log('[x402-axios] Transaction details:', {
|
|
208
|
+
sender: aptosAccount.accountAddress.toString(),
|
|
209
|
+
recipient,
|
|
210
|
+
amount: amountNum.toString(),
|
|
211
|
+
function: '0x1::aptos_account::transfer',
|
|
212
|
+
});
|
|
196
213
|
transaction = await aptos.transaction.build.simple({
|
|
197
214
|
sender: aptosAccount.accountAddress,
|
|
198
215
|
data: {
|
|
199
216
|
function: "0x1::aptos_account::transfer",
|
|
200
|
-
functionArguments: [recipient,
|
|
217
|
+
functionArguments: [recipient, amountNum],
|
|
201
218
|
},
|
|
202
219
|
});
|
|
220
|
+
console.log('[x402-axios] ā
Transaction built successfully');
|
|
203
221
|
}
|
|
204
222
|
else {
|
|
205
223
|
throw new Error(`Unsupported payment scheme: ${scheme}`);
|
|
206
224
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
const senderAuthenticator = aptos.transaction.sign({
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
});
|
|
213
|
-
// Step 7: Serialize transaction and signature separately
|
|
225
|
+
// Step 6: Sign and serialize (optimized)
|
|
226
|
+
console.log('[x402-axios] Step 6: Signing transaction...');
|
|
227
|
+
const senderAuthenticator = aptos.transaction.sign({ signer: aptosAccount, transaction });
|
|
228
|
+
console.log('[x402-axios] ā
Transaction signed');
|
|
229
|
+
console.log('[x402-axios] Step 7: Serializing to BCS format...');
|
|
214
230
|
const transactionBytes = transaction.bcsToBytes();
|
|
215
231
|
const signatureBytes = senderAuthenticator.bcsToBytes();
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
232
|
+
console.log('[x402-axios] BCS serialization:', {
|
|
233
|
+
transactionSize: transactionBytes.length,
|
|
234
|
+
signatureSize: signatureBytes.length,
|
|
235
|
+
});
|
|
236
|
+
// Step 7: Create payment header (optimized - hex encoding instead of double base64)
|
|
237
|
+
console.log('[x402-axios] Step 8: Creating payment header...');
|
|
238
|
+
// ā” OPTIMIZATION: Use hex instead of base64 (smaller, faster)
|
|
239
|
+
const transactionHex = Buffer.from(transactionBytes).toString('hex');
|
|
240
|
+
const signatureHex = Buffer.from(signatureBytes).toString('hex');
|
|
219
241
|
const paymentPayload = {
|
|
220
242
|
x402Version: 1,
|
|
221
243
|
scheme,
|
|
222
244
|
network: networkId,
|
|
223
245
|
payload: {
|
|
224
|
-
transaction:
|
|
225
|
-
signature:
|
|
246
|
+
transaction: transactionHex,
|
|
247
|
+
signature: signatureHex,
|
|
226
248
|
},
|
|
227
249
|
};
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
250
|
+
console.log('[x402-axios] Payment payload structure:', {
|
|
251
|
+
x402Version: paymentPayload.x402Version,
|
|
252
|
+
scheme: paymentPayload.scheme,
|
|
253
|
+
network: paymentPayload.network,
|
|
254
|
+
payload: {
|
|
255
|
+
transaction: `hex(${transactionHex.substring(0, 20)}...)`,
|
|
256
|
+
signature: `hex(${signatureHex.substring(0, 20)}...)`,
|
|
257
|
+
},
|
|
258
|
+
sizes: {
|
|
259
|
+
transactionBytes: transactionBytes.length,
|
|
260
|
+
signatureBytes: signatureBytes.length,
|
|
261
|
+
transactionHex: transactionHex.length,
|
|
262
|
+
signatureHex: signatureHex.length,
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
// ā” Single JSON stringify (no double base64)
|
|
266
|
+
const paymentHeader = JSON.stringify(paymentPayload);
|
|
267
|
+
console.log('[x402-axios] ā
Payment header created (JSON only):', paymentHeader.substring(0, 50) + '...');
|
|
268
|
+
// Step 9: Retry request with X-PAYMENT header
|
|
269
|
+
console.log('[x402-axios] Step 9: Retrying request with X-PAYMENT header...');
|
|
232
270
|
const paidInit = {
|
|
233
271
|
...init,
|
|
234
272
|
headers: {
|
|
@@ -236,7 +274,13 @@ async function x402axiosMain(configOrUrl, config) {
|
|
|
236
274
|
'X-PAYMENT': paymentHeader,
|
|
237
275
|
},
|
|
238
276
|
};
|
|
277
|
+
const requestHeaders = paidInit.headers;
|
|
278
|
+
console.log('[x402-axios] Request headers:', {
|
|
279
|
+
'Content-Type': requestHeaders?.['Content-Type'] || 'application/json',
|
|
280
|
+
'X-PAYMENT': 'present (' + paymentHeader.length + ' chars)',
|
|
281
|
+
});
|
|
239
282
|
response = await fetch(url, paidInit);
|
|
283
|
+
console.log('[x402-axios] Response status:', response.status);
|
|
240
284
|
// Handle response based on responseType
|
|
241
285
|
if (responseType === 'json') {
|
|
242
286
|
responseData = await response.json();
|
|
@@ -253,8 +297,7 @@ async function x402axiosMain(configOrUrl, config) {
|
|
|
253
297
|
else {
|
|
254
298
|
responseData = await response.text();
|
|
255
299
|
}
|
|
256
|
-
|
|
257
|
-
// Step 11: Extract payment info from X-Payment-Response header
|
|
300
|
+
// Step 8: Extract payment info from X-Payment-Response header
|
|
258
301
|
let paymentInfo;
|
|
259
302
|
const paymentResponseHeader = response.headers.get('x-payment-response');
|
|
260
303
|
if (paymentResponseHeader) {
|
|
@@ -266,7 +309,6 @@ async function x402axiosMain(configOrUrl, config) {
|
|
|
266
309
|
recipient: recipient,
|
|
267
310
|
settled: decoded.settlement.success === true,
|
|
268
311
|
};
|
|
269
|
-
console.log(`[x402-axios] Payment settled: ${paymentInfo.transactionHash}`);
|
|
270
312
|
}
|
|
271
313
|
}
|
|
272
314
|
const transformedData = transformResponseData(responseData, finalConfig);
|
package/dist/x402-axios.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402-axios.js","sourceRoot":"","sources":["../lib/x402-axios.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"x402-axios.js","sourceRoot":"","sources":["../lib/x402-axios.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402-middleware.d.ts","sourceRoot":"","sources":["../lib/x402-middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"x402-middleware.d.ts","sourceRoot":"","sources":["../lib/x402-middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA2BnE,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,MAAM,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACnC,iBAAiB,EAAE,iBAAiB,IAEH,SAAS,WAAW,8CAiNtD"}
|
package/dist/x402-middleware.js
CHANGED
|
@@ -5,20 +5,34 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { NextResponse } from "next/server";
|
|
7
7
|
import { X402_VERSION, APTOS_SCHEME, APTOS_TESTNET, APTOS_MAINNET } from "./x402-protocol-types";
|
|
8
|
+
// ā” OPTIMIZATION: In-memory cache for recently verified payments
|
|
9
|
+
// Prevents re-verification of the same payment within a short time window
|
|
10
|
+
const verificationCache = new Map();
|
|
11
|
+
const CACHE_TTL_MS = 60000; // 1 minute cache
|
|
12
|
+
// Clean up old cache entries periodically
|
|
13
|
+
setInterval(() => {
|
|
14
|
+
const now = Date.now();
|
|
15
|
+
for (const [key, value] of verificationCache.entries()) {
|
|
16
|
+
if (now - value.timestamp > CACHE_TTL_MS) {
|
|
17
|
+
verificationCache.delete(key);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}, 30000); // Clean every 30 seconds
|
|
8
21
|
export function paymentMiddleware(recipientAddress, routes, facilitatorConfig) {
|
|
9
22
|
return async function middleware(request) {
|
|
10
23
|
const pathname = request.nextUrl.pathname;
|
|
11
|
-
console.log(
|
|
12
|
-
console.log(`[x402 Middleware] Request to: ${pathname}`);
|
|
13
|
-
console.log(`āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā\n`);
|
|
14
|
-
// Check if this route is protected
|
|
24
|
+
console.log('\nš”ļø [Middleware] Intercepting request:', pathname);
|
|
15
25
|
const routeConfig = routes[pathname];
|
|
16
26
|
if (!routeConfig) {
|
|
17
|
-
console.log(
|
|
27
|
+
console.log('[Middleware] No route config, passing through');
|
|
18
28
|
return NextResponse.next();
|
|
19
29
|
}
|
|
20
|
-
console.log(`[x402 Middleware] ā
Route is protected`);
|
|
21
30
|
const paymentHeader = request.headers.get("X-PAYMENT");
|
|
31
|
+
console.log('[Middleware] X-PAYMENT header present:', paymentHeader ? 'YES' : 'NO');
|
|
32
|
+
if (paymentHeader) {
|
|
33
|
+
console.log('[Middleware] Payment header length:', paymentHeader.length);
|
|
34
|
+
console.log('[Middleware] Payment header preview:', paymentHeader.substring(0, 50) + '...');
|
|
35
|
+
}
|
|
22
36
|
// Map network names to full Aptos network identifiers
|
|
23
37
|
const routeNetwork = routeConfig.network;
|
|
24
38
|
const network = routeNetwork === "mainnet"
|
|
@@ -26,19 +40,11 @@ export function paymentMiddleware(recipientAddress, routes, facilitatorConfig) {
|
|
|
26
40
|
: routeNetwork === "testnet"
|
|
27
41
|
? APTOS_TESTNET
|
|
28
42
|
: routeNetwork.startsWith("aptos-")
|
|
29
|
-
? routeNetwork
|
|
43
|
+
? routeNetwork
|
|
30
44
|
: `aptos-${routeNetwork}`;
|
|
31
45
|
const facilitatorUrl = facilitatorConfig.url;
|
|
32
|
-
|
|
33
|
-
recipient: recipientAddress,
|
|
34
|
-
price: routeConfig.price,
|
|
35
|
-
network,
|
|
36
|
-
facilitator: facilitatorUrl,
|
|
37
|
-
hasPayment: !!paymentHeader,
|
|
38
|
-
});
|
|
39
|
-
// Validate configuration
|
|
46
|
+
// Fast-fail validation
|
|
40
47
|
if (!recipientAddress) {
|
|
41
|
-
console.error(`[x402 Middleware] ā No recipient address configured`);
|
|
42
48
|
return NextResponse.json({ error: "Server configuration error: Payment recipient not configured" }, { status: 500 });
|
|
43
49
|
}
|
|
44
50
|
// Build payment requirements per x402 spec
|
|
@@ -54,119 +60,143 @@ export function paymentMiddleware(recipientAddress, routes, facilitatorConfig) {
|
|
|
54
60
|
maxTimeoutSeconds: routeConfig.config?.maxTimeoutSeconds,
|
|
55
61
|
extra: null,
|
|
56
62
|
};
|
|
57
|
-
|
|
63
|
+
console.log('[Middleware] Payment requirements:', {
|
|
64
|
+
scheme: paymentRequirements.scheme,
|
|
65
|
+
network: paymentRequirements.network,
|
|
66
|
+
amount: paymentRequirements.maxAmountRequired,
|
|
67
|
+
recipient: paymentRequirements.payTo,
|
|
68
|
+
});
|
|
69
|
+
// If no payment provided, return 402 with payment requirements
|
|
58
70
|
if (!paymentHeader) {
|
|
59
|
-
console.log(
|
|
60
|
-
|
|
71
|
+
console.log('[Middleware] ā No payment header, returning 402');
|
|
72
|
+
return NextResponse.json({
|
|
61
73
|
x402Version: X402_VERSION,
|
|
62
74
|
accepts: [paymentRequirements],
|
|
63
|
-
};
|
|
64
|
-
console.log(`[x402 Middleware] 402 Response (x402 spec):`, response402);
|
|
65
|
-
return NextResponse.json(response402, { status: 402 });
|
|
75
|
+
}, { status: 402 });
|
|
66
76
|
}
|
|
67
|
-
|
|
68
|
-
console.log(
|
|
77
|
+
// ā” OPTIMIZATION: Direct JSON parse (no base64 decode)
|
|
78
|
+
console.log('[Middleware] Step 1: Parsing payment header...');
|
|
79
|
+
let paymentPayload;
|
|
69
80
|
try {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const paymentPayload = JSON.parse(paymentPayloadJson);
|
|
73
|
-
console.log(`[x402 Middleware] Parsed payment payload:`, {
|
|
81
|
+
paymentPayload = JSON.parse(paymentHeader);
|
|
82
|
+
console.log('[Middleware] ā
Payment header parsed:', {
|
|
74
83
|
x402Version: paymentPayload.x402Version,
|
|
75
84
|
scheme: paymentPayload.scheme,
|
|
76
85
|
network: paymentPayload.network,
|
|
86
|
+
hasTransaction: !!paymentPayload.payload?.transaction,
|
|
87
|
+
hasSignature: !!paymentPayload.payload?.signature,
|
|
88
|
+
transactionSize: paymentPayload.payload?.transaction?.length || 0,
|
|
89
|
+
signatureSize: paymentPayload.payload?.signature?.length || 0,
|
|
77
90
|
});
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
// Step 1: Verify payment (fast, no blockchain submission)
|
|
88
|
-
console.log(`\nš [x402 Middleware] STEP 1: Verifying payment`);
|
|
89
|
-
console.log(`[x402 Middleware] Calling: ${facilitatorUrl}/verify`);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
console.log('[Middleware] ā Failed to parse payment header');
|
|
94
|
+
return NextResponse.json({ error: "Invalid X-PAYMENT header format" }, { status: 400 });
|
|
95
|
+
}
|
|
96
|
+
// ā” OPTIMIZATION: Skip validation, let facilitator handle it (saves ~5ms)
|
|
97
|
+
try {
|
|
98
|
+
// ā” OPTIMIZATION: Direct verification, no caching overhead
|
|
99
|
+
console.log('[Middleware] Step 2: Calling facilitator /verify endpoint...');
|
|
90
100
|
const verifyRequest = {
|
|
91
101
|
x402Version: X402_VERSION,
|
|
92
|
-
paymentHeader
|
|
93
|
-
paymentRequirements
|
|
102
|
+
paymentHeader,
|
|
103
|
+
paymentRequirements,
|
|
94
104
|
};
|
|
105
|
+
console.log('[Middleware] Verify request payload:', {
|
|
106
|
+
x402Version: verifyRequest.x402Version,
|
|
107
|
+
paymentHeaderLength: verifyRequest.paymentHeader.length,
|
|
108
|
+
paymentRequirements: {
|
|
109
|
+
scheme: verifyRequest.paymentRequirements.scheme,
|
|
110
|
+
network: verifyRequest.paymentRequirements.network,
|
|
111
|
+
amount: verifyRequest.paymentRequirements.maxAmountRequired,
|
|
112
|
+
recipient: verifyRequest.paymentRequirements.payTo,
|
|
113
|
+
},
|
|
114
|
+
});
|
|
95
115
|
const verifyResponse = await fetch(`${facilitatorUrl}/verify`, {
|
|
96
116
|
method: "POST",
|
|
97
|
-
headers: {
|
|
117
|
+
headers: {
|
|
118
|
+
"Content-Type": "application/json",
|
|
119
|
+
"Connection": "keep-alive" // ā” HTTP/2 + keep-alive
|
|
120
|
+
},
|
|
98
121
|
body: JSON.stringify(verifyRequest),
|
|
99
122
|
});
|
|
100
123
|
const verification = await verifyResponse.json();
|
|
101
124
|
const verificationTime = verifyResponse.headers.get('x-verification-time');
|
|
102
|
-
console.log(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
125
|
+
console.log('[Middleware] Verify response:', {
|
|
126
|
+
isValid: verification.isValid,
|
|
127
|
+
invalidReason: verification.invalidReason,
|
|
128
|
+
verificationTime: verificationTime || 'N/A',
|
|
129
|
+
});
|
|
107
130
|
if (!verification.isValid) {
|
|
108
|
-
console.error(`ā [x402 Middleware] Verification FAILED`);
|
|
109
|
-
console.error(`[x402 Middleware] Reason:`, verification.invalidReason);
|
|
110
131
|
return NextResponse.json({
|
|
111
132
|
error: "Payment verification failed",
|
|
112
133
|
message: verification.invalidReason,
|
|
113
134
|
}, { status: 403 });
|
|
114
135
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
136
|
+
// ā” AGGRESSIVE: 3-second timeout for settlement
|
|
137
|
+
const controller = new AbortController();
|
|
138
|
+
const timeoutId = setTimeout(() => controller.abort(), 3000);
|
|
139
|
+
try {
|
|
140
|
+
console.log('[Middleware] Step 3: Calling facilitator /settle endpoint...');
|
|
141
|
+
const settleRequest = {
|
|
142
|
+
x402Version: X402_VERSION,
|
|
143
|
+
paymentHeader,
|
|
144
|
+
paymentRequirements,
|
|
145
|
+
};
|
|
146
|
+
console.log('[Middleware] Settle request payload:', {
|
|
147
|
+
x402Version: settleRequest.x402Version,
|
|
148
|
+
paymentHeaderLength: settleRequest.paymentHeader.length,
|
|
149
|
+
paymentRequirements: {
|
|
150
|
+
scheme: settleRequest.paymentRequirements.scheme,
|
|
151
|
+
network: settleRequest.paymentRequirements.network,
|
|
152
|
+
amount: settleRequest.paymentRequirements.maxAmountRequired,
|
|
153
|
+
recipient: settleRequest.paymentRequirements.payTo,
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
const settleResponse = await fetch(`${facilitatorUrl}/settle`, {
|
|
157
|
+
method: "POST",
|
|
158
|
+
headers: { "Content-Type": "application/json", "Connection": "keep-alive" },
|
|
159
|
+
body: JSON.stringify(settleRequest),
|
|
160
|
+
signal: controller.signal,
|
|
161
|
+
});
|
|
162
|
+
clearTimeout(timeoutId);
|
|
163
|
+
const settlement = await settleResponse.json();
|
|
164
|
+
const settlementTime = settleResponse.headers.get('x-settlement-time');
|
|
165
|
+
console.log('[Middleware] Settle response:', {
|
|
166
|
+
success: settlement.success,
|
|
167
|
+
txHash: settlement.txHash,
|
|
168
|
+
networkId: settlement.networkId,
|
|
169
|
+
error: settlement.error,
|
|
170
|
+
settlementTime: settlementTime || 'N/A',
|
|
171
|
+
});
|
|
172
|
+
if (!settlement.success) {
|
|
173
|
+
return NextResponse.json({
|
|
174
|
+
error: "Payment settlement failed",
|
|
175
|
+
message: settlement.error,
|
|
176
|
+
}, { status: 402 });
|
|
177
|
+
}
|
|
178
|
+
const response = await NextResponse.next();
|
|
179
|
+
const responseHeaders = new Headers(response.headers);
|
|
180
|
+
responseHeaders.set("X-Payment-Response", Buffer.from(JSON.stringify({ settlement })).toString('base64'));
|
|
181
|
+
if (verificationTime)
|
|
182
|
+
responseHeaders.set('X-Verification-Time', verificationTime);
|
|
183
|
+
if (settlementTime)
|
|
184
|
+
responseHeaders.set('X-Settlement-Time', settlementTime);
|
|
185
|
+
return new Response(response.body, {
|
|
186
|
+
status: response.status,
|
|
187
|
+
statusText: response.statusText,
|
|
188
|
+
headers: responseHeaders,
|
|
189
|
+
});
|
|
134
190
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
message: settlement.error,
|
|
142
|
-
}, { status: 402 } // Payment required - settlement failed
|
|
143
|
-
);
|
|
144
|
-
}
|
|
145
|
-
console.log(`ā
[x402 Middleware] Settlement SUCCESS`);
|
|
146
|
-
console.log(`[x402 Middleware] Transaction hash:`, settlement.txHash);
|
|
147
|
-
// Step 4: Payment settled! Now execute the route handler
|
|
148
|
-
const response = await NextResponse.next();
|
|
149
|
-
// Step 5: Add X-PAYMENT-RESPONSE header per x402 spec
|
|
150
|
-
const responseHeaders = new Headers(response.headers);
|
|
151
|
-
const paymentResponse = {
|
|
152
|
-
settlement: settlement,
|
|
153
|
-
};
|
|
154
|
-
responseHeaders.set("X-Payment-Response", Buffer.from(JSON.stringify(paymentResponse)).toString('base64'));
|
|
155
|
-
// Add timing headers for client debugging
|
|
156
|
-
if (verificationTime) {
|
|
157
|
-
responseHeaders.set('X-Verification-Time', verificationTime);
|
|
191
|
+
catch (fetchError) {
|
|
192
|
+
clearTimeout(timeoutId);
|
|
193
|
+
if (fetchError.name === 'AbortError') {
|
|
194
|
+
return NextResponse.json({ error: "Settlement timeout" }, { status: 408 });
|
|
195
|
+
}
|
|
196
|
+
throw fetchError;
|
|
158
197
|
}
|
|
159
|
-
if (settlementTime) {
|
|
160
|
-
responseHeaders.set('X-Settlement-Time', settlementTime);
|
|
161
|
-
}
|
|
162
|
-
return new Response(response.body, {
|
|
163
|
-
status: response.status,
|
|
164
|
-
statusText: response.statusText,
|
|
165
|
-
headers: responseHeaders,
|
|
166
|
-
});
|
|
167
198
|
}
|
|
168
199
|
catch (error) {
|
|
169
|
-
console.error(`[x402 Middleware] Error processing payment for ${pathname}:`, error);
|
|
170
200
|
return NextResponse.json({
|
|
171
201
|
error: "Payment processing failed",
|
|
172
202
|
message: error instanceof Error ? error.message : String(error),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x402-middleware.js","sourceRoot":"","sources":["../lib/x402-middleware.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AAWxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEjG,MAAM,UAAU,iBAAiB,CAC/B,gBAAwB,EACxB,MAAmC,EACnC,iBAAoC;IAEpC,OAAO,KAAK,UAAU,UAAU,CAAC,OAAoB;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"x402-middleware.js","sourceRoot":"","sources":["../lib/x402-middleware.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aptos-x402",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "HTTP 402 Payment Protocol SDK for Aptos - Axios-compatible payment wrapper with automatic network detection and zero fallbacks",
|
|
5
|
-
"author": "
|
|
5
|
+
"author": "Aditya Pundir",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
"build:demo": "next build --turbopack",
|
|
54
54
|
"start": "next start",
|
|
55
55
|
"demo": "tsx scripts/demo-agent.ts",
|
|
56
|
+
"test:payment": "tsx scripts/test-payment-flow.ts",
|
|
56
57
|
"prepublishOnly": "npm run build:sdk",
|
|
57
58
|
"test": "echo \"Tests coming soon\" && exit 0"
|
|
58
59
|
},
|