def h160_to_p2sh_address(h160, testnet=False):
    """
    20바이트의 hash160 해시값을 p2sh 주소로 변환
    :param h160: 리딤 스크립트의 해시값
    :param testnet: 테스트넷 여부
    :return: p2sh 주소
    """
    # 테스트넷의 경우
    if testnet:
        prefix = b"\xc4"
    # 메인넷의 경우
    else:
        prefix = b"\x05"

    return encode_base58_checksum(prefix + h160)
Exemple #2
0
    def address(self, compressed=True, testnet=False):
        """
        공개키인 객체에 대해서 비트코인 주소 생성
        :param compressed: SEC 압축 여부
        :param testnet: 테스트넷 여부
        :return: 비트코인 주소
        """
        h160 = self.hash160(compressed)

        # 테스트넷의 경우
        if testnet:
            prefix = b"\x6f"
        # 메인넷의 경우
        else:
            prefix = b"\x00"

        return encode_base58_checksum(prefix + h160)
Exemple #3
0
    def wif(self, public_compressed=True, testnet=False):
        # 비밀키를 32바이트 빅엔디언으로 표현
        secret_bytes = self.secret.to_bytes(32, "big")

        # 테스트넷의 경우
        if testnet:
            prefix = b"\xef"
        # 메인넷의 경우
        else:
            prefix = b"\x80"

        # 공개키 압축 여부에 대한 추가 바이트 설정
        if public_compressed:
            compressed_bytes = b"\x01"
        else:
            compressed_bytes = b""

        return encode_base58_checksum(prefix + secret_bytes + compressed_bytes)
def example1():
    h160 = bytes.fromhex('74d691da1574e6b3c192ecfb52cc8984ee7b6c56')
    print(encode_base58_checksum(b"\x05" + h160))