ReentrancyAttackUpgradeable.sol 857 B

12345678910111213141516171819202122232425
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.0;
  3. import "../utils/ContextUpgradeable.sol";
  4. import "../proxy/utils/Initializable.sol";
  5. contract ReentrancyAttackUpgradeable is Initializable, ContextUpgradeable {
  6. function __ReentrancyAttack_init() internal onlyInitializing {
  7. }
  8. function __ReentrancyAttack_init_unchained() internal onlyInitializing {
  9. }
  10. function callSender(bytes4 data) public {
  11. (bool success, ) = _msgSender().call(abi.encodeWithSelector(data));
  12. require(success, "ReentrancyAttack: failed call");
  13. }
  14. /**
  15. * @dev This empty reserved space is put in place to allow future versions to add new
  16. * variables without shifting down storage in the inheritance chain.
  17. * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
  18. */
  19. uint256[50] private __gap;
  20. }