readCallers
Signature
Section titled “Signature”enum CallerMode { None, Prank, RecurrentPrank}
function readCallers() external returns (CallerMode callerMode, address msgSender, address txOrigin);Description
Section titled “Description”Reads the current CallerMode, msg.sender, and tx.origin.
The CallerMode enum indicates if there is an active caller modification and the type.
-
If there is an active prank:
callerModewill be equal to:CallerMode.Prankif the prank has been set withprank.CallerMode.RecurrentPrankif the prank has been set withstartPrank.
-
If no caller modification is active:
callerModewill be equal toCallerMode.None.
Examples
Section titled “Examples”CallerMode callerMode;address msgSender;address txOrigin;
// Example 1(callerMode, msgSender, txOrigin) = vm.readCallers();assertEq(callerMode, CallerMode.None);assertEq(msgSender, defaultSenderAddress);assertEq(txOrigin, defaultOriginAddress);
// Example 2vm.prank(senderPrankAddress);(callerMode, msgSender, txOrigin) = vm.readCallers();assertEq(callerMode, CallerMode.Prank);assertEq(msgSender, senderPrankAddress);assertEq(txOrigin, defaultOriginAddress);
// Example 3vm.prank(senderPrankAddress, originPrankAddress);(callerMode, msgSender, txOrigin) = vm.readCallers();assertEq(callerMode, CallerMode.Prank);assertEq(msgSender, senderPrankAddress);assertEq(txOrigin, originPrankAddress);