diff options
author | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-02-04 05:24:17 +0800 |
---|---|---|
committer | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-02-04 05:24:17 +0800 |
commit | 45134de7401b58f0118deb16bf0644495715fbdb (patch) | |
tree | ebe0ba3fe2de88ae74ca3fa009b3b4a0d7c64623 /lib/jsonrpc.js | |
parent | f3ce1f07c42924a116e9c215ea95fb0a2b0217f0 (diff) | |
download | dexon-45134de7401b58f0118deb16bf0644495715fbdb.tar dexon-45134de7401b58f0118deb16bf0644495715fbdb.tar.gz dexon-45134de7401b58f0118deb16bf0644495715fbdb.tar.bz2 dexon-45134de7401b58f0118deb16bf0644495715fbdb.tar.lz dexon-45134de7401b58f0118deb16bf0644495715fbdb.tar.xz dexon-45134de7401b58f0118deb16bf0644495715fbdb.tar.zst dexon-45134de7401b58f0118deb16bf0644495715fbdb.zip |
jsonrpc.js file && batch polling
Diffstat (limited to 'lib/jsonrpc.js')
-rw-r--r-- | lib/jsonrpc.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/lib/jsonrpc.js b/lib/jsonrpc.js new file mode 100644 index 000000000..0036d0abf --- /dev/null +++ b/lib/jsonrpc.js @@ -0,0 +1,61 @@ +/* + 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 jsonrpc.js + * @authors: + * Marek Kotewicz <marek@ethdev.com> + * @date 2015 + */ + +var messageId = 1; + +/// Should be called to valid json create payload object +/// @param method of jsonrpc call, required +/// @param params, an array of method params, optional +/// @returns valid jsonrpc payload object +var toPayload = function (method, params) { + if (!method) + console.error('jsonrpc method should be specified!'); + + return { + jsonrpc: '2.0', + method: method, + params: params || [], + id: messageId++ + }; +}; + +/// Should be called to check if jsonrpc response is valid +/// @returns true if response doesn't have error field +var isValidResponse = function (response) { + return response && !response.error; +}; + +/// Should be called to create batch payload object +/// @param messages, an array of objects with method (required) and params (optional) fields +var toBatchPayload = function (messages) { + return messages.map(function (message) { + return toPayload(message.method, message.params); + }); +}; + +module.exports = { + toPayload: toPayload, + isValidResponse: isValidResponse, + toBatchPayload: toBatchPayload +}; + + |