From 2e184008d5c03eccf1118a4431d556f56ede823e Mon Sep 17 00:00:00 2001 From: nuanyang233 Date: Sun, 12 Dec 2021 16:19:37 +0800 Subject: [PATCH 1/3] fix: add optional chain when get balances --- packages/mask/src/plugins/Trader/SNSAdaptor/trader/Trader.tsx | 2 +- packages/web3-shared/evm/hooks/useAssetsFromChain.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mask/src/plugins/Trader/SNSAdaptor/trader/Trader.tsx b/packages/mask/src/plugins/Trader/SNSAdaptor/trader/Trader.tsx index b103dee8a9de..54b1fd46a103 100644 --- a/packages/mask/src/plugins/Trader/SNSAdaptor/trader/Trader.tsx +++ b/packages/mask/src/plugins/Trader/SNSAdaptor/trader/Trader.tsx @@ -169,7 +169,7 @@ export function Trader(props: TraderProps) { // Query the balance of native tokens on target chain useAsync(async () => { if (chainId && currentProvider && currentAccount) { - const cacheBalance = currentBalancesSettings.value[currentProvider][chainId] + const cacheBalance = currentBalancesSettings.value[currentProvider]?.[chainId] let balance: string diff --git a/packages/web3-shared/evm/hooks/useAssetsFromChain.ts b/packages/web3-shared/evm/hooks/useAssetsFromChain.ts index cb69bc2e3f85..61e07dc89844 100644 --- a/packages/web3-shared/evm/hooks/useAssetsFromChain.ts +++ b/packages/web3-shared/evm/hooks/useAssetsFromChain.ts @@ -12,7 +12,7 @@ export function useAssetsFromChain(tokens: FungibleTokenDetailed[], chainId?: Ch const balances = useBalances() const currentBalance = useBalance() - const balance = chainId && balances && providerType ? balances[providerType][chainId] : currentBalance + const balance = chainId && balances && providerType ? balances[providerType]?.[chainId] : currentBalance const chainDetailed = useChainDetailed() const passedChainDetailed = getChainDetailed(chainId) From 04a5dc2dffec241016716a4114695664e009acfd Mon Sep 17 00:00:00 2001 From: nuanyang233 Date: Sun, 12 Dec 2021 16:30:26 +0800 Subject: [PATCH 2/3] fix: incorrect balance and amount judgment condition --- .../mask/src/plugins/Trader/SNSAdaptor/trader/TradeForm.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TradeForm.tsx b/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TradeForm.tsx index 4b594c467eaa..47fdb14324a0 100644 --- a/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TradeForm.tsx +++ b/packages/mask/src/plugins/Trader/SNSAdaptor/trader/TradeForm.tsx @@ -245,7 +245,7 @@ export const TradeForm = memo( if (isLessThan(inputAmount, MINIMUM_AMOUNT)) return t('plugin_trade_error_input_amount_less_minimum_amount') if (!inputToken || !outputToken) return t('plugin_trader_error_amount_absence') if (!trades.length) return t('plugin_trader_error_insufficient_lp') - if (inputTokenBalanceAmount.isLessThan(inputTokenTradeAmount.plus(focusedTrade?.value?.fee ?? 0))) + if (inputTokenBalanceAmount.isLessThan(inputTokenTradeAmount)) return t('plugin_trader_error_insufficient_balance', { symbol: inputToken?.symbol, }) From 290ee3d2edd999aa57d3d7ea2dc7c9177c9c5d84 Mon Sep 17 00:00:00 2001 From: nuanyang233 Date: Sun, 12 Dec 2021 16:46:46 +0800 Subject: [PATCH 3/3] fix: adjust behavior when covert in collectible plugin --- .../SNSAdaptor/MakeOfferDialog.tsx | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/mask/src/plugins/Collectible/SNSAdaptor/MakeOfferDialog.tsx b/packages/mask/src/plugins/Collectible/SNSAdaptor/MakeOfferDialog.tsx index c2d2ab518dc8..4034cbbcf0c3 100644 --- a/packages/mask/src/plugins/Collectible/SNSAdaptor/MakeOfferDialog.tsx +++ b/packages/mask/src/plugins/Collectible/SNSAdaptor/MakeOfferDialog.tsx @@ -35,6 +35,7 @@ import { toAsset } from '../helpers' import { PluginTraderMessages } from '../../Trader/messages' import { Trans } from 'react-i18next' import getUnixTime from 'date-fns/getUnixTime' +import type { Coin } from '../../Trader/types' const useStyles = makeStyles()((theme) => { return { @@ -106,7 +107,23 @@ export function MakeOfferDialog(props: MakeOfferDialogProps) { }) }, [asset?.value, token, account, amount, expirationDateTime, isAuction]) - const { openDialog: openSwapDialog } = useRemoteControlledDialog(PluginTraderMessages.swapDialogUpdated) + const { setDialog: openSwapDialog } = useRemoteControlledDialog(PluginTraderMessages.swapDialogUpdated) + + const onConvertClick = useCallback(() => { + if (!token?.value) return + openSwapDialog({ + open: true, + traderProps: { + coin: { + id: token.value.address, + name: token.value.name ?? '', + symbol: token.value.symbol ?? '', + contract_address: token.value.address, + decimals: token.value.decimals, + } as Coin, + }, + }) + }, [token.value, openSwapDialog]) useEffect(() => { setAmount('') @@ -244,7 +261,7 @@ export function MakeOfferDialog(props: MakeOfferDialogProps) { className={classes.button} variant="contained" size="large" - onClick={openSwapDialog}> + onClick={onConvertClick}> Convert ETH ) : null}