webu
Version:
IrChain JavaScript API, middleware to talk to a irchain node over RPC
107 lines (92 loc) • 2.66 kB
JavaScript
/*
This file is part of webu.js.
webu.js is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
webu.js is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with webu.js. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file watches.js
* @authors:
* Marek Kotewicz <marek@ethdev.com>
* @date 2015
*/
var Method = require('../method');
/// @returns an array of objects describing webu.irc.filter api methods
var irc = function() {
var newFilterCall = function(args) {
var type = args[0];
switch (type) {
case 'latest':
args.shift();
this.params = 0;
return 'irc_newBlockFilter';
case 'pending':
args.shift();
this.params = 0;
return 'irc_newPendingTransactionFilter';
default:
return 'irc_newFilter';
}
};
var newFilter = new Method({
name: 'newFilter',
call: newFilterCall,
params: 1,
});
var uninstallFilter = new Method({
name: 'uninstallFilter',
call: 'irc_uninstallFilter',
params: 1,
});
var getLogs = new Method({
name: 'getLogs',
call: 'irc_getFilterLogs',
params: 1,
});
var poll = new Method({
name: 'poll',
call: 'irc_getFilterChanges',
params: 1,
});
return [
newFilter,
uninstallFilter,
getLogs,
poll,
];
};
/// @returns an array of objects describing webu.shh.watch api methods
var shh = function() {
return [
new Method({
name: 'newFilter',
call: 'shh_newMessageFilter',
params: 1,
}),
new Method({
name: 'uninstallFilter',
call: 'shh_deleteMessageFilter',
params: 1,
}),
new Method({
name: 'getLogs',
call: 'shh_getFilterMessages',
params: 1,
}),
new Method({
name: 'poll',
call: 'shh_getFilterMessages',
params: 1,
}),
];
};
module.exports = {
irc: irc,
shh: shh,
};