thirdweb 5.107.1 → 5.108.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/cjs/exports/x402.js +8 -1
- package/dist/cjs/exports/x402.js.map +1 -1
- package/dist/cjs/react/core/utils/defaultTokens.js +2 -8
- package/dist/cjs/react/core/utils/defaultTokens.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js +18 -14
- package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -1
- package/dist/cjs/react/web/ui/Bridge/BuyWidget.js +15 -6
- package/dist/cjs/react/web/ui/Bridge/BuyWidget.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/x402/common.js +173 -0
- package/dist/cjs/x402/common.js.map +1 -0
- package/dist/cjs/x402/encode.js +71 -0
- package/dist/cjs/x402/encode.js.map +1 -0
- package/dist/cjs/x402/facilitator.js +83 -2
- package/dist/cjs/x402/facilitator.js.map +1 -1
- package/dist/cjs/x402/fetchWithPayment.js +7 -15
- package/dist/cjs/x402/fetchWithPayment.js.map +1 -1
- package/dist/cjs/x402/schemas.js +50 -0
- package/dist/cjs/x402/schemas.js.map +1 -0
- package/dist/cjs/x402/settle-payment.js +174 -0
- package/dist/cjs/x402/settle-payment.js.map +1 -0
- package/dist/cjs/x402/sign.js +148 -0
- package/dist/cjs/x402/sign.js.map +1 -0
- package/dist/cjs/x402/types.js +5 -0
- package/dist/cjs/x402/types.js.map +1 -0
- package/dist/cjs/x402/verify-payment.js +121 -0
- package/dist/cjs/x402/verify-payment.js.map +1 -0
- package/dist/esm/exports/x402.js +3 -0
- package/dist/esm/exports/x402.js.map +1 -1
- package/dist/esm/react/core/utils/defaultTokens.js +2 -8
- package/dist/esm/react/core/utils/defaultTokens.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js +18 -14
- package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -1
- package/dist/esm/react/web/ui/Bridge/BuyWidget.js +15 -6
- package/dist/esm/react/web/ui/Bridge/BuyWidget.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/x402/common.js +170 -0
- package/dist/esm/x402/common.js.map +1 -0
- package/dist/esm/x402/encode.js +66 -0
- package/dist/esm/x402/encode.js.map +1 -0
- package/dist/esm/x402/facilitator.js +83 -2
- package/dist/esm/x402/facilitator.js.map +1 -1
- package/dist/esm/x402/fetchWithPayment.js +8 -16
- package/dist/esm/x402/fetchWithPayment.js.map +1 -1
- package/dist/esm/x402/schemas.js +46 -0
- package/dist/esm/x402/schemas.js.map +1 -0
- package/dist/esm/x402/settle-payment.js +171 -0
- package/dist/esm/x402/settle-payment.js.map +1 -0
- package/dist/esm/x402/sign.js +145 -0
- package/dist/esm/x402/sign.js.map +1 -0
- package/dist/esm/x402/types.js +2 -0
- package/dist/esm/x402/types.js.map +1 -0
- package/dist/esm/x402/verify-payment.js +118 -0
- package/dist/esm/x402/verify-payment.js.map +1 -0
- package/dist/types/exports/x402.d.ts +4 -0
- package/dist/types/exports/x402.d.ts.map +1 -1
- package/dist/types/react/core/utils/defaultTokens.d.ts +2 -7
- package/dist/types/react/core/utils/defaultTokens.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts +4 -3
- package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts.map +1 -1
- package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts +7 -3
- package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/x402/common.d.ts +16 -0
- package/dist/types/x402/common.d.ts.map +1 -0
- package/dist/types/x402/encode.d.ts +23 -0
- package/dist/types/x402/encode.d.ts.map +1 -0
- package/dist/types/x402/facilitator.d.ts +44 -3
- package/dist/types/x402/facilitator.d.ts.map +1 -1
- package/dist/types/x402/fetchWithPayment.d.ts +1 -1
- package/dist/types/x402/fetchWithPayment.d.ts.map +1 -1
- package/dist/types/x402/schemas.d.ts +164 -0
- package/dist/types/x402/schemas.d.ts.map +1 -0
- package/dist/types/x402/settle-payment.d.ts +117 -0
- package/dist/types/x402/settle-payment.d.ts.map +1 -0
- package/dist/types/x402/sign.d.ts +12 -0
- package/dist/types/x402/sign.d.ts.map +1 -0
- package/dist/types/x402/types.d.ts +71 -0
- package/dist/types/x402/types.d.ts.map +1 -0
- package/dist/types/x402/verify-payment.d.ts +69 -0
- package/dist/types/x402/verify-payment.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/exports/x402.ts +8 -0
- package/src/react/core/utils/defaultTokens.ts +2 -8
- package/src/react/web/ui/Bridge/BridgeOrchestrator.tsx +42 -31
- package/src/react/web/ui/Bridge/BuyWidget.tsx +24 -9
- package/src/version.ts +1 -1
- package/src/x402/common.ts +242 -0
- package/src/x402/encode.ts +81 -0
- package/src/x402/facilitator.ts +114 -6
- package/src/x402/fetchWithPayment.ts +13 -27
- package/src/x402/schemas.ts +76 -0
- package/src/x402/settle-payment.ts +186 -0
- package/src/x402/sign.ts +206 -0
- package/src/x402/types.ts +90 -0
- package/src/x402/verify-payment.ts +133 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultTokens.js","sourceRoot":"","sources":["../../../../../src/react/core/utils/defaultTokens.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"defaultTokens.js","sourceRoot":"","sources":["../../../../../src/react/core/utils/defaultTokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,16 +46,16 @@ export function BridgeOrchestrator({ client, uiOptions, receiverAddress, onCompl
|
|
|
46
46
|
}
|
|
47
47
|
}, [send, uiOptions.mode]);
|
|
48
48
|
// Handle post-buy transaction completion
|
|
49
|
-
const handlePostBuyTransactionComplete = useCallback(() => {
|
|
50
|
-
onComplete?.();
|
|
49
|
+
const handlePostBuyTransactionComplete = useCallback((quote) => {
|
|
50
|
+
onComplete?.(quote);
|
|
51
51
|
send({ type: "RESET" });
|
|
52
52
|
}, [onComplete, send]);
|
|
53
53
|
// Handle errors
|
|
54
54
|
const handleError = useCallback((error) => {
|
|
55
55
|
console.error(error);
|
|
56
|
-
onError?.(error);
|
|
56
|
+
onError?.(error, state.context.quote);
|
|
57
57
|
send({ error, type: "ERROR_OCCURRED" });
|
|
58
|
-
}, [onError, send]);
|
|
58
|
+
}, [onError, send, state.context.quote]);
|
|
59
59
|
// Handle payment method selection
|
|
60
60
|
const handlePaymentMethodSelected = useCallback((paymentMethod) => {
|
|
61
61
|
send({ paymentMethod, type: "PAYMENT_METHOD_SELECTED" });
|
|
@@ -69,16 +69,17 @@ export function BridgeOrchestrator({ client, uiOptions, receiverAddress, onCompl
|
|
|
69
69
|
send({ type: "ROUTE_CONFIRMED" });
|
|
70
70
|
}, [send]);
|
|
71
71
|
// Handle execution complete
|
|
72
|
-
const handleExecutionComplete = useCallback((completedStatuses) => {
|
|
72
|
+
const handleExecutionComplete = useCallback((completedStatuses, quote) => {
|
|
73
73
|
send({ completedStatuses, type: "EXECUTION_COMPLETE" });
|
|
74
74
|
if (uiOptions.mode !== "transaction") {
|
|
75
|
-
onComplete?.();
|
|
75
|
+
onComplete?.(quote);
|
|
76
76
|
}
|
|
77
77
|
}, [send, onComplete, uiOptions.mode]);
|
|
78
78
|
// Handle retry
|
|
79
79
|
const handleRetry = useCallback(() => {
|
|
80
80
|
send({ type: "RETRY" });
|
|
81
81
|
}, [send]);
|
|
82
|
+
const quote = state.context.quote;
|
|
82
83
|
// Handle requirements resolved from FundWallet and DirectPayment
|
|
83
84
|
const handleRequirementsResolved = useCallback((amount, token, receiverAddress) => {
|
|
84
85
|
send({
|
|
@@ -90,7 +91,7 @@ export function BridgeOrchestrator({ client, uiOptions, receiverAddress, onCompl
|
|
|
90
91
|
}, [send]);
|
|
91
92
|
return (_jsxs(Container, { flex: "column", fullHeight: true, children: [state.value === "error" && state.context.currentError && (_jsx(ErrorBanner, { client: client, error: state.context.currentError, onCancel: () => {
|
|
92
93
|
send({ type: "RESET" });
|
|
93
|
-
onCancel?.();
|
|
94
|
+
onCancel?.(quote);
|
|
94
95
|
}, onRetry: handleRetry })), state.value === "init" && uiOptions.mode === "fund_wallet" && (_jsx(FundWallet, { client: client, connectOptions: modifiedConnectOptions, onContinue: handleRequirementsResolved, presetOptions: presetOptions, receiverAddress: receiverAddress, showThirdwebBranding: showThirdwebBranding, uiOptions: uiOptions })), state.value === "init" && uiOptions.mode === "direct_payment" && (_jsx(DirectPayment, { client: client, onContinue: handleRequirementsResolved, showThirdwebBranding: showThirdwebBranding, uiOptions: uiOptions })), state.value === "init" && uiOptions.mode === "transaction" && (_jsx(TransactionPayment, { client: client, connectOptions: modifiedConnectOptions, onContinue: handleRequirementsResolved, onExecuteTransaction: () => send({ type: "CONTINUE_TO_TRANSACTION" }), showThirdwebBranding: showThirdwebBranding, uiOptions: uiOptions })), state.value === "methodSelection" &&
|
|
95
96
|
state.context.destinationToken &&
|
|
96
97
|
state.context.destinationAmount &&
|
|
@@ -108,15 +109,18 @@ export function BridgeOrchestrator({ client, uiOptions, receiverAddress, onCompl
|
|
|
108
109
|
state.context.selectedPaymentMethod &&
|
|
109
110
|
state.context.quote && (_jsx(PaymentDetails, { client: client, onBack: () => {
|
|
110
111
|
send({ type: "BACK" });
|
|
111
|
-
}, onConfirm: handleRouteConfirmed, onError: handleError, paymentMethod: state.context.selectedPaymentMethod, preparedQuote: state.context.quote, uiOptions: uiOptions })), state.value === "execute" &&
|
|
112
|
-
state.context.quote &&
|
|
113
|
-
state.context.request && (_jsx(StepRunner, { autoStart: true, client: client, onBack: () => {
|
|
112
|
+
}, onConfirm: handleRouteConfirmed, onError: handleError, paymentMethod: state.context.selectedPaymentMethod, preparedQuote: state.context.quote, uiOptions: uiOptions })), state.value === "execute" && quote && state.context.request && (_jsx(StepRunner, { autoStart: true, client: client, onBack: () => {
|
|
114
113
|
send({ type: "BACK" });
|
|
115
|
-
}, onCancel:
|
|
116
|
-
|
|
117
|
-
|
|
114
|
+
}, onCancel: () => {
|
|
115
|
+
onCancel(quote);
|
|
116
|
+
}, onComplete: (completedStatuses) => {
|
|
117
|
+
handleExecutionComplete(completedStatuses, quote);
|
|
118
|
+
}, request: state.context.request, wallet: state.context.selectedPaymentMethod?.payerWallet, windowAdapter: webWindowAdapter })), state.value === "success" &&
|
|
119
|
+
quote &&
|
|
120
|
+
state.context.completedStatuses && (_jsx(SuccessScreen, { client: client, completedStatuses: state.context.completedStatuses, onDone: handleDoneOrContinueClick, preparedQuote: quote, uiOptions: uiOptions, windowAdapter: webWindowAdapter, hasPaymentId: !!paymentLinkId })), state.value === "post-buy-transaction" &&
|
|
118
121
|
uiOptions.mode === "transaction" &&
|
|
119
|
-
|
|
122
|
+
quote &&
|
|
123
|
+
uiOptions.transaction && (_jsx(ExecutingTxScreen, { closeModal: () => handlePostBuyTransactionComplete(quote), onTxSent: () => {
|
|
120
124
|
// Do nothing
|
|
121
125
|
}, tx: uiOptions.transaction, windowAdapter: webWindowAdapter }))] }));
|
|
122
126
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeOrchestrator.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/Bridge/BridgeOrchestrator.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAO7C,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAO1E,OAAO,EAEL,iBAAiB,GAClB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AA0G7D,MAAM,UAAU,kBAAkB,CAAC,EACjC,MAAM,EACN,SAAS,EACT,eAAe,EACf,UAAU,EACV,OAAO,EACP,QAAQ,EACR,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,EACnC,oBAAoB,GAAG,IAAI,EAC3B,eAAe,EACf,OAAO,GAAG,IAAI,GACU;IACxB,sBAAsB;IACtB,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC;QACL,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,gBAAgB;KACzB,CAAC,EACF,EAAE,CACH,CAAC;IAEF,wDAAwD;IACxD,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1C,IAAI,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC;QACtC,OAAO;YACL,GAAG,cAAc;YACjB,YAAY,EAAE;gBACZ,GAAG,cAAc,CAAC,YAAY;gBAC9B,oBAAoB;aACrB;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAE3C,+BAA+B;IAC/B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAElE,wBAAwB;IACxB,MAAM,yBAAyB,GAAG,WAAW,CAAC,GAAG,EAAE;QACjD,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACrC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3B,yCAAyC;IACzC,MAAM,gCAAgC,GAAG,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"BridgeOrchestrator.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/Bridge/BridgeOrchestrator.tsx"],"names":[],"mappings":"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"}
|
|
@@ -215,12 +215,21 @@ export function BuyWidget(props) {
|
|
|
215
215
|
}
|
|
216
216
|
else if (bridgeDataQuery.data?.type === "success") {
|
|
217
217
|
// Show normal bridge orchestrator
|
|
218
|
-
content = (_jsx(BridgeOrchestrator, { country: props.country, supportedTokens: props.supportedTokens, client: props.client, connectLocale: localeQuery.data, connectOptions: props.connectOptions, onCancel: () => {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
218
|
+
content = (_jsx(BridgeOrchestrator, { country: props.country, supportedTokens: props.supportedTokens, client: props.client, connectLocale: localeQuery.data, connectOptions: props.connectOptions, onCancel: (quote) => {
|
|
219
|
+
// type guard
|
|
220
|
+
if (quote?.type === "buy" || quote?.type === "onramp") {
|
|
221
|
+
props.onCancel?.(quote);
|
|
222
|
+
}
|
|
223
|
+
}, onComplete: (quote) => {
|
|
224
|
+
// type guard
|
|
225
|
+
if (quote?.type === "buy" || quote?.type === "onramp") {
|
|
226
|
+
props.onSuccess?.(quote);
|
|
227
|
+
}
|
|
228
|
+
}, onError: (err, quote) => {
|
|
229
|
+
// type guard
|
|
230
|
+
if (quote?.type === "buy" || quote?.type === "onramp") {
|
|
231
|
+
props.onError?.(err, quote);
|
|
232
|
+
}
|
|
224
233
|
}, paymentLinkId: props.paymentLinkId, paymentMethods: props.paymentMethods, presetOptions: props.presetOptions, purchaseData: props.purchaseData, receiverAddress: props.receiverAddress, uiOptions: bridgeDataQuery.data.data, showThirdwebBranding: props.showThirdwebBranding }));
|
|
225
234
|
}
|
|
226
235
|
return (_jsx(CustomThemeProvider, { theme: theme, children: _jsx(EmbedContainer, { className: props.className, modalSize: "compact", style: props.style, children: _jsx(DynamicHeight, { children: content }) }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuyWidget.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/Bridge/BuyWidget.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAInE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAGhE,OAAO,EAEL,eAAe,EACf,SAAS,GACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAKtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"BuyWidget.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/Bridge/BuyWidget.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAInE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAGhE,OAAO,EAEL,eAAe,EACf,SAAS,GACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAKtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AAMzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAkB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AA6LrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6GG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC;IAEpC,QAAQ,CAAC;QACP,OAAO,EAAE,GAAG,EAAE;YACZ,aAAa,CAAC;gBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,yBAAyB;gBAChC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;gBACzB,OAAO,EAAE,KAAK,CAAC,YAAY;aAC5B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QACD,QAAQ,EAAE,CAAC,mBAAmB,CAAC;KAChC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,QAAQ,CAAC;QAC/B,OAAO,EAAE,KAAK,IAA8B,EAAE;YAC5C,IACE,CAAC,KAAK,CAAC,YAAY;gBACnB,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC;oBAC5B,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC;wBACjC,eAAe,CAAC,oBAAoB,CAAC,CAAC,EAC1C,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CACxB,KAAK,CAAC,MAAM,EACZ,oBAAoB,EACpB,KAAK,CAAC,KAAK,CAAC,EAAE,CACf,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACd,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;wBACnC,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,OAAO;wBACL,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,oBAAoB;wBACxD,IAAI,EAAE,mBAAmB;qBAC1B,CAAC;gBACJ,CAAC;gBACD,OAAO;oBACL,IAAI,EAAE;wBACJ,gBAAgB,EAAE,GAAG;wBACrB,aAAa,EAAE,KAAK,CAAC,MAAM;wBAC3B,QAAQ,EAAE;4BACR,WAAW,EAAE,KAAK,CAAC,WAAW;4BAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,KAAK,EAAE,KAAK,CAAC,KAAK;yBACnB;wBACD,IAAI,EAAE,aAAa;wBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;wBACjC,WAAW,EAAE,KAAK,CAAC,WAAW;qBAC/B;oBACD,IAAI,EAAE,SAAS;iBAChB,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAC1B,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,KAAK,CAAC,EAAE,CACf,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACd,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1E,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;oBACL,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,IAAI,EAAE,mBAAmB;iBAC1B,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,IAAI,EAAE;oBACJ,gBAAgB,EAAE,KAAK;oBACvB,aAAa,EAAE,KAAK,CAAC,MAAM;oBAC3B,QAAQ,EAAE;wBACR,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB;oBACD,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;oBACjC,WAAW,EAAE,KAAK,CAAC,WAAW;iBAC/B;gBACD,IAAI,EAAE,SAAS;aAChB,CAAC;QACJ,CAAC;QACD,QAAQ,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;KAC3C,CAAC,CAAC;IAEH,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC;QACnD,OAAO,GAAG,CACR,cACE,KAAK,EAAE;gBACL,UAAU,EAAE,QAAQ;gBACpB,OAAO,EAAE,MAAM;gBACf,cAAc,EAAE,QAAQ;gBACxB,SAAS,EAAE,OAAO;aACnB,YAED,KAAC,OAAO,IAAC,KAAK,EAAC,eAAe,EAAC,IAAI,EAAC,IAAI,GAAG,GACvC,CACP,CAAC;IACJ,CAAC;SAAM,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,KAAK,mBAAmB,EAAE,CAAC;QAC9D,gCAAgC;QAChC,OAAO,GAAG,CACR,KAAC,sBAAsB,IACrB,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,EACjC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,YAAY,EAAE,KAAK,CAAC,YAAY,GAChC,CACH,CAAC;IACJ,CAAC;SAAM,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QACpD,kCAAkC;QAClC,OAAO,GAAG,CACR,KAAC,kBAAkB,IACjB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,aAAa,EAAE,WAAW,CAAC,IAAI,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,aAAa;gBACb,IAAI,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtD,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC,EACD,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpB,aAAa;gBACb,IAAI,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtD,KAAK,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,EACD,OAAO,EAAE,CAAC,GAAU,EAAE,KAAK,EAAE,EAAE;gBAC7B,aAAa;gBACb,IAAI,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,KAAK,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtD,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC,EACD,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,EACpC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,GAChD,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,mBAAmB,IAAC,KAAK,EAAE,KAAK,YAC/B,KAAC,cAAc,IACb,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,SAAS,EAAC,SAAS,EACnB,KAAK,EAAE,KAAK,CAAC,KAAK,YAElB,KAAC,aAAa,cAAE,OAAO,GAAiB,GACzB,GACG,CACvB,CAAC;AACJ,CAAC"}
|
package/dist/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = "5.
|
|
1
|
+
export const version = "5.108.0";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { moneySchema, SupportedEVMNetworks, } from "x402/types";
|
|
2
|
+
import { getAddress } from "../utils/address.js";
|
|
3
|
+
import { decodePayment } from "./encode.js";
|
|
4
|
+
import { networkToChainId, } from "./schemas.js";
|
|
5
|
+
import { x402Version, } from "./types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Decodes a payment request and returns the payment requirements, selected payment requirements, and decoded payment
|
|
8
|
+
* @param args
|
|
9
|
+
* @returns The payment requirements, selected payment requirements, and decoded payment
|
|
10
|
+
*/
|
|
11
|
+
export async function decodePaymentRequest(args) {
|
|
12
|
+
const { price, network, facilitator, resourceUrl, routeConfig = {}, payTo, method, paymentData, } = args;
|
|
13
|
+
const { description, mimeType, maxTimeoutSeconds, inputSchema, outputSchema, errorMessages, discoverable, } = routeConfig;
|
|
14
|
+
const atomicAmountForAsset = await processPriceToAtomicAmount(price, network, facilitator);
|
|
15
|
+
if ("error" in atomicAmountForAsset) {
|
|
16
|
+
return {
|
|
17
|
+
status: 402,
|
|
18
|
+
responseHeaders: { "Content-Type": "application/json" },
|
|
19
|
+
responseBody: {
|
|
20
|
+
x402Version,
|
|
21
|
+
error: atomicAmountForAsset.error,
|
|
22
|
+
accepts: [],
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const { maxAmountRequired, asset } = atomicAmountForAsset;
|
|
27
|
+
const paymentRequirements = [];
|
|
28
|
+
if (SupportedEVMNetworks.includes(network) ||
|
|
29
|
+
network.startsWith("eip155:")) {
|
|
30
|
+
paymentRequirements.push({
|
|
31
|
+
scheme: "exact",
|
|
32
|
+
network,
|
|
33
|
+
maxAmountRequired,
|
|
34
|
+
resource: resourceUrl,
|
|
35
|
+
description: description ?? "",
|
|
36
|
+
mimeType: mimeType ?? "application/json",
|
|
37
|
+
payTo: getAddress(payTo),
|
|
38
|
+
maxTimeoutSeconds: maxTimeoutSeconds ?? 300,
|
|
39
|
+
asset: getAddress(asset.address),
|
|
40
|
+
// TODO: Rename outputSchema to requestStructure
|
|
41
|
+
outputSchema: {
|
|
42
|
+
input: {
|
|
43
|
+
type: "http",
|
|
44
|
+
method,
|
|
45
|
+
discoverable: discoverable ?? true,
|
|
46
|
+
...inputSchema,
|
|
47
|
+
},
|
|
48
|
+
output: outputSchema,
|
|
49
|
+
},
|
|
50
|
+
extra: asset.eip712,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
return {
|
|
55
|
+
status: 402,
|
|
56
|
+
responseHeaders: {
|
|
57
|
+
"Content-Type": "application/json",
|
|
58
|
+
},
|
|
59
|
+
responseBody: {
|
|
60
|
+
x402Version,
|
|
61
|
+
error: `Unsupported network: ${network}`,
|
|
62
|
+
accepts: paymentRequirements,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
// Check for payment header
|
|
67
|
+
if (!paymentData) {
|
|
68
|
+
return {
|
|
69
|
+
status: 402,
|
|
70
|
+
responseHeaders: {
|
|
71
|
+
"Content-Type": "application/json",
|
|
72
|
+
},
|
|
73
|
+
responseBody: {
|
|
74
|
+
x402Version,
|
|
75
|
+
error: errorMessages?.paymentRequired || "X-PAYMENT header is required",
|
|
76
|
+
accepts: paymentRequirements,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
// Verify payment
|
|
81
|
+
let decodedPayment;
|
|
82
|
+
try {
|
|
83
|
+
decodedPayment = decodePayment(paymentData);
|
|
84
|
+
decodedPayment.x402Version = x402Version;
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
return {
|
|
88
|
+
status: 402,
|
|
89
|
+
responseHeaders: {
|
|
90
|
+
"Content-Type": "application/json",
|
|
91
|
+
},
|
|
92
|
+
responseBody: {
|
|
93
|
+
x402Version,
|
|
94
|
+
error: errorMessages?.invalidPayment ||
|
|
95
|
+
(error instanceof Error ? error.message : "Invalid payment"),
|
|
96
|
+
accepts: paymentRequirements,
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
const selectedPaymentRequirements = paymentRequirements.find((value) => value.scheme === decodedPayment.scheme &&
|
|
101
|
+
value.network === decodedPayment.network);
|
|
102
|
+
if (!selectedPaymentRequirements) {
|
|
103
|
+
return {
|
|
104
|
+
status: 402,
|
|
105
|
+
responseHeaders: {
|
|
106
|
+
"Content-Type": "application/json",
|
|
107
|
+
},
|
|
108
|
+
responseBody: {
|
|
109
|
+
x402Version,
|
|
110
|
+
error: errorMessages?.noMatchingRequirements ||
|
|
111
|
+
"Unable to find matching payment requirements",
|
|
112
|
+
accepts: paymentRequirements,
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
status: 200,
|
|
118
|
+
paymentRequirements,
|
|
119
|
+
decodedPayment,
|
|
120
|
+
selectedPaymentRequirements,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Parses the amount from the given price
|
|
125
|
+
*
|
|
126
|
+
* @param price - The price to parse
|
|
127
|
+
* @param network - The network to get the default asset for
|
|
128
|
+
* @returns The parsed amount or an error message
|
|
129
|
+
*/
|
|
130
|
+
async function processPriceToAtomicAmount(price, network, facilitator) {
|
|
131
|
+
// Handle USDC amount (string) or token amount (ERC20TokenAmount)
|
|
132
|
+
let maxAmountRequired;
|
|
133
|
+
let asset;
|
|
134
|
+
if (typeof price === "string" || typeof price === "number") {
|
|
135
|
+
// USDC amount in dollars
|
|
136
|
+
const parsedAmount = moneySchema.safeParse(price);
|
|
137
|
+
if (!parsedAmount.success) {
|
|
138
|
+
return {
|
|
139
|
+
error: `Invalid price (price: ${price}). Must be in the form "$3.10", 0.10, "0.001", ${parsedAmount.error}`,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
const parsedUsdAmount = parsedAmount.data;
|
|
143
|
+
const defaultAsset = await getDefaultAsset(network, facilitator);
|
|
144
|
+
if (!defaultAsset) {
|
|
145
|
+
return {
|
|
146
|
+
error: `Unable to get default asset on ${network}. Please specify an asset in the payment requirements.`,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
asset = defaultAsset;
|
|
150
|
+
maxAmountRequired = (parsedUsdAmount * 10 ** asset.decimals).toString();
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
// Token amount in atomic units
|
|
154
|
+
maxAmountRequired = price.amount;
|
|
155
|
+
asset = price.asset;
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
maxAmountRequired,
|
|
159
|
+
asset,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
async function getDefaultAsset(network, facilitator) {
|
|
163
|
+
const supportedAssets = await facilitator.supported();
|
|
164
|
+
const chainId = networkToChainId(network);
|
|
165
|
+
const matchingAsset = supportedAssets.kinds.find((supported) => supported.network === `eip155:${chainId}`);
|
|
166
|
+
const assetConfig = matchingAsset?.extra
|
|
167
|
+
?.defaultAsset;
|
|
168
|
+
return assetConfig;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/x402/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { RequestedPaymentPayloadSchema, } from "./schemas.js";
|
|
2
|
+
/**
|
|
3
|
+
* Encodes a payment payload into a base64 string, ensuring bigint values are properly stringified
|
|
4
|
+
*
|
|
5
|
+
* @param payment - The payment payload to encode
|
|
6
|
+
* @returns A base64 encoded string representation of the payment payload
|
|
7
|
+
*/
|
|
8
|
+
export function encodePayment(payment) {
|
|
9
|
+
let safe;
|
|
10
|
+
// evm
|
|
11
|
+
const evmPayload = payment.payload;
|
|
12
|
+
safe = {
|
|
13
|
+
...payment,
|
|
14
|
+
payload: {
|
|
15
|
+
...evmPayload,
|
|
16
|
+
authorization: Object.fromEntries(Object.entries(evmPayload.authorization).map(([key, value]) => [
|
|
17
|
+
key,
|
|
18
|
+
typeof value === "bigint" ? value.toString() : value,
|
|
19
|
+
])),
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
return safeBase64Encode(JSON.stringify(safe));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Decodes a base64 encoded payment string back into a PaymentPayload object
|
|
26
|
+
*
|
|
27
|
+
* @param payment - The base64 encoded payment string to decode
|
|
28
|
+
* @returns The decoded and validated PaymentPayload object
|
|
29
|
+
*/
|
|
30
|
+
export function decodePayment(payment) {
|
|
31
|
+
const decoded = safeBase64Decode(payment);
|
|
32
|
+
const parsed = JSON.parse(decoded);
|
|
33
|
+
const obj = {
|
|
34
|
+
...parsed,
|
|
35
|
+
payload: parsed.payload,
|
|
36
|
+
};
|
|
37
|
+
const validated = RequestedPaymentPayloadSchema.parse(obj);
|
|
38
|
+
return validated;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Encodes a string to base64 format
|
|
42
|
+
*
|
|
43
|
+
* @param data - The string to be encoded to base64
|
|
44
|
+
* @returns The base64 encoded string
|
|
45
|
+
*/
|
|
46
|
+
export function safeBase64Encode(data) {
|
|
47
|
+
if (typeof globalThis !== "undefined" &&
|
|
48
|
+
typeof globalThis.btoa === "function") {
|
|
49
|
+
return globalThis.btoa(data);
|
|
50
|
+
}
|
|
51
|
+
return Buffer.from(data).toString("base64");
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Decodes a base64 string back to its original format
|
|
55
|
+
*
|
|
56
|
+
* @param data - The base64 encoded string to be decoded
|
|
57
|
+
* @returns The decoded string in UTF-8 format
|
|
58
|
+
*/
|
|
59
|
+
function safeBase64Decode(data) {
|
|
60
|
+
if (typeof globalThis !== "undefined" &&
|
|
61
|
+
typeof globalThis.atob === "function") {
|
|
62
|
+
return globalThis.atob(data);
|
|
63
|
+
}
|
|
64
|
+
return Buffer.from(data, "base64").toString("utf-8");
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=encode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encode.js","sourceRoot":"","sources":["../../../src/x402/encode.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgC;IAC5D,IAAI,IAA6B,CAAC;IAElC,MAAM;IACN,MAAM,UAAU,GAAG,OAAO,CAAC,OAA0B,CAAC;IACtD,IAAI,GAAG;QACL,GAAG,OAAO;QACV,OAAO,EAAE;YACP,GAAG,UAAU;YACb,aAAa,EAAE,MAAM,CAAC,WAAW,CAC/B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;gBAC7D,GAAG;gBACH,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK;aACjE,CAAC,CACiC;SACtC;KACF,CAAC;IACF,OAAO,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnC,MAAM,GAAG,GAA4B;QACnC,GAAG,MAAM;QACT,OAAO,EAAE,MAAM,CAAC,OAA0B;KAC3C,CAAC;IACF,MAAM,SAAS,GAAG,6BAA6B,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3D,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,IACE,OAAO,UAAU,KAAK,WAAW;QACjC,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EACrC,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,IAAY;IACpC,IACE,OAAO,UAAU,KAAK,WAAW;QACjC,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EACrC,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { stringify } from "../utils/json.js";
|
|
2
|
+
import { withCache } from "../utils/promise/withCache.js";
|
|
1
3
|
const DEFAULT_BASE_URL = "https://api.thirdweb.com/v1/payments/x402";
|
|
2
4
|
/**
|
|
3
5
|
* Creates a facilitator for the x402 payment protocol.
|
|
4
|
-
*
|
|
6
|
+
* You can use this with `settlePayment` or with any x402 middleware to enable settling transactions with your thirdweb server wallet.
|
|
5
7
|
*
|
|
6
8
|
* @param config - The configuration for the facilitator
|
|
7
9
|
* @returns a x402 compatible FacilitatorConfig
|
|
@@ -46,7 +48,7 @@ export function facilitator(config) {
|
|
|
46
48
|
if (!serverWalletAddress) {
|
|
47
49
|
throw new Error("Server wallet address is required for the x402 facilitator");
|
|
48
50
|
}
|
|
49
|
-
|
|
51
|
+
const facilitator = {
|
|
50
52
|
url: (config.baseUrl ?? DEFAULT_BASE_URL),
|
|
51
53
|
createAuthHeaders: async () => {
|
|
52
54
|
return {
|
|
@@ -68,6 +70,85 @@ export function facilitator(config) {
|
|
|
68
70
|
},
|
|
69
71
|
};
|
|
70
72
|
},
|
|
73
|
+
/**
|
|
74
|
+
* Verifies a payment payload with the facilitator service
|
|
75
|
+
*
|
|
76
|
+
* @param payload - The payment payload to verify
|
|
77
|
+
* @param paymentRequirements - The payment requirements to verify against
|
|
78
|
+
* @returns A promise that resolves to the verification response
|
|
79
|
+
*/
|
|
80
|
+
async verify(payload, paymentRequirements) {
|
|
81
|
+
const url = config.baseUrl ?? DEFAULT_BASE_URL;
|
|
82
|
+
let headers = { "Content-Type": "application/json" };
|
|
83
|
+
const authHeaders = await facilitator.createAuthHeaders();
|
|
84
|
+
headers = { ...headers, ...authHeaders.verify };
|
|
85
|
+
const res = await fetch(`${url}/verify`, {
|
|
86
|
+
method: "POST",
|
|
87
|
+
headers,
|
|
88
|
+
body: stringify({
|
|
89
|
+
x402Version: payload.x402Version,
|
|
90
|
+
paymentPayload: payload,
|
|
91
|
+
paymentRequirements: paymentRequirements,
|
|
92
|
+
}),
|
|
93
|
+
});
|
|
94
|
+
if (res.status !== 200) {
|
|
95
|
+
const text = `${res.statusText} ${await res.text()}`;
|
|
96
|
+
throw new Error(`Failed to verify payment: ${res.status} ${text}`);
|
|
97
|
+
}
|
|
98
|
+
const data = await res.json();
|
|
99
|
+
return data;
|
|
100
|
+
},
|
|
101
|
+
/**
|
|
102
|
+
* Settles a payment with the facilitator service
|
|
103
|
+
*
|
|
104
|
+
* @param payload - The payment payload to settle
|
|
105
|
+
* @param paymentRequirements - The payment requirements for the settlement
|
|
106
|
+
* @returns A promise that resolves to the settlement response
|
|
107
|
+
*/
|
|
108
|
+
async settle(payload, paymentRequirements) {
|
|
109
|
+
const url = config.baseUrl ?? DEFAULT_BASE_URL;
|
|
110
|
+
let headers = { "Content-Type": "application/json" };
|
|
111
|
+
const authHeaders = await facilitator.createAuthHeaders();
|
|
112
|
+
headers = { ...headers, ...authHeaders.settle };
|
|
113
|
+
const res = await fetch(`${url}/settle`, {
|
|
114
|
+
method: "POST",
|
|
115
|
+
headers,
|
|
116
|
+
body: JSON.stringify({
|
|
117
|
+
x402Version: payload.x402Version,
|
|
118
|
+
paymentPayload: payload,
|
|
119
|
+
paymentRequirements: paymentRequirements,
|
|
120
|
+
}),
|
|
121
|
+
});
|
|
122
|
+
if (res.status !== 200) {
|
|
123
|
+
const text = `${res.statusText} ${await res.text()}`;
|
|
124
|
+
throw new Error(`Failed to settle payment: ${res.status} ${text}`);
|
|
125
|
+
}
|
|
126
|
+
const data = await res.json();
|
|
127
|
+
return data;
|
|
128
|
+
},
|
|
129
|
+
/**
|
|
130
|
+
* Gets the supported payment kinds from the facilitator service.
|
|
131
|
+
*
|
|
132
|
+
* @returns A promise that resolves to the supported payment kinds
|
|
133
|
+
*/
|
|
134
|
+
async supported() {
|
|
135
|
+
const url = config.baseUrl ?? DEFAULT_BASE_URL;
|
|
136
|
+
return withCache(async () => {
|
|
137
|
+
let headers = { "Content-Type": "application/json" };
|
|
138
|
+
const authHeaders = await facilitator.createAuthHeaders();
|
|
139
|
+
headers = { ...headers, ...authHeaders.supported };
|
|
140
|
+
const res = await fetch(`${url}/supported`, { headers });
|
|
141
|
+
if (res.status !== 200) {
|
|
142
|
+
throw new Error(`Failed to get supported payment kinds: ${res.statusText}`);
|
|
143
|
+
}
|
|
144
|
+
const data = await res.json();
|
|
145
|
+
return data;
|
|
146
|
+
}, {
|
|
147
|
+
cacheKey: `supported-payment-kinds-${url}`,
|
|
148
|
+
cacheTime: 1000 * 60 * 60 * 24, // 24 hours
|
|
149
|
+
});
|
|
150
|
+
},
|
|
71
151
|
};
|
|
152
|
+
return facilitator;
|
|
72
153
|
}
|
|
73
154
|
//# sourceMappingURL=facilitator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facilitator.js","sourceRoot":"","sources":["../../../src/x402/facilitator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"facilitator.js","sourceRoot":"","sources":["../../../src/x402/facilitator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ChainIdToNetwork, EvmNetworkToChainId, PaymentRequirementsSchema, } from "x402/types";
|
|
3
|
-
import { viemAdapter } from "../adapters/viem.js";
|
|
1
|
+
import { ChainIdToNetwork } from "x402/types";
|
|
4
2
|
import { getCachedChain } from "../chains/utils.js";
|
|
3
|
+
import { networkToChainId, RequestedPaymentRequirementsSchema, } from "./schemas.js";
|
|
4
|
+
import { createPaymentHeader } from "./sign.js";
|
|
5
5
|
/**
|
|
6
6
|
* Enables the payment of APIs using the x402 payment protocol.
|
|
7
7
|
*
|
|
@@ -41,7 +41,7 @@ import { getCachedChain } from "../chains/utils.js";
|
|
|
41
41
|
*
|
|
42
42
|
* @bridge x402
|
|
43
43
|
*/
|
|
44
|
-
export function wrapFetchWithPayment(fetch,
|
|
44
|
+
export function wrapFetchWithPayment(fetch, _client, wallet, maxValue = BigInt(1 * 10 ** 6)) {
|
|
45
45
|
return async (input, init) => {
|
|
46
46
|
const response = await fetch(input, init);
|
|
47
47
|
if (response.status !== 402) {
|
|
@@ -49,7 +49,7 @@ export function wrapFetchWithPayment(fetch, client, wallet, maxValue = BigInt(1
|
|
|
49
49
|
}
|
|
50
50
|
const { x402Version, accepts } = (await response.json());
|
|
51
51
|
const parsedPaymentRequirements = accepts
|
|
52
|
-
.map((x) =>
|
|
52
|
+
.map((x) => RequestedPaymentRequirementsSchema.parse(x))
|
|
53
53
|
.filter((x) => x.scheme === "exact"); // TODO (402): accept other schemes
|
|
54
54
|
const account = wallet.getAccount();
|
|
55
55
|
let chain = wallet.getChain();
|
|
@@ -60,10 +60,7 @@ export function wrapFetchWithPayment(fetch, client, wallet, maxValue = BigInt(1
|
|
|
60
60
|
if (BigInt(selectedPaymentRequirements.maxAmountRequired) > maxValue) {
|
|
61
61
|
throw new Error("Payment amount exceeds maximum allowed");
|
|
62
62
|
}
|
|
63
|
-
const paymentChainId =
|
|
64
|
-
if (!paymentChainId) {
|
|
65
|
-
throw new Error(`No chain found for the selected payment requirement: ${selectedPaymentRequirements.network}`);
|
|
66
|
-
}
|
|
63
|
+
const paymentChainId = networkToChainId(selectedPaymentRequirements.network);
|
|
67
64
|
// switch to the payment chain if it's not the current chain
|
|
68
65
|
if (paymentChainId !== chain.id) {
|
|
69
66
|
await wallet.switchChain(getCachedChain(paymentChainId));
|
|
@@ -72,12 +69,7 @@ export function wrapFetchWithPayment(fetch, client, wallet, maxValue = BigInt(1
|
|
|
72
69
|
throw new Error(`Failed to switch chain (${paymentChainId})`);
|
|
73
70
|
}
|
|
74
71
|
}
|
|
75
|
-
const
|
|
76
|
-
wallet: wallet,
|
|
77
|
-
chain,
|
|
78
|
-
client,
|
|
79
|
-
});
|
|
80
|
-
const paymentHeader = await createPaymentHeader(walletClient, x402Version, selectedPaymentRequirements);
|
|
72
|
+
const paymentHeader = await createPaymentHeader(account, x402Version, selectedPaymentRequirements);
|
|
81
73
|
const initParams = init || {};
|
|
82
74
|
if (initParams.__is402Retry) {
|
|
83
75
|
throw new Error("Payment already attempted");
|
|
@@ -99,7 +91,7 @@ function defaultPaymentRequirementsSelector(paymentRequirements, chainId, scheme
|
|
|
99
91
|
if (!paymentRequirements.length) {
|
|
100
92
|
throw new Error("No valid payment requirements found in server 402 response");
|
|
101
93
|
}
|
|
102
|
-
const currentWalletNetwork = ChainIdToNetwork[chainId]
|
|
94
|
+
const currentWalletNetwork = ChainIdToNetwork[chainId] || `eip155:${chainId}`;
|
|
103
95
|
// find the payment requirements matching the connected wallet chain
|
|
104
96
|
const matchingPaymentRequirements = paymentRequirements.find((x) => x.network === currentWalletNetwork && x.scheme === scheme);
|
|
105
97
|
if (matchingPaymentRequirements) {
|