diff --git a/ui/components/multichain/account-list-menu/account-list-menu.test.tsx b/ui/components/multichain/account-list-menu/account-list-menu.test.tsx index 13237036b13b..ebd090973f06 100644 --- a/ui/components/multichain/account-list-menu/account-list-menu.test.tsx +++ b/ui/components/multichain/account-list-menu/account-list-menu.test.tsx @@ -41,8 +41,8 @@ jest.mock('../../../../app/scripts/lib/util', () => ({ jest.mock('../../../store/actions', () => { return { ...jest.requireActual('../../../store/actions'), - getNextAvailableAccountName: () => mockNextAccountName, - generateNewHdKeyring: () => mockGenerateNewHdKeyring, + getNextAvailableAccountName: () => mockNextAccountName(), + generateNewHdKeyring: () => mockGenerateNewHdKeyring(), }; }); @@ -586,6 +586,7 @@ describe('AccountListMenu', () => { }); it('calls the bitcoin client to create an account', async () => { + mockNextAccountName.mockReturnValue('Snap Account 1'); const { getByText, getByTestId } = render(); const button = getByTestId( diff --git a/ui/components/multichain/create-account/create-account.tsx b/ui/components/multichain/create-account/create-account.tsx index 3a4a499d5ae1..70a6b8ccadda 100644 --- a/ui/components/multichain/create-account/create-account.tsx +++ b/ui/components/multichain/create-account/create-account.tsx @@ -170,6 +170,7 @@ export const CreateAccount: CreateAccountComponent = React.memo( return ( { const mockCreateAccount = jest.fn().mockResolvedValue(true); return { + ...jest.requireActual( + '../../../hooks/accounts/useMultichainWalletSnapClient', + ), useMultichainWalletSnapClient: jest.fn().mockReturnValue({ createAccount: mockCreateAccount, }), @@ -145,6 +149,19 @@ describe('CreateSnapAccount', () => { }); }); + it('renders the suggested account name for a first party snap', async () => { + const { getByPlaceholderText } = render({ + ...defaultProps, + clientType: WalletClientType.Solana, + chainId: MultichainNetworks.SOLANA, + }); + + await waitFor(() => { + const nameSuggestion = getByPlaceholderText('Solana Account 2'); + expect(nameSuggestion).toBeInTheDocument(); + }); + }); + it('only calls createAccount once', async () => { const { getByTestId } = render(); diff --git a/ui/components/multichain/create-snap-account/create-snap-account.tsx b/ui/components/multichain/create-snap-account/create-snap-account.tsx index 1844489efc7d..263b838eaf84 100644 --- a/ui/components/multichain/create-snap-account/create-snap-account.tsx +++ b/ui/components/multichain/create-snap-account/create-snap-account.tsx @@ -7,6 +7,7 @@ import { WalletClientType, useMultichainWalletSnapClient, } from '../../../hooks/accounts/useMultichainWalletSnapClient'; +import { MultichainNetworks } from '../../../../shared/constants/multichain/networks'; type CreateSnapAccountProps = { /** @@ -71,7 +72,32 @@ export const CreateSnapAccount = ({ ); const getNextAccountName = async () => { - return getNextAvailableAccountName(KeyringTypes.snap); + const defaultSnapAccountName = await getNextAvailableAccountName( + KeyringTypes.snap, + ); + + // FIXME: This is a temporary workaround to suggest a different account name for a first party snap. + const accountNumber = defaultSnapAccountName.trim().split(' ').pop(); + + switch (clientType) { + case WalletClientType.Bitcoin: { + if (chainId === MultichainNetworks.BITCOIN_TESTNET) { + return `Bitcoin Testnet Account ${accountNumber}`; + } + return `Bitcoin Account ${accountNumber}`; + } + case WalletClientType.Solana: { + if (chainId === MultichainNetworks.SOLANA_TESTNET) { + return `Solana Testnet Account ${accountNumber}`; + } + if (chainId === MultichainNetworks.SOLANA_DEVNET) { + return `Solana Devnet Account ${accountNumber}`; + } + return `Solana Account ${accountNumber}`; + } + default: + return defaultSnapAccountName; + } }; return ( diff --git a/ui/pages/confirmations/confirmation/templates/__snapshots__/create-named-snap-account.test.js.snap b/ui/pages/confirmations/confirmation/templates/__snapshots__/create-named-snap-account.test.js.snap index a84c42e6f172..c40798f7cc40 100644 --- a/ui/pages/confirmations/confirmation/templates/__snapshots__/create-named-snap-account.test.js.snap +++ b/ui/pages/confirmations/confirmation/templates/__snapshots__/create-named-snap-account.test.js.snap @@ -99,6 +99,7 @@ exports[`create-named-snap-account confirmation matches snapshot 1`] = ` >