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}");
                    }
                }
            }
        }
        //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");
                    }
                }
            }
        }