コード例 #1
0
    def validateaddress(self, address: str) -> bool:
        "Returns True if the passed address is valid, False otherwise."
        btcpy_constants = self.network_properties.btcpy_constants
        try:
            Address.from_string(btcpy_constants, address)
        except ValueError:
            return False

        return True
コード例 #2
0
    def validateaddress(self, address: str) -> bool:
        "Returns True if the passed address is valid, False otherwise."

        try:
            Address.from_string(address, self.network_properties)
        except InvalidAddress:
            return False

        return True
コード例 #3
0
    def validateaddress(self, address: str) -> bool:
        """Returns True if the passed address is valid, False otherwise. Note
        the limitation that we don't check the address against the underlying
        network (i.e. strict=False). When btcpy can support multiple networks at
        runtime we can be more precise (i.e. strict=True) ;)
        """
        try:
            Address.from_string(address, strict=False)
        except ValueError:
            return False

        return True
コード例 #4
0
ファイル: utils.py プロジェクト: meherett/swap
def get_address_hash(
        address: str,
        script: bool = False) -> Union[str, P2pkhScript, P2shScript]:
    """
    Get Bitcoin address hash.

    :param address: Bitcoin address.
    :type address: str
    :param script: Return script (P2pkhScript, P2shScript), default to False.
    :type script: bool

    :returns: str -- Bitcoin address hash.

    >>> from swap.providers.bitcoin.utils import get_address_hash
    >>> get_address_hash(address="mrmtGq2HMmqAogSsGDjCtXUpxrb7rHThFH", script=False)
    "7b7c4431a43b612a72f8229935c469f1f6903658"
    """

    if not is_address(address=address):
        raise AddressError(f"Invalid Bitcoin '{address}' address.")

    loaded_address = Address.from_string(address)
    get_type = loaded_address.get_type()
    if not script:
        return loaded_address.hash.hex()
    if str(get_type) == "p2pkh":
        return P2pkhScript(loaded_address)
    elif str(get_type) == "p2sh":
        return P2shScript(loaded_address)
コード例 #5
0
ファイル: transactions.py プロジェクト: Skazok/pypeerassets
def p2pkh_script(network: str, address: str) -> P2pkhScript:
    '''create pay-to-key-hash (P2PKH) script'''

    network_params = net_query(network)

    addr = Address.from_string(network=network_params,
                               string=address)

    return P2pkhScript(addr)
コード例 #6
0
ファイル: transactions.py プロジェクト: Skazok/pypeerassets
def p2sh_p2pkh_script(network: str, address: str) -> P2shScript:
    '''p2sh embedding p2pkh'''

    network_params = net_query(network)

    addr = Address.from_string(network=network_params,
                               string=address)

    p2pkh = P2pkhScript(addr)

    return P2shScript(p2pkh)
コード例 #7
0
    def from_address(self, address):
        """
        Initiate Bitcoin wallet from address.

        :param address: Bitcoin wallet private key.
        :type address: str.
        :returns:  Wallet -- Bitcoin wallet instance.

        >>> from shuttle.providers.bitcoin.wallet import Wallet
        >>> wallet = Wallet(network="testnet")
        >>> wallet.from_address("mqLyrNDjpENRMZAoDpspH7kR9RtgvhWzYE")
        <shuttle.providers.bitcoin.wallet.Wallet object at 0x040DA268>
        """
        if not is_address(address=address, network=self.network):
            raise AddressError("invalid %s %s address" %
                               (self.network, address))
        self._address = Address.from_string(address)
        return self
コード例 #8
0
ファイル: utils.py プロジェクト: meherett/swap
def get_address_type(address: str) -> str:
    """
    Get Bitcoin address type.

    :param address: Bitcoin address.
    :type address: str

    :returns: str -- Bitcoin address type (P2PKH, P2SH).

    >>> from swap.providers.bitcoin.utils import get_address_type
    >>> get_address_type(address="mrmtGq2HMmqAogSsGDjCtXUpxrb7rHThFH")
    "p2pkh"
    """

    if not is_address(address=address):
        raise AddressError(f"Invalid Bitcoin '{address}' address.")

    loaded_address = Address.from_string(address)
    address_type = loaded_address.get_type()
    return str(address_type)
コード例 #9
0
    def p2sh(self, address=None):
        """
        Get Bitcoin wallet p2sh.

        :param address: Bitcoin p2sh, default is None.
        :type address: str
        :return: str -- Bitcoin p2sh.

        >>> from shuttle.providers.bitcoin.wallet import Wallet
        >>> wallet = Wallet(network="testnet")
        >>> wallet.from_passphrase("meherett")
        >>> wallet.p2sh()
        "a914a3c4995d9cd0303e5f89ee1433212c797d04ee5d87"
        """
        if address is None:
            return P2shScript(P2pkhScript(self._address)).hexlify()
        if not is_address(address=address, network=self.network):
            raise AddressError("invalid %s %s address" %
                               (self.network, address))
        address = Address.from_string(address)
        return P2shScript(P2pkhScript(address)).hexlify()
コード例 #10
0
    def p2pkh(self, address=None):
        """
        Get Bitcoin wallet p2pkh.

        :param address: Bitcoin p2pkh, default is None.
        :type address: str
        :return: str -- Bitcoin p2pkh.

        >>> from shuttle.providers.bitcoin.wallet import Wallet
        >>> wallet = Wallet(network="testnet")
        >>> wallet.from_passphrase("meherett")
        >>> wallet.p2pkh()
        "76a9143c8acde1c7cf370d970725f13eff03bf74b3fc6188ac"
        """
        if address is None:
            return P2pkhScript(self._address).hexlify()
        if not is_address(address=address, network=self.network):
            raise AddressError("invalid %s %s address" %
                               (self.network, address))
        address = Address.from_string(address)
        return P2pkhScript(address).hexlify()
コード例 #11
0
def p2pkh_script(address: str) -> P2pkhScript:
    '''create pay-to-key-hash (P2PKH) script'''

    addr = Address.from_string(address)

    return P2pkhScript(addr)