aboutsummaryrefslogtreecommitdiff
path: root/extension
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2015-12-08 11:50:51 +0100
committerFlorian Dold <florian.dold@gmail.com>2015-12-08 11:50:51 +0100
commit833a2cf41d000b335b4d5b8c8b1cb67fa111d27c (patch)
tree2a87aef248cce667f723e0d3fd4df7987b9d10a7 /extension
parentb2b2cd6dfc95cf20e61926376993e31b267dda69 (diff)
downloadwallet-core-833a2cf41d000b335b4d5b8c8b1cb67fa111d27c.tar.xz
Pretty print wallet database.
Diffstat (limited to 'extension')
-rw-r--r--extension/background/wallet.js44
-rw-r--r--extension/pages/show-db.html14
-rw-r--r--extension/pages/show-db.js27
-rw-r--r--extension/style/wallet.css10
4 files changed, 93 insertions, 2 deletions
diff --git a/extension/background/wallet.js b/extension/background/wallet.js
index 6c596899f..18b0a511c 100644
--- a/extension/background/wallet.js
+++ b/extension/background/wallet.js
@@ -58,7 +58,6 @@ function confirmReserve(db, detail, sendResponse) {
let reserveRecord = {
reserve_pub: keypair.pub,
reserve_priv: keypair.priv,
- keypair: keypair,
mint_base_url: detail.mint,
created: now,
last_query: null,
@@ -76,8 +75,10 @@ function confirmReserve(db, detail, sendResponse) {
let tx = db.transaction(['reserves'], 'readwrite');
tx.objectStore('reserves').add(reserveRecord);
tx.addEventListener('complete', (e) => {
- console.log('tx complete');
+ console.log('tx complete, pk was ' + reserveRecord.reserve_pub);
sendResponse(resp);
+ updateReserveMints(db);
+ // We have to update the mints now ...
});
break;
default:
@@ -90,6 +91,42 @@ function confirmReserve(db, detail, sendResponse) {
return true;
}
+
+/**
+ * Fetch information for mints that
+ * are referenced in a reserve and that were not
+ * updated recently.
+ */
+function updateReserveMints(db) {
+
+}
+
+
+function dumpDb(db, detail, sendResponse) {
+ let dump = {};
+ dump.name = db.name;
+ dump.version = db.version;
+ dump.stores = {};
+ console.log("stores: " + JSON.stringify(db.objectStoreNames));
+ let tx = db.transaction(db.objectStoreNames);
+ tx.addEventListener('complete', (e) => {
+ sendResponse(dump);
+ });
+ for (let i = 0; i < db.objectStoreNames.length; i++) {
+ let name = db.objectStoreNames[i];
+ let storeDump = {};
+ dump.stores[name] = storeDump;
+ let store = tx.objectStore(name).openCursor().addEventListener('success', (e) => {
+ let cursor = event.target.result;
+ if (cursor) {
+ storeDump[cursor.key] = cursor.value;
+ cursor.continue();
+ }
+ });
+ }
+ return true;
+}
+
withTalerDb((db) => {
console.log("db loaded");
chrome.runtime.onMessage.addListener(
@@ -100,6 +137,9 @@ withTalerDb((db) => {
case "confirm-reserve":
return confirmReserve(db, req.detail, onresponse)
break;
+ case "dump-db":
+ console.log('dumping db');
+ return dumpDb(db, req.detail, onresponse);
}
});
});
diff --git a/extension/pages/show-db.html b/extension/pages/show-db.html
new file mode 100644
index 000000000..ee54d0e08
--- /dev/null
+++ b/extension/pages/show-db.html
@@ -0,0 +1,14 @@
+
+<!doctype html>
+
+<html>
+ <head>
+ <title>Taler Wallet: Reserve Created</title>
+ <link rel="stylesheet" type="text/css" href="../style/wallet.css">
+ <script src="show-db.js"></script>
+ </head>
+ <body>
+ <h1>DB Dump</h1>
+ <pre id="dump"></pre>
+ </body>
+</html>
diff --git a/extension/pages/show-db.js b/extension/pages/show-db.js
new file mode 100644
index 000000000..e2161f151
--- /dev/null
+++ b/extension/pages/show-db.js
@@ -0,0 +1,27 @@
+function replacer(match, pIndent, pKey, pVal, pEnd) {
+ var key = '<span class=json-key>';
+ var val = '<span class=json-value>';
+ var str = '<span class=json-string>';
+ var r = pIndent || '';
+ if (pKey)
+ r = r + key + pKey.replace(/[": ]/g, '') + '</span>: ';
+ if (pVal)
+ r = r + (pVal[0] == '"' ? str : val) + pVal + '</span>';
+ return r + (pEnd || '');
+}
+
+
+function prettyPrint(obj) {
+ var jsonLine = /^( *)("[\w]+": )?("[^"]*"|[\w.+-]*)?([,[{])?$/mg;
+ return JSON.stringify(obj, null, 3)
+ .replace(/&/g, '&amp;').replace(/\\"/g, '&quot;')
+ .replace(/</g, '&lt;').replace(/>/g, '&gt;')
+ .replace(jsonLine, replacer);
+}
+
+
+document.addEventListener("DOMContentLoaded", (e) => {
+ chrome.runtime.sendMessage({type:'dump-db'}, (resp) => {
+ document.getElementById('dump').innerHTML = prettyPrint(resp);
+ });
+});
diff --git a/extension/style/wallet.css b/extension/style/wallet.css
index ba698296a..487cdd407 100644
--- a/extension/style/wallet.css
+++ b/extension/style/wallet.css
@@ -17,3 +17,13 @@ input.url {
.formish {
}
+
+.json-key {
+ color: brown;
+}
+.json-value {
+ color: navy;
+ }
+.json-string {
+ color: olive;
+}