@mintmoney/react 0.1.0-alpha.30 → 0.1.0-alpha.32
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/esm/api/checkouts.js +3 -10
- package/dist/esm/api/checkouts.js.map +1 -1
- package/dist/esm/api/generated.js +16 -500
- package/dist/esm/api/generated.js.map +1 -1
- package/dist/esm/api/payments.js +28 -29
- package/dist/esm/api/payments.js.map +1 -1
- package/dist/esm/api/types.js.map +1 -1
- package/dist/esm/checkout/index.js +19 -1
- package/dist/esm/checkout/index.js.map +1 -1
- package/dist/esm/checkout/modal.js +7 -7
- package/dist/esm/checkout/modal.js.map +1 -1
- package/dist/esm/checkout/views/crypto-intent/direct-details.js +148 -19
- package/dist/esm/checkout/views/crypto-intent/direct-details.js.map +1 -1
- package/dist/esm/checkout/views/crypto-intent/methods.js +5 -5
- package/dist/esm/checkout/views/crypto-intent/methods.js.map +1 -1
- package/dist/esm/checkout/views/crypto-intent/wallet-payment-confirmation-amount.js +30 -0
- package/dist/esm/checkout/views/crypto-intent/wallet-payment-confirmation-amount.js.map +1 -0
- package/dist/esm/checkout/views/crypto-intent/wallet-payment-options.js +581 -0
- package/dist/esm/checkout/views/crypto-intent/wallet-payment-options.js.map +1 -0
- package/dist/esm/checkout/views/crypto-intent/wallet-select.js +3 -31
- package/dist/esm/checkout/views/crypto-intent/wallet-select.js.map +1 -1
- package/dist/esm/checkout/views/initial.js +1 -4
- package/dist/esm/checkout/views/initial.js.map +1 -1
- package/dist/esm/checkout/views/restart.js +2 -0
- package/dist/esm/checkout/views/restart.js.map +1 -1
- package/dist/esm/components/text/index.js +1 -0
- package/dist/esm/components/text/index.js.map +1 -1
- package/dist/esm/components/wallet-selector/wallets/wagmi/index.js +8 -1
- package/dist/esm/components/wallet-selector/wallets/wagmi/index.js.map +1 -1
- package/dist/esm/config.js +1 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/integrations/evm-chain.js +22 -0
- package/dist/esm/integrations/evm-chain.js.map +1 -0
- package/dist/esm/integrations/index.js +1 -0
- package/dist/esm/integrations/index.js.map +1 -1
- package/dist/esm/integrations/lifi.js +200 -0
- package/dist/esm/integrations/lifi.js.map +1 -0
- package/dist/esm/state/checkout/payment-attempt.js +43 -0
- package/dist/esm/state/checkout/payment-attempt.js.map +1 -0
- package/dist/esm/state/checkout/payment-lifecycle.js +58 -0
- package/dist/esm/state/checkout/payment-lifecycle.js.map +1 -0
- package/dist/esm/state/checkout/store.js +465 -42
- package/dist/esm/state/checkout/store.js.map +1 -1
- package/dist/types/api/checkouts.d.ts +0 -1
- package/dist/types/api/checkouts.d.ts.map +1 -1
- package/dist/types/api/generated.d.ts +162 -1406
- package/dist/types/api/generated.d.ts.map +1 -1
- package/dist/types/api/payments.d.ts +18 -8
- package/dist/types/api/payments.d.ts.map +1 -1
- package/dist/types/api/types.d.ts +6 -8
- package/dist/types/api/types.d.ts.map +1 -1
- package/dist/types/checkout/index.d.ts.map +1 -1
- package/dist/types/checkout/views/crypto-intent/direct-details.d.ts.map +1 -1
- package/dist/types/checkout/views/crypto-intent/wallet-payment-confirmation-amount.d.ts +13 -0
- package/dist/types/checkout/views/crypto-intent/wallet-payment-confirmation-amount.d.ts.map +1 -0
- package/dist/types/checkout/views/crypto-intent/wallet-payment-options.d.ts +3 -0
- package/dist/types/checkout/views/crypto-intent/wallet-payment-options.d.ts.map +1 -0
- package/dist/types/checkout/views/crypto-intent/wallet-select.d.ts.map +1 -1
- package/dist/types/checkout/views/initial.d.ts.map +1 -1
- package/dist/types/checkout/views/restart.d.ts.map +1 -1
- package/dist/types/components/text/index.d.ts.map +1 -1
- package/dist/types/components/wallet-selector/domain.d.ts +9 -0
- package/dist/types/components/wallet-selector/domain.d.ts.map +1 -1
- package/dist/types/components/wallet-selector/wallets/wagmi/index.d.ts +449 -0
- package/dist/types/components/wallet-selector/wallets/wagmi/index.d.ts.map +1 -1
- package/dist/types/config.d.ts +65 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/integrations/evm-chain.d.ts +3 -0
- package/dist/types/integrations/evm-chain.d.ts.map +1 -0
- package/dist/types/integrations/index.d.ts +1 -0
- package/dist/types/integrations/index.d.ts.map +1 -1
- package/dist/types/integrations/lifi.d.ts +14 -0
- package/dist/types/integrations/lifi.d.ts.map +1 -0
- package/dist/types/state/checkout/payment-attempt.d.ts +9 -0
- package/dist/types/state/checkout/payment-attempt.d.ts.map +1 -0
- package/dist/types/state/checkout/payment-lifecycle.d.ts +20 -0
- package/dist/types/state/checkout/payment-lifecycle.d.ts.map +1 -0
- package/dist/types/state/checkout/store.d.ts +31 -86
- package/dist/types/state/checkout/store.d.ts.map +1 -1
- package/package.json +4 -2
- package/dist/esm/checkout/views/crypto-intent/currency-select.js +0 -44
- package/dist/esm/checkout/views/crypto-intent/currency-select.js.map +0 -1
- package/dist/esm/components/crypto/default-currency-selector.js +0 -62
- package/dist/esm/components/crypto/default-currency-selector.js.map +0 -1
- package/dist/types/checkout/views/crypto-intent/currency-select.d.ts +0 -3
- package/dist/types/checkout/views/crypto-intent/currency-select.d.ts.map +0 -1
- package/dist/types/components/crypto/default-currency-selector.d.ts +0 -9
- package/dist/types/components/crypto/default-currency-selector.d.ts.map +0 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { FiatPaymentMethod } from "../../api/payments.js";
|
|
1
|
+
import { FiatPaymentMethod, FiatPaymentAttempt } from "../../api/payments.js";
|
|
3
2
|
import { Checkout, CheckoutMethod, CryptoCurrency, Payment, CryptoPaymentAttempt, PaymentStatus } from "../../api/types.js";
|
|
4
3
|
import { WalletInterface, Transfer } from "../../components/wallet-selector/domain.js";
|
|
4
|
+
import { WalletPaymentOption, WalletPaymentQuote, WalletPaymentState } from "../../config.js";
|
|
5
|
+
import { type AttemptFreshnessStatus } from "./payment-lifecycle.js";
|
|
5
6
|
export declare enum ACTIONS {
|
|
6
7
|
GET_CHECKOUT_CONFIG = "GET_CHECKOUT_CONFIG",
|
|
7
8
|
GET_CRYPTO_CURRENCIES = "GET_CRYPTO_CURRENCIES",
|
|
@@ -25,14 +26,25 @@ interface PollingState {
|
|
|
25
26
|
pollCount: number;
|
|
26
27
|
lastPollTime: number | null;
|
|
27
28
|
}
|
|
29
|
+
interface AttemptFreshnessState {
|
|
30
|
+
status: AttemptFreshnessStatus;
|
|
31
|
+
expiresAt: number | null;
|
|
32
|
+
remainingMs: number | null;
|
|
33
|
+
}
|
|
34
|
+
interface AttemptRefreshState {
|
|
35
|
+
mode: "none" | "manual" | "wallet";
|
|
36
|
+
status: "idle" | "refreshing" | "failed";
|
|
37
|
+
error: string | null;
|
|
38
|
+
}
|
|
28
39
|
interface CheckoutState {
|
|
29
40
|
checkoutId: string | null;
|
|
30
41
|
selectedMethod: CheckoutMethod | null;
|
|
31
42
|
selectedCurrency: CryptoCurrency | null;
|
|
43
|
+
retrySession: boolean;
|
|
32
44
|
checkout: Checkout | null;
|
|
33
45
|
payment: Payment | null;
|
|
34
46
|
cryptoPaymentAttempt: CryptoPaymentAttempt | null;
|
|
35
|
-
fiatPaymentAttempt:
|
|
47
|
+
fiatPaymentAttempt: FiatPaymentAttempt | null;
|
|
36
48
|
methods: CheckoutMethod[] | null;
|
|
37
49
|
cryptoCurrency: CryptoCurrency | null;
|
|
38
50
|
loading: Record<ACTIONS, boolean>;
|
|
@@ -40,116 +52,49 @@ interface CheckoutState {
|
|
|
40
52
|
processing: boolean;
|
|
41
53
|
transfer: TransferState;
|
|
42
54
|
polling: PollingState;
|
|
55
|
+
attemptFreshness: AttemptFreshnessState;
|
|
56
|
+
attemptRefresh: AttemptRefreshState;
|
|
57
|
+
walletPayment: WalletPaymentState;
|
|
43
58
|
}
|
|
44
59
|
export declare const useCheckoutStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<CheckoutState>, "setState"> & {
|
|
45
60
|
setState(nextStateOrUpdater: CheckoutState | Partial<CheckoutState> | ((state: import("immer").WritableDraft<CheckoutState>) => void), shouldReplace?: false): void;
|
|
46
61
|
setState(nextStateOrUpdater: CheckoutState | ((state: import("immer").WritableDraft<CheckoutState>) => void), shouldReplace: true): void;
|
|
47
62
|
}>;
|
|
63
|
+
export declare const syncCheckoutAttemptFreshness: (payment: Payment | null, attempt?: CryptoPaymentAttempt | null) => void;
|
|
64
|
+
export declare const configureWalletAttemptRefresh: (walletAddress: string | null) => void;
|
|
65
|
+
export declare const configureManualAttemptRefresh: () => void;
|
|
66
|
+
export declare const clearAttemptRefreshContext: () => void;
|
|
48
67
|
export declare const clearErrors: () => void;
|
|
49
68
|
export declare const initialiseStore: (payment: Payment) => Promise<void>;
|
|
50
|
-
export declare const
|
|
69
|
+
export declare const createWalletOptionPaymentAttempt: (option: WalletPaymentOption, sendingAddress: string, quote?: WalletPaymentQuote | null) => Promise<CryptoPaymentAttempt>;
|
|
70
|
+
export declare const createManualDirectPaymentAttempt: (sendingAddress?: string, confirmations?: number) => Promise<CryptoPaymentAttempt>;
|
|
51
71
|
export declare const createSuccessfulTestPaymentAttempt: () => Promise<void>;
|
|
52
72
|
export declare const createFailedTestPaymentAttempt: () => Promise<void>;
|
|
53
73
|
export declare const createCheckoutFiatPaymentAttempt: (method: FiatPaymentMethod) => Promise<void>;
|
|
54
74
|
export declare function getAvailableCheckoutMethods(checkout: Checkout): CheckoutMethod[];
|
|
55
|
-
export declare const
|
|
56
|
-
export declare const getPayment: () => Promise<
|
|
57
|
-
id: string;
|
|
58
|
-
currency: string;
|
|
59
|
-
created_at: string;
|
|
60
|
-
updated_at: string;
|
|
61
|
-
checkout_id: string;
|
|
62
|
-
checkout: {
|
|
63
|
-
id: string;
|
|
64
|
-
organization_id: string;
|
|
65
|
-
name: string;
|
|
66
|
-
created_at: string;
|
|
67
|
-
updated_at: string;
|
|
68
|
-
checkout_config: {
|
|
69
|
-
crypto?: {
|
|
70
|
-
enabled?: boolean;
|
|
71
|
-
settlementConfig?: {
|
|
72
|
-
chain: string;
|
|
73
|
-
asset: string;
|
|
74
|
-
asset_name: string;
|
|
75
|
-
chain_name: string;
|
|
76
|
-
asset_id: string;
|
|
77
|
-
display_name?: string;
|
|
78
|
-
};
|
|
79
|
-
withdrawAddress?: {
|
|
80
|
-
chain: string;
|
|
81
|
-
address: string;
|
|
82
|
-
};
|
|
83
|
-
};
|
|
84
|
-
card?: {
|
|
85
|
-
enabled?: boolean;
|
|
86
|
-
};
|
|
87
|
-
bank?: {
|
|
88
|
-
enabled?: boolean;
|
|
89
|
-
};
|
|
90
|
-
};
|
|
91
|
-
withdraw_address_config?: {
|
|
92
|
-
chain: string;
|
|
93
|
-
address: string;
|
|
94
|
-
};
|
|
95
|
-
is_live: boolean;
|
|
96
|
-
logo_url?: string;
|
|
97
|
-
};
|
|
98
|
-
organization_id: string;
|
|
99
|
-
status: "pending" | "confirming_payment" | "paid" | "failed";
|
|
100
|
-
is_test: boolean;
|
|
101
|
-
payment_attempt?: {
|
|
102
|
-
payment_id: string;
|
|
103
|
-
from_token: string;
|
|
104
|
-
amount: number;
|
|
105
|
-
amount_formatted: number;
|
|
106
|
-
from_chain: string;
|
|
107
|
-
settlement_token_address: string;
|
|
108
|
-
destination_address: string;
|
|
109
|
-
created_at: string;
|
|
110
|
-
updated_at: string;
|
|
111
|
-
required_confirmations: number;
|
|
112
|
-
is_bridge: boolean;
|
|
113
|
-
};
|
|
114
|
-
fiat_payment_attempt?: {
|
|
115
|
-
payment_id: string;
|
|
116
|
-
provider: string;
|
|
117
|
-
provider_attempt_id: string;
|
|
118
|
-
provider_payment_id?: string | null;
|
|
119
|
-
error_code?: string | null;
|
|
120
|
-
error_message?: string | null;
|
|
121
|
-
client_params: Record<string, any>;
|
|
122
|
-
raw_provider_payload?: Record<string, any>;
|
|
123
|
-
created_at: string;
|
|
124
|
-
updated_at: string;
|
|
125
|
-
};
|
|
126
|
-
order_id?: string | null;
|
|
127
|
-
customer_id?: string;
|
|
128
|
-
metadata?: Record<string, string | number>;
|
|
129
|
-
line_items?: {
|
|
130
|
-
name: string;
|
|
131
|
-
quantity: number;
|
|
132
|
-
image_url: string;
|
|
133
|
-
price: number;
|
|
134
|
-
}[];
|
|
135
|
-
amount: number;
|
|
136
|
-
} | null>;
|
|
75
|
+
export declare const hydrateCheckoutFromPayment: (payment: Payment) => void;
|
|
76
|
+
export declare const getPayment: () => Promise<Payment | null>;
|
|
137
77
|
interface TransferWalletInterface {
|
|
138
78
|
getAddress(): Promise<string | null>;
|
|
139
79
|
executeTransfer(config: Transfer): Promise<string | null>;
|
|
80
|
+
switchChain?(chainId: number): Promise<void>;
|
|
140
81
|
}
|
|
141
82
|
export declare const executeTransfer: (wallet: TransferWalletInterface) => Promise<string>;
|
|
142
83
|
export declare const checkChainStatus: (wallet: WalletInterface) => Promise<void>;
|
|
143
84
|
export declare const resetTransfer: () => void;
|
|
85
|
+
export declare const executeConnectedWalletPayment: (wallet: WalletInterface) => Promise<void>;
|
|
144
86
|
export declare const startPaymentPolling: (onPaymentStatusChange: (status: PaymentStatus) => void, confirmationStatus?: PaymentStatus) => {
|
|
145
87
|
stop: () => void;
|
|
146
88
|
};
|
|
147
89
|
export declare const stopPaymentPolling: () => void;
|
|
148
90
|
export declare const resetCheckoutStore: () => void;
|
|
91
|
+
export declare const resetCheckoutSessionForRetry: () => void;
|
|
149
92
|
export declare const setCheckoutMethod: (method: CheckoutMethod) => void;
|
|
150
93
|
export declare const setProcessing: (processing: boolean) => void;
|
|
151
94
|
export declare const getProcessing: () => boolean;
|
|
152
95
|
export declare const setSelectedCurrency: (currency: CryptoCurrency | null) => void;
|
|
153
96
|
export declare const isTestMode: () => boolean;
|
|
97
|
+
export declare const setWalletPaymentState: (update: Partial<WalletPaymentState>) => void;
|
|
98
|
+
export declare const resetWalletPaymentState: () => void;
|
|
154
99
|
export {};
|
|
155
100
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/state/checkout/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/state/checkout/store.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mintmoney/react",
|
|
3
3
|
"description": "React SDK library for the MintMoney payments network",
|
|
4
|
-
"version": "0.1.0-alpha.
|
|
4
|
+
"version": "0.1.0-alpha.32",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"react-dom": ">=18 <20"
|
|
69
69
|
},
|
|
70
70
|
"dependencies": {
|
|
71
|
+
"@lifi/sdk": "^3.16.3",
|
|
71
72
|
"@radix-ui/react-dialog": "^1.1.6",
|
|
72
73
|
"@radix-ui/react-visually-hidden": "^1.1.2",
|
|
73
74
|
"@tanstack/react-query": "^5.76.1",
|
|
@@ -100,7 +101,8 @@
|
|
|
100
101
|
"lint-staged": "^15.2.7",
|
|
101
102
|
"prettier": "^3.3.3",
|
|
102
103
|
"typescript": "^5.8.2",
|
|
103
|
-
"typescript-eslint": "^8.10.0"
|
|
104
|
+
"typescript-eslint": "^8.10.0",
|
|
105
|
+
"vitest": "^4.1.4"
|
|
104
106
|
},
|
|
105
107
|
"scripts": {
|
|
106
108
|
"build": "pnpm run clean && tsc --project tsconfig.build.json && pnpm run copy-css",
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useRef, useContext, useEffect } from "react";
|
|
3
|
-
import { DefaultCurrencySelector } from "../../../components/crypto/default-currency-selector.js";
|
|
4
|
-
import { useModalWithView, Text } from "../../../components/index.js";
|
|
5
|
-
import { WalletContext } from "../../../components/wallet-selector/provider.js";
|
|
6
|
-
import { useWalletActions, useWalletBalances, } from "../../../components/wallet-selector/store.js";
|
|
7
|
-
import { useMintMoneyConfig } from "../../../context.js";
|
|
8
|
-
import { useCheckoutStore } from "../../../state/checkout/store.js";
|
|
9
|
-
import { ModalViewContainer } from "../../container.js";
|
|
10
|
-
import { ModalBackButton } from "../back.js";
|
|
11
|
-
const getDefaultCurrency = (cryptoCurrency, checkout) => {
|
|
12
|
-
if (!cryptoCurrency || !checkout?.checkout_config?.crypto?.settlementConfig)
|
|
13
|
-
return null;
|
|
14
|
-
// Check if the crypto currency matches the configured settlement asset
|
|
15
|
-
const settlementConfig = checkout.checkout_config.crypto.settlementConfig;
|
|
16
|
-
return cryptoCurrency.chain === settlementConfig.chain &&
|
|
17
|
-
cryptoCurrency.asset === settlementConfig.asset
|
|
18
|
-
? cryptoCurrency
|
|
19
|
-
: null;
|
|
20
|
-
};
|
|
21
|
-
const CryptoIntentSelectCurrencyViewContent = () => {
|
|
22
|
-
const modalRef = useRef(null);
|
|
23
|
-
const { goToView } = useModalWithView();
|
|
24
|
-
const { checkout, cryptoCurrency } = useCheckoutStore();
|
|
25
|
-
const config = useMintMoneyConfig();
|
|
26
|
-
const { fetchBalances } = useWalletActions();
|
|
27
|
-
const { wallet } = useContext(WalletContext);
|
|
28
|
-
const balances = useWalletBalances();
|
|
29
|
-
const processing = useCheckoutStore((state) => state.processing);
|
|
30
|
-
// If crypto is not enabled for this checkout, redirect to failed view
|
|
31
|
-
if (checkout && !checkout.checkout_config.crypto?.enabled) {
|
|
32
|
-
goToView("failed", { reason: "crypto_not_enabled" });
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
useEffect(() => {
|
|
36
|
-
if (!wallet || !cryptoCurrency)
|
|
37
|
-
return;
|
|
38
|
-
void fetchBalances([cryptoCurrency]);
|
|
39
|
-
}, [wallet, cryptoCurrency, fetchBalances]);
|
|
40
|
-
const defaultCurrency = getDefaultCurrency(cryptoCurrency, checkout);
|
|
41
|
-
return (_jsxs(ModalViewContainer, { ref: modalRef, children: [_jsx(Text, { size: "base", color: config.theme.font.color.secondary, weight: "normal", children: "Select a currency to complete payment with" }), defaultCurrency && (_jsx(DefaultCurrencySelector, { currency: defaultCurrency, balance: balances[`${defaultCurrency.chain}-${defaultCurrency.asset}`] ?? "-", buttonVariant: "primary" })), _jsx(ModalBackButton, { view: "cryptoIntent", disabled: processing })] }));
|
|
42
|
-
};
|
|
43
|
-
export { CryptoIntentSelectCurrencyViewContent };
|
|
44
|
-
//# sourceMappingURL=currency-select.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"currency-select.js","sourceRoot":"","sources":["../../../../../src/checkout/views/crypto-intent/currency-select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useContext } from "react";
|
|
3
|
-
import { confirmPayment } from "../../api/payments.js";
|
|
4
|
-
import { useCheckoutStore, createCheckoutCryptoPaymentAttempt, setProcessing, executeTransfer, setSelectedCurrency, checkChainStatus, } from "../../state/checkout/store.js";
|
|
5
|
-
import { useModalWithView } from "../index.js";
|
|
6
|
-
import { WalletContext } from "../wallet-selector/provider.js";
|
|
7
|
-
import { CurrencySelector } from "./currency-selector.js";
|
|
8
|
-
function waitForTransferSuccess() {
|
|
9
|
-
return new Promise((resolve, reject) => {
|
|
10
|
-
const unsubscribe = useCheckoutStore.subscribe((state) => {
|
|
11
|
-
if (state.transfer.chainStatus === "confirmed") {
|
|
12
|
-
unsubscribe();
|
|
13
|
-
resolve();
|
|
14
|
-
}
|
|
15
|
-
else if (state.transfer.chainStatus === "failed") {
|
|
16
|
-
unsubscribe();
|
|
17
|
-
reject(new Error(state.transfer.error || "Transaction failed on chain"));
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
const DefaultCurrencySelector = ({ currency, balance, buttonVariant = "primary", }) => {
|
|
23
|
-
const { goToView } = useModalWithView();
|
|
24
|
-
const { wallet } = useContext(WalletContext);
|
|
25
|
-
const processing = useCheckoutStore((state) => state.processing);
|
|
26
|
-
const handleSelectCurrency = async (currency) => {
|
|
27
|
-
setProcessing(true);
|
|
28
|
-
setSelectedCurrency(currency);
|
|
29
|
-
try {
|
|
30
|
-
await createCheckoutCryptoPaymentAttempt(currency);
|
|
31
|
-
if (!wallet) {
|
|
32
|
-
goToView("cryptoIntentSelectWallet");
|
|
33
|
-
setProcessing(false);
|
|
34
|
-
setSelectedCurrency(null);
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
await executeTransfer(wallet);
|
|
38
|
-
if (wallet) {
|
|
39
|
-
void checkChainStatus(wallet);
|
|
40
|
-
}
|
|
41
|
-
await waitForTransferSuccess();
|
|
42
|
-
const payment = useCheckoutStore.getState().payment;
|
|
43
|
-
if (payment?.id) {
|
|
44
|
-
await confirmPayment(payment.id);
|
|
45
|
-
}
|
|
46
|
-
goToView("paymentStatus");
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
setProcessing(false);
|
|
50
|
-
setSelectedCurrency(null);
|
|
51
|
-
if (error instanceof Error) {
|
|
52
|
-
goToView("failed", { reason: error.message });
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
goToView("failed", { reason: "payment_failed" });
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
return (_jsx(CurrencySelector, { currency: currency, balance: balance, onSelect: handleSelectCurrency, buttonVariant: buttonVariant, buttonDisabled: processing }));
|
|
60
|
-
};
|
|
61
|
-
export { DefaultCurrencySelector };
|
|
62
|
-
//# sourceMappingURL=default-currency-selector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-currency-selector.js","sourceRoot":"","sources":["../../../../src/components/crypto/default-currency-selector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"currency-select.d.ts","sourceRoot":"","sources":["../../../../../src/checkout/views/crypto-intent/currency-select.tsx"],"names":[],"mappings":"AA6BA,QAAA,MAAM,qCAAqC,sDA8C1C,CAAC;AAEF,OAAO,EAAE,qCAAqC,EAAE,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CryptoCurrency } from "../../api/types.js";
|
|
2
|
-
type DefaultCurrencyRowProps = {
|
|
3
|
-
currency: CryptoCurrency;
|
|
4
|
-
balance: string;
|
|
5
|
-
buttonVariant?: "primary" | "secondary";
|
|
6
|
-
};
|
|
7
|
-
declare const DefaultCurrencySelector: ({ currency, balance, buttonVariant, }: DefaultCurrencyRowProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export { DefaultCurrencySelector };
|
|
9
|
-
//# sourceMappingURL=default-currency-selector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-currency-selector.d.ts","sourceRoot":"","sources":["../../../../src/components/crypto/default-currency-selector.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA8BpD,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;CACzC,CAAC;AAEF,QAAA,MAAM,uBAAuB,GAAI,uCAI9B,uBAAuB,4CA8CzB,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|