Merge pull request #421 from ethereum/useEther_5013

use ethers 5.0.13
pull/5370/head
yann300 4 years ago committed by GitHub
commit 32598730e5
  1. 4
      apps/remix-ide-e2e/src/commands/testFunction.ts
  2. 54
      apps/remix-ide-e2e/src/tests/transactionExecution.test.ts
  3. 19
      libs/remix-lib/src/execution/eventsDecoder.js
  4. 3
      libs/remix-lib/src/execution/txHelper.js
  5. 1672
      package-lock.json
  6. 2
      package.json

@ -48,9 +48,9 @@ class TestFunction extends EventEmitter {
const equal: boolean = deepequal(logs[key], expectedValue[key]) const equal: boolean = deepequal(logs[key], expectedValue[key])
if (!equal) { if (!equal) {
browser.assert.fail(`Expected ${expectedValue[key]} but got ${logs[key]}`) browser.assert.fail(`Expected ${JSON.stringify(expectedValue[key])} but got ${JSON.stringify(logs[key])}`)
} else { } else {
browser.assert.ok(true, `Expected value matched returned value ${expectedValue[key]}`) browser.assert.ok(true, `Expected value matched returned value ${JSON.stringify(expectedValue[key])}`)
} }
}) })
this.emit('complete') this.emit('complete')

@ -119,34 +119,30 @@ module.exports = {
'1': 'bytes8[4]: _b8ret 0x1234000000000000,0x1234000000000000,0x1234000000000000,0x1234000000000000' '1': 'bytes8[4]: _b8ret 0x1234000000000000,0x1234000000000000,0x1234000000000000,0x1234000000000000'
}, },
logs: [ logs: [
{ {"from":"0x8c1ed7e19abaa9f23c476da86dc1577f1ef401f5",
'from': '0x8c1ed7e19abaa9f23c476da86dc1577f1ef401f5', "topic":"0xd30981760edbf605bda8689e945f622877f230c9a77cbfbd448aa4b7d8ac6e7f",
'topic': '0xd30981760edbf605bda8689e945f622877f230c9a77cbfbd448aa4b7d8ac6e7f', "event":"event1",
'event': 'event1', "args":{
'args': { "0":"-123",
'0': '-123', "1":"123",
'1': '123', "2":{
'2': { "_isIndexed":true,
'hash': '0x9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658', "hash":"0x9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658"
'type': 'Indexed' },
}, "3":"0x12340000",
'3': '0x12340000', "4":"test _ test _ test _ test test _ test test _ test test _ test test _ test test _ test test _ test "}
'4': 'test _ test _ test _ test test _ test test _ test test _ test test _ test test _ test test _ test ', }]
'_i': '-123',
'_u': '123',
'_str': {
'hash': '0x9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658',
'type': 'Indexed'
},
'_b': '0x12340000',
'_notIndexed': 'test _ test _ test _ test test _ test test _ test test _ test test _ test test _ test test _ test ',
'length': 5
}
}
]
}) })
.click('*[data-id="deployAndRunClearInstances"]') .click('*[data-id="deployAndRunClearInstances"]')
.end() },
'Should Compile and Deploy a contract which has an event declaring a function as parameter': function (browser: NightwatchBrowser) {
browser.testContracts('eventFunctionInput.sol', sources[3]['browser/eventFunctionInput.sol'], ['C'])
.clickLaunchIcon('udapp')
.selectAccount('0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c') // this account will be used for this test suite
.click('#runTabView button[class^="instanceButton"]')
.waitForElementPresent('.instance:nth-of-type(2)')
.end()
}, },
tearDown: sauce tearDown: sauce
@ -207,5 +203,11 @@ const sources = [
_b8ret = _b8; _b8ret = _b8;
emit event1(-123, 123, "test", hex"1234", "test _ test _ test _ test test _ test test _ test test _ test test _ test test _ test test _ test "); emit event1(-123, 123, "test", hex"1234", "test _ test _ test _ test test _ test test _ test test _ test test _ test test _ test test _ test ");
} }
}`}},
// https://github.com/ethereum/remix-project/issues/404
{'browser/eventFunctionInput.sol': {content: `
pragma solidity >= 0.7.0;
contract C {
event Test(function() external);
}`}} }`}}
] ]

@ -40,8 +40,8 @@ class EventsDecoder {
const eventABI = {} const eventABI = {}
const abi = new ethers.utils.Interface(contract.abi) const abi = new ethers.utils.Interface(contract.abi)
for (let e in abi.events) { for (let e in abi.events) {
const event = abi.events[e] const event = abi.getEvent(e)
eventABI[event.topic.replace('0x', '')] = { event: event.name, inputs: event.inputs, object: event, abi: abi } eventABI[abi.getEventTopic(e).replace('0x', '')] = { event: event.name, inputs: event.inputs, object: event, abi: abi }
} }
return eventABI return eventABI
} }
@ -57,14 +57,21 @@ class EventsDecoder {
_event (hash, eventsABI) { _event (hash, eventsABI) {
for (let k in eventsABI) { for (let k in eventsABI) {
if (eventsABI[k][hash]) { if (eventsABI[k][hash]) {
return eventsABI[k][hash] let event = eventsABI[k][hash]
for (let input of event.inputs) {
if (input.type === 'function') {
input.type = 'bytes24'
input.baseType = 'bytes24'
}
}
return event
} }
} }
return null return null
} }
_stringifyBigNumber (value) { _stringifyBigNumber (value) {
return value._ethersType === 'BigNumber' ? value.toString() : value return value._isBigNumber ? value.toString() : value
} }
_stringifyEvent (value) { _stringifyEvent (value) {
@ -89,8 +96,8 @@ class EventsDecoder {
if (eventAbi) { if (eventAbi) {
const decodedlog = eventAbi.abi.parseLog(log) const decodedlog = eventAbi.abi.parseLog(log)
const decoded = {} const decoded = {}
for (const v in decodedlog.values) { for (const v in decodedlog.args) {
decoded[v] = this._stringifyEvent(decodedlog.values[v]) decoded[v] = this._stringifyEvent(decodedlog.args[v])
} }
events.push({ from: log.address, topic: topicId, event: eventAbi.event, args: decoded }) events.push({ from: log.address, topic: topicId, event: eventAbi.event, args: decoded })
} else { } else {

@ -36,8 +36,7 @@ module.exports = {
encodeFunctionId: function (funABI) { encodeFunctionId: function (funABI) {
if (funABI.type === 'fallback' || funABI.type === 'receive') return '0x' if (funABI.type === 'fallback' || funABI.type === 'receive') return '0x'
let abi = new ethers.utils.Interface([funABI]) let abi = new ethers.utils.Interface([funABI])
abi = abi.functions[funABI.name] return abi.getSighash(funABI.name)
return abi.sighash
}, },
sortAbiFunction: function (contractabi) { sortAbiFunction: function (contractabi) {

1672
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -199,7 +199,7 @@
"eslint": "6.8.0", "eslint": "6.8.0",
"eslint-config-prettier": "^6.11.0", "eslint-config-prettier": "^6.11.0",
"ethereumjs-util": "^6.2.0", "ethereumjs-util": "^6.2.0",
"ethers": "^4.0.27", "ethers": "^5.0.13",
"events": "^3.0.0", "events": "^3.0.0",
"execr": "^1.0.1", "execr": "^1.0.1",
"exorcist": "^0.4.0", "exorcist": "^0.4.0",

Loading…
Cancel
Save