コード例 #1
0
    def test_thread_provider(self):
        p_list_1 = providers.providers_for_config_string(
            "blockchain.info", "BTC")
        p_list_2 = providers.providers_for_config_string(
            "blockexplorer.com", "BTC")
        providers.set_default_providers_for_netcode("BTC", p_list_1)
        self.assertEqual(providers.get_default_providers_for_netcode("BTC"),
                         p_list_1)
        # use a dictionary so it can be mutable in the subthread
        d = {"is_ok": False}

        def subthread():
            providers.set_default_providers_for_netcode("BTC", [])
            self.assertEqual(
                providers.get_default_providers_for_netcode("BTC"), [])
            providers.set_default_providers_for_netcode("BTC", p_list_2)
            self.assertEqual(
                providers.get_default_providers_for_netcode("BTC"), p_list_2)
            d["is_ok"] = True

        t = threading.Thread(target=subthread)
        t.start()
        t.join()
        self.assertTrue(d["is_ok"])
        self.assertEqual(providers.get_default_providers_for_netcode("BTC"),
                         p_list_1)
コード例 #2
0
def init_connectors(conf):
    """
    Initialize broadcasting and payment connectors. This allows fallback and confirmation across different chains
    :param conf:
    :return:
    """

    # configure mainnet providers
    provider_list = providers.providers_for_config_string(PYCOIN_BTC_PROVIDERS, 'BTC')

    blockio_index = -1
    for idx, val in enumerate(provider_list):
        print(idx, val)
        if isinstance(val, BlockrioProvider):
            blockio_index = idx

    if blockio_index > -1:
        provider_list[blockio_index] = BlockrBroadcaster('BTC')
    else:
        provider_list.append(BlockrBroadcaster('BTC'))

    provider_list.append(InsightBroadcaster('https://insight.bitpay.com/', 'BTC'))

    # initialize payment connectors based on config file
    if conf.wallet_connector_type == 'blockchain.info':
        provider_list.append(LocalBlockchainInfoConnector(conf))
    else:
        provider_list.append(BitcoindConnector('BTC'))

    providers.set_default_providers_for_netcode('BTC', provider_list)

    # initialize testnet providers
    testnet_list = []
    testnet_list.append(BitcoindConnector('XTN'))
    providers.set_default_providers_for_netcode('XTN', testnet_list)
コード例 #3
0
 def subthread():
     providers.set_default_providers_for_netcode("BTC", [])
     self.assertEqual(
         providers.get_default_providers_for_netcode("BTC"), [])
     providers.set_default_providers_for_netcode("BTC", p_list_2)
     self.assertEqual(
         providers.get_default_providers_for_netcode("BTC"), p_list_2)
     d["is_ok"] = True
コード例 #4
0
    def _init_connectors(self,
                         netcode,
                         wallet_connector_type,
                         wallet_credentials=None):
        """
        Initialize broadcasting and payment connectors. This allows fallback and confirmation across different chains
        :param wallet_connector_type:
        :return:
        """

        if netcode == 'BTC':
            # configure mainnet providers
            provider_list = providers.providers_for_config_string(
                PYCOIN_BTC_PROVIDERS, 'BTC')

            blockio_index = -1
            for idx, val in enumerate(provider_list):
                print(idx, val)
                if isinstance(val, BlockrioProvider):
                    blockio_index = idx

            if blockio_index > -1:
                provider_list[blockio_index] = BlockrBroadcaster('BTC')
            else:
                provider_list.append(BlockrBroadcaster('BTC'))

            provider_list.append(
                InsightBroadcaster('https://insight.bitpay.com/', 'BTC'))

            # initialize payment connectors based on config file
            if wallet_connector_type == 'blockchain.info':
                provider_list.append(
                    LocalBlockchainInfoConnector(wallet_credentials))
            else:
                provider_list.append(BitcoindConnector('BTC'))

            providers.set_default_providers_for_netcode('BTC', provider_list)

        elif netcode == 'XTN':
            # initialize testnet providers
            testnet_list = []
            testnet_list.append(BitcoindConnector('XTN'))
            providers.set_default_providers_for_netcode('XTN', testnet_list)

        else:
            logging.error('Unrecognized chain %s', netcode)
            raise UnrecognizedChainError('Unrecognized chain ' + netcode)
コード例 #5
0
ファイル: services_test.py プロジェクト: onestarshang/pycoin
    def test_thread_provider(self):
        p_list_1 = providers.providers_for_config_string("blockchain.info", "BTC")
        p_list_2 = providers.providers_for_config_string("blockexplorer.com", "BTC")
        providers.set_default_providers_for_netcode("BTC", p_list_1)
        self.assertEqual(providers.get_default_providers_for_netcode("BTC"), p_list_1)
        # use a dictionary so it can be mutable in the subthread
        l = {"is_ok": False}

        def subthread():
            providers.set_default_providers_for_netcode("BTC", [])
            self.assertEqual(providers.get_default_providers_for_netcode("BTC"), [])
            providers.set_default_providers_for_netcode("BTC", p_list_2)
            self.assertEqual(providers.get_default_providers_for_netcode("BTC"), p_list_2)
            l["is_ok"] = True
        t = threading.Thread(target=subthread)
        t.start()
        t.join()
        self.assertTrue(l["is_ok"])
        self.assertEqual(providers.get_default_providers_for_netcode("BTC"), p_list_1)
コード例 #6
0
def init_connectors(conf):
    """
    Initialize broadcasting and payment connectors. This allows fallback and confirmation across different chains
    :param conf:
    :return:
    """

    # configure mainnet providers
    provider_list = providers.providers_for_config_string(
        PYCOIN_BTC_PROVIDERS, 'BTC')

    blockio_index = -1
    for idx, val in enumerate(provider_list):
        print(idx, val)
        if isinstance(val, BlockrioProvider):
            blockio_index = idx

    if blockio_index > -1:
        provider_list[blockio_index] = BlockrBroadcaster('BTC')
    else:
        provider_list.append(BlockrBroadcaster('BTC'))

    provider_list.append(
        InsightBroadcaster('https://insight.bitpay.com/', 'BTC'))

    # initialize payment connectors based on config file
    if conf.wallet_connector_type == 'blockchain.info':
        provider_list.append(LocalBlockchainInfoConnector(conf))
    else:
        provider_list.append(BitcoindConnector('BTC'))

    providers.set_default_providers_for_netcode('BTC', provider_list)

    # initialize testnet providers
    testnet_list = []
    testnet_list.append(BitcoindConnector('XTN'))
    providers.set_default_providers_for_netcode('XTN', testnet_list)
コード例 #7
0
ファイル: services_test.py プロジェクト: onestarshang/pycoin
 def subthread():
     providers.set_default_providers_for_netcode("BTC", [])
     self.assertEqual(providers.get_default_providers_for_netcode("BTC"), [])
     providers.set_default_providers_for_netcode("BTC", p_list_2)
     self.assertEqual(providers.get_default_providers_for_netcode("BTC"), p_list_2)
     l["is_ok"] = True