Appearance
Solidity API
ReentrancyGuardUpgradeable
_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 as nonReentrant 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 EIP-1153 (transient storage) is available on the chain you're deploying at, consider using {ReentrancyGuardTransient} instead.
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]._
ReentrancyGuardStorage
solidity
struct ReentrancyGuardStorage {
uint256 _status;
}ReentrancyGuardReentrantCall
solidity
error ReentrancyGuardReentrantCall()Unauthorized reentrant call.
__ReentrancyGuard_init
solidity
function __ReentrancyGuard_init() internal__ReentrancyGuard_init_unchained
solidity
function __ReentrancyGuard_init_unchained() internalnonReentrant
solidity
modifier 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 a private function that does the actual work.
_reentrancyGuardEntered
solidity
function _reentrancyGuardEntered() internal view returns (bool)Returns true if the reentrancy guard is currently set to "entered", which indicates there is a nonReentrant function in the call stack.