Merge pull request #1161 from ethereum/yann300-patch-8

Update universalDapp.js - support ethereumjs-vm 2.5.0
pull/5370/head
yann300 6 years ago committed by GitHub
commit 92a1cfdfd4
  1. 16
      remix-lib/src/universalDapp.js

@ -37,7 +37,6 @@ UniversalDApp.prototype.resetEnvironment = function () {
this._addAccount('dae9801649ba2d95a21e688b56f77905e5667c44ce868ec83f82e838712a2c7a', '0x56BC75E2D63100000') this._addAccount('dae9801649ba2d95a21e688b56f77905e5667c44ce868ec83f82e838712a2c7a', '0x56BC75E2D63100000')
this._addAccount('d74aa6d18aa79a05f3473dd030a97d3305737cbc8337d940344345c1f6b72eea', '0x56BC75E2D63100000') this._addAccount('d74aa6d18aa79a05f3473dd030a97d3305737cbc8337d940344345c1f6b72eea', '0x56BC75E2D63100000')
this._addAccount('71975fbf7fe448e004ac7ae54cad0a383c3906055a65468714156a07385e96ce', '0x56BC75E2D63100000') this._addAccount('71975fbf7fe448e004ac7ae54cad0a383c3906055a65468714156a07385e96ce', '0x56BC75E2D63100000')
executionContext.vm().stateManager.cache.flush(function () {})
} }
// TODO: most params here can be refactored away in txRunner // TODO: most params here can be refactored away in txRunner
this.txRunner = new TxRunner(this.accounts, { this.txRunner = new TxRunner(this.accounts, {
@ -65,7 +64,6 @@ UniversalDApp.prototype.resetAPI = function (transactionContextAPI) {
UniversalDApp.prototype.createVMAccount = function (privateKey, balance, cb) { UniversalDApp.prototype.createVMAccount = function (privateKey, balance, cb) {
this._addAccount(privateKey, balance) this._addAccount(privateKey, balance)
executionContext.vm().stateManager.cache.flush(function () {})
privateKey = Buffer.from(privateKey, 'hex') privateKey = Buffer.from(privateKey, 'hex')
cb(null, '0x' + ethJSUtil.privateToAddress(privateKey).toString('hex')) cb(null, '0x' + ethJSUtil.privateToAddress(privateKey).toString('hex'))
} }
@ -84,7 +82,6 @@ UniversalDApp.prototype.newAccount = function (password, passwordPromptCb, cb) {
privateKey = crypto.randomBytes(32) privateKey = crypto.randomBytes(32)
} while (!ethJSUtil.isValidPrivate(privateKey)) } while (!ethJSUtil.isValidPrivate(privateKey))
this._addAccount(privateKey, '0x56BC75E2D63100000') this._addAccount(privateKey, '0x56BC75E2D63100000')
executionContext.vm().stateManager.cache.flush(function () {})
cb(null, '0x' + ethJSUtil.privateToAddress(privateKey).toString('hex')) cb(null, '0x' + ethJSUtil.privateToAddress(privateKey).toString('hex'))
} }
} }
@ -101,7 +98,14 @@ UniversalDApp.prototype._addAccount = function (privateKey, balance) {
var address = ethJSUtil.privateToAddress(privateKey) var address = ethJSUtil.privateToAddress(privateKey)
// FIXME: we don't care about the callback, but we should still make this proper // FIXME: we don't care about the callback, but we should still make this proper
executionContext.vm().stateManager.putAccountBalance(address, balance || '0xf00000000000000001', function cb () {}) let stateManager = executionContext.vm().stateManager
stateManager.getAccount(address, (error, account) => {
if (error) return console.log(error)
account.balance = balance || '0xf00000000000000001'
stateManager.putAccount(address, account, function cb (error) {
if (error) console.log(error)
})
})
self.accounts['0x' + address.toString('hex')] = { privateKey: privateKey, nonce: 0 } self.accounts['0x' + address.toString('hex')] = { privateKey: privateKey, nonce: 0 }
} }
} }
@ -144,11 +148,11 @@ UniversalDApp.prototype.getBalance = function (address, cb) {
return cb('No accounts?') return cb('No accounts?')
} }
executionContext.vm().stateManager.getAccountBalance(Buffer.from(address, 'hex'), function (err, res) { executionContext.vm().stateManager.getAccount(Buffer.from(address, 'hex'), function (err, res) {
if (err) { if (err) {
cb('Account not found') cb('Account not found')
} else { } else {
cb(null, new BN(res).toString(10)) cb(null, new BN(res.balance).toString(10))
} }
}) })
} }

Loading…
Cancel
Save