```\n  // This is called by the base ERC20 contract before all transfer, mint, and burns\n    function _beforeTokenTransfer(address from, address, uint256) internal override {\n        // Don't run check if this is a mint transaction\n        if (from != address(0)) {\n            // Check which block the user's last deposit was\n            bytes32 key = keccak256(abi.encodePacked("user.deposit.block", from));\n            uint256 lastDepositBlock = getUint(key);\n            if (lastDepositBlock > 0) {\n                // Ensure enough blocks have passed\n                uint256 depositDelay = getUint(keccak256(abi.encodePacked(keccak256("dao.protocol.setting.network"), "network.reth.deposit.delay")));\n                uint256 blocksPassed = block.number.sub(lastDepositBlock);\n                require(blocksPassed > depositDelay, "Not enough time has passed since deposit");\n                // Clear the state as it's no longer necessary to check this until another deposit is made\n                deleteUint(key);\n            }\n        }\n    }\n```\n