40 lines
1.9 KiB
Python
40 lines
1.9 KiB
Python
import unittest
|
|
import os, sys
|
|
parentPath = os.path.abspath("..")
|
|
if parentPath not in sys.path:
|
|
sys.path.insert(0, parentPath)
|
|
|
|
from pybtc import *
|
|
|
|
|
|
class BlockDeserializeTests(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
print("\nTesting Block class deserialization:\n")
|
|
|
|
def test_mnemonic_functions(self):
|
|
mnemonic = 'young crime force door joy subject situate hen pen sweet brisk snake nephew sauce ' \
|
|
'point skate life truly hockey scout assault lab impulse boss'
|
|
entropy = "ff46716c20b789aff26b59a27b74716699457f29d650815d2db1e0a0d8f81c88"
|
|
seed = "a870edd6272a4f0962a7595612d96645f683a3378fd9b067340eb11ebef45cb3d28fb64678cadc43969846" \
|
|
"0a3d48bd57b2ae562b6d2b3c9fb5462d21e474191c"
|
|
self.assertEqual(entropy_to_mnemonic(entropy), mnemonic)
|
|
|
|
self.assertEqual(mnemonic_to_entropy(mnemonic), entropy)
|
|
self.assertEqual(mnemonic_to_seed(mnemonic), seed)
|
|
self.assertEqual(create_master_xprivate_key(seed),
|
|
"xprv9s21ZrQH143K2hwbLgL4Rh1Vvk4F44e51kK2gdUWF9UbMXbySexrVp3ekFN2fbAQQpsZeakuk"
|
|
"RBpxr5y2cMwTCi7Fuyv7TYpu5zgDFB4UFE")
|
|
xpriv = "xprv9s21ZrQH143K2hwbLgL4Rh1Vvk4F44e51kK2gdUWF9UbMXbySexrVp3ekFN2fbAQQpsZeakukRBpxr5y2c" \
|
|
"MwTCi7Fuyv7TYpu5zgDFB4UFE"
|
|
xpub = "xpub661MyMwAqRbcFC24Shs4npxEUmtjTXMvNyEdV1t7oV1aEKw7zCH73cN8bWyUWRUNzJ6NyVssfhZziyTUFB6" \
|
|
"J3HQkd9xe9GGzk1rMK81JL4b"
|
|
self.assertEqual(xprivate_to_xpublic_key(xpriv), xpub)
|
|
self.assertEqual(private_from_xprivate_key(xpriv), "L2VnL3zxnNE1jRSemyP7U6PvWuNLvuV5iMJdc2RJGALjZ6HYik7y")
|
|
self.assertEqual(public_from_xpublic_key(xpub),
|
|
private_to_public_key("L2VnL3zxnNE1jRSemyP7U6PvWuNLvuV5iMJdc2RJGALjZ6HYik7y"))
|
|
for i in range(100):
|
|
e = generate_entropy()
|
|
m = entropy_to_mnemonic(e)
|
|
self.assertEqual(e, mnemonic_to_entropy(m))
|