@hot-labs/kit 1.0.56 → 1.1.0-beta.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 (214) hide show
  1. package/README.md +2 -9
  2. package/build/HotConnector.d.ts +6 -6
  3. package/build/HotConnector.js +18 -23
  4. package/build/HotConnector.js.map +1 -1
  5. package/build/OmniConnector.d.ts +4 -0
  6. package/build/OmniConnector.js +5 -5
  7. package/build/OmniConnector.js.map +1 -1
  8. package/build/OmniWallet.d.ts +10 -17
  9. package/build/OmniWallet.js +14 -19
  10. package/build/OmniWallet.js.map +1 -1
  11. package/build/core/Intents.d.ts +23 -39
  12. package/build/core/Intents.js +104 -115
  13. package/build/core/Intents.js.map +1 -1
  14. package/build/core/api.d.ts +1 -0
  15. package/build/core/api.js +10 -2
  16. package/build/core/api.js.map +1 -1
  17. package/build/core/bridge.js +1 -1
  18. package/build/core/bridge.js.map +1 -1
  19. package/build/core/chains.js +1 -1
  20. package/build/core/chains.js.map +1 -1
  21. package/build/core/index.d.ts +1 -1
  22. package/build/core/index.js +1 -1
  23. package/build/core/index.js.map +1 -1
  24. package/build/core/types.d.ts +17 -0
  25. package/build/core/utils.d.ts +1 -0
  26. package/build/core/utils.js +10 -0
  27. package/build/core/utils.js.map +1 -1
  28. package/build/cosmos/connector.js +2 -2
  29. package/build/cosmos/connector.js.map +1 -1
  30. package/build/cosmos/wallet.d.ts +2 -4
  31. package/build/cosmos/wallet.js +3 -8
  32. package/build/cosmos/wallet.js.map +1 -1
  33. package/build/evm/connector.d.ts +2 -3
  34. package/build/evm/connector.js +7 -11
  35. package/build/evm/connector.js.map +1 -1
  36. package/build/evm/injected.js +3 -3
  37. package/build/evm/injected.js.map +1 -1
  38. package/build/evm/wallet.d.ts +2 -1
  39. package/build/evm/wallet.js +7 -5
  40. package/build/evm/wallet.js.map +1 -1
  41. package/build/exchange.d.ts +4 -1
  42. package/build/exchange.js +21 -20
  43. package/build/exchange.js.map +1 -1
  44. package/build/hot-wallet/google.js +10 -5
  45. package/build/hot-wallet/google.js.map +1 -1
  46. package/build/hot-wallet/iframe.d.ts +36 -3
  47. package/build/hot-wallet/iframe.js +134 -27
  48. package/build/hot-wallet/iframe.js.map +1 -1
  49. package/build/hot-wallet/proxy.d.ts +8 -0
  50. package/build/hot-wallet/proxy.js +45 -0
  51. package/build/hot-wallet/proxy.js.map +1 -0
  52. package/build/index.d.ts +1 -0
  53. package/build/index.js +1 -0
  54. package/build/index.js.map +1 -1
  55. package/build/near/connector.js +2 -2
  56. package/build/near/connector.js.map +1 -1
  57. package/build/{core/nearRpc.d.ts → near/rpc.d.ts} +0 -1
  58. package/build/{core/nearRpc.js → near/rpc.js} +5 -11
  59. package/build/near/rpc.js.map +1 -0
  60. package/build/near/wallet.d.ts +2 -4
  61. package/build/near/wallet.js +4 -9
  62. package/build/near/wallet.js.map +1 -1
  63. package/build/solana/{protocol.d.ts → WalletStandard.d.ts} +1 -1
  64. package/build/solana/{protocol.js → WalletStandard.js} +1 -1
  65. package/build/solana/WalletStandard.js.map +1 -0
  66. package/build/solana/connector.d.ts +1 -1
  67. package/build/solana/connector.js +11 -10
  68. package/build/solana/connector.js.map +1 -1
  69. package/build/solana/injected/account.js +1 -2
  70. package/build/solana/injected/account.js.map +1 -1
  71. package/build/solana/injected/index.js +16 -19
  72. package/build/solana/injected/index.js.map +1 -1
  73. package/build/solana/injected/solana-wallet.js.map +1 -1
  74. package/build/solana/wallet.d.ts +3 -5
  75. package/build/solana/wallet.js +3 -8
  76. package/build/solana/wallet.js.map +1 -1
  77. package/build/solana/{wallets.js → walletStandartList.js} +1 -1
  78. package/build/solana/walletStandartList.js.map +1 -0
  79. package/build/stellar/connector.d.ts +10 -6
  80. package/build/stellar/connector.js +38 -30
  81. package/build/stellar/connector.js.map +1 -1
  82. package/build/stellar/freigher.d.ts +46 -0
  83. package/build/stellar/freigher.js +110 -0
  84. package/build/stellar/freigher.js.map +1 -0
  85. package/build/stellar/{injected.d.ts → hotWallet.d.ts} +1 -6
  86. package/build/stellar/hotWallet.js +28 -0
  87. package/build/stellar/hotWallet.js.map +1 -0
  88. package/build/stellar/wallet.d.ts +10 -8
  89. package/build/stellar/wallet.js +12 -16
  90. package/build/stellar/wallet.js.map +1 -1
  91. package/build/ton/connector.d.ts +0 -1
  92. package/build/ton/connector.js +7 -7
  93. package/build/ton/connector.js.map +1 -1
  94. package/build/ton/injected.js +6 -6
  95. package/build/ton/injected.js.map +1 -1
  96. package/build/ton/wallet.d.ts +2 -3
  97. package/build/ton/wallet.js +3 -4
  98. package/build/ton/wallet.js.map +1 -1
  99. package/build/tron/connector.d.ts +51 -0
  100. package/build/tron/connector.js +65 -0
  101. package/build/tron/connector.js.map +1 -0
  102. package/build/tron/index.d.ts +6 -0
  103. package/build/tron/index.js +5 -0
  104. package/build/tron/index.js.map +1 -0
  105. package/build/tron/wallet.d.ts +52 -0
  106. package/build/tron/wallet.js +122 -0
  107. package/build/tron/wallet.js.map +1 -0
  108. package/build/ui/Popup.js +1 -1
  109. package/build/ui/Popup.js.map +1 -1
  110. package/build/ui/connect/AuthPopup.js +1 -1
  111. package/build/ui/connect/AuthPopup.js.map +1 -1
  112. package/build/ui/connect/ConnectWallet.d.ts +2 -1
  113. package/build/ui/connect/ConnectWallet.js +2 -2
  114. package/build/ui/connect/ConnectWallet.js.map +1 -1
  115. package/build/ui/icons/arrow-right.js +1 -1
  116. package/build/ui/icons/arrow-right.js.map +1 -1
  117. package/build/ui/icons/close.js +1 -1
  118. package/build/ui/icons/close.js.map +1 -1
  119. package/build/ui/icons/exchange.js +1 -1
  120. package/build/ui/icons/exchange.js.map +1 -1
  121. package/build/ui/icons/logout.js +1 -1
  122. package/build/ui/icons/logout.js.map +1 -1
  123. package/build/ui/icons/pending.js +1 -1
  124. package/build/ui/icons/pending.js.map +1 -1
  125. package/build/ui/icons/qr.js +1 -1
  126. package/build/ui/icons/qr.js.map +1 -1
  127. package/build/ui/icons/search.js +1 -1
  128. package/build/ui/icons/search.js.map +1 -1
  129. package/build/ui/icons/switch.js +1 -1
  130. package/build/ui/icons/switch.js.map +1 -1
  131. package/build/ui/icons/wallet.js +1 -1
  132. package/build/ui/icons/wallet.js.map +1 -1
  133. package/build/ui/payment/Bridge.js +7 -2
  134. package/build/ui/payment/Bridge.js.map +1 -1
  135. package/build/ui/payment/Payment.d.ts +16 -8
  136. package/build/ui/payment/Payment.js +116 -21
  137. package/build/ui/payment/Payment.js.map +1 -1
  138. package/build/ui/payment/Profile.js +1 -1
  139. package/build/ui/payment/Profile.js.map +1 -1
  140. package/build/ui/payment/SelectToken.js +1 -1
  141. package/build/ui/payment/SelectToken.js.map +1 -1
  142. package/build/ui/payment/TokenCard.js +1 -1
  143. package/build/ui/payment/TokenCard.js.map +1 -1
  144. package/build/ui/router.d.ts +2 -1
  145. package/build/ui/router.js +2 -2
  146. package/build/ui/router.js.map +1 -1
  147. package/build/ui/styles.js +4 -3
  148. package/build/ui/styles.js.map +1 -1
  149. package/package.json +10 -5
  150. package/src/HotConnector.ts +21 -29
  151. package/src/OmniConnector.ts +9 -9
  152. package/src/OmniWallet.ts +24 -25
  153. package/src/core/Intents.ts +123 -139
  154. package/src/core/api.ts +13 -2
  155. package/src/core/bridge.ts +3 -2
  156. package/src/core/chains.ts +1 -1
  157. package/src/core/index.ts +1 -1
  158. package/src/core/types.ts +21 -0
  159. package/src/core/utils.ts +11 -0
  160. package/src/cosmos/connector.ts +2 -2
  161. package/src/cosmos/wallet.ts +3 -7
  162. package/src/evm/connector.ts +9 -12
  163. package/src/evm/injected.ts +3 -3
  164. package/src/evm/wallet.ts +9 -6
  165. package/src/exchange.ts +20 -20
  166. package/src/hot-wallet/google.ts +12 -5
  167. package/src/hot-wallet/iframe.ts +151 -24
  168. package/src/hot-wallet/proxy.ts +54 -0
  169. package/src/index.ts +2 -0
  170. package/src/near/connector.ts +2 -2
  171. package/src/{core/nearRpc.ts → near/rpc.ts} +4 -11
  172. package/src/near/wallet.ts +4 -9
  173. package/src/solana/{protocol.ts → WalletStandard.ts} +2 -4
  174. package/src/solana/connector.ts +11 -10
  175. package/src/solana/injected/account.ts +1 -2
  176. package/src/solana/injected/index.ts +15 -18
  177. package/src/solana/injected/solana-wallet.ts +6 -6
  178. package/src/solana/wallet.ts +4 -8
  179. package/src/stellar/connector.ts +40 -32
  180. package/src/stellar/freigher.ts +119 -0
  181. package/src/stellar/{injected.ts → hotWallet.ts} +8 -12
  182. package/src/stellar/wallet.ts +17 -17
  183. package/src/ton/connector.ts +15 -15
  184. package/src/ton/injected.ts +6 -6
  185. package/src/ton/wallet.ts +3 -3
  186. package/src/tron/connector.ts +89 -0
  187. package/src/tron/index.ts +7 -0
  188. package/src/tron/wallet.ts +146 -0
  189. package/src/ui/Popup.tsx +7 -3
  190. package/src/ui/connect/AuthPopup.tsx +2 -1
  191. package/src/ui/connect/ConnectWallet.tsx +3 -2
  192. package/src/ui/icons/arrow-right.tsx +2 -2
  193. package/src/ui/icons/close.tsx +1 -1
  194. package/src/ui/icons/exchange.tsx +4 -4
  195. package/src/ui/icons/logout.tsx +6 -6
  196. package/src/ui/icons/pending.tsx +2 -4
  197. package/src/ui/icons/qr.tsx +1 -2
  198. package/src/ui/icons/search.tsx +4 -4
  199. package/src/ui/icons/switch.tsx +4 -4
  200. package/src/ui/icons/wallet.tsx +2 -4
  201. package/src/ui/payment/Bridge.tsx +9 -2
  202. package/src/ui/payment/Payment.tsx +259 -31
  203. package/src/ui/payment/Profile.tsx +10 -8
  204. package/src/ui/payment/SelectToken.tsx +1 -1
  205. package/src/ui/payment/TokenCard.tsx +1 -1
  206. package/src/ui/router.tsx +5 -6
  207. package/src/ui/styles.ts +4 -3
  208. package/build/core/nearRpc.js.map +0 -1
  209. package/build/solana/protocol.js.map +0 -1
  210. package/build/solana/wallets.js.map +0 -1
  211. package/build/stellar/injected.js +0 -32
  212. package/build/stellar/injected.js.map +0 -1
  213. /package/build/solana/{wallets.d.ts → walletStandartList.d.ts} +0 -0
  214. /package/src/solana/{wallets.ts → walletStandartList.ts} +0 -0
@@ -1,54 +1,282 @@
1
1
  import { observer } from "mobx-react-lite";
2
- import { useEffect } from "react";
2
+ import { useState } from "react";
3
3
 
4
- import { HotConnector } from "../../HotConnector";
5
- import { openBridge, openConnector } from "../router";
4
+ import { Commitment, formatter, Intents } from "../../core";
6
5
  import { Recipient } from "../../core/recipient";
7
- import { BridgeReview } from "../../exchange";
8
- import { OmniWallet } from "../../OmniWallet";
9
6
  import { Network } from "../../core/chains";
10
7
  import { Token } from "../../core/token";
8
+ import { api } from "../../core/api";
9
+
10
+ import { BridgeReview } from "../../exchange";
11
+ import { openConnector } from "../router";
12
+
13
+ import { OmniWallet } from "../../OmniWallet";
14
+ import { HotConnector } from "../../HotConnector";
15
+ import { Connector } from "../connect/ConnectWallet";
11
16
  import Popup from "../Popup";
12
17
 
13
- import { TokenCard } from "./TokenCard";
14
- import { PopupOption, PopupOptionInfo } from "../styles";
18
+ import { TokenCard, TokenIcon } from "./TokenCard";
19
+ import { PopupButton, PopupOption, PopupOptionInfo } from "../styles";
15
20
  import { WalletIcon } from "../icons/wallet";
21
+ import { Loader } from "./Profile";
16
22
 
17
23
  interface PaymentProps {
24
+ intents: Intents;
18
25
  connector: HotConnector;
19
- token: Token;
20
- amount: bigint;
21
- recipient?: Recipient;
22
26
  onClose: () => void;
23
- onProcess: (task: Promise<BridgeReview>) => void;
27
+ onConfirm: (task: Promise<string>) => void;
28
+ }
29
+
30
+ import React from "react";
31
+
32
+ const animations = {
33
+ success: "https://hex.exchange/success.json",
34
+ failed: "https://hex.exchange/error.json",
35
+ loading: "https://hex.exchange/loading.json",
36
+ };
37
+
38
+ interface Step {
39
+ label: string;
40
+ completed?: boolean;
41
+ active?: boolean;
42
+ }
43
+
44
+ interface StepperProps {
45
+ steps: Step[];
46
+ currentStep: number;
47
+ style?: React.CSSProperties;
24
48
  }
25
49
 
26
- export const Payment = observer(({ connector, recipient, token: need, amount: needAmount, onProcess, onClose }: PaymentProps) => {
27
- const title = `Need ${need.readable(needAmount)} ${need.symbol}`;
50
+ export const HorizontalStepper: React.FC<StepperProps> = ({ steps, currentStep, style }) => {
51
+ return (
52
+ <div style={{ padding: "0 32px 32px", display: "flex", alignItems: "center", width: "100%", margin: "16px 0", ...style }}>
53
+ {steps.map((step, idx) => {
54
+ const isCompleted = idx < currentStep;
55
+ const isActive = idx === currentStep;
56
+
57
+ return (
58
+ <React.Fragment key={idx}>
59
+ <div style={{ display: "flex", flexDirection: "column", alignItems: "center" }}>
60
+ <div
61
+ style={{
62
+ width: 16,
63
+ height: 16,
64
+ position: "relative",
65
+ borderRadius: "50%",
66
+ border: isActive || isCompleted ? "2px solid #ffffff" : "2px solid #a0a0a0",
67
+ background: isCompleted ? "#ffffff" : "#333",
68
+ display: "flex",
69
+ alignItems: "center",
70
+ justifyContent: "center",
71
+ transition: "all 0.2s",
72
+ zIndex: 1,
73
+ }}
74
+ >
75
+ <p style={{ fontSize: 16, color: "#fff", opacity: isActive ? 1 : 0.5, position: "absolute", top: 24, width: 100 }}>{step.label}</p>
76
+ </div>
77
+ </div>
78
+
79
+ {idx < steps.length - 1 && <div style={{ transition: "background 0.2s", flex: 1, height: 2, background: idx < currentStep ? "#ffffff" : "#333", margin: "0 6px", borderRadius: 24, minWidth: 24 }} />}
80
+ </React.Fragment>
81
+ );
82
+ })}
83
+ </div>
84
+ );
85
+ };
86
+
87
+ export const Payment = observer(({ connector, intents, onClose, onConfirm }: PaymentProps) => {
88
+ useState(() => {
89
+ fetch(animations.loading);
90
+ fetch(animations.success);
91
+ fetch(animations.failed);
92
+ });
93
+
94
+ const [flow, setFlow] = useState<{
95
+ token?: Token;
96
+ wallet?: OmniWallet;
97
+ commitment?: Commitment;
98
+ review?: BridgeReview;
99
+
100
+ step?: "selectToken" | "sign" | "transfer" | "success" | "error" | "loading";
101
+ success?: boolean;
102
+ loading?: boolean;
103
+ error?: any;
104
+ } | null>(null);
105
+
106
+ const need = connector.omni(intents.need.keys().next().value!);
107
+ const needAmount = intents.need.values().next().value || 0n;
108
+ const title = `Payment ${need.readable(needAmount)} ${need.symbol}`;
109
+
28
110
  const selectToken = async (from: Token, wallet?: OmniWallet) => {
29
- onProcess(
30
- openBridge(connector, {
31
- sender: wallet,
32
- autoClose: true,
33
- type: "exactOut",
34
- recipient: recipient || Recipient.fromWallet(connector.priorityWallet!),
35
- readonlyTo: recipient ? true : false,
36
- amount: need.float(needAmount),
37
- readonlyAmount: true,
38
- title: title,
39
- from: from,
40
- to: need,
41
- })
42
- );
111
+ if (!wallet) return;
112
+
113
+ setFlow({ token: from, wallet, review: undefined, step: "sign" });
114
+ const review = await connector.exchange.reviewSwap({
115
+ recipient: Recipient.fromWallet(wallet)!,
116
+ amount: needAmount,
117
+ sender: wallet,
118
+ refund: wallet,
119
+ slippage: 0.005,
120
+ type: "exactOut",
121
+ to: need,
122
+ from,
123
+ });
124
+
125
+ setFlow({ token: from, wallet, review, step: "sign" });
126
+ };
127
+
128
+ const signStep = async () => {
129
+ try {
130
+ setFlow((t) => (t ? { ...t, step: "sign", loading: true } : null));
131
+ const commitment = await intents.attachWallet(flow!.wallet!).sign();
132
+ setFlow((t) => (t ? { ...t, step: "transfer", commitment, loading: false } : null));
133
+ } catch (error) {
134
+ console.error(error);
135
+ setFlow((t) => (t ? { ...t, step: "error", loading: false, error } : null));
136
+ throw error;
137
+ }
43
138
  };
44
139
 
45
- useEffect(() => {
46
- if (connector.wallets.length !== 0) return;
47
- openConnector(connector);
48
- }, [connector.wallets.length, connector]);
140
+ const confirmPaymentStep = async () => {
141
+ try {
142
+ const commitment = flow?.commitment;
143
+ if (!commitment) throw new Error("Commitment not found");
144
+ if (!flow?.review) throw new Error("Review not found");
145
+
146
+ setFlow((t) => (t ? { ...t, step: "loading" } : null));
147
+ const result = await connector.exchange.makeSwap(flow.review, { log: () => {} });
148
+
149
+ if (typeof result.review.qoute === "object") {
150
+ await api.pendingPayment(commitment, result.review.qoute.depositAddress!);
151
+ } else {
152
+ await Intents.publish([commitment]);
153
+ }
154
+
155
+ setFlow((t) => (t ? { ...t, step: "success", loading: false, success: true } : null));
156
+ } catch (error) {
157
+ console.error(error);
158
+ setFlow((t) => (t ? { ...t, step: "error", loading: false, error } : null));
159
+ throw error;
160
+ }
161
+ };
162
+
163
+ if (connector.wallets.length === 0) {
164
+ return <Connector hot={connector} onClose={onClose} title={title} />;
165
+ }
166
+
167
+ if (flow?.step === "success") {
168
+ return (
169
+ <Popup onClose={onClose} header={<p>{title}</p>}>
170
+ <div style={{ width: "100%", height: 400, display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column" }}>
171
+ {/* @ts-expect-error: dotlottie-wc is not typed */}
172
+ <dotlottie-wc key="success" src={animations.success} speed="1" style={{ width: 300, height: 300 }} mode="forward" loop autoplay></dotlottie-wc>
173
+ <p style={{ fontSize: 24, marginTop: -32, fontWeight: "bold" }}>Payment successful</p>
174
+ </div>
175
+ <PopupButton style={{ marginTop: "auto" }} onClick={() => onClose()}>
176
+ Continue
177
+ </PopupButton>
178
+ </Popup>
179
+ );
180
+ }
181
+
182
+ if (flow?.step === "loading") {
183
+ return (
184
+ <Popup onClose={onClose} header={<p>{title}</p>}>
185
+ <div style={{ width: "100%", height: 400, display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column" }}>
186
+ {/* @ts-expect-error: dotlottie-wc is not typed */}
187
+ <dotlottie-wc key="loading" src={animations.loading} speed="1" style={{ marginTop: -64, width: 300, height: 300 }} mode="forward" loop autoplay></dotlottie-wc>
188
+ <p style={{ fontSize: 24, marginTop: -16, fontWeight: "bold" }}>Processing payment</p>
189
+ </div>
190
+ </Popup>
191
+ );
192
+ }
193
+
194
+ if (flow?.step === "error") {
195
+ return (
196
+ <Popup onClose={onClose} header={<p>{title}</p>}>
197
+ <div style={{ width: "100%", height: 400, gap: 8, display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column" }}>
198
+ {/* @ts-expect-error: dotlottie-wc is not typed */}
199
+ <dotlottie-wc key="error" src={animations.failed} speed="1" style={{ width: 300, height: 300 }} mode="forward" loop autoplay></dotlottie-wc>
200
+ <p style={{ fontSize: 24, marginTop: -32, fontWeight: "bold" }}>Payment failed</p>
201
+ <p style={{ fontSize: 14 }}>{flow.error?.toString?.() ?? "Unknown error"}</p>
202
+ </div>
203
+ <PopupButton onClick={() => onClose()}>Close</PopupButton>
204
+ </Popup>
205
+ );
206
+ }
207
+
208
+ if (flow?.step === "transfer") {
209
+ if (!flow.token) return null;
210
+ if (!flow.wallet) return null;
211
+ return (
212
+ <Popup onClose={onClose} header={<p>{title}</p>}>
213
+ <HorizontalStepper steps={[{ label: "Select" }, { label: "Review" }, { label: "Confirm" }]} currentStep={2} />
214
+
215
+ <PopupOption style={{ marginTop: 8 }}>
216
+ <TokenIcon token={flow.token} wallet={flow.wallet} />
217
+
218
+ <div style={{ marginTop: -2, textAlign: "left" }}>
219
+ <p style={{ textAlign: "left", fontSize: 20, fontWeight: "bold" }}>{flow.token.symbol}</p>
220
+ <p style={{ textAlign: "left", fontSize: 14, color: "#c6c6c6" }}>${formatter.amount(flow.token.usd)}</p>
221
+ </div>
222
+
223
+ {flow.review ? (
224
+ <div style={{ paddingRight: 4, marginLeft: "auto", alignItems: "flex-end" }}>
225
+ <p style={{ textAlign: "right", fontSize: 20 }}>{flow.token.readable(flow.review?.amountIn ?? 0)}</p>
226
+ <p style={{ textAlign: "right", fontSize: 14, color: "#c6c6c6" }}>${flow.token.readable(flow.review?.amountIn ?? 0n, flow.token.usd)}</p>
227
+ </div>
228
+ ) : (
229
+ <div style={{ paddingRight: 4, marginLeft: "auto", alignItems: "flex-end" }}>
230
+ <Loader />
231
+ </div>
232
+ )}
233
+ </PopupOption>
234
+
235
+ <PopupButton style={{ marginTop: 24 }} disabled={!flow?.review} onClick={confirmPaymentStep}>
236
+ {flow?.loading ? "Confirming..." : "Confirm payment"}
237
+ </PopupButton>
238
+ </Popup>
239
+ );
240
+ }
241
+
242
+ if (flow?.step === "sign") {
243
+ if (!flow.token) return null;
244
+ if (!flow.wallet) return null;
245
+ return (
246
+ <Popup onClose={onClose} header={<p>{title}</p>}>
247
+ <HorizontalStepper steps={[{ label: "Select" }, { label: "Review" }, { label: "Confirm" }]} currentStep={1} />
248
+
249
+ <PopupOption style={{ marginTop: 8 }}>
250
+ <TokenIcon token={flow.token} wallet={flow.wallet} />
251
+
252
+ <div style={{ marginTop: -2, textAlign: "left" }}>
253
+ <p style={{ textAlign: "left", fontSize: 20, fontWeight: "bold" }}>{flow.token.symbol}</p>
254
+ <p style={{ textAlign: "left", fontSize: 14, color: "#c6c6c6" }}>${formatter.amount(flow.token.usd)}</p>
255
+ </div>
256
+
257
+ {flow.review ? (
258
+ <div style={{ paddingRight: 4, marginLeft: "auto", alignItems: "flex-end" }}>
259
+ <p style={{ textAlign: "right", fontSize: 20 }}>{flow.token.readable(flow.review?.amountIn ?? 0)}</p>
260
+ <p style={{ textAlign: "right", fontSize: 14, color: "#c6c6c6" }}>${flow.token.readable(flow.review?.amountIn ?? 0n, flow.token.usd)}</p>
261
+ </div>
262
+ ) : (
263
+ <div style={{ paddingRight: 4, marginLeft: "auto", alignItems: "flex-end" }}>
264
+ <Loader />
265
+ </div>
266
+ )}
267
+ </PopupOption>
268
+
269
+ <PopupButton style={{ marginTop: 24 }} disabled={!flow?.review} onClick={signStep}>
270
+ {flow?.loading ? "Signing..." : flow?.review ? "Sign review" : "Quoting..."}
271
+ </PopupButton>
272
+ </Popup>
273
+ );
274
+ }
49
275
 
50
276
  return (
51
277
  <Popup onClose={onClose} header={<p>{title}</p>}>
278
+ <HorizontalStepper steps={[{ label: "Select" }, { label: "Review" }, { label: "Confirm" }]} currentStep={0} />
279
+
52
280
  {connector.walletsTokens.map(({ token, wallet, balance }) => {
53
281
  if (token.id === need.id) return null;
54
282
  const availableBalance = token.float(balance) - token.reserve;
@@ -1,6 +1,6 @@
1
1
  import { observer } from "mobx-react-lite";
2
2
  import styled from "styled-components";
3
- import { useEffect, useState } from "react";
3
+ import { useEffect } from "react";
4
4
 
5
5
  import { LogoutIcon } from "../icons/logout";
6
6
  import { openBridge, openConnector } from "../router";
@@ -72,13 +72,15 @@ export const Profile = observer(({ hot, onClose }: { hot: HotConnector; onClose:
72
72
  return (
73
73
  <Popup onClose={onClose}>
74
74
  <div style={{ display: "flex", flexWrap: "wrap", width: "100%", gap: 8 }}>
75
- {hot.wallets.map((wallet) => (
76
- <WalletCard onClick={() => wallet.disconnect()}>
77
- <ImageView src={wallet.icon} alt={wallet.connector.name} size={20} />
78
- <div>{formatter.truncateAddress(wallet.address, 8)}</div>
79
- <LogoutIcon width={20} height={20} />
80
- </WalletCard>
81
- ))}
75
+ {hot.connectors.map((connector) =>
76
+ connector.wallets.map((wallet) => (
77
+ <WalletCard onClick={() => connector.disconnect()}>
78
+ <ImageView src={wallet.icon} alt={connector.name} size={20} />
79
+ <div>{formatter.truncateAddress(wallet.address, 8)}</div>
80
+ <LogoutIcon width={20} height={20} />
81
+ </WalletCard>
82
+ ))
83
+ )}
82
84
 
83
85
  {hot.wallets.length < 6 && (
84
86
  <WalletCard style={{ paddingLeft: 12, paddingRight: 12 }} onClick={() => openConnector(hot)}>
@@ -7,11 +7,11 @@ import { Token } from "../../core/token";
7
7
  import { HotConnector } from "../../HotConnector";
8
8
  import { OmniWallet } from "../../OmniWallet";
9
9
  import { Network, OmniToken } from "../../core/chains";
10
+ import { tokens } from "../../core/tokens";
10
11
  import { PopupOption } from "../styles";
11
12
  import Popup from "../Popup";
12
13
 
13
14
  import { TokenCard, ImageView } from "./TokenCard";
14
- import { tokens } from "../../core/tokens";
15
15
 
16
16
  interface SelectTokenPopupProps {
17
17
  hot: HotConnector;
@@ -58,7 +58,7 @@ export const TokenIcon = observer(({ token, wallet }: { token: Token; wallet?: O
58
58
  <div style={{ position: "relative", width: 40, height: 40 }}>
59
59
  <ImageView src={token.icon} alt={token.symbol} size={40} />
60
60
  <ImageView src={token.chainIcon} alt={token.symbol} size={14} style={{ position: "absolute", bottom: 0, right: 0 }} />
61
- {token.chain === -4 && wallet?.type && <ImageView src={wallet.icon} alt={chains.get(wallet.type)?.name || ""} size={14} style={{ position: "absolute", bottom: 0, left: 0 }} />}
61
+ {token.chain === -4 && wallet?.type && <ImageView src={wallet.icon} alt={chains.getByType(wallet.type)?.[0]?.name || ""} size={14} style={{ position: "absolute", bottom: 0, left: 0 }} />}
62
62
  </div>
63
63
  );
64
64
  });
package/src/ui/router.tsx CHANGED
@@ -5,6 +5,7 @@ import { Token } from "../core/token";
5
5
  import { OmniWallet } from "../OmniWallet";
6
6
  import { WalletType } from "../core/chains";
7
7
  import { Recipient } from "../core/recipient";
8
+ import { Intents } from "../core/Intents";
8
9
 
9
10
  import { present } from "./Popup";
10
11
  import { Payment } from "./payment/Payment";
@@ -19,16 +20,14 @@ import { SelectSender } from "./payment/SelectSender";
19
20
  import { SelectRecipient } from "./payment/SelectRecipient";
20
21
  import { WCRequest } from "./connect/WCRequest";
21
22
 
22
- export const openPayment = (connector: HotConnector, token: Token, amount: bigint, recipient?: Recipient) => {
23
- return new Promise<Promise<BridgeReview>>((resolve, reject) => {
23
+ export const openPayment = (connector: HotConnector, intents: Intents) => {
24
+ return new Promise<Promise<string>>((resolve, reject) => {
24
25
  present((close) => (
25
26
  <Payment //
26
27
  onClose={() => (close(), reject(new Error("User rejected")))}
27
- onProcess={(task) => (close(), resolve(task))}
28
+ onConfirm={resolve}
28
29
  connector={connector}
29
- token={token}
30
- amount={amount}
31
- recipient={recipient}
30
+ intents={intents}
32
31
  />
33
32
  ));
34
33
  });
package/src/ui/styles.ts CHANGED
@@ -169,17 +169,18 @@ export const Footer = styled.div`
169
169
  `;
170
170
 
171
171
  export const GetWalletLink = styled.a`
172
- color: rgba(255, 255, 255, 0.5);
172
+ color: #fff;
173
173
  text-align: center;
174
174
  font-size: 16px;
175
175
  font-style: normal;
176
176
  font-weight: 500;
177
177
  margin-left: auto;
178
178
  text-decoration: none;
179
- transition: color 0.2s ease-in-out;
179
+ transition: opacity 0.2s ease-in-out;
180
+ opacity: 0.8;
180
181
 
181
182
  &:hover {
182
- color: rgba(255, 255, 255, 1);
183
+ opacity: 1;
183
184
  }
184
185
  `;
185
186
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"nearRpc.js","sourceRoot":"","sources":["../../src/core/nearRpc.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/solana/protocol.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../src/solana/wallets.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import { ModuleType, WalletNetwork } from "@creit.tech/stellar-wallets-kit";
2
- import { requestHot } from "../hot-wallet/iframe";
3
- export const HOTWALLET_ID = "hot-wallet";
4
- /**
5
- * **IMPORTANT**: This module requires that you have a "global" and a "Buffer" polyfill in your app, if not provided then this module will break your app.
6
- */
7
- export class HotWalletModule {
8
- moduleType = ModuleType.HOT_WALLET;
9
- productId = HOTWALLET_ID;
10
- productName = "HOT Wallet";
11
- productUrl = "https://hot-labs.org/wallet";
12
- productIcon = "https://storage.herewallet.app/logo.png";
13
- async isAvailable() {
14
- return true;
15
- }
16
- async getAddress() {
17
- return await requestHot("stellar:getAddress", {});
18
- }
19
- async signTransaction(xdr, opts) {
20
- return await requestHot("stellar:signTransaction", { xdr, accountToSign: opts?.address });
21
- }
22
- async signAuthEntry(authEntry, opts) {
23
- return await requestHot("stellar:signAuthEntry", { authEntry, accountToSign: opts?.address });
24
- }
25
- async signMessage(message, opts) {
26
- return await requestHot("stellar:signMessage", { message, accountToSign: opts?.address });
27
- }
28
- async getNetwork() {
29
- return { network: "mainnet", networkPassphrase: WalletNetwork.PUBLIC };
30
- }
31
- }
32
- //# sourceMappingURL=injected.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"injected.js","sourceRoot":"","sources":["../../src/stellar/injected.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,UAAU,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAW,YAAY,CAAC;AAEjD;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B,UAAU,GAAe,UAAU,CAAC,UAAU,CAAC;IAC/C,SAAS,GAAW,YAAY,CAAC;IACjC,WAAW,GAAW,YAAY,CAAC;IACnC,UAAU,GAAW,6BAA6B,CAAC;IACnD,WAAW,GAAW,yCAAyC,CAAC;IAEhE,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,MAAM,UAAU,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,IAA2B;QAC5D,OAAO,MAAM,UAAU,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,IAA2B;QAChE,OAAO,MAAM,UAAU,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAA2B;QAC5D,OAAO,MAAM,UAAU,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;IACzE,CAAC;CACF"}