susyweb
Version:
Sophon JavaScript API, middleware to talk to a sophon node over RPC
108 lines (92 loc) • 2.67 kB
JavaScript
/*
This file is part of susyweb.js.
susyweb.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.
susyweb.js is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MSRCHANTABILITY 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 susyweb.js. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file watches.js
* @authors:
* Marek Kotewicz <marek@sofdev.com>
* @date 2015
*/
var Method = require('../method');
/// @returns an array of objects describing susyweb.sof.filter api methods
var sof = function () {
var newFilterCall = function (args) {
var type = args[0];
switch(type) {
case 'latest':
args.shift();
this.params = 0;
return 'sof_newBlockFilter';
case 'pending':
args.shift();
this.params = 0;
return 'sof_newPendingTransactionFilter';
default:
return 'sof_newFilter';
}
};
var newFilter = new Method({
name: 'newFilter',
call: newFilterCall,
params: 1
});
var uninstallFilter = new Method({
name: 'uninstallFilter',
call: 'sof_uninstallFilter',
params: 1
});
var getLogs = new Method({
name: 'getLogs',
call: 'sof_getFilterLogs',
params: 1
});
var poll = new Method({
name: 'poll',
call: 'sof_getFilterChanges',
params: 1
});
return [
newFilter,
uninstallFilter,
getLogs,
poll
];
};
/// @returns an array of objects describing susyweb.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 = {
sof: sof,
shh: shh
};