@hot-labs/kit 1.3.3 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/build/HotConnector.d.ts +9 -13
  2. package/build/HotConnector.js +17 -57
  3. package/build/HotConnector.js.map +1 -1
  4. package/build/activity.d.ts +1 -1
  5. package/build/activity.js +8 -8
  6. package/build/activity.js.map +1 -1
  7. package/build/core/Intents.d.ts +3 -2
  8. package/build/core/Intents.js +11 -1
  9. package/build/core/Intents.js.map +1 -1
  10. package/build/{OmniConnector.d.ts → core/OmniConnector.d.ts} +4 -4
  11. package/build/{OmniConnector.js → core/OmniConnector.js} +2 -2
  12. package/build/core/OmniConnector.js.map +1 -0
  13. package/build/{OmniWallet.d.ts → core/OmniWallet.d.ts} +19 -13
  14. package/build/core/OmniWallet.js +97 -0
  15. package/build/core/OmniWallet.js.map +1 -0
  16. package/build/core/address.d.ts +25 -0
  17. package/build/core/address.js +162 -0
  18. package/build/core/address.js.map +1 -0
  19. package/build/core/chains.d.ts +1 -1
  20. package/build/core/chains.js +5 -5
  21. package/build/core/chains.js.map +1 -1
  22. package/build/{exchange.d.ts → core/exchange.d.ts} +13 -16
  23. package/build/{exchange.js → core/exchange.js} +76 -80
  24. package/build/core/exchange.js.map +1 -0
  25. package/build/core/index.d.ts +1 -1
  26. package/build/core/index.js +1 -1
  27. package/build/core/index.js.map +1 -1
  28. package/build/core/recipient.d.ts +2 -1
  29. package/build/core/recipient.js +6 -0
  30. package/build/core/recipient.js.map +1 -1
  31. package/build/core/telemetry.d.ts +3 -0
  32. package/build/core/telemetry.js.map +1 -1
  33. package/build/core/token.js +3 -3
  34. package/build/core/token.js.map +1 -1
  35. package/build/core/tokens.js +1 -1
  36. package/build/core/tokens.js.map +1 -1
  37. package/build/core/utils.d.ts +1 -0
  38. package/build/core/utils.js +19 -0
  39. package/build/core/utils.js.map +1 -1
  40. package/build/cosmos/connector.d.ts +2 -2
  41. package/build/cosmos/connector.js +2 -2
  42. package/build/cosmos/connector.js.map +1 -1
  43. package/build/cosmos/wallet.d.ts +2 -2
  44. package/build/cosmos/wallet.js +7 -10
  45. package/build/cosmos/wallet.js.map +1 -1
  46. package/build/defaults.d.ts +1 -1
  47. package/build/defaults.js +2 -2
  48. package/build/defaults.js.map +1 -1
  49. package/build/evm/connector.d.ts +4 -4
  50. package/build/evm/connector.js +10 -4
  51. package/build/evm/connector.js.map +1 -1
  52. package/build/evm/wallet.d.ts +5 -5
  53. package/build/evm/wallet.js +24 -23
  54. package/build/evm/wallet.js.map +1 -1
  55. package/build/hot-wallet/google.d.ts +2 -2
  56. package/build/hot-wallet/google.js +4 -4
  57. package/build/hot-wallet/google.js.map +1 -1
  58. package/build/index.d.ts +2 -2
  59. package/build/index.js +2 -2
  60. package/build/index.js.map +1 -1
  61. package/build/near/connector.d.ts +2 -2
  62. package/build/near/connector.js +8 -3
  63. package/build/near/connector.js.map +1 -1
  64. package/build/near/index.d.ts +1 -1
  65. package/build/near/index.js.map +1 -1
  66. package/build/near/standalone.d.ts +2 -0
  67. package/build/near/standalone.js +42 -0
  68. package/build/near/standalone.js.map +1 -0
  69. package/build/near/wallet.d.ts +3 -2
  70. package/build/near/wallet.js +21 -12
  71. package/build/near/wallet.js.map +1 -1
  72. package/build/solana/connector.d.ts +4 -4
  73. package/build/solana/connector.js +11 -4
  74. package/build/solana/connector.js.map +1 -1
  75. package/build/solana/wallet.d.ts +3 -3
  76. package/build/solana/wallet.js +14 -11
  77. package/build/solana/wallet.js.map +1 -1
  78. package/build/stellar/connector.d.ts +2 -2
  79. package/build/stellar/connector.js +3 -2
  80. package/build/stellar/connector.js.map +1 -1
  81. package/build/stellar/wallet.d.ts +3 -3
  82. package/build/stellar/wallet.js +27 -19
  83. package/build/stellar/wallet.js.map +1 -1
  84. package/build/ton/connector.d.ts +2 -2
  85. package/build/ton/connector.js +2 -2
  86. package/build/ton/connector.js.map +1 -1
  87. package/build/ton/wallet.d.ts +3 -3
  88. package/build/ton/wallet.js +26 -17
  89. package/build/ton/wallet.js.map +1 -1
  90. package/build/tron/connector.d.ts +2 -2
  91. package/build/tron/connector.js +1 -1
  92. package/build/tron/connector.js.map +1 -1
  93. package/build/tron/wallet.d.ts +2 -2
  94. package/build/tron/wallet.js +9 -15
  95. package/build/tron/wallet.js.map +1 -1
  96. package/build/ui/bridge/Bridge.d.ts +2 -2
  97. package/build/ui/bridge/Bridge.js +15 -13
  98. package/build/ui/bridge/Bridge.js.map +1 -1
  99. package/build/ui/bridge/SelectRecipient.d.ts +3 -3
  100. package/build/ui/bridge/SelectRecipient.js +8 -7
  101. package/build/ui/bridge/SelectRecipient.js.map +1 -1
  102. package/build/ui/bridge/SelectSender.d.ts +1 -1
  103. package/build/ui/bridge/SelectSender.js +1 -1
  104. package/build/ui/bridge/SelectSender.js.map +1 -1
  105. package/build/ui/bridge/SelectToken.d.ts +1 -1
  106. package/build/ui/bridge/SelectToken.js +2 -2
  107. package/build/ui/bridge/SelectToken.js.map +1 -1
  108. package/build/ui/bridge/TokenCard.d.ts +1 -1
  109. package/build/ui/connect/AuthPopup.d.ts +1 -1
  110. package/build/ui/connect/ConnectWallet.d.ts +1 -1
  111. package/build/ui/connect/ConnectWallet.js +1 -1
  112. package/build/ui/connect/ConnectWallet.js.map +1 -1
  113. package/build/ui/connect/LogoutPopup.d.ts +1 -1
  114. package/build/ui/connect/WCPopup.js +1 -1
  115. package/build/ui/connect/WCPopup.js.map +1 -1
  116. package/build/ui/connect/WalletPicker.d.ts +2 -2
  117. package/build/ui/profile/DepositQR.d.ts +1 -1
  118. package/build/ui/profile/Payment.d.ts +1 -1
  119. package/build/ui/profile/Payment.js +8 -8
  120. package/build/ui/profile/Payment.js.map +1 -1
  121. package/build/ui/profile/Profile.js.map +1 -1
  122. package/build/ui/router.d.ts +3 -3
  123. package/examples-node/package.json +17 -0
  124. package/examples-node/transfer.ts +12 -10
  125. package/examples-node/withdraw.ts +52 -0
  126. package/examples-node/yarn.lock +2691 -0
  127. package/package.json +1 -1
  128. package/src/HotConnector.ts +16 -60
  129. package/src/activity.ts +9 -9
  130. package/src/core/Intents.ts +14 -3
  131. package/src/{OmniConnector.ts → core/OmniConnector.ts} +4 -6
  132. package/src/core/OmniWallet.ts +125 -0
  133. package/src/core/address.ts +155 -0
  134. package/src/core/chains.ts +5 -5
  135. package/src/{exchange.ts → core/exchange.ts} +79 -85
  136. package/src/core/index.ts +1 -1
  137. package/src/core/recipient.ts +8 -1
  138. package/src/core/telemetry.ts +4 -0
  139. package/src/core/token.ts +3 -3
  140. package/src/core/tokens.ts +1 -1
  141. package/src/core/utils.ts +16 -0
  142. package/src/cosmos/connector.ts +3 -3
  143. package/src/cosmos/wallet.ts +8 -11
  144. package/src/defaults.ts +2 -2
  145. package/src/evm/connector.ts +12 -6
  146. package/src/evm/wallet.ts +24 -25
  147. package/src/hot-wallet/google.ts +5 -5
  148. package/src/index.ts +2 -2
  149. package/src/near/connector.ts +6 -3
  150. package/src/near/index.ts +2 -1
  151. package/src/near/standalone.ts +52 -0
  152. package/src/near/wallet.ts +21 -15
  153. package/src/solana/connector.ts +15 -6
  154. package/src/solana/wallet.ts +12 -12
  155. package/src/stellar/connector.ts +5 -4
  156. package/src/stellar/wallet.ts +28 -22
  157. package/src/ton/connector.ts +4 -3
  158. package/src/ton/wallet.ts +24 -18
  159. package/src/tron/connector.ts +2 -2
  160. package/src/tron/wallet.ts +9 -19
  161. package/src/ui/bridge/Bridge.tsx +18 -16
  162. package/src/ui/bridge/SelectRecipient.tsx +23 -16
  163. package/src/ui/bridge/SelectSender.tsx +2 -2
  164. package/src/ui/bridge/SelectToken.tsx +3 -3
  165. package/src/ui/bridge/TokenCard.tsx +1 -1
  166. package/src/ui/connect/AuthPopup.tsx +1 -1
  167. package/src/ui/connect/ConnectWallet.tsx +2 -2
  168. package/src/ui/connect/LogoutPopup.tsx +1 -1
  169. package/src/ui/connect/WCPopup.tsx +1 -1
  170. package/src/ui/connect/WalletPicker.tsx +2 -2
  171. package/src/ui/profile/DepositQR.tsx +1 -1
  172. package/src/ui/profile/Payment.tsx +12 -13
  173. package/src/ui/profile/Profile.tsx +1 -2
  174. package/src/ui/router.tsx +3 -3
  175. package/build/OmniConnector.js.map +0 -1
  176. package/build/OmniWallet.js +0 -61
  177. package/build/OmniWallet.js.map +0 -1
  178. package/build/core/signer.d.ts +0 -51
  179. package/build/core/signer.js +0 -99
  180. package/build/core/signer.js.map +0 -1
  181. package/build/exchange.js.map +0 -1
  182. package/build/ui/utils.d.ts +0 -1
  183. package/build/ui/utils.js +0 -20
  184. package/build/ui/utils.js.map +0 -1
  185. package/src/OmniWallet.ts +0 -85
  186. package/src/core/signer.ts +0 -116
  187. package/src/ui/utils.ts +0 -14
@@ -1,13 +1,12 @@
1
1
  import { base58, base64, hex } from "@scure/base";
2
2
 
3
+ import type { OmniConnector } from "../core/OmniConnector";
4
+ import { OmniWallet } from "../core/OmniWallet";
3
5
  import { Network, WalletType } from "../core/chains";
4
6
  import { ReviewFee } from "../core/bridge";
5
7
  import { Token } from "../core/token";
6
8
  import { Commitment } from "../core";
7
9
 
8
- import type { OmniConnector } from "../OmniConnector";
9
- import { OmniWallet } from "../OmniWallet";
10
-
11
10
  interface TronWebLike {
12
11
  ready?: boolean;
13
12
  defaultAddress?: { base58?: string; hex?: string };
@@ -58,33 +57,24 @@ class TronWallet extends OmniWallet {
58
57
  }
59
58
 
60
59
  async fetchBalance(chain: number, address: string): Promise<bigint> {
61
- if (chain !== Network.Tron) throw "Invalid chain";
60
+ if (chain !== Network.Tron) return super.fetchBalance(chain, address);
62
61
  if (!this.tronWeb.trx) throw new Error("TronLink not available");
63
62
 
64
63
  if (address === "native") {
65
64
  const balance = await this.tronWeb.trx.getBalance?.(this.address);
66
- return BigInt(balance || 0);
65
+ return this.setBalance(`${chain}:${address}`, BigInt(balance || 0));
67
66
  }
68
67
 
69
- return await this.trc20Balance(address);
68
+ return this.setBalance(`${chain}:${address}`, await this.trc20Balance(address));
70
69
  }
71
70
 
72
71
  async fetchBalances(chain: number, whitelist: string[]): Promise<Record<string, bigint>> {
73
- const native = await this.fetchBalance(chain, "native");
74
-
72
+ if (chain === Network.Omni) return await super.fetchBalances(chain, whitelist);
75
73
  try {
76
- const res = await fetch(`https://api0.herewallet.app/api/v1/user/balances/${chain}/${this.address}`, { body: JSON.stringify({ whitelist, chain_id: chain }), method: "POST" });
77
- if (!res.ok) throw new Error("Failed to fetch balances");
78
- const { balances } = await res.json();
79
- return { ...balances, native };
74
+ return await super.fetchBalances(chain, whitelist);
80
75
  } catch {
81
- const balances = await Promise.all(
82
- whitelist.map(async (token) => {
83
- const balance = await this.fetchBalance(chain, token);
84
- return [token, balance] as const;
85
- })
86
- );
87
- return { ...Object.fromEntries(balances), native };
76
+ const tasks = whitelist.map(async (token) => [token, await this.fetchBalance(chain, token)]);
77
+ return Object.fromEntries(await Promise.all(tasks));
88
78
  }
89
79
  }
90
80
 
@@ -7,27 +7,27 @@ import RefreshIcon from "../icons/refresh";
7
7
  import { ArrowRightIcon } from "../icons/arrow-right";
8
8
 
9
9
  import { HotConnector } from "../../HotConnector";
10
- import { BridgeReview } from "../../exchange";
11
- import { OmniWallet } from "../../OmniWallet";
10
+ import { BridgeReview } from "../../core/exchange";
11
+ import { OmniWallet } from "../../core/OmniWallet";
12
12
 
13
+ import { chains, WalletType } from "../../core/chains";
14
+ import { Recipient } from "../../core/recipient";
13
15
  import { formatter } from "../../core/utils";
14
16
  import { tokens } from "../../core/tokens";
15
- import { Recipient } from "../../core/recipient";
16
- import { chains, WalletType } from "../../core/chains";
17
17
  import { Token } from "../../core/token";
18
18
 
19
+ import { ActionButton, Button } from "../uikit/button";
20
+ import { PLarge, PSmall, PTiny } from "../uikit/text";
21
+ import { Skeleton } from "../uikit/loader";
22
+ import { ImageView } from "../uikit/image";
23
+ import ExchangeIcon from "../icons/exchange";
24
+
19
25
  import Popup from "../Popup";
20
26
  import { PopupButton } from "../styles";
21
- import DepositQR from "../profile/DepositQR";
22
27
  import { openSelectRecipient, openSelectSender, openSelectTokenPopup, openWalletPicker } from "../router";
28
+ import DepositQR from "../profile/DepositQR";
23
29
  import { TokenIcon } from "./TokenCard";
24
30
 
25
- import { PLarge, PMedium, PSmall, PTiny } from "../uikit/text";
26
- import { Skeleton } from "../uikit/loader";
27
- import { ImageView } from "../uikit/image";
28
- import ExchangeIcon from "../icons/exchange";
29
- import { ActionButton, Button } from "../uikit/button";
30
-
31
31
  const animations = {
32
32
  success: "https://hex.exchange/success.json",
33
33
  failed: "https://hex.exchange/error.json",
@@ -161,7 +161,8 @@ export const Bridge = observer(({ hot, widget, setup, onClose, onProcess, onSele
161
161
  try {
162
162
  if (currentReviewId !== reviewId.current) return;
163
163
  const amount = type === "exactIn" ? from.int(valueInTokens) : to.int(valueInTokens);
164
- const review = await hot.exchange.reviewSwap({ sender, refund, amount, recipient, slippage: 0.005, type, from, to });
164
+ const recipientWallet = hot.wallets.find((w) => w.address === recipient?.address && w.type === recipient?.type) || recipient;
165
+ const review = await hot.exchange.reviewSwap({ recipient: recipientWallet, slippage: 0.005, sender, refund, amount, type, from, to });
165
166
  if (currentReviewId !== reviewId.current) return;
166
167
  setIsReviewing(false);
167
168
  setIsError(null);
@@ -185,10 +186,11 @@ export const Bridge = observer(({ hot, widget, setup, onClose, onProcess, onSele
185
186
  const process = async (review: BridgeReview) => {
186
187
  try {
187
188
  const log = (message: string) => setProcessing({ status: "processing", message, review });
188
- hot.hotBridge.logger = { log, warn: console.warn };
189
+ hot.exchange.bridge.logger = { log, warn: console.warn };
189
190
  log("Signing transaction");
190
191
 
191
- const result = await hot.exchange.makeSwap(review, { log });
192
+ review.logger = { log };
193
+ const result = await hot.exchange.makeSwap(review);
192
194
  let resultReview = result.review;
193
195
 
194
196
  if (result.processing) {
@@ -259,7 +261,7 @@ export const Bridge = observer(({ hot, widget, setup, onClose, onProcess, onSele
259
261
  <div style={{ width: "100%", height: 400, display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column" }}>
260
262
  {/* @ts-expect-error: dotlottie-wc is not typed */}
261
263
  <dotlottie-wc key="success" src={animations.success} speed="1" style={{ width: 300, height: 300 }} mode="forward" loop autoplay></dotlottie-wc>
262
- <p style={{ fontSize: 24, marginTop: -32, fontWeight: "bold" }}>Exchange successful</p>
264
+ <p style={{ fontSize: 24, marginTop: -32, fontWeight: "bold" }}>{title} successful</p>
263
265
  </div>
264
266
  <PopupButton style={{ marginTop: "auto" }} onClick={() => (cancelReview(), onClose())}>
265
267
  Continue
@@ -274,7 +276,7 @@ export const Bridge = observer(({ hot, widget, setup, onClose, onProcess, onSele
274
276
  <div style={{ width: "100%", height: 400, gap: 8, display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column" }}>
275
277
  {/* @ts-expect-error: dotlottie-wc is not typed */}
276
278
  <dotlottie-wc key="error" src={animations.failed} speed="1" style={{ width: 300, height: 300 }} mode="forward" loop autoplay></dotlottie-wc>
277
- <p style={{ fontSize: 24, marginTop: -32, fontWeight: "bold" }}>Exchange failed</p>
279
+ <p style={{ fontSize: 24, marginTop: -32, fontWeight: "bold" }}>{title} failed</p>
278
280
  <p style={{ fontSize: 14 }}>{processing.message}</p>
279
281
  </div>
280
282
  <ActionButton onClick={() => (cancelReview(), onClose())}>Continue</ActionButton>
@@ -4,23 +4,23 @@ import { useState } from "react";
4
4
 
5
5
  import { ArrowRightIcon } from "../icons/arrow-right";
6
6
 
7
+ import { Recipient } from "../../core/recipient";
8
+ import { chains, WalletType } from "../../core/chains";
9
+ import { formatter } from "../../core/utils";
10
+
11
+ import { PSmall } from "../uikit/text";
7
12
  import { ImageView } from "../uikit/image";
13
+ import { ConnectorType, OmniConnector } from "../../core/OmniConnector";
8
14
  import { PopupOption, PopupOptionInfo } from "../styles";
9
- import { ConnectorType, OmniConnector } from "../../OmniConnector";
10
15
  import { HotConnector } from "../../HotConnector";
11
16
  import { openWalletPicker } from "../router";
12
17
  import Popup from "../Popup";
13
18
 
14
- import { Recipient } from "../../core/recipient";
15
- import { WalletType } from "../../core/chains";
16
- import { formatter } from "../../core/utils";
17
- import { PSmall } from "../uikit/text";
18
-
19
19
  interface SelectRecipientProps {
20
- recipient?: Recipient;
21
20
  type: WalletType;
22
- onSelect: (recipient?: Recipient) => void;
23
21
  hot: HotConnector;
22
+ recipient?: Recipient;
23
+ onSelect: (recipient?: Recipient) => void;
24
24
  onClose: () => void;
25
25
  }
26
26
 
@@ -28,6 +28,8 @@ export const SelectRecipient = observer(({ recipient, hot, type, onSelect, onClo
28
28
  const connectors = hot.connectors.filter((t) => t.walletTypes.includes(type) && t.type !== ConnectorType.SOCIAL);
29
29
  const [customAddress, setCustomAddress] = useState<string>(recipient?.address || "");
30
30
 
31
+ const isError = !Recipient.isValidAddress(type, customAddress) && customAddress.length > 0;
32
+
31
33
  const selectCustom = async () => {
32
34
  const recipient = await Recipient.fromAddress(type, customAddress);
33
35
  onSelect(recipient);
@@ -55,14 +57,17 @@ export const SelectRecipient = observer(({ recipient, hot, type, onSelect, onClo
55
57
 
56
58
  {type !== WalletType.OMNI && (
57
59
  <>
58
- <div style={{ display: "flex", alignItems: "center", gap: 8, width: "100%", margin: "12px 0" }}>
59
- <div style={{ width: "100%", height: 1, background: "rgba(255,255,255,0.1)" }}></div>
60
- <PSmall>OR</PSmall>
61
- <div style={{ width: "100%", height: 1, background: "rgba(255,255,255,0.1)" }}></div>
62
- </div>
60
+ {connectors.length > 0 && (
61
+ <div style={{ display: "flex", alignItems: "center", gap: 8, width: "100%", margin: "12px 0" }}>
62
+ <div style={{ width: "100%", height: 1, background: "rgba(255,255,255,0.1)" }}></div>
63
+ <PSmall>OR</PSmall>
64
+ <div style={{ width: "100%", height: 1, background: "rgba(255,255,255,0.1)" }}></div>
65
+ </div>
66
+ )}
67
+
63
68
  <div style={{ width: "100%" }}>
64
69
  <PSmall style={{ textAlign: "left" }}>Enter recipient address, avoid CEX</PSmall>
65
- <CustomRecipient>
70
+ <CustomRecipient $error={isError}>
66
71
  <input //
67
72
  type="text"
68
73
  placeholder="Enter wallet address"
@@ -73,6 +78,8 @@ export const SelectRecipient = observer(({ recipient, hot, type, onSelect, onClo
73
78
  Select
74
79
  </button>
75
80
  </CustomRecipient>
81
+
82
+ {isError && <PSmall style={{ marginTop: 4, textAlign: "left", color: "#F34747" }}>Invalid {chains.get(type)?.name} address</PSmall>}
76
83
  </div>
77
84
  </>
78
85
  )}
@@ -80,10 +87,10 @@ export const SelectRecipient = observer(({ recipient, hot, type, onSelect, onClo
80
87
  );
81
88
  });
82
89
 
83
- const CustomRecipient = styled.div`
90
+ const CustomRecipient = styled.div<{ $error: boolean }>`
84
91
  display: flex;
85
92
  align-items: center;
86
- border: 1px solid #2d2d2d;
93
+ border: 1px solid ${({ $error }) => ($error ? "#F34747" : "#2d2d2d")};
87
94
  border-radius: 12px;
88
95
  overflow: hidden;
89
96
  margin-top: 8px;
@@ -4,9 +4,9 @@ import { QRIcon } from "../icons/qr";
4
4
  import { ArrowRightIcon } from "../icons/arrow-right";
5
5
  import { PopupOption, PopupOptionInfo } from "../styles";
6
6
 
7
- import { ConnectorType, OmniConnector } from "../../OmniConnector";
7
+ import { ConnectorType, OmniConnector } from "../../core/OmniConnector";
8
8
  import { HotConnector } from "../../HotConnector";
9
- import { OmniWallet } from "../../OmniWallet";
9
+ import { OmniWallet } from "../../core/OmniWallet";
10
10
  import { ImageView } from "../uikit/image";
11
11
 
12
12
  import { WalletType } from "../../core/chains";
@@ -3,7 +3,7 @@ import { observer } from "mobx-react-lite";
3
3
  import styled from "styled-components";
4
4
 
5
5
  import { HotConnector } from "../../HotConnector";
6
- import { OmniWallet } from "../../OmniWallet";
6
+ import { OmniWallet } from "../../core/OmniWallet";
7
7
 
8
8
  import { Network, OmniToken } from "../../core/chains";
9
9
  import { formatter } from "../../core/utils";
@@ -44,7 +44,7 @@ export const SelectTokenPopup = observer(({ hot, initialChain, onClose, onSelect
44
44
  });
45
45
 
46
46
  const sorted = Object.values(chains).sort((a, b) => {
47
- if (a.chain === Network.Hot) return -1;
47
+ if (a.chain === Network.Omni) return -1;
48
48
  return b.balance - a.balance;
49
49
  });
50
50
 
@@ -95,7 +95,7 @@ export const SelectTokenPopup = observer(({ hot, initialChain, onClose, onSelect
95
95
  <SearchInput type="text" placeholder="Search token" onChange={(e) => setSearch(e.target.value)} />
96
96
  {hot.walletsTokens
97
97
  .filter(({ token, balance }) => {
98
- if (token.chain !== Network.Hot) return false;
98
+ if (token.chain !== Network.Omni) return false;
99
99
  if (token.float(balance) < 0.0001) return false;
100
100
  if (!token.symbol.toLowerCase().includes(search.toLowerCase())) return false;
101
101
  used.add(token.address);
@@ -6,7 +6,7 @@ import { formatter } from "../../core/utils";
6
6
  import { Token } from "../../core/token";
7
7
 
8
8
  import { HotConnector } from "../../HotConnector";
9
- import { OmniWallet } from "../../OmniWallet";
9
+ import { OmniWallet } from "../../core/OmniWallet";
10
10
  import { ImageView } from "../uikit/image";
11
11
 
12
12
  export const TokenIcon = observer(({ token, wallet, withoutChain, size = 40 }: { token: Token; wallet?: OmniWallet; withoutChain?: boolean; size?: number }) => {
@@ -1,5 +1,5 @@
1
1
  import React, { useState } from "react";
2
- import { OmniWallet } from "../../OmniWallet";
2
+ import { OmniWallet } from "../../core/OmniWallet";
3
3
  import Popup, { present } from "../Popup";
4
4
  import { PopupButton } from "../styles";
5
5
 
@@ -1,8 +1,8 @@
1
1
  import { observer } from "mobx-react-lite";
2
2
 
3
- import { OmniWallet } from "../../OmniWallet";
3
+ import { OmniWallet } from "../../core/OmniWallet";
4
4
  import { HotConnector } from "../../HotConnector";
5
- import { ConnectorType, OmniConnector } from "../../OmniConnector";
5
+ import { ConnectorType, OmniConnector } from "../../core/OmniConnector";
6
6
 
7
7
  import { formatter } from "../../core/utils";
8
8
  import { WalletType } from "../../core";
@@ -1,7 +1,7 @@
1
1
  import { observer } from "mobx-react-lite";
2
2
 
3
3
  import Popup from "../Popup";
4
- import { OmniConnector } from "../../OmniConnector";
4
+ import { OmniConnector } from "../../core/OmniConnector";
5
5
  import { PopupButton } from "../styles";
6
6
 
7
7
  interface LogoutPopupProps {
@@ -4,7 +4,7 @@ import QRCodeStyling from "qr-code-styling";
4
4
  import styled from "styled-components";
5
5
 
6
6
  import Popup from "../Popup";
7
- import { WC_ICON } from "../../OmniConnector";
7
+ import { WC_ICON } from "../../core/OmniConnector";
8
8
 
9
9
  interface WCPopupProps {
10
10
  title: string;
@@ -2,8 +2,8 @@ import { useState } from "react";
2
2
  import { observer } from "mobx-react-lite";
3
3
 
4
4
  import { ImageView } from "../uikit/image";
5
- import { OmniWallet } from "../../OmniWallet";
6
- import { OmniConnector, OmniConnectorOption } from "../../OmniConnector";
5
+ import { OmniWallet } from "../../core/OmniWallet";
6
+ import { OmniConnector, OmniConnectorOption } from "../../core/OmniConnector";
7
7
  import { PopupButton, PopupOption, PopupOptionInfo } from "../styles";
8
8
  import { WCPopup } from "./WCPopup";
9
9
  import Popup from "../Popup";
@@ -3,7 +3,7 @@ import QRCodeStyling from "qr-code-styling";
3
3
  import { observer } from "mobx-react-lite";
4
4
  import styled from "styled-components";
5
5
 
6
- import { BridgeReview } from "../../exchange";
6
+ import { BridgeReview } from "../../core/exchange";
7
7
  import { PopupButton } from "../styles";
8
8
 
9
9
  const DepositQR = observer(({ review, onConfirm, onCancel }: { review: BridgeReview; onConfirm: () => void; onCancel: () => void }) => {
@@ -5,22 +5,20 @@ import styled from "styled-components";
5
5
  import { WalletIcon } from "../icons/wallet";
6
6
  import { PopupOption, PopupOptionInfo } from "../styles";
7
7
  import { Commitment, Intents } from "../../core";
8
- import { Recipient } from "../../core/recipient";
9
8
  import { Token } from "../../core/token";
10
9
 
11
- import { TokenCard } from "../bridge/TokenCard";
12
- import { BridgeReview } from "../../exchange";
13
- import { openConnector } from "../router";
10
+ import { BridgeReview } from "../../core/exchange";
11
+ import { OmniWallet } from "../../core/OmniWallet";
12
+ import { formatter } from "../../core/utils";
14
13
 
15
- import { OmniWallet } from "../../OmniWallet";
14
+ import { openConnector } from "../router";
15
+ import { TokenCard } from "../bridge/TokenCard";
16
16
  import { HotConnector } from "../../HotConnector";
17
- import Popup from "../Popup";
18
-
19
- import { Loader } from "../uikit/loader";
20
17
  import { HorizontalStepper } from "../uikit/Stepper";
21
18
  import { ActionButton } from "../uikit/button";
22
19
  import { H6, PSmall } from "../uikit/text";
23
- import { serializeError } from "../utils";
20
+ import { Loader } from "../uikit/loader";
21
+ import Popup from "../Popup";
24
22
 
25
23
  interface PaymentProps {
26
24
  onReject: (message: string) => void;
@@ -78,7 +76,7 @@ export const Payment = observer(({ connector, intents, title = "Payment", allowe
78
76
  const insurance = (needAmount * BigInt(Math.floor(PAY_SLIPPAGE * 1000))) / BigInt(1000);
79
77
  const extra = connector.exchange.isDirectDeposit(from, payableToken) ? insurance : 0n;
80
78
  const review = await connector.exchange.reviewSwap({
81
- recipient: Recipient.fromWallet(intents.signer)!,
79
+ recipient: intents.signer!,
82
80
  amount: needAmount + extra,
83
81
  slippage: PAY_SLIPPAGE,
84
82
  sender: wallet,
@@ -118,7 +116,8 @@ export const Payment = observer(({ connector, intents, title = "Payment", allowe
118
116
  return;
119
117
  }
120
118
 
121
- const result = await connector.exchange.makeSwap(flow.review, { log: () => {} });
119
+ flow.review.logger = console;
120
+ const result = await connector.exchange.makeSwap(flow.review);
122
121
  await onConfirm({ depositQoute: result.review, processing: result.processing });
123
122
  setFlow({ loading: false, step: "success" });
124
123
  setTimeout(() => close(), 2000);
@@ -164,9 +163,9 @@ export const Payment = observer(({ connector, intents, title = "Payment", allowe
164
163
  {/* @ts-expect-error: dotlottie-wc is not typed */}
165
164
  <dotlottie-wc key="error" src={animations.failed} speed="1" style={{ width: 300, height: 300 }} mode="forward" loop autoplay></dotlottie-wc>
166
165
  <p style={{ fontSize: 24, marginTop: -32, fontWeight: "bold" }}>Transaction failed</p>
167
- <p style={{ fontSize: 14, width: "80%", textAlign: "center", overflowY: "auto", lineBreak: "anywhere" }}>{serializeError(flow.error)}</p>
166
+ <p style={{ fontSize: 14, width: "80%", textAlign: "center", overflowY: "auto", lineBreak: "anywhere" }}>{formatter.serializeError(flow.error)}</p>
168
167
  </div>
169
- <ActionButton onClick={() => onReject(serializeError(flow.error))}>Close</ActionButton>
168
+ <ActionButton onClick={() => onReject(formatter.serializeError(flow.error))}>Close</ActionButton>
170
169
  </Popup>
171
170
  );
172
171
  }
@@ -10,9 +10,8 @@ import { formatter } from "../../core/utils";
10
10
  import { OmniToken } from "../../core/chains";
11
11
  import { tokens } from "../../core/tokens";
12
12
 
13
- import { openBridge, openConnector } from "../router";
14
13
  import { HotConnector } from "../../HotConnector";
15
-
14
+ import { openBridge, openConnector } from "../router";
16
15
  import { TokenCard, TokenIcon } from "../bridge/TokenCard";
17
16
  import { ImageView } from "../uikit/image";
18
17
  import { Loader } from "../uikit/loader";
package/src/ui/router.tsx CHANGED
@@ -1,8 +1,8 @@
1
1
  import { HotConnector } from "../HotConnector";
2
- import { OmniConnector } from "../OmniConnector";
3
- import { OmniWallet } from "../OmniWallet";
2
+ import { OmniConnector } from "../core/OmniConnector";
3
+ import { OmniWallet } from "../core/OmniWallet";
4
4
 
5
- import { BridgeReview } from "../exchange";
5
+ import { BridgeReview } from "../core/exchange";
6
6
  import { WalletType } from "../core/chains";
7
7
  import { Recipient } from "../core/recipient";
8
8
  import { Intents } from "../core/Intents";
@@ -1 +0,0 @@
1
- {"version":3,"file":"OmniConnector.js","sourceRoot":"","sources":["../src/OmniConnector.ts"],"names":[],"mappings":"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"}
@@ -1,61 +0,0 @@
1
- import { hex } from "@scure/base";
2
- import { Intents } from "./core/Intents";
3
- import { ReviewFee } from "./core/bridge";
4
- import { api } from "./core/api";
5
- export class OmniWallet {
6
- async depositNfts(nftIds, receiver) {
7
- // TODO
8
- }
9
- async withdrawNfts(nftIds, receiver) {
10
- // TODO
11
- }
12
- async getDepositNftsFee(nfts) {
13
- return new ReviewFee({ chain: -4 });
14
- }
15
- async transferNft(nftId, receiver) {
16
- // TODO
17
- }
18
- async getTranferNftFee(nftId, receiver) {
19
- return new ReviewFee({ chain: -4 });
20
- }
21
- async getNfts(onLoad) {
22
- // TODO
23
- }
24
- async auth(intents, options) {
25
- const authFn = async () => {
26
- const seed = hex.encode(new Uint8Array(window.crypto.getRandomValues(new Uint8Array(32))));
27
- const msgBuffer = new TextEncoder().encode(`${options?.domain || window.location.origin}_${seed}`);
28
- const nonce = await window.crypto.subtle.digest("SHA-256", new Uint8Array(msgBuffer));
29
- const signed = await this.signIntents(intents || [], { nonce: new Uint8Array(nonce), signerId: options?.signerId || this.omniAddress });
30
- if (options?.customAuth)
31
- return await options.customAuth(signed, seed);
32
- return (await api.auth(signed, seed));
33
- };
34
- if (typeof window === "undefined")
35
- return await authFn();
36
- const { openAuthPopup } = await import("./ui/connect/AuthPopup");
37
- return openAuthPopup(this, authFn);
38
- }
39
- async waitUntilBalance(need, receiver = this.omniAddress, attempts = 0) {
40
- if (attempts > 120)
41
- throw "Balance is not enough";
42
- const assets = Object.keys(need);
43
- const balances = await Intents.getIntentsBalances(assets, receiver);
44
- if (assets.every((asset) => (balances[asset] || 0n) >= (need[asset] || 0n)))
45
- return;
46
- await new Promise((resolve) => setTimeout(resolve, 1000));
47
- await this.waitUntilBalance(need, receiver, attempts + 1);
48
- }
49
- async getIntentsBalance(asset, receiver) {
50
- const balances = await Intents.getIntentsBalances([asset], receiver);
51
- return balances[asset] || 0n;
52
- }
53
- async getAssets() {
54
- if (!this.omniAddress)
55
- return {};
56
- const assets = await Intents.getIntentsAssets(this.omniAddress);
57
- const balances = await Intents.getIntentsBalances(assets, this.omniAddress);
58
- return balances;
59
- }
60
- }
61
- //# sourceMappingURL=OmniWallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OmniWallet.js","sourceRoot":"","sources":["../src/OmniWallet.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import { Commitment } from "./types";
2
- import { WalletType } from "./chains";
3
- import { OmniWallet } from "../OmniWallet";
4
- import { ReviewFee } from "@hot-labs/omni-sdk";
5
- import { Token } from "./token";
6
- export declare class Secp256k1Wallet extends OmniWallet {
7
- readonly privateKey: Buffer;
8
- readonly address: string;
9
- readonly publicKey: string;
10
- readonly omniAddress: string;
11
- readonly type = WalletType.EVM;
12
- readonly icon = "";
13
- constructor(privateKey: Buffer);
14
- transferFee(token: Token, receiver: string, amount: bigint): Promise<ReviewFee>;
15
- transfer(args: {
16
- token: Token;
17
- receiver: string;
18
- amount: bigint;
19
- comment?: string;
20
- gasFee?: ReviewFee;
21
- }): Promise<string>;
22
- fetchBalance(chain: number, address: string): Promise<bigint>;
23
- fetchBalances(chain?: number, whitelist?: string[]): Promise<Record<string, bigint>>;
24
- signIntents(intents: Record<string, any>[], options?: {
25
- deadline?: number;
26
- nonce?: Uint8Array;
27
- }): Promise<Commitment>;
28
- }
29
- export declare class Ed25519Wallet extends OmniWallet {
30
- readonly privateKey: Buffer;
31
- readonly omniAddress: string;
32
- readonly publicKey: string;
33
- readonly address: string;
34
- readonly type = WalletType.EVM;
35
- readonly icon = "";
36
- constructor(privateKey: Buffer, signerId?: string);
37
- transferFee(token: Token, receiver: string, amount: bigint): Promise<ReviewFee>;
38
- transfer(args: {
39
- token: Token;
40
- receiver: string;
41
- amount: bigint;
42
- comment?: string;
43
- gasFee?: ReviewFee;
44
- }): Promise<string>;
45
- fetchBalance(chain: number, address: string): Promise<bigint>;
46
- fetchBalances(chain?: number, whitelist?: string[]): Promise<Record<string, bigint>>;
47
- signIntents(intents: Record<string, any>[], options?: {
48
- deadline?: number;
49
- nonce?: Uint8Array;
50
- }): Promise<Commitment>;
51
- }