From 755d00827415b35509a66afc26c674aad187df56 Mon Sep 17 00:00:00 2001 From: Hau Nguyen Van Date: Thu, 20 Feb 2025 16:52:42 +0700 Subject: [PATCH 1/2] update check balance usdc bridge --- src/helper/constants.ts | 10 ++++--- src/pages/Balance/StuckOraib/index.tsx | 22 ++++++++++---- .../Balance/TransferConvertToken/index.tsx | 5 ---- src/pages/Balance/index.tsx | 30 ++++++++++++++++++- 4 files changed, 52 insertions(+), 15 deletions(-) diff --git a/src/helper/constants.ts b/src/helper/constants.ts index 73af2138b..b68584ebc 100644 --- a/src/helper/constants.ts +++ b/src/helper/constants.ts @@ -1,4 +1,4 @@ -import { ChainIdEnum } from '@oraichain/oraidex-common'; +import { ChainIdEnum, USDC_CONTRACT } from '@oraichain/oraidex-common'; import { TokenInfo } from '@oraichain/oraidex-contracts-sdk/build/OraiswapConverter.types'; export const leapSnapId = 'npm:@leapwallet/metamask-cosmos-snap'; @@ -31,14 +31,16 @@ export type ConverterPairParams = { isMintBurn: boolean; }; +export const USDC_IBC_DENOM = + 'factory/orai1wuvhex9xqs3r539mvc6mtm7n20fcj3qr2m0y9khx6n5vtlngfzes3k0rq9/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'; + export const CONVERTER_MIDDLEWARE: Partial> = { ['EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v']: { from: { decimals: 6, info: { native_token: { - denom: - 'factory/orai1wuvhex9xqs3r539mvc6mtm7n20fcj3qr2m0y9khx6n5vtlngfzes3k0rq9/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v' + denom: USDC_IBC_DENOM } } }, @@ -46,7 +48,7 @@ export const CONVERTER_MIDDLEWARE: Partial> decimals: 6, info: { token: { - contract_addr: 'orai15un8msx3n5zf9ahlxmfeqd2kwa5wm0nrpxer304m9nd5q6qq0g6sku5pdd' + contract_addr: USDC_CONTRACT } } }, diff --git a/src/pages/Balance/StuckOraib/index.tsx b/src/pages/Balance/StuckOraib/index.tsx index 6b49ca3bd..f3b25ee5d 100644 --- a/src/pages/Balance/StuckOraib/index.tsx +++ b/src/pages/Balance/StuckOraib/index.tsx @@ -6,6 +6,7 @@ import { RemainingOraibTokenItem } from './useGetOraiBridgeBalances'; import { TooltipIcon } from './TooltipBridgeToken'; import { toDisplay } from '@oraichain/oraidex-common'; import { flattenTokensWithIcon } from 'initCommon'; +import DefaultToken from 'assets/icons/tokens.svg?react'; interface Props { handleMove: () => Promise; @@ -29,19 +30,30 @@ export default function StuckOraib({ handleMove, loading, remainingOraib }: Prop )} { + content={remainingOraib?.map((token) => { const tokensIcon = flattenTokensWithIcon.find((tok) => tok.coinGeckoId === token.coinGeckoId); return (
- - {token.name} +
+ {tokensIcon && tokensIcon?.Icon ? ( + typeof tokensIcon?.Icon === 'string' ? ( + + ) : ( + + ) + ) : ( + + )} +
+ + {token?.name}
); diff --git a/src/pages/Balance/TransferConvertToken/index.tsx b/src/pages/Balance/TransferConvertToken/index.tsx index 4b182af12..16551894a 100644 --- a/src/pages/Balance/TransferConvertToken/index.tsx +++ b/src/pages/Balance/TransferConvertToken/index.tsx @@ -159,11 +159,6 @@ const TransferConvertToken: FC = ({ toToken, isMemeBridge }); - console.log({ - solFee, - isOraichainToSol, - isSolToOraichain - }); const { deductNativeAmount, checkBalanceBridgeByNetwork } = useTonBridgeHandler({ token, diff --git a/src/pages/Balance/index.tsx b/src/pages/Balance/index.tsx index c73740f41..25a43d129 100644 --- a/src/pages/Balance/index.tsx +++ b/src/pages/Balance/index.tsx @@ -8,6 +8,7 @@ import { NetworkChainId } from '@oraichain/common'; import { calculateTimeoutTimestamp, CONVERTER_CONTRACT, + generateError, getTokenOnOraichain, MIXED_ROUTER, ORAI, @@ -53,7 +54,8 @@ import { CWBitcoinFactoryDenom, DEFAULT_RELAYER_FEE, RELAYER_DECIMAL, - CONVERTER_MIDDLEWARE + CONVERTER_MIDDLEWARE, + USDC_IBC_DENOM } from 'helper/constants'; import { useCoinGeckoPrices } from 'hooks/useCoingecko'; import useConfigReducer from 'hooks/useConfigReducer'; @@ -542,6 +544,16 @@ const Balance: React.FC = () => { } } + if (fromToken.coinGeckoId === 'usd-coin') { + const { balance } = await UniversalSwapHelper.getBalanceIBCOraichain(toToken, window.client, CONVERTER_CONTRACT); + + if (balance < transferAmount) { + throw generateError( + `The converter contract does not have enough balance to process this bridge transaction. Wanted ${transferAmount}, have ${balance}` + ); + } + } + const response = await web3Solana.bridgeSolToOrai(wallet, fromToken, transferAmount, oraiAddress, solRelayer); const transaction = response?.transaction; if (transaction) { @@ -606,6 +618,22 @@ const Balance: React.FC = () => { ]; if (converterMiddleware) { + const { balance } = await UniversalSwapHelper.getBalanceIBCOraichain( + { + ...fromToken, + denom: USDC_IBC_DENOM, + contractAddress: undefined + }, + window.client, + CONVERTER_CONTRACT + ); + + if (balance < transferAmount) { + throw generateError( + `The converter contract does not have enough balance to process this bridge transaction. Wanted ${transferAmount}, have ${balance}` + ); + } + const parsedFrom = parseAssetInfo(converterMiddleware.from.info); const parsedTo = parseAssetInfo(converterMiddleware.to.info); instructions.push({ From 331748d714619075395d9459b0bfd5edfdd528ba Mon Sep 17 00:00:00 2001 From: Hau Nguyen Van Date: Thu, 20 Feb 2025 16:58:32 +0700 Subject: [PATCH 2/2] update check balance usdc bridge --- src/helper/constants.ts | 4 ++-- src/pages/Balance/index.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/helper/constants.ts b/src/helper/constants.ts index b68584ebc..c8bad437c 100644 --- a/src/helper/constants.ts +++ b/src/helper/constants.ts @@ -31,7 +31,7 @@ export type ConverterPairParams = { isMintBurn: boolean; }; -export const USDC_IBC_DENOM = +export const USDC_SOL_DENOM = 'factory/orai1wuvhex9xqs3r539mvc6mtm7n20fcj3qr2m0y9khx6n5vtlngfzes3k0rq9/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'; export const CONVERTER_MIDDLEWARE: Partial> = { @@ -40,7 +40,7 @@ export const CONVERTER_MIDDLEWARE: Partial> decimals: 6, info: { native_token: { - denom: USDC_IBC_DENOM + denom: USDC_SOL_DENOM } } }, diff --git a/src/pages/Balance/index.tsx b/src/pages/Balance/index.tsx index 25a43d129..d7e38ce81 100644 --- a/src/pages/Balance/index.tsx +++ b/src/pages/Balance/index.tsx @@ -55,7 +55,7 @@ import { DEFAULT_RELAYER_FEE, RELAYER_DECIMAL, CONVERTER_MIDDLEWARE, - USDC_IBC_DENOM + USDC_SOL_DENOM } from 'helper/constants'; import { useCoinGeckoPrices } from 'hooks/useCoingecko'; import useConfigReducer from 'hooks/useConfigReducer'; @@ -621,7 +621,7 @@ const Balance: React.FC = () => { const { balance } = await UniversalSwapHelper.getBalanceIBCOraichain( { ...fromToken, - denom: USDC_IBC_DENOM, + denom: USDC_SOL_DENOM, contractAddress: undefined }, window.client,