Attempt to fix console. (#4294)
* Attempt to fix console. * Fixing couple of possible exceptions
This commit is contained in:
parent
afa1edbeee
commit
3125e2d2cc
@ -17,15 +17,19 @@
|
||||
/* eslint-disable */
|
||||
// TODO: Fix linting issues
|
||||
|
||||
if (typeof(window.parity) == 'object')
|
||||
window.api = window.parent.secureApi;
|
||||
window.parity.api.subscribe('eth_blockNumber', function (error, blockNumber) {
|
||||
if (error) {
|
||||
console.log('error', error);
|
||||
return;
|
||||
}
|
||||
refreshWatches();
|
||||
});
|
||||
if (typeof(window.parent.secureApi) == 'object')
|
||||
window.api = window.parent.secureApi;
|
||||
else if (typeof(window.parity) == 'object')
|
||||
window.api = window.parity.api;
|
||||
|
||||
if (typeof(window.api) === 'object')
|
||||
window.api.subscribe('eth_blockNumber', function (error, blockNumber) {
|
||||
if (error) {
|
||||
console.log('error', error);
|
||||
return;
|
||||
}
|
||||
refreshWatches();
|
||||
});
|
||||
|
||||
function escapeHtml(str) {
|
||||
var div = document.createElement('div');
|
||||
@ -56,21 +60,42 @@ function evaluate(x) {
|
||||
}
|
||||
}
|
||||
|
||||
function displayReady(x) {
|
||||
function safeAccess(obj, prop) {
|
||||
try {
|
||||
return obj[prop];
|
||||
} catch (e) {
|
||||
return '[Error] ' + e;
|
||||
}
|
||||
}
|
||||
|
||||
function displayReady(x, visited = []) {
|
||||
visited.push(x);
|
||||
var toString = Object.prototype.toString;
|
||||
if (x === undefined)
|
||||
return '<span class="undefinedType">undefined</span>';
|
||||
if (x === null)
|
||||
return '<span class="undefinedType">null</span>';
|
||||
if (typeof(x) == "string")
|
||||
return `"<span class="${typeof(x)}Type">${escapeHtml(x)}</span>"`;
|
||||
if (Object.prototype.toString.call(x) === '[object Array]')
|
||||
return `[${x.map(displayReady).join(', ')}]`;
|
||||
if (toString.call(x) === '[object Array]')
|
||||
return `[${x.map(el => displayReady(el, visited)).join(', ')}]`;
|
||||
if (typeof(x) == "function")
|
||||
return `<span class="${typeof(x)}Type">function () { /* ... */ }</span>`;
|
||||
if (typeof(x) == "object") {
|
||||
if (x.toString().indexOf('[object ') != 0)
|
||||
return `<span class="${x.constructor.name}Object">${escapeHtml(x.toString())}</span>`;
|
||||
return `<span class="objectType ${x.constructor.name}Object">${x.constructor.name} {${Object.keys(x).map(f => `<span class="fieldType">${escapeHtml(f)}</span>: ${displayReady(x[f])}`).join(', ')}}</span>`;
|
||||
var constructor = x.constructor || Object;
|
||||
var objToString = typeof(x.toString) == "function" ? x.toString : toString;
|
||||
if (objToString.call(x).indexOf('[object ') != 0) {
|
||||
return `<span class="${constructor.name}Object">${escapeHtml(objToString.call(x))}</span>`;
|
||||
}
|
||||
|
||||
return `
|
||||
<span class="objectType ${constructor.name}Object">
|
||||
${constructor.name} {
|
||||
${Object.keys(x).filter(f => visited.indexOf(safeAccess(x, f)) === -1).map(f => `
|
||||
<span class="fieldType">${escapeHtml(f)}</span>: ${displayReady(safeAccess(x, f), visited)}
|
||||
`).join(', ')}
|
||||
}
|
||||
</span>`;
|
||||
}
|
||||
return `<span class="${typeof(x)}Type">${escapeHtml(JSON.stringify(x))}</span>`;
|
||||
}
|
||||
@ -102,7 +127,7 @@ function refreshWatches() {
|
||||
let r = window.watches[n]();
|
||||
let cn = n.replace(/[^a-zA-Z0-9]/, '');
|
||||
let e = document.getElementById(`res_${cn}`);
|
||||
if (typeof(r) == 'object' && r.constructor.name == "Promise")
|
||||
if (typeof(r) == 'object' && r.constructor && r.constructor.name == "Promise")
|
||||
r.then(r => e.innerHTML = displayReady(r));
|
||||
else
|
||||
e.innerHTML = displayReady(r);
|
||||
@ -159,7 +184,7 @@ function exec() {
|
||||
let res;
|
||||
try {
|
||||
res = evaluate(c);
|
||||
if (typeof(res) == 'object' && res !== null && res.constructor.name == "Promise") {
|
||||
if (typeof(res) == 'object' && res !== null && res.constructor && res.constructor.name == "Promise") {
|
||||
let id = window.historyData.length;
|
||||
pushLine('<div class="entry result"><span class="type"><</span><span class="text" id="pending' + id + '">...</span></div>');
|
||||
res.then(r => document.getElementById('pending' + id).innerHTML = displayReady(r));
|
||||
@ -297,14 +322,15 @@ document.getElementById("command").addEventListener("keyup", function(event) {
|
||||
}
|
||||
});
|
||||
|
||||
if (typeof(window.parity) == 'object') {
|
||||
document.getElementById("command").focus();
|
||||
document.getElementById("command").focus();
|
||||
if (typeof(web3) === 'object')
|
||||
window.web3 = web3;
|
||||
window.parity = parity;
|
||||
}
|
||||
refreshWatches();
|
||||
|
||||
["debug", "error", "info", "log", "warn"].forEach(n => { let old = window.console[n]; window.console[n] = x => { old(x); newLog(n, x); }; });
|
||||
["debug", "error", "info", "log", "warn"].forEach(n => {
|
||||
let old = window.console[n].bind(window.console);
|
||||
window.console[n] = x => { old(x); newLog(n, x); };
|
||||
});
|
||||
|
||||
|
||||
|
||||
@ -318,6 +344,7 @@ refreshWatches();
|
||||
///// Home comforts.
|
||||
|
||||
|
||||
if (typeof(web3) === 'object') {
|
||||
// Usage example:
|
||||
// web3.eth.traceCall({
|
||||
// to: theChicken.address,
|
||||
@ -598,5 +625,6 @@ web3.eth.reporter = function(e, r) {
|
||||
var TokenReg = web3.eth.contract([{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"token","outputs":[{"name":"addr","type":"address"},{"name":"tla","type":"string"},{"name":"base","type":"uint256"},{"name":"name","type":"string"},{"name":"owner","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_new","type":"address"}],"name":"setOwner","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_tla","type":"string"},{"name":"_base","type":"uint256"},{"name":"_name","type":"string"}],"name":"register","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"},{"name":"_key","type":"bytes32"}],"name":"meta","outputs":[{"name":"","type":"bytes32"}],"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_tla","type":"string"},{"name":"_base","type":"uint256"},{"name":"_name","type":"string"},{"name":"_owner","type":"address"}],"name":"registerAs","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_tla","type":"string"}],"name":"fromTLA","outputs":[{"name":"id","type":"uint256"},{"name":"addr","type":"address"},{"name":"base","type":"uint256"},{"name":"name","type":"string"},{"name":"owner","type":"address"}],"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[],"name":"drain","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"tokenCount","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"}],"name":"unregister","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"fromAddress","outputs":[{"name":"id","type":"uint256"},{"name":"tla","type":"string"},{"name":"base","type":"uint256"},{"name":"name","type":"string"},{"name":"owner","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_key","type":"bytes32"},{"name":"_value","type":"bytes32"}],"name":"setMeta","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tla","type":"string"},{"indexed":true,"name":"id","type":"uint256"},{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"name","type":"string"}],"name":"Registered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tla","type":"string"},{"indexed":true,"name":"id","type":"uint256"}],"name":"Unregistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"id","type":"uint256"},{"indexed":true,"name":"key","type":"bytes32"},{"indexed":false,"name":"value","type":"bytes32"}],"name":"MetaChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"old","type":"address"},{"indexed":true,"name":"current","type":"address"}],"name":"NewOwner","type":"event"}]);
|
||||
web3.eth.tokenReg = TokenReg.at(web3.eth.registry.lookupAddress('tokenreg', 'A'));
|
||||
}
|
||||
}
|
||||
|
||||
/* eslint-enable */
|
||||
|
Loading…
Reference in New Issue
Block a user