Ejemplo n.º 1
0
        public ViewResult Redeem(RedeemModel model)
        {
            var address = new BitcoinPubKeyAddress(model.Address);

            model.Challenge = CreateChallenge(address);
            if (model.Signature == "yes")
            {
                ModelState.AddModelError("Signature", "As if I will believe you... Proove it !");
            }
            try
            {
                if (!address.VerifyMessage(model.Challenge, model.Signature))
                {
                    return(Liar(model, address));
                }
            }
            catch
            {
                return(Liar(model, address));
            }

            if (!GetMakers().Makers.Any(m => m.Address.Equals(address)))
            {
                model.Message = "You did not solved challenge 1 !";
                return(View(model));
            }

            model.Message = "Here it is";
            model.Link    = "https://aois.blob.core.windows.net/public/Blockchain Programming in CSharp(PART II).pdf";
            return(View(model));
        }
Ejemplo n.º 2
0
 private ViewResult Liar(RedeemModel model, BitcoinAddress address)
 {
     ModelState.AddModelError("Signature", "Liar ! you are not " + address);
     return(View(model));
 }