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 /dist/ethereum.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 'dist/ethereum.js')
-rw-r--r-- | dist/ethereum.js | 196 |
1 files changed, 144 insertions, 52 deletions
diff --git a/dist/ethereum.js b/dist/ethereum.js index d9a268fad..3ccbf9a1c 100644 --- a/dist/ethereum.js +++ b/dist/ethereum.js @@ -406,7 +406,7 @@ module.exports = { }; -},{"./web3":8}],2:[function(require,module,exports){ +},{"./web3":9}],2:[function(require,module,exports){ /* This file is part of ethereum.js. @@ -522,7 +522,7 @@ Object.defineProperty(AutoProvider.prototype, 'onmessage', { module.exports = AutoProvider; -},{"./web3":8}],3:[function(require,module,exports){ +},{"./web3":9}],3:[function(require,module,exports){ /* This file is part of ethereum.js. @@ -625,7 +625,7 @@ var contract = function (address, desc) { module.exports = contract; -},{"./abi":1,"./web3":8}],4:[function(require,module,exports){ +},{"./abi":1,"./web3":9}],4:[function(require,module,exports){ /* This file is part of ethereum.js. @@ -713,7 +713,7 @@ Filter.prototype.logs = function () { module.exports = Filter; -},{"./web3":8}],5:[function(require,module,exports){ +},{"./web3":9}],5:[function(require,module,exports){ /* This file is part of ethereum.js. @@ -858,6 +858,74 @@ module.exports = HttpRpcProvider; 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; + + +},{}],7:[function(require,module,exports){ +/* + 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 providermanager.js * @authors: * Jeffrey Wilcke <jeff@ethdev.com> @@ -900,21 +968,17 @@ var ProviderManager = function() { }; /// sends outgoing requests, if provider is not available, enqueue the request -ProviderManager.prototype.send = function(data, cb) { +ProviderManager.prototype.send = function(data) { data._id = this.id; - if (cb) { - web3._callbacks[data._id] = cb; - } data.args = data.args || []; this.id++; - if(this.provider !== undefined) { - this.provider.send(data); - } else { - console.warn("provider is not set"); - this.queued.push(data); + if (this.provider === undefined) { + console.error("provider is not set"); } + + return this.provider.send(data); }; /// setups provider, which will be used for sending messages @@ -962,7 +1026,7 @@ ProviderManager.prototype.stopPolling = function (pollId) { module.exports = ProviderManager; -},{"./web3":8}],7:[function(require,module,exports){ +},{"./web3":9}],8:[function(require,module,exports){ /* This file is part of ethereum.js. @@ -1021,7 +1085,7 @@ Object.defineProperty(QtProvider.prototype, "onmessage", { module.exports = QtProvider; -},{}],8:[function(require,module,exports){ +},{}],9:[function(require,module,exports){ /* This file is part of ethereum.js. @@ -1193,22 +1257,32 @@ var shhWatchMethods = function () { var setupMethods = function (obj, methods) { methods.forEach(function (method) { obj[method.name] = function () { - return flattenPromise(Array.prototype.slice.call(arguments)).then(function (args) { - var call = typeof method.call === "function" ? method.call(args) : method.call; - return {call: call, args: args}; - }).then(function (request) { - return new Promise(function (resolve, reject) { - web3.provider.send(request, function (err, result) { - if (!err) { - resolve(result); - return; - } - reject(err); - }); - }); - }).catch(function(err) { - console.error(err); + var args = Array.prototype.slice.call(arguments); + var call = typeof method.call === 'function' ? method.call(args) : method.call; + var result = web3.provider.send({ + call: call, + args: args }); + + result = JSON.parse(result); + return result.result; + + //return flattenPromise(Array.prototype.slice.call(arguments)).then(function (args) { + //var call = typeof method.call === "function" ? method.call(args) : method.call; + //return {call: call, args: args}; + //}).then(function (request) { + //return new Promise(function (resolve, reject) { + //web3.provider.send(request, function (err, result) { + //if (!err) { + //resolve(result); + //return; + //} + //reject(err); + //}); + //}); + //}).catch(function(err) { + //console.error(err); + //}); }; }); }; @@ -1219,31 +1293,47 @@ var setupProperties = function (obj, properties) { properties.forEach(function (property) { var proto = {}; proto.get = function () { - return new Promise(function(resolve, reject) { - web3.provider.send({call: property.getter}, function(err, result) { - if (!err) { - resolve(result); - return; - } - reject(err); - }); + var result = web3.provider.send({ + call: property.getter }); + + result = JSON.parse(result); + return result.result; + + + //return new Promise(function(resolve, reject) { + //web3.provider.send({call: property.getter}, function(err, result) { + //if (!err) { + //resolve(result); + //return; + //} + //reject(err); + //}); + //}); }; if (property.setter) { proto.set = function (val) { - return flattenPromise([val]).then(function (args) { - return new Promise(function (resolve) { - web3.provider.send({call: property.setter, args: args}, function (err, result) { - if (!err) { - resolve(result); - return; - } - reject(err); - }); - }); - }).catch(function (err) { - console.error(err); + var result = web3.provider.send({ + call: property.setter, + args: [val] }); + + result = JSON.parse(result); + return result.result; + + //return flattenPromise([val]).then(function (args) { + //return new Promise(function (resolve) { + //web3.provider.send({call: property.setter, args: args}, function (err, result) { + //if (!err) { + //resolve(result); + //return; + //} + //reject(err); + //}); + //}); + //}).catch(function (err) { + //console.error(err); + //}); }; } Object.defineProperty(obj, property.name, proto); @@ -1433,7 +1523,7 @@ function messageHandler(data) { module.exports = web3; -},{}],9:[function(require,module,exports){ +},{}],10:[function(require,module,exports){ /* This file is part of ethereum.js. @@ -1541,13 +1631,15 @@ web3.filter = require('./lib/filter'); web3.providers.WebSocketProvider = require('./lib/websocket'); web3.providers.HttpRpcProvider = require('./lib/httprpc'); web3.providers.QtProvider = require('./lib/qt'); +web3.providers.HttpSyncProvider = require('./lib/httpsync'); web3.providers.AutoProvider = require('./lib/autoprovider'); web3.eth.contract = require('./lib/contract'); web3.abi = require('./lib/abi'); + module.exports = web3; -},{"./lib/abi":1,"./lib/autoprovider":2,"./lib/contract":3,"./lib/filter":4,"./lib/httprpc":5,"./lib/providermanager":6,"./lib/qt":7,"./lib/web3":8,"./lib/websocket":9}]},{},["web3"]) +},{"./lib/abi":1,"./lib/autoprovider":2,"./lib/contract":3,"./lib/filter":4,"./lib/httprpc":5,"./lib/httpsync":6,"./lib/providermanager":7,"./lib/qt":8,"./lib/web3":9,"./lib/websocket":10}]},{},["web3"]) //# sourceMappingURL=ethereum.js.map
\ No newline at end of file |