0xtrails 0.0.1 → 0.0.2

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 (359) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +42 -0
  3. package/dist/abi.d.ts +37 -0
  4. package/dist/abi.d.ts.map +1 -0
  5. package/dist/abi.js +36 -0
  6. package/dist/apiClient.d.ts +9 -0
  7. package/dist/apiClient.d.ts.map +1 -0
  8. package/dist/apiClient.js +18 -0
  9. package/dist/buffer.d.ts +3 -0
  10. package/dist/buffer.d.ts.map +1 -0
  11. package/dist/buffer.js +8 -0
  12. package/dist/cctp.d.ts +84 -0
  13. package/dist/cctp.d.ts.map +1 -0
  14. package/dist/cctp.js +401 -0
  15. package/dist/chainSwitch.d.ts +7 -0
  16. package/dist/chainSwitch.d.ts.map +1 -0
  17. package/dist/chainSwitch.js +33 -0
  18. package/dist/chains.d.ts +13 -0
  19. package/dist/chains.d.ts.map +1 -0
  20. package/dist/chains.js +95 -0
  21. package/dist/constants.d.ts +11 -0
  22. package/dist/constants.d.ts.map +1 -0
  23. package/dist/constants.js +16 -0
  24. package/dist/encoders.d.ts +7 -0
  25. package/dist/encoders.d.ts.map +1 -0
  26. package/dist/encoders.js +8 -0
  27. package/dist/error.d.ts +2 -0
  28. package/dist/error.d.ts.map +1 -0
  29. package/dist/error.js +12 -0
  30. package/dist/explorer.d.ts +12 -0
  31. package/dist/explorer.d.ts.map +1 -0
  32. package/dist/explorer.js +18 -0
  33. package/dist/gasless.d.ts +116 -0
  34. package/dist/gasless.d.ts.map +1 -0
  35. package/dist/gasless.js +297 -0
  36. package/dist/index.d.ts +13 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +9 -0
  39. package/dist/indexerClient.d.ts +9 -0
  40. package/dist/indexerClient.d.ts.map +1 -0
  41. package/dist/indexerClient.js +18 -0
  42. package/dist/intents.d.ts +83 -0
  43. package/dist/intents.d.ts.map +1 -0
  44. package/dist/intents.js +288 -0
  45. package/dist/metaTxnMonitor.d.ts +14 -0
  46. package/dist/metaTxnMonitor.d.ts.map +1 -0
  47. package/dist/metaTxnMonitor.js +121 -0
  48. package/dist/metaTxns.d.ts +6 -0
  49. package/dist/metaTxns.d.ts.map +1 -0
  50. package/dist/metaTxns.js +4 -0
  51. package/dist/paymasterSend.d.ts +90 -0
  52. package/dist/paymasterSend.d.ts.map +1 -0
  53. package/dist/paymasterSend.js +329 -0
  54. package/dist/preconditions.d.ts +11 -0
  55. package/dist/preconditions.d.ts.map +1 -0
  56. package/dist/preconditions.js +29 -0
  57. package/dist/prepareSend.d.ts +102 -0
  58. package/dist/prepareSend.d.ts.map +1 -0
  59. package/dist/prepareSend.js +1080 -0
  60. package/dist/prices.d.ts +18 -0
  61. package/dist/prices.d.ts.map +1 -0
  62. package/dist/prices.js +142 -0
  63. package/dist/queryParams.d.ts +9 -0
  64. package/dist/queryParams.d.ts.map +1 -0
  65. package/dist/queryParams.js +66 -0
  66. package/dist/relaySdk.d.ts +65 -0
  67. package/dist/relaySdk.d.ts.map +1 -0
  68. package/dist/relaySdk.js +314 -0
  69. package/dist/relayer.d.ts +23 -0
  70. package/dist/relayer.d.ts.map +1 -0
  71. package/dist/relayer.js +230 -0
  72. package/dist/sendUserOp.d.ts +140 -0
  73. package/dist/sendUserOp.d.ts.map +1 -0
  74. package/dist/sendUserOp.js +388 -0
  75. package/dist/sequenceWallet.d.ts +79 -0
  76. package/dist/sequenceWallet.d.ts.map +1 -0
  77. package/dist/sequenceWallet.js +374 -0
  78. package/dist/theme.d.ts +3 -0
  79. package/dist/theme.d.ts.map +1 -0
  80. package/dist/theme.js +1 -0
  81. package/dist/toSimpleSmartAccount.d.ts +95 -0
  82. package/dist/toSimpleSmartAccount.d.ts.map +1 -0
  83. package/dist/toSimpleSmartAccount.js +373 -0
  84. package/dist/tokenBalances.d.ts +118 -0
  85. package/dist/tokenBalances.d.ts.map +1 -0
  86. package/dist/tokenBalances.js +492 -0
  87. package/dist/tokens.d.ts +50 -0
  88. package/dist/tokens.d.ts.map +1 -0
  89. package/dist/tokens.js +356 -0
  90. package/dist/trails.d.ts +128 -0
  91. package/dist/trails.d.ts.map +1 -0
  92. package/dist/trails.js +1031 -0
  93. package/dist/umd/trails.min.js +12610 -0
  94. package/dist/umd/trails.min.js.map +1 -0
  95. package/dist/umd.d.ts +24 -0
  96. package/dist/umd.d.ts.map +1 -0
  97. package/dist/utils.d.ts +5 -0
  98. package/dist/utils.d.ts.map +1 -0
  99. package/dist/utils.js +9 -0
  100. package/dist/widget/ConstantsUtil-B-_-u8aQ.js +6 -0
  101. package/dist/widget/add-hVLs3ldJ.js +20 -0
  102. package/dist/widget/all-wallets-Cwxnx4BT.js +11 -0
  103. package/dist/widget/app-store-CAAVQjW0.js +22 -0
  104. package/dist/widget/apple-C3BSbglw.js +23 -0
  105. package/dist/widget/arrow-bottom-circle-BGU9MmsZ.js +16 -0
  106. package/dist/widget/arrow-bottom-hS_SA8Gp.js +13 -0
  107. package/dist/widget/arrow-left-CJZanWz7.js +13 -0
  108. package/dist/widget/arrow-right-C1qL8EMd.js +13 -0
  109. package/dist/widget/arrow-top-CbuCmbQs.js +13 -0
  110. package/dist/widget/bank-CXBEEGbb.js +19 -0
  111. package/dist/widget/bin-Dqzv3zCZ.js +9 -0
  112. package/dist/widget/bitcoin-4y3sovZp.js +18 -0
  113. package/dist/widget/browser-DyOl4_8m.js +1413 -0
  114. package/dist/widget/browser-t7Fh0sEU.js +19 -0
  115. package/dist/widget/card-Bo4CZkTs.js +19 -0
  116. package/dist/widget/ccip-BynehMIN.js +232 -0
  117. package/dist/widget/checkmark-DV6OKvnY.js +16 -0
  118. package/dist/widget/checkmark-bold-CAp1-IQ2.js +13 -0
  119. package/dist/widget/chevron-bottom-BjzsVzk9.js +13 -0
  120. package/dist/widget/chevron-left-CQZBDCiR.js +13 -0
  121. package/dist/widget/chevron-right-Dhg4zeZM.js +13 -0
  122. package/dist/widget/chevron-top-CDQmfJef.js +13 -0
  123. package/dist/widget/chrome-store-BNaC_b6w.js +66 -0
  124. package/dist/widget/circle-BC_GBj91.js +9 -0
  125. package/dist/widget/clock-BmF8-4a0.js +13 -0
  126. package/dist/widget/close-Bf61nZ8o.js +13 -0
  127. package/dist/widget/coinPlaceholder-7cZW2058.js +13 -0
  128. package/dist/widget/compass-CFC3yhnW.js +13 -0
  129. package/dist/widget/components/ChainImage.d.ts +8 -0
  130. package/dist/widget/components/ChainImage.d.ts.map +1 -0
  131. package/dist/widget/components/ChainImage.js +6 -0
  132. package/dist/widget/components/ConnectWallet.d.ts +18 -0
  133. package/dist/widget/components/ConnectWallet.d.ts.map +1 -0
  134. package/dist/widget/components/ConnectWallet.js +66 -0
  135. package/dist/widget/components/DebugScreensDropdown.d.ts +9 -0
  136. package/dist/widget/components/DebugScreensDropdown.d.ts.map +1 -0
  137. package/dist/widget/components/DebugScreensDropdown.js +40 -0
  138. package/dist/widget/components/FeeOptions.d.ts +17 -0
  139. package/dist/widget/components/FeeOptions.d.ts.map +1 -0
  140. package/dist/widget/components/FeeOptions.js +65 -0
  141. package/dist/widget/components/Footer.d.ts +9 -0
  142. package/dist/widget/components/Footer.d.ts.map +1 -0
  143. package/dist/widget/components/Footer.js +13 -0
  144. package/dist/widget/components/GreenCheckAnimation.d.ts +2 -0
  145. package/dist/widget/components/GreenCheckAnimation.d.ts.map +1 -0
  146. package/dist/widget/components/GreenCheckAnimation.js +74 -0
  147. package/dist/widget/components/Modal.d.ts +11 -0
  148. package/dist/widget/components/Modal.d.ts.map +1 -0
  149. package/dist/widget/components/Modal.js +36 -0
  150. package/dist/widget/components/Receipt.d.ts +13 -0
  151. package/dist/widget/components/Receipt.d.ts.map +1 -0
  152. package/dist/widget/components/Receipt.js +36 -0
  153. package/dist/widget/components/SendForm.d.ts +44 -0
  154. package/dist/widget/components/SendForm.d.ts.map +1 -0
  155. package/dist/widget/components/SendForm.js +177 -0
  156. package/dist/widget/components/TokenImage.d.ts +10 -0
  157. package/dist/widget/components/TokenImage.d.ts.map +1 -0
  158. package/dist/widget/components/TokenImage.js +8 -0
  159. package/dist/widget/components/TokenList.d.ts +16 -0
  160. package/dist/widget/components/TokenList.d.ts.map +1 -0
  161. package/dist/widget/components/TokenList.js +39 -0
  162. package/dist/widget/components/TransferPending.d.ts +11 -0
  163. package/dist/widget/components/TransferPending.d.ts.map +1 -0
  164. package/dist/widget/components/TransferPending.js +77 -0
  165. package/dist/widget/components/TransferPendingVertical.d.ts +18 -0
  166. package/dist/widget/components/TransferPendingVertical.d.ts.map +1 -0
  167. package/dist/widget/components/TransferPendingVertical.js +183 -0
  168. package/dist/widget/components/WalletConfirmation.d.ts +18 -0
  169. package/dist/widget/components/WalletConfirmation.d.ts.map +1 -0
  170. package/dist/widget/components/WalletConfirmation.js +22 -0
  171. package/dist/widget/config.d.ts +4 -0
  172. package/dist/widget/config.d.ts.map +1 -0
  173. package/dist/widget/config.js +3 -0
  174. package/dist/widget/copy-e0xXvKN0.js +20 -0
  175. package/dist/widget/cursor-CqM3v0xJ.js +8 -0
  176. package/dist/widget/cursor-transparent-CUQpdsCG.js +17 -0
  177. package/dist/widget/desktop-DUDGIRpM.js +14 -0
  178. package/dist/widget/disconnect-DUFST9QQ.js +13 -0
  179. package/dist/widget/discord-C1cj365Z.js +22 -0
  180. package/dist/widget/email-BHhmb_lX.js +703 -0
  181. package/dist/widget/embedded-wallet-CuuC4eah.js +467 -0
  182. package/dist/widget/ethereum-CfmBVfeB.js +15 -0
  183. package/dist/widget/etherscan-BSiynDhW.js +11 -0
  184. package/dist/widget/exclamation-triangle-DEiFNpHw.js +9 -0
  185. package/dist/widget/extension-mRmfCDxo.js +13 -0
  186. package/dist/widget/external-link-B4xMIVnW.js +13 -0
  187. package/dist/widget/facebook-CBAZStBR.js +31 -0
  188. package/dist/widget/farcaster-LHDEDf5S.js +17 -0
  189. package/dist/widget/filters-CBijuvFv.js +13 -0
  190. package/dist/widget/github-C3ILD420.js +23 -0
  191. package/dist/widget/google-CSj73POX.js +23 -0
  192. package/dist/widget/help-circle-2hdG5IdB.js +17 -0
  193. package/dist/widget/hooks/useAmountUsd.d.ts +13 -0
  194. package/dist/widget/hooks/useAmountUsd.d.ts.map +1 -0
  195. package/dist/widget/hooks/useAmountUsd.js +35 -0
  196. package/dist/widget/hooks/useSendForm.d.ts +125 -0
  197. package/dist/widget/hooks/useSendForm.d.ts.map +1 -0
  198. package/dist/widget/hooks/useSendForm.js +450 -0
  199. package/dist/widget/hooks/useTokenList.d.ts +52 -0
  200. package/dist/widget/hooks/useTokenList.d.ts.map +1 -0
  201. package/dist/widget/hooks/useTokenList.js +252 -0
  202. package/dist/widget/id-ByYSrwsd.js +17 -0
  203. package/dist/widget/if-defined-DRXJEhv7.js +752 -0
  204. package/dist/widget/image-C90L4Rf6.js +9 -0
  205. package/dist/widget/index-B3SlQ9v3.js +46 -0
  206. package/dist/widget/index-B8LPuLXQ.js +78 -0
  207. package/dist/widget/index-BDbworWA.js +171 -0
  208. package/dist/widget/index-BTlDgFSK.js +98 -0
  209. package/dist/widget/index-BUCcjXbd.js +306 -0
  210. package/dist/widget/index-BZ34edi2.js +1055 -0
  211. package/dist/widget/index-BiCU29wK.js +147 -0
  212. package/dist/widget/index-BlmqIKsY.js +266 -0
  213. package/dist/widget/index-BlviH5nG.js +55 -0
  214. package/dist/widget/index-Bwd5X3fS.js +8306 -0
  215. package/dist/widget/index-C5gmknHK.js +78 -0
  216. package/dist/widget/index-CD6dBcRj.js +76 -0
  217. package/dist/widget/index-CDlhy529.js +63 -0
  218. package/dist/widget/index-CHXa5ke-.js +59 -0
  219. package/dist/widget/index-CK94R-H7.js +22498 -0
  220. package/dist/widget/index-CQzo3m3x.js +182 -0
  221. package/dist/widget/index-CRT8cAwG.js +325 -0
  222. package/dist/widget/index-CY7Lt2Yu.js +310 -0
  223. package/dist/widget/index-CiKfAu1E.js +79 -0
  224. package/dist/widget/index-CkCu6rMi.js +258 -0
  225. package/dist/widget/index-CngLTu_R.js +517 -0
  226. package/dist/widget/index-CsMV8-em.js +2577 -0
  227. package/dist/widget/index-Cu2Wva8v.js +200 -0
  228. package/dist/widget/index-DKBxLTEF.js +240 -0
  229. package/dist/widget/index-DQEVT3dx.js +511 -0
  230. package/dist/widget/index-DU2HcCis.js +200 -0
  231. package/dist/widget/index-DutZGWNW.js +321 -0
  232. package/dist/widget/index-O0glArmc.js +182 -0
  233. package/dist/widget/index-O8FmRjKe.js +63719 -0
  234. package/dist/widget/index-RtKXrB6I.js +576 -0
  235. package/dist/widget/index-TIYtS0gE.js +88 -0
  236. package/dist/widget/index-dQNJvWHs.js +66 -0
  237. package/dist/widget/index-wmEwdsq7.js +909 -0
  238. package/dist/widget/index.d.ts +3 -0
  239. package/dist/widget/index.d.ts.map +1 -0
  240. package/dist/widget/index.js +2 -0
  241. package/dist/widget/info-DMPChDjV.js +8 -0
  242. package/dist/widget/info-circle-DAvS_7nY.js +17 -0
  243. package/dist/widget/lightbulb-DnZ9mNEs.js +8 -0
  244. package/dist/widget/lit-html-BRjl1r6K.js +243 -0
  245. package/dist/widget/mail-DpaVSOP8.js +13 -0
  246. package/dist/widget/mobile-CRvdyu7I.js +14 -0
  247. package/dist/widget/more-C5VqW9PR.js +16 -0
  248. package/dist/widget/network-placeholder-CZ0vApma.js +19 -0
  249. package/dist/widget/nftPlaceholder-7jjIK2bT.js +13 -0
  250. package/dist/widget/off-4mHjJLLX.js +9 -0
  251. package/dist/widget/onramp-Bc0ozVsw.js +929 -0
  252. package/dist/widget/play-store-Uocul8nC.js +37 -0
  253. package/dist/widget/plus-DrYF7siO.js +18 -0
  254. package/dist/widget/prepareSend-BQJmzM5B.js +54987 -0
  255. package/dist/widget/qr-code-DcnGMUB3.js +11 -0
  256. package/dist/widget/receive-fvIVd7R_.js +184 -0
  257. package/dist/widget/recycle-horizontal-DrDwXC4D.js +14 -0
  258. package/dist/widget/ref-CXNmEjML.js +41 -0
  259. package/dist/widget/refresh-OK9lIPLS.js +13 -0
  260. package/dist/widget/reown-logo-C-Qn7mS3.js +17 -0
  261. package/dist/widget/search-DZqv1oKg.js +13 -0
  262. package/dist/widget/send-CJlmI-xe.js +1039 -0
  263. package/dist/widget/send-otoEC8uU.js +20 -0
  264. package/dist/widget/socials-BJciurWF.js +599 -0
  265. package/dist/widget/solana-Bv5Hs_0T.js +18 -0
  266. package/dist/widget/swapHorizontal-BzOPGV37.js +13 -0
  267. package/dist/widget/swapHorizontalBold-axyHnSmj.js +13 -0
  268. package/dist/widget/swapHorizontalMedium-C6YOPfPz.js +21 -0
  269. package/dist/widget/swapHorizontalRoundedBold-yVcLbWNT.js +13 -0
  270. package/dist/widget/swapVertical-BDjxt9pE.js +13 -0
  271. package/dist/widget/swaps-DEWNj4kd.js +1637 -0
  272. package/dist/widget/telegram-BQJD7dlP.js +21 -0
  273. package/dist/widget/three-dots-DW9jmSMG.js +10 -0
  274. package/dist/widget/transactions-uCseGQQt.js +38 -0
  275. package/dist/widget/twitch-XugxDfOE.js +23 -0
  276. package/dist/widget/twitterIcon-DQVObQUL.js +11 -0
  277. package/dist/widget/types.d.ts +51 -0
  278. package/dist/widget/types.d.ts.map +1 -0
  279. package/dist/widget/types.js +1 -0
  280. package/dist/widget/verify-DpMYHxLf.js +13 -0
  281. package/dist/widget/verify-filled-KpEL6ZJ_.js +13 -0
  282. package/dist/widget/w3m-modal-C8e-6Kba.js +1047 -0
  283. package/dist/widget/wallet-D8ssEB0o.js +13 -0
  284. package/dist/widget/wallet-placeholder-HtAy21Wc.js +19 -0
  285. package/dist/widget/walletconnect-Bp_4XfrY.js +37 -0
  286. package/dist/widget/warning-circle-FgYS7P7n.js +17 -0
  287. package/dist/widget/widget/index.js +7 -0
  288. package/dist/widget/widget.d.ts +47 -0
  289. package/dist/widget/widget.d.ts.map +1 -0
  290. package/dist/widget/widget.js +932 -0
  291. package/dist/widget/x-DlZBoP9k.js +17 -0
  292. package/dist/widget/x-mark-Ba9pt-_h.js +8 -0
  293. package/package.json +102 -8
  294. package/src/abi.ts +38 -0
  295. package/src/apiClient.ts +32 -0
  296. package/src/buffer.ts +10 -0
  297. package/src/cctp.ts +579 -0
  298. package/src/chainSwitch.ts +55 -0
  299. package/src/chains.ts +124 -0
  300. package/src/constants.ts +26 -0
  301. package/src/encoders.ts +20 -0
  302. package/src/error.ts +15 -0
  303. package/src/explorer.ts +37 -0
  304. package/src/gasless.ts +545 -0
  305. package/src/index.ts +48 -0
  306. package/src/indexerClient.ts +36 -0
  307. package/src/intents.ts +537 -0
  308. package/src/metaTxnMonitor.ts +163 -0
  309. package/src/metaTxns.ts +21 -0
  310. package/src/paymasterSend.ts +503 -0
  311. package/src/preconditions.ts +52 -0
  312. package/src/prepareSend.ts +1849 -0
  313. package/src/prices.ts +186 -0
  314. package/src/queryParams.ts +80 -0
  315. package/src/relaySdk.ts +481 -0
  316. package/src/relayer.ts +255 -0
  317. package/src/sendUserOp.ts +570 -0
  318. package/src/sequenceWallet.ts +579 -0
  319. package/src/theme.ts +2 -0
  320. package/src/toSimpleSmartAccount.ts +567 -0
  321. package/src/tokenBalances.ts +760 -0
  322. package/src/tokens.ts +471 -0
  323. package/src/trails.ts +1591 -0
  324. package/src/types.d.ts +11 -0
  325. package/src/umd.tsx +49 -0
  326. package/src/utils.ts +16 -0
  327. package/src/vite-env.d.ts +4 -0
  328. package/src/widget/assets/MetaMask-icon-fox-with-margins.svg +31 -0
  329. package/src/widget/assets/MetaMask-icon-fox.svg +26 -0
  330. package/src/widget/assets/MetaMask-logo-black.svg +3 -0
  331. package/src/widget/assets/MetaMask-logo-white.svg +16 -0
  332. package/src/widget/assets/Privy_Brandmark_Black.svg +9 -0
  333. package/src/widget/assets/Privy_Brandmark_White.svg +9 -0
  334. package/src/widget/assets/Trails-logo-black.svg +11 -0
  335. package/src/widget/assets/Trails-logo-white.svg +11 -0
  336. package/src/widget/components/ChainImage.tsx +28 -0
  337. package/src/widget/components/ConnectWallet.tsx +206 -0
  338. package/src/widget/components/DebugScreensDropdown.tsx +88 -0
  339. package/src/widget/components/FeeOptions.tsx +199 -0
  340. package/src/widget/components/Footer.tsx +51 -0
  341. package/src/widget/components/GreenCheckAnimation.tsx +119 -0
  342. package/src/widget/components/Modal.tsx +97 -0
  343. package/src/widget/components/Receipt.tsx +237 -0
  344. package/src/widget/components/SendForm.tsx +695 -0
  345. package/src/widget/components/TokenImage.tsx +37 -0
  346. package/src/widget/components/TokenList.tsx +287 -0
  347. package/src/widget/components/TransferPending.tsx +204 -0
  348. package/src/widget/components/TransferPendingVertical.tsx +412 -0
  349. package/src/widget/components/WalletConfirmation.tsx +172 -0
  350. package/src/widget/config.ts +5 -0
  351. package/src/widget/hooks/useAmountUsd.ts +59 -0
  352. package/src/widget/hooks/useSendForm.ts +715 -0
  353. package/src/widget/hooks/useTokenList.ts +397 -0
  354. package/src/widget/index.css +2 -0
  355. package/src/widget/index.tsx +8 -0
  356. package/src/widget/types/svg.d.ts +8 -0
  357. package/src/widget/types.ts +59 -0
  358. package/src/widget/widget.tsx +1438 -0
  359. package/index.js +0 -1
@@ -0,0 +1,909 @@
1
+ import { O as $, P as x, d as k, h as m, c as A, I as _, l as f, J as W, v as B, e as N, S as P, A as g, R as O, M as T, D as H, F, i as G, a as V, T as j, C as L, u as K } from "./index-CK94R-H7.js";
2
+ import { x as d } from "./lit-html-BRjl1r6K.js";
3
+ import { o as b, r as h, c as Y } from "./if-defined-DRXJEhv7.js";
4
+ import "./index-CRT8cAwG.js";
5
+ import "./index-DutZGWNW.js";
6
+ import "./index-C5gmknHK.js";
7
+ import "./index-CDlhy529.js";
8
+ import "./index-CQzo3m3x.js";
9
+ import "./index-BTlDgFSK.js";
10
+ import "./index-B3SlQ9v3.js";
11
+ import "./index-dQNJvWHs.js";
12
+ const o = {
13
+ INVALID_PAYMENT_CONFIG: "INVALID_PAYMENT_CONFIG",
14
+ INVALID_RECIPIENT: "INVALID_RECIPIENT",
15
+ INVALID_ASSET: "INVALID_ASSET",
16
+ INVALID_AMOUNT: "INVALID_AMOUNT",
17
+ UNKNOWN_ERROR: "UNKNOWN_ERROR",
18
+ UNABLE_TO_INITIATE_PAYMENT: "UNABLE_TO_INITIATE_PAYMENT",
19
+ INVALID_CHAIN_NAMESPACE: "INVALID_CHAIN_NAMESPACE",
20
+ GENERIC_PAYMENT_ERROR: "GENERIC_PAYMENT_ERROR",
21
+ UNABLE_TO_GET_EXCHANGES: "UNABLE_TO_GET_EXCHANGES",
22
+ ASSET_NOT_SUPPORTED: "ASSET_NOT_SUPPORTED",
23
+ UNABLE_TO_GET_PAY_URL: "UNABLE_TO_GET_PAY_URL",
24
+ UNABLE_TO_GET_BUY_STATUS: "UNABLE_TO_GET_BUY_STATUS"
25
+ }, E = {
26
+ [o.INVALID_PAYMENT_CONFIG]: "Invalid payment configuration",
27
+ [o.INVALID_RECIPIENT]: "Invalid recipient address",
28
+ [o.INVALID_ASSET]: "Invalid asset specified",
29
+ [o.INVALID_AMOUNT]: "Invalid payment amount",
30
+ [o.UNKNOWN_ERROR]: "Unknown payment error occurred",
31
+ [o.UNABLE_TO_INITIATE_PAYMENT]: "Unable to initiate payment",
32
+ [o.INVALID_CHAIN_NAMESPACE]: "Invalid chain namespace",
33
+ [o.GENERIC_PAYMENT_ERROR]: "Unable to process payment",
34
+ [o.UNABLE_TO_GET_EXCHANGES]: "Unable to get exchanges",
35
+ [o.ASSET_NOT_SUPPORTED]: "Asset not supported by the selected exchange",
36
+ [o.UNABLE_TO_GET_PAY_URL]: "Unable to get payment URL",
37
+ [o.UNABLE_TO_GET_BUY_STATUS]: "Unable to get buy status"
38
+ };
39
+ class c extends Error {
40
+ get message() {
41
+ return E[this.code];
42
+ }
43
+ constructor(e, s) {
44
+ super(E[e]), this.name = "AppKitPayError", this.code = e, this.details = s, Error.captureStackTrace && Error.captureStackTrace(this, c);
45
+ }
46
+ }
47
+ const z = "https://rpc.walletconnect.org/v1/json-rpc";
48
+ class q extends Error {
49
+ }
50
+ function X() {
51
+ const n = $.getSnapshot().projectId;
52
+ return `${z}?projectId=${n}`;
53
+ }
54
+ async function U(n, e) {
55
+ const s = X(), i = await (await fetch(s, {
56
+ method: "POST",
57
+ body: JSON.stringify({
58
+ jsonrpc: "2.0",
59
+ id: 1,
60
+ method: n,
61
+ params: e
62
+ }),
63
+ headers: { "Content-Type": "application/json" }
64
+ })).json();
65
+ if (i.error)
66
+ throw new q(i.error.message);
67
+ return i;
68
+ }
69
+ async function M(n) {
70
+ return (await U("reown_getExchanges", n)).result;
71
+ }
72
+ async function J(n) {
73
+ return (await U("reown_getExchangePayUrl", n)).result;
74
+ }
75
+ async function Q(n) {
76
+ return (await U("reown_getExchangeBuyStatus", n)).result;
77
+ }
78
+ const Z = ["eip155", "solana"], ee = {
79
+ eip155: {
80
+ native: { assetNamespace: "slip44", assetReference: "60" },
81
+ defaultTokenNamespace: "erc20"
82
+ },
83
+ solana: {
84
+ native: { assetNamespace: "slip44", assetReference: "501" },
85
+ defaultTokenNamespace: "token"
86
+ }
87
+ };
88
+ function v(n, e) {
89
+ const { chainNamespace: s, chainId: a } = x.parseCaipNetworkId(n), r = ee[s];
90
+ if (!r)
91
+ throw new Error(`Unsupported chain namespace for CAIP-19 formatting: ${s}`);
92
+ let i = r.native.assetNamespace, u = r.native.assetReference;
93
+ return e !== "native" && (i = r.defaultTokenNamespace, u = e), `${`${s}:${a}`}/${i}:${u}`;
94
+ }
95
+ function te(n) {
96
+ const { chainNamespace: e } = x.parseCaipNetworkId(n);
97
+ return Z.includes(e);
98
+ }
99
+ async function ne(n) {
100
+ const { paymentAssetNetwork: e, activeCaipNetwork: s, approvedCaipNetworkIds: a, requestedCaipNetworks: r } = n, u = k.sortRequestedNetworks(a, r).find((C) => C.caipNetworkId === e);
101
+ if (!u)
102
+ throw new c(o.INVALID_PAYMENT_CONFIG);
103
+ if (u.caipNetworkId === s.caipNetworkId)
104
+ return;
105
+ const p = m.getNetworkProp("supportsAllNetworks", u.chainNamespace);
106
+ if (!((a == null ? void 0 : a.includes(u.caipNetworkId)) || p))
107
+ throw new c(o.INVALID_PAYMENT_CONFIG);
108
+ try {
109
+ await m.switchActiveNetwork(u);
110
+ } catch (C) {
111
+ throw new c(o.GENERIC_PAYMENT_ERROR, C);
112
+ }
113
+ }
114
+ async function se(n, e, s) {
115
+ var p;
116
+ if (e !== A.CHAIN.EVM)
117
+ throw new c(o.INVALID_CHAIN_NAMESPACE);
118
+ if (!s.fromAddress)
119
+ throw new c(o.INVALID_PAYMENT_CONFIG, "fromAddress is required for native EVM payments.");
120
+ const a = typeof s.amount == "string" ? parseFloat(s.amount) : s.amount;
121
+ if (isNaN(a))
122
+ throw new c(o.INVALID_PAYMENT_CONFIG);
123
+ const r = ((p = n.metadata) == null ? void 0 : p.decimals) ?? 18, i = f.parseUnits(a.toString(), r);
124
+ if (typeof i != "bigint")
125
+ throw new c(o.GENERIC_PAYMENT_ERROR);
126
+ return await f.sendTransaction({
127
+ chainNamespace: e,
128
+ to: s.recipient,
129
+ address: s.fromAddress,
130
+ value: i,
131
+ data: "0x"
132
+ }) ?? void 0;
133
+ }
134
+ async function ae(n, e) {
135
+ if (!e.fromAddress)
136
+ throw new c(o.INVALID_PAYMENT_CONFIG, "fromAddress is required for ERC20 EVM payments.");
137
+ const s = n.asset, a = e.recipient, r = Number(n.metadata.decimals), i = f.parseUnits(e.amount.toString(), r);
138
+ if (i === void 0)
139
+ throw new c(o.GENERIC_PAYMENT_ERROR);
140
+ return await f.writeContract({
141
+ fromAddress: e.fromAddress,
142
+ tokenAddress: s,
143
+ args: [a, i],
144
+ method: "transfer",
145
+ abi: W.getERC20Abi(s),
146
+ chainNamespace: A.CHAIN.EVM
147
+ }) ?? void 0;
148
+ }
149
+ async function re(n, e) {
150
+ if (n !== A.CHAIN.SOLANA)
151
+ throw new c(o.INVALID_CHAIN_NAMESPACE);
152
+ if (!e.fromAddress)
153
+ throw new c(o.INVALID_PAYMENT_CONFIG, "fromAddress is required for Solana payments.");
154
+ const s = typeof e.amount == "string" ? parseFloat(e.amount) : e.amount;
155
+ if (isNaN(s) || s <= 0)
156
+ throw new c(o.INVALID_PAYMENT_CONFIG, "Invalid payment amount.");
157
+ try {
158
+ if (!_.getProvider(n))
159
+ throw new c(o.GENERIC_PAYMENT_ERROR, "No Solana provider available.");
160
+ const r = await f.sendTransaction({
161
+ chainNamespace: A.CHAIN.SOLANA,
162
+ to: e.recipient,
163
+ value: s,
164
+ tokenMint: e.tokenMint
165
+ });
166
+ if (!r)
167
+ throw new c(o.GENERIC_PAYMENT_ERROR, "Transaction failed.");
168
+ return r;
169
+ } catch (a) {
170
+ throw a instanceof c ? a : new c(o.GENERIC_PAYMENT_ERROR, `Solana payment failed: ${a}`);
171
+ }
172
+ }
173
+ const D = 0, R = "unknown", t = B({
174
+ paymentAsset: {
175
+ network: "eip155:1",
176
+ asset: "0x0",
177
+ metadata: {
178
+ name: "0x0",
179
+ symbol: "0x0",
180
+ decimals: 0
181
+ }
182
+ },
183
+ recipient: "0x0",
184
+ amount: 0,
185
+ isConfigured: !1,
186
+ error: null,
187
+ isPaymentInProgress: !1,
188
+ exchanges: [],
189
+ isLoading: !1,
190
+ openInNewTab: !0,
191
+ redirectUrl: void 0,
192
+ payWithExchange: void 0,
193
+ currentPayment: void 0,
194
+ analyticsSet: !1,
195
+ paymentId: void 0
196
+ }), l = {
197
+ state: t,
198
+ subscribe(n) {
199
+ return F(t, () => n(t));
200
+ },
201
+ subscribeKey(n, e) {
202
+ return H(t, n, e);
203
+ },
204
+ async handleOpenPay(n) {
205
+ this.resetState(), this.setPaymentConfig(n), this.subscribeEvents(), this.initializeAnalytics(), t.isConfigured = !0, N.sendEvent({
206
+ type: "track",
207
+ event: "PAY_MODAL_OPEN",
208
+ properties: {
209
+ exchanges: t.exchanges,
210
+ configuration: {
211
+ network: t.paymentAsset.network,
212
+ asset: t.paymentAsset.asset,
213
+ recipient: t.recipient,
214
+ amount: t.amount
215
+ }
216
+ }
217
+ }), await T.open({
218
+ view: "Pay"
219
+ });
220
+ },
221
+ resetState() {
222
+ t.paymentAsset = {
223
+ network: "eip155:1",
224
+ asset: "0x0",
225
+ metadata: { name: "0x0", symbol: "0x0", decimals: 0 }
226
+ }, t.recipient = "0x0", t.amount = 0, t.isConfigured = !1, t.error = null, t.isPaymentInProgress = !1, t.isLoading = !1, t.currentPayment = void 0;
227
+ },
228
+ setPaymentConfig(n) {
229
+ if (!n.paymentAsset)
230
+ throw new c(o.INVALID_PAYMENT_CONFIG);
231
+ try {
232
+ t.paymentAsset = n.paymentAsset, t.recipient = n.recipient, t.amount = n.amount, t.openInNewTab = n.openInNewTab ?? !0, t.redirectUrl = n.redirectUrl, t.payWithExchange = n.payWithExchange, t.error = null;
233
+ } catch (e) {
234
+ throw new c(o.INVALID_PAYMENT_CONFIG, e.message);
235
+ }
236
+ },
237
+ getPaymentAsset() {
238
+ return t.paymentAsset;
239
+ },
240
+ getExchanges() {
241
+ return t.exchanges;
242
+ },
243
+ async fetchExchanges() {
244
+ try {
245
+ t.isLoading = !0;
246
+ const n = await M({
247
+ page: D,
248
+ asset: v(t.paymentAsset.network, t.paymentAsset.asset),
249
+ amount: t.amount.toString()
250
+ });
251
+ t.exchanges = n.exchanges.slice(0, 2);
252
+ } catch {
253
+ throw P.showError(E.UNABLE_TO_GET_EXCHANGES), new c(o.UNABLE_TO_GET_EXCHANGES);
254
+ } finally {
255
+ t.isLoading = !1;
256
+ }
257
+ },
258
+ async getAvailableExchanges(n) {
259
+ var e;
260
+ try {
261
+ const s = n != null && n.asset && (n != null && n.network) ? v(n.network, n.asset) : void 0;
262
+ return await M({
263
+ page: (n == null ? void 0 : n.page) ?? D,
264
+ asset: s,
265
+ amount: (e = n == null ? void 0 : n.amount) == null ? void 0 : e.toString()
266
+ });
267
+ } catch {
268
+ throw new c(o.UNABLE_TO_GET_EXCHANGES);
269
+ }
270
+ },
271
+ async getPayUrl(n, e, s = !1) {
272
+ try {
273
+ const a = Number(e.amount), r = await J({
274
+ exchangeId: n,
275
+ asset: v(e.network, e.asset),
276
+ amount: a.toString(),
277
+ recipient: `${e.network}:${e.recipient}`
278
+ });
279
+ return N.sendEvent({
280
+ type: "track",
281
+ event: "PAY_EXCHANGE_SELECTED",
282
+ properties: {
283
+ exchange: {
284
+ id: n
285
+ },
286
+ configuration: {
287
+ network: e.network,
288
+ asset: e.asset,
289
+ recipient: e.recipient,
290
+ amount: a
291
+ },
292
+ currentPayment: {
293
+ type: "exchange",
294
+ exchangeId: n
295
+ },
296
+ headless: s
297
+ }
298
+ }), s && (this.initiatePayment(), N.sendEvent({
299
+ type: "track",
300
+ event: "PAY_INITIATED",
301
+ properties: {
302
+ paymentId: t.paymentId || R,
303
+ configuration: {
304
+ network: e.network,
305
+ asset: e.asset,
306
+ recipient: e.recipient,
307
+ amount: a
308
+ },
309
+ currentPayment: {
310
+ type: "exchange",
311
+ exchangeId: n
312
+ }
313
+ }
314
+ })), r;
315
+ } catch (a) {
316
+ throw a instanceof Error && a.message.includes("is not supported") ? new c(o.ASSET_NOT_SUPPORTED) : new Error(a.message);
317
+ }
318
+ },
319
+ async openPayUrl(n, e, s = !1) {
320
+ try {
321
+ const a = await this.getPayUrl(n.exchangeId, e, s);
322
+ if (!a)
323
+ throw new c(o.UNABLE_TO_GET_PAY_URL);
324
+ const i = n.openInNewTab ?? !0 ? "_blank" : "_self";
325
+ return k.openHref(a.url, i), a;
326
+ } catch (a) {
327
+ throw a instanceof c ? t.error = a.message : t.error = E.GENERIC_PAYMENT_ERROR, new c(o.UNABLE_TO_GET_PAY_URL);
328
+ }
329
+ },
330
+ subscribeEvents() {
331
+ t.isConfigured || (_.subscribeProviders(async (n) => {
332
+ _.getProvider(m.state.activeChain) && await this.handlePayment();
333
+ }), g.subscribeKey("caipAddress", async (n) => {
334
+ n && await this.handlePayment();
335
+ }));
336
+ },
337
+ async handlePayment() {
338
+ t.currentPayment = {
339
+ type: "wallet",
340
+ status: "IN_PROGRESS"
341
+ };
342
+ const n = g.state.caipAddress;
343
+ if (!n)
344
+ return;
345
+ const { chainId: e, address: s } = x.parseCaipAddress(n), a = m.state.activeChain;
346
+ if (!s || !e || !a || !_.getProvider(a))
347
+ return;
348
+ const i = m.state.activeCaipNetwork;
349
+ if (i && !t.isPaymentInProgress)
350
+ try {
351
+ this.initiatePayment();
352
+ const u = m.getAllRequestedCaipNetworks(), p = m.getAllApprovedCaipNetworkIds();
353
+ switch (await ne({
354
+ paymentAssetNetwork: t.paymentAsset.network,
355
+ activeCaipNetwork: i,
356
+ approvedCaipNetworkIds: p,
357
+ requestedCaipNetworks: u
358
+ }), await T.open({
359
+ view: "PayLoading"
360
+ }), a) {
361
+ case A.CHAIN.EVM:
362
+ t.paymentAsset.asset === "native" && (t.currentPayment.result = await se(t.paymentAsset, a, {
363
+ recipient: t.recipient,
364
+ amount: t.amount,
365
+ fromAddress: s
366
+ })), t.paymentAsset.asset.startsWith("0x") && (t.currentPayment.result = await ae(t.paymentAsset, {
367
+ recipient: t.recipient,
368
+ amount: t.amount,
369
+ fromAddress: s
370
+ })), t.currentPayment.status = "SUCCESS";
371
+ break;
372
+ case A.CHAIN.SOLANA:
373
+ t.currentPayment.result = await re(a, {
374
+ recipient: t.recipient,
375
+ amount: t.amount,
376
+ fromAddress: s,
377
+ tokenMint: t.paymentAsset.asset === "native" ? void 0 : t.paymentAsset.asset
378
+ }), t.currentPayment.status = "SUCCESS";
379
+ break;
380
+ default:
381
+ throw new c(o.INVALID_CHAIN_NAMESPACE);
382
+ }
383
+ } catch (u) {
384
+ u instanceof c ? t.error = u.message : t.error = E.GENERIC_PAYMENT_ERROR, t.currentPayment.status = "FAILED", P.showError(t.error);
385
+ } finally {
386
+ t.isPaymentInProgress = !1;
387
+ }
388
+ },
389
+ getExchangeById(n) {
390
+ return t.exchanges.find((e) => e.id === n);
391
+ },
392
+ validatePayConfig(n) {
393
+ const { paymentAsset: e, recipient: s, amount: a } = n;
394
+ if (!e)
395
+ throw new c(o.INVALID_PAYMENT_CONFIG);
396
+ if (!s)
397
+ throw new c(o.INVALID_RECIPIENT);
398
+ if (!e.asset)
399
+ throw new c(o.INVALID_ASSET);
400
+ if (a == null || a <= 0)
401
+ throw new c(o.INVALID_AMOUNT);
402
+ },
403
+ handlePayWithWallet() {
404
+ const n = g.state.caipAddress;
405
+ if (!n) {
406
+ O.push("Connect");
407
+ return;
408
+ }
409
+ const { chainId: e, address: s } = x.parseCaipAddress(n), a = m.state.activeChain;
410
+ if (!s || !e || !a) {
411
+ O.push("Connect");
412
+ return;
413
+ }
414
+ this.handlePayment();
415
+ },
416
+ async handlePayWithExchange(n) {
417
+ try {
418
+ t.currentPayment = {
419
+ type: "exchange",
420
+ exchangeId: n
421
+ };
422
+ const { network: e, asset: s } = t.paymentAsset, a = {
423
+ network: e,
424
+ asset: s,
425
+ amount: t.amount,
426
+ recipient: t.recipient
427
+ }, r = await this.getPayUrl(n, a);
428
+ if (!r)
429
+ throw new c(o.UNABLE_TO_INITIATE_PAYMENT);
430
+ return t.currentPayment.sessionId = r.sessionId, t.currentPayment.status = "IN_PROGRESS", t.currentPayment.exchangeId = n, this.initiatePayment(), {
431
+ url: r.url,
432
+ openInNewTab: t.openInNewTab
433
+ };
434
+ } catch (e) {
435
+ return e instanceof c ? t.error = e.message : t.error = E.GENERIC_PAYMENT_ERROR, t.isPaymentInProgress = !1, P.showError(t.error), null;
436
+ }
437
+ },
438
+ async getBuyStatus(n, e) {
439
+ var s, a;
440
+ try {
441
+ const r = await Q({ sessionId: e, exchangeId: n });
442
+ return (r.status === "SUCCESS" || r.status === "FAILED") && N.sendEvent({
443
+ type: "track",
444
+ event: r.status === "SUCCESS" ? "PAY_SUCCESS" : "PAY_ERROR",
445
+ properties: {
446
+ paymentId: t.paymentId || R,
447
+ configuration: {
448
+ network: t.paymentAsset.network,
449
+ asset: t.paymentAsset.asset,
450
+ recipient: t.recipient,
451
+ amount: t.amount
452
+ },
453
+ currentPayment: {
454
+ type: "exchange",
455
+ exchangeId: (s = t.currentPayment) == null ? void 0 : s.exchangeId,
456
+ sessionId: (a = t.currentPayment) == null ? void 0 : a.sessionId,
457
+ result: r.txHash
458
+ }
459
+ }
460
+ }), r;
461
+ } catch {
462
+ throw new c(o.UNABLE_TO_GET_BUY_STATUS);
463
+ }
464
+ },
465
+ async updateBuyStatus(n, e) {
466
+ try {
467
+ const s = await this.getBuyStatus(n, e);
468
+ t.currentPayment && (t.currentPayment.status = s.status, t.currentPayment.result = s.txHash), (s.status === "SUCCESS" || s.status === "FAILED") && (t.isPaymentInProgress = !1);
469
+ } catch {
470
+ throw new c(o.UNABLE_TO_GET_BUY_STATUS);
471
+ }
472
+ },
473
+ initiatePayment() {
474
+ t.isPaymentInProgress = !0, t.paymentId = crypto.randomUUID();
475
+ },
476
+ initializeAnalytics() {
477
+ t.analyticsSet || (t.analyticsSet = !0, this.subscribeKey("isPaymentInProgress", (n) => {
478
+ var e;
479
+ if ((e = t.currentPayment) != null && e.status && t.currentPayment.status !== "UNKNOWN") {
480
+ const s = {
481
+ IN_PROGRESS: "PAY_INITIATED",
482
+ SUCCESS: "PAY_SUCCESS",
483
+ FAILED: "PAY_ERROR"
484
+ }[t.currentPayment.status];
485
+ N.sendEvent({
486
+ type: "track",
487
+ event: s,
488
+ properties: {
489
+ paymentId: t.paymentId || R,
490
+ configuration: {
491
+ network: t.paymentAsset.network,
492
+ asset: t.paymentAsset.asset,
493
+ recipient: t.recipient,
494
+ amount: t.amount
495
+ },
496
+ currentPayment: {
497
+ type: t.currentPayment.type,
498
+ exchangeId: t.currentPayment.exchangeId,
499
+ sessionId: t.currentPayment.sessionId,
500
+ result: t.currentPayment.result
501
+ }
502
+ }
503
+ });
504
+ }
505
+ }));
506
+ }
507
+ }, ie = G`
508
+ wui-separator {
509
+ margin: var(--wui-spacing-m) calc(var(--wui-spacing-m) * -1) var(--wui-spacing-xs)
510
+ calc(var(--wui-spacing-m) * -1);
511
+ width: calc(100% + var(--wui-spacing-s) * 2);
512
+ }
513
+
514
+ .token-display {
515
+ padding: var(--wui-spacing-s) var(--wui-spacing-m);
516
+ border-radius: var(--wui-border-radius-s);
517
+ background-color: var(--wui-color-bg-125);
518
+ margin-top: var(--wui-spacing-s);
519
+ margin-bottom: var(--wui-spacing-s);
520
+ }
521
+
522
+ .token-display wui-text {
523
+ text-transform: none;
524
+ }
525
+
526
+ wui-loading-spinner {
527
+ padding: var(--wui-spacing-xs);
528
+ }
529
+ `;
530
+ var y = function(n, e, s, a) {
531
+ var r = arguments.length, i = r < 3 ? e : a === null ? a = Object.getOwnPropertyDescriptor(e, s) : a, u;
532
+ if (typeof Reflect == "object" && typeof Reflect.decorate == "function") i = Reflect.decorate(n, e, s, a);
533
+ else for (var p = n.length - 1; p >= 0; p--) (u = n[p]) && (i = (r < 3 ? u(i) : r > 3 ? u(e, s, i) : u(e, s)) || i);
534
+ return r > 3 && i && Object.defineProperty(e, s, i), i;
535
+ };
536
+ let w = class extends V {
537
+ constructor() {
538
+ super(), this.unsubscribe = [], this.amount = "", this.tokenSymbol = "", this.networkName = "", this.exchanges = l.state.exchanges, this.isLoading = l.state.isLoading, this.loadingExchangeId = null, this.connectedWalletInfo = g.state.connectedWalletInfo, this.initializePaymentDetails(), this.unsubscribe.push(l.subscribeKey("exchanges", (e) => this.exchanges = e)), this.unsubscribe.push(l.subscribeKey("isLoading", (e) => this.isLoading = e)), this.unsubscribe.push(g.subscribe((e) => this.connectedWalletInfo = e.connectedWalletInfo)), l.fetchExchanges();
539
+ }
540
+ get isWalletConnected() {
541
+ return g.state.status === "connected";
542
+ }
543
+ render() {
544
+ return d`
545
+ <wui-flex flexDirection="column">
546
+ <wui-flex flexDirection="column" .padding=${["0", "l", "l", "l"]} gap="s">
547
+ ${this.renderPaymentHeader()}
548
+
549
+ <wui-flex flexDirection="column" gap="s">
550
+ ${this.renderPayWithWallet()} ${this.renderExchangeOptions()}
551
+ </wui-flex>
552
+ </wui-flex>
553
+ </wui-flex>
554
+ `;
555
+ }
556
+ initializePaymentDetails() {
557
+ const e = l.getPaymentAsset();
558
+ this.networkName = e.network, this.tokenSymbol = e.metadata.symbol, this.amount = l.state.amount.toString();
559
+ }
560
+ renderPayWithWallet() {
561
+ return te(this.networkName) ? d`<wui-flex flexDirection="column" gap="s">
562
+ ${this.isWalletConnected ? this.renderConnectedView() : this.renderDisconnectedView()}
563
+ </wui-flex>
564
+ <wui-separator text="or"></wui-separator>` : d``;
565
+ }
566
+ renderPaymentHeader() {
567
+ let e = this.networkName;
568
+ if (this.networkName) {
569
+ const a = m.getAllRequestedCaipNetworks().find((r) => r.caipNetworkId === this.networkName);
570
+ a && (e = a.name);
571
+ }
572
+ return d`
573
+ <wui-flex flexDirection="column" alignItems="center">
574
+ <wui-flex alignItems="center" gap="xs">
575
+ <wui-text variant="large-700" color="fg-100">${this.amount || "0.0000"}</wui-text>
576
+ <wui-flex class="token-display" alignItems="center" gap="xxs">
577
+ <wui-text variant="paragraph-600" color="fg-100">
578
+ ${this.tokenSymbol || "Unknown Asset"}
579
+ </wui-text>
580
+ ${e ? d`
581
+ <wui-text variant="small-500" color="fg-200"> on ${e} </wui-text>
582
+ ` : ""}
583
+ </wui-flex>
584
+ </wui-flex>
585
+ </wui-flex>
586
+ `;
587
+ }
588
+ renderConnectedView() {
589
+ var s, a, r;
590
+ const e = ((s = this.connectedWalletInfo) == null ? void 0 : s.name) || "connected wallet";
591
+ return d`
592
+ <wui-list-item
593
+ @click=${this.onWalletPayment}
594
+ ?chevron=${!0}
595
+ data-testid="wallet-payment-option"
596
+ >
597
+ <wui-flex alignItems="center" gap="s">
598
+ <wui-wallet-image
599
+ size="sm"
600
+ imageSrc=${b((a = this.connectedWalletInfo) == null ? void 0 : a.icon)}
601
+ name=${b((r = this.connectedWalletInfo) == null ? void 0 : r.name)}
602
+ ></wui-wallet-image>
603
+ <wui-text variant="paragraph-500" color="inherit">Pay with ${e}</wui-text>
604
+ </wui-flex>
605
+ </wui-list-item>
606
+
607
+ <wui-list-item
608
+ variant="icon"
609
+ iconVariant="overlay"
610
+ icon="disconnect"
611
+ @click=${this.onDisconnect}
612
+ data-testid="disconnect-button"
613
+ ?chevron=${!1}
614
+ >
615
+ <wui-text variant="paragraph-500" color="fg-200">Disconnect</wui-text>
616
+ </wui-list-item>
617
+ `;
618
+ }
619
+ renderDisconnectedView() {
620
+ return d`<wui-list-item
621
+ variant="icon"
622
+ iconVariant="overlay"
623
+ icon="walletPlaceholder"
624
+ @click=${this.onWalletPayment}
625
+ ?chevron=${!0}
626
+ data-testid="wallet-payment-option"
627
+ >
628
+ <wui-text variant="paragraph-500" color="inherit">Pay from wallet</wui-text>
629
+ </wui-list-item>`;
630
+ }
631
+ renderExchangeOptions() {
632
+ return this.isLoading ? d`<wui-flex justifyContent="center" alignItems="center">
633
+ <wui-spinner size="md"></wui-spinner>
634
+ </wui-flex>` : this.exchanges.length === 0 ? d`<wui-flex justifyContent="center" alignItems="center">
635
+ <wui-text variant="paragraph-500" color="fg-100">No exchanges available</wui-text>
636
+ </wui-flex>` : this.exchanges.map((e) => d`
637
+ <wui-list-item
638
+ @click=${() => this.onExchangePayment(e.id)}
639
+ data-testid="exchange-option-${e.id}"
640
+ ?chevron=${!0}
641
+ ?disabled=${this.loadingExchangeId !== null}
642
+ >
643
+ <wui-flex alignItems="center" gap="s">
644
+ ${this.loadingExchangeId === e.id ? d`<wui-loading-spinner color="accent-100" size="md"></wui-loading-spinner>` : d`<wui-wallet-image
645
+ size="sm"
646
+ imageSrc=${b(e.imageUrl)}
647
+ name=${e.name}
648
+ ></wui-wallet-image>`}
649
+ <wui-text flexGrow="1" variant="paragraph-500" color="inherit"
650
+ >Pay with ${e.name} <wui-spinner size="sm" color="fg-200"></wui-spinner
651
+ ></wui-text>
652
+ </wui-flex>
653
+ </wui-list-item>
654
+ `);
655
+ }
656
+ onWalletPayment() {
657
+ l.handlePayWithWallet();
658
+ }
659
+ async onExchangePayment(e) {
660
+ try {
661
+ this.loadingExchangeId = e;
662
+ const s = await l.handlePayWithExchange(e);
663
+ s && (await T.open({
664
+ view: "PayLoading"
665
+ }), k.openHref(s.url, s.openInNewTab ? "_blank" : "_self"));
666
+ } catch (s) {
667
+ console.error("Failed to pay with exchange", s), P.showError("Failed to pay with exchange");
668
+ } finally {
669
+ this.loadingExchangeId = null;
670
+ }
671
+ }
672
+ async onDisconnect(e) {
673
+ e.stopPropagation();
674
+ try {
675
+ await f.disconnect();
676
+ } catch {
677
+ console.error("Failed to disconnect"), P.showError("Failed to disconnect");
678
+ }
679
+ }
680
+ disconnectedCallback() {
681
+ this.unsubscribe.forEach((e) => e());
682
+ }
683
+ };
684
+ w.styles = ie;
685
+ y([
686
+ h()
687
+ ], w.prototype, "amount", void 0);
688
+ y([
689
+ h()
690
+ ], w.prototype, "tokenSymbol", void 0);
691
+ y([
692
+ h()
693
+ ], w.prototype, "networkName", void 0);
694
+ y([
695
+ h()
696
+ ], w.prototype, "exchanges", void 0);
697
+ y([
698
+ h()
699
+ ], w.prototype, "isLoading", void 0);
700
+ y([
701
+ h()
702
+ ], w.prototype, "loadingExchangeId", void 0);
703
+ y([
704
+ h()
705
+ ], w.prototype, "connectedWalletInfo", void 0);
706
+ w = y([
707
+ Y("w3m-pay-view")
708
+ ], w);
709
+ const oe = G`
710
+ :host {
711
+ display: block;
712
+ height: 100%;
713
+ width: 100%;
714
+ }
715
+
716
+ wui-flex:first-child:not(:only-child) {
717
+ position: relative;
718
+ }
719
+
720
+ wui-loading-thumbnail {
721
+ position: absolute;
722
+ }
723
+ `;
724
+ var S = function(n, e, s, a) {
725
+ var r = arguments.length, i = r < 3 ? e : a === null ? a = Object.getOwnPropertyDescriptor(e, s) : a, u;
726
+ if (typeof Reflect == "object" && typeof Reflect.decorate == "function") i = Reflect.decorate(n, e, s, a);
727
+ else for (var p = n.length - 1; p >= 0; p--) (u = n[p]) && (i = (r < 3 ? u(i) : r > 3 ? u(e, s, i) : u(e, s)) || i);
728
+ return r > 3 && i && Object.defineProperty(e, s, i), i;
729
+ };
730
+ const ce = 4e3;
731
+ let I = class extends V {
732
+ constructor() {
733
+ super(), this.loadingMessage = "", this.subMessage = "", this.paymentState = "in-progress", this.paymentState = l.state.isPaymentInProgress ? "in-progress" : "completed", this.updateMessages(), this.setupSubscription(), this.setupExchangeSubscription();
734
+ }
735
+ disconnectedCallback() {
736
+ clearInterval(this.exchangeSubscription);
737
+ }
738
+ render() {
739
+ return d`
740
+ <wui-flex
741
+ flexDirection="column"
742
+ alignItems="center"
743
+ .padding=${["xl", "xl", "xl", "xl"]}
744
+ gap="xl"
745
+ >
746
+ <wui-flex justifyContent="center" alignItems="center"> ${this.getStateIcon()} </wui-flex>
747
+ <wui-flex flexDirection="column" alignItems="center" gap="xs">
748
+ <wui-text align="center" variant="paragraph-500" color="fg-100">
749
+ ${this.loadingMessage}
750
+ </wui-text>
751
+ <wui-text align="center" variant="small-400" color="fg-200">
752
+ ${this.subMessage}
753
+ </wui-text>
754
+ </wui-flex>
755
+ </wui-flex>
756
+ `;
757
+ }
758
+ updateMessages() {
759
+ var e;
760
+ switch (this.paymentState) {
761
+ case "completed":
762
+ this.loadingMessage = "Payment completed", this.subMessage = "Your transaction has been successfully processed";
763
+ break;
764
+ case "error":
765
+ this.loadingMessage = "Payment failed", this.subMessage = "There was an error processing your transaction";
766
+ break;
767
+ case "in-progress":
768
+ default:
769
+ ((e = l.state.currentPayment) == null ? void 0 : e.type) === "exchange" ? (this.loadingMessage = "Payment initiated", this.subMessage = "Please complete the payment on the exchange") : (this.loadingMessage = "Awaiting payment confirmation", this.subMessage = "Please confirm the payment transaction in your wallet");
770
+ break;
771
+ }
772
+ }
773
+ getStateIcon() {
774
+ switch (this.paymentState) {
775
+ case "completed":
776
+ return this.successTemplate();
777
+ case "error":
778
+ return this.errorTemplate();
779
+ case "in-progress":
780
+ default:
781
+ return this.loaderTemplate();
782
+ }
783
+ }
784
+ setupExchangeSubscription() {
785
+ var e;
786
+ ((e = l.state.currentPayment) == null ? void 0 : e.type) === "exchange" && (this.exchangeSubscription = setInterval(async () => {
787
+ var r, i, u;
788
+ const s = (r = l.state.currentPayment) == null ? void 0 : r.exchangeId, a = (i = l.state.currentPayment) == null ? void 0 : i.sessionId;
789
+ s && a && (await l.updateBuyStatus(s, a), ((u = l.state.currentPayment) == null ? void 0 : u.status) === "SUCCESS" && clearInterval(this.exchangeSubscription));
790
+ }, ce));
791
+ }
792
+ setupSubscription() {
793
+ l.subscribeKey("isPaymentInProgress", (e) => {
794
+ var s;
795
+ !e && this.paymentState === "in-progress" && (l.state.error || !((s = l.state.currentPayment) != null && s.result) ? this.paymentState = "error" : this.paymentState = "completed", this.updateMessages(), setTimeout(() => {
796
+ f.state.status !== "disconnected" && T.close();
797
+ }, 3e3));
798
+ }), l.subscribeKey("error", (e) => {
799
+ e && this.paymentState === "in-progress" && (this.paymentState = "error", this.updateMessages());
800
+ });
801
+ }
802
+ loaderTemplate() {
803
+ const e = j.state.themeVariables["--w3m-border-radius-master"], s = e ? parseInt(e.replace("px", ""), 10) : 4, a = this.getPaymentIcon();
804
+ return d`
805
+ <wui-flex justifyContent="center" alignItems="center" style="position: relative;">
806
+ ${a ? d`<wui-wallet-image size="lg" imageSrc=${a}></wui-wallet-image>` : null}
807
+ <wui-loading-thumbnail radius=${s * 9}></wui-loading-thumbnail>
808
+ </wui-flex>
809
+ `;
810
+ }
811
+ getPaymentIcon() {
812
+ var s;
813
+ const e = l.state.currentPayment;
814
+ if (e) {
815
+ if (e.type === "exchange") {
816
+ const a = e.exchangeId;
817
+ if (a) {
818
+ const r = l.getExchangeById(a);
819
+ return r == null ? void 0 : r.imageUrl;
820
+ }
821
+ }
822
+ if (e.type === "wallet") {
823
+ const a = (s = g.state.connectedWalletInfo) == null ? void 0 : s.icon;
824
+ if (a)
825
+ return a;
826
+ const r = m.state.activeChain;
827
+ if (!r)
828
+ return;
829
+ const i = L.getConnectorId(r);
830
+ if (!i)
831
+ return;
832
+ const u = L.getConnectorById(i);
833
+ return u ? K.getConnectorImage(u) : void 0;
834
+ }
835
+ }
836
+ }
837
+ successTemplate() {
838
+ return d`<wui-icon size="xl" color="success-100" name="checkmark"></wui-icon>`;
839
+ }
840
+ errorTemplate() {
841
+ return d`<wui-icon size="xl" color="error-100" name="close"></wui-icon>`;
842
+ }
843
+ };
844
+ I.styles = oe;
845
+ S([
846
+ h()
847
+ ], I.prototype, "loadingMessage", void 0);
848
+ S([
849
+ h()
850
+ ], I.prototype, "subMessage", void 0);
851
+ S([
852
+ h()
853
+ ], I.prototype, "paymentState", void 0);
854
+ I = S([
855
+ Y("w3m-pay-loading-view")
856
+ ], I);
857
+ async function Pe(n) {
858
+ return l.handleOpenPay(n);
859
+ }
860
+ function _e() {
861
+ return l.getExchanges();
862
+ }
863
+ function xe() {
864
+ var n;
865
+ return (n = l.state.currentPayment) == null ? void 0 : n.result;
866
+ }
867
+ function Te() {
868
+ return l.state.error;
869
+ }
870
+ function Se() {
871
+ return l.state.isPaymentInProgress;
872
+ }
873
+ const Ce = {
874
+ network: "eip155:8453",
875
+ asset: "native",
876
+ metadata: {
877
+ name: "Ethereum",
878
+ symbol: "ETH",
879
+ decimals: 18
880
+ }
881
+ }, be = {
882
+ network: "eip155:8453",
883
+ asset: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
884
+ metadata: {
885
+ name: "USD Coin",
886
+ symbol: "USDC",
887
+ decimals: 6
888
+ }
889
+ }, ve = {
890
+ network: "eip155:84532",
891
+ asset: "native",
892
+ metadata: {
893
+ name: "Ethereum",
894
+ symbol: "ETH",
895
+ decimals: 18
896
+ }
897
+ };
898
+ export {
899
+ I as W3mPayLoadingView,
900
+ w as W3mPayView,
901
+ Ce as baseETH,
902
+ ve as baseSepoliaETH,
903
+ be as baseUSDC,
904
+ _e as getExchanges,
905
+ Se as getIsPaymentInProgress,
906
+ Te as getPayError,
907
+ xe as getPayResult,
908
+ Pe as openPay
909
+ };