|
|
@ -159,7 +159,43 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase): |
|
|
|
self.assertEqual(w.get_change_addresses()[0], '1KRW8pH6HFHZh889VDq6fEKvmrsmApwNfe') |
|
|
|
|
|
|
|
@mock.patch.object(wallet.Abstract_Wallet, 'save_db') |
|
|
|
def test_electrum_seed_2fa_legacy(self, mock_save_db): |
|
|
|
def test_electrum_seed_2fa_legacy_pre27(self, mock_save_db): |
|
|
|
# pre-version-2.7 2fa seed |
|
|
|
seed_words = 'bind clever room kidney crucial sausage spy edit canvas soul liquid ribbon slam open alpha suffer gate relax voice carpet law hill woman tonight abstract' |
|
|
|
self.assertEqual(seed_type(seed_words), '2fa') |
|
|
|
|
|
|
|
xprv1, xpub1, xprv2, xpub2 = trustedcoin.TrustedCoinPlugin.xkeys_from_seed(seed_words, '') |
|
|
|
|
|
|
|
ks1 = keystore.from_xprv(xprv1) |
|
|
|
self.assertTrue(isinstance(ks1, keystore.BIP32_KeyStore)) |
|
|
|
self.assertEqual(ks1.xprv, 'xprv9s21ZrQH143K2TsDemiaPqaTuBkW3gns4sGi9f65pWtg27nmmmAut6fErgaHFxj3d4rHgyFKjhvtAUafqF3wwU8Bkou8LefQgBtRWjUKN3V') |
|
|
|
self.assertEqual(ks1.xpub, 'xpub661MyMwAqRbcEwwgkoFakyXCTDazT9WiS6CJx3VhNrRetv7vKJVARtyihwCVatSsUtVsEYcvdxhvDtkSk8qKV3VVtcL3csz6sQTbGzmEckd') |
|
|
|
self.assertEqual(ks1.xpub, xpub1) |
|
|
|
|
|
|
|
ks2 = keystore.from_xprv(xprv2) |
|
|
|
self.assertTrue(isinstance(ks2, keystore.BIP32_KeyStore)) |
|
|
|
self.assertEqual(ks2.xprv, 'xprv9s21ZrQH143K3r6H1h91TqRECE7tmDB5PYGZDKPuSjefTzNbDMauUMUnjsUSv8X8nuzQsrtGmtCuA51CNz7XimRj2HPYxUxXGGf4KB7M74y') |
|
|
|
self.assertEqual(ks2.xpub, 'xpub661MyMwAqRbcGLAk7ig1pyMxkFxPAftvkmCA1hoX15BeLnhjktuA29oGb7bh9opQgNERu6iWhwcY6b5bZX57dYsGo7zYjwXTNCryfKuPfek') |
|
|
|
self.assertEqual(ks2.xpub, xpub2) |
|
|
|
|
|
|
|
long_user_id, short_id = trustedcoin.get_user_id( |
|
|
|
{'x1/': {'xpub': xpub1}, |
|
|
|
'x2/': {'xpub': xpub2}}) |
|
|
|
xtype = bip32.xpub_type(xpub1) |
|
|
|
xpub3 = trustedcoin.make_xpub(trustedcoin.get_signing_xpub(xtype), long_user_id) |
|
|
|
ks3 = keystore.from_xpub(xpub3) |
|
|
|
WalletIntegrityHelper.check_xpub_keystore_sanity(self, ks3) |
|
|
|
self.assertTrue(isinstance(ks3, keystore.BIP32_KeyStore)) |
|
|
|
|
|
|
|
w = WalletIntegrityHelper.create_multisig_wallet([ks1, ks2, ks3], '2of3', config=self.config) |
|
|
|
self.assertEqual(w.txin_type, 'p2sh') |
|
|
|
|
|
|
|
self.assertEqual(w.get_receiving_addresses()[0], '3Bw5jczNModhFAbvfwvUHbdGrC2Lh2qRQp') |
|
|
|
self.assertEqual(w.get_change_addresses()[0], '3Ke6pKrmtSyyQaMob1ES4pk8siAAkRmst9') |
|
|
|
|
|
|
|
@mock.patch.object(wallet.Abstract_Wallet, 'save_db') |
|
|
|
def test_electrum_seed_2fa_legacy_post27(self, mock_save_db): |
|
|
|
# post-version-2.7 2fa seed |
|
|
|
seed_words = 'kiss live scene rude gate step hip quarter bunker oxygen motor glove' |
|
|
|
self.assertEqual(seed_type(seed_words), '2fa') |
|
|
|
|
|
|
|