aboutsummaryrefslogtreecommitdiffstats
path: root/packages/sol-tracing-utils/src/utils.ts
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2019-01-17 22:59:00 +0800
committerFabio Berger <me@fabioberger.com>2019-01-17 22:59:00 +0800
commit293e93729176b06f7e3cf78c798f48ddf360e311 (patch)
treee47909d281ae7da6b7c9e6af76757373ad485705 /packages/sol-tracing-utils/src/utils.ts
parentfe2f97dabd1511918051161c882c57bcc1d41ac2 (diff)
parent0b23aaca2619b888dd4e15774d5c543f79f4588d (diff)
downloaddexon-0x-contracts-293e93729176b06f7e3cf78c798f48ddf360e311.tar
dexon-0x-contracts-293e93729176b06f7e3cf78c798f48ddf360e311.tar.gz
dexon-0x-contracts-293e93729176b06f7e3cf78c798f48ddf360e311.tar.bz2
dexon-0x-contracts-293e93729176b06f7e3cf78c798f48ddf360e311.tar.lz
dexon-0x-contracts-293e93729176b06f7e3cf78c798f48ddf360e311.tar.xz
dexon-0x-contracts-293e93729176b06f7e3cf78c798f48ddf360e311.tar.zst
dexon-0x-contracts-293e93729176b06f7e3cf78c798f48ddf360e311.zip
Merge branch 'development' into fix/dev-tools-pages/finalTouches
* development: (22 commits) Fix linter Update packages/sol-tracing-utils/src/trace_collection_subprovider.ts Update packages/sol-tracing-utils/CHANGELOG.json Update packages/sol-tracing-utils/CHANGELOG.json Add PR numbers Fix/simplify handling of revert trace snippets Fix a bug when TraceCollectionSubprovider was hanging on the fake Geth snapshot transaction Fix a bug when a custom Geth tracer didn't return stack entries for DELEGATECALL Revert devnet mining period from 1 to 0 update team info, add brent Publish Updated CHANGELOGS Add commented-out pre-publish checks Add additional check to make sure user was added to our DockerHub org Update test for required amountAvailableToFill Add actual error message thrown Flag order-watcher as having a Docker image to publish Add publish to DockerHub step to publish flow Flesh out postpublish configs in packageJSON type Add pre-publish check to ensure publisher is logged in to docker cmdline ...
Diffstat (limited to 'packages/sol-tracing-utils/src/utils.ts')
-rw-r--r--packages/sol-tracing-utils/src/utils.ts16
1 files changed, 12 insertions, 4 deletions
diff --git a/packages/sol-tracing-utils/src/utils.ts b/packages/sol-tracing-utils/src/utils.ts
index 644321f32..89c158ee7 100644
--- a/packages/sol-tracing-utils/src/utils.ts
+++ b/packages/sol-tracing-utils/src/utils.ts
@@ -8,6 +8,7 @@ import { ContractData, LineColumn, SingleFileSourceRange } from './types';
// This is the minimum length of valid contract bytecode. The Solidity compiler
// metadata is 86 bytes. If you add the '0x' prefix, we get 88.
const MIN_CONTRACT_BYTECODE_LENGTH = 88;
+const STATICCALL_GAS_COST = 40;
export const utils = {
compareLineColumn(lhs: LineColumn, rhs: LineColumn): number {
@@ -76,10 +77,17 @@ export const utils = {
normalizeStructLogs(structLogs: StructLog[]): StructLog[] {
if (structLogs[0].depth === 1) {
// Geth uses 1-indexed depth counter whilst ganache starts from 0
- const newStructLogs = _.map(structLogs, structLog => ({
- ...structLog,
- depth: structLog.depth - 1,
- }));
+ const newStructLogs = _.map(structLogs, structLog => {
+ const newStructLog = {
+ ...structLog,
+ depth: structLog.depth - 1,
+ };
+ if (newStructLog.op === 'STATICCALL') {
+ // HACK(leo): Geth traces sometimes returns those gas costs incorrectly as very big numbers so we manually fix them.
+ newStructLog.gasCost = STATICCALL_GAS_COST;
+ }
+ return newStructLog;
+ });
return newStructLogs;
}
return structLogs;