Contract Diff Checker

Contract Name:
TreasureKeep

Contract Source Code:

File 1 of 1 : TreasureKeep

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/*
                                                                                                    
                                                    @                                               
                                                    @  @                                            
                                              @     @   @                        @@@@@              
                                              @     @                     @@@@@@@@@@@@@@@@@@        
                               @@@@@@@@@@@     @    @          @@@@@@@@@@    @@@@@@@@@@@@@@@@@      
                            @@@@@@@@@@@@@@@@@@    @@@      @@@@@@@@@@@@@@@@@   @@@@@@@@@@@@@@@@     
                          @@@@@@@@@@@@@@@@@@@@@@    @    @@@@@@@@@@@@@@@@@@@@@          @@@@@@@@    
                        @@@@@@@@@@@@@@@@@@@@@@@@@@  @  @@@@@@@@@@@@@@@@@@@@@@@@@          @@@@@@    
                       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@@          @@@@@    
                       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          @@@@@    
                      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@         @@@@@    
                      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@         @@@@@    
                      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@        @@@@@     
                      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@        @@@@@     
                    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       @@@@@      
                  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       @@@@       
                @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       @@@@        
              @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      @@@@         
            @@@@@@@@@   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     @@@@@          
           @@@@@@@@@     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      @@@@            
         @@@@@@@@@        @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      @@@@             
        @@@@@@@@@          @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      @@@@@    @         
       @@@@@@@@           @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      @@@@@     @          
      @@@@@@@@          @@@@  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      @@@@@      @           
      @@@@@@@         @@@@      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@      @@@@@      @@            
     @@@@@@@         @@@          @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@       @@@@@       @@             
     @@@@@@         @@@@   @        @@@@@@@@@@@@@@@@@@@@@@@@@@@       @@@@@@       @@@              
     @@@@@@        @@@@@   @@         @@@@@@@@@@@@@@@@@@@@@         @@@@@@       @@@@               
     @@@@@          @@@@@@               @@@@@@@@@@@@@@          @@@@@@@       @@@@                 
     @@@@@           @@@@@@@               @@@@@@@@           @@@@@@@        @@@@@                  
     @@@@@@              @@@@@@@@@@                       @@@@@@@@         @@@@@                    
      @@@@@@                      @@@                  @@@@@@@@         @@@@@@                      
       @@@@@@@                                    @@@@@@@@@@         @@@@@@@                        
        @@@@@@@@@                           @@@@@@@@@@@@@         @@@@@@@@                          
          @@@@@@@@@@@@@            @@@@@@@@@@@@@@@@@          @@@@@@@@@                             
             @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           @@@@@@@@@                                
                 @@@@@@@@@@@@@@@@@@@@@@@@               @@@@@@@                                     
                                                                                                    
                                                                                                    
*/

/*
 * @title TreasureKeep
 * @author Heart Circle Collective

 With All of My Heart
 */

contract TreasureKeep {
    // Token Information
    string public name = "Treasure Keep";
    string public symbol = "TK";
    uint8 public decimals = 18;
    uint256 public totalSupply = 700000000 * 10**uint256(decimals); // 700 million tokens
    
    // Mapping to store token balances
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    
    address public owner;
    
    string[8] private messages = [
        "Unimaginable Wealth is Yours",
        "Truth is You Were Always Rich",
        "Just Stick it in the Vault",
        "Blessings be Upon Thee",
        "Mine Eyes Have Seen The Glory",
        "You Are the Treasure Being Kept",
        "Maximum Wealth is Always at Hand",
        "We Are Entering the Age of Abundance"
    ];
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Burn(address indexed from, uint256 value);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    modifier onlyOwner() {
        require(msg.sender == owner, "Not authorized");
        _;
    }

     /**
     * @notice Constructor to initialize the token.
     * @dev Developed by the Heart Circle Collective
     */
    
    constructor() {
        owner = msg.sender;
        balanceOf[msg.sender] = totalSupply;
    }

    function getRandomMessage() public view returns (string memory) {
        uint256 randomIndex = uint256(keccak256(abi.encodePacked(block.timestamp, msg.sender))) % 8;
        return messages[randomIndex];
    }
    
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0), "Invalid address");
        require(balanceOf[msg.sender] >= _value, "Insufficient balance");
        
        balanceOf[msg.sender] -= _value;
        balanceOf[_to] += _value;
        emit Transfer(msg.sender, _to, _value);
        return true;
    }
    
    function approve(address _spender, uint256 _value) public returns (bool) {
        require(_spender != address(0), "Invalid address");
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_to != address(0), "Invalid address");
        require(_value <= balanceOf[_from], "Insufficient balance");
        require(_value <= allowance[_from][msg.sender], "Insufficient allowance");
        
        balanceOf[_from] -= _value;
        balanceOf[_to] += _value;
        allowance[_from][msg.sender] -= _value;
        emit Transfer(_from, _to, _value);
        return true;
    }
    
    function burn(uint256 _value) public returns (bool) {
        require(balanceOf[msg.sender] >= _value, "Insufficient balance");
        balanceOf[msg.sender] -= _value;
        totalSupply -= _value;
        emit Burn(msg.sender, _value);
        emit Transfer(msg.sender, address(0), _value);
        return true;
    }
    
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Invalid address");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

Please enter a contract address above to load the contract details and source code.

Context size (optional):