@daimo/pay 1.7.7 → 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.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, writeDaimoPayOrderID, DaimoPayOrderMode, DaimoPayOrderStatusDest, getChainExplorerTxUrl, DaimoPayIntentStatus, retryBackoff, DaimoPayOrderStatusSource, DaimoPayEventType, getDaimoPayOrderView } from '@daimo/pay-common';
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.7.7";
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.7.7",
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 = ({ background = false, ...props }) => (jsxs("svg", { ...props, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("circle", { cx: "10", cy: "10", r: "10", fill: "var(--ck-brand-coinbaseWallet)" }), background && (jsx("rect", { rx: "27%", width: "20", height: "20", fill: "var(--ck-brand-coinbaseWallet)" })), jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.0001 17C13.8661 17 17.0001 13.866 17.0001 10C17.0001 6.13401 13.8661 3 10.0001 3C6.13413 3 3.00012 6.13401 3.00012 10C3.00012 13.866 6.13413 17 10.0001 17ZM8.25012 7.71429C7.95427 7.71429 7.71441 7.95414 7.71441 8.25V11.75C7.71441 12.0459 7.95427 12.2857 8.25012 12.2857H11.7501C12.046 12.2857 12.2858 12.0459 12.2858 11.75V8.25C12.2858 7.95414 12.046 7.71429 11.7501 7.71429H8.25012Z", fill: "white" })] }));
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: "120", height: "120", viewBox: "0 0 120 120", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: {
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 = ({ theme = "light", ...props }) => (jsxs("svg", { ...props, width: "44", height: "44", viewBox: "0 0 44 44", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("rect", { width: "44", height: "44", fill: theme === "light"
289
- ? "var(--ck-brand-trust-02)"
290
- : "var(--ck-brand-trust-02b)" }), jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M33.0246 11.8662C33.4096 11.8662 33.774 12.0243 34.0421 12.2925C34.3102 12.5675 34.4615 12.9387 34.4546 13.3168C34.3859 17.4143 34.2277 20.5493 33.9321 23.0312C33.6433 25.5131 33.2102 27.3556 32.5571 28.8475C32.1171 29.8443 31.574 30.6693 30.9346 31.3706C30.0752 32.2987 29.0921 32.9725 28.0196 33.6119C27.561 33.8861 27.0843 34.1568 26.5842 34.4408C25.5172 35.0468 24.3441 35.713 23.0146 36.6025C22.5333 36.9256 21.9077 36.9256 21.4265 36.6025C20.0766 35.7026 18.8879 35.0281 17.8112 34.4173C17.5718 34.2815 17.3379 34.1488 17.109 34.0175C15.8509 33.2887 14.7165 32.5943 13.7265 31.5906C13.0665 30.9306 12.4959 30.1262 12.0421 29.1706C11.4234 27.8918 11.004 26.345 10.6946 24.3443C10.2821 21.67 10.0759 18.1706 10.0002 13.3168C9.99336 12.9387 10.1377 12.5675 10.4059 12.2925C10.674 12.0243 11.0452 11.8662 11.4302 11.8662H12.0215C13.8433 11.8731 17.8652 11.6943 21.344 8.98559C21.8596 8.58683 22.5815 8.58683 23.0971 8.98559C26.5759 11.6943 30.5977 11.8731 32.4265 11.8662H33.0246ZM29.8277 27.9331C30.2746 27.0118 30.6459 25.74 30.9277 23.9112C31.2646 21.725 31.4709 18.755 31.5671 14.7125C29.4221 14.6506 25.7371 14.2381 22.224 11.8731C18.7109 14.2312 15.0259 14.6437 12.8877 14.7125C12.9633 18.0537 13.1146 20.6525 13.3552 22.6943C13.6302 25.0181 14.0221 26.5925 14.5102 27.6993C14.8333 28.435 15.1909 28.9643 15.6171 29.4318C16.1877 30.0575 16.9096 30.5731 17.8927 31.1643C18.3005 31.409 18.7502 31.6635 19.2396 31.9406C20.1116 32.4341 21.1099 32.9991 22.224 33.7081C23.3175 33.0107 24.3014 32.4515 25.1633 31.9616C25.4231 31.8139 25.6717 31.6725 25.909 31.5356C27.119 30.8412 28.0127 30.2637 28.6796 29.59C29.1265 29.1293 29.4909 28.6275 29.8277 27.9331Z", fill: theme === "light"
291
- ? "var(--ck-brand-trust-01)"
292
- : "var(--ck-brand-trust-01b)" })] }));
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 = ({ background = false, ...props }) => (jsx("svg", { ...props, width: "88", height: "88", viewBox: "0 0 88 88", fill: "none", xmlns: "http://www.w3.org/2000/svg", style: background ? { background: "#AB9FF2" } : undefined, children: jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M37.7425 57.0705C34.1942 62.3362 28.2483 69 20.3366 69C16.5965 69 13.0001 67.5093 13 61.0322C12.9997 44.5362 36.2555 19.0003 57.8334 19C70.1084 18.9998 75 27.2474 75 36.6136C75 48.6357 66.9442 62.3824 58.9368 62.3824C56.3955 62.3824 55.1487 61.031 55.1487 58.888C55.1487 58.3288 55.2442 57.7228 55.4365 57.0705C52.7029 61.5902 47.4285 65.7849 42.4896 65.7849C38.8933 65.7849 37.0713 63.5944 37.0713 60.5187C37.0713 59.4003 37.311 58.2357 37.7425 57.0705ZM53.7586 31.6834C51.8054 31.6868 50.4738 33.2938 50.478 35.5864C50.4822 37.879 51.8198 39.5273 53.7729 39.5241C55.6789 39.5208 57.0099 37.8679 57.0058 35.5752C57.0016 33.2827 55.6646 31.6802 53.7586 31.6834ZM64.1193 31.6725C62.1661 31.6759 60.8345 33.2829 60.8387 35.5755C60.8429 37.868 62.1798 39.5164 64.1336 39.5131C66.0396 39.5099 67.3706 37.8569 67.3664 35.5643C67.3622 33.2718 66.0253 31.6693 64.1193 31.6725Z", fill: background ? "#ffffff" : "currentColor" }) }));
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 = ({ background = false, ...props }) => {
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,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";
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(Zerion, {}) }), jsx("div", { style: cell, children: jsx(WalletConnect, { background: true }) })] }), jsxs("div", { style: row, children: [jsx("div", { style: cell, children: jsx(Family, {}) }), jsx("div", { style: cell, children: jsx(Ledger, {}) })] })] }));
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
- icon: jsx(Logos$1.Mock, {}),
421
- showInMobileConnectors: false,
422
- },
423
- argent: {
424
- name: "Argent",
425
- icon: jsx(Logos$1.Argent, {}),
426
- downloadUrls: {
427
- download: "https://connect.family.co/v0/download/argent",
428
- android: "https://play.google.com/store/apps/details?id=im.argent.contractwalletclient",
429
- ios: "https://apps.apple.com/app/argent/id1358741926",
430
- },
431
- showInMobileConnectors: false,
432
- getWalletConnectDeeplink: (uri) => {
433
- return `https://argent.link/app/wc?uri=${encodeURIComponent(uri)}`;
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, { background: true }),
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: false,
449
- getWalletConnectDeeplink: (uri) => {
450
- return `https://go.cb-w.com/wc?uri=${encodeURIComponent(uri)}`;
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, { background: true }),
457
- iconShape: "circle",
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
- getWalletConnectDeeplink: (uri) => {
467
- return `https://go.cb-w.com/wc?uri=${encodeURIComponent(uri)}`;
552
+ deeplinkScheme: "cbwallet://",
553
+ getDaimoPayDeeplink: (payId) => {
554
+ return "cbwallet://dapp?url=" + getEncodedDaimoPayUrl(payId);
468
555
  },
469
556
  },
470
- "com.crypto.wallet": {
471
- name: "Crypto.com",
472
- shortName: "Crypto",
473
- showInMobileConnectors: false,
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
- dawn: {
476
- name: "Dawn Wallet",
477
- shortName: "Dawn",
478
- downloadUrls: {
479
- download: "https://apps.apple.com/us/app/dawn-ethereum-wallet/id1673143782",
480
- website: "https://www.dawnwallet.xyz/",
481
- ios: "https://apps.apple.com/us/app/dawn-ethereum-wallet/id1673143782",
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
- getWalletConnectDeeplink: (uri) => {
496
- return `familywallet://wc?uri=${encodeURIComponent(uri)}`;
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
- frame: {
502
- name: "Frame",
503
- icon: jsx(Logos$1.Frame, {}),
504
- iconShouldShrink: true,
505
- downloadUrls: {
506
- download: "https://connect.family.co/v0/download/frame",
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: false,
554
- getWalletConnectDeeplink: (uri) => {
555
- return `https://metamask.app.link/wc?uri=${encodeURIComponent(uri)}`;
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: false,
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
- getWalletConnectDeeplink: (uri) => {
580
- return `rainbow://wc?uri=${encodeURIComponent(uri)}&connector=daimopay`;
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
- iconShouldShrink: true,
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
- getWalletConnectDeeplink(uri) {
631
- return `https://link.trustwallet.com/wc?uri=${encodeURIComponent(uri)}`;
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
- steak: {
689
- name: "Steak",
690
- icon: jsx(Logos$1.Steak, {}),
691
- downloadUrls: {
692
- download: "https://connect.family.co/v0/download/steak",
693
- android: "https://play.google.com/store/apps/details?id=fi.steakwallet.app",
694
- ios: "https://apps.apple.com/app/steakwallet/id1569375204",
695
- website: "https://steakwallet.fi/download",
696
- },
697
- showInMobileConnectors: false,
698
- getWalletConnectDeeplink: (uri) => {
699
- return `https://links.steakwallet.fi/wc?uri=${encodeURIComponent(uri)}`;
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
- ledger: {
703
- name: "Ledger Live",
704
- shortName: "Ledger",
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
- getWalletConnectDeeplink: (uri) => {
714
- return `ledgerlive://wc?uri=${encodeURIComponent(uri)}`;
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
- slope: {
733
- name: "Slope",
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
- walletDeepLink: deeplinkUrl,
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
- ExternalPaymentOptions.Coinbase,
890
- ExternalPaymentOptions.Binance,
891
- ExternalPaymentOptions.Daimo,
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
- setOptions(filteredOptions);
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
- }, [address, usdRequired, destChainId, isDepositFlow]);
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
- // Current pay params to do processing off of
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
- filterIds: daimoPayOrder?.metadata.payer?.paymentOptions,
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
- setDaimoPayOrder({
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
- var WalletIcon$1 = ({ ...props }) => {
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
- let deeplink = (!wallet.isInstalled && isMobile) ||
7299
- (wallet.shouldDeeplinkDesktop && !isMobile)
7300
- ? wallet.getWalletConnectDeeplink?.(uri ?? "")
7301
- : undefined;
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
- ? undefined
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();
@@ -7497,7 +7546,7 @@ const OrderHeader = ({ minified = false, showEth = false, showSolana = false, })
7497
7546
  let solanaIcon = renderIcon(solanaWallet?.adapter.icon || jsx(Solana, {}), solanaWallet?.adapter.name);
7498
7547
  if (minified) {
7499
7548
  if (titleAmountContent != null) {
7500
- 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 }) }))] }));
7501
7550
  }
7502
7551
  else {
7503
7552
  return (jsxs(MinifiedContainer, { children: [jsx(CoinLogos, {}), jsx(Subtitle, { children: "1000+ tokens accepted" })] }));
@@ -7509,13 +7558,13 @@ const OrderHeader = ({ minified = false, showEth = false, showSolana = false, })
7509
7558
  };
7510
7559
  function CoinLogos({ $size = 24 }) {
7511
7560
  const logos = [
7512
- jsx(Ethereum, {}),
7513
- jsx(USDC, {}),
7514
- jsx(Optimism, {}),
7515
- jsx(Arbitrum, {}),
7516
- jsx(Base, {}),
7517
- jsx(Polygon, {}),
7518
- 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"),
7519
7568
  ];
7520
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));
7521
7570
  return (jsx(Logos, { children: logos.map((element, index) => logoBlock(element, index)) }));
@@ -7607,6 +7656,12 @@ const Wallets = () => {
7607
7656
  const context = usePayContext();
7608
7657
  const locales = useLocales({});
7609
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]);
7610
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 }) }))] }));
7611
7666
  };
7612
7667
 
@@ -7838,8 +7893,6 @@ const TooltipTail = styled(motion.div) `
7838
7893
  const Tooltip = ({ children, message, open, xOffset = 0, yOffset = 0, delay, }) => {
7839
7894
  const context = usePayContext();
7840
7895
  const themeContext = useThemeContext();
7841
- if (context.options?.hideTooltips)
7842
- return jsx(Fragment, { children: children });
7843
7896
  const [isOpen, setIsOpen] = useState(false);
7844
7897
  const [outOfBounds, setOutOfBounds] = useState(false);
7845
7898
  const [size, setSize] = useState("small");
@@ -7888,6 +7941,8 @@ const Tooltip = ({ children, message, open, xOffset = 0, yOffset = 0, delay, })
7888
7941
  useEffect(() => {
7889
7942
  setIsOpen(!!open);
7890
7943
  }, [open]);
7944
+ if (context.options?.hideTooltips)
7945
+ return jsx(Fragment, { children: children });
7891
7946
  return (jsxs(Fragment, { children: [jsx(motion.div, { ref: ref, style: open === undefined
7892
7947
  ? {
7893
7948
  cursor: "help",
@@ -8245,11 +8300,141 @@ const CopyToClipboard = ({ string, children, variant }) => {
8245
8300
  return (jsxs(Container$5, { onClick: onCopy, "$disabled": !string, children: [jsx(CopyToClipboardIcon, { copied: clipboard, dark: true }), children] }));
8246
8301
  };
8247
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
+
8248
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" }) }));
8249
8434
  const MobileConnectors = () => {
8250
- const context = usePayContext();
8251
- const { log } = context;
8252
8435
  const locales = useLocales();
8436
+ const context = usePayContext();
8437
+ const { paymentState, setRoute } = context;
8253
8438
  const { connect: { getUri }, } = useWeb3();
8254
8439
  const wcUri = getUri();
8255
8440
  const { open: openW3M, isOpen: isOpenW3M } = useWalletConnectModal();
@@ -8259,22 +8444,24 @@ const MobileConnectors = () => {
8259
8444
  const wallet = walletConfigs[walletId];
8260
8445
  if (wallets.find((w) => w.connector?.id === walletId))
8261
8446
  return false;
8262
- if (!wallet.getWalletConnectDeeplink)
8263
- return false;
8264
8447
  if (!wallet.showInMobileConnectors)
8265
8448
  return false;
8266
8449
  return true;
8267
8450
  }) ?? [];
8268
- const connectWallet = (wallet) => {
8269
- const uri = wallet.getWalletConnectDeeplink?.(wcUri);
8270
- log(`[MobileConnectors] clicked ${wallet.name}: ${uri}`);
8271
- // Using open(.., '_blank') to open the wallet connect modal.
8272
- // Previously, we used window.location.href = uri, but this closes the dapp
8273
- // (losing state) if there's no deeplink handler for the URI.
8274
- if (uri)
8275
- window.open(uri, "_blank");
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
+ }
8276
8463
  };
8277
- return (jsx(PageContent, { style: { width: 312 }, children: jsxs(Container$6, { children: [jsx(ModalContent, { style: { paddingBottom: 0 }, children: jsx(ScrollArea, { height: 340, children: jsxs(WalletList, { "$disabled": !wcUri, children: [walletsIdsToDisplay
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
8278
8465
  .sort(
8279
8466
  // sort by name
8280
8467
  (a, b) => {
@@ -8289,9 +8476,9 @@ const MobileConnectors = () => {
8289
8476
  .map((walletId, i) => {
8290
8477
  const wallet = walletConfigs[walletId];
8291
8478
  const { name, shortName, iconConnector, icon } = wallet;
8292
- return (jsxs(WalletItem, { onClick: () => connectWallet(wallet), style: {
8479
+ return (jsxs(WalletItem, { onClick: () => goToWallet(wallet), style: {
8293
8480
  animationDelay: `${i * 50}ms`,
8294
- }, children: [jsx(WalletIcon, { "$outline": true, children: iconConnector ?? icon }), jsx(WalletLabel, { children: shortName ?? name })] }, i));
8481
+ }, children: [jsx(WalletIcon, { children: iconConnector ?? icon }), jsx(WalletLabel, { children: shortName ?? name })] }, i));
8295
8482
  }), jsxs(WalletItem, { onClick: openW3M, "$waiting": isOpenW3M, children: [jsx(WalletIcon, { style: { background: "var(--ck-body-background-secondary)" }, children: isOpenW3M ? (jsx("div", { style: {
8296
8483
  position: "absolute",
8297
8484
  inset: 0,
@@ -8306,7 +8493,7 @@ const MobileConnectors = () => {
8306
8493
  justifyContent: "center",
8307
8494
  gap: 14,
8308
8495
  paddingTop: 8,
8309
- }, children: jsx(CopyToClipboard, { variant: "button", string: wcUri, children: locales.copyToClipboard }) }))] }) }));
8496
+ }, children: jsx(CopyToClipboard, { variant: "button", string: wcUri, children: "Copy WC link" }) }))] }) }));
8310
8497
  };
8311
8498
 
8312
8499
  const Graphic = styled(motion.div) `
@@ -8537,7 +8724,7 @@ const Introduction = () => {
8537
8724
  const context = usePayContext();
8538
8725
  const locales = useLocales({});
8539
8726
  const ctaUrl = context.options?.walletOnboardingUrl ?? locales.onboardingScreen_ctaUrl;
8540
- 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, { background: true }) }) }) }) }) }) }), jsx(Logo$2, { children: jsx(LogoPosition, { children: jsx(LogoInner, { children: jsx(FloatWrapper, { children: jsx(RotateWrapper, { children: jsx(LogoGraphic, { children: jsx(Logos$1.Trust, {}) }) }) }) }) }) }), jsx(Logo$2, { children: jsx(LogoPosition, { children: jsx(LogoInner, { children: jsx(FloatWrapper, { children: jsx(RotateWrapper, { children: jsx(LogoGraphic, { children: jsx(Logos$1.Argent, {}) }) }) }) }) }) }), jsx(Logo$2, { children: jsx(LogoPosition, { children: jsx(LogoInner, { children: jsx(FloatWrapper, { children: jsx(RotateWrapper, { children: jsx(LogoGraphic, { children: jsx(Logos$1.ImToken, {}) }) }) }) }) }) })] }), 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 })] }));
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 })] }));
8541
8728
  };
8542
8729
 
8543
8730
  const SwitchNetworksContainer = styled.div `
@@ -9354,12 +9541,11 @@ const ConnectWithInjector = ({ switchConnectMethod, forceState }) => {
9354
9541
  setStatus(states$1.UNAVAILABLE);
9355
9542
  }
9356
9543
  };
9357
- let connectTimeout;
9358
9544
  useEffect(() => {
9359
9545
  if (status === states$1.UNAVAILABLE)
9360
9546
  return;
9361
9547
  // UX: Give user time to see the UI before opening the extension
9362
- connectTimeout = setTimeout(runConnect, 600);
9548
+ const connectTimeout = setTimeout(runConnect, 600);
9363
9549
  return () => {
9364
9550
  clearTimeout(connectTimeout);
9365
9551
  };
@@ -9421,18 +9607,18 @@ const IconContainer = styled(motion.div) `
9421
9607
  display: block;
9422
9608
  max-width: 100%;
9423
9609
  height: auto;
9424
- }
9610
+ }
9425
9611
  `;
9426
9612
  const ScanIconWithLogos = ({ logo }) => {
9427
9613
  const logoList = [
9428
- jsx(Logos$1.MetaMask, { background: true }),
9429
- jsx(Logos$1.Coinbase, { background: true }),
9430
- jsx(Logos$1.Crypto, {}),
9431
- jsx(Logos$1.ImToken, {}),
9432
- jsx(Logos$1.Argent, {}),
9433
- 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"),
9434
9620
  ];
9435
- 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)" }) })] })] }) }));
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)" }) })] })] }) }));
9436
9622
  };
9437
9623
 
9438
9624
  const ConnectWithQRCode = () => {
@@ -9524,9 +9710,9 @@ function getSupportUrl(daimoPayOrder, screen) {
9524
9710
  return `mailto:${email}?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;
9525
9711
  }
9526
9712
 
9527
- var CrepeIcon = ({ ...props }) => {
9713
+ function CrepeIcon({ ...props }) {
9528
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" })] }));
9529
- };
9715
+ }
9530
9716
 
9531
9717
  const PoweredByFooter = ({ supportUrl } = {}) => {
9532
9718
  const [supportVisible, setSupportVisible] = useState(false);
@@ -9538,7 +9724,7 @@ const PoweredByFooter = ({ supportUrl } = {}) => {
9538
9724
  setSupportVisible(true);
9539
9725
  }, 2500);
9540
9726
  return () => clearTimeout(timer);
9541
- }, []);
9727
+ }, [supportUrl]);
9542
9728
  return (jsx(Container$3, { children: jsxs(TextButton, { onClick: () => {
9543
9729
  window.open(supportVisible
9544
9730
  ? supportUrl
@@ -9805,6 +9991,7 @@ var PayState$1;
9805
9991
  })(PayState$1 || (PayState$1 = {}));
9806
9992
  const PayWithToken = () => {
9807
9993
  const { isMobile, isIOS } = useIsMobile();
9994
+ const { connector } = useAccount();
9808
9995
  const { triggerResize, paymentState, setRoute, log, wcWallet } = usePayContext();
9809
9996
  const { payWithToken, selectedTokenOption } = paymentState;
9810
9997
  const [payState, setPayState] = useState(PayState$1.RequestingPayment);
@@ -9867,10 +10054,10 @@ const PayWithToken = () => {
9867
10054
  console.error("Failed to pay with token", e);
9868
10055
  }
9869
10056
  };
9870
- let transferTimeout; // Prevent double-triggering in React dev strict mode.
9871
10057
  useEffect(() => {
9872
10058
  if (!selectedTokenOption)
9873
10059
  return;
10060
+ let transferTimeout;
9874
10061
  // Give user time to see the UI before opening on mobile
9875
10062
  if (wcWallet && isMobile) {
9876
10063
  if (!isIOS) {
@@ -9900,11 +10087,14 @@ const PayWithToken = () => {
9900
10087
  if (selectedTokenOption == null) {
9901
10088
  return jsx(PageContent, {});
9902
10089
  }
9903
- 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 && wcWallet && isMobile && (jsx(Button, { icon: jsx(ExternalLinkIcon, {}), onClick: wcWallet.isWcMobileConnector
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
9904
10094
  ? () => handleTransfer(selectedTokenOption)
9905
10095
  : undefined, href: wcWallet.isWcMobileConnector
9906
10096
  ? undefined
9907
- : wcWallet.walletDeepLink ||
10097
+ : wcWallet.deeplinkScheme ||
9908
10098
  wcWallet.getWalletConnectDeeplink?.(""), children: "Tap Here to Pay" })), payState === PayState$1.RequestCancelled && (jsx(Button, { onClick: () => handleTransfer(selectedTokenOption), children: "Retry Payment" }))] })] }));
9909
10099
  };
9910
10100
 
@@ -10118,11 +10308,11 @@ const MultiCurrencySelectAmount = ({ selectedTokenOption, setSelectedTokenOption
10118
10308
  tokenSymbol: balanceToken.symbol,
10119
10309
  });
10120
10310
  };
10121
- return (jsxs(PageContent, { children: [jsx(TokenLogoSpinner, { token: balanceToken }), jsxs(ModalContent, { "$preserveDisplay": true, children: [jsxs(AmountInputContainer$2, { 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
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
10122
10312
  ? `${tokenValue} ${balanceToken.symbol}`
10123
10313
  : `$${usdValue}` }) }) })), message && jsx(ModalBody, { children: message }), jsx(Button, { onClick: handleContinue, disabled: continueDisabled, children: "Continue" })] })] }));
10124
10314
  };
10125
- const AmountInputContainer$2 = styled.div `
10315
+ const AmountInputContainer$3 = styled.div `
10126
10316
  display: flex;
10127
10317
  align-items: center;
10128
10318
  justify-content: center;
@@ -10218,9 +10408,9 @@ const SelectDepositAddressAmount = () => {
10218
10408
  paymentState.setChosenUsd(amountUsd);
10219
10409
  setRoute(ROUTES.WAITING_DEPOSIT_ADDRESS, { amountUsd });
10220
10410
  };
10221
- return (jsxs(PageContent, { children: [jsx(ExternalPaymentSpinner, { logoURI: selectedDepositAddressOption.logoURI, logoShape: "circle" }), 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" })] })] }));
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" })] })] }));
10222
10412
  };
10223
- const AmountInputContainer$1 = styled.div `
10413
+ const AmountInputContainer$2 = styled.div `
10224
10414
  display: flex;
10225
10415
  align-items: center;
10226
10416
  justify-content: center;
@@ -10346,32 +10536,6 @@ const OptionSubtitle = styled(motion.span) `
10346
10536
  overflow: hidden;
10347
10537
  width: 100%;
10348
10538
  `;
10349
- const OptionIcon = styled(motion.div) `
10350
- position: absolute;
10351
- right: 20px;
10352
- width: 32px;
10353
- height: 32px;
10354
- overflow: visible;
10355
- svg,
10356
- img {
10357
- display: block;
10358
- position: relative;
10359
- pointer-events: none;
10360
- overflow: hidden;
10361
- width: 100%;
10362
- height: 100%;
10363
- }
10364
-
10365
- &[data-shape="squircle"] {
10366
- border-radius: 22.5%;
10367
- }
10368
- &[data-shape="circle"] {
10369
- border-radius: 100%;
10370
- }
10371
- &[data-shape="square"] {
10372
- border-radius: 0;
10373
- }
10374
- `;
10375
10539
  const OptionsContainer$1 = styled.div `
10376
10540
  transition: opacity 300ms ease;
10377
10541
  display: flex;
@@ -10385,7 +10549,7 @@ const OptionsContainer$1 = styled.div `
10385
10549
  `}
10386
10550
  `;
10387
10551
 
10388
- const OptionsList = ({ options, isLoading, requiredSkeletons, scrollHeight = 300, orDivider = false, }) => {
10552
+ const OptionsList = ({ options, isLoading, requiredSkeletons, scrollHeight = 300, orDivider = false, hideBottomLine = false, }) => {
10389
10553
  const { triggerResize, log } = usePayContext();
10390
10554
  const optionsLength = options.length;
10391
10555
  useEffect(() => {
@@ -10401,7 +10565,7 @@ const OptionsList = ({ options, isLoading, requiredSkeletons, scrollHeight = 300
10401
10565
  return (jsxs(OptionsContainer$1, { "$totalResults": options.length, children: [options.map((option) => (jsx(OptionItem, { option: option }, option.id))), isLoading &&
10402
10566
  Array.from({ length: skeletonCount }).map((_, index) => (jsx(SkeletonOptionItem, {}, index)))] }));
10403
10567
  }
10404
- 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, {})] }));
10405
10569
  };
10406
10570
  const SkeletonOptionItem = () => {
10407
10571
  return (jsxs(OptionButton, { type: "button", children: [jsx(SkeletonIcon, {}), jsx(SkeletonLabel, {})] }));
@@ -10436,16 +10600,12 @@ const SkeletonLabel = styled.div `
10436
10600
  const OptionItem = ({ option }) => {
10437
10601
  const hydratedIcons = option.icons.map((icon) => {
10438
10602
  if (typeof icon === "string") {
10439
- return jsx("img", { src: icon, alt: "" });
10603
+ return jsx("img", { src: icon, alt: "" }, option.id);
10440
10604
  }
10441
10605
  return icon;
10442
10606
  });
10443
10607
  const iconContent = (() => {
10444
- if (hydratedIcons.length === 1)
10445
- return jsx(OptionIcon, { children: hydratedIcons[0] });
10446
- else {
10447
- 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
- }
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))) }));
10449
10609
  })();
10450
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 })] })] }));
10451
10611
  };
@@ -10488,12 +10648,8 @@ function SelectAnotherMethodButton() {
10488
10648
  const { paymentState, setRoute } = usePayContext();
10489
10649
  const { externalPaymentOptions, daimoPayOrder } = paymentState;
10490
10650
  const { connector } = useAccount();
10491
- const { disconnectAsync } = useDisconnect();
10492
10651
  const paymentOptions = daimoPayOrder?.metadata.payer?.paymentOptions;
10493
- const allPaymentOptions = [
10494
- ...externalPaymentOptions.options.map((option) => option.id),
10495
- ...(paymentOptions ?? []),
10496
- ].flat();
10652
+ const allPaymentOptions = Array.from(externalPaymentOptions.options.values()).flat();
10497
10653
  const includeSolana = paymentOptions == null ||
10498
10654
  paymentOptions.includes(ExternalPaymentOptions.Solana);
10499
10655
  // Deposit address options, e.g. Bitcoin, Tron, Zcash, etc.
@@ -10512,9 +10668,8 @@ function SelectAnotherMethodButton() {
10512
10668
  id: "select-wallet",
10513
10669
  title: "Pay with another wallet",
10514
10670
  icons: getBestUnconnectedWalletIcons(connector),
10515
- onClick: async () => {
10516
- await disconnectAsync();
10517
- setRoute(ROUTES.CONNECTORS);
10671
+ onClick: () => {
10672
+ setRoute(ROUTES.SELECT_METHOD);
10518
10673
  },
10519
10674
  };
10520
10675
  function getBestUnconnectedWalletIcons(connector) {
@@ -10536,9 +10691,9 @@ function SelectAnotherMethodButton() {
10536
10691
  return icons;
10537
10692
  }
10538
10693
  function getBestPaymentMethodIcons() {
10539
- let icons = externalPaymentOptions.options
10694
+ let icons = (externalPaymentOptions.options.get("external") ?? [])
10540
10695
  .filter((option) => option.id !== ExternalPaymentOptions.Daimo)
10541
- .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)));
10542
10697
  if (icons.length < 3) {
10543
10698
  const additionalIcons = [];
10544
10699
  if (includeSolana)
@@ -10629,9 +10784,9 @@ const SelectExternalAmount = () => {
10629
10784
  paymentState.setChosenUsd(amountUsd);
10630
10785
  setRoute(ROUTES.WAITING_EXTERNAL, { amountUsd });
10631
10786
  };
10632
- 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" })] })] }));
10633
10788
  };
10634
- const AmountInputContainer = styled.div `
10789
+ const AmountInputContainer$1 = styled.div `
10635
10790
  display: flex;
10636
10791
  align-items: center;
10637
10792
  justify-content: center;
@@ -10656,17 +10811,19 @@ const ChainContainer$2 = styled(motion.div) `
10656
10811
  `;
10657
10812
 
10658
10813
  function SelectMethod() {
10659
- const { isMobile, isIOS } = useIsMobile();
10814
+ const { isMobile, isIOS, isAndroid } = useIsMobile();
10660
10815
  const { address, chain, isConnected: isEthConnected, connector, } = useAccount();
10661
- const { connected: isSolanaConnected, wallet: solanaWallet, publicKey, } = useWallet$1();
10816
+ const { connected: isSolanaConnected, wallet: solanaWallet, wallets: solanaWallets, disconnect: disconnectSolana, publicKey, } = useWallet$1();
10662
10817
  const { setRoute, paymentState, wcWallet, log } = usePayContext();
10663
10818
  const { disconnectAsync } = useDisconnect();
10664
10819
  const { daimoPayOrder, setSelectedExternalOption, externalPaymentOptions, showSolanaPaymentMethod, depositAddressOptions, senderEnsName, } = paymentState;
10665
- const paymentOptions = daimoPayOrder?.metadata.payer?.paymentOptions;
10820
+ // Decide whether to show the connected eth account, solana account, or both.
10821
+ const showConnectedEth = isEthConnected;
10822
+ const showConnectedSolana = isSolanaConnected && showSolanaPaymentMethod;
10666
10823
  const getConnectedWalletOptions = () => {
10667
10824
  const showChainLogo = isEthConnected && isSolanaConnected;
10668
10825
  const connectedOptions = [];
10669
- if (isEthConnected) {
10826
+ if (showConnectedEth) {
10670
10827
  const ethWalletDisplayName = senderEnsName ?? (address ? getAddressContraction(address) : "wallet");
10671
10828
  let walletIcon;
10672
10829
  if (connector?.icon) {
@@ -10676,8 +10833,7 @@ function SelectMethod() {
10676
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) }));
10677
10834
  }
10678
10835
  else {
10679
- // TODO: remove this once we have a default icon for wagmi wallets
10680
- walletIcon = jsx(MetaMask, {});
10836
+ walletIcon = jsx(WalletIcon$2, {});
10681
10837
  }
10682
10838
  const connectedEthWalletOption = {
10683
10839
  id: "connectedWallet",
@@ -10696,17 +10852,17 @@ function SelectMethod() {
10696
10852
  };
10697
10853
  connectedOptions.push(connectedEthWalletOption);
10698
10854
  }
10699
- if (isSolanaConnected && showSolanaPaymentMethod) {
10855
+ if (showConnectedSolana) {
10700
10856
  const solWalletDisplayName = getAddressContraction(publicKey?.toBase58() ?? "");
10701
10857
  const connectedSolWalletOption = {
10702
10858
  id: "connectedSolanaWallet",
10703
10859
  title: `Pay with ${solWalletDisplayName}`,
10704
10860
  icons: solanaWallet?.adapter.icon
10705
10861
  ? [
10706
- 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"),
10707
10863
  ]
10708
10864
  : [
10709
- 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"),
10710
10866
  ],
10711
10867
  onClick: () => {
10712
10868
  setRoute(ROUTES.SOLANA_SELECT_TOKEN, {
@@ -10723,15 +10879,16 @@ function SelectMethod() {
10723
10879
  };
10724
10880
  // Deposit address options, e.g. Bitcoin, Tron, Zcash, etc.
10725
10881
  // Include by default if paymentOptions not provided
10726
- const showDepositAddressMethod = paymentOptions == null ||
10727
- paymentOptions.includes(ExternalPaymentOptions.ExternalChains);
10882
+ const showDepositAddressMethod = externalPaymentOptions.options
10883
+ .get("external")
10884
+ ?.some((o) => o.id == ExternalPaymentOptions.ExternalChains);
10728
10885
  const connectedWalletOptions = getConnectedWalletOptions();
10729
10886
  const unconnectedWalletOption = {
10730
10887
  id: "unconnectedWallet",
10731
10888
  title: isEthConnected || isSolanaConnected
10732
10889
  ? `Pay with another wallet`
10733
10890
  : `Pay with wallet`,
10734
- icons: getBestUnconnectedWalletIcons(connector),
10891
+ icons: getBestUnconnectedWalletIcons(connector, isMobile),
10735
10892
  onClick: async () => {
10736
10893
  await disconnectAsync();
10737
10894
  setRoute(ROUTES.CONNECTORS);
@@ -10742,13 +10899,27 @@ function SelectMethod() {
10742
10899
  options.push(unconnectedWalletOption);
10743
10900
  log(`[SELECT_METHOD] loading: ${externalPaymentOptions.loading}, options: ${JSON.stringify(externalPaymentOptions.options)}`);
10744
10901
  if (showSolanaPaymentMethod) {
10745
- const solanaOption = getSolanaOption(isIOS);
10902
+ const solanaOption = getSolanaOption(isIOS, isAndroid, solanaWallets, disconnectSolana, setRoute);
10746
10903
  if (solanaOption) {
10747
10904
  options.push(solanaOption);
10748
10905
  }
10749
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
+ }
10750
10921
  // External payment options, e.g. Binance, Coinbase, etc.
10751
- options.push(...(externalPaymentOptions.options ?? []).map((option) => ({
10922
+ options.push(...(externalPaymentOptions.options.get("external") ?? []).map((option) => ({
10752
10923
  id: option.id,
10753
10924
  title: option.cta,
10754
10925
  icons: [option.logoURI],
@@ -10766,49 +10937,63 @@ function SelectMethod() {
10766
10937
  subtitle: option.message,
10767
10938
  })));
10768
10939
  if (showDepositAddressMethod) {
10769
- const depositAddressOption = getDepositAddressOption(depositAddressOptions);
10940
+ const depositAddressOption = getDepositAddressOption(depositAddressOptions, setRoute, paymentState.isDepositFlow);
10770
10941
  options.push(depositAddressOption);
10771
10942
  }
10772
10943
  return (jsxs(PageContent, { children: [jsx(OrderHeader, {}), jsx(OptionsList, { requiredSkeletons: isMobile ? 4 : 3, isLoading: externalPaymentOptions.loading, options: externalPaymentOptions.loading ? [] : options }), jsx(PoweredByFooter, {})] }));
10773
10944
  }
10774
10945
  // Get 3 icons, skipping the one that is already connected
10775
- function getBestUnconnectedWalletIcons(connector) {
10946
+ function getBestUnconnectedWalletIcons(connector, isMobile) {
10776
10947
  const icons = [];
10777
10948
  const strippedId = connector?.id.toLowerCase(); // some connector ids can have weird casing and or suffixes and prefixes
10778
- const [isMetaMask, isRainbow, isCoinbase] = [
10779
- strippedId?.includes("metamask"),
10780
- strippedId?.includes("rainbow"),
10949
+ const [isRainbow, isTrust, isPhantom, isCoinbase] = [
10950
+ strippedId?.includes("rainbow.me"),
10951
+ strippedId?.includes("trust"),
10952
+ strippedId?.includes("phantom"),
10781
10953
  strippedId?.includes("coinbase"),
10954
+ strippedId?.includes("rainbow"),
10782
10955
  ];
10783
- if (!isRainbow)
10784
- icons.push(jsx(Rainbow, {}));
10785
- if (!isMetaMask)
10786
- icons.push(jsx(MetaMask, {}));
10787
- if (!isCoinbase)
10788
- icons.push(jsx(Coinbase, {}));
10789
- if (icons.length < 3)
10790
- icons.push(jsx(Rabby, {}));
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
+ }
10791
10976
  return icons;
10792
10977
  }
10793
- function getSolanaOption(isOnIOS) {
10794
- const { wallets, disconnect: disconnectSolana } = useWallet$1();
10795
- const { setRoute } = usePayContext();
10796
- if (wallets.length === 0 && !isOnIOS)
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))
10797
10983
  return null;
10798
10984
  return {
10799
10985
  id: "solana",
10800
10986
  title: "Pay on Solana",
10801
- icons: [jsx(Solana, {})],
10987
+ icons: [jsx(Solana, {}, "solana")],
10802
10988
  onClick: async () => {
10803
10989
  await disconnectSolana();
10804
10990
  setRoute(ROUTES.SOLANA_CONNECT);
10805
10991
  },
10806
10992
  };
10807
10993
  }
10808
- function getDepositAddressOption(depositAddressOptions) {
10809
- const { setRoute, paymentState } = usePayContext();
10994
+ function getDepositAddressOption(depositAddressOptions, setRoute, isDepositFlow) {
10810
10995
  // TODO: API should serve the subtitle and disabled
10811
- const disabled = !paymentState.isDepositFlow &&
10996
+ const disabled = !isDepositFlow &&
10812
10997
  !depositAddressOptions.loading &&
10813
10998
  depositAddressOptions.options.length === 0;
10814
10999
  const subtitle = disabled ? "Minimum $20.00" : "Bitcoin, Tron, Zcash...";
@@ -10816,7 +11001,11 @@ function getDepositAddressOption(depositAddressOptions) {
10816
11001
  id: "depositAddress",
10817
11002
  title: "Pay on another chain",
10818
11003
  subtitle,
10819
- icons: [jsx(Bitcoin, {}), jsx(Tron, {}), jsx(Zcash, {})],
11004
+ icons: [
11005
+ jsx(Bitcoin, {}, "bitcoin"),
11006
+ jsx(Tron, {}, "tron"),
11007
+ jsx(Zcash, {}, "zcash"),
11008
+ ],
10820
11009
  onClick: () => {
10821
11010
  setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN);
10822
11011
  },
@@ -10843,9 +11032,12 @@ const ChainContainer$1 = styled(motion.div) `
10843
11032
 
10844
11033
  function SelectToken() {
10845
11034
  const { isMobile, isIOS } = useIsMobile();
10846
- const isMobileFormat = useIsMobile() || window?.innerWidth < defaultTheme.mobileWidth;
11035
+ const isMobileFormat = isMobile || window?.innerWidth < defaultTheme.mobileWidth;
10847
11036
  const { setRoute, paymentState, wcWallet } = usePayContext();
10848
11037
  const { isDepositFlow, walletPaymentOptions, setSelectedTokenOption } = paymentState;
11038
+ const { connector } = useAccount();
11039
+ const { connected: isSolanaConnected } = useWallet$1();
11040
+ console.log("connector", connector);
10849
11041
  const optionsList = walletPaymentOptions.options?.map((option) => {
10850
11042
  const chainName = getChainName(option.balance.token.chainId);
10851
11043
  const titlePrice = isDepositFlow
@@ -10876,8 +11068,8 @@ function SelectToken() {
10876
11068
  else {
10877
11069
  setRoute(ROUTES.PAY_WITH_TOKEN, meta);
10878
11070
  if (isMobile && isIOS) {
10879
- if (wcWallet?.walletDeepLink) {
10880
- window.open(wcWallet?.walletDeepLink, "_blank");
11071
+ if (wcWallet?.deeplinkScheme) {
11072
+ window.open(wcWallet?.deeplinkScheme, "_blank");
10881
11073
  }
10882
11074
  else {
10883
11075
  //If the wallet is a wc mobile connector we don't have the deep link
@@ -10891,18 +11083,102 @@ function SelectToken() {
10891
11083
  disabled,
10892
11084
  };
10893
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);
10894
11090
  return (jsxs(PageContent, { children: [jsx(OrderHeader, { minified: true, showEth: true }), !walletPaymentOptions.isLoading && optionsList.length === 0 && (jsxs(ModalContent, { style: {
10895
11091
  display: "flex",
10896
11092
  alignItems: "center",
10897
11093
  justifyContent: "center",
10898
11094
  paddingTop: 16,
10899
11095
  paddingBottom: 16,
10900
- }, children: [jsx(ModalH1, { children: "Insufficient balance." }), jsx(SelectAnotherMethodButton, {})] })), jsx(OptionsList, { requiredSkeletons: 4, isLoading: walletPaymentOptions.isLoading, options: optionsList, scrollHeight: isMobileFormat ? 225 : 300, orDivider: optionsList.length != 0 }), optionsList.length != 0 && jsx(SelectAnotherMethodButton, {})] }));
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, {})] }));
10901
11097
  }
10902
11098
  function getDaimoTokenKey(token) {
10903
11099
  return `${token.chainId}-${token.token}`;
10904
11100
  }
10905
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
+
10906
11182
  const ConnectSolana$1 = () => {
10907
11183
  const solanaWallets = useWallet$1();
10908
11184
  const isConnected = solanaWallets.connected;
@@ -10954,7 +11230,7 @@ const ConnectSolana = () => {
10954
11230
  id: wallet.adapter.name,
10955
11231
  title: `${wallet.adapter.name}`,
10956
11232
  icons: [
10957
- jsx(SquircleIcon, { icon: wallet.adapter.icon, alt: wallet.adapter.name }),
11233
+ jsx(SquircleIcon, { icon: wallet.adapter.icon, alt: wallet.adapter.name }, wallet.adapter.name),
10958
11234
  ],
10959
11235
  onClick: async () => {
10960
11236
  log("wallet.adapter.name ", wallet.adapter.name);
@@ -10973,7 +11249,7 @@ const ConnectSolana = () => {
10973
11249
  id: "phantom",
10974
11250
  title: "Open in Phantom",
10975
11251
  icons: [
10976
- jsx(SquircleIcon, { icon: (props) => jsx(Phantom, { ...props, background: true }), alt: "Phantom" }),
11252
+ jsx(SquircleIcon, { icon: (props) => jsx(Phantom, { ...props, background: true }), alt: "Phantom" }, "phantom"),
10977
11253
  ],
10978
11254
  onClick: () => window.open(`https://phantom.app/ul/browse/${encodeURIComponent(window.location.href)}?ref=${encodeURIComponent(window.location.origin)}`),
10979
11255
  },
@@ -10981,7 +11257,7 @@ const ConnectSolana = () => {
10981
11257
  id: "solflare",
10982
11258
  title: "Open in Solflare",
10983
11259
  icons: [
10984
- jsx(SquircleIcon, { icon: (props) => jsx(Solflare, { ...props, background: true }), alt: "Solflare" }),
11260
+ jsx(SquircleIcon, { icon: (props) => jsx(Solflare, { ...props, background: true }), alt: "Solflare" }, "solflare"),
10985
11261
  ],
10986
11262
  onClick: () => window.open(`https://solflare.com/ul/v1/browse/${encodeURIComponent(window.location.href)}?ref=${encodeURIComponent(window.location.origin)}`, "_blank"),
10987
11263
  },
@@ -10989,7 +11265,7 @@ const ConnectSolana = () => {
10989
11265
  id: "backpack",
10990
11266
  title: "Open in Backpack",
10991
11267
  icons: [
10992
- jsx(SquircleIcon, { icon: (props) => jsx(Backpack, { ...props, background: true }), alt: "Backpack" }),
11268
+ jsx(SquircleIcon, { icon: (props) => jsx(Backpack, { ...props, background: true }), alt: "Backpack" }, "backpack"),
10993
11269
  ],
10994
11270
  onClick: () => window.open(`https://backpack.app/ul/v1/browse/${encodeURIComponent(window.location.href)}?ref=${encodeURIComponent(window.location.origin)}`, "_blank"),
10995
11271
  },
@@ -11048,14 +11324,13 @@ const PayWithSolanaToken = () => {
11048
11324
  }
11049
11325
  }
11050
11326
  };
11051
- let transferTimeout; // Prevent double-triggering in React dev strict mode.
11052
11327
  useEffect(() => {
11053
11328
  if (!selectedSolanaTokenOption)
11054
11329
  return;
11055
11330
  // Give user time to see the UI before opening
11056
- transferTimeout = setTimeout(handleTransfer, 100);
11331
+ const transferTimeout = setTimeout(handleTransfer, 100);
11057
11332
  return () => clearTimeout(transferTimeout);
11058
- }, []);
11333
+ }, [selectedSolanaTokenOption]);
11059
11334
  useEffect(() => {
11060
11335
  triggerResize();
11061
11336
  }, [payState]);
@@ -11155,7 +11430,7 @@ const WaitingDepositAddress = () => {
11155
11430
  useEffect(() => {
11156
11431
  triggerResize();
11157
11432
  }, [details]);
11158
- 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" })] }))] })) }));
11159
11434
  };
11160
11435
 
11161
11436
  const WaitingExternal = () => {
@@ -11164,6 +11439,15 @@ const WaitingExternal = () => {
11164
11439
  const trpc = context.trpc;
11165
11440
  const { isMobile } = useIsMobile();
11166
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
+ }
11167
11451
  const [externalURL, setExternalURL] = useState(null);
11168
11452
  useEffect(() => {
11169
11453
  const checkForSourcePayment = async () => {
@@ -11188,15 +11472,19 @@ const WaitingExternal = () => {
11188
11472
  });
11189
11473
  }, [selectedExternalOption]);
11190
11474
  const openExternalWindow = (url) => {
11191
- if (isMobile) {
11475
+ if (isMobile || isPaymentApp) {
11192
11476
  // on mobile: open in a new tab
11193
11477
  window.open(url, "_blank");
11194
11478
  }
11195
11479
  else {
11196
11480
  // on desktop: open in a popup window in
11197
11481
  // portrait mode in the center of the screen
11198
- const width = 500;
11199
- const height = 700;
11482
+ let width = 500;
11483
+ let height = 700;
11484
+ // if (isPaymentApp) {
11485
+ // height = 800;
11486
+ // width = 800;
11487
+ // }
11200
11488
  const left = Math.max(0, Math.floor((window.innerWidth - width) / 2) + window.screenX);
11201
11489
  const top = Math.max(0, Math.floor((window.innerHeight - height) / 2) + window.screenY);
11202
11490
  window.open(url, "popupWindow", `width=${width},height=${height},left=${left},top=${top},scrollbars=yes`);
@@ -11216,19 +11504,51 @@ const WaitingExternal = () => {
11216
11504
  }, children: selectedExternalOption.cta })] }));
11217
11505
  };
11218
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
+
11219
11545
  const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
11220
11546
  const context = usePayContext();
11221
11547
  const { setMode, setTheme, setCustomTheme, setLang } = context;
11222
11548
  const paymentState = context.paymentState;
11223
- const { payParams, generatePreviewOrder, isDepositFlow, showSolanaPaymentMethod, setPaymentWaitingMessage, setSelectedExternalOption, setSelectedTokenOption, setSelectedSolanaTokenOption, setSelectedDepositAddressOption, } = paymentState;
11549
+ const { payParams, generatePreviewOrder, isDepositFlow, showSolanaPaymentMethod, setPaymentWaitingMessage, setSelectedExternalOption, setSelectedTokenOption, setSelectedSolanaTokenOption, setSelectedDepositAddressOption, setSelectedWallet, } = paymentState;
11224
11550
  const { isConnected: isEthConnected, connector, chain, address, } = useAccount();
11225
- const { connected: isSolanaConnected } = useWallet$1();
11226
- const { daimoPayOrder } = paymentState;
11227
- const paymentOptions = daimoPayOrder?.metadata.payer?.paymentOptions;
11228
- // Solana payment option
11229
- // Include by default if paymentOptions not provided
11230
- paymentOptions == null ||
11231
- paymentOptions.includes(ExternalPaymentOptions.Solana);
11551
+ useWallet$1();
11232
11552
  const chainIsSupported = useChainIsSupported(chain?.id);
11233
11553
  //if chain is unsupported we enforce a "switch chain" prompt
11234
11554
  const closeable = !(context.options?.enforceSupportedChains &&
@@ -11259,6 +11579,9 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
11259
11579
  setSelectedDepositAddressOption(undefined);
11260
11580
  context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);
11261
11581
  }
11582
+ else if (context.route === ROUTES.SELECT_ZKP2P) {
11583
+ context.setRoute(ROUTES.SELECT_METHOD, meta);
11584
+ }
11262
11585
  else if (context.route === ROUTES.WAITING_EXTERNAL) {
11263
11586
  setPaymentWaitingMessage(undefined);
11264
11587
  if (isDepositFlow) {
@@ -11296,6 +11619,17 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
11296
11619
  context.setRoute(ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN, meta);
11297
11620
  }
11298
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
+ }
11299
11633
  else if (context.route === ROUTES.SOLANA_SELECT_AMOUNT) {
11300
11634
  setSelectedSolanaTokenOption(undefined);
11301
11635
  context.setRoute(ROUTES.SOLANA_SELECT_TOKEN, meta);
@@ -11321,9 +11655,12 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
11321
11655
  [ROUTES.SELECT_AMOUNT]: jsx(SelectAmount, {}),
11322
11656
  [ROUTES.SELECT_EXTERNAL_AMOUNT]: jsx(SelectExternalAmount, {}),
11323
11657
  [ROUTES.SELECT_DEPOSIT_ADDRESS_AMOUNT]: jsx(SelectDepositAddressAmount, {}),
11658
+ [ROUTES.SELECT_WALLET_AMOUNT]: jsx(SelectWalletAmount, {}),
11324
11659
  [ROUTES.WAITING_EXTERNAL]: jsx(WaitingExternal, {}),
11325
11660
  [ROUTES.SELECT_DEPOSIT_ADDRESS_CHAIN]: jsx(SelectDepositAddressChain, {}),
11326
11661
  [ROUTES.WAITING_DEPOSIT_ADDRESS]: jsx(WaitingDepositAddress, {}),
11662
+ [ROUTES.SELECT_ZKP2P]: jsx(SelectZKP, {}),
11663
+ [ROUTES.WAITING_WALLET]: jsx(WaitingWallet, {}),
11327
11664
  [ROUTES.CONFIRMATION]: jsx(Confirmation, {}),
11328
11665
  [ROUTES.PAY_WITH_TOKEN]: jsx(PayWithToken, {}),
11329
11666
  [ROUTES.SOLANA_CONNECT]: jsx(ConnectSolana, {}),
@@ -11354,12 +11691,12 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
11354
11691
  return;
11355
11692
  if (context.route !== ROUTES.SELECT_METHOD)
11356
11693
  return;
11357
- const ethMethodAvailable = context.wcWallet != null || isEthConnected;
11358
- const solanaMethodAvailable = isSolanaConnected && showSolanaPaymentMethod;
11694
+ const canPayEth = paymentState.walletPaymentOptions.options?.some((o) => o.disabledReason == null);
11695
+ const canPaySolana = paymentState.solanaPaymentOptions.options?.some((o) => o.disabledReason == null);
11359
11696
  // Skip to token selection if exactly one wallet is connected. If both
11360
11697
  // wallets are connected, stay on the SELECT_METHOD screen to allow the
11361
11698
  // user to select which wallet to use
11362
- if (ethMethodAvailable && !solanaMethodAvailable) {
11699
+ if (canPayEth && !canPaySolana) {
11363
11700
  context.setRoute(ROUTES.SELECT_TOKEN, {
11364
11701
  event: "eth_connected_on_open",
11365
11702
  walletId: connector?.id,
@@ -11367,7 +11704,7 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
11367
11704
  address,
11368
11705
  });
11369
11706
  }
11370
- else if (solanaMethodAvailable && !ethMethodAvailable) {
11707
+ else if (canPaySolana && !canPayEth) {
11371
11708
  context.setRoute(ROUTES.SOLANA_SELECT_TOKEN, {
11372
11709
  event: "solana_connected_on_open",
11373
11710
  });
@@ -11378,8 +11715,8 @@ const DaimoPayModal = ({ mode, theme, customTheme, lang, }) => {
11378
11715
  }, [
11379
11716
  context.open,
11380
11717
  context.wcWallet,
11381
- isEthConnected,
11382
- isSolanaConnected,
11718
+ paymentState.walletPaymentOptions.options,
11719
+ paymentState.solanaPaymentOptions.options,
11383
11720
  showSolanaPaymentMethod,
11384
11721
  address,
11385
11722
  chain?.id,
@@ -11525,7 +11862,10 @@ const DaimoPayProviderWithoutSolana = ({ children, theme = "auto", mode = "auto"
11525
11862
  const [redirectReturnUrl, setRedirectReturnUrl] = useState(undefined);
11526
11863
  const log = useMemo(() => (debugMode ? console.log : () => { }), [debugMode]);
11527
11864
  // Connect to the Daimo Pay TRPC API
11528
- const trpc = useMemo(() => createTrpcClient(payApiUrl, sessionId), [payApiUrl, sessionId]);
11865
+ const trpc = useMemo(() => {
11866
+ setInWalletPaymentUrlFromApiUrl(payApiUrl);
11867
+ return createTrpcClient(payApiUrl, sessionId);
11868
+ }, [payApiUrl, sessionId]);
11529
11869
  const [resize, onResize] = useState(0);
11530
11870
  const setOpen = useCallback((open, meta) => {
11531
11871
  setOpenState(open);
@@ -11957,6 +12297,7 @@ function DaimoPayButtonCustom(props) {
11957
12297
  else if (payParams != null) {
11958
12298
  paymentState.setPayParams(payParams);
11959
12299
  }
12300
+ paymentState.setButtonProps(props);
11960
12301
  // eslint-disable-next-line react-hooks/exhaustive-deps
11961
12302
  }, [payId, JSON.stringify(payParams || {})]);
11962
12303
  // Set the confirmation message
@@ -11986,7 +12327,6 @@ function DaimoPayButtonCustom(props) {
11986
12327
  // Payment events: call these three event handlers.
11987
12328
  const { onPaymentStarted, onPaymentCompleted, onPaymentBounced } = props;
11988
12329
  const order = paymentState.daimoPayOrder;
11989
- const intentStatus = order?.intentStatus;
11990
12330
  const hydOrder = order?.mode === DaimoPayOrderMode.HYDRATED ? order : null;
11991
12331
  // Functions to show and hide the modal
11992
12332
  const { children, closeOnSuccess, resetOnSuccess } = props;
@@ -11999,11 +12339,15 @@ function DaimoPayButtonCustom(props) {
11999
12339
  const hide = useCallback(() => context.setOpen(false), [context]);
12000
12340
  // Emit event handlers when payment status changes
12001
12341
  const sentStart = useRef(false);
12342
+ const sentComplete = useRef(false);
12002
12343
  useEffect(() => {
12003
12344
  if (hydOrder == null)
12004
12345
  return;
12005
- if (intentStatus === DaimoPayIntentStatus.UNPAID)
12346
+ const intentStatus = hydOrder.intentStatus;
12347
+ // Started? Send start.
12348
+ if (intentStatus === DaimoPayIntentStatus.UNPAID) {
12006
12349
  return;
12350
+ }
12007
12351
  if (!sentStart.current && hydOrder.sourceTokenAmount) {
12008
12352
  sentStart.current = true;
12009
12353
  onPaymentStarted?.({
@@ -12014,8 +12358,13 @@ function DaimoPayButtonCustom(props) {
12014
12358
  payment: getDaimoPayOrderView(hydOrder),
12015
12359
  });
12016
12360
  }
12017
- if (intentStatus === DaimoPayIntentStatus.COMPLETED ||
12018
- intentStatus === DaimoPayIntentStatus.BOUNCED) {
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;
12019
12368
  const eventType = intentStatus === DaimoPayIntentStatus.COMPLETED
12020
12369
  ? DaimoPayEventType.PaymentCompleted
12021
12370
  : DaimoPayEventType.PaymentBounced;
@@ -12033,12 +12382,14 @@ function DaimoPayButtonCustom(props) {
12033
12382
  onPaymentBounced?.(event);
12034
12383
  }
12035
12384
  }
12036
- }, [hydOrder?.id, intentStatus, hydOrder?.sourceTokenAmount?.token.chainId]);
12385
+ // eslint-disable-next-line react-hooks/exhaustive-deps
12386
+ }, [hydOrder]);
12037
12387
  // Open the modal by default if the defaultOpen prop is true
12038
12388
  useEffect(() => {
12039
12389
  if (props.defaultOpen && order != null) {
12040
12390
  show();
12041
12391
  }
12392
+ // eslint-disable-next-line react-hooks/exhaustive-deps
12042
12393
  }, [order != null, props.defaultOpen]);
12043
12394
  // Validation
12044
12395
  if ((payId == null) == (payParams == null)) {