POL Price: $0.61191 (-1.80%)
 

Overview

Max Total Supply

150,635,921.286025901876370074 RETRO

Holders

1,799 ( -0.167%)

Total Transfers

-

Market

Price

$0.0092 @ 0.015008 POL (+1.02%)

Onchain Market Cap

$1,383,377.03

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

A branch of the Stabl Labs ecosystem, Retro is a concentrated liquidity ve(3,3) AMM with ALM marketplace and Merkl oRetro token distribution on Polygon.

Contract Source Code Verified (Exact Match)

Contract Name:
Retro

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 100 runs

Other Settings:
default evmVersion
File 1 of 2 : Retro.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.13;

import "./interfaces/IRetro.sol";

contract Retro is IRetro {

    string public constant name = "RETRO";
    string public constant symbol = "RETRO";
    uint8 public constant decimals = 18;
    uint public totalSupply = 0;

    mapping(address => uint) public balanceOf;
    mapping(address => mapping(address => uint)) public allowance;

    bool public initialMinted;
    address public minter;

    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);

    constructor() {
        minter = msg.sender;
        _mint(msg.sender, 0);
    }

    // No checks as its meant to be once off to set minting rights to BaseV1 Minter
    function setMinter(address _minter) external {
        require(msg.sender == minter);
        minter = _minter;
    }


    // Initial mint: total 50M    
    function initialMint(address _recipient) external {
        require(msg.sender == minter && !initialMinted);
        initialMinted = true;
        _mint(_recipient, 50 * 1e6 * 1e18);
    }

    function approve(address _spender, uint _value) external returns (bool) {
        allowance[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function _mint(address _to, uint _amount) internal returns (bool) {
        totalSupply += _amount;
        unchecked {
            balanceOf[_to] += _amount;
        }
        emit Transfer(address(0x0), _to, _amount);
        return true;
    }

    function _transfer(address _from, address _to, uint _value) internal returns (bool) {
        balanceOf[_from] -= _value;
        unchecked {
            balanceOf[_to] += _value;
        }
        emit Transfer(_from, _to, _value);
        return true;
    }

    function transfer(address _to, uint _value) external returns (bool) {
        return _transfer(msg.sender, _to, _value);
    }

    function transferFrom(address _from, address _to, uint _value) external returns (bool) {
        uint allowed_from = allowance[_from][msg.sender];
        if (allowed_from != type(uint).max) {
            allowance[_from][msg.sender] -= _value;
        }
        return _transfer(_from, _to, _value);
    }

    function mint(address account, uint amount) external returns (bool) {
        require(msg.sender == minter, 'not allowed');
        _mint(account, amount);
        return true;
    }

}

File 2 of 2 : IRetro.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;

interface IRetro {
    function totalSupply() external view returns (uint);
    function balanceOf(address) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address, uint) external returns (bool);
    function transferFrom(address,address,uint) external returns (bool);
    function mint(address, uint) external returns (bool);
    function minter() external returns (address);
    function setMinter(address) external;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 100
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

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":"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":"","type":"address"},{"internalType":"address","name":"","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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"name":"initialMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialMinted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"setMinter","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"}]

60806040526000805534801561001457600080fd5b5060038054610100600160a81b0319163361010081029190911790915561003c906000610042565b506100d9565b60008160008082825461005591906100b3565b90915550506001600160a01b0383166000818152600160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350600192915050565b600082198211156100d457634e487b7160e01b600052601160045260246000fd5b500190565b6106d9806100e86000396000f3fe608060405234801561001057600080fd5b50600436106100ca5760003560e01c806370a082311161007c57806370a08231146101b357806395d89b41146100cf578063a9059cbb146101d3578063c268f9ba146101e6578063ca1c4de9146101fb578063dd62ed3e14610208578063fca3b5aa1461023357600080fd5b806306fdde03146100cf5780630754617214610109578063095ea7b31461013957806318160ddd1461015c57806323b872dd14610173578063313ce5671461018657806340c10f19146101a0575b600080fd5b6100f360405180604001604052806005815260200164524554524f60d81b81525081565b6040516101009190610539565b60405180910390f35b6003546101219061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610100565b61014c6101473660046105aa565b610246565b6040519015158152602001610100565b61016560005481565b604051908152602001610100565b61014c6101813660046105d4565b6102b2565b61018e601281565b60405160ff9091168152602001610100565b61014c6101ae3660046105aa565b61032c565b6101656101c1366004610610565b60016020526000908152604090205481565b61014c6101e13660046105aa565b610394565b6101f96101f4366004610610565b6103a8565b005b60035461014c9060ff1681565b61016561021636600461062b565b600260209081526000928352604080842090915290825290205481565b6101f9610241366004610610565b6103f9565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102a19086815260200190565b60405180910390a350600192915050565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610318576001600160a01b038516600090815260026020908152604080832033845290915281208054859290610312908490610674565b90915550505b61032385858561043d565b95945050505050565b60035460009061010090046001600160a01b031633146103805760405162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015260640160405180910390fd5b61038a83836104d4565b5060019392505050565b60006103a133848461043d565b9392505050565b60035461010090046001600160a01b0316331480156103ca575060035460ff16155b6103d357600080fd5b6003805460ff191660011790556103f5816a295be96e640669720000006104d4565b5050565b60035461010090046001600160a01b0316331461041557600080fd5b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b038316600090815260016020526040812080548391908390610467908490610674565b90915550506001600160a01b03808416600081815260016020526040908190208054860190555190918616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104c29086815260200190565b60405180910390a35060019392505050565b6000816000808282546104e7919061068b565b90915550506001600160a01b0383166000818152600160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016102a1565b600060208083528351808285015260005b818110156105665785810183015185820160400152820161054a565b81811115610578576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146105a557600080fd5b919050565b600080604083850312156105bd57600080fd5b6105c68361058e565b946020939093013593505050565b6000806000606084860312156105e957600080fd5b6105f28461058e565b92506106006020850161058e565b9150604084013590509250925092565b60006020828403121561062257600080fd5b6103a18261058e565b6000806040838503121561063e57600080fd5b6106478361058e565b91506106556020840161058e565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6000828210156106865761068661065e565b500390565b6000821982111561069e5761069e61065e565b50019056fea2646970667358221220e34405d67cb21ad3916c87db0e1d4452b5fb681ea177bcad5dda5ba6c6d00a2864736f6c634300080d0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ca5760003560e01c806370a082311161007c57806370a08231146101b357806395d89b41146100cf578063a9059cbb146101d3578063c268f9ba146101e6578063ca1c4de9146101fb578063dd62ed3e14610208578063fca3b5aa1461023357600080fd5b806306fdde03146100cf5780630754617214610109578063095ea7b31461013957806318160ddd1461015c57806323b872dd14610173578063313ce5671461018657806340c10f19146101a0575b600080fd5b6100f360405180604001604052806005815260200164524554524f60d81b81525081565b6040516101009190610539565b60405180910390f35b6003546101219061010090046001600160a01b031681565b6040516001600160a01b039091168152602001610100565b61014c6101473660046105aa565b610246565b6040519015158152602001610100565b61016560005481565b604051908152602001610100565b61014c6101813660046105d4565b6102b2565b61018e601281565b60405160ff9091168152602001610100565b61014c6101ae3660046105aa565b61032c565b6101656101c1366004610610565b60016020526000908152604090205481565b61014c6101e13660046105aa565b610394565b6101f96101f4366004610610565b6103a8565b005b60035461014c9060ff1681565b61016561021636600461062b565b600260209081526000928352604080842090915290825290205481565b6101f9610241366004610610565b6103f9565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102a19086815260200190565b60405180910390a350600192915050565b6001600160a01b03831660009081526002602090815260408083203384529091528120546000198114610318576001600160a01b038516600090815260026020908152604080832033845290915281208054859290610312908490610674565b90915550505b61032385858561043d565b95945050505050565b60035460009061010090046001600160a01b031633146103805760405162461bcd60e51b815260206004820152600b60248201526a1b9bdd08185b1b1bddd95960aa1b604482015260640160405180910390fd5b61038a83836104d4565b5060019392505050565b60006103a133848461043d565b9392505050565b60035461010090046001600160a01b0316331480156103ca575060035460ff16155b6103d357600080fd5b6003805460ff191660011790556103f5816a295be96e640669720000006104d4565b5050565b60035461010090046001600160a01b0316331461041557600080fd5b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b038316600090815260016020526040812080548391908390610467908490610674565b90915550506001600160a01b03808416600081815260016020526040908190208054860190555190918616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104c29086815260200190565b60405180910390a35060019392505050565b6000816000808282546104e7919061068b565b90915550506001600160a01b0383166000818152600160209081526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016102a1565b600060208083528351808285015260005b818110156105665785810183015185820160400152820161054a565b81811115610578576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146105a557600080fd5b919050565b600080604083850312156105bd57600080fd5b6105c68361058e565b946020939093013593505050565b6000806000606084860312156105e957600080fd5b6105f28461058e565b92506106006020850161058e565b9150604084013590509250925092565b60006020828403121561062257600080fd5b6103a18261058e565b6000806040838503121561063e57600080fd5b6106478361058e565b91506106556020840161058e565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b6000828210156106865761068661065e565b500390565b6000821982111561069e5761069e61065e565b50019056fea2646970667358221220e34405d67cb21ad3916c87db0e1d4452b5fb681ea177bcad5dda5ba6c6d00a2864736f6c634300080d0033

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.