// SPDX-License-Identifier: GPL-2.0-or-later pragma solidity ^0.8.0; abstract contract Reentrant { bool private entered; modifier nonReentrant() { require(entered == false, "Reentrant: reentrant call"); entered = true; _; entered = false; } }