diff --git a/packages/extension-koni-ui/src/Popup/Settings/Tokens/FungibleTokenImport.tsx b/packages/extension-koni-ui/src/Popup/Settings/Tokens/FungibleTokenImport.tsx index 0ebe34e967a..4006e059e1d 100644 --- a/packages/extension-koni-ui/src/Popup/Settings/Tokens/FungibleTokenImport.tsx +++ b/packages/extension-koni-ui/src/Popup/Settings/Tokens/FungibleTokenImport.tsx @@ -15,7 +15,7 @@ import { Col, Field, Form, Icon, Input, Row } from '@subwallet/react-ui'; import SwAvatar from '@subwallet/react-ui/es/sw-avatar'; import { PlusCircle } from 'phosphor-react'; import { FieldData } from 'rc-field-form/lib/interface'; -import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react'; +import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react'; import styled, { useTheme } from 'styled-components'; import { isEthereumAddress } from '@polkadot/util-crypto'; @@ -87,6 +87,9 @@ function Component ({ className = '' }: Props): React.ReactElement { const decimals = Form.useWatch('decimals', form); const tokenName = Form.useWatch('tokenName', form); const selectedTokenType = Form.useWatch('type', form); + const contractAddress = Form.useWatch('contractAddress', form); + + const contractRef = useRef(contractAddress); const chainChecker = useChainChecker(); const chainNetworkPrefix = useGetChainPrefixBySlug(selectedChain); @@ -163,7 +166,7 @@ function Component ({ className = '' }: Props): React.ReactElement { } if (validationResult.contractError) { - reject(new Error(t('Error validating this token'))); + reject(new Error(t('Invalid ID'))); } if (!validationResult.isExist && !validationResult.contractError) { @@ -178,10 +181,9 @@ function Component ({ className = '' }: Props): React.ReactElement { }) .catch(() => { setLoading(false); - reject(new Error(t('Error validating this token'))); + reject(new Error(t('Invalid ID'))); }); } else if (isValidBrc20) { - console.log('successfull passed brc20'); setLoading(true); validateCustomBrc20({ ticker: inputMetadata, @@ -189,7 +191,6 @@ function Component ({ className = '' }: Props): React.ReactElement { type: selectedTokenType }) .then((validationResult) => { - console.log('validationResultBRC20', validationResult); setLoading(false); if (validationResult.isExist) { @@ -197,7 +198,7 @@ function Component ({ className = '' }: Props): React.ReactElement { } if (validationResult.contractError) { - reject(new Error(t('Error validating this token'))); + reject(new Error(t('Invalid ticker'))); } if (!validationResult.isExist && !validationResult.contractError) { @@ -212,7 +213,7 @@ function Component ({ className = '' }: Props): React.ReactElement { }) .catch(() => { setLoading(false); - reject(new Error(t('Error validating this token'))); + reject(new Error(t('Invalid ticker'))); }); } else { reject(t('Invalid contract address')); @@ -329,6 +330,13 @@ function Component ({ className = '' }: Props): React.ReactElement { chainChecker(selectedChain); }, [chainChecker, selectedChain]); + useEffect(() => { + if (loading && (contractRef.current !== contractAddress)) { + contractRef.current = contractAddress; + form.resetFields(['tokenName', 'symbol', 'decimals', 'priceId']); + } + }, [contractAddress, form, loading]); + return ( { name={'decimals'} > ('Decimals')} tooltip={t('Decimals')} tooltipPlacement={'topLeft'} diff --git a/packages/extension-koni-ui/src/Popup/Settings/Tokens/TokenDetail.tsx b/packages/extension-koni-ui/src/Popup/Settings/Tokens/TokenDetail.tsx index ebe5508c44c..f1c29dbfa99 100644 --- a/packages/extension-koni-ui/src/Popup/Settings/Tokens/TokenDetail.tsx +++ b/packages/extension-koni-ui/src/Popup/Settings/Tokens/TokenDetail.tsx @@ -323,7 +323,7 @@ function Component ({ className = '' }: Props): React.ReactElement { >
('Decimals')} />
diff --git a/packages/extension-koni-ui/src/utils/form/form.ts b/packages/extension-koni-ui/src/utils/form/form.ts index a3232bd91f3..8db9c8f44f3 100644 --- a/packages/extension-koni-ui/src/utils/form/form.ts +++ b/packages/extension-koni-ui/src/utils/form/form.ts @@ -56,7 +56,7 @@ export const simpleCheckForm = (allFields: FormFieldData[], requiredFields: stri const needCheck = checkAll || (ignorePass && requirePass); - return !needCheck ? false : typeof value === 'boolean' ? false : !value; + return !needCheck ? false : typeof value === 'boolean' ? false : (typeof value === 'number' ? false : !value); }); return {