aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/src
diff options
context:
space:
mode:
authorAlex Browne <stephenalexbrowne@gmail.com>2018-06-05 09:10:42 +0800
committerAlex Browne <stephenalexbrowne@gmail.com>2018-06-07 03:40:30 +0800
commitbca62c813d2e821c56968916615861366402435b (patch)
tree041ea056d813b0db32520f7ca9e25e9799530c47 /packages/contracts/src
parentae1cf74dcd84b0a39a5781f63c1c3f2beb0e1857 (diff)
downloaddexon-0x-contracts-bca62c813d2e821c56968916615861366402435b.tar
dexon-0x-contracts-bca62c813d2e821c56968916615861366402435b.tar.gz
dexon-0x-contracts-bca62c813d2e821c56968916615861366402435b.tar.bz2
dexon-0x-contracts-bca62c813d2e821c56968916615861366402435b.tar.lz
dexon-0x-contracts-bca62c813d2e821c56968916615861366402435b.tar.xz
dexon-0x-contracts-bca62c813d2e821c56968916615861366402435b.tar.zst
dexon-0x-contracts-bca62c813d2e821c56968916615861366402435b.zip
Throw in web3-wrapper when rawCallResult is '0x'
Diffstat (limited to 'packages/contracts/src')
-rw-r--r--packages/contracts/src/utils/assertions.ts12
-rw-r--r--packages/contracts/src/utils/constants.ts1
2 files changed, 13 insertions, 0 deletions
diff --git a/packages/contracts/src/utils/assertions.ts b/packages/contracts/src/utils/assertions.ts
index 1e8d58b9f..4fc410363 100644
--- a/packages/contracts/src/utils/assertions.ts
+++ b/packages/contracts/src/utils/assertions.ts
@@ -30,3 +30,15 @@ export function expectInsufficientFunds<T>(p: Promise<T>): PromiseLike<void> {
);
});
}
+
+export function expectRevertOrContractCallFailed<T>(p: Promise<T>): PromiseLike<void> {
+ return expect(p)
+ .to.be.rejected()
+ .then(e => {
+ expect(e).to.satisfy(
+ (err: Error) =>
+ _.includes(err.message, constants.REVERT) ||
+ _.includes(err.message, constants.CONTRACT_CALL_FAILED),
+ );
+ });
+}
diff --git a/packages/contracts/src/utils/constants.ts b/packages/contracts/src/utils/constants.ts
index 60f41b51b..a21ca29ed 100644
--- a/packages/contracts/src/utils/constants.ts
+++ b/packages/contracts/src/utils/constants.ts
@@ -20,6 +20,7 @@ export const constants = {
INVALID_OPCODE: 'invalid opcode',
REVERT: 'revert',
ALWAYS_FAILING_TRANSACTION: 'always failing transaction',
+ CONTRACT_CALL_FAILED: 'Contract call failed',
LIB_BYTES_GT_ZERO_LENGTH_REQUIRED: 'Length must be greater than 0.',
LIB_BYTES_GTE_4_LENGTH_REQUIRED: 'Length must be greater than or equal to 4.',
LIB_BYTES_GTE_20_LENGTH_REQUIRED: 'Length must be greater than or equal to 20.',