mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-31 01:11:35 +00:00
tests: rm "needs_test_with_all_ecc_implementations" decorator
now libsecp256k1 is the only implementation
This commit is contained in:
parent
0a5ad9fda4
commit
de1ca27d63
4 changed files with 0 additions and 91 deletions
|
@ -32,31 +32,6 @@ except ImportError:
|
|||
sys.exit("Error: python-ecdsa does not seem to be installed. Try 'sudo python3 -m pip install ecdsa'")
|
||||
|
||||
|
||||
def needs_test_with_all_ecc_implementations(func):
|
||||
"""Function decorator to run a unit test twice:
|
||||
once when libsecp256k1 is not available, once when it is.
|
||||
|
||||
NOTE: this is inherently sequential;
|
||||
tests running in parallel would break things
|
||||
"""
|
||||
def run_test(*args, **kwargs):
|
||||
if FAST_TESTS: # if set, only run tests once, using fastest implementation
|
||||
func(*args, **kwargs)
|
||||
return
|
||||
ecc_fast.undo_monkey_patching_of_python_ecdsa_internals_with_libsecp256k1()
|
||||
try:
|
||||
# first test without libsecp
|
||||
func(*args, **kwargs)
|
||||
finally:
|
||||
ecc_fast.do_monkey_patching_of_python_ecdsa_internals_with_libsecp256k1()
|
||||
# if libsecp is not available, we are done
|
||||
if not ecc_fast._libsecp256k1:
|
||||
return
|
||||
# if libsecp is available, test again now
|
||||
func(*args, **kwargs)
|
||||
return run_test
|
||||
|
||||
|
||||
def needs_test_with_all_aes_implementations(func):
|
||||
"""Function decorator to run a unit test twice:
|
||||
once when pycryptodomex is not available, once when it is.
|
||||
|
@ -94,7 +69,6 @@ class Test_bitcoin(ElectrumTestCase):
|
|||
self.assertTrue(bool(crypto.AES))
|
||||
|
||||
@needs_test_with_all_aes_implementations
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_crypto(self):
|
||||
for message in [b"Chancellor on brink of second bailout for banks", b'\xff'*512]:
|
||||
self._do_test_crypto(message)
|
||||
|
@ -126,7 +100,6 @@ class Test_bitcoin(ElectrumTestCase):
|
|||
#print signature
|
||||
eck.verify_message_for_address(signature, message)
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_ecc_sanity(self):
|
||||
G = ecc.GENERATOR
|
||||
n = G.order()
|
||||
|
@ -154,7 +127,6 @@ class Test_bitcoin(ElectrumTestCase):
|
|||
self.assertEqual(2 * G, inf + 2 * G)
|
||||
self.assertEqual(inf, 3 * G + (-3 * G))
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_msg_signing(self):
|
||||
msg1 = b'Chancellor on brink of second bailout for banks'
|
||||
msg2 = b'Electrum'
|
||||
|
@ -184,7 +156,6 @@ class Test_bitcoin(ElectrumTestCase):
|
|||
self.assertFalse(ecc.verify_message_with_address(addr1, sig2, msg1))
|
||||
|
||||
@needs_test_with_all_aes_implementations
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_decrypt_message(self):
|
||||
key = WalletStorage.get_eckey_from_password('pw123')
|
||||
self.assertEqual(b'me<(s_s)>age', key.decrypt_message(b'QklFMQMDFtgT3zWSQsa+Uie8H/WvfUjlu9UN9OJtTt3KlgKeSTi6SQfuhcg1uIz9hp3WIUOFGTLr4RNQBdjPNqzXwhkcPi2Xsbiw6UCNJncVPJ6QBg=='))
|
||||
|
@ -192,7 +163,6 @@ class Test_bitcoin(ElectrumTestCase):
|
|||
self.assertEqual(b'hey_there' * 100, key.decrypt_message(b'QklFMQLOOsabsXtGQH8edAa6VOUa5wX8/DXmxX9NyHoAx1a5bWgllayGRVPeI2bf0ZdWK0tfal0ap0ZIVKbd2eOJybqQkILqT6E1/Syzq0Zicyb/AA1eZNkcX5y4gzloxinw00ubCA8M7gcUjJpOqbnksATcJ5y2YYXcHMGGfGurWu6uJ/UyrNobRidWppRMW5yR9/6utyNvT6OHIolCMEf7qLcmtneoXEiz51hkRdZS7weNf9mGqSbz9a2NL3sdh1A0feHIjAZgcCKcAvksNUSauf0/FnIjzTyPRpjRDMeDC8Ci3sGiuO3cvpWJwhZfbjcS26KmBv2CHWXfRRNFYOInHZNIXWNAoBB47Il5bGSMd+uXiGr+SQ9tNvcu+BiJNmFbxYqg+oQ8dGAl1DtvY2wJVY8k7vO9BIWSpyIxfGw7EDifhc5vnOmGe016p6a01C3eVGxgl23UYMrP7+fpjOcPmTSF4rk5U5ljEN3MSYqlf1QEv0OqlI9q1TwTK02VBCjMTYxDHsnt04OjNBkNO8v5uJ4NR+UUDBEp433z53I59uawZ+dbk4v4ZExcl8EGmKm3Gzbal/iJ/F7KQuX2b/ySEhLOFVYFWxK73X1nBvCSK2mC2/8fCw8oI5pmvzJwQhcCKTdEIrz3MMvAHqtPScDUOjzhXxInQOCb3+UBj1PPIdqkYLvZss1TEaBwYZjLkVnK2MBj7BaqT6Rp6+5A/fippUKHsnB6eYMEPR2YgDmCHL+4twxHJG6UWdP3ybaKiiAPy2OHNP6PTZ0HrqHOSJzBSDD+Z8YpaRg29QX3UEWlqnSKaan0VYAsV1VeaN0XFX46/TWO0L5tjhYVXJJYGqo6tIQJymxATLFRF6AZaD1Mwd27IAL04WkmoQoXfO6OFfwdp/shudY/1gBkDBvGPICBPtnqkvhGF+ZF3IRkuPwiFWeXmwBxKHsRx/3+aJu32Ml9+za41zVk2viaxcGqwTc5KMexQFLAUwqhv+aIik7U+5qk/gEVSuRoVkihoweFzKolNF+BknH2oB4rZdPixag5Zje3DvgjsSFlOl69W/67t/Gs8htfSAaHlsB8vWRQr9+v/lxTbrAw+O0E+sYGoObQ4qQMyQshNZEHbpPg63eWiHtJJnrVBvOeIbIHzoLDnMDsWVWZSMzAQ1vhX1H5QLgSEbRlKSliVY03kDkh/Nk/KOn+B2q37Ialq4JcRoIYFGJ8AoYEAD0tRuTqFddIclE75HzwaNG7NyKW1plsa72ciOPwsPJsdd5F0qdSQ3OSKtooTn7uf6dXOc4lDkfrVYRlZ0PX'))
|
||||
|
||||
@needs_test_with_all_aes_implementations
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_encrypt_message(self):
|
||||
key = WalletStorage.get_eckey_from_password('secret_password77')
|
||||
msgs = [
|
||||
|
@ -206,7 +176,6 @@ class Test_bitcoin(ElectrumTestCase):
|
|||
self.assertEqual(plaintext, key.decrypt_message(ciphertext2))
|
||||
self.assertNotEqual(ciphertext1, ciphertext2)
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_sign_transaction(self):
|
||||
eckey1 = ecc.ECPrivkey(bfh('7e1255fddb52db1729fc3ceb21a46f95b8d9fe94cc83425e936a6c5223bb679d'))
|
||||
sig1 = eckey1.sign_transaction(bfh('5a548b12369a53faaa7e51b5081829474ebdd9c924b3a8230b69aa0be254cd94'))
|
||||
|
@ -422,7 +391,6 @@ class Test_xprv_xpub(ElectrumTestCase):
|
|||
|
||||
return xpub, xprv
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_bip32(self):
|
||||
# see https://en.bitcoin.it/wiki/BIP_0032_TestVectors
|
||||
xpub, xprv = self._do_test_bip32("000102030405060708090a0b0c0d0e0f", "m/0'/1/2'/2/1000000000")
|
||||
|
@ -433,14 +401,12 @@ class Test_xprv_xpub(ElectrumTestCase):
|
|||
self.assertEqual("xpub6FnCn6nSzZAw5Tw7cgR9bi15UV96gLZhjDstkXXxvCLsUXBGXPdSnLFbdpq8p9HmGsApME5hQTZ3emM2rnY5agb9rXpVGyy3bdW6EEgAtqt", xpub)
|
||||
self.assertEqual("xprvA2nrNbFZABcdryreWet9Ea4LvTJcGsqrMzxHx98MMrotbir7yrKCEXw7nadnHM8Dq38EGfSh6dqA9QWTyefMLEcBYJUuekgW4BYPJcr9E7j", xprv)
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_xpub_from_xprv(self):
|
||||
"""We can derive the xpub key from a xprv."""
|
||||
for xprv_details in self.xprv_xpub:
|
||||
result = xpub_from_xprv(xprv_details['xprv'])
|
||||
self.assertEqual(result, xprv_details['xpub'])
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_is_xpub(self):
|
||||
for xprv_details in self.xprv_xpub:
|
||||
xpub = xprv_details['xpub']
|
||||
|
@ -448,13 +414,11 @@ class Test_xprv_xpub(ElectrumTestCase):
|
|||
self.assertFalse(is_xpub('xpub1nval1d'))
|
||||
self.assertFalse(is_xpub('xpub661MyMwAqRbcFWohJWt7PHsFEJfZAvw9ZxwQoDa4SoMgsDDM1T7WK3u9E4edkC4ugRnZ8E4xDZRpk8Rnts3Nbt97dPwT52WRONGBADWRONG'))
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_xpub_type(self):
|
||||
for xprv_details in self.xprv_xpub:
|
||||
xpub = xprv_details['xpub']
|
||||
self.assertEqual(xprv_details['xtype'], xpub_type(xpub))
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_is_xprv(self):
|
||||
for xprv_details in self.xprv_xpub:
|
||||
xprv = xprv_details['xprv']
|
||||
|
@ -679,7 +643,6 @@ class Test_keyImport(ElectrumTestCase):
|
|||
'scripthash': '5b07ddfde826f5125ee823900749103cea37808038ecead5505a766a07c34445'},
|
||||
)
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_public_key_from_private_key(self):
|
||||
for priv_details in self.priv_pub_addr:
|
||||
txin_type, privkey, compressed = deserialize_privkey(priv_details['priv'])
|
||||
|
@ -688,13 +651,11 @@ class Test_keyImport(ElectrumTestCase):
|
|||
self.assertEqual(priv_details['txin_type'], txin_type)
|
||||
self.assertEqual(priv_details['compressed'], compressed)
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_address_from_private_key(self):
|
||||
for priv_details in self.priv_pub_addr:
|
||||
addr2 = address_from_private_key(priv_details['priv'])
|
||||
self.assertEqual(priv_details['address'], addr2)
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_is_valid_address(self):
|
||||
for priv_details in self.priv_pub_addr:
|
||||
addr = priv_details['address']
|
||||
|
@ -720,7 +681,6 @@ class Test_keyImport(ElectrumTestCase):
|
|||
self.assertTrue(is_address('bc1qxq64lrwt02hm7tu25lr3hm9tgzh58snfe67yt6'))
|
||||
self.assertFalse(is_address('bc1qxq64lrwt02hm7tu25lr3hm9tgzh58snfe67yt5'))
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_is_private_key(self):
|
||||
for priv_details in self.priv_pub_addr:
|
||||
self.assertTrue(is_private_key(priv_details['priv']))
|
||||
|
@ -729,39 +689,33 @@ class Test_keyImport(ElectrumTestCase):
|
|||
self.assertFalse(is_private_key(priv_details['address']))
|
||||
self.assertFalse(is_private_key("not a privkey"))
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_serialize_privkey(self):
|
||||
for priv_details in self.priv_pub_addr:
|
||||
txin_type, privkey, compressed = deserialize_privkey(priv_details['priv'])
|
||||
priv2 = serialize_privkey(privkey, compressed, txin_type)
|
||||
self.assertEqual(priv_details['exported_privkey'], priv2)
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_address_to_scripthash(self):
|
||||
for priv_details in self.priv_pub_addr:
|
||||
sh = address_to_scripthash(priv_details['address'])
|
||||
self.assertEqual(priv_details['scripthash'], sh)
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_is_minikey(self):
|
||||
for priv_details in self.priv_pub_addr:
|
||||
minikey = priv_details['minikey']
|
||||
priv = priv_details['priv']
|
||||
self.assertEqual(minikey, is_minikey(priv))
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_is_compressed_privkey(self):
|
||||
for priv_details in self.priv_pub_addr:
|
||||
self.assertEqual(priv_details['compressed'],
|
||||
is_compressed_privkey(priv_details['priv']))
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_segwit_uncompressed_pubkey(self):
|
||||
with self.assertRaises(BitcoinException):
|
||||
is_private_key("p2wpkh-p2sh:5JKXxT3wAZHcybJ9YNkuHur9vou6uuAnorBV9A8vVxGNFH5wvTW",
|
||||
raise_on_error=True)
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_wif_with_invalid_magic_byte_for_compressed_pubkey(self):
|
||||
with self.assertRaises(BitcoinException):
|
||||
is_private_key("KwFAa6AumokBD2dVqQLPou42jHiVsvThY1n25HJ8Ji8REf1wxAQb",
|
||||
|
|
|
@ -3,12 +3,10 @@ import dns
|
|||
from electrum import dnssec
|
||||
|
||||
from . import ElectrumTestCase
|
||||
from .test_bitcoin import needs_test_with_all_ecc_implementations
|
||||
|
||||
|
||||
class TestDnsSec(ElectrumTestCase):
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_python_validate_rrsig_ecdsa(self):
|
||||
rrset = dns.rrset.from_text("getmonero.org.", 3599, 1, 48,
|
||||
"257 3 13 mdsswUyr3DPW132mOi8V9xESWE8jTo0d xCjjnopKl+GqJxpVXckHAeF+KkxLbxIL fDLUT0rAK9iUzy1L53eKGQ==",
|
||||
|
|
|
@ -13,7 +13,6 @@ from electrum.plugins.trustedcoin import trustedcoin
|
|||
from electrum.plugins.trustedcoin.legacy_tx_format import serialize_tx_in_legacy_format
|
||||
|
||||
from . import ElectrumTestCase, TestCaseForTestnet
|
||||
from .test_bitcoin import needs_test_with_all_ecc_implementations
|
||||
|
||||
signed_blob = '01000000012a5c9a94fcde98f5581cd00162c60a13936ceb75389ea65bf38633b424eb4031000000006c493046022100a82bbc57a0136751e5433f41cf000b3f1a99c6744775e76ec764fb78c54ee100022100f9e80b7de89de861dc6fb0c1429d5da72c2b6b2ee2406bc9bfb1beedd729d985012102e61d176da16edd1d258a200ad9759ef63adf8e14cd97f53227bae35cdb84d2f6ffffffff0140420f00000000001976a914230ac37834073a42146f11ef8414ae929feaafc388ac00000000'
|
||||
v2_blob = "0200000001191601a44a81e061502b7bfbc6eaa1cef6d1e6af5308ef96c9342f71dbf4b9b5000000006b483045022100a6d44d0a651790a477e75334adfb8aae94d6612d01187b2c02526e340a7fd6c8022028bdf7a64a54906b13b145cd5dab21a26bd4b85d6044e9b97bceab5be44c2a9201210253e8e0254b0c95776786e40984c1aa32a7d03efa6bdacdea5f421b774917d346feffffff026b20fa04000000001976a914024db2e87dd7cfd0e5f266c5f212e21a31d805a588aca0860100000000001976a91421919b94ae5cefcdf0271191459157cdb41c4cbf88aca6240700"
|
||||
|
@ -64,7 +63,6 @@ class TestBCDataStream(ElectrumTestCase):
|
|||
|
||||
class TestTransaction(ElectrumTestCase):
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_tx_update_signatures(self):
|
||||
tx = tx_from_any("cHNidP8BAFUBAAAAASpcmpT83pj1WBzQAWLGChOTbOt1OJ6mW/OGM7Qk60AxAAAAAAD/////AUBCDwAAAAAAGXapFCMKw3g0BzpCFG8R74QUrpKf6q/DiKwAAAAAAAAA")
|
||||
tx.inputs()[0].script_type = 'p2pkh'
|
||||
|
@ -73,7 +71,6 @@ class TestTransaction(ElectrumTestCase):
|
|||
tx.update_signatures(signed_blob_signatures)
|
||||
self.assertEqual(tx.serialize(), signed_blob)
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_tx_deserialize_for_signed_network_tx(self):
|
||||
tx = transaction.Transaction(signed_blob)
|
||||
tx.deserialize()
|
||||
|
|
|
@ -18,7 +18,6 @@ from electrum.plugins.trustedcoin import trustedcoin
|
|||
|
||||
from . import TestCaseForTestnet
|
||||
from . import ElectrumTestCase
|
||||
from .test_bitcoin import needs_test_with_all_ecc_implementations
|
||||
|
||||
|
||||
UNICODE_HORROR_HEX = 'e282bf20f09f988020f09f98882020202020e3818620e38191e3819fe381be20e3828fe3828b2077cda2cda2cd9d68cda16fcda2cda120ccb8cda26bccb5cd9f6eccb4cd98c7ab77ccb8cc9b73cd9820cc80cc8177cd98cda2e1b8a9ccb561d289cca1cda27420cca7cc9568cc816fccb572cd8fccb5726f7273cca120ccb6cda1cda06cc4afccb665cd9fcd9f20ccb6cd9d696ecda220cd8f74cc9568ccb7cca1cd9f6520cd9fcd9f64cc9b61cd9c72cc95cda16bcca2cca820cda168ccb465cd8f61ccb7cca2cca17274cc81cd8f20ccb4ccb7cda0c3b2ccb5ccb666ccb82075cca7cd986ec3adcc9bcd9c63cda2cd8f6fccb7cd8f64ccb8cda265cca1cd9d3fcd9e'
|
||||
|
@ -83,7 +82,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
super().setUp()
|
||||
self.config = SimpleConfig({'electrum_path': self.electrum_path})
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_electrum_seed_standard(self, mock_save_db):
|
||||
seed_words = 'cycle rocket west magnet parrot shuffle foot correct salt library feed song'
|
||||
|
@ -103,7 +101,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], '1NNkttn1YvVGdqBW4PR6zvc3Zx3H5owKRf')
|
||||
self.assertEqual(w.get_change_addresses()[0], '1KSezYMhAJMWqFbVFB2JshYg69UpmEXR4D')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_electrum_seed_segwit(self, mock_save_db):
|
||||
seed_words = 'bitter grass shiver impose acquire brush forget axis eager alone wine silver'
|
||||
|
@ -123,7 +120,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], 'bc1q3g5tmkmlvxryhh843v4dz026avatc0zzr6h3af')
|
||||
self.assertEqual(w.get_change_addresses()[0], 'bc1qdy94n2q5qcp0kg7v9yzwe6wvfkhnvyzje7nx2p')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_electrum_seed_segwit_passphrase(self, mock_save_db):
|
||||
seed_words = 'bitter grass shiver impose acquire brush forget axis eager alone wine silver'
|
||||
|
@ -143,7 +139,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], 'bc1qx94dutas7ysn2my645cyttujrms5d9p57f6aam')
|
||||
self.assertEqual(w.get_change_addresses()[0], 'bc1qcywwsy87sdp8vz5rfjh3sxdv6rt95kujdqq38g')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_electrum_seed_old(self, mock_save_db):
|
||||
seed_words = 'powerful random nobody notice nothing important anyway look away hidden message over'
|
||||
|
@ -162,7 +157,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], '1FJEEB8ihPMbzs2SkLmr37dHyRFzakqUmo')
|
||||
self.assertEqual(w.get_change_addresses()[0], '1KRW8pH6HFHZh889VDq6fEKvmrsmApwNfe')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_electrum_seed_2fa_legacy(self, mock_save_db):
|
||||
seed_words = 'kiss live scene rude gate step hip quarter bunker oxygen motor glove'
|
||||
|
@ -197,7 +191,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], '35L8XmCDoEBKeaWRjvmZvoZvhp8BXMMMPV')
|
||||
self.assertEqual(w.get_change_addresses()[0], '3PeZEcumRqHSPNN43hd4yskGEBdzXgY8Cy')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_electrum_seed_2fa_segwit(self, mock_save_db):
|
||||
seed_words = 'universe topic remind silver february ranch shine worth innocent cattle enhance wise'
|
||||
|
@ -232,7 +225,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], 'bc1qpmufh0zjp5prfsrk2yskcy82sa26srqkd97j0457andc6m0gh5asw7kqd2')
|
||||
self.assertEqual(w.get_change_addresses()[0], 'bc1qd4q50nft7kxm9yglfnpup9ed2ukj3tkxp793y0zya8dc9m39jcwq308dxz')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_bip39_seed_bip44_standard(self, mock_save_db):
|
||||
seed_words = 'treat dwarf wealth gasp brass outside high rent blood crowd make initial'
|
||||
|
@ -251,7 +243,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], '16j7Dqk3Z9DdTdBtHcCVLaNQy9MTgywUUo')
|
||||
self.assertEqual(w.get_change_addresses()[0], '1GG5bVeWgAp5XW7JLCphse14QaC4qiHyWn')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_bip39_seed_bip44_standard_passphrase(self, mock_save_db):
|
||||
seed_words = 'treat dwarf wealth gasp brass outside high rent blood crowd make initial'
|
||||
|
@ -270,7 +261,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], '1F88g2naBMhDB7pYFttPWGQgryba3hPevM')
|
||||
self.assertEqual(w.get_change_addresses()[0], '1H4QD1rg2zQJ4UjuAVJr5eW1fEM8WMqyxh')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_bip39_seed_bip49_p2sh_segwit(self, mock_save_db):
|
||||
seed_words = 'treat dwarf wealth gasp brass outside high rent blood crowd make initial'
|
||||
|
@ -289,7 +279,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], '35ohQTdNykjkF1Mn9nAVEFjupyAtsPAK1W')
|
||||
self.assertEqual(w.get_change_addresses()[0], '3KaBTcviBLEJajTEMstsA2GWjYoPzPK7Y7')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_bip39_seed_bip84_native_segwit(self, mock_save_db):
|
||||
# test case from bip84
|
||||
|
@ -309,7 +298,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], 'bc1qcr8te4kr609gcawutmrza0j4xv80jy8z306fyu')
|
||||
self.assertEqual(w.get_change_addresses()[0], 'bc1q8c6fshw2dlwun7ekn9qwf37cu2rn755upcp6el')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_electrum_multisig_seed_standard(self, mock_save_db):
|
||||
seed_words = 'blast uniform dragon fiscal ensure vast young utility dinosaur abandon rookie sure'
|
||||
|
@ -332,7 +320,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], '32ji3QkAgXNz6oFoRfakyD3ys1XXiERQYN')
|
||||
self.assertEqual(w.get_change_addresses()[0], '36XWwEHrrVCLnhjK5MrVVGmUHghr9oWTN1')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_electrum_multisig_seed_segwit(self, mock_save_db):
|
||||
seed_words = 'snow nest raise royal more walk demise rotate smooth spirit canyon gun'
|
||||
|
@ -355,7 +342,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], 'bc1qvzezdcv6vs5h45ugkavp896e0nde5c5lg5h0fwe2xyfhnpkxq6gq7pnwlc')
|
||||
self.assertEqual(w.get_change_addresses()[0], 'bc1qxqf840dqswcmu7a8v82fj6ej0msx08flvuy6kngr7axstjcaq6us9hrehd')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_bip39_multisig_seed_bip45_standard(self, mock_save_db):
|
||||
seed_words = 'treat dwarf wealth gasp brass outside high rent blood crowd make initial'
|
||||
|
@ -378,7 +364,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], '3JPTQ2nitVxXBJ1yhMeDwH6q417UifE3bN')
|
||||
self.assertEqual(w.get_change_addresses()[0], '3FGyDuxgUDn2pSZe5xAJH1yUwSdhzDMyEE')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_bip39_multisig_seed_p2sh_segwit(self, mock_save_db):
|
||||
# bip39 seed: pulse mixture jazz invite dune enrich minor weapon mosquito flight fly vapor
|
||||
|
@ -400,7 +385,6 @@ class TestWalletKeystoreAddressIntegrityForMainnet(ElectrumTestCase):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], '35LeC45QgCVeRor1tJD6LiDgPbybBXisns')
|
||||
self.assertEqual(w.get_change_addresses()[0], '39RhtDchc6igmx5tyoimhojFL1ZbQBrXa6')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_bip32_extended_version_bytes(self, mock_save_db):
|
||||
seed_words = 'crouch dumb relax small truck age shine pink invite spatial object tenant'
|
||||
|
@ -488,7 +472,6 @@ class TestWalletKeystoreAddressIntegrityForTestnet(TestCaseForTestnet):
|
|||
self.assertEqual(w.get_receiving_addresses()[0], '2MzsfTfTGomPRne6TkctMmoDj6LwmVkDrMt')
|
||||
self.assertEqual(w.get_change_addresses()[0], '2NFp9w8tbYYP9Ze2xQpeYBJQjx3gbXymHX7')
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_bip32_extended_version_bytes(self, mock_save_db):
|
||||
seed_words = 'crouch dumb relax small truck age shine pink invite spatial object tenant'
|
||||
|
@ -559,7 +542,6 @@ class TestWalletSending(TestCaseForTestnet):
|
|||
ks = keystore.from_seed(seed_words, '', False)
|
||||
return WalletIntegrityHelper.create_standard_wallet(ks, gap_limit=2, config=self.config)
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_between_p2wpkh_and_compressed_p2pkh(self, mock_save_db):
|
||||
wallet1 = self.create_standard_wallet_from_seed('bitter grass shiver impose acquire brush forget axis eager alone wine silver')
|
||||
|
@ -616,7 +598,6 @@ class TestWalletSending(TestCaseForTestnet):
|
|||
self.assertEqual((0, funding_output_value - 250000 - 5000 + 100000, 0), wallet1.get_balance())
|
||||
self.assertEqual((0, 250000 - 5000 - 100000, 0), wallet2.get_balance())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_between_p2sh_2of3_and_uncompressed_p2pkh(self, mock_save_db):
|
||||
wallet1a = WalletIntegrityHelper.create_multisig_wallet(
|
||||
|
@ -697,7 +678,6 @@ class TestWalletSending(TestCaseForTestnet):
|
|||
self.assertEqual((0, funding_output_value - 370000 - 5000 + 100000, 0), wallet1a.get_balance())
|
||||
self.assertEqual((0, 370000 - 5000 - 100000, 0), wallet2.get_balance())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_between_p2wsh_2of3_and_p2wsh_p2sh_2of2(self, mock_save_db):
|
||||
wallet1a = WalletIntegrityHelper.create_multisig_wallet(
|
||||
|
@ -807,7 +787,6 @@ class TestWalletSending(TestCaseForTestnet):
|
|||
self.assertEqual((0, funding_output_value - 165000 - 5000 + 100000, 0), wallet1a.get_balance())
|
||||
self.assertEqual((0, 165000 - 5000 - 100000, 0), wallet2a.get_balance())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_between_p2sh_1of2_and_p2wpkh_p2sh(self, mock_save_db):
|
||||
wallet1a = WalletIntegrityHelper.create_multisig_wallet(
|
||||
|
@ -877,7 +856,6 @@ class TestWalletSending(TestCaseForTestnet):
|
|||
self.assertEqual((0, funding_output_value - 1000000 - 5000 + 300000, 0), wallet1a.get_balance())
|
||||
self.assertEqual((0, 1000000 - 5000 - 300000, 0), wallet2.get_balance())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_rbf(self, mock_save_db):
|
||||
self.maxDiff = None
|
||||
|
@ -958,7 +936,6 @@ class TestWalletSending(TestCaseForTestnet):
|
|||
wallet.receive_tx_callback(tx.txid(), tx, TX_HEIGHT_UNCONFIRMED)
|
||||
self.assertEqual((0, 7484320, 0), wallet.get_balance())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_cpfp_p2pkh(self, mock_save_db):
|
||||
wallet = self.create_standard_wallet_from_seed('fold object utility erase deputy output stadium feed stereo usage modify bean')
|
||||
|
@ -1360,7 +1337,6 @@ class TestWalletSending(TestCaseForTestnet):
|
|||
wallet.receive_tx_callback(tx.txid(), tx, TX_HEIGHT_UNCONFIRMED)
|
||||
self.assertEqual((0, 3_900_000, 0), wallet.get_balance())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_cpfp_p2wpkh(self, mock_save_db):
|
||||
wallet = self.create_standard_wallet_from_seed('frost repair depend effort salon ring foam oak cancel receive save usage')
|
||||
|
@ -1394,7 +1370,6 @@ class TestWalletSending(TestCaseForTestnet):
|
|||
wallet.receive_tx_callback(tx.txid(), tx, TX_HEIGHT_UNCONFIRMED)
|
||||
self.assertEqual((0, funding_output_value - 50000, 0), wallet.get_balance())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
def test_sweep_p2pk(self):
|
||||
|
||||
class NetworkMock:
|
||||
|
@ -1419,7 +1394,6 @@ class TestWalletSending(TestCaseForTestnet):
|
|||
self.assertEqual('7f827fc5256c274fd1094eb7e020c8ded0baf820356f61aa4f14a9093b0ea0ee', tx_copy.txid())
|
||||
self.assertEqual('7f827fc5256c274fd1094eb7e020c8ded0baf820356f61aa4f14a9093b0ea0ee', tx_copy.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_coinjoin_between_two_p2wpkh_electrum_seeds(self, mock_save_db):
|
||||
wallet1 = WalletIntegrityHelper.create_standard_wallet(
|
||||
|
@ -1511,7 +1485,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
super().setUp()
|
||||
self.config = SimpleConfig({'electrum_path': self.electrum_path})
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_old_electrum_seed_online_mpk(self, mock_save_db):
|
||||
wallet_offline = WalletIntegrityHelper.create_standard_wallet(
|
||||
|
@ -1558,7 +1531,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('06032230d0bf6a277bc4f8c39e3311a712e0e614626d0dea7cc9f592abfae5d8', tx.txid())
|
||||
self.assertEqual('06032230d0bf6a277bc4f8c39e3311a712e0e614626d0dea7cc9f592abfae5d8', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_xprv_online_xpub_p2pkh(self, mock_save_db):
|
||||
wallet_offline = WalletIntegrityHelper.create_standard_wallet(
|
||||
|
@ -1604,7 +1576,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('d9c21696eca80321933e7444ca928aaf25eeda81aaa2f4e5c085d4d0a9cf7aa7', tx.txid())
|
||||
self.assertEqual('d9c21696eca80321933e7444ca928aaf25eeda81aaa2f4e5c085d4d0a9cf7aa7', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_xprv_online_xpub_p2wpkh_p2sh(self, mock_save_db):
|
||||
wallet_offline = WalletIntegrityHelper.create_standard_wallet(
|
||||
|
@ -1651,7 +1622,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('3f0d188519237478258ad2bf881643618635d11c2bb95512e830fcf2eda3c522', tx.txid())
|
||||
self.assertEqual('27b78ec072a403b0545258e7a1a8d494e4b6fd48bf77f4251a12160c92207cbc', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_xprv_online_xpub_p2wpkh(self, mock_save_db):
|
||||
wallet_offline = WalletIntegrityHelper.create_standard_wallet(
|
||||
|
@ -1698,7 +1668,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('ee76c0c6da87f0eb5ab4d1ae05d3942512dcd3c4c42518f9d3619e74400cfc1f', tx.txid())
|
||||
self.assertEqual('484e350beaa722a744bb3e2aa38de005baa8526d86536d6143e5814355acf775', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_offline_signing_beyond_gap_limit(self, mock_save_db):
|
||||
wallet_offline = WalletIntegrityHelper.create_standard_wallet(
|
||||
|
@ -1745,7 +1714,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('ee76c0c6da87f0eb5ab4d1ae05d3942512dcd3c4c42518f9d3619e74400cfc1f', tx.txid())
|
||||
self.assertEqual('484e350beaa722a744bb3e2aa38de005baa8526d86536d6143e5814355acf775', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_wif_online_addr_p2pkh(self, mock_save_db): # compressed pubkey
|
||||
wallet_offline = WalletIntegrityHelper.create_imported_wallet(privkeys=True, config=self.config)
|
||||
|
@ -1784,7 +1752,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('e56da664631b8c666c6df38ec80c954c4ac3c4f56f040faf0070e4681e937fc4', tx.txid())
|
||||
self.assertEqual('e56da664631b8c666c6df38ec80c954c4ac3c4f56f040faf0070e4681e937fc4', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_wif_online_addr_p2wpkh_p2sh(self, mock_save_db):
|
||||
wallet_offline = WalletIntegrityHelper.create_imported_wallet(privkeys=True, config=self.config)
|
||||
|
@ -1823,7 +1790,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('7642816d051aa3b333b6564bb6e44fe3a5885bfe7db9860dfbc9973a5c9a6562', tx.txid())
|
||||
self.assertEqual('9bb9949974954613945756c48ca5525cd5cba1b667ccb10c7a53e1ed076a1117', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_wif_online_addr_p2wpkh(self, mock_save_db):
|
||||
wallet_offline = WalletIntegrityHelper.create_imported_wallet(privkeys=True, config=self.config)
|
||||
|
@ -1862,7 +1828,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('f8039bd85279f2b5698f15d47f2e338d067d09af391bd8a19467aa94d03f280c', tx.txid())
|
||||
self.assertEqual('3b7cc3c3352bbb43ddc086487ac696e09f2863c3d9e8636721851b8008a83ffa', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_xprv_online_addr_p2pkh(self, mock_save_db): # compressed pubkey
|
||||
wallet_offline = WalletIntegrityHelper.create_standard_wallet(
|
||||
|
@ -1905,7 +1870,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('e56da664631b8c666c6df38ec80c954c4ac3c4f56f040faf0070e4681e937fc4', tx.txid())
|
||||
self.assertEqual('e56da664631b8c666c6df38ec80c954c4ac3c4f56f040faf0070e4681e937fc4', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_xprv_online_addr_p2wpkh_p2sh(self, mock_save_db):
|
||||
wallet_offline = WalletIntegrityHelper.create_standard_wallet(
|
||||
|
@ -1948,7 +1912,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('7642816d051aa3b333b6564bb6e44fe3a5885bfe7db9860dfbc9973a5c9a6562', tx.txid())
|
||||
self.assertEqual('9bb9949974954613945756c48ca5525cd5cba1b667ccb10c7a53e1ed076a1117', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_xprv_online_addr_p2wpkh(self, mock_save_db):
|
||||
wallet_offline = WalletIntegrityHelper.create_standard_wallet(
|
||||
|
@ -1991,7 +1954,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('f8039bd85279f2b5698f15d47f2e338d067d09af391bd8a19467aa94d03f280c', tx.txid())
|
||||
self.assertEqual('3b7cc3c3352bbb43ddc086487ac696e09f2863c3d9e8636721851b8008a83ffa', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_hd_multisig_online_addr_p2sh(self, mock_save_db):
|
||||
# 2-of-3 legacy p2sh multisig
|
||||
|
@ -2058,7 +2020,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('0e8fdc8257a85ebe7eeab14a53c2c258c61a511f64176b7f8fc016bc2263d307', tx.txid())
|
||||
self.assertEqual('0e8fdc8257a85ebe7eeab14a53c2c258c61a511f64176b7f8fc016bc2263d307', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_hd_multisig_online_addr_p2wsh_p2sh(self, mock_save_db):
|
||||
# 2-of-2 p2sh-embedded segwit multisig
|
||||
|
@ -2129,7 +2090,6 @@ class TestWalletOfflineSigning(TestCaseForTestnet):
|
|||
self.assertEqual('6a58a51591142429203b62b6ddf6b799a6926882efac229998c51bee6c3573eb', tx.txid())
|
||||
self.assertEqual('96d0bca1001778c54e4c3a07929fab5562c5b5a23fd1ca3aa3870cc5df2bf97d', tx.wtxid())
|
||||
|
||||
@needs_test_with_all_ecc_implementations
|
||||
@mock.patch.object(wallet.Abstract_Wallet, 'save_db')
|
||||
def test_sending_offline_hd_multisig_online_addr_p2wsh(self, mock_save_db):
|
||||
# 2-of-3 p2wsh multisig
|
||||
|
|
Loading…
Add table
Reference in a new issue