Added abi encoder test when bad selector is passed to method decoding
This commit is contained in:
parent
92602d33ad
commit
da28a542c7
@ -282,4 +282,16 @@ describe('ABI Encoder: Method Encoding / Decoding', () => {
|
|||||||
const customDecodingRules = { shouldConvertStructsToObjects: true }; // custom to improve readability
|
const customDecodingRules = { shouldConvertStructsToObjects: true }; // custom to improve readability
|
||||||
runTest(method, methodArgs, expectedEncoding, defaultEncodingRules, customDecodingRules);
|
runTest(method, methodArgs, expectedEncoding, defaultEncodingRules, customDecodingRules);
|
||||||
});
|
});
|
||||||
|
it('Should throw if decoding calldata where selector does not match the method', async () => {
|
||||||
|
const method = AbiEncoder.createMethod('foobar');
|
||||||
|
const methodSelector = method.getSelector();
|
||||||
|
const badMethodSelector = '0x01020304';
|
||||||
|
expect(() => method.decode(badMethodSelector)).to.throw(`Tried to decode calldata, but it was missing the function selector. Expected prefix '${methodSelector}'. Got '${badMethodSelector}'.`);
|
||||||
|
});
|
||||||
|
it('Should throw if strict decoding calldata where selector does not match the method', async () => {
|
||||||
|
const method = AbiEncoder.createMethod('foobar');
|
||||||
|
const methodSelector = method.getSelector();
|
||||||
|
const badMethodSelector = '0x01020304';
|
||||||
|
expect(() => method.strictDecode<void>(badMethodSelector)).to.throw(`Tried to decode calldata, but it was missing the function selector. Expected prefix '${methodSelector}'. Got '${badMethodSelector}'.`);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user