interface Quote { function price() external view returns (uint256); }
contract Bank { event EmitFlag(address indexed user); uint256 cmp= 100 ether; uint256 public lastWithdrawTime; uint256 flagprice= 200 ether; bool public flagEmitted; mapping(address => uint) public balances; mapping(address => uint) public depositTimes;
constructor() payable {}
function deposit() public payable { require(msg.value > 0, "Deposit must be positive"); balances[msg.sender] += msg.value; depositTimes[msg.sender] = block.timestamp; }
function withdraw() public { require(block.timestamp - depositTimes[msg.sender] < 1 days, "Deposit expired..."); uint get = balances[msg.sender]; require(get > 0, "No money left :("); require(block.timestamp - lastWithdrawTime > 1 seconds, "Hey bro, calm down!"); (bool sent, ) = msg.sender.call{value: get}(""); require(sent, "Operation failed :("); balances[msg.sender] = 0; lastWithdrawTime = block.timestamp; }
function ViewBalance(address ad) public view returns (uint) { uint bal=balances[ad]; return bal; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13;
interface Bank { function deposit() external payable; function withdraw() external; function buy() external; function flagEmitted() external view returns (bool); }
interface Quote { function price() external view returns (uint256); }