From b4c58377605d5ef98dd0af215bf44caad61ddc13 Mon Sep 17 00:00:00 2001 From: Brad Decker Date: Mon, 23 Jan 2023 13:30:43 -0600 Subject: [PATCH] Remove usages of Conversion util in components folder in favor of Numeric (#17333) Co-authored-by: Danica Shen --- .../custom-spending-cap.js | 19 ++++--------- .../multi-layer-fee-message.js | 21 ++++++-------- .../signature-request-original.component.js | 17 +++++------ .../signature-request.component.js | 17 ++++++----- .../ui/account-list/account-list.test.js | 4 +-- .../review-spending-cap.js | 10 +++---- .../ui/token-input/token-input.component.js | 28 +++++++------------ 7 files changed, 47 insertions(+), 69 deletions(-) diff --git a/ui/components/app/custom-spending-cap/custom-spending-cap.js b/ui/components/app/custom-spending-cap/custom-spending-cap.js index 4bcc858bb..071ace5c5 100644 --- a/ui/components/app/custom-spending-cap/custom-spending-cap.js +++ b/ui/components/app/custom-spending-cap/custom-spending-cap.js @@ -23,15 +23,12 @@ import { import { getCustomTokenAmount } from '../../../selectors'; import { setCustomTokenAmount } from '../../../ducks/app/app'; import { calcTokenAmount } from '../../../../shared/lib/transactions-controller-utils'; -import { - conversionGreaterThan, - conversionLTE, -} from '../../../../shared/modules/conversion.utils'; import { MAX_TOKEN_ALLOWANCE_AMOUNT, NUM_W_OPT_DECIMAL_COMMA_OR_DOT_REGEX, DECIMAL_REGEX, } from '../../../../shared/constants/tokens'; +import { Numeric } from '../../../../shared/modules/Numeric'; import { CustomSpendingCapTooltip } from './custom-spending-cap-tooltip'; export default function CustomSpendingCap({ @@ -58,20 +55,16 @@ export default function CustomSpendingCap({ }; const decConversionGreaterThan = (tokenValue, tokenBalance) => { - return conversionGreaterThan( - { value: Number(replaceCommaToDot(tokenValue)), fromNumericBase: 'dec' }, - { value: Number(tokenBalance), fromNumericBase: 'dec' }, + return new Numeric(Number(replaceCommaToDot(tokenValue)), 10).greaterThan( + Number(tokenBalance), + 10, ); }; const getInputTextLogic = (inputNumber) => { if ( - conversionLTE( - { - value: Number(replaceCommaToDot(inputNumber)), - fromNumericBase: 'dec', - }, - { value: Number(currentTokenBalance), fromNumericBase: 'dec' }, + new Numeric(Number(replaceCommaToDot(inputNumber)), 10).lessThanOrEqualTo( + new Numeric(Number(currentTokenBalance), 10), ) ) { return { diff --git a/ui/components/app/multilayer-fee-message/multi-layer-fee-message.js b/ui/components/app/multilayer-fee-message/multi-layer-fee-message.js index 57a268438..9ad2b7fb9 100644 --- a/ui/components/app/multilayer-fee-message/multi-layer-fee-message.js +++ b/ui/components/app/multilayer-fee-message/multi-layer-fee-message.js @@ -6,11 +6,9 @@ import UserPreferencedCurrencyDisplay from '../user-preferenced-currency-display import fetchEstimatedL1Fee from '../../../helpers/utils/optimism/fetchEstimatedL1Fee'; import { SECONDARY } from '../../../helpers/constants/common'; import { I18nContext } from '../../../contexts/i18n'; -import { - sumHexes, - toBigNumber, - toNormalizedDenomination, -} from '../../../../shared/modules/conversion.utils'; +import { sumHexes } from '../../../../shared/modules/conversion.utils'; +import { EtherDenomination } from '../../../../shared/constants/common'; +import { Numeric } from '../../../../shared/modules/Numeric'; export default function MultilayerFeeMessage({ transaction, @@ -26,9 +24,9 @@ export default function MultilayerFeeMessage({ let layer1TotalBN; if (fetchedLayer1Total !== null) { - layer1TotalBN = toBigNumber.hex(fetchedLayer1Total); - layer1Total = `${toNormalizedDenomination - .WEI(layer1TotalBN) + layer1TotalBN = new Numeric(fetchedLayer1Total, 16, EtherDenomination.WEI); + layer1Total = `${layer1TotalBN + .toDenomination(EtherDenomination.ETH) .toFixed(12)} ${nativeCurrency}`; } @@ -39,11 +37,10 @@ export default function MultilayerFeeMessage({ transaction.txParams.value || '0x0', ); - const totalBN = toBigNumber.hex(totalInWeiHex); - const totalInEth = `${toNormalizedDenomination - .WEI(totalBN) + const totalBN = new Numeric(totalInWeiHex, 16, EtherDenomination.WEI); + const totalInEth = `${totalBN + .toDenomination(EtherDenomination.ETH) .toFixed(12)} ${nativeCurrency}`; - useEffect(() => { const getEstimatedL1Fee = async () => { try { diff --git a/ui/components/app/signature-request-original/signature-request-original.component.js b/ui/components/app/signature-request-original/signature-request-original.component.js index 76aa85106..874f4692b 100644 --- a/ui/components/app/signature-request-original/signature-request-original.component.js +++ b/ui/components/app/signature-request-original/signature-request-original.component.js @@ -6,7 +6,6 @@ import LedgerInstructionField from '../ledger-instruction-field'; import { MESSAGE_TYPE } from '../../../../shared/constants/app'; import { getURLHostName } from '../../../helpers/utils/util'; -import { conversionUtil } from '../../../../shared/modules/conversion.utils'; import { stripHexPrefix } from '../../../../shared/modules/hexstring-utils'; import Button from '../../ui/button'; import SiteOrigin from '../../ui/site-origin'; @@ -20,6 +19,8 @@ import { TEXT_ALIGN, } from '../../../helpers/constants/design-system'; import { NETWORK_TYPES } from '../../../../shared/constants/network'; +import { Numeric } from '../../../../shared/modules/Numeric'; +import { EtherDenomination } from '../../../../shared/constants/common'; import SignatureRequestOriginalWarning from './signature-request-original-warning'; export default class SignatureRequestOriginal extends Component { @@ -35,7 +36,6 @@ export default class SignatureRequestOriginal extends Component { }).isRequired, cancel: PropTypes.func.isRequired, clearConfirmTransaction: PropTypes.func.isRequired, - conversionRate: PropTypes.number, history: PropTypes.object.isRequired, mostRecentOverviewPage: PropTypes.string.isRequired, sign: PropTypes.func.isRequired, @@ -263,7 +263,6 @@ export default class SignatureRequestOriginal extends Component { render = () => { const { messagesCount, - conversionRate, nativeCurrency, fromAccount: { address, balance, name }, } = this.props; @@ -273,13 +272,11 @@ export default class SignatureRequestOriginal extends Component { const rejectNText = t('rejectRequestsN', [messagesCount]); const currentNetwork = this.getNetworkName(); - const balanceInBaseAsset = conversionUtil(balance, { - fromNumericBase: 'hex', - toNumericBase: 'dec', - fromDenomination: 'WEI', - numberOfDecimals: 6, - conversionRate, - }); + const balanceInBaseAsset = new Numeric(balance, 16, EtherDenomination.WEI) + .toDenomination(EtherDenomination.ETH) + .toBase(10) + .round(6) + .toString(); return (
diff --git a/ui/components/app/signature-request/signature-request.component.js b/ui/components/app/signature-request/signature-request.component.js index f6ad7a659..ee53a188a 100644 --- a/ui/components/app/signature-request/signature-request.component.js +++ b/ui/components/app/signature-request/signature-request.component.js @@ -4,7 +4,6 @@ import PropTypes from 'prop-types'; import LedgerInstructionField from '../ledger-instruction-field'; import { sanitizeMessage, getURLHostName } from '../../../helpers/utils/util'; import { EVENT } from '../../../../shared/constants/metametrics'; -import { conversionUtil } from '../../../../shared/modules/conversion.utils'; import SiteOrigin from '../../ui/site-origin'; import Button from '../../ui/button'; import Typography from '../../ui/typography/typography'; @@ -17,6 +16,8 @@ import { } from '../../../helpers/constants/design-system'; import NetworkAccountBalanceHeader from '../network-account-balance-header'; import { NETWORK_TYPES } from '../../../../shared/constants/network'; +import { Numeric } from '../../../../shared/modules/Numeric'; +import { EtherDenomination } from '../../../../shared/constants/common'; import Footer from './signature-request-footer'; import Message from './signature-request-message'; @@ -141,14 +142,12 @@ export default class SignatureRequest extends PureComponent { } = this.memoizedParseMessage(data); const currentNetwork = this.getNetworkName(); - const balanceInBaseAsset = conversionUtil(balance, { - fromNumericBase: 'hex', - toNumericBase: 'dec', - fromDenomination: 'WEI', - numberOfDecimals: 6, - conversionRate, - }); - + const balanceInBaseAsset = new Numeric(balance, 16, EtherDenomination.WEI) + .toDenomination(EtherDenomination.ETH) + .applyConversionRate(conversionRate) + .round(6) + .toBase(10) + .toString(); const onSign = (event) => { sign(event); trackEvent({ diff --git a/ui/components/ui/account-list/account-list.test.js b/ui/components/ui/account-list/account-list.test.js index 00f02f11c..1440bb4f1 100644 --- a/ui/components/ui/account-list/account-list.test.js +++ b/ui/components/ui/account-list/account-list.test.js @@ -18,7 +18,7 @@ const render = () => { address: '0x64a845a5b02460acf8a3d84503b0d68d028b4bb4', addressLabel: 'Account 1', lastConnectedDate: 'Feb-22-2022', - balance: '8.7a73149c048545a3fe58', + balance: '87a73149c048545a3fe58', has: () => { /** nothing to do */ }, @@ -28,7 +28,7 @@ const render = () => { address: '0x64a845a5b02460acf8a3d84503b0d68d028b4bb4', addressLabel: 'Account 2', lastConnectedDate: 'Feb-22-2022', - balance: '8.7a73149c048545a3fe58', + balance: '87a73149c048545a3fe58', has: () => { /** nothing to do */ }, diff --git a/ui/components/ui/review-spending-cap/review-spending-cap.js b/ui/components/ui/review-spending-cap/review-spending-cap.js index c4948af2e..8066e3527 100644 --- a/ui/components/ui/review-spending-cap/review-spending-cap.js +++ b/ui/components/ui/review-spending-cap/review-spending-cap.js @@ -15,7 +15,7 @@ import { TEXT_ALIGN, SIZES, } from '../../../helpers/constants/design-system'; -import { conversionGreaterThan } from '../../../../shared/modules/conversion.utils'; +import { Numeric } from '../../../../shared/modules/Numeric'; export default function ReviewSpendingCap({ tokenName, @@ -24,10 +24,10 @@ export default function ReviewSpendingCap({ onEdit, }) { const t = useContext(I18nContext); - const valueIsGreaterThanBalance = conversionGreaterThan( - { value: Number(tokenValue), fromNumericBase: 'dec' }, - { value: Number(currentTokenBalance), fromNumericBase: 'dec' }, - ); + const valueIsGreaterThanBalance = new Numeric( + Number(tokenValue), + 10, + ).greaterThan(Number(currentTokenBalance), 10); return (