@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.cjs
CHANGED
|
@@ -2544,11 +2544,12 @@ function useIsWalletReady() {
|
|
|
2544
2544
|
checkChainId();
|
|
2545
2545
|
}, [externalProvider, sourceChain, switchNetwork, walletChainId, isConnected]);
|
|
2546
2546
|
(0, import_react76.useEffect)(() => {
|
|
2547
|
-
if (isConnected) {
|
|
2547
|
+
if (isConnected && sourceChain.compatibility === "EVM" /* EVM */) {
|
|
2548
2548
|
console.debug(
|
|
2549
2549
|
"useIsWalletReady:EVM: Dispatching source address:",
|
|
2550
2550
|
walletAddress
|
|
2551
2551
|
);
|
|
2552
|
+
console.log("dispatching evm address: ", walletAddress);
|
|
2552
2553
|
dispatch(setSourceAddress(walletAddress ?? ""));
|
|
2553
2554
|
}
|
|
2554
2555
|
}, [walletAddress, isConnected, dispatch]);
|
|
@@ -2627,6 +2628,12 @@ var checkPoolBalance = ({
|
|
|
2627
2628
|
const targetToken = poolTokens.find(
|
|
2628
2629
|
(token) => token.tokenSymbol === finalTargetCurrency
|
|
2629
2630
|
);
|
|
2631
|
+
if (!targetToken) {
|
|
2632
|
+
return {
|
|
2633
|
+
isPoolAvailable: false,
|
|
2634
|
+
error: `${CHAIN_NAMES_TO_STRING[targetChain]} has no ${targetCurrency} pool!`
|
|
2635
|
+
};
|
|
2636
|
+
}
|
|
2630
2637
|
const { amount: targetTokenBalance } = targetToken;
|
|
2631
2638
|
if (parseFloat(amount) > parseFloat(targetTokenBalance))
|
|
2632
2639
|
return {
|
|
@@ -2774,6 +2781,33 @@ function useEvmAllowance() {
|
|
|
2774
2781
|
refetchInterval: 60 * 1e3,
|
|
2775
2782
|
enabled
|
|
2776
2783
|
});
|
|
2784
|
+
const signMessage = async (data) => {
|
|
2785
|
+
if (!walletProvider) {
|
|
2786
|
+
console.error("No available provider");
|
|
2787
|
+
return;
|
|
2788
|
+
}
|
|
2789
|
+
if (!allowanceData?.decimals) {
|
|
2790
|
+
console.warn("useEvmAllowance: Missing required data");
|
|
2791
|
+
return;
|
|
2792
|
+
}
|
|
2793
|
+
try {
|
|
2794
|
+
const walletClient = (0, import_viem5.createWalletClient)({
|
|
2795
|
+
account: walletAddress,
|
|
2796
|
+
chain: sourceChain,
|
|
2797
|
+
transport: (0, import_viem5.custom)(window.ethereum)
|
|
2798
|
+
// WARNING: NEED TO MAKE SURE THIS USING THE ETHEREUM OBJECT IS STABLE ENOUGH
|
|
2799
|
+
});
|
|
2800
|
+
return await walletClient.signMessage({
|
|
2801
|
+
account: walletAddress,
|
|
2802
|
+
message: `Target Address: ${data.targetAddress}
|
|
2803
|
+
Target Chain: ${data.targetChain}
|
|
2804
|
+
Target Symbol: ${data.targetSymbol}`
|
|
2805
|
+
});
|
|
2806
|
+
} catch (error) {
|
|
2807
|
+
console.error("useEvmAllowance: Error on signing message:", error);
|
|
2808
|
+
throw new Error("Error on signing message");
|
|
2809
|
+
}
|
|
2810
|
+
};
|
|
2777
2811
|
const approveErc20TokenTransfer = async (isCancel = false) => {
|
|
2778
2812
|
if (!walletProvider) {
|
|
2779
2813
|
console.error("No available provider");
|
|
@@ -2839,6 +2873,7 @@ function useEvmAllowance() {
|
|
|
2839
2873
|
isApproved: allowanceData?.allowance ? allowanceData.allowance >= allowanceNumber : false,
|
|
2840
2874
|
approve: approveErc20TokenTransfer,
|
|
2841
2875
|
isLoading,
|
|
2876
|
+
signMessage,
|
|
2842
2877
|
refetch
|
|
2843
2878
|
};
|
|
2844
2879
|
}
|
|
@@ -2922,6 +2957,7 @@ var WalletProvider2 = ({
|
|
|
2922
2957
|
return /* @__PURE__ */ import_react82.default.createElement(import_wallet_adapter_react.ConnectionProvider, { endpoint }, /* @__PURE__ */ import_react82.default.createElement(
|
|
2923
2958
|
import_wallet_adapter_react.WalletProvider,
|
|
2924
2959
|
{
|
|
2960
|
+
autoConnect: false,
|
|
2925
2961
|
wallets: [
|
|
2926
2962
|
new import_wallet_adapter_wallets.PhantomWalletAdapter(),
|
|
2927
2963
|
new import_wallet_adapter_wallets.SolflareWalletAdapter(),
|
|
@@ -3031,7 +3067,8 @@ function useSolanaAllowance() {
|
|
|
3031
3067
|
const { connection: internalConnection } = (0, import_wallet_adapter_react3.useConnection)();
|
|
3032
3068
|
const {
|
|
3033
3069
|
publicKey: internalPublicKey,
|
|
3034
|
-
signTransaction: internalSignTransaction
|
|
3070
|
+
signTransaction: internalSignTransaction,
|
|
3071
|
+
signMessage: internalSignMessage
|
|
3035
3072
|
} = (0, import_wallet_adapter_react3.useWallet)();
|
|
3036
3073
|
const selectedCoin = (0, import_react_redux7.useSelector)(selectSourceCurrency);
|
|
3037
3074
|
const tokenOptions = (0, import_react_redux7.useSelector)(selectTokenOptions);
|
|
@@ -3040,6 +3077,7 @@ function useSolanaAllowance() {
|
|
|
3040
3077
|
const isSolanaProvider = sourceChain.shortName === "SOL" && externalProvider?.type === "solana" && externalProvider.provider && externalProvider.signer instanceof import_web38.PublicKey;
|
|
3041
3078
|
const userPublicKey = isSolanaProvider ? externalProvider.signer : sourceChain.shortName === "SOL" ? internalPublicKey : void 0;
|
|
3042
3079
|
const signTransaction = isSolanaProvider && externalProvider.provider.signTransaction ? externalProvider.provider.signTransaction : sourceChain.shortName === "SOL" ? internalSignTransaction : void 0;
|
|
3080
|
+
const signMessage = isSolanaProvider && externalProvider.provider.signMessage ? externalProvider.provider.signMessage : sourceChain.shortName === "SOL" ? internalSignMessage : void 0;
|
|
3043
3081
|
const connection = isSolanaProvider && externalProvider.provider.connection ? externalProvider.provider.connection : sourceChain.shortName === "SOL" ? internalConnection : void 0;
|
|
3044
3082
|
const {
|
|
3045
3083
|
data: allowanceData,
|
|
@@ -3068,6 +3106,23 @@ function useSolanaAllowance() {
|
|
|
3068
3106
|
staleTime: 1e3 * 60
|
|
3069
3107
|
// 1 min
|
|
3070
3108
|
});
|
|
3109
|
+
const signSolanaMessage = async (data) => {
|
|
3110
|
+
if (!signMessage) {
|
|
3111
|
+
console.warn("useSolanaAllowance: Missing Solana provider setup");
|
|
3112
|
+
return;
|
|
3113
|
+
}
|
|
3114
|
+
try {
|
|
3115
|
+
const message = `Target Address: ${data.targetAddress}
|
|
3116
|
+
Target Chain: ${data.targetChain}
|
|
3117
|
+
Target Symbol: ${data.targetSymbol}`;
|
|
3118
|
+
const encodedMessage = new TextEncoder().encode(message);
|
|
3119
|
+
const signature = await signMessage(encodedMessage);
|
|
3120
|
+
return `0x${Buffer.from(signature).toString("hex")}`;
|
|
3121
|
+
} catch (error2) {
|
|
3122
|
+
console.error("Error signing message:", error2);
|
|
3123
|
+
throw error2;
|
|
3124
|
+
}
|
|
3125
|
+
};
|
|
3071
3126
|
const approveSPLTokenTransfer = async (isCancel = false) => {
|
|
3072
3127
|
if (!allowanceAmount) {
|
|
3073
3128
|
console.warn("useSolanaAllowance: Missing allowance amount");
|
|
@@ -3125,7 +3180,8 @@ function useSolanaAllowance() {
|
|
|
3125
3180
|
return {
|
|
3126
3181
|
...allowanceData,
|
|
3127
3182
|
isApproved: allowanceData?.allowance ? allowanceData.allowance >= allowanceNumber : false,
|
|
3128
|
-
approve: approveSPLTokenTransfer
|
|
3183
|
+
approve: approveSPLTokenTransfer,
|
|
3184
|
+
signMessage: signSolanaMessage
|
|
3129
3185
|
};
|
|
3130
3186
|
}
|
|
3131
3187
|
|
|
@@ -3252,7 +3308,8 @@ var WalletProvider3 = ({ children, networkOption }) => {
|
|
|
3252
3308
|
{
|
|
3253
3309
|
adapters,
|
|
3254
3310
|
onError,
|
|
3255
|
-
onChainChanged
|
|
3311
|
+
onChainChanged,
|
|
3312
|
+
autoConnect: false
|
|
3256
3313
|
},
|
|
3257
3314
|
children
|
|
3258
3315
|
);
|
|
@@ -3599,7 +3656,8 @@ function useTronAllowance() {
|
|
|
3599
3656
|
const { pools } = useGetPools_default(backendUrl, networkOption);
|
|
3600
3657
|
const {
|
|
3601
3658
|
address: internalUserAddress,
|
|
3602
|
-
signTransaction: internalSignTronTransaction
|
|
3659
|
+
signTransaction: internalSignTronTransaction,
|
|
3660
|
+
signMessage: internalSignMessage
|
|
3603
3661
|
} = (0, import_tronwallet_adapter_react_hooks3.useWallet)();
|
|
3604
3662
|
const [approvalsCount, setApprovalsCount] = (0, import_react88.useState)(0);
|
|
3605
3663
|
const isTronProvider2 = sourceChain.shortName === "TRX" && externalProvider?.type === "tron" && externalProvider.provider.tronWeb instanceof import_tronweb5.TronWeb && typeof externalProvider.signer === "string";
|
|
@@ -3611,6 +3669,7 @@ function useTronAllowance() {
|
|
|
3611
3669
|
isTronProvider2 && tronWeb.setAddress(TRON_USDK_OWNER_ADDRESS);
|
|
3612
3670
|
const userAddress = isTronProvider2 ? externalProvider.signer : internalUserAddress;
|
|
3613
3671
|
const signTronTransaction = isTronProvider2 ? externalProvider.provider.signTransaction : internalSignTronTransaction;
|
|
3672
|
+
const signMessage = isTronProvider2 ? externalProvider.provider.signMessage : internalSignMessage;
|
|
3614
3673
|
const {
|
|
3615
3674
|
data: allowanceData,
|
|
3616
3675
|
isLoading,
|
|
@@ -3631,6 +3690,22 @@ function useTronAllowance() {
|
|
|
3631
3690
|
staleTime: 1e3 * 60
|
|
3632
3691
|
// 1 min
|
|
3633
3692
|
});
|
|
3693
|
+
const signTronMessage = async (data) => {
|
|
3694
|
+
if (!tronWeb) {
|
|
3695
|
+
console.warn("TronWeb not initialized");
|
|
3696
|
+
return;
|
|
3697
|
+
}
|
|
3698
|
+
try {
|
|
3699
|
+
const message = `Target Address: ${data.targetAddress}
|
|
3700
|
+
Target Chain: ${data.targetChain}
|
|
3701
|
+
Target Symbol: ${data.targetSymbol}`;
|
|
3702
|
+
const signedMessage = await signMessage(message);
|
|
3703
|
+
return signedMessage;
|
|
3704
|
+
} catch (error2) {
|
|
3705
|
+
console.error("Error signing message:", error2);
|
|
3706
|
+
throw error2;
|
|
3707
|
+
}
|
|
3708
|
+
};
|
|
3634
3709
|
const approveTrc20TokenTransfer = async (isCancel = false) => {
|
|
3635
3710
|
if (!userAddress || !pools || !tronWeb || !tokenOptions || !selectedCoin || !allowanceAmount) {
|
|
3636
3711
|
console.warn("Missing required data for approveTrc20TokenTransfer");
|
|
@@ -3669,7 +3744,8 @@ function useTronAllowance() {
|
|
|
3669
3744
|
return {
|
|
3670
3745
|
...allowanceData,
|
|
3671
3746
|
isApproved: allowanceData?.allowance ? allowanceData.allowance >= allowanceNumber : false,
|
|
3672
|
-
approve: approveTrc20TokenTransfer
|
|
3747
|
+
approve: approveTrc20TokenTransfer,
|
|
3748
|
+
signMessage: signTronMessage
|
|
3673
3749
|
};
|
|
3674
3750
|
}
|
|
3675
3751
|
|
|
@@ -3836,10 +3912,10 @@ var KimaProvider = ({
|
|
|
3836
3912
|
var KimaProvider_default = KimaProvider;
|
|
3837
3913
|
|
|
3838
3914
|
// src/components/KimaTransactionWidget.tsx
|
|
3839
|
-
var
|
|
3915
|
+
var import_react136 = __toESM(require("react"), 1);
|
|
3840
3916
|
|
|
3841
3917
|
// src/components/KimaWidgetWrapper.tsx
|
|
3842
|
-
var
|
|
3918
|
+
var import_react134 = __toESM(require("react"), 1);
|
|
3843
3919
|
var import_react_redux52 = require("react-redux");
|
|
3844
3920
|
|
|
3845
3921
|
// src/components/TransactionWidget.tsx
|
|
@@ -4596,12 +4672,13 @@ var AddressInput = ({
|
|
|
4596
4672
|
const targetChain = (0, import_react_redux29.useSelector)(selectTargetChain);
|
|
4597
4673
|
const { walletAddress: sourceAddress, isReady } = useIsWalletReady4();
|
|
4598
4674
|
const targetAddress = (0, import_react_redux29.useSelector)(selectTargetAddress);
|
|
4599
|
-
const
|
|
4600
|
-
return
|
|
4675
|
+
const isCompatible = (sourceChain2, targetChain2) => {
|
|
4676
|
+
return sourceChain2.compatibility === targetChain2.compatibility;
|
|
4601
4677
|
};
|
|
4602
4678
|
(0, import_react113.useEffect)(() => {
|
|
4603
4679
|
if (mode === "payment" /* payment */) return;
|
|
4604
|
-
if (
|
|
4680
|
+
if (isCompatible(sourceChain, targetChain)) {
|
|
4681
|
+
if (targetAddress !== "") return;
|
|
4605
4682
|
dispatch(setTargetAddress(isReady && sourceAddress ? sourceAddress : ""));
|
|
4606
4683
|
return;
|
|
4607
4684
|
}
|
|
@@ -5154,7 +5231,7 @@ var TransactionWidget = ({ theme }) => {
|
|
|
5154
5231
|
};
|
|
5155
5232
|
|
|
5156
5233
|
// src/components/TransferWidget.tsx
|
|
5157
|
-
var
|
|
5234
|
+
var import_react133 = __toESM(require("react"), 1);
|
|
5158
5235
|
var import_react_redux51 = require("react-redux");
|
|
5159
5236
|
|
|
5160
5237
|
// src/components/reusable/SingleForm.tsx
|
|
@@ -5325,18 +5402,8 @@ var NetworkSelector_default = import_react122.default.memo(NetworkSelector);
|
|
|
5325
5402
|
|
|
5326
5403
|
// src/components/reusable/SingleForm.tsx
|
|
5327
5404
|
var SingleForm = ({
|
|
5328
|
-
allowance,
|
|
5329
5405
|
balance,
|
|
5330
|
-
decimals
|
|
5331
|
-
formStep,
|
|
5332
|
-
onBack,
|
|
5333
|
-
onCancelApprove,
|
|
5334
|
-
onNext,
|
|
5335
|
-
getButtonLabel,
|
|
5336
|
-
isApproving,
|
|
5337
|
-
isSigning,
|
|
5338
|
-
isSubmitting,
|
|
5339
|
-
isCancellingApprove
|
|
5406
|
+
decimals
|
|
5340
5407
|
}) => {
|
|
5341
5408
|
const dispatch = (0, import_react_redux43.useDispatch)();
|
|
5342
5409
|
const mode = (0, import_react_redux43.useSelector)(selectMode);
|
|
@@ -5345,7 +5412,6 @@ var SingleForm = ({
|
|
|
5345
5412
|
const { totalFeeUsd } = (0, import_react_redux43.useSelector)(selectServiceFee);
|
|
5346
5413
|
const compliantOption = (0, import_react_redux43.useSelector)(selectCompliantOption);
|
|
5347
5414
|
const targetCompliant = (0, import_react_redux43.useSelector)(selectTargetCompliant);
|
|
5348
|
-
const transactionOption = (0, import_react_redux43.useSelector)(selectTransactionOption);
|
|
5349
5415
|
const sourceNetwork = (0, import_react_redux43.useSelector)(selectSourceChain);
|
|
5350
5416
|
const targetNetwork = (0, import_react_redux43.useSelector)(selectTargetChain);
|
|
5351
5417
|
const { isReady } = useIsWalletReady4();
|
|
@@ -5379,23 +5445,16 @@ var SingleForm = ({
|
|
|
5379
5445
|
const maxValue = (0, import_react123.useMemo)(() => {
|
|
5380
5446
|
if (!balance) return 0;
|
|
5381
5447
|
if (totalFeeUsd < 0) return balance;
|
|
5382
|
-
|
|
5383
|
-
return amountMinusFees > 0 ? amountMinusFees : 0;
|
|
5448
|
+
return preciseSubtraction(balance, totalFeeUsd);
|
|
5384
5449
|
}, [balance, totalFeeUsd, feeDeduct]);
|
|
5385
5450
|
(0, import_react123.useEffect)(() => {
|
|
5386
5451
|
if (!errorMessage) return;
|
|
5387
5452
|
import_react_hot_toast4.toast.error(errorMessage);
|
|
5388
5453
|
}, [errorMessage]);
|
|
5389
5454
|
(0, import_react123.useEffect)(() => {
|
|
5390
|
-
if (amountValue && amount
|
|
5455
|
+
if (amountValue && amount !== "") return;
|
|
5391
5456
|
setAmountValue(amount);
|
|
5392
5457
|
}, [amount]);
|
|
5393
|
-
(0, import_react123.useEffect)(() => {
|
|
5394
|
-
if (!feeDeduct && maxValue < +amountValue) {
|
|
5395
|
-
setAmountValue(maxValue.toString());
|
|
5396
|
-
dispatch(setAmount(maxValue.toString()));
|
|
5397
|
-
}
|
|
5398
|
-
}, [feeDeduct]);
|
|
5399
5458
|
return /* @__PURE__ */ import_react123.default.createElement("div", { className: "single-form" }, /* @__PURE__ */ import_react123.default.createElement("div", { className: "form-item" }, /* @__PURE__ */ import_react123.default.createElement("span", { className: "label" }, "Source Network:"), /* @__PURE__ */ import_react123.default.createElement("div", { className: "items" }, /* @__PURE__ */ import_react123.default.createElement(NetworkSelector_default, { type: "source" }), /* @__PURE__ */ import_react123.default.createElement(CoinDropdown_default, null))), /* @__PURE__ */ import_react123.default.createElement(
|
|
5400
5459
|
"div",
|
|
5401
5460
|
{
|
|
@@ -5416,27 +5475,21 @@ var SingleForm = ({
|
|
|
5416
5475
|
theme: theme.colorMode,
|
|
5417
5476
|
placeholder: "Target address"
|
|
5418
5477
|
}
|
|
5419
|
-
)) : null,
|
|
5478
|
+
)) : null, /* @__PURE__ */ import_react123.default.createElement("div", { className: `form-item ${theme.colorMode}` }, /* @__PURE__ */ import_react123.default.createElement("span", { className: "label" }, "Amount:"), /* @__PURE__ */ import_react123.default.createElement("div", { className: `amount-label-container items ${theme.colorMode}` }, /* @__PURE__ */ import_react123.default.createElement(
|
|
5420
5479
|
"input",
|
|
5421
5480
|
{
|
|
5422
5481
|
className: `${theme.colorMode}`,
|
|
5423
5482
|
type: "text",
|
|
5424
|
-
placeholder: "
|
|
5483
|
+
placeholder: "Enter amount",
|
|
5425
5484
|
value: amountValue || "",
|
|
5426
5485
|
onChange: (e) => {
|
|
5427
5486
|
const value = e.target.value;
|
|
5428
5487
|
const maskedValue = value.replace(/[^0-9.]/g, "").replace(/(\..*?)\..*/g, "$1").replace(new RegExp(`(\\.\\d{${decimals}})\\d+`), "$1");
|
|
5429
|
-
|
|
5430
|
-
|
|
5431
|
-
setAmountValue(maxValue.toString());
|
|
5432
|
-
dispatch(setAmount(maxValue.toString()));
|
|
5433
|
-
} else {
|
|
5434
|
-
setAmountValue(maskedValue);
|
|
5435
|
-
dispatch(setAmount(maskedValue));
|
|
5436
|
-
}
|
|
5488
|
+
setAmountValue(maskedValue);
|
|
5489
|
+
dispatch(setAmount(maskedValue));
|
|
5437
5490
|
}
|
|
5438
5491
|
}
|
|
5439
|
-
), /* @__PURE__ */ import_react123.default.createElement(
|
|
5492
|
+
), /* @__PURE__ */ import_react123.default.createElement("div", { className: "max-disclaimer" }, /* @__PURE__ */ import_react123.default.createElement(
|
|
5440
5493
|
"span",
|
|
5441
5494
|
{
|
|
5442
5495
|
className: "max-button",
|
|
@@ -5446,22 +5499,7 @@ var SingleForm = ({
|
|
|
5446
5499
|
}
|
|
5447
5500
|
},
|
|
5448
5501
|
"Max"
|
|
5449
|
-
)
|
|
5450
|
-
"input",
|
|
5451
|
-
{
|
|
5452
|
-
className: `${theme.colorMode}`,
|
|
5453
|
-
type: "number",
|
|
5454
|
-
placeholder: "Amount",
|
|
5455
|
-
value: transactionOption?.amount || amountValue || "",
|
|
5456
|
-
onChange: (e) => {
|
|
5457
|
-
let _amount = +e.target.value;
|
|
5458
|
-
const decimal = sourceNetwork.shortName === "BTC" /* BTC */ || targetNetwork.shortName === "BTC" /* BTC */ ? 8 : 2;
|
|
5459
|
-
setAmountValue(e.target.value);
|
|
5460
|
-
dispatch(setAmount(_amount.toFixed(decimal)));
|
|
5461
|
-
},
|
|
5462
|
-
disabled: transactionOption?.amount !== void 0
|
|
5463
|
-
}
|
|
5464
|
-
), /* @__PURE__ */ import_react123.default.createElement("div", { className: `coin-wrapper ${theme.colorMode}` }, /* @__PURE__ */ import_react123.default.createElement("div", { className: "icon-wrapper" }, /* @__PURE__ */ import_react123.default.createElement(TargetIcon, null)), targetCurrency))));
|
|
5502
|
+
), totalFeeUsd !== -1 && /* @__PURE__ */ import_react123.default.createElement("p", null, "Est fees: $ ", totalFeeUsd, " USD")))));
|
|
5465
5503
|
};
|
|
5466
5504
|
var SingleForm_default = SingleForm;
|
|
5467
5505
|
|
|
@@ -5520,6 +5558,7 @@ var import_wallet_adapter_react7 = require("@solana/wallet-adapter-react");
|
|
|
5520
5558
|
var import_wallet_adapter_base = require("@solana/wallet-adapter-base");
|
|
5521
5559
|
var SolanaWalletSelect = () => {
|
|
5522
5560
|
const theme = (0, import_react_redux44.useSelector)(selectTheme);
|
|
5561
|
+
const sourceChain = (0, import_react_redux44.useSelector)(selectSourceChain);
|
|
5523
5562
|
const dispatch = (0, import_react_redux44.useDispatch)();
|
|
5524
5563
|
const sliderRef = (0, import_react124.useRef)();
|
|
5525
5564
|
const { wallet, wallets, select, connect, connected } = (0, import_wallet_adapter_react7.useWallet)();
|
|
@@ -5563,17 +5602,30 @@ var SolanaWalletSelect = () => {
|
|
|
5563
5602
|
}, []);
|
|
5564
5603
|
const handleWalletClick = (0, import_react124.useCallback)(
|
|
5565
5604
|
(walletName) => {
|
|
5605
|
+
console.log(
|
|
5606
|
+
"SolanaWalletSelect: handleWalletClick: walletName: ",
|
|
5607
|
+
walletName
|
|
5608
|
+
);
|
|
5566
5609
|
select(walletName);
|
|
5567
5610
|
},
|
|
5568
5611
|
[select]
|
|
5569
5612
|
);
|
|
5570
5613
|
(0, import_react124.useEffect)(() => {
|
|
5571
|
-
|
|
5572
|
-
if (wallet)
|
|
5573
|
-
|
|
5574
|
-
|
|
5614
|
+
console.log("SolanaWalletSelect: useEffect: wallet: ", wallet);
|
|
5615
|
+
if (!wallet) return;
|
|
5616
|
+
if (sourceChain.shortName !== "SOL") {
|
|
5617
|
+
console.log("SolanaWalletSelect: source chain is not sol...");
|
|
5618
|
+
return;
|
|
5619
|
+
}
|
|
5620
|
+
if (!connected) {
|
|
5621
|
+
console.log(
|
|
5622
|
+
"SolanaWalletSelect: Wallet exists but not connected, connecting wallet:",
|
|
5623
|
+
wallet
|
|
5624
|
+
);
|
|
5625
|
+
connect().catch((err) => console.error("Solana connect error:", err));
|
|
5575
5626
|
}
|
|
5576
|
-
|
|
5627
|
+
dispatch(setSolanaConnectModal(false));
|
|
5628
|
+
}, [wallet, sourceChain]);
|
|
5577
5629
|
return /* @__PURE__ */ import_react124.default.createElement("div", { className: `wallet-select` }, /* @__PURE__ */ import_react124.default.createElement("div", { className: "slide-area hide-scrollbar", ref: sliderRef }, /* @__PURE__ */ import_react124.default.createElement("div", { className: "wallet-container" }, detected.map((wallet2, index) => /* @__PURE__ */ import_react124.default.createElement(
|
|
5578
5630
|
"div",
|
|
5579
5631
|
{
|
|
@@ -5615,7 +5667,7 @@ var AccountDetailsModal = () => {
|
|
|
5615
5667
|
solanaWalletDisconnect();
|
|
5616
5668
|
dispatch(setAccountDetailsModal(false));
|
|
5617
5669
|
};
|
|
5618
|
-
if (sourceChain !== "SOL") return;
|
|
5670
|
+
if (sourceChain.shortName !== "SOL") return;
|
|
5619
5671
|
return /* @__PURE__ */ import_react125.default.createElement(
|
|
5620
5672
|
"div",
|
|
5621
5673
|
{
|
|
@@ -5687,7 +5739,7 @@ var AccountDetailsModal2 = () => {
|
|
|
5687
5739
|
const { balance: tronBalance } = useGetTrxBalance_default();
|
|
5688
5740
|
const selectedNetwork = (0, import_react_redux47.useSelector)(selectSourceChain);
|
|
5689
5741
|
const networkDetails = (0, import_react127.useMemo)(
|
|
5690
|
-
() => networkOptions.find(({ id }) => id === selectedNetwork),
|
|
5742
|
+
() => networkOptions.find(({ id }) => id === selectedNetwork.shortName),
|
|
5691
5743
|
[selectedNetwork]
|
|
5692
5744
|
);
|
|
5693
5745
|
const explorerUrl = (0, import_react127.useMemo)(() => {
|
|
@@ -5697,7 +5749,7 @@ var AccountDetailsModal2 = () => {
|
|
|
5697
5749
|
tronWalletDisconnect();
|
|
5698
5750
|
dispatch(setAccountDetailsModal(false));
|
|
5699
5751
|
};
|
|
5700
|
-
if (sourcheChain !== "TRX") return;
|
|
5752
|
+
if (sourcheChain.shortName !== "TRX") return;
|
|
5701
5753
|
return /* @__PURE__ */ import_react127.default.createElement(
|
|
5702
5754
|
"div",
|
|
5703
5755
|
{
|
|
@@ -5716,7 +5768,7 @@ var AccountDetailsModal2 = () => {
|
|
|
5716
5768
|
fill: theme.colorMode === "light" ? "black" : "white"
|
|
5717
5769
|
}
|
|
5718
5770
|
)
|
|
5719
|
-
)))), /* @__PURE__ */ import_react127.default.createElement("div", { className: "modal-content" }, /* @__PURE__ */ import_react127.default.createElement("div", { className: "summary" }, networkDetails && /* @__PURE__ */ import_react127.default.createElement(networkDetails.icon, { width: 60, height: 60 }), /* @__PURE__ */ import_react127.default.createElement("div", { className: "address" }, /* @__PURE__ */ import_react127.default.createElement("h2", null, getShortenedAddress(walletAddress || "")), /* @__PURE__ */ import_react127.default.createElement(CopyButton_default, { text: walletAddress })), /* @__PURE__ */ import_react127.default.createElement("h3", null, tronBalance, " ", selectedNetwork)), /* @__PURE__ */ import_react127.default.createElement(SecondaryButton_default, { className: "block-explorer" }, /* @__PURE__ */ import_react127.default.createElement(ExternalLink_default, { className: "link", to: explorerUrl }, /* @__PURE__ */ import_react127.default.createElement(Explorer_default, { fill: "#778DA3" }), /* @__PURE__ */ import_react127.default.createElement("p", null, "Block explorer"), /* @__PURE__ */ import_react127.default.createElement(ExternalUrl_default, { fill: "#778DA3" }))), /* @__PURE__ */ import_react127.default.createElement(PrimaryButton_default, { clickHandler: handleDisconnect }, "Disconnect")))
|
|
5771
|
+
)))), /* @__PURE__ */ import_react127.default.createElement("div", { className: "modal-content" }, /* @__PURE__ */ import_react127.default.createElement("div", { className: "summary" }, networkDetails && /* @__PURE__ */ import_react127.default.createElement(networkDetails.icon, { width: 60, height: 60 }), /* @__PURE__ */ import_react127.default.createElement("div", { className: "address" }, /* @__PURE__ */ import_react127.default.createElement("h2", null, getShortenedAddress(walletAddress || "")), /* @__PURE__ */ import_react127.default.createElement(CopyButton_default, { text: walletAddress })), /* @__PURE__ */ import_react127.default.createElement("h3", null, tronBalance, " ", selectedNetwork.shortName)), /* @__PURE__ */ import_react127.default.createElement(SecondaryButton_default, { className: "block-explorer" }, /* @__PURE__ */ import_react127.default.createElement(ExternalLink_default, { className: "link", to: explorerUrl }, /* @__PURE__ */ import_react127.default.createElement(Explorer_default, { fill: "#778DA3" }), /* @__PURE__ */ import_react127.default.createElement("p", null, "Block explorer"), /* @__PURE__ */ import_react127.default.createElement(ExternalUrl_default, { fill: "#778DA3" }))), /* @__PURE__ */ import_react127.default.createElement(PrimaryButton_default, { clickHandler: handleDisconnect }, "Disconnect")))
|
|
5720
5772
|
);
|
|
5721
5773
|
};
|
|
5722
5774
|
var AccountDetailsModal_default2 = AccountDetailsModal2;
|
|
@@ -5847,7 +5899,8 @@ var useValidateTransaction = ({
|
|
|
5847
5899
|
sourceCompliant,
|
|
5848
5900
|
targetCompliant,
|
|
5849
5901
|
mode,
|
|
5850
|
-
pools
|
|
5902
|
+
pools,
|
|
5903
|
+
formStep
|
|
5851
5904
|
}) => {
|
|
5852
5905
|
const maxValue = (0, import_react130.useMemo)(() => {
|
|
5853
5906
|
if (!balance) return 0;
|
|
@@ -5895,24 +5948,22 @@ var useValidateTransaction = ({
|
|
|
5895
5948
|
};
|
|
5896
5949
|
}
|
|
5897
5950
|
}
|
|
5898
|
-
|
|
5899
|
-
console.log("useValidate:maxValue ", maxValue);
|
|
5900
|
-
if (+amount < totalFeeUsd) {
|
|
5951
|
+
if (+amount > balance && formStep === 0) {
|
|
5901
5952
|
return {
|
|
5902
|
-
error: "
|
|
5903
|
-
message: "
|
|
5953
|
+
error: "Warning" /* Warning */,
|
|
5954
|
+
message: "The entered amount exceeds your available balance. This transaction is likely to fail. Proceed with caution."
|
|
5904
5955
|
};
|
|
5905
5956
|
}
|
|
5906
|
-
if (+amount > maxValue) {
|
|
5957
|
+
if (+amount > maxValue && formStep === 0) {
|
|
5907
5958
|
return {
|
|
5908
|
-
error: "
|
|
5909
|
-
message:
|
|
5959
|
+
error: "Warning" /* Warning */,
|
|
5960
|
+
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."
|
|
5910
5961
|
};
|
|
5911
5962
|
}
|
|
5912
|
-
if (
|
|
5963
|
+
if (+amount < totalFeeUsd && formStep === 0) {
|
|
5913
5964
|
return {
|
|
5914
|
-
error: "
|
|
5915
|
-
message: "
|
|
5965
|
+
error: "Warning" /* Warning */,
|
|
5966
|
+
message: "Transaction fees exceed the transfer amount. This may result in an ineffective transaction. Proceed with caution."
|
|
5916
5967
|
};
|
|
5917
5968
|
}
|
|
5918
5969
|
if (!isApproved && isSubmitting) {
|
|
@@ -5957,7 +6008,7 @@ var useSubmitTransaction = ({
|
|
|
5957
6008
|
}) => {
|
|
5958
6009
|
const dispatch = (0, import_react_redux50.useDispatch)();
|
|
5959
6010
|
const [isSubmitting, setSubmitting] = (0, import_react131.useState)(false);
|
|
5960
|
-
const submitTransaction = async () => {
|
|
6011
|
+
const submitTransaction = async (signature) => {
|
|
5961
6012
|
try {
|
|
5962
6013
|
setSubmitting(true);
|
|
5963
6014
|
const params = JSON.stringify({
|
|
@@ -5974,7 +6025,8 @@ var useSubmitTransaction = ({
|
|
|
5974
6025
|
htlcCreationVout: 0,
|
|
5975
6026
|
htlcExpirationTimestamp: "0",
|
|
5976
6027
|
htlcVersion: "",
|
|
5977
|
-
senderPubKey: ""
|
|
6028
|
+
senderPubKey: "",
|
|
6029
|
+
options: signature
|
|
5978
6030
|
});
|
|
5979
6031
|
const transactionResult = await fetchWrapper.post(
|
|
5980
6032
|
`${backendUrl}/submit`,
|
|
@@ -6066,6 +6118,31 @@ function useDisconnectWallet4() {
|
|
|
6066
6118
|
return mainConnection ? { disconnectWallet: mainConnection.disconnectWallet } : defaultDisconnect;
|
|
6067
6119
|
}
|
|
6068
6120
|
|
|
6121
|
+
// src/components/reusable/WarningModal.tsx
|
|
6122
|
+
var import_react132 = __toESM(require("react"), 1);
|
|
6123
|
+
var WarningModal = ({
|
|
6124
|
+
message,
|
|
6125
|
+
onAcknowledge,
|
|
6126
|
+
onCancel
|
|
6127
|
+
}) => {
|
|
6128
|
+
return /* @__PURE__ */ import_react132.default.createElement("div", { className: "warning-modal-overlay" }, /* @__PURE__ */ import_react132.default.createElement("div", { className: "warning-modal" }, /* @__PURE__ */ import_react132.default.createElement("h3", null, "Warning"), /* @__PURE__ */ import_react132.default.createElement("p", null, message), /* @__PURE__ */ import_react132.default.createElement("div", { className: "warning-modal-buttons" }, /* @__PURE__ */ import_react132.default.createElement(
|
|
6129
|
+
SecondaryButton_default,
|
|
6130
|
+
{
|
|
6131
|
+
className: "warning-modal-cancel",
|
|
6132
|
+
clickHandler: onCancel
|
|
6133
|
+
},
|
|
6134
|
+
"Cancel"
|
|
6135
|
+
), /* @__PURE__ */ import_react132.default.createElement(
|
|
6136
|
+
PrimaryButton_default,
|
|
6137
|
+
{
|
|
6138
|
+
className: "warning-modal-acknowledge",
|
|
6139
|
+
clickHandler: onAcknowledge
|
|
6140
|
+
},
|
|
6141
|
+
"Acknowledge"
|
|
6142
|
+
))));
|
|
6143
|
+
};
|
|
6144
|
+
var WarningModal_default = WarningModal;
|
|
6145
|
+
|
|
6069
6146
|
// src/components/TransferWidget.tsx
|
|
6070
6147
|
var TransferWidget = ({
|
|
6071
6148
|
theme,
|
|
@@ -6074,8 +6151,9 @@ var TransferWidget = ({
|
|
|
6074
6151
|
paymentTitleOption
|
|
6075
6152
|
}) => {
|
|
6076
6153
|
const dispatch = (0, import_react_redux51.useDispatch)();
|
|
6077
|
-
const mainRef = (0,
|
|
6078
|
-
const [formStep, setFormStep] = (0,
|
|
6154
|
+
const mainRef = (0, import_react133.useRef)(null);
|
|
6155
|
+
const [formStep, setFormStep] = (0, import_react133.useState)(0);
|
|
6156
|
+
const [warningModalOpen, setWarningModalOpen] = (0, import_react133.useState)(null);
|
|
6079
6157
|
const dAppOption = (0, import_react_redux51.useSelector)(selectDappOption);
|
|
6080
6158
|
const mode = (0, import_react_redux51.useSelector)(selectMode);
|
|
6081
6159
|
const transactionOption = (0, import_react_redux51.useSelector)(selectTransactionOption);
|
|
@@ -6098,15 +6176,15 @@ var TransferWidget = ({
|
|
|
6098
6176
|
const networkOptions3 = (0, import_react_redux51.useSelector)(selectNetworkOption);
|
|
6099
6177
|
const feeDeduct = (0, import_react_redux51.useSelector)(selectFeeDeduct);
|
|
6100
6178
|
const { keplrHandler, closeHandler } = useKimaContext();
|
|
6101
|
-
const [isCancellingApprove, setCancellingApprove] = (0,
|
|
6102
|
-
const [isApproving, setApproving] = (0,
|
|
6103
|
-
const [isSigning, setSigning] = (0,
|
|
6179
|
+
const [isCancellingApprove, setCancellingApprove] = (0, import_react133.useState)(false);
|
|
6180
|
+
const [isApproving, setApproving] = (0, import_react133.useState)(false);
|
|
6181
|
+
const [isSigning, setSigning] = (0, import_react133.useState)(false);
|
|
6104
6182
|
const pendingTxs = (0, import_react_redux51.useSelector)(selectPendingTxs);
|
|
6105
6183
|
const networks = (0, import_react_redux51.useSelector)(selectNetworks);
|
|
6106
6184
|
const { width: windowWidth } = useWidth_default();
|
|
6107
6185
|
const { disconnectWallet } = useDisconnectWallet4();
|
|
6108
6186
|
const { balance } = useBalance2();
|
|
6109
|
-
const { allowance, isApproved, approve, decimals } = useAllowance({
|
|
6187
|
+
const { allowance, isApproved, approve, decimals, signMessage } = useAllowance({
|
|
6110
6188
|
setApproving,
|
|
6111
6189
|
setCancellingApprove
|
|
6112
6190
|
});
|
|
@@ -6137,7 +6215,8 @@ var TransferWidget = ({
|
|
|
6137
6215
|
compliantOption,
|
|
6138
6216
|
mode,
|
|
6139
6217
|
pools,
|
|
6140
|
-
feeDeduct
|
|
6218
|
+
feeDeduct,
|
|
6219
|
+
formStep
|
|
6141
6220
|
});
|
|
6142
6221
|
const { submitTransaction, isSubmitting } = useSubmitTransaction_default({
|
|
6143
6222
|
amount: BigInt(submitAmount ?? "0"),
|
|
@@ -6154,7 +6233,7 @@ var TransferWidget = ({
|
|
|
6154
6233
|
const handleSubmit = async () => {
|
|
6155
6234
|
const { error, message: validationMessage } = validate(true);
|
|
6156
6235
|
if (error === "ValidationError" /* Error */) {
|
|
6157
|
-
return import_react_hot_toast5.toast.error(validationMessage, { icon: /* @__PURE__ */
|
|
6236
|
+
return import_react_hot_toast5.toast.error(validationMessage, { icon: /* @__PURE__ */ import_react133.default.createElement(Error_default, null) });
|
|
6158
6237
|
}
|
|
6159
6238
|
if (error === "ApprovalNeeded" /* ApprovalNeeded */) {
|
|
6160
6239
|
return approve();
|
|
@@ -6163,18 +6242,30 @@ var TransferWidget = ({
|
|
|
6163
6242
|
keplrHandler && keplrHandler(sourceAddress);
|
|
6164
6243
|
return;
|
|
6165
6244
|
}
|
|
6166
|
-
const
|
|
6167
|
-
|
|
6245
|
+
const signature = await signMessage?.({
|
|
6246
|
+
targetAddress,
|
|
6247
|
+
targetChain: targetChain.shortName,
|
|
6248
|
+
targetSymbol: targetCurrency
|
|
6249
|
+
});
|
|
6250
|
+
const { success, message: submitMessage } = await submitTransaction(
|
|
6251
|
+
JSON.stringify({ signature })
|
|
6252
|
+
);
|
|
6253
|
+
if (!success) return import_react_hot_toast5.toast.error(submitMessage, { icon: /* @__PURE__ */ import_react133.default.createElement(Error_default, null) });
|
|
6168
6254
|
};
|
|
6169
6255
|
const onNext = () => {
|
|
6170
|
-
const { error, message } = validate();
|
|
6256
|
+
const { error, message: validationMessage } = validate();
|
|
6257
|
+
if (error === "Warning" /* Warning */ && formStep === 0) {
|
|
6258
|
+
console.log("validationError: Warning: ", validationMessage);
|
|
6259
|
+
setWarningModalOpen({ message: validationMessage });
|
|
6260
|
+
return;
|
|
6261
|
+
}
|
|
6171
6262
|
if (error !== "ValidationError" /* Error */ && !formStep) {
|
|
6172
6263
|
return setFormStep(1);
|
|
6173
6264
|
}
|
|
6174
6265
|
if (error !== "ValidationError" /* Error */ && formStep > 0) {
|
|
6175
6266
|
return handleSubmit();
|
|
6176
6267
|
}
|
|
6177
|
-
import_react_hot_toast5.toast.error(
|
|
6268
|
+
import_react_hot_toast5.toast.error(validationMessage, { icon: /* @__PURE__ */ import_react133.default.createElement(Error_default, null) });
|
|
6178
6269
|
mainRef.current?.click();
|
|
6179
6270
|
};
|
|
6180
6271
|
const onBack = () => {
|
|
@@ -6231,10 +6322,10 @@ var TransferWidget = ({
|
|
|
6231
6322
|
}
|
|
6232
6323
|
await disconnectWallet();
|
|
6233
6324
|
};
|
|
6234
|
-
(0,
|
|
6325
|
+
(0, import_react133.useEffect)(() => {
|
|
6235
6326
|
dispatch(setTheme(theme));
|
|
6236
6327
|
}, [theme]);
|
|
6237
|
-
return /* @__PURE__ */
|
|
6328
|
+
return /* @__PURE__ */ import_react133.default.createElement(
|
|
6238
6329
|
"div",
|
|
6239
6330
|
{
|
|
6240
6331
|
className: `kima-card ${theme.colorMode}`,
|
|
@@ -6242,14 +6333,28 @@ var TransferWidget = ({
|
|
|
6242
6333
|
background: theme.colorMode === "light" /* light */ ? theme.backgroundColorLight : theme.backgroundColorDark
|
|
6243
6334
|
}
|
|
6244
6335
|
},
|
|
6245
|
-
|
|
6246
|
-
|
|
6336
|
+
warningModalOpen && /* @__PURE__ */ import_react133.default.createElement(
|
|
6337
|
+
WarningModal_default,
|
|
6338
|
+
{
|
|
6339
|
+
message: warningModalOpen.message,
|
|
6340
|
+
onAcknowledge: () => {
|
|
6341
|
+
setWarningModalOpen(null);
|
|
6342
|
+
setFormStep(1);
|
|
6343
|
+
},
|
|
6344
|
+
onCancel: () => {
|
|
6345
|
+
setWarningModalOpen(null);
|
|
6346
|
+
setFormStep(0);
|
|
6347
|
+
}
|
|
6348
|
+
}
|
|
6349
|
+
),
|
|
6350
|
+
mode === "payment" /* payment */ && !transactionOption && /* @__PURE__ */ import_react133.default.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."),
|
|
6351
|
+
/* @__PURE__ */ import_react133.default.createElement("div", { className: "transfer-card" }, /* @__PURE__ */ import_react133.default.createElement("div", { className: "kima-card-header" }, /* @__PURE__ */ import_react133.default.createElement("div", { className: "topbar" }, /* @__PURE__ */ import_react133.default.createElement("div", { className: "title" }, /* @__PURE__ */ import_react133.default.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__ */ import_react133.default.createElement("div", { className: "control-buttons" }, pendingTxs > 0 ? /* @__PURE__ */ import_react133.default.createElement(TxButton_default, { theme }) : null, /* @__PURE__ */ import_react133.default.createElement(
|
|
6247
6352
|
ExternalLink_default,
|
|
6248
6353
|
{
|
|
6249
6354
|
to: helpURL ? helpURL : "https://docs.kima.network/kima-network/try-kima-with-the-demo-app"
|
|
6250
6355
|
},
|
|
6251
|
-
/* @__PURE__ */
|
|
6252
|
-
), formStep === 0 && mode !== "payment" /* payment */ && /* @__PURE__ */
|
|
6356
|
+
/* @__PURE__ */ import_react133.default.createElement("div", { className: "menu-button" }, "I need help")
|
|
6357
|
+
), formStep === 0 && mode !== "payment" /* payment */ && /* @__PURE__ */ import_react133.default.createElement(
|
|
6253
6358
|
"button",
|
|
6254
6359
|
{
|
|
6255
6360
|
className: "reset-button",
|
|
@@ -6257,7 +6362,7 @@ var TransferWidget = ({
|
|
|
6257
6362
|
disabled: isApproving || isSubmitting || isSigning
|
|
6258
6363
|
},
|
|
6259
6364
|
"Reset"
|
|
6260
|
-
))), mode === "payment" /* payment */ && paymentTitleOption?.title && /* @__PURE__ */
|
|
6365
|
+
))), mode === "payment" /* payment */ && paymentTitleOption?.title && /* @__PURE__ */ import_react133.default.createElement("h4", { className: "subtitle" }, paymentTitleOption.title)), /* @__PURE__ */ import_react133.default.createElement("div", { className: "kima-card-content", ref: mainRef }, formStep === 0 ? /* @__PURE__ */ import_react133.default.createElement(
|
|
6261
6366
|
SingleForm_default,
|
|
6262
6367
|
{
|
|
6263
6368
|
...{
|
|
@@ -6275,7 +6380,7 @@ var TransferWidget = ({
|
|
|
6275
6380
|
isCancellingApprove
|
|
6276
6381
|
}
|
|
6277
6382
|
}
|
|
6278
|
-
) : /* @__PURE__ */
|
|
6383
|
+
) : /* @__PURE__ */ import_react133.default.createElement(
|
|
6279
6384
|
ConfirmDetails_default,
|
|
6280
6385
|
{
|
|
6281
6386
|
...{
|
|
@@ -6294,12 +6399,12 @@ var TransferWidget = ({
|
|
|
6294
6399
|
isApproved
|
|
6295
6400
|
}
|
|
6296
6401
|
}
|
|
6297
|
-
)), /* @__PURE__ */
|
|
6402
|
+
)), /* @__PURE__ */ import_react133.default.createElement(
|
|
6298
6403
|
"div",
|
|
6299
6404
|
{
|
|
6300
6405
|
className: `kima-card-footer ${mode === "bridge" /* bridge */ && formStep !== 0 && "confirm"}`
|
|
6301
6406
|
},
|
|
6302
|
-
/* @__PURE__ */
|
|
6407
|
+
/* @__PURE__ */ import_react133.default.createElement("div", { className: `button-group` }, formStep !== 0 && /* @__PURE__ */ import_react133.default.createElement(
|
|
6303
6408
|
SecondaryButton_default,
|
|
6304
6409
|
{
|
|
6305
6410
|
clickHandler: onBack,
|
|
@@ -6307,7 +6412,7 @@ var TransferWidget = ({
|
|
|
6307
6412
|
disabled: isApproving || isSubmitting || isSigning
|
|
6308
6413
|
},
|
|
6309
6414
|
formStep > 0 ? "Back" : "Cancel"
|
|
6310
|
-
), allowance > 0 && formStep !== 0 ? /* @__PURE__ */
|
|
6415
|
+
), allowance > 0 && formStep !== 0 ? /* @__PURE__ */ import_react133.default.createElement(
|
|
6311
6416
|
SecondaryButton_default,
|
|
6312
6417
|
{
|
|
6313
6418
|
clickHandler: onCancelApprove,
|
|
@@ -6316,7 +6421,7 @@ var TransferWidget = ({
|
|
|
6316
6421
|
disabled: isCancellingApprove || isApproving || isSubmitting || isSigning
|
|
6317
6422
|
},
|
|
6318
6423
|
isCancellingApprove ? "Cancelling Approval" : "Cancel Approve"
|
|
6319
|
-
) : null, /* @__PURE__ */
|
|
6424
|
+
) : null, /* @__PURE__ */ import_react133.default.createElement(
|
|
6320
6425
|
PrimaryButton_default,
|
|
6321
6426
|
{
|
|
6322
6427
|
clickHandler: onNext,
|
|
@@ -6325,7 +6430,7 @@ var TransferWidget = ({
|
|
|
6325
6430
|
},
|
|
6326
6431
|
getButtonLabel()
|
|
6327
6432
|
))
|
|
6328
|
-
), /* @__PURE__ */
|
|
6433
|
+
), /* @__PURE__ */ import_react133.default.createElement(SolanaWalletConnectModal_default, null), /* @__PURE__ */ import_react133.default.createElement(TronWalletConnectModal_default, null), /* @__PURE__ */ import_react133.default.createElement(
|
|
6329
6434
|
import_react_hot_toast5.Toaster,
|
|
6330
6435
|
{
|
|
6331
6436
|
position: "top-right",
|
|
@@ -6350,12 +6455,12 @@ var TransferWidget = ({
|
|
|
6350
6455
|
}
|
|
6351
6456
|
}
|
|
6352
6457
|
}
|
|
6353
|
-
), /* @__PURE__ */
|
|
6458
|
+
), /* @__PURE__ */ import_react133.default.createElement("div", { className: "floating-footer" }, /* @__PURE__ */ import_react133.default.createElement("div", { className: `items ${theme.colorMode}` }, /* @__PURE__ */ import_react133.default.createElement("span", null, "Powered by"), /* @__PURE__ */ import_react133.default.createElement(FooterLogo_default, { width: 50, fill: "black" }), /* @__PURE__ */ import_react133.default.createElement("strong", null, "Network"))))
|
|
6354
6459
|
);
|
|
6355
6460
|
};
|
|
6356
6461
|
|
|
6357
6462
|
// src/components/KimaWidgetWrapper.tsx
|
|
6358
|
-
var
|
|
6463
|
+
var import_react135 = require("@reown/appkit/react");
|
|
6359
6464
|
var KimaWidgetWrapper = ({
|
|
6360
6465
|
mode,
|
|
6361
6466
|
txId,
|
|
@@ -6372,12 +6477,12 @@ var KimaWidgetWrapper = ({
|
|
|
6372
6477
|
const { kimaBackendUrl } = useKimaContext();
|
|
6373
6478
|
const submitted = (0, import_react_redux52.useSelector)(selectSubmitted);
|
|
6374
6479
|
const dispatch = (0, import_react_redux52.useDispatch)();
|
|
6375
|
-
const { setThemeMode, setThemeVariables } = (0,
|
|
6480
|
+
const { setThemeMode, setThemeVariables } = (0, import_react135.useAppKitTheme)();
|
|
6376
6481
|
const { data: chainData } = useChainData(kimaBackendUrl);
|
|
6377
6482
|
const { data: envOptions } = useGetEnvOptions({ kimaBackendUrl });
|
|
6378
6483
|
const networkOption = envOptions?.env;
|
|
6379
6484
|
const kimaExplorer = envOptions?.kimaExplorer || "https://explorer.sardis.kima.network";
|
|
6380
|
-
(0,
|
|
6485
|
+
(0, import_react134.useEffect)(() => {
|
|
6381
6486
|
dispatch(setTheme(theme));
|
|
6382
6487
|
setThemeMode(theme.colorMode === "light" /* light */ ? "light" : "dark");
|
|
6383
6488
|
setThemeVariables({
|
|
@@ -6420,11 +6525,11 @@ var KimaWidgetWrapper = ({
|
|
|
6420
6525
|
dispatch(setSubmitted(false));
|
|
6421
6526
|
}
|
|
6422
6527
|
}, [theme, transactionOption, mode, networkOption, chainData]);
|
|
6423
|
-
(0,
|
|
6528
|
+
(0, import_react134.useEffect)(() => {
|
|
6424
6529
|
if (!chainData?.length) return;
|
|
6425
6530
|
indexPluginsByChain(chainData);
|
|
6426
6531
|
}, [chainData]);
|
|
6427
|
-
return submitted ? /* @__PURE__ */
|
|
6532
|
+
return submitted ? /* @__PURE__ */ import_react134.default.createElement(TransactionWidget, { theme }) : /* @__PURE__ */ import_react134.default.createElement(
|
|
6428
6533
|
TransferWidget,
|
|
6429
6534
|
{
|
|
6430
6535
|
theme,
|
|
@@ -6457,13 +6562,13 @@ var KimaTransactionWidget = ({
|
|
|
6457
6562
|
kimaBackendUrl
|
|
6458
6563
|
});
|
|
6459
6564
|
const { data: chainData, isLoading: isLoadingChainData } = useChainData(kimaBackendUrl);
|
|
6460
|
-
(0,
|
|
6565
|
+
(0, import_react136.useEffect)(() => {
|
|
6461
6566
|
if (!isLoadingChainData && chainData) {
|
|
6462
6567
|
dispatch(setSourceChain(chainData[0]));
|
|
6463
6568
|
dispatch(setTargetChain(chainData[1]));
|
|
6464
6569
|
}
|
|
6465
6570
|
}, [chainData]);
|
|
6466
|
-
return isLoadingEnvs || isLoadingChainData ? /* @__PURE__ */
|
|
6571
|
+
return isLoadingEnvs || isLoadingChainData ? /* @__PURE__ */ import_react136.default.createElement(ring_default, null) : /* @__PURE__ */ import_react136.default.createElement(
|
|
6467
6572
|
KimaWidgetWrapper_default,
|
|
6468
6573
|
{
|
|
6469
6574
|
...{
|