public async void GetAddressNeblUtxo_Valid_Test() { string address = "NPvfpRCmDNcJjCZvDuAB9QsFC32gVThWdh"; double amount = 0.015; GetAddressInfoResponse addressObject = Common.FakeDataGenerator.GetAddressWithNeblUtxos(address, 10, 1000000); var u = addressObject.Utxos.FirstOrDefault(); //ACT var Utxos = await NeblioTransactionHelpers.GetAddressNeblUtxo(address, 0.0001, amount, addressObject, (double)u.Blockheight); //Assert Assert.Equal(2, Utxos.Count); }
public override async Task <string> StartShop() { _ = Task.Run(async() => { // todo cancel while (true) { IsRunning = true; try { if (IsActive) { var mainItem = ShopItems.FirstOrDefault(); if (mainItem != null) { var neblUtxos = await NeblioTransactionHelpers.GetAddressNeblUtxo(Address, 0.0001, 1000000); if (neblUtxos?.Count > 0) { foreach (var u in neblUtxos) { var value = (u.Value / neblio.FromSatToMainRatio); if (value >= (mainItem.Price - 0.0002) && value <= (mainItem.Price + 0.0002)) { // todo load from account which creates the shop var txinfo = await NeblioTransactionHelpers.TransactionInfoAsync(null, TransactionTypes.Neblio, u.Txid); if ((txinfo.From[0] != Address && txinfo.To[0] != Address) && !string.IsNullOrEmpty(txinfo.From[0])) // this is received order from some address { var resp = await processOrder(u, txinfo, mainItem); } } } } } } await Task.Delay(shopRefresh); } catch (Exception ex) { log.Error("Error during refreshing shop", ex); } } }); return(await Task.FromResult("Running!")); }