public Task <TransactionReceipt> NewRoundRequestAndWaitForReceiptAsync(NewRoundFunction newRoundFunction, CancellationTokenSource cancellationToken = null)
 {
     return(ContractHandler.SendRequestAndWaitForReceiptAsync(newRoundFunction, cancellationToken));
 }
Example #2
0
        private static async Task NewRoundTest()
        {
            /*
             *
             * var buyCard = await CsService.BuyScatchCardRequestAndWaitForReceiptAsync(100);
             *
             * var RequestIDEvent = buyCard.DecodeAllEvents<RequestIDEventDTO>();
             *
             * var RequestID = RequestIDEvent[0].Event.RequestId.ToHex();
             *
             * // Catch the prize claim event.
             * var PrizeEventHandler = RService.ContractHandler.GetEvent<PrizeClaimEventDTO>();
             *
             * var filterPrizeEvents = PrizeEventHandler.CreateFilterInput();
             *
             * // Getting the PrizeClaim event with the correct RequestID
             * while (true)
             * {
             *  var allRequestEvents = await PrizeEventHandler.GetAllChanges(filterPrizeEvents);
             *
             *  if (allRequestEvents.Count > 0)
             *  {
             *      bool brk = false;
             *      foreach (EventLog<PrizeClaimEventDTO> e in allRequestEvents)
             *      {
             *          //Console.WriteLine($"Scratch Card result, Address: {e.Event.Player},  RequestID: {e.Event.RequestId.ToHex()},  Prize Number: {e.Event.Number}, Prize: {Web3.Convert.FromWei(e.Event.Prize)}\n");
             *          if (e.Event.RequestId.ToHex().Equals(RequestID))
             *          {
             *              Console.WriteLine($"Scratch Card result, Address: {e.Event.Player},  RequestID: {e.Event.RequestId.ToHex()},  Prize Number: {e.Event.Number}, Prize: {Web3.Convert.FromWei(e.Event.Prize)}\n");
             *              brk = true;
             *          }
             *      }
             *      if (brk)
             *          break;
             *  }
             * }*/

            Console.WriteLine($"Calling newRound function...");

            try
            {
                var gas = await CsService.ContractHandler.EstimateGasAsync <NewRoundFunction>();

                Console.WriteLine($"Gas needed for new round: {gas}");


                var rnd = new NewRoundFunction
                {
                    Gas = (BigInteger)gas
                };
                Console.WriteLine($"Gas given for new round: {rnd.Gas}");

                var newRound = await CsService.NewRoundRequestAndWaitForReceiptAsync(rnd);

                Console.WriteLine($"Success: {newRound.Succeeded()}");

                var round = await CsService.RoundNumberQueryAsync();

                var mint = await CsService.MintAmountQueryAsync();

                mint = await CsService.MintAmountQueryAsync();

                Console.WriteLine($"Mint amount: {mint}, Round: {round}");

                if (newRound.Succeeded())
                {
                    var gasEvent = newRound.DecodeAllEvents <GasLeftEventDTO>();

                    Console.WriteLine($"Emitted gas left: {gasEvent[0].Event.Gas}\n");

                    var events = newRound.DecodeAllEvents <NewRoundEventDTO>();

                    var e = events[0].Event;

                    Console.WriteLine($"current pool liquidity: {e.CurrentPool} \nTotal pool Liquidity: {e.TotalPool} \nNext Prize pool: {e.NextPrizePool} \n Token supply : {e.TokenSupply}" +
                                      $"\nMint Amount: {e.MintAmount}\nRound: {e.RoundNumber}");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
 public Task <string> NewRoundRequestAsync(NewRoundFunction newRoundFunction)
 {
     return(ContractHandler.SendRequestAsync(newRoundFunction));
 }