def test_pairs1(self): wallet_addr = "1EyBEhrriJeghX4iqATQEWDq38Ae8ubBJe" wallet_private = "8tnArBrrp4KHVjv8WA6HiX4ev56WDhqGA16XJCHJzhNH" wallet_key = utils.base256encode(utils.base58decode(wallet_private)).encode('hex') self.assertEqual(keyToAddr(wallet_key), wallet_addr) bitcoin_qt = "5Jhw8B9J9QLaMmcBRfz7x8KkD9gwbNoyBMfWyANqiDwm3FFwgGC" wallet_key = utils.base58CheckDecode(bitcoin_qt).encode('hex') self.assertEqual(keyToAddr(wallet_key), wallet_addr) wallet_key = "754580de93eea21579441b58e0c9b09f54f6005fc71135f5cfac027394b22caa" self.assertEqual(keyToAddr(wallet_key), wallet_addr)
def test_pairs1(self): #blockchain.info wallet_addr = "1EyBEhrriJeghX4iqATQEWDq38Ae8ubBJe" wallet_private = "8tnArBrrp4KHVjv8WA6HiX4ev56WDhqGA16XJCHJzhNH" wallet_key = utils.base256encode(utils.base58decode(wallet_private)).encode('hex') self.assertEqual(keyToAddr(wallet_key), wallet_addr) # can import into multibit bitcoin_qt = "5Jhw8B9J9QLaMmcBRfz7x8KkD9gwbNoyBMfWyANqiDwm3FFwgGC" wallet_key = utils.base58CheckDecode(bitcoin_qt).encode('hex') self.assertEqual(keyToAddr(wallet_key), wallet_addr) wallet_key = "754580de93eea21579441b58e0c9b09f54f6005fc71135f5cfac027394b22caa" self.assertEqual(keyToAddr(wallet_key), wallet_addr)
def get160BitHashFromPublicAddress(publicAddress): # Obtains the Hash of the Public Address leadingOnes = utils.countLeadingChars(publicAddress, '1') addressWithChecksum = utils.base256encode(utils.base58decode(publicAddress)) addressWithLeadingZeros = '\0' * leadingOnes + addressWithChecksum[:-CHECKSUM_BYTE_LENGTH] publicAddress160BitHash = addressWithLeadingZeros[1:].encode("hex") # Parses the Public Address for Checksum providedChecksum = addressWithChecksum[-CHECKSUM_BYTE_LENGTH:].encode("hex") # Calculates the Checksum based on Parsed Address oneSHA256MainAddress = SHA256.new(addressWithLeadingZeros) twoSHA256MainAddress = SHA256.new(oneSHA256MainAddress.digest()).hexdigest() calculatedChecksum = twoSHA256MainAddress[0:CHECKSUM_LENGTH] # Checks to make sure the checksum provided matches the calculated checksum # of the 160bit of the public address assert providedChecksum == calculatedChecksum return publicAddress160BitHash
#net = 'test' #compressed='yes' #wif = "cR7UGQyRRJxnXUm3wLrUNWpi4mrRLB6vUQ797KYQrx5UUvPp473y" #Antonopolous #compressed='yes' #wif = "KyBsPXxTuVD82av65KZkrGrWi5qLMah5SdNq6uftawDbgKa2wv6S" #net = 'main' #compressed='no' #wif = "5JG9hT3beGTJuUAmCQEmNaxAuMacCTfXuw1R3FCXig23RQHMr4K" print('1 - Take a Wallet Import Format string') print(' ', wif) print('2 - Convert it to a byte string using Base58Check encoding') leadingOnes = utils.countLeadingChars(wif, '1') s = utils.base256encode(utils.base58decode(wif)) #print(codecs.decode( s[:-4], 'hex' ).decode()) result = '\0' * leadingOnes + binascii.hexlify(s[:-4]).decode() print(' ', result.upper()) print('3 - Drop the last 4 checksum bytes from the byte string') print(' ', result[:-4].upper()) chk = s[-4:] checksum = hashlib.sha256(hashlib.sha256( result.encode('utf-8')).digest()).hexdigest()[0:8] print('4 - Dropping first byte. This is the private key') private_key = result[1:-4].upper() print(' ', result[1:-4].upper()) private_key = codecs.encode(keyUtils.wifToPrivateKey(wif), 'hex').decode() print(' ', codecs.encode(keyUtils.wifToPrivateKey(wif), 'hex').decode()) print(' ', codecs.encode(keyUtils.wifToPrivateKey(wif), 'hex'))
#net = 'test' #compressed='yes' #wif = "cR7UGQyRRJxnXUm3wLrUNWpi4mrRLB6vUQ797KYQrx5UUvPp473y" #Antonopolous #compressed='yes' #wif = "KyBsPXxTuVD82av65KZkrGrWi5qLMah5SdNq6uftawDbgKa2wv6S" #net = 'main' #compressed='no' #wif = "5JG9hT3beGTJuUAmCQEmNaxAuMacCTfXuw1R3FCXig23RQHMr4K" print('1 - Take a Wallet Import Format string') print(' ',wif) print('2 - Convert it to a byte string using Base58Check encoding') leadingOnes = utils.countLeadingChars(wif, '1') s = utils.base256encode(utils.base58decode(wif)) #print(codecs.decode( s[:-4], 'hex' ).decode()) result = '\0' * leadingOnes + binascii.hexlify( s[:-4] ).decode() print(' ',result.upper()) print('3 - Drop the last 4 checksum bytes from the byte string') print(' ',result[:-4].upper()) chk = s[-4:] checksum = hashlib.sha256(hashlib.sha256(result.encode('utf-8')).digest()).hexdigest()[0:8] print('4 - Dropping first byte. This is the private key') private_key = result[1:-4].upper() print(' ',result[1:-4].upper()) private_key = codecs.encode(keyUtils.wifToPrivateKey(wif),'hex').decode() print(' ',codecs.encode(keyUtils.wifToPrivateKey(wif),'hex').decode()) print(' ',codecs.encode(keyUtils.wifToPrivateKey(wif),'hex'))