def test_extract_scriptsig_from_redeem_transaction_blockcypher_no_redeem(
        req_mock, network):
    # minimal version of required json response
    req_mock.return_value = {"txs": [{"hash": "010"}]}
    assert extract_scriptsig_from_redeem_transaction(network,
                                                     'some_address') is None

    if network == 'btc':
        assert extract_scriptsig_from_redeem_transaction(
            network, 'some_address', testnet=True) is None
Beispiel #2
0
    def extract_secret_from_redeem_transaction(
            cls, contract_address: str) -> Optional[str]:

        if cls.is_test_network() and cls.name != 'test-bitcoin':
            raise NotImplementedError

        try:
            scriptsig = extract_scriptsig_from_redeem_transaction(
                network=cls.symbols[0],
                contract_address=contract_address,
                testnet=cls.is_test_network(),
                cryptoid_api_key=os.getenv('CRYPTOID_API_KEY'),
            )
        except NotImplementedError:
            logger.debug('%s: network is not supported', cls.name)
            raise
        except ValueError as e:
            logger.debug(e)
            raise

        try:
            return cls.extract_secret(scriptsig=scriptsig)
        except ValueError as e:
            logger.debug(e)
            raise
def test_extract_scriptsig_from_redeem_transaction_blockcypher(
        req_mock, network):
    # minimal version of required json object
    req_mock.return_value = {
        "txs": [{
            "hash":
            "011",
            "inputs": [{
                "script": "test-sigscript",
                "script_type": "pay-to-script-hash"
            }]
        }, {
            "hash": "010"
        }]
    }
    assert 'test-sigscript' == extract_scriptsig_from_redeem_transaction(
        network, 'some_address')

    if network == 'btc':
        assert 'test-sigscript' == extract_scriptsig_from_redeem_transaction(
            network, 'some_address', testnet=True)
def test_extract_scriptsig_from_redeem_transaction_cryptoid(req_mock, network):
    # minimal versions of required json responses
    response1 = {"txs": [{"hash": "hash1"}, {"hash": "hash2"}]}
    response2 = {
        "vin": [
            {
                "scriptSig": {
                    "hex": "test-sigscript"
                }
            },
        ]
    }
    req_mock.side_effect = [response1, response2]
    assert "test-sigscript" == extract_scriptsig_from_redeem_transaction(
        network, 'some_address', cryptoid_api_key='xxx')
def test_extract_scriptsig_from_redeem_transaction_cryptoid_no_redeem(
        req_mock, network):
    # minimal version of required json response
    req_mock.return_value = {"txs": [{"hash": "hash1"}]}
    assert extract_scriptsig_from_redeem_transaction(
        network, 'some_address', cryptoid_api_key='xxx') is None