prank
Signature
function prank(address msgSender) external;
function prank(address msgSender, bool delegateCall) external;
function prank(address msgSender, address txOrigin) external;
function prank(address msgSender, address txOrigin, bool delegateCall) external;
Description
- prank(address msgSender): sets- msg.senderto the specified address for the next call. “The next call” includes static calls as well, but not delegate calls or calls to the cheat code address.
- prank(address msgSender, address txOrigin): sets- msg.senderand the- tx.originaddresses for the next call.
- prank(address msgSender, bool delegateCall): if- delegateCallvalue is- truethen sets- msg.senderto the specified address for the next delegate call.
- prank(address msgSender, address txOrigin, bool delegateCall): if- delegateCallvalue is- truethen sets- msg.senderand the- tx.originaddresses for the next delegate call.
ℹ️ Note
The delegate calls cannot be pranked from an EOA.
Examples
/// function withdraw() public {
///     require(msg.sender == owner);
vm.prank(owner);
myContract.withdraw(); // [PASS]
SEE ALSO
Forge Standard Library