web3.js/lib/web3/watches.js

115 lines
2.6 KiB
JavaScript
Raw Normal View History

2015-02-05 22:37:30 +00:00
/*
This file is part of ethereum.js.
ethereum.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.
ethereum.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 ethereum.js. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file watches.js
* @authors:
* Marek Kotewicz <marek@ethdev.com>
* @date 2015
*/
2015-03-22 17:12:52 +00:00
var Method = require('./method');
/// @returns an array of objects describing web3.eth.filter api methods
2015-02-05 22:37:30 +00:00
var eth = function () {
2015-03-22 17:12:52 +00:00
var newFilterCall = function (args) {
2015-05-07 10:45:36 +00:00
var type = args[0];
switch(type) {
case 'latest':
2015-06-05 08:46:49 +00:00
args.shift();
2015-05-07 10:45:36 +00:00
this.params = 0;
return 'eth_newBlockFilter';
case 'pending':
2015-06-05 08:46:49 +00:00
args.shift();
2015-05-07 10:45:36 +00:00
this.params = 0;
return 'eth_newPendingTransactionFilter';
default:
return 'eth_newFilter';
}
2015-02-05 22:37:30 +00:00
};
2015-03-22 17:12:52 +00:00
var newFilter = new Method({
name: 'newFilter',
call: newFilterCall,
params: 1
});
var uninstallFilter = new Method({
name: 'uninstallFilter',
call: 'eth_uninstallFilter',
params: 1
});
var getLogs = new Method({
name: 'getLogs',
call: 'eth_getFilterLogs',
params: 1
});
2015-03-26 14:43:35 +00:00
var poll = new Method({
name: 'poll',
call: 'eth_getFilterChanges',
params: 1
});
2015-02-05 22:37:30 +00:00
return [
2015-03-22 17:12:52 +00:00
newFilter,
uninstallFilter,
2015-03-26 14:43:35 +00:00
getLogs,
poll
2015-02-05 22:37:30 +00:00
];
};
/// @returns an array of objects describing web3.shh.watch api methods
var shh = function () {
2015-03-22 17:12:52 +00:00
var newFilter = new Method({
name: 'newFilter',
call: 'shh_newFilter',
params: 1
});
var uninstallFilter = new Method({
name: 'uninstallFilter',
call: 'shh_uninstallFilter',
params: 1
});
var getLogs = new Method({
name: 'getLogs',
call: 'shh_getMessages',
params: 1
});
2015-03-26 14:43:35 +00:00
var poll = new Method({
name: 'poll',
call: 'shh_getFilterChanges',
params: 1
});
2015-02-05 22:37:30 +00:00
return [
2015-03-22 17:12:52 +00:00
newFilter,
uninstallFilter,
2015-03-26 14:43:35 +00:00
getLogs,
poll
2015-02-05 22:37:30 +00:00
];
};
module.exports = {
eth: eth,
shh: shh
};