Improve error messages when unable to find bytecode
This commit is contained in:
@@ -1,4 +1,13 @@
|
||||
[
|
||||
{
|
||||
"version": "2.0.1",
|
||||
"changes": [
|
||||
{
|
||||
"note": "Improve error messages when unable to find matching bytecode",
|
||||
"pr": 1558
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"changes": [
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
"@0x/sol-tracing-utils": "^4.0.1",
|
||||
"@0x/subproviders": "^2.1.11",
|
||||
"@0x/typescript-typings": "^3.0.8",
|
||||
"chalk": "^2.3.0",
|
||||
"ethereum-types": "^1.1.6",
|
||||
"ethereumjs-util": "^5.1.1",
|
||||
"lodash": "^4.17.5",
|
||||
|
||||
@@ -11,6 +11,7 @@ import {
|
||||
TraceCollectionSubprovider,
|
||||
utils,
|
||||
} from '@0x/sol-tracing-utils';
|
||||
import chalk from 'chalk';
|
||||
import { stripHexPrefix } from 'ethereumjs-util';
|
||||
import * as _ from 'lodash';
|
||||
import { getLogger, levels, Logger } from 'loglevel';
|
||||
@@ -71,9 +72,21 @@ export class RevertTraceSubprovider extends TraceCollectionSubprovider {
|
||||
const bytecode = await this._web3Wrapper.getContractCodeAsync(evmCallStackEntry.address);
|
||||
const contractData = utils.getContractDataIfExists(this._contractsData, bytecode);
|
||||
if (_.isUndefined(contractData)) {
|
||||
const shortenHex = (hex: string) => {
|
||||
/**
|
||||
* Length chooses so that both error messages are of the same length
|
||||
* and it's enough data to figure out which artifact has a problem.
|
||||
*/
|
||||
const length = 18;
|
||||
return `${hex.substr(0, length + 2)}...${hex.substr(hex.length - length, length)}`;
|
||||
};
|
||||
const errMsg = isContractCreation
|
||||
? `Unknown contract creation transaction`
|
||||
: `Transaction to an unknown address: ${evmCallStackEntry.address}`;
|
||||
? `Unable to find matching bytecode for contract creation ${chalk.bold(
|
||||
shortenHex(bytecode),
|
||||
)}, please check your artifacts. Ignoring...`
|
||||
: `Unable to find matching bytecode for contract address ${chalk.bold(
|
||||
evmCallStackEntry.address,
|
||||
)}, please check your artifacts. Ignoring...`;
|
||||
this._logger.warn(errMsg);
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user