TimelockReentrant.sol 606 B

1234567891011121314151617181920212223242526
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.0;
  3. import "../utils/Address.sol";
  4. contract TimelockReentrant {
  5. address private _reenterTarget;
  6. bytes private _reenterData;
  7. bool _reentered;
  8. function disableReentrancy() external {
  9. _reentered = true;
  10. }
  11. function enableRentrancy(address target, bytes calldata data) external {
  12. _reenterTarget = target;
  13. _reenterData = data;
  14. }
  15. function reenter() external {
  16. if (!_reentered) {
  17. _reentered = true;
  18. Address.functionCall(_reenterTarget, _reenterData);
  19. }
  20. }
  21. }