From 4dff40f2c0b359c5f99aa22836d8469f81af644a Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Thu, 8 Aug 2019 14:23:52 -0400 Subject: [PATCH] add eth_unsubscribe --- remix-lib/src/execution/logsManager.js | 5 +++++ remix-simulator/README.md | 4 ++-- remix-simulator/src/methods/filters.js | 14 +++++++++++++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/remix-lib/src/execution/logsManager.js b/remix-lib/src/execution/logsManager.js index 8480c9a41f..1b6fcd8638 100644 --- a/remix-lib/src/execution/logsManager.js +++ b/remix-lib/src/execution/logsManager.js @@ -90,6 +90,11 @@ class LogsManager { return subscriptionId } + unsubscribe(subscriptionId) { + let subscriptionId = "0x" + crypto.randomBytes(16).toString('hex') + delete this.subscriptions[subscriptionId] + } + getLogsFor(params) { let results = [{ "logIndex": "0x1", // 1 diff --git a/remix-simulator/README.md b/remix-simulator/README.md index aeba1ec207..58aefb17e9 100644 --- a/remix-simulator/README.md +++ b/remix-simulator/README.md @@ -68,8 +68,8 @@ Implemented: * [_] bzz_hive (stub) * [_] bzz_info (stub) * [_] debug_traceTransaction -* [_] eth_subscribe -* [_] eth_unsubscribe +* [X] eth_subscribe +* [X] eth_unsubscribe * [_] miner_start * [_] miner_stop * [_] personal_listAccounts diff --git a/remix-simulator/src/methods/filters.js b/remix-simulator/src/methods/filters.js index eb73c5a3e6..a167cc4257 100644 --- a/remix-simulator/src/methods/filters.js +++ b/remix-simulator/src/methods/filters.js @@ -8,7 +8,8 @@ var Filters = function (_options) { Filters.prototype.methods = function () { return { eth_getLogs: this.eth_getLogs.bind(this), - eth_subscribe: this.eth_subscribe.bind(this) + eth_subscribe: this.eth_subscribe.bind(this), + eth_unsubscribe: this.eth_unsubscribe.bind(this) } } @@ -45,4 +46,15 @@ Filters.prototype.eth_subscribe = function (payload, cb) { cb(null, subscriptionId) } +Filters.prototype.eth_unsubscribe = function (payload, cb) { + console.dir("===============================") + console.dir("===============================") + console.dir("=== eth_unsubscribe") + console.dir(payload.params) + + executionContext.logsManager.unsubscribe(payload.params[0]) + + cb(null, true) +} + module.exports = Filters