@@ -742,6 +742,68 @@ def test_wallet_import_from_mnemonic_seed_phrase(
742
742
assert wallet .default_address ._model .public_key == public_key
743
743
744
744
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
+
745
807
def test_wallet_import_from_mnemonic_empty_phrase ():
746
808
"""Test importing a wallet with an empty mnemonic phrase."""
747
809
from cdp .mnemonic_seed_phrase import MnemonicSeedPhrase
0 commit comments