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)); }
private ViewResult Liar(RedeemModel model, BitcoinAddress address) { ModelState.AddModelError("Signature", "Liar ! you are not " + address); return(View(model)); }