@daimo/pay 0.3.16 → 0.3.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/README.md +1 -1
  2. package/build/index.d.ts +419 -0
  3. package/build/index.es.js +126 -93
  4. package/build/index.es.js.map +1 -1
  5. package/package.json +6 -5
  6. package/build/packages/paykit/packages/connectkit/src/assets/ScanIconWithLogos.d.ts +0 -5
  7. package/build/packages/paykit/packages/connectkit/src/assets/browsers.d.ts +0 -10
  8. package/build/packages/paykit/packages/connectkit/src/assets/chains.d.ts +0 -79
  9. package/build/packages/paykit/packages/connectkit/src/assets/coins.d.ts +0 -2
  10. package/build/packages/paykit/packages/connectkit/src/assets/crepe.d.ts +0 -4
  11. package/build/packages/paykit/packages/connectkit/src/assets/icons.d.ts +0 -33
  12. package/build/packages/paykit/packages/connectkit/src/assets/logos.d.ts +0 -182
  13. package/build/packages/paykit/packages/connectkit/src/assets/wallet.d.ts +0 -4
  14. package/build/packages/paykit/packages/connectkit/src/assets/wave.d.ts +0 -2
  15. package/build/packages/paykit/packages/connectkit/src/components/Common/Alert/index.d.ts +0 -6
  16. package/build/packages/paykit/packages/connectkit/src/components/Common/Alert/styles.d.ts +0 -2
  17. package/build/packages/paykit/packages/connectkit/src/components/Common/Alert/types.d.ts +0 -5
  18. package/build/packages/paykit/packages/connectkit/src/components/Common/Avatar/index.d.ts +0 -16
  19. package/build/packages/paykit/packages/connectkit/src/components/Common/Avatar/styles.d.ts +0 -2
  20. package/build/packages/paykit/packages/connectkit/src/components/Common/BrowserIcon/index.d.ts +0 -4
  21. package/build/packages/paykit/packages/connectkit/src/components/Common/BrowserIcon/styles.d.ts +0 -1
  22. package/build/packages/paykit/packages/connectkit/src/components/Common/BrowserIcon/types.d.ts +0 -3
  23. package/build/packages/paykit/packages/connectkit/src/components/Common/Button/index.d.ts +0 -4
  24. package/build/packages/paykit/packages/connectkit/src/components/Common/Button/styles.d.ts +0 -10
  25. package/build/packages/paykit/packages/connectkit/src/components/Common/Button/types.d.ts +0 -15
  26. package/build/packages/paykit/packages/connectkit/src/components/Common/Chain/index.d.ts +0 -8
  27. package/build/packages/paykit/packages/connectkit/src/components/Common/Chain/styles.d.ts +0 -4
  28. package/build/packages/paykit/packages/connectkit/src/components/Common/ChainSelect/index.d.ts +0 -3
  29. package/build/packages/paykit/packages/connectkit/src/components/Common/ChainSelectDropdown/index.d.ts +0 -9
  30. package/build/packages/paykit/packages/connectkit/src/components/Common/ChainSelectDropdown/styles.d.ts +0 -4
  31. package/build/packages/paykit/packages/connectkit/src/components/Common/ChainSelectList/index.d.ts +0 -4
  32. package/build/packages/paykit/packages/connectkit/src/components/Common/ChainSelectList/styles.d.ts +0 -9
  33. package/build/packages/paykit/packages/connectkit/src/components/Common/ConnectorList/index.d.ts +0 -2
  34. package/build/packages/paykit/packages/connectkit/src/components/Common/ConnectorList/styles.d.ts +0 -5
  35. package/build/packages/paykit/packages/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.d.ts +0 -6
  36. package/build/packages/paykit/packages/connectkit/src/components/Common/CopyToClipboard/index.d.ts +0 -7
  37. package/build/packages/paykit/packages/connectkit/src/components/Common/CustomQRCode/QRCode.d.ts +0 -12
  38. package/build/packages/paykit/packages/connectkit/src/components/Common/CustomQRCode/index.d.ts +0 -6
  39. package/build/packages/paykit/packages/connectkit/src/components/Common/CustomQRCode/styles.d.ts +0 -6
  40. package/build/packages/paykit/packages/connectkit/src/components/Common/CustomQRCode/types.d.ts +0 -8
  41. package/build/packages/paykit/packages/connectkit/src/components/Common/DynamicContainer/index.d.ts +0 -7
  42. package/build/packages/paykit/packages/connectkit/src/components/Common/FitText/index.d.ts +0 -8
  43. package/build/packages/paykit/packages/connectkit/src/components/Common/LazyImage/index.d.ts +0 -8
  44. package/build/packages/paykit/packages/connectkit/src/components/Common/Logo/index.d.ts +0 -8
  45. package/build/packages/paykit/packages/connectkit/src/components/Common/Logo/styles.d.ts +0 -3
  46. package/build/packages/paykit/packages/connectkit/src/components/Common/Modal/index.d.ts +0 -25
  47. package/build/packages/paykit/packages/connectkit/src/components/Common/Modal/styles.d.ts +0 -24
  48. package/build/packages/paykit/packages/connectkit/src/components/Common/OptionsList/index.d.ts +0 -13
  49. package/build/packages/paykit/packages/connectkit/src/components/Common/OptionsList/styles.d.ts +0 -6
  50. package/build/packages/paykit/packages/connectkit/src/components/Common/OrderHeader/index.d.ts +0 -3
  51. package/build/packages/paykit/packages/connectkit/src/components/Common/Portal/index.d.ts +0 -2
  52. package/build/packages/paykit/packages/connectkit/src/components/Common/PoweredByFooter/index.d.ts +0 -2
  53. package/build/packages/paykit/packages/connectkit/src/components/Common/ScrollArea/index.d.ts +0 -7
  54. package/build/packages/paykit/packages/connectkit/src/components/Common/ScrollArea/styles.d.ts +0 -3
  55. package/build/packages/paykit/packages/connectkit/src/components/Common/Spinner/index.d.ts +0 -1
  56. package/build/packages/paykit/packages/connectkit/src/components/Common/Spinner/styles.d.ts +0 -1
  57. package/build/packages/paykit/packages/connectkit/src/components/Common/ThemedButton/index.d.ts +0 -15
  58. package/build/packages/paykit/packages/connectkit/src/components/Common/ThemedButton/styles.d.ts +0 -2
  59. package/build/packages/paykit/packages/connectkit/src/components/Common/Tooltip/index.d.ts +0 -4
  60. package/build/packages/paykit/packages/connectkit/src/components/Common/Tooltip/styles.d.ts +0 -3
  61. package/build/packages/paykit/packages/connectkit/src/components/Common/Tooltip/types.d.ts +0 -9
  62. package/build/packages/paykit/packages/connectkit/src/components/DaimoPay.d.ts +0 -77
  63. package/build/packages/paykit/packages/connectkit/src/components/DaimoPayButton/index.d.ts +0 -44
  64. package/build/packages/paykit/packages/connectkit/src/components/DaimoPayButton/styles.d.ts +0 -4
  65. package/build/packages/paykit/packages/connectkit/src/components/DaimoPayModal/ConnectUsing.d.ts +0 -2
  66. package/build/packages/paykit/packages/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.d.ts +0 -15
  67. package/build/packages/paykit/packages/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.d.ts +0 -6
  68. package/build/packages/paykit/packages/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.d.ts +0 -5
  69. package/build/packages/paykit/packages/connectkit/src/components/DaimoPayModal/index.d.ts +0 -7
  70. package/build/packages/paykit/packages/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.d.ts +0 -16
  71. package/build/packages/paykit/packages/connectkit/src/components/NetworkButton/index.d.ts +0 -8
  72. package/build/packages/paykit/packages/connectkit/src/components/Pages/About/graphics.d.ts +0 -11
  73. package/build/packages/paykit/packages/connectkit/src/components/Pages/About/index.d.ts +0 -3
  74. package/build/packages/paykit/packages/connectkit/src/components/Pages/About/styles.d.ts +0 -8
  75. package/build/packages/paykit/packages/connectkit/src/components/Pages/Confirmation/index.d.ts +0 -3
  76. package/build/packages/paykit/packages/connectkit/src/components/Pages/Connectors/index.d.ts +0 -3
  77. package/build/packages/paykit/packages/connectkit/src/components/Pages/Connectors/styles.d.ts +0 -9
  78. package/build/packages/paykit/packages/connectkit/src/components/Pages/DownloadApp/index.d.ts +0 -2
  79. package/build/packages/paykit/packages/connectkit/src/components/Pages/MobileConnectors/index.d.ts +0 -3
  80. package/build/packages/paykit/packages/connectkit/src/components/Pages/MobileConnectors/styles.d.ts +0 -5
  81. package/build/packages/paykit/packages/connectkit/src/components/Pages/Onboarding/index.d.ts +0 -3
  82. package/build/packages/paykit/packages/connectkit/src/components/Pages/Onboarding/styles.d.ts +0 -9
  83. package/build/packages/paykit/packages/connectkit/src/components/Pages/PayWithToken/index.d.ts +0 -3
  84. package/build/packages/paykit/packages/connectkit/src/components/Pages/SelectDepositAddressChain/index.d.ts +0 -3
  85. package/build/packages/paykit/packages/connectkit/src/components/Pages/SelectMethod/index.d.ts +0 -3
  86. package/build/packages/paykit/packages/connectkit/src/components/Pages/SelectMethod/styles.d.ts +0 -9
  87. package/build/packages/paykit/packages/connectkit/src/components/Pages/SelectToken/index.d.ts +0 -3
  88. package/build/packages/paykit/packages/connectkit/src/components/Pages/Solana/ConnectSolana/index.d.ts +0 -3
  89. package/build/packages/paykit/packages/connectkit/src/components/Pages/Solana/ConnectorSolana/index.d.ts +0 -3
  90. package/build/packages/paykit/packages/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.d.ts +0 -3
  91. package/build/packages/paykit/packages/connectkit/src/components/Pages/Solana/SelectSolanaToken/index.d.ts +0 -3
  92. package/build/packages/paykit/packages/connectkit/src/components/Pages/SwitchNetworks/index.d.ts +0 -3
  93. package/build/packages/paykit/packages/connectkit/src/components/Pages/WaitingDepositAddress/index.d.ts +0 -3
  94. package/build/packages/paykit/packages/connectkit/src/components/Pages/WaitingOther/index.d.ts +0 -4
  95. package/build/packages/paykit/packages/connectkit/src/components/Spinners/CircleSpinner/index.d.ts +0 -9
  96. package/build/packages/paykit/packages/connectkit/src/components/Spinners/CircleSpinner/styles.d.ts +0 -5
  97. package/build/packages/paykit/packages/connectkit/src/components/Spinners/SquircleSpinner/index.d.ts +0 -5
  98. package/build/packages/paykit/packages/connectkit/src/components/Spinners/SquircleSpinner/styles.d.ts +0 -4
  99. package/build/packages/paykit/packages/connectkit/src/components/contexts/solana/index.d.ts +0 -6
  100. package/build/packages/paykit/packages/connectkit/src/components/contexts/web3/index.d.ts +0 -25
  101. package/build/packages/paykit/packages/connectkit/src/constants/chainConfigs.d.ts +0 -18
  102. package/build/packages/paykit/packages/connectkit/src/constants/defaultTheme.d.ts +0 -4
  103. package/build/packages/paykit/packages/connectkit/src/defaultConfig.d.ts +0 -19
  104. package/build/packages/paykit/packages/connectkit/src/defaultConnectors.d.ts +0 -14
  105. package/build/packages/paykit/packages/connectkit/src/defaultTransports.d.ts +0 -15
  106. package/build/packages/paykit/packages/connectkit/src/hooks/connectors/useCoinbaseWalletUri.d.ts +0 -0
  107. package/build/packages/paykit/packages/connectkit/src/hooks/connectors/useWalletConnectUri.d.ts +0 -7
  108. package/build/packages/paykit/packages/connectkit/src/hooks/useChainIsSupported.d.ts +0 -1
  109. package/build/packages/paykit/packages/connectkit/src/hooks/useChains.d.ts +0 -2
  110. package/build/packages/paykit/packages/connectkit/src/hooks/useConnect.d.ts +0 -119
  111. package/build/packages/paykit/packages/connectkit/src/hooks/useConnectCallback.d.ts +0 -8
  112. package/build/packages/paykit/packages/connectkit/src/hooks/useConnectors.d.ts +0 -7
  113. package/build/packages/paykit/packages/connectkit/src/hooks/useDaimoPayStatus.d.ts +0 -4
  114. package/build/packages/paykit/packages/connectkit/src/hooks/useDepositAddressOptions.d.ts +0 -7
  115. package/build/packages/paykit/packages/connectkit/src/hooks/useEnsFallbackConfig.d.ts +0 -2
  116. package/build/packages/paykit/packages/connectkit/src/hooks/useExternalPaymentOptions.d.ts +0 -9
  117. package/build/packages/paykit/packages/connectkit/src/hooks/useFitText.d.ts +0 -14
  118. package/build/packages/paykit/packages/connectkit/src/hooks/useFocusTrap.d.ts +0 -1
  119. package/build/packages/paykit/packages/connectkit/src/hooks/useGoogleFont.d.ts +0 -3
  120. package/build/packages/paykit/packages/connectkit/src/hooks/useIsMobile.d.ts +0 -1
  121. package/build/packages/paykit/packages/connectkit/src/hooks/useIsMounted.d.ts +0 -1
  122. package/build/packages/paykit/packages/connectkit/src/hooks/useLastConnector.d.ts +0 -4
  123. package/build/packages/paykit/packages/connectkit/src/hooks/useLocalStorage.d.ts +0 -7
  124. package/build/packages/paykit/packages/connectkit/src/hooks/useLocales.d.ts +0 -1
  125. package/build/packages/paykit/packages/connectkit/src/hooks/useLockBodyScroll.d.ts +0 -1
  126. package/build/packages/paykit/packages/connectkit/src/hooks/useModal.d.ts +0 -10
  127. package/build/packages/paykit/packages/connectkit/src/hooks/usePayWithSolanaToken.d.ts +0 -4
  128. package/build/packages/paykit/packages/connectkit/src/hooks/usePaymentInfo.d.ts +0 -46
  129. package/build/packages/paykit/packages/connectkit/src/hooks/usePrevious.d.ts +0 -1
  130. package/build/packages/paykit/packages/connectkit/src/hooks/useSolanaPaymentOptions.d.ts +0 -9
  131. package/build/packages/paykit/packages/connectkit/src/hooks/useWalletConnectModal.d.ts +0 -4
  132. package/build/packages/paykit/packages/connectkit/src/hooks/useWalletPaymentOptions.d.ts +0 -11
  133. package/build/packages/paykit/packages/connectkit/src/hooks/useWindowSize.d.ts +0 -4
  134. package/build/packages/paykit/packages/connectkit/src/index.d.ts +0 -12
  135. package/build/packages/paykit/packages/connectkit/src/localizations/index.d.ts +0 -93
  136. package/build/packages/paykit/packages/connectkit/src/localizations/locales/ar-AE.d.ts +0 -3
  137. package/build/packages/paykit/packages/connectkit/src/localizations/locales/ca-AD.d.ts +0 -3
  138. package/build/packages/paykit/packages/connectkit/src/localizations/locales/ee-EE.d.ts +0 -3
  139. package/build/packages/paykit/packages/connectkit/src/localizations/locales/en-US.d.ts +0 -93
  140. package/build/packages/paykit/packages/connectkit/src/localizations/locales/es-ES.d.ts +0 -3
  141. package/build/packages/paykit/packages/connectkit/src/localizations/locales/fa-IR.d.ts +0 -3
  142. package/build/packages/paykit/packages/connectkit/src/localizations/locales/fr-FR.d.ts +0 -3
  143. package/build/packages/paykit/packages/connectkit/src/localizations/locales/index.d.ts +0 -2
  144. package/build/packages/paykit/packages/connectkit/src/localizations/locales/ja-JP.d.ts +0 -93
  145. package/build/packages/paykit/packages/connectkit/src/localizations/locales/pt-BR.d.ts +0 -3
  146. package/build/packages/paykit/packages/connectkit/src/localizations/locales/ru-RU.d.ts +0 -3
  147. package/build/packages/paykit/packages/connectkit/src/localizations/locales/tr-TR.d.ts +0 -3
  148. package/build/packages/paykit/packages/connectkit/src/localizations/locales/vi-VN.d.ts +0 -3
  149. package/build/packages/paykit/packages/connectkit/src/localizations/locales/zh-CN.d.ts +0 -3
  150. package/build/packages/paykit/packages/connectkit/src/styles/defaultTheme.d.ts +0 -3
  151. package/build/packages/paykit/packages/connectkit/src/styles/index.d.ts +0 -1
  152. package/build/packages/paykit/packages/connectkit/src/styles/styled/index.d.ts +0 -12
  153. package/build/packages/paykit/packages/connectkit/src/styles/themes/base.d.ts +0 -129
  154. package/build/packages/paykit/packages/connectkit/src/styles/themes/index.d.ts +0 -673
  155. package/build/packages/paykit/packages/connectkit/src/styles/themes/midnight.d.ts +0 -74
  156. package/build/packages/paykit/packages/connectkit/src/styles/themes/minimal.d.ts +0 -94
  157. package/build/packages/paykit/packages/connectkit/src/styles/themes/nouns.d.ts +0 -79
  158. package/build/packages/paykit/packages/connectkit/src/styles/themes/retro.d.ts +0 -89
  159. package/build/packages/paykit/packages/connectkit/src/styles/themes/rounded.d.ts +0 -86
  160. package/build/packages/paykit/packages/connectkit/src/styles/themes/soft.d.ts +0 -69
  161. package/build/packages/paykit/packages/connectkit/src/styles/themes/web95.d.ts +0 -91
  162. package/build/packages/paykit/packages/connectkit/src/styles/types.d.ts +0 -80
  163. package/build/packages/paykit/packages/connectkit/src/types.d.ts +0 -44
  164. package/build/packages/paykit/packages/connectkit/src/utils/index.d.ts +0 -17
  165. package/build/packages/paykit/packages/connectkit/src/utils/localstorage.d.ts +0 -9
  166. package/build/packages/paykit/packages/connectkit/src/utils/p3.d.ts +0 -2
  167. package/build/packages/paykit/packages/connectkit/src/utils/platform.d.ts +0 -2
  168. package/build/packages/paykit/packages/connectkit/src/utils/trpc.d.ts +0 -2
  169. package/build/packages/paykit/packages/connectkit/src/utils/wallets.d.ts +0 -24
  170. package/build/packages/paykit/packages/connectkit/src/wallets/index.d.ts +0 -7
  171. package/build/packages/paykit/packages/connectkit/src/wallets/useWallets.d.ts +0 -9
  172. package/build/packages/paykit/packages/connectkit/src/wallets/walletConfigs.d.ts +0 -30
package/build/index.es.js CHANGED
@@ -10,8 +10,8 @@ import styled$1, { css, keyframes, ThemeProvider } from 'styled-components';
10
10
  import { ethereum, erc20Abi, getChainName, arbitrum as arbitrum$1, base as base$2, optimism as optimism$1, polygon as polygon$1, ethereumSepolia, baseSepolia as baseSepolia$1, linea as linea$1, bsc as bsc$1, getChainExplorerTxUrl } from '@daimo/contract';
11
11
  import { hexToBytes, zeroAddress, getAddress, parseUnits } from 'viem';
12
12
  import { useConnection, useWallet as useWallet$1, ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react';
13
- import { createTRPCClient, httpBatchLink } from '@trpc/client';
14
13
  import { VersionedTransaction } from '@solana/web3.js';
14
+ import { createTRPCClient, httpBatchLink } from '@trpc/client';
15
15
  import { motion, AnimatePresence, MotionConfig } from 'framer-motion';
16
16
  import { createPortal } from 'react-dom';
17
17
  import { useTransition } from 'react-transition-state';
@@ -75,6 +75,7 @@ const REQUIRED_CHAINS = [
75
75
  sepolia,
76
76
  baseSepolia,
77
77
  ];
78
+ /** A utility for use with wagmi's createConfig(). */
78
79
  const defaultConfig = ({ appName = "Daimo Pay", appIcon, appDescription, appUrl, walletConnectProjectId, coinbaseWalletPreference, chains = REQUIRED_CHAINS, client, ...props }) => {
79
80
  globalAppName = appName;
80
81
  const paddedChains = [...chains];
@@ -767,6 +768,7 @@ const defaultTheme$1 = {
767
768
  },
768
769
  };
769
770
 
771
+ /** Determines whether the current wagmi configuration supports a given chain. */
770
772
  function useChainIsSupported(chainId) {
771
773
  const { chains } = useConfig();
772
774
  if (!chainId)
@@ -774,6 +776,7 @@ function useChainIsSupported(chainId) {
774
776
  return chains.some((x) => x.id === chainId);
775
777
  }
776
778
 
779
+ /** Returns currently configured wagmi chains. */
777
780
  function useChains() {
778
781
  const wagmi = useConfig();
779
782
  const chains = wagmi?.chains ?? [];
@@ -843,18 +846,7 @@ function detectPlatform(ua) {
843
846
  return "other";
844
847
  }
845
848
 
846
- // TODO: re-enable for dev only in rollup.
847
- // TODO: env var in build
848
- const apiUrl = "http://localhost:4000";
849
- const trpc = createTRPCClient({
850
- links: [
851
- httpBatchLink({
852
- url: apiUrl,
853
- }),
854
- ],
855
- });
856
-
857
- function useDepositAddressOptions({ usdRequired, }) {
849
+ function useDepositAddressOptions({ trpc, usdRequired, }) {
858
850
  const [options, setOptions] = useState([]);
859
851
  const [loading, setLoading] = useState(false);
860
852
  useEffect(() => {
@@ -884,7 +876,7 @@ const DEFAULT_EXTERNAL_PAYMENT_OPTIONS = [
884
876
  ExternalPaymentOptions.Daimo,
885
877
  ExternalPaymentOptions.RampNetwork,
886
878
  ];
887
- function useExternalPaymentOptions({ filterIds, usdRequired, platform, }) {
879
+ function useExternalPaymentOptions({ trpc, filterIds, usdRequired, platform, }) {
888
880
  const [options, setOptions] = useState([]);
889
881
  const [loading, setLoading] = useState(false);
890
882
  useEffect(() => {
@@ -919,7 +911,7 @@ function useExternalPaymentOptions({ filterIds, usdRequired, platform, }) {
919
911
  };
920
912
  }
921
913
 
922
- function usePayWithSolanaToken(orderId, setDaimoPayOrder, chosenFinalTokenAmount, platform) {
914
+ function usePayWithSolanaToken({ trpc, orderId, setDaimoPayOrder, chosenFinalTokenAmount, platform, }) {
923
915
  const { connection } = useConnection();
924
916
  const wallet = useWallet$1();
925
917
  const payWithSolanaToken = async (inputToken) => {
@@ -962,7 +954,7 @@ function usePayWithSolanaToken(orderId, setDaimoPayOrder, chosenFinalTokenAmount
962
954
  return { payWithSolanaToken };
963
955
  }
964
956
 
965
- function useSolanaPaymentOptions({ address, usdRequired, }) {
957
+ function useSolanaPaymentOptions({ trpc, address, usdRequired, }) {
966
958
  const [options, setOptions] = useState(null);
967
959
  const [isLoading, setIsLoading] = useState(false);
968
960
  useEffect(() => {
@@ -995,7 +987,7 @@ function useSolanaPaymentOptions({ address, usdRequired, }) {
995
987
  };
996
988
  }
997
989
 
998
- function useWalletPaymentOptions({ address, usdRequired, destChainId, }) {
990
+ function useWalletPaymentOptions({ trpc, address, usdRequired, destChainId, }) {
999
991
  const [options, setOptions] = useState(null);
1000
992
  const [isLoading, setIsLoading] = useState(false);
1001
993
  useEffect(() => {
@@ -1029,7 +1021,7 @@ function useWalletPaymentOptions({ address, usdRequired, destChainId, }) {
1029
1021
  };
1030
1022
  }
1031
1023
 
1032
- function usePaymentInfo({ daimoPayOrder, setDaimoPayOrder, setOpen, log, }) {
1024
+ function usePaymentInfo({ trpc, daimoPayOrder, setDaimoPayOrder, setOpen, log, }) {
1033
1025
  // Browser state.
1034
1026
  const [platform, setPlatform] = useState();
1035
1027
  useEffect(() => {
@@ -1052,23 +1044,33 @@ function usePaymentInfo({ daimoPayOrder, setDaimoPayOrder, setOpen, log, }) {
1052
1044
  const [modalOptions, setModalOptions] = useState({});
1053
1045
  // UI state. Selection for external payment (Binance, etc) vs wallet payment.
1054
1046
  const externalPaymentOptions = useExternalPaymentOptions({
1047
+ trpc,
1055
1048
  filterIds: daimoPayOrder?.metadata.payer?.paymentOptions,
1056
1049
  usdRequired: daimoPayOrder?.destFinalCallTokenAmount.usd,
1057
1050
  platform,
1058
1051
  });
1059
1052
  const walletPaymentOptions = useWalletPaymentOptions({
1053
+ trpc,
1060
1054
  address: senderAddr,
1061
1055
  usdRequired: daimoPayOrder?.destFinalCallTokenAmount.usd,
1062
1056
  destChainId: daimoPayOrder?.destFinalCallTokenAmount.token.chainId,
1063
1057
  });
1064
1058
  const solanaPaymentOptions = useSolanaPaymentOptions({
1059
+ trpc,
1065
1060
  address: solanaPubKey,
1066
1061
  usdRequired: daimoPayOrder?.destFinalCallTokenAmount.usd,
1067
1062
  });
1068
1063
  const depositAddressOptions = useDepositAddressOptions({
1064
+ trpc,
1069
1065
  usdRequired: daimoPayOrder?.destFinalCallTokenAmount.usd ?? 0,
1070
1066
  });
1071
- const { payWithSolanaToken } = usePayWithSolanaToken(daimoPayOrder?.id ?? undefined, setDaimoPayOrder, daimoPayOrder?.destFinalCallTokenAmount.amount ?? undefined, platform);
1067
+ const { payWithSolanaToken } = usePayWithSolanaToken({
1068
+ trpc,
1069
+ orderId: daimoPayOrder?.id ?? undefined,
1070
+ setDaimoPayOrder,
1071
+ chosenFinalTokenAmount: daimoPayOrder?.destFinalCallTokenAmount.amount ?? undefined,
1072
+ platform,
1073
+ });
1072
1074
  const [selectedExternalOption, setSelectedExternalOption] = useState();
1073
1075
  const [selectedTokenOption, setSelectedTokenOption] = useState();
1074
1076
  const [selectedSolanaTokenOption, setSelectedSolanaTokenOption] = useState();
@@ -1222,6 +1224,16 @@ function usePaymentInfo({ daimoPayOrder, setDaimoPayOrder, setOpen, log, }) {
1222
1224
  };
1223
1225
  }
1224
1226
 
1227
+ function createTrpcClient(apiUrl) {
1228
+ return createTRPCClient({
1229
+ links: [
1230
+ httpBatchLink({
1231
+ url: apiUrl,
1232
+ }),
1233
+ ],
1234
+ });
1235
+ }
1236
+
1225
1237
  const hexToP3 = (hex) => {
1226
1238
  const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
1227
1239
  if (result == null)
@@ -2363,7 +2375,7 @@ const ResetContainer = styled(motion.div) `
2363
2375
  `;
2364
2376
 
2365
2377
  var name = "@daimo/pay";
2366
- var version = "0.3.16";
2378
+ var version = "0.3.18";
2367
2379
  var author = "Daimo";
2368
2380
  var homepage = "https://pay.daimo.com";
2369
2381
  var license = "BSD-2-Clause license";
@@ -2372,9 +2384,9 @@ var main = "./src/index.ts";
2372
2384
  var type = "module";
2373
2385
  var exports = {
2374
2386
  "import": "./build/index.es.js",
2375
- types: "./build/packages/paykit/packages/connectkit/src/index.d.ts"
2387
+ types: "./build/index.d.ts"
2376
2388
  };
2377
- var types = "./build/packages/paykit/packages/connectkit/src/index.d.ts";
2389
+ var types = "./build/index.d.ts";
2378
2390
  var engines = {
2379
2391
  node: ">=12.4"
2380
2392
  };
@@ -2385,7 +2397,7 @@ var files = [
2385
2397
  var scripts = {
2386
2398
  start: "rollup --config rollup.config.dev.js -w",
2387
2399
  dev: "rollup --config rollup.config.dev.js -w",
2388
- build: "rollup --config rollup.config.prod.js",
2400
+ build: "rollup --config rollup.config.prod.js && rm -rf build/packages",
2389
2401
  lint: "eslint --max-warnings=0"
2390
2402
  };
2391
2403
  var keywords = [
@@ -2435,7 +2447,8 @@ var devDependencies = {
2435
2447
  "@types/react": "^18.2.47",
2436
2448
  "@types/react-dom": "^18.2.18",
2437
2449
  "@types/styled-components": "^5.1.25",
2438
- rollup: "^2.67.1",
2450
+ rollup: "^3.29.5",
2451
+ "rollup-plugin-dts": "^6.1.1",
2439
2452
  "rollup-plugin-peer-deps-external": "^2.2.4",
2440
2453
  "rollup-plugin-typescript2": "^0.34.0",
2441
2454
  "rollup-plugin-visualizer": "^5.5.4",
@@ -3147,7 +3160,7 @@ styled(motion.div) `
3147
3160
  const useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
3148
3161
  function useLockBodyScroll(initialLocked) {
3149
3162
  const [locked, setLocked] = useState(initialLocked);
3150
- const context = useContext();
3163
+ const context = usePayContext();
3151
3164
  useIsomorphicLayoutEffect(() => {
3152
3165
  if (!locked)
3153
3166
  return;
@@ -4524,7 +4537,7 @@ export const keys = {
4524
4537
  */
4525
4538
 
4526
4539
  function useLocales(replacements) {
4527
- const context = useContext();
4540
+ const context = usePayContext();
4528
4541
  const language = context.options?.language ?? "en-US";
4529
4542
  const translations = useMemo(() => {
4530
4543
  return getLocale(language);
@@ -4626,7 +4639,7 @@ const useWallet = (id) => {
4626
4639
  };
4627
4640
  const useWallets = () => {
4628
4641
  const connectors = useConnectors();
4629
- const context = useContext();
4642
+ const context = usePayContext();
4630
4643
  const wallets = connectors.map((connector) => {
4631
4644
  // use overrides
4632
4645
  const walletId = Object.keys(walletConfigs).find(
@@ -4908,7 +4921,7 @@ const contentVariants$2 = {
4908
4921
  },
4909
4922
  };
4910
4923
  const Modal = ({ open, pages, pageId, positionInside, inline, demo, onClose, onBack, onInfo, }) => {
4911
- const context = useContext();
4924
+ const context = usePayContext();
4912
4925
  const themeContext = useThemeContext();
4913
4926
  const mobile = isMobile();
4914
4927
  const { daimoPayOrder, selectedExternalOption, selectedTokenOption, selectedSolanaTokenOption, selectedDepositAddressOption, } = context.paymentInfo;
@@ -5826,7 +5839,7 @@ const About = () => {
5826
5839
  const locales = useLocales({
5827
5840
  //CONNECTORNAME: connector.name,
5828
5841
  });
5829
- const context = useContext();
5842
+ const context = usePayContext();
5830
5843
  const ctaUrl = context.options?.ethereumOnboardingUrl ?? locales.aboutScreen_ctaUrl;
5831
5844
  const [ready, setReady] = useState(true);
5832
5845
  const [slider, setSlider] = useState(0);
@@ -6528,7 +6541,7 @@ const ConnectorsContainer = styled.div `
6528
6541
  * additional functionality.
6529
6542
  */
6530
6543
  function useConnect({ ...props } = {}) {
6531
- const context = useContext();
6544
+ const context = usePayContext();
6532
6545
  const { connect, connectAsync, connectors, ...rest } = useConnect$1({
6533
6546
  ...props,
6534
6547
  mutation: {
@@ -6566,7 +6579,7 @@ function useConnect({ ...props } = {}) {
6566
6579
  function useWalletConnectUri({ enabled } = {
6567
6580
  enabled: true,
6568
6581
  }) {
6569
- const { log } = useContext();
6582
+ const { log } = usePayContext();
6570
6583
  const [uri, setUri] = useState(undefined);
6571
6584
  const connector = useWalletConnectConnector();
6572
6585
  const { isConnected } = useAccount();
@@ -6850,7 +6863,7 @@ const ScrollAreaContainer = styled.div `
6850
6863
 
6851
6864
  const ArrowDown = () => (jsx("svg", { width: "11", height: "12", viewBox: "0 0 11 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M5.49438 1L5.49438 11M5.49438 11L9.5 7M5.49438 11L1.5 7", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }) }));
6852
6865
  const ScrollArea = ({ children, height, backgroundColor, mobileDirection, }) => {
6853
- const { log } = useContext();
6866
+ const { log } = usePayContext();
6854
6867
  const ref = useRef(null);
6855
6868
  const moreRef = useRef(null);
6856
6869
  const isMobile = useIsMobile();
@@ -6975,7 +6988,7 @@ const useLastConnector = () => {
6975
6988
  };
6976
6989
 
6977
6990
  const ConnectorList = () => {
6978
- const context = useContext();
6991
+ const context = usePayContext();
6979
6992
  const isMobile = useIsMobile();
6980
6993
  const wallets = useWallets();
6981
6994
  const { lastConnectorId } = useLastConnector();
@@ -6993,7 +7006,7 @@ const ConnectorItem = ({ wallet, isRecent, }) => {
6993
7006
  const { connect: { getUri }, } = useWeb3();
6994
7007
  const uri = getUri();
6995
7008
  const isMobile = useIsMobile();
6996
- const context = useContext();
7009
+ const context = usePayContext();
6997
7010
  const { connect } = useConnect();
6998
7011
  /*
6999
7012
  const [ready, setReady] = useState(false);
@@ -7227,7 +7240,7 @@ const Underline = styled(motion.div) `
7227
7240
  background-color: var(--ck-body-color-muted);
7228
7241
  `;
7229
7242
  const OrderHeader = ({ minified = false }) => {
7230
- const { paymentInfo } = useContext();
7243
+ const { paymentInfo } = usePayContext();
7231
7244
  const amount = paymentInfo.daimoPayOrder?.destFinalCallTokenAmount.usd.toFixed(2);
7232
7245
  const isEditable = paymentInfo.daimoPayOrder?.mode === DaimoPayOrderMode.CHOOSE_AMOUNT;
7233
7246
  const [editableAmount, setEditableAmount] = useState(amount ?? "");
@@ -7381,7 +7394,7 @@ const Logos = styled(motion.div) `
7381
7394
  `;
7382
7395
 
7383
7396
  const Wallets = () => {
7384
- const context = useContext();
7397
+ const context = usePayContext();
7385
7398
  const locales = useLocales({});
7386
7399
  const isMobile = useIsMobile();
7387
7400
  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 }) }))] }));
@@ -7613,7 +7626,7 @@ const TooltipTail = styled(motion.div) `
7613
7626
  `;
7614
7627
 
7615
7628
  const Tooltip = ({ children, message, open, xOffset = 0, yOffset = 0, delay, }) => {
7616
- const context = useContext();
7629
+ const context = usePayContext();
7617
7630
  const themeContext = useThemeContext();
7618
7631
  if (context.options?.hideTooltips)
7619
7632
  return jsx(Fragment, { children: children });
@@ -7793,7 +7806,7 @@ function CustomQRCode({ value, image, imageBackground, imagePosition = "center",
7793
7806
  CustomQRCode.displayName = "CustomQRCode";
7794
7807
 
7795
7808
  const DownloadApp = () => {
7796
- const context = useContext();
7809
+ const context = usePayContext();
7797
7810
  const wallet = useWallet(context.connector.id);
7798
7811
  const locales = useLocales({
7799
7812
  CONNECTORNAME: wallet?.name,
@@ -7874,7 +7887,7 @@ const WalletList = styled.div `
7874
7887
  const Container$4 = styled.div ``;
7875
7888
 
7876
7889
  function useWalletConnectModal() {
7877
- const { log } = useContext();
7890
+ const { log } = usePayContext();
7878
7891
  const { connectAsync, connectors } = useConnect();
7879
7892
  const [isOpen, setIsOpen] = useState(false);
7880
7893
  return {
@@ -8022,7 +8035,7 @@ const CopyToClipboard = ({ string, children, variant }) => {
8022
8035
 
8023
8036
  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" }) }));
8024
8037
  const MobileConnectors = () => {
8025
- const context = useContext();
8038
+ const context = usePayContext();
8026
8039
  const locales = useLocales();
8027
8040
  const { connect: { getUri }, } = useWeb3();
8028
8041
  const wcUri = getUri();
@@ -8303,7 +8316,7 @@ const Logo$2 = styled(motion.div) `
8303
8316
  var wave = (jsxs("svg", { "aria-hidden": "true", width: "298", height: "188", viewBox: "0 0 298 188", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { d: "M1 55.2757L21.6438 46.0285C55.5896 30.8228 94.4104 30.8228 128.356 46.0286L169.644 64.5229C203.59 79.7287 242.41 79.7286 276.356 64.5229L297 55.2757M1 44.2118L21.6438 34.9646C55.5896 19.7589 94.4104 19.7589 128.356 34.9646L169.644 53.459C203.59 68.6647 242.41 68.6647 276.356 53.459L297 44.2118M1 33.1477L21.6438 23.9005C55.5896 8.69479 94.4104 8.69479 128.356 23.9005L169.644 42.3949C203.59 57.6006 242.41 57.6006 276.356 42.3949L297 33.1477M1 22.1477L21.6438 12.9005C55.5896 -2.30521 94.4104 -2.30521 128.356 12.9005L169.644 31.3949C203.59 46.6006 242.41 46.6006 276.356 31.3949L297 22.1477M1 66.3398L21.6438 57.0926C55.5896 41.8869 94.4104 41.8869 128.356 57.0926L169.644 75.587C203.59 90.7927 242.41 90.7927 276.356 75.587L297 66.3398M1 77.404L21.6438 68.1568C55.5896 52.9511 94.4104 52.9511 128.356 68.1569L169.644 86.6512C203.59 101.857 242.41 101.857 276.356 86.6512L297 77.404M1 88.4681L21.6438 79.2209C55.5896 64.0152 94.4104 64.0152 128.356 79.2209L169.644 97.7153C203.59 112.921 242.41 112.921 276.356 97.7153L297 88.4681M1 121.66L21.6438 112.413C55.5896 97.2075 94.4104 97.2075 128.356 112.413L169.644 130.908C203.59 146.113 242.41 146.113 276.356 130.908L297 121.66M1 110.596L21.6438 101.349C55.5896 86.1433 94.4104 86.1433 128.356 101.349L169.644 119.843C203.59 135.049 242.41 135.049 276.356 119.843L297 110.596M1 99.5321L21.6438 90.2849C55.5896 75.0792 94.4104 75.0792 128.356 90.2849L169.644 108.779C203.59 123.985 242.41 123.985 276.356 108.779L297 99.5321M1 132.724L21.6438 123.477C55.5896 108.271 94.4104 108.271 128.356 123.477L169.644 141.971C203.59 157.177 242.41 157.177 276.356 141.971L297 132.724M1 143.788L21.6438 134.541C55.5896 119.336 94.4104 119.336 128.356 134.541L169.644 153.036C203.59 168.241 242.41 168.241 276.356 153.036L297 143.788M1 154.853L21.6438 145.605C55.5896 130.4 94.4104 130.4 128.356 145.605L169.644 164.1C203.59 179.305 242.41 179.305 276.356 164.1L297 154.853M1 165.853L21.6438 156.605C55.5896 141.4 94.4104 141.4 128.356 156.605L169.644 175.1C203.59 190.305 242.41 190.305 276.356 175.1L297 165.853", stroke: "url(#paint0_linear_1094_2077)", strokeOpacity: "0.9", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("defs", { children: jsxs("linearGradient", { id: "paint0_linear_1094_2077", x1: "1", y1: "112.587", x2: "297.034", y2: "79.6111", gradientUnits: "userSpaceOnUse", children: [jsx("stop", { stopColor: "var(--ck-graphic-wave-stop-01)" }), jsx("stop", { stopColor: "var(--ck-graphic-wave-stop-02)", offset: "0.239583" }), jsx("stop", { stopColor: "var(--ck-graphic-wave-stop-03)", offset: "0.515625" }), jsx("stop", { stopColor: "var(--ck-graphic-wave-stop-04)", offset: "0.739583" }), jsx("stop", { stopColor: "var(--ck-graphic-wave-stop-05)", offset: "1" })] }) })] }));
8304
8317
 
8305
8318
  const Introduction = () => {
8306
- const context = useContext();
8319
+ const context = usePayContext();
8307
8320
  const locales = useLocales({});
8308
8321
  const ctaUrl = context.options?.walletOnboardingUrl ?? locales.onboardingScreen_ctaUrl;
8309
8322
  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 })] }));
@@ -8846,7 +8859,7 @@ const ChainSelectList = ({ variant, }) => {
8846
8859
  switchChain({ chainId });
8847
8860
  }
8848
8861
  };
8849
- const { triggerResize } = useContext();
8862
+ const { triggerResize } = usePayContext();
8850
8863
  return (jsxs(SwitchNetworksContainer, { style: { marginBottom: switchChain !== undefined ? -8 : 0 }, children: [jsx(ChainButtonContainer, { children: jsx(ChainButtons, { children: chains.map((x) => {
8851
8864
  const c = chainConfigs.find((ch) => ch.id === x.id);
8852
8865
  const ch = { ...c, ...x };
@@ -9385,7 +9398,7 @@ const ConnectWithInjector = ({ switchConnectMethod, forceState }) => {
9385
9398
  },
9386
9399
  },
9387
9400
  });
9388
- const { triggerResize, connector: c } = useContext();
9401
+ const { triggerResize, connector: c } = usePayContext();
9389
9402
  const id = c.id;
9390
9403
  const wallet = useWallet(id);
9391
9404
  const walletInfo = {
@@ -9508,7 +9521,7 @@ const ScanIconWithLogos = ({ logo }) => {
9508
9521
  };
9509
9522
 
9510
9523
  const ConnectWithQRCode = ({ switchConnectMethod }) => {
9511
- const context = useContext();
9524
+ const context = usePayContext();
9512
9525
  const id = context.connector.id;
9513
9526
  const wallet = useWallet(context.connector.id);
9514
9527
  const { open: openW3M, isOpen: isOpenW3M } = useWalletConnectModal();
@@ -9570,7 +9583,7 @@ const states = {
9570
9583
  INJECTOR: "injector",
9571
9584
  };
9572
9585
  const ConnectUsing = () => {
9573
- const context = useContext();
9586
+ const context = usePayContext();
9574
9587
  const wallet = useWallet(context.connector.id);
9575
9588
  // If cannot be scanned, display injector flow, which if extension is not installed will show CTA to install it
9576
9589
  const isQrCode = !wallet?.isInstalled && wallet?.getWalletConnectDeeplink;
@@ -9640,7 +9653,7 @@ const TextButton = styled(motion.button) `
9640
9653
  `;
9641
9654
 
9642
9655
  const Confirmation = () => {
9643
- const { paymentInfo } = useContext();
9656
+ const { paymentInfo } = usePayContext();
9644
9657
  const { daimoPayOrder } = paymentInfo;
9645
9658
  const { done, txURL } = (() => {
9646
9659
  if (daimoPayOrder && daimoPayOrder.mode === DaimoPayOrderMode.HYDRATED) {
@@ -9740,7 +9753,7 @@ var PayState$1;
9740
9753
  PayState["RequestSuccessful"] = "Payment Successful";
9741
9754
  })(PayState$1 || (PayState$1 = {}));
9742
9755
  const PayWithToken = () => {
9743
- const { triggerResize, paymentInfo, setRoute, log } = useContext();
9756
+ const { triggerResize, paymentInfo, setRoute, log } = usePayContext();
9744
9757
  const { selectedTokenOption, payWithToken } = paymentInfo;
9745
9758
  const [payState, setPayState] = useState(PayState$1.RequestingPayment);
9746
9759
  const walletChainId = useChainId();
@@ -10041,7 +10054,7 @@ const OptionsContainer = styled.div `
10041
10054
  `;
10042
10055
 
10043
10056
  const OptionsList = ({ options, isLoading, requiredSkeletons, }) => {
10044
- const { triggerResize, log } = useContext();
10057
+ const { triggerResize, log } = usePayContext();
10045
10058
  const optionsLength = options.length;
10046
10059
  useEffect(() => {
10047
10060
  log(`[OPTIONS RESIZE]: ${optionsLength}, triggering resize`);
@@ -10136,7 +10149,7 @@ const IconStackItem = styled(motion.div) `
10136
10149
  `;
10137
10150
 
10138
10151
  const SelectDepositAddressChain = () => {
10139
- const { setRoute, paymentInfo } = useContext();
10152
+ const { setRoute, paymentInfo } = usePayContext();
10140
10153
  const { setSelectedDepositAddressOption, depositAddressOptions } = paymentInfo;
10141
10154
  return (jsxs(PageContent, { children: [jsx(OrderHeader, { minified: true }), !depositAddressOptions.loading &&
10142
10155
  depositAddressOptions.options?.length === 0 && (jsxs(ModalContent, { style: {
@@ -10179,7 +10192,7 @@ function getBestUnconnectedWalletIcons(connector) {
10179
10192
  }
10180
10193
  function getSolanaOption() {
10181
10194
  const { wallets } = useWallet$1();
10182
- const { setRoute } = useContext();
10195
+ const { setRoute } = usePayContext();
10183
10196
  if (wallets.length === 0)
10184
10197
  return null;
10185
10198
  return {
@@ -10192,7 +10205,7 @@ function getSolanaOption() {
10192
10205
  };
10193
10206
  }
10194
10207
  function getDepositAddressOption(depositAddressOptions) {
10195
- const { setRoute } = useContext();
10208
+ const { setRoute } = usePayContext();
10196
10209
  console.log(`[SELECT_METHOD] depositAddressOptions: ${JSON.stringify(depositAddressOptions)}`);
10197
10210
  if (!depositAddressOptions.loading &&
10198
10211
  depositAddressOptions.options.length === 0)
@@ -10211,7 +10224,7 @@ const SelectMethod = () => {
10211
10224
  const isMobile = useIsMobile();
10212
10225
  const { address, isConnected, connector } = useAccount();
10213
10226
  const { disconnectAsync } = useDisconnect();
10214
- const { setRoute, paymentInfo, log } = useContext();
10227
+ const { setRoute, paymentInfo, log } = usePayContext();
10215
10228
  const { setSelectedExternalOption, externalPaymentOptions, depositAddressOptions, senderEnsName, } = paymentInfo;
10216
10229
  const displayName = senderEnsName ?? (address ? getAddressContraction(address) : "wallet");
10217
10230
  const connectedWalletOption = isConnected
@@ -10276,7 +10289,7 @@ const ChainContainer$1 = styled(motion.div) `
10276
10289
  right: 0px;
10277
10290
  `;
10278
10291
  const SelectToken = () => {
10279
- const { setRoute, paymentInfo } = useContext();
10292
+ const { setRoute, paymentInfo } = usePayContext();
10280
10293
  const { setSelectedTokenOption, walletPaymentOptions } = paymentInfo;
10281
10294
  return (jsxs(PageContent, { children: [jsx(OrderHeader, { minified: true }), !walletPaymentOptions.isLoading &&
10282
10295
  walletPaymentOptions.options?.length === 0 && (jsxs(ModalContent, { style: {
@@ -10305,7 +10318,9 @@ const SelectToken = () => {
10305
10318
  };
10306
10319
 
10307
10320
  const WaitingOther = () => {
10308
- const { triggerResize, paymentInfo, setRoute } = useContext();
10321
+ const context = usePayContext();
10322
+ const { triggerResize, paymentInfo, setRoute } = context;
10323
+ const trpc = context.trpc;
10309
10324
  const { selectedExternalOption, payWithExternal, paymentWaitingMessage, daimoPayOrder, } = paymentInfo;
10310
10325
  const [externalURL, setExternalURL] = useState(null);
10311
10326
  useEffect(() => {
@@ -10382,7 +10397,7 @@ const AnimationContainer$2 = styled(motion.div) `
10382
10397
  const ConnectSolana$1 = () => {
10383
10398
  const solanaWallets = useWallet$1();
10384
10399
  const isConnected = solanaWallets.connected;
10385
- const { solanaConnector, setRoute } = useContext();
10400
+ const { solanaConnector, setRoute } = usePayContext();
10386
10401
  const selectedWallet = solanaWallets.wallets.find((wallet) => wallet.adapter.name === solanaConnector);
10387
10402
  useEffect(() => {
10388
10403
  if (!solanaConnector)
@@ -10413,7 +10428,7 @@ const AnimationContainer$1 = styled(motion.div) `
10413
10428
  `;
10414
10429
 
10415
10430
  const ConnectSolana = () => {
10416
- const { setSolanaConnector, setRoute } = useContext();
10431
+ const { setSolanaConnector, setRoute } = usePayContext();
10417
10432
  const solanaWallets = useWallet$1();
10418
10433
  const options = solanaWallets.wallets.map((wallet) => ({
10419
10434
  id: wallet.adapter.name,
@@ -10447,7 +10462,7 @@ var PayState;
10447
10462
  PayState["RequestSuccessful"] = "Payment Successful";
10448
10463
  })(PayState || (PayState = {}));
10449
10464
  const PayWithSolanaToken = () => {
10450
- const { triggerResize, paymentInfo, setRoute } = useContext();
10465
+ const { triggerResize, paymentInfo, setRoute } = usePayContext();
10451
10466
  const { selectedSolanaTokenOption, payWithSolanaToken } = paymentInfo;
10452
10467
  const [payState, setPayState] = useState(PayState.RequestingPayment);
10453
10468
  const handleTransfer = async () => {
@@ -10511,7 +10526,7 @@ const AnimationContainer = styled(motion.div) `
10511
10526
  `;
10512
10527
 
10513
10528
  const SelectSolanaToken = () => {
10514
- const { paymentInfo, setRoute } = useContext();
10529
+ const { paymentInfo, setRoute } = usePayContext();
10515
10530
  const { solanaPaymentOptions, setSelectedSolanaTokenOption } = paymentInfo;
10516
10531
  return (jsxs(PageContent, { children: [jsx(OrderHeader, { minified: true }), !solanaPaymentOptions.isLoading &&
10517
10532
  solanaPaymentOptions.options?.length === 0 && (jsxs(ModalContent, { style: {
@@ -10539,7 +10554,9 @@ const SelectSolanaToken = () => {
10539
10554
  };
10540
10555
 
10541
10556
  const WaitingDepositAddress = () => {
10542
- const { triggerResize, paymentInfo, setRoute } = useContext();
10557
+ const context = usePayContext();
10558
+ const { triggerResize, paymentInfo, setRoute } = context;
10559
+ const trpc = context.trpc;
10543
10560
  const { daimoPayOrder, payWithDepositAddress, selectedDepositAddressOption } = paymentInfo;
10544
10561
  useEffect(() => {
10545
10562
  const checkForSourcePayment = async () => {
@@ -10576,7 +10593,7 @@ const WaitingDepositAddress = () => {
10576
10593
 
10577
10594
  const customThemeDefault = {};
10578
10595
  const DaimoPayModal = ({ mode = "auto", theme = "auto", customTheme = customThemeDefault, lang = "en-US", }) => {
10579
- const context = useContext();
10596
+ const context = usePayContext();
10580
10597
  const { setSelectedExternalOption, setSelectedTokenOption, setSelectedDepositAddressOption, setSelectedSolanaTokenOption, } = context.paymentInfo;
10581
10598
  const { isConnected, chain } = useAccount();
10582
10599
  const chainIsSupported = useChainIsSupported(chain?.id);
@@ -10709,8 +10726,9 @@ var ROUTES;
10709
10726
  ROUTES["DOWNLOAD"] = "download";
10710
10727
  ROUTES["SWITCHNETWORKS"] = "switchNetworks";
10711
10728
  })(ROUTES || (ROUTES = {}));
10729
+ /** Meant for internal use. This will be non-exported in a future SDK version. */
10712
10730
  const Context = createContext(null);
10713
- const DaimoPayProviderWithoutSolana = ({ children, theme = "auto", mode = "auto", customTheme, options, onConnect, onDisconnect, debugMode = false, }) => {
10731
+ const DaimoPayProviderWithoutSolana = ({ children, theme = "auto", mode = "auto", customTheme, options, onConnect, onDisconnect, debugMode = false, payApiUrl = "https://pay-api.daimo.xyz", }) => {
10714
10732
  // DaimoPayProvider must be within a WagmiProvider
10715
10733
  if (!React.useContext(WagmiContext)) {
10716
10734
  throw Error("DaimoPayProvider must be within a WagmiProvider");
@@ -10794,12 +10812,15 @@ const DaimoPayProviderWithoutSolana = ({ children, theme = "auto", mode = "auto"
10794
10812
  }
10795
10813
  }, [isConnected, isChainSupported, chain, route, open]);
10796
10814
  const log = debugMode ? console.log : () => { };
10815
+ // Connect to the Daimo Pay TRPC API
10816
+ const trpc = useMemo(() => createTrpcClient(payApiUrl), [payApiUrl]);
10797
10817
  // PaymentInfo is a second, inner context object containing a DaimoPayOrder
10798
10818
  // plus all associated status and callbacks. In order for useContext() and
10799
10819
  // downstream hooks like useDaimoPayStatus() to work correctly, we must set
10800
10820
  // set refresh context when payment status changes; done via setDaimoPayOrder.
10801
10821
  const [daimoPayOrder, setDaimoPayOrder] = useState();
10802
10822
  const paymentInfo = usePaymentInfo({
10823
+ trpc,
10803
10824
  daimoPayOrder,
10804
10825
  setDaimoPayOrder,
10805
10826
  setOpen,
@@ -10877,19 +10898,26 @@ const DaimoPayProviderWithoutSolana = ({ children, theme = "auto", mode = "auto"
10877
10898
  // Below: Daimo Pay context
10878
10899
  loadAndShowPayment,
10879
10900
  paymentInfo,
10901
+ trpc,
10880
10902
  };
10881
10903
  return createElement(Context.Provider, { value }, jsx(Web3ContextProvider, { enabled: open, children: jsxs(ThemeProvider, { theme: defaultTheme$1, children: [children, jsx(DaimoPayModal, { lang: ckLang, theme: ckTheme, mode: mode, customTheme: ckCustomTheme })] }) }));
10882
10904
  };
10905
+ /** Provides context for DaimoPayButton and hooks. Place in app root, layout, or
10906
+ * similar.
10907
+ */
10883
10908
  const DaimoPayProvider = (props) => {
10884
10909
  return (jsx(SolanaContextProvider, { solanaRpcUrl: props.solanaRpcUrl, children: jsx(DaimoPayProviderWithoutSolana, { ...props }) }));
10885
10910
  };
10886
- const useContext = () => {
10911
+ /** Meant for internal use. This will be non-exported in a future SDK version. */
10912
+ const usePayContext = () => {
10887
10913
  const context = React.useContext(Context);
10888
10914
  if (!context)
10889
10915
  throw Error("DaimoPay Hook must be inside a Provider.");
10890
10916
  return context;
10891
10917
  };
10892
10918
 
10919
+ /** Utility. Returns false on first render, true after.
10920
+ * Useful for apps with SSR, for example. */
10893
10921
  function useIsMounted() {
10894
10922
  const [mounted, setMounted] = useState(false);
10895
10923
  useEffect(() => setMounted(true), []);
@@ -11132,9 +11160,10 @@ const contentVariants = {
11132
11160
  },
11133
11161
  },
11134
11162
  };
11163
+ /** Like DaimoPayButton, but with custom styling. */
11135
11164
  const DaimoPayButtonRenderer = ({ payId, closeOnSuccess, children, }) => {
11136
11165
  const isMounted = useIsMounted();
11137
- const context = useContext();
11166
+ const context = usePayContext();
11138
11167
  const { address, chain } = useAccount();
11139
11168
  const isChainSupported = useChainIsSupported(chain?.id);
11140
11169
  const { data: ensName } = useEnsName({
@@ -11168,15 +11197,18 @@ const DaimoPayButtonRenderer = ({ payId, closeOnSuccess, children, }) => {
11168
11197
  };
11169
11198
  DaimoPayButtonRenderer.displayName = "DaimoPayButton.Custom";
11170
11199
  function DaimoPayButtonInner() {
11171
- const { paymentInfo } = useContext();
11200
+ const { paymentInfo } = usePayContext();
11172
11201
  const label = paymentInfo?.daimoPayOrder?.metadata?.intent ?? "Pay";
11173
11202
  return (jsx(AnimatePresence, { initial: false, children: jsx(TextContainer, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, style: {
11174
11203
  height: 40,
11175
11204
  }, children: label }, "connectWalletText") }));
11176
11205
  }
11206
+ /** A button that shows the Daimo Pay checkout. Replaces the traditional
11207
+ * Connect Wallet » approve » execute sequence with a single action.
11208
+ */
11177
11209
  function DaimoPayButton({ payId, theme, mode, customTheme, closeOnSuccess, onClick, }) {
11178
11210
  const isMounted = useIsMounted();
11179
- const context = useContext();
11211
+ const context = usePayContext();
11180
11212
  // Pre-load payment info in background.
11181
11213
  const { setPayId } = context.paymentInfo;
11182
11214
  useEffect(() => {
@@ -11198,7 +11230,7 @@ function DaimoPayButton({ payId, theme, mode, customTheme, closeOnSuccess, onCli
11198
11230
  DaimoPayButton.Custom = DaimoPayButtonRenderer;
11199
11231
 
11200
11232
  const useModal = ({ onConnect, onDisconnect } = {}) => {
11201
- const context = useContext();
11233
+ const context = usePayContext();
11202
11234
  useConnectCallback({
11203
11235
  onConnect,
11204
11236
  onDisconnect,
@@ -11295,7 +11327,7 @@ function useEnsFallbackConfig() {
11295
11327
 
11296
11328
  const Avatar = ({ address, name, size = 96, radius = 96 }) => {
11297
11329
  const isMounted = useIsMounted();
11298
- const context = useContext();
11330
+ const context = usePayContext();
11299
11331
  const imageRef = useRef(null);
11300
11332
  const [loaded, setLoaded] = useState(true);
11301
11333
  const ensFallbackConfig = useEnsFallbackConfig();
@@ -11448,36 +11480,37 @@ const Chain = ({ id, unsupported: controlledUnsupported, radius = "50%", size =
11448
11480
  return (jsx(ChainContainer, { size: size, radius: radius, children: jsxs(AnimatePresence, { initial: false, children: [unsupported && (jsx(Unsupported, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, children: jsxs("svg", { width: "13", height: "12", viewBox: "0 0 13 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { d: "M2.61317 11.2501H9.46246C10.6009 11.2501 11.3256 10.3506 11.3256 9.3549C11.3256 9.05145 11.255 8.73244 11.0881 8.43303L7.65903 2.14708C7.659 2.14702 7.65897 2.14696 7.65893 2.1469C7.65889 2.14682 7.65884 2.14673 7.65879 2.14664C7.31045 1.50746 6.6741 1.17871 6.04 1.17871C5.41478 1.17871 4.763 1.50043 4.41518 2.14968L0.993416 8.43476C0.828865 8.72426 0.75 9.04297 0.75 9.3549C0.75 10.3506 1.47471 11.2501 2.61317 11.2501Z", fill: "currentColor", stroke: "var(--ck-body-background, #fff)", strokeWidth: "1.5" }), jsx("path", { d: "M6.03258 7.43916C5.77502 7.43916 5.63096 7.29153 5.62223 7.02311L5.55675 4.96973C5.54802 4.69684 5.74446 4.5 6.02821 4.5C6.3076 4.5 6.51277 4.70131 6.50404 4.9742L6.43856 7.01864C6.42546 7.29153 6.2814 7.43916 6.03258 7.43916ZM6.03258 9.11676C5.7401 9.11676 5.5 8.9065 5.5 8.60677C5.5 8.30704 5.7401 8.09678 6.03258 8.09678C6.32506 8.09678 6.56515 8.30256 6.56515 8.60677C6.56515 8.91097 6.32069 9.11676 6.03258 9.11676Z", fill: "white" })] }) })), id ? (jsx(LogoContainer, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.3 }, children: chain?.logo ?? jsx(Chains.UnknownChain, {}) }, `${chain?.id}-${chain?.name}-${id}`)) : (jsx(LoadingContainer, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.3 }, children: Spinner }, "loading"))] }) }));
11449
11481
  };
11450
11482
 
11483
+ /** Returns the current payment, or undefined if there is none.
11484
+ *
11485
+ * Status values:
11486
+ * - `payment_pending` - the user has not paid yet
11487
+ * - `payment_started` - the user has paid & payment is in progress. This status
11488
+ * typically lasts a few seconds.
11489
+ * - `payment_completed` - the final call or transfer succeeded
11490
+ * - `payment_bounced` - the final call or transfer reverted. Funds were sent
11491
+ * to the payment's configured refund address on the destination chain.
11492
+ */
11451
11493
  function useDaimoPayStatus() {
11452
- const { paymentInfo } = useContext();
11453
- const status = (() => {
11454
- if (!paymentInfo || !paymentInfo.daimoPayOrder)
11455
- return undefined;
11456
- const order = paymentInfo.daimoPayOrder;
11457
- const paymentId = writeDaimoPayOrderID(order.id);
11458
- if (order.mode === DaimoPayOrderMode.HYDRATED) {
11459
- if (order.intentStatus != DaimoPayIntentStatus.PENDING) {
11460
- return {
11461
- status: order.intentStatus === DaimoPayIntentStatus.SUCCESSFUL
11462
- ? "payment_completed"
11463
- : "payment_bounced",
11464
- paymentId,
11465
- };
11494
+ const { paymentInfo } = usePayContext();
11495
+ if (!paymentInfo || !paymentInfo.daimoPayOrder)
11496
+ return undefined;
11497
+ const order = paymentInfo.daimoPayOrder;
11498
+ const paymentId = writeDaimoPayOrderID(order.id);
11499
+ if (order.mode === DaimoPayOrderMode.HYDRATED) {
11500
+ if (order.intentStatus !== DaimoPayIntentStatus.PENDING) {
11501
+ if (order.intentStatus === DaimoPayIntentStatus.SUCCESSFUL) {
11502
+ return { paymentId, status: "payment_completed" };
11466
11503
  }
11467
- else if (order.sourceStatus != DaimoPayOrderStatusSource.WAITING_PAYMENT) {
11468
- return {
11469
- status: "payment_started",
11470
- paymentId,
11471
- };
11504
+ else {
11505
+ return { paymentId, status: "payment_bounced" };
11472
11506
  }
11473
11507
  }
11474
- return {
11475
- status: "payment_pending",
11476
- paymentId,
11477
- };
11478
- })();
11479
- return status;
11508
+ else if (order.sourceStatus !== DaimoPayOrderStatusSource.WAITING_PAYMENT) {
11509
+ return { paymentId, status: "payment_started" };
11510
+ }
11511
+ }
11512
+ return { paymentId, status: "payment_pending" };
11480
11513
  }
11481
11514
 
11482
- export { Avatar, Chain as ChainIcon, Context, DaimoPayButton, DaimoPayProvider, types$1 as Types, defaultConfig as getDefaultConfig, useChainIsSupported, useChains, useDaimoPayStatus, useIsMounted, useModal, wallets };
11515
+ export { Avatar, Chain as ChainIcon, Context, DaimoPayButton, DaimoPayProvider, types$1 as Types, defaultConfig as getDefaultConfig, useChainIsSupported, useChains, useDaimoPayStatus, useIsMounted, useModal, usePayContext, wallets };
11483
11516
  //# sourceMappingURL=index.es.js.map