@kimafinance/kima-transaction-widget 1.5.23 → 1.5.24

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 CHANGED
@@ -6504,43 +6504,64 @@ var useTrc20Allowance = () => {
6504
6504
  (0, import_react_redux20.useSelector)(selectNetworkOption)
6505
6505
  );
6506
6506
  const poolAddress = (0, import_react28.useMemo)(() => getPoolAddress(pools, "TRX"), [pools]);
6507
+ const tokenAddressTrimmed = (0, import_react28.useMemo)(
6508
+ () => tokenAddress?.trim(),
6509
+ [tokenAddress]
6510
+ );
6511
+ const poolAddressTrimmed = (0, import_react28.useMemo)(
6512
+ () => poolAddress?.trim(),
6513
+ [poolAddress]
6514
+ );
6507
6515
  const isOwnerValid = !!address && !!tronWeb?.isAddress?.(address);
6508
- const enabled = isOwnerValid && !!tokenAddress && !!poolAddress && !!tronWeb && sourceChain.shortName === "TRX";
6516
+ const isTokenValid = !!tokenAddressTrimmed && !!tronWeb?.isAddress?.(tokenAddressTrimmed);
6517
+ const isPoolValid = !!poolAddressTrimmed && !!tronWeb?.isAddress?.(poolAddressTrimmed);
6518
+ const enabled = isOwnerValid && isTokenValid && isPoolValid && !!tronWeb && sourceChain.shortName === "TRX";
6509
6519
  (0, import_react28.useEffect)(() => {
6510
6520
  logger_default.debug("[useTrc20Allowance] init", {
6511
6521
  mode,
6512
6522
  sourceChain: sourceChain?.shortName,
6513
6523
  address,
6514
- tokenAddress,
6515
- poolAddress,
6524
+ tokenAddress: tokenAddressTrimmed,
6525
+ poolAddress: poolAddressTrimmed,
6516
6526
  hasTronWeb: !!tronWeb,
6517
6527
  isOwnerValid,
6528
+ isTokenValid,
6529
+ isPoolValid,
6518
6530
  enabled
6519
6531
  });
6520
6532
  }, [
6521
6533
  mode,
6522
6534
  sourceChain?.shortName,
6523
6535
  address,
6524
- tokenAddress,
6525
- poolAddress,
6536
+ tokenAddressTrimmed,
6537
+ poolAddressTrimmed,
6526
6538
  tronWeb,
6527
6539
  isOwnerValid,
6540
+ isTokenValid,
6541
+ isPoolValid,
6528
6542
  enabled
6529
6543
  ]);
6530
6544
  const q = (0, import_react_query12.useQuery)({
6531
- queryKey: ["tronAllowance", address, tokenAddress, poolAddress],
6545
+ queryKey: [
6546
+ "tronAllowance",
6547
+ address,
6548
+ tokenAddressTrimmed,
6549
+ poolAddressTrimmed
6550
+ ],
6532
6551
  enabled,
6533
6552
  staleTime: 6e4,
6534
6553
  refetchInterval: 6e4,
6535
6554
  queryFn: async () => {
6536
6555
  logger_default.debug("[useTrc20Allowance] queryFn:start", {
6537
6556
  owner: address,
6538
- tokenAddress,
6539
- poolAddress,
6557
+ tokenAddress: tokenAddressTrimmed,
6558
+ poolAddress: poolAddressTrimmed,
6540
6559
  defaultAddress: tronWeb?.defaultAddress
6541
6560
  });
6542
6561
  try {
6543
6562
  const ownerBase58 = address;
6563
+ const tokenBase58 = tokenAddressTrimmed;
6564
+ const poolBase58 = poolAddressTrimmed;
6544
6565
  try {
6545
6566
  const cur = tronWeb.defaultAddress?.base58;
6546
6567
  if (!cur || cur !== ownerBase58) {
@@ -6554,25 +6575,28 @@ var useTrc20Allowance = () => {
6554
6575
  logger_default.warn("[useTrc20Allowance] setAddress failed (non-fatal)", e);
6555
6576
  }
6556
6577
  const isOwner = tronWeb.isAddress(ownerBase58);
6557
- const isToken = tronWeb.isAddress(tokenAddress);
6558
- const isPool = tronWeb.isAddress(poolAddress);
6578
+ const isToken = tronWeb.isAddress(tokenBase58);
6579
+ const isPool = tronWeb.isAddress(poolBase58);
6559
6580
  logger_default.debug("[useTrc20Allowance] address checks", {
6560
6581
  isOwner,
6561
6582
  isToken,
6562
6583
  isPool
6563
6584
  });
6585
+ if (!isOwner || !isToken || !isPool) {
6586
+ throw new Error("Invalid Tron address for allowance lookup");
6587
+ }
6564
6588
  let tokenHex;
6565
6589
  let ownerHex;
6566
6590
  let poolHex;
6567
6591
  try {
6568
- tokenHex = tronWeb.address.toHex(tokenAddress);
6592
+ tokenHex = tronWeb.address.toHex(tokenBase58);
6569
6593
  ownerHex = tronWeb.address.toHex(ownerBase58);
6570
- poolHex = tronWeb.address.toHex(poolAddress);
6594
+ poolHex = tronWeb.address.toHex(poolBase58);
6571
6595
  } catch (hexErr) {
6572
6596
  logger_default.error("[useTrc20Allowance] toHex error", {
6573
6597
  ownerBase58,
6574
- tokenAddress,
6575
- poolAddress,
6598
+ tokenAddress: tokenBase58,
6599
+ poolAddress: poolBase58,
6576
6600
  hexErr
6577
6601
  });
6578
6602
  throw hexErr;
@@ -6635,6 +6659,14 @@ var useApproveTrc20 = () => {
6635
6659
  (0, import_react_redux21.useSelector)(selectNetworkOption)
6636
6660
  );
6637
6661
  const poolAddress = (0, import_react29.useMemo)(() => getPoolAddress(pools, "TRX"), [pools]);
6662
+ const tokenAddressTrimmed = (0, import_react29.useMemo)(
6663
+ () => tokenAddress?.trim(),
6664
+ [tokenAddress]
6665
+ );
6666
+ const poolAddressTrimmed = (0, import_react29.useMemo)(
6667
+ () => poolAddress?.trim(),
6668
+ [poolAddress]
6669
+ );
6638
6670
  const { data } = useTrc20Allowance();
6639
6671
  const approve = (0, import_react29.useCallback)(
6640
6672
  async (isCancel = false) => {
@@ -6648,12 +6680,12 @@ var useApproveTrc20 = () => {
6648
6680
  hasTronWeb: !!tronWeb
6649
6681
  });
6650
6682
  try {
6651
- if (!tronWeb || !address || !tokenAddress || !poolAddress || sourceChain.shortName !== "TRX") {
6683
+ if (!tronWeb || !address || !tokenAddressTrimmed || !poolAddressTrimmed || sourceChain.shortName !== "TRX") {
6652
6684
  logger_default.warn("[useApproveTrc20] missing prerequisites", {
6653
6685
  hasTronWeb: !!tronWeb,
6654
6686
  address,
6655
- tokenAddress,
6656
- poolAddress,
6687
+ tokenAddress: tokenAddressTrimmed,
6688
+ poolAddress: poolAddressTrimmed,
6657
6689
  source: sourceChain?.shortName
6658
6690
  });
6659
6691
  return;
@@ -6663,11 +6695,25 @@ var useApproveTrc20 = () => {
6663
6695
  logger_default.error("[useApproveTrc20] " + msg, { address });
6664
6696
  throw new Error(msg);
6665
6697
  }
6698
+ if (!tronWeb.isAddress(tokenAddressTrimmed)) {
6699
+ const msg = "Invalid Tron token address";
6700
+ logger_default.error("[useApproveTrc20] " + msg, {
6701
+ tokenAddress: tokenAddressTrimmed
6702
+ });
6703
+ throw new Error(msg);
6704
+ }
6705
+ if (!tronWeb.isAddress(poolAddressTrimmed)) {
6706
+ const msg = "Invalid Tron pool address";
6707
+ logger_default.error("[useApproveTrc20] " + msg, {
6708
+ poolAddress: poolAddressTrimmed
6709
+ });
6710
+ throw new Error(msg);
6711
+ }
6666
6712
  const amount = isCancel ? "0" : allowanceNeeded.toString();
6667
6713
  logger_default.info("[useApproveTrc20] approve amount", { amount });
6668
6714
  const ownerHex = tronWeb.address.toHex(address);
6669
- const tokenHex = tronWeb.address.toHex(tokenAddress);
6670
- const poolHex = tronWeb.address.toHex(poolAddress);
6715
+ const tokenHex = tronWeb.address.toHex(tokenAddressTrimmed);
6716
+ const poolHex = tronWeb.address.toHex(poolAddressTrimmed);
6671
6717
  logger_default.debug("[useApproveTrc20] hex", { ownerHex, tokenHex, poolHex });
6672
6718
  const txResp = await tronWeb.transactionBuilder.triggerSmartContract(
6673
6719
  tokenHex,
@@ -6716,8 +6762,8 @@ var useApproveTrc20 = () => {
6716
6762
  tronWeb,
6717
6763
  signTransaction,
6718
6764
  address,
6719
- tokenAddress,
6720
- poolAddress,
6765
+ tokenAddressTrimmed,
6766
+ poolAddressTrimmed,
6721
6767
  allowanceNeeded,
6722
6768
  sourceChain?.shortName,
6723
6769
  qc