private static async Task TestCoin(CurrencySymbol symbol, List <string> inputAddresses, int repeatCount = 10)
        {
            var blockchainClientManager = new BlockchainClientManager(new RESTClientFactory());

            for (var i = 0; i < repeatCount; i++)
            {
                var addressDictionary = await blockchainClientManager.GetAddresses(symbol, inputAddresses);

                foreach (var key in addressDictionary.Keys)
                {
                    var outputAddresses = addressDictionary[key].ToList();
                    foreach (var address in outputAddresses)
                    {
                        Assert.AreEqual(inputAddresses.Count, outputAddresses.Count, "The number of addresses returned was not the same as the number of addresses called");

                        for (var x = 0; x < inputAddresses.Count; x++)
                        {
                            Assert.AreEqual(inputAddresses[x].ToLower(), outputAddresses[x].Address.ToLower(), "An inputted address turned out to be different to the outputted address");
                        }

                        Assert.IsTrue(address.IsUnused.HasValue || address.TransactionCount.HasValue, "Can't tell if the address has transactions");

                        Console.WriteLine($"Address: {address.Address} Balance: {address.Balance} Transaction Count: {address.TransactionCount} Is Unused: {address.IsUnused}");
                    }
                }
            }
        }
        public async Task GetEthereumAddresses()
        {
            var addresses = new List <string>
            {
                "0x0E95F8F8ecBd770585766c1CD216C81aA43439a6",
                "0xda4D788FA55CDE88C8dc93Ceb4Ce9EDCf26Ee2A5",
                "0x26769f254f1Ba073cEF6e9E47a7320332a4dA3D8"
                //TODO: Reenable these. They break issue: https://github.com/MelbourneDeveloper/CryptoCurrency.Net/issues/1
                //"0xFBb1b73C4f0BDa4f67dcA266ce6Ef42f520fBB98",
                //"0xfCA70E67b3f93f679992Cd36323eEB5a5370C8e4"
            };

            var addressInformations = (await _BlockchainClientManager.GetAddresses(CurrencySymbol.Ethereum, addresses)).ToList();

            var ethereumResults = addressInformations.FirstOrDefault(a => a.Key.Equals(CurrencySymbol.Ethereum));

            var expected = ethereumResults.Value.Count();

            Assert.AreEqual(expected, addresses.Count, "The number of addresses returned does not match the number requested.");
        }
        //Output: Address: qzl8jth497mtckku404cadsylwanm3rfxsx0g38nwlqzl8jth497mtckku404cadsylwanm3rfxsx0g38nwl Balance: 0
        public async Task GetBitcoinCashAddressesVerbose()
        {
            var blockchainClientManager = new BlockchainClientManager(new RESTClientFactory());
            var addresses = await blockchainClientManager.GetAddresses(CurrencySymbol.BitcoinCash,
                                                                       new List <string> {
                "qzl8jth497mtckku404cadsylwanm3rfxsx0g38nwlqzl8jth497mtckku404cadsylwanm3rfxsx0g38nwl",
                "bitcoincash:qrcuqadqrzp2uztjl9wn5sthepkg22majyxw4gmv6p"
            });

            var address = addresses[CurrencySymbol.BitcoinCash].First();

            Console.WriteLine(
                $"Address: {address.Address} Balance: { address.Balance }"
                );
        }
        private static async Task TestCoin(CurrencySymbol symbol, IReadOnlyCollection <string> addresses2)
        {
            var blockchainClientManager = new BlockchainClientManager(new RESTClientFactory());

            for (var i = 0; i < 10; i++)
            {
                var addressDictionary = await blockchainClientManager.GetAddresses(symbol, addresses2);

                foreach (var key in addressDictionary.Keys)
                {
                    var addresses = addressDictionary[key];
                    foreach (var address in addresses)
                    {
                        Assert.IsTrue(address.IsUnused.HasValue || address.TransactionCount.HasValue, "Can't tell if the address has transactions");
                    }
                }
            }
        }