aboutsummaryrefslogtreecommitdiff
path: root/extension/lib/wallet/wxmessaging.ts
diff options
context:
space:
mode:
Diffstat (limited to 'extension/lib/wallet/wxmessaging.ts')
-rw-r--r--extension/lib/wallet/wxmessaging.ts62
1 files changed, 46 insertions, 16 deletions
diff --git a/extension/lib/wallet/wxmessaging.ts b/extension/lib/wallet/wxmessaging.ts
index 123746f4d..de9d5907c 100644
--- a/extension/lib/wallet/wxmessaging.ts
+++ b/extension/lib/wallet/wxmessaging.ts
@@ -36,7 +36,12 @@ import {Badge} from "./wallet";
function makeHandlers(wallet) {
return {
["balances"]: function(db, detail, sendResponse) {
- wallet.getBalances().then(sendResponse);
+ wallet.getBalances()
+ .then(sendResponse)
+ .catch((e) => {
+ console.log("exception during 'balances'");
+ console.error(e.stack);
+ });
return true;
},
["dump-db"]: function(db, detail, sendResponse) {
@@ -72,6 +77,10 @@ function makeHandlers(wallet) {
"pages/reserve-success.html");
}
sendResponse(resp);
+ })
+ .catch((e) => {
+ console.error("exception during 'confirm-reserve'");
+ console.error(e.stack);
});
return true;
},
@@ -81,6 +90,8 @@ function makeHandlers(wallet) {
sendResponse({success: true})
})
.catch((e) => {
+ console.error("exception during 'confirm-pay'");
+ console.error(e.stack);
sendResponse({error: e.message});
});
return true;
@@ -95,10 +106,24 @@ function makeHandlers(wallet) {
});
})
.catch((e) => {
+ console.error("exception during 'execute-payment'");
+ console.error(e.stack);
sendResponse({success: false, error: e.message});
});
// async sendResponse
return true;
+ },
+ ["get-history"]: function(db, detail, sendResponse) {
+ // TODO: limit history length
+ wallet.getHistory()
+ .then((h) => {
+ sendResponse(h);
+ })
+ .catch((e) => {
+ console.error("exception during 'get-history'");
+ console.error(e.stack);
+ });
+ return true;
}
};
}
@@ -117,19 +142,24 @@ class ChromeBadge implements Badge {
export function wxMain() {
chrome.browserAction.setBadgeText({text: ""});
- openTalerDb().then((db) => {
- let http = new BrowserHttpLib();
- let badge = new ChromeBadge();
- let wallet = new Wallet(db, http, badge);
- let handlers = makeHandlers(wallet);
- wallet.updateBadge();
- chrome.runtime.onMessage.addListener(
- function(req, sender, onresponse) {
- if (req.type in handlers) {
- return handlers[req.type](db, req.detail, onresponse);
- }
- console.error(`Request type ${JSON.stringify(req)} unknown, req ${req.type}`);
- return false;
- });
- });
+ openTalerDb()
+ .then((db) => {
+ let http = new BrowserHttpLib();
+ let badge = new ChromeBadge();
+ let wallet = new Wallet(db, http, badge);
+ let handlers = makeHandlers(wallet);
+ wallet.updateBadge();
+ chrome.runtime.onMessage.addListener(
+ function(req, sender, onresponse) {
+ if (req.type in handlers) {
+ return handlers[req.type](db, req.detail, onresponse);
+ }
+ console.error(`Request type ${JSON.stringify(req)} unknown, req ${req.type}`);
+ return false;
+ });
+ })
+ .catch((e) => {
+ console.error("could not open database:");
+ console.error(e.stack);
+ });
} \ No newline at end of file