@daimo/pay 1.5.0 → 1.5.1
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/build/index.d.ts +75 -8
- package/build/package.json.js +1 -1
- package/build/src/assets/logos.js +24 -2
- package/build/src/assets/logos.js.map +1 -1
- package/build/src/components/Common/ConnectorList/index.js +1 -0
- package/build/src/components/Common/ConnectorList/index.js.map +1 -1
- package/build/src/components/Common/OptionsList/styles.js +1 -1
- package/build/src/components/Common/WalletChainLogo/index.js +24 -0
- package/build/src/components/Common/WalletChainLogo/index.js.map +1 -0
- package/build/src/components/DaimoPay.js +3 -0
- package/build/src/components/DaimoPay.js.map +1 -1
- package/build/src/components/Pages/MobileConnectors/index.js +7 -2
- package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
- package/build/src/components/Pages/PayWithToken/index.js +18 -6
- package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
- package/build/src/components/Pages/SelectMethod/index.js +99 -36
- package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
- package/build/src/components/Pages/Solana/ConnectSolana/index.js +45 -5
- package/build/src/components/Pages/Solana/ConnectSolana/index.js.map +1 -1
- package/build/src/wallets/walletConfigs.js +13 -38
- package/build/src/wallets/walletConfigs.js.map +1 -1
- package/package.json +1 -1
package/build/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React$1, { ReactNode } from 'react';
|
|
2
2
|
export { version } from '../package.json';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
import { DaimoPayOrderMode, DepositAddressPaymentOptionMetadata, PlatformType, ExternalPaymentOptionMetadata, WalletPaymentOption, DaimoPayOrder, ExternalPaymentOptions, DepositAddressPaymentOptions, DepositAddressPaymentOptionData, SolanaPublicKey, DaimoPayUserMetadata,
|
|
4
|
+
import { DaimoPayOrderMode, DepositAddressPaymentOptionMetadata, PlatformType, ExternalPaymentOptionMetadata, WalletPaymentOption, DaimoPayOrder, ExternalPaymentOptions, DepositAddressPaymentOptions, DepositAddressPaymentOptionData, SolanaPublicKey, DaimoPayUserMetadata, DaimoPayOrderView, DaimoPayIntentStatus } from '@daimo/common';
|
|
5
5
|
import { Address, Hex } from 'viem';
|
|
6
6
|
import { AppRouter } from '@daimo/pay-api';
|
|
7
7
|
import { CreateTRPCClient } from '@trpc/client';
|
|
@@ -218,6 +218,34 @@ interface PaymentState {
|
|
|
218
218
|
senderEnsName: string | undefined;
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
+
/**
|
|
222
|
+
* EIP-6963: Multi Injected Provider Discovery
|
|
223
|
+
* https://eips.ethereum.org/EIPS/eip-6963
|
|
224
|
+
*
|
|
225
|
+
*/
|
|
226
|
+
type WalletConfigProps = {
|
|
227
|
+
name?: string;
|
|
228
|
+
shortName?: string;
|
|
229
|
+
icon?: string | React.ReactNode;
|
|
230
|
+
iconConnector?: React.ReactNode;
|
|
231
|
+
iconShape?: "squircle" | "circle" | "square";
|
|
232
|
+
iconShouldShrink?: boolean;
|
|
233
|
+
downloadUrls?: {
|
|
234
|
+
download?: string;
|
|
235
|
+
website?: string;
|
|
236
|
+
desktop?: string;
|
|
237
|
+
android?: string;
|
|
238
|
+
ios?: string;
|
|
239
|
+
chrome?: string;
|
|
240
|
+
firefox?: string;
|
|
241
|
+
brave?: string;
|
|
242
|
+
edge?: string;
|
|
243
|
+
safari?: string;
|
|
244
|
+
};
|
|
245
|
+
getWalletConnectDeeplink?: (uri: string) => string;
|
|
246
|
+
shouldDeeplinkDesktop?: boolean;
|
|
247
|
+
};
|
|
248
|
+
|
|
221
249
|
type SolanaWalletName = WalletName<string>;
|
|
222
250
|
|
|
223
251
|
declare enum ROUTES {
|
|
@@ -265,6 +293,8 @@ type ContextValue = {
|
|
|
265
293
|
setRoute: (route: ROUTES, data?: Record<string, any>) => void;
|
|
266
294
|
connector: Connector;
|
|
267
295
|
setConnector: React$1.Dispatch<React$1.SetStateAction<Connector>>;
|
|
296
|
+
wcWallet: WalletConfigProps | undefined;
|
|
297
|
+
setWcWallet: React$1.Dispatch<React$1.SetStateAction<WalletConfigProps | undefined>>;
|
|
268
298
|
errorMessage: Error;
|
|
269
299
|
debugMode?: boolean;
|
|
270
300
|
log: (...props: any) => void;
|
|
@@ -332,6 +362,46 @@ type DefaultConfigProps = {
|
|
|
332
362
|
/** Daimo Pay recommended config, for use with wagmi's createConfig(). */
|
|
333
363
|
declare const defaultConfig: ({ appName, appIcon, appDescription, appUrl, walletConnectProjectId, coinbaseWalletPreference, additionalConnectors, chains, client, ...props }: DefaultConfigProps) => CreateConfigParameters;
|
|
334
364
|
|
|
365
|
+
/** Payment details and status. */
|
|
366
|
+
type DaimoPayment = DaimoPayOrderView;
|
|
367
|
+
/** Passed to both `onPayment*` event handlers and webhooks. */
|
|
368
|
+
type DaimoPayEvent = {
|
|
369
|
+
/**
|
|
370
|
+
* A payment is started once the user has sent payment. Completed means
|
|
371
|
+
* the payment was sent on the destination chain and custom contract call,
|
|
372
|
+
* if any, was successful. Bounced means that a destination contract call
|
|
373
|
+
* reverted and funds were refunded.
|
|
374
|
+
*/
|
|
375
|
+
type: "payment_started" | "payment_completed" | "payment_bounced";
|
|
376
|
+
/**
|
|
377
|
+
* The unique ID for this payment.
|
|
378
|
+
*/
|
|
379
|
+
paymentId: string;
|
|
380
|
+
/**
|
|
381
|
+
* The chain for this event--source chain for payment_started, destination
|
|
382
|
+
* chain for payment_completed/payment_bounced.
|
|
383
|
+
*/
|
|
384
|
+
chainId: number;
|
|
385
|
+
/**
|
|
386
|
+
* The transaction hash for this event. Hex for all EVM events, Base58 for
|
|
387
|
+
* payment_started on Solana.
|
|
388
|
+
*/
|
|
389
|
+
txHash: Hex | string;
|
|
390
|
+
/**
|
|
391
|
+
* Payment details.
|
|
392
|
+
*/
|
|
393
|
+
payment: DaimoPayment;
|
|
394
|
+
};
|
|
395
|
+
type DaimoPayStartedEvent = DaimoPayEvent & {
|
|
396
|
+
type: "payment_started";
|
|
397
|
+
};
|
|
398
|
+
type DaimoPayCompletedEvent = DaimoPayEvent & {
|
|
399
|
+
type: "payment_completed";
|
|
400
|
+
};
|
|
401
|
+
type DaimoPayBouncedEvent = DaimoPayEvent & {
|
|
402
|
+
type: "payment_bounced";
|
|
403
|
+
};
|
|
404
|
+
/** Props for DaimoPayButton. */
|
|
335
405
|
type PayButtonPaymentProps = {
|
|
336
406
|
/**
|
|
337
407
|
* Your public app ID. Specify either (payId) or (appId + parameters).
|
|
@@ -396,11 +466,11 @@ type PayButtonPaymentProps = {
|
|
|
396
466
|
};
|
|
397
467
|
type PayButtonCommonProps = PayButtonPaymentProps & {
|
|
398
468
|
/** Called when user sends payment and transaction is seen on chain */
|
|
399
|
-
onPaymentStarted?: (event:
|
|
469
|
+
onPaymentStarted?: (event: DaimoPayStartedEvent) => void;
|
|
400
470
|
/** Called when destination transfer or call completes successfully */
|
|
401
|
-
onPaymentCompleted?: (event:
|
|
471
|
+
onPaymentCompleted?: (event: DaimoPayCompletedEvent) => void;
|
|
402
472
|
/** Called when destination call reverts and funds are refunded */
|
|
403
|
-
onPaymentBounced?: (event:
|
|
473
|
+
onPaymentBounced?: (event: DaimoPayBouncedEvent) => void;
|
|
404
474
|
/** Automatically close the modal after a successful payment. */
|
|
405
475
|
closeOnSuccess?: boolean;
|
|
406
476
|
/** Open the modal by default. */
|
|
@@ -473,7 +543,4 @@ declare const daimoPayVersion: string;
|
|
|
473
543
|
/** Chain ids supported by Daimo Pay. */
|
|
474
544
|
declare const supportedChainIds: Set<number>;
|
|
475
545
|
|
|
476
|
-
type DaimoPayment
|
|
477
|
-
type DaimoPayEvent = PaymentStartedEvent | PaymentCompletedEvent | PaymentBouncedEvent;
|
|
478
|
-
|
|
479
|
-
export { Avatar, Chain as ChainIcon, DaimoPayButton, type DaimoPayButtonCustomProps, type DaimoPayButtonProps, Context as DaimoPayContext, type DaimoPayEvent, DaimoPayProvider, type DaimoPayment, types_d as Types, daimoPayVersion, defaultConfig as getDefaultConfig, supportedChainIds, useDaimoPayStatus, usePayContext, wallets };
|
|
546
|
+
export { Avatar, Chain as ChainIcon, type DaimoPayBouncedEvent, DaimoPayButton, type DaimoPayButtonCustomProps, type DaimoPayButtonProps, type DaimoPayCompletedEvent, Context as DaimoPayContext, type DaimoPayEvent, DaimoPayProvider, type DaimoPayStartedEvent, type DaimoPayment, types_d as Types, daimoPayVersion, defaultConfig as getDefaultConfig, supportedChainIds, useDaimoPayStatus, usePayContext, wallets };
|
package/build/package.json.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
2
3
|
import { isZerion, isFamily, isRainbow } from '../utils/wallets.js';
|
|
3
4
|
|
|
4
5
|
const Mock = ({ ...props }) => (jsxs("svg", { ...props, "aria-hidden": "true", width: "44", height: "44", viewBox: "0 0 44 44", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
@@ -11,7 +12,7 @@ const MetaMask = ({ background = false, ...props }) => (jsxs("svg", { ...props,
|
|
|
11
12
|
background: "linear-gradient(0deg, var(--ck-brand-metamask-12), var(--ck-brand-metamask-11))",
|
|
12
13
|
borderRadius: "27.5%",
|
|
13
14
|
}
|
|
14
|
-
: undefined, width: "
|
|
15
|
+
: undefined, width: "142", height: "137", viewBox: "0 0 142 137", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { fill: "#FF5C16", d: "m132.24 131.751-30.481-9.076-22.986 13.741-16.038-.007-23-13.734-30.467 9.076L0 100.465l9.268-34.723L0 36.385 9.268 0l47.607 28.443h27.757L132.24 0l9.268 36.385-9.268 29.357 9.268 34.723-9.268 31.286Z" }), jsx("path", { fill: "#FF5C16", d: "m9.274 0 47.608 28.463-1.893 19.534L9.274 0Zm30.468 100.478 20.947 15.957-20.947 6.24v-22.197Zm19.273-26.381L54.989 48.01l-25.77 17.74-.014-.007v.013l.08 18.26 10.45-9.918h19.28ZM132.24 0 84.632 28.463l1.887 19.534L132.24 0Zm-30.467 100.478-20.948 15.957 20.948 6.24v-22.197Zm10.529-34.723h.007-.007v-.013l-.006.007-25.77-17.739L82.5 74.097h19.272l10.457 9.917.073-18.259Z" }), jsx("path", { fill: "#E34807", d: "m39.735 122.675-30.467 9.076L0 100.478h39.735v22.197ZM59.008 74.09l5.82 37.714-8.066-20.97-27.49-6.82 10.456-9.923h19.28Zm42.764 48.585 30.468 9.076 9.268-31.273h-39.736v22.197ZM82.5 74.09l-5.82 37.714 8.065-20.97 27.491-6.82-10.463-9.923H82.5Z" }), jsx("path", { fill: "#FF8D5D", d: "m0 100.465 9.268-34.723h19.93l.073 18.266 27.492 6.82 8.065 20.969-4.146 4.618-20.947-15.957H0v.007Zm141.508 0-9.268-34.723h-19.931l-.073 18.266-27.49 6.82-8.066 20.969 4.145 4.618 20.948-15.957h39.735v.007ZM84.632 28.443H56.875L54.99 47.977l9.839 63.8H76.68l9.845-63.8-1.893-19.534Z" }), jsx("path", { fill: "#661800", d: "M9.268 0 0 36.385l9.268 29.357h19.93l25.784-17.745L9.268 0Zm43.98 81.665h-9.029l-4.916 4.819 17.466 4.33-3.521-9.155v.006ZM132.24 0l9.268 36.385-9.268 29.357h-19.931L86.526 47.997 132.24 0ZM88.273 81.665h9.042l4.916 4.825-17.486 4.338 3.528-9.17v.007Zm-9.507 42.305 2.06-7.542-4.146-4.618H64.82l-4.145 4.618 2.059 7.542" }), jsx("path", { fill: "#C0C4CD", d: "M78.766 123.969v12.453H62.735v-12.453h16.03Z" }), jsx("path", { fill: "#E7EBF6", d: "m39.742 122.662 23.006 13.754v-12.453l-2.06-7.541-20.946 6.24Zm62.031 0-23.007 13.754v-12.453l2.06-7.541 20.947 6.24Z" })] }));
|
|
15
16
|
const Coinbase = ({ background = false, ...props }) => (jsxs("svg", { ...props, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("circle", { cx: "10", cy: "10", r: "10", fill: "var(--ck-brand-coinbaseWallet)" }), background && (jsx("rect", { rx: "27%", width: "20", height: "20", fill: "var(--ck-brand-coinbaseWallet)" })), jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.0001 17C13.8661 17 17.0001 13.866 17.0001 10C17.0001 6.13401 13.8661 3 10.0001 3C6.13413 3 3.00012 6.13401 3.00012 10C3.00012 13.866 6.13413 17 10.0001 17ZM8.25012 7.71429C7.95427 7.71429 7.71441 7.95414 7.71441 8.25V11.75C7.71441 12.0459 7.95427 12.2857 8.25012 12.2857H11.7501C12.046 12.2857 12.2858 12.0459 12.2858 11.75V8.25C12.2858 7.95414 12.046 7.71429 11.7501 7.71429H8.25012Z", fill: "white" })] }));
|
|
16
17
|
const Family = ({ ...props }) => {
|
|
17
18
|
const img = "data:image/png;base64,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";
|
|
@@ -56,6 +57,20 @@ const Zerion = ({ ...props }) => (jsxs("svg", { ...props, width: "88", height: "
|
|
|
56
57
|
background: "linear-gradient(120.22deg, #2962EF 0%, #255CE5 100%)",
|
|
57
58
|
}, children: [jsx("path", { d: "M19.0864 22C17.5783 22 16.9973 23.8648 18.2628 24.6438L49.9199 43.732C50.709 44.2178 51.7614 44.0258 52.3048 43.2969L66.2236 25.024C67.17 23.7545 66.2138 22 64.5757 22H19.0864Z", fill: "white" }), jsx("path", { d: "M68.8425 66C70.3503 66 70.9466 64.1252 69.6814 63.3464L38.015 44.2605C37.2259 43.7748 36.1989 43.991 35.6558 44.7198L21.7099 62.9891C20.7639 64.2582 21.7499 66 23.3877 66H68.8425Z", fill: "white" })] }));
|
|
58
59
|
const Phantom = ({ background = false, ...props }) => (jsx("svg", { ...props, width: "88", height: "88", viewBox: "0 0 88 88", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: background ? { background: "#AB9FF2" } : undefined, children: jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M37.7425 57.0705C34.1942 62.3362 28.2483 69 20.3366 69C16.5965 69 13.0001 67.5093 13 61.0322C12.9997 44.5362 36.2555 19.0003 57.8334 19C70.1084 18.9998 75 27.2474 75 36.6136C75 48.6357 66.9442 62.3824 58.9368 62.3824C56.3955 62.3824 55.1487 61.031 55.1487 58.888C55.1487 58.3288 55.2442 57.7228 55.4365 57.0705C52.7029 61.5902 47.4285 65.7849 42.4896 65.7849C38.8933 65.7849 37.0713 63.5944 37.0713 60.5187C37.0713 59.4003 37.311 58.2357 37.7425 57.0705ZM53.7586 31.6834C51.8054 31.6868 50.4738 33.2938 50.478 35.5864C50.4822 37.879 51.8198 39.5273 53.7729 39.5241C55.6789 39.5208 57.0099 37.8679 57.0058 35.5752C57.0016 33.2827 55.6646 31.6802 53.7586 31.6834ZM64.1193 31.6725C62.1661 31.6759 60.8345 33.2829 60.8387 35.5755C60.8429 37.868 62.1798 39.5164 64.1336 39.5131C66.0396 39.5099 67.3706 37.8569 67.3664 35.5643C67.3622 33.2718 66.0253 31.6693 64.1193 31.6725Z", fill: background ? "#ffffff" : "currentColor" }) }));
|
|
60
|
+
const Solflare = ({ ...props }) => {
|
|
61
|
+
const img = "data:image/jpeg;base64,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";
|
|
62
|
+
return (jsx("svg", { ...props, width: "120", height: "120", viewBox: "0 0 120 120", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
63
|
+
backgroundSize: "100% 100%",
|
|
64
|
+
backgroundImage: `url("${img}")`,
|
|
65
|
+
} }));
|
|
66
|
+
};
|
|
67
|
+
const Backpack = ({ background = false, ...props }) => {
|
|
68
|
+
const img = "data:image/png;base64,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";
|
|
69
|
+
return (jsx("svg", { ...props, width: "120", height: "120", viewBox: "0 0 120 120", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
70
|
+
backgroundSize: "100% 100%",
|
|
71
|
+
backgroundImage: `url("${img}")`,
|
|
72
|
+
} }));
|
|
73
|
+
};
|
|
59
74
|
const PlaceHolder = () => {
|
|
60
75
|
return jsx("div", { style: { width: 80, height: 80, background: "#555" } });
|
|
61
76
|
};
|
|
@@ -94,6 +109,10 @@ const OtherWallets = ({ ...props }) => {
|
|
|
94
109
|
return (jsxs("div", { style: column, ...props, children: [jsxs("div", { style: row, children: [jsx("div", { style: cell, children: jsx(WalletConnect, { background: true }) }), jsx("div", { style: cell, children: !isZerion() ? jsx(Zerion, {}) : jsx(Phantom, {}) })] }), jsxs("div", { style: row, children: [jsx("div", { style: cell, children: !isFamily() ? jsx(Family, {}) : jsx(ImToken, {}) }), jsx("div", { style: cell, children: !isRainbow() ? jsx(Rainbow, {}) : jsx(Trust, {}) })] })] }));
|
|
95
110
|
};
|
|
96
111
|
const Fordefi = ({ ...props }) => (jsxs("svg", { ...props, width: "88", height: "88", viewBox: "0 0 96 96", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxs("g", { clipPath: "url(#clip0_14298_75627)", children: [jsx("path", { d: "M43.5075 62.5508H6V73.5954C6 79.2046 10.5379 83.7515 16.1357 83.7515H32.9997L43.5075 62.5508Z", fill: "#7994FF" }), jsx("path", { d: "M6.00098 39.1016H76.2075L68.0567 55.4841H6.00098V39.1016Z", fill: "#486DFF" }), jsx("path", { d: "M30.6398 12H6.09766V32.0282H89.8447V12H65.3025V26.9577H60.2423V12H35.7001V26.9577H30.6398V12Z", fill: "#5CD1FA" })] }), jsx("defs", { children: jsx("clipPath", { id: "clip0_14298_75627", children: jsx("rect", { width: "84", height: "72", fill: "white", transform: "translate(6 12)" }) }) })] }));
|
|
112
|
+
const SquircleIcon = ({ icon, alt, }) => {
|
|
113
|
+
const IconComponent = typeof icon === "string" ? (jsx("img", { src: icon, alt: alt })) : (React.createElement(icon));
|
|
114
|
+
return (jsx("div", { style: { borderRadius: "22.5%", overflow: "hidden" }, children: IconComponent }));
|
|
115
|
+
};
|
|
97
116
|
var Logos = {
|
|
98
117
|
Mock,
|
|
99
118
|
Injected,
|
|
@@ -125,7 +144,10 @@ var Logos = {
|
|
|
125
144
|
Fordefi,
|
|
126
145
|
TokenPocket,
|
|
127
146
|
Talisman,
|
|
147
|
+
SquircleIcon,
|
|
148
|
+
Backpack,
|
|
149
|
+
Solflare,
|
|
128
150
|
};
|
|
129
151
|
|
|
130
|
-
export { Argent, Brave, Coinbase, Crypto, Dawn, Family, Frame, Frontier, ImToken, InfinityWallet, Injected, Ledger, MetaMask, Mock, ONTO, OtherWallets, Phantom, PlaceHolder, Rabby, Rainbow, Safe, Slope, Steak, Trust, Unstoppable, WalletConnect, Zerion, Logos as default };
|
|
152
|
+
export { Argent, Backpack, Brave, Coinbase, Crypto, Dawn, Family, Frame, Frontier, ImToken, InfinityWallet, Injected, Ledger, MetaMask, Mock, ONTO, OtherWallets, Phantom, PlaceHolder, Rabby, Rainbow, Safe, Slope, Solflare, SquircleIcon, Steak, Trust, Unstoppable, WalletConnect, Zerion, Logos as default };
|
|
131
153
|
//# sourceMappingURL=logos.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logos.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logos.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -62,6 +62,7 @@ const ConnectorItem = ({ wallet, isRecent, }) => {
|
|
|
62
62
|
}
|
|
63
63
|
context.setRoute(ROUTES.CONNECT);
|
|
64
64
|
context.setConnector({ id: wallet.id });
|
|
65
|
+
context.setWcWallet(wallet);
|
|
65
66
|
}
|
|
66
67
|
}, children: [jsx(ConnectorIcon, { "data-small": wallet.iconShouldShrink, "data-shape": wallet.iconShape, children: wallet.iconConnector ?? wallet.icon }), jsxs(ConnectorLabel, { children: [isMobile ? (wallet.shortName ?? wallet.name) : wallet.name, !context.options?.hideRecentBadge && isRecent && (jsx(RecentlyUsedTag, { children: jsx("span", { children: "Recent" }) }))] })] }));
|
|
67
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { motion } from 'framer-motion';
|
|
3
|
+
import styled from '../../../styles/styled/index.js';
|
|
4
|
+
|
|
5
|
+
const WalletChainLogo = ({ walletIcon, walletName, chainLogo, }) => {
|
|
6
|
+
const walletIconElement = typeof walletIcon === "string" ? (jsx("img", { src: walletIcon, alt: walletName })) : (walletIcon);
|
|
7
|
+
return (jsxs(WalletChainContainer, { children: [walletIconElement, jsx(ChainContainer, { children: chainLogo })] }));
|
|
8
|
+
};
|
|
9
|
+
const WalletChainContainer = styled(motion.div) `
|
|
10
|
+
width: 100%;
|
|
11
|
+
height: 100%;
|
|
12
|
+
`;
|
|
13
|
+
const ChainContainer = styled(motion.div) `
|
|
14
|
+
position: absolute;
|
|
15
|
+
width: 16px;
|
|
16
|
+
height: 16px;
|
|
17
|
+
border-radius: 9999px;
|
|
18
|
+
overflow: hidden;
|
|
19
|
+
bottom: -4px;
|
|
20
|
+
right: -4px;
|
|
21
|
+
`;
|
|
22
|
+
|
|
23
|
+
export { WalletChainLogo as default };
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -115,6 +115,7 @@ const DaimoPayProviderWithoutSolana = ({ children, theme = "auto", mode = "auto"
|
|
|
115
115
|
const [connector, setConnector] = useState({
|
|
116
116
|
id: "",
|
|
117
117
|
});
|
|
118
|
+
const [wcWallet, setWcWallet] = useState();
|
|
118
119
|
const [solanaConnector, setSolanaConnector] = useState();
|
|
119
120
|
const [route, setRouteState] = useState(ROUTES.SELECT_METHOD);
|
|
120
121
|
const setRoute = (route, data) => {
|
|
@@ -226,6 +227,8 @@ const DaimoPayProviderWithoutSolana = ({ children, theme = "auto", mode = "auto"
|
|
|
226
227
|
route,
|
|
227
228
|
setRoute,
|
|
228
229
|
connector,
|
|
230
|
+
wcWallet,
|
|
231
|
+
setWcWallet,
|
|
229
232
|
// Daimo Pay context
|
|
230
233
|
sessionId,
|
|
231
234
|
setConnector,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DaimoPay.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DaimoPay.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -14,6 +14,7 @@ import { usePayContext } from '../../DaimoPay.js';
|
|
|
14
14
|
const MoreIcon = (jsx("svg", { width: "60", height: "60", viewBox: "0 0 60 60", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M30 42V19M19 30.5H42", stroke: "var(--ck-body-color-muted)", strokeWidth: "3", strokeLinecap: "round" }) }));
|
|
15
15
|
const MobileConnectors = () => {
|
|
16
16
|
const context = usePayContext();
|
|
17
|
+
const { log, paymentState } = context;
|
|
17
18
|
const locales = useLocales();
|
|
18
19
|
const { connect: { getUri }, } = useWeb3();
|
|
19
20
|
const wcUri = getUri();
|
|
@@ -29,10 +30,14 @@ const MobileConnectors = () => {
|
|
|
29
30
|
return true;
|
|
30
31
|
}) ?? [];
|
|
31
32
|
const connectWallet = (wallet) => {
|
|
33
|
+
context.setWcWallet(wallet);
|
|
32
34
|
const uri = wallet.getWalletConnectDeeplink?.(wcUri);
|
|
35
|
+
log(`[MobileConnectors] clicked ${wallet.name}: ${uri}`);
|
|
36
|
+
// Using open(.., '_blank') to open the wallet connect modal.
|
|
37
|
+
// Previously, we used window.location.href = uri, but this closes the dapp
|
|
38
|
+
// (losing state) if there's no deeplink handler for the URI.
|
|
33
39
|
if (uri)
|
|
34
|
-
window.
|
|
35
|
-
//if (uri) window.open(uri, '_blank');
|
|
40
|
+
window.open(uri, "_blank");
|
|
36
41
|
};
|
|
37
42
|
return (jsx(PageContent, { style: { width: 312 }, children: jsxs(Container, { children: [jsx(ModalContent, { style: { paddingBottom: 0 }, children: jsx(ScrollArea, { height: 340, children: jsxs(WalletList, { "$disabled": !wcUri, children: [walletsIdsToDisplay
|
|
38
43
|
.sort(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -3,6 +3,8 @@ import { useState, useEffect } from 'react';
|
|
|
3
3
|
import { usePayContext, ROUTES } from '../../DaimoPay.js';
|
|
4
4
|
import { PageContent, ModalContent, ModalH1 } from '../../Common/Modal/styles.js';
|
|
5
5
|
import { useChainId, useSwitchChain } from 'wagmi';
|
|
6
|
+
import { ExternalLinkIcon } from '../../../assets/icons.js';
|
|
7
|
+
import useIsMobile from '../../../hooks/useIsMobile.js';
|
|
6
8
|
import Button from '../../Common/Button/index.js';
|
|
7
9
|
import PaymentBreakdown from '../../Common/PaymentBreakdown/index.js';
|
|
8
10
|
import TokenLogoSpinner from '../../Spinners/TokenLogoSpinner/index.js';
|
|
@@ -15,7 +17,8 @@ var PayState;
|
|
|
15
17
|
PayState["RequestSuccessful"] = "Payment Successful";
|
|
16
18
|
})(PayState || (PayState = {}));
|
|
17
19
|
const PayWithToken = () => {
|
|
18
|
-
const
|
|
20
|
+
const isMobile = useIsMobile();
|
|
21
|
+
const { triggerResize, paymentState, setRoute, log, wcWallet } = usePayContext();
|
|
19
22
|
const { selectedTokenOption, payWithToken } = paymentState;
|
|
20
23
|
const [payState, setPayState] = useState(PayState.RequestingPayment);
|
|
21
24
|
const walletChainId = useChainId();
|
|
@@ -81,10 +84,19 @@ const PayWithToken = () => {
|
|
|
81
84
|
useEffect(() => {
|
|
82
85
|
if (!selectedTokenOption)
|
|
83
86
|
return;
|
|
84
|
-
// Give user time to see the UI before opening
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
// Give user time to see the UI before opening on mobile
|
|
88
|
+
if (wcWallet && isMobile) {
|
|
89
|
+
transferTimeout = setTimeout(() => {
|
|
90
|
+
window.open(wcWallet?.getWalletConnectDeeplink?.(""), "_blank");
|
|
91
|
+
handleTransfer(selectedTokenOption);
|
|
92
|
+
}, 800);
|
|
93
|
+
}
|
|
94
|
+
// On desktop, open the wallet connect modal immediately
|
|
95
|
+
else {
|
|
96
|
+
transferTimeout = setTimeout(() => {
|
|
97
|
+
handleTransfer(selectedTokenOption);
|
|
98
|
+
}, 100);
|
|
99
|
+
}
|
|
88
100
|
return () => {
|
|
89
101
|
clearTimeout(transferTimeout);
|
|
90
102
|
};
|
|
@@ -92,7 +104,7 @@ const PayWithToken = () => {
|
|
|
92
104
|
useEffect(() => {
|
|
93
105
|
triggerResize();
|
|
94
106
|
}, [payState]);
|
|
95
|
-
return (jsxs(PageContent, { children: [selectedTokenOption && (jsx(TokenLogoSpinner, { token: selectedTokenOption.required.token })), jsxs(ModalContent, { style: { paddingBottom: 0 }, "$preserveDisplay": true, children: [jsx(ModalH1, { children: payState }), selectedTokenOption && (jsx(PaymentBreakdown, { paymentOption: selectedTokenOption })), payState === PayState.RequestCancelled && (jsx(Button, { onClick: () => selectedTokenOption ? handleTransfer(selectedTokenOption) : null, children: "Retry Payment" }))] })] }));
|
|
107
|
+
return (jsxs(PageContent, { children: [selectedTokenOption && (jsx(TokenLogoSpinner, { token: selectedTokenOption.required.token })), jsxs(ModalContent, { style: { paddingBottom: 0 }, "$preserveDisplay": true, children: [jsx(ModalH1, { children: payState }), selectedTokenOption && (jsx(PaymentBreakdown, { paymentOption: selectedTokenOption })), payState === PayState.RequestingPayment && wcWallet && isMobile && (jsxs(Button, { icon: jsx(ExternalLinkIcon, {}), href: wcWallet.getWalletConnectDeeplink?.(""), children: ["Pay with ", wcWallet.name] })), payState === PayState.RequestCancelled && (jsx(Button, { onClick: () => selectedTokenOption ? handleTransfer(selectedTokenOption) : null, children: "Retry Payment" }))] })] }));
|
|
96
108
|
};
|
|
97
109
|
|
|
98
110
|
export { PayWithToken as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useMemo, useEffect } from 'react';
|
|
2
3
|
import { usePayContext, ROUTES } from '../../DaimoPay.js';
|
|
3
4
|
import { PageContent } from '../../Common/Modal/styles.js';
|
|
4
|
-
import {
|
|
5
|
+
import { ExternalPaymentOptions, getAddressContraction } from '@daimo/common';
|
|
5
6
|
import { useWallet } from '@solana/wallet-adapter-react';
|
|
6
7
|
import { useAccount, useDisconnect } from 'wagmi';
|
|
7
|
-
import { Solana, Bitcoin, Tron, Zcash } from '../../../assets/chains.js';
|
|
8
|
+
import { Solana, Bitcoin, Tron, Zcash, Ethereum } from '../../../assets/chains.js';
|
|
8
9
|
import { MetaMask, Rainbow, Coinbase, Rabby } from '../../../assets/logos.js';
|
|
9
10
|
import useIsMobile from '../../../hooks/useIsMobile.js';
|
|
11
|
+
import { walletConfigs } from '../../../wallets/walletConfigs.js';
|
|
10
12
|
import OptionsList from '../../Common/OptionsList/index.js';
|
|
11
13
|
import { OrderHeader } from '../../Common/OrderHeader/index.js';
|
|
12
14
|
import PoweredByFooter from '../../Common/PoweredByFooter/index.js';
|
|
15
|
+
import WalletChainLogo from '../../Common/WalletChainLogo/index.js';
|
|
13
16
|
|
|
14
17
|
// Get 3 icons, skipping the one that is already connected
|
|
15
18
|
function getBestUnconnectedWalletIcons(connector) {
|
|
@@ -30,10 +33,10 @@ function getBestUnconnectedWalletIcons(connector) {
|
|
|
30
33
|
icons.push(jsx(Rabby, {}));
|
|
31
34
|
return icons;
|
|
32
35
|
}
|
|
33
|
-
function getSolanaOption() {
|
|
36
|
+
function getSolanaOption(isOnIOS) {
|
|
34
37
|
const { wallets } = useWallet();
|
|
35
38
|
const { setRoute } = usePayContext();
|
|
36
|
-
if (wallets.length === 0)
|
|
39
|
+
if (wallets.length === 0 && !isOnIOS)
|
|
37
40
|
return null;
|
|
38
41
|
return {
|
|
39
42
|
id: "solana",
|
|
@@ -64,47 +67,111 @@ function getDepositAddressOption(depositAddressOptions) {
|
|
|
64
67
|
}
|
|
65
68
|
const SelectMethod = () => {
|
|
66
69
|
const isMobile = useIsMobile();
|
|
67
|
-
const
|
|
70
|
+
const isOnIOS = useMemo(() => {
|
|
71
|
+
return /iPad|iPhone/.test(navigator.userAgent);
|
|
72
|
+
}, []);
|
|
73
|
+
const { address, chain, isConnected: isEthConnected, connector, } = useAccount();
|
|
74
|
+
const { connected: isSolanaConnected, wallet: solanaWallet, publicKey, } = useWallet();
|
|
75
|
+
const { setRoute, paymentState, wcWallet, setWcWallet, log } = usePayContext();
|
|
68
76
|
const { disconnectAsync } = useDisconnect();
|
|
69
|
-
const { setRoute, paymentState, log } = usePayContext();
|
|
70
77
|
const { daimoPayOrder, setSelectedExternalOption, externalPaymentOptions, depositAddressOptions, senderEnsName, } = paymentState;
|
|
71
|
-
const displayName = senderEnsName ?? (address ? getAddressContraction(address) : "wallet");
|
|
72
78
|
const paymentOptions = daimoPayOrder?.metadata.payer?.paymentOptions;
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
79
|
+
// Extract the currently connect WalletConnect wallet
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
connector?.getProvider()?.then((p) => {
|
|
82
|
+
let name = p.session?.peer?.metadata?.name;
|
|
83
|
+
if (p.isCoinbaseWallet)
|
|
84
|
+
name = "Coinbase Wallet";
|
|
85
|
+
if (name == null)
|
|
86
|
+
name = "Unknown";
|
|
87
|
+
const wallet = Object.values(walletConfigs).find((c) => c.name === name || name.includes(c.shortName));
|
|
88
|
+
log(`[SELECT_METHOD] wcWallet: ${wallet?.name} ${wallet != null}`, p);
|
|
89
|
+
setWcWallet(wallet);
|
|
90
|
+
});
|
|
91
|
+
}, [connector]);
|
|
92
|
+
const getConnectedWalletOptions = () => {
|
|
93
|
+
const showChainLogo = isEthConnected && isSolanaConnected;
|
|
94
|
+
const connectedOptions = [];
|
|
95
|
+
if (isEthConnected) {
|
|
96
|
+
const ethWalletDisplayName = senderEnsName ?? (address ? getAddressContraction(address) : "wallet");
|
|
97
|
+
let walletIcon;
|
|
98
|
+
if (connector?.icon) {
|
|
99
|
+
walletIcon = jsx("img", { src: connector.icon, alt: connector.name });
|
|
100
|
+
}
|
|
101
|
+
else if (wcWallet?.icon) {
|
|
102
|
+
walletIcon = (jsx("div", { style: { borderRadius: "22.5%", overflow: "hidden" }, children: wcWallet.icon }));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
walletIcon = jsx(MetaMask, {});
|
|
106
|
+
}
|
|
107
|
+
const connectedEthWalletOption = {
|
|
108
|
+
id: "connectedWallet",
|
|
109
|
+
title: `Pay with ${ethWalletDisplayName}`,
|
|
110
|
+
icons: [
|
|
111
|
+
jsx(WalletChainLogo, { walletIcon: walletIcon, walletName: connector?.name || "Wallet", chainLogo: showChainLogo ? jsx(Ethereum, {}) : null }, "eth"),
|
|
112
|
+
],
|
|
113
|
+
onClick: () => {
|
|
114
|
+
setRoute(ROUTES.SELECT_TOKEN, {
|
|
115
|
+
event: "click-wallet",
|
|
116
|
+
walletId: connector?.id,
|
|
117
|
+
chainId: chain?.id,
|
|
118
|
+
address: address,
|
|
119
|
+
});
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
connectedOptions.push(connectedEthWalletOption);
|
|
123
|
+
}
|
|
124
|
+
if (isSolanaConnected) {
|
|
125
|
+
const solWalletDisplayName = getAddressContraction(publicKey?.toBase58() ?? "");
|
|
126
|
+
const connectedSolWalletOption = {
|
|
127
|
+
id: "connectedSolanaWallet",
|
|
128
|
+
title: `Pay with ${solWalletDisplayName}`,
|
|
129
|
+
icons: solanaWallet?.adapter.icon
|
|
130
|
+
? [
|
|
131
|
+
jsx(WalletChainLogo, { walletIcon: solanaWallet.adapter.icon, walletName: solanaWallet.adapter.name, chainLogo: showChainLogo && jsx(Solana, {}) }),
|
|
132
|
+
]
|
|
133
|
+
: [
|
|
134
|
+
jsx(WalletChainLogo, { walletIcon: jsx(Solana, {}), walletName: "Default wallet icon", chainLogo: null }),
|
|
135
|
+
],
|
|
136
|
+
onClick: () => {
|
|
137
|
+
setRoute(ROUTES.SOLANA_SELECT_TOKEN, {
|
|
138
|
+
event: "click-wallet",
|
|
139
|
+
walletId: solanaWallet?.adapter.name,
|
|
140
|
+
chainId: "solana",
|
|
141
|
+
address: publicKey?.toBase58(),
|
|
142
|
+
});
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
connectedOptions.push(connectedSolWalletOption);
|
|
86
146
|
}
|
|
87
|
-
|
|
147
|
+
return connectedOptions;
|
|
148
|
+
};
|
|
149
|
+
// Solana payment option
|
|
150
|
+
// Include by default if paymentOptions not provided
|
|
151
|
+
const includeSolana = paymentOptions == null ||
|
|
152
|
+
paymentOptions.includes(ExternalPaymentOptions.Solana);
|
|
153
|
+
// Deposit address options, e.g. Bitcoin, Tron, Zcash, etc.
|
|
154
|
+
// Include by default if paymentOptions not provided
|
|
155
|
+
const includeDepositAddressOption = paymentOptions == null ||
|
|
156
|
+
paymentOptions.includes(ExternalPaymentOptions.ExternalChains);
|
|
157
|
+
const connectedWalletOptions = getConnectedWalletOptions();
|
|
88
158
|
const unconnectedWalletOption = {
|
|
89
159
|
id: "unconnectedWallet",
|
|
90
|
-
title:
|
|
160
|
+
title: isEthConnected || isSolanaConnected
|
|
161
|
+
? `Pay with another wallet`
|
|
162
|
+
: `Pay with wallet`,
|
|
91
163
|
icons: getBestUnconnectedWalletIcons(connector),
|
|
92
164
|
onClick: async () => {
|
|
93
165
|
await disconnectAsync();
|
|
94
166
|
setRoute(ROUTES.CONNECTORS);
|
|
95
167
|
},
|
|
96
168
|
};
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
169
|
+
const options = [];
|
|
170
|
+
options.push(...connectedWalletOptions);
|
|
171
|
+
options.push(unconnectedWalletOption);
|
|
100
172
|
log(`[SELECT_METHOD] loading: ${externalPaymentOptions.loading}, options: ${JSON.stringify(externalPaymentOptions.options)}`);
|
|
101
|
-
const options = [...walletOptions];
|
|
102
|
-
// Solana payment option
|
|
103
|
-
// Include by default if paymentOptions not provided
|
|
104
|
-
const includeSolana = paymentOptions == null ||
|
|
105
|
-
paymentOptions.includes(ExternalPaymentOptions.Solana);
|
|
106
173
|
if (includeSolana) {
|
|
107
|
-
const solanaOption = getSolanaOption();
|
|
174
|
+
const solanaOption = getSolanaOption(isOnIOS);
|
|
108
175
|
if (solanaOption) {
|
|
109
176
|
options.push(solanaOption);
|
|
110
177
|
}
|
|
@@ -127,10 +194,6 @@ const SelectMethod = () => {
|
|
|
127
194
|
disabled: option.disabled,
|
|
128
195
|
subtitle: option.message,
|
|
129
196
|
})));
|
|
130
|
-
// Deposit address options, e.g. Bitcoin, Tron, Zcash, etc.
|
|
131
|
-
// Include by default if paymentOptions not provided
|
|
132
|
-
const includeDepositAddressOption = paymentOptions == null ||
|
|
133
|
-
paymentOptions.includes(ExternalPaymentOptions.ExternalChains);
|
|
134
197
|
if (includeDepositAddressOption) {
|
|
135
198
|
const depositAddressOption = getDepositAddressOption(depositAddressOptions);
|
|
136
199
|
options.push(depositAddressOption);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { PageContent, ModalContent, ModalH1 } from '../../../Common/Modal/styles.js';
|
|
3
3
|
import { useWallet } from '@solana/wallet-adapter-react';
|
|
4
|
+
import { SquircleIcon, Phantom, Solflare, Backpack } from '../../../../assets/logos.js';
|
|
5
|
+
import { isMobile } from '../../../../utils/index.js';
|
|
4
6
|
import Button from '../../../Common/Button/index.js';
|
|
5
7
|
import OptionsList from '../../../Common/OptionsList/index.js';
|
|
6
|
-
import { OrderHeader } from '../../../Common/OrderHeader/index.js';
|
|
7
8
|
import { usePayContext, ROUTES } from '../../../DaimoPay.js';
|
|
8
9
|
|
|
9
10
|
const ConnectSolana = () => {
|
|
10
|
-
const { setSolanaConnector, setRoute } = usePayContext();
|
|
11
|
+
const { setSolanaConnector, setRoute, log } = usePayContext();
|
|
11
12
|
const solanaWallets = useWallet();
|
|
12
13
|
const options = solanaWallets.wallets.map((wallet) => ({
|
|
13
14
|
id: wallet.adapter.name,
|
|
@@ -16,6 +17,7 @@ const ConnectSolana = () => {
|
|
|
16
17
|
jsx(SquircleIcon, { icon: wallet.adapter.icon, alt: wallet.adapter.name }),
|
|
17
18
|
],
|
|
18
19
|
onClick: async () => {
|
|
20
|
+
log("wallet.adapter.name ", wallet.adapter.name);
|
|
19
21
|
setSolanaConnector(wallet.adapter.name);
|
|
20
22
|
if (solanaWallets.connected) {
|
|
21
23
|
await solanaWallets.disconnect();
|
|
@@ -26,15 +28,53 @@ const ConnectSolana = () => {
|
|
|
26
28
|
});
|
|
27
29
|
},
|
|
28
30
|
}));
|
|
29
|
-
|
|
31
|
+
const defaultOptions = [
|
|
32
|
+
{
|
|
33
|
+
id: "phantom",
|
|
34
|
+
title: "Open in Phantom",
|
|
35
|
+
icons: [
|
|
36
|
+
jsx(SquircleIcon, { icon: (props) => jsx(Phantom, { ...props, background: true }), alt: "Phantom" }),
|
|
37
|
+
],
|
|
38
|
+
onClick: () => window.open(`https://phantom.app/ul/browse/${encodeURIComponent(window.location.href)}?ref=${encodeURIComponent(window.location.origin)}`),
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: "solflare",
|
|
42
|
+
title: "Open in Solflare",
|
|
43
|
+
icons: [
|
|
44
|
+
jsx(SquircleIcon, { icon: (props) => jsx(Solflare, { ...props, background: true }), alt: "Solflare" }),
|
|
45
|
+
],
|
|
46
|
+
onClick: () => window.open(`https://solflare.com/ul/v1/browse/${encodeURIComponent(window.location.href)}?ref=${encodeURIComponent(window.location.origin)}`, "_blank"),
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "backpack",
|
|
50
|
+
title: "Open in Backpack",
|
|
51
|
+
icons: [
|
|
52
|
+
jsx(SquircleIcon, { icon: (props) => jsx(Backpack, { ...props, background: true }), alt: "Backpack" }),
|
|
53
|
+
],
|
|
54
|
+
onClick: () => window.open(`https://backpack.app/ul/v1/browse/${encodeURIComponent(window.location.href)}?ref=${encodeURIComponent(window.location.origin)}`, "_blank"),
|
|
55
|
+
},
|
|
56
|
+
];
|
|
57
|
+
return (jsxs(PageContent, { style: {
|
|
58
|
+
height: "100%",
|
|
59
|
+
}, children: [solanaWallets.wallets.length === 0 && !isMobile() && (jsxs(ModalContent, { style: {
|
|
30
60
|
display: "flex",
|
|
61
|
+
flexDirection: "column",
|
|
31
62
|
alignItems: "center",
|
|
32
63
|
justifyContent: "center",
|
|
33
64
|
paddingTop: 16,
|
|
34
65
|
paddingBottom: 16,
|
|
35
|
-
|
|
66
|
+
gap: 16,
|
|
67
|
+
}, children: [jsx(ModalH1, { children: "No Solana wallets detected." }), jsx(Button, { onClick: () => setRoute(ROUTES.SELECT_METHOD, { event: "click-select-another" }), children: "Select Another Method" })] })), isMobile() &&
|
|
68
|
+
(solanaWallets.wallets.length === 0 ||
|
|
69
|
+
(solanaWallets.wallets.length > 0 &&
|
|
70
|
+
solanaWallets.wallets[0].adapter.name ===
|
|
71
|
+
"Mobile Wallet Adapter")) && (jsx(ModalContent, { style: {
|
|
72
|
+
display: "flex",
|
|
73
|
+
flexDirection: "column",
|
|
74
|
+
gap: 16,
|
|
75
|
+
}, children: jsx(OptionsList, { options: defaultOptions }) })), solanaWallets.wallets.length > 0 &&
|
|
76
|
+
solanaWallets.wallets[0].adapter.name !== "Mobile Wallet Adapter" && (jsx(OptionsList, { options: options }))] }));
|
|
36
77
|
};
|
|
37
|
-
const SquircleIcon = ({ icon, alt }) => (jsx("div", { style: { borderRadius: "22.5%", overflow: "hidden" }, children: jsx("img", { src: icon, alt: alt }) }));
|
|
38
78
|
|
|
39
79
|
export { ConnectSolana as default };
|
|
40
80
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import Logos from '../assets/logos.js';
|
|
3
|
-
import { isAndroid } from '../utils/index.js';
|
|
4
3
|
|
|
5
4
|
// Organised in alphabetical order by key
|
|
6
5
|
const walletConfigs = {
|
|
@@ -16,9 +15,7 @@ const walletConfigs = {
|
|
|
16
15
|
ios: "https://apps.apple.com/app/argent/id1358741926",
|
|
17
16
|
},
|
|
18
17
|
getWalletConnectDeeplink: (uri) => {
|
|
19
|
-
return
|
|
20
|
-
? uri
|
|
21
|
-
: `https://argent.link/app/wc?uri=${encodeURIComponent(uri)}`;
|
|
18
|
+
return `https://argent.link/app/wc?uri=${encodeURIComponent(uri)}`;
|
|
22
19
|
},
|
|
23
20
|
},
|
|
24
21
|
"coinbaseWallet, coinbaseWalletSDK": {
|
|
@@ -77,9 +74,7 @@ const walletConfigs = {
|
|
|
77
74
|
ios: "https://family.co/download",
|
|
78
75
|
},
|
|
79
76
|
getWalletConnectDeeplink: (uri) => {
|
|
80
|
-
return
|
|
81
|
-
? uri
|
|
82
|
-
: `familywallet://wc?uri=${encodeURIComponent(uri)}`;
|
|
77
|
+
return `familywallet://wc?uri=${encodeURIComponent(uri)}`;
|
|
83
78
|
},
|
|
84
79
|
},
|
|
85
80
|
frame: {
|
|
@@ -107,7 +102,7 @@ const walletConfigs = {
|
|
|
107
102
|
chrome: "https://chrome.google.com/webstore/detail/frontier-wallet/kppfdiipphfccemcignhifpjkapfbihd",
|
|
108
103
|
},
|
|
109
104
|
getWalletConnectDeeplink: (uri) => {
|
|
110
|
-
return
|
|
105
|
+
return `frontier://wc?uri=${encodeURIComponent(uri)}`;
|
|
111
106
|
},
|
|
112
107
|
},
|
|
113
108
|
injected: {
|
|
@@ -131,9 +126,7 @@ const walletConfigs = {
|
|
|
131
126
|
edge: "https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm",
|
|
132
127
|
},
|
|
133
128
|
getWalletConnectDeeplink: (uri) => {
|
|
134
|
-
return
|
|
135
|
-
? uri
|
|
136
|
-
: `https://metamask.app.link/wc?uri=${encodeURIComponent(uri)}`;
|
|
129
|
+
return `https://metamask.app.link/wc?uri=${encodeURIComponent(uri)}`;
|
|
137
130
|
},
|
|
138
131
|
},
|
|
139
132
|
"app.phantom": {
|
|
@@ -155,9 +148,7 @@ const walletConfigs = {
|
|
|
155
148
|
brave: "https://rainbow.me/extension?utm_source=daimopay",
|
|
156
149
|
},
|
|
157
150
|
getWalletConnectDeeplink: (uri) => {
|
|
158
|
-
return
|
|
159
|
-
? uri
|
|
160
|
-
: `https://rnbwapp.com/wc?uri=${encodeURIComponent(uri)}&connector=daimopay`;
|
|
151
|
+
return `https://rnbwapp.com/wc?uri=${encodeURIComponent(uri)}&connector=daimopay`;
|
|
161
152
|
},
|
|
162
153
|
},
|
|
163
154
|
"io.rabby": {
|
|
@@ -178,9 +169,7 @@ const walletConfigs = {
|
|
|
178
169
|
android: "https://play.google.com/store/apps/details?id=io.gnosis.safe",
|
|
179
170
|
},
|
|
180
171
|
getWalletConnectDeeplink: (uri) => {
|
|
181
|
-
return
|
|
182
|
-
? uri
|
|
183
|
-
: `https://gnosis-safe.io/wc?uri=${encodeURIComponent(uri)}`;
|
|
172
|
+
return `https://gnosis-safe.io/wc?uri=${encodeURIComponent(uri)}`;
|
|
184
173
|
},
|
|
185
174
|
},
|
|
186
175
|
"xyz.talisman": {
|
|
@@ -205,9 +194,7 @@ const walletConfigs = {
|
|
|
205
194
|
ios: "https://apps.apple.com/app/trust-crypto-bitcoin-wallet/id1288339409",
|
|
206
195
|
},
|
|
207
196
|
getWalletConnectDeeplink(uri) {
|
|
208
|
-
return
|
|
209
|
-
? uri
|
|
210
|
-
: `https://link.trustwallet.com/wc?uri=${encodeURIComponent(uri)}`;
|
|
197
|
+
return `https://link.trustwallet.com/wc?uri=${encodeURIComponent(uri)}`;
|
|
211
198
|
},
|
|
212
199
|
},
|
|
213
200
|
infinityWallet: {
|
|
@@ -244,9 +231,7 @@ const walletConfigs = {
|
|
|
244
231
|
android: "https://play.google.com/store/apps/details?id=io.horizontalsystems.bankwallet",
|
|
245
232
|
},
|
|
246
233
|
getWalletConnectDeeplink: (uri) => {
|
|
247
|
-
return
|
|
248
|
-
? uri
|
|
249
|
-
: `https://unstoppable.money/wc?uri=${encodeURIComponent(uri)}`;
|
|
234
|
+
return `https://unstoppable.money/wc?uri=${encodeURIComponent(uri)}`;
|
|
250
235
|
},
|
|
251
236
|
},
|
|
252
237
|
onto: {
|
|
@@ -259,9 +244,7 @@ const walletConfigs = {
|
|
|
259
244
|
website: "https://onto.app/en/download/",
|
|
260
245
|
},
|
|
261
246
|
getWalletConnectDeeplink: (uri) => {
|
|
262
|
-
return
|
|
263
|
-
? uri
|
|
264
|
-
: `https://onto.app/wc?uri=${encodeURIComponent(uri)}`;
|
|
247
|
+
return `https://onto.app/wc?uri=${encodeURIComponent(uri)}`;
|
|
265
248
|
},
|
|
266
249
|
},
|
|
267
250
|
steak: {
|
|
@@ -274,9 +257,7 @@ const walletConfigs = {
|
|
|
274
257
|
website: "https://steakwallet.fi/download",
|
|
275
258
|
},
|
|
276
259
|
getWalletConnectDeeplink: (uri) => {
|
|
277
|
-
return
|
|
278
|
-
? uri
|
|
279
|
-
: `https://links.steakwallet.fi/wc?uri=${encodeURIComponent(uri)}`;
|
|
260
|
+
return `https://links.steakwallet.fi/wc?uri=${encodeURIComponent(uri)}`;
|
|
280
261
|
},
|
|
281
262
|
},
|
|
282
263
|
ledger: {
|
|
@@ -290,9 +271,7 @@ const walletConfigs = {
|
|
|
290
271
|
ios: "https://apps.apple.com/app/ledger-live-web3-wallet/id1361671700",
|
|
291
272
|
},
|
|
292
273
|
getWalletConnectDeeplink: (uri) => {
|
|
293
|
-
return
|
|
294
|
-
? uri
|
|
295
|
-
: `ledgerlive://wc?uri=${encodeURIComponent(uri)}`;
|
|
274
|
+
return `ledgerlive://wc?uri=${encodeURIComponent(uri)}`;
|
|
296
275
|
},
|
|
297
276
|
shouldDeeplinkDesktop: true,
|
|
298
277
|
},
|
|
@@ -306,9 +285,7 @@ const walletConfigs = {
|
|
|
306
285
|
website: "https://zerion.io/",
|
|
307
286
|
},
|
|
308
287
|
getWalletConnectDeeplink: (uri) => {
|
|
309
|
-
return
|
|
310
|
-
? uri
|
|
311
|
-
: `https://app.zerion.io/wc?uri=${encodeURIComponent(uri)}`;
|
|
288
|
+
return `https://app.zerion.io/wc?uri=${encodeURIComponent(uri)}`;
|
|
312
289
|
},
|
|
313
290
|
},
|
|
314
291
|
slope: {
|
|
@@ -322,9 +299,7 @@ const walletConfigs = {
|
|
|
322
299
|
website: "https://slope.finance/",
|
|
323
300
|
},
|
|
324
301
|
getWalletConnectDeeplink: (uri) => {
|
|
325
|
-
return
|
|
326
|
-
? uri
|
|
327
|
-
: `https://slope.finance/app/wc?uri=${encodeURIComponent(uri)}`;
|
|
302
|
+
return `https://slope.finance/app/wc?uri=${encodeURIComponent(uri)}`;
|
|
328
303
|
},
|
|
329
304
|
},
|
|
330
305
|
tokenPocket: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletConfigs.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walletConfigs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|