bitcore-node-zcash/lib/PoolMatch.js

47 lines
1.0 KiB
JavaScript
Raw Normal View History

2014-02-17 10:04:01 -08:00
'use strict';
require('classtool');
function spec(b) {
var fs = require('fs');
var buffertools = require('buffertools');
var db = b.db || JSON.parse( fs.readFileSync(b.poolMatchFile || './poolMatchFile.json'));
var PoolMatch = function() {
var self = this;
self.strings={};
db.forEach(function(pool) {
pool.searchStrings.forEach(function(s) {
if (!self.strings[s]) self.strings[s] = [];
self.strings[s].push(pool);
});
});
Object.keys( self.strings, function(s) {
delete self.strings[s].searchStrings;
});
self.stringsK = Object.keys(self.strings);
self.stringsKl = self.stringsK.length;
};
PoolMatch.prototype.match = function(buffer) {
var self = this;
var match;
var i =0;
while (!match && i < self.stringsKl) {
var k = self.stringsK[i++];
if ( buffertools.indexOf(buffer,self.strings[k]) >= 0 ) {
match = self.strings[k];
}
}
return match;
};
return PoolMatch;
}
module.defineClass(spec);