aboutsummaryrefslogtreecommitdiffstats
path: root/app/scripts/lib
diff options
context:
space:
mode:
Diffstat (limited to 'app/scripts/lib')
-rw-r--r--app/scripts/lib/account-tracker.js4
-rw-r--r--app/scripts/lib/events-proxy.js31
2 files changed, 34 insertions, 1 deletions
diff --git a/app/scripts/lib/account-tracker.js b/app/scripts/lib/account-tracker.js
index e2892b1ce..07fc32b10 100644
--- a/app/scripts/lib/account-tracker.js
+++ b/app/scripts/lib/account-tracker.js
@@ -11,6 +11,7 @@ const async = require('async')
const EthQuery = require('eth-query')
const ObservableStore = require('obs-store')
const EventEmitter = require('events').EventEmitter
+const ethUtil = require('ethereumjs-util')
function noop () {}
@@ -59,8 +60,9 @@ class AccountTracker extends EventEmitter {
_updateForBlock (block) {
const blockNumber = '0x' + block.number.toString('hex')
this._currentBlockNumber = blockNumber
+ const currentBlockGasLimit = ethUtil.addHexPrefix(block.gasLimit.toString())
- this.store.updateState({ currentBlockGasLimit: `0x${block.gasLimit.toString('hex')}` })
+ this.store.updateState({ currentBlockGasLimit })
async.parallel([
this._updateAccounts.bind(this),
diff --git a/app/scripts/lib/events-proxy.js b/app/scripts/lib/events-proxy.js
new file mode 100644
index 000000000..d1199a278
--- /dev/null
+++ b/app/scripts/lib/events-proxy.js
@@ -0,0 +1,31 @@
+module.exports = function createEventEmitterProxy(eventEmitter, listeners) {
+ let target = eventEmitter
+ const eventHandlers = listeners || {}
+ const proxy = new Proxy({}, {
+ get: (obj, name) => {
+ // intercept listeners
+ if (name === 'on') return addListener
+ if (name === 'setTarget') return setTarget
+ if (name === 'proxyEventHandlers') return eventHandlers
+ return target[name]
+ },
+ set: (obj, name, value) => {
+ target[name] = value
+ return true
+ },
+ })
+ function setTarget (eventEmitter) {
+ target = eventEmitter
+ // migrate listeners
+ Object.keys(eventHandlers).forEach((name) => {
+ eventHandlers[name].forEach((handler) => target.on(name, handler))
+ })
+ }
+ function addListener (name, handler) {
+ if (!eventHandlers[name]) eventHandlers[name] = []
+ eventHandlers[name].push(handler)
+ target.on(name, handler)
+ }
+ if (listeners) proxy.setTarget(eventEmitter)
+ return proxy
+} \ No newline at end of file