Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 
 

58 lignes
1.3 KiB

/*
 * Ce module permet d'écouter la blockchain
 * Il maintient un tableau de hooks
 * Il vérifie l'existence d'un nouveau block toutes les 30s
 * Si un nouveau block est détecté, les hooks sont lancés un par un
 */
blockchainListener = function(){
  var _last_block       = null;
  var _last_block_hooks = [];
  
  function _logBlockHash(leblock)
  {
    console.log('Last Block detected : '+leblock.hash);
    return true;
  };
  function _isBlockNew(leblock)
  {
    return ((_last_block == null)||(_last_block.hash != leblock.hash));
  };
  
  function _getLastBlockInfo()
  {
    $.get( "data/getBlockInfo.php", function( data ) {
      if (_last_block_hooks.length > 0)
      {
        if (_isBlockNew(data))
        {           
          _last_block = data;
          _last_block_hooks.forEach(function(trigger) {
            if (trigger instanceof Function)
              trigger(data);
            else
              console.log(trigger);
          });
        } 
      }
    }, "json" );
    setTimeout(_getLastBlockInfo, 30000);
  };
  function _addBlockHook(addBlockHook){
    _last_block_hooks.push(addBlockHook);
  };
  function _init(){
    _last_block_hooks.push(_logBlockHash);
    _getLastBlockInfo();
  };
  return {init: _init, addBlockHook: _addBlockHook};
}();
$(document).ready(function() {
  blockchainListener.init();
});