LFJ Developer Docs
  • Liquidity Book
  • Introduction
  • LB V2.2 Key Changes
  • Guides
    • Swap Tokens
    • Add/Remove Liquidity
    • Tracking Volume
    • Tracking Pool Balances
    • Finding The Best Quote
    • Byte32 Decoding
    • Price From Bin Id
    • Bin Id From Price
    • Finding Liquidity Depth
    • User Balances
  • Concepts
    • Concentrated Liquidity
    • Bin Math
    • Bin Liquidity
    • Swaps
    • Fees
    • Oracle
  • Contracts
    • Interfaces
      • ILBLegacyFactory
      • ILBLegacyToken
      • ILBLegacyPair
      • ILBLegacyRouter
      • ILBFlashLoanCallback
      • IPendingOwnable
      • IJoeFactory
      • IJoePair
      • IJoeRouter01
      • IJoeRouter02
      • IWNATIVE
      • ILBFactory
      • ILBHooks
      • ILBPair
      • ILBRouter
      • ILBToken
    • Libraries
      • Math
        • BitMath
        • Encoded
        • LiquidityConfigurations
        • PackedUint128Math
        • SafeCast
        • SampleMath
        • TreeMath
        • Uint128x128Math
        • Uint256x256Math
      • BinHelper
      • Clone
      • Constants
      • FeeHelper
      • Hooks
      • ImmutableClone
      • JoeLibrary
      • OracleHelper
      • PairParameterHelper
      • PriceHelper
      • ReentrancyGuardUpgradeable
      • TokenHelper
    • LBBaseHooks
    • LBFactory
    • LBPair
    • LBQuoter
    • LBRouter
    • LBToken
  • Deployment Addresses
    • Avalanche C-Chain
    • Fuji Testnet
    • Arbitrum One
    • Binance Smart Chain
    • Binance Smart Chain Testnet
    • Ethereum Mainnet
    • Monad Testnet
  • SDK
    • Introduction
    • Making a Trade
    • Adding Liquidity
    • Removing Liquidity
  • Audits
  • AMM
    • Joe V1 Contracts
    • Joe V1 Audits
  • LFJ DEX API
    • Dex Analytics
    • Pools
    • Rewards
    • User
    • User Lifetime Stats
    • Vaults
    • Models
  • LFJ Aggregator API
    • Default
    • Models
Powered by GitBook
On this page
  • State Variables
  • NOT_ENTERED
  • ENTERED
  • ReentrancyGuardStorageLocation
  • Functions
  • _getReentrancyGuardStorage
  • __ReentrancyGuard_init
  • __ReentrancyGuard_init_unchained
  • nonReentrant
  • _nonReentrantBefore
  • _nonReentrantAfter
  • _reentrancyGuardEntered
  • Errors
  • ReentrancyGuardReentrantCall
  • Structs
  • ReentrancyGuardStorage
  1. Contracts
  2. Libraries

ReentrancyGuardUpgradeable

PreviousPriceHelperNextTokenHelper

Last updated 8 days ago

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;
}
Git Source