diff options
author | Fabio Berger <me@fabioberger.com> | 2018-06-19 18:35:32 +0800 |
---|---|---|
committer | Fabio Berger <me@fabioberger.com> | 2018-06-19 18:35:32 +0800 |
commit | 08ea71cb243067d8f4a4b08b2ed83ee11225d494 (patch) | |
tree | 0b9e213e05a050ede2be9d11ed2e040dc0947a81 /packages/contracts/src/utils | |
parent | 0d0c1af7f741834f076a604b776d4542c4dbb6ec (diff) | |
parent | 0bfcf79e79b762a9fb98e90b8e6310c781cfae97 (diff) | |
download | dexon-sol-tools-08ea71cb243067d8f4a4b08b2ed83ee11225d494.tar dexon-sol-tools-08ea71cb243067d8f4a4b08b2ed83ee11225d494.tar.gz dexon-sol-tools-08ea71cb243067d8f4a4b08b2ed83ee11225d494.tar.bz2 dexon-sol-tools-08ea71cb243067d8f4a4b08b2ed83ee11225d494.tar.lz dexon-sol-tools-08ea71cb243067d8f4a4b08b2ed83ee11225d494.tar.xz dexon-sol-tools-08ea71cb243067d8f4a4b08b2ed83ee11225d494.tar.zst dexon-sol-tools-08ea71cb243067d8f4a4b08b2ed83ee11225d494.zip |
Merge branch 'v2-prototype' into feature/combinatorial-testing
* v2-prototype: (40 commits)
Increase number of columns in relayer grid for small screens
Make isValidSignature public
Make batchFill methods return FIllResults struct
Remove remove_tags script
Small fixes
Use semver package instead of getNextPatchVersion
Use semver library instead of semverUtils
small fixes
Show all errors of a given kind at once rather then throwing after the first instance is encountered
fix package.json
Add more prepublish checks
remove remove_tags script
Create a shared Image component
Adjust version in changelog
Update RelayerGridTile render logic to incorportate colors and logos
Add max width to top bar
Set max-width for LargeLayout
Finish last onboarding step
Finish set allowance step
Add onboarding assets
...
Diffstat (limited to 'packages/contracts/src/utils')
-rw-r--r-- | packages/contracts/src/utils/revert_trace.ts | 21 | ||||
-rw-r--r-- | packages/contracts/src/utils/web3_wrapper.ts | 15 |
2 files changed, 32 insertions, 4 deletions
diff --git a/packages/contracts/src/utils/revert_trace.ts b/packages/contracts/src/utils/revert_trace.ts new file mode 100644 index 000000000..0bf8384bc --- /dev/null +++ b/packages/contracts/src/utils/revert_trace.ts @@ -0,0 +1,21 @@ +import { devConstants } from '@0xproject/dev-utils'; +import { RevertTraceSubprovider, SolCompilerArtifactAdapter } from '@0xproject/sol-cov'; +import * as _ from 'lodash'; + +let revertTraceSubprovider: RevertTraceSubprovider; + +export const revertTrace = { + getRevertTraceSubproviderSingleton(): RevertTraceSubprovider { + if (_.isUndefined(revertTraceSubprovider)) { + revertTraceSubprovider = revertTrace._getRevertTraceSubprovider(); + } + return revertTraceSubprovider; + }, + _getRevertTraceSubprovider(): RevertTraceSubprovider { + const defaultFromAddress = devConstants.TESTRPC_FIRST_ADDRESS; + const solCompilerArtifactAdapter = new SolCompilerArtifactAdapter(); + const isVerbose = true; + const subprovider = new RevertTraceSubprovider(solCompilerArtifactAdapter, defaultFromAddress, isVerbose); + return subprovider; + }, +}; diff --git a/packages/contracts/src/utils/web3_wrapper.ts b/packages/contracts/src/utils/web3_wrapper.ts index c475d96a9..c9d83a02d 100644 --- a/packages/contracts/src/utils/web3_wrapper.ts +++ b/packages/contracts/src/utils/web3_wrapper.ts @@ -2,9 +2,11 @@ import { devConstants, env, EnvVars, web3Factory } from '@0xproject/dev-utils'; import { prependSubprovider } from '@0xproject/subproviders'; import { logUtils } from '@0xproject/utils'; import { Web3Wrapper } from '@0xproject/web3-wrapper'; +import * as _ from 'lodash'; import { coverage } from './coverage'; import { profiler } from './profiler'; +import { revertTrace } from './revert_trace'; enum ProviderType { Ganache = 'ganache', @@ -48,10 +50,11 @@ const providerConfigs = testProvider === ProviderType.Ganache ? ganacheConfigs : export const provider = web3Factory.getRpcProvider(providerConfigs); const isCoverageEnabled = env.parseBoolean(EnvVars.SolidityCoverage); const isProfilerEnabled = env.parseBoolean(EnvVars.SolidityProfiler); -if (isCoverageEnabled && isProfilerEnabled) { - throw new Error( - `Unfortunately for now you can't enable both coverage and profiler at the same time. They both use coverage.json file and there is no way to configure that.`, - ); +const isRevertTraceEnabled = env.parseBoolean(EnvVars.SolidityRevertTrace); +const enabledSubproviderCount = _.filter([isCoverageEnabled, isProfilerEnabled, isRevertTraceEnabled], _.identity) + .length; +if (enabledSubproviderCount > 1) { + throw new Error(`Only one of coverage, profiler, or revert trace subproviders can be enabled at a time`); } if (isCoverageEnabled) { const coverageSubprovider = coverage.getCoverageSubproviderSingleton(); @@ -71,5 +74,9 @@ if (isProfilerEnabled) { profilerSubprovider.stop(); prependSubprovider(provider, profilerSubprovider); } +if (isRevertTraceEnabled) { + const revertTraceSubprovider = revertTrace.getRevertTraceSubproviderSingleton(); + prependSubprovider(provider, revertTraceSubprovider); +} export const web3Wrapper = new Web3Wrapper(provider); |