Skip to content

Latest commit

 

History

History
232 lines (208 loc) · 7.52 KB

ReentrancyGuard.md

File metadata and controls

232 lines (208 loc) · 7.52 KB

ReentrancyGuard.sol

View Source: openzeppelin-solidity/contracts/security/ReentrancyGuard.sol

↘ Derived Contracts: IStoreLike, NpmDistributor, Recoverable

ReentrancyGuard

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 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].

Contract Members

Constants & Variables

uint256 private constant _NOT_ENTERED;
uint256 private constant _ENTERED;
uint256 private _status;

Modifiers

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.

modifier nonReentrant() internal

Arguments

Name Type Description

Functions

function () internal nonpayable

Arguments

Name Type Description
Source Code
constructor() {
        _status = _NOT_ENTERED;
    }

Contracts