From 94d771f6ddc27f8dcb461241f5934d588b53a0b8 Mon Sep 17 00:00:00 2001 From: Miguel Lo-A-Foe Date: Thu, 18 Jun 2020 11:13:24 +0200 Subject: [PATCH 1/3] format fromBlock parameter on re-subscription --- packages/web3-core-subscriptions/src/subscription.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/web3-core-subscriptions/src/subscription.js b/packages/web3-core-subscriptions/src/subscription.js index cf15b2e827f..0ed229a43ae 100644 --- a/packages/web3-core-subscriptions/src/subscription.js +++ b/packages/web3-core-subscriptions/src/subscription.js @@ -25,6 +25,7 @@ var _ = require('underscore'); var errors = require('web3-core-helpers').errors; var EventEmitter = require('eventemitter3'); +var formatters = require('web3-core-helpers').formatters; function Subscription(options) { EventEmitter.call(this); @@ -227,7 +228,7 @@ Subscription.prototype.subscribe = function() { // a dropped connection may have resulted in gaps in the logs... if (this.lastBlock && _.isObject(this.options.params)){ payload.params[1] = this.options.params - payload.params[1].fromBlock = this.lastBlock +1; + payload.params[1].fromBlock = formatters.inputBlockNumberFormatter(this.lastBlock + 1); } // if id is there unsubscribe first From a629577444465ab61a0da3800a57432c6b1e938c Mon Sep 17 00:00:00 2001 From: Miguel Lo-A-Foe Date: Mon, 22 Jun 2020 10:14:26 +0200 Subject: [PATCH 2/3] move use of inputBlockNumberFormatter in order to avoid interfering with its presence check --- packages/web3-core-subscriptions/src/subscription.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/web3-core-subscriptions/src/subscription.js b/packages/web3-core-subscriptions/src/subscription.js index 0ed229a43ae..7623be09ccc 100644 --- a/packages/web3-core-subscriptions/src/subscription.js +++ b/packages/web3-core-subscriptions/src/subscription.js @@ -228,7 +228,7 @@ Subscription.prototype.subscribe = function() { // a dropped connection may have resulted in gaps in the logs... if (this.lastBlock && _.isObject(this.options.params)){ payload.params[1] = this.options.params - payload.params[1].fromBlock = formatters.inputBlockNumberFormatter(this.lastBlock + 1); + payload.params[1].fromBlock = this.lastBlock +1; } // if id is there unsubscribe first @@ -246,6 +246,9 @@ Subscription.prototype.subscribe = function() { // copy the params to avoid race-condition with deletion below this block var blockParams = Object.assign({}, payload.params[1]); + // ensure the block number is properly formatted + blockParams.fromBlock = formatters.inputBlockNumberFormatter(blockParams.fromBlock) + this.options.requestManager.send({ method: 'eth_getLogs', params: [blockParams] From e7c69fba15616a7d60eeda1716a59928020d2db5 Mon Sep 17 00:00:00 2001 From: Miguel Lo-A-Foe Date: Mon, 22 Jun 2020 19:53:20 +0200 Subject: [PATCH 3/3] Revert "move use of inputBlockNumberFormatter in order to avoid interfering with its presence check" This reverts commit a629577444465ab61a0da3800a57432c6b1e938c. --- packages/web3-core-subscriptions/src/subscription.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/web3-core-subscriptions/src/subscription.js b/packages/web3-core-subscriptions/src/subscription.js index 7623be09ccc..0ed229a43ae 100644 --- a/packages/web3-core-subscriptions/src/subscription.js +++ b/packages/web3-core-subscriptions/src/subscription.js @@ -228,7 +228,7 @@ Subscription.prototype.subscribe = function() { // a dropped connection may have resulted in gaps in the logs... if (this.lastBlock && _.isObject(this.options.params)){ payload.params[1] = this.options.params - payload.params[1].fromBlock = this.lastBlock +1; + payload.params[1].fromBlock = formatters.inputBlockNumberFormatter(this.lastBlock + 1); } // if id is there unsubscribe first @@ -246,9 +246,6 @@ Subscription.prototype.subscribe = function() { // copy the params to avoid race-condition with deletion below this block var blockParams = Object.assign({}, payload.params[1]); - // ensure the block number is properly formatted - blockParams.fromBlock = formatters.inputBlockNumberFormatter(blockParams.fromBlock) - this.options.requestManager.send({ method: 'eth_getLogs', params: [blockParams]