diff options
author | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-22 04:54:51 +0800 |
---|---|---|
committer | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-22 04:54:51 +0800 |
commit | ad8e92e9c67b82b0e8156345776bafe1c3e07d51 (patch) | |
tree | 9eb59d09860f1600f4048d26580f43576cb45f1e /lib/httpsync.js | |
parent | 81ff253e68bbc700ff093adcff0a21469460b4b8 (diff) | |
parent | edfb874527160cee14cca931377e55187b874cbe (diff) | |
download | dexon-ad8e92e9c67b82b0e8156345776bafe1c3e07d51.tar dexon-ad8e92e9c67b82b0e8156345776bafe1c3e07d51.tar.gz dexon-ad8e92e9c67b82b0e8156345776bafe1c3e07d51.tar.bz2 dexon-ad8e92e9c67b82b0e8156345776bafe1c3e07d51.tar.lz dexon-ad8e92e9c67b82b0e8156345776bafe1c3e07d51.tar.xz dexon-ad8e92e9c67b82b0e8156345776bafe1c3e07d51.tar.zst dexon-ad8e92e9c67b82b0e8156345776bafe1c3e07d51.zip |
Merge commit 'eb4984c0d036c1420e782ca136810e851e33fb37' into natspec
Diffstat (limited to 'lib/httpsync.js')
-rw-r--r-- | lib/httpsync.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/lib/httpsync.js b/lib/httpsync.js new file mode 100644 index 000000000..67a3988f9 --- /dev/null +++ b/lib/httpsync.js @@ -0,0 +1,66 @@ +/* + 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 httpsync.js + * @authors: + * Marek Kotewicz <marek@ethdev.com> + * Marian Oancea <marian@ethdev.com> + * @date 2014 + */ + +var HttpSyncProvider = function (host) { + this.handlers = []; + this.host = host || 'http://localhost:8080'; +}; + +/// Transforms inner message to proper jsonrpc object +/// @param inner message object +/// @returns jsonrpc object +function formatJsonRpcObject(object) { + return { + jsonrpc: '2.0', + method: object.call, + params: object.args, + id: object._id + }; +} + +/// Transforms jsonrpc object to inner message +/// @param incoming jsonrpc message +/// @returns inner message object +function formatJsonRpcMessage(message) { + var object = JSON.parse(message); + + return { + _id: object.id, + data: object.result, + error: object.error + }; +} + +HttpSyncProvider.prototype.send = function (payload) { + var data = formatJsonRpcObject(payload); + + var request = new XMLHttpRequest(); + request.open('POST', this.host, false); + request.send(JSON.stringify(data)); + + // check request.status + return request.responseText; +}; + +module.exports = HttpSyncProvider; + |