rue-mist-interface
Version:
Mist interface application
70 lines (52 loc) • 1.71 kB
JavaScript
/**
Template Controllers
@module Templates
*/
/**
The networkIndicator template
@class [template] elements_networkIndicator
@constructor
*/
/**
Check network type.
@method checkNetworkType
*/
var checkNetworkType = function (template) {
console.trace('Check network type...');
try {
web3.eth.getBlock(0, function (e, res) {
console.trace('Get block 0', e, res);
if (e) {
console.error('Got error fetching block 0', e);
} else {
TemplateVar.set(template, 'network', Helpers.detectNetwork(res.hash).type);
TemplateVar.set(template, 'networkName', Helpers.detectNetwork(res.hash).name);
}
});
} catch (err) {
console.error('Unable to get block 0', err);
}
};
Template['elements_networkIndicator'].onRendered(function () {
var template = this;
TemplateVar.set(template, 'network', 'unknown');
checkNetworkType(template);
ipc.on('uiAction_nodeStatus', function (e, status) {
console.trace('Node status', status);
switch (status) {
case 'starting':
case 'stopping':
case 'connected':
console.debug('Node status changing, reset network type indicator');
TemplateVar.set(template, 'network', 'unknown');
break;
}
});
ipc.on('uiAction_nodeSyncStatus', function (e, status, data) {
console.trace('Node sync status', status);
if ('inProgress' === status && TemplateVar.get(template, 'network') === 'unknown') {
console.debug('Node syncing, re-check network type.');
checkNetworkType(template);
}
});
});