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