@0x/utils: Add support for nested rich revert decoding

This commit is contained in:
Michael Zhu
2020-08-18 13:10:51 -07:00
parent 7842bb4cad
commit 89117beda2
2 changed files with 27 additions and 0 deletions

View File

@@ -39,7 +39,14 @@ class FixedSizeArrayRevertError extends RevertError {
}
}
class ParentRevertError extends RevertError {
public constructor(nestedError?: string) {
super('ParentRevertError', 'ParentRevertError(bytes nestedError)', { nestedError });
}
}
RevertError.registerType(CustomRevertError);
RevertError.registerType(ParentRevertError);
describe('RevertError', () => {
describe('equality', () => {
@@ -159,6 +166,12 @@ describe('RevertError', () => {
const decode = () => RevertError.decode(_encoded);
expect(decode).to.throw();
});
it('should decode a nested revert error', () => {
const nested = new StringRevertError(message);
const parent = new ParentRevertError(nested.encode());
const decoded = RevertError.decode(parent.encode());
expect(decoded.toString()).to.equal(new ParentRevertError(nested.toString()).toString());
});
});
describe('getThrownErrorRevertErrorBytes', () => {
it('should decode Parity revert errors', () => {