private async void GetBalances(object sender, EventArgs e)
        {
            var addressList = CompanyAddresses.Select(q => q.Address).ToList();

            addressList.AddRange(CustomerAddresses.Select(q => q.Address));

            var usdtBalanceDict = await AddressManager.BatchGetUSDTBalanceViaNode(addressList);

            var balanceDict = new Dictionary <string, Money>();

            await Task.Run(async() =>
            {
                balanceDict = await AddressManager.BatchGetBTCBalanceViaNode(addressList);
            });


            if (balanceDict.Count <= 0 && usdtBalanceDict.Count <= 0)
            {
                return;
            }

            foreach (var addr in CompanyAddresses)
            {
                if (balanceDict.Count > 0)
                {
                    addr.Balance = balanceDict[addr.Address];
                }
                if (usdtBalanceDict.Count > 0)
                {
                    addr.USDTBalance = usdtBalanceDict[addr.Address];
                }
            }
            foreach (var addr in CustomerAddresses)
            {
                if (balanceDict.Count > 0)
                {
                    addr.Balance = balanceDict[addr.Address];
                }
                if (usdtBalanceDict.Count > 0)
                {
                    addr.USDTBalance = usdtBalanceDict[addr.Address];
                }
            }
        }