public async Task <WalletAddresses> GetAddressesAsync(WalletAddressContext context) { var addresses = new WalletAddresses(); var wac = new WalletAddressAssetContext("ETH".ToAsset(this), context.UserContext, context.L); addresses.AddRange(await GetAddressesForAssetAsync(wac).ConfigureAwait(false)); wac.Asset = "BTC".ToAsset(this); addresses.AddRange(await GetAddressesForAssetAsync(wac).ConfigureAwait(false)); wac.Asset = "XRP".ToAsset(this); addresses.AddRange(await GetAddressesForAssetAsync(wac).ConfigureAwait(false)); wac.Asset = "LTC".ToAsset(this); addresses.AddRange(await GetAddressesForAssetAsync(wac).ConfigureAwait(false)); return(addresses); }
public async Task <WalletAddresses> GetAddressesAsync(WalletAddressContext context) { var api = ApiProvider.GetApi(context); var assets = await GetAssetPairsAsync(context).ConfigureAwait(false); var addresses = new WalletAddresses(); foreach (var pair in assets) { var fundingMethod = await GetFundingMethodAsync(context, pair.Asset1).ConfigureAwait(false); if (fundingMethod == null) { throw new NullReferenceException("No funding method is found"); } var localAddresses = await GetAddressesLocalAsync(api, fundingMethod, pair.Asset1).ConfigureAwait(false); addresses.AddRange(localAddresses); } return(addresses); }