mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 01:39:44 +01:00
commit
338ebe5f40
@ -13,6 +13,7 @@ const PortStream = require('./lib/port-stream.js')
|
||||
const NotificationManager = require('./lib/notification-manager.js')
|
||||
const MetamaskController = require('./metamask-controller')
|
||||
const firstTimeState = require('./first-time-state')
|
||||
const setupRaven = require('./setupRaven')
|
||||
|
||||
const STORAGE_KEY = 'metamask-config'
|
||||
const METAMASK_DEBUG = 'GULP_METAMASK_DEBUG'
|
||||
@ -24,6 +25,10 @@ const platform = new ExtensionPlatform()
|
||||
const notificationManager = new NotificationManager()
|
||||
global.METAMASK_NOTIFIER = notificationManager
|
||||
|
||||
// setup sentry error reporting
|
||||
const release = platform.getVersion()
|
||||
setupRaven({ release })
|
||||
|
||||
let popupIsOpen = false
|
||||
|
||||
// state persistence
|
||||
|
@ -43,6 +43,28 @@ module.exports = class TransactionController extends EventEmitter {
|
||||
txHistoryLimit: opts.txHistoryLimit,
|
||||
getNetwork: this.getNetwork.bind(this),
|
||||
})
|
||||
|
||||
this.txStateManager.getFilteredTxList({
|
||||
status: 'unapproved',
|
||||
loadingDefaults: true,
|
||||
}).forEach((tx) => {
|
||||
this.addTxDefaults(tx)
|
||||
.then((txMeta) => {
|
||||
txMeta.loadingDefaults = false
|
||||
this.txStateManager.updateTx(txMeta, 'transactions: gas estimation for tx on boot')
|
||||
}).catch((error) => {
|
||||
this.txStateManager.setTxStatusFailed(tx.id, error)
|
||||
})
|
||||
})
|
||||
|
||||
this.txStateManager.getFilteredTxList({
|
||||
status: 'approved',
|
||||
}).forEach((txMeta) => {
|
||||
const txSignError = new Error('Transaction found as "approved" during boot - possibly stuck during signing')
|
||||
this.txStateManager.setTxStatusFailed(txMeta.id, txSignError)
|
||||
})
|
||||
|
||||
|
||||
this.store = this.txStateManager.store
|
||||
this.txStateManager.on('tx:status-update', this.emit.bind(this, 'tx:status-update'))
|
||||
this.nonceTracker = new NonceTracker({
|
||||
@ -171,11 +193,17 @@ module.exports = class TransactionController extends EventEmitter {
|
||||
this.addTx(txMeta)
|
||||
this.emit('newUnapprovedTx', txMeta)
|
||||
// add default tx params
|
||||
await this.addTxDefaults(txMeta)
|
||||
|
||||
try {
|
||||
await this.addTxDefaults(txMeta)
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
this.txStateManager.setTxStatusFailed(txMeta.id, error)
|
||||
throw error
|
||||
}
|
||||
txMeta.loadingDefaults = false
|
||||
// save txMeta
|
||||
this.txStateManager.updateTx(txMeta)
|
||||
|
||||
return txMeta
|
||||
}
|
||||
|
||||
|
@ -12,7 +12,8 @@ its passed ethquery
|
||||
and used to do things like calculate gas of a tx.
|
||||
*/
|
||||
|
||||
module.exports = class txProvideUtil {
|
||||
module.exports = class TxGasUtil {
|
||||
|
||||
constructor (provider) {
|
||||
this.query = new EthQuery(provider)
|
||||
}
|
||||
|
@ -8,10 +8,19 @@ const extension = require('extensionizer')
|
||||
const ExtensionPlatform = require('./platforms/extension')
|
||||
const NotificationManager = require('./lib/notification-manager')
|
||||
const notificationManager = new NotificationManager()
|
||||
const setupRaven = require('./setupRaven')
|
||||
|
||||
// create platform global
|
||||
global.platform = new ExtensionPlatform()
|
||||
|
||||
// setup sentry error reporting
|
||||
const release = global.platform.getVersion()
|
||||
setupRaven({ release })
|
||||
|
||||
// inject css
|
||||
// const css = MetaMaskUiCss()
|
||||
// injectCss(css)
|
||||
|
||||
// identify window type (popup, notification)
|
||||
const windowType = isPopupOrNotification()
|
||||
global.METAMASK_UI_TYPE = windowType
|
||||
|
24
app/scripts/setupRaven.js
Normal file
24
app/scripts/setupRaven.js
Normal file
@ -0,0 +1,24 @@
|
||||
const Raven = require('./vendor/raven.min.js')
|
||||
const METAMASK_DEBUG = 'GULP_METAMASK_DEBUG'
|
||||
const PROD = 'https://3567c198f8a8412082d32655da2961d0@sentry.io/273505'
|
||||
const DEV = 'https://f59f3dd640d2429d9d0e2445a87ea8e1@sentry.io/273496'
|
||||
|
||||
module.exports = setupRaven
|
||||
|
||||
// Setup raven / sentry remote error reporting
|
||||
function setupRaven(opts) {
|
||||
const { release } = opts
|
||||
let ravenTarget
|
||||
|
||||
if (METAMASK_DEBUG) {
|
||||
console.log('Setting up Sentry Remote Error Reporting: DEV')
|
||||
ravenTarget = DEV
|
||||
} else {
|
||||
console.log('Setting up Sentry Remote Error Reporting: PROD')
|
||||
ravenTarget = PROD
|
||||
}
|
||||
|
||||
Raven.config(ravenTarget, {
|
||||
release,
|
||||
}).install()
|
||||
}
|
3
app/scripts/vendor/raven.min.js
vendored
Normal file
3
app/scripts/vendor/raven.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -179,7 +179,7 @@ gulp.task('deps', function (cb) {
|
||||
|
||||
gulp.task('lint', function () {
|
||||
// Ignoring node_modules, dist/firefox, and docs folders:
|
||||
return gulp.src(['app/**/*.js', 'ui/**/*.js', 'mascara/src/*.js', 'mascara/server/*.js', '!node_modules/**', '!dist/firefox/**', '!docs/**', '!app/scripts/chromereload.js', '!mascara/test/jquery-3.1.0.min.js'])
|
||||
return gulp.src(['app/**/*.js', '!app/scripts/vendor/**/*.js', 'ui/**/*.js', 'mascara/src/*.js', 'mascara/server/*.js', '!node_modules/**', '!dist/firefox/**', '!docs/**', '!app/scripts/chromereload.js', '!mascara/test/jquery-3.1.0.min.js'])
|
||||
.pipe(eslint(fs.readFileSync(path.join(__dirname, '.eslintrc'))))
|
||||
// eslint.format() outputs the lint results to the console.
|
||||
// Alternatively use eslint.formatEach() (see Docs).
|
||||
|
@ -76,9 +76,10 @@
|
||||
"ensnare": "^1.0.0",
|
||||
"eslint-plugin-react": "^7.4.0",
|
||||
"eth-bin-to-ops": "^1.0.1",
|
||||
"eth-block-tracker": "^2.2.0",
|
||||
"eth-block-tracker": "^2.3.0",
|
||||
"eth-contract-metadata": "^1.1.4",
|
||||
"eth-json-rpc-filters": "^1.2.5",
|
||||
"eth-json-rpc-infura": "^2.0.5",
|
||||
"eth-json-rpc-infura": "^2.0.7",
|
||||
"eth-keyring-controller": "^2.1.4",
|
||||
"eth-contract-metadata": "^1.1.5",
|
||||
"eth-hd-keyring": "^1.2.1",
|
||||
@ -113,7 +114,7 @@
|
||||
"iframe-stream": "^3.0.0",
|
||||
"inject-css": "^0.1.1",
|
||||
"jazzicon": "^1.2.0",
|
||||
"json-rpc-engine": "3.2.0",
|
||||
"json-rpc-engine": "^3.5.0",
|
||||
"json-rpc-middleware-stream": "^1.0.1",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"lodash.memoize": "^4.1.2",
|
||||
@ -198,7 +199,7 @@
|
||||
"eslint-plugin-react": "^7.4.0",
|
||||
"eth-json-rpc-middleware": "^1.2.7",
|
||||
"fs-promise": "^2.0.3",
|
||||
"gulp": "github:gulpjs/gulp#4.0",
|
||||
"gulp": "github:gulpjs/gulp#6d71a658c61edb3090221579d8f97dbe086ba2ed",
|
||||
"gulp-babel": "^7.0.0",
|
||||
"gulp-if": "^2.0.2",
|
||||
"gulp-json-editor": "^2.2.1",
|
||||
|
@ -1,12 +1,12 @@
|
||||
const JsonRpcEngine = require('json-rpc-engine')
|
||||
const scaffoldMiddleware = require('eth-json-rpc-middleware/scaffold')
|
||||
const TestBlockchain = require('eth-block-tracker/test/util/testBlockMiddleware')
|
||||
|
||||
module.exports = {
|
||||
createEngineForTestData,
|
||||
providerFromEngine,
|
||||
scaffoldMiddleware,
|
||||
createEthJsQueryStub,
|
||||
createStubedProvider,
|
||||
createTestProviderTools,
|
||||
}
|
||||
|
||||
|
||||
@ -19,20 +19,13 @@ function providerFromEngine (engine) {
|
||||
return provider
|
||||
}
|
||||
|
||||
function createEthJsQueryStub (stubProvider) {
|
||||
return new Proxy({}, {
|
||||
get: (obj, method) => {
|
||||
return (...params) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
stubProvider.sendAsync({ method: `eth_${method}`, params }, (err, ress) => resolve(ress.result))
|
||||
})
|
||||
}
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
function createStubedProvider (resultStub) {
|
||||
function createTestProviderTools (opts = {}) {
|
||||
const engine = createEngineForTestData()
|
||||
engine.push(scaffoldMiddleware(resultStub))
|
||||
return providerFromEngine(engine)
|
||||
}
|
||||
const testBlockchain = new TestBlockchain()
|
||||
// handle provided hooks
|
||||
engine.push(scaffoldMiddleware(opts.scaffold || {}))
|
||||
// handle block tracker methods
|
||||
engine.push(testBlockchain.createMiddleware())
|
||||
const provider = providerFromEngine(engine)
|
||||
return { provider, engine, testBlockchain }
|
||||
}
|
||||
|
@ -3,7 +3,7 @@ const ethUtil = require('ethereumjs-util')
|
||||
const EthTx = require('ethereumjs-tx')
|
||||
const ObservableStore = require('obs-store')
|
||||
const clone = require('clone')
|
||||
const { createStubedProvider } = require('../stub/provider')
|
||||
const { createTestProviderTools } = require('../stub/provider')
|
||||
const PendingTransactionTracker = require('../../app/scripts/lib/pending-tx-tracker')
|
||||
const MockTxGen = require('../lib/mock-tx-gen')
|
||||
const sinon = require('sinon')
|
||||
@ -40,7 +40,7 @@ describe('PendingTransactionTracker', function () {
|
||||
txParams: { from: '0x1678a085c290ebd122dc42cba69373b5953b831d'},
|
||||
}
|
||||
providerResultStub = {}
|
||||
provider = createStubedProvider(providerResultStub)
|
||||
provider = createTestProviderTools({ scaffold: providerResultStub }).provider
|
||||
|
||||
pendingTxTracker = new PendingTransactionTracker({
|
||||
provider,
|
||||
|
@ -1,11 +1,12 @@
|
||||
const assert = require('assert')
|
||||
const ethUtil = require('ethereumjs-util')
|
||||
const EthTx = require('ethereumjs-tx')
|
||||
const EthjsQuery = require('ethjs-query')
|
||||
const ObservableStore = require('obs-store')
|
||||
const sinon = require('sinon')
|
||||
const TransactionController = require('../../app/scripts/controllers/transactions')
|
||||
const TxGasUtils = require('../../app/scripts/lib/tx-gas-utils')
|
||||
const { createStubedProvider, createEthJsQueryStub } = require('../stub/provider')
|
||||
const { createTestProviderTools } = require('../stub/provider')
|
||||
|
||||
const noop = () => true
|
||||
const currentNetworkId = 42
|
||||
@ -14,11 +15,18 @@ const privKey = new Buffer('8718b9618a37d1fc78c436511fc6df3c8258d3250635bba617f3
|
||||
|
||||
|
||||
describe('Transaction Controller', function () {
|
||||
let txController, provider, providerResultStub
|
||||
let txController, provider, providerResultStub, testBlockchain
|
||||
|
||||
beforeEach(function () {
|
||||
providerResultStub = {}
|
||||
provider = createStubedProvider(providerResultStub)
|
||||
providerResultStub = {
|
||||
// 1 gwei
|
||||
eth_gasPrice: '0x0de0b6b3a7640000',
|
||||
// by default, all accounts are external accounts (not contracts)
|
||||
eth_getCode: '0x',
|
||||
}
|
||||
const providerTools = createTestProviderTools({ scaffold: providerResultStub })
|
||||
provider = providerTools.provider
|
||||
testBlockchain = providerTools.testBlockchain
|
||||
|
||||
txController = new TransactionController({
|
||||
provider,
|
||||
@ -30,10 +38,7 @@ describe('Transaction Controller', function () {
|
||||
resolve()
|
||||
}),
|
||||
})
|
||||
txController.query = createEthJsQueryStub(provider)
|
||||
txController.txGasUtil.query = createEthJsQueryStub(provider)
|
||||
txController.nonceTracker.getNonceLock = () => Promise.resolve({ nextNonce: 0, releaseLock: noop })
|
||||
txController.txProviderUtils = new TxGasUtils(txController.provider)
|
||||
})
|
||||
|
||||
describe('#getState', function () {
|
||||
@ -155,15 +160,6 @@ describe('Transaction Controller', function () {
|
||||
})
|
||||
|
||||
describe('#addUnapprovedTransaction', function () {
|
||||
let addTxDefaults
|
||||
beforeEach(() => {
|
||||
addTxDefaults = txController.addTxDefaults
|
||||
txController.addTxDefaults = function addTxDefaultsStub () { return Promise.resolve() }
|
||||
|
||||
})
|
||||
afterEach(() => {
|
||||
txController.addTxDefaults = addTxDefaults
|
||||
})
|
||||
|
||||
it('should add an unapproved transaction and return a valid txMeta', function (done) {
|
||||
txController.addUnapprovedTransaction({})
|
||||
@ -219,7 +215,7 @@ describe('Transaction Controller', function () {
|
||||
var sample = {
|
||||
value: '0x01',
|
||||
}
|
||||
txController.txProviderUtils.validateTxParams(sample).then(() => {
|
||||
txController.txGasUtil.validateTxParams(sample).then(() => {
|
||||
done()
|
||||
}).catch(done)
|
||||
})
|
||||
@ -228,7 +224,7 @@ describe('Transaction Controller', function () {
|
||||
var sample = {
|
||||
value: '-0x01',
|
||||
}
|
||||
txController.txProviderUtils.validateTxParams(sample)
|
||||
txController.txGasUtil.validateTxParams(sample)
|
||||
.then(() => done('expected to thrown on negativity values but didn\'t'))
|
||||
.catch((err) => {
|
||||
assert.ok(err, 'error')
|
||||
|
@ -1,12 +1,12 @@
|
||||
const assert = require('assert')
|
||||
const TxGasUtils = require('../../app/scripts/lib/tx-gas-utils')
|
||||
const { createStubedProvider } = require('../stub/provider')
|
||||
const { createTestProviderTools } = require('../stub/provider')
|
||||
|
||||
describe('Tx Gas Util', function () {
|
||||
let txGasUtil, provider, providerResultStub
|
||||
beforeEach(function () {
|
||||
providerResultStub = {}
|
||||
provider = createStubedProvider(providerResultStub)
|
||||
provider = createTestProviderTools({ scaffold: providerResultStub }).provider
|
||||
txGasUtil = new TxGasUtils({
|
||||
provider,
|
||||
})
|
||||
|
@ -24,7 +24,7 @@ Network.prototype.render = function () {
|
||||
let iconName, hoverText
|
||||
|
||||
if (networkNumber === 'loading') {
|
||||
return h('span.pointer', {
|
||||
return h('span.pointer.network-indicator', {
|
||||
style: {
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
|
123
yarn.lock
123
yarn.lock
@ -531,7 +531,7 @@ async-eventemitter@^0.2.2:
|
||||
dependencies:
|
||||
async "^2.4.0"
|
||||
|
||||
async-eventemitter@ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c:
|
||||
async-eventemitter@ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c, "async-eventemitter@github:ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c":
|
||||
version "0.2.3"
|
||||
resolved "https://codeload.github.com/ahultgren/async-eventemitter/tar.gz/fa06e39e56786ba541c180061dbf2c0a5bbf951c"
|
||||
dependencies:
|
||||
@ -3718,7 +3718,7 @@ eth-block-tracker@^1.0.7:
|
||||
pify "^2.3.0"
|
||||
tape "^4.6.3"
|
||||
|
||||
eth-block-tracker@^2.1.2, eth-block-tracker@^2.2.0, eth-block-tracker@^2.2.2:
|
||||
eth-block-tracker@^2.1.2, eth-block-tracker@^2.2.2:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-2.2.2.tgz#b3d72cd82ba5ee37471d22bac4f56387ee4137cf"
|
||||
dependencies:
|
||||
@ -3729,6 +3729,19 @@ eth-block-tracker@^2.1.2, eth-block-tracker@^2.2.0, eth-block-tracker@^2.2.2:
|
||||
pify "^2.3.0"
|
||||
tape "^4.6.3"
|
||||
|
||||
eth-block-tracker@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-2.3.0.tgz#4cb782c8ef8fde2f5dc894921ae1f5c1077c35a4"
|
||||
dependencies:
|
||||
async-eventemitter ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c
|
||||
eth-query "^2.1.0"
|
||||
ethereumjs-tx "^1.3.3"
|
||||
ethereumjs-util "^5.1.3"
|
||||
ethjs-util "^0.1.3"
|
||||
json-rpc-engine "^3.6.0"
|
||||
pify "^2.3.0"
|
||||
tape "^4.6.3"
|
||||
|
||||
eth-contract-metadata@^1.1.5:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/eth-contract-metadata/-/eth-contract-metadata-1.3.0.tgz#caf3cdc3d69995b6d7532c9d96fedbad46361ca8"
|
||||
@ -3750,7 +3763,18 @@ eth-hd-keyring@^1.2.1:
|
||||
ethereumjs-wallet "^0.6.0"
|
||||
events "^1.1.1"
|
||||
|
||||
eth-json-rpc-filters@^1.2.4:
|
||||
eth-hd-keyring@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/eth-hd-keyring/-/eth-hd-keyring-1.2.2.tgz#ad5f479074436a93b439b0b95c79095c28791882"
|
||||
dependencies:
|
||||
bip39 "^2.2.0"
|
||||
eth-sig-util "^1.4.2"
|
||||
ethereumjs-util "^5.1.1"
|
||||
ethereumjs-wallet "^0.6.0"
|
||||
events "^1.1.1"
|
||||
xtend "^4.0.1"
|
||||
|
||||
eth-json-rpc-filters@^1.2.5:
|
||||
version "1.2.5"
|
||||
resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-1.2.5.tgz#2d119830d91c300396e0b00a00e884de69a5cd8b"
|
||||
dependencies:
|
||||
@ -3759,12 +3783,13 @@ eth-json-rpc-filters@^1.2.4:
|
||||
json-rpc-engine "^3.4.0"
|
||||
lodash.flatmap "^4.5.0"
|
||||
|
||||
eth-json-rpc-infura@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-1.0.2.tgz#f0c5e7e04e2b65336b2a5c049bc64a2980da7a0a"
|
||||
eth-json-rpc-infura@^2.0.7:
|
||||
version "2.0.11"
|
||||
resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-2.0.11.tgz#134bf54ff15e96a9116424c0db9b66aa079bfbbe"
|
||||
dependencies:
|
||||
eth-json-rpc-middleware "^1.5.0"
|
||||
json-rpc-engine "^3.4.0"
|
||||
json-rpc-error "^2.0.0"
|
||||
tape "^4.8.0"
|
||||
|
||||
eth-json-rpc-middleware@^1.0.0, eth-json-rpc-middleware@^1.2.7, eth-json-rpc-middleware@^1.5.0:
|
||||
@ -3784,16 +3809,16 @@ eth-json-rpc-middleware@^1.0.0, eth-json-rpc-middleware@^1.2.7, eth-json-rpc-mid
|
||||
promise-to-callback "^1.0.0"
|
||||
tape "^4.6.3"
|
||||
|
||||
eth-keyring-controller@^2.1.3:
|
||||
version "2.1.3"
|
||||
resolved "https://registry.yarnpkg.com/eth-keyring-controller/-/eth-keyring-controller-2.1.3.tgz#4ba11f677daaf68f48e1b438df420f616b876aeb"
|
||||
eth-keyring-controller@^2.1.4:
|
||||
version "2.1.4"
|
||||
resolved "https://registry.yarnpkg.com/eth-keyring-controller/-/eth-keyring-controller-2.1.4.tgz#0518d9d89af0d8af362a2821e4d550a8be14a807"
|
||||
dependencies:
|
||||
bip39 "^2.4.0"
|
||||
bluebird "^3.5.0"
|
||||
browser-passworder "^2.0.3"
|
||||
eth-hd-keyring "^1.2.1"
|
||||
eth-hd-keyring "^1.2.2"
|
||||
eth-sig-util "^1.4.0"
|
||||
eth-simple-keyring "^1.2.0"
|
||||
eth-simple-keyring "^1.2.1"
|
||||
ethereumjs-util "^5.1.2"
|
||||
loglevel "^1.5.0"
|
||||
obs-store "^2.4.1"
|
||||
@ -3819,14 +3844,22 @@ eth-sig-util@^1.3.0, eth-sig-util@^1.4.0:
|
||||
ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git"
|
||||
ethereumjs-util "^5.1.1"
|
||||
|
||||
eth-simple-keyring@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/eth-simple-keyring/-/eth-simple-keyring-1.2.0.tgz#b151d2c75877e2cddf94ae5feae78214cf198846"
|
||||
eth-sig-util@^1.4.2:
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210"
|
||||
dependencies:
|
||||
eth-sig-util "^1.3.0"
|
||||
ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git"
|
||||
ethereumjs-util "^5.1.1"
|
||||
|
||||
eth-simple-keyring@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/eth-simple-keyring/-/eth-simple-keyring-1.2.1.tgz#6d7b352dc5a9a5020d61f69faf21efb2f6363f45"
|
||||
dependencies:
|
||||
eth-sig-util "^1.4.2"
|
||||
ethereumjs-util "^5.1.1"
|
||||
ethereumjs-wallet "^0.6.0"
|
||||
events "^1.1.1"
|
||||
xtend "^4.0.1"
|
||||
|
||||
eth-token-tracker@^1.1.4:
|
||||
version "1.1.4"
|
||||
@ -3922,6 +3955,18 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereum
|
||||
rlp "^2.0.0"
|
||||
secp256k1 "^3.0.1"
|
||||
|
||||
ethereumjs-util@^5.1.3:
|
||||
version "5.1.3"
|
||||
resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.1.3.tgz#0c1f6efb1da9c5b6720a65697859fc0be6672df0"
|
||||
dependencies:
|
||||
bn.js "^4.8.0"
|
||||
create-hash "^1.1.2"
|
||||
ethjs-util "^0.1.3"
|
||||
keccak "^1.0.2"
|
||||
rlp "^2.0.0"
|
||||
safe-buffer "^5.1.1"
|
||||
secp256k1 "^3.0.1"
|
||||
|
||||
"ethereumjs-util@github:ethereumjs/ethereumjs-util#ac5d0908536b447083ea422b435da27f26615de9":
|
||||
version "5.0.1"
|
||||
resolved "https://codeload.github.com/ethereumjs/ethereumjs-util/tar.gz/ac5d0908536b447083ea422b435da27f26615de9"
|
||||
@ -4347,7 +4392,7 @@ falafel@^2.1.0:
|
||||
isarray "0.0.1"
|
||||
object-keys "^1.0.6"
|
||||
|
||||
fancy-log@^1.1.0, fancy-log@^1.3.2:
|
||||
fancy-log@^1.1.0:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.2.tgz#f41125e3d84f2e7d89a43d06d958c8f78be16be1"
|
||||
dependencies:
|
||||
@ -6280,18 +6325,19 @@ json-parse-better-errors@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a"
|
||||
|
||||
json-rpc-engine@3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.2.0.tgz#d34dff106c8339c337a894da801f73b1f77b1bc8"
|
||||
json-rpc-engine@^3.0.1, json-rpc-engine@^3.1.0, json-rpc-engine@^3.4.0:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.4.0.tgz#8a1647a7f2cc7018f4802f41ec8208d281f78bfc"
|
||||
dependencies:
|
||||
async "^2.0.1"
|
||||
babel-preset-env "^1.3.2"
|
||||
babelify "^7.3.0"
|
||||
json-rpc-error "^2.0.0"
|
||||
promise-to-callback "^1.0.0"
|
||||
|
||||
json-rpc-engine@^3.0.1, json-rpc-engine@^3.1.0, json-rpc-engine@^3.4.0:
|
||||
version "3.4.0"
|
||||
resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.4.0.tgz#8a1647a7f2cc7018f4802f41ec8208d281f78bfc"
|
||||
json-rpc-engine@^3.5.0, json-rpc-engine@^3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.6.0.tgz#0cc673dcb4b71103523fec81d1bba195a457f993"
|
||||
dependencies:
|
||||
async "^2.0.1"
|
||||
babel-preset-env "^1.3.2"
|
||||
@ -8248,6 +8294,10 @@ pbkdf2@^3.0.3, pbkdf2@^3.0.9:
|
||||
safe-buffer "^5.0.1"
|
||||
sha.js "^2.4.8"
|
||||
|
||||
percentile@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/percentile/-/percentile-1.2.0.tgz#fa3b05c1ffd355b35228529834e5fa37f0bd465d"
|
||||
|
||||
performance-now@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
|
||||
@ -10940,6 +10990,7 @@ uglify-js@^3.0.5:
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.7.tgz#28463e7c7451f89061d2b235e30925bf5625e14d"
|
||||
dependencies:
|
||||
commander "~2.13.0"
|
||||
source-map "~0.6.1"
|
||||
|
||||
uglify-to-browserify@~1.0.0:
|
||||
version "1.0.2"
|
||||
@ -11202,7 +11253,7 @@ vfile@^2.0.0:
|
||||
unist-util-stringify-position "^1.0.0"
|
||||
vfile-message "^1.0.0"
|
||||
|
||||
vinyl-buffer@^1.0.0:
|
||||
vinyl-buffer@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/vinyl-buffer/-/vinyl-buffer-1.0.1.tgz#96c1a3479b8c5392542c612029013b5b27f88bbf"
|
||||
dependencies:
|
||||
@ -11348,7 +11399,7 @@ weak@^1.0.0:
|
||||
bindings "^1.2.1"
|
||||
nan "^2.0.5"
|
||||
|
||||
web3-provider-engine@^13.3.2, web3-provider-engine@^13.4.0:
|
||||
web3-provider-engine@^13.3.2:
|
||||
version "13.4.0"
|
||||
resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-13.4.0.tgz#78c2794ba926d0c5b94c6e8955abb994bb8e8854"
|
||||
dependencies:
|
||||
@ -11372,6 +11423,30 @@ web3-provider-engine@^13.3.2, web3-provider-engine@^13.4.0:
|
||||
xhr "^2.2.0"
|
||||
xtend "^4.0.1"
|
||||
|
||||
web3-provider-engine@^13.5.0:
|
||||
version "13.5.6"
|
||||
resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-13.5.6.tgz#a321a2cf40db78fb478c2c20244c3195c48ef048"
|
||||
dependencies:
|
||||
async "^2.5.0"
|
||||
clone "^2.0.0"
|
||||
eth-block-tracker "^2.2.2"
|
||||
eth-sig-util "^1.3.0"
|
||||
ethereumjs-block "^1.2.2"
|
||||
ethereumjs-tx "^1.2.0"
|
||||
ethereumjs-util "^5.1.1"
|
||||
ethereumjs-vm "^2.0.2"
|
||||
fetch-ponyfill "^4.0.0"
|
||||
json-rpc-error "^2.0.0"
|
||||
json-stable-stringify "^1.0.1"
|
||||
promise-to-callback "^1.0.0"
|
||||
readable-stream "^2.2.9"
|
||||
request "^2.67.0"
|
||||
semaphore "^1.0.3"
|
||||
solc "^0.4.2"
|
||||
tape "^4.4.0"
|
||||
xhr "^2.2.0"
|
||||
xtend "^4.0.1"
|
||||
|
||||
web3-stream-provider@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/web3-stream-provider/-/web3-stream-provider-3.0.1.tgz#f5a593a8eefe808f85eb5fb1f344e5838050f814"
|
||||
|
Loading…
Reference in New Issue
Block a user