ReentrancyGuardUpgradeable
Last updated
Last updated
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].
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.
Returns true if the reentrancy guard is currently set to "entered", which indicates there is anonReentrant
function in the call stack.
Unauthorized reentrant call.