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