@multiversx/sdk-dapp-liquidity 1.0.12 → 1.0.14

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 (302) hide show
  1. package/ConstantsUtil-BinYIDR2.mjs +8 -0
  2. package/ConstantsUtil-CbnVdQ5P.js +8 -0
  3. package/add-D-ECcdUh.mjs +19 -0
  4. package/add-Diz8heiY.js +20 -0
  5. package/all-wallets-_iOQf3bl.js +11 -0
  6. package/all-wallets-puIIQy3Y.mjs +10 -0
  7. package/app-store-BGTKFL27.js +22 -0
  8. package/app-store-Bsf7w3pv.mjs +21 -0
  9. package/apple-Cw8e8IGH.mjs +22 -0
  10. package/apple-DF7n_Yzl.js +23 -0
  11. package/arrow-bottom-Cp2C4fQv.mjs +12 -0
  12. package/arrow-bottom-DTvIR3s3.js +13 -0
  13. package/arrow-bottom-circle-CN6i5mHz.mjs +15 -0
  14. package/arrow-bottom-circle-CzPwiwWH.js +16 -0
  15. package/arrow-left-9VFYHQSW.js +13 -0
  16. package/arrow-left-BDQHoEvX.mjs +12 -0
  17. package/arrow-right-BxkuSpWU.mjs +12 -0
  18. package/arrow-right-DBLQ6w92.js +13 -0
  19. package/arrow-top-BiQd5Aey.js +13 -0
  20. package/arrow-top-BrLVX4Rj.mjs +12 -0
  21. package/bank-B7EC6Kdz.mjs +18 -0
  22. package/bank-CvPn9sfV.js +19 -0
  23. package/{bignumber-CKZkoo0g.mjs → bignumber-2Z7uapuD.mjs} +6 -6
  24. package/{bignumber-B8vjg9qn.js → bignumber-D1Wl54dL.js} +6 -6
  25. package/bin-BXO1kNZh.js +9 -0
  26. package/bin-CwiYVJ1L.mjs +8 -0
  27. package/bitcoin-C3kBVar_.mjs +17 -0
  28. package/bitcoin-DAvQGpeP.js +3251 -0
  29. package/bitcoin-dNBGbS2B.mjs +3251 -0
  30. package/bitcoin-k6bvmzMA.js +18 -0
  31. package/browser-ShRLuKKz.mjs +18 -0
  32. package/browser-t7nfT7HL.js +19 -0
  33. package/card-BJg5bdoM.mjs +18 -0
  34. package/card-hxUDXttT.js +19 -0
  35. package/checkmark-BpR0Yy93.mjs +15 -0
  36. package/checkmark-D9AVWgl5.js +16 -0
  37. package/checkmark-bold-D3Xcby1U.mjs +12 -0
  38. package/checkmark-bold-De02hde8.js +13 -0
  39. package/chevron-bottom-DcBf7T5F.js +13 -0
  40. package/chevron-bottom-DfGpWIz7.mjs +12 -0
  41. package/chevron-left-BKvYVnUo.js +13 -0
  42. package/chevron-left-DGSG9WJQ.mjs +12 -0
  43. package/chevron-right-BLgYIEeO.js +13 -0
  44. package/chevron-right-C2nsTx_Y.mjs +12 -0
  45. package/chevron-top-CwFOEFy8.js +13 -0
  46. package/chevron-top-vk-9DvUU.mjs +12 -0
  47. package/chrome-store-4H_ie3vA.mjs +65 -0
  48. package/chrome-store-BWarxVMl.js +66 -0
  49. package/circle-BtqWJU0_.mjs +8 -0
  50. package/circle-DYjG6o7-.js +9 -0
  51. package/clock-Ba5SM-pl.mjs +12 -0
  52. package/clock-DPzNREdU.js +13 -0
  53. package/close-CJHKFOyp.mjs +12 -0
  54. package/close-DDWnJdJe.js +13 -0
  55. package/coinPlaceholder-Cbba3D1H.mjs +12 -0
  56. package/coinPlaceholder-DdxQIc2D.js +13 -0
  57. package/compass-CugCxeSC.js +13 -0
  58. package/compass-DbN5DkTl.mjs +12 -0
  59. package/copy-CHSZprYJ.mjs +19 -0
  60. package/copy-En5h5Uhu.js +20 -0
  61. package/cursor-DCRkvEhr.mjs +7 -0
  62. package/cursor-DnEQtrUK.js +8 -0
  63. package/cursor-transparent-CU8lk-xg.js +17 -0
  64. package/cursor-transparent-CliETg4d.mjs +16 -0
  65. package/desktop-BgD7aypB.js +14 -0
  66. package/desktop-Cg5I32-p.mjs +13 -0
  67. package/disconnect-CCyMbAdw.js +13 -0
  68. package/disconnect-Cp2vRWB2.mjs +12 -0
  69. package/discord-B1d-qeSk.mjs +21 -0
  70. package/discord-BEB5klec.js +22 -0
  71. package/email-CorlePKz.js +873 -0
  72. package/email-Znno7H8_.mjs +878 -0
  73. package/embedded-wallet-B9ro9Tel.js +549 -0
  74. package/embedded-wallet-CnTWeseG.mjs +552 -0
  75. package/ethereum-BRcsRjUU.mjs +14 -0
  76. package/ethereum-CZ_xe09e.js +15 -0
  77. package/etherscan-BZKGpKp8.mjs +10 -0
  78. package/etherscan-DtLi-C3z.js +11 -0
  79. package/exclamation-triangle-BLNnBLEc.js +9 -0
  80. package/exclamation-triangle-CFThXxRT.mjs +8 -0
  81. package/extension-CwUepr-W.mjs +12 -0
  82. package/extension-DOD67G1k.js +13 -0
  83. package/external-link-CZkQS5XK.js +13 -0
  84. package/external-link-ClYNKSPt.mjs +12 -0
  85. package/facebook-CFjrd4my.mjs +30 -0
  86. package/facebook-CbE6K6AK.js +31 -0
  87. package/farcaster-Ba7_C-Vm.js +17 -0
  88. package/farcaster-DyVJtVS9.mjs +16 -0
  89. package/filters-CpHaFNjT.mjs +12 -0
  90. package/filters-w5LC-r6e.js +13 -0
  91. package/github-CeO70C3E.mjs +22 -0
  92. package/github-uLFBWAa5.js +23 -0
  93. package/google-CyOdUlbw.mjs +22 -0
  94. package/google-ILGK-opP.js +23 -0
  95. package/help-circle-Dh3dRNoB.mjs +16 -0
  96. package/help-circle-HUMbz_KN.js +17 -0
  97. package/id-Cy3Qkrvb.js +17 -0
  98. package/id-D-Q0uPFM.mjs +16 -0
  99. package/if-defined-CJ5EZLw2.js +815 -0
  100. package/if-defined-DjC5UMfF.mjs +815 -0
  101. package/image-BTGOf8bb.mjs +8 -0
  102. package/image-WFQO5bWa.js +9 -0
  103. package/index--O5ypTeK.mjs +70 -0
  104. package/index--Vg7VI9t.js +173 -0
  105. package/index-2iRSO1sa.mjs +9964 -0
  106. package/index-42Rpweo5.mjs +95 -0
  107. package/index-70kjE43k.mjs +90 -0
  108. package/index-8VyNYS01.js +273 -0
  109. package/index-B-dx8l0g.mjs +82 -0
  110. package/index-BB0nW9RB.mjs +198 -0
  111. package/index-BBwuv2SS.js +97 -0
  112. package/index-BIe-kofv.mjs +273 -0
  113. package/index-BQf6VHil.js +278 -0
  114. package/index-BWIZXhFv.mjs +630 -0
  115. package/index-BXkamf-I.js +337 -0
  116. package/index-BYTxCmKH.js +64 -0
  117. package/index-BYoOxo0S.js +218 -0
  118. package/index-Ba0tVdql.js +200 -0
  119. package/index-BdOAPWyt.mjs +210 -0
  120. package/index-BirWzf8c.mjs +71 -0
  121. package/index-BnCJUHtW.mjs +346 -0
  122. package/index-BuL2FC61.mjs +216 -0
  123. package/index-BxSUTfaY.js +88 -0
  124. package/index-C49C5Rxf.js +743 -0
  125. package/index-CNMDBpW7.js +346 -0
  126. package/index-CP0CGjqQ.mjs +263 -0
  127. package/index-CQaHcTZM.mjs +86 -0
  128. package/index-CRGXQei1.js +178 -0
  129. package/index-CSykUIfV.mjs +176 -0
  130. package/index-CWIHaLkQ.mjs +101 -0
  131. package/index-CZSDJd0P.mjs +1070 -0
  132. package/index-CZaV8JgR.mjs +49 -0
  133. package/index-CZjdy6QP.js +101 -0
  134. package/index-C_lIGGlC.js +632 -0
  135. package/index-CcgeRPs2.mjs +57 -0
  136. package/index-CeY_DRuc.js +566 -0
  137. package/index-ChFNkSxT.js +92 -0
  138. package/index-CkjZc20w.js +677 -0
  139. package/index-CtFcWwAd.js +72 -0
  140. package/index-D0mOfznC.mjs +362 -0
  141. package/index-DAtWLY21.js +84 -0
  142. package/index-DEs8H3w2.js +262 -0
  143. package/index-DLnxotbC.mjs +566 -0
  144. package/index-DN4fGDgg.mjs +743 -0
  145. package/index-DT_mc1hV.mjs +335 -0
  146. package/index-DZEwxUMS.js +59 -0
  147. package/index-DaRH_4bD.js +9939 -0
  148. package/index-Daok2ZKn.js +73 -0
  149. package/index-DomzHmwk.js +210 -0
  150. package/index-Dx7NyDyv.mjs +101 -0
  151. package/index-DyGir6_2.mjs +675 -0
  152. package/index-GglJmM2C.js +2237 -0
  153. package/index-H5b7UTeJ.mjs +173 -0
  154. package/index-NNZ1lNuc.mjs +168 -0
  155. package/index-RJd-gQcv.mjs +2235 -0
  156. package/index-dnFzVpGy.js +103 -0
  157. package/index-kwVLu8EV.js +168 -0
  158. package/index-miQwZPmn.js +51 -0
  159. package/index-oCj_SpOa.mjs +62 -0
  160. package/index-pNK-h_x9.js +1069 -0
  161. package/index-r6Kre1rx.js +362 -0
  162. package/index-xBD0nXoB.mjs +276 -0
  163. package/index.js +3 -3
  164. package/index.mjs +3 -3
  165. package/info-BKNAiN0k.js +8 -0
  166. package/info-DQE0s-A4.mjs +7 -0
  167. package/info-circle-C3uTocjH.js +17 -0
  168. package/info-circle-CIn6yeQo.mjs +16 -0
  169. package/lightbulb-CB-BmIop.js +8 -0
  170. package/lightbulb-Gv7IbnzO.mjs +7 -0
  171. package/mail-CFYm95wn.mjs +12 -0
  172. package/mail-GEwk-Fzr.js +13 -0
  173. package/mobile-CZ7ZBfa5.js +14 -0
  174. package/mobile-OIbnpFsU.mjs +13 -0
  175. package/more-C8N_RV55.mjs +15 -0
  176. package/more-CiQpPZwq.js +16 -0
  177. package/network-placeholder-CxEcczEx.mjs +18 -0
  178. package/network-placeholder-DwR8E8hP.js +19 -0
  179. package/nftPlaceholder-BFexVcGX.js +13 -0
  180. package/nftPlaceholder-MiYL110I.mjs +12 -0
  181. package/off-BNiMlpUU.mjs +8 -0
  182. package/off-iJHSK3Z7.js +9 -0
  183. package/onramp-Bs8HHFFY.js +1474 -0
  184. package/onramp-C6fuQfX7.mjs +1480 -0
  185. package/package.json +11 -11
  186. package/play-store-B4ssIYUA.js +37 -0
  187. package/play-store-D6nmQXhX.mjs +36 -0
  188. package/plus-Bh7z7Oc0.js +18 -0
  189. package/plus-C8ioZuCD.mjs +17 -0
  190. package/qr-code-CSVwaBLf.mjs +10 -0
  191. package/qr-code-YgtXPokK.js +11 -0
  192. package/react-BWxe90Ar.mjs +6342 -0
  193. package/react-BzZcQig5.js +6342 -0
  194. package/react-C_wTMVq_.js +23003 -0
  195. package/react-M-DnxvZl.mjs +23003 -0
  196. package/reactjs/components/BridgeForm/BridgeForm.js +2 -1
  197. package/reactjs/components/BridgeForm/BridgeForm.mjs +2 -1
  198. package/reactjs/components/Connect/BridgeAccountDisplay.js +3 -2
  199. package/reactjs/components/Connect/BridgeAccountDisplay.mjs +3 -2
  200. package/reactjs/components/Connect/CustomConnectButton.js +3 -2
  201. package/reactjs/components/Connect/CustomConnectButton.mjs +3 -2
  202. package/reactjs/components/Connect/SwitchChainButton.js +4 -3
  203. package/reactjs/components/Connect/SwitchChainButton.mjs +4 -3
  204. package/reactjs/components/DisplayAmount/DisplayAmount.js +1 -1
  205. package/reactjs/components/DisplayAmount/DisplayAmount.mjs +1 -1
  206. package/reactjs/components/TokenSelector/components/TokenItem.js +1 -1
  207. package/reactjs/components/TokenSelector/components/TokenItem.mjs +1 -1
  208. package/reactjs/hooks/useAccount.d.ts +4 -4
  209. package/reactjs/hooks/useAccount.js +3 -2
  210. package/reactjs/hooks/useAccount.mjs +3 -2
  211. package/reactjs/hooks/useGetChainId.js +1 -1
  212. package/reactjs/hooks/useGetChainId.mjs +1 -1
  213. package/reactjs/index.js +3 -3
  214. package/reactjs/index.mjs +3 -3
  215. package/reactjs/init/init.js +4 -3
  216. package/reactjs/init/init.mjs +4 -3
  217. package/reactjs/init/tests/init.spec.js +2 -2
  218. package/reactjs/init/tests/init.spec.mjs +2 -2
  219. package/reactjs/queries/useGetEvmTokensBalances.query.js +3 -2
  220. package/reactjs/queries/useGetEvmTokensBalances.query.mjs +3 -2
  221. package/reactjs/reexports.js +3 -3
  222. package/reactjs/reexports.mjs +3 -3
  223. package/reactjs/utils/getCleanStringAmount.js +1 -1
  224. package/reactjs/utils/getCleanStringAmount.mjs +1 -1
  225. package/reactjs/utils/hasEnoughFunds.js +1 -1
  226. package/reactjs/utils/hasEnoughFunds.mjs +1 -1
  227. package/reactjs/utils/isStringFloat.js +1 -1
  228. package/reactjs/utils/isStringFloat.mjs +1 -1
  229. package/reactjs/utils/roundAmount.js +1 -1
  230. package/reactjs/utils/roundAmount.mjs +1 -1
  231. package/receive-CK0hRQPr.js +212 -0
  232. package/receive-CQcD6bZf.mjs +212 -0
  233. package/recycle-horizontal--x5cMoTE.js +14 -0
  234. package/recycle-horizontal-QI0xtDHK.mjs +13 -0
  235. package/ref-CqxfRkBm.mjs +41 -0
  236. package/ref-FGI2cUQB.js +41 -0
  237. package/refresh-CFNHjhDi.js +13 -0
  238. package/refresh-CSOC1NUY.mjs +12 -0
  239. package/reown-logo-BfU5xFX5.js +17 -0
  240. package/reown-logo-CZAEp1jU.mjs +16 -0
  241. package/search-Do_rb-9-.mjs +12 -0
  242. package/search-V9CGMHkm.js +13 -0
  243. package/send-D-5G7tDL.mjs +1204 -0
  244. package/send-D4yYsIHV.mjs +19 -0
  245. package/send-DoiSHLsX.js +1202 -0
  246. package/send-_jfNFrys.js +20 -0
  247. package/socials-BL7-97fT.mjs +758 -0
  248. package/socials-DF0CK9cN.js +756 -0
  249. package/solana-BQ0Jh8lh.js +18 -0
  250. package/solana-YAkDp6j_.mjs +17 -0
  251. package/swapHorizontal-DOIo-Ccx.mjs +12 -0
  252. package/swapHorizontal-OHKtz4Gu.js +13 -0
  253. package/swapHorizontalBold-D7QmFj-c.js +13 -0
  254. package/swapHorizontalBold-DDroA0Af.mjs +12 -0
  255. package/swapHorizontalMedium-CU_v0kFz.mjs +20 -0
  256. package/swapHorizontalMedium-D-yMmtml.js +21 -0
  257. package/swapHorizontalRoundedBold-CHvbmnjw.js +13 -0
  258. package/swapHorizontalRoundedBold-DXMH0sgK.mjs +12 -0
  259. package/swapVertical-CH7fTK6w.js +13 -0
  260. package/swapVertical-HJZ6rFcr.mjs +12 -0
  261. package/swaps-CETflhdU.js +1952 -0
  262. package/swaps-DRUV6d3p.mjs +1954 -0
  263. package/telegram-CsCauOwj.mjs +20 -0
  264. package/telegram-DKEcF_Tq.js +21 -0
  265. package/three-dots-B-7hr8Nl.js +10 -0
  266. package/three-dots-LNZ_fjP7.mjs +9 -0
  267. package/transactions-BTTsGV2W.mjs +37 -0
  268. package/transactions-mpNNlClw.js +37 -0
  269. package/twitch-CCWVT2ij.js +23 -0
  270. package/twitch-Dg1CCQvd.mjs +22 -0
  271. package/twitterIcon-BjR09Cj9.mjs +10 -0
  272. package/twitterIcon-CeEs0iDJ.js +11 -0
  273. package/verify-B8WZq7kt.mjs +12 -0
  274. package/verify-filled-BeqC1imk.mjs +12 -0
  275. package/verify-filled-C-mv3ApD.js +13 -0
  276. package/verify-yATdPqt-.js +13 -0
  277. package/w3m-modal-3GziKj7h.js +1254 -0
  278. package/w3m-modal-81Z5PngE.mjs +1255 -0
  279. package/wallet-BMXEH23x.js +13 -0
  280. package/wallet-CNAVQCfm.mjs +12 -0
  281. package/wallet-placeholder-CQ-7CmVN.mjs +18 -0
  282. package/wallet-placeholder-CdoQy2e6.js +19 -0
  283. package/walletconnect-ACr-R1QZ.mjs +38 -0
  284. package/walletconnect-BWSkiS2F.js +39 -0
  285. package/warning-circle-CYnuYwpt.js +17 -0
  286. package/warning-circle-HV2lOiCj.mjs +16 -0
  287. package/x-CW5dozRj.js +17 -0
  288. package/x-Cgm2OFpL.mjs +16 -0
  289. package/x-mark-CR8SpZvu.js +8 -0
  290. package/x-mark-u0KJjUJ1.mjs +7 -0
  291. package/index-B4Eq5P3w.mjs +0 -91
  292. package/index-C4WV9nam.js +0 -329
  293. package/index-CWMcKi_X.js +0 -107
  294. package/index-D8E0O3qL.mjs +0 -68744
  295. package/index-DJ8CdHSw.mjs +0 -107
  296. package/index-nigVQYBu.js +0 -68665
  297. package/react-C43nEIqn.js +0 -3133
  298. package/react-DKUsVej7.js +0 -50
  299. package/react-Dp0H8q2z.mjs +0 -50
  300. package/react-wMhOUFOm.mjs +0 -3133
  301. package/w3m-modal-DLyg7Voy.js +0 -356
  302. package/w3m-modal-hC-B8qZP.mjs +0 -356
@@ -0,0 +1,1474 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
+ const bitcoin = require("./bitcoin-DAvQGpeP.js");
5
+ const ifDefined = require("./if-defined-CJ5EZLw2.js");
6
+ const index = require("./index-CeY_DRuc.js");
7
+ require("./index-BBwuv2SS.js");
8
+ require("./index-CtFcWwAd.js");
9
+ require("./index-dnFzVpGy.js");
10
+ const react = require("./react-BzZcQig5.js");
11
+ const react$1 = require("./react-C_wTMVq_.js");
12
+ require("./index-Ba0tVdql.js");
13
+ const index$1 = require("./index-CNMDBpW7.js");
14
+ require("./index-C_lIGGlC.js");
15
+ require("./index-DZEwxUMS.js");
16
+ require("./index-BXkamf-I.js");
17
+ require("./index-Daok2ZKn.js");
18
+ require("./index-BQf6VHil.js");
19
+ const styles$8 = bitcoin.i`
20
+ :host {
21
+ width: 100%;
22
+ }
23
+
24
+ :host > wui-flex {
25
+ width: 100%;
26
+ padding: var(--wui-spacing-s);
27
+ border-radius: var(--wui-border-radius-xs);
28
+ width: 100%;
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: flex-start;
32
+ gap: var(--wui-spacing-s);
33
+ }
34
+
35
+ :host > wui-flex:hover {
36
+ background-color: var(--wui-color-gray-glass-002);
37
+ }
38
+
39
+ .purchase-image-container {
40
+ display: flex;
41
+ justify-content: center;
42
+ align-items: center;
43
+ position: relative;
44
+ width: var(--wui-icon-box-size-lg);
45
+ height: var(--wui-icon-box-size-lg);
46
+ }
47
+
48
+ .purchase-image-container wui-image {
49
+ width: 100%;
50
+ height: 100%;
51
+ position: relative;
52
+ border-radius: calc(var(--wui-icon-box-size-lg) / 2);
53
+ }
54
+
55
+ .purchase-image-container wui-image::after {
56
+ content: '';
57
+ display: block;
58
+ width: 100%;
59
+ height: 100%;
60
+ position: absolute;
61
+ inset: 0;
62
+ border-radius: calc(var(--wui-icon-box-size-lg) / 2);
63
+ box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);
64
+ }
65
+
66
+ .purchase-image-container wui-icon-box {
67
+ position: absolute;
68
+ right: 0;
69
+ bottom: 0;
70
+ transform: translate(20%, 20%);
71
+ }
72
+ `;
73
+ var __decorate$a = function(decorators, target, key, desc) {
74
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
75
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
76
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
77
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
78
+ };
79
+ let W3mOnRampActivityItem = class W3mOnRampActivityItem2 extends bitcoin.i$1 {
80
+ constructor() {
81
+ super(...arguments);
82
+ this.disabled = false;
83
+ this.color = "inherit";
84
+ this.label = "Bought";
85
+ this.purchaseValue = "";
86
+ this.purchaseCurrency = "";
87
+ this.date = "";
88
+ this.completed = false;
89
+ this.inProgress = false;
90
+ this.failed = false;
91
+ this.onClick = null;
92
+ this.symbol = "";
93
+ }
94
+ firstUpdated() {
95
+ if (!this.icon) {
96
+ this.fetchTokenImage();
97
+ }
98
+ }
99
+ render() {
100
+ return bitcoin.x`
101
+ <wui-flex>
102
+ ${this.imageTemplate()}
103
+ <wui-flex flexDirection="column" gap="4xs" flexGrow="1">
104
+ <wui-flex gap="xxs" alignItems="center" justifyContent="flex-start">
105
+ ${this.statusIconTemplate()}
106
+ <wui-text variant="paragraph-500" color="fg-100"> ${this.label}</wui-text>
107
+ </wui-flex>
108
+ <wui-text variant="small-400" color="fg-200">
109
+ + ${this.purchaseValue} ${this.purchaseCurrency}
110
+ </wui-text>
111
+ </wui-flex>
112
+ ${this.inProgress ? bitcoin.x`<wui-loading-spinner color="fg-200" size="md"></wui-loading-spinner>` : bitcoin.x`<wui-text variant="micro-700" color="fg-300"><span>${this.date}</span></wui-text>`}
113
+ </wui-flex>
114
+ `;
115
+ }
116
+ async fetchTokenImage() {
117
+ await react.ApiController._fetchTokenImage(this.purchaseCurrency);
118
+ }
119
+ statusIconTemplate() {
120
+ if (this.inProgress) {
121
+ return null;
122
+ }
123
+ return this.completed ? this.boughtIconTemplate() : this.errorIconTemplate();
124
+ }
125
+ errorIconTemplate() {
126
+ return bitcoin.x`<wui-icon-box
127
+ size="xxs"
128
+ iconColor="error-100"
129
+ backgroundColor="error-100"
130
+ background="opaque"
131
+ icon="close"
132
+ borderColor="wui-color-bg-125"
133
+ ></wui-icon-box>`;
134
+ }
135
+ imageTemplate() {
136
+ const icon = this.icon || `https://avatar.vercel.sh/andrew.svg?size=50&text=${this.symbol}`;
137
+ return bitcoin.x`<wui-flex class="purchase-image-container">
138
+ <wui-image src=${icon}></wui-image>
139
+ </wui-flex>`;
140
+ }
141
+ boughtIconTemplate() {
142
+ return bitcoin.x`<wui-icon-box
143
+ size="xxs"
144
+ iconColor="success-100"
145
+ backgroundColor="success-100"
146
+ background="opaque"
147
+ icon="arrowBottom"
148
+ borderColor="wui-color-bg-125"
149
+ ></wui-icon-box>`;
150
+ }
151
+ };
152
+ W3mOnRampActivityItem.styles = [styles$8];
153
+ __decorate$a([
154
+ ifDefined.n({ type: Boolean })
155
+ ], W3mOnRampActivityItem.prototype, "disabled", void 0);
156
+ __decorate$a([
157
+ ifDefined.n()
158
+ ], W3mOnRampActivityItem.prototype, "color", void 0);
159
+ __decorate$a([
160
+ ifDefined.n()
161
+ ], W3mOnRampActivityItem.prototype, "label", void 0);
162
+ __decorate$a([
163
+ ifDefined.n()
164
+ ], W3mOnRampActivityItem.prototype, "purchaseValue", void 0);
165
+ __decorate$a([
166
+ ifDefined.n()
167
+ ], W3mOnRampActivityItem.prototype, "purchaseCurrency", void 0);
168
+ __decorate$a([
169
+ ifDefined.n()
170
+ ], W3mOnRampActivityItem.prototype, "date", void 0);
171
+ __decorate$a([
172
+ ifDefined.n({ type: Boolean })
173
+ ], W3mOnRampActivityItem.prototype, "completed", void 0);
174
+ __decorate$a([
175
+ ifDefined.n({ type: Boolean })
176
+ ], W3mOnRampActivityItem.prototype, "inProgress", void 0);
177
+ __decorate$a([
178
+ ifDefined.n({ type: Boolean })
179
+ ], W3mOnRampActivityItem.prototype, "failed", void 0);
180
+ __decorate$a([
181
+ ifDefined.n()
182
+ ], W3mOnRampActivityItem.prototype, "onClick", void 0);
183
+ __decorate$a([
184
+ ifDefined.n()
185
+ ], W3mOnRampActivityItem.prototype, "symbol", void 0);
186
+ __decorate$a([
187
+ ifDefined.n()
188
+ ], W3mOnRampActivityItem.prototype, "icon", void 0);
189
+ W3mOnRampActivityItem = __decorate$a([
190
+ ifDefined.customElement("w3m-onramp-activity-item")
191
+ ], W3mOnRampActivityItem);
192
+ const styles$7 = bitcoin.i`
193
+ :host > wui-flex {
194
+ height: 500px;
195
+ overflow-y: auto;
196
+ overflow-x: hidden;
197
+ scrollbar-width: none;
198
+ padding: var(--wui-spacing-m);
199
+ box-sizing: border-box;
200
+ display: flex;
201
+ align-items: center;
202
+ justify-content: flex-start;
203
+ }
204
+
205
+ :host > wui-flex::-webkit-scrollbar {
206
+ display: none;
207
+ }
208
+
209
+ :host > wui-flex > wui-flex {
210
+ width: 100%;
211
+ }
212
+
213
+ wui-transaction-list-item-loader {
214
+ width: 100%;
215
+ }
216
+ `;
217
+ var __decorate$9 = function(decorators, target, key, desc) {
218
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
219
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
220
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
221
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
222
+ };
223
+ const LOADING_ITEM_COUNT = 7;
224
+ exports.W3mOnRampActivityView = class W3mOnRampActivityView extends bitcoin.i$1 {
225
+ constructor() {
226
+ super();
227
+ this.unsubscribe = [];
228
+ this.selectedOnRampProvider = react$1.OnRampController.state.selectedProvider;
229
+ this.loading = false;
230
+ this.coinbaseTransactions = react.TransactionsController.state.coinbaseTransactions;
231
+ this.tokenImages = react.AssetController.state.tokenImages;
232
+ this.unsubscribe.push(...[
233
+ react$1.OnRampController.subscribeKey("selectedProvider", (val) => {
234
+ this.selectedOnRampProvider = val;
235
+ }),
236
+ react.AssetController.subscribeKey("tokenImages", (val) => this.tokenImages = val),
237
+ () => {
238
+ clearTimeout(this.refetchTimeout);
239
+ },
240
+ react.TransactionsController.subscribe((val) => {
241
+ this.coinbaseTransactions = { ...val.coinbaseTransactions };
242
+ })
243
+ ]);
244
+ react.TransactionsController.clearCursor();
245
+ this.fetchTransactions();
246
+ }
247
+ render() {
248
+ return bitcoin.x`
249
+ <wui-flex flexDirection="column" .padding=${["0", "s", "s", "s"]} gap="xs">
250
+ ${this.loading ? this.templateLoading() : this.templateTransactionsByYear()}
251
+ </wui-flex>
252
+ `;
253
+ }
254
+ templateTransactions(transactions) {
255
+ return transactions == null ? void 0 : transactions.map((transaction) => {
256
+ var _a, _b, _c;
257
+ const date = index.DateUtil.formatDate((_a = transaction == null ? void 0 : transaction.metadata) == null ? void 0 : _a.minedAt);
258
+ const transfer = transaction.transfers[0];
259
+ const fungibleInfo = transfer == null ? void 0 : transfer.fungible_info;
260
+ if (!fungibleInfo) {
261
+ return null;
262
+ }
263
+ const icon = ((_b = fungibleInfo == null ? void 0 : fungibleInfo.icon) == null ? void 0 : _b.url) || ((_c = this.tokenImages) == null ? void 0 : _c[fungibleInfo.symbol || ""]);
264
+ return bitcoin.x`
265
+ <w3m-onramp-activity-item
266
+ label="Bought"
267
+ .completed=${transaction.metadata.status === "ONRAMP_TRANSACTION_STATUS_SUCCESS"}
268
+ .inProgress=${transaction.metadata.status === "ONRAMP_TRANSACTION_STATUS_IN_PROGRESS"}
269
+ .failed=${transaction.metadata.status === "ONRAMP_TRANSACTION_STATUS_FAILED"}
270
+ purchaseCurrency=${ifDefined.o(fungibleInfo.symbol)}
271
+ purchaseValue=${transfer.quantity.numeric}
272
+ date=${date}
273
+ icon=${ifDefined.o(icon)}
274
+ symbol=${ifDefined.o(fungibleInfo.symbol)}
275
+ ></w3m-onramp-activity-item>
276
+ `;
277
+ });
278
+ }
279
+ templateTransactionsByYear() {
280
+ const sortedYearKeys = Object.keys(this.coinbaseTransactions).sort().reverse();
281
+ return sortedYearKeys.map((year) => {
282
+ const yearInt = parseInt(year, 10);
283
+ const sortedMonthIndexes = new Array(12).fill(null).map((_, idx) => idx).reverse();
284
+ return sortedMonthIndexes.map((month) => {
285
+ var _a;
286
+ const groupTitle = index.TransactionUtil.getTransactionGroupTitle(yearInt, month);
287
+ const transactions = (_a = this.coinbaseTransactions[yearInt]) == null ? void 0 : _a[month];
288
+ if (!transactions) {
289
+ return null;
290
+ }
291
+ return bitcoin.x`
292
+ <wui-flex flexDirection="column">
293
+ <wui-flex
294
+ alignItems="center"
295
+ flexDirection="row"
296
+ .padding=${["xs", "s", "s", "s"]}
297
+ >
298
+ <wui-text variant="paragraph-500" color="fg-200">${groupTitle}</wui-text>
299
+ </wui-flex>
300
+ <wui-flex flexDirection="column" gap="xs">
301
+ ${this.templateTransactions(transactions)}
302
+ </wui-flex>
303
+ </wui-flex>
304
+ `;
305
+ });
306
+ });
307
+ }
308
+ async fetchTransactions() {
309
+ {
310
+ await this.fetchCoinbaseTransactions();
311
+ }
312
+ }
313
+ async fetchCoinbaseTransactions() {
314
+ const address = react.AccountController.state.address;
315
+ const projectId = react.OptionsController.state.projectId;
316
+ if (!address) {
317
+ throw new Error("No address found");
318
+ }
319
+ if (!projectId) {
320
+ throw new Error("No projectId found");
321
+ }
322
+ this.loading = true;
323
+ await react.TransactionsController.fetchTransactions(address, "coinbase");
324
+ this.loading = false;
325
+ this.refetchLoadingTransactions();
326
+ }
327
+ refetchLoadingTransactions() {
328
+ var _a;
329
+ const today = /* @__PURE__ */ new Date();
330
+ const currentMonthTxs = ((_a = this.coinbaseTransactions[today.getFullYear()]) == null ? void 0 : _a[today.getMonth()]) || [];
331
+ const loadingTransactions = currentMonthTxs.filter((transaction) => transaction.metadata.status === "ONRAMP_TRANSACTION_STATUS_IN_PROGRESS");
332
+ if (loadingTransactions.length === 0) {
333
+ clearTimeout(this.refetchTimeout);
334
+ return;
335
+ }
336
+ this.refetchTimeout = setTimeout(async () => {
337
+ const address = react.AccountController.state.address;
338
+ await react.TransactionsController.fetchTransactions(address, "coinbase");
339
+ this.refetchLoadingTransactions();
340
+ }, 3e3);
341
+ }
342
+ templateLoading() {
343
+ return Array(LOADING_ITEM_COUNT).fill(bitcoin.x` <wui-transaction-list-item-loader></wui-transaction-list-item-loader> `).map((item) => item);
344
+ }
345
+ };
346
+ exports.W3mOnRampActivityView.styles = styles$7;
347
+ __decorate$9([
348
+ ifDefined.r()
349
+ ], exports.W3mOnRampActivityView.prototype, "selectedOnRampProvider", void 0);
350
+ __decorate$9([
351
+ ifDefined.r()
352
+ ], exports.W3mOnRampActivityView.prototype, "loading", void 0);
353
+ __decorate$9([
354
+ ifDefined.r()
355
+ ], exports.W3mOnRampActivityView.prototype, "coinbaseTransactions", void 0);
356
+ __decorate$9([
357
+ ifDefined.r()
358
+ ], exports.W3mOnRampActivityView.prototype, "tokenImages", void 0);
359
+ exports.W3mOnRampActivityView = __decorate$9([
360
+ ifDefined.customElement("w3m-onramp-activity-view")
361
+ ], exports.W3mOnRampActivityView);
362
+ const styles$6 = bitcoin.i`
363
+ :host > wui-grid {
364
+ max-height: 360px;
365
+ overflow: auto;
366
+ }
367
+
368
+ wui-flex {
369
+ transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);
370
+ will-change: opacity;
371
+ }
372
+
373
+ wui-grid::-webkit-scrollbar {
374
+ display: none;
375
+ }
376
+
377
+ wui-flex.disabled {
378
+ opacity: 0.3;
379
+ pointer-events: none;
380
+ user-select: none;
381
+ }
382
+ `;
383
+ var __decorate$8 = function(decorators, target, key, desc) {
384
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
385
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
386
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
387
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
388
+ };
389
+ exports.W3mOnrampFiatSelectView = class W3mOnrampFiatSelectView extends bitcoin.i$1 {
390
+ constructor() {
391
+ super();
392
+ this.unsubscribe = [];
393
+ this.selectedCurrency = react$1.OnRampController.state.paymentCurrency;
394
+ this.currencies = react$1.OnRampController.state.paymentCurrencies;
395
+ this.currencyImages = react.AssetController.state.currencyImages;
396
+ this.checked = index$1.OptionsStateController.state.isLegalCheckboxChecked;
397
+ this.unsubscribe.push(...[
398
+ react$1.OnRampController.subscribe((val) => {
399
+ this.selectedCurrency = val.paymentCurrency;
400
+ this.currencies = val.paymentCurrencies;
401
+ }),
402
+ react.AssetController.subscribeKey("currencyImages", (val) => this.currencyImages = val),
403
+ index$1.OptionsStateController.subscribeKey("isLegalCheckboxChecked", (val) => {
404
+ this.checked = val;
405
+ })
406
+ ]);
407
+ }
408
+ disconnectedCallback() {
409
+ this.unsubscribe.forEach((unsubscribe) => unsubscribe());
410
+ }
411
+ render() {
412
+ var _a;
413
+ const { termsConditionsUrl, privacyPolicyUrl } = react.OptionsController.state;
414
+ const legalCheckbox = (_a = react.OptionsController.state.features) == null ? void 0 : _a.legalCheckbox;
415
+ const legalUrl = termsConditionsUrl || privacyPolicyUrl;
416
+ const showLegalCheckbox = Boolean(legalUrl) && Boolean(legalCheckbox);
417
+ const disabled = showLegalCheckbox && !this.checked;
418
+ return bitcoin.x`
419
+ <w3m-legal-checkbox></w3m-legal-checkbox>
420
+ <wui-flex
421
+ flexDirection="column"
422
+ .padding=${["0", "s", "s", "s"]}
423
+ gap="xs"
424
+ class=${ifDefined.o(disabled ? "disabled" : void 0)}
425
+ >
426
+ ${this.currenciesTemplate(disabled)}
427
+ </wui-flex>
428
+ <w3m-legal-footer></w3m-legal-footer>
429
+ `;
430
+ }
431
+ currenciesTemplate(disabled = false) {
432
+ return this.currencies.map((currency) => {
433
+ var _a;
434
+ return bitcoin.x`
435
+ <wui-list-item
436
+ imageSrc=${ifDefined.o((_a = this.currencyImages) == null ? void 0 : _a[currency.id])}
437
+ @click=${() => this.selectCurrency(currency)}
438
+ variant="image"
439
+ tabIdx=${ifDefined.o(disabled ? -1 : void 0)}
440
+ >
441
+ <wui-text variant="paragraph-500" color="fg-100">${currency.id}</wui-text>
442
+ </wui-list-item>
443
+ `;
444
+ });
445
+ }
446
+ selectCurrency(currency) {
447
+ if (!currency) {
448
+ return;
449
+ }
450
+ react$1.OnRampController.setPaymentCurrency(currency);
451
+ react.ModalController.close();
452
+ }
453
+ };
454
+ exports.W3mOnrampFiatSelectView.styles = styles$6;
455
+ __decorate$8([
456
+ ifDefined.r()
457
+ ], exports.W3mOnrampFiatSelectView.prototype, "selectedCurrency", void 0);
458
+ __decorate$8([
459
+ ifDefined.r()
460
+ ], exports.W3mOnrampFiatSelectView.prototype, "currencies", void 0);
461
+ __decorate$8([
462
+ ifDefined.r()
463
+ ], exports.W3mOnrampFiatSelectView.prototype, "currencyImages", void 0);
464
+ __decorate$8([
465
+ ifDefined.r()
466
+ ], exports.W3mOnrampFiatSelectView.prototype, "checked", void 0);
467
+ exports.W3mOnrampFiatSelectView = __decorate$8([
468
+ ifDefined.customElement("w3m-onramp-fiat-select-view")
469
+ ], exports.W3mOnrampFiatSelectView);
470
+ const styles$5 = bitcoin.i`
471
+ button {
472
+ padding: var(--wui-spacing-s);
473
+ border-radius: var(--wui-border-radius-xs);
474
+ border: none;
475
+ outline: none;
476
+ background-color: var(--wui-color-gray-glass-002);
477
+ width: 100%;
478
+ display: flex;
479
+ align-items: center;
480
+ justify-content: flex-start;
481
+ gap: var(--wui-spacing-s);
482
+ transition: background-color var(--wui-ease-out-power-1) var(--wui-duration-md);
483
+ will-change: background-color;
484
+ }
485
+
486
+ button:hover {
487
+ background-color: var(--wui-color-gray-glass-005);
488
+ }
489
+
490
+ .provider-image {
491
+ width: var(--wui-spacing-3xl);
492
+ min-width: var(--wui-spacing-3xl);
493
+ height: var(--wui-spacing-3xl);
494
+ border-radius: calc(var(--wui-border-radius-xs) - calc(var(--wui-spacing-s) / 2));
495
+ position: relative;
496
+ overflow: hidden;
497
+ }
498
+
499
+ .provider-image::after {
500
+ content: '';
501
+ display: block;
502
+ width: 100%;
503
+ height: 100%;
504
+ position: absolute;
505
+ inset: 0;
506
+ border-radius: calc(var(--wui-border-radius-xs) - calc(var(--wui-spacing-s) / 2));
507
+ box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);
508
+ }
509
+
510
+ .network-icon {
511
+ width: var(--wui-spacing-m);
512
+ height: var(--wui-spacing-m);
513
+ border-radius: calc(var(--wui-spacing-m) / 2);
514
+ overflow: hidden;
515
+ box-shadow:
516
+ 0 0 0 3px var(--wui-color-gray-glass-002),
517
+ 0 0 0 3px var(--wui-color-modal-bg);
518
+ transition: box-shadow var(--wui-ease-out-power-1) var(--wui-duration-md);
519
+ will-change: box-shadow;
520
+ }
521
+
522
+ button:hover .network-icon {
523
+ box-shadow:
524
+ 0 0 0 3px var(--wui-color-gray-glass-005),
525
+ 0 0 0 3px var(--wui-color-modal-bg);
526
+ }
527
+ `;
528
+ var __decorate$7 = function(decorators, target, key, desc) {
529
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
530
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
531
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
532
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
533
+ };
534
+ let W3mOnRampProviderItem = class W3mOnRampProviderItem2 extends bitcoin.i$1 {
535
+ constructor() {
536
+ super(...arguments);
537
+ this.disabled = false;
538
+ this.color = "inherit";
539
+ this.label = "";
540
+ this.feeRange = "";
541
+ this.loading = false;
542
+ this.onClick = null;
543
+ }
544
+ render() {
545
+ return bitcoin.x`
546
+ <button ?disabled=${this.disabled} @click=${this.onClick} ontouchstart>
547
+ <wui-visual name=${ifDefined.o(this.name)} class="provider-image"></wui-visual>
548
+ <wui-flex flexDirection="column" gap="4xs">
549
+ <wui-text variant="paragraph-500" color="fg-100">${this.label}</wui-text>
550
+ <wui-flex alignItems="center" justifyContent="flex-start" gap="l">
551
+ <wui-text variant="tiny-500" color="fg-100">
552
+ <wui-text variant="tiny-400" color="fg-200">Fees</wui-text>
553
+ ${this.feeRange}
554
+ </wui-text>
555
+ <wui-flex gap="xxs">
556
+ <wui-icon name="bank" size="xs" color="fg-150"></wui-icon>
557
+ <wui-icon name="card" size="xs" color="fg-150"></wui-icon>
558
+ </wui-flex>
559
+ ${this.networksTemplate()}
560
+ </wui-flex>
561
+ </wui-flex>
562
+ ${this.loading ? bitcoin.x`<wui-loading-spinner color="fg-200" size="md"></wui-loading-spinner>` : bitcoin.x`<wui-icon name="chevronRight" color="fg-200" size="sm"></wui-icon>`}
563
+ </button>
564
+ `;
565
+ }
566
+ networksTemplate() {
567
+ var _a;
568
+ const requestedCaipNetworks = react.ChainController.getAllRequestedCaipNetworks();
569
+ const slicedNetworks = (_a = requestedCaipNetworks == null ? void 0 : requestedCaipNetworks.filter((network) => {
570
+ var _a2;
571
+ return (_a2 = network == null ? void 0 : network.assets) == null ? void 0 : _a2.imageId;
572
+ })) == null ? void 0 : _a.slice(0, 5);
573
+ return bitcoin.x`
574
+ <wui-flex class="networks">
575
+ ${slicedNetworks == null ? void 0 : slicedNetworks.map((network) => bitcoin.x`
576
+ <wui-flex class="network-icon">
577
+ <wui-image src=${ifDefined.o(react.AssetUtil.getNetworkImage(network))}></wui-image>
578
+ </wui-flex>
579
+ `)}
580
+ </wui-flex>
581
+ `;
582
+ }
583
+ };
584
+ W3mOnRampProviderItem.styles = [styles$5];
585
+ __decorate$7([
586
+ ifDefined.n({ type: Boolean })
587
+ ], W3mOnRampProviderItem.prototype, "disabled", void 0);
588
+ __decorate$7([
589
+ ifDefined.n()
590
+ ], W3mOnRampProviderItem.prototype, "color", void 0);
591
+ __decorate$7([
592
+ ifDefined.n()
593
+ ], W3mOnRampProviderItem.prototype, "name", void 0);
594
+ __decorate$7([
595
+ ifDefined.n()
596
+ ], W3mOnRampProviderItem.prototype, "label", void 0);
597
+ __decorate$7([
598
+ ifDefined.n()
599
+ ], W3mOnRampProviderItem.prototype, "feeRange", void 0);
600
+ __decorate$7([
601
+ ifDefined.n({ type: Boolean })
602
+ ], W3mOnRampProviderItem.prototype, "loading", void 0);
603
+ __decorate$7([
604
+ ifDefined.n()
605
+ ], W3mOnRampProviderItem.prototype, "onClick", void 0);
606
+ W3mOnRampProviderItem = __decorate$7([
607
+ ifDefined.customElement("w3m-onramp-provider-item")
608
+ ], W3mOnRampProviderItem);
609
+ const styles$4 = bitcoin.i`
610
+ wui-flex {
611
+ border-top: 1px solid var(--wui-color-gray-glass-005);
612
+ }
613
+
614
+ a {
615
+ text-decoration: none;
616
+ color: var(--wui-color-fg-175);
617
+ font-weight: 500;
618
+ display: flex;
619
+ align-items: center;
620
+ justify-content: center;
621
+ gap: var(--wui-spacing-3xs);
622
+ }
623
+ `;
624
+ var __decorate$6 = function(decorators, target, key, desc) {
625
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
626
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
627
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
628
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
629
+ };
630
+ let W3mOnRampProvidersFooter = class W3mOnRampProvidersFooter2 extends bitcoin.i$1 {
631
+ render() {
632
+ const { termsConditionsUrl, privacyPolicyUrl } = react.OptionsController.state;
633
+ if (!termsConditionsUrl && !privacyPolicyUrl) {
634
+ return null;
635
+ }
636
+ return bitcoin.x`
637
+ <wui-flex
638
+ .padding=${["m", "s", "s", "s"]}
639
+ flexDirection="column"
640
+ alignItems="center"
641
+ justifyContent="center"
642
+ gap="s"
643
+ >
644
+ <wui-text color="fg-250" variant="small-400" align="center">
645
+ We work with the best providers to give you the lowest fees and best support. More options
646
+ coming soon!
647
+ </wui-text>
648
+
649
+ ${this.howDoesItWorkTemplate()}
650
+ </wui-flex>
651
+ `;
652
+ }
653
+ howDoesItWorkTemplate() {
654
+ return bitcoin.x` <wui-link @click=${this.onWhatIsBuy.bind(this)}>
655
+ <wui-icon size="xs" color="accent-100" slot="iconLeft" name="helpCircle"></wui-icon>
656
+ How does it work?
657
+ </wui-link>`;
658
+ }
659
+ onWhatIsBuy() {
660
+ const activeChainNamespace = react.ChainController.state.activeChain;
661
+ react.EventsController.sendEvent({
662
+ type: "track",
663
+ event: "SELECT_WHAT_IS_A_BUY",
664
+ properties: {
665
+ isSmartAccount: react.getPreferredAccountType(activeChainNamespace) === react.W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT
666
+ }
667
+ });
668
+ react.RouterController.push("WhatIsABuy");
669
+ }
670
+ };
671
+ W3mOnRampProvidersFooter.styles = [styles$4];
672
+ W3mOnRampProvidersFooter = __decorate$6([
673
+ ifDefined.customElement("w3m-onramp-providers-footer")
674
+ ], W3mOnRampProvidersFooter);
675
+ var __decorate$5 = function(decorators, target, key, desc) {
676
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
677
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
678
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
679
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
680
+ };
681
+ exports.W3mOnRampProvidersView = class W3mOnRampProvidersView extends bitcoin.i$1 {
682
+ constructor() {
683
+ super();
684
+ this.unsubscribe = [];
685
+ this.providers = react$1.OnRampController.state.providers;
686
+ this.unsubscribe.push(...[
687
+ react$1.OnRampController.subscribeKey("providers", (val) => {
688
+ this.providers = val;
689
+ })
690
+ ]);
691
+ }
692
+ firstUpdated() {
693
+ const urlPromises = this.providers.map(async (provider) => {
694
+ if (provider.name === "coinbase") {
695
+ return await this.getCoinbaseOnRampURL();
696
+ }
697
+ return Promise.resolve(provider == null ? void 0 : provider.url);
698
+ });
699
+ Promise.all(urlPromises).then((urls) => {
700
+ this.providers = this.providers.map((provider, index2) => ({
701
+ ...provider,
702
+ url: urls[index2] || ""
703
+ }));
704
+ });
705
+ }
706
+ render() {
707
+ return bitcoin.x`
708
+ <wui-flex flexDirection="column" .padding=${["0", "s", "s", "s"]} gap="xs">
709
+ ${this.onRampProvidersTemplate()}
710
+ </wui-flex>
711
+ <w3m-onramp-providers-footer></w3m-onramp-providers-footer>
712
+ `;
713
+ }
714
+ onRampProvidersTemplate() {
715
+ return this.providers.filter((provider) => provider.supportedChains.includes(react.ChainController.state.activeChain ?? "eip155")).map((provider) => bitcoin.x`
716
+ <w3m-onramp-provider-item
717
+ label=${provider.label}
718
+ name=${provider.name}
719
+ feeRange=${provider.feeRange}
720
+ @click=${() => {
721
+ this.onClickProvider(provider);
722
+ }}
723
+ ?disabled=${!provider.url}
724
+ data-testid=${`onramp-provider-${provider.name}`}
725
+ ></w3m-onramp-provider-item>
726
+ `);
727
+ }
728
+ onClickProvider(provider) {
729
+ var _a;
730
+ const activeChainNamespace = react.ChainController.state.activeChain;
731
+ react$1.OnRampController.setSelectedProvider(provider);
732
+ react.RouterController.push("BuyInProgress");
733
+ react.CoreHelperUtil.openHref(((_a = react$1.OnRampController.state.selectedProvider) == null ? void 0 : _a.url) || provider.url, "popupWindow", "width=600,height=800,scrollbars=yes");
734
+ react.EventsController.sendEvent({
735
+ type: "track",
736
+ event: "SELECT_BUY_PROVIDER",
737
+ properties: {
738
+ provider: provider.name,
739
+ isSmartAccount: react.getPreferredAccountType(activeChainNamespace) === react.W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT
740
+ }
741
+ });
742
+ }
743
+ async getCoinbaseOnRampURL() {
744
+ const address = react.AccountController.state.address;
745
+ const network = react.ChainController.state.activeCaipNetwork;
746
+ if (!address) {
747
+ throw new Error("No address found");
748
+ }
749
+ if (!(network == null ? void 0 : network.name)) {
750
+ throw new Error("No network found");
751
+ }
752
+ const defaultNetwork = react.ConstantsUtil.WC_COINBASE_PAY_SDK_CHAIN_NAME_MAP[network.name] ?? react.ConstantsUtil.WC_COINBASE_PAY_SDK_FALLBACK_CHAIN;
753
+ const purchaseCurrency = react$1.OnRampController.state.purchaseCurrency;
754
+ const assets = purchaseCurrency ? [purchaseCurrency.symbol] : react$1.OnRampController.state.purchaseCurrencies.map((currency) => currency.symbol);
755
+ return await react.BlockchainApiController.generateOnRampURL({
756
+ defaultNetwork,
757
+ destinationWallets: [
758
+ { address, blockchains: react.ConstantsUtil.WC_COINBASE_PAY_SDK_CHAINS, assets }
759
+ ],
760
+ partnerUserId: address,
761
+ purchaseAmount: react$1.OnRampController.state.purchaseAmount
762
+ });
763
+ }
764
+ };
765
+ __decorate$5([
766
+ ifDefined.r()
767
+ ], exports.W3mOnRampProvidersView.prototype, "providers", void 0);
768
+ exports.W3mOnRampProvidersView = __decorate$5([
769
+ ifDefined.customElement("w3m-onramp-providers-view")
770
+ ], exports.W3mOnRampProvidersView);
771
+ const styles$3 = bitcoin.i`
772
+ :host > wui-grid {
773
+ max-height: 360px;
774
+ overflow: auto;
775
+ }
776
+
777
+ wui-flex {
778
+ transition: opacity var(--wui-ease-out-power-1) var(--wui-duration-md);
779
+ will-change: opacity;
780
+ }
781
+
782
+ wui-grid::-webkit-scrollbar {
783
+ display: none;
784
+ }
785
+
786
+ wui-flex.disabled {
787
+ opacity: 0.3;
788
+ pointer-events: none;
789
+ user-select: none;
790
+ }
791
+ `;
792
+ var __decorate$4 = function(decorators, target, key, desc) {
793
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
794
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
795
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
796
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
797
+ };
798
+ exports.W3mOnrampTokensView = class W3mOnrampTokensView extends bitcoin.i$1 {
799
+ constructor() {
800
+ super();
801
+ this.unsubscribe = [];
802
+ this.selectedCurrency = react$1.OnRampController.state.purchaseCurrencies;
803
+ this.tokens = react$1.OnRampController.state.purchaseCurrencies;
804
+ this.tokenImages = react.AssetController.state.tokenImages;
805
+ this.checked = index$1.OptionsStateController.state.isLegalCheckboxChecked;
806
+ this.unsubscribe.push(...[
807
+ react$1.OnRampController.subscribe((val) => {
808
+ this.selectedCurrency = val.purchaseCurrencies;
809
+ this.tokens = val.purchaseCurrencies;
810
+ }),
811
+ react.AssetController.subscribeKey("tokenImages", (val) => this.tokenImages = val),
812
+ index$1.OptionsStateController.subscribeKey("isLegalCheckboxChecked", (val) => {
813
+ this.checked = val;
814
+ })
815
+ ]);
816
+ }
817
+ disconnectedCallback() {
818
+ this.unsubscribe.forEach((unsubscribe) => unsubscribe());
819
+ }
820
+ render() {
821
+ var _a;
822
+ const { termsConditionsUrl, privacyPolicyUrl } = react.OptionsController.state;
823
+ const legalCheckbox = (_a = react.OptionsController.state.features) == null ? void 0 : _a.legalCheckbox;
824
+ const legalUrl = termsConditionsUrl || privacyPolicyUrl;
825
+ const showLegalCheckbox = Boolean(legalUrl) && Boolean(legalCheckbox);
826
+ const disabled = showLegalCheckbox && !this.checked;
827
+ return bitcoin.x`
828
+ <w3m-legal-checkbox></w3m-legal-checkbox>
829
+ <wui-flex
830
+ flexDirection="column"
831
+ .padding=${["0", "s", "s", "s"]}
832
+ gap="xs"
833
+ class=${ifDefined.o(disabled ? "disabled" : void 0)}
834
+ >
835
+ ${this.currenciesTemplate(disabled)}
836
+ </wui-flex>
837
+ <w3m-legal-footer></w3m-legal-footer>
838
+ `;
839
+ }
840
+ currenciesTemplate(disabled = false) {
841
+ return this.tokens.map((token) => {
842
+ var _a;
843
+ return bitcoin.x`
844
+ <wui-list-item
845
+ imageSrc=${ifDefined.o((_a = this.tokenImages) == null ? void 0 : _a[token.symbol])}
846
+ @click=${() => this.selectToken(token)}
847
+ variant="image"
848
+ tabIdx=${ifDefined.o(disabled ? -1 : void 0)}
849
+ >
850
+ <wui-flex gap="3xs" alignItems="center">
851
+ <wui-text variant="paragraph-500" color="fg-100">${token.name}</wui-text>
852
+ <wui-text variant="small-400" color="fg-200">${token.symbol}</wui-text>
853
+ </wui-flex>
854
+ </wui-list-item>
855
+ `;
856
+ });
857
+ }
858
+ selectToken(currency) {
859
+ if (!currency) {
860
+ return;
861
+ }
862
+ react$1.OnRampController.setPurchaseCurrency(currency);
863
+ react.ModalController.close();
864
+ }
865
+ };
866
+ exports.W3mOnrampTokensView.styles = styles$3;
867
+ __decorate$4([
868
+ ifDefined.r()
869
+ ], exports.W3mOnrampTokensView.prototype, "selectedCurrency", void 0);
870
+ __decorate$4([
871
+ ifDefined.r()
872
+ ], exports.W3mOnrampTokensView.prototype, "tokens", void 0);
873
+ __decorate$4([
874
+ ifDefined.r()
875
+ ], exports.W3mOnrampTokensView.prototype, "tokenImages", void 0);
876
+ __decorate$4([
877
+ ifDefined.r()
878
+ ], exports.W3mOnrampTokensView.prototype, "checked", void 0);
879
+ exports.W3mOnrampTokensView = __decorate$4([
880
+ ifDefined.customElement("w3m-onramp-token-select-view")
881
+ ], exports.W3mOnrampTokensView);
882
+ const styles$2 = bitcoin.i`
883
+ @keyframes shake {
884
+ 0% {
885
+ transform: translateX(0);
886
+ }
887
+ 25% {
888
+ transform: translateX(3px);
889
+ }
890
+ 50% {
891
+ transform: translateX(-3px);
892
+ }
893
+ 75% {
894
+ transform: translateX(3px);
895
+ }
896
+ 100% {
897
+ transform: translateX(0);
898
+ }
899
+ }
900
+
901
+ wui-flex:first-child:not(:only-child) {
902
+ position: relative;
903
+ }
904
+
905
+ wui-loading-thumbnail {
906
+ position: absolute;
907
+ }
908
+
909
+ wui-visual {
910
+ width: var(--wui-wallet-image-size-lg);
911
+ height: var(--wui-wallet-image-size-lg);
912
+ border-radius: calc(var(--wui-border-radius-5xs) * 9 - var(--wui-border-radius-xxs));
913
+ position: relative;
914
+ overflow: hidden;
915
+ }
916
+
917
+ wui-visual::after {
918
+ content: '';
919
+ display: block;
920
+ width: 100%;
921
+ height: 100%;
922
+ position: absolute;
923
+ inset: 0;
924
+ border-radius: calc(var(--wui-border-radius-5xs) * 9 - var(--wui-border-radius-xxs));
925
+ box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);
926
+ }
927
+
928
+ wui-icon-box {
929
+ position: absolute;
930
+ right: calc(var(--wui-spacing-3xs) * -1);
931
+ bottom: calc(var(--wui-spacing-3xs) * -1);
932
+ opacity: 0;
933
+ transform: scale(0.5);
934
+ transition:
935
+ opacity var(--wui-ease-out-power-2) var(--wui-duration-lg),
936
+ transform var(--wui-ease-out-power-2) var(--wui-duration-lg);
937
+ will-change: opacity, transform;
938
+ }
939
+
940
+ wui-text[align='center'] {
941
+ width: 100%;
942
+ padding: 0px var(--wui-spacing-l);
943
+ }
944
+
945
+ [data-error='true'] wui-icon-box {
946
+ opacity: 1;
947
+ transform: scale(1);
948
+ }
949
+
950
+ [data-error='true'] > wui-flex:first-child {
951
+ animation: shake 250ms cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
952
+ }
953
+
954
+ [data-retry='false'] wui-link {
955
+ display: none;
956
+ }
957
+
958
+ [data-retry='true'] wui-link {
959
+ display: block;
960
+ opacity: 1;
961
+ }
962
+
963
+ wui-link {
964
+ padding: var(--wui-spacing-4xs) var(--wui-spacing-xxs);
965
+ }
966
+ `;
967
+ var __decorate$3 = function(decorators, target, key, desc) {
968
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
969
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
970
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
971
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
972
+ };
973
+ exports.W3mBuyInProgressView = class W3mBuyInProgressView extends bitcoin.i$1 {
974
+ constructor() {
975
+ super();
976
+ this.unsubscribe = [];
977
+ this.selectedOnRampProvider = react$1.OnRampController.state.selectedProvider;
978
+ this.uri = react.ConnectionController.state.wcUri;
979
+ this.ready = false;
980
+ this.showRetry = false;
981
+ this.buffering = false;
982
+ this.error = false;
983
+ this.startTime = null;
984
+ this.isMobile = false;
985
+ this.onRetry = void 0;
986
+ this.unsubscribe.push(...[
987
+ react$1.OnRampController.subscribeKey("selectedProvider", (val) => {
988
+ this.selectedOnRampProvider = val;
989
+ })
990
+ ]);
991
+ this.watchTransactions();
992
+ }
993
+ disconnectedCallback() {
994
+ if (this.intervalId) {
995
+ clearInterval(this.intervalId);
996
+ }
997
+ }
998
+ render() {
999
+ var _a, _b;
1000
+ let label = "Continue in external window";
1001
+ if (this.error) {
1002
+ label = "Buy failed";
1003
+ } else if (this.selectedOnRampProvider) {
1004
+ label = `Buy in ${(_a = this.selectedOnRampProvider) == null ? void 0 : _a.label}`;
1005
+ }
1006
+ const subLabel = this.error ? "Buy can be declined from your side or due to and error on the provider app" : `We’ll notify you once your Buy is processed`;
1007
+ return bitcoin.x`
1008
+ <wui-flex
1009
+ data-error=${ifDefined.o(this.error)}
1010
+ data-retry=${this.showRetry}
1011
+ flexDirection="column"
1012
+ alignItems="center"
1013
+ .padding=${["3xl", "xl", "xl", "xl"]}
1014
+ gap="xl"
1015
+ >
1016
+ <wui-flex justifyContent="center" alignItems="center">
1017
+ <wui-visual
1018
+ name=${ifDefined.o((_b = this.selectedOnRampProvider) == null ? void 0 : _b.name)}
1019
+ size="lg"
1020
+ class="provider-image"
1021
+ >
1022
+ </wui-visual>
1023
+
1024
+ ${this.error ? null : this.loaderTemplate()}
1025
+
1026
+ <wui-icon-box
1027
+ backgroundColor="error-100"
1028
+ background="opaque"
1029
+ iconColor="error-100"
1030
+ icon="close"
1031
+ size="sm"
1032
+ border
1033
+ borderColor="wui-color-bg-125"
1034
+ ></wui-icon-box>
1035
+ </wui-flex>
1036
+
1037
+ <wui-flex flexDirection="column" alignItems="center" gap="xs">
1038
+ <wui-text variant="paragraph-500" color=${this.error ? "error-100" : "fg-100"}>
1039
+ ${label}
1040
+ </wui-text>
1041
+ <wui-text align="center" variant="small-500" color="fg-200">${subLabel}</wui-text>
1042
+ </wui-flex>
1043
+
1044
+ ${this.error ? this.tryAgainTemplate() : null}
1045
+ </wui-flex>
1046
+
1047
+ <wui-flex .padding=${["0", "xl", "xl", "xl"]} justifyContent="center">
1048
+ <wui-link @click=${this.onCopyUri} color="fg-200">
1049
+ <wui-icon size="xs" color="fg-200" slot="iconLeft" name="copy"></wui-icon>
1050
+ Copy link
1051
+ </wui-link>
1052
+ </wui-flex>
1053
+ `;
1054
+ }
1055
+ watchTransactions() {
1056
+ if (!this.selectedOnRampProvider) {
1057
+ return;
1058
+ }
1059
+ switch (this.selectedOnRampProvider.name) {
1060
+ case "coinbase":
1061
+ this.startTime = Date.now();
1062
+ this.initializeCoinbaseTransactions();
1063
+ break;
1064
+ }
1065
+ }
1066
+ async initializeCoinbaseTransactions() {
1067
+ await this.watchCoinbaseTransactions();
1068
+ this.intervalId = setInterval(() => this.watchCoinbaseTransactions(), 4e3);
1069
+ }
1070
+ async watchCoinbaseTransactions() {
1071
+ try {
1072
+ const address = react.AccountController.state.address;
1073
+ if (!address) {
1074
+ throw new Error("No address found");
1075
+ }
1076
+ const coinbaseResponse = await react.BlockchainApiController.fetchTransactions({
1077
+ account: address,
1078
+ onramp: "coinbase"
1079
+ });
1080
+ const newTransactions = coinbaseResponse.data.filter((tx) => new Date(tx.metadata.minedAt) > new Date(this.startTime) || tx.metadata.status === "ONRAMP_TRANSACTION_STATUS_IN_PROGRESS");
1081
+ if (newTransactions.length) {
1082
+ clearInterval(this.intervalId);
1083
+ react.RouterController.replace("OnRampActivity");
1084
+ } else if (this.startTime && Date.now() - this.startTime >= 18e4) {
1085
+ clearInterval(this.intervalId);
1086
+ this.error = true;
1087
+ }
1088
+ } catch (error) {
1089
+ react.SnackController.showError(error);
1090
+ }
1091
+ }
1092
+ onTryAgain() {
1093
+ if (!this.selectedOnRampProvider) {
1094
+ return;
1095
+ }
1096
+ this.error = false;
1097
+ react.CoreHelperUtil.openHref(this.selectedOnRampProvider.url, "popupWindow", "width=600,height=800,scrollbars=yes");
1098
+ }
1099
+ tryAgainTemplate() {
1100
+ var _a;
1101
+ if (!((_a = this.selectedOnRampProvider) == null ? void 0 : _a.url)) {
1102
+ return null;
1103
+ }
1104
+ return bitcoin.x`<wui-button size="md" variant="accent" @click=${this.onTryAgain.bind(this)}>
1105
+ <wui-icon color="inherit" slot="iconLeft" name="refresh"></wui-icon>
1106
+ Try again
1107
+ </wui-button>`;
1108
+ }
1109
+ loaderTemplate() {
1110
+ const borderRadiusMaster = react.ThemeController.state.themeVariables["--w3m-border-radius-master"];
1111
+ const radius = borderRadiusMaster ? parseInt(borderRadiusMaster.replace("px", ""), 10) : 4;
1112
+ return bitcoin.x`<wui-loading-thumbnail radius=${radius * 9}></wui-loading-thumbnail>`;
1113
+ }
1114
+ onCopyUri() {
1115
+ var _a;
1116
+ if (!((_a = this.selectedOnRampProvider) == null ? void 0 : _a.url)) {
1117
+ react.SnackController.showError("No link found");
1118
+ react.RouterController.goBack();
1119
+ return;
1120
+ }
1121
+ try {
1122
+ react.CoreHelperUtil.copyToClopboard(this.selectedOnRampProvider.url);
1123
+ react.SnackController.showSuccess("Link copied");
1124
+ } catch {
1125
+ react.SnackController.showError("Failed to copy");
1126
+ }
1127
+ }
1128
+ };
1129
+ exports.W3mBuyInProgressView.styles = styles$2;
1130
+ __decorate$3([
1131
+ ifDefined.r()
1132
+ ], exports.W3mBuyInProgressView.prototype, "intervalId", void 0);
1133
+ __decorate$3([
1134
+ ifDefined.r()
1135
+ ], exports.W3mBuyInProgressView.prototype, "selectedOnRampProvider", void 0);
1136
+ __decorate$3([
1137
+ ifDefined.r()
1138
+ ], exports.W3mBuyInProgressView.prototype, "uri", void 0);
1139
+ __decorate$3([
1140
+ ifDefined.r()
1141
+ ], exports.W3mBuyInProgressView.prototype, "ready", void 0);
1142
+ __decorate$3([
1143
+ ifDefined.r()
1144
+ ], exports.W3mBuyInProgressView.prototype, "showRetry", void 0);
1145
+ __decorate$3([
1146
+ ifDefined.r()
1147
+ ], exports.W3mBuyInProgressView.prototype, "buffering", void 0);
1148
+ __decorate$3([
1149
+ ifDefined.r()
1150
+ ], exports.W3mBuyInProgressView.prototype, "error", void 0);
1151
+ __decorate$3([
1152
+ ifDefined.r()
1153
+ ], exports.W3mBuyInProgressView.prototype, "startTime", void 0);
1154
+ __decorate$3([
1155
+ ifDefined.n({ type: Boolean })
1156
+ ], exports.W3mBuyInProgressView.prototype, "isMobile", void 0);
1157
+ __decorate$3([
1158
+ ifDefined.n()
1159
+ ], exports.W3mBuyInProgressView.prototype, "onRetry", void 0);
1160
+ exports.W3mBuyInProgressView = __decorate$3([
1161
+ ifDefined.customElement("w3m-buy-in-progress-view")
1162
+ ], exports.W3mBuyInProgressView);
1163
+ var __decorate$2 = function(decorators, target, key, desc) {
1164
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1165
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1166
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1167
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1168
+ };
1169
+ exports.W3mWhatIsABuyView = class W3mWhatIsABuyView extends bitcoin.i$1 {
1170
+ render() {
1171
+ return bitcoin.x`
1172
+ <wui-flex
1173
+ flexDirection="column"
1174
+ .padding=${["xxl", "3xl", "xl", "3xl"]}
1175
+ alignItems="center"
1176
+ gap="xl"
1177
+ >
1178
+ <wui-visual name="onrampCard"></wui-visual>
1179
+ <wui-flex flexDirection="column" gap="xs" alignItems="center">
1180
+ <wui-text align="center" variant="paragraph-500" color="fg-100">
1181
+ Quickly and easily buy digital assets!
1182
+ </wui-text>
1183
+ <wui-text align="center" variant="small-400" color="fg-200">
1184
+ Simply select your preferred onramp provider and add digital assets to your account
1185
+ using your credit card or bank transfer
1186
+ </wui-text>
1187
+ </wui-flex>
1188
+ <wui-button @click=${react.RouterController.goBack}>
1189
+ <wui-icon size="sm" color="inherit" name="add" slot="iconLeft"></wui-icon>
1190
+ Buy
1191
+ </wui-button>
1192
+ </wui-flex>
1193
+ `;
1194
+ }
1195
+ };
1196
+ exports.W3mWhatIsABuyView = __decorate$2([
1197
+ ifDefined.customElement("w3m-what-is-a-buy-view")
1198
+ ], exports.W3mWhatIsABuyView);
1199
+ const styles$1 = bitcoin.i`
1200
+ :host {
1201
+ width: 100%;
1202
+ }
1203
+
1204
+ wui-loading-spinner {
1205
+ position: absolute;
1206
+ top: 50%;
1207
+ right: 20px;
1208
+ transform: translateY(-50%);
1209
+ }
1210
+
1211
+ .currency-container {
1212
+ position: absolute;
1213
+ top: 50%;
1214
+ transform: translateY(-50%);
1215
+ right: var(--wui-spacing-1xs);
1216
+ height: 40px;
1217
+ padding: var(--wui-spacing-xs) var(--wui-spacing-1xs) var(--wui-spacing-xs)
1218
+ var(--wui-spacing-xs);
1219
+ min-width: 95px;
1220
+ border-radius: var(--FULL, 1000px);
1221
+ border: 1px solid var(--wui-color-gray-glass-002);
1222
+ background: var(--wui-color-gray-glass-002);
1223
+ cursor: pointer;
1224
+ }
1225
+
1226
+ .currency-container > wui-image {
1227
+ height: 24px;
1228
+ width: 24px;
1229
+ border-radius: 50%;
1230
+ }
1231
+ `;
1232
+ var __decorate$1 = function(decorators, target, key, desc) {
1233
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1234
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1235
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1236
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1237
+ };
1238
+ let W3mInputCurrency = class W3mInputCurrency2 extends bitcoin.i$1 {
1239
+ constructor() {
1240
+ var _a;
1241
+ super();
1242
+ this.unsubscribe = [];
1243
+ this.type = "Token";
1244
+ this.value = 0;
1245
+ this.currencies = [];
1246
+ this.selectedCurrency = (_a = this.currencies) == null ? void 0 : _a[0];
1247
+ this.currencyImages = react.AssetController.state.currencyImages;
1248
+ this.tokenImages = react.AssetController.state.tokenImages;
1249
+ this.unsubscribe.push(react$1.OnRampController.subscribeKey("purchaseCurrency", (val) => {
1250
+ if (!val || this.type === "Fiat") {
1251
+ return;
1252
+ }
1253
+ this.selectedCurrency = this.formatPurchaseCurrency(val);
1254
+ }), react$1.OnRampController.subscribeKey("paymentCurrency", (val) => {
1255
+ if (!val || this.type === "Token") {
1256
+ return;
1257
+ }
1258
+ this.selectedCurrency = this.formatPaymentCurrency(val);
1259
+ }), react$1.OnRampController.subscribe((val) => {
1260
+ if (this.type === "Fiat") {
1261
+ this.currencies = val.purchaseCurrencies.map(this.formatPurchaseCurrency);
1262
+ } else {
1263
+ this.currencies = val.paymentCurrencies.map(this.formatPaymentCurrency);
1264
+ }
1265
+ }), react.AssetController.subscribe((val) => {
1266
+ this.currencyImages = { ...val.currencyImages };
1267
+ this.tokenImages = { ...val.tokenImages };
1268
+ }));
1269
+ }
1270
+ firstUpdated() {
1271
+ react$1.OnRampController.getAvailableCurrencies();
1272
+ }
1273
+ disconnectedCallback() {
1274
+ this.unsubscribe.forEach((unsubscribe) => unsubscribe());
1275
+ }
1276
+ render() {
1277
+ var _a;
1278
+ const symbol = ((_a = this.selectedCurrency) == null ? void 0 : _a.symbol) || "";
1279
+ const image = this.currencyImages[symbol] || this.tokenImages[symbol];
1280
+ return bitcoin.x`<wui-input-text type="number" size="lg" value=${this.value}>
1281
+ ${this.selectedCurrency ? bitcoin.x` <wui-flex
1282
+ class="currency-container"
1283
+ justifyContent="space-between"
1284
+ alignItems="center"
1285
+ gap="xxs"
1286
+ @click=${() => react.ModalController.open({ view: `OnRamp${this.type}Select` })}
1287
+ >
1288
+ <wui-image src=${ifDefined.o(image)}></wui-image>
1289
+ <wui-text color="fg-100">${this.selectedCurrency.symbol}</wui-text>
1290
+ </wui-flex>` : bitcoin.x`<wui-loading-spinner></wui-loading-spinner>`}
1291
+ </wui-input-text>`;
1292
+ }
1293
+ formatPaymentCurrency(currency) {
1294
+ return {
1295
+ name: currency.id,
1296
+ symbol: currency.id
1297
+ };
1298
+ }
1299
+ formatPurchaseCurrency(currency) {
1300
+ return {
1301
+ name: currency.name,
1302
+ symbol: currency.symbol
1303
+ };
1304
+ }
1305
+ };
1306
+ W3mInputCurrency.styles = styles$1;
1307
+ __decorate$1([
1308
+ ifDefined.n({ type: String })
1309
+ ], W3mInputCurrency.prototype, "type", void 0);
1310
+ __decorate$1([
1311
+ ifDefined.n({ type: Number })
1312
+ ], W3mInputCurrency.prototype, "value", void 0);
1313
+ __decorate$1([
1314
+ ifDefined.r()
1315
+ ], W3mInputCurrency.prototype, "currencies", void 0);
1316
+ __decorate$1([
1317
+ ifDefined.r()
1318
+ ], W3mInputCurrency.prototype, "selectedCurrency", void 0);
1319
+ __decorate$1([
1320
+ ifDefined.r()
1321
+ ], W3mInputCurrency.prototype, "currencyImages", void 0);
1322
+ __decorate$1([
1323
+ ifDefined.r()
1324
+ ], W3mInputCurrency.prototype, "tokenImages", void 0);
1325
+ W3mInputCurrency = __decorate$1([
1326
+ ifDefined.customElement("w3m-onramp-input")
1327
+ ], W3mInputCurrency);
1328
+ const styles = bitcoin.i`
1329
+ :host > wui-flex {
1330
+ width: 100%;
1331
+ max-width: 360px;
1332
+ }
1333
+
1334
+ :host > wui-flex > wui-flex {
1335
+ border-radius: var(--wui-border-radius-l);
1336
+ width: 100%;
1337
+ }
1338
+
1339
+ .amounts-container {
1340
+ width: 100%;
1341
+ }
1342
+ `;
1343
+ var __decorate = function(decorators, target, key, desc) {
1344
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
1345
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
1346
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
1347
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
1348
+ };
1349
+ const PAYMENT_CURRENCY_SYMBOLS = {
1350
+ USD: "$",
1351
+ EUR: "€",
1352
+ GBP: "£"
1353
+ };
1354
+ const BUY_PRESET_AMOUNTS = [100, 250, 500, 1e3];
1355
+ exports.W3mOnrampWidget = class W3mOnrampWidget extends bitcoin.i$1 {
1356
+ constructor() {
1357
+ super();
1358
+ this.unsubscribe = [];
1359
+ this.disabled = false;
1360
+ this.caipAddress = react.ChainController.state.activeCaipAddress;
1361
+ this.loading = react.ModalController.state.loading;
1362
+ this.paymentCurrency = react$1.OnRampController.state.paymentCurrency;
1363
+ this.paymentAmount = react$1.OnRampController.state.paymentAmount;
1364
+ this.purchaseAmount = react$1.OnRampController.state.purchaseAmount;
1365
+ this.quoteLoading = react$1.OnRampController.state.quotesLoading;
1366
+ this.unsubscribe.push(...[
1367
+ react.ChainController.subscribeKey("activeCaipAddress", (val) => this.caipAddress = val),
1368
+ react.ModalController.subscribeKey("loading", (val) => {
1369
+ this.loading = val;
1370
+ }),
1371
+ react$1.OnRampController.subscribe((val) => {
1372
+ this.paymentCurrency = val.paymentCurrency;
1373
+ this.paymentAmount = val.paymentAmount;
1374
+ this.purchaseAmount = val.purchaseAmount;
1375
+ this.quoteLoading = val.quotesLoading;
1376
+ })
1377
+ ]);
1378
+ }
1379
+ disconnectedCallback() {
1380
+ this.unsubscribe.forEach((unsubscribe) => unsubscribe());
1381
+ }
1382
+ render() {
1383
+ return bitcoin.x`
1384
+ <wui-flex flexDirection="column" justifyContent="center" alignItems="center">
1385
+ <wui-flex flexDirection="column" alignItems="center" gap="xs">
1386
+ <w3m-onramp-input
1387
+ type="Fiat"
1388
+ @inputChange=${this.onPaymentAmountChange.bind(this)}
1389
+ .value=${this.paymentAmount || 0}
1390
+ ></w3m-onramp-input>
1391
+ <w3m-onramp-input
1392
+ type="Token"
1393
+ .value=${this.purchaseAmount || 0}
1394
+ .loading=${this.quoteLoading}
1395
+ ></w3m-onramp-input>
1396
+ <wui-flex justifyContent="space-evenly" class="amounts-container" gap="xs">
1397
+ ${BUY_PRESET_AMOUNTS.map((amount) => {
1398
+ var _a;
1399
+ return bitcoin.x`<wui-button
1400
+ variant=${this.paymentAmount === amount ? "accent" : "neutral"}
1401
+ size="md"
1402
+ textVariant="paragraph-600"
1403
+ fullWidth
1404
+ @click=${() => this.selectPresetAmount(amount)}
1405
+ >${`${PAYMENT_CURRENCY_SYMBOLS[((_a = this.paymentCurrency) == null ? void 0 : _a.id) || "USD"]} ${amount}`}</wui-button
1406
+ >`;
1407
+ })}
1408
+ </wui-flex>
1409
+ ${this.templateButton()}
1410
+ </wui-flex>
1411
+ </wui-flex>
1412
+ `;
1413
+ }
1414
+ templateButton() {
1415
+ return this.caipAddress ? bitcoin.x`<wui-button
1416
+ @click=${this.getQuotes.bind(this)}
1417
+ variant="main"
1418
+ fullWidth
1419
+ size="lg"
1420
+ borderRadius="xs"
1421
+ >
1422
+ Get quotes
1423
+ </wui-button>` : bitcoin.x`<wui-button
1424
+ @click=${this.openModal.bind(this)}
1425
+ variant="accent"
1426
+ fullWidth
1427
+ size="lg"
1428
+ borderRadius="xs"
1429
+ >
1430
+ Connect wallet
1431
+ </wui-button>`;
1432
+ }
1433
+ getQuotes() {
1434
+ if (!this.loading) {
1435
+ react.ModalController.open({ view: "OnRampProviders" });
1436
+ }
1437
+ }
1438
+ openModal() {
1439
+ react.ModalController.open({ view: "Connect" });
1440
+ }
1441
+ async onPaymentAmountChange(event) {
1442
+ react$1.OnRampController.setPaymentAmount(Number(event.detail));
1443
+ await react$1.OnRampController.getQuote();
1444
+ }
1445
+ async selectPresetAmount(amount) {
1446
+ react$1.OnRampController.setPaymentAmount(amount);
1447
+ await react$1.OnRampController.getQuote();
1448
+ }
1449
+ };
1450
+ exports.W3mOnrampWidget.styles = styles;
1451
+ __decorate([
1452
+ ifDefined.n({ type: Boolean })
1453
+ ], exports.W3mOnrampWidget.prototype, "disabled", void 0);
1454
+ __decorate([
1455
+ ifDefined.r()
1456
+ ], exports.W3mOnrampWidget.prototype, "caipAddress", void 0);
1457
+ __decorate([
1458
+ ifDefined.r()
1459
+ ], exports.W3mOnrampWidget.prototype, "loading", void 0);
1460
+ __decorate([
1461
+ ifDefined.r()
1462
+ ], exports.W3mOnrampWidget.prototype, "paymentCurrency", void 0);
1463
+ __decorate([
1464
+ ifDefined.r()
1465
+ ], exports.W3mOnrampWidget.prototype, "paymentAmount", void 0);
1466
+ __decorate([
1467
+ ifDefined.r()
1468
+ ], exports.W3mOnrampWidget.prototype, "purchaseAmount", void 0);
1469
+ __decorate([
1470
+ ifDefined.r()
1471
+ ], exports.W3mOnrampWidget.prototype, "quoteLoading", void 0);
1472
+ exports.W3mOnrampWidget = __decorate([
1473
+ ifDefined.customElement("w3m-onramp-widget")
1474
+ ], exports.W3mOnrampWidget);