Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: multichain account list item #25437

Merged
merged 32 commits into from
Jun 26, 2024
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
919a800
feat: add useMultichainSelector
montelaidev Jun 18, 2024
643bb6a
fix: lint
montelaidev Jun 19, 2024
a48a3f0
fix: add test
montelaidev Jun 19, 2024
d0b4b71
feat: update non evm balance display in account list item
montelaidev Jun 19, 2024
48c739e
Merge remote-tracking branch 'origin/develop' into fix/multichain-acc…
montelaidev Jun 25, 2024
953f42a
fix: add useMultichainAccountTotalFiatBalance test
montelaidev Jun 25, 2024
0a1f136
fix: useCurrencyDisplay test
montelaidev Jun 25, 2024
931b4dc
fix: user-preferenced-currency-display test
montelaidev Jun 25, 2024
51287ec
fix: snapshot
montelaidev Jun 25, 2024
b275056
fix: connect-accounts-modal
montelaidev Jun 25, 2024
9bf3fc3
fix: transaction-breakdown test
montelaidev Jun 25, 2024
a4d0ed9
fix: confirm-detail-row test
montelaidev Jun 25, 2024
4cdc0e6
fix: currency-input test
montelaidev Jun 25, 2024
f96d54d
fix: userUserPreferencedCurrency test
montelaidev Jun 25, 2024
5e0dfd1
fix: useTransactionDisplayData test
montelaidev Jun 25, 2024
21d2a02
fix: cancel-transaction-gas-fee test
montelaidev Jun 25, 2024
cc8311f
fix: useGasFeeInputs test
montelaidev Jun 25, 2024
39eba2b
fix: send test
montelaidev Jun 25, 2024
2cf464b
fix: gas test mocks
montelaidev Jun 25, 2024
604fcd2
fix: add isEvm to dep array
montelaidev Jun 25, 2024
9fe935f
fix: lint
montelaidev Jun 26, 2024
0e5be31
fix: use mock
montelaidev Jun 26, 2024
f1d1237
fix: storybook test
montelaidev Jun 26, 2024
2682375
Merge branch 'develop' into fix/multichain-account-list-item
montelaidev Jun 26, 2024
0c9b0a6
fix: casing
montelaidev Jun 26, 2024
b72beba
refactor: to use getMultichainConversionRate
montelaidev Jun 26, 2024
95fa36a
fix: reuse generateUseSelectorRouter
montelaidev Jun 26, 2024
e4fcef2
refactor: to not use wrapper
montelaidev Jun 26, 2024
e1c70db
fix: useAccountTotalFiatBalance usage of accounts
montelaidev Jun 26, 2024
be683e8
fix: handle undefined account
montelaidev Jun 26, 2024
176e929
fix: add comment
montelaidev Jun 26, 2024
38b767b
fix: use ??
montelaidev Jun 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions shared/constants/multichain/assets.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { MultichainNetworks } from './networks';

export const MULTICHAIN_NATIVE_CURRENCY_TO_CAIP19 = {
montelaidev marked this conversation as resolved.
Show resolved Hide resolved
BTC: `${MultichainNetworks.BITCOIN}/slip44:0`,
} as const;
4 changes: 2 additions & 2 deletions ui/components/app/asset-list/asset-list.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ const AssetList = ({ onClickAsset }) => {
const trackEvent = useContext(MetaMetricsContext);
const balance = useSelector(getSelectedAccountCachedBalance);
const balanceIsLoading = !balance;
const { address: selectedAddress } = useSelector(getSelectedAccount);
const selectedAccount = useSelector(getSelectedAccount);
const shouldHideZeroBalanceTokens = useSelector(
getShouldHideZeroBalanceTokens,
);
Expand Down Expand Up @@ -102,7 +102,7 @@ const AssetList = ({ onClickAsset }) => {
);

const { tokensWithBalances, totalFiatBalance, loading } =
useAccountTotalFiatBalance(selectedAddress, shouldHideZeroBalanceTokens);
useAccountTotalFiatBalance(selectedAccount, shouldHideZeroBalanceTokens);
tokensWithBalances.forEach((token) => {
// token.string is the balance displayed in the TokenList UI
token.string = roundToDecimalPlacesRemovingExtraZeroes(token.string, 5);
Expand Down
2 changes: 2 additions & 0 deletions ui/components/app/currency-input/currency-input.test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from 'react';
import configureMockStore from 'redux-mock-store';
import { fireEvent, waitFor } from '@testing-library/react';
import mockState from '../../../../test/data/mock-state.json';
import { renderWithProvider } from '../../../../test/lib/render-helpers';
import { useIsOriginalNativeTokenSymbol } from '../../../hooks/useIsOriginalNativeTokenSymbol';
import CurrencyInput from '.';
Expand All @@ -16,6 +17,7 @@ describe('CurrencyInput Component', () => {

const mockStore = {
metamask: {
...mockState.metamask,
currentCurrency: 'usd',
currencyRates: {
ETH: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import configureMockStore from 'redux-mock-store';
import mockState from '../../../../../../test/data/mock-state.json';
import { renderWithProvider } from '../../../../../../test/lib/render-helpers';
import {
CHAIN_IDS,
Expand All @@ -9,7 +10,7 @@ import {
import CancelTransactionGasFee from './cancel-transaction-gas-fee.component';

describe('CancelTransactionGasFee Component', () => {
const mockState = {
const defaultState = {
metamask: {
providerConfig: {
chainId: CHAIN_IDS.GOERLI,
Expand All @@ -20,10 +21,12 @@ describe('CancelTransactionGasFee Component', () => {
preferences: {
useNativeCurrencyAsPrimaryCurrency: false,
},
completedOnboarding: true,
internalAccounts: mockState.metamask.internalAccounts,
},
};

const mockStore = configureMockStore()(mockState);
const mockStore = configureMockStore()(defaultState);

it('should render', () => {
const props = {
Expand Down
4 changes: 2 additions & 2 deletions ui/components/app/nfts-tab/nfts-tab.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,12 @@ export default function NftsTab() {
);

///: BEGIN:ONLY_INCLUDE_IF(build-main,build-beta,build-flask)
const { address: selectedAddress } = useSelector(getSelectedAccount);
const selectedAccount = useSelector(getSelectedAccount);
const shouldHideZeroBalanceTokens = useSelector(
getShouldHideZeroBalanceTokens,
);
const { totalFiatBalance } = useAccountTotalFiatBalance(
selectedAddress,
selectedAccount,
shouldHideZeroBalanceTokens,
);
const balanceIsZero = Number(totalFiatBalance) === 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React from 'react';
import configureMockStore from 'redux-mock-store';
import { within } from '@testing-library/react';
import { renderWithProvider } from '../../../../test/jest/rendering';
import mockState from '../../../../test/data/mock-state.json';
import {
MAINNET_DISPLAY_NAME,
NETWORK_TYPES,
Expand Down Expand Up @@ -31,6 +32,8 @@ describe('TransactionBreakdown', () => {
nickname: MAINNET_DISPLAY_NAME,
type: NETWORK_TYPES.MAINNET,
},
internalAccounts: mockState.metamask.internalAccounts,
completedOnboarding: true,
},
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,14 +130,14 @@ export default function TransactionList({
nonceSortedCompletedTransactionsSelector,
);
const chainId = useSelector(getCurrentChainId);
const { address: selectedAddress } = useSelector(getSelectedAccount);
const selectedAccount = useSelector(getSelectedAccount);

///: BEGIN:ONLY_INCLUDE_IF(build-main,build-beta,build-flask)
const shouldHideZeroBalanceTokens = useSelector(
getShouldHideZeroBalanceTokens,
);
const { totalFiatBalance } = useAccountTotalFiatBalance(
selectedAddress,
selectedAccount,
shouldHideZeroBalanceTokens,
);
const balanceIsZero = Number(totalFiatBalance) === 0;
Expand Down Expand Up @@ -206,7 +206,8 @@ export default function TransactionList({
const removeIncomingTxsButToAnotherAddress = (dateGroup) => {
const isIncomingTxsButToAnotherAddress = (transaction) =>
transaction.type === TransactionType.incoming &&
transaction.txParams.to.toLowerCase() !== selectedAddress.toLowerCase();
transaction.txParams.to.toLowerCase() !==
selectedAccount.address.toLowerCase();

dateGroup.transactionGroups = dateGroup.transactionGroups.map(
(transactionGroup) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import React, { useMemo } from 'react';
import { useSelector } from 'react-redux';
import PropTypes from 'prop-types';
import { EtherDenomination } from '../../../../shared/constants/common';
import { PRIMARY, SECONDARY } from '../../../helpers/constants/common';
Expand All @@ -10,12 +9,14 @@ import {
getMultichainNativeCurrency,
getMultichainCurrentNetwork,
} from '../../../selectors/multichain';
import { useMultichainSelector } from '../../../hooks/useMultichainSelector';

/* eslint-disable jsdoc/require-param-name */
// eslint-disable-next-line jsdoc/require-param
/** @param {PropTypes.InferProps<typeof UserPreferencedCurrencyDisplayPropTypes>>} */
export default function UserPreferencedCurrencyDisplay({
'data-testid': dataTestId,
account,
ethNumberOfDecimals,
fiatNumberOfDecimals,
numberOfDecimals: propsNumberOfDecimals,
Expand All @@ -26,9 +27,16 @@ export default function UserPreferencedCurrencyDisplay({
showCurrencySuffix,
...restProps
}) {
const currentNetwork = useSelector(getMultichainCurrentNetwork);
const nativeCurrency = useSelector(getMultichainNativeCurrency);
const currentNetwork = useMultichainSelector(
getMultichainCurrentNetwork,
account,
);
const nativeCurrency = useMultichainSelector(
getMultichainNativeCurrency,
account,
);
const { currency, numberOfDecimals } = useUserPreferencedCurrency(type, {
account,
ethNumberOfDecimals,
fiatNumberOfDecimals,
numberOfDecimals: propsNumberOfDecimals,
Expand Down Expand Up @@ -56,6 +64,7 @@ export default function UserPreferencedCurrencyDisplay({
return (
<CurrencyDisplay
{...restProps}
account={account}
currency={currency}
data-testid={dataTestId}
numberOfDecimals={numberOfDecimals}
Expand All @@ -67,6 +76,7 @@ export default function UserPreferencedCurrencyDisplay({

const UserPreferencedCurrencyDisplayPropTypes = {
className: PropTypes.string,
account: PropTypes.object,
'data-testid': PropTypes.string,
prefix: PropTypes.string,
value: PropTypes.string,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import configureMockStore from 'redux-mock-store';
import mockState from '../../../../test/data/mock-state.json';
import { renderWithProvider } from '../../../../test/lib/render-helpers';
import {
MAINNET_DISPLAY_NAME,
Expand All @@ -10,8 +11,9 @@ import UserPreferencedCurrencyDisplay from '.';

describe('UserPreferencedCurrencyDisplay Component', () => {
describe('rendering', () => {
const mockState = {
const defaultState = {
metamask: {
...mockState.metamask,
providerConfig: {
chainId: CHAIN_IDS.MAINNET,
nickname: MAINNET_DISPLAY_NAME,
Expand All @@ -23,7 +25,7 @@ describe('UserPreferencedCurrencyDisplay Component', () => {
},
},
};
const mockStore = configureMockStore()(mockState);
const mockStore = configureMockStore()(defaultState);
it('should match snapshot', () => {
const { container } = renderWithProvider(
<UserPreferencedCurrencyDisplay />,
Expand Down
Loading