@daimo/pay 1.16.0 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/build/hooks/useConnect.d.ts +8 -8
  2. package/build/index.d.ts +626 -15
  3. package/build/package.json.js +6 -4
  4. package/build/package.json.js.map +1 -1
  5. package/build/src/assets/MobileWithLogos.js +320 -1
  6. package/build/src/assets/MobileWithLogos.js.map +1 -1
  7. package/build/src/assets/ScanIconWithLogos.js +216 -10
  8. package/build/src/assets/ScanIconWithLogos.js.map +1 -1
  9. package/build/src/assets/browsers.js +963 -7
  10. package/build/src/assets/browsers.js.map +1 -1
  11. package/build/src/assets/chains.js +633 -103
  12. package/build/src/assets/chains.js.map +1 -1
  13. package/build/src/assets/coins.js +38 -1
  14. package/build/src/assets/coins.js.map +1 -1
  15. package/build/src/assets/crepe.js +35 -1
  16. package/build/src/assets/crepe.js.map +1 -1
  17. package/build/src/assets/icons.js +258 -15
  18. package/build/src/assets/icons.js.map +1 -1
  19. package/build/src/assets/logos.js +1510 -140
  20. package/build/src/assets/logos.js.map +1 -1
  21. package/build/src/assets/wallet.js +32 -1
  22. package/build/src/assets/wallet.js.map +1 -1
  23. package/build/src/assets/wave.js +41 -1
  24. package/build/src/assets/wave.js.map +1 -1
  25. package/build/src/components/Common/Alert/index.js +4 -1
  26. package/build/src/components/Common/Alert/index.js.map +1 -1
  27. package/build/src/components/Common/Alert/styles.js +4 -4
  28. package/build/src/components/Common/Alert/styles.js.map +1 -1
  29. package/build/src/components/Common/AmountInput/AmountInputField.js +29 -18
  30. package/build/src/components/Common/AmountInput/AmountInputField.js.map +1 -1
  31. package/build/src/components/Common/AmountInput/index.js +112 -99
  32. package/build/src/components/Common/AmountInput/index.js.map +1 -1
  33. package/build/src/components/Common/Avatar/index.js +63 -51
  34. package/build/src/components/Common/Avatar/index.js.map +1 -1
  35. package/build/src/components/Common/Avatar/styles.js +9 -14
  36. package/build/src/components/Common/Avatar/styles.js.map +1 -1
  37. package/build/src/components/Common/BrowserIcon/index.js +15 -14
  38. package/build/src/components/Common/BrowserIcon/index.js.map +1 -1
  39. package/build/src/components/Common/BrowserIcon/styles.js +1 -1
  40. package/build/src/components/Common/BrowserIcon/styles.js.map +1 -1
  41. package/build/src/components/Common/Button/index.js +131 -25
  42. package/build/src/components/Common/Button/index.js.map +1 -1
  43. package/build/src/components/Common/Button/styles.js +20 -24
  44. package/build/src/components/Common/Button/styles.js.map +1 -1
  45. package/build/src/components/Common/Chain/index.js +130 -14
  46. package/build/src/components/Common/Chain/index.js.map +1 -1
  47. package/build/src/components/Common/Chain/styles.js +9 -13
  48. package/build/src/components/Common/Chain/styles.js.map +1 -1
  49. package/build/src/components/Common/ChainSelectList/index.js +232 -89
  50. package/build/src/components/Common/ChainSelectList/index.js.map +1 -1
  51. package/build/src/components/Common/ChainSelectList/styles.js +11 -13
  52. package/build/src/components/Common/ChainSelectList/styles.js.map +1 -1
  53. package/build/src/components/Common/CircleTimer.js +85 -41
  54. package/build/src/components/Common/CircleTimer.js.map +1 -1
  55. package/build/src/components/Common/ConnectorList/index.js +106 -80
  56. package/build/src/components/Common/ConnectorList/index.js.map +1 -1
  57. package/build/src/components/Common/ConnectorList/styles.js +28 -36
  58. package/build/src/components/Common/ConnectorList/styles.js.map +1 -1
  59. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +16 -9
  60. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -1
  61. package/build/src/components/Common/CopyToClipboard/index.js +3 -5
  62. package/build/src/components/Common/CopyToClipboard/index.js.map +1 -1
  63. package/build/src/components/Common/CustomQRCode/QRCode.js +120 -57
  64. package/build/src/components/Common/CustomQRCode/QRCode.js.map +1 -1
  65. package/build/src/components/Common/CustomQRCode/index.js +60 -10
  66. package/build/src/components/Common/CustomQRCode/index.js.map +1 -1
  67. package/build/src/components/Common/CustomQRCode/styles.js +6 -6
  68. package/build/src/components/Common/CustomQRCode/styles.js.map +1 -1
  69. package/build/src/components/Common/FitText/index.js +24 -17
  70. package/build/src/components/Common/FitText/index.js.map +1 -1
  71. package/build/src/components/Common/Modal/index.js +481 -267
  72. package/build/src/components/Common/Modal/index.js.map +1 -1
  73. package/build/src/components/Common/Modal/styles.js +44 -48
  74. package/build/src/components/Common/Modal/styles.js.map +1 -1
  75. package/build/src/components/Common/OptionsList/index.js +75 -33
  76. package/build/src/components/Common/OptionsList/index.js.map +1 -1
  77. package/build/src/components/Common/OptionsList/styles.js +7 -8
  78. package/build/src/components/Common/OptionsList/styles.js.map +1 -1
  79. package/build/src/components/Common/OrderHeader/index.js +109 -65
  80. package/build/src/components/Common/OrderHeader/index.js.map +1 -1
  81. package/build/src/components/Common/PaymentBreakdown/index.js +29 -7
  82. package/build/src/components/Common/PaymentBreakdown/index.js.map +1 -1
  83. package/build/src/components/Common/Portal/index.js +21 -22
  84. package/build/src/components/Common/Portal/index.js.map +1 -1
  85. package/build/src/components/Common/PoweredByFooter/index.js +39 -21
  86. package/build/src/components/Common/PoweredByFooter/index.js.map +1 -1
  87. package/build/src/components/Common/ScrollArea/index.js +107 -52
  88. package/build/src/components/Common/ScrollArea/index.js.map +1 -1
  89. package/build/src/components/Common/ScrollArea/styles.js +7 -11
  90. package/build/src/components/Common/ScrollArea/styles.js.map +1 -1
  91. package/build/src/components/Common/SelectAnotherMethodButton/index.js +67 -55
  92. package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -1
  93. package/build/src/components/Common/Spinner/index.js +56 -16
  94. package/build/src/components/Common/Spinner/index.js.map +1 -1
  95. package/build/src/components/Common/Spinner/styles.js +2 -2
  96. package/build/src/components/Common/Spinner/styles.js.map +1 -1
  97. package/build/src/components/Common/SwitchButton/index.js +18 -15
  98. package/build/src/components/Common/SwitchButton/index.js.map +1 -1
  99. package/build/src/components/Common/ThemedButton/index.js +37 -16
  100. package/build/src/components/Common/ThemedButton/index.js.map +1 -1
  101. package/build/src/components/Common/ThemedButton/styles.js +2 -2
  102. package/build/src/components/Common/ThemedButton/styles.js.map +1 -1
  103. package/build/src/components/Common/TokenChainLogo/index.js +14 -8
  104. package/build/src/components/Common/TokenChainLogo/index.js.map +1 -1
  105. package/build/src/components/Common/Tooltip/index.js +115 -83
  106. package/build/src/components/Common/Tooltip/index.js.map +1 -1
  107. package/build/src/components/Common/Tooltip/styles.js +8 -8
  108. package/build/src/components/Common/Tooltip/styles.js.map +1 -1
  109. package/build/src/components/Common/WalletChainLogo/index.js +13 -6
  110. package/build/src/components/Common/WalletChainLogo/index.js.map +1 -1
  111. package/build/src/components/DaimoPayButton/index.js +170 -180
  112. package/build/src/components/DaimoPayButton/index.js.map +1 -1
  113. package/build/src/components/DaimoPayButton/styles.js +4 -4
  114. package/build/src/components/DaimoPayButton/styles.js.map +1 -1
  115. package/build/src/components/DaimoPayModal/ConnectUsing.js +50 -24
  116. package/build/src/components/DaimoPayModal/ConnectUsing.js.map +1 -1
  117. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +303 -163
  118. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -1
  119. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +10 -12
  120. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -1
  121. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +69 -39
  122. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -1
  123. package/build/src/components/DaimoPayModal/index.js +409 -416
  124. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  125. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +15 -11
  126. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -1
  127. package/build/src/components/Pages/About/graphics.js +796 -130
  128. package/build/src/components/Pages/About/graphics.js.map +1 -1
  129. package/build/src/components/Pages/About/index.js +203 -110
  130. package/build/src/components/Pages/About/index.js.map +1 -1
  131. package/build/src/components/Pages/About/styles.js +11 -15
  132. package/build/src/components/Pages/About/styles.js.map +1 -1
  133. package/build/src/components/Pages/Confirmation/index.js +71 -48
  134. package/build/src/components/Pages/Confirmation/index.js.map +1 -1
  135. package/build/src/components/Pages/Connectors/index.js +50 -16
  136. package/build/src/components/Pages/Connectors/index.js.map +1 -1
  137. package/build/src/components/Pages/Connectors/styles.js +10 -10
  138. package/build/src/components/Pages/Connectors/styles.js.map +1 -1
  139. package/build/src/components/Pages/DownloadApp/index.js +23 -18
  140. package/build/src/components/Pages/DownloadApp/index.js.map +1 -1
  141. package/build/src/components/Pages/Error/index.js +27 -15
  142. package/build/src/components/Pages/Error/index.js.map +1 -1
  143. package/build/src/components/Pages/MobileConnectors/index.js +50 -44
  144. package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
  145. package/build/src/components/Pages/MobileConnectors/styles.js +9 -11
  146. package/build/src/components/Pages/MobileConnectors/styles.js.map +1 -1
  147. package/build/src/components/Pages/Onboarding/index.js +20 -4
  148. package/build/src/components/Pages/Onboarding/index.js.map +1 -1
  149. package/build/src/components/Pages/Onboarding/styles.js +13 -13
  150. package/build/src/components/Pages/Onboarding/styles.js.map +1 -1
  151. package/build/src/components/Pages/PayWithToken/index.js +133 -122
  152. package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
  153. package/build/src/components/Pages/SelectAmount/index.js +12 -5
  154. package/build/src/components/Pages/SelectAmount/index.js.map +1 -1
  155. package/build/src/components/Pages/SelectDepositAddressAmount/index.js +56 -38
  156. package/build/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -1
  157. package/build/src/components/Pages/SelectDepositAddressChain/index.js +57 -40
  158. package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -1
  159. package/build/src/components/Pages/SelectExchange/index.js +29 -24
  160. package/build/src/components/Pages/SelectExchange/index.js.map +1 -1
  161. package/build/src/components/Pages/SelectExternalAmount/index.js +57 -41
  162. package/build/src/components/Pages/SelectExternalAmount/index.js.map +1 -1
  163. package/build/src/components/Pages/SelectMethod/index.js +201 -183
  164. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  165. package/build/src/components/Pages/SelectToken/index.js +72 -46
  166. package/build/src/components/Pages/SelectToken/index.js.map +1 -1
  167. package/build/src/components/Pages/SelectWalletAmount/index.js +40 -32
  168. package/build/src/components/Pages/SelectWalletAmount/index.js.map +1 -1
  169. package/build/src/components/Pages/SelectWalletChain/index.js +40 -36
  170. package/build/src/components/Pages/SelectWalletChain/index.js.map +1 -1
  171. package/build/src/components/Pages/SelectZKP/index.js +29 -24
  172. package/build/src/components/Pages/SelectZKP/index.js.map +1 -1
  173. package/build/src/components/Pages/Solana/ConnectorSolana/index.js +60 -45
  174. package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -1
  175. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +73 -61
  176. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
  177. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js +12 -5
  178. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -1
  179. package/build/src/components/Pages/SwitchNetworks/index.js +29 -10
  180. package/build/src/components/Pages/SwitchNetworks/index.js.map +1 -1
  181. package/build/src/components/Pages/WaitingDepositAddress/index.js +332 -184
  182. package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -1
  183. package/build/src/components/Pages/WaitingExternal/index.js +69 -46
  184. package/build/src/components/Pages/WaitingExternal/index.js.map +1 -1
  185. package/build/src/components/Pages/WaitingWallet/index.js +37 -16
  186. package/build/src/components/Pages/WaitingWallet/index.js.map +1 -1
  187. package/build/src/components/Spinners/CircleSpinner/index.js +96 -7
  188. package/build/src/components/Spinners/CircleSpinner/index.js.map +1 -1
  189. package/build/src/components/Spinners/CircleSpinner/styles.js +6 -7
  190. package/build/src/components/Spinners/CircleSpinner/styles.js.map +1 -1
  191. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js +18 -9
  192. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js.map +1 -1
  193. package/build/src/components/Spinners/SquircleSpinner/index.js +60 -7
  194. package/build/src/components/Spinners/SquircleSpinner/index.js.map +1 -1
  195. package/build/src/components/Spinners/SquircleSpinner/styles.js +4 -4
  196. package/build/src/components/Spinners/SquircleSpinner/styles.js.map +1 -1
  197. package/build/src/components/Spinners/TokenLogoSpinner/index.js +12 -1
  198. package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -1
  199. package/build/src/components/Spinners/TokenLogoSpinner/styles.js +1 -1
  200. package/build/src/components/Spinners/TokenLogoSpinner/styles.js.map +1 -1
  201. package/build/src/components/Spinners/WalletPaymentSpinner/index.js +27 -20
  202. package/build/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -1
  203. package/build/src/components/Spinners/styles.js +3 -4
  204. package/build/src/components/Spinners/styles.js.map +1 -1
  205. package/build/src/constants/defaultTheme.js +1 -1
  206. package/build/src/constants/defaultTheme.js.map +1 -1
  207. package/build/src/constants/routes.js +29 -30
  208. package/build/src/constants/routes.js.map +1 -1
  209. package/build/src/defaultConfig.js +49 -46
  210. package/build/src/defaultConfig.js.map +1 -1
  211. package/build/src/defaultConnectors.js +32 -19
  212. package/build/src/defaultConnectors.js.map +1 -1
  213. package/build/src/hooks/useChainIsSupported.js +3 -5
  214. package/build/src/hooks/useChainIsSupported.js.map +1 -1
  215. package/build/src/hooks/useChains.js +3 -4
  216. package/build/src/hooks/useChains.js.map +1 -1
  217. package/build/src/hooks/useConnect.js +51 -39
  218. package/build/src/hooks/useConnect.js.map +1 -1
  219. package/build/src/hooks/useConnectCallback.js +15 -12
  220. package/build/src/hooks/useConnectCallback.js.map +1 -1
  221. package/build/src/hooks/useConnectors.js +2 -2
  222. package/build/src/hooks/useConnectors.js.map +1 -1
  223. package/build/src/hooks/useDaimoPay.js +98 -82
  224. package/build/src/hooks/useDaimoPay.js.map +1 -1
  225. package/build/src/hooks/useDaimoPayStatus.js +4 -15
  226. package/build/src/hooks/useDaimoPayStatus.js.map +1 -1
  227. package/build/src/hooks/useDaimoPayUI.js +7 -7
  228. package/build/src/hooks/useDaimoPayUI.js.map +1 -1
  229. package/build/src/hooks/useDepositAddressOptions.js +29 -25
  230. package/build/src/hooks/useDepositAddressOptions.js.map +1 -1
  231. package/build/src/hooks/useEnsFallbackConfig.js +5 -5
  232. package/build/src/hooks/useEnsFallbackConfig.js.map +1 -1
  233. package/build/src/hooks/useExternalPaymentOptions.js +57 -52
  234. package/build/src/hooks/useExternalPaymentOptions.js.map +1 -1
  235. package/build/src/hooks/useFitText.js +120 -135
  236. package/build/src/hooks/useFitText.js.map +1 -1
  237. package/build/src/hooks/useFocusTrap.js +33 -37
  238. package/build/src/hooks/useFocusTrap.js.map +1 -1
  239. package/build/src/hooks/useIsMobile.js +3 -3
  240. package/build/src/hooks/useIsMobile.js.map +1 -1
  241. package/build/src/hooks/useIsMounted.js +3 -5
  242. package/build/src/hooks/useIsMounted.js.map +1 -1
  243. package/build/src/hooks/useLastConnector.js +15 -15
  244. package/build/src/hooks/useLastConnector.js.map +1 -1
  245. package/build/src/hooks/useLocales.js +44 -42
  246. package/build/src/hooks/useLocales.js.map +1 -1
  247. package/build/src/hooks/useLockBodyScroll.js +38 -44
  248. package/build/src/hooks/useLockBodyScroll.js.map +1 -1
  249. package/build/src/hooks/useOrderUsdLimits.js +17 -19
  250. package/build/src/hooks/useOrderUsdLimits.js.map +1 -1
  251. package/build/src/hooks/usePayContext.js +3 -5
  252. package/build/src/hooks/usePayContext.js.map +1 -1
  253. package/build/src/hooks/usePaymentState.js +351 -324
  254. package/build/src/hooks/usePaymentState.js.map +1 -1
  255. package/build/src/hooks/usePrevious.js +6 -7
  256. package/build/src/hooks/usePrevious.js.map +1 -1
  257. package/build/src/hooks/useSolanaPaymentOptions.js +33 -33
  258. package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
  259. package/build/src/hooks/useTokenOptions.js +129 -112
  260. package/build/src/hooks/useTokenOptions.js.map +1 -1
  261. package/build/src/hooks/useUntronAvailability.js +26 -34
  262. package/build/src/hooks/useUntronAvailability.js.map +1 -1
  263. package/build/src/hooks/useWalletPaymentOptions.js +83 -78
  264. package/build/src/hooks/useWalletPaymentOptions.js.map +1 -1
  265. package/build/src/hooks/useWindowSize.js +16 -16
  266. package/build/src/hooks/useWindowSize.js.map +1 -1
  267. package/build/src/localizations/index.js +28 -31
  268. package/build/src/localizations/index.js.map +1 -1
  269. package/build/src/localizations/locales/ar-AE.js +88 -88
  270. package/build/src/localizations/locales/ar-AE.js.map +1 -1
  271. package/build/src/localizations/locales/ca-AD.js +88 -88
  272. package/build/src/localizations/locales/ca-AD.js.map +1 -1
  273. package/build/src/localizations/locales/ee-EE.js +96 -88
  274. package/build/src/localizations/locales/ee-EE.js.map +1 -1
  275. package/build/src/localizations/locales/en-US.js +134 -126
  276. package/build/src/localizations/locales/en-US.js.map +1 -1
  277. package/build/src/localizations/locales/es-ES.js +126 -126
  278. package/build/src/localizations/locales/es-ES.js.map +1 -1
  279. package/build/src/localizations/locales/fa-IR.js +88 -88
  280. package/build/src/localizations/locales/fa-IR.js.map +1 -1
  281. package/build/src/localizations/locales/fr-FR.js +88 -88
  282. package/build/src/localizations/locales/fr-FR.js.map +1 -1
  283. package/build/src/localizations/locales/ja-JP.js +88 -88
  284. package/build/src/localizations/locales/ja-JP.js.map +1 -1
  285. package/build/src/localizations/locales/pt-BR.js +96 -88
  286. package/build/src/localizations/locales/pt-BR.js.map +1 -1
  287. package/build/src/localizations/locales/ru-RU.js +92 -88
  288. package/build/src/localizations/locales/ru-RU.js.map +1 -1
  289. package/build/src/localizations/locales/tr-TR.js +96 -88
  290. package/build/src/localizations/locales/tr-TR.js.map +1 -1
  291. package/build/src/localizations/locales/vi-VN.js +96 -88
  292. package/build/src/localizations/locales/vi-VN.js.map +1 -1
  293. package/build/src/localizations/locales/zh-CN.js +88 -88
  294. package/build/src/localizations/locales/zh-CN.js.map +1 -1
  295. package/build/src/payment/paymentEffects.js +237 -265
  296. package/build/src/payment/paymentEffects.js.map +1 -1
  297. package/build/src/payment/paymentFsm.js +165 -186
  298. package/build/src/payment/paymentFsm.js.map +1 -1
  299. package/build/src/payment/paymentStore.js +8 -10
  300. package/build/src/payment/paymentStore.js.map +1 -1
  301. package/build/src/payment/paymentUtils.js +5 -9
  302. package/build/src/payment/paymentUtils.js.map +1 -1
  303. package/build/src/provider/DaimoPayProvider.js +258 -249
  304. package/build/src/provider/DaimoPayProvider.js.map +1 -1
  305. package/build/src/provider/PayContext.js +0 -1
  306. package/build/src/provider/PayContext.js.map +1 -1
  307. package/build/src/provider/PaymentProvider.js +18 -17
  308. package/build/src/provider/PaymentProvider.js.map +1 -1
  309. package/build/src/provider/SolanaContextProvider.js +6 -3
  310. package/build/src/provider/SolanaContextProvider.js.map +1 -1
  311. package/build/src/provider/Web3ContextProvider.js +23 -23
  312. package/build/src/provider/Web3ContextProvider.js.map +1 -1
  313. package/build/src/stateStore.js +28 -74
  314. package/build/src/stateStore.js.map +1 -1
  315. package/build/src/styles/defaultTheme.js +64 -73
  316. package/build/src/styles/defaultTheme.js.map +1 -1
  317. package/build/src/styles/index.js +202 -217
  318. package/build/src/styles/index.js.map +1 -1
  319. package/build/src/styles/styled/index.js +0 -10
  320. package/build/src/styles/styled/index.js.map +1 -1
  321. package/build/src/styles/themes/base.js +136 -136
  322. package/build/src/styles/themes/base.js.map +1 -1
  323. package/build/src/styles/themes/index.js.map +1 -1
  324. package/build/src/styles/themes/midnight.js +71 -71
  325. package/build/src/styles/themes/midnight.js.map +1 -1
  326. package/build/src/styles/themes/minimal.js +75 -75
  327. package/build/src/styles/themes/minimal.js.map +1 -1
  328. package/build/src/styles/themes/nouns.js +76 -76
  329. package/build/src/styles/themes/nouns.js.map +1 -1
  330. package/build/src/styles/themes/retro.js +88 -88
  331. package/build/src/styles/themes/retro.js.map +1 -1
  332. package/build/src/styles/themes/rounded.js +84 -84
  333. package/build/src/styles/themes/rounded.js.map +1 -1
  334. package/build/src/styles/themes/soft.js +66 -66
  335. package/build/src/styles/themes/soft.js.map +1 -1
  336. package/build/src/styles/themes/web95.js +95 -95
  337. package/build/src/styles/themes/web95.js.map +1 -1
  338. package/build/src/utils/exports.js +0 -1
  339. package/build/src/utils/exports.js.map +1 -1
  340. package/build/src/utils/format.js +25 -63
  341. package/build/src/utils/format.js.map +1 -1
  342. package/build/src/utils/index.js +23 -20
  343. package/build/src/utils/index.js.map +1 -1
  344. package/build/src/utils/p3.js +8 -9
  345. package/build/src/utils/p3.js.map +1 -1
  346. package/build/src/utils/platform.js +6 -8
  347. package/build/src/utils/platform.js.map +1 -1
  348. package/build/src/utils/polling.js +31 -31
  349. package/build/src/utils/polling.js.map +1 -1
  350. package/build/src/utils/supportUrl.js +9 -9
  351. package/build/src/utils/supportUrl.js.map +1 -1
  352. package/build/src/utils/trpc.js +11 -11
  353. package/build/src/utils/trpc.js.map +1 -1
  354. package/build/src/utils/validateInput.js +9 -29
  355. package/build/src/utils/validateInput.js.map +1 -1
  356. package/build/src/wallets/index.js +13 -22
  357. package/build/src/wallets/index.js.map +1 -1
  358. package/build/src/wallets/useWallets.js +183 -181
  359. package/build/src/wallets/useWallets.js.map +1 -1
  360. package/build/src/wallets/walletConfigs.js +230 -235
  361. package/build/src/wallets/walletConfigs.js.map +1 -1
  362. package/build/src/world-mini-app/WorldPayButton.js +113 -118
  363. package/build/src/world-mini-app/WorldPayButton.js.map +1 -1
  364. package/build/src/world-mini-app/promptWorldPayment.js +49 -47
  365. package/build/src/world-mini-app/promptWorldPayment.js.map +1 -1
  366. package/build/types-7ed033b6.d.ts +66 -0
  367. package/build/world.d.ts +89 -1
  368. package/package.json +6 -4
@@ -6,200 +6,202 @@ import { MobileWithLogos } from '../assets/MobileWithLogos.js';
6
6
  import { useConnectors } from '../hooks/useConnectors.js';
7
7
  import useLocales from '../hooks/useLocales.js';
8
8
  import { usePayContext } from '../hooks/usePayContext.js';
9
- import { isCoinbaseWalletConnector, isInjectedConnector, flattenChildren } from '../utils/index.js';
9
+ import { isBaseAccountConnector, isGeminiConnector, isInjectedConnector, flattenChildren } from '../utils/index.js';
10
10
  import { walletConfigs } from './walletConfigs.js';
11
11
 
12
- /** Special wallet ID for "other wallets" option. */
13
12
  const WALLET_ID_OTHER_WALLET = "otherWallet";
14
- /** Special wallet ID for "mobile wallets" option. */
15
13
  const WALLET_ID_MOBILE_WALLETS = "mobileWallets";
16
14
  const useWallet = (id) => {
17
- const wallets = useWallets();
18
- const wallet = wallets.find((c) => c.id === id);
19
- if (!wallet)
20
- return null;
21
- return wallet;
15
+ const wallets = useWallets();
16
+ const wallet = wallets.find((c) => c.id === id);
17
+ if (!wallet) return null;
18
+ return wallet;
22
19
  };
23
20
  const useWallets = (isMobile) => {
24
- const connectors = useConnectors();
25
- const context = usePayContext();
26
- const { showSolanaPaymentMethod } = context.paymentState;
27
- const { disableMobileInjector } = context;
28
- // Solana wallets available in the session (desktop & mobile)
29
- const solanaWallet = useWallet$1();
30
- const locales = useLocales();
31
- if (isMobile) {
32
- const mobileWallets = [];
33
- // Add injected wallet (if any) first, unless disabled
34
- if (!disableMobileInjector) {
35
- connectors.forEach((connector) => {
36
- if (isCoinbaseWalletConnector(connector.id))
37
- return;
38
- if (!isInjectedConnector(connector.type))
39
- return;
40
- // Skip any connectors that mention WalletConnect
41
- if (connector.name?.toLowerCase().includes("walletconnect"))
42
- return;
43
- mobileWallets.push({
44
- id: connector.id,
45
- connector,
46
- shortName: connector.name,
47
- iconConnector: connector.icon ? (jsx("img", { src: connector.icon, alt: connector.name })) : (jsx(WalletIcon, {})),
48
- iconShape: "squircle",
49
- });
50
- });
51
- }
52
- function addIfNotPresent(idList) {
53
- if (mobileWallets.find((w) => idList.includes(w.id)))
54
- return;
55
- if (mobileWallets.length >= 3)
56
- return;
57
- const wallet = assertNotNull(walletConfigs[idList], () => `missing ${idList}`);
58
- mobileWallets.push({
59
- id: idList,
60
- ...wallet,
61
- });
62
- }
63
- addIfNotPresent("metaMask, metaMask-io, io.metamask, io.metamask.mobile, metaMaskSDK");
64
- addIfNotPresent("com.trustwallet.app");
65
- const otherWalletsString = flattenChildren(locales.otherWallets).join("");
66
- const otherString = flattenChildren(locales.other).join("");
67
- // Add other wallet
21
+ const connectors = useConnectors();
22
+ const context = usePayContext();
23
+ const { showSolanaPaymentMethod } = context.paymentState;
24
+ const { disableMobileInjector } = context;
25
+ const solanaWallet = useWallet$1();
26
+ const locales = useLocales();
27
+ if (isMobile) {
28
+ let addIfNotPresent2 = function(idList) {
29
+ if (mobileWallets.find((w) => idList.includes(w.id))) return;
30
+ if (mobileWallets.length >= 3) return;
31
+ const wallet = assertNotNull(
32
+ walletConfigs[idList],
33
+ () => `missing ${idList}`
34
+ );
35
+ mobileWallets.push({
36
+ id: idList,
37
+ ...wallet
38
+ });
39
+ };
40
+ const mobileWallets = [];
41
+ if (!disableMobileInjector) {
42
+ connectors.forEach((connector) => {
43
+ if (isBaseAccountConnector(connector.id)) return;
44
+ if (isGeminiConnector(connector.id)) return;
45
+ if (!isInjectedConnector(connector.type)) return;
46
+ if (connector.name?.toLowerCase().includes("walletconnect")) return;
68
47
  mobileWallets.push({
69
- id: WALLET_ID_OTHER_WALLET,
70
- name: otherWalletsString,
71
- shortName: otherString,
72
- iconConnector: jsx(Logos.OtherWallets, {}),
73
- iconShape: "square",
74
- showInMobileConnectors: false,
48
+ id: connector.id,
49
+ connector,
50
+ shortName: connector.name,
51
+ iconConnector: connector.icon ? /* @__PURE__ */ jsx("img", { src: connector.icon, alt: connector.name }) : /* @__PURE__ */ jsx(WalletIcon, {}),
52
+ iconShape: "squircle"
75
53
  });
76
- return mobileWallets;
54
+ });
77
55
  }
78
- const wallets = connectors
79
- .filter((connector) => {
80
- // Skip any connectors that mention WalletConnect
81
- return !connector.name?.toLowerCase().includes("walletconnect");
82
- })
83
- .map((connector) => {
84
- // First, attempt to find a config by matching connector.id (existing logic).
85
- let walletConfigKey = Object.keys(walletConfigs).find((id) => id
86
- .split(",")
87
- .map((i) => i.trim())
88
- .includes(connector.id));
89
- // If not found by id, attempt a fuzzy match on connector.name.
90
- if (!walletConfigKey && connector.name) {
91
- walletConfigKey = Object.keys(walletConfigs).find((key) => {
92
- const cfgName = walletConfigs[key].name?.toLowerCase();
93
- const connName = connector.name.toLowerCase();
94
- return (cfgName &&
95
- (cfgName.includes(connName) || connName.includes(cfgName)));
96
- });
97
- }
98
- const c = {
99
- id: connector.id,
100
- name: connector.name ?? connector.id ?? connector.type,
101
- icon: connector.icon ? (jsx("img", { src: connector.icon, alt: connector.name, width: "100%", height: "100%" })) : (jsx(WalletIcon, {})),
102
- connector,
103
- iconShape: connector.id === "io.rabby" ? "circle" : "squircle",
104
- isInstalled: connector.type === "mock" ||
105
- (connector.type === "injected" && connector.id !== "metaMask") ||
106
- connector.type === "farcasterFrame" ||
107
- isCoinbaseWalletConnector(connector.id),
108
- };
109
- if (walletConfigKey) {
110
- const wallet = walletConfigs[walletConfigKey];
111
- return {
112
- ...c,
113
- iconConnector: connector.icon ? (jsx("img", { src: connector.icon, alt: connector.name, width: "100%", height: "100%" })) : undefined,
114
- ...wallet,
115
- };
56
+ addIfNotPresent2(
57
+ "metaMask, metaMask-io, io.metamask, io.metamask.mobile, metaMaskSDK"
58
+ );
59
+ addIfNotPresent2("com.trustwallet.app");
60
+ const otherWalletsString = flattenChildren(locales.otherWallets).join("");
61
+ const otherString = flattenChildren(locales.other).join("");
62
+ mobileWallets.push({
63
+ id: WALLET_ID_OTHER_WALLET,
64
+ name: otherWalletsString,
65
+ shortName: otherString,
66
+ iconConnector: /* @__PURE__ */ jsx(Logos.OtherWallets, {}),
67
+ iconShape: "square",
68
+ showInMobileConnectors: false
69
+ });
70
+ return mobileWallets;
71
+ }
72
+ const wallets = connectors.filter((connector) => {
73
+ return !connector.name?.toLowerCase().includes("walletconnect");
74
+ }).map((connector) => {
75
+ let walletConfigKey = Object.keys(walletConfigs).find(
76
+ (id) => id.split(",").map((i) => i.trim()).includes(connector.id)
77
+ );
78
+ if (!walletConfigKey && connector.name) {
79
+ walletConfigKey = Object.keys(walletConfigs).find((key) => {
80
+ const cfgName = walletConfigs[key].name?.toLowerCase();
81
+ const connName = connector.name.toLowerCase();
82
+ return cfgName && (cfgName.includes(connName) || connName.includes(cfgName));
83
+ });
84
+ }
85
+ const c = {
86
+ id: connector.id,
87
+ name: connector.name ?? connector.id ?? connector.type,
88
+ icon: connector.icon ? /* @__PURE__ */ jsx(
89
+ "img",
90
+ {
91
+ src: connector.icon,
92
+ alt: connector.name,
93
+ width: "100%",
94
+ height: "100%"
116
95
  }
117
- return c;
96
+ ) : /* @__PURE__ */ jsx(WalletIcon, {}),
97
+ connector,
98
+ iconShape: connector.id === "io.rabby" ? "circle" : "squircle",
99
+ isInstalled: connector.type === "mock" || connector.type === "injected" && connector.id !== "metaMask" || connector.type === "farcasterFrame" || isBaseAccountConnector(connector.id) || isGeminiConnector(connector.id)
100
+ };
101
+ if (walletConfigKey) {
102
+ const wallet = walletConfigs[walletConfigKey];
103
+ return {
104
+ ...c,
105
+ iconConnector: connector.icon ? /* @__PURE__ */ jsx(
106
+ "img",
107
+ {
108
+ src: connector.icon,
109
+ alt: connector.name,
110
+ width: "100%",
111
+ height: "100%"
112
+ }
113
+ ) : void 0,
114
+ ...wallet
115
+ };
116
+ }
117
+ return c;
118
+ });
119
+ wallets.push({
120
+ id: WALLET_ID_MOBILE_WALLETS,
121
+ name: "Mobile Wallets",
122
+ shortName: "Mobile",
123
+ icon: /* @__PURE__ */ jsx(
124
+ "div",
125
+ {
126
+ style: {
127
+ width: "100%",
128
+ height: "100%",
129
+ overflow: "hidden",
130
+ display: "flex",
131
+ alignItems: "center",
132
+ justifyContent: "center",
133
+ transform: "scale(1.2)",
134
+ transformOrigin: "center center"
135
+ },
136
+ children: /* @__PURE__ */ jsx(MobileWithLogos, {})
137
+ }
138
+ ),
139
+ iconConnector: /* @__PURE__ */ jsx(
140
+ "div",
141
+ {
142
+ style: {
143
+ width: "100%",
144
+ height: "100%",
145
+ overflow: "hidden",
146
+ display: "flex",
147
+ alignItems: "center",
148
+ justifyContent: "center",
149
+ transform: "scale(1.2)",
150
+ transformOrigin: "center center"
151
+ },
152
+ children: /* @__PURE__ */ jsx(MobileWithLogos, {})
153
+ }
154
+ )
155
+ });
156
+ if (showSolanaPaymentMethod) {
157
+ const solanaAdapters = solanaWallet.wallets ?? [];
158
+ wallets.forEach((w) => {
159
+ if (!w.name) return;
160
+ const evm = w.name.toLowerCase();
161
+ const match = solanaAdapters.find((sw) => {
162
+ const sol = sw.adapter.name.toLowerCase();
163
+ return evm.includes(sol) || sol.includes(evm);
164
+ });
165
+ if (match) {
166
+ w.solanaConnectorName = match.adapter.name;
167
+ }
118
168
  });
119
- wallets.push({
120
- id: WALLET_ID_MOBILE_WALLETS,
121
- name: "Mobile Wallets",
122
- shortName: "Mobile",
123
- icon: (jsx("div", { style: {
124
- width: "100%",
125
- height: "100%",
126
- overflow: "hidden",
127
- display: "flex",
128
- alignItems: "center",
129
- justifyContent: "center",
130
- transform: "scale(1.2)",
131
- transformOrigin: "center center",
132
- }, children: jsx(MobileWithLogos, {}) })),
133
- iconConnector: (jsx("div", { style: {
134
- width: "100%",
135
- height: "100%",
136
- overflow: "hidden",
137
- display: "flex",
138
- alignItems: "center",
139
- justifyContent: "center",
140
- transform: "scale(1.2)",
141
- transformOrigin: "center center",
142
- }, children: jsx(MobileWithLogos, {}) })),
169
+ const unmatched = solanaAdapters.filter(
170
+ (sw) => !wallets.find((w) => w.solanaConnectorName === sw.adapter.name)
171
+ );
172
+ unmatched.forEach((sw) => {
173
+ wallets.push({
174
+ id: `solana-${sw.adapter.name}`,
175
+ name: sw.adapter.name,
176
+ shortName: sw.adapter.name,
177
+ icon: /* @__PURE__ */ jsx(SquircleIcon, { icon: sw.adapter.icon, alt: sw.adapter.name }),
178
+ iconConnector: /* @__PURE__ */ jsx(SquircleIcon, { icon: sw.adapter.icon, alt: sw.adapter.name }),
179
+ iconShape: "squircle",
180
+ solanaConnectorName: sw.adapter.name
181
+ });
143
182
  });
144
- if (showSolanaPaymentMethod) {
145
- const solanaAdapters = solanaWallet.wallets ?? [];
146
- // Merge by fuzzy name matching (includes comparison)
147
- wallets.forEach((w) => {
148
- // Skip wallets without a usable name to avoid matching everything
149
- if (!w.name)
150
- return;
151
- const evm = w.name.toLowerCase();
152
- const match = solanaAdapters.find((sw) => {
153
- const sol = sw.adapter.name.toLowerCase();
154
- return evm.includes(sol) || sol.includes(evm);
155
- });
156
- if (match) {
157
- w.solanaConnectorName = match.adapter.name;
158
- }
159
- });
160
- const unmatched = solanaAdapters.filter((sw) => !wallets.find((w) => w.solanaConnectorName === sw.adapter.name));
161
- unmatched.forEach((sw) => {
162
- wallets.push({
163
- id: `solana-${sw.adapter.name}`,
164
- name: sw.adapter.name,
165
- shortName: sw.adapter.name,
166
- icon: jsx(SquircleIcon, { icon: sw.adapter.icon, alt: sw.adapter.name }),
167
- iconConnector: (jsx(SquircleIcon, { icon: sw.adapter.icon, alt: sw.adapter.name })),
168
- iconShape: "squircle",
169
- solanaConnectorName: sw.adapter.name,
170
- });
171
- });
172
- }
173
- return (wallets
174
- // remove duplicate ids
175
- .filter((wallet, index, self) => self.findIndex((w) => w.id === wallet.id) === index)
176
- // remove wallet with id coinbaseWalletSDK if wallet with id 'com.coinbase.wallet' exists
177
- .filter((wallet, index, self) => !(wallet.id === "coinbaseWalletSDK" &&
178
- self.find((w) => w.id === "com.coinbase.wallet")))
179
- // remove wallet with id io.metamask if wallet with id 'metaMask' exists
180
- .filter((wallet, index, self) => !((wallet.id === "metaMaskSDK" || wallet.id === "metaMask") &&
181
- self.find((w) => w.id === "io.metamask" || w.id === "io.metamask.mobile")))
182
- // remove wallet with id 'com.warpcast.mobile' if wallet with id 'farcaster' exists
183
- .filter((wallet, index, self) => !(wallet.id === "com.warpcast.mobile" &&
184
- self.find((w) => w.id === "farcaster")))
185
- // order by isInstalled injected connectors first
186
- .sort((a, b) => {
187
- const AisInstalled = a.isInstalled && isInjectedConnector(a.connector?.type);
188
- const BisInstalled = b.isInstalled && isInjectedConnector(b.connector?.type);
189
- if (AisInstalled && !BisInstalled)
190
- return -1;
191
- if (!AisInstalled && BisInstalled)
192
- return 1;
193
- return 0;
194
- })
195
- // order "mobile wallets" option last
196
- .sort((a, b) => {
197
- if (a.id === WALLET_ID_MOBILE_WALLETS)
198
- return 1;
199
- if (b.id === WALLET_ID_MOBILE_WALLETS)
200
- return -1;
201
- return 0;
202
- }));
183
+ }
184
+ return wallets.filter(
185
+ (wallet, index, self) => self.findIndex((w) => w.id === wallet.id) === index
186
+ ).filter(
187
+ (wallet, index, self) => !(wallet.id === "coinbaseWalletSDK" && self.find((w) => w.id === "com.coinbase.wallet"))
188
+ ).filter(
189
+ (wallet, index, self) => !((wallet.id === "metaMaskSDK" || wallet.id === "metaMask") && self.find(
190
+ (w) => w.id === "io.metamask" || w.id === "io.metamask.mobile"
191
+ ))
192
+ ).filter(
193
+ (wallet, index, self) => !(wallet.id === "com.warpcast.mobile" && self.find((w) => w.id === "farcaster"))
194
+ ).sort((a, b) => {
195
+ const AisInstalled = a.isInstalled && isInjectedConnector(a.connector?.type);
196
+ const BisInstalled = b.isInstalled && isInjectedConnector(b.connector?.type);
197
+ if (AisInstalled && !BisInstalled) return -1;
198
+ if (!AisInstalled && BisInstalled) return 1;
199
+ return 0;
200
+ }).sort((a, b) => {
201
+ if (a.id === WALLET_ID_MOBILE_WALLETS) return 1;
202
+ if (b.id === WALLET_ID_MOBILE_WALLETS) return -1;
203
+ return 0;
204
+ });
203
205
  };
204
206
 
205
207
  export { WALLET_ID_MOBILE_WALLETS, WALLET_ID_OTHER_WALLET, useWallet, useWallets };
@@ -1 +1 @@
1
- {"version":3,"file":"useWallets.js","sources":["../../../src/wallets/useWallets.tsx"],"sourcesContent":[null],"names":["useSolanaWalletAdapter","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"useWallets.js","sources":["../../../src/wallets/useWallets.tsx"],"sourcesContent":["import { assertNotNull } from \"@daimo/pay-common\";\nimport { Connector } from \"wagmi\";\n\nimport { useWallet as useSolanaWalletAdapter } from \"@solana/wallet-adapter-react\";\nimport Logos, { SquircleIcon, WalletIcon } from \"../assets/logos\";\nimport MobileWithLogos from \"../assets/MobileWithLogos\";\nimport { useConnectors } from \"../hooks/useConnectors\";\nimport useLocales from \"../hooks/useLocales\";\nimport { usePayContext } from \"../hooks/usePayContext\";\nimport { SolanaWalletName } from \"../provider/SolanaContextProvider\";\nimport {\n flattenChildren,\n isBaseAccountConnector,\n isGeminiConnector,\n isInjectedConnector,\n} from \"../utils\";\nimport { WalletConfigProps, walletConfigs } from \"./walletConfigs\";\n\n/** Special wallet ID for \"other wallets\" option. */\nexport const WALLET_ID_OTHER_WALLET = \"otherWallet\";\n/** Special wallet ID for \"mobile wallets\" option. */\nexport const WALLET_ID_MOBILE_WALLETS = \"mobileWallets\";\n\nexport type WalletProps = {\n id: string;\n connector?: Connector;\n isInstalled?: boolean;\n /** Name of the matching Solana wallet adapter (if any) */\n solanaConnectorName?: SolanaWalletName;\n} & WalletConfigProps;\n\nexport const useWallet = (id: string): WalletProps | null => {\n const wallets = useWallets();\n const wallet = wallets.find((c) => c.id === id);\n if (!wallet) return null;\n return wallet;\n};\n\nexport const useWallets = (isMobile?: boolean): WalletProps[] => {\n const connectors = useConnectors();\n const context = usePayContext();\n const { showSolanaPaymentMethod } = context.paymentState;\n const { disableMobileInjector } = context;\n // Solana wallets available in the session (desktop & mobile)\n const solanaWallet = useSolanaWalletAdapter();\n const locales = useLocales();\n if (isMobile) {\n const mobileWallets: WalletProps[] = [];\n\n // Add injected wallet (if any) first, unless disabled\n if (!disableMobileInjector) {\n connectors.forEach((connector) => {\n if (isBaseAccountConnector(connector.id)) return;\n if (isGeminiConnector(connector.id)) return;\n if (!isInjectedConnector(connector.type)) return;\n // Skip any connectors that mention WalletConnect\n if (connector.name?.toLowerCase().includes(\"walletconnect\")) return;\n mobileWallets.push({\n id: connector.id,\n connector,\n shortName: connector.name,\n iconConnector: connector.icon ? (\n <img src={connector.icon} alt={connector.name} />\n ) : (\n <WalletIcon />\n ),\n iconShape: \"squircle\",\n });\n });\n }\n\n function addIfNotPresent(idList: string) {\n if (mobileWallets.find((w) => idList.includes(w.id))) return;\n if (mobileWallets.length >= 3) return;\n const wallet = assertNotNull(\n walletConfigs[idList],\n () => `missing ${idList}`,\n );\n mobileWallets.push({\n id: idList,\n ...wallet,\n });\n }\n\n addIfNotPresent(\n \"metaMask, metaMask-io, io.metamask, io.metamask.mobile, metaMaskSDK\",\n );\n addIfNotPresent(\"com.trustwallet.app\");\n const otherWalletsString = flattenChildren(locales.otherWallets).join(\"\");\n const otherString = flattenChildren(locales.other).join(\"\");\n // Add other wallet\n mobileWallets.push({\n id: WALLET_ID_OTHER_WALLET,\n name: otherWalletsString,\n shortName: otherString,\n iconConnector: <Logos.OtherWallets />,\n iconShape: \"square\",\n showInMobileConnectors: false,\n });\n\n return mobileWallets;\n }\n\n const wallets = connectors\n .filter((connector) => {\n // Skip any connectors that mention WalletConnect\n return !connector.name?.toLowerCase().includes(\"walletconnect\");\n })\n .map((connector): WalletProps => {\n // First, attempt to find a config by matching connector.id (existing logic).\n let walletConfigKey: string | undefined = Object.keys(walletConfigs).find(\n (id) =>\n id\n .split(\",\")\n .map((i) => i.trim())\n .includes(connector.id),\n );\n\n // If not found by id, attempt a fuzzy match on connector.name.\n if (!walletConfigKey && connector.name) {\n walletConfigKey = Object.keys(walletConfigs).find((key) => {\n const cfgName = walletConfigs[key].name?.toLowerCase();\n const connName = connector.name!.toLowerCase();\n return (\n cfgName &&\n (cfgName.includes(connName) || connName.includes(cfgName))\n );\n });\n }\n\n const c: WalletProps = {\n id: connector.id,\n name: connector.name ?? connector.id ?? connector.type,\n icon: connector.icon ? (\n <img\n src={connector.icon}\n alt={connector.name}\n width={\"100%\"}\n height={\"100%\"}\n />\n ) : (\n <WalletIcon />\n ),\n connector,\n iconShape: connector.id === \"io.rabby\" ? \"circle\" : \"squircle\",\n isInstalled:\n connector.type === \"mock\" ||\n (connector.type === \"injected\" && connector.id !== \"metaMask\") ||\n connector.type === \"farcasterFrame\" ||\n isBaseAccountConnector(connector.id) ||\n isGeminiConnector(connector.id),\n };\n\n if (walletConfigKey) {\n const wallet = walletConfigs[walletConfigKey];\n return {\n ...c,\n iconConnector: connector.icon ? (\n <img\n src={connector.icon}\n alt={connector.name}\n width={\"100%\"}\n height={\"100%\"}\n />\n ) : undefined,\n ...wallet,\n };\n }\n\n return c;\n });\n\n wallets.push({\n id: WALLET_ID_MOBILE_WALLETS,\n name: \"Mobile Wallets\",\n shortName: \"Mobile\",\n icon: (\n <div\n style={{\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transform: \"scale(1.2)\",\n transformOrigin: \"center center\",\n }}\n >\n <MobileWithLogos />\n </div>\n ),\n iconConnector: (\n <div\n style={{\n width: \"100%\",\n height: \"100%\",\n overflow: \"hidden\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n transform: \"scale(1.2)\",\n transformOrigin: \"center center\",\n }}\n >\n <MobileWithLogos />\n </div>\n ),\n });\n\n if (showSolanaPaymentMethod) {\n const solanaAdapters = solanaWallet.wallets ?? [];\n\n // Merge by fuzzy name matching (includes comparison)\n wallets.forEach((w) => {\n // Skip wallets without a usable name to avoid matching everything\n if (!w.name) return;\n\n const evm = w.name.toLowerCase();\n const match = solanaAdapters.find((sw) => {\n const sol = sw.adapter.name.toLowerCase();\n return evm.includes(sol) || sol.includes(evm);\n });\n\n if (match) {\n w.solanaConnectorName = match.adapter.name;\n }\n });\n\n const unmatched = solanaAdapters.filter(\n (sw) => !wallets.find((w) => w.solanaConnectorName === sw.adapter.name),\n );\n\n unmatched.forEach((sw) => {\n wallets.push({\n id: `solana-${sw.adapter.name}`,\n name: sw.adapter.name,\n shortName: sw.adapter.name,\n icon: <SquircleIcon icon={sw.adapter.icon} alt={sw.adapter.name} />,\n iconConnector: (\n <SquircleIcon icon={sw.adapter.icon} alt={sw.adapter.name} />\n ),\n iconShape: \"squircle\",\n solanaConnectorName: sw.adapter.name,\n });\n });\n }\n\n return (\n wallets\n // remove duplicate ids\n .filter(\n (wallet, index, self) =>\n self.findIndex((w) => w.id === wallet.id) === index,\n )\n // remove wallet with id coinbaseWalletSDK if wallet with id 'com.coinbase.wallet' exists\n .filter(\n (wallet, index, self) =>\n !(\n wallet.id === \"coinbaseWalletSDK\" &&\n self.find((w) => w.id === \"com.coinbase.wallet\")\n ),\n )\n // remove wallet with id io.metamask if wallet with id 'metaMask' exists\n .filter(\n (wallet, index, self) =>\n !(\n (wallet.id === \"metaMaskSDK\" || wallet.id === \"metaMask\") &&\n self.find(\n (w) => w.id === \"io.metamask\" || w.id === \"io.metamask.mobile\",\n )\n ),\n )\n // remove wallet with id 'com.warpcast.mobile' if wallet with id 'farcaster' exists\n .filter(\n (wallet, index, self) =>\n !(\n wallet.id === \"com.warpcast.mobile\" &&\n self.find((w) => w.id === \"farcaster\")\n ),\n )\n // order by isInstalled injected connectors first\n .sort((a, b) => {\n const AisInstalled =\n a.isInstalled && isInjectedConnector(a.connector?.type);\n const BisInstalled =\n b.isInstalled && isInjectedConnector(b.connector?.type);\n\n if (AisInstalled && !BisInstalled) return -1;\n if (!AisInstalled && BisInstalled) return 1;\n return 0;\n })\n // order \"mobile wallets\" option last\n .sort((a, b) => {\n if (a.id === WALLET_ID_MOBILE_WALLETS) return 1;\n if (b.id === WALLET_ID_MOBILE_WALLETS) return -1;\n return 0;\n })\n );\n};\n"],"names":["useSolanaWalletAdapter","addIfNotPresent"],"mappings":"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"}