Ejemplo n.º 1
0
        public async Task <List <AccountInfo> > RefreshAllAccountsInfo()
        {
            var accounts = await GetAccounts();

            var accountsInfo = accounts.Select(x => new AccountInfo()
            {
                Address = x
            }).ToList();

            foreach (var accountInfo in accountsInfo)
            {
                try
                {
                    accountInfo.Eth.Balance = await GetEthBalance(accountInfo.Address);

                    foreach (var token in tokenRegistryService.GetRegisteredTokens())
                    {
                        var accountToken = new AccountToken
                        {
                            Symbol  = token.Symbol,
                            Balance = await GetTokenBalance(token, accountInfo.Address)
                        };

                        accountInfo.AccountTokens.Add(accountToken);
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                }
            }
            return(accountsInfo);
        }
Ejemplo n.º 2
0
        private async Task LoadDataAsync()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;
            var error = false;

            try
            {
                RegisteredAccounts.Clear();
                accountRegistryService.GetRegisteredAccounts().ForEach(x => RegisteredAccounts.Add(x));
                tokenRegistryService.GetRegisteredTokens().ForEach(x => RegisteredTokens.Add(x));
            }
            catch
            {
                error = true;
            }

            if (error)
            {
                var page   = new ContentPage();
                var result = page.DisplayAlert("Error", "Unable to load registered accounts or tokens", "OK");
            }

            IsBusy = false;
        }
        public List <AccountTokenViewModel> Map(List <AccountToken> accountTokens)
        {
            var tokens = new List <Token>();

            tokens.AddRange(tokenRegistryService.GetRegisteredTokens());
            tokens.Add(new EthToken());

            return((from accountToken in accountTokens
                    let token = tokens.FirstOrDefault(x => x.Symbol == accountToken.Symbol)
                                select new AccountTokenViewModel
            {
                Balance = accountToken.Balance, Symbol = accountToken.Symbol, TokenName = token.Name, TokenImgUrl = token.ImgUrl
            }).ToList());
        }
Ejemplo n.º 4
0
        public async Task <List <AccountInfo> > GetAccountsInfo()
        {
            var web3     = GetWeb3();
            var accounts = await GetAccounts();

            var accountsInfo = accounts.Select(x => new AccountInfo()
            {
                Address = x
            }).ToList();

            foreach (var accountInfo in accountsInfo)
            {
                try
                {
                    var weiBalance = await web3.Eth.GetBalance.SendRequestAsync(accountInfo.Address).ConfigureAwait(false);

                    var balance = (decimal)weiBalance.Value / (decimal)Math.Pow(10, 18);
                    accountInfo.Eth.Balance = balance;

                    foreach (var token in tokenRegistryService.GetRegisteredTokens())
                    {
                        var service      = new StandardTokenEIP20.StandardTokenService(web3, token.Address);
                        var accountToken = new AccountToken
                        {
                            Symbol = token.Symbol
                        };
                        var wei = await service.GetBalanceOfAsync <BigInteger>(accountInfo.Address);

                        balance = (decimal)wei / (decimal)Math.Pow(10, token.NumberOfDecimalPlaces);
                        accountToken.Balance = balance;
                        accountInfo.AccountTokens.Add(accountToken);
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                }
            }
            return(accountsInfo);
        }