|
|
|
@ -379,6 +379,7 @@ export function runTest (testName: string, testObject: any, contractDetails: Com |
|
|
|
|
}).on('error', async (err) => { |
|
|
|
|
const time: number = (Date.now() - startTime) / 1000.0 |
|
|
|
|
let errMsg = err.message |
|
|
|
|
let txHash |
|
|
|
|
if (err.reason) errMsg = `transaction reverted with the reason: ${err.reason}`
|
|
|
|
|
const resp: TestResultInterface = { |
|
|
|
|
type: 'testFailure', |
|
|
|
@ -389,12 +390,13 @@ export function runTest (testName: string, testObject: any, contractDetails: Com |
|
|
|
|
context: testName, |
|
|
|
|
web3 |
|
|
|
|
} |
|
|
|
|
if (err.message.includes('Transaction has been reverted by the EVM')) { |
|
|
|
|
const txHash = JSON.parse(err.message.replace('Transaction has been reverted by the EVM:', '')).transactionHash |
|
|
|
|
if (web3.eth && web3.eth.getHHLogsForTx) hhLogs = await web3.eth.getHHLogsForTx(txHash) |
|
|
|
|
if (err.receipt) txHash = err.receipt.transactionHash |
|
|
|
|
else if (err.message.includes('Transaction has been reverted by the EVM')) { |
|
|
|
|
txHash = JSON.parse(err.message.replace('Transaction has been reverted by the EVM:', '')).transactionHash |
|
|
|
|
} |
|
|
|
|
if (web3.eth && web3.eth.getHHLogsForTx && txHash) hhLogs = await web3.eth.getHHLogsForTx(txHash) |
|
|
|
|
if (hhLogs && hhLogs.length) resp.hhLogs = hhLogs |
|
|
|
|
resp.debugTxHash = txHash |
|
|
|
|
} |
|
|
|
|
testCallback(undefined, resp) |
|
|
|
|
failureNum += 1 |
|
|
|
|
timePassed += time |
|
|
|
|