private void RemoveItem_Click(object sender, RoutedEventArgs e) { SignedItem item = (sender as Button)?.DataContext as SignedItem; Items.Remove(item); NotifyChange("SignEnable"); }
private InternalTransaction MapToInternalTransaction(SignedItem item) { return(new InternalTransaction() { Type = MapUserType(item.Type), From = item.PubKey, Nonce = item.Nonce, Sign = item.Sign, Data = item.Seed }); }
public async Task <RevealItem> Reveal(SignedItem item) { var revealItem = await storage.Get <RevealItem>(item.Sign); if (!cryptoService.VerifySignature(revealItem.ToString(), revealItem.Sign, revealItem.PubKey)) { throw new ArgumentException("Invalid signature"); } ; return(revealItem); }
public async Task <Sp8deTransaction> AggregatedReveal(ProtocolTransaction request, UserInfo userInfo, Sp8deTransaction original) { var createRequest = new CreateTransactionRequest() { Type = Sp8deTransactionType.AggregatedReveal, DependsOn = request.DependsOn }; var rtx = original.InternalTransactions.First(x => x.Type == Sp8deTransactionType.InternalValidator); createRequest.InnerTransactions = request.Items.Select(x => MapToInternalTransaction(x)).ToList(); var validatorCommit = new SignedItem() { Type = UserType.Validator, PubKey = rtx.From, Nonce = rtx.Nonce, Sign = rtx.Sign }; var reveal = await contributorService.Reveal(validatorCommit); createRequest.InnerTransactions.Add(new InternalTransaction() { Type = MapUserType(reveal.Type), From = reveal.PubKey, Nonce = reveal.Nonce, Sign = reveal.Sign, Data = reveal.Seed }); createRequest.AddOriginalRandomSettings(original.InputData?.Items); createRequest.AddExtended(request.Extended); var result = await transactionNode.AddTransaction(createRequest); await ProcessFee(userInfo); return(result); }