@daimo/pay 1.19.5 → 1.19.6

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 (436) hide show
  1. package/build/_virtual/common.js +4 -0
  2. package/build/_virtual/common.js.map +1 -0
  3. package/build/_virtual/common2.js +4 -0
  4. package/build/_virtual/common2.js.map +1 -0
  5. package/build/_virtual/hash.js +4 -0
  6. package/build/_virtual/hash.js.map +1 -0
  7. package/build/_virtual/hash2.js +4 -0
  8. package/build/_virtual/hash2.js.map +1 -0
  9. package/build/_virtual/index.js +4 -0
  10. package/build/_virtual/index.js.map +1 -0
  11. package/build/_virtual/index2.js +4 -0
  12. package/build/_virtual/index2.js.map +1 -0
  13. package/build/_virtual/inherits_browser.js +4 -0
  14. package/build/_virtual/inherits_browser.js.map +1 -0
  15. package/build/_virtual/ripemd.js +4 -0
  16. package/build/_virtual/ripemd.js.map +1 -0
  17. package/build/_virtual/sha.js +4 -0
  18. package/build/_virtual/sha.js.map +1 -0
  19. package/build/_virtual/utils.js +4 -0
  20. package/build/_virtual/utils.js.map +1 -0
  21. package/build/node_modules/@binance/w3w-utils/dist/index.js +7 -0
  22. package/build/node_modules/@binance/w3w-utils/dist/index.js.map +1 -0
  23. package/build/node_modules/@binance/w3w-utils/node_modules/eventemitter3/index.js +349 -0
  24. package/build/node_modules/@binance/w3w-utils/node_modules/eventemitter3/index.js.map +1 -0
  25. package/build/node_modules/hash.js/lib/hash/common.js +105 -0
  26. package/build/node_modules/hash.js/lib/hash/common.js.map +1 -0
  27. package/build/node_modules/hash.js/lib/hash/hmac.js +60 -0
  28. package/build/node_modules/hash.js/lib/hash/hmac.js.map +1 -0
  29. package/build/node_modules/hash.js/lib/hash/ripemd.js +159 -0
  30. package/build/node_modules/hash.js/lib/hash/ripemd.js.map +1 -0
  31. package/build/node_modules/hash.js/lib/hash/sha/1.js +88 -0
  32. package/build/node_modules/hash.js/lib/hash/sha/1.js.map +1 -0
  33. package/build/node_modules/hash.js/lib/hash/sha/224.js +42 -0
  34. package/build/node_modules/hash.js/lib/hash/sha/224.js.map +1 -0
  35. package/build/node_modules/hash.js/lib/hash/sha/256.js +120 -0
  36. package/build/node_modules/hash.js/lib/hash/sha/256.js.map +1 -0
  37. package/build/node_modules/hash.js/lib/hash/sha/384.js +48 -0
  38. package/build/node_modules/hash.js/lib/hash/sha/384.js.map +1 -0
  39. package/build/node_modules/hash.js/lib/hash/sha/512.js +344 -0
  40. package/build/node_modules/hash.js/lib/hash/sha/512.js.map +1 -0
  41. package/build/node_modules/hash.js/lib/hash/sha/common.js +61 -0
  42. package/build/node_modules/hash.js/lib/hash/sha/common.js.map +1 -0
  43. package/build/node_modules/hash.js/lib/hash/sha.js +23 -0
  44. package/build/node_modules/hash.js/lib/hash/sha.js.map +1 -0
  45. package/build/node_modules/hash.js/lib/hash/utils.js +291 -0
  46. package/build/node_modules/hash.js/lib/hash/utils.js.map +1 -0
  47. package/build/node_modules/hash.js/lib/hash.js +34 -0
  48. package/build/node_modules/hash.js/lib/hash.js.map +1 -0
  49. package/build/node_modules/inherits/inherits_browser.js +39 -0
  50. package/build/node_modules/inherits/inherits_browser.js.map +1 -0
  51. package/build/node_modules/minimalistic-assert/index.js +22 -0
  52. package/build/node_modules/minimalistic-assert/index.js.map +1 -0
  53. package/build/package.json.js +2 -2
  54. package/build/pay/packages/connectkit/package.json.js +123 -0
  55. package/build/pay/packages/connectkit/package.json.js.map +1 -0
  56. package/build/pay/packages/connectkit/src/assets/MobileWithLogos.js +329 -0
  57. package/build/pay/packages/connectkit/src/assets/MobileWithLogos.js.map +1 -0
  58. package/build/pay/packages/connectkit/src/assets/ScanIconWithLogos.js +243 -0
  59. package/build/pay/packages/connectkit/src/assets/ScanIconWithLogos.js.map +1 -0
  60. package/build/pay/packages/connectkit/src/assets/browsers.js +969 -0
  61. package/build/pay/packages/connectkit/src/assets/browsers.js.map +1 -0
  62. package/build/pay/packages/connectkit/src/assets/chains.js +639 -0
  63. package/build/pay/packages/connectkit/src/assets/chains.js.map +1 -0
  64. package/build/pay/packages/connectkit/src/assets/icons.js +273 -0
  65. package/build/pay/packages/connectkit/src/assets/icons.js.map +1 -0
  66. package/build/pay/packages/connectkit/src/assets/logos.js +1722 -0
  67. package/build/pay/packages/connectkit/src/assets/logos.js.map +1 -0
  68. package/build/pay/packages/connectkit/src/assets/wave.js +46 -0
  69. package/build/pay/packages/connectkit/src/assets/wave.js.map +1 -0
  70. package/build/pay/packages/connectkit/src/components/Common/Alert/index.js +13 -0
  71. package/build/pay/packages/connectkit/src/components/Common/Alert/index.js.map +1 -0
  72. package/build/pay/packages/connectkit/src/components/Common/Alert/styles.js +55 -0
  73. package/build/pay/packages/connectkit/src/components/Common/Alert/styles.js.map +1 -0
  74. package/build/pay/packages/connectkit/src/components/Common/AmountInput/AmountInputField.js +71 -0
  75. package/build/pay/packages/connectkit/src/components/Common/AmountInput/AmountInputField.js.map +1 -0
  76. package/build/pay/packages/connectkit/src/components/Common/AmountInput/index.js +159 -0
  77. package/build/pay/packages/connectkit/src/components/Common/AmountInput/index.js.map +1 -0
  78. package/build/pay/packages/connectkit/src/components/Common/Avatar/index.js +78 -0
  79. package/build/pay/packages/connectkit/src/components/Common/Avatar/index.js.map +1 -0
  80. package/build/pay/packages/connectkit/src/components/Common/Avatar/styles.js +54 -0
  81. package/build/pay/packages/connectkit/src/components/Common/Avatar/styles.js.map +1 -0
  82. package/build/pay/packages/connectkit/src/components/Common/BrowserIcon/index.js +29 -0
  83. package/build/pay/packages/connectkit/src/components/Common/BrowserIcon/index.js.map +1 -0
  84. package/build/pay/packages/connectkit/src/components/Common/BrowserIcon/styles.js +20 -0
  85. package/build/pay/packages/connectkit/src/components/Common/BrowserIcon/styles.js.map +1 -0
  86. package/build/pay/packages/connectkit/src/components/Common/Button/index.js +144 -0
  87. package/build/pay/packages/connectkit/src/components/Common/Button/index.js.map +1 -0
  88. package/build/pay/packages/connectkit/src/components/Common/Button/styles.js +287 -0
  89. package/build/pay/packages/connectkit/src/components/Common/Button/styles.js.map +1 -0
  90. package/build/pay/packages/connectkit/src/components/Common/Chain/index.js +141 -0
  91. package/build/pay/packages/connectkit/src/components/Common/Chain/index.js.map +1 -0
  92. package/build/pay/packages/connectkit/src/components/Common/Chain/styles.js +90 -0
  93. package/build/pay/packages/connectkit/src/components/Common/Chain/styles.js.map +1 -0
  94. package/build/pay/packages/connectkit/src/components/Common/ChainSelectList/index.js +250 -0
  95. package/build/pay/packages/connectkit/src/components/Common/ChainSelectList/index.js.map +1 -0
  96. package/build/pay/packages/connectkit/src/components/Common/ChainSelectList/styles.js +226 -0
  97. package/build/pay/packages/connectkit/src/components/Common/ChainSelectList/styles.js.map +1 -0
  98. package/build/pay/packages/connectkit/src/components/Common/CircleTimer.js +92 -0
  99. package/build/pay/packages/connectkit/src/components/Common/CircleTimer.js.map +1 -0
  100. package/build/pay/packages/connectkit/src/components/Common/ConnectorList/index.js +121 -0
  101. package/build/pay/packages/connectkit/src/components/Common/ConnectorList/index.js.map +1 -0
  102. package/build/pay/packages/connectkit/src/components/Common/ConnectorList/styles.js +344 -0
  103. package/build/pay/packages/connectkit/src/components/Common/ConnectorList/styles.js.map +1 -0
  104. package/build/pay/packages/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +78 -0
  105. package/build/pay/packages/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -0
  106. package/build/pay/packages/connectkit/src/components/Common/CustomQRCode/QRCode.js +132 -0
  107. package/build/pay/packages/connectkit/src/components/Common/CustomQRCode/QRCode.js.map +1 -0
  108. package/build/pay/packages/connectkit/src/components/Common/CustomQRCode/index.js +89 -0
  109. package/build/pay/packages/connectkit/src/components/Common/CustomQRCode/index.js.map +1 -0
  110. package/build/pay/packages/connectkit/src/components/Common/CustomQRCode/styles.js +142 -0
  111. package/build/pay/packages/connectkit/src/components/Common/CustomQRCode/styles.js.map +1 -0
  112. package/build/pay/packages/connectkit/src/components/Common/FitText/index.js +34 -0
  113. package/build/pay/packages/connectkit/src/components/Common/FitText/index.js.map +1 -0
  114. package/build/pay/packages/connectkit/src/components/Common/Modal/index.js +547 -0
  115. package/build/pay/packages/connectkit/src/components/Common/Modal/index.js.map +1 -0
  116. package/build/pay/packages/connectkit/src/components/Common/Modal/styles.js +665 -0
  117. package/build/pay/packages/connectkit/src/components/Common/Modal/styles.js.map +1 -0
  118. package/build/pay/packages/connectkit/src/components/Common/OptionsList/index.js +145 -0
  119. package/build/pay/packages/connectkit/src/components/Common/OptionsList/index.js.map +1 -0
  120. package/build/pay/packages/connectkit/src/components/Common/OptionsList/styles.js +138 -0
  121. package/build/pay/packages/connectkit/src/components/Common/OptionsList/styles.js.map +1 -0
  122. package/build/pay/packages/connectkit/src/components/Common/OrderHeader/index.js +148 -0
  123. package/build/pay/packages/connectkit/src/components/Common/OrderHeader/index.js.map +1 -0
  124. package/build/pay/packages/connectkit/src/components/Common/PaymentBreakdown/index.js +70 -0
  125. package/build/pay/packages/connectkit/src/components/Common/PaymentBreakdown/index.js.map +1 -0
  126. package/build/pay/packages/connectkit/src/components/Common/Portal/index.js +30 -0
  127. package/build/pay/packages/connectkit/src/components/Common/Portal/index.js.map +1 -0
  128. package/build/pay/packages/connectkit/src/components/Common/PoweredByFooter/index.js +39 -0
  129. package/build/pay/packages/connectkit/src/components/Common/PoweredByFooter/index.js.map +1 -0
  130. package/build/pay/packages/connectkit/src/components/Common/ScrollArea/index.js +120 -0
  131. package/build/pay/packages/connectkit/src/components/Common/ScrollArea/index.js.map +1 -0
  132. package/build/pay/packages/connectkit/src/components/Common/ScrollArea/styles.js +169 -0
  133. package/build/pay/packages/connectkit/src/components/Common/ScrollArea/styles.js.map +1 -0
  134. package/build/pay/packages/connectkit/src/components/Common/SelectAnotherMethodButton/index.js +96 -0
  135. package/build/pay/packages/connectkit/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -0
  136. package/build/pay/packages/connectkit/src/components/Common/Spinner/index.js +64 -0
  137. package/build/pay/packages/connectkit/src/components/Common/Spinner/index.js.map +1 -0
  138. package/build/pay/packages/connectkit/src/components/Common/Spinner/styles.js +22 -0
  139. package/build/pay/packages/connectkit/src/components/Common/Spinner/styles.js.map +1 -0
  140. package/build/pay/packages/connectkit/src/components/Common/SwitchButton/index.js +43 -0
  141. package/build/pay/packages/connectkit/src/components/Common/SwitchButton/index.js.map +1 -0
  142. package/build/pay/packages/connectkit/src/components/Common/ThemedButton/index.js +46 -0
  143. package/build/pay/packages/connectkit/src/components/Common/ThemedButton/index.js.map +1 -0
  144. package/build/pay/packages/connectkit/src/components/Common/ThemedButton/styles.js +152 -0
  145. package/build/pay/packages/connectkit/src/components/Common/ThemedButton/styles.js.map +1 -0
  146. package/build/pay/packages/connectkit/src/components/Common/TokenChainLogo/index.js +62 -0
  147. package/build/pay/packages/connectkit/src/components/Common/TokenChainLogo/index.js.map +1 -0
  148. package/build/pay/packages/connectkit/src/components/Common/Tooltip/index.js +129 -0
  149. package/build/pay/packages/connectkit/src/components/Common/Tooltip/index.js.map +1 -0
  150. package/build/pay/packages/connectkit/src/components/Common/Tooltip/styles.js +81 -0
  151. package/build/pay/packages/connectkit/src/components/Common/Tooltip/styles.js.map +1 -0
  152. package/build/pay/packages/connectkit/src/components/Common/WalletChainLogo/index.js +31 -0
  153. package/build/pay/packages/connectkit/src/components/Common/WalletChainLogo/index.js.map +1 -0
  154. package/build/pay/packages/connectkit/src/components/DaimoPayButton/index.js +196 -0
  155. package/build/pay/packages/connectkit/src/components/DaimoPayButton/index.js.map +1 -0
  156. package/build/pay/packages/connectkit/src/components/DaimoPayButton/styles.js +50 -0
  157. package/build/pay/packages/connectkit/src/components/DaimoPayButton/styles.js.map +1 -0
  158. package/build/pay/packages/connectkit/src/components/DaimoPayModal/ConnectUsing.js +70 -0
  159. package/build/pay/packages/connectkit/src/components/DaimoPayModal/ConnectUsing.js.map +1 -0
  160. package/build/pay/packages/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js +339 -0
  161. package/build/pay/packages/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -0
  162. package/build/pay/packages/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js +131 -0
  163. package/build/pay/packages/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -0
  164. package/build/pay/packages/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js +86 -0
  165. package/build/pay/packages/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -0
  166. package/build/pay/packages/connectkit/src/components/DaimoPayModal/index.js +605 -0
  167. package/build/pay/packages/connectkit/src/components/DaimoPayModal/index.js.map +1 -0
  168. package/build/pay/packages/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +25 -0
  169. package/build/pay/packages/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -0
  170. package/build/pay/packages/connectkit/src/components/Pages/About/graphics.js +853 -0
  171. package/build/pay/packages/connectkit/src/components/Pages/About/graphics.js.map +1 -0
  172. package/build/pay/packages/connectkit/src/components/Pages/About/index.js +222 -0
  173. package/build/pay/packages/connectkit/src/components/Pages/About/index.js.map +1 -0
  174. package/build/pay/packages/connectkit/src/components/Pages/About/styles.js +140 -0
  175. package/build/pay/packages/connectkit/src/components/Pages/About/styles.js.map +1 -0
  176. package/build/pay/packages/connectkit/src/components/Pages/Confirmation/index.js +126 -0
  177. package/build/pay/packages/connectkit/src/components/Pages/Confirmation/index.js.map +1 -0
  178. package/build/pay/packages/connectkit/src/components/Pages/Connectors/index.js +26 -0
  179. package/build/pay/packages/connectkit/src/components/Pages/Connectors/index.js.map +1 -0
  180. package/build/pay/packages/connectkit/src/components/Pages/Error/index.js +57 -0
  181. package/build/pay/packages/connectkit/src/components/Pages/Error/index.js.map +1 -0
  182. package/build/pay/packages/connectkit/src/components/Pages/MobileConnectors/index.js +108 -0
  183. package/build/pay/packages/connectkit/src/components/Pages/MobileConnectors/index.js.map +1 -0
  184. package/build/pay/packages/connectkit/src/components/Pages/MobileConnectors/styles.js +64 -0
  185. package/build/pay/packages/connectkit/src/components/Pages/MobileConnectors/styles.js.map +1 -0
  186. package/build/pay/packages/connectkit/src/components/Pages/Onboarding/index.js +34 -0
  187. package/build/pay/packages/connectkit/src/components/Pages/Onboarding/index.js.map +1 -0
  188. package/build/pay/packages/connectkit/src/components/Pages/Onboarding/styles.js +229 -0
  189. package/build/pay/packages/connectkit/src/components/Pages/Onboarding/styles.js.map +1 -0
  190. package/build/pay/packages/connectkit/src/components/Pages/PayWithToken/index.js +157 -0
  191. package/build/pay/packages/connectkit/src/components/Pages/PayWithToken/index.js.map +1 -0
  192. package/build/pay/packages/connectkit/src/components/Pages/SelectAmount/index.js +24 -0
  193. package/build/pay/packages/connectkit/src/components/Pages/SelectAmount/index.js.map +1 -0
  194. package/build/pay/packages/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js +79 -0
  195. package/build/pay/packages/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -0
  196. package/build/pay/packages/connectkit/src/components/Pages/SelectDepositAddressChain/index.js +80 -0
  197. package/build/pay/packages/connectkit/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -0
  198. package/build/pay/packages/connectkit/src/components/Pages/SelectExchange/index.js +62 -0
  199. package/build/pay/packages/connectkit/src/components/Pages/SelectExchange/index.js.map +1 -0
  200. package/build/pay/packages/connectkit/src/components/Pages/SelectExternalAmount/index.js +80 -0
  201. package/build/pay/packages/connectkit/src/components/Pages/SelectExternalAmount/index.js.map +1 -0
  202. package/build/pay/packages/connectkit/src/components/Pages/SelectMethod/index.js +315 -0
  203. package/build/pay/packages/connectkit/src/components/Pages/SelectMethod/index.js.map +1 -0
  204. package/build/pay/packages/connectkit/src/components/Pages/SelectToken/index.js +99 -0
  205. package/build/pay/packages/connectkit/src/components/Pages/SelectToken/index.js.map +1 -0
  206. package/build/pay/packages/connectkit/src/components/Pages/SelectWalletAmount/index.js +71 -0
  207. package/build/pay/packages/connectkit/src/components/Pages/SelectWalletAmount/index.js.map +1 -0
  208. package/build/pay/packages/connectkit/src/components/Pages/SelectWalletChain/index.js +55 -0
  209. package/build/pay/packages/connectkit/src/components/Pages/SelectWalletChain/index.js.map +1 -0
  210. package/build/pay/packages/connectkit/src/components/Pages/SelectZKP/index.js +41 -0
  211. package/build/pay/packages/connectkit/src/components/Pages/SelectZKP/index.js.map +1 -0
  212. package/build/pay/packages/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js +94 -0
  213. package/build/pay/packages/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -0
  214. package/build/pay/packages/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js +92 -0
  215. package/build/pay/packages/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -0
  216. package/build/pay/packages/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js +24 -0
  217. package/build/pay/packages/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -0
  218. package/build/pay/packages/connectkit/src/components/Pages/SwitchNetworks/index.js +45 -0
  219. package/build/pay/packages/connectkit/src/components/Pages/SwitchNetworks/index.js.map +1 -0
  220. package/build/pay/packages/connectkit/src/components/Pages/WaitingDepositAddress/index.js +586 -0
  221. package/build/pay/packages/connectkit/src/components/Pages/WaitingDepositAddress/index.js.map +1 -0
  222. package/build/pay/packages/connectkit/src/components/Pages/WaitingExternal/index.js +174 -0
  223. package/build/pay/packages/connectkit/src/components/Pages/WaitingExternal/index.js.map +1 -0
  224. package/build/pay/packages/connectkit/src/components/Pages/WaitingWallet/index.js +49 -0
  225. package/build/pay/packages/connectkit/src/components/Pages/WaitingWallet/index.js.map +1 -0
  226. package/build/pay/packages/connectkit/src/components/Pages/Warning/index.js +56 -0
  227. package/build/pay/packages/connectkit/src/components/Pages/Warning/index.js.map +1 -0
  228. package/build/pay/packages/connectkit/src/components/Spinners/CircleSpinner/index.js +104 -0
  229. package/build/pay/packages/connectkit/src/components/Spinners/CircleSpinner/index.js.map +1 -0
  230. package/build/pay/packages/connectkit/src/components/Spinners/CircleSpinner/styles.js +117 -0
  231. package/build/pay/packages/connectkit/src/components/Spinners/CircleSpinner/styles.js.map +1 -0
  232. package/build/pay/packages/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js +29 -0
  233. package/build/pay/packages/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js.map +1 -0
  234. package/build/pay/packages/connectkit/src/components/Spinners/SquircleSpinner/index.js +68 -0
  235. package/build/pay/packages/connectkit/src/components/Spinners/SquircleSpinner/index.js.map +1 -0
  236. package/build/pay/packages/connectkit/src/components/Spinners/SquircleSpinner/styles.js +66 -0
  237. package/build/pay/packages/connectkit/src/components/Spinners/SquircleSpinner/styles.js.map +1 -0
  238. package/build/pay/packages/connectkit/src/components/Spinners/TokenLogoSpinner/index.js +24 -0
  239. package/build/pay/packages/connectkit/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -0
  240. package/build/pay/packages/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js +40 -0
  241. package/build/pay/packages/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js.map +1 -0
  242. package/build/pay/packages/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js +37 -0
  243. package/build/pay/packages/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -0
  244. package/build/pay/packages/connectkit/src/components/Spinners/styles.js +32 -0
  245. package/build/pay/packages/connectkit/src/components/Spinners/styles.js.map +1 -0
  246. package/build/pay/packages/connectkit/src/constants/defaultTheme.js +6 -0
  247. package/build/pay/packages/connectkit/src/constants/defaultTheme.js.map +1 -0
  248. package/build/pay/packages/connectkit/src/constants/limits.js +4 -0
  249. package/build/pay/packages/connectkit/src/constants/limits.js.map +1 -0
  250. package/build/pay/packages/connectkit/src/constants/paymentOptions.js +62 -0
  251. package/build/pay/packages/connectkit/src/constants/paymentOptions.js.map +1 -0
  252. package/build/pay/packages/connectkit/src/constants/routes.js +31 -0
  253. package/build/pay/packages/connectkit/src/constants/routes.js.map +1 -0
  254. package/build/pay/packages/connectkit/src/constants/wallets.js +7 -0
  255. package/build/pay/packages/connectkit/src/constants/wallets.js.map +1 -0
  256. package/build/pay/packages/connectkit/src/defaultConfig.js +64 -0
  257. package/build/pay/packages/connectkit/src/defaultConfig.js.map +1 -0
  258. package/build/pay/packages/connectkit/src/defaultConnectors.js +37 -0
  259. package/build/pay/packages/connectkit/src/defaultConnectors.js.map +1 -0
  260. package/build/pay/packages/connectkit/src/hooks/useChainIsSupported.js +10 -0
  261. package/build/pay/packages/connectkit/src/hooks/useChainIsSupported.js.map +1 -0
  262. package/build/pay/packages/connectkit/src/hooks/useChains.js +10 -0
  263. package/build/pay/packages/connectkit/src/hooks/useChains.js.map +1 -0
  264. package/build/pay/packages/connectkit/src/hooks/useConnect.js +61 -0
  265. package/build/pay/packages/connectkit/src/hooks/useConnect.js.map +1 -0
  266. package/build/pay/packages/connectkit/src/hooks/useConnectCallback.js +21 -0
  267. package/build/pay/packages/connectkit/src/hooks/useConnectCallback.js.map +1 -0
  268. package/build/pay/packages/connectkit/src/hooks/useConnectors.js +20 -0
  269. package/build/pay/packages/connectkit/src/hooks/useConnectors.js.map +1 -0
  270. package/build/pay/packages/connectkit/src/hooks/useDaimoPay.js +131 -0
  271. package/build/pay/packages/connectkit/src/hooks/useDaimoPay.js.map +1 -0
  272. package/build/pay/packages/connectkit/src/hooks/useDaimoPayStatus.js +12 -0
  273. package/build/pay/packages/connectkit/src/hooks/useDaimoPayStatus.js.map +1 -0
  274. package/build/pay/packages/connectkit/src/hooks/useDaimoPayUI.js +15 -0
  275. package/build/pay/packages/connectkit/src/hooks/useDaimoPayUI.js.map +1 -0
  276. package/build/pay/packages/connectkit/src/hooks/useDepositAddressOptions.js +35 -0
  277. package/build/pay/packages/connectkit/src/hooks/useDepositAddressOptions.js.map +1 -0
  278. package/build/pay/packages/connectkit/src/hooks/useEnsFallbackConfig.js +16 -0
  279. package/build/pay/packages/connectkit/src/hooks/useEnsFallbackConfig.js.map +1 -0
  280. package/build/pay/packages/connectkit/src/hooks/useExternalPaymentOptions.js +79 -0
  281. package/build/pay/packages/connectkit/src/hooks/useExternalPaymentOptions.js.map +1 -0
  282. package/build/pay/packages/connectkit/src/hooks/useFitText.js +133 -0
  283. package/build/pay/packages/connectkit/src/hooks/useFitText.js.map +1 -0
  284. package/build/pay/packages/connectkit/src/hooks/useFocusTrap.js +53 -0
  285. package/build/pay/packages/connectkit/src/hooks/useFocusTrap.js.map +1 -0
  286. package/build/pay/packages/connectkit/src/hooks/useIsMobile.js +11 -0
  287. package/build/pay/packages/connectkit/src/hooks/useIsMobile.js.map +1 -0
  288. package/build/pay/packages/connectkit/src/hooks/useIsMounted.js +10 -0
  289. package/build/pay/packages/connectkit/src/hooks/useIsMounted.js.map +1 -0
  290. package/build/pay/packages/connectkit/src/hooks/useLastConnector.js +24 -0
  291. package/build/pay/packages/connectkit/src/hooks/useLastConnector.js.map +1 -0
  292. package/build/pay/packages/connectkit/src/hooks/useLocales.js +60 -0
  293. package/build/pay/packages/connectkit/src/hooks/useLocales.js.map +1 -0
  294. package/build/pay/packages/connectkit/src/hooks/useLockBodyScroll.js +47 -0
  295. package/build/pay/packages/connectkit/src/hooks/useLockBodyScroll.js.map +1 -0
  296. package/build/pay/packages/connectkit/src/hooks/useOrderUsdLimits.js +24 -0
  297. package/build/pay/packages/connectkit/src/hooks/useOrderUsdLimits.js.map +1 -0
  298. package/build/pay/packages/connectkit/src/hooks/usePayContext.js +11 -0
  299. package/build/pay/packages/connectkit/src/hooks/usePayContext.js.map +1 -0
  300. package/build/pay/packages/connectkit/src/hooks/usePaymentState.js +410 -0
  301. package/build/pay/packages/connectkit/src/hooks/usePaymentState.js.map +1 -0
  302. package/build/pay/packages/connectkit/src/hooks/usePrevious.js +13 -0
  303. package/build/pay/packages/connectkit/src/hooks/usePrevious.js.map +1 -0
  304. package/build/pay/packages/connectkit/src/hooks/useSolanaPaymentOptions.js +38 -0
  305. package/build/pay/packages/connectkit/src/hooks/useSolanaPaymentOptions.js.map +1 -0
  306. package/build/pay/packages/connectkit/src/hooks/useTokenOptions.js +152 -0
  307. package/build/pay/packages/connectkit/src/hooks/useTokenOptions.js.map +1 -0
  308. package/build/pay/packages/connectkit/src/hooks/useUntronAvailability.js +32 -0
  309. package/build/pay/packages/connectkit/src/hooks/useUntronAvailability.js.map +1 -0
  310. package/build/pay/packages/connectkit/src/hooks/useWalletPaymentOptions.js +97 -0
  311. package/build/pay/packages/connectkit/src/hooks/useWalletPaymentOptions.js.map +1 -0
  312. package/build/pay/packages/connectkit/src/hooks/useWindowSize.js +23 -0
  313. package/build/pay/packages/connectkit/src/hooks/useWindowSize.js.map +1 -0
  314. package/build/pay/packages/connectkit/src/index.js +14 -0
  315. package/build/pay/packages/connectkit/src/index.js.map +1 -0
  316. package/build/pay/packages/connectkit/src/localizations/index.js +48 -0
  317. package/build/pay/packages/connectkit/src/localizations/index.js.map +1 -0
  318. package/build/pay/packages/connectkit/src/localizations/locales/ar-AE.js +95 -0
  319. package/build/pay/packages/connectkit/src/localizations/locales/ar-AE.js.map +1 -0
  320. package/build/pay/packages/connectkit/src/localizations/locales/ca-AD.js +93 -0
  321. package/build/pay/packages/connectkit/src/localizations/locales/ca-AD.js.map +1 -0
  322. package/build/pay/packages/connectkit/src/localizations/locales/ee-EE.js +101 -0
  323. package/build/pay/packages/connectkit/src/localizations/locales/ee-EE.js.map +1 -0
  324. package/build/pay/packages/connectkit/src/localizations/locales/en-US.js +145 -0
  325. package/build/pay/packages/connectkit/src/localizations/locales/en-US.js.map +1 -0
  326. package/build/pay/packages/connectkit/src/localizations/locales/es-ES.js +138 -0
  327. package/build/pay/packages/connectkit/src/localizations/locales/es-ES.js.map +1 -0
  328. package/build/pay/packages/connectkit/src/localizations/locales/fa-IR.js +93 -0
  329. package/build/pay/packages/connectkit/src/localizations/locales/fa-IR.js.map +1 -0
  330. package/build/pay/packages/connectkit/src/localizations/locales/fr-FR.js +93 -0
  331. package/build/pay/packages/connectkit/src/localizations/locales/fr-FR.js.map +1 -0
  332. package/build/pay/packages/connectkit/src/localizations/locales/ja-JP.js +93 -0
  333. package/build/pay/packages/connectkit/src/localizations/locales/ja-JP.js.map +1 -0
  334. package/build/pay/packages/connectkit/src/localizations/locales/pt-BR.js +145 -0
  335. package/build/pay/packages/connectkit/src/localizations/locales/pt-BR.js.map +1 -0
  336. package/build/pay/packages/connectkit/src/localizations/locales/ru-RU.js +97 -0
  337. package/build/pay/packages/connectkit/src/localizations/locales/ru-RU.js.map +1 -0
  338. package/build/pay/packages/connectkit/src/localizations/locales/tr-TR.js +101 -0
  339. package/build/pay/packages/connectkit/src/localizations/locales/tr-TR.js.map +1 -0
  340. package/build/pay/packages/connectkit/src/localizations/locales/vi-VN.js +101 -0
  341. package/build/pay/packages/connectkit/src/localizations/locales/vi-VN.js.map +1 -0
  342. package/build/pay/packages/connectkit/src/localizations/locales/zh-CN.js +93 -0
  343. package/build/pay/packages/connectkit/src/localizations/locales/zh-CN.js.map +1 -0
  344. package/build/pay/packages/connectkit/src/payment/paymentEffects.js +268 -0
  345. package/build/pay/packages/connectkit/src/payment/paymentEffects.js.map +1 -0
  346. package/build/pay/packages/connectkit/src/payment/paymentFsm.js +234 -0
  347. package/build/pay/packages/connectkit/src/payment/paymentFsm.js.map +1 -0
  348. package/build/pay/packages/connectkit/src/payment/paymentStore.js +18 -0
  349. package/build/pay/packages/connectkit/src/payment/paymentStore.js.map +1 -0
  350. package/build/pay/packages/connectkit/src/payment/paymentUtils.js +10 -0
  351. package/build/pay/packages/connectkit/src/payment/paymentUtils.js.map +1 -0
  352. package/build/pay/packages/connectkit/src/provider/DaimoPayProvider.js +292 -0
  353. package/build/pay/packages/connectkit/src/provider/DaimoPayProvider.js.map +1 -0
  354. package/build/pay/packages/connectkit/src/provider/PayContext.js +6 -0
  355. package/build/pay/packages/connectkit/src/provider/PayContext.js.map +1 -0
  356. package/build/pay/packages/connectkit/src/provider/PaymentProvider.js +29 -0
  357. package/build/pay/packages/connectkit/src/provider/PaymentProvider.js.map +1 -0
  358. package/build/pay/packages/connectkit/src/provider/SolanaContextProvider.js +14 -0
  359. package/build/pay/packages/connectkit/src/provider/SolanaContextProvider.js.map +1 -0
  360. package/build/pay/packages/connectkit/src/provider/Web3ContextProvider.js +36 -0
  361. package/build/pay/packages/connectkit/src/provider/Web3ContextProvider.js.map +1 -0
  362. package/build/pay/packages/connectkit/src/stateStore.js +36 -0
  363. package/build/pay/packages/connectkit/src/stateStore.js.map +1 -0
  364. package/build/pay/packages/connectkit/src/styles/defaultTheme.js +80 -0
  365. package/build/pay/packages/connectkit/src/styles/defaultTheme.js.map +1 -0
  366. package/build/pay/packages/connectkit/src/styles/index.js +313 -0
  367. package/build/pay/packages/connectkit/src/styles/index.js.map +1 -0
  368. package/build/pay/packages/connectkit/src/styles/styled/index.js +6 -0
  369. package/build/pay/packages/connectkit/src/styles/styled/index.js.map +1 -0
  370. package/build/pay/packages/connectkit/src/styles/themes/base.js +141 -0
  371. package/build/pay/packages/connectkit/src/styles/themes/base.js.map +1 -0
  372. package/build/pay/packages/connectkit/src/styles/themes/index.js +13 -0
  373. package/build/pay/packages/connectkit/src/styles/themes/index.js.map +1 -0
  374. package/build/pay/packages/connectkit/src/styles/themes/midnight.js +76 -0
  375. package/build/pay/packages/connectkit/src/styles/themes/midnight.js.map +1 -0
  376. package/build/pay/packages/connectkit/src/styles/themes/minimal.js +96 -0
  377. package/build/pay/packages/connectkit/src/styles/themes/minimal.js.map +1 -0
  378. package/build/pay/packages/connectkit/src/styles/themes/nouns.js +81 -0
  379. package/build/pay/packages/connectkit/src/styles/themes/nouns.js.map +1 -0
  380. package/build/pay/packages/connectkit/src/styles/themes/retro.js +106 -0
  381. package/build/pay/packages/connectkit/src/styles/themes/retro.js.map +1 -0
  382. package/build/pay/packages/connectkit/src/styles/themes/rounded.js +106 -0
  383. package/build/pay/packages/connectkit/src/styles/themes/rounded.js.map +1 -0
  384. package/build/pay/packages/connectkit/src/styles/themes/soft.js +71 -0
  385. package/build/pay/packages/connectkit/src/styles/themes/soft.js.map +1 -0
  386. package/build/pay/packages/connectkit/src/styles/themes/web95.js +132 -0
  387. package/build/pay/packages/connectkit/src/styles/themes/web95.js.map +1 -0
  388. package/build/pay/packages/connectkit/src/utils/exports.js +6 -0
  389. package/build/pay/packages/connectkit/src/utils/exports.js.map +1 -0
  390. package/build/pay/packages/connectkit/src/utils/format.js +45 -0
  391. package/build/pay/packages/connectkit/src/utils/format.js.map +1 -0
  392. package/build/pay/packages/connectkit/src/utils/index.js +42 -0
  393. package/build/pay/packages/connectkit/src/utils/index.js.map +1 -0
  394. package/build/pay/packages/connectkit/src/utils/p3.js +15 -0
  395. package/build/pay/packages/connectkit/src/utils/p3.js.map +1 -0
  396. package/build/pay/packages/connectkit/src/utils/platform.js +11 -0
  397. package/build/pay/packages/connectkit/src/utils/platform.js.map +1 -0
  398. package/build/pay/packages/connectkit/src/utils/polling.js +35 -0
  399. package/build/pay/packages/connectkit/src/utils/polling.js.map +1 -0
  400. package/build/pay/packages/connectkit/src/utils/supportUrl.js +16 -0
  401. package/build/pay/packages/connectkit/src/utils/supportUrl.js.map +1 -0
  402. package/build/pay/packages/connectkit/src/utils/trpc.js +19 -0
  403. package/build/pay/packages/connectkit/src/utils/trpc.js.map +1 -0
  404. package/build/pay/packages/connectkit/src/utils/validateInput.js +16 -0
  405. package/build/pay/packages/connectkit/src/utils/validateInput.js.map +1 -0
  406. package/build/pay/packages/connectkit/src/wallets/index.js +21 -0
  407. package/build/pay/packages/connectkit/src/wallets/index.js.map +1 -0
  408. package/build/pay/packages/connectkit/src/wallets/useWallets.js +278 -0
  409. package/build/pay/packages/connectkit/src/wallets/useWallets.js.map +1 -0
  410. package/build/pay/packages/connectkit/src/wallets/walletConfigs.js +281 -0
  411. package/build/pay/packages/connectkit/src/wallets/walletConfigs.js.map +1 -0
  412. package/build/pay/packages/connectkit/src/world-mini-app/WorldPayButton.js +165 -0
  413. package/build/pay/packages/connectkit/src/world-mini-app/WorldPayButton.js.map +1 -0
  414. package/build/pay/packages/connectkit/src/world-mini-app/promptWorldPayment.js +59 -0
  415. package/build/pay/packages/connectkit/src/world-mini-app/promptWorldPayment.js.map +1 -0
  416. package/build/pay/packages/connectkit/src/world-mini-app/useWithdrawToWorld.js +76 -0
  417. package/build/pay/packages/connectkit/src/world-mini-app/useWithdrawToWorld.js.map +1 -0
  418. package/build/pay/packages/connectkit/src/world-mini-app/useWorldSignIn.js +74 -0
  419. package/build/pay/packages/connectkit/src/world-mini-app/useWorldSignIn.js.map +1 -0
  420. package/build/pay/packages/connectkit/src/world.js +4 -0
  421. package/build/pay/packages/connectkit/src/world.js.map +1 -0
  422. package/build/src/components/Common/PoweredByFooter/index.js +10 -37
  423. package/build/src/components/Common/PoweredByFooter/index.js.map +1 -1
  424. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +3 -0
  425. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -1
  426. package/build/src/components/Pages/Confirmation/index.js +8 -10
  427. package/build/src/components/Pages/Confirmation/index.js.map +1 -1
  428. package/build/src/payment/paymentEffects.js +9 -7
  429. package/build/src/payment/paymentEffects.js.map +1 -1
  430. package/build/src/provider/DaimoPayProvider.js +9 -1
  431. package/build/src/provider/DaimoPayProvider.js.map +1 -1
  432. package/build/src/provider/PaymentProvider.js +9 -3
  433. package/build/src/provider/PaymentProvider.js.map +1 -1
  434. package/build/src/utils/polling.js +14 -5
  435. package/build/src/utils/polling.js.map +1 -1
  436. package/package.json +2 -2
@@ -0,0 +1,586 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { isHydrated, getChainName, DepositAddressPaymentOptions, ethereumUSDC, polygonUSDC, baseUSDC, arbitrumUSDC, optimismUSDC, getAddressContraction } from '@daimo/pay-common';
3
+ import { useState, useEffect, useRef, useMemo } from 'react';
4
+ import { keyframes } from 'styled-components';
5
+ import { AlertIcon, WarningIcon } from '../../../assets/icons.js';
6
+ import { useDaimoPay } from '../../../hooks/useDaimoPay.js';
7
+ import useIsMobile from '../../../hooks/useIsMobile.js';
8
+ import useLocales from '../../../hooks/useLocales.js';
9
+ import { usePayContext } from '../../../hooks/usePayContext.js';
10
+ import styled from '../../../styles/styled/index.js';
11
+ import Button from '../../Common/Button/index.js';
12
+ import CircleTimer from '../../Common/CircleTimer.js';
13
+ import CopyToClipboardIcon from '../../Common/CopyToClipboard/CopyToClipboardIcon.js';
14
+ import CustomQRCode from '../../Common/CustomQRCode/index.js';
15
+ import { ModalBody, PageContent, ModalContent, ModalH1 } from '../../Common/Modal/styles.js';
16
+ import SelectAnotherMethodButton from '../../Common/SelectAnotherMethodButton/index.js';
17
+ import TokenChainLogo from '../../Common/TokenChainLogo/index.js';
18
+ import WarningPage from '../Warning/index.js';
19
+
20
+ let handleLeavePrompt;
21
+ const CenterContainer = styled.div`
22
+ display: flex;
23
+ flex-direction: column;
24
+ align-items: center;
25
+ padding: 16px;
26
+ max-width: 100%;
27
+ `;
28
+ function WaitingDepositAddress() {
29
+ const context = usePayContext();
30
+ const { triggerResize, paymentState, trpc } = context;
31
+ const { payWithDepositAddress, selectedDepositAddressOption } = paymentState;
32
+ const daimo = useDaimoPay();
33
+ const { order } = daimo;
34
+ const tronUnderpay = order != null && isHydrated(order) && order.sourceTokenAmount != null && order.sourceTokenAmount.token.chainId === 10 && order.sourceTokenAmount.token.symbol.toUpperCase() === "USDT0" && Number(order.sourceTokenAmount.usd) < order.usdValue;
35
+ const [depAddr, setDepAddr] = useState();
36
+ const [failed, setFailed] = useState(false);
37
+ const generateDepositAddress = () => {
38
+ if (daimo.paymentState === "warning") {
39
+ daimo.dismissWarning();
40
+ }
41
+ if (selectedDepositAddressOption == null) {
42
+ if (order == null || !isHydrated(order)) return;
43
+ if (order.sourceTokenAmount == null) return;
44
+ const taPaid = order.sourceTokenAmount;
45
+ const usdPaid = taPaid.usd;
46
+ const usdToPay = Math.max(order.usdValue - usdPaid, 0.01);
47
+ const dispDecimals = taPaid.token.displayDecimals;
48
+ const unitsToPay = (usdToPay / taPaid.token.usd).toFixed(dispDecimals);
49
+ const unitsPaid = (Number(taPaid.amount) / 10 ** taPaid.token.decimals).toFixed(dispDecimals);
50
+ let expirationS = (order.createdAt ?? 0) + 59.5 * 60;
51
+ if (order.expirationTs != null && Number(order.expirationTs) < expirationS) {
52
+ expirationS = Number(order.expirationTs);
53
+ }
54
+ setDepAddr({
55
+ address: order.intentAddr,
56
+ amount: unitsToPay,
57
+ underpayment: { unitsPaid, coin: taPaid.token.symbol },
58
+ coins: `${taPaid.token.symbol} on ${getChainName(taPaid.token.chainId)}`,
59
+ expirationS,
60
+ uri: order.intentAddr,
61
+ displayToken: taPaid.token,
62
+ logoURI: ""
63
+ // Not needed for underpaid orders
64
+ });
65
+ } else {
66
+ const displayToken = getDisplayToken(selectedDepositAddressOption);
67
+ const logoURI = selectedDepositAddressOption.logoURI;
68
+ setDepAddr({
69
+ displayToken,
70
+ logoURI
71
+ });
72
+ payWithDepositAddress(selectedDepositAddressOption.id).then((details) => {
73
+ if (details) {
74
+ setDepAddr({
75
+ address: details.address,
76
+ amount: details.amount,
77
+ coins: details.suffix,
78
+ expirationS: details.expirationS,
79
+ uri: details.uri,
80
+ displayToken,
81
+ logoURI
82
+ });
83
+ } else {
84
+ setFailed(true);
85
+ }
86
+ });
87
+ }
88
+ };
89
+ useEffect(generateDepositAddress, [selectedDepositAddressOption]);
90
+ useEffect(triggerResize, [depAddr, failed]);
91
+ return /* @__PURE__ */ jsx(PageContent, { children: tronUnderpay ? /* @__PURE__ */ jsx(TronUnderpayContent, { orderId: order?.id?.toString() }) : failed ? selectedDepositAddressOption && /* @__PURE__ */ jsx(DepositFailed, { name: selectedDepositAddressOption.id }) : depAddr && /* @__PURE__ */ jsx(
92
+ DepositAddressInfo,
93
+ {
94
+ depAddr,
95
+ refresh: generateDepositAddress,
96
+ triggerResize
97
+ }
98
+ ) });
99
+ }
100
+ function TronUnderpayContent({ orderId }) {
101
+ const locales = useLocales();
102
+ return /* @__PURE__ */ jsx(
103
+ ModalContent,
104
+ {
105
+ style: {
106
+ display: "flex",
107
+ justifyContent: "center",
108
+ alignItems: "center",
109
+ paddingBottom: 0,
110
+ position: "relative"
111
+ },
112
+ children: /* @__PURE__ */ jsxs(CenterContainer, { children: [
113
+ /* @__PURE__ */ jsx(FailIcon, {}),
114
+ /* @__PURE__ */ jsx(ModalH1, { style: { textAlign: "center", marginTop: 16 }, children: "USDT Tron Payment Was Too Low" }),
115
+ /* @__PURE__ */ jsx("div", { style: { height: 16 } }),
116
+ /* @__PURE__ */ jsxs(ModalBody, { style: { textAlign: "center" }, children: [
117
+ "Your funds are safe.",
118
+ /* @__PURE__ */ jsx("br", {}),
119
+ "Email support@daimo.com for a refund."
120
+ ] }),
121
+ /* @__PURE__ */ jsx(
122
+ Button,
123
+ {
124
+ onClick: () => window.open(
125
+ `mailto:support@daimo.com?subject=Underpaid%20USDT%20Tron%20payment%20for%20order%20${orderId}`,
126
+ "_blank"
127
+ ),
128
+ style: { marginTop: 16, width: 200 },
129
+ children: locales.contactSupport
130
+ }
131
+ )
132
+ ] })
133
+ }
134
+ );
135
+ }
136
+ function DepositAddressInfo({
137
+ depAddr,
138
+ refresh,
139
+ triggerResize
140
+ }) {
141
+ const { isMobile } = useIsMobile();
142
+ const { paymentState: payCtxState } = usePayContext();
143
+ const daimo = useDaimoPay();
144
+ const locales = useLocales();
145
+ const [remainingS, totalS] = useCountdown(depAddr?.expirationS);
146
+ const isExpired = depAddr?.expirationS != null && remainingS === 0;
147
+ const [showQR, setShowQR] = useState(!isMobile);
148
+ const pendingLeaveResolveRef = useRef(void 0);
149
+ const pendingLeaveMetaRef = useRef(void 0);
150
+ const leavingInProgressRef = useRef(false);
151
+ useEffect(triggerResize, [isExpired, showQR]);
152
+ useEffect(() => {
153
+ handleLeavePrompt = (detail) => {
154
+ const isTron = payCtxState.selectedDepositAddressOption?.id === DepositAddressPaymentOptions.TRON_USDT;
155
+ if (!isTron) {
156
+ detail.resolve(true);
157
+ return;
158
+ }
159
+ const hasDepositAddress = !!depAddr?.address;
160
+ if (!hasDepositAddress) {
161
+ if (detail.orderId && detail.trpc) {
162
+ detail.trpc.cancelDepositAddressForOrder.mutate({ orderId: detail.orderId }).then(() => {
163
+ }).catch(() => {
164
+ });
165
+ }
166
+ detail.resolve(true);
167
+ return;
168
+ }
169
+ daimo.setWarning(
170
+ "Do you want to end your Tron TRC20 USDT address? Ending it will end your current session, and you\u2019ll need to start a new one."
171
+ );
172
+ pendingLeaveMetaRef.current = {
173
+ trpc: detail.trpc,
174
+ orderId: detail.orderId
175
+ };
176
+ pendingLeaveResolveRef.current = detail.resolve;
177
+ leavingInProgressRef.current = false;
178
+ };
179
+ return () => {
180
+ handleLeavePrompt = void 0;
181
+ };
182
+ }, [depAddr?.address, payCtxState.selectedDepositAddressOption?.id, daimo]);
183
+ const logoOffset = isMobile ? 4 : 0;
184
+ const logoElement = depAddr.displayToken ? /* @__PURE__ */ jsx(
185
+ TokenChainLogo,
186
+ {
187
+ token: depAddr.displayToken,
188
+ size: 64,
189
+ offset: logoOffset
190
+ }
191
+ ) : /* @__PURE__ */ jsx("img", { src: depAddr.logoURI, width: "64px", height: "64px" });
192
+ if (daimo.paymentState === "warning") {
193
+ return /* @__PURE__ */ jsx(
194
+ WarningPage,
195
+ {
196
+ body: /* @__PURE__ */ jsx(Fragment, { children: daimo.paymentWarningMessage }),
197
+ primaryLabel: locales.leaveConfirm_stay,
198
+ secondaryLabel: locales.leaveConfirm_leave,
199
+ onPrimary: () => {
200
+ pendingLeaveResolveRef.current?.(false);
201
+ pendingLeaveResolveRef.current = void 0;
202
+ pendingLeaveMetaRef.current = void 0;
203
+ leavingInProgressRef.current = false;
204
+ daimo.dismissWarning();
205
+ },
206
+ onSecondary: async () => {
207
+ if (pendingLeaveMetaRef.current && pendingLeaveMetaRef.current.orderId && pendingLeaveMetaRef.current.trpc) {
208
+ const meta = pendingLeaveMetaRef.current;
209
+ meta.trpc.cancelDepositAddressForOrder.mutate({ orderId: meta.orderId }).then(() => {
210
+ }).catch(() => {
211
+ });
212
+ }
213
+ leavingInProgressRef.current = true;
214
+ pendingLeaveResolveRef.current?.(true);
215
+ pendingLeaveResolveRef.current = void 0;
216
+ pendingLeaveMetaRef.current = void 0;
217
+ }
218
+ }
219
+ );
220
+ }
221
+ if (leavingInProgressRef.current) {
222
+ return null;
223
+ }
224
+ return /* @__PURE__ */ jsxs(ModalContent, { children: [
225
+ isExpired ? /* @__PURE__ */ jsx(LogoRow, { children: /* @__PURE__ */ jsx(Button, { onClick: refresh, style: { width: 128 }, children: locales.refresh }) }) : showQR ? /* @__PURE__ */ jsx(QRWrap, { children: /* @__PURE__ */ jsx(
226
+ CustomQRCode,
227
+ {
228
+ value: depAddr?.uri,
229
+ contentPadding: 24,
230
+ size: 200,
231
+ image: logoElement
232
+ }
233
+ ) }) : /* @__PURE__ */ jsx(LogoRow, { children: /* @__PURE__ */ jsx(LogoWrap, { children: logoElement }) }),
234
+ /* @__PURE__ */ jsx("div", { style: { height: 8 } }),
235
+ isMobile && /* @__PURE__ */ jsx(ShowHideQRRow, { showQR, setShowQR }),
236
+ /* @__PURE__ */ jsx(CopyableInfo, { depAddr, remainingS, totalS })
237
+ ] });
238
+ }
239
+ function getDisplayToken(meta) {
240
+ switch (meta.id) {
241
+ case DepositAddressPaymentOptions.OP_MAINNET:
242
+ return optimismUSDC;
243
+ case DepositAddressPaymentOptions.ARBITRUM:
244
+ return arbitrumUSDC;
245
+ case DepositAddressPaymentOptions.BASE:
246
+ return baseUSDC;
247
+ case DepositAddressPaymentOptions.POLYGON:
248
+ return polygonUSDC;
249
+ case DepositAddressPaymentOptions.ETH_L1:
250
+ return ethereumUSDC;
251
+ default:
252
+ return null;
253
+ }
254
+ }
255
+ function ShowHideQRRow({
256
+ showQR,
257
+ setShowQR
258
+ }) {
259
+ const toggleQR = () => setShowQR(!showQR);
260
+ const locales = useLocales();
261
+ return /* @__PURE__ */ jsx(ShowQRWrap, { children: /* @__PURE__ */ jsxs(CopyRow, { onClick: toggleQR, children: [
262
+ /* @__PURE__ */ jsx(SmallText, { children: showQR ? locales.hideQR : locales.showQR }),
263
+ /* @__PURE__ */ jsx("div", { style: { width: 8 } }),
264
+ /* @__PURE__ */ jsx(ShowQRIcon, { children: /* @__PURE__ */ jsxs(
265
+ "svg",
266
+ {
267
+ xmlns: "http://www.w3.org/2000/svg",
268
+ fill: "none",
269
+ viewBox: "0 0 24 24",
270
+ strokeWidth: 1.5,
271
+ stroke: "#666",
272
+ className: "size-6",
273
+ width: 20,
274
+ height: 20,
275
+ children: [
276
+ /* @__PURE__ */ jsx(
277
+ "path",
278
+ {
279
+ strokeLinecap: "round",
280
+ strokeLinejoin: "round",
281
+ d: "M3.75 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 3.75 9.375v-4.5ZM3.75 14.625c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5a1.125 1.125 0 0 1-1.125-1.125v-4.5ZM13.5 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 13.5 9.375v-4.5Z"
282
+ }
283
+ ),
284
+ /* @__PURE__ */ jsx(
285
+ "path",
286
+ {
287
+ strokeLinecap: "round",
288
+ strokeLinejoin: "round",
289
+ d: "M6.75 6.75h.75v.75h-.75v-.75ZM6.75 16.5h.75v.75h-.75v-.75ZM16.5 6.75h.75v.75h-.75v-.75ZM13.5 13.5h.75v.75h-.75v-.75ZM13.5 19.5h.75v.75h-.75v-.75ZM19.5 13.5h.75v.75h-.75v-.75ZM19.5 19.5h.75v.75h-.75v-.75ZM16.5 16.5h.75v.75h-.75v-.75Z"
290
+ }
291
+ )
292
+ ]
293
+ }
294
+ ) })
295
+ ] }) });
296
+ }
297
+ const ShowQRWrap = styled.div`
298
+ display: flex;
299
+ justify-content: center;
300
+ color: var(--ck-primary-button-color);
301
+ `;
302
+ const ShowQRIcon = styled.div`
303
+ width: 20px;
304
+ `;
305
+ const LogoWrap = styled.div`
306
+ position: relative;
307
+ width: 64px;
308
+ height: 64px;
309
+ `;
310
+ const LogoRow = styled.div`
311
+ padding: 32px 0;
312
+ height: 128px;
313
+ display: flex;
314
+ align-items: center;
315
+ gap: 8px;
316
+ justify-content: center;
317
+ `;
318
+ const QRWrap = styled.div`
319
+ margin: 0 auto;
320
+ width: 280px;
321
+ `;
322
+ function CopyableInfo({
323
+ depAddr,
324
+ remainingS,
325
+ totalS
326
+ }) {
327
+ const underpayment = depAddr?.underpayment;
328
+ const isExpired = depAddr?.expirationS != null && remainingS === 0;
329
+ const locales = useLocales();
330
+ return /* @__PURE__ */ jsxs(CopyableInfoWrapper, { children: [
331
+ underpayment && /* @__PURE__ */ jsx(UnderpaymentInfo, { underpayment }),
332
+ /* @__PURE__ */ jsx(
333
+ CopyRowOrThrobber,
334
+ {
335
+ title: locales.sendExactly,
336
+ value: depAddr?.amount,
337
+ smallText: depAddr?.coins,
338
+ disabled: isExpired
339
+ }
340
+ ),
341
+ /* @__PURE__ */ jsx(
342
+ CopyRowOrThrobber,
343
+ {
344
+ title: locales.receivingAddress,
345
+ value: depAddr?.address,
346
+ valueText: depAddr?.address && getAddressContraction(depAddr.address),
347
+ disabled: isExpired
348
+ }
349
+ ),
350
+ /* @__PURE__ */ jsx(CountdownWrap, { children: /* @__PURE__ */ jsx(CountdownTimer, { remainingS, totalS }) })
351
+ ] });
352
+ }
353
+ function UnderpaymentInfo({ underpayment }) {
354
+ return /* @__PURE__ */ jsxs(UnderpaymentWrapper, { children: [
355
+ /* @__PURE__ */ jsxs(UnderpaymentHeader, { children: [
356
+ /* @__PURE__ */ jsx(WarningIcon, {}),
357
+ /* @__PURE__ */ jsxs("span", { children: [
358
+ "Received ",
359
+ underpayment.unitsPaid,
360
+ " ",
361
+ underpayment.coin
362
+ ] })
363
+ ] }),
364
+ /* @__PURE__ */ jsx(SmallText, { children: "Finish by sending the extra amount below." })
365
+ ] });
366
+ }
367
+ const UnderpaymentWrapper = styled.div`
368
+ background: var(--ck-body-background-tertiary);
369
+ border-radius: 8px;
370
+ padding: 16px;
371
+ margin: 0 4px 16px 4px;
372
+ margin-bottom: 16px;
373
+ `;
374
+ const UnderpaymentHeader = styled.div`
375
+ font-weight: 500;
376
+ display: flex;
377
+ justify-content: center;
378
+ align-items: flex-end;
379
+ gap: 8px;
380
+ margin-bottom: 8px;
381
+ `;
382
+ const CopyableInfoWrapper = styled.div`
383
+ display: flex;
384
+ flex-direction: column;
385
+ justify-content: stretch;
386
+ gap: 0;
387
+ `;
388
+ const CountdownWrap = styled.div`
389
+ margin-top: 24px;
390
+ height: 16px;
391
+ `;
392
+ const FailIcon = styled(AlertIcon)`
393
+ color: var(--ck-body-color-alert);
394
+ width: 32px;
395
+ height: 32px;
396
+ margin-top: auto;
397
+ margin-bottom: 16px;
398
+ `;
399
+ function useCountdown(expirationS) {
400
+ const initMs = useMemo(() => Date.now(), [expirationS]);
401
+ const [ms, setMs] = useState(initMs);
402
+ useEffect(() => {
403
+ const interval = setInterval(() => setMs(Date.now()), 1e3);
404
+ return () => clearInterval(interval);
405
+ }, []);
406
+ if (expirationS == null) return [0, 0];
407
+ const remainingS = Math.max(0, expirationS - ms / 1e3 | 0);
408
+ const totalS = Math.max(0, expirationS - initMs / 1e3 | 0);
409
+ return [remainingS, totalS];
410
+ }
411
+ function CountdownTimer({
412
+ remainingS,
413
+ totalS
414
+ }) {
415
+ const locales = useLocales();
416
+ if (totalS == 0 || remainingS > 3600) {
417
+ return /* @__PURE__ */ jsx(SmallText, { children: locales.sendOnlyOnce });
418
+ }
419
+ const isExpired = remainingS === 0;
420
+ return /* @__PURE__ */ jsx(ModalBody, { children: /* @__PURE__ */ jsxs(CountdownRow, { children: [
421
+ /* @__PURE__ */ jsx(
422
+ CircleTimer,
423
+ {
424
+ total: totalS,
425
+ currentTime: remainingS,
426
+ size: 18,
427
+ stroke: 3
428
+ }
429
+ ),
430
+ /* @__PURE__ */ jsx("strong", { children: isExpired ? "Expired" : formatTime(remainingS) })
431
+ ] }) });
432
+ }
433
+ const CountdownRow = styled.div`
434
+ display: flex;
435
+ align-items: center;
436
+ justify-content: center;
437
+ gap: 8px;
438
+ font-variant-numeric: tabular-nums;
439
+ `;
440
+ const formatTime = (sec) => {
441
+ const m = `${Math.floor(sec / 60)}`.padStart(2, "0");
442
+ const s = `${sec % 60}`.padStart(2, "0");
443
+ return `${m}:${s}`;
444
+ };
445
+ function DepositFailed({ name }) {
446
+ return /* @__PURE__ */ jsxs(ModalContent, { style: { marginLeft: 24, marginRight: 24 }, children: [
447
+ /* @__PURE__ */ jsxs(ModalH1, { children: [
448
+ name,
449
+ " unavailable"
450
+ ] }),
451
+ /* @__PURE__ */ jsxs(ModalBody, { children: [
452
+ "We're unable to process ",
453
+ name,
454
+ " payments at this time. Please select another payment method."
455
+ ] }),
456
+ /* @__PURE__ */ jsx(SelectAnotherMethodButton, {})
457
+ ] });
458
+ }
459
+ const CopyRow = styled.button`
460
+ display: block;
461
+ height: 64px;
462
+ border-radius: 8px;
463
+ padding: 8px 16px;
464
+
465
+ cursor: pointer;
466
+ background-color: var(--ck-body-background);
467
+ background-color: var(--ck-body-background);
468
+
469
+ display: flex;
470
+ align-items: center;
471
+ justify-content: space-between;
472
+
473
+ transition: all 100ms ease;
474
+
475
+ &:hover {
476
+ opacity: 0.8;
477
+ }
478
+
479
+ &:active {
480
+ transform: scale(0.98);
481
+ background-color: var(--ck-body-background-secondary);
482
+ }
483
+
484
+ &:disabled {
485
+ cursor: default;
486
+ opacity: 0.5;
487
+ transform: scale(0.98);
488
+ background-color: var(--ck-body-background-secondary);
489
+ }
490
+ `;
491
+ const LabelRow = styled.div`
492
+ margin-bottom: 4px;
493
+ `;
494
+ const MainRow = styled.div`
495
+ display: flex;
496
+ align-items: center;
497
+ justify-content: space-between;
498
+ `;
499
+ const ValueContainer = styled.div`
500
+ display: flex;
501
+ align-items: center;
502
+ gap: 8px;
503
+ `;
504
+ const SmallText = styled.span`
505
+ font-size: 14px;
506
+ color: var(--ck-primary-button-color);
507
+ `;
508
+ const ValueText = styled.span`
509
+ font-size: 14px;
510
+ font-weight: 600;
511
+ color: var(--ck-primary-button-color);
512
+ `;
513
+ const LabelText = styled(ModalBody)`
514
+ margin: 0;
515
+ text-align: left;
516
+ `;
517
+ const pulse = keyframes`
518
+ 0% {
519
+ opacity: 0.6;
520
+ }
521
+ 50% {
522
+ opacity: 1;
523
+ }
524
+ 100% {
525
+ opacity: 0.6;
526
+ }
527
+ `;
528
+ const Skeleton = styled.div`
529
+ width: 80px;
530
+ height: 16px;
531
+ border-radius: 8px;
532
+ background-color: rgba(0, 0, 0, 0.1);
533
+ animation: ${pulse} 1.5s ease-in-out infinite;
534
+ `;
535
+ function CopyRowOrThrobber({
536
+ title,
537
+ value,
538
+ valueText,
539
+ smallText,
540
+ disabled
541
+ }) {
542
+ const [copied, setCopied] = useState(false);
543
+ const handleCopy = () => {
544
+ if (disabled) return;
545
+ if (!value) return;
546
+ const str = value.trim();
547
+ if (navigator.clipboard) {
548
+ navigator.clipboard.writeText(str);
549
+ }
550
+ setCopied(true);
551
+ setTimeout(() => setCopied(false), 1e3);
552
+ };
553
+ if (!value) {
554
+ return /* @__PURE__ */ jsxs(CopyRow, { children: [
555
+ /* @__PURE__ */ jsx(LabelRow, { children: /* @__PURE__ */ jsx(LabelText, { children: title }) }),
556
+ /* @__PURE__ */ jsx(MainRow, { children: /* @__PURE__ */ jsx(Skeleton, {}) })
557
+ ] });
558
+ }
559
+ const displayValue = valueText || value;
560
+ return /* @__PURE__ */ jsxs(CopyRow, { as: "button", onClick: handleCopy, disabled, children: [
561
+ /* @__PURE__ */ jsxs("div", { children: [
562
+ /* @__PURE__ */ jsx(LabelRow, { children: /* @__PURE__ */ jsx(LabelText, { children: title }) }),
563
+ /* @__PURE__ */ jsx(MainRow, { children: /* @__PURE__ */ jsxs(ValueContainer, { children: [
564
+ /* @__PURE__ */ jsx(ValueText, { children: displayValue }),
565
+ smallText && /* @__PURE__ */ jsx(SmallText, { children: smallText })
566
+ ] }) })
567
+ ] }),
568
+ /* @__PURE__ */ jsx(CopyIconWrap, { children: /* @__PURE__ */ jsx(CopyToClipboardIcon, { copied, dark: true }) })
569
+ ] });
570
+ }
571
+ const CopyIconWrap = styled.div`
572
+ --color: var(--ck-copytoclipboard-stroke);
573
+ --bg: var(--ck-body-background);
574
+ `;
575
+ async function beforeLeave(trpc, orderId) {
576
+ return new Promise((resolve) => {
577
+ if (handleLeavePrompt) {
578
+ handleLeavePrompt({ trpc, orderId, resolve });
579
+ } else {
580
+ resolve(true);
581
+ }
582
+ });
583
+ }
584
+
585
+ export { beforeLeave, WaitingDepositAddress as default };
586
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../../src/components/Pages/WaitingDepositAddress/index.tsx"],"sourcesContent":["import {\n arbitrumUSDC,\n baseUSDC,\n DepositAddressPaymentOptionMetadata,\n DepositAddressPaymentOptions,\n ethereumUSDC,\n getAddressContraction,\n getChainName,\n isHydrated,\n optimismUSDC,\n polygonUSDC,\n type Token,\n} from \"@daimo/pay-common\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { keyframes } from \"styled-components\";\nimport { AlertIcon, WarningIcon } from \"../../../assets/icons\";\nimport { useDaimoPay } from \"../../../hooks/useDaimoPay\";\nimport useIsMobile from \"../../../hooks/useIsMobile\";\nimport useLocales from \"../../../hooks/useLocales\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\nimport styled from \"../../../styles/styled\";\nimport Button from \"../../Common/Button\";\nimport CircleTimer from \"../../Common/CircleTimer\";\nimport CopyToClipboardIcon from \"../../Common/CopyToClipboard/CopyToClipboardIcon\";\nimport CustomQRCode from \"../../Common/CustomQRCode\";\nimport {\n ModalBody,\n ModalContent,\n ModalH1,\n PageContent,\n} from \"../../Common/Modal/styles\";\nimport SelectAnotherMethodButton from \"../../Common/SelectAnotherMethodButton\";\nimport TokenChainLogo from \"../../Common/TokenChainLogo\";\n// Warning confirmation UI for ending a Tron deposit-address session\nimport Warning from \"../Warning\";\n// module-level handler pointer used by the leave guard to notify the mounted component\nlet handleLeavePrompt:\n | ((detail: {\n trpc: any;\n orderId?: string;\n resolve: (proceed: boolean) => void;\n }) => void)\n | undefined;\n\n// Centered container for icon + text in Tron underpay screen\nconst CenterContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 16px;\n max-width: 100%;\n`;\n\ntype DepositAddr = {\n displayToken: Token | null;\n logoURI: string;\n expirationS?: number;\n uri?: string;\n coins?: string;\n amount?: string;\n address?: string;\n underpayment?: Underpayment;\n};\n\ntype Underpayment = {\n unitsPaid: string;\n coin: string;\n};\n\nexport default function WaitingDepositAddress() {\n const context = usePayContext();\n const { triggerResize, paymentState, trpc } = context;\n const { payWithDepositAddress, selectedDepositAddressOption } = paymentState;\n const daimo = useDaimoPay();\n const { order } = daimo;\n\n // Detect Optimism USDT0 under-payment: the order has received some funds\n // but less than required.\n const tronUnderpay =\n order != null &&\n isHydrated(order) &&\n order.sourceTokenAmount != null &&\n order.sourceTokenAmount.token.chainId === 10 &&\n order.sourceTokenAmount.token.symbol.toUpperCase() === \"USDT0\" &&\n Number(order.sourceTokenAmount.usd) < order.usdValue;\n\n const [depAddr, setDepAddr] = useState<DepositAddr>();\n const [failed, setFailed] = useState(false);\n\n // If we selected a deposit address option, generate the address...\n const generateDepositAddress = () => {\n // when starting a fresh address flow, dismiss any warning\n if (daimo.paymentState === \"warning\") {\n daimo.dismissWarning();\n }\n if (selectedDepositAddressOption == null) {\n if (order == null || !isHydrated(order)) return;\n if (order.sourceTokenAmount == null) return;\n\n // Pay underpaid order\n const taPaid = order.sourceTokenAmount;\n const usdPaid = taPaid.usd; // TODO: get usdPaid directly from the order\n const usdToPay = Math.max(order.usdValue - usdPaid, 0.01);\n const dispDecimals = taPaid.token.displayDecimals;\n const unitsToPay = (usdToPay / taPaid.token.usd).toFixed(dispDecimals);\n const unitsPaid = (\n Number(taPaid.amount) /\n 10 ** taPaid.token.decimals\n ).toFixed(dispDecimals);\n\n // (Removed duplicate tronUnderpay calculation now handled at top-level)\n // Hack to always show a <= 60 minute countdown\n let expirationS = (order.createdAt ?? 0) + 59.5 * 60;\n if (\n order.expirationTs != null &&\n Number(order.expirationTs) < expirationS\n ) {\n expirationS = Number(order.expirationTs);\n }\n\n setDepAddr({\n address: order.intentAddr,\n amount: unitsToPay,\n underpayment: { unitsPaid, coin: taPaid.token.symbol },\n coins: `${taPaid.token.symbol} on ${getChainName(taPaid.token.chainId)}`,\n expirationS: expirationS,\n uri: order.intentAddr,\n displayToken: taPaid.token,\n logoURI: \"\", // Not needed for underpaid orders\n });\n } else {\n const displayToken = getDisplayToken(selectedDepositAddressOption);\n const logoURI = selectedDepositAddressOption.logoURI;\n setDepAddr({\n displayToken,\n logoURI,\n });\n payWithDepositAddress(selectedDepositAddressOption.id).then((details) => {\n if (details) {\n setDepAddr({\n address: details.address,\n amount: details.amount,\n coins: details.suffix,\n expirationS: details.expirationS,\n uri: details.uri,\n displayToken,\n logoURI,\n });\n } else {\n setFailed(true);\n }\n });\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(generateDepositAddress, [selectedDepositAddressOption]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(triggerResize, [depAddr, failed]);\n\n return (\n <PageContent>\n {tronUnderpay ? (\n <TronUnderpayContent orderId={order?.id?.toString()} />\n ) : failed ? (\n selectedDepositAddressOption && (\n <DepositFailed name={selectedDepositAddressOption.id} />\n )\n ) : (\n depAddr && (\n <DepositAddressInfo\n depAddr={depAddr}\n refresh={generateDepositAddress}\n triggerResize={triggerResize}\n />\n )\n )}\n </PageContent>\n );\n}\n\nfunction TronUnderpayContent({ orderId }: { orderId?: string }) {\n const locales = useLocales();\n return (\n <ModalContent\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n paddingBottom: 0,\n position: \"relative\",\n }}\n >\n <CenterContainer>\n <FailIcon />\n <ModalH1 style={{ textAlign: \"center\", marginTop: 16 }}>\n USDT Tron Payment Was Too Low\n </ModalH1>\n <div style={{ height: 16 }} />\n <ModalBody style={{ textAlign: \"center\" }}>\n Your funds are safe.\n <br />\n Email support@daimo.com for a refund.\n </ModalBody>\n <Button\n onClick={() =>\n window.open(\n `mailto:support@daimo.com?subject=Underpaid%20USDT%20Tron%20payment%20for%20order%20${orderId}`,\n \"_blank\",\n )\n }\n style={{ marginTop: 16, width: 200 }}\n >\n {locales.contactSupport}\n </Button>\n </CenterContainer>\n </ModalContent>\n );\n}\n\nfunction DepositAddressInfo({\n depAddr,\n refresh,\n triggerResize,\n}: {\n depAddr: DepositAddr;\n refresh: () => void;\n triggerResize: () => void;\n}) {\n const { isMobile } = useIsMobile();\n const { paymentState: payCtxState } = usePayContext();\n const daimo = useDaimoPay();\n const locales = useLocales();\n const [remainingS, totalS] = useCountdown(depAddr?.expirationS);\n const isExpired = depAddr?.expirationS != null && remainingS === 0;\n const [showQR, setShowQR] = useState(!isMobile);\n const pendingLeaveResolveRef = useRef<\n ((proceed: boolean) => void) | undefined\n >(undefined);\n const pendingLeaveMetaRef = useRef<\n { trpc: any; orderId?: string } | undefined\n >(undefined);\n const leavingInProgressRef = useRef(false);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(triggerResize, [isExpired, showQR]);\n\n // register a module-level handler so the guard can notify this mounted instance\n useEffect(() => {\n handleLeavePrompt = (detail: {\n trpc: any;\n orderId?: string;\n resolve: (proceed: boolean) => void;\n }) => {\n const isTron =\n payCtxState.selectedDepositAddressOption?.id ===\n DepositAddressPaymentOptions.TRON_USDT;\n\n if (!isTron) {\n detail.resolve(true);\n return;\n }\n const hasDepositAddress = !!depAddr?.address;\n if (!hasDepositAddress) {\n if (detail.orderId && detail.trpc) {\n // fire-and-forget: don’t block navigation while we cancel server-side\n detail.trpc.cancelDepositAddressForOrder\n .mutate({ orderId: detail.orderId })\n .then(() => {})\n .catch(() => {});\n }\n detail.resolve(true);\n return;\n }\n daimo.setWarning(\n \"Do you want to end your Tron TRC20 USDT address? Ending it will end your current session, and you’ll need to start a new one.\",\n );\n pendingLeaveMetaRef.current = {\n trpc: detail.trpc,\n orderId: detail.orderId,\n };\n pendingLeaveResolveRef.current = detail.resolve;\n leavingInProgressRef.current = false;\n };\n return () => {\n // clear on unmount\n handleLeavePrompt = undefined;\n };\n // keep handler fresh with latest values\n }, [depAddr?.address, payCtxState.selectedDepositAddressOption?.id, daimo]);\n\n const logoOffset = isMobile ? 4 : 0;\n const logoElement = depAddr.displayToken ? (\n <TokenChainLogo\n token={depAddr.displayToken}\n size={64}\n offset={logoOffset}\n />\n ) : (\n <img src={depAddr.logoURI} width=\"64px\" height=\"64px\" />\n );\n\n if (daimo.paymentState === \"warning\") {\n return (\n <Warning\n body={<>{daimo.paymentWarningMessage}</>}\n primaryLabel={locales.leaveConfirm_stay}\n secondaryLabel={locales.leaveConfirm_leave}\n onPrimary={() => {\n pendingLeaveResolveRef.current?.(false);\n pendingLeaveResolveRef.current = undefined;\n pendingLeaveMetaRef.current = undefined;\n leavingInProgressRef.current = false;\n daimo.dismissWarning();\n }}\n onSecondary={async () => {\n if (\n pendingLeaveMetaRef.current &&\n pendingLeaveMetaRef.current.orderId &&\n pendingLeaveMetaRef.current.trpc\n ) {\n // Fire-and-forget cancellation\n const meta = pendingLeaveMetaRef.current;\n meta.trpc.cancelDepositAddressForOrder\n .mutate({ orderId: meta.orderId })\n .then(() => {})\n .catch(() => {});\n }\n // Resolve first so navigation happens immediately; then clean up\n leavingInProgressRef.current = true;\n pendingLeaveResolveRef.current?.(true);\n pendingLeaveResolveRef.current = undefined;\n pendingLeaveMetaRef.current = undefined;\n // Let the modal dismiss the warning after navigation to avoid flashes\n }}\n />\n );\n }\n\n // Suppress rendering during programmatic navigation after ending session\n if (leavingInProgressRef.current) {\n return null;\n }\n\n return (\n <ModalContent>\n {isExpired ? (\n <LogoRow>\n <Button onClick={refresh} style={{ width: 128 }}>\n {locales.refresh}\n </Button>\n </LogoRow>\n ) : showQR ? (\n <QRWrap>\n <CustomQRCode\n value={depAddr?.uri}\n contentPadding={24}\n size={200}\n image={logoElement}\n />\n </QRWrap>\n ) : (\n <LogoRow>\n <LogoWrap>{logoElement}</LogoWrap>\n </LogoRow>\n )}\n <div style={{ height: 8 }} />\n {isMobile && <ShowHideQRRow showQR={showQR} setShowQR={setShowQR} />}\n <CopyableInfo depAddr={depAddr} remainingS={remainingS} totalS={totalS} />\n </ModalContent>\n );\n}\n\nfunction getDisplayToken(meta: DepositAddressPaymentOptionMetadata) {\n switch (meta.id) {\n case DepositAddressPaymentOptions.OP_MAINNET:\n return optimismUSDC;\n case DepositAddressPaymentOptions.ARBITRUM:\n return arbitrumUSDC;\n case DepositAddressPaymentOptions.BASE:\n return baseUSDC;\n case DepositAddressPaymentOptions.POLYGON:\n return polygonUSDC;\n case DepositAddressPaymentOptions.ETH_L1:\n return ethereumUSDC;\n default:\n return null;\n }\n}\n\nfunction ShowHideQRRow({\n showQR,\n setShowQR,\n}: {\n showQR: boolean;\n setShowQR: (showQR: boolean) => void;\n}) {\n const toggleQR = () => setShowQR(!showQR);\n const locales = useLocales();\n\n return (\n <ShowQRWrap>\n <CopyRow onClick={toggleQR}>\n <SmallText>{showQR ? locales.hideQR : locales.showQR}</SmallText>\n <div style={{ width: 8 }} />\n <ShowQRIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"#666\"\n className=\"size-6\"\n width={20}\n height={20}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M3.75 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 3.75 9.375v-4.5ZM3.75 14.625c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5a1.125 1.125 0 0 1-1.125-1.125v-4.5ZM13.5 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 13.5 9.375v-4.5Z\"\n />\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M6.75 6.75h.75v.75h-.75v-.75ZM6.75 16.5h.75v.75h-.75v-.75ZM16.5 6.75h.75v.75h-.75v-.75ZM13.5 13.5h.75v.75h-.75v-.75ZM13.5 19.5h.75v.75h-.75v-.75ZM19.5 13.5h.75v.75h-.75v-.75ZM19.5 19.5h.75v.75h-.75v-.75ZM16.5 16.5h.75v.75h-.75v-.75Z\"\n />\n </svg>\n </ShowQRIcon>\n </CopyRow>\n </ShowQRWrap>\n );\n}\n\nconst ShowQRWrap = styled.div`\n display: flex;\n justify-content: center;\n color: var(--ck-primary-button-color);\n`;\n\nconst ShowQRIcon = styled.div`\n width: 20px;\n`;\n\nconst LogoWrap = styled.div`\n position: relative;\n width: 64px;\n height: 64px;\n`;\n\nconst LogoRow = styled.div`\n padding: 32px 0;\n height: 128px;\n display: flex;\n align-items: center;\n gap: 8px;\n justify-content: center;\n`;\n\nconst QRWrap = styled.div`\n margin: 0 auto;\n width: 280px;\n`;\n\nfunction CopyableInfo({\n depAddr,\n remainingS,\n totalS,\n}: {\n depAddr?: DepositAddr;\n remainingS: number;\n totalS: number;\n}) {\n const underpayment = depAddr?.underpayment;\n const isExpired = depAddr?.expirationS != null && remainingS === 0;\n const locales = useLocales();\n return (\n <CopyableInfoWrapper>\n {underpayment && <UnderpaymentInfo underpayment={underpayment} />}\n <CopyRowOrThrobber\n title={locales.sendExactly}\n value={depAddr?.amount}\n smallText={depAddr?.coins}\n disabled={isExpired}\n />\n <CopyRowOrThrobber\n title={locales.receivingAddress}\n value={depAddr?.address}\n valueText={depAddr?.address && getAddressContraction(depAddr.address)}\n disabled={isExpired}\n />\n <CountdownWrap>\n <CountdownTimer remainingS={remainingS} totalS={totalS} />\n </CountdownWrap>\n </CopyableInfoWrapper>\n );\n}\n\nfunction UnderpaymentInfo({ underpayment }: { underpayment: Underpayment }) {\n // Default message\n return (\n <UnderpaymentWrapper>\n <UnderpaymentHeader>\n <WarningIcon />\n <span>\n Received {underpayment.unitsPaid} {underpayment.coin}\n </span>\n </UnderpaymentHeader>\n <SmallText>Finish by sending the extra amount below.</SmallText>\n </UnderpaymentWrapper>\n );\n}\n\nconst UnderpaymentWrapper = styled.div`\n background: var(--ck-body-background-tertiary);\n border-radius: 8px;\n padding: 16px;\n margin: 0 4px 16px 4px;\n margin-bottom: 16px;\n`;\n\nconst UnderpaymentHeader = styled.div`\n font-weight: 500;\n display: flex;\n justify-content: center;\n align-items: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n`;\n\nconst CopyableInfoWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: stretch;\n gap: 0;\n`;\n\nconst CountdownWrap = styled.div`\n margin-top: 24px;\n height: 16px;\n`;\n\nconst FailIcon = styled(AlertIcon)`\n color: var(--ck-body-color-alert);\n width: 32px;\n height: 32px;\n margin-top: auto;\n margin-bottom: 16px;\n`;\n\nfunction useCountdown(expirationS?: number) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const initMs = useMemo(() => Date.now(), [expirationS]);\n const [ms, setMs] = useState(initMs);\n\n useEffect(() => {\n const interval = setInterval(() => setMs(Date.now()), 1000);\n return () => clearInterval(interval);\n }, []);\n\n if (expirationS == null) return [0, 0];\n\n const remainingS = Math.max(0, (expirationS - ms / 1000) | 0);\n const totalS = Math.max(0, (expirationS - initMs / 1000) | 0);\n return [remainingS, totalS];\n}\n\nfunction CountdownTimer({\n remainingS,\n totalS,\n}: {\n remainingS: number;\n totalS: number;\n}) {\n const locales = useLocales();\n if (totalS == 0 || remainingS > 3600) {\n return <SmallText>{locales.sendOnlyOnce}</SmallText>;\n }\n const isExpired = remainingS === 0;\n\n return (\n <ModalBody>\n <CountdownRow>\n <CircleTimer\n total={totalS}\n currentTime={remainingS}\n size={18}\n stroke={3}\n />\n <strong>{isExpired ? \"Expired\" : formatTime(remainingS)}</strong>\n </CountdownRow>\n </ModalBody>\n );\n}\n\nconst CountdownRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-variant-numeric: tabular-nums;\n`;\n\nconst formatTime = (sec: number) => {\n const m = `${Math.floor(sec / 60)}`.padStart(2, \"0\");\n const s = `${sec % 60}`.padStart(2, \"0\");\n return `${m}:${s}`;\n};\n\nfunction DepositFailed({ name }: { name: string }) {\n return (\n <ModalContent style={{ marginLeft: 24, marginRight: 24 }}>\n <ModalH1>{name} unavailable</ModalH1>\n <ModalBody>\n We&apos;re unable to process {name} payments at this time. Please select\n another payment method.\n </ModalBody>\n <SelectAnotherMethodButton />\n </ModalContent>\n );\n}\n\nconst CopyRow = styled.button`\n display: block;\n height: 64px;\n border-radius: 8px;\n padding: 8px 16px;\n\n cursor: pointer;\n background-color: var(--ck-body-background);\n background-color: var(--ck-body-background);\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n transition: all 100ms ease;\n\n &:hover {\n opacity: 0.8;\n }\n\n &:active {\n transform: scale(0.98);\n background-color: var(--ck-body-background-secondary);\n }\n\n &:disabled {\n cursor: default;\n opacity: 0.5;\n transform: scale(0.98);\n background-color: var(--ck-body-background-secondary);\n }\n`;\n\nconst LabelRow = styled.div`\n margin-bottom: 4px;\n`;\n\nconst MainRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst ValueContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n\nconst SmallText = styled.span`\n font-size: 14px;\n color: var(--ck-primary-button-color);\n`;\n\nconst ValueText = styled.span`\n font-size: 14px;\n font-weight: 600;\n color: var(--ck-primary-button-color);\n`;\n\nconst LabelText = styled(ModalBody)`\n margin: 0;\n text-align: left;\n`;\n\nconst pulse = keyframes`\n 0% {\n opacity: 0.6;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.6;\n }\n`;\n\nconst Skeleton = styled.div`\n width: 80px;\n height: 16px;\n border-radius: 8px;\n background-color: rgba(0, 0, 0, 0.1);\n animation: ${pulse} 1.5s ease-in-out infinite;\n`;\n\nfunction CopyRowOrThrobber({\n title,\n value,\n valueText,\n smallText,\n disabled,\n}: {\n title: string;\n value?: string;\n valueText?: string;\n smallText?: string;\n disabled?: boolean;\n}) {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = () => {\n if (disabled) return;\n if (!value) return;\n const str = value.trim();\n if (navigator.clipboard) {\n navigator.clipboard.writeText(str);\n }\n setCopied(true);\n setTimeout(() => setCopied(false), 1000);\n };\n\n if (!value) {\n return (\n <CopyRow>\n <LabelRow>\n <LabelText>{title}</LabelText>\n </LabelRow>\n <MainRow>\n <Skeleton />\n </MainRow>\n </CopyRow>\n );\n }\n\n const displayValue = valueText || value;\n\n return (\n <CopyRow as=\"button\" onClick={handleCopy} disabled={disabled}>\n <div>\n <LabelRow>\n <LabelText>{title}</LabelText>\n </LabelRow>\n <MainRow>\n <ValueContainer>\n <ValueText>{displayValue}</ValueText>\n {smallText && <SmallText>{smallText}</SmallText>}\n </ValueContainer>\n </MainRow>\n </div>\n <CopyIconWrap>\n <CopyToClipboardIcon copied={copied} dark />\n </CopyIconWrap>\n </CopyRow>\n );\n}\n\nconst CopyIconWrap = styled.div`\n --color: var(--ck-copytoclipboard-stroke);\n --bg: var(--ck-body-background);\n`;\n\n// Leave guard that cancels the Untron order if user confirms\nexport async function beforeLeave(\n trpc: any,\n orderId?: string,\n): Promise<boolean> {\n return new Promise((resolve) => {\n if (handleLeavePrompt) {\n handleLeavePrompt({ trpc, orderId, resolve });\n } else {\n resolve(true);\n }\n });\n}\n"],"names":["Warning"],"mappings":"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"}