Skip to content

Commit

Permalink
Merge pull request #1105 from oraidex/fix/solana
Browse files Browse the repository at this point in the history
Fix/solana
  • Loading branch information
haunv3 authored Dec 31, 2024
2 parents e29bc56 + ce951b2 commit f6b26b7
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,11 @@ export default function SelectToken({
return unique;
}, []);

const prioritizeToken = MAX_ORAICHAIN_DENOM;
const RACKS_ORAICHAIN_DENOM =
'factory/orai1wuvhex9xqs3r539mvc6mtm7n20fcj3qr2m0y9khx6n5vtlngfzes3k0rq9/D7yP4ycfsRWUGYionGpi64sLF2ddZ2JXxuRAti2M7uck';
// const prioritizeToken = RACKS_ORAICHAIN_DENOM;
const prioritizeToken = [MAX_ORAICHAIN_DENOM, RACKS_ORAICHAIN_DENOM];

return (
<div className={`${styles.selectToken} ${isSelectToken ? styles.active : ''}`}>
<div className={styles.selectTokenHeader}>
Expand Down Expand Up @@ -168,10 +172,10 @@ export default function SelectToken({
})
.sort((a, b) => {
const balanceDelta = Number(b.usd) - Number(a.usd);
if (a.denom === prioritizeToken && b.denom !== prioritizeToken) {
if (prioritizeToken.includes(a.denom) && !prioritizeToken.includes(b.denom)) {
return -1; // Push max elements to the top
}
if (a.denom !== prioritizeToken && b.denom === prioritizeToken) {
if (!prioritizeToken.includes(a.denom) && prioritizeToken.includes(b.denom)) {
return 1; // Keep non-'a' elements below 'a'
}

Expand Down
32 changes: 20 additions & 12 deletions src/pages/UniversalSwap/Swap/hooks/useCalculateDataSwap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,17 +59,24 @@ const useCalculateDataSwap = ({ originalFromToken, originalToToken, fromToken, t
data: [fromTokenInfoData, toTokenInfoData]
} = useQuery(['token-infos', fromToken, toToken], () => fetchTokenInfos([fromToken!, toToken!]), { initialData: [] });

const { simulateData, setSwapAmount, fromAmountToken, toAmountToken, debouncedFromAmount, isPreviousSimulate } =
useSimulate(
'simulate-data',
fromTokenInfoData,
toTokenInfoData,
originalFromToken,
originalToToken,
routerClient,
null,
simulateOption
);
const {
simulateData,
setSwapAmount,
fromAmountToken,
toAmountToken,
debouncedFromAmount,
isPreviousSimulate,
isRefetching
} = useSimulate(
'simulate-data',
fromTokenInfoData,
toTokenInfoData,
originalFromToken,
originalToToken,
routerClient,
null,
simulateOption
);

const { simulateData: averageSimulateData, isPreviousSimulate: isAveragePreviousSimulate } = useSimulate(
'average-simulate-data',
Expand Down Expand Up @@ -193,7 +200,8 @@ const useCalculateDataSwap = ({ originalFromToken, originalToToken, fromToken, t
fromAmountToken,
toAmountToken,
debouncedFromAmount,
isPreviousSimulate
isPreviousSimulate,
isRefetching
}
};
};
Expand Down
13 changes: 9 additions & 4 deletions src/pages/UniversalSwap/Swap/hooks/useSimulate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,11 @@ export const useSimulate = (
const debouncedFromAmount = useDebounce(fromAmountToken, 800);
let enabled = !!fromTokenInfoData && !!toTokenInfoData && !!debouncedFromAmount && fromAmountToken > 0;
if (simulateOption?.isAvgSimulate) enabled = false;
const { data: simulateData, isPreviousData: isPreviousSimulate } = useQuery(
const {
data: simulateData,
isPreviousData: isPreviousSimulate,
isRefetching
} = useQuery(
[queryKey, fromTokenInfoData, toTokenInfoData, debouncedFromAmount],
async () => {
try {
Expand Down Expand Up @@ -89,8 +93,8 @@ export const useSimulate = (
},
{
keepPreviousData: true,
refetchInterval: 15000,
staleTime: 1000,
refetchInterval: 5000,
staleTime: 2000,
enabled,
onError: (error) => {
console.log('isAvgSimulate:', simulateOption?.isAvgSimulate, 'error when simulate: ', error);
Expand All @@ -110,6 +114,7 @@ export const useSimulate = (
toAmountToken,
setSwapAmount,
debouncedFromAmount,
isPreviousSimulate
isPreviousSimulate,
isRefetching
};
};
33 changes: 29 additions & 4 deletions src/pages/UniversalSwap/Swap/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -187,8 +187,15 @@ const SwapComponent: React.FC<{
const { expectOutputDisplay, minimumReceiveDisplay, isWarningSlippage } = outputs;
const { fromAmountTokenBalance, usdPriceShowFrom, usdPriceShowTo } = tokenInfos;
const { averageRatio, averageSimulateData, isAveragePreviousSimulate } = averageSimulateDatas;
const { simulateData, setSwapAmount, fromAmountToken, toAmountToken, debouncedFromAmount, isPreviousSimulate } =
simulateDatas;
const {
simulateData,
setSwapAmount,
fromAmountToken,
toAmountToken,
debouncedFromAmount,
isPreviousSimulate,
isRefetching
} = simulateDatas;

const subAmountFrom = toSubAmount(amounts, originalFromToken);
const subAmountTo = toSubAmount(amounts, originalToToken);
Expand All @@ -211,6 +218,23 @@ const SwapComponent: React.FC<{
setIndSmartRoute([0, 0]);
});

useEffect(() => {
if (import.meta.env.VITE_APP_SENTRY_ENVIRONMENT === 'production' && simulateData?.amount) {
const logEvent = {
fromToken: `${originalFromToken.name} - ${originalFromToken.chainId}`,
fromAmount: `${fromAmountToken}`,
toToken: `${originalToToken.name} - ${originalToToken.chainId}`,
toAmount: `${simulateData.displayAmount}`,
useAlphaIbcWasm,
useIbcWasm,
simulateData,
averageSimulateData,
impactWarning
};
mixpanel.track('Universal Swap OSOR', logEvent);
}
}, [simulateData, averageSimulateData]);

useEffect(() => {
if (!originalFromToken.isVerified) {
setIsConfirmTokenFrom('pending');
Expand Down Expand Up @@ -802,7 +826,7 @@ const SwapComponent: React.FC<{
amount={toAmountToken}
tokenFee={toTokenFee}
usdPrice={usdPriceShowTo}
loadingSimulate={isPreviousSimulate}
loadingSimulate={isPreviousSimulate || isRefetching}
impactWarning={impactWarning}
isConfirmToken={isConfirmTokenTo}
/>
Expand Down Expand Up @@ -896,7 +920,7 @@ const SwapComponent: React.FC<{
addressTransfer,
validAddress,
simulateData,
isLoadingSimulate: isPreviousSimulate
isLoadingSimulate: isPreviousSimulate || isRefetching
});
return (
<button
Expand All @@ -920,6 +944,7 @@ const SwapComponent: React.FC<{
{swapLoading && <Loader width={20} height={20} />}
{/* hardcode check minimum tron */}
{!swapLoading && (!fromAmountToken || !toAmountToken) && fromToken.denom === TRON_DENOM ? (
// @ts-ignore
<span>Minimum amount: {(fromToken.minAmountSwap || '0') + ' ' + fromToken.name} </span>
) : (
<span>{disableMsg || 'Swap'}</span>
Expand Down

0 comments on commit f6b26b7

Please sign in to comment.