@hot-labs/kit 1.0.33

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 (300) hide show
  1. package/.eslintrc.cjs +11 -0
  2. package/.github/workflows/deploy-example.yml +55 -0
  3. package/.github/workflows/release.yml +74 -0
  4. package/.prettierrc +4 -0
  5. package/.prototools +2 -0
  6. package/.vscode/settings.json +3 -0
  7. package/CHANGELOG.md +1 -0
  8. package/README.md +67 -0
  9. package/build/GoogleConnector.d.ts +20 -0
  10. package/build/GoogleConnector.js +76 -0
  11. package/build/GoogleConnector.js.map +1 -0
  12. package/build/HotConnector.d.ts +91 -0
  13. package/build/HotConnector.js +285 -0
  14. package/build/HotConnector.js.map +1 -0
  15. package/build/OmniConnector.d.ts +95 -0
  16. package/build/OmniConnector.js +123 -0
  17. package/build/OmniConnector.js.map +1 -0
  18. package/build/OmniWallet.d.ts +57 -0
  19. package/build/OmniWallet.js +56 -0
  20. package/build/OmniWallet.js.map +1 -0
  21. package/build/cosmos/connector.d.ts +53 -0
  22. package/build/cosmos/connector.js +207 -0
  23. package/build/cosmos/connector.js.map +1 -0
  24. package/build/cosmos/wallet.d.ts +28 -0
  25. package/build/cosmos/wallet.js +59 -0
  26. package/build/cosmos/wallet.js.map +1 -0
  27. package/build/events.d.ts +42 -0
  28. package/build/events.js +64 -0
  29. package/build/events.js.map +1 -0
  30. package/build/evm/abi.d.ts +17 -0
  31. package/build/evm/abi.js +38 -0
  32. package/build/evm/abi.js.map +1 -0
  33. package/build/evm/connector.d.ts +35 -0
  34. package/build/evm/connector.js +124 -0
  35. package/build/evm/connector.js.map +1 -0
  36. package/build/evm/wallet.d.ts +47 -0
  37. package/build/evm/wallet.js +136 -0
  38. package/build/evm/wallet.js.map +1 -0
  39. package/build/exchange.d.ts +63 -0
  40. package/build/exchange.js +384 -0
  41. package/build/exchange.js.map +1 -0
  42. package/build/hot-wallet/evm.d.ts +1 -0
  43. package/build/hot-wallet/evm.js +33 -0
  44. package/build/hot-wallet/evm.js.map +1 -0
  45. package/build/hot-wallet/hot.d.ts +3 -0
  46. package/build/hot-wallet/hot.js +40 -0
  47. package/build/hot-wallet/hot.js.map +1 -0
  48. package/build/hot-wallet/index.d.ts +4 -0
  49. package/build/hot-wallet/index.js +5 -0
  50. package/build/hot-wallet/index.js.map +1 -0
  51. package/build/hot-wallet/solana/account.d.ts +11 -0
  52. package/build/hot-wallet/solana/account.js +42 -0
  53. package/build/hot-wallet/solana/account.js.map +1 -0
  54. package/build/hot-wallet/solana/index.d.ts +1 -0
  55. package/build/hot-wallet/solana/index.js +85 -0
  56. package/build/hot-wallet/solana/index.js.map +1 -0
  57. package/build/hot-wallet/solana/register.d.ts +2 -0
  58. package/build/hot-wallet/solana/register.js +41 -0
  59. package/build/hot-wallet/solana/register.js.map +1 -0
  60. package/build/hot-wallet/solana/solana-wallet.d.ts +34 -0
  61. package/build/hot-wallet/solana/solana-wallet.js +223 -0
  62. package/build/hot-wallet/solana/solana-wallet.js.map +1 -0
  63. package/build/hot-wallet/solana/utils.d.ts +32 -0
  64. package/build/hot-wallet/solana/utils.js +36 -0
  65. package/build/hot-wallet/solana/utils.js.map +1 -0
  66. package/build/hot-wallet/stellar.d.ts +38 -0
  67. package/build/hot-wallet/stellar.js +32 -0
  68. package/build/hot-wallet/stellar.js.map +1 -0
  69. package/build/hot-wallet/ton.d.ts +1 -0
  70. package/build/hot-wallet/ton.js +49 -0
  71. package/build/hot-wallet/ton.js.map +1 -0
  72. package/build/hot-wallet/wallet.d.ts +1 -0
  73. package/build/hot-wallet/wallet.js +40 -0
  74. package/build/hot-wallet/wallet.js.map +1 -0
  75. package/build/index.d.ts +24 -0
  76. package/build/index.js +25 -0
  77. package/build/index.js.map +1 -0
  78. package/build/near/connector.d.ts +28 -0
  79. package/build/near/connector.js +56 -0
  80. package/build/near/connector.js.map +1 -0
  81. package/build/near/wallet.d.ts +62 -0
  82. package/build/near/wallet.js +233 -0
  83. package/build/near/wallet.js.map +1 -0
  84. package/build/omni/Intents.d.ts +93 -0
  85. package/build/omni/Intents.js +395 -0
  86. package/build/omni/Intents.js.map +1 -0
  87. package/build/omni/bridge.d.ts +3 -0
  88. package/build/omni/bridge.js +34 -0
  89. package/build/omni/bridge.js.map +1 -0
  90. package/build/omni/config.d.ts +99 -0
  91. package/build/omni/config.js +126 -0
  92. package/build/omni/config.js.map +1 -0
  93. package/build/omni/defaultTokens.d.ts +17 -0
  94. package/build/omni/defaultTokens.js +1079 -0
  95. package/build/omni/defaultTokens.js.map +1 -0
  96. package/build/omni/index.d.ts +8 -0
  97. package/build/omni/index.js +9 -0
  98. package/build/omni/index.js.map +1 -0
  99. package/build/omni/nearRpc.d.ts +24 -0
  100. package/build/omni/nearRpc.js +167 -0
  101. package/build/omni/nearRpc.js.map +1 -0
  102. package/build/omni/recipient.d.ts +10 -0
  103. package/build/omni/recipient.js +40 -0
  104. package/build/omni/recipient.js.map +1 -0
  105. package/build/omni/token.d.ts +36 -0
  106. package/build/omni/token.js +136 -0
  107. package/build/omni/token.js.map +1 -0
  108. package/build/omni/tokens.d.ts +14 -0
  109. package/build/omni/tokens.js +57 -0
  110. package/build/omni/tokens.js.map +1 -0
  111. package/build/omni/types.d.ts +41 -0
  112. package/build/omni/types.js +2 -0
  113. package/build/omni/types.js.map +1 -0
  114. package/build/omni/utils.d.ts +24 -0
  115. package/build/omni/utils.js +150 -0
  116. package/build/omni/utils.js.map +1 -0
  117. package/build/settings.d.ts +5 -0
  118. package/build/settings.js +6 -0
  119. package/build/settings.js.map +1 -0
  120. package/build/solana/connector.d.ts +31 -0
  121. package/build/solana/connector.js +138 -0
  122. package/build/solana/connector.js.map +1 -0
  123. package/build/solana/protocol.d.ts +25 -0
  124. package/build/solana/protocol.js +56 -0
  125. package/build/solana/protocol.js.map +1 -0
  126. package/build/solana/wallet.d.ts +47 -0
  127. package/build/solana/wallet.js +188 -0
  128. package/build/solana/wallet.js.map +1 -0
  129. package/build/solana/wallets.d.ts +102 -0
  130. package/build/solana/wallets.js +150 -0
  131. package/build/solana/wallets.js.map +1 -0
  132. package/build/stellar/connector.d.ts +25 -0
  133. package/build/stellar/connector.js +56 -0
  134. package/build/stellar/connector.js.map +1 -0
  135. package/build/stellar/wallet.d.ts +70 -0
  136. package/build/stellar/wallet.js +225 -0
  137. package/build/stellar/wallet.js.map +1 -0
  138. package/build/storage.d.ts +10 -0
  139. package/build/storage.js +12 -0
  140. package/build/storage.js.map +1 -0
  141. package/build/ton/connector.d.ts +25 -0
  142. package/build/ton/connector.js +119 -0
  143. package/build/ton/connector.js.map +1 -0
  144. package/build/ton/utils.d.ts +45 -0
  145. package/build/ton/utils.js +64 -0
  146. package/build/ton/utils.js.map +1 -0
  147. package/build/ton/wallet.d.ts +70 -0
  148. package/build/ton/wallet.js +154 -0
  149. package/build/ton/wallet.js.map +1 -0
  150. package/build/ui/Popup.d.ts +10 -0
  151. package/build/ui/Popup.js +38 -0
  152. package/build/ui/Popup.js.map +1 -0
  153. package/build/ui/connect/AuthPopup.d.ts +2 -0
  154. package/build/ui/connect/AuthPopup.js +48 -0
  155. package/build/ui/connect/AuthPopup.js.map +1 -0
  156. package/build/ui/connect/ConnectWallet.d.ts +9 -0
  157. package/build/ui/connect/ConnectWallet.js +22 -0
  158. package/build/ui/connect/ConnectWallet.js.map +1 -0
  159. package/build/ui/connect/LogoutPopup.d.ts +10 -0
  160. package/build/ui/connect/LogoutPopup.js +8 -0
  161. package/build/ui/connect/LogoutPopup.js.map +1 -0
  162. package/build/ui/connect/WCPopup.d.ts +13 -0
  163. package/build/ui/connect/WCPopup.js +81 -0
  164. package/build/ui/connect/WCPopup.js.map +1 -0
  165. package/build/ui/connect/WCRequest.d.ts +9 -0
  166. package/build/ui/connect/WCRequest.js +13 -0
  167. package/build/ui/connect/WCRequest.js.map +1 -0
  168. package/build/ui/connect/WalletPicker.d.ts +11 -0
  169. package/build/ui/connect/WalletPicker.js +48 -0
  170. package/build/ui/connect/WalletPicker.js.map +1 -0
  171. package/build/ui/icons/arrow-right.d.ts +1 -0
  172. package/build/ui/icons/arrow-right.js +5 -0
  173. package/build/ui/icons/arrow-right.js.map +1 -0
  174. package/build/ui/icons/exchange.d.ts +6 -0
  175. package/build/ui/icons/exchange.js +6 -0
  176. package/build/ui/icons/exchange.js.map +1 -0
  177. package/build/ui/icons/logout.d.ts +1 -0
  178. package/build/ui/icons/logout.js +3 -0
  179. package/build/ui/icons/logout.js.map +1 -0
  180. package/build/ui/icons/pending.d.ts +1 -0
  181. package/build/ui/icons/pending.js +5 -0
  182. package/build/ui/icons/pending.js.map +1 -0
  183. package/build/ui/icons/qr.d.ts +1 -0
  184. package/build/ui/icons/qr.js +5 -0
  185. package/build/ui/icons/qr.js.map +1 -0
  186. package/build/ui/icons/search.d.ts +1 -0
  187. package/build/ui/icons/search.js +5 -0
  188. package/build/ui/icons/search.js.map +1 -0
  189. package/build/ui/icons/switch.d.ts +1 -0
  190. package/build/ui/icons/switch.js +5 -0
  191. package/build/ui/icons/switch.js.map +1 -0
  192. package/build/ui/icons/wallet.d.ts +1 -0
  193. package/build/ui/icons/wallet.js +5 -0
  194. package/build/ui/icons/wallet.js.map +1 -0
  195. package/build/ui/payment/Bridge.d.ts +27 -0
  196. package/build/ui/payment/Bridge.js +340 -0
  197. package/build/ui/payment/Bridge.js.map +1 -0
  198. package/build/ui/payment/DepositQR.d.ts +9 -0
  199. package/build/ui/payment/DepositQR.js +56 -0
  200. package/build/ui/payment/DepositQR.js.map +1 -0
  201. package/build/ui/payment/Payment.d.ts +16 -0
  202. package/build/ui/payment/Payment.js +50 -0
  203. package/build/ui/payment/Payment.js.map +1 -0
  204. package/build/ui/payment/Profile.d.ts +7 -0
  205. package/build/ui/payment/Profile.js +88 -0
  206. package/build/ui/payment/Profile.js.map +1 -0
  207. package/build/ui/payment/SelectRecipient.d.ts +14 -0
  208. package/build/ui/payment/SelectRecipient.js +68 -0
  209. package/build/ui/payment/SelectRecipient.js.map +1 -0
  210. package/build/ui/payment/SelectSender.d.ts +13 -0
  211. package/build/ui/payment/SelectSender.js +23 -0
  212. package/build/ui/payment/SelectSender.js.map +1 -0
  213. package/build/ui/payment/SelectToken.d.ts +13 -0
  214. package/build/ui/payment/SelectToken.js +92 -0
  215. package/build/ui/payment/SelectToken.js.map +1 -0
  216. package/build/ui/payment/TokenCard.d.ts +23 -0
  217. package/build/ui/payment/TokenCard.js +50 -0
  218. package/build/ui/payment/TokenCard.js.map +1 -0
  219. package/build/ui/router.d.ts +37 -0
  220. package/build/ui/router.js +56 -0
  221. package/build/ui/router.js.map +1 -0
  222. package/build/ui/styles.d.ts +11 -0
  223. package/build/ui/styles.js +273 -0
  224. package/build/ui/styles.js.map +1 -0
  225. package/package.json +60 -0
  226. package/skill.md +989 -0
  227. package/src/GoogleConnector.ts +102 -0
  228. package/src/HotConnector.ts +344 -0
  229. package/src/OmniConnector.ts +161 -0
  230. package/src/OmniWallet.ts +94 -0
  231. package/src/cosmos/connector.ts +242 -0
  232. package/src/cosmos/wallet.ts +77 -0
  233. package/src/events.ts +66 -0
  234. package/src/evm/abi.ts +39 -0
  235. package/src/evm/connector.ts +139 -0
  236. package/src/evm/wallet.ts +156 -0
  237. package/src/exchange.ts +426 -0
  238. package/src/hot-wallet/evm.ts +38 -0
  239. package/src/hot-wallet/hot.ts +39 -0
  240. package/src/hot-wallet/index.ts +4 -0
  241. package/src/hot-wallet/solana/account.ts +52 -0
  242. package/src/hot-wallet/solana/index.ts +98 -0
  243. package/src/hot-wallet/solana/register.ts +48 -0
  244. package/src/hot-wallet/solana/solana-wallet.ts +280 -0
  245. package/src/hot-wallet/solana/utils.ts +56 -0
  246. package/src/hot-wallet/stellar.ts +39 -0
  247. package/src/hot-wallet/ton.ts +56 -0
  248. package/src/hot-wallet/wallet.ts +44 -0
  249. package/src/index.ts +30 -0
  250. package/src/near/connector.ts +71 -0
  251. package/src/near/wallet.ts +255 -0
  252. package/src/omni/Intents.ts +454 -0
  253. package/src/omni/bridge.ts +38 -0
  254. package/src/omni/config.ts +130 -0
  255. package/src/omni/defaultTokens.ts +1078 -0
  256. package/src/omni/index.ts +8 -0
  257. package/src/omni/nearRpc.ts +187 -0
  258. package/src/omni/recipient.ts +41 -0
  259. package/src/omni/token.ts +125 -0
  260. package/src/omni/tokens.ts +68 -0
  261. package/src/omni/types.ts +46 -0
  262. package/src/omni/utils.ts +163 -0
  263. package/src/settings.ts +5 -0
  264. package/src/solana/connector.ts +151 -0
  265. package/src/solana/protocol.ts +66 -0
  266. package/src/solana/wallet.ts +230 -0
  267. package/src/solana/wallets.ts +243 -0
  268. package/src/stellar/connector.ts +69 -0
  269. package/src/stellar/wallet.ts +267 -0
  270. package/src/storage.ts +19 -0
  271. package/src/ton/connector.ts +138 -0
  272. package/src/ton/utils.ts +73 -0
  273. package/src/ton/wallet.ts +178 -0
  274. package/src/ui/Popup.tsx +62 -0
  275. package/src/ui/connect/AuthPopup.tsx +78 -0
  276. package/src/ui/connect/ConnectWallet.tsx +63 -0
  277. package/src/ui/connect/LogoutPopup.tsx +20 -0
  278. package/src/ui/connect/WCPopup.tsx +122 -0
  279. package/src/ui/connect/WCRequest.tsx +28 -0
  280. package/src/ui/connect/WalletPicker.tsx +92 -0
  281. package/src/ui/icons/arrow-right.tsx +8 -0
  282. package/src/ui/icons/exchange.tsx +17 -0
  283. package/src/ui/icons/logout.tsx +18 -0
  284. package/src/ui/icons/pending.tsx +18 -0
  285. package/src/ui/icons/qr.tsx +12 -0
  286. package/src/ui/icons/search.tsx +18 -0
  287. package/src/ui/icons/switch.tsx +10 -0
  288. package/src/ui/icons/wallet.tsx +18 -0
  289. package/src/ui/payment/Bridge.tsx +582 -0
  290. package/src/ui/payment/DepositQR.tsx +88 -0
  291. package/src/ui/payment/Payment.tsx +78 -0
  292. package/src/ui/payment/Profile.tsx +140 -0
  293. package/src/ui/payment/SelectRecipient.tsx +111 -0
  294. package/src/ui/payment/SelectSender.tsx +60 -0
  295. package/src/ui/payment/SelectToken.tsx +134 -0
  296. package/src/ui/payment/TokenCard.tsx +83 -0
  297. package/src/ui/router.tsx +92 -0
  298. package/src/ui/styles.ts +284 -0
  299. package/tsconfig.json +22 -0
  300. package/vite.config.ts +17 -0
@@ -0,0 +1 @@
1
+ export declare const PendingIcon: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const PendingIcon = (props) => {
3
+ return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "11", height: "11", viewBox: "0 0 11 11", fill: "none", ...props, children: [_jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M5.00001 2.49994C5.20712 2.49994 5.37501 2.66783 5.37501 2.87494V5.3534C5.37501 5.61658 5.28274 5.87143 5.11426 6.07361L4.03809 7.36501C3.90551 7.52411 3.66904 7.54561 3.50994 7.41302C3.35084 7.28044 3.32934 7.04397 3.46193 6.88487L4.53809 5.59347C4.59425 5.52608 4.62501 5.44113 4.62501 5.3534V2.87494C4.62501 2.66783 4.7929 2.49994 5.00001 2.49994Z", fill: "#2C3034" }), _jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M2.11248 8.11847C2.87055 8.82074 3.88514 9.25 5 9.25C7.34721 9.25 9.25 7.34721 9.25 5C9.25 3.88514 8.82073 2.87054 8.11847 2.11248C7.21578 1.26718 6.08279 0.75 5 0.75C2.65279 0.75 0.75 2.65279 0.75 5C0.75 6.08279 1.26718 7.21578 2.11248 8.11847ZM10.5 5.5C10.5 8.26142 8.26142 10.5 5.5 10.5C4.0598 10.5 2.62582 9.75509 1.58332 8.65054C0.608904 7.73817 0 6.4402 0 5C0 2.23858 2.23858 0 5 0C6.44019 0 7.73817 0.608903 8.65054 1.58331C9.75509 2.62582 10.5 4.0598 10.5 5.5Z", fill: "#2C3034" })] }));
4
+ };
5
+ //# sourceMappingURL=pending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.js","sourceRoot":"","sources":["../../../src/ui/icons/pending.tsx"],"names":[],"mappings":";AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAoC,EAAE,EAAE;IAClE,OAAO,CACL,eAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,KAAK,KAAK,aACtG,4BACY,SAAS,eACT,SAAS,EACnB,CAAC,EAAC,gWAAgW,EAClW,IAAI,EAAC,SAAS,GACd,EACF,4BACY,SAAS,eACT,SAAS,EACnB,CAAC,EAAC,sdAAsd,EACxd,IAAI,EAAC,SAAS,GACd,IACE,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const QRIcon: (props: any) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export const QRIcon = (props) => {
3
+ return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 12 12", fill: "none", ...props, children: _jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M1.75412 1.95569C1.93703 1.68471 2.21228 1.5 2.55882 1.5H2.69118H5.47059L5.73529 1.92507V5.60294H2.02941L1.5 5.20588V2.82353V2.69118C1.5 2.4136 1.59494 2.15821 1.75412 1.95569ZM2.82353 2.42647C2.60424 2.42647 2.42647 2.60424 2.42647 2.82353V4.41176H4.67647V2.42647H2.82353ZM6.26468 1.5H6.26474H9.04409H9.17651C9.83438 1.5 10.5 2.16566 10.5 2.82353V5.60294H10.103H6.6618L6.26474 5.20588H6.26468V1.5ZM9.44115 2.69118C9.44115 2.59011 9.40339 2.49786 9.3412 2.42777C9.33054 2.42691 9.31975 2.42647 9.30886 2.42647H7.32357V4.41176H9.44115V2.69118ZM5.20588 6.26477L5.20598 6.26487H5.33824L5.73529 6.66193V9.94274V10.3678H2.82353C2.16566 10.3678 1.5 9.70215 1.5 9.04428V8.77948V6.26487V6.26477H5.20588ZM2.5758 9.15951C2.61231 9.17058 2.65105 9.17654 2.69118 9.17654H4.67647V7.05899H2.55882V9.04428C2.55882 9.08435 2.56476 9.12304 2.5758 9.15951ZM6.26468 6.26477H8.38233V7.32359H6.52938L6.26468 7.05889V6.26477ZM9.44121 7.32359H10.5V6.52948L10.2353 6.26477H9.44119V7.32349H8.38239V8.38231H9.44121V7.32359ZM7.3235 8.38239H6.26468V9.44121V10.2353L6.49183 10.3702H7.3235V9.44121H8.38233V8.38239H7.3235ZM10.2353 8.38239L10.5 8.64709V9.44121V9.61103C10.5 10.0252 10.1642 10.361 9.75003 10.361H8.62347L8.38239 10.2353V9.44121H9.44121V8.38239H10.2353Z", fill: "#ececec" }) }));
4
+ };
5
+ //# sourceMappingURL=qr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qr.js","sourceRoot":"","sources":["../../../src/ui/icons/qr.tsx"],"names":[],"mappings":";AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,KAAU,EAAE,EAAE;IACnC,OAAO,CACL,cAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,KAAK,KAAK,YACtG,4BACY,SAAS,eACT,SAAS,EACnB,CAAC,EAAC,stCAAstC,EACxtC,IAAI,EAAC,SAAS,GACd,GACE,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const SearchIcon: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const SearchIcon = (props) => {
3
+ return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", ...props, children: [_jsx("path", { d: "M5 1.875C5.81162 1.875 6.65905 2.2748 7.30957 2.91699C7.95937 3.55852 8.375 4.40467 8.375 5.25C8.375 7.01349 7.19019 8.375 5.5 8.375C3.44557 8.37499 1.875 6.71455 1.875 5C1.875 3.27411 3.27411 1.875 5 1.875Z", stroke: "#2C3034", "stroke-width": "0.75" }), _jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M5 7.75C6.51878 7.75 7.75 6.51878 7.75 5C7.75 3.48122 6.51878 2.25 5 2.25C3.48122 2.25 2.25 3.48122 2.25 5C2.25 6.51878 3.48122 7.75 5 7.75ZM5 8.5C6.933 8.5 8.5 6.933 8.5 5C8.5 3.067 6.933 1.5 5 1.5C3.067 1.5 1.5 3.067 1.5 5C1.5 6.933 3.067 8.5 5 8.5Z", fill: "#2C3034" }), _jsx("path", { d: "M7.25 7.25006L10.25 10.2501", stroke: "#2C3034", "stroke-width": "0.75", "stroke-linecap": "round" })] }));
4
+ };
5
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/ui/icons/search.tsx"],"names":[],"mappings":";AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAoC,EAAE,EAAE;IACjE,OAAO,CACL,eAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,KAAK,KAAK,aACtG,eACE,CAAC,EAAC,iNAAiN,EACnN,MAAM,EAAC,SAAS,kBACH,MAAM,GACnB,EACF,4BACY,SAAS,eACT,SAAS,EACnB,CAAC,EAAC,6PAA6P,EAC/P,IAAI,EAAC,SAAS,GACd,EACF,eAAM,CAAC,EAAC,6BAA6B,EAAC,MAAM,EAAC,SAAS,kBAAc,MAAM,oBAAgB,OAAO,GAAG,IAChG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const SwitchIcon: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const SwitchIcon = (props) => {
3
+ return (_jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [_jsx("path", { d: "M10 4L10 19", stroke: "#EBDEDC", "stroke-width": "2", "stroke-linecap": "round" }), _jsx("path", { d: "M14 19L14 4", stroke: "#EBDEDC", "stroke-width": "2", "stroke-linecap": "round" }), _jsx("path", { d: "M10 19C10 18.3269 9.52 14 6 14", stroke: "#EBDEDC", "stroke-width": "2", "stroke-linecap": "round" }), _jsx("path", { d: "M14 4C14 4.67308 14.48 9 18 9", stroke: "#EBDEDC", "stroke-width": "2", "stroke-linecap": "round" })] }));
4
+ };
5
+ //# sourceMappingURL=switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/ui/icons/switch.tsx"],"names":[],"mappings":";AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAoC,EAAE,EAAE;IACjE,OAAO,CACL,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,KAAK,KAAK,aACtG,eAAM,CAAC,EAAC,aAAa,EAAC,MAAM,EAAC,SAAS,kBAAc,GAAG,oBAAgB,OAAO,GAAG,EACjF,eAAM,CAAC,EAAC,aAAa,EAAC,MAAM,EAAC,SAAS,kBAAc,GAAG,oBAAgB,OAAO,GAAG,EACjF,eAAM,CAAC,EAAC,gCAAgC,EAAC,MAAM,EAAC,SAAS,kBAAc,GAAG,oBAAgB,OAAO,GAAG,EACpG,eAAM,CAAC,EAAC,+BAA+B,EAAC,MAAM,EAAC,SAAS,kBAAc,GAAG,oBAAgB,OAAO,GAAG,IAC/F,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const WalletIcon: (props: React.SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const WalletIcon = (props) => {
3
+ return (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 12 12", fill: "none", ...props, children: [_jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M2.25 1.125C1.62868 1.125 1.125 1.62868 1.125 2.25V3.25V10C1.125 10.6213 1.62868 11.125 2.25 11.125H9.75C10.3713 11.125 10.875 10.6213 10.875 10V8.5C10.875 8.47885 10.8732 8.4581 10.8699 8.43791C11.3095 8.28493 11.625 7.86688 11.625 7.37512V6.66092C11.625 6.24411 11.2859 5.86414 10.875 5.65915V4C10.875 3.37868 10.3713 2.875 9.75 2.875H9.625V2.25C9.625 1.62868 9.12132 1.125 8.5 1.125H2.25ZM10.2206 6.25012C10.2893 6.32677 10.389 6.375 10.5 6.375C10.5051 6.375 10.5103 6.3749 10.5154 6.37469C10.6967 6.51463 10.875 6.73984 10.875 6.87512V7.37512C10.875 7.58223 10.7071 7.75012 10.5 7.75012H9.00003C8.65485 7.75012 8.25003 7.4703 8.25003 7.12512C8.25003 6.77994 8.65485 6.25012 9.00003 6.25012H10.2206ZM10.125 5.52513V4C10.125 3.79289 9.95711 3.625 9.75 3.625H9.25H1.875V10C1.875 10.2071 2.04289 10.375 2.25 10.375H9.75C9.95711 10.375 10.125 10.2071 10.125 10V8.5C10.125 8.47904 10.1267 8.45848 10.13 8.43845L9.00003 8.25012C8.24064 8.25012 7.75003 7.88451 7.75003 7.12512C7.75003 6.36573 8.24064 5.75012 9.00003 5.75012L10.125 5.52513ZM8.875 2.875H1.875V2.25C1.875 2.04289 2.04289 1.875 2.25 1.875H8.5C8.70711 1.875 8.875 2.04289 8.875 2.25V2.875Z", fill: "#ececec" }), _jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M2.25 1.125C1.62868 1.125 1.125 1.62868 1.125 2.25V3.25V9.5C1.125 10.1213 1.62868 10.625 2.25 10.625H9.25C9.87132 10.625 10.375 10.1213 10.375 9.5V8.36813C10.9375 8.30594 11.375 7.82906 11.375 7.25V6.75C11.375 6.17094 10.9375 5.69406 10.375 5.63187V4C10.375 3.37868 9.87132 2.875 9.25 2.875H9.125V2.25C9.125 1.62868 8.62132 1.125 8 1.125H2.25ZM9.625 5.625V4C9.625 3.79289 9.45711 3.625 9.25 3.625H8.75H1.875V9.5C1.875 9.70711 2.04289 9.875 2.25 9.875H9.25C9.45711 9.875 9.625 9.70711 9.625 9.5V8.375H8.99997C8.24058 8.375 7.62497 7.75939 7.62497 7C7.62497 6.24061 8.24058 5.625 8.99997 5.625H9.625ZM10 7.625H10.25C10.4571 7.625 10.625 7.45711 10.625 7.25V6.75C10.625 6.54289 10.4571 6.375 10.25 6.375H10H8.99997C8.65479 6.375 8.37497 6.65482 8.37497 7C8.37497 7.34518 8.65479 7.625 8.99997 7.625H10ZM8.375 2.875H1.875V2.25C1.875 2.04289 2.04289 1.875 2.25 1.875H8C8.20711 1.875 8.375 2.04289 8.375 2.25V2.875Z", fill: "#ececec" })] }));
4
+ };
5
+ //# sourceMappingURL=wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/ui/icons/wallet.tsx"],"names":[],"mappings":";AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAoC,EAAE,EAAE;IACjE,OAAO,CACL,eAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,KAAK,KAAK,aACtG,4BACY,SAAS,eACT,SAAS,EACnB,CAAC,EAAC,8nCAA8nC,EAChoC,IAAI,EAAC,SAAS,GACd,EACF,4BACY,SAAS,eACT,SAAS,EACnB,CAAC,EAAC,+4BAA+4B,EACj5B,IAAI,EAAC,SAAS,GACd,IACE,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { Recipient } from "../../omni/recipient";
2
+ import { OmniWallet } from "../../OmniWallet";
3
+ import { BridgeReview } from "../../exchange";
4
+ import { HotConnector } from "../../HotConnector";
5
+ import { Token } from "../../omni/token";
6
+ export interface BridgeProps {
7
+ hot: HotConnector;
8
+ widget?: boolean;
9
+ onClose: () => void;
10
+ onProcess: (task: Promise<BridgeReview>) => void;
11
+ setup?: {
12
+ autoClose?: boolean;
13
+ title?: string;
14
+ readonlyAmount?: boolean;
15
+ readonlyTo?: boolean;
16
+ readonlyFrom?: boolean;
17
+ type?: "exactIn" | "exactOut";
18
+ sender?: OmniWallet;
19
+ recipient?: Recipient;
20
+ amount?: number;
21
+ from?: Token;
22
+ to?: Token;
23
+ };
24
+ }
25
+ export declare const Bridge: (({ hot, widget, setup, onClose, onProcess }: BridgeProps) => import("react/jsx-runtime").JSX.Element) & {
26
+ displayName: string;
27
+ };
@@ -0,0 +1,340 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useRef, useState } from "react";
3
+ import styled, { keyframes } from "styled-components";
4
+ import { observer } from "mobx-react-lite";
5
+ import uuid4 from "uuid4";
6
+ import { SwitchIcon } from "../icons/switch";
7
+ import { ArrowRightIcon } from "../icons/arrow-right";
8
+ import { formatter } from "../../omni/utils";
9
+ import { tokens } from "../../omni/tokens";
10
+ import { Recipient } from "../../omni/recipient";
11
+ import { WalletType } from "../../omni/config";
12
+ import Popup from "../Popup";
13
+ import { PopupButton } from "../styles";
14
+ import { openSelectRecipient, openSelectTokenPopup, openSelectSender } from "../router";
15
+ import { TokenIcon } from "./TokenCard";
16
+ import DepositQR from "./DepositQR";
17
+ const FIXED = 6;
18
+ export const Bridge = observer(({ hot, widget, setup, onClose, onProcess }) => {
19
+ const [isFiat, setIsFiat] = useState(false);
20
+ const [type, setType] = useState(setup?.type || "exactIn");
21
+ const [value, setValue] = useState(setup?.amount?.toString() ?? "");
22
+ const [from, setFrom] = useState(setup?.from || tokens.list.find((t) => t.id === localStorage.getItem("bridge:from")) || tokens.list.find((t) => t.symbol === "NEAR"));
23
+ const [to, setTo] = useState(setup?.to || tokens.list.find((t) => t.id === localStorage.getItem("bridge:to")) || tokens.list.find((t) => t.symbol === "USDT"));
24
+ const [review, setReview] = useState(null);
25
+ const [isError, setIsError] = useState(null);
26
+ const [isReviewing, setIsReviewing] = useState(false);
27
+ const [processing, setProcessing] = useState(null);
28
+ const [sender, setSender] = useState(() => {
29
+ if (setup?.sender)
30
+ return setup.sender;
31
+ if (from.type === WalletType.OMNI)
32
+ return hot.priorityWallet;
33
+ return hot.wallets.find((w) => w.type === from.type);
34
+ });
35
+ const [recipient, setRecipient] = useState(() => {
36
+ if (setup?.recipient)
37
+ return setup.recipient;
38
+ if (to.type === WalletType.OMNI)
39
+ return Recipient.fromWallet(hot.priorityWallet);
40
+ return Recipient.fromWallet(hot.wallets.find((w) => w.type === to.type));
41
+ });
42
+ const initialSender = useRef(sender);
43
+ const initialRecipient = useRef(recipient);
44
+ const valueInTokens = isFiat ? +formatter.fromInput(value) / (type === "exactIn" ? from.usd : to.usd) : +formatter.fromInput(value);
45
+ const amountFrom = type === "exactOut" ? from.float(review?.amountIn ?? 0) : valueInTokens;
46
+ const amountTo = type === "exactIn" ? to.float(review?.amountOut ?? 0) : valueInTokens;
47
+ const showAmountFrom = type === "exactOut" ? +from.float(review?.amountIn ?? 0).toFixed(FIXED) : formatter.fromInput(value);
48
+ const showAmountTo = type === "exactIn" ? +to.float(review?.amountOut ?? 0).toFixed(FIXED) : formatter.fromInput(value);
49
+ const availableBalance = sender !== "qr" ? +Math.max(0, from.float(hot.balance(sender, from)) - from.reserve).toFixed(FIXED) : 0;
50
+ useEffect(() => {
51
+ localStorage.setItem("bridge:from", from.id);
52
+ localStorage.setItem("bridge:to", to.id);
53
+ }, [from, to]);
54
+ useEffect(() => {
55
+ if (initialSender.current == null) {
56
+ if (from.type === WalletType.OMNI)
57
+ setSender(hot.priorityWallet);
58
+ else
59
+ setSender(hot.wallets.find((w) => w.type === from.type));
60
+ }
61
+ if (initialRecipient.current == null) {
62
+ if (to.type === WalletType.OMNI)
63
+ setRecipient(Recipient.fromWallet(hot.priorityWallet));
64
+ else
65
+ setRecipient(Recipient.fromWallet(hot.wallets.find((w) => w.type === to.type)));
66
+ }
67
+ }, [to, from, hot.wallets, hot.priorityWallet]);
68
+ const reviewId = useRef(uuid4());
69
+ const throwError = (message) => {
70
+ setIsError(message);
71
+ setIsReviewing(false);
72
+ };
73
+ const reviewSwap = useCallback(() => {
74
+ reviewId.current = uuid4();
75
+ const currentReviewId = reviewId.current;
76
+ setIsReviewing(true);
77
+ setReview(null);
78
+ setIsError(null);
79
+ const refund = sender !== "qr" ? sender : hot.priorityWallet;
80
+ if (valueInTokens <= 0)
81
+ return throwError("Enter amount");
82
+ if (!sender)
83
+ return throwError("Set sender");
84
+ if (!recipient)
85
+ return throwError("Set recipient");
86
+ if (!refund)
87
+ return throwError("Connect any wallet");
88
+ const debounceTimer = setTimeout(async () => {
89
+ try {
90
+ if (currentReviewId !== reviewId.current)
91
+ return;
92
+ const amount = type === "exactIn" ? from.int(valueInTokens) : to.int(valueInTokens);
93
+ const review = await hot.exchange.reviewSwap({ sender, refund, amount, recipient, slippage: 0.005, type, from, to });
94
+ if (currentReviewId !== reviewId.current)
95
+ return;
96
+ setIsReviewing(false);
97
+ setIsError(null);
98
+ setReview(review);
99
+ }
100
+ catch (e) {
101
+ if (currentReviewId !== reviewId.current)
102
+ return;
103
+ setIsError(typeof e === "string" ? e : e instanceof Error ? e.message : "Failed to review swap");
104
+ setIsReviewing(false);
105
+ setReview(null);
106
+ console.error(e);
107
+ }
108
+ }, 500);
109
+ return () => clearTimeout(debounceTimer);
110
+ }, [valueInTokens, type, from, to, sender, hot.exchange, recipient, hot.priorityWallet]);
111
+ useEffect(() => {
112
+ reviewSwap();
113
+ }, [reviewSwap]);
114
+ const process = async (review) => {
115
+ try {
116
+ setProcessing({ status: "processing", message: "Signing transaction", review });
117
+ const result = await hot.exchange.makeSwap(review, { log: (message) => setProcessing({ status: "processing", message, review }) });
118
+ setProcessing({ status: "success", message: "Transaction signed", review: result });
119
+ if (setup?.autoClose)
120
+ onClose();
121
+ return result;
122
+ }
123
+ catch (e) {
124
+ setProcessing({ status: "error", message: e?.toString?.() ?? "Unknown error", review });
125
+ throw e;
126
+ }
127
+ };
128
+ const cancelReview = () => {
129
+ setReview(null);
130
+ setIsReviewing(false);
131
+ setProcessing(null);
132
+ setIsError(null);
133
+ reviewSwap();
134
+ };
135
+ const handleConfirm = async () => {
136
+ if (sender != "qr")
137
+ return onProcess(process(review));
138
+ setProcessing({ status: "qr", message: "Scan QR code to sign transaction", review: review });
139
+ };
140
+ const handleMax = () => {
141
+ if (sender === "qr")
142
+ return;
143
+ if (isFiat) {
144
+ setType("exactIn");
145
+ setValue(String(+(availableBalance * from.usd).toFixed(FIXED)));
146
+ }
147
+ else {
148
+ setType("exactIn");
149
+ setValue(String(availableBalance));
150
+ }
151
+ };
152
+ if (processing?.status === "qr") {
153
+ return (_jsx(Popup, { widget: widget, onClose: onClose, header: setup?.title ? _jsx("p", { children: setup?.title }) : null, children: _jsx(DepositQR //
154
+ , { review: processing.review, onConfirm: () => onProcess(process(processing.review)), onCancel: cancelReview }) }));
155
+ }
156
+ if (processing?.status === "processing") {
157
+ return (_jsx(Popup, { widget: widget, onClose: onClose, header: setup?.title ? _jsx("p", { children: setup?.title }) : null, children: _jsxs("div", { style: { width: "100%", height: 400, display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column" }, children: [_jsx("dotlottie-wc", { src: "/loading.json", speed: "1", style: { width: 300, height: 300 }, mode: "forward", loop: true, autoplay: true }, "loading"), _jsx("p", { style: { marginTop: -32, fontSize: 16 }, children: processing.message })] }) }));
158
+ }
159
+ if (processing?.status === "success") {
160
+ return (_jsxs(Popup, { widget: widget, onClose: onClose, header: setup?.title ? _jsx("p", { children: setup?.title }) : null, children: [_jsxs("div", { style: { width: "100%", height: 400, display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column" }, children: [_jsx("dotlottie-wc", { src: "/success.json", speed: "1", style: { width: 300, height: 300 }, mode: "forward", loop: true, autoplay: true }, "success"), _jsx("p", { style: { fontSize: 24, marginTop: -32, fontWeight: "bold" }, children: "Exchange successful" })] }), _jsx(PopupButton, { style: { marginTop: "auto" }, onClick: () => (cancelReview(), onClose()), children: "Continue" })] }));
161
+ }
162
+ if (processing?.status === "error") {
163
+ return (_jsxs(Popup, { widget: widget, onClose: onClose, header: setup?.title ? _jsx("p", { children: setup?.title }) : null, children: [_jsxs("div", { style: { width: "100%", height: 400, gap: 8, display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column" }, children: [_jsx("dotlottie-wc", { src: "/error.json", speed: "1", style: { width: 300, height: 300 }, mode: "forward", loop: true, autoplay: true }, "error"), _jsx("p", { style: { fontSize: 24, marginTop: -32, fontWeight: "bold" }, children: "Exchange failed" }), _jsx("p", { style: { fontSize: 14 }, children: processing.message })] }), _jsx(PopupButton, { onClick: () => (cancelReview(), onClose()), children: "Continue" })] }));
164
+ }
165
+ const button = () => {
166
+ if (sender == null)
167
+ return _jsx(PopupButton, { disabled: true, children: "Set sender" });
168
+ if (recipient == null)
169
+ return _jsx(PopupButton, { disabled: true, children: "Set recipient" });
170
+ if (sender !== "qr" && +from.float(hot.balance(sender, from)).toFixed(FIXED) < +amountFrom.toFixed(FIXED))
171
+ return _jsx(PopupButton, { disabled: true, children: "Insufficient balance" });
172
+ return (_jsx(PopupButton, { disabled: isReviewing || isError != null, onClick: handleConfirm, children: isReviewing ? "Quoting..." : isError != null ? isError : "Confirm" }));
173
+ };
174
+ return (_jsx(Popup, { widget: widget, onClose: onClose, header: setup?.title ? _jsx("p", { children: setup?.title }) : null, children: _jsxs("div", { style: { display: "flex", flexDirection: "column", gap: 32, width: "100%", height: "100%" }, children: [_jsxs(Card, { children: [_jsx("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", width: "100%" }, children: _jsxs("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [_jsx("p", { style: { fontWeight: "bold" }, children: from.chain === -4 ? "Withdraw HEX from:" : "Send from:" }), _jsx(BadgeButton, { onClick: () => openSelectSender({ hot, type: from.type, onSelect: (wallet) => setSender(wallet) }), children: _jsx("p", { children: formatter.truncateAddress(sender === "qr" ? "QR code" : sender?.address ?? "Connect wallet") }) })] }) }), _jsxs("div", { style: { width: "100%", display: "flex", alignItems: "center", gap: 8, justifyContent: "space-between" }, children: [_jsx(TokenPreview //
175
+ , { token: from, style: { pointerEvents: setup?.readonlyFrom ? "none" : "all" }, onSelect: () => openSelectTokenPopup({ hot, onSelect: (token, wallet) => (setFrom(token), setSender(wallet)) }) }), isReviewing && type === "exactOut" ? (_jsx(SkeletonShine, {})) : (_jsx("input", { name: "from", type: "text", className: "input", autoComplete: "off", autoCapitalize: "off", autoCorrect: "off", readOnly: setup?.readonlyAmount, value: isFiat ? `$${showAmountFrom}` : showAmountFrom, onChange: (e) => (setType("exactIn"), setValue(e.target.value)), placeholder: "0", autoFocus: true }))] }), isFiat && (_jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", width: "100%" }, children: [sender !== "qr" && (_jsxs(AvailableBalance, { children: [_jsxs("p", { children: ["Balance: $", from.readable(availableBalance, from.usd)] }), _jsx(RefreshButton, { onClick: () => sender && hot.fetchToken(from, sender) })] })), sender === "qr" && _jsx("div", {}), _jsxs("div", { style: { display: "flex", alignItems: "center", gap: 4, flexShrink: 0 }, children: [from.usd !== 0 && _jsx("p", { style: { marginRight: 8 }, children: `${from.readable(amountFrom / from.usd)} ${from.symbol}` }), from.usd !== 0 && (_jsx(BadgeButton, { style: { border: `1px solid #fff` }, onClick: () => setIsFiat(!isFiat), children: "USD" })), sender !== "qr" && _jsx(BadgeButton, { onClick: handleMax, children: "MAX" })] })] })), !isFiat && (_jsxs("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", width: "100%" }, children: [sender !== "qr" && (_jsxs(AvailableBalance, { children: [_jsxs("p", { children: ["Balance: ", `${from.readable(availableBalance)} ${from.symbol}`] }), _jsx(RefreshButton, { onClick: () => sender && hot.fetchToken(from, sender) })] })), sender === "qr" && _jsx("div", {}), _jsxs("div", { style: { display: "flex", alignItems: "center", gap: 4 }, children: [from.usd !== 0 && _jsxs("p", { style: { marginRight: 8 }, children: ["$", from.readable(amountFrom, from.usd)] }), from.usd !== 0 && _jsx(BadgeButton, { onClick: () => setIsFiat(!isFiat), children: "USD" }), sender !== "qr" && _jsx(BadgeButton, { onClick: handleMax, children: "MAX" })] })] }))] }), _jsxs("div", { style: { position: "relative" }, children: [_jsx("div", { style: { width: "100%", height: 1, backgroundColor: "rgba(255, 255, 255, 0.07)" } }), _jsx(SwitchButton, { onClick: () => {
176
+ setFrom(to);
177
+ setTo(from);
178
+ setSender(hot.wallets.find((w) => w.address === recipient?.address));
179
+ setRecipient(sender === "qr" ? undefined : sender ? Recipient.fromWallet(sender) : undefined);
180
+ setType(type === "exactIn" ? "exactOut" : "exactIn");
181
+ setValue("");
182
+ }, children: _jsx(SwitchIcon, {}) })] }), _jsxs(Card, { children: [_jsx("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", width: "100%" }, children: _jsxs("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [_jsx("p", { style: { fontWeight: "bold" }, children: to.chain !== -4 ? "To:" : "Deposit HEX to:" }), _jsx(BadgeButton, { onClick: () => openSelectRecipient({ hot, recipient, type: to.type, onSelect: (recipient) => setRecipient(recipient) }), children: _jsx("p", { children: formatter.truncateAddress(recipient?.address ?? "Connect wallet") }) })] }) }), _jsxs("div", { style: { width: "100%", display: "flex", alignItems: "center", gap: 8, justifyContent: "space-between" }, children: [_jsx(TokenPreview //
183
+ , { token: to, style: { pointerEvents: setup?.readonlyTo ? "none" : "all" }, onSelect: () => openSelectTokenPopup({
184
+ hot,
185
+ onSelect: (token, wallet) => {
186
+ setRecipient(wallet ? Recipient.fromWallet(wallet) : undefined);
187
+ setTo(token);
188
+ },
189
+ }) }), isReviewing && type === "exactIn" ? (_jsx(SkeletonShine, {})) : (_jsx("input", { name: "to", type: "text", className: "input", autoComplete: "off", autoCapitalize: "off", autoCorrect: "off", readOnly: setup?.readonlyAmount, value: isFiat ? `$${+(+showAmountTo * to.usd).toFixed(FIXED)}` : showAmountTo, onChange: (e) => (setType("exactOut"), setValue(e.target.value)), placeholder: "0" }))] }), _jsxs("div", { style: { width: "100%", display: "flex", justifyContent: "flex-end", marginTop: -8 }, children: [isFiat && _jsxs("p", { children: ["Receive: $", `${to.readable(amountTo ?? 0)} ${to.symbol}`] }), !isFiat && _jsxs("p", { children: ["Receive: $", to.readable(amountTo ?? 0, to.usd)] })] })] }), _jsx("div", { style: { marginTop: "auto" }, children: button() })] }) }));
190
+ });
191
+ const TokenPreview = ({ style, token, onSelect }) => {
192
+ return (_jsxs(SelectTokenButton, { style: style, onClick: () => onSelect(token), children: [_jsx(TokenIcon, { token: token }), _jsx("p", { style: { fontSize: 24, fontWeight: "bold" }, children: token.symbol }), _jsx(ArrowRightIcon, { style: { flexShrink: 0, position: "absolute", right: 4 } })] }));
193
+ };
194
+ const BadgeButton = styled.button `
195
+ font-size: 12px;
196
+ font-weight: 500;
197
+ color: #fff;
198
+ background: #282c30;
199
+ padding: 4px 8px;
200
+ border-radius: 16px;
201
+ cursor: pointer;
202
+ outline: none;
203
+ border: none;
204
+ border: 1px solid transparent;
205
+ transition: 0.2s border-color;
206
+
207
+ &:hover {
208
+ border-color: #4e4e4e;
209
+ }
210
+
211
+ * {
212
+ font-size: 14px;
213
+ font-weight: bold;
214
+ }
215
+ `;
216
+ const SelectTokenButton = styled.button `
217
+ display: flex;
218
+ align-items: center;
219
+ gap: 12px;
220
+ flex-shrink: 0;
221
+ cursor: pointer;
222
+ outline: none;
223
+ border: none;
224
+ position: relative;
225
+ background: transparent;
226
+ border-radius: 32px;
227
+ padding: 8px;
228
+ padding-right: 32px;
229
+ margin: -8px;
230
+ max-width: 160px;
231
+ transition: 0.2s background-color;
232
+
233
+ &:hover {
234
+ background: rgba(255, 255, 255, 0.2);
235
+ }
236
+
237
+ p {
238
+ overflow: hidden;
239
+ text-overflow: ellipsis;
240
+ white-space: nowrap;
241
+ }
242
+ `;
243
+ const AvailableBalance = styled.div `
244
+ display: flex;
245
+ align-items: center;
246
+ gap: 4;
247
+ overflow: hidden;
248
+ max-width: 200px;
249
+ text-wrap: nowrap;
250
+
251
+ p {
252
+ overflow: hidden;
253
+ text-overflow: ellipsis;
254
+ white-space: nowrap;
255
+ }
256
+ `;
257
+ const Card = styled.div `
258
+ display: flex;
259
+ width: 100%;
260
+ flex-direction: column;
261
+ gap: 16px;
262
+ width: 100%;
263
+ text-align: left;
264
+ align-items: flex-start;
265
+ justify-content: center;
266
+ border-radius: 12px;
267
+
268
+ input {
269
+ outline: none;
270
+ border: none;
271
+ background: none;
272
+ color: #fff;
273
+ font-size: 32px;
274
+ font-weight: bold;
275
+ width: 100%;
276
+ line-height: 40px;
277
+ text-align: left;
278
+ align-items: flex-start;
279
+ justify-content: center;
280
+ background: transparent;
281
+ text-align: right;
282
+ border: none;
283
+ padding: 0;
284
+ margin: 0;
285
+ }
286
+ `;
287
+ const SwitchButton = styled.button `
288
+ position: absolute;
289
+ left: 50%;
290
+ top: -18px;
291
+ transform: translate(-50%, 0);
292
+ background: #232323;
293
+ border-radius: 50%;
294
+ width: 36px;
295
+ height: 36px;
296
+ display: flex;
297
+ align-items: center;
298
+ justify-content: center;
299
+ z-index: 2;
300
+ cursor: pointer;
301
+ border: 2px solid #181818;
302
+ box-shadow: 0 2px 8px 0 #18181870;
303
+ outline: none;
304
+ border: none;
305
+ cursor: pointer;
306
+ `;
307
+ const shine = keyframes `
308
+ 0% {
309
+ background-position: -200px 0;
310
+ }
311
+ 100% {
312
+ background-position: calc(200px + 100%) 0;
313
+ }
314
+ `;
315
+ const SkeletonShine = styled.div `
316
+ display: inline-block;
317
+ width: 100px;
318
+ height: 40px;
319
+ border-radius: 8px;
320
+ background: #2e2e2e;
321
+ position: relative;
322
+ overflow: hidden;
323
+
324
+ &:after {
325
+ content: "";
326
+ display: block;
327
+ height: 100%;
328
+ width: 100%;
329
+ position: absolute;
330
+ top: 0;
331
+ left: 0;
332
+ background: linear-gradient(90deg, rgba(34, 34, 34, 0) 0%, rgba(255, 255, 255, 0.06) 40%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0.06) 60%, rgba(34, 34, 34, 0) 100%);
333
+ background-size: 200px 100%;
334
+ animation: ${shine} 1.4s infinite linear;
335
+ }
336
+ `;
337
+ const RefreshButton = ({ onClick }) => {
338
+ return (_jsxs("svg", { onClick: onClick, style: { width: 18, height: 18, verticalAlign: "middle", marginLeft: 8, cursor: "pointer", opacity: 0.7, transition: "opacity 0.2s" }, viewBox: "0 0 24 24", fill: "none", stroke: "#fff", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", onMouseOver: (e) => (e.currentTarget.style.opacity = "1"), onMouseOut: (e) => (e.currentTarget.style.opacity = "0.7"), children: [_jsx("path", { d: "M23 4v6h-6" }), _jsx("path", { d: "M1 20v-6h6" }), _jsx("path", { d: "M3.51 9a9 9 0 0114.13-3.36L23 10" }), _jsx("path", { d: "M20.49 15a9 9 0 01-14.13 3.36L1 14" })] }));
339
+ };
340
+ //# sourceMappingURL=Bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bridge.js","sourceRoot":"","sources":["../../../src/ui/payment/Bridge.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BridgeReview } from "../../exchange";
2
+ declare const DepositQR: (({ review, onConfirm, onCancel }: {
3
+ review: BridgeReview;
4
+ onConfirm: () => void;
5
+ onCancel: () => void;
6
+ }) => import("react/jsx-runtime").JSX.Element | null) & {
7
+ displayName: string;
8
+ };
9
+ export default DepositQR;
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import QRCodeStyling from "qr-code-styling";
4
+ import { observer } from "mobx-react-lite";
5
+ import styled from "styled-components";
6
+ import { PopupButton } from "../styles";
7
+ const DepositQR = observer(({ review, onConfirm, onCancel }) => {
8
+ const qrCodeRef = useRef(null);
9
+ const [qrCode] = useState(() => {
10
+ if (review.qoute === "deposit" || review.qoute === "withdraw")
11
+ return null;
12
+ return new QRCodeStyling({
13
+ data: review.qoute.depositAddress,
14
+ dotsOptions: { color: "#eeeeee", type: "rounded" },
15
+ backgroundOptions: { color: "transparent" },
16
+ shape: "circle",
17
+ width: 180,
18
+ height: 180,
19
+ type: "svg",
20
+ });
21
+ });
22
+ useEffect(() => {
23
+ if (!qrCodeRef.current)
24
+ return;
25
+ if (review.qoute === "deposit" || review.qoute === "withdraw")
26
+ return;
27
+ qrCode?.append(qrCodeRef.current);
28
+ }, []);
29
+ if (review.qoute === "deposit" || review.qoute === "withdraw")
30
+ return null;
31
+ return (_jsxs("div", { style: { position: "relative", width: "100%", height: "100%", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", flex: 1 }, children: [_jsx(CloseButton, { onClick: onCancel, "aria-label": "Close", children: _jsxs("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: [_jsx("circle", { cx: "12", cy: "12", r: "11", stroke: "#2d2d2d", strokeWidth: "2", fill: "#181818" }), _jsx("path", { d: "M8 8l8 8M16 8l-8 8", stroke: "#fff", strokeWidth: "2", strokeLinecap: "round" })] }) }), _jsx("div", { ref: qrCodeRef, style: {
32
+ marginTop: "auto",
33
+ borderRadius: "50%",
34
+ display: "flex",
35
+ alignItems: "center",
36
+ justifyContent: "center",
37
+ padding: 8,
38
+ paddingTop: 10,
39
+ paddingLeft: 10,
40
+ border: "1px solid #2d2d2d",
41
+ background: "#1c1c1c",
42
+ } }), _jsxs("p", { style: { marginTop: 24 }, children: ["Send", " ", _jsxs("b", { children: [review.qoute.amountInFormatted, " ", review.from.symbol] }), " ", "on ", _jsx("b", { children: review.from.chainName }), " to"] }), _jsx("div", { style: { width: "100%", marginTop: 8, padding: 12, marginBottom: 24, border: "1px solid #2d2d2d", borderRadius: 12, background: "#1c1c1c" }, children: _jsx("p", { style: { wordBreak: "break-all" }, children: review.qoute.depositAddress }) }), _jsx(PopupButton, { style: { marginTop: "auto" }, onClick: onConfirm, children: "I sent the funds" })] }));
43
+ });
44
+ const CloseButton = styled.button `
45
+ position: absolute;
46
+ top: -8px;
47
+ right: -12px;
48
+ background: transparent;
49
+ border: none;
50
+ cursor: pointer;
51
+ padding: 6;
52
+ border-radius: 50%;
53
+ transition: background 0.2s;
54
+ `;
55
+ export default DepositQR;
56
+ //# sourceMappingURL=DepositQR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DepositQR.js","sourceRoot":"","sources":["../../../src/ui/payment/DepositQR.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAyE,EAAE,EAAE;IACpI,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAuB,GAAG,EAAE;QACnD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAC3E,OAAO,IAAI,aAAa,CAAC;YACvB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;YACjC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YAClD,iBAAiB,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;YAC3C,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAO;QAC/B,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU;YAAE,OAAO;QACtE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAE3E,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,aACpK,KAAC,WAAW,IAAC,OAAO,EAAE,QAAQ,gBAAa,OAAO,YAChD,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,aACzD,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,GAAG,EACjF,eAAM,CAAC,EAAC,oBAAoB,EAAC,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,GAAG,IAC/E,GACM,EAEd,cACE,GAAG,EAAE,SAAS,EACd,KAAK,EAAE;oBACL,SAAS,EAAE,MAAM;oBACjB,YAAY,EAAE,KAAK;oBACnB,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;oBACpB,cAAc,EAAE,QAAQ;oBACxB,OAAO,EAAE,CAAC;oBACV,UAAU,EAAE,EAAE;oBACd,WAAW,EAAE,EAAE;oBACf,MAAM,EAAE,mBAAmB;oBAC3B,UAAU,EAAE,SAAS;iBACtB,GACI,EAEP,aAAG,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,qBACpB,GAAG,EACR,wBACG,MAAM,CAAC,KAAK,CAAC,iBAAiB,OAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAClD,EAAC,GAAG,SACL,sBAAI,MAAM,CAAC,IAAI,CAAC,SAAS,GAAK,WAC/B,EAEJ,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,YAC9I,YAAG,KAAK,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,YAAG,MAAM,CAAC,KAAK,CAAC,cAAc,GAAK,GACnE,EAEN,KAAC,WAAW,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,iCAE/C,IACV,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAA;;;;;;;;;;CAUhC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { HotConnector } from "../../HotConnector";
2
+ import { Recipient } from "../../omni/recipient";
3
+ import { BridgeReview } from "../../exchange";
4
+ import { Token } from "../../omni/token";
5
+ interface PaymentProps {
6
+ connector: HotConnector;
7
+ token: Token;
8
+ amount: bigint;
9
+ recipient?: Recipient;
10
+ onClose: () => void;
11
+ onProcess: (task: Promise<BridgeReview>) => void;
12
+ }
13
+ export declare const Payment: (({ connector, recipient, token: need, amount: needAmount, onProcess, onClose }: PaymentProps) => import("react/jsx-runtime").JSX.Element) & {
14
+ displayName: string;
15
+ };
16
+ export {};