ETH Price: $2,456.52 (-1.26%)

Token

JARL LABS (JARL)
 

Overview

Max Total Supply

5,000,000 JARL

Holders

117

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
82,683.949285348925999156 JARL

Value
$0.00
0x8f40dac94ac52f90218d9aa5e605fe39dabe3979
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Jarl

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
File 1 of 3 : JARL.sol
/***************************************************************************************************** 






             ██  █████  ██████  ██          ██       █████  ██████  ███████ 
             ██ ██   ██ ██   ██ ██          ██      ██   ██ ██   ██ ██      
             ██ ███████ ██████  ██          ██      ███████ ██████  ███████ 
        ██   ██ ██   ██ ██   ██ ██          ██      ██   ██ ██   ██      ██ 
         █████  ██   ██ ██   ██ ███████     ███████ ██   ██ ██████  ███████ 
                                                                      





******************************************************************************************************/                                                                                                                                 

pragma solidity ^0.8.7;

import "SafeMath.sol";
import "IERC20.sol";

contract Jarl is IERC20 {
    using SafeMath for uint256;

    string public constant symbol = "JARL";
    string public constant name = "JARL LABS";
    uint256 public constant decimals = 18;

    uint256 public immutable totalSupply;
    
    mapping(address => uint256) balances;
    mapping(address => mapping(address => uint256)) allowed;
    
    address payable owner;

    constructor() public {
        // remember which address deployed the JARL contract
        owner = payable(msg.sender);

        totalSupply = 5_000_000 * (10 ** decimals);

        // move all 5M tokens to deployer account so it
        // can be split between LBP, Uniswap, &c
        balances[owner] = totalSupply;

        emit Transfer(address(0), owner, totalSupply);
    }
    
    function balanceOf(address _owner) public view returns (uint256) {
        return balances[_owner];
    }

    function allowance(address _owner, address _spender) public view returns (uint256) {
        return allowed[_owner][_spender];
    }

    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    
    function _transfer(address _from, address _to, uint256 _value) internal {
        require(balances[_from] >= _value, "Insufficient balance");
        balances[_from] = balances[_from].sub(_value);  
        balances[_to] = balances[_to].add(_value);
        emit Transfer(_from, _to, _value);
    }

    function transfer(address _to, uint256 _value) public returns (bool) {
        _transfer(msg.sender, _to, _value);        
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(allowed[_from][msg.sender] >= _value, "Insufficient allowance");
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        _transfer(_from, _to, _value);
        return true;
    }

    // use the same event signature as openzeppelin-contracts/contracts/access/Ownable.sol 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    function transferOwnership(address payable newOwner) public {
        // change contract owner
        require(msg.sender == owner, "Must be owner");
        address prevOwner = owner;
        owner = newOwner;
        emit OwnershipTransferred(prevOwner, newOwner);
    }
    
    function rescueETH() public {
        // withdraw ETH which may be accidentally sent to this contract
        require(msg.sender == owner, "Must be owner");
        owner.transfer(address(this).balance);
    }

    function rescueTokens() public {
        // move tokens from this contract to the owner
        require(msg.sender == owner, "Must be owner");
        uint256 trappedTokens = balances[address(this)];
        if (trappedTokens > 0) {
             _transfer(address(this), owner, trappedTokens);    
        }
    }

}

File 2 of 3 : SafeMath.sol
pragma solidity ^0.8.7;

library SafeMath {

    function add(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a);
        return c;
    }

    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
        return c;
    }

    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
        return c;
    }

    function div(uint a, uint b) internal pure returns (uint c) {
        require(b > 0);
        c = a / b;
        return c;
    }

}

File 3 of 3 : IERC20.sol
pragma solidity ^0.8.7;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

Settings
{
  "evmVersion": "istanbul",
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "libraries": {
    "JARL.sol": {}
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a06040523480156200001157600080fd5b50600280546001600160a01b03191633179055620000326012600a620001bb565b6200004190624c4b40620001d0565b6080819052600280546001600160a01b0390811660009081526020818152604080832086905593549351948552929091169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620001f2565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620000fd578160001904821115620000e157620000e1620000a6565b80851615620000ef57918102915b93841c9390800290620000c1565b509250929050565b6000826200011657506001620001b5565b816200012557506000620001b5565b81600181146200013e5760028114620001495762000169565b6001915050620001b5565b60ff8411156200015d576200015d620000a6565b50506001821b620001b5565b5060208310610133831016604e8410600b84101617156200018e575081810a620001b5565b6200019a8383620000bc565b8060001904821115620001b157620001b1620000a6565b0290505b92915050565b6000620001c9838362000105565b9392505050565b6000816000190483118215151615620001ed57620001ed620000a6565b500290565b6080516107d46200020e600039600061011f01526107d46000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461017457806395d89b411461019d578063a9059cbb146101c0578063dd62ed3e146101d3578063dd8c2e0f1461020c578063f2fde38b1461021457600080fd5b806306fdde03146100b9578063095ea7b3146100f757806318160ddd1461011a57806320800a001461014f57806323b872dd14610159578063313ce5671461016c575b600080fd5b6100e1604051806040016040528060098152602001684a41524c204c41425360b81b81525081565b6040516100ee9190610605565b60405180910390f35b61010a61010536600461066f565b610227565b60405190151581526020016100ee565b6101417f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100ee565b610157610294565b005b61010a61016736600461069b565b610303565b610141601281565b6101416101823660046106dc565b6001600160a01b031660009081526020819052604090205490565b6100e1604051806040016040528060048152602001631290549360e21b81525081565b61010a6101ce36600461066f565b6103d6565b6101416101e13660046106f9565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101576103ec565b6101576102223660046106dc565b610444565b3360008181526001602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102829086815260200190565b60405180910390a35060015b92915050565b6002546001600160a01b031633146102c75760405162461bcd60e51b81526004016102be90610732565b60405180910390fd5b6002546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610300573d6000803e3d6000fd5b50565b6001600160a01b038316600090815260016020908152604080832033845290915281205482111561036f5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b60448201526064016102be565b6001600160a01b038416600090815260016020908152604080832033845290915290205461039d90836104c0565b6001600160a01b03851660009081526001602090815260408083203384529091529020556103cc8484846104e0565b5060019392505050565b60006103e33384846104e0565b50600192915050565b6002546001600160a01b031633146104165760405162461bcd60e51b81526004016102be90610732565b306000908152602081905260409020548015610300576002546103009030906001600160a01b0316836104e0565b6002546001600160a01b0316331461046e5760405162461bcd60e51b81526004016102be90610732565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000828211156104cf57600080fd5b6104d9828461076f565b9392505050565b6001600160a01b03831660009081526020819052604090205481111561053f5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016102be565b6001600160a01b03831660009081526020819052604090205461056290826104c0565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461059190826105ea565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60006105f68284610786565b90508281101561028e57600080fd5b600060208083528351808285015260005b8181101561063257858101830151858201604001528201610616565b81811115610644576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461030057600080fd5b6000806040838503121561068257600080fd5b823561068d8161065a565b946020939093013593505050565b6000806000606084860312156106b057600080fd5b83356106bb8161065a565b925060208401356106cb8161065a565b929592945050506040919091013590565b6000602082840312156106ee57600080fd5b81356104d98161065a565b6000806040838503121561070c57600080fd5b82356107178161065a565b915060208301356107278161065a565b809150509250929050565b6020808252600d908201526c26bab9ba1031329037bbb732b960991b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008282101561078157610781610759565b500390565b6000821982111561079957610799610759565b50019056fea26469706673582212202f8d443f22dc9bd05343e708cc84649bfe2866dfc5c06dd0bda1492d7f88d8fb64736f6c634300080f0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461017457806395d89b411461019d578063a9059cbb146101c0578063dd62ed3e146101d3578063dd8c2e0f1461020c578063f2fde38b1461021457600080fd5b806306fdde03146100b9578063095ea7b3146100f757806318160ddd1461011a57806320800a001461014f57806323b872dd14610159578063313ce5671461016c575b600080fd5b6100e1604051806040016040528060098152602001684a41524c204c41425360b81b81525081565b6040516100ee9190610605565b60405180910390f35b61010a61010536600461066f565b610227565b60405190151581526020016100ee565b6101417f0000000000000000000000000000000000000000000422ca8b0a00a42500000081565b6040519081526020016100ee565b610157610294565b005b61010a61016736600461069b565b610303565b610141601281565b6101416101823660046106dc565b6001600160a01b031660009081526020819052604090205490565b6100e1604051806040016040528060048152602001631290549360e21b81525081565b61010a6101ce36600461066f565b6103d6565b6101416101e13660046106f9565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6101576103ec565b6101576102223660046106dc565b610444565b3360008181526001602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102829086815260200190565b60405180910390a35060015b92915050565b6002546001600160a01b031633146102c75760405162461bcd60e51b81526004016102be90610732565b60405180910390fd5b6002546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610300573d6000803e3d6000fd5b50565b6001600160a01b038316600090815260016020908152604080832033845290915281205482111561036f5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b60448201526064016102be565b6001600160a01b038416600090815260016020908152604080832033845290915290205461039d90836104c0565b6001600160a01b03851660009081526001602090815260408083203384529091529020556103cc8484846104e0565b5060019392505050565b60006103e33384846104e0565b50600192915050565b6002546001600160a01b031633146104165760405162461bcd60e51b81526004016102be90610732565b306000908152602081905260409020548015610300576002546103009030906001600160a01b0316836104e0565b6002546001600160a01b0316331461046e5760405162461bcd60e51b81526004016102be90610732565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000828211156104cf57600080fd5b6104d9828461076f565b9392505050565b6001600160a01b03831660009081526020819052604090205481111561053f5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b60448201526064016102be565b6001600160a01b03831660009081526020819052604090205461056290826104c0565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461059190826105ea565b6001600160a01b038381166000818152602081815260409182902094909455518481529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b60006105f68284610786565b90508281101561028e57600080fd5b600060208083528351808285015260005b8181101561063257858101830151858201604001528201610616565b81811115610644576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461030057600080fd5b6000806040838503121561068257600080fd5b823561068d8161065a565b946020939093013593505050565b6000806000606084860312156106b057600080fd5b83356106bb8161065a565b925060208401356106cb8161065a565b929592945050506040919091013590565b6000602082840312156106ee57600080fd5b81356104d98161065a565b6000806040838503121561070c57600080fd5b82356107178161065a565b915060208301356107278161065a565b809150509250929050565b6020808252600d908201526c26bab9ba1031329037bbb732b960991b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008282101561078157610781610759565b500390565b6000821982111561079957610799610759565b50019056fea26469706673582212202f8d443f22dc9bd05343e708cc84649bfe2866dfc5c06dd0bda1492d7f88d8fb64736f6c634300080f0033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.