public void Run(bool testNet = false) { _logger.Information("------------------------------"); _logger.Information("Starting Marvin..."); _logger.Information("Getting current price..."); var meanPrices = GetMeanPrices(); _logger.Information($"ICXUSD current price: {meanPrices}"); var tx = CreateTransaction(meanPrices); _logger.Information($"Updating Daedric..."); var result = UpdateDaedric(tx); _logger.Information($"Deadric updated tx hash: {result}"); TransactionInfo postResult = null; try { var getTransactionByHash = new GetTransactionByHash(_appsetting.Network_Url); postResult = getTransactionByHash.Invoke(result).Result; _logger.Information($"Transaction info : {postResult.ToString()}"); } catch (Exception ex) { _logger.Information("Error retrieving Transaction info, swallowing error"); } _logger.Information("Completed"); }
public async Task Test_GetTransactionByHashVersion3Tx2() { // Link : https://trackerdev.icon.foundation/transaction/0x5aff7a465532e0262c9ca7d8ea783855675ad5ed1a4aa2e1b40c96291c84dd9c var getTransactionByHash = new GetTransactionByHash(Consts.ApiUrl.TestNet); var result = await getTransactionByHash.Invoke("0x5aff7a465532e0262c9ca7d8ea783855675ad5ed1a4aa2e1b40c96291c84dd9c"); Assert.AreEqual(result.Transaction.Version, "0x3"); Assert.AreEqual(result.Transaction.From, "hxcc345473807f9fa3c4d147433708e85bb106885b"); Assert.AreEqual(result.Transaction.To, "cx0dd9315a1d34f547fca030381c1cd3a803dba22c"); Assert.AreEqual(result.Transaction.StepLimit.Value.ToHex0x(), "0x87000000"); Assert.AreEqual(result.Transaction.Timestamp.Value.ToHex0x(), "0x57c65b3f9adb8"); Assert.AreEqual(result.Transaction.NID.Value.ToHex0x(), "0x2"); Assert.AreEqual(result.Transaction.Value, null); Assert.AreEqual(result.Transaction.Nonce, null); Assert.AreEqual(result.Transaction.DataType, "call"); Assert.AreEqual(result.Transaction.Hash, "0x5aff7a465532e0262c9ca7d8ea783855675ad5ed1a4aa2e1b40c96291c84dd9c"); Assert.AreEqual(result.Transaction.Signature, "v5xCYupHC0fXWV/FWV9TaDT0ykqbFYH9olRxoO/rZN574N97niadjmQIwSpKsufjqhTeYDhCRy0CbSZ22cQA4gA="); Assert.AreEqual(result.TxIndex.ToHex0x(), "0x0"); Assert.AreEqual(result.BlockHash, "0xbcff5484e5faf559401bdcc2d4a2f843e6659a69e22cea23074d75c6119f146e"); Assert.AreEqual(result.BlockHeight.ToHex0x(), "0xa190"); Assert.AreEqual(result.Transaction.Data, new Dictionary <string, object>() { ["method"] = "dispossess_broker_tokens", ["params"] = new Dictionary <string, object>() { ["amount"] = "0xf6b75ab2bc2bfc0" } }); }
public void Run() { _logger.Information("------------------------------"); _logger.Information("Starting Marvin..."); _logger.Information("Getting current price..."); var meanPrices = GetMeanPrices(); _logger.Information($"ICXUSD current price: {meanPrices}"); var tx = CreateTransaction(meanPrices); _logger.Information($"Updating Daedric..."); var result = UpdateDaedric(tx); _logger.Information($"Deadric updated tx hash: {result}"); var getTransactionByHash = new GetTransactionByHash(_appsetting.Network_Url); var postResult = getTransactionByHash.Invoke(result).Result; }
public void Run(bool testNet = false) { _logger.Information("------------------------------"); _logger.Information("Starting Marvin..."); _logger.Information("Getting current price..."); var meanPrices = GetMeanPrices(); _logger.Information($"ICXUSD current price: {meanPrices}"); var tx = CreateTransaction(meanPrices); _logger.Information($"Updating Daedric..."); var result = UpdateDaedric(tx); _logger.Information($"Deadric updated tx hash: {result}"); ExceptionHelper.TryNoException(() => { var getTransactionByHash = new GetTransactionByHash(_appsetting.Network_Url); TransactionInfo postResult = getTransactionByHash.Invoke(result).Result; _logger.Information($"Transaction info : {postResult.ToString()}"); }, _logger); _logger.Information("Completed"); }
public async Task Test_GetTransactionByHashVersion3Tx1() { // Link : https://trackerdev.icon.foundation/transaction/0x1dd7f6ec8f6de0b454c827d7f845fcc8056dd32f0ed1fecb37be860148081263 var getTransactionByHash = new GetTransactionByHash(Consts.ApiUrl.TestNet); var result = await getTransactionByHash.Invoke("0x1dd7f6ec8f6de0b454c827d7f845fcc8056dd32f0ed1fecb37be860148081263"); Assert.AreEqual(result.Transaction.Version, "0x3"); Assert.AreEqual(result.Transaction.From, "hx889fd3476171ccaf650bdba0778ddafe7a5efc3e"); Assert.AreEqual(result.Transaction.To, "hx1589eda4474e6fb213ee0cd68e7768b3ded5bb34"); Assert.AreEqual(result.Transaction.StepLimit.Value.ToHex0x(), "0x186a0"); Assert.AreEqual(result.Transaction.Timestamp.Value.ToHex0x(), "0x57bde4189e6fa"); Assert.AreEqual(result.Transaction.NID.Value.ToHex0x(), "0x2"); Assert.AreEqual(result.Transaction.Value.Value.ToHex0x(), "0x1a5a3afa64f38000"); Assert.AreEqual(result.Transaction.Nonce.Value.ToHex0x(), "0x2"); Assert.AreEqual(result.Transaction.Data, null); Assert.AreEqual(result.Transaction.DataType, null); Assert.AreEqual(result.Transaction.Signature, "rSzwJxRMl0wRTPq98RMKFFaGpJLmb03fcKSEjqozwhV8upGrK31iguB6e9HvnOXnbaTqAnB/ofmvebclxKaa2gA="); Assert.AreEqual(result.Transaction.Hash, "0x1dd7f6ec8f6de0b454c827d7f845fcc8056dd32f0ed1fecb37be860148081263"); Assert.AreEqual(result.TxIndex.ToHex0x(), "0x0"); Assert.AreEqual(result.BlockHash, "0x2213ebbdd4e6ec569ca002f2da1c228f4a6e3e1c2d346c4890bc8c0da454dee3"); Assert.AreEqual(result.BlockHeight.ToHex0x(), "0xa056"); }
public static void SearchTransaction() { Console.WriteLine("Enter the transaction you wish to search for"); var tx = Console.ReadLine(); var getTransactionByHash = new GetTransactionByHash(WalletHelper.TestNetUrl); var result = getTransactionByHash.Invoke(tx).Result; var ticks = Utils.FromEpoch((long)result.Transaction.Timestamp.Value / 1000); Console.WriteLine($"BlockHeight : {result.BlockHeight}"); Console.WriteLine($"Transaction Timestamp : {ticks.ToLocalTime().ToString("yyyy-MM-dd, HH:mm:ss")}"); if (result.Transaction.Value != null) { Console.WriteLine($"Transaction Amount : {Utils.Loop2ICX(result.Transaction.Value.Value)} ICX"); } var json = JsonConvert.SerializeObject(result.Transaction.Data); var data = JsonConvert.DeserializeObject <DataViewer>(json.Replace("params", "param")); Console.WriteLine($"Method name: {data?.method}"); Console.WriteLine($"Value: {data?.param.value}"); }
public static void LoadTransactions(string publicAddress, List <IconTransactionModel> transactionList, long chatId, int numberOfBets) { Console.WriteLine($"{DateTime.Now.ToLocalTime()}: Loading bet history for: {publicAddress} "); // Open the stream using a StreamReader for easy access. var message = ""; var transactionsByAddress = (from tranList in transactionList from dataList in tranList.data where dataList.fromAddr == publicAddress orderby dataList.createDate descending select dataList.txHash).Distinct().ToList().Take(numberOfBets); foreach (var transaction in transactionsByAddress) { var getTransactionByHash = new GetTransactionByHash(Consts.ApiUrl.MainNet); var result = getTransactionByHash.Invoke(transaction).Result; var json = JsonConvert.SerializeObject(result.Transaction.Data); var betModel = JsonConvert.DeserializeObject <BetModel>(json.Replace("params", "param")); var getTransactionResult = GetTransactionResult.Create(Consts.ApiUrl.MainNet); var transactionResult = getTransactionResult(transaction).Result; message += $"Bet Type: {betModel.method}\n"; if (betModel.method.Contains("number")) { message += $"Numbers Placed: {betModel.param.numbers} \n"; } if (betModel.method.Contains("color")) { var color = string.Empty; switch (betModel.param.color) { case 0: color = "Black"; break; case 1: color = "Red"; break; } message += $"Bet Option Placed: {color}\n"; } if (betModel.method.Contains("even_odd")) { var even_odd = string.Empty; switch (betModel.param.even_odd) { case 0: even_odd = "Even"; break; case 1: even_odd = "Odd"; break; } message += $"Bet Option Placed: {even_odd}\n"; } bool win = false; var amountBet = string.Empty; foreach (var log in transactionResult.EventLogs) { var eventTransactionString = JsonConvert.SerializeObject(log); var transactionResultModel = JsonConvert.DeserializeObject <TransactionResultModel>(eventTransactionString); if (transactionResultModel.Indexed[0].Contains("BetPlaced")) { var betAmount = transactionResultModel.Indexed[1]; if (betAmount.StartsWith("0x")) { betAmount = betAmount.Substring(2, betAmount.Length - 2); } BigInteger number = BigInteger.Parse("00" + betAmount, System.Globalization.NumberStyles.AllowHexSpecifier); amountBet = NumericHelper.Loop2ICX(number.ToString()); message += $"Amount placed {amountBet} ICX \n"; } if (transactionResultModel.Indexed[0].Contains("BetResult")) { message += $"Wheel stopped on number: {transactionResultModel.Indexed[2]}\n"; } if (transactionResultModel.Indexed[0].Contains("ICXTransfer")) { var betWinings = transactionResultModel.Indexed[3]; if (betWinings.StartsWith("0x")) { betWinings = betWinings.Substring(2, betWinings.Length - 2); } BigInteger number = BigInteger.Parse("00" + betWinings, System.Globalization.NumberStyles.AllowHexSpecifier); var amountWon = NumericHelper.Loop2ICX(number.ToString()); var winTakeBet = Convert.ToDecimal(amountWon) - Convert.ToDecimal(amountBet); message += $"You won {winTakeBet} ICX \n"; } foreach (var eventData in log.Data) { if (eventData.ToUpper().Contains("WINNINGS")) { win = true; break; } } } if (win) { message += "Bet Result: WIN!\n"; } else { message += "Bet Result: LOST!\n"; } message += "-----------------------------------------\n"; } SendTelegram(message, chatId); }