@kimafinance/kima-transaction-widget 1.0.8 → 1.1.0
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.js +247 -160
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +139 -82
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
|
@@ -1054,8 +1054,12 @@ function useNetworkOptions() {
|
|
|
1054
1054
|
useEffect(() => {
|
|
1055
1055
|
if (!nodeProviderQuery) return;
|
|
1056
1056
|
(async function () {
|
|
1057
|
-
|
|
1058
|
-
|
|
1057
|
+
try {
|
|
1058
|
+
const networks = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/getChains`);
|
|
1059
|
+
setOptions(networkOptions.filter(network => networks.Chains.findIndex(id => id === network.id) >= 0));
|
|
1060
|
+
} catch (e) {
|
|
1061
|
+
console.log('rpc disconnected', e);
|
|
1062
|
+
}
|
|
1059
1063
|
})();
|
|
1060
1064
|
}, [nodeProviderQuery]);
|
|
1061
1065
|
return useMemo(() => ({
|
|
@@ -1091,18 +1095,26 @@ const Network = ({
|
|
|
1091
1095
|
useEffect(() => {
|
|
1092
1096
|
if (!nodeProviderQuery || mode !== ModeOptions.bridge) return;
|
|
1093
1097
|
(async function () {
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
+
try {
|
|
1099
|
+
const networks = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${originNetwork}`);
|
|
1100
|
+
setAvailableNetworks(networks.Chains);
|
|
1101
|
+
if (_isOriginChain) {
|
|
1102
|
+
dispatch(setTargetNetwork(networks.Chains[0]));
|
|
1103
|
+
}
|
|
1104
|
+
} catch (e) {
|
|
1105
|
+
console.log('rpc disconnected', e);
|
|
1098
1106
|
}
|
|
1099
1107
|
})();
|
|
1100
1108
|
}, [nodeProviderQuery, originNetwork, mode, _isOriginChain]);
|
|
1101
1109
|
useEffect(() => {
|
|
1102
1110
|
if (!nodeProviderQuery || mode !== ModeOptions.payment) return;
|
|
1103
1111
|
(async function () {
|
|
1104
|
-
|
|
1105
|
-
|
|
1112
|
+
try {
|
|
1113
|
+
const networks = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${targetNetwork}`);
|
|
1114
|
+
setAvailableNetworks(networks.Chains);
|
|
1115
|
+
} catch (e) {
|
|
1116
|
+
console.log('rpc disconnected', e);
|
|
1117
|
+
}
|
|
1106
1118
|
})();
|
|
1107
1119
|
}, [nodeProviderQuery, mode]);
|
|
1108
1120
|
useEffect(() => {
|
|
@@ -1884,18 +1896,26 @@ const NetworkDropdown = ({
|
|
|
1884
1896
|
useEffect(() => {
|
|
1885
1897
|
if (!nodeProviderQuery || mode !== ModeOptions.bridge) return;
|
|
1886
1898
|
(async function () {
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1899
|
+
try {
|
|
1900
|
+
const networks = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${originNetwork}`);
|
|
1901
|
+
setAvailableNetworks(networks.Chains);
|
|
1902
|
+
if (_isOriginChain) {
|
|
1903
|
+
dispatch(setTargetNetwork(networks.Chains[0]));
|
|
1904
|
+
}
|
|
1905
|
+
} catch (e) {
|
|
1906
|
+
console.log('rpc disconnected', e);
|
|
1891
1907
|
}
|
|
1892
1908
|
})();
|
|
1893
1909
|
}, [nodeProviderQuery, originNetwork, mode, _isOriginChain]);
|
|
1894
1910
|
useEffect(() => {
|
|
1895
1911
|
if (!nodeProviderQuery || mode !== ModeOptions.payment) return;
|
|
1896
1912
|
(async function () {
|
|
1897
|
-
|
|
1898
|
-
|
|
1913
|
+
try {
|
|
1914
|
+
const networks = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${targetNetwork}`);
|
|
1915
|
+
setAvailableNetworks(networks.Chains);
|
|
1916
|
+
} catch (e) {
|
|
1917
|
+
console.log('rpc disconnected', e);
|
|
1918
|
+
}
|
|
1899
1919
|
})();
|
|
1900
1920
|
}, [nodeProviderQuery, mode]);
|
|
1901
1921
|
return React.createElement("div", {
|
|
@@ -2191,57 +2211,61 @@ const TransactionWidget = ({
|
|
|
2191
2211
|
useEffect(() => {
|
|
2192
2212
|
if (!nodeProviderQuery || txId < 0) return;
|
|
2193
2213
|
const timerId = setInterval(async () => {
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
|
|
2232
|
-
|
|
2233
|
-
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2214
|
+
try {
|
|
2215
|
+
const result = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/transaction_data/${txId}`);
|
|
2216
|
+
const data = result === null || result === void 0 ? void 0 : result.transactionData;
|
|
2217
|
+
if (!data) return;
|
|
2218
|
+
const status = data.status;
|
|
2219
|
+
console.log(status);
|
|
2220
|
+
setData({
|
|
2221
|
+
sourceChain: data.originChain,
|
|
2222
|
+
targetChain: data.targetChain,
|
|
2223
|
+
tssPullHash: data.tssPullHash,
|
|
2224
|
+
tssReleaseHash: data.tssReleaseHash,
|
|
2225
|
+
amount: +data.amount,
|
|
2226
|
+
symbol: data.symbol,
|
|
2227
|
+
kimaTxHash: data.kimaTxHash
|
|
2228
|
+
});
|
|
2229
|
+
setErrorStep(-1);
|
|
2230
|
+
if (status === TransactionStatus.AVAILABLE) {
|
|
2231
|
+
setStep(1);
|
|
2232
|
+
setPercent(25);
|
|
2233
|
+
setLoadingStep(1);
|
|
2234
|
+
} else if (status === TransactionStatus.CONFIRMED) {
|
|
2235
|
+
setStep(2);
|
|
2236
|
+
setPercent(50);
|
|
2237
|
+
setLoadingStep(2);
|
|
2238
|
+
} else if (status.startsWith(TransactionStatus.UNAVAILABLE)) {
|
|
2239
|
+
setStep(1);
|
|
2240
|
+
setPercent(25);
|
|
2241
|
+
setErrorStep(1);
|
|
2242
|
+
setLoadingStep(-1);
|
|
2243
|
+
} else if (status === TransactionStatus.KEYSIGNED) {
|
|
2244
|
+
setStep(3);
|
|
2245
|
+
setPercent(75);
|
|
2246
|
+
setLoadingStep(3);
|
|
2247
|
+
} else if (status === TransactionStatus.PAID) {
|
|
2248
|
+
setStep(3);
|
|
2249
|
+
setPercent(90);
|
|
2250
|
+
setLoadingStep(3);
|
|
2251
|
+
} else if (status === TransactionStatus.FAILED) {
|
|
2252
|
+
setStep(3);
|
|
2253
|
+
setPercent(90);
|
|
2254
|
+
setErrorStep(3);
|
|
2255
|
+
setLoadingStep(-1);
|
|
2256
|
+
} else if (status === TransactionStatus.COMPLETED) {
|
|
2257
|
+
setStep(4);
|
|
2258
|
+
setPercent(100);
|
|
2259
|
+
clearInterval(timerId);
|
|
2260
|
+
setLoadingStep(-1);
|
|
2261
|
+
setTimeout(() => {
|
|
2262
|
+
successHandler({
|
|
2263
|
+
txId
|
|
2264
|
+
});
|
|
2265
|
+
}, 3000);
|
|
2266
|
+
}
|
|
2267
|
+
} catch (e) {
|
|
2268
|
+
console.log('rpc disconnected', e);
|
|
2245
2269
|
}
|
|
2246
2270
|
}, 1000);
|
|
2247
2271
|
return () => {
|
|
@@ -6204,17 +6228,27 @@ function useAllowance() {
|
|
|
6204
6228
|
}, [selectedCoin, sourceChain]);
|
|
6205
6229
|
const [targetAddress, setTargetAddress] = useState();
|
|
6206
6230
|
const isApproved = useMemo(() => {
|
|
6207
|
-
if (!isEVMChain(sourceChain))
|
|
6231
|
+
if (!isEVMChain(sourceChain)) {
|
|
6232
|
+
return allowance >= amount + serviceFee;
|
|
6233
|
+
}
|
|
6208
6234
|
if (allowance && amount && allowance.gte(parseUnits((amount + serviceFee).toString(), decimals))) return true;
|
|
6209
6235
|
return false;
|
|
6210
6236
|
}, [decimals, sourceChain, allowance, amount, splAllowance, serviceFee]);
|
|
6211
6237
|
const updatePoolAddress = async () => {
|
|
6212
|
-
|
|
6213
|
-
|
|
6214
|
-
|
|
6215
|
-
|
|
6238
|
+
try {
|
|
6239
|
+
var _result$tssPubkey;
|
|
6240
|
+
if (sourceChain === ChainName.SOLANA) {
|
|
6241
|
+
setTargetAddress('8ymXJ6RH9k8qSf1xsvxSWgzPB9RYgUuHPDgonkFzUEhT');
|
|
6242
|
+
return;
|
|
6243
|
+
}
|
|
6244
|
+
const result = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/tss_pubkey`);
|
|
6245
|
+
if ((result === null || result === void 0 ? void 0 : (_result$tssPubkey = result.tssPubkey) === null || _result$tssPubkey === void 0 ? void 0 : _result$tssPubkey.length) < 1) {
|
|
6246
|
+
return;
|
|
6247
|
+
}
|
|
6248
|
+
setTargetAddress(sourceChain === ChainName.SOLANA ? result.tssPubkey[0].ebdsa : result.tssPubkey[0].ecdsa);
|
|
6249
|
+
} catch (e) {
|
|
6250
|
+
console.log('rpc disconnected', e);
|
|
6216
6251
|
}
|
|
6217
|
-
setTargetAddress(sourceChain === ChainName.SOLANA ? result.tssPubkey[0].ebdsa : result.tssPubkey[0].ecdsa);
|
|
6218
6252
|
};
|
|
6219
6253
|
useEffect(() => {
|
|
6220
6254
|
if (!nodeProviderQuery) return;
|
|
@@ -6223,7 +6257,20 @@ function useAllowance() {
|
|
|
6223
6257
|
useEffect(() => {
|
|
6224
6258
|
(async () => {
|
|
6225
6259
|
try {
|
|
6226
|
-
if (!isEVMChain(sourceChain)
|
|
6260
|
+
if (!isEVMChain(sourceChain) && publicKey && tokenAddress && connection) {
|
|
6261
|
+
var _accountInfo$value, _parsedAccountInfo$pa, _parsedAccountInfo$pa2, _parsedAccountInfo$pa3, _parsedAccountInfo$pa4, _parsedAccountInfo$pa5;
|
|
6262
|
+
const mint = new PublicKey(tokenAddress);
|
|
6263
|
+
console.log(mint, publicKey, tokenAddress);
|
|
6264
|
+
const fromTokenAccount = await getOrCreateAssociatedTokenAccount(connection, publicKey, mint, publicKey, signTransaction);
|
|
6265
|
+
console.log(fromTokenAccount);
|
|
6266
|
+
const accountInfo = await connection.getParsedAccountInfo(fromTokenAccount.address);
|
|
6267
|
+
console.log(accountInfo);
|
|
6268
|
+
setDecimals(COIN_LIST['USDK'].decimals);
|
|
6269
|
+
const parsedAccountInfo = accountInfo === null || accountInfo === void 0 ? void 0 : (_accountInfo$value = accountInfo.value) === null || _accountInfo$value === void 0 ? void 0 : _accountInfo$value.data;
|
|
6270
|
+
setAllowance(((_parsedAccountInfo$pa = parsedAccountInfo.parsed) === null || _parsedAccountInfo$pa === void 0 ? void 0 : (_parsedAccountInfo$pa2 = _parsedAccountInfo$pa.info) === null || _parsedAccountInfo$pa2 === void 0 ? void 0 : _parsedAccountInfo$pa2.delegate) === targetAddress ? (_parsedAccountInfo$pa3 = parsedAccountInfo.parsed) === null || _parsedAccountInfo$pa3 === void 0 ? void 0 : (_parsedAccountInfo$pa4 = _parsedAccountInfo$pa3.info) === null || _parsedAccountInfo$pa4 === void 0 ? void 0 : (_parsedAccountInfo$pa5 = _parsedAccountInfo$pa4.delegatedAmount) === null || _parsedAccountInfo$pa5 === void 0 ? void 0 : _parsedAccountInfo$pa5.uiAmount : 0);
|
|
6271
|
+
return;
|
|
6272
|
+
}
|
|
6273
|
+
if (!tokenAddress || !targetAddress || !signer || !signerAddress) return;
|
|
6227
6274
|
const erc20Contract = new Contract(tokenAddress, ERC20ABI.abi, signer);
|
|
6228
6275
|
const decimals = await erc20Contract.decimals();
|
|
6229
6276
|
const userAllowance = await erc20Contract.allowance(signerAddress, targetAddress);
|
|
@@ -6233,7 +6280,7 @@ function useAllowance() {
|
|
|
6233
6280
|
errorHandler(error);
|
|
6234
6281
|
}
|
|
6235
6282
|
})();
|
|
6236
|
-
}, [signerAddress, tokenAddress, targetAddress, isApproving, sourceChain]);
|
|
6283
|
+
}, [signerAddress, tokenAddress, targetAddress, isApproving, sourceChain, publicKey]);
|
|
6237
6284
|
const approve = useCallback(async () => {
|
|
6238
6285
|
if (isEVMChain(sourceChain)) {
|
|
6239
6286
|
if (!decimals || !tokenAddress || !signer || !targetAddress) return;
|
|
@@ -6294,7 +6341,7 @@ async function getFeeInUSD(sourceChain, targetChain, gasFee) {
|
|
|
6294
6341
|
if (targetChain === ChainName.SOLANA) {
|
|
6295
6342
|
targetFee = +gasFee[targetChain] * +targetTokenPrice;
|
|
6296
6343
|
} else targetFee = gasFee[targetChain] ? +gasFee[targetChain] * max_gas * +targetTokenPrice / 1e9 : 0;
|
|
6297
|
-
return [sourceFee, targetFee];
|
|
6344
|
+
return [isNaN(sourceFee) ? 0 : sourceFee, isNaN(targetFee) ? 0 : targetFee];
|
|
6298
6345
|
}
|
|
6299
6346
|
function useServiceFee() {
|
|
6300
6347
|
const {
|
|
@@ -6323,10 +6370,11 @@ function useServiceFee() {
|
|
|
6323
6370
|
});
|
|
6324
6371
|
const estimation = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/estimate_transfer/${sourceChain}/${walletAddress}/${targetChain}/${targetAddress}/${amount}`);
|
|
6325
6372
|
const [originFee, targetFee] = await getFeeInUSD(sourceChain, targetChain, gasFee);
|
|
6326
|
-
|
|
6373
|
+
let fee = parseFloat(estimation.estimateTransfer.TakerPenalty) + parseFloat(estimation.estimateTransfer.MakerPenalty) - parseFloat(estimation.estimateTransfer.TakerBounty) - parseFloat(estimation.estimateTransfer.MakerBounty) + parseFloat(estimation.estimateTransfer.NetworkFee) + originFee + targetFee;
|
|
6374
|
+
fee = fee < 0 ? 0 : fee;
|
|
6327
6375
|
setServiceFee(parseFloat(fee.toFixed(2)));
|
|
6328
6376
|
} catch (e) {
|
|
6329
|
-
console.log(e);
|
|
6377
|
+
console.log('rpc disconnected', e);
|
|
6330
6378
|
}
|
|
6331
6379
|
};
|
|
6332
6380
|
useEffect(() => {
|
|
@@ -6334,7 +6382,7 @@ function useServiceFee() {
|
|
|
6334
6382
|
getServiceFee();
|
|
6335
6383
|
const timerId = setInterval(() => {
|
|
6336
6384
|
getServiceFee();
|
|
6337
|
-
},
|
|
6385
|
+
}, 20 * 1000);
|
|
6338
6386
|
return () => {
|
|
6339
6387
|
clearInterval(timerId);
|
|
6340
6388
|
};
|
|
@@ -6361,9 +6409,13 @@ function useCurrencyOptions() {
|
|
|
6361
6409
|
useEffect(() => {
|
|
6362
6410
|
if (!nodeProviderQuery || !originNetwork || !targetNetwork) return;
|
|
6363
6411
|
(async function () {
|
|
6364
|
-
|
|
6365
|
-
|
|
6366
|
-
|
|
6412
|
+
try {
|
|
6413
|
+
var _coins$Currencies;
|
|
6414
|
+
const coins = await fetchWrapper.get(`${nodeProviderQuery}/kima-finance/kima/kima/getCurrencies/${originNetwork}/${targetNetwork}`);
|
|
6415
|
+
setOptions(COIN_LIST[(_coins$Currencies = coins.Currencies) !== null && _coins$Currencies !== void 0 && _coins$Currencies.length ? coins.Currencies[0] : 'USDK']);
|
|
6416
|
+
} catch (e) {
|
|
6417
|
+
console.log('rpc disconnected', e);
|
|
6418
|
+
}
|
|
6367
6419
|
})();
|
|
6368
6420
|
}, [nodeProviderQuery, originNetwork, targetNetwork]);
|
|
6369
6421
|
return useMemo(() => ({
|
|
@@ -6458,6 +6510,7 @@ const TransferWidget = ({
|
|
|
6458
6510
|
} catch (e) {
|
|
6459
6511
|
errorHandler(e);
|
|
6460
6512
|
dispatch(setSubmitting(false));
|
|
6513
|
+
console.log('rpc disconnected', e);
|
|
6461
6514
|
}
|
|
6462
6515
|
};
|
|
6463
6516
|
const onNext = () => {
|
|
@@ -6595,8 +6648,12 @@ const KimaTransactionWidget = ({
|
|
|
6595
6648
|
if (mode === ModeOptions.payment) {
|
|
6596
6649
|
dispatch(setTargetNetwork((transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain) || ChainName.ETHEREUM));
|
|
6597
6650
|
(async function () {
|
|
6598
|
-
|
|
6599
|
-
|
|
6651
|
+
try {
|
|
6652
|
+
const networks = await fetchWrapper.get(`${kimaNodeProviderQuery}/kima-finance/kima/kima/get_available_chains/${(transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetChain) || ChainName.ETHEREUM}`);
|
|
6653
|
+
dispatch(setOriginNetwork(networks.Chains[0]));
|
|
6654
|
+
} catch (e) {
|
|
6655
|
+
console.log('rpc disconnected', e);
|
|
6656
|
+
}
|
|
6600
6657
|
})();
|
|
6601
6658
|
dispatch(setTargetAddress((transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.targetAddress) || ''));
|
|
6602
6659
|
dispatch(setAmount((transactionOption === null || transactionOption === void 0 ? void 0 : transactionOption.amount) || 0));
|