Merge pull request #942 from ethereum/fixInput

Misc fixes
pull/1/head
yann300 7 years ago committed by GitHub
commit 1a38fbfb45
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/app/execution/txExecution.js
  2. 2
      src/app/execution/txFormat.js
  3. 2
      src/app/execution/txListener.js
  4. 4
      src/app/panels/terminal.js
  5. 7
      src/app/tabs/run-tab.js
  6. 19
      test-browser/tests/units/testRecorder.js

@ -57,13 +57,13 @@ module.exports = {
var error = `VM error: ${txResult.result.vm.exceptionError}.\n` var error = `VM error: ${txResult.result.vm.exceptionError}.\n`
var msg var msg
if (txResult.result.vm.exceptionError === errorCode.INVALID_OPCODE) { if (txResult.result.vm.exceptionError === errorCode.INVALID_OPCODE) {
msg = `\tThe constructor should be payable if you send value.\n\tThe execution might have thrown.\n` msg = `\t\n\tThe execution might have thrown.\n`
ret.error = true ret.error = true
} else if (txResult.result.vm.exceptionError === errorCode.OUT_OF_GAS) { } else if (txResult.result.vm.exceptionError === errorCode.OUT_OF_GAS) {
msg = `\tThe transaction ran out of gas. Please increase the Gas Limit.\n` msg = `\tThe transaction ran out of gas. Please increase the Gas Limit.\n`
ret.error = true ret.error = true
} else if (txResult.result.vm.exceptionError === errorCode.REVERT) { } else if (txResult.result.vm.exceptionError === errorCode.REVERT) {
msg = `\tThe transaction has been reverted to the initial state.\n` msg = `\tThe transaction has been reverted to the initial state.\nNote: The constructor should be payable if you send value.`
ret.error = true ret.error = true
} else if (txResult.result.vm.exceptionError === errorCode.STATIC_STATE_CHANGE) { } else if (txResult.result.vm.exceptionError === errorCode.STATIC_STATE_CHANGE) {
msg = `\tState changes is not allowed in Static Call context\n` msg = `\tState changes is not allowed in Static Call context\n`

@ -138,7 +138,7 @@ module.exports = {
} }
var bytecode = library.evm.bytecode.object var bytecode = library.evm.bytecode.object
if (bytecode.indexOf('_') >= 0) { if (bytecode.indexOf('_') >= 0) {
this.linkBytecode(libraryName, contracts, udapp, (err, bytecode) => { this.linkBytecode(library, contracts, udapp, (err, bytecode) => {
if (err) callback(err) if (err) callback(err)
else this.deployLibrary(libraryName, libraryShortName, library, contracts, udapp, callback, callbackStep) else this.deployLibrary(libraryName, libraryShortName, library, contracts, udapp, callback, callbackStep)
}, callbackStep) }, callbackStep)

@ -217,7 +217,7 @@ class TxListener {
var contracts = this._api.contracts() var contracts = this._api.contracts()
if (!contracts) return cb() if (!contracts) return cb()
var contractName var contractName
if (!tx.to) { if (!tx.to || tx.to === '0x0') { // testrpc returns 0x0 in that case
// contract creation / resolve using the creation bytes code // contract creation / resolve using the creation bytes code
// if web3: we have to call getTransactionReceipt to get the created address // if web3: we have to call getTransactionReceipt to get the created address
// if VM: created address already included // if VM: created address already included

@ -67,9 +67,6 @@ var css = csjs`
display : flex; display : flex;
flex-direction : column; flex-direction : column;
height : 100%; height : 100%;
padding-left : 5px;
padding-right : 5px;
padding-bottom : 3px;
overflow-y : auto; overflow-y : auto;
font-family : monospace; font-family : monospace;
} }
@ -129,7 +126,6 @@ var css = csjs`
word-break : break-all; word-break : break-all;
outline : none; outline : none;
font-family : monospace; font-family : monospace;
font-family: FontAwesome;
} }
.search { .search {
display: flex; display: flex;

@ -214,7 +214,7 @@ function runTab (container, appAPI, appEvents, opts) {
var el = yo` var el = yo`
<div class="${css.runTabView}" id="runTabView"> <div class="${css.runTabView}" id="runTabView">
${settings(appAPI, appEvents)} ${settings(container, appAPI, appEvents)}
${contractDropdown(events, appAPI, appEvents, instanceContainer)} ${contractDropdown(events, appAPI, appEvents, instanceContainer)}
${pendingTxsContainer} ${pendingTxsContainer}
${instanceContainer} ${instanceContainer}
@ -243,7 +243,7 @@ function runTab (container, appAPI, appEvents, opts) {
setInterval(() => { setInterval(() => {
updateAccountBalances(container, appAPI) updateAccountBalances(container, appAPI)
updatePendingTxs(container, appAPI) updatePendingTxs(container, appAPI)
}, 500) }, 10000)
events.register('clearInstance', () => { events.register('clearInstance', () => {
instanceContainer.innerHTML = '' // clear the instances list instanceContainer.innerHTML = '' // clear the instances list
@ -498,7 +498,7 @@ function contractDropdown (events, appAPI, appEvents, instanceContainer) {
/* ------------------------------------------------ /* ------------------------------------------------
section SETTINGS: Environment, Account, Gas, Value section SETTINGS: Environment, Account, Gas, Value
------------------------------------------------ */ ------------------------------------------------ */
function settings (appAPI, appEvents) { function settings (container, appAPI, appEvents) {
// SETTINGS HTML // SETTINGS HTML
var net = yo`<span class=${css.network}></span>` var net = yo`<span class=${css.network}></span>`
const updateNetwork = () => { const updateNetwork = () => {
@ -574,6 +574,7 @@ function settings (appAPI, appEvents) {
appEvents.udapp.register('transactionExecuted', (error, from, to, data, lookupOnly, txResult) => { appEvents.udapp.register('transactionExecuted', (error, from, to, data, lookupOnly, txResult) => {
if (error) return if (error) return
if (!lookupOnly) el.querySelector('#value').value = '0' if (!lookupOnly) el.querySelector('#value').value = '0'
updateAccountBalances(container, appAPI)
}) })
return el return el

@ -2,6 +2,7 @@
var contractHelper = require('../../helpers/contracts') var contractHelper = require('../../helpers/contracts')
module.exports = { module.exports = {
'@disabled': true, // run by compiling.j
'@sources': function () { '@sources': function () {
return sources return sources
}, },
@ -22,8 +23,16 @@ module.exports = {
.click('i[class^="clearinstance"]') .click('i[class^="clearinstance"]')
.perform((client, done) => { .perform((client, done) => {
contractHelper.testContracts(browser, 'testRecorder.sol', sources[0]['browser/testRecorder.sol'], ['testRecorder'], function () { contractHelper.testContracts(browser, 'testRecorder.sol', sources[0]['browser/testRecorder.sol'], ['testRecorder'], function () {
contractHelper.createContract(browser, '12', function () { done()
browser.clickFunction('set - transact (not payable)', {types: 'uint256 _p', values: '34'}) })
})
.perform((client, done) => {
contractHelper.createContract(browser, '12', function () {
done()
})
})
.perform((client, done) => {
browser.clickFunction('set - transact (not payable)', {types: 'uint256 _p', values: '34'})
.click('i.savetransaction').modalFooterOKClick().getEditorValue(function (result) { .click('i.savetransaction').modalFooterOKClick().getEditorValue(function (result) {
var parsed = JSON.parse(result) var parsed = JSON.parse(result)
browser.assert.equal(JSON.stringify(parsed.transactions[0].record.parameters), JSON.stringify(scenario.transactions[0].record.parameters)) browser.assert.equal(JSON.stringify(parsed.transactions[0].record.parameters), JSON.stringify(scenario.transactions[0].record.parameters))
@ -36,10 +45,10 @@ module.exports = {
browser.assert.equal(JSON.stringify(parsed.transactions[1].record.name), JSON.stringify(scenario.transactions[1].record.name)) browser.assert.equal(JSON.stringify(parsed.transactions[1].record.name), JSON.stringify(scenario.transactions[1].record.name))
browser.assert.equal(JSON.stringify(parsed.transactions[1].record.type), JSON.stringify(scenario.transactions[1].record.type)) browser.assert.equal(JSON.stringify(parsed.transactions[1].record.type), JSON.stringify(scenario.transactions[1].record.type))
browser.assert.equal(JSON.stringify(parsed.transactions[1].record.from), JSON.stringify(scenario.transactions[1].record.from)) browser.assert.equal(JSON.stringify(parsed.transactions[1].record.from), JSON.stringify(scenario.transactions[1].record.from))
callback() done()
}) })
}) }).perform(() => {
}) callback()
}) })
}) })
} }

Loading…
Cancel
Save