mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
account-tracker - only track blocks when there are activeControllerConnections
This commit is contained in:
parent
3ac2b40dcf
commit
a2654108be
@ -43,10 +43,24 @@ class AccountTracker {
|
|||||||
this._provider = opts.provider
|
this._provider = opts.provider
|
||||||
this._query = pify(new EthQuery(this._provider))
|
this._query = pify(new EthQuery(this._provider))
|
||||||
this._blockTracker = opts.blockTracker
|
this._blockTracker = opts.blockTracker
|
||||||
// subscribe to latest block
|
|
||||||
this._blockTracker.on('latest', this._updateForBlock.bind(this))
|
|
||||||
// blockTracker.currentBlock may be null
|
// blockTracker.currentBlock may be null
|
||||||
this._currentBlockNumber = this._blockTracker.getCurrentBlock()
|
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -131,6 +131,14 @@ module.exports = class MetamaskController extends EventEmitter {
|
|||||||
provider: this.provider,
|
provider: this.provider,
|
||||||
blockTracker: this.blockTracker,
|
blockTracker: this.blockTracker,
|
||||||
})
|
})
|
||||||
|
// start and stop polling for balances based on activeControllerConnections
|
||||||
|
this.on('controllerConnectionChanged', (activeControllerConnections) => {
|
||||||
|
if (activeControllerConnections > 0) {
|
||||||
|
this.accountTracker.start()
|
||||||
|
} else {
|
||||||
|
this.accountTracker.stop()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
// key mgmt
|
// key mgmt
|
||||||
const additionalKeyrings = [TrezorKeyring, LedgerBridgeKeyring]
|
const additionalKeyrings = [TrezorKeyring, LedgerBridgeKeyring]
|
||||||
|
Loading…
Reference in New Issue
Block a user