@kimafinance/kima-transaction-widget 1.3.6 → 1.3.8
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/dist/index.cjs +221 -116
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +90 -33
- package/dist/index.css.map +1 -1
- package/dist/index.js +210 -105
- package/dist/index.js.map +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2561,11 +2561,12 @@ function useIsWalletReady() {
|
|
|
2561
2561
|
checkChainId();
|
|
2562
2562
|
}, [externalProvider, sourceChain, switchNetwork, walletChainId, isConnected]);
|
|
2563
2563
|
useEffect(() => {
|
|
2564
|
-
if (isConnected) {
|
|
2564
|
+
if (isConnected && sourceChain.compatibility === "EVM" /* EVM */) {
|
|
2565
2565
|
console.debug(
|
|
2566
2566
|
"useIsWalletReady:EVM: Dispatching source address:",
|
|
2567
2567
|
walletAddress
|
|
2568
2568
|
);
|
|
2569
|
+
console.log("dispatching evm address: ", walletAddress);
|
|
2569
2570
|
dispatch(setSourceAddress(walletAddress ?? ""));
|
|
2570
2571
|
}
|
|
2571
2572
|
}, [walletAddress, isConnected, dispatch]);
|
|
@@ -2644,6 +2645,12 @@ var checkPoolBalance = ({
|
|
|
2644
2645
|
const targetToken = poolTokens.find(
|
|
2645
2646
|
(token) => token.tokenSymbol === finalTargetCurrency
|
|
2646
2647
|
);
|
|
2648
|
+
if (!targetToken) {
|
|
2649
|
+
return {
|
|
2650
|
+
isPoolAvailable: false,
|
|
2651
|
+
error: `${CHAIN_NAMES_TO_STRING[targetChain]} has no ${targetCurrency} pool!`
|
|
2652
|
+
};
|
|
2653
|
+
}
|
|
2647
2654
|
const { amount: targetTokenBalance } = targetToken;
|
|
2648
2655
|
if (parseFloat(amount) > parseFloat(targetTokenBalance))
|
|
2649
2656
|
return {
|
|
@@ -2798,6 +2805,33 @@ function useEvmAllowance() {
|
|
|
2798
2805
|
refetchInterval: 60 * 1e3,
|
|
2799
2806
|
enabled
|
|
2800
2807
|
});
|
|
2808
|
+
const signMessage = async (data) => {
|
|
2809
|
+
if (!walletProvider) {
|
|
2810
|
+
console.error("No available provider");
|
|
2811
|
+
return;
|
|
2812
|
+
}
|
|
2813
|
+
if (!allowanceData?.decimals) {
|
|
2814
|
+
console.warn("useEvmAllowance: Missing required data");
|
|
2815
|
+
return;
|
|
2816
|
+
}
|
|
2817
|
+
try {
|
|
2818
|
+
const walletClient = createWalletClient({
|
|
2819
|
+
account: walletAddress,
|
|
2820
|
+
chain: sourceChain,
|
|
2821
|
+
transport: custom(window.ethereum)
|
|
2822
|
+
// WARNING: NEED TO MAKE SURE THIS USING THE ETHEREUM OBJECT IS STABLE ENOUGH
|
|
2823
|
+
});
|
|
2824
|
+
return await walletClient.signMessage({
|
|
2825
|
+
account: walletAddress,
|
|
2826
|
+
message: `Target Address: ${data.targetAddress}
|
|
2827
|
+
Target Chain: ${data.targetChain}
|
|
2828
|
+
Target Symbol: ${data.targetSymbol}`
|
|
2829
|
+
});
|
|
2830
|
+
} catch (error) {
|
|
2831
|
+
console.error("useEvmAllowance: Error on signing message:", error);
|
|
2832
|
+
throw new Error("Error on signing message");
|
|
2833
|
+
}
|
|
2834
|
+
};
|
|
2801
2835
|
const approveErc20TokenTransfer = async (isCancel = false) => {
|
|
2802
2836
|
if (!walletProvider) {
|
|
2803
2837
|
console.error("No available provider");
|
|
@@ -2863,6 +2897,7 @@ function useEvmAllowance() {
|
|
|
2863
2897
|
isApproved: allowanceData?.allowance ? allowanceData.allowance >= allowanceNumber : false,
|
|
2864
2898
|
approve: approveErc20TokenTransfer,
|
|
2865
2899
|
isLoading,
|
|
2900
|
+
signMessage,
|
|
2866
2901
|
refetch
|
|
2867
2902
|
};
|
|
2868
2903
|
}
|
|
@@ -2956,6 +2991,7 @@ var WalletProvider2 = ({
|
|
|
2956
2991
|
return /* @__PURE__ */ React73.createElement(ConnectionProvider, { endpoint }, /* @__PURE__ */ React73.createElement(
|
|
2957
2992
|
SolanaWalletProvider,
|
|
2958
2993
|
{
|
|
2994
|
+
autoConnect: false,
|
|
2959
2995
|
wallets: [
|
|
2960
2996
|
new PhantomWalletAdapter(),
|
|
2961
2997
|
new SolflareWalletAdapter(),
|
|
@@ -3069,7 +3105,8 @@ function useSolanaAllowance() {
|
|
|
3069
3105
|
const { connection: internalConnection } = useConnection2();
|
|
3070
3106
|
const {
|
|
3071
3107
|
publicKey: internalPublicKey,
|
|
3072
|
-
signTransaction: internalSignTransaction
|
|
3108
|
+
signTransaction: internalSignTransaction,
|
|
3109
|
+
signMessage: internalSignMessage
|
|
3073
3110
|
} = useWallet2();
|
|
3074
3111
|
const selectedCoin = useSelector6(selectSourceCurrency);
|
|
3075
3112
|
const tokenOptions = useSelector6(selectTokenOptions);
|
|
@@ -3078,6 +3115,7 @@ function useSolanaAllowance() {
|
|
|
3078
3115
|
const isSolanaProvider = sourceChain.shortName === "SOL" && externalProvider?.type === "solana" && externalProvider.provider && externalProvider.signer instanceof PublicKey5;
|
|
3079
3116
|
const userPublicKey = isSolanaProvider ? externalProvider.signer : sourceChain.shortName === "SOL" ? internalPublicKey : void 0;
|
|
3080
3117
|
const signTransaction = isSolanaProvider && externalProvider.provider.signTransaction ? externalProvider.provider.signTransaction : sourceChain.shortName === "SOL" ? internalSignTransaction : void 0;
|
|
3118
|
+
const signMessage = isSolanaProvider && externalProvider.provider.signMessage ? externalProvider.provider.signMessage : sourceChain.shortName === "SOL" ? internalSignMessage : void 0;
|
|
3081
3119
|
const connection = isSolanaProvider && externalProvider.provider.connection ? externalProvider.provider.connection : sourceChain.shortName === "SOL" ? internalConnection : void 0;
|
|
3082
3120
|
const {
|
|
3083
3121
|
data: allowanceData,
|
|
@@ -3106,6 +3144,23 @@ function useSolanaAllowance() {
|
|
|
3106
3144
|
staleTime: 1e3 * 60
|
|
3107
3145
|
// 1 min
|
|
3108
3146
|
});
|
|
3147
|
+
const signSolanaMessage = async (data) => {
|
|
3148
|
+
if (!signMessage) {
|
|
3149
|
+
console.warn("useSolanaAllowance: Missing Solana provider setup");
|
|
3150
|
+
return;
|
|
3151
|
+
}
|
|
3152
|
+
try {
|
|
3153
|
+
const message = `Target Address: ${data.targetAddress}
|
|
3154
|
+
Target Chain: ${data.targetChain}
|
|
3155
|
+
Target Symbol: ${data.targetSymbol}`;
|
|
3156
|
+
const encodedMessage = new TextEncoder().encode(message);
|
|
3157
|
+
const signature = await signMessage(encodedMessage);
|
|
3158
|
+
return `0x${Buffer.from(signature).toString("hex")}`;
|
|
3159
|
+
} catch (error2) {
|
|
3160
|
+
console.error("Error signing message:", error2);
|
|
3161
|
+
throw error2;
|
|
3162
|
+
}
|
|
3163
|
+
};
|
|
3109
3164
|
const approveSPLTokenTransfer = async (isCancel = false) => {
|
|
3110
3165
|
if (!allowanceAmount) {
|
|
3111
3166
|
console.warn("useSolanaAllowance: Missing allowance amount");
|
|
@@ -3163,7 +3218,8 @@ function useSolanaAllowance() {
|
|
|
3163
3218
|
return {
|
|
3164
3219
|
...allowanceData,
|
|
3165
3220
|
isApproved: allowanceData?.allowance ? allowanceData.allowance >= allowanceNumber : false,
|
|
3166
|
-
approve: approveSPLTokenTransfer
|
|
3221
|
+
approve: approveSPLTokenTransfer,
|
|
3222
|
+
signMessage: signSolanaMessage
|
|
3167
3223
|
};
|
|
3168
3224
|
}
|
|
3169
3225
|
|
|
@@ -3293,7 +3349,8 @@ var WalletProvider3 = ({ children, networkOption }) => {
|
|
|
3293
3349
|
{
|
|
3294
3350
|
adapters,
|
|
3295
3351
|
onError,
|
|
3296
|
-
onChainChanged
|
|
3352
|
+
onChainChanged,
|
|
3353
|
+
autoConnect: false
|
|
3297
3354
|
},
|
|
3298
3355
|
children
|
|
3299
3356
|
);
|
|
@@ -3643,7 +3700,8 @@ function useTronAllowance() {
|
|
|
3643
3700
|
const { pools } = useGetPools_default(backendUrl, networkOption);
|
|
3644
3701
|
const {
|
|
3645
3702
|
address: internalUserAddress,
|
|
3646
|
-
signTransaction: internalSignTronTransaction
|
|
3703
|
+
signTransaction: internalSignTronTransaction,
|
|
3704
|
+
signMessage: internalSignMessage
|
|
3647
3705
|
} = useWallet5();
|
|
3648
3706
|
const [approvalsCount, setApprovalsCount] = useState4(0);
|
|
3649
3707
|
const isTronProvider2 = sourceChain.shortName === "TRX" && externalProvider?.type === "tron" && externalProvider.provider.tronWeb instanceof TronWeb3 && typeof externalProvider.signer === "string";
|
|
@@ -3655,6 +3713,7 @@ function useTronAllowance() {
|
|
|
3655
3713
|
isTronProvider2 && tronWeb.setAddress(TRON_USDK_OWNER_ADDRESS);
|
|
3656
3714
|
const userAddress = isTronProvider2 ? externalProvider.signer : internalUserAddress;
|
|
3657
3715
|
const signTronTransaction = isTronProvider2 ? externalProvider.provider.signTransaction : internalSignTronTransaction;
|
|
3716
|
+
const signMessage = isTronProvider2 ? externalProvider.provider.signMessage : internalSignMessage;
|
|
3658
3717
|
const {
|
|
3659
3718
|
data: allowanceData,
|
|
3660
3719
|
isLoading,
|
|
@@ -3675,6 +3734,22 @@ function useTronAllowance() {
|
|
|
3675
3734
|
staleTime: 1e3 * 60
|
|
3676
3735
|
// 1 min
|
|
3677
3736
|
});
|
|
3737
|
+
const signTronMessage = async (data) => {
|
|
3738
|
+
if (!tronWeb) {
|
|
3739
|
+
console.warn("TronWeb not initialized");
|
|
3740
|
+
return;
|
|
3741
|
+
}
|
|
3742
|
+
try {
|
|
3743
|
+
const message = `Target Address: ${data.targetAddress}
|
|
3744
|
+
Target Chain: ${data.targetChain}
|
|
3745
|
+
Target Symbol: ${data.targetSymbol}`;
|
|
3746
|
+
const signedMessage = await signMessage(message);
|
|
3747
|
+
return signedMessage;
|
|
3748
|
+
} catch (error2) {
|
|
3749
|
+
console.error("Error signing message:", error2);
|
|
3750
|
+
throw error2;
|
|
3751
|
+
}
|
|
3752
|
+
};
|
|
3678
3753
|
const approveTrc20TokenTransfer = async (isCancel = false) => {
|
|
3679
3754
|
if (!userAddress || !pools || !tronWeb || !tokenOptions || !selectedCoin || !allowanceAmount) {
|
|
3680
3755
|
console.warn("Missing required data for approveTrc20TokenTransfer");
|
|
@@ -3713,7 +3788,8 @@ function useTronAllowance() {
|
|
|
3713
3788
|
return {
|
|
3714
3789
|
...allowanceData,
|
|
3715
3790
|
isApproved: allowanceData?.allowance ? allowanceData.allowance >= allowanceNumber : false,
|
|
3716
|
-
approve: approveTrc20TokenTransfer
|
|
3791
|
+
approve: approveTrc20TokenTransfer,
|
|
3792
|
+
signMessage: signTronMessage
|
|
3717
3793
|
};
|
|
3718
3794
|
}
|
|
3719
3795
|
|
|
@@ -3880,10 +3956,10 @@ var KimaProvider = ({
|
|
|
3880
3956
|
var KimaProvider_default = KimaProvider;
|
|
3881
3957
|
|
|
3882
3958
|
// src/components/KimaTransactionWidget.tsx
|
|
3883
|
-
import
|
|
3959
|
+
import React113, { useEffect as useEffect20 } from "react";
|
|
3884
3960
|
|
|
3885
3961
|
// src/components/KimaWidgetWrapper.tsx
|
|
3886
|
-
import
|
|
3962
|
+
import React112, { useEffect as useEffect19 } from "react";
|
|
3887
3963
|
import { useDispatch as useDispatch26, useSelector as useSelector38 } from "react-redux";
|
|
3888
3964
|
|
|
3889
3965
|
// src/components/TransactionWidget.tsx
|
|
@@ -4640,12 +4716,13 @@ var AddressInput = ({
|
|
|
4640
4716
|
const targetChain = useSelector21(selectTargetChain);
|
|
4641
4717
|
const { walletAddress: sourceAddress, isReady } = useIsWalletReady4();
|
|
4642
4718
|
const targetAddress = useSelector21(selectTargetAddress);
|
|
4643
|
-
const
|
|
4644
|
-
return
|
|
4719
|
+
const isCompatible = (sourceChain2, targetChain2) => {
|
|
4720
|
+
return sourceChain2.compatibility === targetChain2.compatibility;
|
|
4645
4721
|
};
|
|
4646
4722
|
useEffect12(() => {
|
|
4647
4723
|
if (mode === "payment" /* payment */) return;
|
|
4648
|
-
if (
|
|
4724
|
+
if (isCompatible(sourceChain, targetChain)) {
|
|
4725
|
+
if (targetAddress !== "") return;
|
|
4649
4726
|
dispatch(setTargetAddress(isReady && sourceAddress ? sourceAddress : ""));
|
|
4650
4727
|
return;
|
|
4651
4728
|
}
|
|
@@ -5198,7 +5275,7 @@ var TransactionWidget = ({ theme }) => {
|
|
|
5198
5275
|
};
|
|
5199
5276
|
|
|
5200
5277
|
// src/components/TransferWidget.tsx
|
|
5201
|
-
import
|
|
5278
|
+
import React111, { useEffect as useEffect18, useState as useState14, useRef as useRef7 } from "react";
|
|
5202
5279
|
import { useDispatch as useDispatch25, useSelector as useSelector37 } from "react-redux";
|
|
5203
5280
|
|
|
5204
5281
|
// src/components/reusable/SingleForm.tsx
|
|
@@ -5369,18 +5446,8 @@ var NetworkSelector_default = React102.memo(NetworkSelector);
|
|
|
5369
5446
|
|
|
5370
5447
|
// src/components/reusable/SingleForm.tsx
|
|
5371
5448
|
var SingleForm = ({
|
|
5372
|
-
allowance,
|
|
5373
5449
|
balance,
|
|
5374
|
-
decimals
|
|
5375
|
-
formStep,
|
|
5376
|
-
onBack,
|
|
5377
|
-
onCancelApprove,
|
|
5378
|
-
onNext,
|
|
5379
|
-
getButtonLabel,
|
|
5380
|
-
isApproving,
|
|
5381
|
-
isSigning,
|
|
5382
|
-
isSubmitting,
|
|
5383
|
-
isCancellingApprove
|
|
5450
|
+
decimals
|
|
5384
5451
|
}) => {
|
|
5385
5452
|
const dispatch = useDispatch17();
|
|
5386
5453
|
const mode = useSelector30(selectMode);
|
|
@@ -5389,7 +5456,6 @@ var SingleForm = ({
|
|
|
5389
5456
|
const { totalFeeUsd } = useSelector30(selectServiceFee);
|
|
5390
5457
|
const compliantOption = useSelector30(selectCompliantOption);
|
|
5391
5458
|
const targetCompliant = useSelector30(selectTargetCompliant);
|
|
5392
|
-
const transactionOption = useSelector30(selectTransactionOption);
|
|
5393
5459
|
const sourceNetwork = useSelector30(selectSourceChain);
|
|
5394
5460
|
const targetNetwork = useSelector30(selectTargetChain);
|
|
5395
5461
|
const { isReady } = useIsWalletReady4();
|
|
@@ -5423,23 +5489,16 @@ var SingleForm = ({
|
|
|
5423
5489
|
const maxValue = useMemo15(() => {
|
|
5424
5490
|
if (!balance) return 0;
|
|
5425
5491
|
if (totalFeeUsd < 0) return balance;
|
|
5426
|
-
|
|
5427
|
-
return amountMinusFees > 0 ? amountMinusFees : 0;
|
|
5492
|
+
return preciseSubtraction(balance, totalFeeUsd);
|
|
5428
5493
|
}, [balance, totalFeeUsd, feeDeduct]);
|
|
5429
5494
|
useEffect15(() => {
|
|
5430
5495
|
if (!errorMessage) return;
|
|
5431
5496
|
toast4.error(errorMessage);
|
|
5432
5497
|
}, [errorMessage]);
|
|
5433
5498
|
useEffect15(() => {
|
|
5434
|
-
if (amountValue && amount
|
|
5499
|
+
if (amountValue && amount !== "") return;
|
|
5435
5500
|
setAmountValue(amount);
|
|
5436
5501
|
}, [amount]);
|
|
5437
|
-
useEffect15(() => {
|
|
5438
|
-
if (!feeDeduct && maxValue < +amountValue) {
|
|
5439
|
-
setAmountValue(maxValue.toString());
|
|
5440
|
-
dispatch(setAmount(maxValue.toString()));
|
|
5441
|
-
}
|
|
5442
|
-
}, [feeDeduct]);
|
|
5443
5502
|
return /* @__PURE__ */ React103.createElement("div", { className: "single-form" }, /* @__PURE__ */ React103.createElement("div", { className: "form-item" }, /* @__PURE__ */ React103.createElement("span", { className: "label" }, "Source Network:"), /* @__PURE__ */ React103.createElement("div", { className: "items" }, /* @__PURE__ */ React103.createElement(NetworkSelector_default, { type: "source" }), /* @__PURE__ */ React103.createElement(CoinDropdown_default, null))), /* @__PURE__ */ React103.createElement(
|
|
5444
5503
|
"div",
|
|
5445
5504
|
{
|
|
@@ -5460,27 +5519,21 @@ var SingleForm = ({
|
|
|
5460
5519
|
theme: theme.colorMode,
|
|
5461
5520
|
placeholder: "Target address"
|
|
5462
5521
|
}
|
|
5463
|
-
)) : null,
|
|
5522
|
+
)) : null, /* @__PURE__ */ React103.createElement("div", { className: `form-item ${theme.colorMode}` }, /* @__PURE__ */ React103.createElement("span", { className: "label" }, "Amount:"), /* @__PURE__ */ React103.createElement("div", { className: `amount-label-container items ${theme.colorMode}` }, /* @__PURE__ */ React103.createElement(
|
|
5464
5523
|
"input",
|
|
5465
5524
|
{
|
|
5466
5525
|
className: `${theme.colorMode}`,
|
|
5467
5526
|
type: "text",
|
|
5468
|
-
placeholder: "
|
|
5527
|
+
placeholder: "Enter amount",
|
|
5469
5528
|
value: amountValue || "",
|
|
5470
5529
|
onChange: (e) => {
|
|
5471
5530
|
const value = e.target.value;
|
|
5472
5531
|
const maskedValue = value.replace(/[^0-9.]/g, "").replace(/(\..*?)\..*/g, "$1").replace(new RegExp(`(\\.\\d{${decimals}})\\d+`), "$1");
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
setAmountValue(maxValue.toString());
|
|
5476
|
-
dispatch(setAmount(maxValue.toString()));
|
|
5477
|
-
} else {
|
|
5478
|
-
setAmountValue(maskedValue);
|
|
5479
|
-
dispatch(setAmount(maskedValue));
|
|
5480
|
-
}
|
|
5532
|
+
setAmountValue(maskedValue);
|
|
5533
|
+
dispatch(setAmount(maskedValue));
|
|
5481
5534
|
}
|
|
5482
5535
|
}
|
|
5483
|
-
), /* @__PURE__ */ React103.createElement(
|
|
5536
|
+
), /* @__PURE__ */ React103.createElement("div", { className: "max-disclaimer" }, /* @__PURE__ */ React103.createElement(
|
|
5484
5537
|
"span",
|
|
5485
5538
|
{
|
|
5486
5539
|
className: "max-button",
|
|
@@ -5490,22 +5543,7 @@ var SingleForm = ({
|
|
|
5490
5543
|
}
|
|
5491
5544
|
},
|
|
5492
5545
|
"Max"
|
|
5493
|
-
)
|
|
5494
|
-
"input",
|
|
5495
|
-
{
|
|
5496
|
-
className: `${theme.colorMode}`,
|
|
5497
|
-
type: "number",
|
|
5498
|
-
placeholder: "Amount",
|
|
5499
|
-
value: transactionOption?.amount || amountValue || "",
|
|
5500
|
-
onChange: (e) => {
|
|
5501
|
-
let _amount = +e.target.value;
|
|
5502
|
-
const decimal = sourceNetwork.shortName === "BTC" /* BTC */ || targetNetwork.shortName === "BTC" /* BTC */ ? 8 : 2;
|
|
5503
|
-
setAmountValue(e.target.value);
|
|
5504
|
-
dispatch(setAmount(_amount.toFixed(decimal)));
|
|
5505
|
-
},
|
|
5506
|
-
disabled: transactionOption?.amount !== void 0
|
|
5507
|
-
}
|
|
5508
|
-
), /* @__PURE__ */ React103.createElement("div", { className: `coin-wrapper ${theme.colorMode}` }, /* @__PURE__ */ React103.createElement("div", { className: "icon-wrapper" }, /* @__PURE__ */ React103.createElement(TargetIcon, null)), targetCurrency))));
|
|
5546
|
+
), totalFeeUsd !== -1 && /* @__PURE__ */ React103.createElement("p", null, "Est fees: $ ", totalFeeUsd, " USD")))));
|
|
5509
5547
|
};
|
|
5510
5548
|
var SingleForm_default = SingleForm;
|
|
5511
5549
|
|
|
@@ -5564,6 +5602,7 @@ import { useWallet as useWallet7 } from "@solana/wallet-adapter-react";
|
|
|
5564
5602
|
import { WalletReadyState } from "@solana/wallet-adapter-base";
|
|
5565
5603
|
var SolanaWalletSelect = () => {
|
|
5566
5604
|
const theme = useSelector31(selectTheme);
|
|
5605
|
+
const sourceChain = useSelector31(selectSourceChain);
|
|
5567
5606
|
const dispatch = useDispatch18();
|
|
5568
5607
|
const sliderRef = useRef5();
|
|
5569
5608
|
const { wallet, wallets, select, connect, connected } = useWallet7();
|
|
@@ -5607,17 +5646,30 @@ var SolanaWalletSelect = () => {
|
|
|
5607
5646
|
}, []);
|
|
5608
5647
|
const handleWalletClick = useCallback2(
|
|
5609
5648
|
(walletName) => {
|
|
5649
|
+
console.log(
|
|
5650
|
+
"SolanaWalletSelect: handleWalletClick: walletName: ",
|
|
5651
|
+
walletName
|
|
5652
|
+
);
|
|
5610
5653
|
select(walletName);
|
|
5611
5654
|
},
|
|
5612
5655
|
[select]
|
|
5613
5656
|
);
|
|
5614
5657
|
useEffect16(() => {
|
|
5615
|
-
|
|
5616
|
-
if (wallet)
|
|
5617
|
-
|
|
5618
|
-
|
|
5658
|
+
console.log("SolanaWalletSelect: useEffect: wallet: ", wallet);
|
|
5659
|
+
if (!wallet) return;
|
|
5660
|
+
if (sourceChain.shortName !== "SOL") {
|
|
5661
|
+
console.log("SolanaWalletSelect: source chain is not sol...");
|
|
5662
|
+
return;
|
|
5663
|
+
}
|
|
5664
|
+
if (!connected) {
|
|
5665
|
+
console.log(
|
|
5666
|
+
"SolanaWalletSelect: Wallet exists but not connected, connecting wallet:",
|
|
5667
|
+
wallet
|
|
5668
|
+
);
|
|
5669
|
+
connect().catch((err) => console.error("Solana connect error:", err));
|
|
5619
5670
|
}
|
|
5620
|
-
|
|
5671
|
+
dispatch(setSolanaConnectModal(false));
|
|
5672
|
+
}, [wallet, sourceChain]);
|
|
5621
5673
|
return /* @__PURE__ */ React104.createElement("div", { className: `wallet-select` }, /* @__PURE__ */ React104.createElement("div", { className: "slide-area hide-scrollbar", ref: sliderRef }, /* @__PURE__ */ React104.createElement("div", { className: "wallet-container" }, detected.map((wallet2, index) => /* @__PURE__ */ React104.createElement(
|
|
5622
5674
|
"div",
|
|
5623
5675
|
{
|
|
@@ -5659,7 +5711,7 @@ var AccountDetailsModal = () => {
|
|
|
5659
5711
|
solanaWalletDisconnect();
|
|
5660
5712
|
dispatch(setAccountDetailsModal(false));
|
|
5661
5713
|
};
|
|
5662
|
-
if (sourceChain !== "SOL") return;
|
|
5714
|
+
if (sourceChain.shortName !== "SOL") return;
|
|
5663
5715
|
return /* @__PURE__ */ React105.createElement(
|
|
5664
5716
|
"div",
|
|
5665
5717
|
{
|
|
@@ -5731,7 +5783,7 @@ var AccountDetailsModal2 = () => {
|
|
|
5731
5783
|
const { balance: tronBalance } = useGetTrxBalance_default();
|
|
5732
5784
|
const selectedNetwork = useSelector34(selectSourceChain);
|
|
5733
5785
|
const networkDetails = useMemo18(
|
|
5734
|
-
() => networkOptions.find(({ id }) => id === selectedNetwork),
|
|
5786
|
+
() => networkOptions.find(({ id }) => id === selectedNetwork.shortName),
|
|
5735
5787
|
[selectedNetwork]
|
|
5736
5788
|
);
|
|
5737
5789
|
const explorerUrl = useMemo18(() => {
|
|
@@ -5741,7 +5793,7 @@ var AccountDetailsModal2 = () => {
|
|
|
5741
5793
|
tronWalletDisconnect();
|
|
5742
5794
|
dispatch(setAccountDetailsModal(false));
|
|
5743
5795
|
};
|
|
5744
|
-
if (sourcheChain !== "TRX") return;
|
|
5796
|
+
if (sourcheChain.shortName !== "TRX") return;
|
|
5745
5797
|
return /* @__PURE__ */ React107.createElement(
|
|
5746
5798
|
"div",
|
|
5747
5799
|
{
|
|
@@ -5760,7 +5812,7 @@ var AccountDetailsModal2 = () => {
|
|
|
5760
5812
|
fill: theme.colorMode === "light" ? "black" : "white"
|
|
5761
5813
|
}
|
|
5762
5814
|
)
|
|
5763
|
-
)))), /* @__PURE__ */ React107.createElement("div", { className: "modal-content" }, /* @__PURE__ */ React107.createElement("div", { className: "summary" }, networkDetails && /* @__PURE__ */ React107.createElement(networkDetails.icon, { width: 60, height: 60 }), /* @__PURE__ */ React107.createElement("div", { className: "address" }, /* @__PURE__ */ React107.createElement("h2", null, getShortenedAddress(walletAddress || "")), /* @__PURE__ */ React107.createElement(CopyButton_default, { text: walletAddress })), /* @__PURE__ */ React107.createElement("h3", null, tronBalance, " ", selectedNetwork)), /* @__PURE__ */ React107.createElement(SecondaryButton_default, { className: "block-explorer" }, /* @__PURE__ */ React107.createElement(ExternalLink_default, { className: "link", to: explorerUrl }, /* @__PURE__ */ React107.createElement(Explorer_default, { fill: "#778DA3" }), /* @__PURE__ */ React107.createElement("p", null, "Block explorer"), /* @__PURE__ */ React107.createElement(ExternalUrl_default, { fill: "#778DA3" }))), /* @__PURE__ */ React107.createElement(PrimaryButton_default, { clickHandler: handleDisconnect }, "Disconnect")))
|
|
5815
|
+
)))), /* @__PURE__ */ React107.createElement("div", { className: "modal-content" }, /* @__PURE__ */ React107.createElement("div", { className: "summary" }, networkDetails && /* @__PURE__ */ React107.createElement(networkDetails.icon, { width: 60, height: 60 }), /* @__PURE__ */ React107.createElement("div", { className: "address" }, /* @__PURE__ */ React107.createElement("h2", null, getShortenedAddress(walletAddress || "")), /* @__PURE__ */ React107.createElement(CopyButton_default, { text: walletAddress })), /* @__PURE__ */ React107.createElement("h3", null, tronBalance, " ", selectedNetwork.shortName)), /* @__PURE__ */ React107.createElement(SecondaryButton_default, { className: "block-explorer" }, /* @__PURE__ */ React107.createElement(ExternalLink_default, { className: "link", to: explorerUrl }, /* @__PURE__ */ React107.createElement(Explorer_default, { fill: "#778DA3" }), /* @__PURE__ */ React107.createElement("p", null, "Block explorer"), /* @__PURE__ */ React107.createElement(ExternalUrl_default, { fill: "#778DA3" }))), /* @__PURE__ */ React107.createElement(PrimaryButton_default, { clickHandler: handleDisconnect }, "Disconnect")))
|
|
5764
5816
|
);
|
|
5765
5817
|
};
|
|
5766
5818
|
var AccountDetailsModal_default2 = AccountDetailsModal2;
|
|
@@ -5891,7 +5943,8 @@ var useValidateTransaction = ({
|
|
|
5891
5943
|
sourceCompliant,
|
|
5892
5944
|
targetCompliant,
|
|
5893
5945
|
mode,
|
|
5894
|
-
pools
|
|
5946
|
+
pools,
|
|
5947
|
+
formStep
|
|
5895
5948
|
}) => {
|
|
5896
5949
|
const maxValue = useMemo20(() => {
|
|
5897
5950
|
if (!balance) return 0;
|
|
@@ -5939,24 +5992,22 @@ var useValidateTransaction = ({
|
|
|
5939
5992
|
};
|
|
5940
5993
|
}
|
|
5941
5994
|
}
|
|
5942
|
-
|
|
5943
|
-
console.log("useValidate:maxValue ", maxValue);
|
|
5944
|
-
if (+amount < totalFeeUsd) {
|
|
5995
|
+
if (+amount > balance && formStep === 0) {
|
|
5945
5996
|
return {
|
|
5946
|
-
error: "
|
|
5947
|
-
message: "
|
|
5997
|
+
error: "Warning" /* Warning */,
|
|
5998
|
+
message: "The entered amount exceeds your available balance. This transaction is likely to fail. Proceed with caution."
|
|
5948
5999
|
};
|
|
5949
6000
|
}
|
|
5950
|
-
if (+amount > maxValue) {
|
|
6001
|
+
if (+amount > maxValue && formStep === 0) {
|
|
5951
6002
|
return {
|
|
5952
|
-
error: "
|
|
5953
|
-
message:
|
|
6003
|
+
error: "Warning" /* Warning */,
|
|
6004
|
+
message: "The entered amount exceeds the maximum transferable amount (available balance minus transaction fees). Reduce the amount or allow fees to be deducted from the transferred amount. Otherwise, your transaction may fail. Proceed with caution."
|
|
5954
6005
|
};
|
|
5955
6006
|
}
|
|
5956
|
-
if (
|
|
6007
|
+
if (+amount < totalFeeUsd && formStep === 0) {
|
|
5957
6008
|
return {
|
|
5958
|
-
error: "
|
|
5959
|
-
message: "
|
|
6009
|
+
error: "Warning" /* Warning */,
|
|
6010
|
+
message: "Transaction fees exceed the transfer amount. This may result in an ineffective transaction. Proceed with caution."
|
|
5960
6011
|
};
|
|
5961
6012
|
}
|
|
5962
6013
|
if (!isApproved && isSubmitting) {
|
|
@@ -6001,7 +6052,7 @@ var useSubmitTransaction = ({
|
|
|
6001
6052
|
}) => {
|
|
6002
6053
|
const dispatch = useDispatch24();
|
|
6003
6054
|
const [isSubmitting, setSubmitting] = useState13(false);
|
|
6004
|
-
const submitTransaction = async () => {
|
|
6055
|
+
const submitTransaction = async (signature) => {
|
|
6005
6056
|
try {
|
|
6006
6057
|
setSubmitting(true);
|
|
6007
6058
|
const params = JSON.stringify({
|
|
@@ -6018,7 +6069,8 @@ var useSubmitTransaction = ({
|
|
|
6018
6069
|
htlcCreationVout: 0,
|
|
6019
6070
|
htlcExpirationTimestamp: "0",
|
|
6020
6071
|
htlcVersion: "",
|
|
6021
|
-
senderPubKey: ""
|
|
6072
|
+
senderPubKey: "",
|
|
6073
|
+
options: signature
|
|
6022
6074
|
});
|
|
6023
6075
|
const transactionResult = await fetchWrapper.post(
|
|
6024
6076
|
`${backendUrl}/submit`,
|
|
@@ -6110,6 +6162,31 @@ function useDisconnectWallet4() {
|
|
|
6110
6162
|
return mainConnection ? { disconnectWallet: mainConnection.disconnectWallet } : defaultDisconnect;
|
|
6111
6163
|
}
|
|
6112
6164
|
|
|
6165
|
+
// src/components/reusable/WarningModal.tsx
|
|
6166
|
+
import React110 from "react";
|
|
6167
|
+
var WarningModal = ({
|
|
6168
|
+
message,
|
|
6169
|
+
onAcknowledge,
|
|
6170
|
+
onCancel
|
|
6171
|
+
}) => {
|
|
6172
|
+
return /* @__PURE__ */ React110.createElement("div", { className: "warning-modal-overlay" }, /* @__PURE__ */ React110.createElement("div", { className: "warning-modal" }, /* @__PURE__ */ React110.createElement("h3", null, "Warning"), /* @__PURE__ */ React110.createElement("p", null, message), /* @__PURE__ */ React110.createElement("div", { className: "warning-modal-buttons" }, /* @__PURE__ */ React110.createElement(
|
|
6173
|
+
SecondaryButton_default,
|
|
6174
|
+
{
|
|
6175
|
+
className: "warning-modal-cancel",
|
|
6176
|
+
clickHandler: onCancel
|
|
6177
|
+
},
|
|
6178
|
+
"Cancel"
|
|
6179
|
+
), /* @__PURE__ */ React110.createElement(
|
|
6180
|
+
PrimaryButton_default,
|
|
6181
|
+
{
|
|
6182
|
+
className: "warning-modal-acknowledge",
|
|
6183
|
+
clickHandler: onAcknowledge
|
|
6184
|
+
},
|
|
6185
|
+
"Acknowledge"
|
|
6186
|
+
))));
|
|
6187
|
+
};
|
|
6188
|
+
var WarningModal_default = WarningModal;
|
|
6189
|
+
|
|
6113
6190
|
// src/components/TransferWidget.tsx
|
|
6114
6191
|
var TransferWidget = ({
|
|
6115
6192
|
theme,
|
|
@@ -6120,6 +6197,7 @@ var TransferWidget = ({
|
|
|
6120
6197
|
const dispatch = useDispatch25();
|
|
6121
6198
|
const mainRef = useRef7(null);
|
|
6122
6199
|
const [formStep, setFormStep] = useState14(0);
|
|
6200
|
+
const [warningModalOpen, setWarningModalOpen] = useState14(null);
|
|
6123
6201
|
const dAppOption = useSelector37(selectDappOption);
|
|
6124
6202
|
const mode = useSelector37(selectMode);
|
|
6125
6203
|
const transactionOption = useSelector37(selectTransactionOption);
|
|
@@ -6150,7 +6228,7 @@ var TransferWidget = ({
|
|
|
6150
6228
|
const { width: windowWidth } = useWidth_default();
|
|
6151
6229
|
const { disconnectWallet } = useDisconnectWallet4();
|
|
6152
6230
|
const { balance } = useBalance2();
|
|
6153
|
-
const { allowance, isApproved, approve, decimals } = useAllowance({
|
|
6231
|
+
const { allowance, isApproved, approve, decimals, signMessage } = useAllowance({
|
|
6154
6232
|
setApproving,
|
|
6155
6233
|
setCancellingApprove
|
|
6156
6234
|
});
|
|
@@ -6181,7 +6259,8 @@ var TransferWidget = ({
|
|
|
6181
6259
|
compliantOption,
|
|
6182
6260
|
mode,
|
|
6183
6261
|
pools,
|
|
6184
|
-
feeDeduct
|
|
6262
|
+
feeDeduct,
|
|
6263
|
+
formStep
|
|
6185
6264
|
});
|
|
6186
6265
|
const { submitTransaction, isSubmitting } = useSubmitTransaction_default({
|
|
6187
6266
|
amount: BigInt(submitAmount ?? "0"),
|
|
@@ -6198,7 +6277,7 @@ var TransferWidget = ({
|
|
|
6198
6277
|
const handleSubmit = async () => {
|
|
6199
6278
|
const { error, message: validationMessage } = validate(true);
|
|
6200
6279
|
if (error === "ValidationError" /* Error */) {
|
|
6201
|
-
return toast5.error(validationMessage, { icon: /* @__PURE__ */
|
|
6280
|
+
return toast5.error(validationMessage, { icon: /* @__PURE__ */ React111.createElement(Error_default, null) });
|
|
6202
6281
|
}
|
|
6203
6282
|
if (error === "ApprovalNeeded" /* ApprovalNeeded */) {
|
|
6204
6283
|
return approve();
|
|
@@ -6207,18 +6286,30 @@ var TransferWidget = ({
|
|
|
6207
6286
|
keplrHandler && keplrHandler(sourceAddress);
|
|
6208
6287
|
return;
|
|
6209
6288
|
}
|
|
6210
|
-
const
|
|
6211
|
-
|
|
6289
|
+
const signature = await signMessage?.({
|
|
6290
|
+
targetAddress,
|
|
6291
|
+
targetChain: targetChain.shortName,
|
|
6292
|
+
targetSymbol: targetCurrency
|
|
6293
|
+
});
|
|
6294
|
+
const { success, message: submitMessage } = await submitTransaction(
|
|
6295
|
+
JSON.stringify({ signature })
|
|
6296
|
+
);
|
|
6297
|
+
if (!success) return toast5.error(submitMessage, { icon: /* @__PURE__ */ React111.createElement(Error_default, null) });
|
|
6212
6298
|
};
|
|
6213
6299
|
const onNext = () => {
|
|
6214
|
-
const { error, message } = validate();
|
|
6300
|
+
const { error, message: validationMessage } = validate();
|
|
6301
|
+
if (error === "Warning" /* Warning */ && formStep === 0) {
|
|
6302
|
+
console.log("validationError: Warning: ", validationMessage);
|
|
6303
|
+
setWarningModalOpen({ message: validationMessage });
|
|
6304
|
+
return;
|
|
6305
|
+
}
|
|
6215
6306
|
if (error !== "ValidationError" /* Error */ && !formStep) {
|
|
6216
6307
|
return setFormStep(1);
|
|
6217
6308
|
}
|
|
6218
6309
|
if (error !== "ValidationError" /* Error */ && formStep > 0) {
|
|
6219
6310
|
return handleSubmit();
|
|
6220
6311
|
}
|
|
6221
|
-
toast5.error(
|
|
6312
|
+
toast5.error(validationMessage, { icon: /* @__PURE__ */ React111.createElement(Error_default, null) });
|
|
6222
6313
|
mainRef.current?.click();
|
|
6223
6314
|
};
|
|
6224
6315
|
const onBack = () => {
|
|
@@ -6278,7 +6369,7 @@ var TransferWidget = ({
|
|
|
6278
6369
|
useEffect18(() => {
|
|
6279
6370
|
dispatch(setTheme(theme));
|
|
6280
6371
|
}, [theme]);
|
|
6281
|
-
return /* @__PURE__ */
|
|
6372
|
+
return /* @__PURE__ */ React111.createElement(
|
|
6282
6373
|
"div",
|
|
6283
6374
|
{
|
|
6284
6375
|
className: `kima-card ${theme.colorMode}`,
|
|
@@ -6286,14 +6377,28 @@ var TransferWidget = ({
|
|
|
6286
6377
|
background: theme.colorMode === "light" /* light */ ? theme.backgroundColorLight : theme.backgroundColorDark
|
|
6287
6378
|
}
|
|
6288
6379
|
},
|
|
6289
|
-
|
|
6290
|
-
|
|
6380
|
+
warningModalOpen && /* @__PURE__ */ React111.createElement(
|
|
6381
|
+
WarningModal_default,
|
|
6382
|
+
{
|
|
6383
|
+
message: warningModalOpen.message,
|
|
6384
|
+
onAcknowledge: () => {
|
|
6385
|
+
setWarningModalOpen(null);
|
|
6386
|
+
setFormStep(1);
|
|
6387
|
+
},
|
|
6388
|
+
onCancel: () => {
|
|
6389
|
+
setWarningModalOpen(null);
|
|
6390
|
+
setFormStep(0);
|
|
6391
|
+
}
|
|
6392
|
+
}
|
|
6393
|
+
),
|
|
6394
|
+
mode === "payment" /* payment */ && !transactionOption && /* @__PURE__ */ React111.createElement("h2", { className: "invalid-option-banner" }, "We're unable to process your payment. Please ensure the necessary transaction details are provided. Contact support if the issue persists."),
|
|
6395
|
+
/* @__PURE__ */ React111.createElement("div", { className: "transfer-card" }, /* @__PURE__ */ React111.createElement("div", { className: "kima-card-header" }, /* @__PURE__ */ React111.createElement("div", { className: "topbar" }, /* @__PURE__ */ React111.createElement("div", { className: "title" }, /* @__PURE__ */ React111.createElement("h3", null, formStep === 0 ? titleOption?.initialTitle ? titleOption.initialTitle : mode === "payment" /* payment */ ? "New Purchase" : "New Transfer" : titleOption?.confirmTitle ? titleOption.confirmTitle : mode === "payment" /* payment */ ? "Confirm Purchase" : "Transfer Details")), /* @__PURE__ */ React111.createElement("div", { className: "control-buttons" }, pendingTxs > 0 ? /* @__PURE__ */ React111.createElement(TxButton_default, { theme }) : null, /* @__PURE__ */ React111.createElement(
|
|
6291
6396
|
ExternalLink_default,
|
|
6292
6397
|
{
|
|
6293
6398
|
to: helpURL ? helpURL : "https://docs.kima.network/kima-network/try-kima-with-the-demo-app"
|
|
6294
6399
|
},
|
|
6295
|
-
/* @__PURE__ */
|
|
6296
|
-
), formStep === 0 && mode !== "payment" /* payment */ && /* @__PURE__ */
|
|
6400
|
+
/* @__PURE__ */ React111.createElement("div", { className: "menu-button" }, "I need help")
|
|
6401
|
+
), formStep === 0 && mode !== "payment" /* payment */ && /* @__PURE__ */ React111.createElement(
|
|
6297
6402
|
"button",
|
|
6298
6403
|
{
|
|
6299
6404
|
className: "reset-button",
|
|
@@ -6301,7 +6406,7 @@ var TransferWidget = ({
|
|
|
6301
6406
|
disabled: isApproving || isSubmitting || isSigning
|
|
6302
6407
|
},
|
|
6303
6408
|
"Reset"
|
|
6304
|
-
))), mode === "payment" /* payment */ && paymentTitleOption?.title && /* @__PURE__ */
|
|
6409
|
+
))), mode === "payment" /* payment */ && paymentTitleOption?.title && /* @__PURE__ */ React111.createElement("h4", { className: "subtitle" }, paymentTitleOption.title)), /* @__PURE__ */ React111.createElement("div", { className: "kima-card-content", ref: mainRef }, formStep === 0 ? /* @__PURE__ */ React111.createElement(
|
|
6305
6410
|
SingleForm_default,
|
|
6306
6411
|
{
|
|
6307
6412
|
...{
|
|
@@ -6319,7 +6424,7 @@ var TransferWidget = ({
|
|
|
6319
6424
|
isCancellingApprove
|
|
6320
6425
|
}
|
|
6321
6426
|
}
|
|
6322
|
-
) : /* @__PURE__ */
|
|
6427
|
+
) : /* @__PURE__ */ React111.createElement(
|
|
6323
6428
|
ConfirmDetails_default,
|
|
6324
6429
|
{
|
|
6325
6430
|
...{
|
|
@@ -6338,12 +6443,12 @@ var TransferWidget = ({
|
|
|
6338
6443
|
isApproved
|
|
6339
6444
|
}
|
|
6340
6445
|
}
|
|
6341
|
-
)), /* @__PURE__ */
|
|
6446
|
+
)), /* @__PURE__ */ React111.createElement(
|
|
6342
6447
|
"div",
|
|
6343
6448
|
{
|
|
6344
6449
|
className: `kima-card-footer ${mode === "bridge" /* bridge */ && formStep !== 0 && "confirm"}`
|
|
6345
6450
|
},
|
|
6346
|
-
/* @__PURE__ */
|
|
6451
|
+
/* @__PURE__ */ React111.createElement("div", { className: `button-group` }, formStep !== 0 && /* @__PURE__ */ React111.createElement(
|
|
6347
6452
|
SecondaryButton_default,
|
|
6348
6453
|
{
|
|
6349
6454
|
clickHandler: onBack,
|
|
@@ -6351,7 +6456,7 @@ var TransferWidget = ({
|
|
|
6351
6456
|
disabled: isApproving || isSubmitting || isSigning
|
|
6352
6457
|
},
|
|
6353
6458
|
formStep > 0 ? "Back" : "Cancel"
|
|
6354
|
-
), allowance > 0 && formStep !== 0 ? /* @__PURE__ */
|
|
6459
|
+
), allowance > 0 && formStep !== 0 ? /* @__PURE__ */ React111.createElement(
|
|
6355
6460
|
SecondaryButton_default,
|
|
6356
6461
|
{
|
|
6357
6462
|
clickHandler: onCancelApprove,
|
|
@@ -6360,7 +6465,7 @@ var TransferWidget = ({
|
|
|
6360
6465
|
disabled: isCancellingApprove || isApproving || isSubmitting || isSigning
|
|
6361
6466
|
},
|
|
6362
6467
|
isCancellingApprove ? "Cancelling Approval" : "Cancel Approve"
|
|
6363
|
-
) : null, /* @__PURE__ */
|
|
6468
|
+
) : null, /* @__PURE__ */ React111.createElement(
|
|
6364
6469
|
PrimaryButton_default,
|
|
6365
6470
|
{
|
|
6366
6471
|
clickHandler: onNext,
|
|
@@ -6369,7 +6474,7 @@ var TransferWidget = ({
|
|
|
6369
6474
|
},
|
|
6370
6475
|
getButtonLabel()
|
|
6371
6476
|
))
|
|
6372
|
-
), /* @__PURE__ */
|
|
6477
|
+
), /* @__PURE__ */ React111.createElement(SolanaWalletConnectModal_default, null), /* @__PURE__ */ React111.createElement(TronWalletConnectModal_default, null), /* @__PURE__ */ React111.createElement(
|
|
6373
6478
|
Toaster2,
|
|
6374
6479
|
{
|
|
6375
6480
|
position: "top-right",
|
|
@@ -6394,7 +6499,7 @@ var TransferWidget = ({
|
|
|
6394
6499
|
}
|
|
6395
6500
|
}
|
|
6396
6501
|
}
|
|
6397
|
-
), /* @__PURE__ */
|
|
6502
|
+
), /* @__PURE__ */ React111.createElement("div", { className: "floating-footer" }, /* @__PURE__ */ React111.createElement("div", { className: `items ${theme.colorMode}` }, /* @__PURE__ */ React111.createElement("span", null, "Powered by"), /* @__PURE__ */ React111.createElement(FooterLogo_default, { width: 50, fill: "black" }), /* @__PURE__ */ React111.createElement("strong", null, "Network"))))
|
|
6398
6503
|
);
|
|
6399
6504
|
};
|
|
6400
6505
|
|
|
@@ -6468,7 +6573,7 @@ var KimaWidgetWrapper = ({
|
|
|
6468
6573
|
if (!chainData?.length) return;
|
|
6469
6574
|
indexPluginsByChain(chainData);
|
|
6470
6575
|
}, [chainData]);
|
|
6471
|
-
return submitted ? /* @__PURE__ */
|
|
6576
|
+
return submitted ? /* @__PURE__ */ React112.createElement(TransactionWidget, { theme }) : /* @__PURE__ */ React112.createElement(
|
|
6472
6577
|
TransferWidget,
|
|
6473
6578
|
{
|
|
6474
6579
|
theme,
|
|
@@ -6507,7 +6612,7 @@ var KimaTransactionWidget = ({
|
|
|
6507
6612
|
dispatch(setTargetChain(chainData[1]));
|
|
6508
6613
|
}
|
|
6509
6614
|
}, [chainData]);
|
|
6510
|
-
return isLoadingEnvs || isLoadingChainData ? /* @__PURE__ */
|
|
6615
|
+
return isLoadingEnvs || isLoadingChainData ? /* @__PURE__ */ React113.createElement(ring_default, null) : /* @__PURE__ */ React113.createElement(
|
|
6511
6616
|
KimaWidgetWrapper_default,
|
|
6512
6617
|
{
|
|
6513
6618
|
...{
|