@@ -742,6 +742,68 @@ def test_wallet_import_from_mnemonic_seed_phrase(
742742 assert wallet .default_address ._model .public_key == public_key
743743
744744
745+ @patch ("cdp.Cdp.use_server_signer" , False )
746+ @patch ("cdp.Cdp.api_clients" )
747+ @patch ("cdp.wallet.Account" )
748+ def test_wallet_import_from_mnemonic_seed_phrase_specified_network_id (
749+ mock_account ,
750+ mock_api_clients ,
751+ wallet_factory ,
752+ address_model_factory ,
753+ ):
754+ """Test importing a wallet from a mnemonic seed phrase with network ID specified."""
755+ # Valid 24-word mnemonic and expected address
756+ valid_mnemonic = "crouch cereal notice one canyon kiss tape employ ghost column vanish despair eight razor laptop keen rally gaze riot regret assault jacket risk curve"
757+ expected_address = "0x43A0477E658C6e05136e81C576CF02daCEa067bB"
758+ public_key = "0x037e6cbdd1d949f60f41d5db7ffa9b3ddce0b77eab35ef7affd3f64cbfd9e33a91"
759+
760+ # Create mock address model
761+ mock_address = address_model_factory (
762+ address_id = expected_address ,
763+ public_key = public_key ,
764+ wallet_id = "new-wallet-id" ,
765+ network_id = "base-mainnet" ,
766+ index = 0 ,
767+ )
768+
769+ # Create mock wallet model with the address model
770+ mock_wallet = wallet_factory (
771+ id = "new-wallet-id" , network_id = "base-mainnet" , default_address = mock_address
772+ )._model
773+
774+ # Add debug assertions
775+ assert mock_wallet .default_address is not None
776+ assert mock_wallet .default_address .address_id == expected_address
777+
778+ # Mock Account.from_key to return an account with our expected address
779+ mock_account_instance = Mock (spec = Account )
780+ mock_account_instance .address = expected_address
781+ mock_account .from_key = Mock (return_value = mock_account_instance )
782+
783+ # Mock both API calls to return the same wallet model
784+ mock_api_clients .wallets .create_wallet = Mock (return_value = mock_wallet )
785+ mock_api_clients .wallets .get_wallet = Mock (return_value = mock_wallet )
786+ mock_api_clients .addresses .create_address = Mock (return_value = mock_address )
787+
788+ # Mock list_addresses call
789+ mock_address_list = Mock ()
790+ mock_address_list .data = [mock_address ]
791+ mock_api_clients .addresses .list_addresses = Mock (return_value = mock_address_list )
792+
793+ # Import wallet using mnemonic
794+ from cdp .mnemonic_seed_phrase import MnemonicSeedPhrase
795+
796+ wallet = Wallet .import_wallet (MnemonicSeedPhrase (valid_mnemonic ), network_id = "base-mainnet" )
797+
798+ # Verify the wallet was created successfully
799+ assert isinstance (wallet , Wallet )
800+
801+ # Verify the default address matches expected address
802+ assert wallet .default_address is not None
803+ assert wallet .default_address .address_id == expected_address
804+ assert wallet .default_address ._model .public_key == public_key
805+
806+
745807def test_wallet_import_from_mnemonic_empty_phrase ():
746808 """Test importing a wallet with an empty mnemonic phrase."""
747809 from cdp .mnemonic_seed_phrase import MnemonicSeedPhrase
0 commit comments