Add revert reason parsing to error handling decorator
This commit is contained in:
		@@ -4,6 +4,7 @@ export const constants = {
 | 
			
		||||
    NULL_ADDRESS: '0x0000000000000000000000000000000000000000',
 | 
			
		||||
    TESTRPC_NETWORK_ID: 50,
 | 
			
		||||
    INVALID_JUMP_PATTERN: 'invalid JUMP at',
 | 
			
		||||
    REVERT: 'revert',
 | 
			
		||||
    OUT_OF_GAS_PATTERN: 'out of gas',
 | 
			
		||||
    INVALID_TAKER_FORMAT: 'instance.taker is not of a type(s) string',
 | 
			
		||||
    // tslint:disable-next-line:custom-no-magic-numbers
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,4 @@
 | 
			
		||||
import { RevertReason } from '@0xproject/types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
import { AsyncMethod, ContractWrappersError, SyncMethod } from '../types';
 | 
			
		||||
@@ -13,6 +14,10 @@ const contractCallErrorTransformer = (error: Error) => {
 | 
			
		||||
    if (_.includes(error.message, constants.OUT_OF_GAS_PATTERN)) {
 | 
			
		||||
        return new Error(ContractWrappersError.OutOfGas);
 | 
			
		||||
    }
 | 
			
		||||
    if (_.includes(error.message, constants.REVERT)) {
 | 
			
		||||
        const revertReason = error.message.split(constants.REVERT)[1].trim();
 | 
			
		||||
        return new Error(revertReason);
 | 
			
		||||
    }
 | 
			
		||||
    return error;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user