diff --git a/index.php b/index.php index a3663c8..dc3c932 100644 --- a/index.php +++ b/index.php @@ -23,6 +23,9 @@ @@ -102,8 +108,13 @@
-
A BTC blockchain explorer
Scroll down to see the previous blocks
- +
+ +
Scroll down to see the previous blocks
+
diff --git a/js/blockexplorer.js b/js/blockexplorer.js index 255a327..43bd32c 100644 --- a/js/blockexplorer.js +++ b/js/blockexplorer.js @@ -17,8 +17,8 @@ blockchainExplorer = function(){ function _getblockNameFromHash(hash) { var retour = ''; - if (_liste_blocks != null) - _liste_blocks.forEach(function(item){ + if (_known_blocks != null) + _known_blocks.forEach(function(item){ if (hash == item.hash) retour = item.name; }); return retour; @@ -27,9 +27,10 @@ blockchainExplorer = function(){ function _getblocHashFromName(name) { var retour = ''; - _liste_blocks.forEach(function(item){ - if (name == item.name) retour = item.hash; - }); + if (_known_blocks != null) + _known_blocks.forEach(function(item){ + if (name == item.name) retour = item.hash; + }); return retour; } @@ -37,14 +38,21 @@ blockchainExplorer = function(){ { var contenu = ''; var downloadingImage = new Image(); + var div_label = block.height; _cur_class = 1 - _cur_class; blockName = _getblockNameFromHash(block.hash); - if (blockName != '') blockName = ' ( '+blockName+' )'; - + // if (blockName != '') blockName = ' ( '+blockName+' )'; + + if (_mode > 1) + if (block.hash == _liste_blocks['TOP']) + { + div_label = 'LAST'; + if (blockName == '') blockName = 'LAST'; + } contenu += '
'; - if (_mode != 0) + if ((_mode % 2) != 0) { contenu += '
'; // contenu += '

block '+block.height+blockName+'

'; @@ -52,20 +60,21 @@ blockchainExplorer = function(){ contenu += ' '; //contenu += ' '; //contenu += ' '; + if (_mode == 3 ) contenu += ' '; contenu += ' '; contenu += ' '; contenu += ' '; contenu += ' '; contenu += ' '; contenu += ' '; - contenu += ' '; + if (_mode != 3 ) contenu += ' '; contenu += ' '; contenu += '
hash'+block.hash+'
index'+block.block_index+'
name'+blockName+'
height'+block.height+'
timestamp'+block.time+'
nonce'+block.nonce+'
nb tx'+block.n_tx+'
outputs'+_precisionRound(block.topisto_outputs).toFixed(4)+'
inputs'+_precisionRound(block.topisto_inputs).toFixed(4)+'
fees'+_precisionRound(block.topisto_fees).toFixed(4)+'
fees'+_precisionRound(block.topisto_fees).toFixed(4)+'
reward'+_precisionRound(block.topisto_reward).toFixed(4)+'
'; contenu += '
'; } contenu += '
'; - $('#info_'+block.height).html(contenu); + $('#info_'+div_label).html(contenu); contenu = ''; contenu += '
' - $('#info_'+block.height).append(contenu); + $('#info_'+div_label).append(contenu); downloadingImage.onload = function(){ @@ -95,7 +104,7 @@ blockchainExplorer = function(){ div0.style.backgroundRepeat = "no-repeat"; div0.style.backgroundPosition = "center"; div0.style.backgroundSize = "auto 100%"; - if (_mode==1) div0.style.opacity=0.3; + if ((_mode %2) == 1) div0.style.opacity=0.3; flag_nav = true; @@ -211,7 +220,7 @@ blockchainExplorer = function(){ _liste_blocks['BLOCK_'+data.height] = data.hash; // Ajouter un div - _addDivForBlock(data.height,true); + if (_mode < 2) _addDivForBlock(data.height,true); // Mettre les infos dans le div _addInfoForBlock(data); @@ -226,18 +235,32 @@ blockchainExplorer = function(){ block_hash = '?block_hash='+_liste_blocks['BOTTOM']; $.getJSON('data/getBlockInfo.php'+block_hash, function( data ) { - _liste_blocks['BOTTOM'] = data.prev; - _liste_blocks['BLOCK_'+data.height] = data.hash; - _liste_blocks['LENGTH'] += 1; - - // Ajouter un div - _addDivForBlock(data.height, false); + // Ajouter un div + _addDivForBlock(data.height, false); - // Mettre les infos dans le div - _addInfoForBlock(data); + // Mettre les infos dans le div + _addInfoForBlock(data); - // Récursivité pour précharger par paquets - if (_liste_blocks['LENGTH'] % 10) _addBottomBlock(); + _liste_blocks['BLOCK_'+data.height] = data.hash; + _liste_blocks['LENGTH'] += 1; + + switch(_mode) + { + case 0: + case 1: + // Récursivité pour précharger par paquets + if (data.height > 0) + _liste_blocks['BOTTOM'] = data.prev; + break; + case 2: + case 3: + if (data.height > 0) + _liste_blocks['BOTTOM'] = _known_blocks[_liste_blocks['LENGTH']-1].hash; + break; + } + + if (_liste_blocks['LENGTH'] % 10) _addBottomBlock(); + }); } @@ -245,18 +268,35 @@ blockchainExplorer = function(){ { var block_hash = ''; + _liste_blocks = []; + _liste_blocks['LENGTH'] = 0; + $(document).scrollTop( $("#explorer").offset().top ); $('#blockchain').html(''); if (block_name != 'LAST') block_hash = '?block_hash='+_getblocHashFromName(block_name); $.getJSON('data/getBlockInfo.php'+block_hash, function( data ) { - _liste_blocks['BOTTOM'] = data.prev; _liste_blocks['TOP'] = data.hash; _liste_blocks['BLOCK_'+data.height] = data.hash; _liste_blocks['LENGTH'] += 1; - _addDivForBlock(data.height); + div_label = data.height; + switch(_mode) + { + case 0: + case 1: + // Récursivité pour précharger par paquets + _liste_blocks['BOTTOM'] = data.prev; + break; + case 2: + case 3: + div_label = 'LAST'; + _liste_blocks['BOTTOM'] = _known_blocks[0].hash; + break; + } + + _addDivForBlock(div_label); _addInfoForBlock(data); blockchainListener.addBlockHook(_addTopBlock); @@ -288,8 +328,6 @@ blockchainExplorer = function(){ if (_known_blocks == null) { $.getJSON('data/getKnownBlocksList.php', function( data ) { - _liste_blocks = []; - _liste_blocks['LENGTH'] = 0; _known_blocks = data; _known_blocks.sort(function(a,b){