diff options
author | obscuren <geffobscura@gmail.com> | 2015-01-29 04:50:10 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-01-29 04:50:10 +0800 |
commit | fd5d061d49ae32db3ebf8b8e6a14380742701661 (patch) | |
tree | 6b991781e4b5c7ebae726195f6b99b0edb807da0 /cmd/mist/assets/ext/lib/httpsync.js | |
parent | 5e891ea981aabc1435c54decc1572788d3358954 (diff) | |
parent | 1337a8dfb11160d67db410b71af92a02d6b232f5 (diff) | |
download | dexon-fd5d061d49ae32db3ebf8b8e6a14380742701661.tar dexon-fd5d061d49ae32db3ebf8b8e6a14380742701661.tar.gz dexon-fd5d061d49ae32db3ebf8b8e6a14380742701661.tar.bz2 dexon-fd5d061d49ae32db3ebf8b8e6a14380742701661.tar.lz dexon-fd5d061d49ae32db3ebf8b8e6a14380742701661.tar.xz dexon-fd5d061d49ae32db3ebf8b8e6a14380742701661.tar.zst dexon-fd5d061d49ae32db3ebf8b8e6a14380742701661.zip |
Merge branch 'develop' into Gustav-Simonsson-key_store_and_accounts_integration
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; + |