removed send queues from providermanager
This commit is contained in:
parent
c9693b4746
commit
08e2696627
|
@ -726,17 +726,19 @@ var ProviderManager = function() {
|
||||||
|
|
||||||
/// sends outgoing requests, if provider is not available, enqueue the request
|
/// sends outgoing requests, if provider is not available, enqueue the request
|
||||||
ProviderManager.prototype.send = function(data) {
|
ProviderManager.prototype.send = function(data) {
|
||||||
data._id = this.id;
|
|
||||||
|
|
||||||
data.args = data.args || [];
|
data.args = data.args || [];
|
||||||
this.id++;
|
data._id = this.id++;
|
||||||
|
|
||||||
if (this.provider === undefined) {
|
if (this.provider === undefined) {
|
||||||
console.error('provider is not set');
|
console.error('provider is not set');
|
||||||
return JSON.stringify({result: 'error, provider is not set'});
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.provider.send(data);
|
//TODO: handle error here?
|
||||||
|
var result = this.provider.send(data);
|
||||||
|
result = JSON.parse(result);
|
||||||
|
return result.result;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// setups provider, which will be used for sending messages
|
/// setups provider, which will be used for sending messages
|
||||||
|
@ -749,14 +751,6 @@ ProviderManager.prototype.set = function(provider) {
|
||||||
this.ready = true;
|
this.ready = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// resends queued messages
|
|
||||||
ProviderManager.prototype.sendQueued = function() {
|
|
||||||
for(var i = 0; this.queued.length; i++) {
|
|
||||||
// Resend
|
|
||||||
this.send(this.queued[i]);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/// @returns true if the provider i properly set
|
/// @returns true if the provider i properly set
|
||||||
ProviderManager.prototype.installed = function() {
|
ProviderManager.prototype.installed = function() {
|
||||||
return this.provider !== undefined;
|
return this.provider !== undefined;
|
||||||
|
@ -916,14 +910,10 @@ var setupMethods = function (obj, methods) {
|
||||||
obj[method.name] = function () {
|
obj[method.name] = function () {
|
||||||
var args = Array.prototype.slice.call(arguments);
|
var args = Array.prototype.slice.call(arguments);
|
||||||
var call = typeof method.call === 'function' ? method.call(args) : method.call;
|
var call = typeof method.call === 'function' ? method.call(args) : method.call;
|
||||||
var result = web3.provider.send({
|
return web3.provider.send({
|
||||||
call: call,
|
call: call,
|
||||||
args: args
|
args: args
|
||||||
});
|
});
|
||||||
|
|
||||||
result = JSON.parse(result);
|
|
||||||
return result.result;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -934,24 +924,17 @@ var setupProperties = function (obj, properties) {
|
||||||
properties.forEach(function (property) {
|
properties.forEach(function (property) {
|
||||||
var proto = {};
|
var proto = {};
|
||||||
proto.get = function () {
|
proto.get = function () {
|
||||||
var result = web3.provider.send({
|
return web3.provider.send({
|
||||||
call: property.getter
|
call: property.getter
|
||||||
});
|
});
|
||||||
|
|
||||||
result = JSON.parse(result);
|
|
||||||
return result.result;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (property.setter) {
|
if (property.setter) {
|
||||||
proto.set = function (val) {
|
proto.set = function (val) {
|
||||||
var result = web3.provider.send({
|
return web3.provider.send({
|
||||||
call: property.setter,
|
call: property.setter,
|
||||||
args: [val]
|
args: [val]
|
||||||
});
|
});
|
||||||
|
|
||||||
result = JSON.parse(result);
|
|
||||||
return result.result;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
Object.defineProperty(obj, property.name, proto);
|
Object.defineProperty(obj, property.name, proto);
|
||||||
|
@ -959,6 +942,7 @@ var setupProperties = function (obj, properties) {
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: import from a dependency, don't duplicate.
|
// TODO: import from a dependency, don't duplicate.
|
||||||
|
// TODO: use bignumber for that!
|
||||||
var hexToDec = function (hex) {
|
var hexToDec = function (hex) {
|
||||||
return parseInt(hex, 16).toString();
|
return parseInt(hex, 16).toString();
|
||||||
};
|
};
|
||||||
|
@ -1117,9 +1101,8 @@ var shhWatch = {
|
||||||
setupMethods(shhWatch, shhWatchMethods());
|
setupMethods(shhWatch, shhWatchMethods());
|
||||||
|
|
||||||
web3.setProvider = function(provider) {
|
web3.setProvider = function(provider) {
|
||||||
provider.onmessage = messageHandler;
|
//provider.onmessage = messageHandler; // there will be no async calls, to remove
|
||||||
web3.provider.set(provider);
|
web3.provider.set(provider);
|
||||||
web3.provider.sendQueued();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// callled when there is new incoming message
|
/// callled when there is new incoming message
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -57,17 +57,19 @@ var ProviderManager = function() {
|
||||||
|
|
||||||
/// sends outgoing requests, if provider is not available, enqueue the request
|
/// sends outgoing requests, if provider is not available, enqueue the request
|
||||||
ProviderManager.prototype.send = function(data) {
|
ProviderManager.prototype.send = function(data) {
|
||||||
data._id = this.id;
|
|
||||||
|
|
||||||
data.args = data.args || [];
|
data.args = data.args || [];
|
||||||
this.id++;
|
data._id = this.id++;
|
||||||
|
|
||||||
if (this.provider === undefined) {
|
if (this.provider === undefined) {
|
||||||
console.error('provider is not set');
|
console.error('provider is not set');
|
||||||
return JSON.stringify({result: 'error, provider is not set'});
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.provider.send(data);
|
//TODO: handle error here?
|
||||||
|
var result = this.provider.send(data);
|
||||||
|
result = JSON.parse(result);
|
||||||
|
return result.result;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// setups provider, which will be used for sending messages
|
/// setups provider, which will be used for sending messages
|
||||||
|
@ -80,14 +82,6 @@ ProviderManager.prototype.set = function(provider) {
|
||||||
this.ready = true;
|
this.ready = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// resends queued messages
|
|
||||||
ProviderManager.prototype.sendQueued = function() {
|
|
||||||
for(var i = 0; this.queued.length; i++) {
|
|
||||||
// Resend
|
|
||||||
this.send(this.queued[i]);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/// @returns true if the provider i properly set
|
/// @returns true if the provider i properly set
|
||||||
ProviderManager.prototype.installed = function() {
|
ProviderManager.prototype.installed = function() {
|
||||||
return this.provider !== undefined;
|
return this.provider !== undefined;
|
||||||
|
|
23
lib/web3.js
23
lib/web3.js
|
@ -129,14 +129,10 @@ var setupMethods = function (obj, methods) {
|
||||||
obj[method.name] = function () {
|
obj[method.name] = function () {
|
||||||
var args = Array.prototype.slice.call(arguments);
|
var args = Array.prototype.slice.call(arguments);
|
||||||
var call = typeof method.call === 'function' ? method.call(args) : method.call;
|
var call = typeof method.call === 'function' ? method.call(args) : method.call;
|
||||||
var result = web3.provider.send({
|
return web3.provider.send({
|
||||||
call: call,
|
call: call,
|
||||||
args: args
|
args: args
|
||||||
});
|
});
|
||||||
|
|
||||||
result = JSON.parse(result);
|
|
||||||
return result.result;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -147,24 +143,17 @@ var setupProperties = function (obj, properties) {
|
||||||
properties.forEach(function (property) {
|
properties.forEach(function (property) {
|
||||||
var proto = {};
|
var proto = {};
|
||||||
proto.get = function () {
|
proto.get = function () {
|
||||||
var result = web3.provider.send({
|
return web3.provider.send({
|
||||||
call: property.getter
|
call: property.getter
|
||||||
});
|
});
|
||||||
|
|
||||||
result = JSON.parse(result);
|
|
||||||
return result.result;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (property.setter) {
|
if (property.setter) {
|
||||||
proto.set = function (val) {
|
proto.set = function (val) {
|
||||||
var result = web3.provider.send({
|
return web3.provider.send({
|
||||||
call: property.setter,
|
call: property.setter,
|
||||||
args: [val]
|
args: [val]
|
||||||
});
|
});
|
||||||
|
|
||||||
result = JSON.parse(result);
|
|
||||||
return result.result;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
Object.defineProperty(obj, property.name, proto);
|
Object.defineProperty(obj, property.name, proto);
|
||||||
|
@ -172,6 +161,7 @@ var setupProperties = function (obj, properties) {
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: import from a dependency, don't duplicate.
|
// TODO: import from a dependency, don't duplicate.
|
||||||
|
// TODO: use bignumber for that!
|
||||||
var hexToDec = function (hex) {
|
var hexToDec = function (hex) {
|
||||||
return parseInt(hex, 16).toString();
|
return parseInt(hex, 16).toString();
|
||||||
};
|
};
|
||||||
|
@ -330,9 +320,8 @@ var shhWatch = {
|
||||||
setupMethods(shhWatch, shhWatchMethods());
|
setupMethods(shhWatch, shhWatchMethods());
|
||||||
|
|
||||||
web3.setProvider = function(provider) {
|
web3.setProvider = function(provider) {
|
||||||
provider.onmessage = messageHandler;
|
//provider.onmessage = messageHandler; // there will be no async calls, to remove
|
||||||
web3.provider.set(provider);
|
web3.provider.set(provider);
|
||||||
web3.provider.sendQueued();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// callled when there is new incoming message
|
/// callled when there is new incoming message
|
||||||
|
|
Loading…
Reference in New Issue