gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] 02/05: no more wildcard notifications


From: gnunet
Subject: [taler-wallet-core] 02/05: no more wildcard notifications
Date: Mon, 20 Jul 2020 13:02:53 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-core.

commit d331f8b8b66e52a645dedefa7b7c31740dc309dc
Author: Florian Dold <florian.dold@gmail.com>
AuthorDate: Mon Jul 20 16:20:32 2020 +0530

    no more wildcard notifications
---
 src/operations/pay.ts      |  2 +-
 src/operations/reserves.ts |  5 +----
 src/operations/versions.ts |  4 ++--
 src/operations/withdraw.ts |  5 +++--
 src/types/notifications.ts | 31 ++++++++++++++++++++++++++-----
 src/wallet.ts              | 15 +++++++++++++--
 6 files changed, 46 insertions(+), 16 deletions(-)

diff --git a/src/operations/pay.ts b/src/operations/pay.ts
index 7faace46..a1619074 100644
--- a/src/operations/pay.ts
+++ b/src/operations/pay.ts
@@ -1118,7 +1118,7 @@ export async function refuseProposal(
   );
   if (success) {
     ws.notify({
-      type: NotificationType.Wildcard,
+      type: NotificationType.ProposalRefused,
     });
   }
 }
diff --git a/src/operations/reserves.ts b/src/operations/reserves.ts
index 7dd97dec..365d6e22 100644
--- a/src/operations/reserves.ts
+++ b/src/operations/reserves.ts
@@ -336,7 +336,7 @@ async function registerReserveWithBank(
     r.retryInfo = initRetryInfo();
     return r;
   });
-  ws.notify({ type: NotificationType.Wildcard });
+  ws.notify({ type: NotificationType.ReserveRegisteredWithBank });
   return processReserveBankStatus(ws, reservePub);
 }
 
@@ -377,8 +377,6 @@ async function processReserveBankStatusImpl(
     await statusResp.json(),
   );
 
-  ws.notify({ type: NotificationType.Wildcard });
-
   if (status.selection_done) {
     if (reserve.reserveStatus === ReserveRecordStatus.REGISTERING_BANK) {
       await registerReserveWithBank(ws, reservePub);
@@ -420,7 +418,6 @@ async function processReserveBankStatusImpl(
     });
     await incrementReserveRetry(ws, reservePub, undefined);
   }
-  ws.notify({ type: NotificationType.Wildcard });
 }
 
 async function incrementReserveRetry(
diff --git a/src/operations/versions.ts b/src/operations/versions.ts
index cfe6ed49..31c4921c 100644
--- a/src/operations/versions.ts
+++ b/src/operations/versions.ts
@@ -19,14 +19,14 @@
  *
  * Uses libtool's current:revision:age versioning.
  */
-export const WALLET_EXCHANGE_PROTOCOL_VERSION = "7:0:0";
+export const WALLET_EXCHANGE_PROTOCOL_VERSION = "8:0:0";
 
 /**
  * Protocol version spoken with the merchant.
  *
  * Uses libtool's current:revision:age versioning.
  */
-export const WALLET_MERCHANT_PROTOCOL_VERSION = "0:0:0";
+export const WALLET_MERCHANT_PROTOCOL_VERSION = "1:0:0";
 
 /**
  * Cache breaker that is appended to queries such as /keys and /wire
diff --git a/src/operations/withdraw.ts b/src/operations/withdraw.ts
index ff618b89..19b470e8 100644
--- a/src/operations/withdraw.ts
+++ b/src/operations/withdraw.ts
@@ -489,7 +489,6 @@ export async function selectWithdrawalDenoms(
     }
   } while (selectedDenoms.selectedDenoms.length > 0 && !allValid);
 
-
   if (Amounts.cmp(selectedDenoms.totalWithdrawCost, amount) > 0) {
     throw Error("Bug: withdrawal coin selection is wrong");
   }
@@ -515,7 +514,9 @@ async function incrementWithdrawalRetry(
     wsr.lastError = err;
     await tx.put(Stores.withdrawalGroups, wsr);
   });
-  ws.notify({ type: NotificationType.WithdrawOperationError });
+  if (err) {
+    ws.notify({ type: NotificationType.WithdrawOperationError, error: err });
+  }
 }
 
 export async function processWithdrawGroup(
diff --git a/src/types/notifications.ts b/src/types/notifications.ts
index 3cd5be89..644dfdc8 100644
--- a/src/types/notifications.ts
+++ b/src/types/notifications.ts
@@ -55,7 +55,10 @@ export const enum NotificationType {
   PayOperationError = "pay-error",
   WithdrawOperationError = "withdraw-error",
   ReserveOperationError = "reserve-error",
-  Wildcard = "wildcard",
+  InternalError = "internal-error",
+  PendingOperationProcessed = "pending-operation-processed",
+  ProposalRefused = "proposal-refused",
+  ReserveRegisteredWithBank = "reserve-registered-with-bank",
 }
 
 export interface ProposalAcceptedNotification {
@@ -63,6 +66,12 @@ export interface ProposalAcceptedNotification {
   proposalId: string;
 }
 
+export interface InternalErrorNotification {
+  type: NotificationType.InternalError;
+  message: string;
+  exception: any;
+}
+
 export interface CoinWithdrawnNotification {
   type: NotificationType.CoinWithdrawn;
 }
@@ -167,6 +176,7 @@ export interface TipOperationErrorNotification {
 
 export interface WithdrawOperationErrorNotification {
   type: NotificationType.WithdrawOperationError;
+  error: OperationError,
 }
 
 export interface RecoupOperationErrorNotification {
@@ -182,8 +192,16 @@ export interface ReserveCreatedNotification {
   type: NotificationType.ReserveCreated;
 }
 
-export interface WildcardNotification {
-  type: NotificationType.Wildcard;
+export interface PendingOperationProcessedNotification {
+  type: NotificationType.PendingOperationProcessed;
+}
+
+export interface ProposalRefusedNotification {
+  type: NotificationType.ProposalRefused;
+}
+
+export interface ReserveRegisteredWithBankNotification {
+  type: NotificationType.ReserveRegisteredWithBank;
 }
 
 export type WalletNotification =
@@ -215,5 +233,8 @@ export type WalletNotification =
   | RefundQueriedNotification
   | WithdrawalGroupCreatedNotification
   | CoinWithdrawnNotification
-  | WildcardNotification
-  | RecoupOperationErrorNotification;
+  | RecoupOperationErrorNotification
+  | InternalErrorNotification
+  | PendingOperationProcessedNotification
+  | ProposalRefusedNotification
+  | ReserveRegisteredWithBankNotification;
\ No newline at end of file
diff --git a/src/wallet.ts b/src/wallet.ts
index 5412a0fd..9df27989 100644
--- a/src/wallet.ts
+++ b/src/wallet.ts
@@ -364,9 +364,20 @@ export class Wallet {
           try {
             await this.processOnePendingOperation(p);
           } catch (e) {
-            console.error(e);
+            if (e instanceof OperationFailedAndReportedError) {
+              logger.warn("operation processed resulted in reported error");
+            } else {
+              console.error("Uncaught exception", e);
+              this.ws.notify({
+                type: NotificationType.InternalError,
+                message: "uncaught exception",
+                exception: e,
+               });
+            }
           }
-          this.ws.notify({ type: NotificationType.Wildcard });
+          this.ws.notify({
+            type: NotificationType.PendingOperationProcessed,
+           });
         }
       }
     }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]