@daimo/pay 1.7.6 → 1.8.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/build/index.d.ts +30 -65
- package/build/index.js +961 -606
- package/build/index.js.map +1 -1
- package/package.json +4 -4
package/build/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { ExternalPaymentOptions, assert, assertNotNull, debugJson, supportedChains, ethereum, isCCTPV1Chain, getOrderDestChainId, readDaimoPayOrderID, getChainName, arbitrum as arbitrum$1, base as base$2, blast as blast$1, bsc as bsc$1, linea as linea$1, mantle as mantle$1, optimism as optimism$1, polygon as polygon$1, worldchain as worldchain$1, getAddressContraction,
|
|
2
|
+
import { ExternalPaymentOptions, assert, assertNotNull, debugJson, supportedChains, ethereum, isCCTPV1Chain, getOrderDestChainId, readDaimoPayOrderID, writeDaimoPayOrderID, getChainName, DaimoPayOrderMode, arbitrum as arbitrum$1, base as base$2, blast as blast$1, bsc as bsc$1, linea as linea$1, mantle as mantle$1, optimism as optimism$1, polygon as polygon$1, worldchain as worldchain$1, getAddressContraction, DaimoPayOrderStatusDest, getChainExplorerTxUrl, DaimoPayIntentStatus, retryBackoff, DaimoPayOrderStatusSource, DaimoPayEventType, getDaimoPayOrderView } from '@daimo/pay-common';
|
|
3
3
|
import { Buffer } from 'buffer';
|
|
4
4
|
import React, { useState, useEffect, createContext, useRef, useCallback, useLayoutEffect, useMemo, createElement } from 'react';
|
|
5
5
|
import styled$1, { css, keyframes, ThemeProvider } from 'styled-components';
|
|
@@ -22,7 +22,7 @@ import { WalletSignTransactionError, WalletSendTransactionError } from '@solana/
|
|
|
22
22
|
import { normalize } from 'viem/ens';
|
|
23
23
|
|
|
24
24
|
var name = "@daimo/pay";
|
|
25
|
-
var version = "1.
|
|
25
|
+
var version = "1.8.0";
|
|
26
26
|
var author = "Daimo";
|
|
27
27
|
var homepage = "https://pay.daimo.com";
|
|
28
28
|
var license = "BSD-2-Clause license";
|
|
@@ -45,7 +45,7 @@ var scripts = {
|
|
|
45
45
|
start: "rollup --config rollup.config.js -w",
|
|
46
46
|
dev: "rollup --config rollup.config.js -w",
|
|
47
47
|
build: "rollup --config rollup.config.js",
|
|
48
|
-
lint: "eslint --max-warnings=0"
|
|
48
|
+
lint: "eslint 'src/**/*.{js,jsx,ts,tsx}' --max-warnings=0"
|
|
49
49
|
};
|
|
50
50
|
var keywords = [
|
|
51
51
|
"ens",
|
|
@@ -61,7 +61,7 @@ var keywords = [
|
|
|
61
61
|
"crypto"
|
|
62
62
|
];
|
|
63
63
|
var dependencies = {
|
|
64
|
-
"@daimo/pay-common": "1.
|
|
64
|
+
"@daimo/pay-common": "1.8.0",
|
|
65
65
|
"@rollup/plugin-typescript": "^12.1.2",
|
|
66
66
|
"@solana/wallet-adapter-base": "^0.9.23",
|
|
67
67
|
"@solana/wallet-adapter-react": "^0.15.35",
|
|
@@ -129,7 +129,10 @@ var ROUTES;
|
|
|
129
129
|
ROUTES["SELECT_AMOUNT"] = "daimoPaySelectAmount";
|
|
130
130
|
ROUTES["SELECT_EXTERNAL_AMOUNT"] = "daimoPaySelectExternalAmount";
|
|
131
131
|
ROUTES["SELECT_DEPOSIT_ADDRESS_AMOUNT"] = "daimoPaySelectDepositAddressAmount";
|
|
132
|
+
ROUTES["SELECT_WALLET_AMOUNT"] = "daimoPaySelectWalletAmount";
|
|
133
|
+
ROUTES["SELECT_ZKP2P"] = "daimoPaySelectZKP2P";
|
|
132
134
|
ROUTES["WAITING_EXTERNAL"] = "daimoPayWaitingExternal";
|
|
135
|
+
ROUTES["WAITING_WALLET"] = "daimoPayWaitingWallet";
|
|
133
136
|
ROUTES["SELECT_DEPOSIT_ADDRESS_CHAIN"] = "daimoPaySelectDepositAddressChain";
|
|
134
137
|
ROUTES["WAITING_DEPOSIT_ADDRESS"] = "daimoPayWaitingDepositAddress";
|
|
135
138
|
ROUTES["PAY_WITH_TOKEN"] = "daimoPayPayWithToken";
|
|
@@ -266,6 +269,43 @@ const useConnectCallback = ({ onConnect, onDisconnect, }) => {
|
|
|
266
269
|
});
|
|
267
270
|
};
|
|
268
271
|
|
|
272
|
+
/**
|
|
273
|
+
*
|
|
274
|
+
* IMPORTANT NOTE: This file is a workaround for the following issue:
|
|
275
|
+
*
|
|
276
|
+
* When using rollup with styled-components to build into an ES module, styled components decides to move all of it’s DOM elements into "styled.default" rather than just within "styled"
|
|
277
|
+
*
|
|
278
|
+
* We're unsure as to why this issue occurs, if you have any ideas or a better solution please let us know by opening a discussion on our GitHub repo:
|
|
279
|
+
* https://github.com/family/connectkit/discussions/new
|
|
280
|
+
*
|
|
281
|
+
*/
|
|
282
|
+
var styled = typeof styled$1.div === "function" ? styled$1 : styled$1["default"];
|
|
283
|
+
|
|
284
|
+
styled.div `
|
|
285
|
+
position: relative;
|
|
286
|
+
width: ${({ $width }) => $width + "px" || "100%"};
|
|
287
|
+
height: ${({ $height }) => $height + "px" || "100%"};
|
|
288
|
+
`;
|
|
289
|
+
const Squircle = styled.svg `
|
|
290
|
+
z-index: 1;
|
|
291
|
+
position: relative;
|
|
292
|
+
display: block;
|
|
293
|
+
`;
|
|
294
|
+
styled.div `
|
|
295
|
+
z-index: 2;
|
|
296
|
+
position: absolute;
|
|
297
|
+
inset: 0;
|
|
298
|
+
display: block;
|
|
299
|
+
overflow: hidden;
|
|
300
|
+
svg,
|
|
301
|
+
img {
|
|
302
|
+
display: block;
|
|
303
|
+
position: relative;
|
|
304
|
+
width: 100%;
|
|
305
|
+
height: 100%;
|
|
306
|
+
}
|
|
307
|
+
`;
|
|
308
|
+
|
|
269
309
|
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: {
|
|
270
310
|
background: "linear-gradient(180deg, #8995A9 0%, #424D5F 99.48%)",
|
|
271
311
|
}, children: [jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M20.5611 8.12948C21.0082 7.90729 21.5007 7.79167 22 7.79167C22.4993 7.79167 22.9919 7.90729 23.439 8.12948L23.4408 8.1304L33.0387 12.9293C33.577 13.197 34.031 13.61 34.3478 14.121C34.6649 14.6323 34.833 15.2218 34.8333 15.8234V27.2595C34.833 27.8611 34.6649 28.4511 34.3478 28.9624C34.031 29.4733 33.578 29.8858 33.0398 30.1535L23.4411 34.9528C22.9919 35.1775 22.4963 35.2947 21.994 35.2947C21.4918 35.2947 20.9964 35.1777 20.5472 34.9529L10.9475 30.1531L10.9452 30.1519C10.4071 29.8808 9.95535 29.4646 9.6411 28.9504C9.32739 28.437 9.16312 27.8464 9.16673 27.2448L9.16675 27.2417L10.0004 27.2475H9.16673V27.2448V15.8239C9.16705 15.2223 9.33518 14.6322 9.65222 14.121C9.96906 13.61 10.4221 13.1976 10.9604 12.9298L20.5592 8.1304L20.5611 8.12948ZM21.3031 9.62267L11.8706 14.3389L22 19.4036L32.1294 14.3389L22.697 9.62267C22.4806 9.51531 22.2416 9.45905 22 9.45905C21.7585 9.45905 21.5194 9.51534 21.3031 9.62267ZM10.8341 15.8241C10.8341 15.7785 10.8362 15.733 10.8401 15.6878L21.1663 20.8509V33.3983L11.6955 28.6629C11.4352 28.5315 11.2159 28.3297 11.0638 28.0809C10.9116 27.8318 10.8321 27.5452 10.8341 27.2533L10.8341 27.2475V15.8241ZM22.8337 33.3923L32.2967 28.6608C32.5576 28.5312 32.7772 28.3313 32.9308 28.0836C33.0844 27.836 33.1658 27.5504 33.166 27.259V15.8243C33.1659 15.7786 33.1639 15.7331 33.1599 15.6878L22.8337 20.8509V33.3923Z", fill: "url(#paint0_linear_3546_7073)" }), jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.8341 15.8241C10.8341 15.7785 10.8362 15.733 10.8401 15.6878L21.1663 20.8509V33.3983L11.6955 28.6629C11.4352 28.5315 11.2159 28.3297 11.0638 28.0809C10.9116 27.8318 10.8321 27.5452 10.8341 27.2533L10.8341 27.2475V15.8241Z", fill: "url(#paint1_linear_3546_7073)", fillOpacity: "0.3" }), jsxs("defs", { children: [jsxs("linearGradient", { id: "paint0_linear_3546_7073", x1: "22", y1: "7.79167", x2: "22", y2: "35.2947", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "white" }), jsx("stop", { offset: "1", stopColor: "white", stopOpacity: "0.7" })] }), jsxs("linearGradient", { id: "paint1_linear_3546_7073", x1: "22", y1: "7.79167", x2: "22", y2: "35.2947", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "white" }), jsx("stop", { offset: "1", stopColor: "white", stopOpacity: "0.7" })] })] })] }));
|
|
@@ -277,19 +317,30 @@ const MetaMask = ({ background = false, ...props }) => (jsxs("svg", { ...props,
|
|
|
277
317
|
borderRadius: "27.5%",
|
|
278
318
|
}
|
|
279
319
|
: 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" })] }));
|
|
280
|
-
const Coinbase = ({
|
|
320
|
+
const Coinbase = ({ ...props }) => (jsxs("svg", { ...props, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx(Squircle, { cx: "10", cy: "10", r: "10", fill: "var(--ck-brand-coinbaseWallet)" }), 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" })] }));
|
|
281
321
|
const Family = ({ ...props }) => {
|
|
282
322
|
const img = "data:image/png;base64,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";
|
|
283
|
-
return (jsx("svg", { ...props, width: "
|
|
323
|
+
return (jsx("svg", { ...props, width: "200", height: "200", viewBox: "0 0 200 200", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
284
324
|
backgroundSize: "100% 100%",
|
|
285
325
|
backgroundImage: `url("${img}")`,
|
|
286
326
|
} }));
|
|
287
327
|
};
|
|
288
|
-
const Trust = ({
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
328
|
+
const Trust = ({ background = false, ...props }) => {
|
|
329
|
+
const trust_transparent = "data:image/png;base64,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";
|
|
330
|
+
const trust_white = "data:image/png;base64,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";
|
|
331
|
+
return (jsx("svg", { ...props, xmlns: "http://www.w3.org/2000/svg", width: "120", height: "120", fill: "none", viewBox: "0 0 120 120", style: {
|
|
332
|
+
backgroundSize: "100% 100%",
|
|
333
|
+
backgroundImage: background
|
|
334
|
+
? `url("${trust_white}")`
|
|
335
|
+
: `url("${trust_transparent}")`,
|
|
336
|
+
borderRadius: "22.5%",
|
|
337
|
+
}, children: jsx(Fragment, {}) }));
|
|
338
|
+
};
|
|
339
|
+
const WalletIcon$2 = ({ inverted = false }) => (jsxs("svg", { width: "58", height: "50", viewBox: "0 0 58 50", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M57.9332 20.3335V42.1113C57.9332 46.4069 54.451 49.8891 50.1555 49.8891H8.15546C3.85991 49.8891 0.377686 46.4069 0.377686 42.1113V25.0002V7.8891C0.377686 3.59355 3.85991 0.111328 8.15546 0.111328H47.0444C48.7626 0.111328 50.1555 1.50422 50.1555 3.22244C50.1555 4.94066 48.7626 6.33355 47.0443 6.33355H9.71102C7.9928 6.33355 6.59991 7.72644 6.59991 9.44466C6.59991 11.1629 7.9928 12.5558 9.71102 12.5558H50.1555C54.451 12.5558 57.9332 16.038 57.9332 20.3335ZM46.2667 34.3337C48.4145 34.3337 50.1556 32.5926 50.1556 30.4448C50.1556 28.297 48.4145 26.5559 46.2667 26.5559C44.1189 26.5559 42.3778 28.297 42.3778 30.4448C42.3778 32.5926 44.1189 34.3337 46.2667 34.3337Z", fill: inverted
|
|
340
|
+
? "var(--ck-graphic-primary-color, var(--ck-body-background))"
|
|
341
|
+
: "var(--ck-graphic-primary-color, var(--ck-body-color))" }), jsx("defs", { children: jsxs("linearGradient", { id: "paint0_linear_2501_7732", x1: "29.1555", y1: "0.111328", x2: "29.1555", y2: "49.8891", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: inverted
|
|
342
|
+
? "var(--ck-body-color-muted)"
|
|
343
|
+
: "var(--ck-body-background-transparent, transparent)" }), jsx("stop", { offset: "1", stopColor: inverted ? "var(--ck-body-color)" : "var(--ck-body-background)" })] }) })] }));
|
|
293
344
|
const Argent = ({ ...props }) => (jsxs("svg", { ...props, width: "32", height: "32", viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("rect", { width: "32", height: "32", fill: "white" }), jsx("path", { d: "M18.3242 7.63647H13.6516C13.4955 7.63647 13.3704 7.76611 13.367 7.92726C13.2726 12.4568 10.9768 16.7559 7.02532 19.8009C6.89986 19.8976 6.87128 20.0792 6.963 20.21L9.69685 24.112C9.78986 24.2448 9.97107 24.2747 10.0986 24.1772C12.5694 22.2856 14.5567 20.0038 15.9879 17.4746C17.4191 20.0038 19.4065 22.2856 21.8773 24.1772C22.0047 24.2747 22.186 24.2448 22.2791 24.112L25.013 20.21C25.1045 20.0792 25.0759 19.8976 24.9506 19.8009C20.999 16.7559 18.7033 12.4568 18.609 7.92726C18.6056 7.76611 18.4803 7.63647 18.3242 7.63647Z", fill: "var(--ck-brand-argent)" })] }));
|
|
294
345
|
const ImToken = ({ ...props }) => (jsx("svg", { ...props, width: "32", height: "32", viewBox: "0 0 32 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
295
346
|
background: `linear-gradient(
|
|
@@ -320,7 +371,7 @@ const Frontier = ({ ...props }) => (jsx("svg", { ...props, width: "88", height:
|
|
|
320
371
|
const Zerion = ({ ...props }) => (jsxs("svg", { ...props, width: "88", height: "88", viewBox: "0 0 88 88", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
321
372
|
background: "linear-gradient(120.22deg, #2962EF 0%, #255CE5 100%)",
|
|
322
373
|
}, 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" })] }));
|
|
323
|
-
const Phantom = ({
|
|
374
|
+
const Phantom = ({ ...props }) => (jsx("svg", { ...props, width: "88", height: "88", viewBox: "0 0 88 88", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: { background: "#AB9FF2" }, 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: "#ffffff" }) }));
|
|
324
375
|
const Solflare = ({ ...props }) => {
|
|
325
376
|
const img = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjkwIiBoZWlnaHQ9IjI5MCIgdmlld0JveD0iMCAwIDI5MCAyOTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xNDZfMjk5KSI+CjxwYXRoIGQ9Ik02My4yOTUxIDFIMjI2LjcwNUMyNjEuMTEgMSAyODkgMjguODkwNSAyODkgNjMuMjk1MVYyMjYuNzA1QzI4OSAyNjEuMTEgMjYxLjExIDI4OSAyMjYuNzA1IDI4OUg2My4yOTUxQzI4Ljg5MDUgMjg5IDEgMjYxLjExIDEgMjI2LjcwNVY2My4yOTUxQzEgMjguODkwNSAyOC44OTA1IDEgNjMuMjk1MSAxWiIgZmlsbD0iI0ZGRUY0NiIgc3Ryb2tlPSIjRUVEQTBGIiBzdHJva2Utd2lkdGg9IjIiLz4KPHBhdGggZD0iTTE0MC41NDggMTUzLjIzMUwxNTQuODMyIDEzOS40MzJMMTgxLjQ2MiAxNDguMTQ3QzE5OC44OTMgMTUzLjk1OCAyMDcuNjA5IDE2NC42MSAyMDcuNjA5IDE3OS42MkMyMDcuNjA5IDE5MC45OTkgMjAzLjI1MSAxOTguNTA0IDE5NC41MzYgMjA4LjE4OEwxOTEuODczIDIxMS4wOTNMMTkyLjg0MSAyMDQuMzE0QzE5Ni43MTQgMTc5LjYyIDE4OS40NTIgMTY4Ljk2OCAxNjUuNDg0IDE2MS4yMkwxNDAuNTQ4IDE1My4yMzFaTTEwNC43MTcgNjguNzM5TDE3Ny4zNDcgOTIuOTQ4OEwxNjEuNjEgMTA3Ljk1OUwxMjMuODQzIDk1LjM2OThDMTEwLjc3IDkxLjAxMiAxMDYuNDEyIDgzLjk5MTEgMTA0LjcxNyA2OS4yMjMyVjY4LjczOVpNMTAwLjM1OSAxOTEuNzI1TDExNi44MjIgMTc1Ljk4OEwxNDcuODExIDE4Ni4xNTdDMTY0LjAzMSAxOTEuNDgzIDE2OS41OTkgMTk4LjUwNCAxNjcuOTA1IDIxNi4xNzdMMTAwLjM1OSAxOTEuNzI1Wk03OS41MzkgMTIxLjUxNkM3OS41MzkgMTE2LjkxNyA4MS45NTk5IDExMi41NTkgODYuMDc1NiAxMDguOTI3QzkwLjQzMzQgMTE1LjIyMiA5Ny45Mzg0IDEyMC43OSAxMDkuODAxIDEyNC42NjRMMTM1LjQ2NCAxMzMuMTM3TDEyMS4xOCAxNDYuOTM3TDk2LjAwMTYgMTM4LjcwNUM4NC4zODA5IDEzNC44MzIgNzkuNTM5IDEyOS4wMjEgNzkuNTM5IDEyMS41MTZaTTE1NS41NTggMjQ4LjYxOEMyMDguODE5IDIxMy4yNzIgMjM3LjM4NyAxODkuMzA0IDIzNy4zODcgMTU5Ljc2OEMyMzcuMzg3IDE0MC4xNTggMjI1Ljc2NiAxMjkuMjYzIDIwMC4xMDQgMTIwLjc5TDE4MC43MzYgMTE0LjI1M0wyMzMuNzU2IDYzLjQxMjhMMjIzLjEwMyA1Mi4wMzQyTDIwNy4zNjcgNjUuODMzN0wxMzMuMDQzIDQxLjM4MThDMTEwLjA0MyA0OC44ODY5IDgwLjk5MTYgNzAuOTE3OCA4MC45OTE2IDkyLjk0ODdDODAuOTkxNiA5NS4zNjk3IDgxLjIzMzcgOTcuNzkwNyA4MS45NiAxMDAuNDU0QzYyLjgzNDIgMTExLjM0OCA1NS4wODcxIDEyMS41MTYgNTUuMDg3MSAxMzQuMTA1QzU1LjA4NzEgMTQ1Ljk2OCA2MS4zODE2IDE1Ny44MzEgODEuNDc1OCAxNjQuMzY4TDk3LjQ1NDIgMTY5LjY5NEw0Mi4yNTU5IDIyMi43MTNMNTIuOTA4MiAyMzQuMDkyTDcwLjA5NzIgMjE4LjM1NkwxNTUuNTU4IDI0OC42MThaIiBmaWxsPSIjMDIwNTBBIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDBfMTQ2XzI5OSI+CjxyZWN0IHdpZHRoPSIyOTAiIGhlaWdodD0iMjkwIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=";
|
|
326
377
|
return (jsx("svg", { ...props, width: "120", height: "120", viewBox: "0 0 120 120", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
@@ -328,13 +379,20 @@ const Solflare = ({ ...props }) => {
|
|
|
328
379
|
backgroundImage: `url("${img}")`,
|
|
329
380
|
} }));
|
|
330
381
|
};
|
|
331
|
-
const Backpack = ({
|
|
382
|
+
const Backpack = ({ ...props }) => {
|
|
332
383
|
const img = "data:image/png;base64,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";
|
|
333
384
|
return (jsx("svg", { ...props, width: "120", height: "120", viewBox: "0 0 120 120", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
334
385
|
backgroundSize: "100% 100%",
|
|
335
386
|
backgroundImage: `url("${img}")`,
|
|
336
387
|
} }));
|
|
337
388
|
};
|
|
389
|
+
const Bitget = ({ ...props }) => {
|
|
390
|
+
const img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAHdElNRQfpBQgCCTeaMI1dAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDI1LTA1LTA4VDAyOjA5OjUzKzAwOjAw780JvwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyNS0wNS0wOFQwMjowOTo1MyswMDowMJ6QsQMAAAAodEVYdGRhdGU6dGltZXN0YW1wADIwMjUtMDUtMDhUMDI6MDk6NTUrMDA6MDCqVaXmAAAAMXRFWHRDb21tZW50AFBORyByZXNpemVkIHdpdGggaHR0cHM6Ly9lemdpZi5jb20vcmVzaXplXknb4gAAABJ0RVh0U29mdHdhcmUAZXpnaWYuY29toMOzWAAALbZJREFUeNrNnXmUHcWV5r8bmbW8VyUhwPQxRmIRQohFAmQbEHqvMNjjNrZ7uueMPdNn3LjHbgNGbGZHMgh5E7sx7m4QEtgM5pzuxu4z7XFje9y28dJ2dxvQwmJAWEilXaXSUirV/l7e+SMzIm5ERr56Eg+P85yszIyM3OIX3703IuNlEQ5zet/BIZzYF+P16ROoK2A8YhwxrEoTEb+TCScCOBnACQRMB+MYYjqKGFOJ0QWgQzE6wYgBxACIGBExlGICMRQxiBggBsAESgBk25TmAZL0Xky+RKwzsmPIpOv8yM6l94HtrK8HcZ7gDLG0Uz07GkxgECbASAiogzHOCqPEGAEwCGA/gN0gbAewhYANUHiTI2zrf03t/6NTElAboDoY9Trw9LvbD4sTHeoBHxgZwkmDEV48qoaRKEHXhJqWEOYDuBDAuQBmATgmAxkTSwgZGAlFrBMDGWALidObpIQEYBd6M5BJgnSgkpuGJkEjsO2XKottfZ/ZPmYnewLCKAj7COglwlpEeJYi/PvgT6OtUy+qg9oYnBDOmgYsPqWt9YA/um8YO6bV0VYnDEUJumpqRqL4Ywz6bwDmEaOsC7p4SQ5Msw8pCFkJlA8uBD6D7kB2lC5gJUL1OWCUBz8ZaKBZVRcXPgkI5KUTakTYAOCfKcZTPKO2LtoW80XvGccv17TjyfnNQW4KcHX0IOI6YbCcoK1G02qKP8GEKwGcIcFJoCHIShQUyQJEWMF5hbuQkaXBV3LiwQ2p3lOsTaMcODJ5yF47BFjC9YATpao1UH2gofXsDxF2QOEpivEwJdiEtvS0W06cwC+PLL81wOfVDkIlwJa2Gt5VjxYmCktB+AAYygU6OWQDCF7BOxCzfDhEyCHzXAS5UMkaqD0fh/yzuP8gTAlfV+QAwNA2SICV+1PQL5HC8olO/k7HONXAwOC0Ov73rM5DB1zdN4yxKXUQE+I6Osbb+DOs8HkGjvXBNQ0YLiBZEBJoDrAHHygCKQIqfx/EdkJOnkkh6+BMVDhH0R7EHHAJOECA4O7MTDSyhat6wjAUVijCcgXs6RxX2HPUBJ6eHYYcBFzdN4zhaXVECRDVaFqtje9MCIsAOKFcyL/mAIuCIbgKlirIVYBCwPZaDRXqBFmeqkJ5A/7XsQ6cP54Dz54z02xBOZXAB+cDTxXrKN9JV/guKVyvGBunjkTY9o5xPH1KHnIQ8Hvrg2ngx3Q0K36ACX8ZrB0e4HyaMMfI/Kt8UAkOthLkFY2cGskHqdM9PyrPwQFIfoUIBU0+ZD/YClVobcoRKAepTgeCB5zIDcQCkH+eRHxZW0JvdNUUtkybwD/OdCHnAF8wcRB1AFGCaeNt/LUiuLkHa6BiZWqxVWcxZHIKxAUn83vX8nx7ql4vqEuy8j4M0Lk8QK7SOUCdsvEqf5ZNQoavVh+2SJczCD8n4FMRYWOsgNlHAde+00bYSgKrjB4EGOioUcdEzMuahTvpRIF1v5a6wYRtOnizyavSmfx0vY+ympWts0z3C0mleVnZ88pZ5yHFzjnlfeTOq7LZ3Ic7kzy/sscplYeovPPJ9IhwYaTwYBThaCZgwz636A3gj+4bRlwj9LZNYKQ9uSxRuLIRMyY0NVGjdB+qqLnSF8k8tkDYhW6gehVAMRCxW5g+RHNtK3fy8zpAXUih8wVnp9Kwc40gQGXhqgyoEusC9J+CsaSNECcArnx1PA94y7Q6BssJptfbFjJhCbyAajLIkwqawuuOgjObLdMcJSs3LxGHTFZQ0b76pMrgq0lxUMn5SsImrzwXFcyuwsmB5DyzB1EuDWSZJy3Hz9aAj0UKeOS7jLvemLBF/f6hIQy1MYgxbaKN/4EJH2xOn3lfI4MJIbLU/+p16X/J9bW6ieJ3hvi+WzaN5D7t23LNJUD41azDQ9ZMP3gSETsn7vEmVvBiALkuI2enq1Luk2Ui6r4TUAkRCJi5QCztvMfLRPgTBjZNEPDwrPZUwdP3RjjQlqAW8yeY8IHDgovMxCGgPPOkroL1Q/imWEYtvunOq5Stj/V9tDDprrlkGfm5JZsztwHzLvw7iWOMgiO4phr23lyrkVoAUhxUOzyTbHyxNOEKUIp1vjMJuPJfdjDq+kXM+w4OYbiTQYwZ9Yh/wIQzDhWuy5Lytdjbp/2CshxdZWpu7KleKlGqRapJn0vfXyLWvba30w8dioz9NrFuwoWu79bLfD6/jiGfluYlR8EE4W9lhUfqSnL7gR2scAmAdbUEUNN3xRiNEiSKP94s3Bxsc4NkEmRkbB+C3Q52ebwXXOmgx8750mBTAgAiAilvJgJFaahJlM6OHBQBUao48o+PyLMC5EbI0joIP2x8vJpk9gIlq0q2Ks0UavIbNXOqWpmWFgEihWNj4NKPvYsxkQC0YPwgCDhyPObvM+H8poD6pjlby9VM9pZw/SsFzqcCxzhtZl9FINQGDoBrNaeTJPyyAJ5/FQrVNUYouK17KlQUZz0kXh+4vG9P7SQ6fZx4IaBYXVb54DutUMbaEaDgBZX6OBLLNH09Ed7PjK1xLWZQgvlMmHc46rXFnDc7zlOI3i6Tzjaf7OXRwZfJ4xzG6dUIIFLY/cwzWH/vvagND6cZve7A3DRZuM9pl9dxl/xnnLroZiCO7bV1sOQFgP59U3YR2TOnxPPmysmDm8JiN43cpbNOVsXZ+kwCFoDw7XiUGB2KegA0fu8ky4DgqXLymw7OulAE5NzxArTJk8Hte+YZvHjdtRjetq3ZW29qmv6RP8PMSz+DqKsMJJxBZNsjpUEL4BauAElphSHyFF1QPqpom/LrPnAPdgygpzvib8dTx1VprI3PPZQCMD5SqnIyuFnNtmbXFpbpqy6oKDJf6ptS5b54bevhzvgvH8fZX34Ance8E6jX05IzimX7zBqsuH+/eeg0AwuetWj2+21kMOWoFTnznMYbwPyxWjItrkU4FoRTmoYra2pAyZjkxk0esoqQynSqDHvnzOD2ff8HWHfNdRhpMdwT//wvMO8L96Dj6HekcDNKpE2/sTjsROAmXd+/Nt3mudjGHsLE6haF0+aF2yEWBIwiFcsInE+IFE2PmfhEBt7RNFyImgthrhrBlT5WAvRqt6xAzjX0rBR2ff+HWHf1NRjZurWlcE/6xCdx1hfvQfuRR4HrSRoVm4CKbeAkn4EsaOluHPejn4HZhevBC3UKOZCFQjVcC5nyvplwpGLMjBk4CUDXpHBlTdNtP6nkgptVEpYD2WvvCV8s4ZpCUwp93/8h1l11DUa2tBAuEWb9z89g7tIvoW3akUCS5IfQyDZ2sEKz80xOwCWCMKdcgJwIlDifys7nda1b8+zDNcBN27iTgJkx0iGu8aGVCblmSD+8eOrca8HAQ+ob1wXpqCODrsjCXdtiuKQUTv70ZZh355fQNuUIcJK40b8TBLJpCfjuyFTeLI9u4ujyUZ4PzgVTFAYvX1wZxZp1ciqGInb9MkER6PgYwPRJC6LB7JeHb5ZzQRPB7aHy9/vnUAp9z/wQaxe1Hu4pl12BuXd+EW3dU4F6Yi8se7ByamYXoNhnK3QWjJHwu5yH6ftbBzIHfK4BbE14mofDfplwbMzAMc3AtevCDCEfHPmQTR5xPArg+9tKKez6/v99W+DOvvwKzF32RcTdU1LlKje+cNrLuftlpxy0i7GVQENla+2kkiVIhNM0qAguZJuPHT8cjKpBx8QAjmoOrIDrQ5QmSByHguNzx4VmpbD7hz/CukXXthZuFGH2okWYe8dStHVPAddFN6iA65hqz58WPTsEZEe5Gi4FgAb8cgqJXEU6+xlOT6oP2gRdfGQMYGoR2CI48JZFsArhwhZgqMNERQp9P/gR1n72Ggxv3txauFctwrw770Rc7k6Va35qYG/aD6ZC/labYd2EMmC9ChGCK19ImS5H9gB7+XPBVrYdkWuWTcVIy7w7JhFBh8D6QUXugbNJ+Q8HCS8P1/Gz4lyKIuz+0b9g7ZXXYKjFcOdcfTXmLl2Ktq4ucGJ7mMwkI97Q84rAyZpsFhVctAwKrFNa8Ow2gbTiAibciZqRmmzXHwuwlKsEpZjTcDoArlixQPjmTboAqwL5ZY+Vs58i7P7xT7Dms9dgqLe1cE+79hqcdcdSxF3lDG4+n+d2XXPtmWI/7kgrheg/NuO/WZQFu340g5rrhhQqbAgXLly/KQWgFCugQ4LTYIugTgoXLtzGeaQ6MriXX4WhjZtaDvfspQKuk0GsesEViRX5K4vJykI3maTlysEtgBwa3lUIF2lErdelX84sY1usmGKmPMRmAecUKnxKoVn24CqKsPunz2LNFVe3HO7p11m4qLNRm2El3waJVd2sDXV6uJGya1pNhfBBemXmK1m/Vrb7RbuWrbIjCV00l8wgEhFwRUAcExD71qoIciNIMo9iagouabjPPpsq982NLYV7xnXX4Ow7l6JNK1fB/GxTwjCgg++5BdxJyiRYTjrI4sawTWDFFq4bJZOnaDJAI+8cIr+KQ88aAt4IrgMsALfIVCuK0P/ss1h92VU4uOHNlsFVcYwzP/c5nL10CeJy9spPgHJeCftNIpEu4efMNbkQ3VZEoAx8fwuryobABUytcrMtlC+bSlF2/YigYkpVn6udjWrqW4HrKPenz+KFy1sPd+71n8M5d3wecbkEZmuWnVGX/kP6O2SARXn/mysDDV6HqLqJFIAcgpsDZSAT5CjeKAOmLUMEqVov4CJEcbbfmZoJpiaDWwj2bYQbtbVh3g3X45zbFyMulcCcpDFCdsNMBP9ZHR/s9WKFxo8VPT8yGGZ4DolyyKmXXBMsywbC1IIsdAIi9nyw8o5hEkPNGJT54NxNh+AW7msANtTHquE+/zbAPefmG3D2ktsQlUrpWyGPCDHnDzRAySFJHmxf0TpP1iXolpEINCVUXQ7+qNpg4OWZYa1UGVQ5sGHfKkWibzomoWB/qQLpRWAbKdf2ukTY/bNf4Pkrrm6tWW5vwzk334j5S25F1NkJO1I9ADObdJSs01mT1FEyIRubBDfdPL8G6Q0iJLs/NcnirY8wwSHl+gGUO4vmEELNJnbMuzbjsXIrZUPF2odrbI5z2wwoFaH/Z7/E85cvwuDvNrQMbtTejvm33oT5i29B1NEBhFRaxFqaY78S+EEWhcrD6wxyXvjn+wEU+U2hQHOJ83AjD26ofaz9fQTbBaqI0iZSIzMtH4gaNH+Cys0eJlIRdv/8l3ju8itx4I3ftRTuu2+9Ce9ZfAuizk63bzkwcdBEe/kD7WK3DGyCHKTgPjvlXg/qV4D+6z/XbFMOvlEq244MvS5hm2DLLFOTHSvxUMW+Nvz+1jc1kGn6AVWEPf/6Kzx/+VUth/ueDG7c2QnnCyfiHh2k3n7mUB6/ViA/+hMww3QIcLoxdSWQEbSE65hkHR3r3ihhwl2lCvPL4W5JbR383q24uPst8GpQzIVRsgwsMri/uWwRBtavbync9956E9675FbHLIeiXV+zTn+zBFc06TwysNKg/fFkZmYTKDUOpLx+ZwFXlqWjZAr4YJL7yPHzsX0rkgfaEK5vlvxGvIqw519/jecuW4SB115vKdxzF9+C9952M2LP58r79icuSvNrgW+aA++IQ6bZLytTFqISKC9dw8r5U1iTa9LYy8NepRBmWZr4mISpaRqwMOkhMx2pCLt//W/4zeWth3vekltx7q03Gbi+WzmUyXBt4mD3hT6Zw4pmXTkcH5wDk/U4ebAUB4BLcOxtF8CNCIij7En92k+TzMr3OzpdRej/1b/hN5ddiYFXX2sZ3LizA+cvvhXn3nJjDq7PKGSaGwJuSBZe+9cbZyX2G7CmTFi4LMopOdTN6PtTaapzXZQQ6eSCNSZafjJQ3+GkcOVDsAt3YN1L+I8rrmox3E4svGMJzr3xekTtbQZu3ueSWG/iZ0hZjkb5HLBZZufH19l+Z8wWWfU6cAUUGznnm02yU8OY6pA/9qD7bWPjgw3UgoFwZvZDfr9m1up445GVGHjlt62DWyph4e2Lcd5N1yNu03CtiZRLBLZJ2X6mQj8s1htZa7MvSXKBnVPhWQohMIhdQ2C2Y5vhNokMNC8y1nl0s8qFLSxEdlwsxwX5hZabpbnxTHMEQm1wEHtXr2kZXBDh3OuvxQU33wgVx9noiObgEoDa2Bj6f7cBXK8XQm2UFjqviiIcdfJMtJdKZvCA//sjGMCBzg4x26YUp0qUYCHNNTmmN6xkYRnEeeLQSD/n1RfbsT6QNdA8EBnoURQjLpVaB5gZ+15fj7H+PZhy7DvzqglAtooiJMx45e+fxnMrH8s6QZr0u4X3k1qE+Z/6JN5/5x1oL3elaoYrEmmWC7slA2+V/DZwCKRUb07lslJkjKLTb//8Mr9mpTUmnd0bkU6dcn2m7e0dGO/fja0//knLGPe/+hr2b9yIE3sqKE+dasY4qcAsC4IAxG1tmD5/Pga2bkPvr36FiZER1N7iPDE8jK3/8RvUh4dxYuUCtHV2gFgMPNdlQ/n7ijxlRlm71U8zb4Rku5bc/RGRVbp/jAjWotNvv32Zhimh5vs7032R5wt803H0nDkY2bET/S+91GLImzCzWkFp6hGghJ3mh99ZL81ie7mEk6oLMbx3L7atWduS+2FmbH3uedSGRzBz4UJ0dHRk5pVySoogoAHmR2QpWHLasRKWKXOx7QdXjZSeVgBCdObnXQU7hSaU7PSJehGd2Wago1zG9GoFI7t2YfeLL7YM8u5XX8O+Tb04uVpB6YipUIl8e0LFMwMdpTJOrlYwvGcvtq5pTYygIU8MHsTMhQvR3tmZBk2w0a/TPyzLy2+zKqFOB1DgPFLZQE75xvfrijH3876JdgsnaAbJXTpKZ6Cj3IUZlRRyX4sh7+/txaxqFaWpU0GJjS595brBIaO9VMLJ1QqGWgx583PPY3zwIGZVF6IjgxwaAWmj3jyY4LtdAxoBFZNrrpGvGOb88xbfvoyYUrX6r6oYbluNApCdG9ed5oyOrm4cX6lipK8Pu15c1zLIfa++in29mzGrWkHX1CmpuZYFFihclUHuKJUwq8WQwYzNzz+P8YEDOGXhQnSUOo1PzpeP55OBXCScgwu3zJ1hsrDwdcUgP23e4tuX5aAyguqVwNM8hIjJ6VozfaLM6Ch34YRKFcMthrzrt69iYMtWnNrTg9KUblugFIZr7z+DXKlguL8fW1oMeWxgALMrFXSUtJJFpfeghsBqv2rLMRRFu+rNmXTlHXuWAOxHoUEzY0b1eY1sdmtglBVoZ7mMEytVDPX1YWcLIe985bc4sG0bZleqFvIkgLW57iiXcEq1goP9/djSosALAHpfWI2xgQHMqVTQUSoZnxwC7CrWBRuRJxgzUy6a9tOdphIB0Tm33b4s8LVbpzfEMTU6imar9sjko1wARhnkkxZWMbS7DztaCHnbyy/jwLZtOK3ag1J3N4izmhwItshpJTA6ymXMrlYwuKsPW9a26p4Ym15YjVEDudOBXGSOQwFZ3tVQroI4bWi4FTmiNGKP5t/mmehAjXN8CFu1uv6EbLqoKBEAlaQFOnNhFUP9/di+bm1rIe/YgTnVKkrdXZMq2USZDHRmkA/s7MOWda2GvB+nVRYGlRyJ8pQqDccPrplvBNdYXYIdTfPuW3wFU+ZbMx9bEBy4gQ0F/Ypz08zoLHdhVqWKoT392NZCyFteegkDO7a7kOXDBiFn1qWrC6f2VDGwYye2tCziZ2x84QUM79+P0zJzTcInOyY62IzKA5TpumtYNslCcBUB0XtuuWNZ5JgzrVIRPEk1ypshysF1luKYmNPAq7NUxqyFVQzv3dNyyAd2bMfp1SrKU7pc1VAAroBc6ipjTrWC/du3Y3MLO2g2vrAaQ/v24cxKBaVS2dyTqfyUB+tYRORNsoRr3CACFVj78XNvvmOZymCGomenn1MqXJtk9iqAZ759c6Qhn1rpwej+fdi8dnXLCnRzpuTTK2ElF3VxppC7cFq12nrIq1fjYP8ezK1W0FkuQ/46P2wV81Yz+HoQbkUNbRNpwAioE8L+m+aQ9rM2zaTDVW4sArK8/wE6OkuYfUEVI/v3o7fVkHfuwtxqD0rlrmwIafYclN5rcGQjM0rdFnJvCyFvWL0aB3f3Y25PFaVSGfoH4KE4psgkFwVU0kKFumqj82+6Y5lUpoTpR9XGlHtqNxFhdlwso2m2lcUx58zo7CxhzsIKRg8cwMa1q5se0zzZ1PviixjYuQtnVqsodYUCL7LQvT74Unc3Tq9WsW/7jpZCfnPNGgzu3o15PZm5Rj7wKg4Ki6Pl4AdYxL5owY13LFNFHRvi4hETckqXheaZaQtXHOuZcWJGR2cJp15QweiBAWxc+8JbfJ9np00vrsNA327M6+lBqVwOR9ehFxbMKHd344xqBXu2bkPvyy+3DPLv1qzFgV19OKuninJZQ85HyUVNpGC07G2b705nFThacMMdti9aKtMEWoRc21gEX/5bJatQt10cihh1gXZ0dOK0CyoYOTCAN1sIeeO6tRjs78fcatVAjihfQLl/gAFGuasbZ/a8DZDXrsNAXx/O7qmiXO5ylByCGx2GWTZWCkC08AYdZEnTLLogHbi6v5pywPVbJafjQ6jeV69dZm98Oks4fUEKeUMLIW9YswaD/XtwVrWKUrkE+EqWpk2sA4yurm7M7ali9+Yt6H3llZZC3t+3G+c4SnaBhbo5c2YZbjPJArbfRokqn1ua68mKmEXELNWd+V+wAGZNcCgSj9h91ej4bflyI0l98hkLKhgZPIDfrX2hZT55w9q1GNq7F2dVK+jM2qS5kYwh4BnkedUK+no3o/e3rRtr9sbatRjo68P8DHI6bGeSYAp55TaCSwCi6nVuFB05sMlRp6NU2KjayQM4qjVdbLLbsyCdssDrzAVVjBw8iDfWPN8yyG+sWYODe/bi7Goa5OR+J0RhpRAYXd1TMa+ngr5Nm7GphZDXr12Lvbt24pxqFV3lbgOo8Gs6DcxyCK4CEF147R3LVKbYKHGVbJtFQp2Afa1YEFjZZf71o2wq5drcsD557oJKCnntC+EfjR0m5ME9e3F2tZop2QYjKhRVmyWju3sqzuqpYMfGTeh99dWWQX5j3Trs2bkT7+mposvzySHVHgpcAhD1XGO7KtP2YDZ6Uphn+W+GVJE59sF6UTcJuIXm0eRldHZ0Yt6CKsZHRvD66udaBnm9D1l826roQ6HaXHdPmYqze6rYsXETNrUU8ovo37kL577vQpRLJffahwnXAH7f1UtNT5ZKRCAVipylcp10QHaKOHngKVy+sPabZ2StBDGjo70D8xYsxNjICF5rIeTXV6/GwX17Mb9SRWe50/y6oKinyzapUsjnXFjFzo2bsLGFkNevW4cjj34H3r1wYdoRIroyJ4PrV0q9DgDRxYvcjg5K8lBtJ0aBYtm9uG965cjMyQaLudFkBvn8CmrjY9i6YT06Sp3oLJXf0txRKqH3tddRGx/DvPMXoK2tzfklQuPgJoU8/8IqdmxqLeTa+Dgu+fjH0NHenoPmf/ZBBmNFcAlArMRnkvW/f7Hmirxt1+E7/3NABy2iZ8U0urPtSLyYNuOxKVA7RQCEhNFV6sJnbv0CPvLnn0SS1MP/7k4sIfaZidx1BiOK46zysv5yv8nKVHBsVvGOOuYYnHjqHBBRyyzL2PAwuF4z5hZeuehbkWBtWh4uAYgj/T/u2JM+uQc6bTAJTl9QjjCAiFApMCsLUSs+ynpfoMEredNpdD3r9Lm5/xTmwJXpBqQHyiuBRPwMxcKkwt+xEBFqExP4X/c/gKcefLBlcAHgjHfPR/eUKYD32cMik9wIrk6LqV60U3zqhzxlG3jCRDg9QW5BGzMtlQub3/y3kCwfKI0HSFcGACr7h1Xy7lnetICs9xk+FFhms8qgGUzix2UhuOMTE3ji/gew6otfxPjoaMvgnnLGGbj0qkVopwiMJKjGZuHKOXaUm30hNafeHBT3Y9XyCzIGqq4EygPP5JhzA12FI1hKvON1mirmZtI0ZA7AZrHtqdWsZumcwZ0YG8M377kXq+66q6VwZ51+Ou5+bCXOOHMeGIkTEdvZhesr3K0IArBKPPUA3i8b7DcRpYnOpQng8nuJ9p9ZCaBCzUrDTVyzHIoYnf99wA4T90FJPEvIzGpw3jlCJhlZ4Y6PjeHxu+/ByuXLMTE+jlZNJ592Gu59fBXee/4FSIRyfahFEOWth6AbE63NKGRgJQrWUbXvgz3fl66Lj2NrMCp/rFGkZw10pXAAioqnj4G8pqyoWpkCnFazWfdUy/I4Y/ZTuKvuvhuP3nVXS+HOnDMH9zy2EudOArcI4mRwASBWdfdXcGAPHuCCgoUNmU4eTPJghSCbJeWjbyD937/EblBH8Aoir25okAE/7Jhub/LTiAjjo2N49K7lePSee1oO977HV+G8Cyoe3EMDG5rlFFMd4ZA7ADnUvEmX4f9Hb/Yrq6r0POKfOZENpIySxayUqIAJoLJPEjimH+L8UqFmKX77r///Ebn54KmXiDA2OoZH7m493JNmz8Z9j63CggsqSLLfBvvxhAQYMsdFgP0pVjKKlk0XoRQEoWZmWKQ5+XxFC4j6xMYM+2BlwJWICoAsr7LnlV2sgE0HWazOg7P80EPaTWkibk7XVabcR+5ajkfvbTHcU07BfatW4YKFFbBoDk0GDwXpRWANYO2D9cFBM2gUSXngVAzXAWnMM7n+NYGz7UCEheeYsOx/LiglvhOZAKTVTbD/es9v4or7N39Z3j9hbHQUf3v3cqxoOdzZeOCxVVjY04ME+S8EheBOBp4muWZMSeBgz0dJuH7ngu+fpU1xlWyP16ZQ+mPI8yhXuQa4McvkdIFadZOJyg1caYq9Nq6r7PS8YyOj+PpdX8aj99+LiYmJlsE98eSTcf+qlaj09KDuwQ2tyykEtBm4ABBHdUpAUPrD2Rau+x8t9VlzUIXfMpAcePYkxCl8yiqBEwkz8sFAUYXSTaokOyabnK5OCY7EdTlQMJlZHh0dxUPLv4wVD9yLWovhPrBqFaoXXuiY5ZDfhZdGBXmbgQsgiSmR/3JRnFScybmIKGxpgs3S/w8fnrkuvPvMF0tTb/KIdrI02xCwnejd69jwfTSybV0vSRFGhkfw4F1fwqMP3t9yuF9dtQoXXnRR0CxPBja0fihTTNJeIFAwYl0XkEnz/K+B6QVOIYjQis0UyInrl01eBduelYrVyuRsXW6HwMrn0N2hnPrxkeERPPDlL2DlQw+gXqu1FO7XVq1Cjwe3CGwjoIcKNnvMJKYESUB0QX/sqJa9jHD3aT/IAjLrdAkS6bb5v0R6v4BM8tzIzsE2j/1HzuI2BGjT9adVm91vCncY93/lC1j59a++LXAvvOgi1MXN+aCoyeVhThyjjrofeEgT6UD2g6kg4ExKwqdKyOll7T7z72wEdM6gO//mFXa/eXCFnKk2t6HNvUwTp1GKMDI0jPu+shQr//prqHvf0nork4RbZJaLIuTQ/sOdGKjHxEiKhqiSd2XyyYuSI2K7P6BqAzlLIwYQZYrKoLFsK8treMGUqRQatoi29csNcynRtjcfKFOEYQ33b1oMd+ZMPLRyJd6XKdevWEUKDu17qxMB9RgJxpH9g8qQKIscA/npfuNZpX5Vg5FNFqiMUaY6s44Usnn5nthz+f7X9CnLdW+fmaS5pgzu8qVY+bdvA9xVq3DRxRcjyaLlQKE33G7lxIxaTAkmcoEJXG56X+q/Ukkw0t6unEKzddbn85o/nKSsoqwCMOD8RzIgg6x9r2+qZWCVpZGXnvv+s+ihGh4exr13LcWqFsM9IYN7cQa3GXBvJ9zs/BMx1WhMvziXF2TxPUMZnZogJQMpFepAzvKx8kxwpkYNFsIcsxw+JAOpbFu/87c3ksETkFkqmmz+FO4Q7l2+FI898lBL4U4/4QR8bcUjuPjii8FNwv19TEwYjcEYppAP1j1P7P0rVhkoyeaOUIq2BCyjbQmWtNAIrBicUNa8YgtUX0ZZaKRhUh62827Xe11IijA8NIT77lqKx1a0Hu5DK1bgA//pg00r9/c2MYZjMAZDn7S3PjNNyPlcwKpMq1e3aWVk7CtaXEOfkMmaZRZK5cwH6/PJZZI+gBn8x/oeIPISECnCwYODuP+eO/GNlV9vLdzjj8dDK1bggx/6EJLc6IE/iOlgjAT7c0FJQQxPvko1gCwbJ56JTjJ/LBUNIFHpryg4M2hk4KYjFLVvZq16YYplM8pUBAh1w1oORYTBwUHcvXwJnvzGw+kAuxZNx82YgQclXPwh8sX+mOrozyVLtcpREX5bVvhgHflqP6yjYWKrzpzi9bpuwzLASWa2hW+VStbm2ajW8736vKQIBw4M4t67l+DJb7Ye7tdWrMAfX3KJgfuHODGwOwZjeyjqNOsizTHDOlsdtntSVmFtbildT1TqYqUvZSAbdkqOT2V2Z7CwBiIPZB7Y8ypFGDxwAHffvRhPPbkC/HbA/fCHnSGz9P9JvtwgnYHtMRi9YNHKlO1VGakKX2c6FqSitcqU6wd15Owo0gFsgSVZRwVzZqo9v2uCqYCKdZoCYf/+/bjnnsX4u6cebem45eNmzMCDj6Rwf99mmQ89LUmAzTGAjWCMAiiHMprmj34a2QEBayLliwLdfNLm1bR1E6to7WM5s+2ctdWsci1kU7ESWMuhhM8Vyt23fy+WL78J33n6Cbdx/Ran42bMwFcfWYE//siHkST2vCa+kMIITEW7mrlDPrzt0TpjQ0zAm2DsBaOcUy68bd1DJToZZAeG8bE6EpdtV6FU2cyxCnZNdchMOyqWlYEAIsKevf1YvvwG/NM/fqtlYAHgXdNn4IGHM+XW2TQDddk4nToFJBuZ0mbTucH+wPa+OrAxhsJW1LAZjOn+YPCcX9EwRLPHFLzu0BDtVtMVqVUveq/8josi/+ub9pBZJiL09fdh+ZevwzPf+/uWwn3ncdNx3988nMLNlCutminYQFOzmWkyUM3ALcjfWwO2Kvo1DRBjjenTzWAY8yrSDagsPfGuGup8CKnQac8mMg97xxQr2l6LsH37Nty59Mq3Ce4j+NBHPoqkzjZugBdHHOaceOuhbT89VCE4dBxjzQxF+2OcwwDjZ0hwBaXfL3OriTbNnvnRTZeE0s6GYE32to0CkTfbkylYqldbBxBhZGQY3356JTZvegOnzjnLHU8m7pe8bcfM5vKn39X83G1LcMlHPook4WDLkWW5NKnaZhV7KMf64Bmo1Rk/3wkGPfZoAgDTqY6fgDE798yi69EZxQE4g+ZMPv0TFWXzmJ+nEKAi8UpPpyk7EwFRRNlS72dnv4oAinTEXcfQ0EB6XqI0j8xH4loqvw3xXGbcFjHithhTjzjCFJ3zK0ZRGWTvHE0CulmYjUBikvVse/14HR8gwpYYZaDrYdo6fCl/D8CNuYvpgCZQ450gVXYTZkun58tXqwhKHJVSfimP85tISkU44oijnYpjwCoPcmQH74Nc4KYlIJa6iSVfWpjYI1S4RQSbhB5QYlOVw68ACeN7J0TY8nqNEdM4MHwpA8BTAP4HgGOLIMsT+uOfZACmMxkLJs27NLeiIsh2ceqLrf9NmKBI9G7BhczM+v9T2YH0opkmfznBeniQyGfe2+rj5GhPshXSef4ssJwMoD2gMbSQSierDHad5fE7asBTvQx0RID6q79SQDtQOy9ZB4WG7QunhokaLQMO6fH9Xie5bvLDgyvP588wAUQ+WMmCPrOU+1kEKuyeQ6/LxzL72buGfw7YFgVTPjBKyF3WkQ+c/CDKK8L8OcGog82ynvVSifmpVw4m6yYYOElFiIH0yvFvFEPhYTAuAWNuDi7Djb+ESTa1WK6Hap9Wq14XZlc+XVqI6YsIrwvb7E+yBN39qS2HGauX3a8S6kmya8m3nPoYfR9ysJ5vfcyq8LXG3Yjn5skU7ZdLYAlXlcFjAud4uZ7g4TO6lcmiAKDv4jqG7iRgHL0gfAXA0GQ3FNqRU6BcL4iYfaU7qnZmKlYU8k0MqbScVYB3fVjV+spqNMvra8uRBK7l37ee64BQoV0mnipDz+meA6gDwzXGV2KFTRf8uIZ/2JDoeppOjz+RAOMARYh5DHeD8wEXEIiaxdKJUAvWlYicKRQUiahbRTYqTpfZJwgjGwUrJbazQMrmt1G88gIo/x7MmzHvWcyIFRk9y2d3SlGvW/UVWrNJBMOHuATjgYk6bosUauN1YG57lL/844/qjmMcjToeA+PPigA3bDKpPHDAK/QC2BS5aVFEKVivQjjn8oBT6LzZPgigJk3CbFCBDWjZHAr/XjUPrAHoRsHWJM2hdMn4bpLg00phLwGYrSKTJ3aO6GBgiIAIezjGDVTDUWD0hE6au1/2HkL6JtEckk0pEdYbX+n7vITZ+FSVXdgJ9kgMuBTmHrDvRKTfJZEGwP0hWPY1eHHLQR9LWakG++u9iLsR0ENpEgWbU2k5/iJJcL0i7I0IqHlH527lG9+qI9lDoHYAhFPBWOlD9n//63cUFJprYUKlOQbl1Z0zwcI0O2ZamGcVOB5CwaQ49xNWyr4L4VolMqY8G5hmS8vr9GFRJoVB1iRNpEkrARfu+wUBlxGwPmKAFeNUcjWbG7r76UsjqGkADxDAeB0R/hKEf8rdiWeqCttxsglCTs1zmwbknkNH6n4gA9imh7MPtqlimiPs5yHT1JDBTD54yQIeZtSZ3WYWAgEX2evV0TgoC62bYIkLZgRmxv+pJfhUwlifgJAE4Iq6lZ++8USCZB9AnQAiHIUaFoNxJYAuX53mTEKtSipCqAg6iNJqRN7vOr5VdGU6Co/Cx+l7kH7Z6apU7Phg8vyuMzpFPJtRrQy6dFNKdoIUqJi8yh0SQ5M+eZgZK+p1LI8V9hCAtohxWgBuQ8BAaq75AAExQO2IeQT/FcASAuYZYMJMy+jS7xI0AY7sq5aAPfAy+pVgEdl8qgiwX1Fk5TNm2qbJiim7MCWkUNDlf4hNA29Uus3CLVi+BMby4SH+Tmcn1eIIaFfFcCcFDACPP1EHxlKfxRMAIhxPjEVEuJQI74IoFOmjlKcSxx9OEjlL5Wm15vZ5Ly00/NB57P2x6Y92+qIDFdX0R+tC8pTrVGgfrvTNAaDNBlnChe0A40kwHokVesfH0x1TOhlzGsBtCrABvTLB6OWEzhWM8fczOp+ls4jwFwD+BISTSYlXjbCFDw9YqA2qsu/SKy9ggioOvnSlkEtzTKhZpNgLuPKKDVmjHEzRXPJ/UJeLP7zSnRwsS7A1ABvA+GcCvlXrq69r/6MY//2zQ3jyr8tY0NkY7CED1tM3HkvAClA1ANsAHI/ppLAAwIUEnAPgBBCOJIVOIigHkmwze+ZaAkRIzVq1ZNcRiMr9dq+xLJlplucOtX/hg5af1HMUSzk/nYMZBMwhwAmAUQD7GOgFsJoZP08Y/z43UltfSxJEWZvvhxsZi09pa5rXIQPW0xPfTFIflH1nq+sVwuA5PI0SHEfATESYSYTjCXgXKRxDCtNIYQoYJYrQSRHaKfv3h6SyLw1HIKVASkH55ls2h5zmkSoGbN0CW0sSCK6kL9bsnCaSn56VXEDBenxuHWSC+DozagRMgDDKjBEiDDKwH8BuMLYjhfom0gGQW4+LsH8rI/2hXpL+UO+8uDnF+tP/A+TVvHCmMLXKAAAAAElFTkSuQmCC";
|
|
391
|
+
return (jsx("svg", { ...props, width: "120", height: "120", viewBox: "0 0 120 120", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: {
|
|
392
|
+
backgroundSize: "100% 100%",
|
|
393
|
+
backgroundImage: `url("${img}")`,
|
|
394
|
+
} }));
|
|
395
|
+
};
|
|
338
396
|
const PlaceHolder = () => {
|
|
339
397
|
return jsx("div", { style: { width: 80, height: 80, background: "#555" } });
|
|
340
398
|
};
|
|
@@ -353,6 +411,7 @@ const InfinityWallet = ({ ...props }) => (jsxs("svg", { ...props, version: "1.1"
|
|
|
353
411
|
const Rabby = ({ ...props }) => (jsxs("svg", { ...props, width: "88", height: "88", viewBox: "0 0 88 88", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: { background: "#8697FF" }, children: [jsx("path", { d: "M76.2062 48.0657C78.7621 42.356 66.1267 26.404 54.0555 19.7581C46.4467 14.6095 38.5183 15.3169 36.9125 17.5775C33.3886 22.5385 48.5814 26.7423 58.742 31.6478C56.5579 32.5964 54.4996 34.2987 53.2893 36.4758C49.5013 32.3404 41.1872 28.7791 31.4315 31.6478C24.8574 33.5809 19.3937 38.1382 17.2821 45.0216C16.7689 44.7936 16.2009 44.6669 15.6032 44.6669C13.3176 44.6669 11.4648 46.5197 11.4648 48.8052C11.4648 51.0908 13.3176 52.9435 15.6032 52.9435C16.0268 52.9435 17.3514 52.6594 17.3514 52.6594L38.5183 52.8128C30.0532 66.2418 23.3634 68.2049 23.3634 70.5314C23.3634 72.8579 29.7643 72.2274 32.1678 71.3602C43.6732 67.2088 56.0306 54.2706 58.1511 50.5462C67.056 51.6572 74.5397 51.7886 76.2062 48.0657Z", fill: "url(#paint0_linear_60607_36577)" }), jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M58.65 31.6053C58.682 31.6193 58.7139 31.6332 58.7458 31.6471C59.2168 31.4616 59.1406 30.766 59.0113 30.2198C58.714 28.9643 53.5856 23.9001 48.7696 21.6318C42.1984 18.5367 37.3618 18.7007 36.6582 20.1307C37.9975 22.8695 44.1927 25.441 50.663 28.1266C53.3909 29.2589 56.1676 30.4114 58.65 31.6053Z", fill: "url(#paint1_linear_60607_36577)" }), jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M50.4154 59.2247C49.0895 58.7182 47.592 58.2536 45.8898 57.8319C47.707 54.5801 48.0884 49.7663 46.3721 46.7226C43.9635 42.4512 40.9399 40.1777 33.9139 40.1777C30.0495 40.1777 19.6451 41.4794 19.4603 50.1648C19.441 51.0763 19.4599 51.9118 19.5259 52.68L38.5175 52.8176C35.9568 56.8798 33.5586 59.8928 31.4589 62.1841C33.9831 62.8309 36.0657 63.3738 37.9775 63.8722C39.7885 64.3443 41.4462 64.7764 43.1809 65.2191C45.8007 63.3102 48.2635 61.2288 50.4154 59.2247Z", fill: "url(#paint2_linear_60607_36577)" }), jsx("path", { d: "M17.0296 51.7821C17.8058 58.38 21.5555 60.9657 29.2177 61.7309C36.8799 62.4961 41.2751 61.9828 47.1265 62.5151C52.0136 62.9598 56.3772 65.4502 57.996 64.5895C59.4529 63.815 58.6378 61.0167 56.6884 59.2214C54.1614 56.8943 50.6641 55.2763 44.5104 54.7021C45.7368 51.3443 45.3931 46.6362 43.4885 44.0748C40.7345 40.3711 35.6513 38.6967 29.2177 39.4282C22.4962 40.1926 16.0556 43.5018 17.0296 51.7821Z", fill: "url(#paint3_linear_60607_36577)" }), jsxs("defs", { children: [jsxs("linearGradient", { id: "paint0_linear_60607_36577", x1: "30.666", y1: "43.0094", x2: "75.6558", y2: "55.7677", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "white" }), jsx("stop", { offset: "1", stopColor: "white" })] }), jsxs("linearGradient", { id: "paint1_linear_60607_36577", x1: "68.0842", y1: "42.1521", x2: "35.6221", y2: "9.60636", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "#7258DC" }), jsx("stop", { offset: "1", stopColor: "#797DEA", stopOpacity: "0" })] }), jsxs("linearGradient", { id: "paint2_linear_60607_36577", x1: "51.3184", y1: "60.3591", x2: "20.1383", y2: "42.4347", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "#7461EA" }), jsx("stop", { offset: "1", stopColor: "#BFC2FF", stopOpacity: "0" })] }), jsxs("linearGradient", { id: "paint3_linear_60607_36577", x1: "33.3531", y1: "42.6732", x2: "54.4308", y2: "69.4547", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "white" }), jsx("stop", { offset: "0.983895", stopColor: "#D5CEFF" })] })] })] }));
|
|
354
412
|
const TokenPocket = ({ ...props }) => (jsxs("svg", { ...props, width: "88px", height: "88px", viewBox: "0 0 88 88", version: "1.1", xmlns: "http://www.w3.org/2000/svg", children: [jsx("defs", { children: jsxs("linearGradient", { x1: "107.511425%", y1: "50.0147427%", x2: "0.0459570557%", y2: "50.0147427%", id: "linearGradient-1", children: [jsx("stop", { stopColor: "#FFFFFF", offset: "0%" }), jsx("stop", { stopColor: "#FFFFFF", stopOpacity: "0.3233", offset: "96.67%" }), jsx("stop", { stopColor: "#FFFFFF", stopOpacity: "0.3", offset: "100%" })] }) }), jsx("g", { stroke: "none", strokeWidth: "1", fill: "none", fillRule: "evenodd", children: jsxs("g", { id: "tokenpocket", fillRule: "nonzero", children: [jsx("polygon", { fill: "#2980FE", points: "87.9604864 0 0 0 0 88 87.9604864 88" }), jsxs("g", { transform: "translate(16.052385, 23.804688)", children: [jsx("path", { d: "M19.6653508,13.8911953 L19.6784508,13.8911953 C19.6653508,13.8236484 19.6653508,13.7448437 19.6653508,13.6772969 L19.6653508,13.8911953 Z", fill: "#29AEFF" }), jsx("path", { d: "M41.1271993,16.0301797 L29.2440711,16.0301797 L29.2440711,38.4205938 C29.2440711,39.4787422 30.0635659,40.3343359 31.0771712,40.3343359 L39.2940168,40.3343359 C40.3077044,40.3343359 41.1271993,39.4787422 41.1271993,38.4205938 L41.1271993,16.0301797 Z", fill: "#FFFFFF" }), jsx("path", { d: "M23.5075248,0 L23.1085201,0 L1.83318241,0 C0.819494855,0 0,0.855507812 0,1.91374219 L0,9.68111719 C0,10.7393516 0.819494855,11.5948594 1.83318241,11.5948594 L6.82580355,11.5948594 L8.80996071,11.5948594 L8.80996071,13.8912813 L8.80996071,38.4768828 C8.80996071,39.5351172 9.62945557,40.390625 10.6430608,40.390625 L18.4502002,40.390625 C19.4638054,40.390625 20.2833003,39.5351172 20.2833003,38.4768828 L20.2833003,13.8912813 L20.2833003,13.6774688 L20.2833003,11.5948594 L22.2674574,11.5948594 L23.0761684,11.5948594 L23.4751731,11.5948594 C26.5376389,11.5948594 29.0285575,8.99447656 29.0285575,5.79742969 C29.0609093,2.60038281 26.5699906,0 23.5075248,0 Z", fill: "#FFFFFF" }), jsx("path", { d: "M41.1381478,16.0301797 L41.1381478,31.6550781 C41.5479364,31.7563984 41.9684266,31.8352031 42.399783,31.90275 C43.0036819,31.9928125 43.6290664,32.0491016 44.2545332,32.0603594 C44.2868849,32.0603594 44.3192367,32.0603594 44.3623723,32.0603594 L44.3623723,19.6324219 C42.5615416,19.5085859 41.1381478,17.9438359 41.1381478,16.0301797 Z", fill: "url(#linearGradient-1)" }), jsx("path", { d: "M44.5993714,0 C36.1237942,0 29.2440711,7.18205469 29.2440711,16.0301797 C29.2440711,23.6400312 34.3229635,30.0115234 41.1379832,31.6550781 L41.1379832,16.0301797 C41.1379832,14.0376328 42.6907839,12.4165937 44.5993714,12.4165937 C46.5080412,12.4165937 48.0608419,14.0376328 48.0608419,16.0301797 C48.0608419,17.7075078 46.9717493,19.1146484 45.483652,19.5198437 C45.2032703,19.5986484 44.9013209,19.6436797 44.5993714,19.6436797 L44.5993714,32.0603594 C44.9013209,32.0603594 45.1924864,32.0491016 45.483652,32.0378438 C53.5495229,31.5537578 59.9547666,24.5743438 59.9547666,16.0301797 C59.9655379,7.18205469 53.0858148,0 44.5993714,0 Z", fill: "#FFFFFF" }), jsx("path", { d: "M44.5992891,32.0603594 L44.5992891,19.6436797 C44.5131001,19.6436797 44.4376127,19.6436797 44.3513414,19.6324219 L44.3513414,32.0603594 C44.4376127,32.0603594 44.523884,32.0603594 44.5992891,32.0603594 Z", fill: "#FFFFFF" })] })] }) })] }));
|
|
355
413
|
const Talisman = ({ ...props }) => (jsxs("svg", { ...props, width: "82", height: "82", viewBox: "0 0 82 82", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("rect", { width: "82", height: "82", rx: "12", fill: "#D5FF5C" }), jsx("path", { d: "M35.04 55C35.04 58.2905 37.6887 60.9623 40.9703 60.9996C44.2519 60.9623 46.9006 58.2905 46.9006 55C46.9006 51.7096 44.2519 49.0377 40.9703 49.0004C37.6887 49.0377 35.04 51.7096 35.04 55Z", fill: "#FD4848" }), jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M22.8544 44.6623C22.2462 45.9868 20.4553 46.4546 19.4248 45.4241L17.5356 43.5349C15.583 41.5823 12.4171 41.5823 10.4645 43.5349C8.51184 45.4875 8.51184 48.6534 10.4645 50.606L25.7391 65.8807C29.3942 70.2176 34.8595 72.9788 40.9703 72.9994C47.0811 72.9788 52.5464 70.2176 56.2014 65.8807L71.4761 50.606C73.4287 48.6534 73.4287 45.4875 71.4761 43.5349C69.5234 41.5823 66.3576 41.5823 64.4049 43.5349L62.5158 45.4241C61.4852 46.4546 59.6943 45.9868 59.0861 44.6623C58.9663 44.4013 58.901 44.1213 58.901 43.8341L58.901 20.9995C58.901 18.2381 56.6624 15.9995 53.901 15.9995C51.1396 15.9995 48.901 18.2381 48.901 20.9995L48.901 32.5568C48.901 33.5506 47.8829 34.2252 46.9353 33.9257C46.3356 33.7361 45.9023 33.1901 45.9023 32.5611L45.9023 13.9996C45.9023 11.2608 43.7004 9.03637 40.9703 9C38.2402 9.03637 36.0382 11.2608 36.0382 13.9996L36.0382 32.5611C36.0382 33.1901 35.605 33.7361 35.0052 33.9257C34.0576 34.2252 33.0395 33.5506 33.0395 32.5568L33.0396 20.9995C33.0396 18.2381 30.801 15.9995 28.0395 15.9995C25.2781 15.9995 23.0395 18.2381 23.0395 20.9995L23.0395 43.8341C23.0395 44.1213 22.9743 44.4013 22.8544 44.6623ZM40.9703 44.9999C32.1659 45.0525 25.0403 54.9997 25.0403 54.9997C25.0403 54.9997 32.1659 64.9469 40.9703 64.9995C49.7746 64.9469 56.9002 54.9997 56.9002 54.9997C56.9002 54.9997 49.7746 45.0525 40.9703 44.9999Z", fill: "#FD4848" })] }));
|
|
414
|
+
const OKX = ({ ...props }) => (jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", id: "a", viewBox: "0 0 150 150", style: { background: "#FFFFFF" }, children: [jsx("g", { id: "b", children: jsx("g", { id: "c", children: jsx("path", { id: "d", fill: "none", d: "M0 0h150v150H0z" }) }) }), jsx("path", { d: "M0 -0.239624V150H150.24V-0.239624H0ZM32.5006 34.4665C32.5006 33.4122 33.361 32.5518 34.4153 32.5518H59.0149C60.0692 32.5518 60.9296 33.4122 60.9296 34.4665V59.0661C60.9296 60.1325 60.0692 60.9929 59.0149 60.9929H34.4153C33.361 60.9929 32.5006 60.1325 32.5006 59.0661V34.4665ZM60.9296 115.294C60.9296 116.348 60.0692 117.209 59.0149 117.209H34.4153C33.361 117.209 32.5006 116.348 32.5006 115.294V90.6943C32.5006 89.6279 33.361 88.7675 34.4153 88.7675H59.0149C60.0692 88.7675 60.9296 89.6279 60.9296 90.6943V115.294ZM87.4196 89.0947H62.82C61.7657 89.0947 60.8932 88.2343 60.8932 87.1679V62.5682C60.8932 61.514 61.7536 60.6415 62.82 60.6415H87.4196C88.4739 60.6415 89.3464 61.5019 89.3464 62.5682V87.1679C89.3464 88.2222 88.486 89.0947 87.4196 89.0947ZM117.775 115.294C117.775 116.348 116.915 117.209 115.849 117.209H91.2489C90.1947 117.209 89.3343 116.348 89.3343 115.294V90.6943C89.3343 89.6279 90.1947 88.7675 91.2489 88.7675H115.849C116.903 88.7675 117.775 89.6279 117.775 90.6943V115.294ZM117.775 59.054C117.775 60.1204 116.915 60.9808 115.849 60.9808H91.2489C90.1947 60.9808 89.3343 60.1204 89.3343 59.054V34.4544C89.3343 33.4001 90.1947 32.5397 91.2489 32.5397H115.849C116.903 32.5397 117.775 33.4001 117.775 34.4544V59.054Z", fill: "black" })] }));
|
|
356
415
|
const OtherWallets = ({ ...props }) => {
|
|
357
416
|
const column = {
|
|
358
417
|
position: "relative",
|
|
@@ -370,7 +429,7 @@ const OtherWallets = ({ ...props }) => {
|
|
|
370
429
|
overflow: "hidden",
|
|
371
430
|
borderRadius: "27.5%",
|
|
372
431
|
};
|
|
373
|
-
return (jsxs("div", { style: column, ...props, children: [jsxs("div", { style: row, children: [jsx("div", { style: cell, children: jsx(
|
|
432
|
+
return (jsxs("div", { style: column, ...props, children: [jsxs("div", { style: row, children: [jsx("div", { style: cell, children: jsx(MetaMask, {}) }), jsx("div", { style: cell, children: jsx(Phantom, {}) })] }), jsxs("div", { style: row, children: [jsx("div", { style: cell, children: jsx(Coinbase, {}) }), jsx("div", { style: cell, children: jsx(Family, {}) })] })] }));
|
|
374
433
|
};
|
|
375
434
|
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)" }) }) })] }));
|
|
376
435
|
const SquircleIcon = ({ icon, alt, }) => {
|
|
@@ -382,6 +441,7 @@ var Logos$1 = {
|
|
|
382
441
|
Injected,
|
|
383
442
|
OtherWallets,
|
|
384
443
|
WalletConnect,
|
|
444
|
+
WalletIcon: WalletIcon$2,
|
|
385
445
|
MetaMask,
|
|
386
446
|
Coinbase,
|
|
387
447
|
Family,
|
|
@@ -411,32 +471,57 @@ var Logos$1 = {
|
|
|
411
471
|
SquircleIcon,
|
|
412
472
|
Backpack,
|
|
413
473
|
Solflare,
|
|
474
|
+
OKX,
|
|
475
|
+
Bitget,
|
|
414
476
|
};
|
|
415
477
|
|
|
478
|
+
// Infer in-wallet payment URL from environment.
|
|
479
|
+
let daimoPayHost = "https://pay.daimo.com";
|
|
480
|
+
// TODO: add this as a parameter to getWalletConnectDeeplink
|
|
481
|
+
function setInWalletPaymentUrlFromApiUrl(apiUrl) {
|
|
482
|
+
if (apiUrl.startsWith("http://localhost")) {
|
|
483
|
+
daimoPayHost = "http://localhost:3001";
|
|
484
|
+
}
|
|
485
|
+
else if (apiUrl.startsWith("https://pay-api-stage.daimo.xyz")) {
|
|
486
|
+
daimoPayHost = "https://daimo.ngrok.app";
|
|
487
|
+
}
|
|
488
|
+
else {
|
|
489
|
+
daimoPayHost = "https://pay.daimo.com";
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
function getDaimoPayUrl(payId) {
|
|
493
|
+
return daimoPayHost + "/pay?id=" + payId;
|
|
494
|
+
}
|
|
495
|
+
function getEncodedDaimoPayUrl(payId) {
|
|
496
|
+
let url = getDaimoPayUrl(payId);
|
|
497
|
+
let encodedUrl = encodeURIComponent(url);
|
|
498
|
+
return encodedUrl;
|
|
499
|
+
}
|
|
416
500
|
// Organised in alphabetical order by key
|
|
417
501
|
const walletConfigs = {
|
|
418
502
|
//TODO: update new wallet configs with favorite wallets
|
|
419
|
-
mock: {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
},
|
|
423
|
-
argent: {
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
},
|
|
503
|
+
// mock: {
|
|
504
|
+
// icon: <Logos.Mock />,
|
|
505
|
+
// showInMobileConnectors: false,
|
|
506
|
+
// },
|
|
507
|
+
// argent: {
|
|
508
|
+
// name: "Argent",
|
|
509
|
+
// icon: <Logos.Argent />,
|
|
510
|
+
// downloadUrls: {
|
|
511
|
+
// download: "https://connect.family.co/v0/download/argent",
|
|
512
|
+
// android:
|
|
513
|
+
// "https://play.google.com/store/apps/details?id=im.argent.contractwalletclient",
|
|
514
|
+
// ios: "https://apps.apple.com/app/argent/id1358741926",
|
|
515
|
+
// },
|
|
516
|
+
// showInMobileConnectors: false,
|
|
517
|
+
// getWalletConnectDeeplink: (uri: string) => {
|
|
518
|
+
// return `https://argent.link/app/wc?uri=${encodeURIComponent(uri)}`;
|
|
519
|
+
// },
|
|
520
|
+
// },
|
|
436
521
|
"coinbaseWallet, coinbaseWalletSDK": {
|
|
437
522
|
name: "Coinbase Wallet",
|
|
438
523
|
shortName: "Coinbase",
|
|
439
|
-
icon: jsx(Logos$1.Coinbase, {
|
|
524
|
+
icon: jsx(Logos$1.Coinbase, {}),
|
|
440
525
|
iconShape: "squircle",
|
|
441
526
|
downloadUrls: {
|
|
442
527
|
download: "https://connect.family.co/v0/download/coinbasewallet",
|
|
@@ -445,16 +530,17 @@ const walletConfigs = {
|
|
|
445
530
|
ios: "https://apps.apple.com/app/coinbase-wallet-store-crypto/id1278383455",
|
|
446
531
|
chrome: "https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad",
|
|
447
532
|
},
|
|
448
|
-
showInMobileConnectors:
|
|
449
|
-
|
|
450
|
-
|
|
533
|
+
showInMobileConnectors: true,
|
|
534
|
+
deeplinkScheme: "cbwallet://",
|
|
535
|
+
getDaimoPayDeeplink: (payId) => {
|
|
536
|
+
return "cbwallet://dapp?url=" + getEncodedDaimoPayUrl(payId);
|
|
451
537
|
},
|
|
452
538
|
},
|
|
453
539
|
"com.coinbase.wallet": {
|
|
454
540
|
name: "Coinbase Wallet",
|
|
455
541
|
shortName: "Coinbase",
|
|
456
|
-
icon: jsx(Logos$1.Coinbase, {
|
|
457
|
-
iconShape: "
|
|
542
|
+
icon: jsx(Logos$1.Coinbase, {}),
|
|
543
|
+
iconShape: "squircle",
|
|
458
544
|
downloadUrls: {
|
|
459
545
|
download: "https://connect.family.co/v0/download/coinbasewallet",
|
|
460
546
|
website: "https://www.coinbase.com/wallet/getting-started-extension",
|
|
@@ -463,25 +549,48 @@ const walletConfigs = {
|
|
|
463
549
|
chrome: "https://chrome.google.com/webstore/detail/coinbase-wallet-extension/hnfanknocfeofbddgcijnmhnfnkdnaad",
|
|
464
550
|
},
|
|
465
551
|
showInMobileConnectors: false,
|
|
466
|
-
|
|
467
|
-
|
|
552
|
+
deeplinkScheme: "cbwallet://",
|
|
553
|
+
getDaimoPayDeeplink: (payId) => {
|
|
554
|
+
return "cbwallet://dapp?url=" + getEncodedDaimoPayUrl(payId);
|
|
468
555
|
},
|
|
469
556
|
},
|
|
470
|
-
"com.crypto.wallet": {
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
557
|
+
// "com.crypto.wallet": {
|
|
558
|
+
// name: "Crypto.com",
|
|
559
|
+
// shortName: "Crypto",
|
|
560
|
+
// showInMobileConnectors: false,
|
|
561
|
+
// },
|
|
562
|
+
backpack: {
|
|
563
|
+
name: "Backpack",
|
|
564
|
+
shortName: "Backpack",
|
|
565
|
+
icon: jsx(Logos$1.Backpack, {}),
|
|
566
|
+
iconShape: "squircle",
|
|
567
|
+
showInMobileConnectors: true,
|
|
568
|
+
getDaimoPayDeeplink: (payId) => {
|
|
569
|
+
const url = encodeURIComponent(getDaimoPayUrl(payId));
|
|
570
|
+
return `https://backpack.app/ul/v1/browse/${url}`;
|
|
571
|
+
},
|
|
474
572
|
},
|
|
475
|
-
|
|
476
|
-
name: "
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
573
|
+
bitget: {
|
|
574
|
+
name: "Bitget",
|
|
575
|
+
icon: jsx(Logos$1.Bitget, {}),
|
|
576
|
+
iconShape: "squircle",
|
|
577
|
+
showInMobileConnectors: true,
|
|
578
|
+
deeplinkScheme: "bitkeep://",
|
|
579
|
+
getDaimoPayDeeplink: (payId) => {
|
|
580
|
+
return "bitkeep://bkconnect?action=dapp&url=" + getDaimoPayUrl(payId);
|
|
482
581
|
},
|
|
483
|
-
showInMobileConnectors: false,
|
|
484
582
|
},
|
|
583
|
+
// dawn: {
|
|
584
|
+
// name: "Dawn Wallet",
|
|
585
|
+
// shortName: "Dawn",
|
|
586
|
+
// downloadUrls: {
|
|
587
|
+
// download:
|
|
588
|
+
// "https://apps.apple.com/us/app/dawn-ethereum-wallet/id1673143782",
|
|
589
|
+
// website: "https://www.dawnwallet.xyz/",
|
|
590
|
+
// ios: "https://apps.apple.com/us/app/dawn-ethereum-wallet/id1673143782",
|
|
591
|
+
// },
|
|
592
|
+
// showInMobileConnectors: false,
|
|
593
|
+
// },
|
|
485
594
|
"co.family.wallet": {
|
|
486
595
|
name: "Family",
|
|
487
596
|
shortName: "Family",
|
|
@@ -492,48 +601,18 @@ const walletConfigs = {
|
|
|
492
601
|
website: "https://family.co",
|
|
493
602
|
ios: "https://family.co/download",
|
|
494
603
|
},
|
|
495
|
-
|
|
496
|
-
|
|
604
|
+
deeplinkScheme: "familywallet://",
|
|
605
|
+
getDaimoPayDeeplink: (payId) => {
|
|
606
|
+
return "familywallet://browser?url=" + getDaimoPayUrl(payId);
|
|
497
607
|
},
|
|
498
|
-
walletDeepLink: "familywallet://",
|
|
499
608
|
showInMobileConnectors: true,
|
|
500
609
|
},
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
website: "https://frame.sh",
|
|
508
|
-
chrome: "https://chrome.google.com/webstore/detail/frame-companion/ldcoohedfbjoobcadoglnnmmfbdlmmhf",
|
|
509
|
-
firefox: "https://addons.mozilla.org/en-US/firefox/addon/frame-extension",
|
|
510
|
-
brave: "https://chrome.google.com/webstore/detail/frame-companion/ldcoohedfbjoobcadoglnnmmfbdlmmhf",
|
|
511
|
-
},
|
|
512
|
-
showInMobileConnectors: false,
|
|
513
|
-
getWalletConnectDeeplink: (uri) => uri,
|
|
514
|
-
},
|
|
515
|
-
frontier: {
|
|
516
|
-
name: "Frontier Wallet",
|
|
517
|
-
shortName: "Frontier",
|
|
518
|
-
icon: jsx(Logos$1.Frontier, {}),
|
|
519
|
-
downloadUrls: {
|
|
520
|
-
download: "https://connect.family.co/v0/download/frontier",
|
|
521
|
-
ios: "https://apps.apple.com/app/frontier-crypto-defi-wallet/id1482380988",
|
|
522
|
-
android: "https://play.google.com/store/apps/details?id=com.frontierwallet",
|
|
523
|
-
website: "https://frontier.xyz/",
|
|
524
|
-
chrome: "https://chrome.google.com/webstore/detail/frontier-wallet/kppfdiipphfccemcignhifpjkapfbihd",
|
|
525
|
-
},
|
|
526
|
-
showInMobileConnectors: false,
|
|
527
|
-
getWalletConnectDeeplink: (uri) => {
|
|
528
|
-
return `frontier://wc?uri=${encodeURIComponent(uri)}`;
|
|
529
|
-
},
|
|
530
|
-
},
|
|
531
|
-
injected: {
|
|
532
|
-
name: "Browser Wallet",
|
|
533
|
-
shortName: "Browser",
|
|
534
|
-
icon: jsx(Logos$1.Injected, {}),
|
|
535
|
-
showInMobileConnectors: false,
|
|
536
|
-
},
|
|
610
|
+
// injected: {
|
|
611
|
+
// name: "Browser Wallet",
|
|
612
|
+
// shortName: "Browser",
|
|
613
|
+
// icon: <Logos.Injected />,
|
|
614
|
+
// showInMobileConnectors: false,
|
|
615
|
+
// },
|
|
537
616
|
"metaMask, metaMask-io, io.metamask, io.metamask.mobile, metaMaskSDK": {
|
|
538
617
|
name: "MetaMask",
|
|
539
618
|
shortName: "MetaMask",
|
|
@@ -550,15 +629,24 @@ const walletConfigs = {
|
|
|
550
629
|
brave: "https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn",
|
|
551
630
|
edge: "https://microsoftedge.microsoft.com/addons/detail/metamask/ejbalbakoplchlghecdalmeeeajnimhm",
|
|
552
631
|
},
|
|
553
|
-
showInMobileConnectors:
|
|
554
|
-
|
|
555
|
-
|
|
632
|
+
showInMobileConnectors: true,
|
|
633
|
+
deeplinkScheme: "metamask://",
|
|
634
|
+
getDaimoPayDeeplink: (payId) => {
|
|
635
|
+
const daimoPayUrl = getDaimoPayUrl(payId);
|
|
636
|
+
return ("https://metamask.app.link/dapp/" + daimoPayUrl.replace("https://", ""));
|
|
556
637
|
},
|
|
557
638
|
},
|
|
558
639
|
"app.phantom": {
|
|
559
640
|
name: "Phantom",
|
|
641
|
+
icon: jsx(Logos$1.Phantom, {}),
|
|
560
642
|
iconShape: "squircle",
|
|
561
|
-
showInMobileConnectors:
|
|
643
|
+
showInMobileConnectors: true,
|
|
644
|
+
deeplinkScheme: "phantom://",
|
|
645
|
+
getDaimoPayDeeplink: (payId) => {
|
|
646
|
+
const url = encodeURIComponent(getDaimoPayUrl(payId));
|
|
647
|
+
const ref = encodeURIComponent(window.location.origin);
|
|
648
|
+
return `https://phantom.app/ul/browse/${url}?ref=${ref}`;
|
|
649
|
+
},
|
|
562
650
|
},
|
|
563
651
|
"me.rainbow": {
|
|
564
652
|
name: "Rainbow Wallet",
|
|
@@ -576,145 +664,176 @@ const walletConfigs = {
|
|
|
576
664
|
},
|
|
577
665
|
showInMobileConnectors: false,
|
|
578
666
|
isWcMobileConnector: false,
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
walletDeepLink: "rainbow://",
|
|
583
|
-
},
|
|
584
|
-
"io.rabby": {
|
|
585
|
-
name: "Rabby Wallet",
|
|
586
|
-
shortName: "Rabby",
|
|
587
|
-
downloadUrls: {
|
|
588
|
-
website: "https://rabby.io",
|
|
589
|
-
chrome: "https://chrome.google.com/webstore/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch",
|
|
590
|
-
},
|
|
591
|
-
showInMobileConnectors: false,
|
|
592
|
-
},
|
|
593
|
-
safe: {
|
|
594
|
-
name: "Safe",
|
|
595
|
-
icon: jsx(Logos$1.Safe, {}),
|
|
596
|
-
downloadUrls: {
|
|
597
|
-
download: "https://connect.family.co/v0/download/safe",
|
|
598
|
-
website: "https://safe.global/",
|
|
599
|
-
ios: "https://apps.apple.com/app/id1515759131",
|
|
600
|
-
android: "https://play.google.com/store/apps/details?id=io.gnosis.safe",
|
|
667
|
+
deeplinkScheme: "rainbow://",
|
|
668
|
+
getDaimoPayDeeplink: (payId) => {
|
|
669
|
+
return "rainbow://dapp?url=" + getDaimoPayUrl(payId);
|
|
601
670
|
},
|
|
602
|
-
showInMobileConnectors: false,
|
|
603
|
-
getWalletConnectDeeplink: (uri) => {
|
|
604
|
-
return `https://gnosis-safe.io/wc?uri=${encodeURIComponent(uri)}`;
|
|
605
|
-
},
|
|
606
|
-
},
|
|
607
|
-
"xyz.talisman": {
|
|
608
|
-
name: "Talisman",
|
|
609
|
-
shortName: "Talisman",
|
|
610
|
-
iconShape: "squircle",
|
|
611
|
-
downloadUrls: {
|
|
612
|
-
download: "https://talisman.xyz/download",
|
|
613
|
-
website: "https://talisman.xyz",
|
|
614
|
-
chrome: "https://chrome.google.com/webstore/detail/talisman-polkadot-wallet/fijngjgcjhjmmpcmkeiomlglpeiijkld",
|
|
615
|
-
firefox: "https://addons.mozilla.org/en-US/firefox/addon/talisman-wallet-extension/",
|
|
616
|
-
},
|
|
617
|
-
showInMobileConnectors: false,
|
|
618
671
|
},
|
|
672
|
+
// "io.rabby": {
|
|
673
|
+
// name: "Rabby Wallet",
|
|
674
|
+
// shortName: "Rabby",
|
|
675
|
+
// downloadUrls: {
|
|
676
|
+
// website: "https://rabby.io",
|
|
677
|
+
// chrome:
|
|
678
|
+
// "https://chrome.google.com/webstore/detail/rabby-wallet/acmacodkjbdgmoleebolmdjonilkdbch",
|
|
679
|
+
// },
|
|
680
|
+
// showInMobileConnectors: false,
|
|
681
|
+
// //TODO: add wallet deep link
|
|
682
|
+
// // edit rabby scheme to deeplink URL: https://github.com/RabbyHub/rabby-mobile/blob/999d60f49c5254e4aa8e6aa8bb80ad46e267845c/apps/mobile/src/LinkingConfig.ts#L25
|
|
683
|
+
// },
|
|
684
|
+
// safe: {
|
|
685
|
+
// name: "Safe",
|
|
686
|
+
// icon: <Logos.Safe />,
|
|
687
|
+
// downloadUrls: {
|
|
688
|
+
// download: "https://connect.family.co/v0/download/safe",
|
|
689
|
+
// website: "https://safe.global/",
|
|
690
|
+
// ios: "https://apps.apple.com/app/id1515759131",
|
|
691
|
+
// android: "https://play.google.com/store/apps/details?id=io.gnosis.safe",
|
|
692
|
+
// },
|
|
693
|
+
// showInMobileConnectors: false,
|
|
694
|
+
// },
|
|
695
|
+
// "xyz.talisman": {
|
|
696
|
+
// name: "Talisman",
|
|
697
|
+
// shortName: "Talisman",
|
|
698
|
+
// iconShape: "squircle",
|
|
699
|
+
// downloadUrls: {
|
|
700
|
+
// download: "https://talisman.xyz/download",
|
|
701
|
+
// website: "https://talisman.xyz",
|
|
702
|
+
// chrome:
|
|
703
|
+
// "https://chrome.google.com/webstore/detail/talisman-polkadot-wallet/fijngjgcjhjmmpcmkeiomlglpeiijkld",
|
|
704
|
+
// firefox:
|
|
705
|
+
// "https://addons.mozilla.org/en-US/firefox/addon/talisman-wallet-extension/",
|
|
706
|
+
// },
|
|
707
|
+
// showInMobileConnectors: false,
|
|
708
|
+
// },
|
|
619
709
|
"com.trustwallet.app": {
|
|
620
710
|
name: "Trust Wallet",
|
|
621
711
|
shortName: "Trust",
|
|
622
712
|
icon: jsx(Logos$1.Trust, {}),
|
|
623
|
-
|
|
713
|
+
iconConnector: jsx(Logos$1.Trust, { background: true }),
|
|
624
714
|
downloadUrls: {
|
|
625
715
|
download: "https://connect.family.co/v0/download/trust",
|
|
626
716
|
android: "https://play.google.com/store/apps/details?id=com.wallet.crypto.trustapp",
|
|
627
717
|
ios: "https://apps.apple.com/app/trust-crypto-bitcoin-wallet/id1288339409",
|
|
628
718
|
},
|
|
629
719
|
showInMobileConnectors: false,
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
},
|
|
634
|
-
infinityWallet: {
|
|
635
|
-
name: "Infinity Wallet",
|
|
636
|
-
icon: jsx(Logos$1.InfinityWallet, {}),
|
|
637
|
-
downloadUrls: {
|
|
638
|
-
download: "https://connect.family.co/v0/download/infinityWallet",
|
|
639
|
-
website: "https://infinitywallet.io/download",
|
|
640
|
-
chrome: "https://infinitywallet.io/download",
|
|
641
|
-
firefox: "https://infinitywallet.io/download",
|
|
642
|
-
brave: "https://infinitywallet.io/download",
|
|
643
|
-
edge: "https://infinitywallet.io/download",
|
|
644
|
-
},
|
|
645
|
-
showInMobileConnectors: false,
|
|
646
|
-
},
|
|
647
|
-
imToken: {
|
|
648
|
-
name: "imToken",
|
|
649
|
-
icon: jsx(Logos$1.ImToken, {}),
|
|
650
|
-
downloadUrls: {
|
|
651
|
-
//website: 'https://support.token.im/hc/en-us/categories/360000925393',
|
|
652
|
-
download: "https://connect.family.co/v0/download/imToken",
|
|
653
|
-
android: "https://play.google.com/store/apps/details?id=im.token.app",
|
|
654
|
-
ios: "https://itunes.apple.com/us/app/imtoken2/id1384798940",
|
|
655
|
-
},
|
|
656
|
-
showInMobileConnectors: false,
|
|
657
|
-
getWalletConnectDeeplink: (uri) => {
|
|
658
|
-
return `imtokenv2://wc?uri=${encodeURIComponent(uri)}`;
|
|
659
|
-
},
|
|
660
|
-
},
|
|
661
|
-
unstoppable: {
|
|
662
|
-
name: "Unstoppable",
|
|
663
|
-
icon: jsx(Logos$1.Unstoppable, {}),
|
|
664
|
-
downloadUrls: {
|
|
665
|
-
download: "https://connect.family.co/v0/download/unstoppable",
|
|
666
|
-
ios: "https://apps.apple.com/app/bank-bitcoin-wallet/id1447619907",
|
|
667
|
-
android: "https://play.google.com/store/apps/details?id=io.horizontalsystems.bankwallet",
|
|
668
|
-
},
|
|
669
|
-
showInMobileConnectors: false,
|
|
670
|
-
getWalletConnectDeeplink: (uri) => {
|
|
671
|
-
return `https://unstoppable.money/wc?uri=${encodeURIComponent(uri)}`;
|
|
672
|
-
},
|
|
673
|
-
},
|
|
674
|
-
onto: {
|
|
675
|
-
name: "ONTO",
|
|
676
|
-
icon: jsx(Logos$1.ONTO, {}),
|
|
677
|
-
downloadUrls: {
|
|
678
|
-
download: "https://connect.family.co/v0/download/onto",
|
|
679
|
-
ios: "https://apps.apple.com/app/onto-an-ontology-dapp/id1436009823",
|
|
680
|
-
android: "https://play.google.com/store/apps/details?id=com.github.ontio.onto",
|
|
681
|
-
website: "https://onto.app/en/download/",
|
|
682
|
-
},
|
|
683
|
-
showInMobileConnectors: false,
|
|
684
|
-
getWalletConnectDeeplink: (uri) => {
|
|
685
|
-
return `https://onto.app/wc?uri=${encodeURIComponent(uri)}`;
|
|
720
|
+
deeplinkScheme: "trust://",
|
|
721
|
+
getDaimoPayDeeplink: (payId) => {
|
|
722
|
+
return "trust://open_url?coin_id=60&url=" + getDaimoPayUrl(payId);
|
|
686
723
|
},
|
|
687
724
|
},
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
725
|
+
// infinityWallet: {
|
|
726
|
+
// name: "Infinity Wallet",
|
|
727
|
+
// icon: <Logos.InfinityWallet />,
|
|
728
|
+
// downloadUrls: {
|
|
729
|
+
// download: "https://connect.family.co/v0/download/infinityWallet",
|
|
730
|
+
// website: "https://infinitywallet.io/download",
|
|
731
|
+
// chrome: "https://infinitywallet.io/download",
|
|
732
|
+
// firefox: "https://infinitywallet.io/download",
|
|
733
|
+
// brave: "https://infinitywallet.io/download",
|
|
734
|
+
// edge: "https://infinitywallet.io/download",
|
|
735
|
+
// },
|
|
736
|
+
// showInMobileConnectors: false,
|
|
737
|
+
// },
|
|
738
|
+
// imToken: {
|
|
739
|
+
// name: "imToken",
|
|
740
|
+
// icon: <Logos.ImToken />,
|
|
741
|
+
// downloadUrls: {
|
|
742
|
+
// //website: 'https://support.token.im/hc/en-us/categories/360000925393',
|
|
743
|
+
// download: "https://connect.family.co/v0/download/imToken",
|
|
744
|
+
// android: "https://play.google.com/store/apps/details?id=im.token.app",
|
|
745
|
+
// ios: "https://itunes.apple.com/us/app/imtoken2/id1384798940",
|
|
746
|
+
// },
|
|
747
|
+
// showInMobileConnectors: false,
|
|
748
|
+
// getWalletConnectDeeplink: (uri: string) => {
|
|
749
|
+
// return `imtokenv2://wc?uri=${encodeURIComponent(uri)}`;
|
|
750
|
+
// },
|
|
751
|
+
// },
|
|
752
|
+
// unstoppable: {
|
|
753
|
+
// name: "Unstoppable",
|
|
754
|
+
// icon: <Logos.Unstoppable />,
|
|
755
|
+
// downloadUrls: {
|
|
756
|
+
// download: "https://connect.family.co/v0/download/unstoppable",
|
|
757
|
+
// ios: "https://apps.apple.com/app/bank-bitcoin-wallet/id1447619907",
|
|
758
|
+
// android:
|
|
759
|
+
// "https://play.google.com/store/apps/details?id=io.horizontalsystems.bankwallet",
|
|
760
|
+
// },
|
|
761
|
+
// showInMobileConnectors: false,
|
|
762
|
+
// getWalletConnectDeeplink: (uri: string) => {
|
|
763
|
+
// return `https://unstoppable.money/wc?uri=${encodeURIComponent(uri)}`;
|
|
764
|
+
// },
|
|
765
|
+
// },
|
|
766
|
+
// onto: {
|
|
767
|
+
// name: "ONTO",
|
|
768
|
+
// icon: <Logos.ONTO />,
|
|
769
|
+
// downloadUrls: {
|
|
770
|
+
// download: "https://connect.family.co/v0/download/onto",
|
|
771
|
+
// ios: "https://apps.apple.com/app/onto-an-ontology-dapp/id1436009823",
|
|
772
|
+
// android:
|
|
773
|
+
// "https://play.google.com/store/apps/details?id=com.github.ontio.onto",
|
|
774
|
+
// website: "https://onto.app/en/download/",
|
|
775
|
+
// },
|
|
776
|
+
// showInMobileConnectors: false,
|
|
777
|
+
// getWalletConnectDeeplink: (uri: string) => {
|
|
778
|
+
// return `https://onto.app/wc?uri=${encodeURIComponent(uri)}`;
|
|
779
|
+
// },
|
|
780
|
+
// },
|
|
781
|
+
okx: {
|
|
782
|
+
name: "OKX",
|
|
783
|
+
icon: jsx(Logos$1.OKX, {}),
|
|
784
|
+
showInMobileConnectors: true,
|
|
785
|
+
deeplinkScheme: "okx://",
|
|
786
|
+
getDaimoPayDeeplink: (payId) => {
|
|
787
|
+
return "okx://wallet/dapp/url?dappUrl=" + getDaimoPayUrl(payId);
|
|
700
788
|
},
|
|
701
789
|
},
|
|
702
|
-
|
|
703
|
-
name: "
|
|
704
|
-
|
|
705
|
-
icon: jsx(Logos$1.Ledger, {}),
|
|
706
|
-
downloadUrls: {
|
|
707
|
-
download: "https://connect.family.co/v0/download/ledger",
|
|
708
|
-
website: "https://www.ledger.com/ledger-live/download#download-device-2",
|
|
709
|
-
android: "https://play.google.com/store/apps/details?id=com.ledger.live",
|
|
710
|
-
ios: "https://apps.apple.com/app/ledger-live-web3-wallet/id1361671700",
|
|
711
|
-
},
|
|
790
|
+
solflare: {
|
|
791
|
+
name: "Solflare",
|
|
792
|
+
icon: jsx(Logos$1.Solflare, {}),
|
|
712
793
|
showInMobileConnectors: true,
|
|
713
|
-
|
|
714
|
-
|
|
794
|
+
deeplinkScheme: "solflare://",
|
|
795
|
+
getDaimoPayDeeplink: (payId) => {
|
|
796
|
+
const url = encodeURIComponent(getDaimoPayUrl(payId));
|
|
797
|
+
const ref = encodeURIComponent(window.location.origin);
|
|
798
|
+
return `https://solflare.com/ul/v1/browse/${url}?ref=${ref}`;
|
|
715
799
|
},
|
|
716
|
-
shouldDeeplinkDesktop: true,
|
|
717
800
|
},
|
|
801
|
+
// steak: {
|
|
802
|
+
// name: "Steak",
|
|
803
|
+
// icon: <Logos.Steak />,
|
|
804
|
+
// downloadUrls: {
|
|
805
|
+
// download: "https://connect.family.co/v0/download/steak",
|
|
806
|
+
// android:
|
|
807
|
+
// "https://play.google.com/store/apps/details?id=fi.steakwallet.app",
|
|
808
|
+
// ios: "https://apps.apple.com/app/steakwallet/id1569375204",
|
|
809
|
+
// website: "https://steakwallet.fi/download",
|
|
810
|
+
// },
|
|
811
|
+
// showInMobileConnectors: false,
|
|
812
|
+
// getWalletConnectDeeplink: (uri: string) => {
|
|
813
|
+
// return `https://links.steakwallet.fi/wc?uri=${encodeURIComponent(uri)}`;
|
|
814
|
+
// },
|
|
815
|
+
// },
|
|
816
|
+
// ledger: {
|
|
817
|
+
// name: "Ledger Live",
|
|
818
|
+
// shortName: "Ledger",
|
|
819
|
+
// icon: <Logos.Ledger />,
|
|
820
|
+
// downloadUrls: {
|
|
821
|
+
// download: "https://connect.family.co/v0/download/ledger",
|
|
822
|
+
// website: "https://www.ledger.com/ledger-live/download#download-device-2",
|
|
823
|
+
// android: "https://play.google.com/store/apps/details?id=com.ledger.live",
|
|
824
|
+
// ios: "https://apps.apple.com/app/ledger-live-web3-wallet/id1361671700",
|
|
825
|
+
// },
|
|
826
|
+
// showInMobileConnectors: true,
|
|
827
|
+
// deeplinkScheme: "ledgerlive://",
|
|
828
|
+
// getWalletConnectDeeplink: (uri: string) => {
|
|
829
|
+
// return `ledgerlive://wc?uri=${encodeURIComponent(uri)}`;
|
|
830
|
+
// },
|
|
831
|
+
// // getDaimoPayDeeplink: (payId: string) => {
|
|
832
|
+
// // return "ledgerlive://discover/" + daimoPayUrl + payId;
|
|
833
|
+
// // },
|
|
834
|
+
// // TODO: Add Daimo Pay to Ledger Live's Discover section https://developers.ledger.com/docs/ledger-live/discover/getting-started
|
|
835
|
+
// shouldDeeplinkDesktop: true,
|
|
836
|
+
// },
|
|
718
837
|
zerion: {
|
|
719
838
|
name: "Zerion",
|
|
720
839
|
icon: jsx(Logos$1.Zerion, {}),
|
|
@@ -724,49 +843,55 @@ const walletConfigs = {
|
|
|
724
843
|
android: "https://play.google.com/store/apps/details?id=io.zerion.android",
|
|
725
844
|
website: "https://zerion.io/",
|
|
726
845
|
},
|
|
727
|
-
getWalletConnectDeeplink: (uri) => {
|
|
728
|
-
return `https://app.zerion.io/wc?uri=${encodeURIComponent(uri)}`;
|
|
729
|
-
},
|
|
730
846
|
showInMobileConnectors: true,
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
icon: jsx(Logos$1.Slope, {}),
|
|
735
|
-
downloadUrls: {
|
|
736
|
-
download: "https://connect.family.co/v0/download/slope",
|
|
737
|
-
ios: "https://apps.apple.com/app/slope-wallet/id1574624530",
|
|
738
|
-
android: "https://play.google.com/store/apps/details?id=com.wd.wallet",
|
|
739
|
-
chrome: "https://chrome.google.com/webstore/detail/slope-wallet/pocmplpaccanhmnllbbkpgfliimjljgo",
|
|
740
|
-
website: "https://slope.finance/",
|
|
741
|
-
},
|
|
742
|
-
showInMobileConnectors: false,
|
|
743
|
-
getWalletConnectDeeplink: (uri) => {
|
|
744
|
-
return `https://slope.finance/app/wc?uri=${encodeURIComponent(uri)}`;
|
|
745
|
-
},
|
|
746
|
-
},
|
|
747
|
-
tokenPocket: {
|
|
748
|
-
name: "TokenPocket Wallet",
|
|
749
|
-
icon: jsx(Logos$1.TokenPocket, {}),
|
|
750
|
-
downloadUrls: {
|
|
751
|
-
website: "https://www.tokenpocket.pro/en/download/app",
|
|
752
|
-
download: "https://www.tokenpocket.pro/en/download/app",
|
|
753
|
-
android: "https://play.google.com/store/apps/details?id=vip.mytokenpocket",
|
|
754
|
-
ios: "https://apps.apple.com/us/app/tp-global-wallet/id6444625622",
|
|
755
|
-
chrome: "https://chrome.google.com/webstore/detail/tokenpocket/mfgccjchihfkkindfppnaooecgfneiii",
|
|
756
|
-
},
|
|
757
|
-
showInMobileConnectors: false,
|
|
758
|
-
},
|
|
759
|
-
talisman: {
|
|
760
|
-
name: "Talisman",
|
|
761
|
-
icon: jsx(Logos$1.Talisman, {}),
|
|
762
|
-
downloadUrls: {
|
|
763
|
-
download: "https://talisman.xyz/download",
|
|
764
|
-
website: "https://talisman.xyz",
|
|
765
|
-
chrome: "https://chrome.google.com/webstore/detail/talisman-polkadot-wallet/fijngjgcjhjmmpcmkeiomlglpeiijkld",
|
|
766
|
-
firefox: "https://addons.mozilla.org/en-US/firefox/addon/talisman-wallet-extension/",
|
|
847
|
+
deeplinkScheme: "zerion://",
|
|
848
|
+
getDaimoPayDeeplink: (payId) => {
|
|
849
|
+
return "zerion://browser?url=" + getDaimoPayUrl(payId);
|
|
767
850
|
},
|
|
768
|
-
showInMobileConnectors: false,
|
|
769
851
|
},
|
|
852
|
+
// slope: {
|
|
853
|
+
// name: "Slope",
|
|
854
|
+
// icon: <Logos.Slope />,
|
|
855
|
+
// downloadUrls: {
|
|
856
|
+
// download: "https://connect.family.co/v0/download/slope",
|
|
857
|
+
// ios: "https://apps.apple.com/app/slope-wallet/id1574624530",
|
|
858
|
+
// android: "https://play.google.com/store/apps/details?id=com.wd.wallet",
|
|
859
|
+
// chrome:
|
|
860
|
+
// "https://chrome.google.com/webstore/detail/slope-wallet/pocmplpaccanhmnllbbkpgfliimjljgo",
|
|
861
|
+
// website: "https://slope.finance/",
|
|
862
|
+
// },
|
|
863
|
+
// showInMobileConnectors: false,
|
|
864
|
+
// getWalletConnectDeeplink: (uri: string) => {
|
|
865
|
+
// return `https://slope.finance/app/wc?uri=${encodeURIComponent(uri)}`;
|
|
866
|
+
// },
|
|
867
|
+
// },
|
|
868
|
+
// tokenPocket: {
|
|
869
|
+
// name: "TokenPocket Wallet",
|
|
870
|
+
// icon: <Logos.TokenPocket />,
|
|
871
|
+
// downloadUrls: {
|
|
872
|
+
// website: "https://www.tokenpocket.pro/en/download/app",
|
|
873
|
+
// download: "https://www.tokenpocket.pro/en/download/app",
|
|
874
|
+
// android:
|
|
875
|
+
// "https://play.google.com/store/apps/details?id=vip.mytokenpocket",
|
|
876
|
+
// ios: "https://apps.apple.com/us/app/tp-global-wallet/id6444625622",
|
|
877
|
+
// chrome:
|
|
878
|
+
// "https://chrome.google.com/webstore/detail/tokenpocket/mfgccjchihfkkindfppnaooecgfneiii",
|
|
879
|
+
// },
|
|
880
|
+
// showInMobileConnectors: false,
|
|
881
|
+
// },
|
|
882
|
+
// talisman: {
|
|
883
|
+
// name: "Talisman",
|
|
884
|
+
// icon: <Logos.Talisman />,
|
|
885
|
+
// downloadUrls: {
|
|
886
|
+
// download: "https://talisman.xyz/download",
|
|
887
|
+
// website: "https://talisman.xyz",
|
|
888
|
+
// chrome:
|
|
889
|
+
// "https://chrome.google.com/webstore/detail/talisman-polkadot-wallet/fijngjgcjhjmmpcmkeiomlglpeiijkld",
|
|
890
|
+
// firefox:
|
|
891
|
+
// "https://addons.mozilla.org/en-US/firefox/addon/talisman-wallet-extension/",
|
|
892
|
+
// },
|
|
893
|
+
// showInMobileConnectors: false,
|
|
894
|
+
// },
|
|
770
895
|
walletConnect: {
|
|
771
896
|
name: "Other Wallets",
|
|
772
897
|
shortName: "Other",
|
|
@@ -804,7 +929,7 @@ function useExtractWcWallet({ log, connector, }) {
|
|
|
804
929
|
setWcWallet(undefined);
|
|
805
930
|
}
|
|
806
931
|
}
|
|
807
|
-
}, [connector]);
|
|
932
|
+
}, [connector, log]);
|
|
808
933
|
return wcWallet;
|
|
809
934
|
}
|
|
810
935
|
function extractWcWalletFromProvider(p, log) {
|
|
@@ -829,7 +954,7 @@ function extractWcWalletFromProvider(p, log) {
|
|
|
829
954
|
wallet = {
|
|
830
955
|
name: name,
|
|
831
956
|
icon: p.session?.peer?.metadata?.icons[0],
|
|
832
|
-
|
|
957
|
+
deeplinkScheme: deeplinkUrl,
|
|
833
958
|
isWcMobileConnector: true,
|
|
834
959
|
};
|
|
835
960
|
}
|
|
@@ -885,16 +1010,12 @@ function useDepositAddressOptions({ trpc, usdRequired, mode, }) {
|
|
|
885
1010
|
return { options, loading };
|
|
886
1011
|
}
|
|
887
1012
|
|
|
888
|
-
const DEFAULT_EXTERNAL_PAYMENT_OPTIONS =
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
ExternalPaymentOptions.
|
|
892
|
-
ExternalPaymentOptions.RampNetwork,
|
|
893
|
-
ExternalPaymentOptions.Lemon,
|
|
894
|
-
// Solana and ExternalChains are handled in the SelectMethod component.
|
|
895
|
-
];
|
|
1013
|
+
const DEFAULT_EXTERNAL_PAYMENT_OPTIONS = Object.values(ExternalPaymentOptions).filter((opt) =>
|
|
1014
|
+
// Solana and ExternalChains are handled in the SelectMethod component.
|
|
1015
|
+
opt !== ExternalPaymentOptions.Solana &&
|
|
1016
|
+
opt !== ExternalPaymentOptions.ExternalChains);
|
|
896
1017
|
function useExternalPaymentOptions({ trpc, filterIds, platform, usdRequired, mode, }) {
|
|
897
|
-
const [options, setOptions] = useState(
|
|
1018
|
+
const [options, setOptions] = useState(new Map());
|
|
898
1019
|
const [loading, setLoading] = useState(false);
|
|
899
1020
|
useEffect(() => {
|
|
900
1021
|
const refreshExternalPaymentOptions = async (usd, mode) => {
|
|
@@ -910,7 +1031,15 @@ function useExternalPaymentOptions({ trpc, filterIds, platform, usdRequired, mod
|
|
|
910
1031
|
// Filter out options not in options JSON
|
|
911
1032
|
const enabledExtPaymentOptions = filterIds || DEFAULT_EXTERNAL_PAYMENT_OPTIONS;
|
|
912
1033
|
const filteredOptions = newOptions.filter((option) => enabledExtPaymentOptions.includes(option.id));
|
|
913
|
-
|
|
1034
|
+
const optionsByType = new Map();
|
|
1035
|
+
filteredOptions.forEach((option) => {
|
|
1036
|
+
const { optionType } = option;
|
|
1037
|
+
if (!optionsByType.has(optionType)) {
|
|
1038
|
+
optionsByType.set(optionType, []);
|
|
1039
|
+
}
|
|
1040
|
+
optionsByType.get(optionType).push(option);
|
|
1041
|
+
});
|
|
1042
|
+
setOptions(optionsByType);
|
|
914
1043
|
}
|
|
915
1044
|
catch (error) {
|
|
916
1045
|
console.error(error);
|
|
@@ -922,11 +1051,8 @@ function useExternalPaymentOptions({ trpc, filterIds, platform, usdRequired, mod
|
|
|
922
1051
|
if (usdRequired != null && mode != null) {
|
|
923
1052
|
refreshExternalPaymentOptions(usdRequired, mode);
|
|
924
1053
|
}
|
|
925
|
-
}, [usdRequired, filterIds, platform, mode]);
|
|
926
|
-
return {
|
|
927
|
-
options,
|
|
928
|
-
loading,
|
|
929
|
-
};
|
|
1054
|
+
}, [usdRequired, filterIds, platform, mode, trpc]);
|
|
1055
|
+
return { options, loading };
|
|
930
1056
|
}
|
|
931
1057
|
|
|
932
1058
|
function useOrderUsdLimits({ trpc }) {
|
|
@@ -1121,7 +1247,15 @@ function useWalletPaymentOptions({ trpc, address, usdRequired, destChainId, pref
|
|
|
1121
1247
|
if (address != null && usdRequired != null && destChainId != null) {
|
|
1122
1248
|
refreshWalletPaymentOptions();
|
|
1123
1249
|
}
|
|
1124
|
-
}, [
|
|
1250
|
+
}, [
|
|
1251
|
+
address,
|
|
1252
|
+
usdRequired,
|
|
1253
|
+
destChainId,
|
|
1254
|
+
isDepositFlow,
|
|
1255
|
+
preferredChains,
|
|
1256
|
+
preferredTokens,
|
|
1257
|
+
evmChains,
|
|
1258
|
+
]);
|
|
1125
1259
|
return {
|
|
1126
1260
|
options,
|
|
1127
1261
|
isLoading,
|
|
@@ -1155,14 +1289,17 @@ function usePaymentState({ trpc, lockPayParams, daimoPayOrder, setDaimoPayOrder,
|
|
|
1155
1289
|
// lockPayParams is true
|
|
1156
1290
|
const latestPayParamsRef = useRef();
|
|
1157
1291
|
const latestPayIdRef = useRef();
|
|
1158
|
-
//
|
|
1292
|
+
// From DaimoPayButton props
|
|
1293
|
+
const [buttonProps, setButtonProps] = useState();
|
|
1159
1294
|
const [payParams, setPayParamsState] = useState();
|
|
1160
1295
|
const [paymentWaitingMessage, setPaymentWaitingMessage] = useState();
|
|
1161
1296
|
const [isDepositFlow, setIsDepositFlow] = useState(false);
|
|
1162
1297
|
// UI state. Selection for external payment (Binance, etc) vs wallet payment.
|
|
1163
1298
|
const externalPaymentOptions = useExternalPaymentOptions({
|
|
1164
1299
|
trpc,
|
|
1165
|
-
|
|
1300
|
+
// allow <DaimoPayButton payId={...} paymentOptions={override} />
|
|
1301
|
+
filterIds: buttonProps?.paymentOptions ??
|
|
1302
|
+
daimoPayOrder?.metadata.payer?.paymentOptions,
|
|
1166
1303
|
platform,
|
|
1167
1304
|
usdRequired: daimoPayOrder?.destFinalCallTokenAmount.usd,
|
|
1168
1305
|
mode: daimoPayOrder?.mode,
|
|
@@ -1244,6 +1381,8 @@ function usePaymentState({ trpc, lockPayParams, daimoPayOrder, setDaimoPayOrder,
|
|
|
1244
1381
|
const [selectedTokenOption, setSelectedTokenOption] = useState();
|
|
1245
1382
|
const [selectedSolanaTokenOption, setSelectedSolanaTokenOption] = useState();
|
|
1246
1383
|
const [selectedDepositAddressOption, setSelectedDepositAddressOption] = useState();
|
|
1384
|
+
const [selectedWallet, setSelectedWallet] = useState();
|
|
1385
|
+
const [selectedWalletDeepLink, setSelectedWalletDeepLink] = useState();
|
|
1247
1386
|
const getOrderUsdLimit = () => {
|
|
1248
1387
|
const DEFAULT_USD_LIMIT = 20000;
|
|
1249
1388
|
if (daimoPayOrder == null || chainOrderUsdLimits.loading) {
|
|
@@ -1281,6 +1420,35 @@ function usePaymentState({ trpc, lockPayParams, daimoPayOrder, setDaimoPayOrder,
|
|
|
1281
1420
|
});
|
|
1282
1421
|
return depositAddressOption;
|
|
1283
1422
|
};
|
|
1423
|
+
/// Hydrates an order to prepare for paying in an in-wallet browser via
|
|
1424
|
+
/// deeplink. Then, if wallet is specified, opens in that wallet.
|
|
1425
|
+
const payWithWallet = async (wallet, amountUsd) => {
|
|
1426
|
+
if (daimoPayOrder == null)
|
|
1427
|
+
return;
|
|
1428
|
+
// In deposit mode, set the amount
|
|
1429
|
+
let order = daimoPayOrder;
|
|
1430
|
+
if (amountUsd != null) {
|
|
1431
|
+
assert(amountUsd > 0, "amount must be positive");
|
|
1432
|
+
order = setChosenUsd(amountUsd);
|
|
1433
|
+
}
|
|
1434
|
+
// Hydrate the order
|
|
1435
|
+
log(`payWithWallet: hydrating order ${order.id}${amountUsd && ` for $${amountUsd}`}`);
|
|
1436
|
+
const { hydratedOrder } = await createOrHydrate({ order });
|
|
1437
|
+
setDaimoPayOrder(hydratedOrder);
|
|
1438
|
+
// If we already picked a wallet, open in that wallet.
|
|
1439
|
+
if (wallet == null)
|
|
1440
|
+
return;
|
|
1441
|
+
assert(wallet.getDaimoPayDeeplink != null, "payWithWallet: missing deeplink");
|
|
1442
|
+
const payId = writeDaimoPayOrderID(hydratedOrder.id);
|
|
1443
|
+
const deeplink = wallet.getDaimoPayDeeplink(payId);
|
|
1444
|
+
window.open(deeplink, "_blank");
|
|
1445
|
+
setSelectedWalletDeepLink(deeplink);
|
|
1446
|
+
setRoute(ROUTES.WAITING_WALLET, {
|
|
1447
|
+
amountUsd,
|
|
1448
|
+
payId,
|
|
1449
|
+
wallet_name: wallet.name,
|
|
1450
|
+
});
|
|
1451
|
+
};
|
|
1284
1452
|
const refreshOrder = useCallback(async () => {
|
|
1285
1453
|
const id = daimoPayOrder?.id?.toString();
|
|
1286
1454
|
if (!id)
|
|
@@ -1306,14 +1474,16 @@ function usePaymentState({ trpc, lockPayParams, daimoPayOrder, setDaimoPayOrder,
|
|
|
1306
1474
|
// TODO: remove amount from destFinalCall, it is redundant with
|
|
1307
1475
|
// destFinalCallTokenAmount. Here, we only modify one and not the other.
|
|
1308
1476
|
log(`[CHECKOUT] chose USD amount $${usd} = ${tokenUnits} ${token.symbol}`);
|
|
1309
|
-
|
|
1477
|
+
const ret = {
|
|
1310
1478
|
...daimoPayOrder,
|
|
1311
1479
|
destFinalCallTokenAmount: {
|
|
1312
1480
|
token,
|
|
1313
1481
|
amount: tokenAmount.toString(),
|
|
1314
1482
|
usd: usd,
|
|
1315
1483
|
},
|
|
1316
|
-
}
|
|
1484
|
+
};
|
|
1485
|
+
setDaimoPayOrder(ret);
|
|
1486
|
+
return ret;
|
|
1317
1487
|
};
|
|
1318
1488
|
const setPayId = useCallback(async (payId) => {
|
|
1319
1489
|
latestPayIdRef.current = payId;
|
|
@@ -1370,6 +1540,7 @@ function usePaymentState({ trpc, lockPayParams, daimoPayOrder, setDaimoPayOrder,
|
|
|
1370
1540
|
refundAddress: payParams.refundAddress,
|
|
1371
1541
|
});
|
|
1372
1542
|
log(`[CHECKOUT] generated preview: ${JSON.stringify(orderPreview)}`);
|
|
1543
|
+
// TODO: Properly type this and fix hacky type casting
|
|
1373
1544
|
setDaimoPayOrder(orderPreview);
|
|
1374
1545
|
}, [trpc, log, setDaimoPayOrder]);
|
|
1375
1546
|
const resetOrder = useCallback(() => {
|
|
@@ -1394,6 +1565,8 @@ function usePaymentState({ trpc, lockPayParams, daimoPayOrder, setDaimoPayOrder,
|
|
|
1394
1565
|
generatePreviewOrder,
|
|
1395
1566
|
]);
|
|
1396
1567
|
return {
|
|
1568
|
+
buttonProps,
|
|
1569
|
+
setButtonProps,
|
|
1397
1570
|
setPayId,
|
|
1398
1571
|
payParams,
|
|
1399
1572
|
setPayParams,
|
|
@@ -1406,12 +1579,16 @@ function usePaymentState({ trpc, lockPayParams, daimoPayOrder, setDaimoPayOrder,
|
|
|
1406
1579
|
selectedSolanaTokenOption,
|
|
1407
1580
|
externalPaymentOptions,
|
|
1408
1581
|
showSolanaPaymentMethod,
|
|
1582
|
+
selectedWallet,
|
|
1583
|
+
selectedWalletDeepLink,
|
|
1409
1584
|
walletPaymentOptions,
|
|
1410
1585
|
solanaPaymentOptions,
|
|
1411
1586
|
depositAddressOptions,
|
|
1412
1587
|
selectedDepositAddressOption,
|
|
1413
1588
|
getOrderUsdLimit,
|
|
1414
1589
|
resetOrder,
|
|
1590
|
+
setSelectedWallet,
|
|
1591
|
+
setSelectedWalletDeepLink,
|
|
1415
1592
|
setPaymentWaitingMessage,
|
|
1416
1593
|
setSelectedExternalOption,
|
|
1417
1594
|
setSelectedTokenOption,
|
|
@@ -1422,6 +1599,7 @@ function usePaymentState({ trpc, lockPayParams, daimoPayOrder, setDaimoPayOrder,
|
|
|
1422
1599
|
payWithExternal,
|
|
1423
1600
|
payWithDepositAddress,
|
|
1424
1601
|
payWithSolanaToken,
|
|
1602
|
+
payWithWallet,
|
|
1425
1603
|
refreshOrder,
|
|
1426
1604
|
senderEnsName: senderEnsName ?? undefined,
|
|
1427
1605
|
};
|
|
@@ -1543,18 +1721,6 @@ const hexToP3 = (hex) => {
|
|
|
1543
1721
|
return `color(display-p3 ${values.r / 255} ${values.g / 255} ${values.b / 255})`;
|
|
1544
1722
|
};
|
|
1545
1723
|
|
|
1546
|
-
/**
|
|
1547
|
-
*
|
|
1548
|
-
* IMPORTANT NOTE: This file is a workaround for the following issue:
|
|
1549
|
-
*
|
|
1550
|
-
* When using rollup with styled-components to build into an ES module, styled components decides to move all of it’s DOM elements into "styled.default" rather than just within "styled"
|
|
1551
|
-
*
|
|
1552
|
-
* We're unsure as to why this issue occurs, if you have any ideas or a better solution please let us know by opening a discussion on our GitHub repo:
|
|
1553
|
-
* https://github.com/family/connectkit/discussions/new
|
|
1554
|
-
*
|
|
1555
|
-
*/
|
|
1556
|
-
var styled = typeof styled$1.div === "function" ? styled$1 : styled$1["default"];
|
|
1557
|
-
|
|
1558
1724
|
var base = {
|
|
1559
1725
|
light: {
|
|
1560
1726
|
/** Connect Wallet Button */
|
|
@@ -4900,8 +5066,8 @@ const useWallets = (isMobile) => {
|
|
|
4900
5066
|
...wallet,
|
|
4901
5067
|
});
|
|
4902
5068
|
}
|
|
5069
|
+
addIfNotPresent("com.trustwallet.app");
|
|
4903
5070
|
addIfNotPresent("me.rainbow");
|
|
4904
|
-
addIfNotPresent("metaMask, metaMask-io, io.metamask, io.metamask.mobile, metaMaskSDK");
|
|
4905
5071
|
// Add WalletConnect last
|
|
4906
5072
|
const walletConnectConnector = connectors.find((c) => c.id === "walletConnect");
|
|
4907
5073
|
if (walletConnectConnector) {
|
|
@@ -4926,7 +5092,7 @@ const useWallets = (isMobile) => {
|
|
|
4926
5092
|
name: connector.name ?? connector.id ?? connector.type,
|
|
4927
5093
|
icon: (jsx("img", { src: connector.icon, alt: connector.name, width: "100%", height: "100%" })),
|
|
4928
5094
|
connector,
|
|
4929
|
-
iconShape: "squircle",
|
|
5095
|
+
iconShape: connector.id === "io.rabby" ? "circle" : "squircle",
|
|
4930
5096
|
isInstalled: connector.type === "mock" ||
|
|
4931
5097
|
(connector.type === "injected" && connector.id !== "metaMask") ||
|
|
4932
5098
|
connector.type === "farcasterFrame" ||
|
|
@@ -5228,6 +5394,7 @@ const Modal = ({ open, pages, pageId, positionInside, inline, demo, onClose, onB
|
|
|
5228
5394
|
? 2
|
|
5229
5395
|
: 1;
|
|
5230
5396
|
const prevDepth = usePrevious(currentDepth, currentDepth);
|
|
5397
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
5231
5398
|
if (!positionInside)
|
|
5232
5399
|
useLockBodyScroll(mounted);
|
|
5233
5400
|
usePrevious(pageId, pageId);
|
|
@@ -5260,6 +5427,7 @@ const Modal = ({ open, pages, pageId, positionInside, inline, demo, onClose, onB
|
|
|
5260
5427
|
// Avoid transition mixups
|
|
5261
5428
|
setInTransition(inTransition === undefined ? false : true);
|
|
5262
5429
|
clearTimeout(blockTimeout);
|
|
5430
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5263
5431
|
blockTimeout = setTimeout(() => setInTransition(false), 360);
|
|
5264
5432
|
// Calculate new content bounds
|
|
5265
5433
|
updateBounds(node);
|
|
@@ -5342,10 +5510,13 @@ const Modal = ({ open, pages, pageId, positionInside, inline, demo, onClose, onB
|
|
|
5342
5510
|
if (!selectedDepositAddressOption)
|
|
5343
5511
|
return undefined;
|
|
5344
5512
|
return `Pay with ${selectedDepositAddressOption.id}`;
|
|
5513
|
+
case ROUTES.SELECT_ZKP2P:
|
|
5514
|
+
return "Select App";
|
|
5345
5515
|
case ROUTES.SELECT_AMOUNT:
|
|
5346
5516
|
case ROUTES.SELECT_EXTERNAL_AMOUNT:
|
|
5347
5517
|
case ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT:
|
|
5348
5518
|
case ROUTES.SOLANA_SELECT_AMOUNT:
|
|
5519
|
+
case ROUTES.SELECT_WALLET_AMOUNT:
|
|
5349
5520
|
return "Select Amount";
|
|
5350
5521
|
case ROUTES.PAY_WITH_TOKEN:
|
|
5351
5522
|
if (selectedTokenOption == null)
|
|
@@ -6193,14 +6364,14 @@ const About = () => {
|
|
|
6193
6364
|
};
|
|
6194
6365
|
}, [sliderRef]);
|
|
6195
6366
|
const graphics = [
|
|
6196
|
-
jsx(SlideOne, { layoutId: "graphicCircle", duration: animationDuration, ease: animationEase }),
|
|
6197
|
-
jsx(SlideTwo, { layoutId: "graphicCircle", duration: animationDuration, ease: animationEase }),
|
|
6198
|
-
jsx(SlideThree, { layoutId: "graphicCircle", duration: animationDuration, ease: animationEase }),
|
|
6367
|
+
jsx(SlideOne, { layoutId: "graphicCircle", duration: animationDuration, ease: animationEase }, "slideOne"),
|
|
6368
|
+
jsx(SlideTwo, { layoutId: "graphicCircle", duration: animationDuration, ease: animationEase }, "slideTwo"),
|
|
6369
|
+
jsx(SlideThree, { layoutId: "graphicCircle", duration: animationDuration, ease: animationEase }, "slideThree"),
|
|
6199
6370
|
];
|
|
6200
6371
|
const mobileGraphics = [
|
|
6201
|
-
jsx(SlideOne, { duration: animationDuration, ease: animationEase }),
|
|
6202
|
-
jsx(SlideTwo, { duration: animationDuration, ease: animationEase }),
|
|
6203
|
-
jsx(SlideThree, { duration: animationDuration, ease: animationEase }),
|
|
6372
|
+
jsx(SlideOne, { duration: animationDuration, ease: animationEase }, "slideOne"),
|
|
6373
|
+
jsx(SlideTwo, { duration: animationDuration, ease: animationEase }, "slideTwo"),
|
|
6374
|
+
jsx(SlideThree, { duration: animationDuration, ease: animationEase }, "slideThree"),
|
|
6204
6375
|
];
|
|
6205
6376
|
// Adjust height of ModalBody to fit content based on language
|
|
6206
6377
|
const slideHeight = (() => {
|
|
@@ -6228,9 +6399,9 @@ const About = () => {
|
|
|
6228
6399
|
} }, i))) }) }), jsx(Button, { href: ctaUrl, arrow: true, children: locales.aboutScreen_ctaText })] }));
|
|
6229
6400
|
};
|
|
6230
6401
|
|
|
6231
|
-
|
|
6402
|
+
function WalletIcon$1({ ...props }) {
|
|
6232
6403
|
return (jsxs("svg", { "aria-hidden": "true", width: "20", height: "19", viewBox: "0 0 20 19", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [jsx("path", { d: "M1.57568 4.60616C1.57568 2.69827 3.12234 1.15161 5.03023 1.15161H15.3939C17.3018 1.15161 18.8484 2.69826 18.8484 4.60616V10.3637C18.8484 12.2716 17.3018 13.8183 15.3939 13.8183H5.03023C3.12234 13.8183 1.57568 12.2716 1.57568 10.3637V4.60616Z", stroke: "currentColor", strokeWidth: "2" }), jsx("path", { d: "M1 4.79293C1 2.435 3.31004 0.770014 5.54697 1.51566L12.4561 3.81869C13.8667 4.2889 14.8182 5.60901 14.8182 7.09596V13.6313C14.8182 15.9892 12.5081 17.6542 10.2712 16.9086L3.36212 14.6056C1.95149 14.1353 1 12.8152 1 11.3283V4.79293Z", fill: "var(--ck-body-background)", stroke: "currentColor", strokeWidth: "2" }), jsx("circle", { cx: "10.3863", cy: "10.1894", r: "1.32574", fill: "currentColor" })] }));
|
|
6233
|
-
}
|
|
6404
|
+
}
|
|
6234
6405
|
|
|
6235
6406
|
const Shimmer$1 = keyframes `
|
|
6236
6407
|
0%{ transform: translate(-100%) rotate(-45deg); }
|
|
@@ -6783,136 +6954,6 @@ const ScrollArea = ({ children, height, backgroundColor, mobileDirection, hideBo
|
|
|
6783
6954
|
}, children: jsxs("span", { children: [jsx(ArrowDown, {}), " More Available"] }) })] }));
|
|
6784
6955
|
};
|
|
6785
6956
|
|
|
6786
|
-
function useWalletConnectUri({ enabled } = {
|
|
6787
|
-
enabled: true,
|
|
6788
|
-
}) {
|
|
6789
|
-
const { log } = usePayContext();
|
|
6790
|
-
const [uri, setUri] = useState(undefined);
|
|
6791
|
-
const connector = useWalletConnectConnector();
|
|
6792
|
-
const { isConnected } = useAccount();
|
|
6793
|
-
const { connectAsync } = useConnect();
|
|
6794
|
-
useEffect(() => {
|
|
6795
|
-
if (!enabled)
|
|
6796
|
-
return;
|
|
6797
|
-
async function handleMessage(message) {
|
|
6798
|
-
const { type, data } = message;
|
|
6799
|
-
log("WC Message", type, data);
|
|
6800
|
-
if (type === "display_uri") {
|
|
6801
|
-
setUri(data);
|
|
6802
|
-
}
|
|
6803
|
-
/*
|
|
6804
|
-
// This has the URI as well, but we're probably better off using the one in the display_uri event
|
|
6805
|
-
if (type === 'connecting') {
|
|
6806
|
-
const p = await connector.getProvider();
|
|
6807
|
-
const uri = p.signer.uri;
|
|
6808
|
-
setConnectorUri(uri);
|
|
6809
|
-
}
|
|
6810
|
-
*/
|
|
6811
|
-
}
|
|
6812
|
-
async function handleDisconnect() {
|
|
6813
|
-
log("WC Disconnect");
|
|
6814
|
-
if (connector)
|
|
6815
|
-
connectWallet(connector);
|
|
6816
|
-
}
|
|
6817
|
-
async function connectWallet(connector) {
|
|
6818
|
-
const result = await connectAsync({ connector });
|
|
6819
|
-
if (result)
|
|
6820
|
-
return result;
|
|
6821
|
-
return false;
|
|
6822
|
-
}
|
|
6823
|
-
async function connectWalletConnect(connector) {
|
|
6824
|
-
try {
|
|
6825
|
-
await connectWallet(connector);
|
|
6826
|
-
}
|
|
6827
|
-
catch (error) {
|
|
6828
|
-
log("catch error");
|
|
6829
|
-
log(error);
|
|
6830
|
-
if (error.code) {
|
|
6831
|
-
switch (error.code) {
|
|
6832
|
-
case 4001:
|
|
6833
|
-
log("error.code - User rejected");
|
|
6834
|
-
connectWalletConnect(connector); // Regenerate QR code
|
|
6835
|
-
break;
|
|
6836
|
-
default:
|
|
6837
|
-
log("error.code - Unknown Error");
|
|
6838
|
-
break;
|
|
6839
|
-
}
|
|
6840
|
-
}
|
|
6841
|
-
else {
|
|
6842
|
-
// Sometimes the error doesn't respond with a code
|
|
6843
|
-
log("WalletConnect cannot connect.", error);
|
|
6844
|
-
}
|
|
6845
|
-
}
|
|
6846
|
-
}
|
|
6847
|
-
if (isConnected) {
|
|
6848
|
-
setUri(undefined);
|
|
6849
|
-
}
|
|
6850
|
-
else {
|
|
6851
|
-
if (!connector || uri)
|
|
6852
|
-
return;
|
|
6853
|
-
if (connector && !isConnected) {
|
|
6854
|
-
connectWalletConnect(connector);
|
|
6855
|
-
log("add wc listeners");
|
|
6856
|
-
connector.emitter.on("message", handleMessage);
|
|
6857
|
-
connector.emitter.on("disconnect", handleDisconnect);
|
|
6858
|
-
return () => {
|
|
6859
|
-
log("remove wc listeners");
|
|
6860
|
-
connector.emitter.off("message", handleMessage);
|
|
6861
|
-
connector.emitter.off("disconnect", handleDisconnect);
|
|
6862
|
-
};
|
|
6863
|
-
}
|
|
6864
|
-
}
|
|
6865
|
-
}, [enabled, connector, isConnected]);
|
|
6866
|
-
return {
|
|
6867
|
-
uri,
|
|
6868
|
-
};
|
|
6869
|
-
}
|
|
6870
|
-
|
|
6871
|
-
/** Determines whether the current wagmi configuration supports a given chain. */
|
|
6872
|
-
function useChainIsSupported(chainId) {
|
|
6873
|
-
const { chains } = useConfig();
|
|
6874
|
-
if (!chainId)
|
|
6875
|
-
return false;
|
|
6876
|
-
return chains.some((x) => x.id === chainId);
|
|
6877
|
-
}
|
|
6878
|
-
|
|
6879
|
-
const Web3Context = React.createContext({
|
|
6880
|
-
connect: {
|
|
6881
|
-
getUri: () => "",
|
|
6882
|
-
},
|
|
6883
|
-
dapp: {
|
|
6884
|
-
chains: [],
|
|
6885
|
-
},
|
|
6886
|
-
account: undefined,
|
|
6887
|
-
});
|
|
6888
|
-
const Web3ContextProvider = ({ enabled, children, }) => {
|
|
6889
|
-
const { uri: walletConnectUri } = useWalletConnectUri({
|
|
6890
|
-
enabled,
|
|
6891
|
-
});
|
|
6892
|
-
const { address: currentAddress, chain } = useAccount();
|
|
6893
|
-
const chainIsSupported = useChainIsSupported(chain?.id);
|
|
6894
|
-
const chains = useChains();
|
|
6895
|
-
const value = {
|
|
6896
|
-
connect: {
|
|
6897
|
-
getUri: (id) => {
|
|
6898
|
-
return walletConnectUri;
|
|
6899
|
-
},
|
|
6900
|
-
},
|
|
6901
|
-
dapp: {
|
|
6902
|
-
chains,
|
|
6903
|
-
},
|
|
6904
|
-
account: currentAddress
|
|
6905
|
-
? {
|
|
6906
|
-
chain,
|
|
6907
|
-
chainIsSupported,
|
|
6908
|
-
address: currentAddress,
|
|
6909
|
-
}
|
|
6910
|
-
: undefined,
|
|
6911
|
-
};
|
|
6912
|
-
return jsx(Web3Context.Provider, { value: value, children: children });
|
|
6913
|
-
};
|
|
6914
|
-
const useWeb3 = () => React.useContext(Web3Context);
|
|
6915
|
-
|
|
6916
6957
|
const AlertContainer = styled(motion.div) `
|
|
6917
6958
|
display: flex;
|
|
6918
6959
|
gap: 8px;
|
|
@@ -7290,27 +7331,35 @@ const ConnectorList = () => {
|
|
|
7290
7331
|
return (jsxs(ScrollArea, { mobileDirection: "horizontal", children: [walletsToDisplay.length === 0 && (jsx(Alert, { error: true, children: "No connectors found in ConnectKit config." })), walletsToDisplay.length > 0 && (jsx(ConnectorsContainer, { "$mobile": isMobile, "$totalResults": walletsToDisplay.length, children: walletsToDisplay.map((wallet) => (jsx(ConnectorItem, { wallet: wallet, isRecent: wallet.id === lastConnectorId }, wallet.id))) }))] }));
|
|
7291
7332
|
};
|
|
7292
7333
|
const ConnectorItem = ({ wallet, isRecent, }) => {
|
|
7293
|
-
const { connect: { getUri }, } = useWeb3();
|
|
7294
|
-
const uri = getUri();
|
|
7295
7334
|
const { isMobile } = useIsMobile();
|
|
7296
7335
|
const context = usePayContext();
|
|
7297
7336
|
const { connect } = useConnect();
|
|
7298
|
-
|
|
7299
|
-
|
|
7300
|
-
|
|
7301
|
-
|
|
7337
|
+
const order = context.paymentState.daimoPayOrder;
|
|
7338
|
+
// Deeplink directly to wallet if we have a already-hydrated order.
|
|
7339
|
+
const deeplink = order?.mode === DaimoPayOrderMode.HYDRATED &&
|
|
7340
|
+
wallet.getDaimoPayDeeplink?.(writeDaimoPayOrderID(order.id));
|
|
7341
|
+
// The "Other" 2x2 connector, goes to the MobileConnectors page.
|
|
7302
7342
|
const redirectToMoreWallets = isMobile && isWalletConnectConnector(wallet.id);
|
|
7303
7343
|
// Safari requires opening popup on user gesture, so we connect immediately here
|
|
7304
7344
|
const shouldConnectImmediately = (detectBrowser() === "safari" || detectBrowser() === "ios") &&
|
|
7305
7345
|
isCoinbaseWalletConnector(wallet.connector?.id);
|
|
7306
|
-
if (redirectToMoreWallets || shouldConnectImmediately)
|
|
7307
|
-
deeplink = undefined; // mobile redirects to more wallets page
|
|
7308
7346
|
return (jsxs(ConnectorButton, { type: "button", as: deeplink ? "a" : undefined, href: deeplink ? deeplink : undefined, disabled: context.route !== ROUTES.CONNECTORS, onClick: deeplink
|
|
7309
|
-
?
|
|
7347
|
+
? () => {
|
|
7348
|
+
context.paymentState.setSelectedWallet(wallet);
|
|
7349
|
+
context.paymentState.setSelectedWalletDeepLink(deeplink);
|
|
7350
|
+
context.setRoute(ROUTES.WAITING_WALLET, {
|
|
7351
|
+
event: "click-option",
|
|
7352
|
+
wallet_name: wallet.name,
|
|
7353
|
+
});
|
|
7354
|
+
}
|
|
7310
7355
|
: () => {
|
|
7311
7356
|
if (redirectToMoreWallets) {
|
|
7312
7357
|
context.setRoute(ROUTES.MOBILECONNECTORS);
|
|
7313
7358
|
}
|
|
7359
|
+
else if (context.paymentState.isDepositFlow && isMobile) {
|
|
7360
|
+
context.paymentState.setSelectedWallet(wallet);
|
|
7361
|
+
context.setRoute(ROUTES.SELECT_WALLET_AMOUNT);
|
|
7362
|
+
}
|
|
7314
7363
|
else {
|
|
7315
7364
|
if (shouldConnectImmediately) {
|
|
7316
7365
|
connect({ connector: wallet.connector });
|
|
@@ -7468,7 +7517,7 @@ function tokenAmountToRoundedUsd(amount, token, round = "nearest") {
|
|
|
7468
7517
|
}
|
|
7469
7518
|
|
|
7470
7519
|
/** Shows payment amount. */
|
|
7471
|
-
const OrderHeader = ({ minified = false, showEth = false, showSolana = false, }) => {
|
|
7520
|
+
const OrderHeader = ({ minified = false, showEth = false, showSolana = false, showZKP2P = false, }) => {
|
|
7472
7521
|
const { paymentState, route, wcWallet } = usePayContext();
|
|
7473
7522
|
const { isConnected: isEthConnected, address, connector } = useAccount();
|
|
7474
7523
|
const { connected: isSolanaConnected, publicKey, wallet: solanaWallet, } = useWallet$1();
|
|
@@ -7488,15 +7537,16 @@ const OrderHeader = ({ minified = false, showEth = false, showSolana = false, })
|
|
|
7488
7537
|
}
|
|
7489
7538
|
})();
|
|
7490
7539
|
const renderIcon = (icon, name, size = 32) => {
|
|
7491
|
-
if (!icon)
|
|
7492
|
-
return
|
|
7540
|
+
if (!icon) {
|
|
7541
|
+
return null;
|
|
7542
|
+
}
|
|
7493
7543
|
return (jsx(LogoContainer$4, { "$size": size, "$zIndex": 1, style: { borderRadius: "22.5%" }, children: typeof icon === "string" ? (jsx("img", { src: icon, alt: name || "wallet", style: { maxWidth: "100%", maxHeight: "100%" } })) : (icon) }));
|
|
7494
7544
|
};
|
|
7495
7545
|
let walletIcon = renderIcon(connector?.icon || wcWallet?.icon, wcWallet?.name);
|
|
7496
7546
|
let solanaIcon = renderIcon(solanaWallet?.adapter.icon || jsx(Solana, {}), solanaWallet?.adapter.name);
|
|
7497
7547
|
if (minified) {
|
|
7498
7548
|
if (titleAmountContent != null) {
|
|
7499
|
-
return (jsxs(MinifiedContainer, { children: [jsx(MinifiedTitleAmount, { children: titleAmountContent }), showEth && isEthConnected && (jsx(Fragment, { children: jsxs(SubtitleContainer, { children: [jsx(Subtitle, { children: ethWalletDisplayName }), walletIcon] }) })), showSolana && isSolanaConnected && (jsx(Fragment, { children: jsxs(SubtitleContainer, { children: [jsx(Subtitle, { children: solWalletDisplayName }), solanaIcon] }) })), !showEth && !showSolana && (jsx(Fragment, { children: jsx(CoinLogos, { "$size": 32 }) }))] }));
|
|
7549
|
+
return (jsxs(MinifiedContainer, { children: [jsx(MinifiedTitleAmount, { children: titleAmountContent }), showEth && isEthConnected && (jsx(Fragment, { children: jsxs(SubtitleContainer, { children: [jsx(Subtitle, { children: ethWalletDisplayName }), walletIcon] }) })), showSolana && isSolanaConnected && (jsx(Fragment, { children: jsxs(SubtitleContainer, { children: [jsx(Subtitle, { children: solWalletDisplayName }), solanaIcon] }) })), !showEth && !showSolana && !showZKP2P && (jsx(Fragment, { children: jsx(CoinLogos, { "$size": 32 }) }))] }));
|
|
7500
7550
|
}
|
|
7501
7551
|
else {
|
|
7502
7552
|
return (jsxs(MinifiedContainer, { children: [jsx(CoinLogos, {}), jsx(Subtitle, { children: "1000+ tokens accepted" })] }));
|
|
@@ -7508,13 +7558,13 @@ const OrderHeader = ({ minified = false, showEth = false, showSolana = false, })
|
|
|
7508
7558
|
};
|
|
7509
7559
|
function CoinLogos({ $size = 24 }) {
|
|
7510
7560
|
const logos = [
|
|
7511
|
-
jsx(Ethereum, {}),
|
|
7512
|
-
jsx(USDC, {}),
|
|
7513
|
-
jsx(Optimism, {}),
|
|
7514
|
-
jsx(Arbitrum, {}),
|
|
7515
|
-
jsx(Base, {}),
|
|
7516
|
-
jsx(Polygon, {}),
|
|
7517
|
-
jsx(Solana, {}),
|
|
7561
|
+
jsx(Ethereum, {}, "eth"),
|
|
7562
|
+
jsx(USDC, {}, "usdc"),
|
|
7563
|
+
jsx(Optimism, {}, "optimism"),
|
|
7564
|
+
jsx(Arbitrum, {}, "arbitrum"),
|
|
7565
|
+
jsx(Base, {}, "base"),
|
|
7566
|
+
jsx(Polygon, {}, "polygon"),
|
|
7567
|
+
jsx(Solana, {}, "solana"),
|
|
7518
7568
|
];
|
|
7519
7569
|
const logoBlock = (element, index) => (jsx(LogoContainer$4, { "$marginLeft": index !== 0 ? -($size / 3) : 0, "$zIndex": logos.length - index, "$size": $size, transition: { duration: 0.5, ease: [0.175, 0.885, 0.32, 0.98] }, children: element }, index));
|
|
7520
7570
|
return (jsx(Logos, { children: logos.map((element, index) => logoBlock(element, index)) }));
|
|
@@ -7606,6 +7656,12 @@ const Wallets = () => {
|
|
|
7606
7656
|
const context = usePayContext();
|
|
7607
7657
|
const locales = useLocales({});
|
|
7608
7658
|
const { isMobile } = useIsMobile();
|
|
7659
|
+
// If we're on mobile & not in deposit mode, hydrate immediately.
|
|
7660
|
+
useEffect(() => {
|
|
7661
|
+
if (isMobile && !context.paymentState.isDepositFlow) {
|
|
7662
|
+
context.paymentState.payWithWallet();
|
|
7663
|
+
}
|
|
7664
|
+
}, [isMobile, context.paymentState.isDepositFlow]);
|
|
7609
7665
|
return (jsxs(PageContent, { children: [jsx(OrderHeader, { minified: true }), jsx(ConnectorList, {}), isMobile ? (jsx(Fragment, { children: jsxs(InfoBox, { children: [jsxs(ModalContent, { style: { padding: 0, textAlign: "left" }, children: [jsx(ModalH1, { "$small": true, children: locales.connectorsScreen_h1 }), jsx(ModalBody, { children: locales.connectorsScreen_p })] }), jsxs(InfoBoxButtons, { children: [!context.options?.hideQuestionMarkCTA && (jsx(Button, { variant: "tertiary", onClick: () => context.setRoute(ROUTES.ABOUT), children: locales.learnMore })), !context.options?.hideNoWalletCTA && (jsx(Button, { variant: "tertiary", onClick: () => context.setRoute(ROUTES.ONBOARDING), children: locales.getWallet }))] })] }) })) : (jsx(Fragment, { children: !context.options?.hideNoWalletCTA && (jsx(LearnMoreContainer, { children: jsxs(LearnMoreButton, { onClick: () => context.setRoute(ROUTES.ONBOARDING), children: [jsx(WalletIcon$1, {}), " ", locales.connectorsScreen_newcomer] }) })) })), context.options?.disclaimer && (jsx(Disclaimer, { style: { visibility: "hidden", pointerEvents: "none" }, children: jsx("div", { children: context.options?.disclaimer }) }))] }));
|
|
7610
7666
|
};
|
|
7611
7667
|
|
|
@@ -7837,8 +7893,6 @@ const TooltipTail = styled(motion.div) `
|
|
|
7837
7893
|
const Tooltip = ({ children, message, open, xOffset = 0, yOffset = 0, delay, }) => {
|
|
7838
7894
|
const context = usePayContext();
|
|
7839
7895
|
const themeContext = useThemeContext();
|
|
7840
|
-
if (context.options?.hideTooltips)
|
|
7841
|
-
return jsx(Fragment, { children: children });
|
|
7842
7896
|
const [isOpen, setIsOpen] = useState(false);
|
|
7843
7897
|
const [outOfBounds, setOutOfBounds] = useState(false);
|
|
7844
7898
|
const [size, setSize] = useState("small");
|
|
@@ -7887,6 +7941,8 @@ const Tooltip = ({ children, message, open, xOffset = 0, yOffset = 0, delay, })
|
|
|
7887
7941
|
useEffect(() => {
|
|
7888
7942
|
setIsOpen(!!open);
|
|
7889
7943
|
}, [open]);
|
|
7944
|
+
if (context.options?.hideTooltips)
|
|
7945
|
+
return jsx(Fragment, { children: children });
|
|
7890
7946
|
return (jsxs(Fragment, { children: [jsx(motion.div, { ref: ref, style: open === undefined
|
|
7891
7947
|
? {
|
|
7892
7948
|
cursor: "help",
|
|
@@ -8244,11 +8300,141 @@ const CopyToClipboard = ({ string, children, variant }) => {
|
|
|
8244
8300
|
return (jsxs(Container$5, { onClick: onCopy, "$disabled": !string, children: [jsx(CopyToClipboardIcon, { copied: clipboard, dark: true }), children] }));
|
|
8245
8301
|
};
|
|
8246
8302
|
|
|
8303
|
+
function useWalletConnectUri({ enabled } = {
|
|
8304
|
+
enabled: true,
|
|
8305
|
+
}) {
|
|
8306
|
+
const { log } = usePayContext();
|
|
8307
|
+
const [uri, setUri] = useState(undefined);
|
|
8308
|
+
const connector = useWalletConnectConnector();
|
|
8309
|
+
const { isConnected } = useAccount();
|
|
8310
|
+
const { connectAsync } = useConnect();
|
|
8311
|
+
useEffect(() => {
|
|
8312
|
+
if (!enabled)
|
|
8313
|
+
return;
|
|
8314
|
+
async function handleMessage(message) {
|
|
8315
|
+
const { type, data } = message;
|
|
8316
|
+
log("WC Message", type, data);
|
|
8317
|
+
if (type === "display_uri") {
|
|
8318
|
+
setUri(data);
|
|
8319
|
+
}
|
|
8320
|
+
/*
|
|
8321
|
+
// This has the URI as well, but we're probably better off using the one in the display_uri event
|
|
8322
|
+
if (type === 'connecting') {
|
|
8323
|
+
const p = await connector.getProvider();
|
|
8324
|
+
const uri = p.signer.uri;
|
|
8325
|
+
setConnectorUri(uri);
|
|
8326
|
+
}
|
|
8327
|
+
*/
|
|
8328
|
+
}
|
|
8329
|
+
async function handleDisconnect() {
|
|
8330
|
+
log("WC Disconnect");
|
|
8331
|
+
if (connector)
|
|
8332
|
+
connectWallet(connector);
|
|
8333
|
+
}
|
|
8334
|
+
async function connectWallet(connector) {
|
|
8335
|
+
const result = await connectAsync({ connector });
|
|
8336
|
+
if (result)
|
|
8337
|
+
return result;
|
|
8338
|
+
return false;
|
|
8339
|
+
}
|
|
8340
|
+
async function connectWalletConnect(connector) {
|
|
8341
|
+
try {
|
|
8342
|
+
await connectWallet(connector);
|
|
8343
|
+
}
|
|
8344
|
+
catch (error) {
|
|
8345
|
+
log("catch error");
|
|
8346
|
+
log(error);
|
|
8347
|
+
if (error.code) {
|
|
8348
|
+
switch (error.code) {
|
|
8349
|
+
case 4001:
|
|
8350
|
+
log("error.code - User rejected");
|
|
8351
|
+
connectWalletConnect(connector); // Regenerate QR code
|
|
8352
|
+
break;
|
|
8353
|
+
default:
|
|
8354
|
+
log("error.code - Unknown Error");
|
|
8355
|
+
break;
|
|
8356
|
+
}
|
|
8357
|
+
}
|
|
8358
|
+
else {
|
|
8359
|
+
// Sometimes the error doesn't respond with a code
|
|
8360
|
+
log("WalletConnect cannot connect.", error);
|
|
8361
|
+
}
|
|
8362
|
+
}
|
|
8363
|
+
}
|
|
8364
|
+
if (isConnected) {
|
|
8365
|
+
setUri(undefined);
|
|
8366
|
+
}
|
|
8367
|
+
else {
|
|
8368
|
+
if (!connector || uri)
|
|
8369
|
+
return;
|
|
8370
|
+
if (connector && !isConnected) {
|
|
8371
|
+
connectWalletConnect(connector);
|
|
8372
|
+
log("add wc listeners");
|
|
8373
|
+
connector.emitter.on("message", handleMessage);
|
|
8374
|
+
connector.emitter.on("disconnect", handleDisconnect);
|
|
8375
|
+
return () => {
|
|
8376
|
+
log("remove wc listeners");
|
|
8377
|
+
connector.emitter.off("message", handleMessage);
|
|
8378
|
+
connector.emitter.off("disconnect", handleDisconnect);
|
|
8379
|
+
};
|
|
8380
|
+
}
|
|
8381
|
+
}
|
|
8382
|
+
}, [enabled, connector, isConnected]);
|
|
8383
|
+
return {
|
|
8384
|
+
uri,
|
|
8385
|
+
};
|
|
8386
|
+
}
|
|
8387
|
+
|
|
8388
|
+
/** Determines whether the current wagmi configuration supports a given chain. */
|
|
8389
|
+
function useChainIsSupported(chainId) {
|
|
8390
|
+
const { chains } = useConfig();
|
|
8391
|
+
if (!chainId)
|
|
8392
|
+
return false;
|
|
8393
|
+
return chains.some((x) => x.id === chainId);
|
|
8394
|
+
}
|
|
8395
|
+
|
|
8396
|
+
const Web3Context = React.createContext({
|
|
8397
|
+
connect: {
|
|
8398
|
+
getUri: () => "",
|
|
8399
|
+
},
|
|
8400
|
+
dapp: {
|
|
8401
|
+
chains: [],
|
|
8402
|
+
},
|
|
8403
|
+
account: undefined,
|
|
8404
|
+
});
|
|
8405
|
+
const Web3ContextProvider = ({ enabled, children, }) => {
|
|
8406
|
+
const { uri: walletConnectUri } = useWalletConnectUri({
|
|
8407
|
+
enabled,
|
|
8408
|
+
});
|
|
8409
|
+
const { address: currentAddress, chain } = useAccount();
|
|
8410
|
+
const chainIsSupported = useChainIsSupported(chain?.id);
|
|
8411
|
+
const chains = useChains();
|
|
8412
|
+
const value = {
|
|
8413
|
+
connect: {
|
|
8414
|
+
getUri: (id) => {
|
|
8415
|
+
return walletConnectUri;
|
|
8416
|
+
},
|
|
8417
|
+
},
|
|
8418
|
+
dapp: {
|
|
8419
|
+
chains,
|
|
8420
|
+
},
|
|
8421
|
+
account: currentAddress
|
|
8422
|
+
? {
|
|
8423
|
+
chain,
|
|
8424
|
+
chainIsSupported,
|
|
8425
|
+
address: currentAddress,
|
|
8426
|
+
}
|
|
8427
|
+
: undefined,
|
|
8428
|
+
};
|
|
8429
|
+
return jsx(Web3Context.Provider, { value: value, children: children });
|
|
8430
|
+
};
|
|
8431
|
+
const useWeb3 = () => React.useContext(Web3Context);
|
|
8432
|
+
|
|
8247
8433
|
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" }) }));
|
|
8248
8434
|
const MobileConnectors = () => {
|
|
8249
|
-
const context = usePayContext();
|
|
8250
|
-
const { log } = context;
|
|
8251
8435
|
const locales = useLocales();
|
|
8436
|
+
const context = usePayContext();
|
|
8437
|
+
const { paymentState, setRoute } = context;
|
|
8252
8438
|
const { connect: { getUri }, } = useWeb3();
|
|
8253
8439
|
const wcUri = getUri();
|
|
8254
8440
|
const { open: openW3M, isOpen: isOpenW3M } = useWalletConnectModal();
|
|
@@ -8258,22 +8444,24 @@ const MobileConnectors = () => {
|
|
|
8258
8444
|
const wallet = walletConfigs[walletId];
|
|
8259
8445
|
if (wallets.find((w) => w.connector?.id === walletId))
|
|
8260
8446
|
return false;
|
|
8261
|
-
if (!wallet.getWalletConnectDeeplink)
|
|
8262
|
-
return false;
|
|
8263
8447
|
if (!wallet.showInMobileConnectors)
|
|
8264
8448
|
return false;
|
|
8265
8449
|
return true;
|
|
8266
8450
|
}) ?? [];
|
|
8267
|
-
const
|
|
8268
|
-
|
|
8269
|
-
|
|
8270
|
-
|
|
8271
|
-
|
|
8272
|
-
|
|
8273
|
-
if (
|
|
8274
|
-
|
|
8451
|
+
const goToWallet = (wallet) => {
|
|
8452
|
+
if (wallet.getDaimoPayDeeplink == null) {
|
|
8453
|
+
console.error(`wallet ${wallet.name} has no deeplink`);
|
|
8454
|
+
return;
|
|
8455
|
+
}
|
|
8456
|
+
context.paymentState.setSelectedWallet(wallet);
|
|
8457
|
+
if (paymentState.isDepositFlow) {
|
|
8458
|
+
setRoute(ROUTES.SELECT_WALLET_AMOUNT);
|
|
8459
|
+
}
|
|
8460
|
+
else {
|
|
8461
|
+
paymentState.payWithWallet(wallet);
|
|
8462
|
+
}
|
|
8275
8463
|
};
|
|
8276
|
-
return (jsx(PageContent, { style: { width: 312 }, children: jsxs(Container$6, { children: [jsx(ModalContent, { style: { paddingBottom: 0 }, children: jsx(ScrollArea, { height: 340, children: jsxs(WalletList, {
|
|
8464
|
+
return (jsx(PageContent, { style: { width: 312 }, children: jsxs(Container$6, { children: [jsx(ModalContent, { style: { paddingBottom: 0 }, children: jsx(ScrollArea, { height: 340, children: jsxs(WalletList, { children: [walletsIdsToDisplay
|
|
8277
8465
|
.sort(
|
|
8278
8466
|
// sort by name
|
|
8279
8467
|
(a, b) => {
|
|
@@ -8288,9 +8476,9 @@ const MobileConnectors = () => {
|
|
|
8288
8476
|
.map((walletId, i) => {
|
|
8289
8477
|
const wallet = walletConfigs[walletId];
|
|
8290
8478
|
const { name, shortName, iconConnector, icon } = wallet;
|
|
8291
|
-
return (jsxs(WalletItem, { onClick: () =>
|
|
8479
|
+
return (jsxs(WalletItem, { onClick: () => goToWallet(wallet), style: {
|
|
8292
8480
|
animationDelay: `${i * 50}ms`,
|
|
8293
|
-
}, children: [jsx(WalletIcon, {
|
|
8481
|
+
}, children: [jsx(WalletIcon, { children: iconConnector ?? icon }), jsx(WalletLabel, { children: shortName ?? name })] }, i));
|
|
8294
8482
|
}), jsxs(WalletItem, { onClick: openW3M, "$waiting": isOpenW3M, children: [jsx(WalletIcon, { style: { background: "var(--ck-body-background-secondary)" }, children: isOpenW3M ? (jsx("div", { style: {
|
|
8295
8483
|
position: "absolute",
|
|
8296
8484
|
inset: 0,
|
|
@@ -8305,7 +8493,7 @@ const MobileConnectors = () => {
|
|
|
8305
8493
|
justifyContent: "center",
|
|
8306
8494
|
gap: 14,
|
|
8307
8495
|
paddingTop: 8,
|
|
8308
|
-
}, children: jsx(CopyToClipboard, { variant: "button", string: wcUri, children:
|
|
8496
|
+
}, children: jsx(CopyToClipboard, { variant: "button", string: wcUri, children: "Copy WC link" }) }))] }) }));
|
|
8309
8497
|
};
|
|
8310
8498
|
|
|
8311
8499
|
const Graphic = styled(motion.div) `
|
|
@@ -8536,7 +8724,7 @@ const Introduction = () => {
|
|
|
8536
8724
|
const context = usePayContext();
|
|
8537
8725
|
const locales = useLocales({});
|
|
8538
8726
|
const ctaUrl = context.options?.walletOnboardingUrl ?? locales.onboardingScreen_ctaUrl;
|
|
8539
|
-
return (jsxs(PageContent, { children: [jsxs(Graphic, { children: [jsxs(LogoGroup, { children: [jsx(Logo$2, { children: jsx(LogoPosition, { children: jsx(LogoInner, { children: jsx(FloatWrapper, { children: jsx(RotateWrapper, { children: jsx(LogoGraphic, { children: jsx(Logos$1.Coinbase, { background: true }) }) }) }) }) }) }), jsx(Logo$2, { children: jsx(LogoPosition, { children: jsx(LogoInner, { children: jsx(FloatWrapper, { children: jsx(RotateWrapper, { children: jsx(LogoGraphic, { children: jsx(Logos$1.MetaMask, {
|
|
8727
|
+
return (jsxs(PageContent, { children: [jsxs(Graphic, { children: [jsxs(LogoGroup, { children: [jsx(Logo$2, { children: jsx(LogoPosition, { children: jsx(LogoInner, { children: jsx(FloatWrapper, { children: jsx(RotateWrapper, { children: jsx(LogoGraphic, { children: jsx(Logos$1.Coinbase, { background: true }) }) }) }) }) }) }), jsx(Logo$2, { children: jsx(LogoPosition, { children: jsx(LogoInner, { children: jsx(FloatWrapper, { children: jsx(RotateWrapper, { children: jsx(LogoGraphic, { children: jsx(Logos$1.MetaMask, {}) }) }) }) }) }) }), jsx(Logo$2, { children: jsx(LogoPosition, { children: jsx(LogoInner, { children: jsx(FloatWrapper, { children: jsx(RotateWrapper, { children: jsx(LogoGraphic, { children: jsx(Logos$1.Rainbow, {}) }) }) }) }) }) }), jsx(Logo$2, { children: jsx(LogoPosition, { children: jsx(LogoInner, { children: jsx(FloatWrapper, { children: jsx(RotateWrapper, { children: jsx(LogoGraphic, { children: jsx(Logos$1.Phantom, {}) }) }) }) }) }) }), jsx(Logo$2, { children: jsx(LogoPosition, { children: jsx(LogoInner, { children: jsx(FloatWrapper, { children: jsx(RotateWrapper, { children: jsx(LogoGraphic, { children: jsx(Logos$1.Trust, {}) }) }) }) }) }) })] }), jsx(GraphicBackground, { children: wave })] }), jsxs(ModalContent, { style: { paddingBottom: 18 }, children: [jsx(ModalH1, { "$small": true, children: locales.onboardingScreen_h1 }), jsx(ModalBody, { children: locales.onboardingScreen_p })] }), jsx(Button, { href: ctaUrl, arrow: true, children: locales.onboardingScreen_ctaText })] }));
|
|
8540
8728
|
};
|
|
8541
8729
|
|
|
8542
8730
|
const SwitchNetworksContainer = styled.div `
|
|
@@ -9353,12 +9541,11 @@ const ConnectWithInjector = ({ switchConnectMethod, forceState }) => {
|
|
|
9353
9541
|
setStatus(states$1.UNAVAILABLE);
|
|
9354
9542
|
}
|
|
9355
9543
|
};
|
|
9356
|
-
let connectTimeout;
|
|
9357
9544
|
useEffect(() => {
|
|
9358
9545
|
if (status === states$1.UNAVAILABLE)
|
|
9359
9546
|
return;
|
|
9360
9547
|
// UX: Give user time to see the UI before opening the extension
|
|
9361
|
-
connectTimeout = setTimeout(runConnect, 600);
|
|
9548
|
+
const connectTimeout = setTimeout(runConnect, 600);
|
|
9362
9549
|
return () => {
|
|
9363
9550
|
clearTimeout(connectTimeout);
|
|
9364
9551
|
};
|
|
@@ -9420,18 +9607,18 @@ const IconContainer = styled(motion.div) `
|
|
|
9420
9607
|
display: block;
|
|
9421
9608
|
max-width: 100%;
|
|
9422
9609
|
height: auto;
|
|
9423
|
-
|
|
9610
|
+
}
|
|
9424
9611
|
`;
|
|
9425
9612
|
const ScanIconWithLogos = ({ logo }) => {
|
|
9426
9613
|
const logoList = [
|
|
9427
|
-
jsx(Logos$1.MetaMask, { background: true }),
|
|
9428
|
-
jsx(Logos$1.Coinbase, { background: true }),
|
|
9429
|
-
jsx(Logos$1.Crypto, {}),
|
|
9430
|
-
jsx(Logos$1.ImToken, {}),
|
|
9431
|
-
jsx(Logos$1.Argent, {}),
|
|
9432
|
-
jsx(Logos$1.Trust, {}),
|
|
9614
|
+
jsx(Logos$1.MetaMask, { background: true }, "metamask"),
|
|
9615
|
+
jsx(Logos$1.Coinbase, { background: true }, "coinbase"),
|
|
9616
|
+
jsx(Logos$1.Crypto, {}, "crypto"),
|
|
9617
|
+
jsx(Logos$1.ImToken, {}, "imtoken"),
|
|
9618
|
+
jsx(Logos$1.Argent, {}, "argent"),
|
|
9619
|
+
jsx(Logos$1.Trust, {}, "trust"),
|
|
9433
9620
|
];
|
|
9434
|
-
return (jsx(IconContainer, { children: jsxs("svg", { "aria-hidden": "true", width: "47", height: "52", viewBox: "0 0 47 52", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxs("g", { mask: "url(#gradient-mask)", children: [jsx("path", { d: "M7 14.5C7 11.4624 9.46243 9 12.5 9H31.5C34.5376 9 37 11.4624 37 14.5V47H7V14.5Z", fill: "var(--ck-graphic-scaniconwithlogos-04)" }), logo ? (jsx("foreignObject", { x: "13", y: "21", width: "18", height: "18", rx: "5", children: jsx("div", { style: { overflow:
|
|
9621
|
+
return (jsx(IconContainer, { children: jsxs("svg", { "aria-hidden": "true", width: "47", height: "52", viewBox: "0 0 47 52", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsxs("g", { mask: "url(#gradient-mask)", children: [jsx("path", { d: "M7 14.5C7 11.4624 9.46243 9 12.5 9H31.5C34.5376 9 37 11.4624 37 14.5V47H7V14.5Z", fill: "var(--ck-graphic-scaniconwithlogos-04)" }), logo ? (jsx("foreignObject", { x: "13", y: "21", width: "18", height: "18", rx: "5", children: jsx("div", { style: { overflow: "hidden", borderRadius: 5 }, children: logo }) })) : (jsxs(Fragment, { children: [jsx("foreignObject", { x: "12", y: "15", width: "9", height: "9", rx: "2.5", children: jsx("div", { style: { overflow: "hidden", borderRadius: 2.5 }, children: logoList[0] }) }), jsx("foreignObject", { x: "23", y: "15", width: "9", height: "9", rx: "2.5", children: jsx("div", { style: { overflow: "hidden", borderRadius: 2.5 }, children: logoList[1] }) }), jsx("foreignObject", { x: "12", y: "26", width: "9", height: "9", rx: "2.5", children: jsx("div", { style: { overflow: "hidden", borderRadius: 2.5 }, children: jsx("div", { style: { overflow: "hidden", borderRadius: 2.5 }, children: logoList[2] }) }) }), jsx("foreignObject", { x: "23", y: "26", width: "9", height: "9", rx: "2.5", children: jsx("div", { style: { overflow: "hidden", borderRadius: 2.5 }, children: logoList[3] }) }), jsx("foreignObject", { x: "12", y: "37", width: "9", height: "9", rx: "2.5", children: jsx("div", { style: { overflow: "hidden", borderRadius: 2.5 }, children: logoList[4] }) }), jsx("foreignObject", { x: "23", y: "37", width: "9", height: "9", rx: "2.5", children: jsx("div", { style: { overflow: "hidden", borderRadius: 2.5 }, children: logoList[5] }) })] })), jsx("path", { d: "M36 47V13.7143C36 11.1107 33.8893 9 31.2857 9H12.7143C10.1107 9 8 11.1107 8 13.7143V47", stroke: "url(#paint0_linear_924_12568)", strokeWidth: "2" }), jsx("path", { d: "M15 10H29C29 11.1046 28.1046 12 27 12H17C15.8954 12 15 11.1046 15 10Z", fill: "var(--ck-graphic-scaniconwithlogos-01)" }), jsx("rect", { x: "1", y: "47", width: "43", height: "5", fill: "var(--ck-tooltip-background)" }), jsx("rect", { x: "22", y: "1", width: "24", height: "24", rx: "12", fill: "var(--ck-graphic-scaniconwithlogos-03)", stroke: "var(--ck-tooltip-background)", strokeWidth: "2" }), jsx("rect", { x: "34.5", y: "10", width: "2.5", height: "2.5", rx: "0.75", fill: "#373737" }), jsx("rect", { x: "31", y: "10", width: "2.5", height: "2.5", rx: "0.75", fill: "#373737" }), jsx("rect", { x: "31", y: "13.5", width: "2.5", height: "2.5", rx: "0.75", fill: "#373737" }), jsx("rect", { x: "34.5", y: "13.5", width: "2.5", height: "2.5", rx: "0.75", fill: "#373737" }), jsx("path", { d: "M28.5 10.5V9C28.5 8.17157 29.1716 7.5 30 7.5H31.5", stroke: "#373737", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M36.5 7.5L38 7.5C38.8284 7.5 39.5 8.17157 39.5 9L39.5 10.5", stroke: "#373737", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M39.5 15.5L39.5 17C39.5 17.8284 38.8284 18.5 38 18.5L36.5 18.5", stroke: "#373737", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M31.5 18.5L30 18.5C29.1716 18.5 28.5 17.8284 28.5 17L28.5 15.5", stroke: "#373737", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] }), jsxs("defs", { children: [jsxs("linearGradient", { id: "paint0_linear_924_12568", x1: "22", y1: "8.2549", x2: "22", y2: "47", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "var(--ck-graphic-scaniconwithlogos-01)" }), jsx("stop", { offset: "1", stopColor: "var(--ck-graphic-scaniconwithlogos-02)" })] }), jsxs("linearGradient", { id: "linear-gradient-mask", x1: "47", y1: "42", x2: "47", y2: "47", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "white" }), jsx("stop", { offset: "1", stopColor: "black", stopOpacity: "0" })] }), jsx("mask", { id: "gradient-mask", children: jsx("rect", { x: "0", y: "0", width: "47", height: "52", fill: "url(#linear-gradient-mask)" }) })] })] }) }));
|
|
9435
9622
|
};
|
|
9436
9623
|
|
|
9437
9624
|
const ConnectWithQRCode = () => {
|
|
@@ -9523,9 +9710,9 @@ function getSupportUrl(daimoPayOrder, screen) {
|
|
|
9523
9710
|
return `mailto:${email}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
|
|
9524
9711
|
}
|
|
9525
9712
|
|
|
9526
|
-
|
|
9713
|
+
function CrepeIcon({ ...props }) {
|
|
9527
9714
|
return (jsxs("svg", { width: "20", height: "20", viewBox: "0 0 512 512", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [jsx("path", { d: "M256.48 492.035L491.96 84.0876C422.688 44.0149 342.263 21.0746 256.48 21.0746C170.697 21.0746 90.2722 44.0149 21 84.0876L256.48 492.035Z", stroke: "currentColor", strokeWidth: "35", strokeMiterlimit: "10", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M473.885 84.5848C417.669 176.594 247.311 44.0744 143.584 148.461L257.946 487.638", stroke: "currentColor", strokeWidth: "35", strokeMiterlimit: "10", strokeLinecap: "round", strokeLinejoin: "round" })] }));
|
|
9528
|
-
}
|
|
9715
|
+
}
|
|
9529
9716
|
|
|
9530
9717
|
const PoweredByFooter = ({ supportUrl } = {}) => {
|
|
9531
9718
|
const [supportVisible, setSupportVisible] = useState(false);
|
|
@@ -9537,7 +9724,7 @@ const PoweredByFooter = ({ supportUrl } = {}) => {
|
|
|
9537
9724
|
setSupportVisible(true);
|
|
9538
9725
|
}, 2500);
|
|
9539
9726
|
return () => clearTimeout(timer);
|
|
9540
|
-
}, []);
|
|
9727
|
+
}, [supportUrl]);
|
|
9541
9728
|
return (jsx(Container$3, { children: jsxs(TextButton, { onClick: () => {
|
|
9542
9729
|
window.open(supportVisible
|
|
9543
9730
|
? supportUrl
|
|
@@ -9804,6 +9991,7 @@ var PayState$1;
|
|
|
9804
9991
|
})(PayState$1 || (PayState$1 = {}));
|
|
9805
9992
|
const PayWithToken = () => {
|
|
9806
9993
|
const { isMobile, isIOS } = useIsMobile();
|
|
9994
|
+
const { connector } = useAccount();
|
|
9807
9995
|
const { triggerResize, paymentState, setRoute, log, wcWallet } = usePayContext();
|
|
9808
9996
|
const { payWithToken, selectedTokenOption } = paymentState;
|
|
9809
9997
|
const [payState, setPayState] = useState(PayState$1.RequestingPayment);
|
|
@@ -9866,10 +10054,10 @@ const PayWithToken = () => {
|
|
|
9866
10054
|
console.error("Failed to pay with token", e);
|
|
9867
10055
|
}
|
|
9868
10056
|
};
|
|
9869
|
-
let transferTimeout; // Prevent double-triggering in React dev strict mode.
|
|
9870
10057
|
useEffect(() => {
|
|
9871
10058
|
if (!selectedTokenOption)
|
|
9872
10059
|
return;
|
|
10060
|
+
let transferTimeout;
|
|
9873
10061
|
// Give user time to see the UI before opening on mobile
|
|
9874
10062
|
if (wcWallet && isMobile) {
|
|
9875
10063
|
if (!isIOS) {
|
|
@@ -9899,11 +10087,14 @@ const PayWithToken = () => {
|
|
|
9899
10087
|
if (selectedTokenOption == null) {
|
|
9900
10088
|
return jsx(PageContent, {});
|
|
9901
10089
|
}
|
|
9902
|
-
return (jsxs(PageContent, { children: [jsx(TokenLogoSpinner, { token: selectedTokenOption.required.token }), jsxs(ModalContent, { style: { paddingBottom: 0 }, "$preserveDisplay": true, children: [jsx(ModalH1, { children: payState }), jsx(PaymentBreakdown, { paymentOption: selectedTokenOption }), payState === PayState$1.RequestingPayment &&
|
|
10090
|
+
return (jsxs(PageContent, { children: [jsx(TokenLogoSpinner, { token: selectedTokenOption.required.token }), jsxs(ModalContent, { style: { paddingBottom: 0 }, "$preserveDisplay": true, children: [jsx(ModalH1, { children: payState }), jsx(PaymentBreakdown, { paymentOption: selectedTokenOption }), payState === PayState$1.RequestingPayment &&
|
|
10091
|
+
wcWallet &&
|
|
10092
|
+
isMobile &&
|
|
10093
|
+
!connector?.id?.includes("injected") && (jsx(Button, { icon: jsx(ExternalLinkIcon, {}), onClick: wcWallet.isWcMobileConnector
|
|
9903
10094
|
? () => handleTransfer(selectedTokenOption)
|
|
9904
10095
|
: undefined, href: wcWallet.isWcMobileConnector
|
|
9905
10096
|
? undefined
|
|
9906
|
-
: wcWallet.
|
|
10097
|
+
: wcWallet.deeplinkScheme ||
|
|
9907
10098
|
wcWallet.getWalletConnectDeeplink?.(""), children: "Tap Here to Pay" })), payState === PayState$1.RequestCancelled && (jsx(Button, { onClick: () => handleTransfer(selectedTokenOption), children: "Retry Payment" }))] })] }));
|
|
9908
10099
|
};
|
|
9909
10100
|
|
|
@@ -10117,11 +10308,11 @@ const MultiCurrencySelectAmount = ({ selectedTokenOption, setSelectedTokenOption
|
|
|
10117
10308
|
tokenSymbol: balanceToken.symbol,
|
|
10118
10309
|
});
|
|
10119
10310
|
};
|
|
10120
|
-
return (jsxs(PageContent, { children: [jsx(TokenLogoSpinner, { token: balanceToken }), jsxs(ModalContent, { "$preserveDisplay": true, children: [jsxs(AmountInputContainer$
|
|
10311
|
+
return (jsxs(PageContent, { children: [jsx(TokenLogoSpinner, { token: balanceToken }), jsxs(ModalContent, { "$preserveDisplay": true, children: [jsxs(AmountInputContainer$3, { children: [jsx(MaxButton, { style: { visibility: "hidden" }, children: "Max" }), jsx(AmountInputField, { value: isEditingUsd ? usdValue : tokenValue, onChange: handleAmountChange, currency: isEditingUsd ? "$" : balanceToken.symbol, onKeyDown: handleKeyDown }), jsx(MaxButton, { onClick: handleMax, children: "Max" })] }), balanceToken.fiatISO !== "USD" && (jsx(SwitchContainer, { children: jsx(SwitchButton, { onClick: handleSwitchCurrency, children: jsx(SecondaryAmount, { children: isEditingUsd
|
|
10121
10312
|
? `${tokenValue} ${balanceToken.symbol}`
|
|
10122
10313
|
: `$${usdValue}` }) }) })), message && jsx(ModalBody, { children: message }), jsx(Button, { onClick: handleContinue, disabled: continueDisabled, children: "Continue" })] })] }));
|
|
10123
10314
|
};
|
|
10124
|
-
const AmountInputContainer$
|
|
10315
|
+
const AmountInputContainer$3 = styled.div `
|
|
10125
10316
|
display: flex;
|
|
10126
10317
|
align-items: center;
|
|
10127
10318
|
justify-content: center;
|
|
@@ -10217,9 +10408,9 @@ const SelectDepositAddressAmount = () => {
|
|
|
10217
10408
|
paymentState.setChosenUsd(amountUsd);
|
|
10218
10409
|
setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, { amountUsd });
|
|
10219
10410
|
};
|
|
10220
|
-
return (jsxs(PageContent, { children: [jsx(ExternalPaymentSpinner, { logoURI: selectedDepositAddressOption.logoURI, logoShape: "circle" }), jsxs(ModalContent, { "$preserveDisplay": true, children: [jsx(AmountInputContainer$
|
|
10411
|
+
return (jsxs(PageContent, { children: [jsx(ExternalPaymentSpinner, { logoURI: selectedDepositAddressOption.logoURI, logoShape: "circle" }), jsxs(ModalContent, { "$preserveDisplay": true, children: [jsx(AmountInputContainer$2, { children: jsx(AmountInputField, { value: usdInput, onChange: handleAmountChange, onKeyDown: handleKeyDown }) }), message && jsx(ModalBody, { children: message }), jsx(Button, { onClick: handleContinue, disabled: continueDisabled, children: "Continue" })] })] }));
|
|
10221
10412
|
};
|
|
10222
|
-
const AmountInputContainer$
|
|
10413
|
+
const AmountInputContainer$2 = styled.div `
|
|
10223
10414
|
display: flex;
|
|
10224
10415
|
align-items: center;
|
|
10225
10416
|
justify-content: center;
|
|
@@ -10345,32 +10536,6 @@ const OptionSubtitle = styled(motion.span) `
|
|
|
10345
10536
|
overflow: hidden;
|
|
10346
10537
|
width: 100%;
|
|
10347
10538
|
`;
|
|
10348
|
-
const OptionIcon = styled(motion.div) `
|
|
10349
|
-
position: absolute;
|
|
10350
|
-
right: 20px;
|
|
10351
|
-
width: 32px;
|
|
10352
|
-
height: 32px;
|
|
10353
|
-
overflow: visible;
|
|
10354
|
-
svg,
|
|
10355
|
-
img {
|
|
10356
|
-
display: block;
|
|
10357
|
-
position: relative;
|
|
10358
|
-
pointer-events: none;
|
|
10359
|
-
overflow: hidden;
|
|
10360
|
-
width: 100%;
|
|
10361
|
-
height: 100%;
|
|
10362
|
-
}
|
|
10363
|
-
|
|
10364
|
-
&[data-shape="squircle"] {
|
|
10365
|
-
border-radius: 22.5%;
|
|
10366
|
-
}
|
|
10367
|
-
&[data-shape="circle"] {
|
|
10368
|
-
border-radius: 100%;
|
|
10369
|
-
}
|
|
10370
|
-
&[data-shape="square"] {
|
|
10371
|
-
border-radius: 0;
|
|
10372
|
-
}
|
|
10373
|
-
`;
|
|
10374
10539
|
const OptionsContainer$1 = styled.div `
|
|
10375
10540
|
transition: opacity 300ms ease;
|
|
10376
10541
|
display: flex;
|
|
@@ -10384,7 +10549,7 @@ const OptionsContainer$1 = styled.div `
|
|
|
10384
10549
|
`}
|
|
10385
10550
|
`;
|
|
10386
10551
|
|
|
10387
|
-
const OptionsList = ({ options, isLoading, requiredSkeletons, scrollHeight = 300, orDivider = false, }) => {
|
|
10552
|
+
const OptionsList = ({ options, isLoading, requiredSkeletons, scrollHeight = 300, orDivider = false, hideBottomLine = false, }) => {
|
|
10388
10553
|
const { triggerResize, log } = usePayContext();
|
|
10389
10554
|
const optionsLength = options.length;
|
|
10390
10555
|
useEffect(() => {
|
|
@@ -10400,7 +10565,7 @@ const OptionsList = ({ options, isLoading, requiredSkeletons, scrollHeight = 300
|
|
|
10400
10565
|
return (jsxs(OptionsContainer$1, { "$totalResults": options.length, children: [options.map((option) => (jsx(OptionItem, { option: option }, option.id))), isLoading &&
|
|
10401
10566
|
Array.from({ length: skeletonCount }).map((_, index) => (jsx(SkeletonOptionItem, {}, index)))] }));
|
|
10402
10567
|
}
|
|
10403
|
-
return (jsxs(Fragment, { children: [jsx(ScrollArea, { mobileDirection: "vertical", height: scrollHeight, hideBottomLine: orDivider, totalItems: options.length, children: jsx(OptionsContainer$1, { "$totalResults": options.length, children: options.map((option) => (jsx(OptionItem, { option: option }, option.id))) }) }), orDivider && jsx(OrDivider, {})] }));
|
|
10568
|
+
return (jsxs(Fragment, { children: [jsx(ScrollArea, { mobileDirection: "vertical", height: scrollHeight, hideBottomLine: orDivider || hideBottomLine, totalItems: options.length, children: jsx(OptionsContainer$1, { "$totalResults": options.length, children: options.map((option) => (jsx(OptionItem, { option: option }, option.id))) }) }), orDivider && jsx(OrDivider, {})] }));
|
|
10404
10569
|
};
|
|
10405
10570
|
const SkeletonOptionItem = () => {
|
|
10406
10571
|
return (jsxs(OptionButton, { type: "button", children: [jsx(SkeletonIcon, {}), jsx(SkeletonLabel, {})] }));
|
|
@@ -10435,16 +10600,12 @@ const SkeletonLabel = styled.div `
|
|
|
10435
10600
|
const OptionItem = ({ option }) => {
|
|
10436
10601
|
const hydratedIcons = option.icons.map((icon) => {
|
|
10437
10602
|
if (typeof icon === "string") {
|
|
10438
|
-
return jsx("img", { src: icon, alt: "" });
|
|
10603
|
+
return jsx("img", { src: icon, alt: "" }, option.id);
|
|
10439
10604
|
}
|
|
10440
10605
|
return icon;
|
|
10441
10606
|
});
|
|
10442
10607
|
const iconContent = (() => {
|
|
10443
|
-
|
|
10444
|
-
return jsx(OptionIcon, { children: hydratedIcons[0] });
|
|
10445
|
-
else {
|
|
10446
|
-
return (jsx(IconStackContainer, { children: hydratedIcons.map((icon, index) => (jsx(IconStackItem, { "$marginRight": index !== hydratedIcons.length - 1 ? -12 : 0, "$zIndex": hydratedIcons.length - index, children: icon }, index))) }));
|
|
10447
|
-
}
|
|
10608
|
+
return (jsx(IconStackContainer, { children: hydratedIcons.map((icon, index) => (jsx(IconStackItem, { "$marginRight": index !== hydratedIcons.length - 1 ? -12 : 0, "$zIndex": hydratedIcons.length - index, children: icon }, index))) }));
|
|
10448
10609
|
})();
|
|
10449
10610
|
return (jsxs(OptionButton, { type: "button", onClick: option.onClick, disabled: option.disabled, children: [iconContent, jsxs(OptionLabel, { children: [jsx(OptionTitle, { children: option.title }), option.subtitle && jsx(OptionSubtitle, { children: option.subtitle })] })] }));
|
|
10450
10611
|
};
|
|
@@ -10487,12 +10648,8 @@ function SelectAnotherMethodButton() {
|
|
|
10487
10648
|
const { paymentState, setRoute } = usePayContext();
|
|
10488
10649
|
const { externalPaymentOptions, daimoPayOrder } = paymentState;
|
|
10489
10650
|
const { connector } = useAccount();
|
|
10490
|
-
const { disconnectAsync } = useDisconnect();
|
|
10491
10651
|
const paymentOptions = daimoPayOrder?.metadata.payer?.paymentOptions;
|
|
10492
|
-
const allPaymentOptions =
|
|
10493
|
-
...externalPaymentOptions.options.map((option) => option.id),
|
|
10494
|
-
...(paymentOptions ?? []),
|
|
10495
|
-
].flat();
|
|
10652
|
+
const allPaymentOptions = Array.from(externalPaymentOptions.options.values()).flat();
|
|
10496
10653
|
const includeSolana = paymentOptions == null ||
|
|
10497
10654
|
paymentOptions.includes(ExternalPaymentOptions.Solana);
|
|
10498
10655
|
// Deposit address options, e.g. Bitcoin, Tron, Zcash, etc.
|
|
@@ -10511,9 +10668,8 @@ function SelectAnotherMethodButton() {
|
|
|
10511
10668
|
id: "select-wallet",
|
|
10512
10669
|
title: "Pay with another wallet",
|
|
10513
10670
|
icons: getBestUnconnectedWalletIcons(connector),
|
|
10514
|
-
onClick:
|
|
10515
|
-
|
|
10516
|
-
setRoute(ROUTES.CONNECTORS);
|
|
10671
|
+
onClick: () => {
|
|
10672
|
+
setRoute(ROUTES.SELECT_METHOD);
|
|
10517
10673
|
},
|
|
10518
10674
|
};
|
|
10519
10675
|
function getBestUnconnectedWalletIcons(connector) {
|
|
@@ -10535,9 +10691,9 @@ function SelectAnotherMethodButton() {
|
|
|
10535
10691
|
return icons;
|
|
10536
10692
|
}
|
|
10537
10693
|
function getBestPaymentMethodIcons() {
|
|
10538
|
-
let icons = externalPaymentOptions.options
|
|
10694
|
+
let icons = (externalPaymentOptions.options.get("external") ?? [])
|
|
10539
10695
|
.filter((option) => option.id !== ExternalPaymentOptions.Daimo)
|
|
10540
|
-
.map((option) => (jsx("div", { style: { borderRadius: "22.5%", overflow: "hidden" }, children: jsx("img", { src: option.logoURI, alt: "" }) }, option.id)));
|
|
10696
|
+
.map((option) => (jsx("div", { style: { borderRadius: "22.5%", overflow: "hidden" }, children: typeof option.logoURI === "string" ? (jsx("img", { src: option.logoURI, alt: "" })) : (option.logoURI) }, option.id)));
|
|
10541
10697
|
if (icons.length < 3) {
|
|
10542
10698
|
const additionalIcons = [];
|
|
10543
10699
|
if (includeSolana)
|
|
@@ -10628,9 +10784,9 @@ const SelectExternalAmount = () => {
|
|
|
10628
10784
|
paymentState.setChosenUsd(amountUsd);
|
|
10629
10785
|
setRoute(ROUTES.WAITING_EXTERNAL, { amountUsd });
|
|
10630
10786
|
};
|
|
10631
|
-
return (jsxs(PageContent, { children: [jsx(ExternalPaymentSpinner, { logoURI: selectedExternalOption.logoURI, logoShape: selectedExternalOption.logoShape }), jsxs(ModalContent, { "$preserveDisplay": true, children: [jsx(AmountInputContainer, { children: jsx(AmountInputField, { value: usdInput, onChange: handleAmountChange, onKeyDown: handleKeyDown }) }), message && jsx(ModalBody, { children: message }), jsx(Button, { onClick: handleContinue, disabled: continueDisabled, children: "Continue" })] })] }));
|
|
10787
|
+
return (jsxs(PageContent, { children: [jsx(ExternalPaymentSpinner, { logoURI: selectedExternalOption.logoURI, logoShape: selectedExternalOption.logoShape }), jsxs(ModalContent, { "$preserveDisplay": true, children: [jsx(AmountInputContainer$1, { children: jsx(AmountInputField, { value: usdInput, onChange: handleAmountChange, onKeyDown: handleKeyDown }) }), message && jsx(ModalBody, { children: message }), jsx(Button, { onClick: handleContinue, disabled: continueDisabled, children: "Continue" })] })] }));
|
|
10632
10788
|
};
|
|
10633
|
-
const AmountInputContainer = styled.div `
|
|
10789
|
+
const AmountInputContainer$1 = styled.div `
|
|
10634
10790
|
display: flex;
|
|
10635
10791
|
align-items: center;
|
|
10636
10792
|
justify-content: center;
|
|
@@ -10655,17 +10811,19 @@ const ChainContainer$2 = styled(motion.div) `
|
|
|
10655
10811
|
`;
|
|
10656
10812
|
|
|
10657
10813
|
function SelectMethod() {
|
|
10658
|
-
const { isMobile, isIOS } = useIsMobile();
|
|
10814
|
+
const { isMobile, isIOS, isAndroid } = useIsMobile();
|
|
10659
10815
|
const { address, chain, isConnected: isEthConnected, connector, } = useAccount();
|
|
10660
|
-
const { connected: isSolanaConnected, wallet: solanaWallet, publicKey, } = useWallet$1();
|
|
10816
|
+
const { connected: isSolanaConnected, wallet: solanaWallet, wallets: solanaWallets, disconnect: disconnectSolana, publicKey, } = useWallet$1();
|
|
10661
10817
|
const { setRoute, paymentState, wcWallet, log } = usePayContext();
|
|
10662
10818
|
const { disconnectAsync } = useDisconnect();
|
|
10663
10819
|
const { daimoPayOrder, setSelectedExternalOption, externalPaymentOptions, showSolanaPaymentMethod, depositAddressOptions, senderEnsName, } = paymentState;
|
|
10664
|
-
|
|
10820
|
+
// Decide whether to show the connected eth account, solana account, or both.
|
|
10821
|
+
const showConnectedEth = isEthConnected;
|
|
10822
|
+
const showConnectedSolana = isSolanaConnected && showSolanaPaymentMethod;
|
|
10665
10823
|
const getConnectedWalletOptions = () => {
|
|
10666
10824
|
const showChainLogo = isEthConnected && isSolanaConnected;
|
|
10667
10825
|
const connectedOptions = [];
|
|
10668
|
-
if (
|
|
10826
|
+
if (showConnectedEth) {
|
|
10669
10827
|
const ethWalletDisplayName = senderEnsName ?? (address ? getAddressContraction(address) : "wallet");
|
|
10670
10828
|
let walletIcon;
|
|
10671
10829
|
if (connector?.icon) {
|
|
@@ -10675,8 +10833,7 @@ function SelectMethod() {
|
|
|
10675
10833
|
walletIcon = (jsx("div", { style: { borderRadius: "22.5%", overflow: "hidden" }, children: typeof wcWallet.icon === "string" ? (jsx("img", { src: wcWallet.icon, alt: wcWallet.name })) : (wcWallet.icon) }));
|
|
10676
10834
|
}
|
|
10677
10835
|
else {
|
|
10678
|
-
|
|
10679
|
-
walletIcon = jsx(MetaMask, {});
|
|
10836
|
+
walletIcon = jsx(WalletIcon$2, {});
|
|
10680
10837
|
}
|
|
10681
10838
|
const connectedEthWalletOption = {
|
|
10682
10839
|
id: "connectedWallet",
|
|
@@ -10695,17 +10852,17 @@ function SelectMethod() {
|
|
|
10695
10852
|
};
|
|
10696
10853
|
connectedOptions.push(connectedEthWalletOption);
|
|
10697
10854
|
}
|
|
10698
|
-
if (
|
|
10855
|
+
if (showConnectedSolana) {
|
|
10699
10856
|
const solWalletDisplayName = getAddressContraction(publicKey?.toBase58() ?? "");
|
|
10700
10857
|
const connectedSolWalletOption = {
|
|
10701
10858
|
id: "connectedSolanaWallet",
|
|
10702
10859
|
title: `Pay with ${solWalletDisplayName}`,
|
|
10703
10860
|
icons: solanaWallet?.adapter.icon
|
|
10704
10861
|
? [
|
|
10705
|
-
jsx(WalletChainLogo, { walletIcon: solanaWallet.adapter.icon, walletName: solanaWallet.adapter.name, chainLogo: showChainLogo && jsx(Solana, {}) }),
|
|
10862
|
+
jsx(WalletChainLogo, { walletIcon: solanaWallet.adapter.icon, walletName: solanaWallet.adapter.name, chainLogo: showChainLogo && jsx(Solana, {}) }, "sol-wallet"),
|
|
10706
10863
|
]
|
|
10707
10864
|
: [
|
|
10708
|
-
jsx(WalletChainLogo, { walletIcon: jsx(Solana, {}), walletName: "Default wallet icon", chainLogo: null }),
|
|
10865
|
+
jsx(WalletChainLogo, { walletIcon: jsx(Solana, {}), walletName: "Default wallet icon", chainLogo: null }, "sol-wallet"),
|
|
10709
10866
|
],
|
|
10710
10867
|
onClick: () => {
|
|
10711
10868
|
setRoute(ROUTES.SOLANA_SELECT_TOKEN, {
|
|
@@ -10722,15 +10879,16 @@ function SelectMethod() {
|
|
|
10722
10879
|
};
|
|
10723
10880
|
// Deposit address options, e.g. Bitcoin, Tron, Zcash, etc.
|
|
10724
10881
|
// Include by default if paymentOptions not provided
|
|
10725
|
-
const showDepositAddressMethod =
|
|
10726
|
-
|
|
10882
|
+
const showDepositAddressMethod = externalPaymentOptions.options
|
|
10883
|
+
.get("external")
|
|
10884
|
+
?.some((o) => o.id == ExternalPaymentOptions.ExternalChains);
|
|
10727
10885
|
const connectedWalletOptions = getConnectedWalletOptions();
|
|
10728
10886
|
const unconnectedWalletOption = {
|
|
10729
10887
|
id: "unconnectedWallet",
|
|
10730
10888
|
title: isEthConnected || isSolanaConnected
|
|
10731
10889
|
? `Pay with another wallet`
|
|
10732
10890
|
: `Pay with wallet`,
|
|
10733
|
-
icons: getBestUnconnectedWalletIcons(connector),
|
|
10891
|
+
icons: getBestUnconnectedWalletIcons(connector, isMobile),
|
|
10734
10892
|
onClick: async () => {
|
|
10735
10893
|
await disconnectAsync();
|
|
10736
10894
|
setRoute(ROUTES.CONNECTORS);
|
|
@@ -10741,13 +10899,27 @@ function SelectMethod() {
|
|
|
10741
10899
|
options.push(unconnectedWalletOption);
|
|
10742
10900
|
log(`[SELECT_METHOD] loading: ${externalPaymentOptions.loading}, options: ${JSON.stringify(externalPaymentOptions.options)}`);
|
|
10743
10901
|
if (showSolanaPaymentMethod) {
|
|
10744
|
-
const solanaOption = getSolanaOption(isIOS);
|
|
10902
|
+
const solanaOption = getSolanaOption(isIOS, isAndroid, solanaWallets, disconnectSolana, setRoute);
|
|
10745
10903
|
if (solanaOption) {
|
|
10746
10904
|
options.push(solanaOption);
|
|
10747
10905
|
}
|
|
10748
10906
|
}
|
|
10907
|
+
// ZKP2P is currently only available on desktop. Check if the user is on
|
|
10908
|
+
// desktop and if any ZKP2P options are available.
|
|
10909
|
+
const zkp2pOptions = externalPaymentOptions.options.get("zkp2p") ?? [];
|
|
10910
|
+
const showZkp2pPaymentMethod = !isMobile && zkp2pOptions.length > 0;
|
|
10911
|
+
if (showZkp2pPaymentMethod) {
|
|
10912
|
+
options.push({
|
|
10913
|
+
id: "ZKP2P",
|
|
10914
|
+
title: "Pay via payment app",
|
|
10915
|
+
icons: zkp2pOptions.slice(0, 3).map((option) => option.logoURI),
|
|
10916
|
+
onClick: () => {
|
|
10917
|
+
setRoute(ROUTES.SELECT_ZKP2P);
|
|
10918
|
+
},
|
|
10919
|
+
});
|
|
10920
|
+
}
|
|
10749
10921
|
// External payment options, e.g. Binance, Coinbase, etc.
|
|
10750
|
-
options.push(...(externalPaymentOptions.options ?? []).map((option) => ({
|
|
10922
|
+
options.push(...(externalPaymentOptions.options.get("external") ?? []).map((option) => ({
|
|
10751
10923
|
id: option.id,
|
|
10752
10924
|
title: option.cta,
|
|
10753
10925
|
icons: [option.logoURI],
|
|
@@ -10765,49 +10937,63 @@ function SelectMethod() {
|
|
|
10765
10937
|
subtitle: option.message,
|
|
10766
10938
|
})));
|
|
10767
10939
|
if (showDepositAddressMethod) {
|
|
10768
|
-
const depositAddressOption = getDepositAddressOption(depositAddressOptions);
|
|
10940
|
+
const depositAddressOption = getDepositAddressOption(depositAddressOptions, setRoute, paymentState.isDepositFlow);
|
|
10769
10941
|
options.push(depositAddressOption);
|
|
10770
10942
|
}
|
|
10771
10943
|
return (jsxs(PageContent, { children: [jsx(OrderHeader, {}), jsx(OptionsList, { requiredSkeletons: isMobile ? 4 : 3, isLoading: externalPaymentOptions.loading, options: externalPaymentOptions.loading ? [] : options }), jsx(PoweredByFooter, {})] }));
|
|
10772
10944
|
}
|
|
10773
10945
|
// Get 3 icons, skipping the one that is already connected
|
|
10774
|
-
function getBestUnconnectedWalletIcons(connector) {
|
|
10946
|
+
function getBestUnconnectedWalletIcons(connector, isMobile) {
|
|
10775
10947
|
const icons = [];
|
|
10776
10948
|
const strippedId = connector?.id.toLowerCase(); // some connector ids can have weird casing and or suffixes and prefixes
|
|
10777
|
-
const [
|
|
10778
|
-
strippedId?.includes("
|
|
10779
|
-
strippedId?.includes("
|
|
10949
|
+
const [isRainbow, isTrust, isPhantom, isCoinbase] = [
|
|
10950
|
+
strippedId?.includes("rainbow.me"),
|
|
10951
|
+
strippedId?.includes("trust"),
|
|
10952
|
+
strippedId?.includes("phantom"),
|
|
10780
10953
|
strippedId?.includes("coinbase"),
|
|
10954
|
+
strippedId?.includes("rainbow"),
|
|
10781
10955
|
];
|
|
10782
|
-
if (
|
|
10783
|
-
|
|
10784
|
-
|
|
10785
|
-
|
|
10786
|
-
|
|
10787
|
-
|
|
10788
|
-
|
|
10789
|
-
icons.
|
|
10956
|
+
if (isMobile) {
|
|
10957
|
+
if (!isTrust)
|
|
10958
|
+
icons.push(jsx(Trust, { background: true }));
|
|
10959
|
+
if (!isRainbow)
|
|
10960
|
+
icons.push(jsx(Rainbow, {}));
|
|
10961
|
+
if (!isPhantom)
|
|
10962
|
+
icons.push(jsx(Phantom, {}));
|
|
10963
|
+
if (icons.length < 3)
|
|
10964
|
+
icons.push(jsx(Coinbase, {}));
|
|
10965
|
+
}
|
|
10966
|
+
else {
|
|
10967
|
+
if (!isRainbow)
|
|
10968
|
+
icons.push(jsx(Rainbow, {}));
|
|
10969
|
+
if (!isPhantom)
|
|
10970
|
+
icons.push(jsx(Phantom, {}));
|
|
10971
|
+
if (!isCoinbase)
|
|
10972
|
+
icons.push(jsx(Coinbase, {}));
|
|
10973
|
+
if (icons.length < 3)
|
|
10974
|
+
icons.push(jsx(Rabby, {}));
|
|
10975
|
+
}
|
|
10790
10976
|
return icons;
|
|
10791
10977
|
}
|
|
10792
|
-
function getSolanaOption(
|
|
10793
|
-
|
|
10794
|
-
|
|
10795
|
-
if (
|
|
10978
|
+
function getSolanaOption(isIOS, isAndroid, solanaWallets, disconnectSolana, setRoute) {
|
|
10979
|
+
// If we're on iOS and there are no wallets, we don't need to show the Solana option
|
|
10980
|
+
// If we're on Android and there are less than 2 wallets, we don't need to show the Solana option because there is always a default wallet called Mobile Wallet Adapter that is not useful
|
|
10981
|
+
if ((isIOS && solanaWallets.length === 0) ||
|
|
10982
|
+
(isAndroid && solanaWallets.length < 2))
|
|
10796
10983
|
return null;
|
|
10797
10984
|
return {
|
|
10798
10985
|
id: "solana",
|
|
10799
10986
|
title: "Pay on Solana",
|
|
10800
|
-
icons: [jsx(Solana, {})],
|
|
10987
|
+
icons: [jsx(Solana, {}, "solana")],
|
|
10801
10988
|
onClick: async () => {
|
|
10802
10989
|
await disconnectSolana();
|
|
10803
10990
|
setRoute(ROUTES.SOLANA_CONNECT);
|
|
10804
10991
|
},
|
|
10805
10992
|
};
|
|
10806
10993
|
}
|
|
10807
|
-
function getDepositAddressOption(depositAddressOptions) {
|
|
10808
|
-
const { setRoute, paymentState } = usePayContext();
|
|
10994
|
+
function getDepositAddressOption(depositAddressOptions, setRoute, isDepositFlow) {
|
|
10809
10995
|
// TODO: API should serve the subtitle and disabled
|
|
10810
|
-
const disabled = !
|
|
10996
|
+
const disabled = !isDepositFlow &&
|
|
10811
10997
|
!depositAddressOptions.loading &&
|
|
10812
10998
|
depositAddressOptions.options.length === 0;
|
|
10813
10999
|
const subtitle = disabled ? "Minimum $20.00" : "Bitcoin, Tron, Zcash...";
|
|
@@ -10815,7 +11001,11 @@ function getDepositAddressOption(depositAddressOptions) {
|
|
|
10815
11001
|
id: "depositAddress",
|
|
10816
11002
|
title: "Pay on another chain",
|
|
10817
11003
|
subtitle,
|
|
10818
|
-
icons: [
|
|
11004
|
+
icons: [
|
|
11005
|
+
jsx(Bitcoin, {}, "bitcoin"),
|
|
11006
|
+
jsx(Tron, {}, "tron"),
|
|
11007
|
+
jsx(Zcash, {}, "zcash"),
|
|
11008
|
+
],
|
|
10819
11009
|
onClick: () => {
|
|
10820
11010
|
setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
|
|
10821
11011
|
},
|
|
@@ -10842,9 +11032,12 @@ const ChainContainer$1 = styled(motion.div) `
|
|
|
10842
11032
|
|
|
10843
11033
|
function SelectToken() {
|
|
10844
11034
|
const { isMobile, isIOS } = useIsMobile();
|
|
10845
|
-
const isMobileFormat =
|
|
11035
|
+
const isMobileFormat = isMobile || window?.innerWidth < defaultTheme.mobileWidth;
|
|
10846
11036
|
const { setRoute, paymentState, wcWallet } = usePayContext();
|
|
10847
11037
|
const { isDepositFlow, walletPaymentOptions, setSelectedTokenOption } = paymentState;
|
|
11038
|
+
const { connector } = useAccount();
|
|
11039
|
+
const { connected: isSolanaConnected } = useWallet$1();
|
|
11040
|
+
console.log("connector", connector);
|
|
10848
11041
|
const optionsList = walletPaymentOptions.options?.map((option) => {
|
|
10849
11042
|
const chainName = getChainName(option.balance.token.chainId);
|
|
10850
11043
|
const titlePrice = isDepositFlow
|
|
@@ -10875,8 +11068,8 @@ function SelectToken() {
|
|
|
10875
11068
|
else {
|
|
10876
11069
|
setRoute(ROUTES.PAY_WITH_TOKEN, meta);
|
|
10877
11070
|
if (isMobile && isIOS) {
|
|
10878
|
-
if (wcWallet?.
|
|
10879
|
-
window.open(wcWallet?.
|
|
11071
|
+
if (wcWallet?.deeplinkScheme) {
|
|
11072
|
+
window.open(wcWallet?.deeplinkScheme, "_blank");
|
|
10880
11073
|
}
|
|
10881
11074
|
else {
|
|
10882
11075
|
//If the wallet is a wc mobile connector we don't have the deep link
|
|
@@ -10890,18 +11083,102 @@ function SelectToken() {
|
|
|
10890
11083
|
disabled,
|
|
10891
11084
|
};
|
|
10892
11085
|
}) ?? [];
|
|
11086
|
+
// IsAnotherMethodButtonVisible is true when there are token options and we are in desktop mode or in mobile mode using a wallet connect connector
|
|
11087
|
+
const isAnotherMethodButtonVisible = (optionsList.length != 0 &&
|
|
11088
|
+
(!isMobileFormat || isWalletConnectConnector(connector?.id))) ||
|
|
11089
|
+
(optionsList.length == 0 && isSolanaConnected);
|
|
10893
11090
|
return (jsxs(PageContent, { children: [jsx(OrderHeader, { minified: true, showEth: true }), !walletPaymentOptions.isLoading && optionsList.length === 0 && (jsxs(ModalContent, { style: {
|
|
10894
11091
|
display: "flex",
|
|
10895
11092
|
alignItems: "center",
|
|
10896
11093
|
justifyContent: "center",
|
|
10897
11094
|
paddingTop: 16,
|
|
10898
11095
|
paddingBottom: 16,
|
|
10899
|
-
}, children: [jsx(ModalH1, { children: "Insufficient balance." }), jsx(SelectAnotherMethodButton, {})] })), jsx(OptionsList, { requiredSkeletons: 4, isLoading: walletPaymentOptions.isLoading, options: optionsList, scrollHeight: isMobileFormat ? 225 : 300, orDivider:
|
|
11096
|
+
}, children: [jsx(ModalH1, { children: "Insufficient balance." }), jsx(SelectAnotherMethodButton, {})] })), jsx(OptionsList, { requiredSkeletons: 4, isLoading: walletPaymentOptions.isLoading, options: optionsList, scrollHeight: isAnotherMethodButtonVisible && isMobileFormat ? 225 : 300, orDivider: isAnotherMethodButtonVisible, hideBottomLine: !isAnotherMethodButtonVisible }), isAnotherMethodButtonVisible && jsx(SelectAnotherMethodButton, {})] }));
|
|
10900
11097
|
}
|
|
10901
11098
|
function getDaimoTokenKey(token) {
|
|
10902
11099
|
return `${token.chainId}-${token.token}`;
|
|
10903
11100
|
}
|
|
10904
11101
|
|
|
11102
|
+
const WalletPaymentSpinner = ({ logo, logoShape, }) => {
|
|
11103
|
+
const optionSpinner = (() => {
|
|
11104
|
+
if (typeof logo === "string") {
|
|
11105
|
+
if (logoShape === "circle") {
|
|
11106
|
+
return (jsx(CircleSpinner, { logo: jsx("img", { src: logo }), loading: false, unavailable: false }));
|
|
11107
|
+
}
|
|
11108
|
+
else {
|
|
11109
|
+
return jsx(SquircleSpinner, { logo: jsx("img", { src: logo }), loading: false });
|
|
11110
|
+
}
|
|
11111
|
+
}
|
|
11112
|
+
else {
|
|
11113
|
+
if (logoShape === "circle") {
|
|
11114
|
+
return (jsx(CircleSpinner, { logo: logo, loading: false, unavailable: false }));
|
|
11115
|
+
}
|
|
11116
|
+
else {
|
|
11117
|
+
return jsx(SquircleSpinner, { logo: logo, loading: false });
|
|
11118
|
+
}
|
|
11119
|
+
}
|
|
11120
|
+
})();
|
|
11121
|
+
return (jsx(LoadingContainer$2, { children: jsx(AnimationContainer$1, { "$circle": logoShape === "circle", children: jsx(AnimatePresence, { children: optionSpinner }) }) }));
|
|
11122
|
+
};
|
|
11123
|
+
|
|
11124
|
+
const SelectWalletAmount = () => {
|
|
11125
|
+
const { paymentState } = usePayContext();
|
|
11126
|
+
const { selectedWallet, payWithWallet } = paymentState;
|
|
11127
|
+
const maxUsdLimit = paymentState.getOrderUsdLimit();
|
|
11128
|
+
const [usdInput, setUsdInput] = useState("");
|
|
11129
|
+
const [continueDisabled, setContinueDisabled] = useState(true);
|
|
11130
|
+
if (selectedWallet == null) {
|
|
11131
|
+
return jsx(PageContent, {});
|
|
11132
|
+
}
|
|
11133
|
+
const handleAmountChange = (e) => {
|
|
11134
|
+
const value = e.target.value;
|
|
11135
|
+
if (value !== "" && !isValidNumber(value, USD_DECIMALS))
|
|
11136
|
+
return;
|
|
11137
|
+
setUsdInput(value);
|
|
11138
|
+
const usd = Number(sanitizeNumber(value));
|
|
11139
|
+
setContinueDisabled(usd <= 0 || usd > maxUsdLimit);
|
|
11140
|
+
};
|
|
11141
|
+
const handleContinue = async () => {
|
|
11142
|
+
const amountUsd = Number(sanitizeNumber(usdInput));
|
|
11143
|
+
await payWithWallet(selectedWallet, amountUsd);
|
|
11144
|
+
};
|
|
11145
|
+
return (jsxs(PageContent, { children: [jsx(WalletPaymentSpinner, { logo: selectedWallet.icon, logoShape: selectedWallet.iconShape === "square"
|
|
11146
|
+
? "squircle"
|
|
11147
|
+
: selectedWallet.iconShape || "squircle" }), jsxs(ModalContent, { "$preserveDisplay": true, children: [jsx(AmountInputContainer, { children: jsx(AmountInputField, { value: usdInput, onChange: handleAmountChange }) }), jsx(Button, { onClick: handleContinue, disabled: continueDisabled, children: "Continue" })] })] }));
|
|
11148
|
+
};
|
|
11149
|
+
const AmountInputContainer = styled.div `
|
|
11150
|
+
display: flex;
|
|
11151
|
+
align-items: center;
|
|
11152
|
+
justify-content: center;
|
|
11153
|
+
`;
|
|
11154
|
+
|
|
11155
|
+
const SelectZKP = () => {
|
|
11156
|
+
const { paymentState, setRoute } = usePayContext();
|
|
11157
|
+
const { externalPaymentOptions, setSelectedExternalOption } = paymentState;
|
|
11158
|
+
const zkp2pOptions = externalPaymentOptions.options.get("zkp2p");
|
|
11159
|
+
if (!zkp2pOptions) {
|
|
11160
|
+
return (jsxs(PageContent, { children: [jsx(OrderHeader, { minified: true, showZKP2P: true }), jsx(ModalH1, { children: "No ZKP2P options available" })] }));
|
|
11161
|
+
}
|
|
11162
|
+
const options = zkp2pOptions.map((option) => ({
|
|
11163
|
+
id: option.id,
|
|
11164
|
+
title: option.cta,
|
|
11165
|
+
icons: [option.logoURI],
|
|
11166
|
+
onClick: () => {
|
|
11167
|
+
setSelectedExternalOption(option);
|
|
11168
|
+
const meta = { event: "click-option", option: option.id };
|
|
11169
|
+
if (paymentState.isDepositFlow) {
|
|
11170
|
+
setRoute(ROUTES.SELECT_EXTERNAL_AMOUNT, meta);
|
|
11171
|
+
}
|
|
11172
|
+
else {
|
|
11173
|
+
setRoute(ROUTES.WAITING_EXTERNAL, meta);
|
|
11174
|
+
}
|
|
11175
|
+
},
|
|
11176
|
+
disabled: option.disabled,
|
|
11177
|
+
subtitle: option.message,
|
|
11178
|
+
}));
|
|
11179
|
+
return (jsxs(PageContent, { children: [jsx(OrderHeader, { minified: true, showZKP2P: true }), jsx(OptionsList, { options: options })] }));
|
|
11180
|
+
};
|
|
11181
|
+
|
|
10905
11182
|
const ConnectSolana$1 = () => {
|
|
10906
11183
|
const solanaWallets = useWallet$1();
|
|
10907
11184
|
const isConnected = solanaWallets.connected;
|
|
@@ -10953,7 +11230,7 @@ const ConnectSolana = () => {
|
|
|
10953
11230
|
id: wallet.adapter.name,
|
|
10954
11231
|
title: `${wallet.adapter.name}`,
|
|
10955
11232
|
icons: [
|
|
10956
|
-
jsx(SquircleIcon, { icon: wallet.adapter.icon, alt: wallet.adapter.name }),
|
|
11233
|
+
jsx(SquircleIcon, { icon: wallet.adapter.icon, alt: wallet.adapter.name }, wallet.adapter.name),
|
|
10957
11234
|
],
|
|
10958
11235
|
onClick: async () => {
|
|
10959
11236
|
log("wallet.adapter.name ", wallet.adapter.name);
|
|
@@ -10972,7 +11249,7 @@ const ConnectSolana = () => {
|
|
|
10972
11249
|
id: "phantom",
|
|
10973
11250
|
title: "Open in Phantom",
|
|
10974
11251
|
icons: [
|
|
10975
|
-
jsx(SquircleIcon, { icon: (props) => jsx(Phantom, { ...props, background: true }), alt: "Phantom" }),
|
|
11252
|
+
jsx(SquircleIcon, { icon: (props) => jsx(Phantom, { ...props, background: true }), alt: "Phantom" }, "phantom"),
|
|
10976
11253
|
],
|
|
10977
11254
|
onClick: () => window.open(`https://phantom.app/ul/browse/${encodeURIComponent(window.location.href)}?ref=${encodeURIComponent(window.location.origin)}`),
|
|
10978
11255
|
},
|
|
@@ -10980,7 +11257,7 @@ const ConnectSolana = () => {
|
|
|
10980
11257
|
id: "solflare",
|
|
10981
11258
|
title: "Open in Solflare",
|
|
10982
11259
|
icons: [
|
|
10983
|
-
jsx(SquircleIcon, { icon: (props) => jsx(Solflare, { ...props, background: true }), alt: "Solflare" }),
|
|
11260
|
+
jsx(SquircleIcon, { icon: (props) => jsx(Solflare, { ...props, background: true }), alt: "Solflare" }, "solflare"),
|
|
10984
11261
|
],
|
|
10985
11262
|
onClick: () => window.open(`https://solflare.com/ul/v1/browse/${encodeURIComponent(window.location.href)}?ref=${encodeURIComponent(window.location.origin)}`, "_blank"),
|
|
10986
11263
|
},
|
|
@@ -10988,7 +11265,7 @@ const ConnectSolana = () => {
|
|
|
10988
11265
|
id: "backpack",
|
|
10989
11266
|
title: "Open in Backpack",
|
|
10990
11267
|
icons: [
|
|
10991
|
-
jsx(SquircleIcon, { icon: (props) => jsx(Backpack, { ...props, background: true }), alt: "Backpack" }),
|
|
11268
|
+
jsx(SquircleIcon, { icon: (props) => jsx(Backpack, { ...props, background: true }), alt: "Backpack" }, "backpack"),
|
|
10992
11269
|
],
|
|
10993
11270
|
onClick: () => window.open(`https://backpack.app/ul/v1/browse/${encodeURIComponent(window.location.href)}?ref=${encodeURIComponent(window.location.origin)}`, "_blank"),
|
|
10994
11271
|
},
|
|
@@ -11047,14 +11324,13 @@ const PayWithSolanaToken = () => {
|
|
|
11047
11324
|
}
|
|
11048
11325
|
}
|
|
11049
11326
|
};
|
|
11050
|
-
let transferTimeout; // Prevent double-triggering in React dev strict mode.
|
|
11051
11327
|
useEffect(() => {
|
|
11052
11328
|
if (!selectedSolanaTokenOption)
|
|
11053
11329
|
return;
|
|
11054
11330
|
// Give user time to see the UI before opening
|
|
11055
|
-
transferTimeout = setTimeout(handleTransfer, 100);
|
|
11331
|
+
const transferTimeout = setTimeout(handleTransfer, 100);
|
|
11056
11332
|
return () => clearTimeout(transferTimeout);
|
|
11057
|
-
}, []);
|
|
11333
|
+
}, [selectedSolanaTokenOption]);
|
|
11058
11334
|
useEffect(() => {
|
|
11059
11335
|
triggerResize();
|
|
11060
11336
|
}, [payState]);
|
|
@@ -11154,7 +11430,7 @@ const WaitingDepositAddress = () => {
|
|
|
11154
11430
|
useEffect(() => {
|
|
11155
11431
|
triggerResize();
|
|
11156
11432
|
}, [details]);
|
|
11157
|
-
return (jsx(PageContent, { children: failed ? (jsxs(ModalContent, { style: { marginLeft: 24, marginRight: 24 }, children: [jsxs(ModalH1, { children: [selectedDepositAddressOption?.id, " unavailable"] }), jsxs(ModalBody, { children: ["We're unable to process ", selectedDepositAddressOption?.id, " payments at this time. Please select another payment method."] }), jsx(SelectAnotherMethodButton, {})] })) : (jsxs(ModalContent, { children: [jsx(CustomQRCode, { value: details?.uri, image: jsx("img", { src: selectedDepositAddressOption?.logoURI, width: "100%", height: "100%" }), tooltipMessage: jsxs(Fragment, { children: [jsx(ScanIconWithLogos, { logo: jsx("img", { src: selectedDepositAddressOption?.logoURI }) }), jsxs("span", { children: ["Use a ", selectedDepositAddressOption?.id, " wallet to scan"] })] }) }), details && (jsxs(Fragment, { children: [jsx(OrDivider, {}), jsxs(ModalBody, { children: ["Send exactly ", details.amount, " ", details.suffix, " to", " ", getAddressContraction(details.address), " and return to this page. Confirmation should appear in a few minutes."] }), jsx(CopyToClipboard, { variant: "button", string: details.address, children: "Copy Address" }), jsx(CopyToClipboard, { variant: "left", string: details.amount, children: "Copy Amount" })] }))] })) }));
|
|
11433
|
+
return (jsx(PageContent, { children: failed ? (jsxs(ModalContent, { style: { marginLeft: 24, marginRight: 24 }, children: [jsxs(ModalH1, { children: [selectedDepositAddressOption?.id, " unavailable"] }), jsxs(ModalBody, { children: ["We're unable to process ", selectedDepositAddressOption?.id, " ", "payments at this time. Please select another payment method."] }), jsx(SelectAnotherMethodButton, {})] })) : (jsxs(ModalContent, { children: [jsx(CustomQRCode, { value: details?.uri, image: jsx("img", { src: selectedDepositAddressOption?.logoURI, width: "100%", height: "100%" }), tooltipMessage: jsxs(Fragment, { children: [jsx(ScanIconWithLogos, { logo: jsx("img", { src: selectedDepositAddressOption?.logoURI }) }), jsxs("span", { children: ["Use a ", selectedDepositAddressOption?.id, " wallet to scan"] })] }) }), details && (jsxs(Fragment, { children: [jsx(OrDivider, {}), jsxs(ModalBody, { children: ["Send exactly ", details.amount, " ", details.suffix, " to", " ", getAddressContraction(details.address), " and return to this page. Confirmation should appear in a few minutes."] }), jsx(CopyToClipboard, { variant: "button", string: details.address, children: "Copy Address" }), jsx(CopyToClipboard, { variant: "left", string: details.amount, children: "Copy Amount" })] }))] })) }));
|
|
11158
11434
|
};
|
|
11159
11435
|
|
|
11160
11436
|
const WaitingExternal = () => {
|
|
@@ -11163,6 +11439,15 @@ const WaitingExternal = () => {
|
|
|
11163
11439
|
const trpc = context.trpc;
|
|
11164
11440
|
const { isMobile } = useIsMobile();
|
|
11165
11441
|
const { selectedExternalOption, payWithExternal, paymentWaitingMessage, daimoPayOrder, } = paymentState;
|
|
11442
|
+
let isPaymentApp = false;
|
|
11443
|
+
if (selectedExternalOption) {
|
|
11444
|
+
isPaymentApp =
|
|
11445
|
+
selectedExternalOption.id === ExternalPaymentOptions.Venmo ||
|
|
11446
|
+
selectedExternalOption.id === ExternalPaymentOptions.CashApp ||
|
|
11447
|
+
selectedExternalOption.id === ExternalPaymentOptions.MercadoPago ||
|
|
11448
|
+
selectedExternalOption.id === ExternalPaymentOptions.Revolut ||
|
|
11449
|
+
selectedExternalOption.id === ExternalPaymentOptions.Wise;
|
|
11450
|
+
}
|
|
11166
11451
|
const [externalURL, setExternalURL] = useState(null);
|
|
11167
11452
|
useEffect(() => {
|
|
11168
11453
|
const checkForSourcePayment = async () => {
|
|
@@ -11187,15 +11472,19 @@ const WaitingExternal = () => {
|
|
|
11187
11472
|
});
|
|
11188
11473
|
}, [selectedExternalOption]);
|
|
11189
11474
|
const openExternalWindow = (url) => {
|
|
11190
|
-
if (isMobile) {
|
|
11475
|
+
if (isMobile || isPaymentApp) {
|
|
11191
11476
|
// on mobile: open in a new tab
|
|
11192
11477
|
window.open(url, "_blank");
|
|
11193
11478
|
}
|
|
11194
11479
|
else {
|
|
11195
11480
|
// on desktop: open in a popup window in
|
|
11196
11481
|
// portrait mode in the center of the screen
|
|
11197
|
-
|
|
11198
|
-
|
|
11482
|
+
let width = 500;
|
|
11483
|
+
let height = 700;
|
|
11484
|
+
// if (isPaymentApp) {
|
|
11485
|
+
// height = 800;
|
|
11486
|
+
// width = 800;
|
|
11487
|
+
// }
|
|
11199
11488
|
const left = Math.max(0, Math.floor((window.innerWidth - width) / 2) + window.screenX);
|
|
11200
11489
|
const top = Math.max(0, Math.floor((window.innerHeight - height) / 2) + window.screenY);
|
|
11201
11490
|
window.open(url, "popupWindow", `width=${width},height=${height},left=${left},top=${top},scrollbars=yes`);
|
|
@@ -11215,19 +11504,51 @@ const WaitingExternal = () => {
|
|
|
11215
11504
|
}, children: selectedExternalOption.cta })] }));
|
|
11216
11505
|
};
|
|
11217
11506
|
|
|
11507
|
+
const WaitingWallet = () => {
|
|
11508
|
+
const context = usePayContext();
|
|
11509
|
+
const { triggerResize, paymentState, setRoute } = context;
|
|
11510
|
+
const trpc = context.trpc;
|
|
11511
|
+
const { selectedWallet, paymentWaitingMessage, daimoPayOrder, selectedWalletDeepLink, refreshOrder, } = paymentState;
|
|
11512
|
+
useEffect(() => {
|
|
11513
|
+
if (daimoPayOrder?.id == null)
|
|
11514
|
+
return;
|
|
11515
|
+
const checkForSourcePayment = async () => {
|
|
11516
|
+
const found = await trpc.findSourcePayment.query({
|
|
11517
|
+
orderId: daimoPayOrder.id.toString(),
|
|
11518
|
+
});
|
|
11519
|
+
if (found) {
|
|
11520
|
+
setRoute(ROUTES.CONFIRMATION, { event: "found-source-payment" });
|
|
11521
|
+
}
|
|
11522
|
+
};
|
|
11523
|
+
const pollFn = daimoPayOrder?.mode === DaimoPayOrderMode.HYDRATED
|
|
11524
|
+
? checkForSourcePayment
|
|
11525
|
+
: refreshOrder;
|
|
11526
|
+
const interval = setInterval(pollFn, 1000);
|
|
11527
|
+
return () => clearInterval(interval);
|
|
11528
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11529
|
+
}, [daimoPayOrder?.id, daimoPayOrder?.mode]);
|
|
11530
|
+
const openWalletWindow = (url) => {
|
|
11531
|
+
window.open(url, "_blank");
|
|
11532
|
+
};
|
|
11533
|
+
if (!selectedWallet) {
|
|
11534
|
+
return jsx(PageContent, { children: " No wallet selected " });
|
|
11535
|
+
}
|
|
11536
|
+
return (jsxs(PageContent, { children: [jsx(WalletPaymentSpinner, { logo: selectedWallet.icon, logoShape: selectedWallet.iconShape === "square"
|
|
11537
|
+
? "squircle"
|
|
11538
|
+
: selectedWallet.iconShape || "squircle" }), jsxs(ModalContent, { style: { marginLeft: 24, marginRight: 24 }, children: [jsxs(ModalH1, { children: ["Continue in ", selectedWallet.shortName ?? selectedWallet.name] }), paymentWaitingMessage && (jsx(ModalBody, { style: { marginTop: 12, marginBottom: 12 }, children: paymentWaitingMessage }))] }), jsx(Button, { icon: jsx(ExternalLinkIcon, {}), onClick: () => {
|
|
11539
|
+
if (selectedWalletDeepLink) {
|
|
11540
|
+
openWalletWindow(selectedWalletDeepLink);
|
|
11541
|
+
}
|
|
11542
|
+
}, children: `Open ${selectedWallet.name}` })] }));
|
|
11543
|
+
};
|
|
11544
|
+
|
|
11218
11545
|
const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
|
|
11219
11546
|
const context = usePayContext();
|
|
11220
11547
|
const { setMode, setTheme, setCustomTheme, setLang } = context;
|
|
11221
11548
|
const paymentState = context.paymentState;
|
|
11222
|
-
const { payParams, generatePreviewOrder, isDepositFlow, showSolanaPaymentMethod, setPaymentWaitingMessage, setSelectedExternalOption, setSelectedTokenOption, setSelectedSolanaTokenOption, setSelectedDepositAddressOption, } = paymentState;
|
|
11549
|
+
const { payParams, generatePreviewOrder, isDepositFlow, showSolanaPaymentMethod, setPaymentWaitingMessage, setSelectedExternalOption, setSelectedTokenOption, setSelectedSolanaTokenOption, setSelectedDepositAddressOption, setSelectedWallet, } = paymentState;
|
|
11223
11550
|
const { isConnected: isEthConnected, connector, chain, address, } = useAccount();
|
|
11224
|
-
|
|
11225
|
-
const { daimoPayOrder } = paymentState;
|
|
11226
|
-
const paymentOptions = daimoPayOrder?.metadata.payer?.paymentOptions;
|
|
11227
|
-
// Solana payment option
|
|
11228
|
-
// Include by default if paymentOptions not provided
|
|
11229
|
-
paymentOptions == null ||
|
|
11230
|
-
paymentOptions.includes(ExternalPaymentOptions.Solana);
|
|
11551
|
+
useWallet$1();
|
|
11231
11552
|
const chainIsSupported = useChainIsSupported(chain?.id);
|
|
11232
11553
|
//if chain is unsupported we enforce a "switch chain" prompt
|
|
11233
11554
|
const closeable = !(context.options?.enforceSupportedChains &&
|
|
@@ -11258,6 +11579,9 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
|
|
|
11258
11579
|
setSelectedDepositAddressOption(undefined);
|
|
11259
11580
|
context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);
|
|
11260
11581
|
}
|
|
11582
|
+
else if (context.route === ROUTES.SELECT_ZKP2P) {
|
|
11583
|
+
context.setRoute(ROUTES.SELECT_METHOD, meta);
|
|
11584
|
+
}
|
|
11261
11585
|
else if (context.route === ROUTES.WAITING_EXTERNAL) {
|
|
11262
11586
|
setPaymentWaitingMessage(undefined);
|
|
11263
11587
|
if (isDepositFlow) {
|
|
@@ -11295,6 +11619,17 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
|
|
|
11295
11619
|
context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);
|
|
11296
11620
|
}
|
|
11297
11621
|
}
|
|
11622
|
+
else if (context.route === ROUTES.WAITING_WALLET) {
|
|
11623
|
+
if (isDepositFlow) {
|
|
11624
|
+
assert(payParams != null, "[PAY MODAL] payParams cannot be null in deposit flow");
|
|
11625
|
+
generatePreviewOrder(payParams);
|
|
11626
|
+
context.setRoute(ROUTES.SELECT_WALLET_AMOUNT, meta);
|
|
11627
|
+
}
|
|
11628
|
+
else {
|
|
11629
|
+
setSelectedWallet(undefined);
|
|
11630
|
+
context.setRoute(ROUTES.SELECT_METHOD, meta);
|
|
11631
|
+
}
|
|
11632
|
+
}
|
|
11298
11633
|
else if (context.route === ROUTES.SOLANA_SELECT_AMOUNT) {
|
|
11299
11634
|
setSelectedSolanaTokenOption(undefined);
|
|
11300
11635
|
context.setRoute(ROUTES.SOLANA_SELECT_TOKEN, meta);
|
|
@@ -11320,9 +11655,12 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
|
|
|
11320
11655
|
[ROUTES.SELECT_AMOUNT]: jsx(SelectAmount, {}),
|
|
11321
11656
|
[ROUTES.SELECT_EXTERNAL_AMOUNT]: jsx(SelectExternalAmount, {}),
|
|
11322
11657
|
[ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT]: jsx(SelectDepositAddressAmount, {}),
|
|
11658
|
+
[ROUTES.SELECT_WALLET_AMOUNT]: jsx(SelectWalletAmount, {}),
|
|
11323
11659
|
[ROUTES.WAITING_EXTERNAL]: jsx(WaitingExternal, {}),
|
|
11324
11660
|
[ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN]: jsx(SelectDepositAddressChain, {}),
|
|
11325
11661
|
[ROUTES.WAITING_DEPOSIT_ADDRESS]: jsx(WaitingDepositAddress, {}),
|
|
11662
|
+
[ROUTES.SELECT_ZKP2P]: jsx(SelectZKP, {}),
|
|
11663
|
+
[ROUTES.WAITING_WALLET]: jsx(WaitingWallet, {}),
|
|
11326
11664
|
[ROUTES.CONFIRMATION]: jsx(Confirmation, {}),
|
|
11327
11665
|
[ROUTES.PAY_WITH_TOKEN]: jsx(PayWithToken, {}),
|
|
11328
11666
|
[ROUTES.SOLANA_CONNECT]: jsx(ConnectSolana, {}),
|
|
@@ -11353,12 +11691,12 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
|
|
|
11353
11691
|
return;
|
|
11354
11692
|
if (context.route !== ROUTES.SELECT_METHOD)
|
|
11355
11693
|
return;
|
|
11356
|
-
const
|
|
11357
|
-
const
|
|
11694
|
+
const canPayEth = paymentState.walletPaymentOptions.options?.some((o) => o.disabledReason == null);
|
|
11695
|
+
const canPaySolana = paymentState.solanaPaymentOptions.options?.some((o) => o.disabledReason == null);
|
|
11358
11696
|
// Skip to token selection if exactly one wallet is connected. If both
|
|
11359
11697
|
// wallets are connected, stay on the SELECT_METHOD screen to allow the
|
|
11360
11698
|
// user to select which wallet to use
|
|
11361
|
-
if (
|
|
11699
|
+
if (canPayEth && !canPaySolana) {
|
|
11362
11700
|
context.setRoute(ROUTES.SELECT_TOKEN, {
|
|
11363
11701
|
event: "eth_connected_on_open",
|
|
11364
11702
|
walletId: connector?.id,
|
|
@@ -11366,7 +11704,7 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
|
|
|
11366
11704
|
address,
|
|
11367
11705
|
});
|
|
11368
11706
|
}
|
|
11369
|
-
else if (
|
|
11707
|
+
else if (canPaySolana && !canPayEth) {
|
|
11370
11708
|
context.setRoute(ROUTES.SOLANA_SELECT_TOKEN, {
|
|
11371
11709
|
event: "solana_connected_on_open",
|
|
11372
11710
|
});
|
|
@@ -11377,8 +11715,8 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
|
|
|
11377
11715
|
}, [
|
|
11378
11716
|
context.open,
|
|
11379
11717
|
context.wcWallet,
|
|
11380
|
-
|
|
11381
|
-
|
|
11718
|
+
paymentState.walletPaymentOptions.options,
|
|
11719
|
+
paymentState.solanaPaymentOptions.options,
|
|
11382
11720
|
showSolanaPaymentMethod,
|
|
11383
11721
|
address,
|
|
11384
11722
|
chain?.id,
|
|
@@ -11524,7 +11862,10 @@ const DaimoPayProviderWithoutSolana = ({ children, theme = "auto", mode = "auto"
|
|
|
11524
11862
|
const [redirectReturnUrl, setRedirectReturnUrl] = useState(undefined);
|
|
11525
11863
|
const log = useMemo(() => (debugMode ? console.log : () => { }), [debugMode]);
|
|
11526
11864
|
// Connect to the Daimo Pay TRPC API
|
|
11527
|
-
const trpc = useMemo(() =>
|
|
11865
|
+
const trpc = useMemo(() => {
|
|
11866
|
+
setInWalletPaymentUrlFromApiUrl(payApiUrl);
|
|
11867
|
+
return createTrpcClient(payApiUrl, sessionId);
|
|
11868
|
+
}, [payApiUrl, sessionId]);
|
|
11528
11869
|
const [resize, onResize] = useState(0);
|
|
11529
11870
|
const setOpen = useCallback((open, meta) => {
|
|
11530
11871
|
setOpenState(open);
|
|
@@ -11956,6 +12297,7 @@ function DaimoPayButtonCustom(props) {
|
|
|
11956
12297
|
else if (payParams != null) {
|
|
11957
12298
|
paymentState.setPayParams(payParams);
|
|
11958
12299
|
}
|
|
12300
|
+
paymentState.setButtonProps(props);
|
|
11959
12301
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11960
12302
|
}, [payId, JSON.stringify(payParams || {})]);
|
|
11961
12303
|
// Set the confirmation message
|
|
@@ -11985,7 +12327,6 @@ function DaimoPayButtonCustom(props) {
|
|
|
11985
12327
|
// Payment events: call these three event handlers.
|
|
11986
12328
|
const { onPaymentStarted, onPaymentCompleted, onPaymentBounced } = props;
|
|
11987
12329
|
const order = paymentState.daimoPayOrder;
|
|
11988
|
-
const intentStatus = order?.intentStatus;
|
|
11989
12330
|
const hydOrder = order?.mode === DaimoPayOrderMode.HYDRATED ? order : null;
|
|
11990
12331
|
// Functions to show and hide the modal
|
|
11991
12332
|
const { children, closeOnSuccess, resetOnSuccess } = props;
|
|
@@ -11998,25 +12339,37 @@ function DaimoPayButtonCustom(props) {
|
|
|
11998
12339
|
const hide = useCallback(() => context.setOpen(false), [context]);
|
|
11999
12340
|
// Emit event handlers when payment status changes
|
|
12000
12341
|
const sentStart = useRef(false);
|
|
12342
|
+
const sentComplete = useRef(false);
|
|
12001
12343
|
useEffect(() => {
|
|
12002
12344
|
if (hydOrder == null)
|
|
12003
12345
|
return;
|
|
12004
|
-
|
|
12346
|
+
const intentStatus = hydOrder.intentStatus;
|
|
12347
|
+
// Started? Send start.
|
|
12348
|
+
if (intentStatus === DaimoPayIntentStatus.UNPAID) {
|
|
12005
12349
|
return;
|
|
12350
|
+
}
|
|
12006
12351
|
if (!sentStart.current && hydOrder.sourceTokenAmount) {
|
|
12007
12352
|
sentStart.current = true;
|
|
12008
12353
|
onPaymentStarted?.({
|
|
12009
|
-
type:
|
|
12354
|
+
type: DaimoPayEventType.PaymentStarted,
|
|
12010
12355
|
paymentId: writeDaimoPayOrderID(hydOrder.id),
|
|
12011
12356
|
chainId: hydOrder.sourceTokenAmount?.token.chainId,
|
|
12012
12357
|
txHash: hydOrder.sourceInitiateTxHash ?? null,
|
|
12013
12358
|
payment: getDaimoPayOrderView(hydOrder),
|
|
12014
12359
|
});
|
|
12015
12360
|
}
|
|
12016
|
-
|
|
12017
|
-
|
|
12361
|
+
// Finished? Send end event.
|
|
12362
|
+
if (intentStatus !== DaimoPayIntentStatus.COMPLETED &&
|
|
12363
|
+
intentStatus !== DaimoPayIntentStatus.BOUNCED) {
|
|
12364
|
+
return;
|
|
12365
|
+
}
|
|
12366
|
+
if (!sentComplete.current) {
|
|
12367
|
+
sentComplete.current = true;
|
|
12368
|
+
const eventType = intentStatus === DaimoPayIntentStatus.COMPLETED
|
|
12369
|
+
? DaimoPayEventType.PaymentCompleted
|
|
12370
|
+
: DaimoPayEventType.PaymentBounced;
|
|
12018
12371
|
const event = {
|
|
12019
|
-
type:
|
|
12372
|
+
type: eventType,
|
|
12020
12373
|
paymentId: writeDaimoPayOrderID(hydOrder.id),
|
|
12021
12374
|
chainId: hydOrder.destFinalCallTokenAmount.token.chainId,
|
|
12022
12375
|
txHash: assertNotNull(hydOrder.destFastFinishTxHash ?? hydOrder.destClaimTxHash, `[PAY BUTTON] dest tx hash null on order ${hydOrder.id} when intent status is ${intentStatus}`),
|
|
@@ -12029,12 +12382,14 @@ function DaimoPayButtonCustom(props) {
|
|
|
12029
12382
|
onPaymentBounced?.(event);
|
|
12030
12383
|
}
|
|
12031
12384
|
}
|
|
12032
|
-
|
|
12385
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
12386
|
+
}, [hydOrder]);
|
|
12033
12387
|
// Open the modal by default if the defaultOpen prop is true
|
|
12034
12388
|
useEffect(() => {
|
|
12035
12389
|
if (props.defaultOpen && order != null) {
|
|
12036
12390
|
show();
|
|
12037
12391
|
}
|
|
12392
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
12038
12393
|
}, [order != null, props.defaultOpen]);
|
|
12039
12394
|
// Validation
|
|
12040
12395
|
if ((payId == null) == (payParams == null)) {
|