Pretty print wallet database.

This commit is contained in:
Florian Dold 2015-12-08 11:50:51 +01:00
parent b2b2cd6dfc
commit 833a2cf41d
4 changed files with 93 additions and 2 deletions

View File

@ -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);
}
});
});

View File

@ -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>

View File

@ -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);
});
});

View File

@ -17,3 +17,13 @@ input.url {
.formish {
}
.json-key {
color: brown;
}
.json-value {
color: navy;
}
.json-string {
color: olive;
}