Commit 08e26966 authored by Marek Kotewicz's avatar Marek Kotewicz

removed send queues from providermanager

parent c9693b47
...@@ -726,17 +726,19 @@ var ProviderManager = function() { ...@@ -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) { ...@@ -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) { ...@@ -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) { ...@@ -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) { ...@@ -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 = { ...@@ -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
......
This diff is collapsed.
This diff is collapsed.
...@@ -57,17 +57,19 @@ var ProviderManager = function() { ...@@ -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) { ...@@ -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;
......
...@@ -129,14 +129,10 @@ var setupMethods = function (obj, methods) { ...@@ -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) { ...@@ -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) { ...@@ -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 = { ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment