예제 #1
0
 public Task <bool> PromptForSignaturesAsync(IInvoice invoice)
 {
     if (invoice is null)
     {
         throw new ArgumentNullException(nameof(invoice));
     }
     _input = new SigningInput()
     {
         Invoice          = invoice,
         TransactionInHex = Hex.FromBytes(invoice.TxBytes),
         StatusMessage    = "Waiting for signature(s)...",
     };
     _taskCompletionSource = new TaskCompletionSource <bool>();
     StartCountDown();
     StateHasChanged();
     return(_taskCompletionSource.Task);
 }
예제 #2
0
 private void SubmitToNetwork()
 {
     TryParseSignature();
     try
     {
         if (_input.PendingSignatureMap is not null || (string.IsNullOrWhiteSpace(_input.SignatureInHex) && _input.ConfirmedSignatureMap != null))
         {
             if (_input.ConfirmedSignatureMap is not null)
             {
                 foreach (var signature in _input.ConfirmedSignatureMap.SigPair)
                 {
                     AddSignatureToInvoice(signature);
                 }
             }
             if (_input.PendingSignatureMap is not null)
             {
                 foreach (var signature in _input.PendingSignatureMap.SigPair)
                 {
                     AddSignatureToInvoice(signature);
                 }
             }
             _input.CountDownTimer?.Dispose();
             _input.CountDownTimer = null;
             _input = default !;