From 6cae35d0ce15814d77b7ca30adedae65ccaf4959 Mon Sep 17 00:00:00 2001 From: Ryan Ghods Date: Tue, 28 Jul 2020 10:07:26 -0700 Subject: [PATCH] Fix parsing of non-`eth_subscription` provider events (#3660) * fix parsing provider subscription by checking for result.params.subscripton, as other non-subscription events may come down the pipe * add to changelog --- CHANGELOG.md | 1 + packages/web3-core-requestmanager/src/index.js | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ec7b9e9c9b..6a4e3ddd412 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -279,3 +279,4 @@ Released with 1.0.0-beta.37 code base. ### Fixed +- Fix parsing of non-`eth_subscription` provider events (#3660) \ No newline at end of file diff --git a/packages/web3-core-requestmanager/src/index.js b/packages/web3-core-requestmanager/src/index.js index 8915dc76ce4..9b3c591d077 100644 --- a/packages/web3-core-requestmanager/src/index.js +++ b/packages/web3-core-requestmanager/src/index.js @@ -101,8 +101,8 @@ RequestManager.prototype.setProvider = function (provider, net) { this.provider.on('data', function data(result, deprecatedResult) { result = result || deprecatedResult; // this is for possible old providers, which may had the error first handler - // check for result.method, to prevent old providers errors to pass as result - if (result.method && _this.subscriptions.has(result.params.subscription)) { + // if result is a subscription, call callback for that subscription + if (result.method && result.params && result.params.subscription && _this.subscriptions.has(result.params.subscription)) { _this.subscriptions.get(result.params.subscription).callback(null, result.params.result); } });