@hot-labs/kit 1.2.0-alpha.1 → 1.2.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/HotConnector.d.ts +104 -0
- package/build/HotConnector.js +306 -0
- package/build/HotConnector.js.map +1 -0
- package/build/OmniConnector.d.ts +85 -0
- package/build/OmniConnector.js +121 -0
- package/build/OmniConnector.js.map +1 -0
- package/build/OmniWallet.d.ts +42 -0
- package/build/OmniWallet.js +61 -0
- package/build/OmniWallet.js.map +1 -0
- package/build/activity.d.ts +18 -0
- package/build/activity.js +87 -0
- package/build/activity.js.map +1 -0
- package/build/core/Intents.d.ts +90 -0
- package/build/core/Intents.js +398 -0
- package/build/core/Intents.js.map +1 -0
- package/build/core/api.d.ts +32 -0
- package/build/core/api.js +75 -0
- package/build/core/api.js.map +1 -0
- package/build/core/bridge.d.ts +3 -0
- package/build/core/bridge.js +36 -0
- package/build/core/bridge.js.map +1 -0
- package/build/core/chains.d.ts +115 -0
- package/build/core/chains.js +381 -0
- package/build/core/chains.js.map +1 -0
- package/build/core/defaultTokens.d.ts +17 -0
- package/build/core/defaultTokens.js +1079 -0
- package/build/core/defaultTokens.js.map +1 -0
- package/build/core/events.d.ts +42 -0
- package/build/core/events.js +64 -0
- package/build/core/events.js.map +1 -0
- package/build/core/index.d.ts +10 -0
- package/build/core/index.js +11 -0
- package/build/core/index.js.map +1 -0
- package/build/core/nearRpc.d.ts +24 -0
- package/build/core/nearRpc.js +167 -0
- package/build/core/nearRpc.js.map +1 -0
- package/build/core/recipient.d.ts +10 -0
- package/build/core/recipient.js +40 -0
- package/build/core/recipient.js.map +1 -0
- package/build/core/token.d.ts +36 -0
- package/build/core/token.js +103 -0
- package/build/core/token.js.map +1 -0
- package/build/core/tokens.d.ts +14 -0
- package/build/core/tokens.js +59 -0
- package/build/core/tokens.js.map +1 -0
- package/build/core/types.d.ts +43 -0
- package/build/core/types.js +2 -0
- package/build/core/types.js.map +1 -0
- package/build/core/utils.d.ts +24 -0
- package/build/core/utils.js +150 -0
- package/build/core/utils.js.map +1 -0
- package/build/cosmos/connector.d.ts +36 -0
- package/build/cosmos/connector.js +215 -0
- package/build/cosmos/connector.js.map +1 -0
- package/build/cosmos/helpers.d.ts +2 -0
- package/build/cosmos/helpers.js +29 -0
- package/build/cosmos/helpers.js.map +1 -0
- package/build/cosmos/index.d.ts +6 -0
- package/build/cosmos/index.js +5 -0
- package/build/cosmos/index.js.map +1 -0
- package/build/cosmos/wallet.d.ts +28 -0
- package/build/cosmos/wallet.js +56 -0
- package/build/cosmos/wallet.js.map +1 -0
- package/build/defaults.d.ts +1 -0
- package/build/defaults.js +7 -0
- package/build/defaults.js.map +1 -0
- package/build/evm/abi.d.ts +17 -0
- package/build/evm/abi.js +38 -0
- package/build/evm/abi.js.map +1 -0
- package/build/evm/connector.d.ts +28 -0
- package/build/evm/connector.js +114 -0
- package/build/evm/connector.js.map +1 -0
- package/build/evm/index.d.ts +6 -0
- package/build/evm/index.js +5 -0
- package/build/evm/index.js.map +1 -0
- package/build/evm/injected.d.ts +1 -0
- package/build/evm/injected.js +33 -0
- package/build/evm/injected.js.map +1 -0
- package/build/evm/wallet.d.ts +41 -0
- package/build/evm/wallet.js +128 -0
- package/build/evm/wallet.js.map +1 -0
- package/build/exchange.d.ts +65 -0
- package/build/exchange.js +390 -0
- package/build/exchange.js.map +1 -0
- package/build/hot-wallet/google.d.ts +25 -0
- package/build/hot-wallet/google.js +112 -0
- package/build/hot-wallet/google.js.map +1 -0
- package/build/hot-wallet/iframe.d.ts +36 -0
- package/build/hot-wallet/iframe.js +140 -0
- package/build/hot-wallet/iframe.js.map +1 -0
- package/build/hot-wallet/index.d.ts +5 -0
- package/build/hot-wallet/index.js +4 -0
- package/build/hot-wallet/index.js.map +1 -0
- package/build/hot-wallet/proxy.d.ts +8 -0
- package/build/hot-wallet/proxy.js +45 -0
- package/build/hot-wallet/proxy.js.map +1 -0
- package/build/index.d.ts +5 -0
- package/build/index.js +6 -0
- package/build/index.js.map +1 -0
- package/build/near/connector.d.ts +18 -0
- package/build/near/connector.js +58 -0
- package/build/near/connector.js.map +1 -0
- package/build/near/index.d.ts +7 -0
- package/build/near/index.js +5 -0
- package/build/near/index.js.map +1 -0
- package/build/near/wallet.d.ts +55 -0
- package/build/near/wallet.js +195 -0
- package/build/near/wallet.js.map +1 -0
- package/build/solana/connector.d.ts +30 -0
- package/build/solana/connector.js +138 -0
- package/build/solana/connector.js.map +1 -0
- package/build/solana/index.d.ts +6 -0
- package/build/solana/index.js +5 -0
- package/build/solana/index.js.map +1 -0
- package/build/solana/injected/account.d.ts +11 -0
- package/build/solana/injected/account.js +41 -0
- package/build/solana/injected/account.js.map +1 -0
- package/build/solana/injected/index.d.ts +1 -0
- package/build/solana/injected/index.js +82 -0
- package/build/solana/injected/index.js.map +1 -0
- package/build/solana/injected/register.d.ts +2 -0
- package/build/solana/injected/register.js +41 -0
- package/build/solana/injected/register.js.map +1 -0
- package/build/solana/injected/solana-wallet.d.ts +34 -0
- package/build/solana/injected/solana-wallet.js +223 -0
- package/build/solana/injected/solana-wallet.js.map +1 -0
- package/build/solana/injected/utils.d.ts +32 -0
- package/build/solana/injected/utils.js +36 -0
- package/build/solana/injected/utils.js.map +1 -0
- package/build/solana/protocol.d.ts +25 -0
- package/build/solana/protocol.js +56 -0
- package/build/solana/protocol.js.map +1 -0
- package/build/solana/wallet.d.ts +42 -0
- package/build/solana/wallet.js +190 -0
- package/build/solana/wallet.js.map +1 -0
- package/build/solana/wallets.d.ts +102 -0
- package/build/solana/wallets.js +150 -0
- package/build/solana/wallets.js.map +1 -0
- package/build/stellar/connector.d.ts +31 -0
- package/build/stellar/connector.js +67 -0
- package/build/stellar/connector.js.map +1 -0
- package/build/stellar/freigher.d.ts +46 -0
- package/build/stellar/freigher.js +110 -0
- package/build/stellar/freigher.js.map +1 -0
- package/build/stellar/hotWallet.d.ts +33 -0
- package/build/stellar/hotWallet.js +28 -0
- package/build/stellar/hotWallet.js.map +1 -0
- package/build/stellar/index.d.ts +6 -0
- package/build/stellar/index.js +5 -0
- package/build/stellar/index.js.map +1 -0
- package/build/stellar/wallet.d.ts +65 -0
- package/build/stellar/wallet.js +216 -0
- package/build/stellar/wallet.js.map +1 -0
- package/build/storage.d.ts +10 -0
- package/build/storage.js +12 -0
- package/build/storage.js.map +1 -0
- package/build/ton/connector.d.ts +25 -0
- package/build/ton/connector.js +114 -0
- package/build/ton/connector.js.map +1 -0
- package/build/ton/index.d.ts +7 -0
- package/build/ton/index.js +5 -0
- package/build/ton/index.js.map +1 -0
- package/build/ton/injected.d.ts +1 -0
- package/build/ton/injected.js +49 -0
- package/build/ton/injected.js.map +1 -0
- package/build/ton/utils.d.ts +45 -0
- package/build/ton/utils.js +63 -0
- package/build/ton/utils.js.map +1 -0
- package/build/ton/wallet.d.ts +55 -0
- package/build/ton/wallet.js +139 -0
- package/build/ton/wallet.js.map +1 -0
- package/build/ui/Popup.d.ts +12 -0
- package/build/ui/Popup.js +39 -0
- package/build/ui/Popup.js.map +1 -0
- package/build/ui/connect/AuthPopup.d.ts +2 -0
- package/build/ui/connect/AuthPopup.js +48 -0
- package/build/ui/connect/AuthPopup.js.map +1 -0
- package/build/ui/connect/ConnectWallet.d.ts +9 -0
- package/build/ui/connect/ConnectWallet.js +22 -0
- package/build/ui/connect/ConnectWallet.js.map +1 -0
- package/build/ui/connect/LogoutPopup.d.ts +10 -0
- package/build/ui/connect/LogoutPopup.js +8 -0
- package/build/ui/connect/LogoutPopup.js.map +1 -0
- package/build/ui/connect/WCPopup.d.ts +13 -0
- package/build/ui/connect/WCPopup.js +81 -0
- package/build/ui/connect/WCPopup.js.map +1 -0
- package/build/ui/connect/WCRequest.d.ts +9 -0
- package/build/ui/connect/WCRequest.js +13 -0
- package/build/ui/connect/WCRequest.js.map +1 -0
- package/build/ui/connect/WalletPicker.d.ts +11 -0
- package/build/ui/connect/WalletPicker.js +48 -0
- package/build/ui/connect/WalletPicker.js.map +1 -0
- package/build/ui/icons/arrow-right.d.ts +1 -0
- package/build/ui/icons/arrow-right.js +5 -0
- package/build/ui/icons/arrow-right.js.map +1 -0
- package/build/ui/icons/close.d.ts +1 -0
- package/build/ui/icons/close.js +5 -0
- package/build/ui/icons/close.js.map +1 -0
- package/build/ui/icons/exchange.d.ts +6 -0
- package/build/ui/icons/exchange.js +6 -0
- package/build/ui/icons/exchange.js.map +1 -0
- package/build/ui/icons/logout.d.ts +1 -0
- package/build/ui/icons/logout.js +3 -0
- package/build/ui/icons/logout.js.map +1 -0
- package/build/ui/icons/pending.d.ts +1 -0
- package/build/ui/icons/pending.js +5 -0
- package/build/ui/icons/pending.js.map +1 -0
- package/build/ui/icons/qr.d.ts +1 -0
- package/build/ui/icons/qr.js +5 -0
- package/build/ui/icons/qr.js.map +1 -0
- package/build/ui/icons/search.d.ts +1 -0
- package/build/ui/icons/search.js +5 -0
- package/build/ui/icons/search.js.map +1 -0
- package/build/ui/icons/switch.d.ts +1 -0
- package/build/ui/icons/switch.js +5 -0
- package/build/ui/icons/switch.js.map +1 -0
- package/build/ui/icons/wallet.d.ts +1 -0
- package/build/ui/icons/wallet.js +5 -0
- package/build/ui/icons/wallet.js.map +1 -0
- package/build/ui/payment/Bridge.d.ts +29 -0
- package/build/ui/payment/Bridge.js +358 -0
- package/build/ui/payment/Bridge.js.map +1 -0
- package/build/ui/payment/DepositQR.d.ts +9 -0
- package/build/ui/payment/DepositQR.js +56 -0
- package/build/ui/payment/DepositQR.js.map +1 -0
- package/build/ui/payment/Payment.d.ts +16 -0
- package/build/ui/payment/Payment.js +50 -0
- package/build/ui/payment/Payment.js.map +1 -0
- package/build/ui/payment/Profile.d.ts +8 -0
- package/build/ui/payment/Profile.js +110 -0
- package/build/ui/payment/Profile.js.map +1 -0
- package/build/ui/payment/SelectRecipient.d.ts +14 -0
- package/build/ui/payment/SelectRecipient.js +68 -0
- package/build/ui/payment/SelectRecipient.js.map +1 -0
- package/build/ui/payment/SelectSender.d.ts +13 -0
- package/build/ui/payment/SelectSender.js +23 -0
- package/build/ui/payment/SelectSender.js.map +1 -0
- package/build/ui/payment/SelectToken.d.ts +13 -0
- package/build/ui/payment/SelectToken.js +92 -0
- package/build/ui/payment/SelectToken.js.map +1 -0
- package/build/ui/payment/TokenCard.d.ts +23 -0
- package/build/ui/payment/TokenCard.js +63 -0
- package/build/ui/payment/TokenCard.js.map +1 -0
- package/build/ui/router.d.ts +37 -0
- package/build/ui/router.js +56 -0
- package/build/ui/router.js.map +1 -0
- package/build/ui/styles.d.ts +13 -0
- package/build/ui/styles.js +288 -0
- package/build/ui/styles.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,358 @@
|
|
|
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 "../../core/utils";
|
|
9
|
+
import { tokens } from "../../core/tokens";
|
|
10
|
+
import { Recipient } from "../../core/recipient";
|
|
11
|
+
import { WalletType } from "../../core/chains";
|
|
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, onSelectPair }) => {
|
|
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
|
+
useEffect(() => {
|
|
29
|
+
onSelectPair?.(from, to);
|
|
30
|
+
}, [from, to]);
|
|
31
|
+
const [sender, setSender] = useState(() => {
|
|
32
|
+
if (setup?.sender)
|
|
33
|
+
return setup.sender;
|
|
34
|
+
if (from.type === WalletType.OMNI)
|
|
35
|
+
return hot.priorityWallet;
|
|
36
|
+
return hot.wallets.find((w) => w.type === from.type);
|
|
37
|
+
});
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (from.type === WalletType.OMNI)
|
|
40
|
+
setSender(hot.priorityWallet);
|
|
41
|
+
if (to.type === WalletType.OMNI)
|
|
42
|
+
setRecipient(Recipient.fromWallet(hot.priorityWallet));
|
|
43
|
+
}, [hot.priorityWallet]);
|
|
44
|
+
const [recipient, setRecipient] = useState(() => {
|
|
45
|
+
if (setup?.recipient)
|
|
46
|
+
return setup.recipient;
|
|
47
|
+
if (to.type === WalletType.OMNI)
|
|
48
|
+
return Recipient.fromWallet(hot.priorityWallet);
|
|
49
|
+
return Recipient.fromWallet(hot.wallets.find((w) => w.type === to.type));
|
|
50
|
+
});
|
|
51
|
+
const initialSender = useRef(sender);
|
|
52
|
+
const initialRecipient = useRef(recipient);
|
|
53
|
+
const valueInTokens = isFiat ? +formatter.fromInput(value) / (type === "exactIn" ? from.usd : to.usd) : +formatter.fromInput(value);
|
|
54
|
+
const amountFrom = type === "exactOut" ? from.float(review?.amountIn ?? 0) : valueInTokens;
|
|
55
|
+
const amountTo = type === "exactIn" ? to.float(review?.amountOut ?? 0) : valueInTokens;
|
|
56
|
+
const showAmountFrom = type === "exactOut" ? +from.float(review?.amountIn ?? 0).toFixed(FIXED) : formatter.fromInput(value);
|
|
57
|
+
const showAmountTo = type === "exactIn" ? +to.float(review?.amountOut ?? 0).toFixed(FIXED) : formatter.fromInput(value);
|
|
58
|
+
const availableBalance = sender !== "qr" ? +Math.max(0, from.float(hot.balance(sender, from)) - from.reserve).toFixed(FIXED) : 0;
|
|
59
|
+
let title = "Exchange";
|
|
60
|
+
if (from.chain === -4)
|
|
61
|
+
title = `Withdraw ${from.symbol}`;
|
|
62
|
+
if (to.chain === -4)
|
|
63
|
+
title = `Deposit ${to.symbol}`;
|
|
64
|
+
if (to.chain === from.chain)
|
|
65
|
+
title = "Exchange";
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
localStorage.setItem("bridge:from", from.id);
|
|
68
|
+
localStorage.setItem("bridge:to", to.id);
|
|
69
|
+
}, [from, to]);
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
if (initialSender.current == null) {
|
|
72
|
+
if (from.type === WalletType.OMNI)
|
|
73
|
+
setSender(hot.priorityWallet);
|
|
74
|
+
else
|
|
75
|
+
setSender(hot.wallets.find((w) => w.type === from.type));
|
|
76
|
+
}
|
|
77
|
+
if (initialRecipient.current == null) {
|
|
78
|
+
if (to.type === WalletType.OMNI)
|
|
79
|
+
setRecipient(Recipient.fromWallet(hot.priorityWallet));
|
|
80
|
+
else
|
|
81
|
+
setRecipient(Recipient.fromWallet(hot.wallets.find((w) => w.type === to.type)));
|
|
82
|
+
}
|
|
83
|
+
}, [to, from, hot.wallets, hot.priorityWallet]);
|
|
84
|
+
const reviewId = useRef(uuid4());
|
|
85
|
+
const throwError = (message) => {
|
|
86
|
+
setIsError(message);
|
|
87
|
+
setIsReviewing(false);
|
|
88
|
+
};
|
|
89
|
+
const reviewSwap = useCallback(() => {
|
|
90
|
+
reviewId.current = uuid4();
|
|
91
|
+
const currentReviewId = reviewId.current;
|
|
92
|
+
setIsReviewing(true);
|
|
93
|
+
setReview(null);
|
|
94
|
+
setIsError(null);
|
|
95
|
+
const refund = sender !== "qr" ? sender : hot.priorityWallet;
|
|
96
|
+
if (valueInTokens <= 0)
|
|
97
|
+
return throwError("Enter amount");
|
|
98
|
+
if (!sender)
|
|
99
|
+
return throwError("Set sender");
|
|
100
|
+
if (!recipient)
|
|
101
|
+
return throwError("Set recipient");
|
|
102
|
+
if (!refund)
|
|
103
|
+
return throwError("Connect any wallet");
|
|
104
|
+
const debounceTimer = setTimeout(async () => {
|
|
105
|
+
try {
|
|
106
|
+
if (currentReviewId !== reviewId.current)
|
|
107
|
+
return;
|
|
108
|
+
const amount = type === "exactIn" ? from.int(valueInTokens) : to.int(valueInTokens);
|
|
109
|
+
const review = await hot.exchange.reviewSwap({ sender, refund, amount, recipient, slippage: 0.005, type, from, to });
|
|
110
|
+
if (currentReviewId !== reviewId.current)
|
|
111
|
+
return;
|
|
112
|
+
setIsReviewing(false);
|
|
113
|
+
setIsError(null);
|
|
114
|
+
setReview(review);
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
if (currentReviewId !== reviewId.current)
|
|
118
|
+
return;
|
|
119
|
+
setIsError(typeof e === "string" ? e : e instanceof Error ? e.message : "Failed to review swap");
|
|
120
|
+
setIsReviewing(false);
|
|
121
|
+
setReview(null);
|
|
122
|
+
console.error(e);
|
|
123
|
+
}
|
|
124
|
+
}, 500);
|
|
125
|
+
return () => clearTimeout(debounceTimer);
|
|
126
|
+
}, [valueInTokens, type, from, to, sender, hot.exchange, recipient, hot.priorityWallet]);
|
|
127
|
+
useEffect(() => {
|
|
128
|
+
reviewSwap();
|
|
129
|
+
}, [reviewSwap]);
|
|
130
|
+
const process = async (review) => {
|
|
131
|
+
try {
|
|
132
|
+
const log = (message) => setProcessing({ status: "processing", message, review });
|
|
133
|
+
hot.hotBridge.logger = { log, warn: console.warn };
|
|
134
|
+
log("Signing transaction");
|
|
135
|
+
const result = await hot.exchange.makeSwap(review, { log });
|
|
136
|
+
setProcessing({ status: "success", message: "Transaction signed", review: result });
|
|
137
|
+
if (setup?.autoClose)
|
|
138
|
+
onClose();
|
|
139
|
+
return result;
|
|
140
|
+
}
|
|
141
|
+
catch (e) {
|
|
142
|
+
setProcessing({ status: "error", message: e?.toString?.() ?? "Unknown error", review });
|
|
143
|
+
throw e;
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
const cancelReview = () => {
|
|
147
|
+
setReview(null);
|
|
148
|
+
setIsReviewing(false);
|
|
149
|
+
setProcessing(null);
|
|
150
|
+
setIsError(null);
|
|
151
|
+
reviewSwap();
|
|
152
|
+
};
|
|
153
|
+
const handleConfirm = async () => {
|
|
154
|
+
if (sender != "qr")
|
|
155
|
+
return onProcess(process(review));
|
|
156
|
+
setProcessing({ status: "qr", message: "Scan QR code to sign transaction", review: review });
|
|
157
|
+
};
|
|
158
|
+
const handleMax = () => {
|
|
159
|
+
if (sender === "qr")
|
|
160
|
+
return;
|
|
161
|
+
if (isFiat) {
|
|
162
|
+
setType("exactIn");
|
|
163
|
+
setValue(String(+(availableBalance * from.usd).toFixed(FIXED)));
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
setType("exactIn");
|
|
167
|
+
setValue(String(availableBalance));
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
if (processing?.status === "qr") {
|
|
171
|
+
return (_jsx(Popup, { widget: widget, onClose: onClose, header: _jsx("p", { children: title }), mobileFullscreen: setup?.mobileFullscreen, children: _jsx(DepositQR //
|
|
172
|
+
, { review: processing.review, onConfirm: () => onProcess(process(processing.review)), onCancel: cancelReview }) }));
|
|
173
|
+
}
|
|
174
|
+
if (processing?.status === "processing") {
|
|
175
|
+
return (_jsx(Popup, { widget: widget, onClose: onClose, header: _jsx("p", { children: title }), mobileFullscreen: setup?.mobileFullscreen, 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 })] }) }));
|
|
176
|
+
}
|
|
177
|
+
if (processing?.status === "success") {
|
|
178
|
+
return (_jsxs(Popup, { widget: widget, onClose: onClose, header: _jsx("p", { children: title }), mobileFullscreen: setup?.mobileFullscreen, 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" })] }));
|
|
179
|
+
}
|
|
180
|
+
if (processing?.status === "error") {
|
|
181
|
+
return (_jsxs(Popup, { widget: widget, onClose: onClose, header: _jsx("p", { children: title }), mobileFullscreen: setup?.mobileFullscreen, 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" })] }));
|
|
182
|
+
}
|
|
183
|
+
const button = () => {
|
|
184
|
+
if (sender == null)
|
|
185
|
+
return _jsx(PopupButton, { disabled: true, children: "Set sender" });
|
|
186
|
+
if (recipient == null)
|
|
187
|
+
return _jsx(PopupButton, { disabled: true, children: "Set recipient" });
|
|
188
|
+
if (sender !== "qr" && +from.float(hot.balance(sender, from)).toFixed(FIXED) < +amountFrom.toFixed(FIXED))
|
|
189
|
+
return _jsx(PopupButton, { disabled: true, children: "Insufficient balance" });
|
|
190
|
+
return (_jsx(PopupButton, { disabled: isReviewing || isError != null, onClick: handleConfirm, children: isReviewing ? "Quoting..." : isError != null ? isError : "Confirm" }));
|
|
191
|
+
};
|
|
192
|
+
return (_jsx(Popup, { widget: widget, onClose: onClose, header: _jsx("p", { children: title }), mobileFullscreen: setup?.mobileFullscreen, 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 ?? "Select sender") }) })] }) }), _jsxs("div", { style: { width: "100%", display: "flex", alignItems: "center", gap: 8, justifyContent: "space-between" }, children: [_jsx(TokenPreview //
|
|
193
|
+
, { 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: () => {
|
|
194
|
+
setFrom(to);
|
|
195
|
+
setTo(from);
|
|
196
|
+
setSender(hot.wallets.find((w) => w.address === recipient?.address));
|
|
197
|
+
setRecipient(sender === "qr" ? undefined : sender ? Recipient.fromWallet(sender) : undefined);
|
|
198
|
+
setType(type === "exactIn" ? "exactOut" : "exactIn");
|
|
199
|
+
setValue("");
|
|
200
|
+
}, 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 //
|
|
201
|
+
, { token: to, style: { pointerEvents: setup?.readonlyTo ? "none" : "all" }, onSelect: () => openSelectTokenPopup({
|
|
202
|
+
hot,
|
|
203
|
+
onSelect: (token, wallet) => {
|
|
204
|
+
setRecipient(wallet ? Recipient.fromWallet(wallet) : undefined);
|
|
205
|
+
setTo(token);
|
|
206
|
+
},
|
|
207
|
+
}) }), 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() })] }) }));
|
|
208
|
+
});
|
|
209
|
+
const TokenPreview = ({ style, token, onSelect }) => {
|
|
210
|
+
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 } })] }));
|
|
211
|
+
};
|
|
212
|
+
const BadgeButton = styled.button `
|
|
213
|
+
font-size: 12px;
|
|
214
|
+
font-weight: 500;
|
|
215
|
+
color: #fff;
|
|
216
|
+
background: #282c30;
|
|
217
|
+
padding: 4px 8px;
|
|
218
|
+
border-radius: 16px;
|
|
219
|
+
cursor: pointer;
|
|
220
|
+
outline: none;
|
|
221
|
+
border: none;
|
|
222
|
+
border: 1px solid transparent;
|
|
223
|
+
transition: 0.2s border-color;
|
|
224
|
+
|
|
225
|
+
&:hover {
|
|
226
|
+
border-color: #4e4e4e;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
* {
|
|
230
|
+
font-size: 14px;
|
|
231
|
+
font-weight: bold;
|
|
232
|
+
}
|
|
233
|
+
`;
|
|
234
|
+
const SelectTokenButton = styled.button `
|
|
235
|
+
display: flex;
|
|
236
|
+
align-items: center;
|
|
237
|
+
gap: 12px;
|
|
238
|
+
flex-shrink: 0;
|
|
239
|
+
cursor: pointer;
|
|
240
|
+
outline: none;
|
|
241
|
+
border: none;
|
|
242
|
+
position: relative;
|
|
243
|
+
background: transparent;
|
|
244
|
+
border-radius: 32px;
|
|
245
|
+
padding: 8px;
|
|
246
|
+
padding-right: 32px;
|
|
247
|
+
margin: -8px;
|
|
248
|
+
max-width: 160px;
|
|
249
|
+
transition: 0.2s background-color;
|
|
250
|
+
|
|
251
|
+
&:hover {
|
|
252
|
+
background: rgba(255, 255, 255, 0.2);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
p {
|
|
256
|
+
overflow: hidden;
|
|
257
|
+
text-overflow: ellipsis;
|
|
258
|
+
white-space: nowrap;
|
|
259
|
+
}
|
|
260
|
+
`;
|
|
261
|
+
const AvailableBalance = styled.div `
|
|
262
|
+
display: flex;
|
|
263
|
+
align-items: center;
|
|
264
|
+
gap: 4;
|
|
265
|
+
overflow: hidden;
|
|
266
|
+
max-width: 200px;
|
|
267
|
+
white-space: nowrap;
|
|
268
|
+
|
|
269
|
+
p {
|
|
270
|
+
overflow: hidden;
|
|
271
|
+
text-overflow: ellipsis;
|
|
272
|
+
white-space: nowrap;
|
|
273
|
+
}
|
|
274
|
+
`;
|
|
275
|
+
const Card = styled.div `
|
|
276
|
+
display: flex;
|
|
277
|
+
width: 100%;
|
|
278
|
+
flex-direction: column;
|
|
279
|
+
gap: 16px;
|
|
280
|
+
width: 100%;
|
|
281
|
+
text-align: left;
|
|
282
|
+
align-items: flex-start;
|
|
283
|
+
justify-content: center;
|
|
284
|
+
border-radius: 12px;
|
|
285
|
+
|
|
286
|
+
input {
|
|
287
|
+
outline: none;
|
|
288
|
+
border: none;
|
|
289
|
+
background: none;
|
|
290
|
+
color: #fff;
|
|
291
|
+
font-size: 32px;
|
|
292
|
+
font-weight: bold;
|
|
293
|
+
width: 100%;
|
|
294
|
+
line-height: 40px;
|
|
295
|
+
text-align: left;
|
|
296
|
+
align-items: flex-start;
|
|
297
|
+
justify-content: center;
|
|
298
|
+
background: transparent;
|
|
299
|
+
text-align: right;
|
|
300
|
+
border: none;
|
|
301
|
+
padding: 0;
|
|
302
|
+
margin: 0;
|
|
303
|
+
}
|
|
304
|
+
`;
|
|
305
|
+
const SwitchButton = styled.button `
|
|
306
|
+
position: absolute;
|
|
307
|
+
left: 50%;
|
|
308
|
+
top: -18px;
|
|
309
|
+
transform: translate(-50%, 0);
|
|
310
|
+
background: #232323;
|
|
311
|
+
border-radius: 50%;
|
|
312
|
+
width: 36px;
|
|
313
|
+
height: 36px;
|
|
314
|
+
display: flex;
|
|
315
|
+
align-items: center;
|
|
316
|
+
justify-content: center;
|
|
317
|
+
z-index: 2;
|
|
318
|
+
cursor: pointer;
|
|
319
|
+
border: 2px solid #181818;
|
|
320
|
+
box-shadow: 0 2px 8px 0 #18181870;
|
|
321
|
+
outline: none;
|
|
322
|
+
border: none;
|
|
323
|
+
cursor: pointer;
|
|
324
|
+
`;
|
|
325
|
+
const shine = keyframes `
|
|
326
|
+
0% {
|
|
327
|
+
background-position: -200px 0;
|
|
328
|
+
}
|
|
329
|
+
100% {
|
|
330
|
+
background-position: calc(200px + 100%) 0;
|
|
331
|
+
}
|
|
332
|
+
`;
|
|
333
|
+
const SkeletonShine = styled.div `
|
|
334
|
+
display: inline-block;
|
|
335
|
+
width: 100px;
|
|
336
|
+
height: 40px;
|
|
337
|
+
border-radius: 8px;
|
|
338
|
+
background: #2e2e2e;
|
|
339
|
+
position: relative;
|
|
340
|
+
overflow: hidden;
|
|
341
|
+
|
|
342
|
+
&:after {
|
|
343
|
+
content: "";
|
|
344
|
+
display: block;
|
|
345
|
+
height: 100%;
|
|
346
|
+
width: 100%;
|
|
347
|
+
position: absolute;
|
|
348
|
+
top: 0;
|
|
349
|
+
left: 0;
|
|
350
|
+
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%);
|
|
351
|
+
background-size: 200px 100%;
|
|
352
|
+
animation: ${shine} 1.4s infinite linear;
|
|
353
|
+
}
|
|
354
|
+
`;
|
|
355
|
+
const RefreshButton = ({ onClick }) => {
|
|
356
|
+
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" })] }));
|
|
357
|
+
};
|
|
358
|
+
//# 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":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HotConnector } from "../../HotConnector";
|
|
2
|
+
import { Recipient } from "../../core/recipient";
|
|
3
|
+
import { BridgeReview } from "../../exchange";
|
|
4
|
+
import { Token } from "../../core/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 {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { observer } from "mobx-react-lite";
|
|
3
|
+
import { useEffect } from "react";
|
|
4
|
+
import { openBridge, openConnector } from "../router";
|
|
5
|
+
import { Recipient } from "../../core/recipient";
|
|
6
|
+
import { Network } from "../../core/chains";
|
|
7
|
+
import Popup from "../Popup";
|
|
8
|
+
import { TokenCard } from "./TokenCard";
|
|
9
|
+
import { PopupOption, PopupOptionInfo } from "../styles";
|
|
10
|
+
import { WalletIcon } from "../icons/wallet";
|
|
11
|
+
export const Payment = observer(({ connector, recipient, token: need, amount: needAmount, onProcess, onClose }) => {
|
|
12
|
+
const title = `Need ${need.readable(needAmount)} ${need.symbol}`;
|
|
13
|
+
const selectToken = async (from, wallet) => {
|
|
14
|
+
onProcess(openBridge(connector, {
|
|
15
|
+
sender: wallet,
|
|
16
|
+
autoClose: true,
|
|
17
|
+
type: "exactOut",
|
|
18
|
+
recipient: recipient || Recipient.fromWallet(connector.priorityWallet),
|
|
19
|
+
readonlyTo: recipient ? true : false,
|
|
20
|
+
amount: need.float(needAmount),
|
|
21
|
+
readonlyAmount: true,
|
|
22
|
+
title: title,
|
|
23
|
+
from: from,
|
|
24
|
+
to: need,
|
|
25
|
+
}));
|
|
26
|
+
};
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
if (connector.wallets.length !== 0)
|
|
29
|
+
return;
|
|
30
|
+
openConnector(connector);
|
|
31
|
+
}, [connector.wallets.length, connector]);
|
|
32
|
+
return (_jsxs(Popup, { onClose: onClose, header: _jsx("p", { children: title }), children: [connector.walletsTokens.map(({ token, wallet, balance }) => {
|
|
33
|
+
if (token.id === need.id)
|
|
34
|
+
return null;
|
|
35
|
+
const availableBalance = token.float(balance) - token.reserve;
|
|
36
|
+
if (need.originalChain === Network.Gonka || need.originalChain === Network.Juno) {
|
|
37
|
+
if (token.id === need.id)
|
|
38
|
+
return null;
|
|
39
|
+
if (token.originalAddress !== need.originalAddress)
|
|
40
|
+
return null;
|
|
41
|
+
if (availableBalance < need.float(needAmount))
|
|
42
|
+
return null;
|
|
43
|
+
return _jsx(TokenCard, { token: token, onSelect: selectToken, hot: connector, wallet: wallet }, token.id);
|
|
44
|
+
}
|
|
45
|
+
if (availableBalance * token.usd <= need.usd * need.float(needAmount))
|
|
46
|
+
return null;
|
|
47
|
+
return _jsx(TokenCard, { token: token, onSelect: selectToken, hot: connector, wallet: wallet }, token.id);
|
|
48
|
+
}), _jsxs(PopupOption, { onClick: () => openConnector(connector), children: [_jsx("div", { style: { width: 44, height: 44, borderRadius: 16, background: "#000", display: "flex", alignItems: "center", justifyContent: "center" }, children: _jsx(WalletIcon, {}) }), _jsxs(PopupOptionInfo, { children: [_jsx("p", { children: "Connect wallet" }), _jsx("span", { className: "wallet-address", children: "To more pay options" })] })] })] }));
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=Payment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Payment.js","sourceRoot":"","sources":["../../../src/ui/payment/Payment.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HotConnector } from "../../HotConnector";
|
|
2
|
+
export declare const Loader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
3
|
+
export declare const Profile: (({ hot, onClose }: {
|
|
4
|
+
hot: HotConnector;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element) & {
|
|
7
|
+
displayName: string;
|
|
8
|
+
};
|