public void SettingEmptyValuesForDefaultAPICredentials_Should_ThrowException(string key, string secret) { // arrange // act // assert Assert.Throws(typeof(ArgumentException), () => BittrexDefaults.SetDefaultApiCredentials(key, secret)); }
// Assumes use of C# 7.1 public static async Task Main() { BittrexDefaults.SetDefaultApiCredentials("APIKEY", "APISECRET"); BittrexDefaults.SetDefaultLogOutput(Console.Out); BittrexDefaults.SetDefaultLogVerbosity(LogVerbosity.Debug); using (var client = new BittrexClient()) { // public var markets = await client.GetMarketsAsync(); var currencies = await client.GetCurrenciesAsync(); var price = await client.GetTickerAsync("BTC-ETH"); var marketSummary = await client.GetMarketSummaryAsync("BTC-ETH"); var marketSummaries = await client.GetMarketSummariesAsync(); var orderbook = await client.GetOrderBookAsync("BTC-ETH"); var marketHistory = await client.GetMarketHistoryAsync("BTC-ETH"); // private var placedOrder = await client.PlaceOrderAsync(OrderType.Sell, "BTC-NEO", 1, 1); var openOrders = await client.GetOpenOrdersAsync("BTC-NEO"); var orderInfo = await client.GetOrderAsync(placedOrder.Result.Uuid); var canceledOrder = await client.CancelOrderAsync(placedOrder.Result.Uuid); var orderHistory = await client.GetOrderHistoryAsync("BTC-NEO"); var balance = await client.GetBalanceAsync("NEO"); var balances = await client.GetBalancesAsync(); var depositAddress = await client.GetDepositAddressAsync("BTC"); var withdraw = await client.WithdrawAsync("TEST", 1, "TEST", "TEST"); var withdrawHistory = await client.GetWithdrawalHistoryAsync(); var depositHistory = await client.GetDepositHistoryAsync(); } // Websocket var socketClient = new BittrexSocketClient(); var subcribtion = socketClient.SubscribeToMarketDeltaStream("BTC-ETH", summary => { Console.WriteLine($"BTC-ETH: {summary.Last}"); }); Console.ReadLine(); socketClient.UnsubscribeFromStream(subcribtion.Result); }
public BittrexAccount(string coin, decimal tradingFee, decimal bitcoinTransferFee) { BittrexDefaults.SetDefaultApiCredentials("APIKEY", "APISECRET"); this.TradeCoin = new Coin { Token = coin }; this.Bitcoin = new Coin { Token = "BTC", TransferFee = bitcoinTransferFee }; this.TradingFee = tradingFee; }
private async Task OnStarting() { var startupService = Container.Resolve <StartupCheckingService>(); var context = Container.Resolve <CryptoGramBotDbContext>(); await DbInitializer.Initialize(context); var limiterTotal = new RateLimiterPerEndpoint(1, TimeSpan.FromSeconds(1)); var limiterPerEndpoint = new RateLimiterPerEndpoint(1, TimeSpan.FromSeconds(1)); BittrexDefaults.AddDefaultRateLimiter(limiterTotal); BittrexDefaults.AddDefaultRateLimiter(limiterPerEndpoint); startupService.Start(); }
public void SettingDefaults_Should_ImpactNewClients() { // arrange var stringBuilder = new StringBuilder(); BittrexDefaults.SetDefaultApiCredentials("test", "test"); BittrexDefaults.SetDefaultLogOutput(new StringWriter(stringBuilder)); BittrexDefaults.SetDefaultLogVerbosity(LogVerbosity.Debug); var client = PrepareClient(JsonConvert.SerializeObject(new BittrexPrice())); // act Assert.DoesNotThrow(() => client.GetBalances()); // assert Assert.IsFalse(string.IsNullOrEmpty(stringBuilder.ToString())); }
public BittrexAccount(string coin, decimal tradingFee, decimal bitcoinTransferFee, string apiKey, string apiSecret, ILogger <BittrexAccount> logger) { BittrexDefaults.SetDefaultApiCredentials(apiKey, apiSecret); this.TradeCoin = new Coin { Token = coin }; this.Bitcoin = new Coin { Token = "BTC", TransferFee = bitcoinTransferFee }; this.TradingFee = tradingFee; this._logger = logger; }
public static void Setup(TestContext context) { BittrexDefaults.SetDefaultApiCredentials( ConfigurationManager.AppSettings["BittrexApiKey"], ConfigurationManager.AppSettings["BittrexApiSecret"]); }
static BittrexExchange() { BittrexDefaults.SetDefaultApiCredentials(AppSettings.Default.BittrexKey, AppSettings.Default.BittrexSecret); }
private static async Task <int> PlaceOrder( OrderType type, string workingCoin, CommandArgument amountToUseArgument, CommandArgument bidOrAskArgument) { BittrexDefaults.SetDefaultApiCredentials(Program.ApiKey.Value(), Program.ApiSecret.Value()); var client = new BittrexClient(); if (string.IsNullOrEmpty(workingCoin)) { Console.WriteLine($"Speficy a valid Market."); return(-1); } const string referenceCoin = "BTC"; Console.WriteLine("Getting market info ..."); var marketSummary = await client.GetMarketSummaryAsync($"{referenceCoin}-{workingCoin}"); if (!marketSummary.Success) { Console.WriteLine($"{referenceCoin}-{workingCoin} is not a valid Market."); Console.WriteLine(marketSummary.Error.ErrorMessage); return(-1); } var originCoin = type == OrderType.Buy ? referenceCoin : workingCoin; Console.WriteLine($"Getting your wallet balance for {originCoin}..."); var originBalance = await client.GetBalanceAsync(originCoin); if (!originBalance.Success) { Console.WriteLine($"Something happened trying to get your balance for {originCoin}."); Console.WriteLine(originBalance.Error.ErrorMessage); return(-1); } if (0.000009m >= originBalance.Result.Available.GetValueOrDefault(0)) { Console.WriteLine($"The available balance ({originBalance.Result.Available}) is too low."); return(-1); } Console.WriteLine($"Current available balance {originCoin} {originBalance.Result.Available}."); Console.WriteLine("General cheking of arguments ..."); var amountToUse = originBalance.Result.Available.GetValueOrDefault(); var useAll = amountToUseArgument.Value.ToLowerInvariant() == "all"; if (!useAll && (!decimal.TryParse(amountToUseArgument.Value, out amountToUse) || amountToUse <= 0.0m)) { Console.WriteLine($"{workingCoin} {amountToUseArgument.Value} is not a valid quantity."); return(-1); } if (!useAll && amountToUse > originBalance.Result.Available) { Console.WriteLine( $"The amount to use in the origin wallet ({amountToUse:N9}) " + $"is greater than the available ({originBalance.Result.Available})."); return(-1); } Console.WriteLine("Verifying amounts ..."); var useLast = bidOrAskArgument.Value.ToLowerInvariant() == "last"; if ((!decimal.TryParse(bidOrAskArgument.Value, out var bidAmount) || bidAmount <= 0.0m) && !useLast) { Console.WriteLine($"{bidOrAskArgument.Value} is not a valid bid amount."); return(-1); } if (useLast) { bidAmount = marketSummary.Result.Last.GetValueOrDefault(0); } var buyQuantity = amountToUse / bidAmount; buyQuantity /= 100; buyQuantity *= 25; var quantity = type == OrderType.Sell ? amountToUse : Math.Round(amountToUse / bidAmount - buyQuantity, 5, MidpointRounding.ToEven); if (quantity <= 0.000000m) { Console.WriteLine($"The quantity {workingCoin} {amountToUse} is too low to place an order."); return(-1); } Console.WriteLine($"Will {(type == OrderType.Buy ? "buy" : "sell")} {(type == OrderType.Buy ? workingCoin : referenceCoin)} {quantity} " + $"using {originCoin} {amountToUse}. " + $"Rate: {originCoin} {bidAmount}/{workingCoin} 1."); var market = type == OrderType.Sell ? marketSummary.Result.MarketName : $"{workingCoin}-{referenceCoin}"; var newOrderStatus = await client.PlaceOrderAsync(type, marketSummary.Result.MarketName, quantity, bidAmount); if (!newOrderStatus.Success) { Console.WriteLine($"Order can't be placed."); Console.WriteLine(newOrderStatus.Error.ErrorMessage); return(-1); } Console.WriteLine($"Order placed. UUID = {newOrderStatus.Result.Uuid}"); return(0); }
private static void SetBittrexCredentials() { BittrexDefaults.SetDefaultApiCredentials( ConfigurationManager.AppSettings["BittrexApiKey"], ConfigurationManager.AppSettings["BittrexApiSecret"]); }