def test_encode_check(self): for a, b in self.vectors: self.assertEqual(base58.encode_check(unhexlify(a)), b) for a, b in self.vectors_graphene: self.assertEqual( base58.encode_check(unhexlify(a), digestfunc=digestfunc_graphene), b)
def _public_key_to_wif(pub_key: bytes) -> str: if len(pub_key) == 65: head = 0x03 if pub_key[64] & 0x01 else 0x02 compresed_pub_key = bytes([head]) + pub_key[1:33] elif len(pub_key) == 33: compresed_pub_key = pub_key else: raise wire.DataError("invalid public key length") return "EOS" + base58.encode_check(compresed_pub_key, _ripemd160_32)
def test_valid_address(self): # b58 -> cashaddr for b58, ca in VALID_ADDRESS: data = base58.decode_check(b58) version = data[0] if version == 5: version = 8 enc = cashaddr.encode('bitcoincash', version, data[1:]) self.assertEqual(ca, enc) # cashaddr -> base58 for b58, ca in VALID_ADDRESS: prefix, addr = ca.split(':') version, data = cashaddr.decode(prefix, addr) if version == 8: version = 5 enc = base58.encode_check(bytes([version]) + data) self.assertEqual(b58, enc)
def address_p2sh(redeem_script_hash: bytes, coin: CoinInfo) -> str: s = address_type.tobytes(coin.address_type_p2sh) + redeem_script_hash return base58.encode_check(bytes(s), coin.b58_hash)
def address_pkh(pubkey: bytes, coin: CoinInfo) -> str: s = address_type.tobytes(coin.address_type) + coin.script_hash(pubkey) return base58.encode_check(bytes(s), coin.b58_hash)
def base58_encode_check(payload, prefix=None): result = payload if prefix is not None: result = TEZOS_PREFIX_BYTES[prefix] + payload return base58.encode_check(result)
def address_p2wpkh_in_p2sh(pubkey: bytes, addrtype: int) -> str: s = bytearray(21) s[0] = addrtype s[1:21] = address_p2wpkh_in_p2sh_raw(pubkey) return base58.encode_check(bytes(s))
def _address_base58(address): return base58.encode_check(address)
def _b58b(address): return base58.encode_check(bytes(address))
def address_p2sh(redeem_script_hash: bytes, addrtype: int) -> str: s = addrtype_bytes(addrtype) + redeem_script_hash return base58.encode_check(bytes(s))
def address_pkh(pubkey: bytes, addrtype: int) -> str: s = addrtype_bytes(addrtype) + sha256_ripemd160_digest(pubkey) return base58.encode_check(bytes(s))
def address_pkh(pubkey: bytes, coin: CoinInfo) -> str: s = address_type.tobytes( coin.address_type) + sha256_ripemd160_digest(pubkey) return base58.encode_check(bytes(s), coin.b58_hash)
def base58_encode_check(payload: bytes, prefix: str | None = None) -> str: result = payload if prefix is not None: result = TEZOS_PREFIX_BYTES[prefix] + payload return base58.encode_check(result)