@mintmoney/react 0.1.0-alpha.30 → 0.1.0-alpha.31

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.
Files changed (75) hide show
  1. package/dist/esm/api/checkouts.js +3 -10
  2. package/dist/esm/api/checkouts.js.map +1 -1
  3. package/dist/esm/api/generated.js +16 -500
  4. package/dist/esm/api/generated.js.map +1 -1
  5. package/dist/esm/api/payments.js +28 -29
  6. package/dist/esm/api/payments.js.map +1 -1
  7. package/dist/esm/api/types.js.map +1 -1
  8. package/dist/esm/checkout/modal.js +7 -7
  9. package/dist/esm/checkout/modal.js.map +1 -1
  10. package/dist/esm/checkout/views/crypto-intent/direct-details.js +135 -16
  11. package/dist/esm/checkout/views/crypto-intent/direct-details.js.map +1 -1
  12. package/dist/esm/checkout/views/crypto-intent/methods.js +5 -5
  13. package/dist/esm/checkout/views/crypto-intent/methods.js.map +1 -1
  14. package/dist/esm/checkout/views/crypto-intent/wallet-payment-confirmation-amount.js +30 -0
  15. package/dist/esm/checkout/views/crypto-intent/wallet-payment-confirmation-amount.js.map +1 -0
  16. package/dist/esm/checkout/views/crypto-intent/wallet-payment-options.js +680 -0
  17. package/dist/esm/checkout/views/crypto-intent/wallet-payment-options.js.map +1 -0
  18. package/dist/esm/checkout/views/crypto-intent/wallet-select.js +3 -31
  19. package/dist/esm/checkout/views/crypto-intent/wallet-select.js.map +1 -1
  20. package/dist/esm/checkout/views/initial.js +1 -4
  21. package/dist/esm/checkout/views/initial.js.map +1 -1
  22. package/dist/esm/components/wallet-selector/wallets/wagmi/index.js +8 -1
  23. package/dist/esm/components/wallet-selector/wallets/wagmi/index.js.map +1 -1
  24. package/dist/esm/config.js +1 -1
  25. package/dist/esm/config.js.map +1 -1
  26. package/dist/esm/integrations/evm-chain.js +22 -0
  27. package/dist/esm/integrations/evm-chain.js.map +1 -0
  28. package/dist/esm/integrations/index.js +1 -0
  29. package/dist/esm/integrations/index.js.map +1 -1
  30. package/dist/esm/integrations/lifi.js +200 -0
  31. package/dist/esm/integrations/lifi.js.map +1 -0
  32. package/dist/esm/state/checkout/payment-attempt.js +43 -0
  33. package/dist/esm/state/checkout/payment-attempt.js.map +1 -0
  34. package/dist/esm/state/checkout/store.js +120 -30
  35. package/dist/esm/state/checkout/store.js.map +1 -1
  36. package/dist/types/api/checkouts.d.ts +0 -1
  37. package/dist/types/api/checkouts.d.ts.map +1 -1
  38. package/dist/types/api/generated.d.ts +162 -1406
  39. package/dist/types/api/generated.d.ts.map +1 -1
  40. package/dist/types/api/payments.d.ts +18 -8
  41. package/dist/types/api/payments.d.ts.map +1 -1
  42. package/dist/types/api/types.d.ts +6 -8
  43. package/dist/types/api/types.d.ts.map +1 -1
  44. package/dist/types/checkout/views/crypto-intent/direct-details.d.ts.map +1 -1
  45. package/dist/types/checkout/views/crypto-intent/wallet-payment-confirmation-amount.d.ts +13 -0
  46. package/dist/types/checkout/views/crypto-intent/wallet-payment-confirmation-amount.d.ts.map +1 -0
  47. package/dist/types/checkout/views/crypto-intent/wallet-payment-options.d.ts +3 -0
  48. package/dist/types/checkout/views/crypto-intent/wallet-payment-options.d.ts.map +1 -0
  49. package/dist/types/checkout/views/crypto-intent/wallet-select.d.ts.map +1 -1
  50. package/dist/types/checkout/views/initial.d.ts.map +1 -1
  51. package/dist/types/components/wallet-selector/domain.d.ts +9 -0
  52. package/dist/types/components/wallet-selector/domain.d.ts.map +1 -1
  53. package/dist/types/components/wallet-selector/wallets/wagmi/index.d.ts +449 -0
  54. package/dist/types/components/wallet-selector/wallets/wagmi/index.d.ts.map +1 -1
  55. package/dist/types/config.d.ts +64 -1
  56. package/dist/types/config.d.ts.map +1 -1
  57. package/dist/types/integrations/evm-chain.d.ts +3 -0
  58. package/dist/types/integrations/evm-chain.d.ts.map +1 -0
  59. package/dist/types/integrations/index.d.ts +1 -0
  60. package/dist/types/integrations/index.d.ts.map +1 -1
  61. package/dist/types/integrations/lifi.d.ts +14 -0
  62. package/dist/types/integrations/lifi.d.ts.map +1 -0
  63. package/dist/types/state/checkout/payment-attempt.d.ts +9 -0
  64. package/dist/types/state/checkout/payment-attempt.d.ts.map +1 -0
  65. package/dist/types/state/checkout/store.d.ts +12 -86
  66. package/dist/types/state/checkout/store.d.ts.map +1 -1
  67. package/package.json +4 -2
  68. package/dist/esm/checkout/views/crypto-intent/currency-select.js +0 -44
  69. package/dist/esm/checkout/views/crypto-intent/currency-select.js.map +0 -1
  70. package/dist/esm/components/crypto/default-currency-selector.js +0 -62
  71. package/dist/esm/components/crypto/default-currency-selector.js.map +0 -1
  72. package/dist/types/checkout/views/crypto-intent/currency-select.d.ts +0 -3
  73. package/dist/types/checkout/views/crypto-intent/currency-select.d.ts.map +0 -1
  74. package/dist/types/components/crypto/default-currency-selector.d.ts +0 -9
  75. package/dist/types/components/crypto/default-currency-selector.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
- import { PaymentsFiatAttemptsCreateData } from "../../api/generated.js";
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
5
  export declare enum ACTIONS {
6
6
  GET_CHECKOUT_CONFIG = "GET_CHECKOUT_CONFIG",
7
7
  GET_CRYPTO_CURRENCIES = "GET_CRYPTO_CURRENCIES",
@@ -32,7 +32,7 @@ interface CheckoutState {
32
32
  checkout: Checkout | null;
33
33
  payment: Payment | null;
34
34
  cryptoPaymentAttempt: CryptoPaymentAttempt | null;
35
- fiatPaymentAttempt: PaymentsFiatAttemptsCreateData | null;
35
+ fiatPaymentAttempt: FiatPaymentAttempt | null;
36
36
  methods: CheckoutMethod[] | null;
37
37
  cryptoCurrency: CryptoCurrency | null;
38
38
  loading: Record<ACTIONS, boolean>;
@@ -40,6 +40,7 @@ interface CheckoutState {
40
40
  processing: boolean;
41
41
  transfer: TransferState;
42
42
  polling: PollingState;
43
+ walletPayment: WalletPaymentState;
43
44
  }
44
45
  export declare const useCheckoutStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<CheckoutState>, "setState"> & {
45
46
  setState(nextStateOrUpdater: CheckoutState | Partial<CheckoutState> | ((state: import("immer").WritableDraft<CheckoutState>) => void), shouldReplace?: false): void;
@@ -47,100 +48,23 @@ export declare const useCheckoutStore: import("zustand").UseBoundStore<Omit<impo
47
48
  }>;
48
49
  export declare const clearErrors: () => void;
49
50
  export declare const initialiseStore: (payment: Payment) => Promise<void>;
50
- export declare const createCheckoutCryptoPaymentAttempt: (currency: CryptoCurrency) => Promise<void>;
51
+ export declare const createWalletOptionPaymentAttempt: (option: WalletPaymentOption, sendingAddress: string, quote?: WalletPaymentQuote | null) => Promise<CryptoPaymentAttempt>;
52
+ export declare const createManualDirectPaymentAttempt: (sendingAddress?: string, confirmations?: number) => Promise<CryptoPaymentAttempt>;
51
53
  export declare const createSuccessfulTestPaymentAttempt: () => Promise<void>;
52
54
  export declare const createFailedTestPaymentAttempt: () => Promise<void>;
53
55
  export declare const createCheckoutFiatPaymentAttempt: (method: FiatPaymentMethod) => Promise<void>;
54
56
  export declare function getAvailableCheckoutMethods(checkout: Checkout): CheckoutMethod[];
55
- export declare const getCheckoutConfig: (checkoutId: string) => Promise<void>;
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>;
57
+ export declare const hydrateCheckoutFromPayment: (payment: Payment) => void;
58
+ export declare const getPayment: () => Promise<Payment | null>;
137
59
  interface TransferWalletInterface {
138
60
  getAddress(): Promise<string | null>;
139
61
  executeTransfer(config: Transfer): Promise<string | null>;
62
+ switchChain?(chainId: number): Promise<void>;
140
63
  }
141
64
  export declare const executeTransfer: (wallet: TransferWalletInterface) => Promise<string>;
142
65
  export declare const checkChainStatus: (wallet: WalletInterface) => Promise<void>;
143
66
  export declare const resetTransfer: () => void;
67
+ export declare const executeConnectedWalletPayment: (wallet: WalletInterface) => Promise<void>;
144
68
  export declare const startPaymentPolling: (onPaymentStatusChange: (status: PaymentStatus) => void, confirmationStatus?: PaymentStatus) => {
145
69
  stop: () => void;
146
70
  };
@@ -151,5 +75,7 @@ export declare const setProcessing: (processing: boolean) => void;
151
75
  export declare const getProcessing: () => boolean;
152
76
  export declare const setSelectedCurrency: (currency: CryptoCurrency | null) => void;
153
77
  export declare const isTestMode: () => boolean;
78
+ export declare const setWalletPaymentState: (update: Partial<WalletPaymentState>) => void;
79
+ export declare const resetWalletPaymentState: () => void;
154
80
  export {};
155
81
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/state/checkout/store.ts"],"names":[],"mappings":"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"}
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.30",
4
+ "version": "0.1.0-alpha.31",
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,3 +0,0 @@
1
- declare const CryptoIntentSelectCurrencyViewContent: () => import("react/jsx-runtime").JSX.Element | null;
2
- export { CryptoIntentSelectCurrencyViewContent };
3
- //# sourceMappingURL=currency-select.d.ts.map
@@ -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"}