diff options
author | obscuren <geffobscura@gmail.com> | 2015-01-28 17:58:56 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-01-28 17:58:56 +0800 |
commit | 94976d63ca7d12983aa75ed8cf04d4210a818b33 (patch) | |
tree | cbcc5af9d5109282ee2466467931aa3fd80592b3 /cmd/mist/assets/ext/lib/httpsync.js | |
parent | ad5894e486f0c78606453a6aba38c6670b791a92 (diff) | |
parent | cb47a9e97ff3f2dcd2d2e6f1a3d39709d6d6a24d (diff) | |
download | go-tangerine-94976d63ca7d12983aa75ed8cf04d4210a818b33.tar go-tangerine-94976d63ca7d12983aa75ed8cf04d4210a818b33.tar.gz go-tangerine-94976d63ca7d12983aa75ed8cf04d4210a818b33.tar.bz2 go-tangerine-94976d63ca7d12983aa75ed8cf04d4210a818b33.tar.lz go-tangerine-94976d63ca7d12983aa75ed8cf04d4210a818b33.tar.xz go-tangerine-94976d63ca7d12983aa75ed8cf04d4210a818b33.tar.zst go-tangerine-94976d63ca7d12983aa75ed8cf04d4210a818b33.zip |
Merge branch 'develop' into qt5.4
Diffstat (limited to 'cmd/mist/assets/ext/lib/httpsync.js')
-rw-r--r-- | cmd/mist/assets/ext/lib/httpsync.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/cmd/mist/assets/ext/lib/httpsync.js b/cmd/mist/assets/ext/lib/httpsync.js new file mode 100644 index 000000000..a638cfe94 --- /dev/null +++ b/cmd/mist/assets/ext/lib/httpsync.js @@ -0,0 +1,70 @@ +/* + 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 + */ + +if (process.env.NODE_ENV !== 'build') { + var XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest; // jshint ignore:line +} + +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; + |