aboutsummaryrefslogtreecommitdiffstats
path: root/lib/web3.js
diff options
context:
space:
mode:
authorMarek Kotewicz <marek.kotewicz@gmail.com>2015-01-14 01:40:01 +0800
committerMarek Kotewicz <marek.kotewicz@gmail.com>2015-01-14 01:40:01 +0800
commit422dc05bb054b86d72b313edc2e7cb79dfb70ba3 (patch)
tree102bca194f11cdedc342e04fac790d7d7444021d /lib/web3.js
parent9a8f45ee30aafad9f40beb646cd0be846277e0ea (diff)
downloadgo-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar
go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar.gz
go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar.bz2
go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar.lz
go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar.xz
go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.tar.zst
go-tangerine-422dc05bb054b86d72b313edc2e7cb79dfb70ba3.zip
ProviderManager separated to providermanager.js file
Diffstat (limited to 'lib/web3.js')
-rw-r--r--lib/web3.js82
1 files changed, 1 insertions, 81 deletions
diff --git a/lib/web3.js b/lib/web3.js
index 527022c62..47decb8bd 100644
--- a/lib/web3.js
+++ b/lib/web3.js
@@ -24,6 +24,7 @@
*/
var Filter = require('./filter');
+var ProviderManager = require('./providermanager');
/// Recursively resolves all promises in given object and replaces the resolved values with promises
/// @param any object/array/promise/anything else..
@@ -374,87 +375,6 @@ var shhWatch = {
setupMethods(shhWatch, shhWatchMethods());
-/// Provider manager object prototype
-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();
-};
-
-/// sends outgoing requests, if provider is not available, enqueue the request
-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);
- }
-};
-
-/// setups provider, which will be used for sending messages
-ProviderManager.prototype.set = function(provider) {
- if(this.provider !== undefined && this.provider.unload !== undefined) {
- this.provider.unload();
- }
-
- this.provider = provider;
- 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
-ProviderManager.prototype.installed = function() {
- return this.provider !== undefined;
-};
-
-/// this method is only used, when we do not have native qt bindings and have to do polling on our own
-/// should be callled, on start watching for eth/shh changes
-ProviderManager.prototype.startPolling = function (data, pollId) {
- if (!this.provider || !this.provider.poll) {
- return;
- }
- this.polls.push({data: data, id: pollId});
-};
-
-/// should be called to stop polling for certain watch changes
-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();