Example #1
0
    def test_b58check(self):
        vectors = [
            ('', '3QJmnh'),
            ('61', 'C2dGTwc'),
            ('626262', '4jF5uERJAK'),
            ('636363', '4mT4krqUYJ'),
            ('73696d706c792061206c6f6e6720737472696e67', 'BXF1HuEUCqeVzZdrKeJjG74rjeXxqJ7dW'),
            ('00eb15231dfceb60925886b67d065299925915aeb172c06647', '13REmUhe2ckUKy1FvM7AMCdtyYq831yxM3QeyEu4'),
            ('516b6fcd0f', '237LSrY9NUUas'),
            ('bf4f89001e670274dd', 'GwDDDeduj1jpykc27e'),
            ('572e4794', 'FamExfqCeza'),
            ('ecac89cad93923c02321', '2W1Yd5Zu6WGyKVtHGMrH'),
            ('10c8511e', '3op3iuGMmhs'),
            ('00000000000000000000', '111111111146Momb')
        ]

        for v in vectors:
            self.assertEqual(
                convert.bytes_to_b58check(convert.hex_to_bytes(v[0])),
                v[1]
            )
            self.assertEqual(
                convert.b58check_to_bytes(v[1]),
                convert.hex_to_bytes(v[0])
            )
Example #2
0
def deserialize_xpub(data):
    dbin = convert.b58check_to_bytes(data)
    assert dbin[0:4] == HD_HEADER_PUBLIC

    return {
        'depth': dbin[4],
        'fingerprint': dbin[5:9],
        'i': convert.bytes_to_int(dbin[9:13]),
        'chaincode': dbin[13:45],
        'pub': ecdsa.deserialize_pub(dbin[45:78])
    }