pyflo/pybtc/test/mnemonic.py
2018-07-13 00:21:50 +04:00

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))