diff options
author | Dan Finlay <542863+danfinlay@users.noreply.github.com> | 2018-08-23 04:31:42 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-23 04:31:42 +0800 |
commit | f30b726df79f1ffe0ba088dba9f3ca730ee7d103 (patch) | |
tree | 8829957eae2f9013dc6def202ff11dcf9280035b /app/scripts/lib/account-tracker.js | |
parent | f495c0e9e03fff740bce5e94c0d14254c2c497e2 (diff) | |
parent | bf6d624e769eb5486b5c491165fad1862435669b (diff) | |
download | tangerine-wallet-browser-f30b726df79f1ffe0ba088dba9f3ca730ee7d103.tar tangerine-wallet-browser-f30b726df79f1ffe0ba088dba9f3ca730ee7d103.tar.gz tangerine-wallet-browser-f30b726df79f1ffe0ba088dba9f3ca730ee7d103.tar.bz2 tangerine-wallet-browser-f30b726df79f1ffe0ba088dba9f3ca730ee7d103.tar.lz tangerine-wallet-browser-f30b726df79f1ffe0ba088dba9f3ca730ee7d103.tar.xz tangerine-wallet-browser-f30b726df79f1ffe0ba088dba9f3ca730ee7d103.tar.zst tangerine-wallet-browser-f30b726df79f1ffe0ba088dba9f3ca730ee7d103.zip |
Merge pull request #5122 from MetaMask/lazy-account-tracker
Network IO Optimization: Lazy AccountTracker
Diffstat (limited to 'app/scripts/lib/account-tracker.js')
-rw-r--r-- | app/scripts/lib/account-tracker.js | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/app/scripts/lib/account-tracker.js b/app/scripts/lib/account-tracker.js index b7e2c7cbe..3a52d5e8d 100644 --- a/app/scripts/lib/account-tracker.js +++ b/app/scripts/lib/account-tracker.js @@ -43,10 +43,24 @@ class AccountTracker { this._provider = opts.provider this._query = pify(new EthQuery(this._provider)) this._blockTracker = opts.blockTracker - // subscribe to latest block - this._blockTracker.on('latest', this._updateForBlock.bind(this)) // blockTracker.currentBlock may be null this._currentBlockNumber = this._blockTracker.getCurrentBlock() + // bind function for easier listener syntax + this._updateForBlock = this._updateForBlock.bind(this) + } + + start () { + // remove first to avoid double add + this._blockTracker.removeListener('latest', this._updateForBlock) + // add listener + this._blockTracker.addListener('latest', this._updateForBlock) + // fetch account balances + this._updateAccounts() + } + + stop () { + // remove listener + this._blockTracker.removeListener('latest', this._updateForBlock) } /** |