@kimafinance/kima-transaction-widget 1.3.5 → 1.3.7
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 +223 -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 +212 -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
|
@@ -1071,7 +1071,7 @@ var USD = ({ width = 24, height = 24, ...rest }) => {
|
|
|
1071
1071
|
/* @__PURE__ */ import_react34.default.createElement("g", null, /* @__PURE__ */ import_react34.default.createElement(
|
|
1072
1072
|
"path",
|
|
1073
1073
|
{
|
|
1074
|
-
d: "M24.26,20.34c0,3.42-2.423,6.342-6.845,7.111v3.92h-3.768v-3.648c-2.578-0.117-5.076-0.811-6.537-1.654l1.154-4.5\
|
|
1074
|
+
d: "M24.26,20.34c0,3.42-2.423,6.342-6.845,7.111v3.92h-3.768v-3.648c-2.578-0.117-5.076-0.811-6.537-1.654l1.154-4.5\n c1.615,0.886,3.883,1.693,6.383,1.693c2.191,0,3.691-0.848,3.691-2.385c0-1.461-1.23-2.389-4.077-3.348\n c-4.112-1.385-6.921-3.306-6.921-7.033c0-3.386,2.385-6.035,6.499-6.845V0h3.767v3.383c2.576,0.115,4.309,0.652,5.576,1.268\n l-1.115,4.348C21.07,8.575,19.3,7.688,16.531,7.688c-2.5,0-3.307,1.076-3.307,2.154c0,1.268,1.346,2.074,4.613,3.307\n C22.416,14.762,24.26,16.877,24.26,20.34z"
|
|
1075
1075
|
}
|
|
1076
1076
|
))
|
|
1077
1077
|
)
|
|
@@ -2627,6 +2627,12 @@ var checkPoolBalance = ({
|
|
|
2627
2627
|
const targetToken = poolTokens.find(
|
|
2628
2628
|
(token) => token.tokenSymbol === finalTargetCurrency
|
|
2629
2629
|
);
|
|
2630
|
+
if (!targetToken) {
|
|
2631
|
+
return {
|
|
2632
|
+
isPoolAvailable: false,
|
|
2633
|
+
error: `${CHAIN_NAMES_TO_STRING[targetChain]} has no ${targetCurrency} pool!`
|
|
2634
|
+
};
|
|
2635
|
+
}
|
|
2630
2636
|
const { amount: targetTokenBalance } = targetToken;
|
|
2631
2637
|
if (parseFloat(amount) > parseFloat(targetTokenBalance))
|
|
2632
2638
|
return {
|
|
@@ -2774,6 +2780,34 @@ function useEvmAllowance() {
|
|
|
2774
2780
|
refetchInterval: 60 * 1e3,
|
|
2775
2781
|
enabled
|
|
2776
2782
|
});
|
|
2783
|
+
const signMessage = async (data) => {
|
|
2784
|
+
if (!walletProvider) {
|
|
2785
|
+
console.error("No available provider");
|
|
2786
|
+
return;
|
|
2787
|
+
}
|
|
2788
|
+
if (!allowanceData?.decimals) {
|
|
2789
|
+
console.warn("useEvmAllowance: Missing required data");
|
|
2790
|
+
return;
|
|
2791
|
+
}
|
|
2792
|
+
try {
|
|
2793
|
+
const walletClient = (0, import_viem5.createWalletClient)({
|
|
2794
|
+
account: walletAddress,
|
|
2795
|
+
chain: sourceChain,
|
|
2796
|
+
transport: (0, import_viem5.custom)(window.ethereum)
|
|
2797
|
+
// WARNING: NEED TO MAKE SURE THIS USING THE ETHEREUM OBJECT IS STABLE ENOUGH
|
|
2798
|
+
});
|
|
2799
|
+
return await walletClient.signMessage({
|
|
2800
|
+
account: walletAddress,
|
|
2801
|
+
message: `Amount: ${allowanceNumber}
|
|
2802
|
+
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,24 @@ 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 = `Amount: ${allowanceNumber}
|
|
3116
|
+
Target Address: ${data.targetAddress}
|
|
3117
|
+
Target Chain: ${data.targetChain}
|
|
3118
|
+
Target Symbol: ${data.targetSymbol}`;
|
|
3119
|
+
const encodedMessage = new TextEncoder().encode(message);
|
|
3120
|
+
const signature = await signMessage(encodedMessage);
|
|
3121
|
+
return signature;
|
|
3122
|
+
} catch (error2) {
|
|
3123
|
+
console.error("Error signing message:", error2);
|
|
3124
|
+
throw error2;
|
|
3125
|
+
}
|
|
3126
|
+
};
|
|
3071
3127
|
const approveSPLTokenTransfer = async (isCancel = false) => {
|
|
3072
3128
|
if (!allowanceAmount) {
|
|
3073
3129
|
console.warn("useSolanaAllowance: Missing allowance amount");
|
|
@@ -3125,7 +3181,8 @@ function useSolanaAllowance() {
|
|
|
3125
3181
|
return {
|
|
3126
3182
|
...allowanceData,
|
|
3127
3183
|
isApproved: allowanceData?.allowance ? allowanceData.allowance >= allowanceNumber : false,
|
|
3128
|
-
approve: approveSPLTokenTransfer
|
|
3184
|
+
approve: approveSPLTokenTransfer,
|
|
3185
|
+
signMessage: signSolanaMessage
|
|
3129
3186
|
};
|
|
3130
3187
|
}
|
|
3131
3188
|
|
|
@@ -3252,7 +3309,8 @@ var WalletProvider3 = ({ children, networkOption }) => {
|
|
|
3252
3309
|
{
|
|
3253
3310
|
adapters,
|
|
3254
3311
|
onError,
|
|
3255
|
-
onChainChanged
|
|
3312
|
+
onChainChanged,
|
|
3313
|
+
autoConnect: false
|
|
3256
3314
|
},
|
|
3257
3315
|
children
|
|
3258
3316
|
);
|
|
@@ -3599,7 +3657,8 @@ function useTronAllowance() {
|
|
|
3599
3657
|
const { pools } = useGetPools_default(backendUrl, networkOption);
|
|
3600
3658
|
const {
|
|
3601
3659
|
address: internalUserAddress,
|
|
3602
|
-
signTransaction: internalSignTronTransaction
|
|
3660
|
+
signTransaction: internalSignTronTransaction,
|
|
3661
|
+
signMessage: internalSignMessage
|
|
3603
3662
|
} = (0, import_tronwallet_adapter_react_hooks3.useWallet)();
|
|
3604
3663
|
const [approvalsCount, setApprovalsCount] = (0, import_react88.useState)(0);
|
|
3605
3664
|
const isTronProvider2 = sourceChain.shortName === "TRX" && externalProvider?.type === "tron" && externalProvider.provider.tronWeb instanceof import_tronweb5.TronWeb && typeof externalProvider.signer === "string";
|
|
@@ -3611,6 +3670,7 @@ function useTronAllowance() {
|
|
|
3611
3670
|
isTronProvider2 && tronWeb.setAddress(TRON_USDK_OWNER_ADDRESS);
|
|
3612
3671
|
const userAddress = isTronProvider2 ? externalProvider.signer : internalUserAddress;
|
|
3613
3672
|
const signTronTransaction = isTronProvider2 ? externalProvider.provider.signTransaction : internalSignTronTransaction;
|
|
3673
|
+
const signMessage = isTronProvider2 ? externalProvider.provider.signMessage : internalSignMessage;
|
|
3614
3674
|
const {
|
|
3615
3675
|
data: allowanceData,
|
|
3616
3676
|
isLoading,
|
|
@@ -3631,6 +3691,23 @@ function useTronAllowance() {
|
|
|
3631
3691
|
staleTime: 1e3 * 60
|
|
3632
3692
|
// 1 min
|
|
3633
3693
|
});
|
|
3694
|
+
const signTronMessage = async (data) => {
|
|
3695
|
+
if (!tronWeb) {
|
|
3696
|
+
console.warn("TronWeb not initialized");
|
|
3697
|
+
return;
|
|
3698
|
+
}
|
|
3699
|
+
try {
|
|
3700
|
+
const message = `Amount: ${allowanceNumber}
|
|
3701
|
+
Target Address: ${data.targetAddress}
|
|
3702
|
+
Target Chain: ${data.targetChain}
|
|
3703
|
+
Target Symbol: ${data.targetSymbol}`;
|
|
3704
|
+
const signedMessage = await signMessage(message);
|
|
3705
|
+
return signedMessage;
|
|
3706
|
+
} catch (error2) {
|
|
3707
|
+
console.error("Error signing message:", error2);
|
|
3708
|
+
throw error2;
|
|
3709
|
+
}
|
|
3710
|
+
};
|
|
3634
3711
|
const approveTrc20TokenTransfer = async (isCancel = false) => {
|
|
3635
3712
|
if (!userAddress || !pools || !tronWeb || !tokenOptions || !selectedCoin || !allowanceAmount) {
|
|
3636
3713
|
console.warn("Missing required data for approveTrc20TokenTransfer");
|
|
@@ -3669,7 +3746,8 @@ function useTronAllowance() {
|
|
|
3669
3746
|
return {
|
|
3670
3747
|
...allowanceData,
|
|
3671
3748
|
isApproved: allowanceData?.allowance ? allowanceData.allowance >= allowanceNumber : false,
|
|
3672
|
-
approve: approveTrc20TokenTransfer
|
|
3749
|
+
approve: approveTrc20TokenTransfer,
|
|
3750
|
+
signMessage: signTronMessage
|
|
3673
3751
|
};
|
|
3674
3752
|
}
|
|
3675
3753
|
|
|
@@ -3836,10 +3914,10 @@ var KimaProvider = ({
|
|
|
3836
3914
|
var KimaProvider_default = KimaProvider;
|
|
3837
3915
|
|
|
3838
3916
|
// src/components/KimaTransactionWidget.tsx
|
|
3839
|
-
var
|
|
3917
|
+
var import_react136 = __toESM(require("react"), 1);
|
|
3840
3918
|
|
|
3841
3919
|
// src/components/KimaWidgetWrapper.tsx
|
|
3842
|
-
var
|
|
3920
|
+
var import_react134 = __toESM(require("react"), 1);
|
|
3843
3921
|
var import_react_redux52 = require("react-redux");
|
|
3844
3922
|
|
|
3845
3923
|
// src/components/TransactionWidget.tsx
|
|
@@ -4596,12 +4674,13 @@ var AddressInput = ({
|
|
|
4596
4674
|
const targetChain = (0, import_react_redux29.useSelector)(selectTargetChain);
|
|
4597
4675
|
const { walletAddress: sourceAddress, isReady } = useIsWalletReady4();
|
|
4598
4676
|
const targetAddress = (0, import_react_redux29.useSelector)(selectTargetAddress);
|
|
4599
|
-
const
|
|
4600
|
-
return
|
|
4677
|
+
const isCompatible = (sourceChain2, targetChain2) => {
|
|
4678
|
+
return sourceChain2.compatibility === targetChain2.compatibility;
|
|
4601
4679
|
};
|
|
4602
4680
|
(0, import_react113.useEffect)(() => {
|
|
4603
4681
|
if (mode === "payment" /* payment */) return;
|
|
4604
|
-
if (
|
|
4682
|
+
if (isCompatible(sourceChain, targetChain)) {
|
|
4683
|
+
if (targetAddress !== "") return;
|
|
4605
4684
|
dispatch(setTargetAddress(isReady && sourceAddress ? sourceAddress : ""));
|
|
4606
4685
|
return;
|
|
4607
4686
|
}
|
|
@@ -5154,7 +5233,7 @@ var TransactionWidget = ({ theme }) => {
|
|
|
5154
5233
|
};
|
|
5155
5234
|
|
|
5156
5235
|
// src/components/TransferWidget.tsx
|
|
5157
|
-
var
|
|
5236
|
+
var import_react133 = __toESM(require("react"), 1);
|
|
5158
5237
|
var import_react_redux51 = require("react-redux");
|
|
5159
5238
|
|
|
5160
5239
|
// src/components/reusable/SingleForm.tsx
|
|
@@ -5325,18 +5404,8 @@ var NetworkSelector_default = import_react122.default.memo(NetworkSelector);
|
|
|
5325
5404
|
|
|
5326
5405
|
// src/components/reusable/SingleForm.tsx
|
|
5327
5406
|
var SingleForm = ({
|
|
5328
|
-
allowance,
|
|
5329
5407
|
balance,
|
|
5330
|
-
decimals
|
|
5331
|
-
formStep,
|
|
5332
|
-
onBack,
|
|
5333
|
-
onCancelApprove,
|
|
5334
|
-
onNext,
|
|
5335
|
-
getButtonLabel,
|
|
5336
|
-
isApproving,
|
|
5337
|
-
isSigning,
|
|
5338
|
-
isSubmitting,
|
|
5339
|
-
isCancellingApprove
|
|
5408
|
+
decimals
|
|
5340
5409
|
}) => {
|
|
5341
5410
|
const dispatch = (0, import_react_redux43.useDispatch)();
|
|
5342
5411
|
const mode = (0, import_react_redux43.useSelector)(selectMode);
|
|
@@ -5345,7 +5414,6 @@ var SingleForm = ({
|
|
|
5345
5414
|
const { totalFeeUsd } = (0, import_react_redux43.useSelector)(selectServiceFee);
|
|
5346
5415
|
const compliantOption = (0, import_react_redux43.useSelector)(selectCompliantOption);
|
|
5347
5416
|
const targetCompliant = (0, import_react_redux43.useSelector)(selectTargetCompliant);
|
|
5348
|
-
const transactionOption = (0, import_react_redux43.useSelector)(selectTransactionOption);
|
|
5349
5417
|
const sourceNetwork = (0, import_react_redux43.useSelector)(selectSourceChain);
|
|
5350
5418
|
const targetNetwork = (0, import_react_redux43.useSelector)(selectTargetChain);
|
|
5351
5419
|
const { isReady } = useIsWalletReady4();
|
|
@@ -5379,23 +5447,16 @@ var SingleForm = ({
|
|
|
5379
5447
|
const maxValue = (0, import_react123.useMemo)(() => {
|
|
5380
5448
|
if (!balance) return 0;
|
|
5381
5449
|
if (totalFeeUsd < 0) return balance;
|
|
5382
|
-
|
|
5383
|
-
return amountMinusFees > 0 ? amountMinusFees : 0;
|
|
5450
|
+
return preciseSubtraction(balance, totalFeeUsd);
|
|
5384
5451
|
}, [balance, totalFeeUsd, feeDeduct]);
|
|
5385
5452
|
(0, import_react123.useEffect)(() => {
|
|
5386
5453
|
if (!errorMessage) return;
|
|
5387
5454
|
import_react_hot_toast4.toast.error(errorMessage);
|
|
5388
5455
|
}, [errorMessage]);
|
|
5389
5456
|
(0, import_react123.useEffect)(() => {
|
|
5390
|
-
if (amountValue && amount
|
|
5457
|
+
if (amountValue && amount !== "") return;
|
|
5391
5458
|
setAmountValue(amount);
|
|
5392
5459
|
}, [amount]);
|
|
5393
|
-
(0, import_react123.useEffect)(() => {
|
|
5394
|
-
if (!feeDeduct && maxValue < +amountValue) {
|
|
5395
|
-
setAmountValue(maxValue.toString());
|
|
5396
|
-
dispatch(setAmount(maxValue.toString()));
|
|
5397
|
-
}
|
|
5398
|
-
}, [feeDeduct]);
|
|
5399
5460
|
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
5461
|
"div",
|
|
5401
5462
|
{
|
|
@@ -5416,27 +5477,21 @@ var SingleForm = ({
|
|
|
5416
5477
|
theme: theme.colorMode,
|
|
5417
5478
|
placeholder: "Target address"
|
|
5418
5479
|
}
|
|
5419
|
-
)) : null,
|
|
5480
|
+
)) : 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
5481
|
"input",
|
|
5421
5482
|
{
|
|
5422
5483
|
className: `${theme.colorMode}`,
|
|
5423
5484
|
type: "text",
|
|
5424
|
-
placeholder: "
|
|
5485
|
+
placeholder: "Enter amount",
|
|
5425
5486
|
value: amountValue || "",
|
|
5426
5487
|
onChange: (e) => {
|
|
5427
5488
|
const value = e.target.value;
|
|
5428
5489
|
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
|
-
}
|
|
5490
|
+
setAmountValue(maskedValue);
|
|
5491
|
+
dispatch(setAmount(maskedValue));
|
|
5437
5492
|
}
|
|
5438
5493
|
}
|
|
5439
|
-
), /* @__PURE__ */ import_react123.default.createElement(
|
|
5494
|
+
), /* @__PURE__ */ import_react123.default.createElement("div", { className: "max-disclaimer" }, /* @__PURE__ */ import_react123.default.createElement(
|
|
5440
5495
|
"span",
|
|
5441
5496
|
{
|
|
5442
5497
|
className: "max-button",
|
|
@@ -5446,22 +5501,7 @@ var SingleForm = ({
|
|
|
5446
5501
|
}
|
|
5447
5502
|
},
|
|
5448
5503
|
"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))));
|
|
5504
|
+
), totalFeeUsd !== -1 && /* @__PURE__ */ import_react123.default.createElement("p", null, "Est fees: $ ", totalFeeUsd, " USD")))));
|
|
5465
5505
|
};
|
|
5466
5506
|
var SingleForm_default = SingleForm;
|
|
5467
5507
|
|
|
@@ -5520,6 +5560,7 @@ var import_wallet_adapter_react7 = require("@solana/wallet-adapter-react");
|
|
|
5520
5560
|
var import_wallet_adapter_base = require("@solana/wallet-adapter-base");
|
|
5521
5561
|
var SolanaWalletSelect = () => {
|
|
5522
5562
|
const theme = (0, import_react_redux44.useSelector)(selectTheme);
|
|
5563
|
+
const sourceChain = (0, import_react_redux44.useSelector)(selectSourceChain);
|
|
5523
5564
|
const dispatch = (0, import_react_redux44.useDispatch)();
|
|
5524
5565
|
const sliderRef = (0, import_react124.useRef)();
|
|
5525
5566
|
const { wallet, wallets, select, connect, connected } = (0, import_wallet_adapter_react7.useWallet)();
|
|
@@ -5563,17 +5604,30 @@ var SolanaWalletSelect = () => {
|
|
|
5563
5604
|
}, []);
|
|
5564
5605
|
const handleWalletClick = (0, import_react124.useCallback)(
|
|
5565
5606
|
(walletName) => {
|
|
5607
|
+
console.log(
|
|
5608
|
+
"SolanaWalletSelect: handleWalletClick: walletName: ",
|
|
5609
|
+
walletName
|
|
5610
|
+
);
|
|
5566
5611
|
select(walletName);
|
|
5567
5612
|
},
|
|
5568
5613
|
[select]
|
|
5569
5614
|
);
|
|
5570
5615
|
(0, import_react124.useEffect)(() => {
|
|
5571
|
-
|
|
5572
|
-
if (wallet)
|
|
5573
|
-
|
|
5574
|
-
|
|
5616
|
+
console.log("SolanaWalletSelect: useEffect: wallet: ", wallet);
|
|
5617
|
+
if (!wallet) return;
|
|
5618
|
+
if (sourceChain.shortName !== "SOL") {
|
|
5619
|
+
console.log("SolanaWalletSelect: source chain is not sol...");
|
|
5620
|
+
return;
|
|
5621
|
+
}
|
|
5622
|
+
if (!connected) {
|
|
5623
|
+
console.log(
|
|
5624
|
+
"SolanaWalletSelect: Wallet exists but not connected, connecting wallet:",
|
|
5625
|
+
wallet
|
|
5626
|
+
);
|
|
5627
|
+
connect().catch((err) => console.error("Solana connect error:", err));
|
|
5575
5628
|
}
|
|
5576
|
-
|
|
5629
|
+
dispatch(setSolanaConnectModal(false));
|
|
5630
|
+
}, [wallet, sourceChain]);
|
|
5577
5631
|
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
5632
|
"div",
|
|
5579
5633
|
{
|
|
@@ -5615,7 +5669,7 @@ var AccountDetailsModal = () => {
|
|
|
5615
5669
|
solanaWalletDisconnect();
|
|
5616
5670
|
dispatch(setAccountDetailsModal(false));
|
|
5617
5671
|
};
|
|
5618
|
-
if (sourceChain !== "SOL") return;
|
|
5672
|
+
if (sourceChain.shortName !== "SOL") return;
|
|
5619
5673
|
return /* @__PURE__ */ import_react125.default.createElement(
|
|
5620
5674
|
"div",
|
|
5621
5675
|
{
|
|
@@ -5687,7 +5741,7 @@ var AccountDetailsModal2 = () => {
|
|
|
5687
5741
|
const { balance: tronBalance } = useGetTrxBalance_default();
|
|
5688
5742
|
const selectedNetwork = (0, import_react_redux47.useSelector)(selectSourceChain);
|
|
5689
5743
|
const networkDetails = (0, import_react127.useMemo)(
|
|
5690
|
-
() => networkOptions.find(({ id }) => id === selectedNetwork),
|
|
5744
|
+
() => networkOptions.find(({ id }) => id === selectedNetwork.shortName),
|
|
5691
5745
|
[selectedNetwork]
|
|
5692
5746
|
);
|
|
5693
5747
|
const explorerUrl = (0, import_react127.useMemo)(() => {
|
|
@@ -5697,7 +5751,7 @@ var AccountDetailsModal2 = () => {
|
|
|
5697
5751
|
tronWalletDisconnect();
|
|
5698
5752
|
dispatch(setAccountDetailsModal(false));
|
|
5699
5753
|
};
|
|
5700
|
-
if (sourcheChain !== "TRX") return;
|
|
5754
|
+
if (sourcheChain.shortName !== "TRX") return;
|
|
5701
5755
|
return /* @__PURE__ */ import_react127.default.createElement(
|
|
5702
5756
|
"div",
|
|
5703
5757
|
{
|
|
@@ -5716,7 +5770,7 @@ var AccountDetailsModal2 = () => {
|
|
|
5716
5770
|
fill: theme.colorMode === "light" ? "black" : "white"
|
|
5717
5771
|
}
|
|
5718
5772
|
)
|
|
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")))
|
|
5773
|
+
)))), /* @__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
5774
|
);
|
|
5721
5775
|
};
|
|
5722
5776
|
var AccountDetailsModal_default2 = AccountDetailsModal2;
|
|
@@ -5847,7 +5901,8 @@ var useValidateTransaction = ({
|
|
|
5847
5901
|
sourceCompliant,
|
|
5848
5902
|
targetCompliant,
|
|
5849
5903
|
mode,
|
|
5850
|
-
pools
|
|
5904
|
+
pools,
|
|
5905
|
+
formStep
|
|
5851
5906
|
}) => {
|
|
5852
5907
|
const maxValue = (0, import_react130.useMemo)(() => {
|
|
5853
5908
|
if (!balance) return 0;
|
|
@@ -5895,24 +5950,22 @@ var useValidateTransaction = ({
|
|
|
5895
5950
|
};
|
|
5896
5951
|
}
|
|
5897
5952
|
}
|
|
5898
|
-
|
|
5899
|
-
console.log("useValidate:maxValue ", maxValue);
|
|
5900
|
-
if (+amount < totalFeeUsd) {
|
|
5953
|
+
if (+amount > balance && formStep === 0) {
|
|
5901
5954
|
return {
|
|
5902
|
-
error: "
|
|
5903
|
-
message: "
|
|
5955
|
+
error: "Warning" /* Warning */,
|
|
5956
|
+
message: "The entered amount exceeds your available balance. This transaction is likely to fail. Proceed with caution."
|
|
5904
5957
|
};
|
|
5905
5958
|
}
|
|
5906
|
-
if (+amount > maxValue) {
|
|
5959
|
+
if (+amount > maxValue && formStep === 0) {
|
|
5907
5960
|
return {
|
|
5908
|
-
error: "
|
|
5909
|
-
message:
|
|
5961
|
+
error: "Warning" /* Warning */,
|
|
5962
|
+
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
5963
|
};
|
|
5911
5964
|
}
|
|
5912
|
-
if (
|
|
5965
|
+
if (+amount < totalFeeUsd && formStep === 0) {
|
|
5913
5966
|
return {
|
|
5914
|
-
error: "
|
|
5915
|
-
message: "
|
|
5967
|
+
error: "Warning" /* Warning */,
|
|
5968
|
+
message: "Transaction fees exceed the transfer amount. This may result in an ineffective transaction. Proceed with caution."
|
|
5916
5969
|
};
|
|
5917
5970
|
}
|
|
5918
5971
|
if (!isApproved && isSubmitting) {
|
|
@@ -5957,7 +6010,7 @@ var useSubmitTransaction = ({
|
|
|
5957
6010
|
}) => {
|
|
5958
6011
|
const dispatch = (0, import_react_redux50.useDispatch)();
|
|
5959
6012
|
const [isSubmitting, setSubmitting] = (0, import_react131.useState)(false);
|
|
5960
|
-
const submitTransaction = async () => {
|
|
6013
|
+
const submitTransaction = async (signature) => {
|
|
5961
6014
|
try {
|
|
5962
6015
|
setSubmitting(true);
|
|
5963
6016
|
const params = JSON.stringify({
|
|
@@ -5974,7 +6027,8 @@ var useSubmitTransaction = ({
|
|
|
5974
6027
|
htlcCreationVout: 0,
|
|
5975
6028
|
htlcExpirationTimestamp: "0",
|
|
5976
6029
|
htlcVersion: "",
|
|
5977
|
-
senderPubKey: ""
|
|
6030
|
+
senderPubKey: "",
|
|
6031
|
+
options: signature
|
|
5978
6032
|
});
|
|
5979
6033
|
const transactionResult = await fetchWrapper.post(
|
|
5980
6034
|
`${backendUrl}/submit`,
|
|
@@ -6066,6 +6120,31 @@ function useDisconnectWallet4() {
|
|
|
6066
6120
|
return mainConnection ? { disconnectWallet: mainConnection.disconnectWallet } : defaultDisconnect;
|
|
6067
6121
|
}
|
|
6068
6122
|
|
|
6123
|
+
// src/components/reusable/WarningModal.tsx
|
|
6124
|
+
var import_react132 = __toESM(require("react"), 1);
|
|
6125
|
+
var WarningModal = ({
|
|
6126
|
+
message,
|
|
6127
|
+
onAcknowledge,
|
|
6128
|
+
onCancel
|
|
6129
|
+
}) => {
|
|
6130
|
+
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(
|
|
6131
|
+
SecondaryButton_default,
|
|
6132
|
+
{
|
|
6133
|
+
className: "warning-modal-cancel",
|
|
6134
|
+
clickHandler: onCancel
|
|
6135
|
+
},
|
|
6136
|
+
"Cancel"
|
|
6137
|
+
), /* @__PURE__ */ import_react132.default.createElement(
|
|
6138
|
+
PrimaryButton_default,
|
|
6139
|
+
{
|
|
6140
|
+
className: "warning-modal-acknowledge",
|
|
6141
|
+
clickHandler: onAcknowledge
|
|
6142
|
+
},
|
|
6143
|
+
"Acknowledge"
|
|
6144
|
+
))));
|
|
6145
|
+
};
|
|
6146
|
+
var WarningModal_default = WarningModal;
|
|
6147
|
+
|
|
6069
6148
|
// src/components/TransferWidget.tsx
|
|
6070
6149
|
var TransferWidget = ({
|
|
6071
6150
|
theme,
|
|
@@ -6074,8 +6153,9 @@ var TransferWidget = ({
|
|
|
6074
6153
|
paymentTitleOption
|
|
6075
6154
|
}) => {
|
|
6076
6155
|
const dispatch = (0, import_react_redux51.useDispatch)();
|
|
6077
|
-
const mainRef = (0,
|
|
6078
|
-
const [formStep, setFormStep] = (0,
|
|
6156
|
+
const mainRef = (0, import_react133.useRef)(null);
|
|
6157
|
+
const [formStep, setFormStep] = (0, import_react133.useState)(0);
|
|
6158
|
+
const [warningModalOpen, setWarningModalOpen] = (0, import_react133.useState)(null);
|
|
6079
6159
|
const dAppOption = (0, import_react_redux51.useSelector)(selectDappOption);
|
|
6080
6160
|
const mode = (0, import_react_redux51.useSelector)(selectMode);
|
|
6081
6161
|
const transactionOption = (0, import_react_redux51.useSelector)(selectTransactionOption);
|
|
@@ -6098,15 +6178,15 @@ var TransferWidget = ({
|
|
|
6098
6178
|
const networkOptions3 = (0, import_react_redux51.useSelector)(selectNetworkOption);
|
|
6099
6179
|
const feeDeduct = (0, import_react_redux51.useSelector)(selectFeeDeduct);
|
|
6100
6180
|
const { keplrHandler, closeHandler } = useKimaContext();
|
|
6101
|
-
const [isCancellingApprove, setCancellingApprove] = (0,
|
|
6102
|
-
const [isApproving, setApproving] = (0,
|
|
6103
|
-
const [isSigning, setSigning] = (0,
|
|
6181
|
+
const [isCancellingApprove, setCancellingApprove] = (0, import_react133.useState)(false);
|
|
6182
|
+
const [isApproving, setApproving] = (0, import_react133.useState)(false);
|
|
6183
|
+
const [isSigning, setSigning] = (0, import_react133.useState)(false);
|
|
6104
6184
|
const pendingTxs = (0, import_react_redux51.useSelector)(selectPendingTxs);
|
|
6105
6185
|
const networks = (0, import_react_redux51.useSelector)(selectNetworks);
|
|
6106
6186
|
const { width: windowWidth } = useWidth_default();
|
|
6107
6187
|
const { disconnectWallet } = useDisconnectWallet4();
|
|
6108
6188
|
const { balance } = useBalance2();
|
|
6109
|
-
const { allowance, isApproved, approve, decimals } = useAllowance({
|
|
6189
|
+
const { allowance, isApproved, approve, decimals, signMessage } = useAllowance({
|
|
6110
6190
|
setApproving,
|
|
6111
6191
|
setCancellingApprove
|
|
6112
6192
|
});
|
|
@@ -6137,7 +6217,8 @@ var TransferWidget = ({
|
|
|
6137
6217
|
compliantOption,
|
|
6138
6218
|
mode,
|
|
6139
6219
|
pools,
|
|
6140
|
-
feeDeduct
|
|
6220
|
+
feeDeduct,
|
|
6221
|
+
formStep
|
|
6141
6222
|
});
|
|
6142
6223
|
const { submitTransaction, isSubmitting } = useSubmitTransaction_default({
|
|
6143
6224
|
amount: BigInt(submitAmount ?? "0"),
|
|
@@ -6154,7 +6235,7 @@ var TransferWidget = ({
|
|
|
6154
6235
|
const handleSubmit = async () => {
|
|
6155
6236
|
const { error, message: validationMessage } = validate(true);
|
|
6156
6237
|
if (error === "ValidationError" /* Error */) {
|
|
6157
|
-
return import_react_hot_toast5.toast.error(validationMessage, { icon: /* @__PURE__ */
|
|
6238
|
+
return import_react_hot_toast5.toast.error(validationMessage, { icon: /* @__PURE__ */ import_react133.default.createElement(Error_default, null) });
|
|
6158
6239
|
}
|
|
6159
6240
|
if (error === "ApprovalNeeded" /* ApprovalNeeded */) {
|
|
6160
6241
|
return approve();
|
|
@@ -6163,18 +6244,30 @@ var TransferWidget = ({
|
|
|
6163
6244
|
keplrHandler && keplrHandler(sourceAddress);
|
|
6164
6245
|
return;
|
|
6165
6246
|
}
|
|
6166
|
-
const
|
|
6167
|
-
|
|
6247
|
+
const signature = await signMessage?.({
|
|
6248
|
+
targetAddress,
|
|
6249
|
+
targetChain: targetChain.shortName,
|
|
6250
|
+
targetSymbol: targetCurrency
|
|
6251
|
+
});
|
|
6252
|
+
const { success, message: submitMessage } = await submitTransaction(
|
|
6253
|
+
JSON.stringify({ signature })
|
|
6254
|
+
);
|
|
6255
|
+
if (!success) return import_react_hot_toast5.toast.error(submitMessage, { icon: /* @__PURE__ */ import_react133.default.createElement(Error_default, null) });
|
|
6168
6256
|
};
|
|
6169
6257
|
const onNext = () => {
|
|
6170
|
-
const { error, message } = validate();
|
|
6258
|
+
const { error, message: validationMessage } = validate();
|
|
6259
|
+
if (error === "Warning" /* Warning */ && formStep === 0) {
|
|
6260
|
+
console.log("validationError: Warning: ", validationMessage);
|
|
6261
|
+
setWarningModalOpen({ message: validationMessage });
|
|
6262
|
+
return;
|
|
6263
|
+
}
|
|
6171
6264
|
if (error !== "ValidationError" /* Error */ && !formStep) {
|
|
6172
6265
|
return setFormStep(1);
|
|
6173
6266
|
}
|
|
6174
6267
|
if (error !== "ValidationError" /* Error */ && formStep > 0) {
|
|
6175
6268
|
return handleSubmit();
|
|
6176
6269
|
}
|
|
6177
|
-
import_react_hot_toast5.toast.error(
|
|
6270
|
+
import_react_hot_toast5.toast.error(validationMessage, { icon: /* @__PURE__ */ import_react133.default.createElement(Error_default, null) });
|
|
6178
6271
|
mainRef.current?.click();
|
|
6179
6272
|
};
|
|
6180
6273
|
const onBack = () => {
|
|
@@ -6231,10 +6324,10 @@ var TransferWidget = ({
|
|
|
6231
6324
|
}
|
|
6232
6325
|
await disconnectWallet();
|
|
6233
6326
|
};
|
|
6234
|
-
(0,
|
|
6327
|
+
(0, import_react133.useEffect)(() => {
|
|
6235
6328
|
dispatch(setTheme(theme));
|
|
6236
6329
|
}, [theme]);
|
|
6237
|
-
return /* @__PURE__ */
|
|
6330
|
+
return /* @__PURE__ */ import_react133.default.createElement(
|
|
6238
6331
|
"div",
|
|
6239
6332
|
{
|
|
6240
6333
|
className: `kima-card ${theme.colorMode}`,
|
|
@@ -6242,14 +6335,28 @@ var TransferWidget = ({
|
|
|
6242
6335
|
background: theme.colorMode === "light" /* light */ ? theme.backgroundColorLight : theme.backgroundColorDark
|
|
6243
6336
|
}
|
|
6244
6337
|
},
|
|
6245
|
-
|
|
6246
|
-
|
|
6338
|
+
warningModalOpen && /* @__PURE__ */ import_react133.default.createElement(
|
|
6339
|
+
WarningModal_default,
|
|
6340
|
+
{
|
|
6341
|
+
message: warningModalOpen.message,
|
|
6342
|
+
onAcknowledge: () => {
|
|
6343
|
+
setWarningModalOpen(null);
|
|
6344
|
+
setFormStep(1);
|
|
6345
|
+
},
|
|
6346
|
+
onCancel: () => {
|
|
6347
|
+
setWarningModalOpen(null);
|
|
6348
|
+
setFormStep(0);
|
|
6349
|
+
}
|
|
6350
|
+
}
|
|
6351
|
+
),
|
|
6352
|
+
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."),
|
|
6353
|
+
/* @__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
6354
|
ExternalLink_default,
|
|
6248
6355
|
{
|
|
6249
6356
|
to: helpURL ? helpURL : "https://docs.kima.network/kima-network/try-kima-with-the-demo-app"
|
|
6250
6357
|
},
|
|
6251
|
-
/* @__PURE__ */
|
|
6252
|
-
), formStep === 0 && mode !== "payment" /* payment */ && /* @__PURE__ */
|
|
6358
|
+
/* @__PURE__ */ import_react133.default.createElement("div", { className: "menu-button" }, "I need help")
|
|
6359
|
+
), formStep === 0 && mode !== "payment" /* payment */ && /* @__PURE__ */ import_react133.default.createElement(
|
|
6253
6360
|
"button",
|
|
6254
6361
|
{
|
|
6255
6362
|
className: "reset-button",
|
|
@@ -6257,7 +6364,7 @@ var TransferWidget = ({
|
|
|
6257
6364
|
disabled: isApproving || isSubmitting || isSigning
|
|
6258
6365
|
},
|
|
6259
6366
|
"Reset"
|
|
6260
|
-
))), mode === "payment" /* payment */ && paymentTitleOption?.title && /* @__PURE__ */
|
|
6367
|
+
))), 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
6368
|
SingleForm_default,
|
|
6262
6369
|
{
|
|
6263
6370
|
...{
|
|
@@ -6275,7 +6382,7 @@ var TransferWidget = ({
|
|
|
6275
6382
|
isCancellingApprove
|
|
6276
6383
|
}
|
|
6277
6384
|
}
|
|
6278
|
-
) : /* @__PURE__ */
|
|
6385
|
+
) : /* @__PURE__ */ import_react133.default.createElement(
|
|
6279
6386
|
ConfirmDetails_default,
|
|
6280
6387
|
{
|
|
6281
6388
|
...{
|
|
@@ -6294,12 +6401,12 @@ var TransferWidget = ({
|
|
|
6294
6401
|
isApproved
|
|
6295
6402
|
}
|
|
6296
6403
|
}
|
|
6297
|
-
)), /* @__PURE__ */
|
|
6404
|
+
)), /* @__PURE__ */ import_react133.default.createElement(
|
|
6298
6405
|
"div",
|
|
6299
6406
|
{
|
|
6300
6407
|
className: `kima-card-footer ${mode === "bridge" /* bridge */ && formStep !== 0 && "confirm"}`
|
|
6301
6408
|
},
|
|
6302
|
-
/* @__PURE__ */
|
|
6409
|
+
/* @__PURE__ */ import_react133.default.createElement("div", { className: `button-group` }, formStep !== 0 && /* @__PURE__ */ import_react133.default.createElement(
|
|
6303
6410
|
SecondaryButton_default,
|
|
6304
6411
|
{
|
|
6305
6412
|
clickHandler: onBack,
|
|
@@ -6307,7 +6414,7 @@ var TransferWidget = ({
|
|
|
6307
6414
|
disabled: isApproving || isSubmitting || isSigning
|
|
6308
6415
|
},
|
|
6309
6416
|
formStep > 0 ? "Back" : "Cancel"
|
|
6310
|
-
), allowance > 0 && formStep !== 0 ? /* @__PURE__ */
|
|
6417
|
+
), allowance > 0 && formStep !== 0 ? /* @__PURE__ */ import_react133.default.createElement(
|
|
6311
6418
|
SecondaryButton_default,
|
|
6312
6419
|
{
|
|
6313
6420
|
clickHandler: onCancelApprove,
|
|
@@ -6316,7 +6423,7 @@ var TransferWidget = ({
|
|
|
6316
6423
|
disabled: isCancellingApprove || isApproving || isSubmitting || isSigning
|
|
6317
6424
|
},
|
|
6318
6425
|
isCancellingApprove ? "Cancelling Approval" : "Cancel Approve"
|
|
6319
|
-
) : null, /* @__PURE__ */
|
|
6426
|
+
) : null, /* @__PURE__ */ import_react133.default.createElement(
|
|
6320
6427
|
PrimaryButton_default,
|
|
6321
6428
|
{
|
|
6322
6429
|
clickHandler: onNext,
|
|
@@ -6325,7 +6432,7 @@ var TransferWidget = ({
|
|
|
6325
6432
|
},
|
|
6326
6433
|
getButtonLabel()
|
|
6327
6434
|
))
|
|
6328
|
-
), /* @__PURE__ */
|
|
6435
|
+
), /* @__PURE__ */ import_react133.default.createElement(SolanaWalletConnectModal_default, null), /* @__PURE__ */ import_react133.default.createElement(TronWalletConnectModal_default, null), /* @__PURE__ */ import_react133.default.createElement(
|
|
6329
6436
|
import_react_hot_toast5.Toaster,
|
|
6330
6437
|
{
|
|
6331
6438
|
position: "top-right",
|
|
@@ -6350,12 +6457,12 @@ var TransferWidget = ({
|
|
|
6350
6457
|
}
|
|
6351
6458
|
}
|
|
6352
6459
|
}
|
|
6353
|
-
), /* @__PURE__ */
|
|
6460
|
+
), /* @__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
6461
|
);
|
|
6355
6462
|
};
|
|
6356
6463
|
|
|
6357
6464
|
// src/components/KimaWidgetWrapper.tsx
|
|
6358
|
-
var
|
|
6465
|
+
var import_react135 = require("@reown/appkit/react");
|
|
6359
6466
|
var KimaWidgetWrapper = ({
|
|
6360
6467
|
mode,
|
|
6361
6468
|
txId,
|
|
@@ -6372,12 +6479,12 @@ var KimaWidgetWrapper = ({
|
|
|
6372
6479
|
const { kimaBackendUrl } = useKimaContext();
|
|
6373
6480
|
const submitted = (0, import_react_redux52.useSelector)(selectSubmitted);
|
|
6374
6481
|
const dispatch = (0, import_react_redux52.useDispatch)();
|
|
6375
|
-
const { setThemeMode, setThemeVariables } = (0,
|
|
6482
|
+
const { setThemeMode, setThemeVariables } = (0, import_react135.useAppKitTheme)();
|
|
6376
6483
|
const { data: chainData } = useChainData(kimaBackendUrl);
|
|
6377
6484
|
const { data: envOptions } = useGetEnvOptions({ kimaBackendUrl });
|
|
6378
6485
|
const networkOption = envOptions?.env;
|
|
6379
6486
|
const kimaExplorer = envOptions?.kimaExplorer || "https://explorer.sardis.kima.network";
|
|
6380
|
-
(0,
|
|
6487
|
+
(0, import_react134.useEffect)(() => {
|
|
6381
6488
|
dispatch(setTheme(theme));
|
|
6382
6489
|
setThemeMode(theme.colorMode === "light" /* light */ ? "light" : "dark");
|
|
6383
6490
|
setThemeVariables({
|
|
@@ -6420,11 +6527,11 @@ var KimaWidgetWrapper = ({
|
|
|
6420
6527
|
dispatch(setSubmitted(false));
|
|
6421
6528
|
}
|
|
6422
6529
|
}, [theme, transactionOption, mode, networkOption, chainData]);
|
|
6423
|
-
(0,
|
|
6530
|
+
(0, import_react134.useEffect)(() => {
|
|
6424
6531
|
if (!chainData?.length) return;
|
|
6425
6532
|
indexPluginsByChain(chainData);
|
|
6426
6533
|
}, [chainData]);
|
|
6427
|
-
return submitted ? /* @__PURE__ */
|
|
6534
|
+
return submitted ? /* @__PURE__ */ import_react134.default.createElement(TransactionWidget, { theme }) : /* @__PURE__ */ import_react134.default.createElement(
|
|
6428
6535
|
TransferWidget,
|
|
6429
6536
|
{
|
|
6430
6537
|
theme,
|
|
@@ -6457,13 +6564,13 @@ var KimaTransactionWidget = ({
|
|
|
6457
6564
|
kimaBackendUrl
|
|
6458
6565
|
});
|
|
6459
6566
|
const { data: chainData, isLoading: isLoadingChainData } = useChainData(kimaBackendUrl);
|
|
6460
|
-
(0,
|
|
6567
|
+
(0, import_react136.useEffect)(() => {
|
|
6461
6568
|
if (!isLoadingChainData && chainData) {
|
|
6462
6569
|
dispatch(setSourceChain(chainData[0]));
|
|
6463
6570
|
dispatch(setTargetChain(chainData[1]));
|
|
6464
6571
|
}
|
|
6465
6572
|
}, [chainData]);
|
|
6466
|
-
return isLoadingEnvs || isLoadingChainData ? /* @__PURE__ */
|
|
6573
|
+
return isLoadingEnvs || isLoadingChainData ? /* @__PURE__ */ import_react136.default.createElement(ring_default, null) : /* @__PURE__ */ import_react136.default.createElement(
|
|
6467
6574
|
KimaWidgetWrapper_default,
|
|
6468
6575
|
{
|
|
6469
6576
|
...{
|