diff options
author | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-22 03:29:02 +0800 |
---|---|---|
committer | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-01-22 03:29:02 +0800 |
commit | 0d2cccc2ce88753a22ed60b74f50a376750d6483 (patch) | |
tree | dfac89690d428f4bf3ddd9d24a96535b7fcd9b86 /lib/httpsync.js | |
parent | e1fcffcc810bdf6a116cc12e21c5a8750cb86d23 (diff) | |
download | go-tangerine-0d2cccc2ce88753a22ed60b74f50a376750d6483.tar go-tangerine-0d2cccc2ce88753a22ed60b74f50a376750d6483.tar.gz go-tangerine-0d2cccc2ce88753a22ed60b74f50a376750d6483.tar.bz2 go-tangerine-0d2cccc2ce88753a22ed60b74f50a376750d6483.tar.lz go-tangerine-0d2cccc2ce88753a22ed60b74f50a376750d6483.tar.xz go-tangerine-0d2cccc2ce88753a22ed60b74f50a376750d6483.tar.zst go-tangerine-0d2cccc2ce88753a22ed60b74f50a376750d6483.zip |
http sync api
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..20bdbd1a2 --- /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; +}; + +/// 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; + |