diff --git a/contracts/ReentrancyGuard.sol b/contracts/ReentrancyGuard.sol new file mode 100644 index 00000000000..7238d077b63 --- /dev/null +++ b/contracts/ReentrancyGuard.sol @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +contract ReentrancyGuard { + // Deprecated: This contract lacks transient storage support. Consider migrating to ReentrancyGuardTransient. + bool private _notEntered; + + constructor () { + _notEntered = true; + } + + modifier nonReentrant() { + require(_notEntered, "ReentrancyGuard: reentrant call"); + _notEntered = false; + _; + _notEntered = true; + } +} diff --git a/contracts/ReentrancyGuardTransient.sol b/contracts/ReentrancyGuardTransient.sol new file mode 100644 index 00000000000..2bc204ec96e --- /dev/null +++ b/contracts/ReentrancyGuardTransient.sol @@ -0,0 +1,16 @@ +pragma solidity ^0.8.0; + +contract ReentrancyGuardTransient { + bool private _notEntered; + + constructor () { + _notEntered = true; + } + + modifier nonReentrant() { + require(_notEntered, "ReentrancyGuard: reentrant call"); + _notEntered = false; + _; + _notEntered = true; + } +}