Пример #1
0
 this.eth_getFilterChanges(this.price_filter.id, function (filtrate) {
     var data_array, market, marketplus, outcome;
     if (filtrate && filtrate.length) {
         for (var i = 0, len = filtrate.length; i < len; ++i) {
             if (filtrate[i] && filtrate[i].topics && filtrate[i].topics.length > 3) {
                 try {
                     data_array = augur.rpc.unmarshal(filtrate[i].data);
                     if (data_array && data_array.constructor === Array &&
                         data_array.length > 1)
                     {
                         market = abi.bignum(filtrate[i].topics[2]);
                         marketplus = market.plus(abi.constants.MOD);
                         if (marketplus.lt(abi.constants.BYTES_32)) {
                             market = marketplus;
                         }
                         market = abi.hex(market);
                         outcome = abi.string(filtrate[i].topics[3]);
                         onMessage({
                             user: abi.format_address(filtrate[i].topics[1]),
                             marketId: market,
                             outcome: outcome,
                             price: abi.unfix(data_array[0], "string"),
                             cost: abi.unfix(data_array[1], "string"),
                             shares: abi.unfix(data_array[2], "string"),
                             blockNumber: abi.string(filtrate[i].blockNumber)
                         });
                     }
                 } catch (exc) {
                     console.error("updatePrice filter:", exc);
                     console.log(i, filtrate[i]);
                 }
             }
         }
     }
 }); // eth_getFilterChanges
Пример #2
0
 this.eth_getFilterChanges(this.creation_filter.id, function (filtrate) {
     // console.log("creation filtrate:", filtrate);
     var market, marketplus;
     if (filtrate && filtrate.length) {
         for (var i = 0, len = filtrate.length; i < len; ++i) {
             try {
                 if (filtrate[i] && filtrate[i].topics && filtrate[i].topics.length > 1) {
                     market = abi.bignum(filtrate[i].topics[1]);
                     marketplus = market.plus(abi.constants.MOD);
                     if (marketplus.lt(abi.constants.BYTES_32)) {
                         market = marketplus;
                     }
                     onMessage({
                         marketId: abi.hex(market),
                         blockNumber: abi.string(filtrate[i].blockNumber)
                     });
                 }
             } catch (exc) {
                 console.error("creationBlock filter:", exc);
                 console.log(i, filtrate[i]);
             }
         }
     }
 }); // eth_getFilterChanges