aboutsummaryrefslogtreecommitdiffstats
path: root/dist/ethereum.js
diff options
context:
space:
mode:
authorMarian Oancea <contact@siteshop.ro>2014-11-07 04:51:37 +0800
committerMarian Oancea <contact@siteshop.ro>2014-11-07 04:51:37 +0800
commit3270b432bcb007944e3b6e17329b062cb6b7da78 (patch)
tree197238043b4e4e7e5b20c2d985961e863fe52a92 /dist/ethereum.js
parentbd14b4d23e5eaaf5359b73a2744727df5624ab97 (diff)
downloaddexon-3270b432bcb007944e3b6e17329b062cb6b7da78.tar
dexon-3270b432bcb007944e3b6e17329b062cb6b7da78.tar.gz
dexon-3270b432bcb007944e3b6e17329b062cb6b7da78.tar.bz2
dexon-3270b432bcb007944e3b6e17329b062cb6b7da78.tar.lz
dexon-3270b432bcb007944e3b6e17329b062cb6b7da78.tar.xz
dexon-3270b432bcb007944e3b6e17329b062cb6b7da78.tar.zst
dexon-3270b432bcb007944e3b6e17329b062cb6b7da78.zip
Refactoring
Removed browser fixes Updated gulp to bypass native browser objects Added source map for dist
Diffstat (limited to 'dist/ethereum.js')
-rw-r--r--dist/ethereum.js761
1 files changed, 9 insertions, 752 deletions
diff --git a/dist/ethereum.js b/dist/ethereum.js
index 31d00c57e..9e0a59c2a 100644
--- a/dist/ethereum.js
+++ b/dist/ethereum.js
@@ -1,757 +1,14 @@
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-
-/**
- * Module dependencies.
- */
-
-var global = (function() { return this; })(); // jshint ignore:line
-
-/**
- * XMLHttpRequest constructor.
- */
-
-var XMLHttpRequest = window.XMLHttpRequest; // jshint ignore:line
-
-/**
- * Module exports.
- */
-
-module.exports.XMLHttpRequest = XMLHttpRequest ? xhr : null;
-
-/**
- * XMLHttpRequest constructor.
- *
- * @param {Object) opts (optional)
- * @api public
- */
-
-function xhr(obj) {
- var instance;
-
- instance = new XMLHttpRequest(obj);
-
- return instance;
-}
-
-if (XMLHttpRequest) xhr.prototype = XMLHttpRequest.prototype;
-
+function formatJsonRpcObject(object){return{jsonrpc:"2.0",method:object.call,params:object.args,id:object._id}}function formatJsonRpcMessage(message){var object=JSON.parse(message);return{_id:object.id,data:object.result}}var HttpRpcProvider=function(host){this.handlers=[],this.host=host};HttpRpcProvider.prototype.sendRequest=function(payload,cb){var data=formatJsonRpcObject(payload),request=new XMLHttpRequest;request.open("POST",this.host,!0),request.send(JSON.stringify(data)),request.onreadystatechange=function(){4===request.readyState&&cb&&cb(request)}},HttpRpcProvider.prototype.send=function(payload){var self=this;this.sendRequest(payload,function(request){self.handlers.forEach(function(handler){handler.call(self,formatJsonRpcMessage(request.responseText))})})},HttpRpcProvider.prototype.poll=function(payload,id){var self=this;this.sendRequest(payload,function(request){var parsed=JSON.parse(request.responseText);(parsed.result instanceof Array?0!==parsed.result.length:parsed.result)&&self.handlers.forEach(function(handler){handler.call(self,{_event:payload.call,_id:id,data:parsed.result})})})},Object.defineProperty(HttpRpcProvider.prototype,"onmessage",{set:function(handler){this.handlers.push(handler)}}),module.exports=HttpRpcProvider;
},{}],2:[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 httprpc.js
- * @authors:
- * Marek Kotewicz <marek@ethdev.com>
- * Marian Oancea <marian@ethdev.com>
- * @date 2014
- */
-
-
-var XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest; // jshint ignore:line
-
-
- var HttpRpcProvider = function (host) {
- this.handlers = [];
- this.host = host;
- };
-
- function formatJsonRpcObject(object) {
- return {
- jsonrpc: '2.0',
- method: object.call,
- params: object.args,
- id: object._id
- };
- }
-
- function formatJsonRpcMessage(message) {
- var object = JSON.parse(message);
-
- return {
- _id: object.id,
- data: object.result
- };
- }
-
- HttpRpcProvider.prototype.sendRequest = function (payload, cb) {
- var data = formatJsonRpcObject(payload);
-
- var request = new XMLHttpRequest();
- request.open("POST", this.host, true);
- request.send(JSON.stringify(data));
- request.onreadystatechange = function () {
- if (request.readyState === 4 && cb) {
- cb(request);
- }
- };
- };
-
- HttpRpcProvider.prototype.send = function (payload) {
- var self = this;
- this.sendRequest(payload, function (request) {
- self.handlers.forEach(function (handler) {
- handler.call(self, formatJsonRpcMessage(request.responseText));
- });
- });
- };
-
- HttpRpcProvider.prototype.poll = function (payload, id) {
- var self = this;
- this.sendRequest(payload, function (request) {
- var parsed = JSON.parse(request.responseText);
- if (parsed.result instanceof Array ? parsed.result.length === 0 : !parsed.result) {
- return;
- }
- self.handlers.forEach(function (handler) {
- handler.call(self, {_event: payload.call, _id: id, data: parsed.result});
- });
- });
- };
-
- Object.defineProperty(HttpRpcProvider.prototype, "onmessage", {
- set: function (handler) {
- this.handlers.push(handler);
- }
- });
-
-module.exports = HttpRpcProvider;
-
-},{"xmlhttprequest":1}],3:[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 main.js
-* @authors:
-* Jeffrey Wilcke <jeff@ethdev.com>
-* Marek Kotewicz <marek@ethdev.com>
-* Marian Oancea <marian@ethdev.com>
-* @date 2014
-*/
-
-
- function isPromise(o) {
- return o instanceof Promise;
- }
-
- function flattenPromise (obj) {
- if (obj instanceof Promise) {
- return Promise.resolve(obj);
- }
-
- if (obj instanceof Array) {
- return new Promise(function (resolve) {
- var promises = obj.map(function (o) {
- return flattenPromise(o);
- });
-
- return Promise.all(promises).then(function (res) {
- for (var i = 0; i < obj.length; i++) {
- obj[i] = res[i];
- }
- resolve(obj);
- });
- });
- }
-
- if (obj instanceof Object) {
- return new Promise(function (resolve) {
- var keys = Object.keys(obj);
- var promises = keys.map(function (key) {
- return flattenPromise(obj[key]);
- });
-
- return Promise.all(promises).then(function (res) {
- for (var i = 0; i < keys.length; i++) {
- obj[keys[i]] = res[i];
- }
- resolve(obj);
- });
- });
- }
-
- return Promise.resolve(obj);
- }
-
- var ethMethods = function () {
- var blockCall = function (args) {
- return typeof args[0] === "string" ? "blockByHash" : "blockByNumber";
- };
-
- var transactionCall = function (args) {
- return typeof args[0] === "string" ? 'transactionByHash' : 'transactionByNumber';
- };
-
- var uncleCall = function (args) {
- return typeof args[0] === "string" ? 'uncleByHash' : 'uncleByNumber';
- };
-
- var methods = [
- { name: 'balanceAt', call: 'balanceAt' },
- { name: 'stateAt', call: 'stateAt' },
- { name: 'countAt', call: 'countAt'},
- { name: 'codeAt', call: 'codeAt' },
- { name: 'transact', call: 'transact' },
- { name: 'call', call: 'call' },
- { name: 'block', call: blockCall },
- { name: 'transaction', call: transactionCall },
- { name: 'uncle', call: uncleCall },
- { name: 'compile', call: 'compile' }
- ];
- return methods;
- };
-
- var ethProperties = function () {
- return [
- { name: 'coinbase', getter: 'coinbase', setter: 'setCoinbase' },
- { name: 'listening', getter: 'listening', setter: 'setListening' },
- { name: 'mining', getter: 'mining', setter: 'setMining' },
- { name: 'gasPrice', getter: 'gasPrice' },
- { name: 'account', getter: 'account' },
- { name: 'accounts', getter: 'accounts' },
- { name: 'peerCount', getter: 'peerCount' },
- { name: 'defaultBlock', getter: 'defaultBlock', setter: 'setDefaultBlock' },
- { name: 'number', getter: 'number'}
- ];
- };
-
- var dbMethods = function () {
- return [
- { name: 'put', call: 'put' },
- { name: 'get', call: 'get' },
- { name: 'putString', call: 'putString' },
- { name: 'getString', call: 'getString' }
- ];
- };
-
- var shhMethods = function () {
- return [
- { name: 'post', call: 'post' },
- { name: 'newIdentity', call: 'newIdentity' },
- { name: 'haveIdentity', call: 'haveIdentity' },
- { name: 'newGroup', call: 'newGroup' },
- { name: 'addToGroup', call: 'addToGroup' }
- ];
- };
-
- var ethWatchMethods = function () {
- var newFilter = function (args) {
- return typeof args[0] === 'string' ? 'newFilterString' : 'newFilter';
- };
-
- return [
- { name: 'newFilter', call: newFilter },
- { name: 'uninstallFilter', call: 'uninstallFilter' },
- { name: 'getMessages', call: 'getMessages' }
- ];
- };
-
- var shhWatchMethods = function () {
- return [
- { name: 'newFilter', call: 'shhNewFilter' },
- { name: 'uninstallFilter', call: 'shhUninstallFilter' },
- { name: 'getMessage', call: 'shhGetMessages' }
- ];
- };
-
- 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 (result) {
- if (result || typeof result === "boolean") {
- resolve(result);
- return;
- }
- reject(result);
- });
- });
- }).catch(function( err) {
- console.error(err);
- });
- };
- });
- };
-
- 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(result) {
- resolve(result);
- });
- });
- };
- 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 (result) {
- if (result) {
- resolve(result);
- } else {
- reject(result);
- }
- });
- });
- }).catch(function (err) {
- console.error(err);
- });
- };
- }
- Object.defineProperty(obj, property.name, proto);
- });
- };
-
- var web3 = {
- _callbacks: {},
- _events: {},
- providers: {},
- toHex: function(str) {
- var hex = "";
- for(var i = 0; i < str.length; i++) {
- var n = str.charCodeAt(i).toString(16);
- hex += n.length < 2 ? '0' + n : n;
- }
-
- return hex;
- },
-
- toAscii: function(hex) {
- // Find termination
- var str = "";
- var i = 0, l = hex.length;
- for(; i < l; i+=2) {
- var code = hex.charCodeAt(i);
- if(code === 0) {
- break;
- }
-
- str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
- }
-
- return str;
- },
-
- toDecimal: function (val) {
- return parseInt(val, 16);
- },
-
- fromAscii: function(str, pad) {
- pad = pad === undefined ? 32 : pad;
- var hex = this.toHex(str);
- while(hex.length < pad*2)
- hex += "00";
- return hex;
- },
-
- eth: {
- prototype: Object(), // jshint ignore:line
- watch: function (params) {
- return new Filter(params, ethWatch);
- }
- },
-
- db: {
- prototype: Object() // jshint ignore:line
- },
-
- shh: {
- prototype: Object(), // jshint ignore:line
- watch: function (params) {
- return new Filter(params, shhWatch);
- }
- },
-
- on: function(event, id, cb) {
- if(web3._events[event] === undefined) {
- web3._events[event] = {};
- }
-
- web3._events[event][id] = cb;
- return this;
- },
-
- off: function(event, id) {
- if(web3._events[event] !== undefined) {
- delete web3._events[event][id];
- }
-
- return this;
- },
-
- trigger: function(event, id, data) {
- var callbacks = web3._events[event];
- if (!callbacks || !callbacks[id]) {
- return;
- }
- var cb = callbacks[id];
- cb(data);
- }
- };
-
- var eth = web3.eth;
- setupMethods(eth, ethMethods());
- setupProperties(eth, ethProperties());
- setupMethods(web3.db, dbMethods());
- setupMethods(web3.shh, shhMethods());
-
- var ethWatch = {
- changed: 'changed'
- };
- setupMethods(ethWatch, ethWatchMethods());
- var shhWatch = {
- changed: 'shhChanged'
- };
- setupMethods(shhWatch, shhWatchMethods());
-
- var ProviderManager = function() {
- this.queued = [];
- this.polls = [];
- this.ready = false;
- this.provider = undefined;
- this.id = 1;
-
- var self = this;
- var poll = function () {
- if (self.provider && self.provider.poll) {
- self.polls.forEach(function (data) {
- data.data._id = self.id;
- self.id++;
- self.provider.poll(data.data, data.id);
- });
- }
- setTimeout(poll, 12000);
- };
- poll();
- };
-
- ProviderManager.prototype.send = function(data, cb) {
- 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);
- }
- };
-
- ProviderManager.prototype.set = function(provider) {
- if(this.provider !== undefined && this.provider.unload !== undefined) {
- this.provider.unload();
- }
-
- this.provider = provider;
- this.ready = true;
- };
-
- ProviderManager.prototype.sendQueued = function() {
- for(var i = 0; this.queued.length; i++) {
- // Resend
- this.send(this.queued[i]);
- }
- };
-
- ProviderManager.prototype.installed = function() {
- return this.provider !== undefined;
- };
-
- ProviderManager.prototype.startPolling = function (data, pollId) {
- if (!this.provider || !this.provider.poll) {
- return;
- }
- this.polls.push({data: data, id: pollId});
- };
-
- ProviderManager.prototype.stopPolling = function (pollId) {
- for (var i = this.polls.length; i--;) {
- var poll = this.polls[i];
- if (poll.id === pollId) {
- this.polls.splice(i, 1);
- }
- }
- };
-
- web3.provider = new ProviderManager();
-
- web3.setProvider = function(provider) {
- provider.onmessage = messageHandler;
- web3.provider.set(provider);
- web3.provider.sendQueued();
- };
-
- var Filter = function(options, impl) {
- this.impl = impl;
- this.callbacks = [];
-
- var self = this;
- this.promise = impl.newFilter(options);
- this.promise.then(function (id) {
- self.id = id;
- web3.on(impl.changed, id, self.trigger.bind(self));
- web3.provider.startPolling({call: impl.changed, args: [id]}, id);
- });
- };
-
- Filter.prototype.arrived = function(callback) {
- this.changed(callback);
- };
-
- Filter.prototype.changed = function(callback) {
- var self = this;
- this.promise.then(function(id) {
- self.callbacks.push(callback);
- });
- };
-
- Filter.prototype.trigger = function(messages) {
- for(var i = 0; i < this.callbacks.length; i++) {
- this.callbacks[i].call(this, messages);
- }
- };
-
- Filter.prototype.uninstall = function() {
- var self = this;
- this.promise.then(function (id) {
- self.impl.uninstallFilter(id);
- web3.provider.stopPolling(id);
- web3.off(impl.changed, id);
- });
- };
-
- Filter.prototype.messages = function() {
- var self = this;
- return this.promise.then(function (id) {
- return self.impl.getMessages(id);
- });
- };
-
- function messageHandler(data) {
- if(data._event !== undefined) {
- web3.trigger(data._event, data._id, data.data);
- return;
- }
-
- if(data._id) {
- var cb = web3._callbacks[data._id];
- if (cb) {
- cb.call(this, data.data);
- delete web3._callbacks[data._id];
- }
- }
- }
-
-
-module.exports = web3;
-
+function isPromise(o){return o instanceof Promise}function flattenPromise(obj){return obj instanceof Promise?Promise.resolve(obj):obj instanceof Array?new Promise(function(resolve){var promises=obj.map(function(o){return flattenPromise(o)});return Promise.all(promises).then(function(res){for(var i=0;i<obj.length;i++)obj[i]=res[i];resolve(obj)})}):obj instanceof Object?new Promise(function(resolve){var keys=Object.keys(obj),promises=keys.map(function(key){return flattenPromise(obj[key])});return Promise.all(promises).then(function(res){for(var i=0;i<keys.length;i++)obj[keys[i]]=res[i];resolve(obj)})}):Promise.resolve(obj)}function messageHandler(data){if(void 0!==data._event)return void web3.trigger(data._event,data._id,data.data);if(data._id){var cb=web3._callbacks[data._id];cb&&(cb.call(this,data.data),delete web3._callbacks[data._id])}}var ethWatch,shhWatch,ProviderManager,Filter,ethMethods=function(){var blockCall=function(args){return"string"==typeof args[0]?"blockByHash":"blockByNumber"},transactionCall=function(args){return"string"==typeof args[0]?"transactionByHash":"transactionByNumber"},uncleCall=function(args){return"string"==typeof args[0]?"uncleByHash":"uncleByNumber"},methods=[{name:"balanceAt",call:"balanceAt"},{name:"stateAt",call:"stateAt"},{name:"countAt",call:"countAt"},{name:"codeAt",call:"codeAt"},{name:"transact",call:"transact"},{name:"call",call:"call"},{name:"block",call:blockCall},{name:"transaction",call:transactionCall},{name:"uncle",call:uncleCall},{name:"compile",call:"compile"}];return methods},ethProperties=function(){return[{name:"coinbase",getter:"coinbase",setter:"setCoinbase"},{name:"listening",getter:"listening",setter:"setListening"},{name:"mining",getter:"mining",setter:"setMining"},{name:"gasPrice",getter:"gasPrice"},{name:"account",getter:"account"},{name:"accounts",getter:"accounts"},{name:"peerCount",getter:"peerCount"},{name:"defaultBlock",getter:"defaultBlock",setter:"setDefaultBlock"},{name:"number",getter:"number"}]},dbMethods=function(){return[{name:"put",call:"put"},{name:"get",call:"get"},{name:"putString",call:"putString"},{name:"getString",call:"getString"}]},shhMethods=function(){return[{name:"post",call:"post"},{name:"newIdentity",call:"newIdentity"},{name:"haveIdentity",call:"haveIdentity"},{name:"newGroup",call:"newGroup"},{name:"addToGroup",call:"addToGroup"}]},ethWatchMethods=function(){var newFilter=function(args){return"string"==typeof args[0]?"newFilterString":"newFilter"};return[{name:"newFilter",call:newFilter},{name:"uninstallFilter",call:"uninstallFilter"},{name:"getMessages",call:"getMessages"}]},shhWatchMethods=function(){return[{name:"newFilter",call:"shhNewFilter"},{name:"uninstallFilter",call:"shhUninstallFilter"},{name:"getMessage",call:"shhGetMessages"}]},setupMethods=function(obj,methods){methods.forEach(function(method){obj[method.name]=function(){return flattenPromise(Array.prototype.slice.call(arguments)).then(function(args){var call="function"==typeof method.call?method.call(args):method.call;return{call:call,args:args}}).then(function(request){return new Promise(function(resolve,reject){web3.provider.send(request,function(result){return result||"boolean"==typeof result?void resolve(result):void reject(result)})})}).catch(function(err){console.error(err)})}})},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(result){resolve(result)})})},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(result){result?resolve(result):reject(result)})})}).catch(function(err){console.error(err)})}),Object.defineProperty(obj,property.name,proto)})},web3={_callbacks:{},_events:{},providers:{},toHex:function(str){var i,n,hex="";for(i=0;i<str.length;i++)n=str.charCodeAt(i).toString(16),hex+=n.length<2?"0"+n:n;return hex},toAscii:function(hex){for(var code,str="",i=0,l=hex.length;l>i&&(code=hex.charCodeAt(i),0!==code);i+=2)str+=String.fromCharCode(parseInt(hex.substr(i,2),16));return str},toDecimal:function(val){return parseInt(val,16)},fromAscii:function(str,pad){pad=void 0===pad?32:pad;for(var hex=this.toHex(str);hex.length<2*pad;)hex+="00";return hex},eth:{prototype:Object(),watch:function(params){return new Filter(params,ethWatch)}},db:{prototype:Object()},shh:{prototype:Object(),watch:function(params){return new Filter(params,shhWatch)}},on:function(event,id,cb){return void 0===web3._events[event]&&(web3._events[event]={}),web3._events[event][id]=cb,this},off:function(event,id){return void 0!==web3._events[event]&&delete web3._events[event][id],this},trigger:function(event,id,data){var cb,callbacks=web3._events[event];callbacks&&callbacks[id]&&(cb=callbacks[id])(data)}},eth=web3.eth;setupMethods(eth,ethMethods()),setupProperties(eth,ethProperties()),setupMethods(web3.db,dbMethods()),setupMethods(web3.shh,shhMethods()),ethWatch={changed:"changed"},setupMethods(ethWatch,ethWatchMethods()),shhWatch={changed:"shhChanged"},setupMethods(shhWatch,shhWatchMethods()),ProviderManager=function(){var self,poll;this.queued=[],this.polls=[],this.ready=!1,this.provider=void 0,this.id=1,self=this,(poll=function(){self.provider&&self.provider.poll&&self.polls.forEach(function(data){data.data._id=self.id,self.id++,self.provider.poll(data.data,data.id)}),setTimeout(poll,12e3)})()},ProviderManager.prototype.send=function(data,cb){data._id=this.id,cb&&(web3._callbacks[data._id]=cb),data.args=data.args||[],this.id++,void 0!==this.provider?this.provider.send(data):(console.warn("provider is not set"),this.queued.push(data))},ProviderManager.prototype.set=function(provider){void 0!==this.provider&&void 0!==this.provider.unload&&this.provider.unload(),this.provider=provider,this.ready=!0},ProviderManager.prototype.sendQueued=function(){for(var i=0;this.queued.length;i++)this.send(this.queued[i])},ProviderManager.prototype.installed=function(){return void 0!==this.provider},ProviderManager.prototype.startPolling=function(data,pollId){this.provider&&this.provider.poll&&this.polls.push({data:data,id:pollId})},ProviderManager.prototype.stopPolling=function(pollId){var i,poll;for(i=this.polls.length;i--;)poll=this.polls[i],poll.id===pollId&&this.polls.splice(i,1)},web3.provider=new ProviderManager,web3.setProvider=function(provider){provider.onmessage=messageHandler,web3.provider.set(provider),web3.provider.sendQueued()},Filter=function(options,impl){this.impl=impl,this.callbacks=[];var self=this;this.promise=impl.newFilter(options),this.promise.then(function(id){self.id=id,web3.on(impl.changed,id,self.trigger.bind(self)),web3.provider.startPolling({call:impl.changed,args:[id]},id)})},Filter.prototype.arrived=function(callback){this.changed(callback)},Filter.prototype.changed=function(callback){var self=this;this.promise.then(function(id){self.callbacks.push(callback)})},Filter.prototype.trigger=function(messages){for(var i=0;i<this.callbacks.length;i++)this.callbacks[i].call(this,messages)},Filter.prototype.uninstall=function(){var self=this;this.promise.then(function(id){self.impl.uninstallFilter(id),web3.provider.stopPolling(id),web3.off(impl.changed,id)})},Filter.prototype.messages=function(){var self=this;return this.promise.then(function(id){return self.impl.getMessages(id)})},module.exports=web3;
+},{}],3:[function(require,module,exports){
+var QtProvider=function(){this.handlers=[];var self=this;navigator.qt.onmessage=function(message){self.handlers.forEach(function(handler){handler.call(self,JSON.parse(message.data))})}};QtProvider.prototype.send=function(payload){navigator.qt.postMessage(JSON.stringify(payload))},Object.defineProperty(QtProvider.prototype,"onmessage",{set:function(handler){this.handlers.push(handler)}}),module.exports=QtProvider;
},{}],4:[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 qt.js
- * @authors:
- * Marek Kotewicz <marek@ethdev.com>
- * @date 2014
- */
-
- var QtProvider = function() {
- this.handlers = [];
-
- var self = this;
- navigator.qt.onmessage = function (message) {
- self.handlers.forEach(function (handler) {
- handler.call(self, JSON.parse(message.data));
- });
- };
- };
-
- QtProvider.prototype.send = function(payload) {
- navigator.qt.postMessage(JSON.stringify(payload));
- };
-
- Object.defineProperty(QtProvider.prototype, "onmessage", {
- set: function(handler) {
- this.handlers.push(handler);
- }
- });
-
-module.exports = QtProvider;
-
-},{}],5:[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 websocket.js
- * @authors:
- * Marek Kotewicz <marek@ethdev.com>
- * Marian Oancea <marian@ethdev.com>
- * @date 2014
- */
-
-var WebSocket = require('ws'); // jshint ignore:line
-
-
- var WebSocketProvider = function(host) {
- // onmessage handlers
- this.handlers = [];
- // queue will be filled with messages if send is invoked before the ws is ready
- this.queued = [];
- this.ready = false;
-
- this.ws = new WebSocket(host);
-
- var self = this;
- this.ws.onmessage = function(event) {
- for(var i = 0; i < self.handlers.length; i++) {
- self.handlers[i].call(self, JSON.parse(event.data), event);
- }
- };
-
- this.ws.onopen = function() {
- self.ready = true;
-
- for(var i = 0; i < self.queued.length; i++) {
- // Resend
- self.send(self.queued[i]);
- }
- };
- };
- WebSocketProvider.prototype.send = function(payload) {
- if(this.ready) {
- var data = JSON.stringify(payload);
-
- this.ws.send(data);
- } else {
- this.queued.push(payload);
- }
- };
-
- WebSocketProvider.prototype.onMessage = function(handler) {
- this.handlers.push(handler);
- };
-
- WebSocketProvider.prototype.unload = function() {
- this.ws.close();
- };
- Object.defineProperty(WebSocketProvider.prototype, "onmessage", {
- set: function(provider) { this.onMessage(provider); }
- });
-
-module.exports = WebSocketProvider;
-
-},{"ws":6}],6:[function(require,module,exports){
-
-/**
- * Module dependencies.
- */
-
-var global = (function() { return this; })();
-
-/**
- * WebSocket constructor.
- */
-
-var WebSocket = global.WebSocket || global.MozWebSocket;
-
-/**
- * Module exports.
- */
-
-module.exports = WebSocket ? ws : null;
-
-/**
- * WebSocket constructor.
- *
- * The third `opts` options object gets ignored in web browsers, since it's
- * non-standard, and throws a TypeError if passed to the constructor.
- * See: https://github.com/einaros/ws/issues/227
- *
- * @param {String} uri
- * @param {Array} protocols (optional)
- * @param {Object) opts (optional)
- * @api public
- */
-
-function ws(uri, protocols, opts) {
- var instance;
- if (protocols) {
- instance = new WebSocket(uri, protocols);
- } else {
- instance = new WebSocket(uri);
- }
- return instance;
-}
-
-if (WebSocket) ws.prototype = WebSocket.prototype;
-
+var WebSocketProvider=function(host){this.handlers=[],this.queued=[],this.ready=!1,this.ws=new WebSocket(host);var self=this;this.ws.onmessage=function(event){for(var i=0;i<self.handlers.length;i++)self.handlers[i].call(self,JSON.parse(event.data),event)},this.ws.onopen=function(){self.ready=!0;for(var i=0;i<self.queued.length;i++)self.send(self.queued[i])}};WebSocketProvider.prototype.send=function(payload){if(this.ready){var data=JSON.stringify(payload);this.ws.send(data)}else this.queued.push(payload)},WebSocketProvider.prototype.onMessage=function(handler){this.handlers.push(handler)},WebSocketProvider.prototype.unload=function(){this.ws.close()},Object.defineProperty(WebSocketProvider.prototype,"onmessage",{set:function(provider){this.onMessage(provider)}}),module.exports=WebSocketProvider;
},{}],"web3":[function(require,module,exports){
-var web3 = require('./lib/main');
-web3.providers.WebSocketProvider = require('./lib/websocket');
-web3.providers.HttpRpcProvider = require('./lib/httprpc');
-web3.providers.QtProvider = require('./lib/qt');
+var web3=require("./lib/main");web3.providers.WebSocketProvider=require("./lib/websocket"),web3.providers.HttpRpcProvider=require("./lib/httprpc"),web3.providers.QtProvider=require("./lib/qt"),module.exports=web3;
+},{"./lib/httprpc":1,"./lib/main":2,"./lib/qt":3,"./lib/websocket":4}]},{},[])
+
-module.exports = web3;
-},{"./lib/httprpc":2,"./lib/main":3,"./lib/qt":4,"./lib/websocket":5}]},{},[]);
+//# sourceMappingURL=ethereum.js.map \ No newline at end of file