Exemplo n.º 1
0
        public async Task <WalletAddresses> GetAddressesAsync(WalletAddressContext context)
        {
            var api  = ApiProvider.GetApi(context);
            var body = CreatePoloniexBody(PoloniexBodyType.ReturnDepositAddresses);

            var addresses = new WalletAddresses();

            try
            {
                var r = await api.GetDepositAddressesAsync(body).ConfigureAwait(false);

                foreach (var balance in r)
                {
                    if (string.IsNullOrWhiteSpace(balance.Value))
                    {
                        continue;
                    }

                    addresses.Add(new WalletAddress(this, balance.Key.ToAsset(this))
                    {
                        Address = balance.Value
                    });
                }
            }
            catch (Exception e)
            {
                // "Unable to get deposit addresses, please check that your account is verified"
                throw new ApiResponseException(e, this);
            }

            return(addresses);
        }
Exemplo n.º 2
0
        public async Task <WalletAddressesResult> GetAddressesAsync(WalletAddressContext context)
        {
            var api  = ApiProvider.GetApi(context);
            var body = CreatePoloniexBody(PoloniexBodyType.ReturnDepositAddresses);

            var addresses = new WalletAddressesResult();

            var rRaw = await api.GetDepositAddressesAsync(body).ConfigureAwait(false);

            CheckResponseErrors(rRaw);

            var r = rRaw.GetContent();

            foreach (var balance in r)
            {
                if (!string.IsNullOrWhiteSpace(balance.Value))
                {
                    addresses.Add(new WalletAddress(this, balance.Key.ToAsset(this))
                    {
                        Address = balance.Value
                    });
                }
            }

            return(addresses);
        }
Exemplo n.º 3
0
        public async Task <WalletAddresses> GetAddressesAsync(WalletAddressContext context)
        {
            throw new NotImplementedException();

            var api       = ApiProvider.GetApi(context);
            var addresses = new WalletAddresses();

            // TODO: re-implement, incorrect implementation.

            foreach (var assetPair in Pairs)
            {
                var adjustedCode = AdjustAssetCode(assetPair.Asset1.ShortCode);

                var depositAddress = await api.GetUserDepositAddressAsync(adjustedCode).ConfigureAwait(false);

                depositAddress = depositAddress.Trim('\"');

                // BUG: how to convert XBt from Pairs to BTC?
                addresses.Add(new WalletAddress(this, Asset.Btc)
                {
                    Address = depositAddress
                });
            }

            return(addresses);
        }
Exemplo n.º 4
0
        public async Task <WalletAddresses> GetAddressesAsync(WalletAddressContext context)
        {
            var api  = ApiProvider.GetApi(context);
            var accs = await api.GetAccountsAsync().ConfigureAwait(false);

            var addresses = new WalletAddresses();

            var accountIds = accs.data.Select(x => new KeyValuePair <string, string>(x.currency, x.id));

            foreach (var kvp in accountIds)
            {
                var r = await api.GetAddressesAsync(kvp.Value).ConfigureAwait(false);

                foreach (var rAddress in r.data)
                {
                    if (string.IsNullOrWhiteSpace(rAddress.address))
                    {
                        continue;
                    }

                    addresses.Add(new WalletAddress(this, kvp.Key.ToAsset(this))
                    {
                        Address = rAddress.address
                    });
                }
            }

            return(addresses);
        }
Exemplo n.º 5
0
            public void GetDepositAddresses()
            {
                var provider = Networks.I.Providers.OfType <BittrexProvider>().FirstProvider();

                var ctx    = new WalletAddressAssetContext("BTC".ToAsset(provider), UserContext.Current);
                var ctxAll = new WalletAddressContext(UserContext.Current);

                var addresses    = AsyncContext.Run(() => provider.GetAddressesForAssetAsync(ctx));
                var addressesAll = AsyncContext.Run(() => provider.GetAddressesAsync(ctxAll));

                try
                {
                    System.Console.WriteLine("Addresses for 1 asset");
                    foreach (var address in addresses)
                    {
                        System.Console.WriteLine($"{address.Asset} : {address.Address}");
                    }

                    System.Console.WriteLine("Addresses for all assets");
                    foreach (var address in addressesAll)
                    {
                        System.Console.WriteLine($"{address.Asset} : {address.Address}");
                    }
                }
                catch (Exception e)
                {
                    System.Console.WriteLine(e);
                    throw;
                }
            }
Exemplo n.º 6
0
        public override void TestGetAddresses()
        {
            // BUG: EFunding:Too many addresses. Should investigate that.

            var context = new WalletAddressContext(UserContext.Current);

            base.TestGetAddresses(context);
        }
Exemplo n.º 7
0
        public void TestGetAddresses(WalletAddressContext context)
        {
            var p = IsType <IDepositProvider>();

            if (p.Success)
            {
                GetAddresses(p.Provider, context);
            }
        }
Exemplo n.º 8
0
        private void GetAddresses(IDepositProvider provider, WalletAddressContext context)
        {
            if (context == null)
            {
                return;
            }

            var r = AsyncContext.Run(() => provider.GetAddressesAsync(context));

            Assert.IsTrue(r != null);

            Trace.WriteLine("All deposit addresses:");
            foreach (var walletAddress in r)
            {
                Trace.WriteLine($"{walletAddress.Asset}: \"{walletAddress.Address}\"");
            }
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        public async Task <WalletAddresses> GetAddressesAsync(WalletAddressContext context)
        {
            var api = ApiProvider.GetApi(context);

            var r = await api.GetAllBalancesAsync().ConfigureAwait(false);

            CheckResponseErrors(r);

            var addresses = new WalletAddresses();

            foreach (var rBalance in r.result)
            {
                addresses.Add(new WalletAddress(this, rBalance.Currency.ToAsset(this))
                {
                    Address = rBalance.CryptoAddress
                });
            }

            return(addresses);
        }
Exemplo n.º 11
0
            public void GetAllAddressesAsync()
            {
                var provider = Networks.I.Providers.OfType <KrakenProvider>().FirstProvider();

                var ctx = new WalletAddressContext(UserContext.Testing);

                try
                {
                    var addresses = AsyncContext.Run(() => provider.GetAddressesAsync(ctx));

                    foreach (var walletAddress in addresses.WalletAddresses)
                    {
                        System.Console.WriteLine($"{walletAddress.Asset} : {walletAddress.Address}");
                    }
                }
                catch (Exception e)
                {
                    System.Console.WriteLine(e.Message);
                    // throw;
                }
            }
Exemplo n.º 12
0
            public void GetAllDepositAddresses()
            {
                var provider = Networks.I.Providers.OfType <BitMexProvider>().FirstProvider();

                var ctx = new WalletAddressContext(UserContext.Current);

                try
                {
                    var addresses = AsyncContext.Run(() => provider.GetAddressesAsync(ctx));

                    Console.WriteLine("All addresses:");

                    foreach (var address in addresses)
                    {
                        Console.WriteLine($"{address.Asset}: {address.Address}");
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    throw;
                }
            }
Exemplo n.º 13
0
        public async Task <WalletAddressesResult> GetAddressesAsync(WalletAddressContext context)
        {
            var api    = ApiProvider.GetApi(context);
            var assets = await GetAssetPairsAsync(context).ConfigureAwait(false);

            var addresses = new WalletAddressesResult();

            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.WalletAddresses);
            }

            return(addresses);
        }
Exemplo n.º 14
0
        public Task <WalletAddressesResult> GetAddressesAsync(WalletAddressContext context)
        {
            throw new NotImplementedException();

//            var api = ApiProvider.GetApi(context);
//            var addresses = new WalletAddressesResult();
//
//            foreach (var assetPair in Pairs)
//            {
//                var adjustedCode = AdjustAssetCode(assetPair.Asset1.ShortCode);
//
//                var depositAddress = await api.GetUserDepositAddressAsync(adjustedCode).ConfigureAwait(false);
//
//                depositAddress = depositAddress.Trim('\"');
//
//                // BUG: how to convert XBt from Pairs to BTC?
//                addresses.Add(new WalletAddress(this, Asset.Btc)
//                {
//                    Address = depositAddress
//                });
//            }
//
//            return addresses;
        }
Exemplo n.º 15
0
        public override void TestGetAddresses()
        {
            var context = new WalletAddressContext(UserContext.Testing);

            base.PretestGetAddresses(context);
        }
Exemplo n.º 16
0
        public override void TestGetAddresses()
        {
            var context = new WalletAddressContext(UserContext.Current);

            base.TestGetAddresses(context);
        }
Exemplo n.º 17
0
 public Task <WalletAddressesResult> GetAddressesAsync(WalletAddressContext context)
 {
     return(Task.FromResult <WalletAddressesResult>(null));
 }
Exemplo n.º 18
0
 public Task <WalletAddresses> GetAddressesAsync(WalletAddressContext context)
 {
     throw new NotImplementedException();
 }