Guest User

Untitled

a guest
May 22nd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import sys
  4. import binascii
  5. from bitcoin import bin_hash160
  6. from bitcoin import bip32_serialize
  7. from bitcoin import compress
  8.  
  9. def main(parent_pubkey, pubkey, chaincode, depth, index, network):
  10. if (network.lower() == "main"):
  11. network_bytes = b'x04x88xb2x1e'
  12. elif (network.lower() == "test"):
  13. network_bytes = b'x04x35x87xcf'
  14. else:
  15. sys.exit("network must be either main or test")
  16.  
  17. compressed_pubkey_bytes = binascii.unhexlify(compress(pubkey))
  18. fingerprint_bytes = bin_hash160(binascii.unhexlify(compress(parent_pubkey)))[:4]
  19. chaincode_bytes = binascii.unhexlify(chaincode)
  20.  
  21. deserialized = (network_bytes, int(depth), fingerprint_bytes, int(index), chaincode_bytes, compressed_pubkey_bytes)
  22. xpub = bip32_serialize(deserialized)
  23. print(xpub)
  24.  
  25. if __name__ == '__main__':
  26. if (len(sys.argv) < 7):
  27. sys.exit("USAGE: generate_xpub PARENT_PUBLICKEY PUBLICKEY CHAINCODE DEPTH INDEX (MAIN|TEST)")
  28. main(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5], sys.argv[6])
Add Comment
Please, Sign In to add comment