Example #1
0
        public async Task <ActionResult <Sp8deTransaction> > Reveal([FromBody] ProtocolTransaction request)
        {
            var original = await transactionStorage.Get(request.DependsOn);

            if (original == null)
            {
                return(NotFound());
            }

            foreach (var item in request.Items)
            {
                if (!cryptoService.VerifySignature(item.ToString(), item.Sign, item.PubKey))
                {
                    return(BadRequest($"Invalid signature for {item.PubKey}"));
                }
            }

            return(await protocolService.AggregatedReveal(request, GetUserInfo(), original));
        }