aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/mist/assets/ext/lib/httpsync.js
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-01-29 04:50:10 +0800
committerobscuren <geffobscura@gmail.com>2015-01-29 04:50:10 +0800
commitfd5d061d49ae32db3ebf8b8e6a14380742701661 (patch)
tree6b991781e4b5c7ebae726195f6b99b0edb807da0 /cmd/mist/assets/ext/lib/httpsync.js
parent5e891ea981aabc1435c54decc1572788d3358954 (diff)
parent1337a8dfb11160d67db410b71af92a02d6b232f5 (diff)
downloaddexon-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.js70
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;
+