Contract wrappers: Catch empty reverts on live networks (#2433)

* `@0x/utils`: Allow strict decoding of return values.

* `@0x/base-contract`: Catch empty call reverts on live networks.
`@0x/abi-gen`: Catch empty call reverts on live networks.

* `@0x/contracts-integrations`: Add mainnet contract wrapper `callAsync()` revert behavior tests.

* `@0x/contract-wrappers`: Regenerate wrappers to catch empty reverts on live networks.

* Update CHANGELOGs

* `@0x/contracts-integrations`: Fix solidity linter errors.

* `@0x/abi-gen`: Regenerate test outputs.

* `@0x/base-contract`: Update CHANGELOG.

Co-authored-by: Lawrence Forman <me@merklejerk.com>
This commit is contained in:
Lawrence Forman
2020-01-13 15:33:45 -05:00
committed by GitHub
parent 71731d223b
commit ebd08d9c63
33 changed files with 467 additions and 39 deletions

View File

@@ -11,14 +11,14 @@ chaiSetup.configure();
const expect = chai.expect;
describe('ABI Encoder: Method Encoding / Decoding', () => {
const defaultEncodingRules: AbiEncoder.EncodingRules = { shouldOptimize: false }; // optimizer is tested separately.
const defaultDecodingRules: AbiEncoder.DecodingRules = { shouldConvertStructsToObjects: false };
const defaultEncodingRules = { shouldOptimize: false }; // optimizer is tested separately.
const defaultDecodingRules = { shouldConvertStructsToObjects: false };
const runTest = <T>(
encoder: AbiEncoder.Method,
methodArgs: any,
expectedEncoding: string,
encodingRules: AbiEncoder.EncodingRules = defaultEncodingRules,
decodingRules: AbiEncoder.DecodingRules = defaultDecodingRules,
encodingRules = defaultEncodingRules,
decodingRules = defaultDecodingRules,
) => {
// Validate encoding
// note - the encoder takes an array of parameters as input;