From ff60267951f5cdd8f8e85831ad143c353cfada7c Mon Sep 17 00:00:00 2001 From: Oliver Nordbjerg Date: Thu, 17 Mar 2022 14:47:25 +0100 Subject: [PATCH] feat: better ux for expect revert without reason --- evm/src/executor/abi.rs | 1 + evm/src/executor/inspector/cheatcodes/expect.rs | 5 +++-- forge/README.md | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/evm/src/executor/abi.rs b/evm/src/executor/abi.rs index dc5c7d284b68..4b8ea569816e 100644 --- a/evm/src/executor/abi.rs +++ b/evm/src/executor/abi.rs @@ -28,6 +28,7 @@ ethers::contract::abigen!( stopPrank() deal(address,uint256) etch(address,bytes) + expectRevert() expectRevert(bytes) expectRevert(bytes4) record() diff --git a/evm/src/executor/inspector/cheatcodes/expect.rs b/evm/src/executor/inspector/cheatcodes/expect.rs index e5ab0f1898ce..8264a40565ab 100644 --- a/evm/src/executor/inspector/cheatcodes/expect.rs +++ b/evm/src/executor/inspector/cheatcodes/expect.rs @@ -155,10 +155,11 @@ pub fn apply( call: &HEVMCalls, ) -> Option> { Some(match call { - HEVMCalls::ExpectRevert0(inner) => { + HEVMCalls::ExpectRevert0(_) => expect_revert(state, Bytes::new(), data.subroutine.depth()), + HEVMCalls::ExpectRevert1(inner) => { expect_revert(state, inner.0.to_vec().into(), data.subroutine.depth()) } - HEVMCalls::ExpectRevert1(inner) => { + HEVMCalls::ExpectRevert2(inner) => { expect_revert(state, inner.0.to_vec().into(), data.subroutine.depth()) } HEVMCalls::ExpectEmit(inner) => { diff --git a/forge/README.md b/forge/README.md index 8bdc5d367e75..1650b0824835 100644 --- a/forge/README.md +++ b/forge/README.md @@ -264,6 +264,7 @@ interface Hevm { // Sets an address' code, (who, newCode) function etch(address, bytes calldata) external; // Expects an error on next call + function expectRevert() external; function expectRevert(bytes calldata) external; function expectRevert(bytes4) external; // Record all storage reads and writes