Skip to content

Commit

Permalink
address comments
Browse files Browse the repository at this point in the history
  • Loading branch information
owencraston committed Jan 24, 2025
1 parent b6836b7 commit 01e89cc
Show file tree
Hide file tree
Showing 8 changed files with 69 additions and 81 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ describe('AddAccountActions', () => {
BtcAccountType.P2wpkh,
);

it('disables Solana account creation when account already exists', () => {
it('does not Solana account creation when account already exists', () => {
const stateWithSolAccount = {
...mockInitialState,
engine: {
Expand Down Expand Up @@ -212,7 +212,7 @@ describe('AddAccountActions', () => {
expect(solButton.findByType(Text).props.children).toBe(
'Add a new Solana Account (Beta)',
);
expect(solButton.props.disabled).toBe(true);
expect(solButton.props.disabled).toBe(false);
});

it('disables Bitcoin account creation when account already exists', () => {
Expand Down
11 changes: 2 additions & 9 deletions app/components/Views/AddAccountActions/AddAccountActions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ import { useSelector } from 'react-redux';
import {
hasCreatedBtcMainnetAccount,
hasCreatedBtcTestnetAccount,
hasCreatedSolanaMainnetAccount,
} from '../../../selectors/accountsController';
import {
selectIsBitcoinSupportEnabled,
Expand Down Expand Up @@ -99,10 +98,6 @@ const AddAccountActions = ({ onBack }: AddAccountActionsProps) => {
hasCreatedBtcTestnetAccount,
);

const isSolanaMainnetAccountAlreadyCreated = useSelector(
hasCreatedSolanaMainnetAccount,
);

const createBitcoinAccount = async (scope: CaipChainId) => {
try {
setIsLoading(true);
Expand Down Expand Up @@ -160,14 +155,12 @@ const AddAccountActions = ({ onBack }: AddAccountActionsProps) => {
}
{isSolanaSupportEnabled && (
<AccountAction
actionTitle={strings(
'account_actions.add_solana_account_mainnet',
)}
actionTitle={strings('account_actions.add_solana_account')}
iconName={IconName.Add}
onPress={async () => {
await createSolanaAccount(MultichainNetworks.SOLANA);
}}
disabled={isLoading || isSolanaMainnetAccountAlreadyCreated}
disabled={isLoading}
testID={
AddAccountBottomSheetSelectorsIDs.ADD_SOLANA_ACCOUNT_BUTTON
}
Expand Down
24 changes: 17 additions & 7 deletions app/core/Multichain/test/utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ const MOCK_BTC_MAINNET_ADDRESS_2 = '1P5ZEDWTKTFGxQjZphgWPQUpe554WKDfHQ';
const MOCK_BTC_TESTNET_ADDRESS = 'tb1q63st8zfndjh00gf9hmhsdg7l8umuxudrj4lucp';
const MOCK_ETH_ADDRESS = '0xC4955C0d639D99699Bfd7Ec54d9FaFEe40e4D272';

const SOL_ADDRESSES = '7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV';
const SOL_ADDRESS = '7EcDhSYGxXyscszYEp35KHN8vvw3svAuLKTzXwCFLtV';

const mockEthEOAAccount: InternalAccount = {
address: MOCK_ETH_ADDRESS,
Expand Down Expand Up @@ -83,7 +83,12 @@ const mockBTCAccount: InternalAccount = {
name: 'Bitcoin Account',
importTime: 1684232000456,
keyring: {
type: KeyringTypes.hd,
type: KeyringTypes.snap,
},
snap: {
id: 'npm:"@metamask/bitcoin-wallet-snap',
name: 'Bitcoin Wallet Snap',
enabled: true,
},
},
options: {},
Expand All @@ -92,7 +97,7 @@ const mockBTCAccount: InternalAccount = {
};

const mockSolAccount: InternalAccount = {
address: SOL_ADDRESSES,
address: SOL_ADDRESS,
id: '1',
type: SolAccountType.DataAccount,
methods: [SolMethod.SendAndConfirmTransaction],
Expand All @@ -101,10 +106,15 @@ const mockSolAccount: InternalAccount = {
name: 'Solana Account',
importTime: 1684232000456,
keyring: {
type: KeyringTypes.hd,
type: KeyringTypes.snap,
},
snap: {
id: 'npm:"@metamask/solana-wallet-snap',
name: 'Solana Wallet Snap',
enabled: true,
},
},
scopes: [SolScopes.Namespace],
scopes: [SolScopes.Mainnet, SolScopes.Testnet, SolScopes.Devnet],
};

describe('MultiChain utils', () => {
Expand Down Expand Up @@ -149,7 +159,7 @@ describe('MultiChain utils', () => {
expect(isBtcMainnetAddress(MOCK_ETH_ADDRESS)).toBe(false);
});
it('returns false for SOL addresses', () => {
expect(isBtcMainnetAddress(SOL_ADDRESSES)).toBe(false);
expect(isBtcMainnetAddress(SOL_ADDRESS)).toBe(false);
});
});

Expand All @@ -167,7 +177,7 @@ describe('MultiChain utils', () => {
expect(isBtcTestnetAddress(MOCK_ETH_ADDRESS)).toBe(false);
});
it('returns false for SOL addresses', () => {
expect(isBtcTestnetAddress(SOL_ADDRESSES)).toBe(false);
expect(isBtcTestnetAddress(SOL_ADDRESS)).toBe(false);
});
});

Expand Down
15 changes: 0 additions & 15 deletions app/selectors/accountsController.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import {
selectSelectedInternalAccountFormattedAddress,
hasCreatedBtcMainnetAccount,
hasCreatedBtcTestnetAccount,
hasCreatedSolanaMainnetAccount,
} from './accountsController';
import {
MOCK_ACCOUNTS_CONTROLLER_STATE,
Expand Down Expand Up @@ -261,17 +260,3 @@ describe('Bitcoin Account Selectors', () => {
});
});
});

describe('Solana Account Selectors', () => {
describe('hasCreatedSolanaMainnetAccount', () => {
it('returns true when a Solana account exists', () => {
const state = getStateWithAccount(solAccount);
expect(hasCreatedSolanaMainnetAccount(state)).toBe(true);
});

it('returns false when no Solana account exists', () => {
const state = getStateWithAccount(btcMainnetAccount);
expect(hasCreatedSolanaMainnetAccount(state)).toBe(false);
});
});
});
2 changes: 1 addition & 1 deletion app/selectors/accountsController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ export function hasCreatedBtcTestnetAccount(state: RootState): boolean {
/**
* A selector that returns whether the user has already created a Solana mainnet account
*/
export function hasCreatedSolanaMainnetAccount(state: RootState): boolean {
export function hasCreatedSolanaAccount(state: RootState): boolean {
const accounts = selectInternalAccounts(state);
return accounts.some((account) => isSolanaAccount(account));
}
Expand Down
2 changes: 1 addition & 1 deletion locales/languages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -3379,7 +3379,7 @@
"import_account": "Import account",
"add_bitcoin_account_testnet": "Add a new Bitcoin Account (Testnet)",
"add_bitcoin_account_mainnet": "Add a new Bitcoin Account (Beta)",
"add_solana_account_mainnet": "Add a new Solana Account (Beta)"
"add_solana_account": "Add a new Solana Account (Beta)"
},
"show_nft": {
"show_nft_title": "Show NFT",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@
"@segment/sovran-react-native": "^1.0.4",
"@sentry/integrations": "6.3.1",
"@sentry/react-native": "^5.33.0",
"@solana/addresses": "2.0.0-rc.4",
"@solana/addresses": "2.0.0",
"@tradle/react-native-http": "2.0.1",
"@walletconnect/client": "^1.8.0",
"@walletconnect/core": "^2.17.2",
Expand Down
90 changes: 45 additions & 45 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7259,51 +7259,51 @@
resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553"
integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==

"@solana/addresses@2.0.0-rc.4":
version "2.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-2.0.0-rc.4.tgz#13ca6dce9bf131d4990ea72f66624b041ac15166"
integrity sha512-AR9g6pZMqCZeH/dShmaqyTQRCgWtZpYPQZYMazA6I5EsrKq1A40Cfxqgb/iMNl/g3vfVunT25UASH3YwBQyL/A==
dependencies:
"@solana/assertions" "2.0.0-rc.4"
"@solana/codecs-core" "2.0.0-rc.4"
"@solana/codecs-strings" "2.0.0-rc.4"
"@solana/errors" "2.0.0-rc.4"

"@solana/assertions@2.0.0-rc.4":
version "2.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-2.0.0-rc.4.tgz#0c6e921aa9b560c269a76a4a00bf15dbdbc1c0f8"
integrity sha512-CkTwoysagNAOjWynNzvrS5842/uDhEBjRbmgYRFurbWNLjo62j3eTYJKgTcMml7nc564Y4gObC5lUwWShGMZ/A==
dependencies:
"@solana/errors" "2.0.0-rc.4"

"@solana/codecs-core@2.0.0-rc.4":
version "2.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.0.0-rc.4.tgz#c4280d68877a078df4b430871db159f95534fcd3"
integrity sha512-JIrTSps032mSE3wBxW3bXOqWfoy4CMy1CX/XeVCijyh5kLVxZTSDIdRTYdePdL1yzaOZF1Xysvt1DhOUgBdM+A==
dependencies:
"@solana/errors" "2.0.0-rc.4"

"@solana/codecs-numbers@2.0.0-rc.4":
version "2.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.0.0-rc.4.tgz#ad95848d64dbaab4f6f0935d042df00802c84bba"
integrity sha512-ZJR7TaUO65+3Hzo3YOOUCS0wlzh17IW+j0MZC2LCk1R0woaypRpHKj4iSMYeQOZkMxsd9QT3WNvjFrPC2qA6Sw==
dependencies:
"@solana/codecs-core" "2.0.0-rc.4"
"@solana/errors" "2.0.0-rc.4"

"@solana/codecs-strings@2.0.0-rc.4":
version "2.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-2.0.0-rc.4.tgz#6a9223c074ab2422a7da3a8fc60cd398c6b8e167"
integrity sha512-LGfK2RL0BKjYYUfzu2FG/gTgCsYOMz9FKVs2ntji6WneZygPxJTV5W98K3J8Rl0JewpCSCFQH3xjLSHBJUS0fA==
dependencies:
"@solana/codecs-core" "2.0.0-rc.4"
"@solana/codecs-numbers" "2.0.0-rc.4"
"@solana/errors" "2.0.0-rc.4"

"@solana/errors@2.0.0-rc.4":
version "2.0.0-rc.4"
resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.0.0-rc.4.tgz#4a5aa0d82206b07f31e729262f47def34397ac61"
integrity sha512-0PPaMyB81keEHG/1pnyEuiBVKctbXO641M2w3CIOrYT/wzjunfF0FTxsqq9wYJeYo0AyiefCKGgSPs6wiY2PpQ==
"@solana/addresses@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-2.0.0.tgz#d1b01a38e0b48d7e4fea223821655a0c2b903c28"
integrity sha512-8n3c/mUlH1/z+pM8e7OJ6uDSXw26Be0dgYiokiqblO66DGQ0d+7pqFUFZ5pEGjJ9PU2lDTSfY8rHf4cemOqwzQ==
dependencies:
"@solana/assertions" "2.0.0"
"@solana/codecs-core" "2.0.0"
"@solana/codecs-strings" "2.0.0"
"@solana/errors" "2.0.0"

"@solana/assertions@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-2.0.0.tgz#b02fc874a890f252c4595a0e35deeb1719d5f02b"
integrity sha512-NyPPqZRNGXs/GAjfgsw7YS6vCTXWt4ibXveS+ciy5sdmp/0v3pA6DlzYjleF9Sljrew0IiON15rjaXamhDxYfQ==
dependencies:
"@solana/errors" "2.0.0"

"@solana/codecs-core@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.0.0.tgz#31d4a6acce9ac49f786939c4e564adf9a68c56ef"
integrity sha512-qCG+3hDU5Pm8V6joJjR4j4Zv9md1z0RaecniNDIkEglnxmOUODnmPLWbtOjnDylfItyuZeDihK8hkewdj8cUtw==
dependencies:
"@solana/errors" "2.0.0"

"@solana/codecs-numbers@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.0.0.tgz#c08250968fa1cbfab076367b650269271061c646"
integrity sha512-r66i7VzJO1MZkQWZIAI6jjJOFVpnq0+FIabo2Z2ZDtrArFus/SbSEv543yCLeD2tdR/G/p+1+P5On10qF50Y1Q==
dependencies:
"@solana/codecs-core" "2.0.0"
"@solana/errors" "2.0.0"

"@solana/codecs-strings@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-2.0.0.tgz#46e728adee9a4737c3ee811af452948aab31cbd4"
integrity sha512-dNqeCypsvaHcjW86H0gYgAZGGkKVBeKVeh7WXlOZ9kno7PeQ2wNkpccyzDfuzaIsKv+HZUD3v/eo86GCvnKazQ==
dependencies:
"@solana/codecs-core" "2.0.0"
"@solana/codecs-numbers" "2.0.0"
"@solana/errors" "2.0.0"

"@solana/errors@2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.0.0.tgz#31c87baaf4b19aaa2a1d8bbc4dfa6efd449d7bbe"
integrity sha512-IHlaPFSy4lvYco1oHJ3X8DbchWwAwJaL/4wZKnF1ugwZ0g0re8wbABrqNOe/jyZ84VU9Z14PYM8W9oDAebdJbw==
dependencies:
chalk "^5.3.0"
commander "^12.1.0"
Expand Down

0 comments on commit 01e89cc

Please sign in to comment.