few comments
This commit is contained in:
parent
422dc05bb0
commit
8d1f96cc0a
@ -33,6 +33,13 @@ if (process.env.NODE_ENV !== 'build') {
|
|||||||
var web3 = require('./web3'); // jshint ignore:line
|
var web3 = require('./web3'); // jshint ignore:line
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Automatically tries to setup correct provider
|
||||||
|
/// First it checkes if we are ethereum browser (if navigator.qt object is available)
|
||||||
|
/// if yes, we are using QtProvider
|
||||||
|
/// if no, we check if it is possible to establish websockets connection with ethereum (ws://localhost:40404/eth is default)
|
||||||
|
/// if it's not possible, we are using httprpc provider (http://localhost:8080)
|
||||||
|
/// The constructor allows you to specify uris on which we are trying to connect over http or websockets
|
||||||
|
/// You can do that by passing objects with fields httrpc and websockets
|
||||||
var AutoProvider = function (userOptions) {
|
var AutoProvider = function (userOptions) {
|
||||||
if (web3.haveProvider()) {
|
if (web3.haveProvider()) {
|
||||||
return;
|
return;
|
||||||
@ -81,6 +88,8 @@ var AutoProvider = function (userOptions) {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// Sends message forward to the provider, that is being used
|
||||||
|
/// if provider is not yet set, enqueues the message
|
||||||
AutoProvider.prototype.send = function (payload) {
|
AutoProvider.prototype.send = function (payload) {
|
||||||
if (this.provider) {
|
if (this.provider) {
|
||||||
this.provider.send(payload);
|
this.provider.send(payload);
|
||||||
@ -89,6 +98,7 @@ AutoProvider.prototype.send = function (payload) {
|
|||||||
this.sendQueue.push(payload);
|
this.sendQueue.push(payload);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// On incoming message sends the message to the provider that is currently being used
|
||||||
Object.defineProperty(AutoProvider.prototype, 'onmessage', {
|
Object.defineProperty(AutoProvider.prototype, 'onmessage', {
|
||||||
set: function (handler) {
|
set: function (handler) {
|
||||||
if (this.provider) {
|
if (this.provider) {
|
||||||
|
30
lib/web3.js
30
lib/web3.js
@ -254,6 +254,7 @@ var web3 = {
|
|||||||
return hex;
|
return hex;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/// @returns ascii string representation of hex value prefixed with 0x
|
||||||
toAscii: function(hex) {
|
toAscii: function(hex) {
|
||||||
// Find termination
|
// Find termination
|
||||||
var str = "";
|
var str = "";
|
||||||
@ -272,6 +273,7 @@ var web3 = {
|
|||||||
return str;
|
return str;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/// @returns hex representation (prefixed by 0x) of ascii string
|
||||||
fromAscii: function(str, pad) {
|
fromAscii: function(str, pad) {
|
||||||
pad = pad === undefined ? 0 : pad;
|
pad = pad === undefined ? 0 : pad;
|
||||||
var hex = this.toHex(str);
|
var hex = this.toHex(str);
|
||||||
@ -280,14 +282,17 @@ var web3 = {
|
|||||||
return "0x" + hex;
|
return "0x" + hex;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/// @returns decimal representaton of hex value prefixed by 0x
|
||||||
toDecimal: function (val) {
|
toDecimal: function (val) {
|
||||||
return hexToDec(val.substring(2));
|
return hexToDec(val.substring(2));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/// @returns hex representation (prefixed by 0x) of decimal value
|
||||||
fromDecimal: function (val) {
|
fromDecimal: function (val) {
|
||||||
return "0x" + decToHex(val);
|
return "0x" + decToHex(val);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/// used to transform value/string to eth string
|
||||||
toEth: function(str) {
|
toEth: function(str) {
|
||||||
var val = typeof str === "string" ? str.indexOf('0x') === 0 ? parseInt(str.substr(2), 16) : parseInt(str) : str;
|
var val = typeof str === "string" ? str.indexOf('0x') === 0 ? parseInt(str.substr(2), 16) : parseInt(str) : str;
|
||||||
var unit = 0;
|
var unit = 0;
|
||||||
@ -311,24 +316,24 @@ var web3 = {
|
|||||||
return s + ' ' + units[unit];
|
return s + ' ' + units[unit];
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/// eth object prototype
|
||||||
eth: {
|
eth: {
|
||||||
prototype: Object(), // jshint ignore:line
|
|
||||||
watch: function (params) {
|
watch: function (params) {
|
||||||
return new Filter(params, ethWatch);
|
return new Filter(params, ethWatch);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
db: {
|
/// db object prototype
|
||||||
prototype: Object() // jshint ignore:line
|
db: {},
|
||||||
},
|
|
||||||
|
|
||||||
|
/// shh object prototype
|
||||||
shh: {
|
shh: {
|
||||||
prototype: Object(), // jshint ignore:line
|
|
||||||
watch: function (params) {
|
watch: function (params) {
|
||||||
return new Filter(params, shhWatch);
|
return new Filter(params, shhWatch);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/// used by filter to register callback with given id
|
||||||
on: function(event, id, cb) {
|
on: function(event, id, cb) {
|
||||||
if(web3._events[event] === undefined) {
|
if(web3._events[event] === undefined) {
|
||||||
web3._events[event] = {};
|
web3._events[event] = {};
|
||||||
@ -338,6 +343,7 @@ var web3 = {
|
|||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/// used by filter to unregister callback with given id
|
||||||
off: function(event, id) {
|
off: function(event, id) {
|
||||||
if(web3._events[event] !== undefined) {
|
if(web3._events[event] !== undefined) {
|
||||||
delete web3._events[event][id];
|
delete web3._events[event][id];
|
||||||
@ -346,6 +352,7 @@ var web3 = {
|
|||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/// used to trigger callback registered by filter
|
||||||
trigger: function(event, id, data) {
|
trigger: function(event, id, data) {
|
||||||
var callbacks = web3._events[event];
|
var callbacks = web3._events[event];
|
||||||
if (!callbacks || !callbacks[id]) {
|
if (!callbacks || !callbacks[id]) {
|
||||||
@ -353,6 +360,11 @@ var web3 = {
|
|||||||
}
|
}
|
||||||
var cb = callbacks[id];
|
var cb = callbacks[id];
|
||||||
cb(data);
|
cb(data);
|
||||||
|
},
|
||||||
|
|
||||||
|
/// @returns true if provider is installed
|
||||||
|
haveProvider: function() {
|
||||||
|
return !!web3.provider.provider;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -375,7 +387,6 @@ var shhWatch = {
|
|||||||
|
|
||||||
setupMethods(shhWatch, shhWatchMethods());
|
setupMethods(shhWatch, shhWatchMethods());
|
||||||
|
|
||||||
|
|
||||||
web3.provider = new ProviderManager();
|
web3.provider = new ProviderManager();
|
||||||
|
|
||||||
web3.setProvider = function(provider) {
|
web3.setProvider = function(provider) {
|
||||||
@ -384,13 +395,6 @@ web3.setProvider = function(provider) {
|
|||||||
web3.provider.sendQueued();
|
web3.provider.sendQueued();
|
||||||
};
|
};
|
||||||
|
|
||||||
/// returns true if provider is installed
|
|
||||||
web3.haveProvider = function() {
|
|
||||||
return !!web3.provider.provider;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// callled when there is new incoming message
|
/// callled when there is new incoming message
|
||||||
function messageHandler(data) {
|
function messageHandler(data) {
|
||||||
if(data._event !== undefined) {
|
if(data._event !== undefined) {
|
||||||
|
Loading…
Reference in New Issue
Block a user