示例#1
0
        public async Task Sign()
        {
            string pk         = "0x889dbed9450f7a4b68e0732ccb7cd016dab158e6946d16158f2736fda1143ca6";
            string address    = _wallet.AddRawKey(pk);
            string dataToSign = "1e194c68360307cfb715bf17878791ad1ced8da7d2e5f42b691074c577f41eac";

            string expectedSignerData =
                "0xf16dcaa830a3f710e28444df7df85fa927d8a66f789196fc2a3b934c829dbcaa5329be0711daba3b0c85ab23f1adb32c4e88fd8cb42b951d3be40af1bbd92e7400";

            string signedData = await _wallet.Sign(dataToSign, address);

            Assert.That(address, Is.EqualTo("0x082977959d0C5A1bA627720ac753Ec2ADB5Bd7d0".ToLower()));
            Assert.That(signedData, Is.EqualTo(expectedSignerData));
        }
示例#2
0
        public IActionResult Index(FaucetViewModel model)
        {
            try
            {
                model.Clear();

                string userIP = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();
                if (LastFaucetRequest.ContainsKey(userIP) && LastFaucetRequest[userIP].Add(MinRequestTime) > DateTime.Now)
                {//we have error
                    throw new ValidationException(model.ErrorMessage = $"Cannot request money form ip: {userIP} untill {LastFaucetRequest[userIP].Add(MinRequestTime)}");
                }

                var transaction = simpleWallet.Sign(model.ReceiverAddrees, 5 * Token.OneToken);

                var result = MakePost(NodeAddress + "/api/transaction/new", transaction);

                if (result)
                {
                    model.SuccessMessage      = "Money were send to " + model.ReceiverAddrees;
                    LastFaucetRequest[userIP] = DateTime.Now;
                }
                else
                {
                    model.ErrorMessage = "Transaction not send";
                }
            }
            catch (ValidationException ex)
            {
                model.ErrorMessage = ex.Message;
            }
            catch (Exception ex)
            {
                model.ErrorMessage = "Error occured. No money. Sorry";
            }

            model.FaucetBallance = GetBallance();
            return(View(model));
        }