thirdweb 5.112.4 → 5.114.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/react.js +4 -1
- package/dist/cjs/exports/react.js.map +1 -1
- package/dist/cjs/exports/react.native.js +4 -1
- package/dist/cjs/exports/react.native.js.map +1 -1
- package/dist/cjs/react/core/hooks/x402/useFetchWithPaymentCore.js +110 -0
- package/dist/cjs/react/core/hooks/x402/useFetchWithPaymentCore.js.map +1 -0
- package/dist/cjs/react/native/hooks/x402/useFetchWithPayment.js +89 -0
- package/dist/cjs/react/native/hooks/x402/useFetchWithPayment.js.map +1 -0
- package/dist/cjs/react/web/hooks/x402/useFetchWithPayment.js +168 -0
- package/dist/cjs/react/web/hooks/x402/useFetchWithPayment.js.map +1 -0
- package/dist/cjs/react/web/ui/components/basic.js +1 -1
- package/dist/cjs/react/web/ui/x402/PaymentErrorModal.js +107 -0
- package/dist/cjs/react/web/ui/x402/PaymentErrorModal.js.map +1 -0
- package/dist/cjs/react/web/ui/x402/SignInRequiredModal.js +28 -0
- package/dist/cjs/react/web/ui/x402/SignInRequiredModal.js.map +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/coinbase/coinbase-web.js +9 -0
- package/dist/cjs/wallets/coinbase/coinbase-web.js.map +1 -1
- package/dist/cjs/x402/common.js +2 -10
- package/dist/cjs/x402/common.js.map +1 -1
- package/dist/cjs/x402/facilitator.js +2 -1
- package/dist/cjs/x402/facilitator.js.map +1 -1
- package/dist/cjs/x402/fetchWithPayment.js +13 -14
- package/dist/cjs/x402/fetchWithPayment.js.map +1 -1
- package/dist/cjs/x402/schemas.js +4 -1
- package/dist/cjs/x402/schemas.js.map +1 -1
- package/dist/cjs/x402/settle-payment.js +13 -2
- package/dist/cjs/x402/settle-payment.js.map +1 -1
- package/dist/cjs/x402/types.js +6 -1
- package/dist/cjs/x402/types.js.map +1 -1
- package/dist/cjs/x402/verify-payment.js +12 -2
- package/dist/cjs/x402/verify-payment.js.map +1 -1
- package/dist/esm/exports/react.js +2 -0
- package/dist/esm/exports/react.js.map +1 -1
- package/dist/esm/exports/react.native.js +2 -0
- package/dist/esm/exports/react.native.js.map +1 -1
- package/dist/esm/react/core/hooks/x402/useFetchWithPaymentCore.js +107 -0
- package/dist/esm/react/core/hooks/x402/useFetchWithPaymentCore.js.map +1 -0
- package/dist/esm/react/native/hooks/x402/useFetchWithPayment.js +86 -0
- package/dist/esm/react/native/hooks/x402/useFetchWithPayment.js.map +1 -0
- package/dist/esm/react/web/hooks/x402/useFetchWithPayment.js +165 -0
- package/dist/esm/react/web/hooks/x402/useFetchWithPayment.js.map +1 -0
- package/dist/esm/react/web/ui/components/basic.js +1 -1
- package/dist/esm/react/web/ui/x402/PaymentErrorModal.js +104 -0
- package/dist/esm/react/web/ui/x402/PaymentErrorModal.js.map +1 -0
- package/dist/esm/react/web/ui/x402/SignInRequiredModal.js +25 -0
- package/dist/esm/react/web/ui/x402/SignInRequiredModal.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/coinbase/coinbase-web.js +9 -0
- package/dist/esm/wallets/coinbase/coinbase-web.js.map +1 -1
- package/dist/esm/x402/common.js +2 -10
- package/dist/esm/x402/common.js.map +1 -1
- package/dist/esm/x402/facilitator.js +2 -1
- package/dist/esm/x402/facilitator.js.map +1 -1
- package/dist/esm/x402/fetchWithPayment.js +13 -14
- package/dist/esm/x402/fetchWithPayment.js.map +1 -1
- package/dist/esm/x402/schemas.js +4 -1
- package/dist/esm/x402/schemas.js.map +1 -1
- package/dist/esm/x402/settle-payment.js +13 -2
- package/dist/esm/x402/settle-payment.js.map +1 -1
- package/dist/esm/x402/types.js +5 -0
- package/dist/esm/x402/types.js.map +1 -1
- package/dist/esm/x402/verify-payment.js +12 -2
- package/dist/esm/x402/verify-payment.js.map +1 -1
- package/dist/scripts/bridge-widget.js +50 -50
- package/dist/types/exports/react.d.ts +1 -0
- package/dist/types/exports/react.d.ts.map +1 -1
- package/dist/types/exports/react.native.d.ts +1 -0
- package/dist/types/exports/react.native.d.ts.map +1 -1
- package/dist/types/react/core/hooks/x402/useFetchWithPaymentCore.d.ts +131 -0
- package/dist/types/react/core/hooks/x402/useFetchWithPaymentCore.d.ts.map +1 -0
- package/dist/types/react/native/hooks/x402/useFetchWithPayment.d.ts +189 -0
- package/dist/types/react/native/hooks/x402/useFetchWithPayment.d.ts.map +1 -0
- package/dist/types/react/web/hooks/x402/useFetchWithPayment.d.ts +248 -0
- package/dist/types/react/web/hooks/x402/useFetchWithPayment.d.ts.map +1 -0
- package/dist/types/react/web/ui/x402/PaymentErrorModal.d.ts +20 -0
- package/dist/types/react/web/ui/x402/PaymentErrorModal.d.ts.map +1 -0
- package/dist/types/react/web/ui/x402/SignInRequiredModal.d.ts +12 -0
- package/dist/types/react/web/ui/x402/SignInRequiredModal.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/x402/common.d.ts.map +1 -1
- package/dist/types/x402/facilitator.d.ts +1 -1
- package/dist/types/x402/facilitator.d.ts.map +1 -1
- package/dist/types/x402/fetchWithPayment.d.ts +7 -3
- package/dist/types/x402/fetchWithPayment.d.ts.map +1 -1
- package/dist/types/x402/schemas.d.ts +17 -17
- package/dist/types/x402/schemas.d.ts.map +1 -1
- package/dist/types/x402/settle-payment.d.ts +13 -2
- package/dist/types/x402/settle-payment.d.ts.map +1 -1
- package/dist/types/x402/types.d.ts +13 -1
- package/dist/types/x402/types.d.ts.map +1 -1
- package/dist/types/x402/verify-payment.d.ts +12 -2
- package/dist/types/x402/verify-payment.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/exports/react.native.ts +5 -0
- package/src/exports/react.ts +5 -0
- package/src/react/core/hooks/x402/useFetchWithPaymentCore.ts +160 -0
- package/src/react/native/hooks/x402/useFetchWithPayment.ts +96 -0
- package/src/react/web/hooks/x402/useFetchWithPayment.tsx +238 -0
- package/src/react/web/ui/components/basic.tsx +1 -1
- package/src/react/web/ui/x402/PaymentErrorModal.tsx +261 -0
- package/src/react/web/ui/x402/SignInRequiredModal.tsx +75 -0
- package/src/version.ts +1 -1
- package/src/wallets/coinbase/coinbase-web.ts +10 -0
- package/src/x402/common.ts +2 -20
- package/src/x402/facilitator.ts +2 -1
- package/src/x402/fetchWithPayment.ts +23 -22
- package/src/x402/schemas.ts +4 -1
- package/src/x402/settle-payment.ts +13 -2
- package/src/x402/types.ts +16 -1
- package/src/x402/verify-payment.ts +12 -2
|
@@ -62,6 +62,7 @@ export { useAutoConnect } from "../react/web/hooks/wallets/useAutoConnect.js";
|
|
|
62
62
|
export { useLinkProfile } from "../react/web/hooks/wallets/useLinkProfile.js";
|
|
63
63
|
export { useProfiles } from "../react/web/hooks/wallets/useProfiles.js";
|
|
64
64
|
export { useUnlinkProfile } from "../react/web/hooks/wallets/useUnlinkProfile.js";
|
|
65
|
+
export { type UseFetchWithPaymentOptions, useFetchWithPayment, } from "../react/web/hooks/x402/useFetchWithPayment.js";
|
|
65
66
|
export { ThirdwebProvider } from "../react/web/providers/thirdweb-provider.js";
|
|
66
67
|
export { AutoConnect } from "../react/web/ui/AutoConnect/AutoConnect.js";
|
|
67
68
|
export type { BuyOrOnrampPrepareResult } from "../react/web/ui/Bridge/BuyWidget.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/exports/react.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../../src/exports/react.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,7 @@ export { useAutoConnect } from "../react/native/hooks/wallets/useAutoConnect.js"
|
|
|
59
59
|
export { useLinkProfile } from "../react/native/hooks/wallets/useLinkProfile.js";
|
|
60
60
|
export { useProfiles } from "../react/native/hooks/wallets/useProfiles.js";
|
|
61
61
|
export { useUnlinkProfile } from "../react/native/hooks/wallets/useUnlinkProfile.js";
|
|
62
|
+
export { type UseFetchWithPaymentOptions, useFetchWithPayment, } from "../react/native/hooks/x402/useFetchWithPayment.js";
|
|
62
63
|
export { ThirdwebProvider } from "../react/native/providers/thirdweb-provider.js";
|
|
63
64
|
export { AutoConnect } from "../react/native/ui/AutoConnect/AutoConnect.js";
|
|
64
65
|
export { ConnectButton } from "../react/native/ui/connect/ConnectButton.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.native.d.ts","sourceRoot":"","sources":["../../../src/exports/react.native.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"react.native.d.ts","sourceRoot":"","sources":["../../../src/exports/react.native.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type { ThirdwebClient } from "../../../../client/client.js";
|
|
2
|
+
import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
|
|
3
|
+
import type { RequestedPaymentRequirements } from "../../../../x402/schemas.js";
|
|
4
|
+
import type { PaymentRequiredResult } from "../../../../x402/types.js";
|
|
5
|
+
export type UseFetchWithPaymentOptions = {
|
|
6
|
+
maxValue?: bigint;
|
|
7
|
+
paymentRequirementsSelector?: (paymentRequirements: RequestedPaymentRequirements[]) => RequestedPaymentRequirements | undefined;
|
|
8
|
+
parseAs?: "json" | "text" | "raw";
|
|
9
|
+
};
|
|
10
|
+
type ShowErrorModalCallback = (data: {
|
|
11
|
+
errorData: PaymentRequiredResult["responseBody"];
|
|
12
|
+
onRetry: () => void;
|
|
13
|
+
onCancel: () => void;
|
|
14
|
+
}) => void;
|
|
15
|
+
type ShowConnectModalCallback = (data: {
|
|
16
|
+
onConnect: (wallet: Wallet) => void;
|
|
17
|
+
onCancel: () => void;
|
|
18
|
+
}) => void;
|
|
19
|
+
/**
|
|
20
|
+
* Core hook for fetch with payment functionality.
|
|
21
|
+
* This is the platform-agnostic implementation used by both web and native versions.
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export declare function useFetchWithPaymentCore(client: ThirdwebClient, options?: UseFetchWithPaymentOptions, showErrorModal?: ShowErrorModalCallback, showConnectModal?: ShowConnectModalCallback): {
|
|
25
|
+
data: undefined;
|
|
26
|
+
variables: undefined;
|
|
27
|
+
error: null;
|
|
28
|
+
isError: false;
|
|
29
|
+
isIdle: true;
|
|
30
|
+
isPending: false;
|
|
31
|
+
isSuccess: false;
|
|
32
|
+
status: "idle";
|
|
33
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
34
|
+
input: RequestInfo;
|
|
35
|
+
init?: RequestInit;
|
|
36
|
+
}, unknown>;
|
|
37
|
+
reset: () => void;
|
|
38
|
+
context: unknown;
|
|
39
|
+
failureCount: number;
|
|
40
|
+
failureReason: Error | null;
|
|
41
|
+
isPaused: boolean;
|
|
42
|
+
submittedAt: number;
|
|
43
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
44
|
+
input: RequestInfo;
|
|
45
|
+
init?: RequestInit;
|
|
46
|
+
}, unknown>;
|
|
47
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
48
|
+
} | {
|
|
49
|
+
data: undefined;
|
|
50
|
+
variables: {
|
|
51
|
+
input: RequestInfo;
|
|
52
|
+
init?: RequestInit;
|
|
53
|
+
};
|
|
54
|
+
error: null;
|
|
55
|
+
isError: false;
|
|
56
|
+
isIdle: false;
|
|
57
|
+
isPending: true;
|
|
58
|
+
isSuccess: false;
|
|
59
|
+
status: "pending";
|
|
60
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
61
|
+
input: RequestInfo;
|
|
62
|
+
init?: RequestInit;
|
|
63
|
+
}, unknown>;
|
|
64
|
+
reset: () => void;
|
|
65
|
+
context: unknown;
|
|
66
|
+
failureCount: number;
|
|
67
|
+
failureReason: Error | null;
|
|
68
|
+
isPaused: boolean;
|
|
69
|
+
submittedAt: number;
|
|
70
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
71
|
+
input: RequestInfo;
|
|
72
|
+
init?: RequestInit;
|
|
73
|
+
}, unknown>;
|
|
74
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
75
|
+
} | {
|
|
76
|
+
data: undefined;
|
|
77
|
+
error: Error;
|
|
78
|
+
variables: {
|
|
79
|
+
input: RequestInfo;
|
|
80
|
+
init?: RequestInit;
|
|
81
|
+
};
|
|
82
|
+
isError: true;
|
|
83
|
+
isIdle: false;
|
|
84
|
+
isPending: false;
|
|
85
|
+
isSuccess: false;
|
|
86
|
+
status: "error";
|
|
87
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
88
|
+
input: RequestInfo;
|
|
89
|
+
init?: RequestInit;
|
|
90
|
+
}, unknown>;
|
|
91
|
+
reset: () => void;
|
|
92
|
+
context: unknown;
|
|
93
|
+
failureCount: number;
|
|
94
|
+
failureReason: Error | null;
|
|
95
|
+
isPaused: boolean;
|
|
96
|
+
submittedAt: number;
|
|
97
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
98
|
+
input: RequestInfo;
|
|
99
|
+
init?: RequestInit;
|
|
100
|
+
}, unknown>;
|
|
101
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
102
|
+
} | {
|
|
103
|
+
data: unknown;
|
|
104
|
+
error: null;
|
|
105
|
+
variables: {
|
|
106
|
+
input: RequestInfo;
|
|
107
|
+
init?: RequestInit;
|
|
108
|
+
};
|
|
109
|
+
isError: false;
|
|
110
|
+
isIdle: false;
|
|
111
|
+
isPending: false;
|
|
112
|
+
isSuccess: true;
|
|
113
|
+
status: "success";
|
|
114
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
115
|
+
input: RequestInfo;
|
|
116
|
+
init?: RequestInit;
|
|
117
|
+
}, unknown>;
|
|
118
|
+
reset: () => void;
|
|
119
|
+
context: unknown;
|
|
120
|
+
failureCount: number;
|
|
121
|
+
failureReason: Error | null;
|
|
122
|
+
isPaused: boolean;
|
|
123
|
+
submittedAt: number;
|
|
124
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
125
|
+
input: RequestInfo;
|
|
126
|
+
init?: RequestInit;
|
|
127
|
+
}, unknown>;
|
|
128
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
129
|
+
};
|
|
130
|
+
export {};
|
|
131
|
+
//# sourceMappingURL=useFetchWithPaymentCore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFetchWithPaymentCore.d.ts","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/x402/useFetchWithPaymentCore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAC;AAEvE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B,CAAC,EAAE,CAC5B,mBAAmB,EAAE,4BAA4B,EAAE,KAChD,4BAA4B,GAAG,SAAS,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;CACnC,CAAC;AAEF,KAAK,sBAAsB,GAAG,CAAC,IAAI,EAAE;IACnC,SAAS,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IACjD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,KAAK,IAAI,CAAC;AAEX,KAAK,wBAAwB,GAAG,CAAC,IAAI,EAAE;IACrC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB,KAAK,IAAI,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,0BAA0B,EACpC,cAAc,CAAC,EAAE,sBAAsB,EACvC,gBAAgB,CAAC,EAAE,wBAAwB;;;;;;;;;;eAShC,WAAW;eACX,WAAW;;;;;;;;;eADX,WAAW;eACX,WAAW;;8BA8FY,WAAW,SAAS,WAAW;;;;eA/FtD,WAAW;eACX,WAAW;;;;;;;;;eADX,WAAW;eACX,WAAW;;;;;;;;;eADX,WAAW;eACX,WAAW;;8BA8FY,WAAW,SAAS,WAAW;;;;;eA/FtD,WAAW;eACX,WAAW;;;;;;;;eADX,WAAW;eACX,WAAW;;;;;;;;;eADX,WAAW;eACX,WAAW;;8BA8FY,WAAW,SAAS,WAAW;;;;;eA/FtD,WAAW;eACX,WAAW;;;;;;;;eADX,WAAW;eACX,WAAW;;;;;;;;;eADX,WAAW;eACX,WAAW;;8BA8FY,WAAW,SAAS,WAAW;EAKlE"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import type { ThirdwebClient } from "../../../../client/client.js";
|
|
2
|
+
import { type UseFetchWithPaymentOptions } from "../../../core/hooks/x402/useFetchWithPaymentCore.js";
|
|
3
|
+
export type { UseFetchWithPaymentOptions };
|
|
4
|
+
/**
|
|
5
|
+
* A React hook that wraps the native fetch API to automatically handle 402 Payment Required responses
|
|
6
|
+
* using the x402 payment protocol with the currently connected wallet.
|
|
7
|
+
*
|
|
8
|
+
* This hook enables you to make API calls that require payment without manually handling the payment flow.
|
|
9
|
+
* Responses are automatically parsed as JSON by default (can be customized with `parseAs` option).
|
|
10
|
+
*
|
|
11
|
+
* When a 402 response is received, it will automatically:
|
|
12
|
+
* 1. Parse the payment requirements
|
|
13
|
+
* 2. Verify the payment amount is within the allowed maximum
|
|
14
|
+
* 3. Create a payment header using the connected wallet
|
|
15
|
+
* 4. Retry the request with the payment header
|
|
16
|
+
*
|
|
17
|
+
* Note: This is the React Native version which does not include modal UI.
|
|
18
|
+
* Payment errors will be thrown and should be handled by your application.
|
|
19
|
+
*
|
|
20
|
+
* @param client - The thirdweb client used to access RPC infrastructure
|
|
21
|
+
* @param options - Optional configuration for payment handling
|
|
22
|
+
* @param options.maxValue - The maximum allowed payment amount in base units
|
|
23
|
+
* @param options.paymentRequirementsSelector - Custom function to select payment requirements from available options
|
|
24
|
+
* @param options.parseAs - How to parse the response: "json" (default), "text", or "raw"
|
|
25
|
+
* @returns An object containing:
|
|
26
|
+
* - `fetchWithPayment`: Function to make fetch requests with automatic payment handling (returns parsed data)
|
|
27
|
+
* - `isPending`: Boolean indicating if a request is in progress
|
|
28
|
+
* - `error`: Any error that occurred during the request
|
|
29
|
+
* - `data`: The parsed response data (JSON by default, or based on `parseAs` option)
|
|
30
|
+
* - Other mutation properties from React Query
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* import { useFetchWithPayment } from "thirdweb/react";
|
|
35
|
+
* import { createThirdwebClient } from "thirdweb";
|
|
36
|
+
*
|
|
37
|
+
* const client = createThirdwebClient({ clientId: "your-client-id" });
|
|
38
|
+
*
|
|
39
|
+
* function MyComponent() {
|
|
40
|
+
* const { fetchWithPayment, isPending, error } = useFetchWithPayment(client);
|
|
41
|
+
*
|
|
42
|
+
* const handleApiCall = async () => {
|
|
43
|
+
* try {
|
|
44
|
+
* // Response is automatically parsed as JSON
|
|
45
|
+
* const data = await fetchWithPayment('https://api.example.com/paid-endpoint');
|
|
46
|
+
* console.log(data);
|
|
47
|
+
* } catch (err) {
|
|
48
|
+
* // Handle payment errors manually in React Native
|
|
49
|
+
* console.error("Payment failed:", err);
|
|
50
|
+
* }
|
|
51
|
+
* };
|
|
52
|
+
*
|
|
53
|
+
* return (
|
|
54
|
+
* <button onClick={handleApiCall} disabled={isPending}>
|
|
55
|
+
* {isPending ? 'Loading...' : 'Make Paid API Call'}
|
|
56
|
+
* </button>
|
|
57
|
+
* );
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*
|
|
61
|
+
* ### Customize response parsing
|
|
62
|
+
* ```tsx
|
|
63
|
+
* const { fetchWithPayment } = useFetchWithPayment(client, {
|
|
64
|
+
* parseAs: "text", // Get response as text instead of JSON
|
|
65
|
+
* });
|
|
66
|
+
*
|
|
67
|
+
* const textData = await fetchWithPayment('https://api.example.com/endpoint');
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* ### Customize payment options
|
|
71
|
+
* ```tsx
|
|
72
|
+
* const { fetchWithPayment } = useFetchWithPayment(client, {
|
|
73
|
+
* maxValue: 5000000n, // 5 USDC in base units
|
|
74
|
+
* paymentRequirementsSelector: (requirements) => {
|
|
75
|
+
* // Custom logic to select preferred payment method
|
|
76
|
+
* return requirements[0];
|
|
77
|
+
* }
|
|
78
|
+
* });
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @x402
|
|
82
|
+
*/
|
|
83
|
+
export declare function useFetchWithPayment(client: ThirdwebClient, options?: UseFetchWithPaymentOptions): {
|
|
84
|
+
data: undefined;
|
|
85
|
+
variables: undefined;
|
|
86
|
+
error: null;
|
|
87
|
+
isError: false;
|
|
88
|
+
isIdle: true;
|
|
89
|
+
isPending: false;
|
|
90
|
+
isSuccess: false;
|
|
91
|
+
status: "idle";
|
|
92
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
93
|
+
input: RequestInfo;
|
|
94
|
+
init?: RequestInit;
|
|
95
|
+
}, unknown>;
|
|
96
|
+
reset: () => void;
|
|
97
|
+
context: unknown;
|
|
98
|
+
failureCount: number;
|
|
99
|
+
failureReason: Error | null;
|
|
100
|
+
isPaused: boolean;
|
|
101
|
+
submittedAt: number;
|
|
102
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
103
|
+
input: RequestInfo;
|
|
104
|
+
init?: RequestInit;
|
|
105
|
+
}, unknown>;
|
|
106
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
107
|
+
} | {
|
|
108
|
+
data: undefined;
|
|
109
|
+
variables: {
|
|
110
|
+
input: RequestInfo;
|
|
111
|
+
init?: RequestInit;
|
|
112
|
+
};
|
|
113
|
+
error: null;
|
|
114
|
+
isError: false;
|
|
115
|
+
isIdle: false;
|
|
116
|
+
isPending: true;
|
|
117
|
+
isSuccess: false;
|
|
118
|
+
status: "pending";
|
|
119
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
120
|
+
input: RequestInfo;
|
|
121
|
+
init?: RequestInit;
|
|
122
|
+
}, unknown>;
|
|
123
|
+
reset: () => void;
|
|
124
|
+
context: unknown;
|
|
125
|
+
failureCount: number;
|
|
126
|
+
failureReason: Error | null;
|
|
127
|
+
isPaused: boolean;
|
|
128
|
+
submittedAt: number;
|
|
129
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
130
|
+
input: RequestInfo;
|
|
131
|
+
init?: RequestInit;
|
|
132
|
+
}, unknown>;
|
|
133
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
134
|
+
} | {
|
|
135
|
+
data: undefined;
|
|
136
|
+
error: Error;
|
|
137
|
+
variables: {
|
|
138
|
+
input: RequestInfo;
|
|
139
|
+
init?: RequestInit;
|
|
140
|
+
};
|
|
141
|
+
isError: true;
|
|
142
|
+
isIdle: false;
|
|
143
|
+
isPending: false;
|
|
144
|
+
isSuccess: false;
|
|
145
|
+
status: "error";
|
|
146
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
147
|
+
input: RequestInfo;
|
|
148
|
+
init?: RequestInit;
|
|
149
|
+
}, unknown>;
|
|
150
|
+
reset: () => void;
|
|
151
|
+
context: unknown;
|
|
152
|
+
failureCount: number;
|
|
153
|
+
failureReason: Error | null;
|
|
154
|
+
isPaused: boolean;
|
|
155
|
+
submittedAt: number;
|
|
156
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
157
|
+
input: RequestInfo;
|
|
158
|
+
init?: RequestInit;
|
|
159
|
+
}, unknown>;
|
|
160
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
161
|
+
} | {
|
|
162
|
+
data: unknown;
|
|
163
|
+
error: null;
|
|
164
|
+
variables: {
|
|
165
|
+
input: RequestInfo;
|
|
166
|
+
init?: RequestInit;
|
|
167
|
+
};
|
|
168
|
+
isError: false;
|
|
169
|
+
isIdle: false;
|
|
170
|
+
isPending: false;
|
|
171
|
+
isSuccess: true;
|
|
172
|
+
status: "success";
|
|
173
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
174
|
+
input: RequestInfo;
|
|
175
|
+
init?: RequestInit;
|
|
176
|
+
}, unknown>;
|
|
177
|
+
reset: () => void;
|
|
178
|
+
context: unknown;
|
|
179
|
+
failureCount: number;
|
|
180
|
+
failureReason: Error | null;
|
|
181
|
+
isPaused: boolean;
|
|
182
|
+
submittedAt: number;
|
|
183
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
184
|
+
input: RequestInfo;
|
|
185
|
+
init?: RequestInit;
|
|
186
|
+
}, unknown>;
|
|
187
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
188
|
+
};
|
|
189
|
+
//# sourceMappingURL=useFetchWithPayment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFetchWithPayment.d.ts","sourceRoot":"","sources":["../../../../../../src/react/native/hooks/x402/useFetchWithPayment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,KAAK,0BAA0B,EAEhC,MAAM,qDAAqD,CAAC;AAE7D,YAAY,EAAE,0BAA0B,EAAE,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIrC"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import type { ThirdwebClient } from "../../../../client/client.js";
|
|
2
|
+
import type { Theme } from "../../../core/design-system/index.js";
|
|
3
|
+
import { type UseFetchWithPaymentOptions } from "../../../core/hooks/x402/useFetchWithPaymentCore.js";
|
|
4
|
+
import type { BuyWidgetProps } from "../../ui/Bridge/BuyWidget.js";
|
|
5
|
+
import { type UseConnectModalOptions } from "../../ui/ConnectWallet/useConnectModal.js";
|
|
6
|
+
export type { UseFetchWithPaymentOptions };
|
|
7
|
+
type UseFetchWithPaymentConfig = UseFetchWithPaymentOptions & {
|
|
8
|
+
/**
|
|
9
|
+
* Whether to show the UI for connection, funding or payment retries.
|
|
10
|
+
* If false, no UI will be shown and errors will have to be handled manually.
|
|
11
|
+
* @default true
|
|
12
|
+
*/
|
|
13
|
+
uiEnabled?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Theme for the payment error modal
|
|
16
|
+
* @default "dark"
|
|
17
|
+
*/
|
|
18
|
+
theme?: Theme | "light" | "dark";
|
|
19
|
+
/**
|
|
20
|
+
* Options to customize the BuyWidget that appears when the user needs to fund their wallet.
|
|
21
|
+
* These options will be merged with default values.
|
|
22
|
+
*/
|
|
23
|
+
fundWalletOptions?: Partial<Omit<BuyWidgetProps, "client" | "chain" | "tokenAddress" | "onSuccess" | "onCancel" | "theme">>;
|
|
24
|
+
/**
|
|
25
|
+
* Options to customize the ConnectModal that appears when the user needs to sign in.
|
|
26
|
+
* These options will be merged with the client, theme, and chain from the hook.
|
|
27
|
+
*/
|
|
28
|
+
connectOptions?: Omit<UseConnectModalOptions, "client" | "theme">;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* A React hook that wraps the native fetch API to automatically handle 402 Payment Required responses
|
|
32
|
+
* using the x402 payment protocol with the currently connected wallet.
|
|
33
|
+
*
|
|
34
|
+
* This hook enables you to make API calls that require payment without manually handling the payment flow.
|
|
35
|
+
* Responses are automatically parsed as JSON by default (can be customized with `parseAs` option).
|
|
36
|
+
*
|
|
37
|
+
* When a 402 response is received, it will automatically:
|
|
38
|
+
* 1. Parse the payment requirements
|
|
39
|
+
* 2. Verify the payment amount is within the allowed maximum
|
|
40
|
+
* 3. Create a payment header using the connected wallet
|
|
41
|
+
* 4. Retry the request with the payment header
|
|
42
|
+
*
|
|
43
|
+
* If payment fails (e.g. insufficient funds), a modal will be shown to help the user resolve the issue.
|
|
44
|
+
* If no wallet is connected, a sign-in modal will be shown to connect a wallet.
|
|
45
|
+
*
|
|
46
|
+
* @param client - The thirdweb client used to access RPC infrastructure
|
|
47
|
+
* @param options - Optional configuration for payment handling
|
|
48
|
+
* @param options.maxValue - The maximum allowed payment amount in base units
|
|
49
|
+
* @param options.paymentRequirementsSelector - Custom function to select payment requirements from available options
|
|
50
|
+
* @param options.parseAs - How to parse the response: "json" (default), "text", or "raw"
|
|
51
|
+
* @param options.uiEnabled - Whether to show the UI for connection, funding or payment retries (defaults to true). Set to false to handle errors yourself
|
|
52
|
+
* @param options.theme - Theme for the payment error modal (defaults to "dark")
|
|
53
|
+
* @param options.fundWalletOptions - Customize the BuyWidget shown when user needs to fund their wallet
|
|
54
|
+
* @param options.connectOptions - Customize the ConnectModal shown when user needs to sign in
|
|
55
|
+
* @returns An object containing:
|
|
56
|
+
* - `fetchWithPayment`: Function to make fetch requests with automatic payment handling (returns parsed data)
|
|
57
|
+
* - `isPending`: Boolean indicating if a request is in progress
|
|
58
|
+
* - `error`: Any error that occurred during the request
|
|
59
|
+
* - `data`: The parsed response data (JSON by default, or based on `parseAs` option)
|
|
60
|
+
* - Other mutation properties from React Query
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```tsx
|
|
64
|
+
* import { useFetchWithPayment } from "thirdweb/react";
|
|
65
|
+
* import { createThirdwebClient } from "thirdweb";
|
|
66
|
+
*
|
|
67
|
+
* const client = createThirdwebClient({ clientId: "your-client-id" });
|
|
68
|
+
*
|
|
69
|
+
* function MyComponent() {
|
|
70
|
+
* const { fetchWithPayment, isPending } = useFetchWithPayment(client);
|
|
71
|
+
*
|
|
72
|
+
* const handleApiCall = async () => {
|
|
73
|
+
* // Response is automatically parsed as JSON
|
|
74
|
+
* const data = await fetchWithPayment('https://api.example.com/paid-endpoint');
|
|
75
|
+
* console.log(data);
|
|
76
|
+
* };
|
|
77
|
+
*
|
|
78
|
+
* return (
|
|
79
|
+
* <button onClick={handleApiCall} disabled={isPending}>
|
|
80
|
+
* {isPending ? 'Loading...' : 'Make Paid API Call'}
|
|
81
|
+
* </button>
|
|
82
|
+
* );
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* ### Customize response parsing
|
|
87
|
+
* ```tsx
|
|
88
|
+
* const { fetchWithPayment } = useFetchWithPayment(client, {
|
|
89
|
+
* parseAs: "text", // Get response as text instead of JSON
|
|
90
|
+
* });
|
|
91
|
+
*
|
|
92
|
+
* const textData = await fetchWithPayment('https://api.example.com/endpoint');
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* ### Customize payment options
|
|
96
|
+
* ```tsx
|
|
97
|
+
* const { fetchWithPayment } = useFetchWithPayment(client, {
|
|
98
|
+
* maxValue: 5000000n, // 5 USDC in base units
|
|
99
|
+
* theme: "light",
|
|
100
|
+
* paymentRequirementsSelector: (requirements) => {
|
|
101
|
+
* // Custom logic to select preferred payment method
|
|
102
|
+
* return requirements[0];
|
|
103
|
+
* }
|
|
104
|
+
* });
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* ### Customize the fund wallet widget
|
|
108
|
+
* ```tsx
|
|
109
|
+
* const { fetchWithPayment } = useFetchWithPayment(client, {
|
|
110
|
+
* fundWalletOptions: {
|
|
111
|
+
* title: "Add Funds",
|
|
112
|
+
* description: "You need more tokens to complete this payment",
|
|
113
|
+
* buttonLabel: "Get Tokens",
|
|
114
|
+
* }
|
|
115
|
+
* });
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* ### Customize the connect modal
|
|
119
|
+
* ```tsx
|
|
120
|
+
* const { fetchWithPayment } = useFetchWithPayment(client, {
|
|
121
|
+
* connectOptions: {
|
|
122
|
+
* wallets: [inAppWallet(), createWallet("io.metamask")],
|
|
123
|
+
* title: "Sign in to continue",
|
|
124
|
+
* }
|
|
125
|
+
* });
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* ### Disable the UI and handle errors yourself
|
|
129
|
+
* ```tsx
|
|
130
|
+
* const { fetchWithPayment, error } = useFetchWithPayment(client, {
|
|
131
|
+
* uiEnabled: false,
|
|
132
|
+
* });
|
|
133
|
+
*
|
|
134
|
+
* // Handle the error manually
|
|
135
|
+
* if (error) {
|
|
136
|
+
* console.error("Payment failed:", error);
|
|
137
|
+
* }
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @x402
|
|
141
|
+
*/
|
|
142
|
+
export declare function useFetchWithPayment(client: ThirdwebClient, options?: UseFetchWithPaymentConfig): {
|
|
143
|
+
data: undefined;
|
|
144
|
+
variables: undefined;
|
|
145
|
+
error: null;
|
|
146
|
+
isError: false;
|
|
147
|
+
isIdle: true;
|
|
148
|
+
isPending: false;
|
|
149
|
+
isSuccess: false;
|
|
150
|
+
status: "idle";
|
|
151
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
152
|
+
input: RequestInfo;
|
|
153
|
+
init?: RequestInit;
|
|
154
|
+
}, unknown>;
|
|
155
|
+
reset: () => void;
|
|
156
|
+
context: unknown;
|
|
157
|
+
failureCount: number;
|
|
158
|
+
failureReason: Error | null;
|
|
159
|
+
isPaused: boolean;
|
|
160
|
+
submittedAt: number;
|
|
161
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
162
|
+
input: RequestInfo;
|
|
163
|
+
init?: RequestInit;
|
|
164
|
+
}, unknown>;
|
|
165
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
166
|
+
} | {
|
|
167
|
+
data: undefined;
|
|
168
|
+
variables: {
|
|
169
|
+
input: RequestInfo;
|
|
170
|
+
init?: RequestInit;
|
|
171
|
+
};
|
|
172
|
+
error: null;
|
|
173
|
+
isError: false;
|
|
174
|
+
isIdle: false;
|
|
175
|
+
isPending: true;
|
|
176
|
+
isSuccess: false;
|
|
177
|
+
status: "pending";
|
|
178
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
179
|
+
input: RequestInfo;
|
|
180
|
+
init?: RequestInit;
|
|
181
|
+
}, unknown>;
|
|
182
|
+
reset: () => void;
|
|
183
|
+
context: unknown;
|
|
184
|
+
failureCount: number;
|
|
185
|
+
failureReason: Error | null;
|
|
186
|
+
isPaused: boolean;
|
|
187
|
+
submittedAt: number;
|
|
188
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
189
|
+
input: RequestInfo;
|
|
190
|
+
init?: RequestInit;
|
|
191
|
+
}, unknown>;
|
|
192
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
193
|
+
} | {
|
|
194
|
+
data: undefined;
|
|
195
|
+
error: Error;
|
|
196
|
+
variables: {
|
|
197
|
+
input: RequestInfo;
|
|
198
|
+
init?: RequestInit;
|
|
199
|
+
};
|
|
200
|
+
isError: true;
|
|
201
|
+
isIdle: false;
|
|
202
|
+
isPending: false;
|
|
203
|
+
isSuccess: false;
|
|
204
|
+
status: "error";
|
|
205
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
206
|
+
input: RequestInfo;
|
|
207
|
+
init?: RequestInit;
|
|
208
|
+
}, unknown>;
|
|
209
|
+
reset: () => void;
|
|
210
|
+
context: unknown;
|
|
211
|
+
failureCount: number;
|
|
212
|
+
failureReason: Error | null;
|
|
213
|
+
isPaused: boolean;
|
|
214
|
+
submittedAt: number;
|
|
215
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
216
|
+
input: RequestInfo;
|
|
217
|
+
init?: RequestInit;
|
|
218
|
+
}, unknown>;
|
|
219
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
220
|
+
} | {
|
|
221
|
+
data: unknown;
|
|
222
|
+
error: null;
|
|
223
|
+
variables: {
|
|
224
|
+
input: RequestInfo;
|
|
225
|
+
init?: RequestInit;
|
|
226
|
+
};
|
|
227
|
+
isError: false;
|
|
228
|
+
isIdle: false;
|
|
229
|
+
isPending: false;
|
|
230
|
+
isSuccess: true;
|
|
231
|
+
status: "success";
|
|
232
|
+
mutate: import("@tanstack/react-query").UseMutateFunction<unknown, Error, {
|
|
233
|
+
input: RequestInfo;
|
|
234
|
+
init?: RequestInit;
|
|
235
|
+
}, unknown>;
|
|
236
|
+
reset: () => void;
|
|
237
|
+
context: unknown;
|
|
238
|
+
failureCount: number;
|
|
239
|
+
failureReason: Error | null;
|
|
240
|
+
isPaused: boolean;
|
|
241
|
+
submittedAt: number;
|
|
242
|
+
mutateAsync: import("@tanstack/react-query").UseMutateAsyncFunction<unknown, Error, {
|
|
243
|
+
input: RequestInfo;
|
|
244
|
+
init?: RequestInit;
|
|
245
|
+
}, unknown>;
|
|
246
|
+
fetchWithPayment: (input: RequestInfo, init?: RequestInit) => Promise<unknown>;
|
|
247
|
+
};
|
|
248
|
+
//# sourceMappingURL=useFetchWithPayment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFetchWithPayment.d.ts","sourceRoot":"","sources":["../../../../../../src/react/web/hooks/x402/useFetchWithPayment.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAClE,OAAO,EACL,KAAK,0BAA0B,EAEhC,MAAM,qDAAqD,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,2CAA2C,CAAC;AAInD,YAAY,EAAE,0BAA0B,EAAE,CAAC;AAE3C,KAAK,yBAAyB,GAAG,0BAA0B,GAAG;IAC5D;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACjC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CACzB,IAAI,CACF,cAAc,EACd,QAAQ,GAAG,OAAO,GAAG,cAAc,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CACzE,CACF,CAAC;IACF;;;OAGG;IACH,cAAc,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;CACnE,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyEpC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ThirdwebClient } from "../../../../client/client.js";
|
|
2
|
+
import { type RequestedPaymentRequirements } from "../../../../x402/schemas.js";
|
|
3
|
+
import type { PaymentRequiredResult } from "../../../../x402/types.js";
|
|
4
|
+
import type { Theme } from "../../../core/design-system/index.js";
|
|
5
|
+
import { type BuyWidgetProps } from "../Bridge/BuyWidget.js";
|
|
6
|
+
type PaymentErrorModalProps = {
|
|
7
|
+
client: ThirdwebClient;
|
|
8
|
+
errorData: PaymentRequiredResult["responseBody"];
|
|
9
|
+
onRetry: () => void;
|
|
10
|
+
onCancel: () => void;
|
|
11
|
+
theme: Theme | "light" | "dark";
|
|
12
|
+
fundWalletOptions?: Partial<Omit<BuyWidgetProps, "client" | "chain" | "tokenAddress" | "amount" | "onSuccess" | "onCancel" | "theme">>;
|
|
13
|
+
paymentRequirementsSelector?: (paymentRequirements: RequestedPaymentRequirements[]) => RequestedPaymentRequirements | undefined;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export declare function PaymentErrorModal(props: PaymentErrorModalProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=PaymentErrorModal.d.ts.map
|