ReentrancyGuardUpgradeable
Inherits: Initializable
This contract is a fork of the ReentrancyGuardUpgradeable
contract from OpenZeppelin
that has been modified to update the _nonReentrantBefore
and _nonReentrantAfter
functions to internal
visibility.
Contract module that helps prevent reentrant calls to a function.
Inheriting from ReentrancyGuard
will make the nonReentrant
modifier
available, which can be applied to functions to make sure there are no nested
(reentrant) calls to them.
Note that because there is a single nonReentrant
guard, functions marked asnonReentrant
may not call one another. This can be worked around by making
those functions private
, and then adding external
nonReentrant
entry
points to them.
TIP: If you would like to learn more about reentrancy and alternative ways
to protect against it, check out our blog post
https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
State Variables
NOT_ENTERED
uint256 private constant NOT_ENTERED = 1;
ENTERED
uint256 private constant ENTERED = 2;
ReentrancyGuardStorageLocation
bytes32 private constant ReentrancyGuardStorageLocation =
0x9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00;
Functions
_getReentrancyGuardStorage
function _getReentrancyGuardStorage() private pure returns (ReentrancyGuardStorage storage $);
__ReentrancyGuard_init
function __ReentrancyGuard_init() internal onlyInitializing;
__ReentrancyGuard_init_unchained
function __ReentrancyGuard_init_unchained() internal onlyInitializing;
nonReentrant
Prevents a contract from calling itself, directly or indirectly.
Calling a nonReentrant
function from another nonReentrant
function is not supported. It is possible to prevent this from happening
by making the nonReentrant
function external, and making it call aprivate
function that does the actual work.
modifier nonReentrant();
_nonReentrantBefore
function _nonReentrantBefore() internal;
_nonReentrantAfter
function _nonReentrantAfter() internal;
_reentrancyGuardEntered
Returns true if the reentrancy guard is currently set to "entered", which indicates there is anonReentrant
function in the call stack.
function _reentrancyGuardEntered() internal view returns (bool);
Errors
ReentrancyGuardReentrantCall
Unauthorized reentrant call.
error ReentrancyGuardReentrantCall();
Structs
ReentrancyGuardStorage
struct ReentrancyGuardStorage {
uint256 _status;
}
Last updated