Goerli Testnet

Token

SelfService (SLF)
ERC-20

Overview

Max Total Supply

100,000,000,000,000,000,000,000,000,002,366,897,331,514,534.293503 SLF

Holders

4,500

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
777.99 SLF
0x07865c6e87b9f70255377e024ace6630c1eaa37f
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:
SelfSufficientERC20

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 100 runs

Other Settings:
default evmVersion, Apache-2.0 license

Contract Source Code (Solidity Multiple files format)

File 3 of 3: SelfSufficientERC20.sol
// SPDX-License-Identifier: Apache-2.0.
pragma solidity ^0.6.12;

import "ERC20.sol";

/*
  Fake MockERC20 proxy.
  Admins can manipulate balances.
  Users can mint for themselves.
*/
contract SelfSufficientERC20 is ERC20 {
    // Simple permissions management.
    mapping(address => bool) admins;
    address owner;
    uint256 max_mint = MAX_MINT;

    uint256 constant MAX_MINT = 1000; // Maximal amount per selfMint transaction.

    function initlialize(
        string memory _name,
        string memory _symbol,
        uint8 _decimals
    ) external onlyOwner {
        require(decimals_ == 0, "ALREADY_INITIALIZED");
        require(_decimals != 0, "ILLEGAL_INIT_VALUE");
        name_ = _name;
        symbol_ = _symbol;
        decimals_ = _decimals;
    }

    constructor() public {
        admins[msg.sender] = true;
        owner = msg.sender;
    }

    modifier onlyAdmin() {
        require(admins[msg.sender], "ONLY_ADMIN");
        _;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "ONLY_OWNER");
        _;
    }

    function registerAdmin(address newAdmin) external onlyOwner {
        admins[newAdmin] = true;
    }

    function removeAdmin(address oldAdmin) external onlyOwner {
        require(oldAdmin != owner, "OWNER_MUST_REMAIN_ADMIN");
        admins[oldAdmin] = false;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        admins[newOwner] = true;
        owner = newOwner;
    }

    function adminApproval(
        address fundsOwner,
        address spender,
        uint256 value
    ) external onlyAdmin {
        _approve(fundsOwner, spender, value);
    }

    function setBalance(address account, uint256 amount) external onlyAdmin {
        _totalSupply += amount - _balances[account];
        _balances[account] = amount;
    }

    function resetMaxMint(uint256 newMax) external onlyOwner {
        max_mint = newMax;
    }

    function selfMint(uint256 amount) external {
        require(amount <= max_mint, "ILLEGAL_AMOUNT");
        _mint(msg.sender, amount);
    }
}

File 1 of 3: ERC20.sol
// SPDX-License-Identifier: Apache-2.0.
pragma solidity ^0.6.12;

import "IERC20.sol";

abstract contract ERC20 is IERC20 {
    mapping(address => uint256) internal _balances;

    mapping(address => mapping(address => uint256)) internal _allowances;

    uint256 internal _totalSupply;
    string internal name_;
    string internal symbol_;
    uint8 internal decimals_;

    function name() external view override returns (string memory) {
        return name_;
    }

    function symbol() external view override returns (string memory) {
        return symbol_;
    }

    function decimals() external view override returns (uint8) {
        return decimals_;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 value) public override returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 sender_allowance = _allowances[sender][msg.sender];
        require(sender_allowance >= amount, "ERC20: transfer exceeds allowance");
        _approve(sender, msg.sender, sender_allowance - amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        uint256 spender_allowance = _allowances[msg.sender][spender];
        require(spender_allowance + addedValue >= spender_allowance, "ERC20: Overflow");
        _approve(msg.sender, spender, spender_allowance + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        uint256 sender_allowance = _allowances[msg.sender][spender];
        require(sender_allowance >= subtractedValue, "ERC20: transfer exceeds allowance");
        _approve(msg.sender, spender, sender_allowance - subtractedValue);
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        uint256 sender_balance = _balances[sender];
        uint256 recipient_balance = _balances[recipient];
        require(sender_balance >= amount, "ERC20: transfer amount exceeds balance");
        require(recipient_balance + amount >= recipient_balance, "ERC20: Overflow");
        _balances[sender] = sender_balance - amount;
        _balances[recipient] = recipient_balance + amount;
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");
        uint256 _total = _totalSupply;
        require(_total + amount >= _total, "ERC20: Overflow");
        _totalSupply = _total + amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");
        uint256 current_balance = _balances[account];
        require(current_balance >= value, "ERC20: burn amount exceeds balance");
        _balances[account] = current_balance - value;
        _totalSupply -= value;
        emit Transfer(account, address(0), value);
    }

    function _approve(
        address owner,
        address spender,
        uint256 value
    ) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        uint256 current_allowance = _allowances[account][msg.sender];
        require(current_allowance >= amount, "ERC20: burn amount exceeds allowance");
        _approve(account, msg.sender, current_allowance - amount);
    }
}

File 2 of 3: IERC20.sol
// SPDX-License-Identifier: Apache-2.0.
pragma solidity ^0.6.12;

/*
  Interface of the ERC20 standard as defined in the EIP. Does not include
  the optional functions; to access them see {ERC20Detailed}.
*/
interface IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    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);
}

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":"fundsOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"adminApproval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"account","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":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"name":"initlialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"registerAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"oldAdmin","type":"address"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"resetMaxMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"selfMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBalance","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526103e860085534801561001657600080fd5b50336000818152600660205260409020805460ff19166001179055600780546001600160a01b03191690911790556111d9806100536000396000f3fe608060405234801561001057600080fd5b50600436106101115760003560e01c806395d89b41116100ad578063c52cac8911610071578063c52cac891461048c578063c700362d146104a9578063dd62ed3e146104df578063e30443bc1461050d578063f2fde38b1461053957610111565b806395d89b41146102d8578063a457c2d7146102e0578063a9059cbb1461030c578063ab25aec614610338578063c38c58131461046657610111565b806306fdde0314610116578063095ea7b3146101935780630d3c69b4146101d35780631785f53c146101f257806318160ddd1461021857806323b872dd14610232578063313ce56714610268578063395093511461028657806370a08231146102b2575b600080fd5b61011e61055f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610158578181015183820152602001610140565b50505050905090810190601f1680156101855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101bf600480360360408110156101a957600080fd5b506001600160a01b0381351690602001356105f5565b604080519115158252519081900360200190f35b6101f0600480360360208110156101e957600080fd5b503561060b565b005b6101f06004803603602081101561020857600080fd5b50356001600160a01b0316610660565b61022061072a565b60408051918252519081900360200190f35b6101bf6004803603606081101561024857600080fd5b506001600160a01b03813581169160208101359091169060400135610730565b6102706107b8565b6040805160ff9092168252519081900360200190f35b6101bf6004803603604081101561029c57600080fd5b506001600160a01b0381351690602001356107c1565b610220600480360360208110156102c857600080fd5b50356001600160a01b0316610845565b61011e610860565b6101bf600480360360408110156102f657600080fd5b506001600160a01b0381351690602001356108c1565b6101bf6004803603604081101561032257600080fd5b506001600160a01b038135169060200135610931565b6101f06004803603606081101561034e57600080fd5b810190602081018135600160201b81111561036857600080fd5b82018360208201111561037a57600080fd5b803590602001918460018302840111600160201b8311171561039b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156103ed57600080fd5b8201836020820111156103ff57600080fd5b803590602001918460018302840111600160201b8311171561042057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff16915061093e9050565b6101f06004803603602081101561047c57600080fd5b50356001600160a01b0316610a62565b6101f0600480360360208110156104a257600080fd5b5035610ad2565b6101f0600480360360608110156104bf57600080fd5b506001600160a01b03813581169160208101359091169060400135610b23565b610220600480360360408110156104f557600080fd5b506001600160a01b0381358116916020013516610b84565b6101f06004803603604081101561052357600080fd5b506001600160a01b038135169060200135610baf565b6101f06004803603602081101561054f57600080fd5b50356001600160a01b0316610c2b565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105eb5780601f106105c0576101008083540402835291602001916105eb565b820191906000526020600020905b8154815290600101906020018083116105ce57829003601f168201915b5050505050905090565b6000610602338484610cae565b50600192915050565b600854811115610653576040805162461bcd60e51b815260206004820152600e60248201526d1253131151d05317d05353d5539560921b604482015290519081900360640190fd5b61065d3382610d9a565b50565b6007546001600160a01b031633146106ac576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b6007546001600160a01b0382811691161415610709576040805162461bcd60e51b815260206004820152601760248201527627aba722a92fa6aaa9aa2fa922a6a0a4a72fa0a226a4a760491b604482015290519081900360640190fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b60025490565b600061073d848484610e9d565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107a05760405162461bcd60e51b81526004018080602001828103825260218152602001806111146021913960400191505060405180910390fd5b6107ad8533858403610cae565b506001949350505050565b60055460ff1690565b3360009081526001602090815260408083206001600160a01b038616845290915281205482810181111561082e576040805162461bcd60e51b815260206004820152600f60248201526e45524332303a204f766572666c6f7760881b604482015290519081900360640190fd5b61083b3385858401610cae565b5060019392505050565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105eb5780601f106105c0576101008083540402835291602001916105eb565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156109245760405162461bcd60e51b81526004018080602001828103825260218152602001806111146021913960400191505060405180910390fd5b61083b3385858403610cae565b6000610602338484610e9d565b6007546001600160a01b0316331461098a576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b60055460ff16156109d8576040805162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b604482015290519081900360640190fd5b60ff8116610a22576040805162461bcd60e51b8152602060048201526012602482015271494c4c4547414c5f494e49545f56414c554560701b604482015290519081900360640190fd5b8251610a3590600390602086019061103b565b508151610a4990600490602085019061103b565b506005805460ff191660ff929092169190911790555050565b6007546001600160a01b03163314610aae576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6007546001600160a01b03163314610b1e576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b600855565b3360009081526006602052604090205460ff16610b74576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa0a226a4a760b11b604482015290519081900360640190fd5b610b7f838383610cae565b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3360009081526006602052604090205460ff16610c00576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa0a226a4a760b11b604482015290519081900360640190fd5b6001600160a01b03909116600090815260208190526040902080546002805491840391909101905555565b6007546001600160a01b03163314610c77576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b6001600160a01b03166000818152600660205260409020805460ff19166001179055600780546001600160a01b0319169091179055565b6001600160a01b038316610cf35760405162461bcd60e51b81526004018080602001828103825260248152602001806111806024913960400191505060405180910390fd5b6001600160a01b038216610d385760405162461bcd60e51b81526004018080602001828103825260228152602001806110f26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038216610df5576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254818101811115610e41576040805162461bcd60e51b815260206004820152600f60248201526e45524332303a204f766572666c6f7760881b604482015290519081900360640190fd5b8082016002556001600160a01b038316600081815260208181526040808320805487019055805186815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3505050565b6001600160a01b038316610ee25760405162461bcd60e51b815260040180806020018281038252602581526020018061115b6025913960400191505060405180910390fd5b6001600160a01b038216610f275760405162461bcd60e51b81526004018080602001828103825260238152602001806110cf6023913960400191505060405180910390fd5b6001600160a01b0380841660009081526020819052604080822054928516825290205482821015610f895760405162461bcd60e51b81526004018080602001828103825260268152602001806111356026913960400191505060405180910390fd5b808382011015610fd2576040805162461bcd60e51b815260206004820152600f60248201526e45524332303a204f766572666c6f7760881b604482015290519081900360640190fd5b6001600160a01b0380861660008181526020818152604080832088880390559388168083529184902085880190558351878152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061107c57805160ff19168380011785556110a9565b828001600101855582156110a9579182015b828111156110a957825182559160200191906001019061108e565b506110b59291506110b9565b5090565b5b808211156110b557600081556001016110ba56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e73666572206578636565647320616c6c6f77616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122027edee8c1beb2a90deadb559ead2d818d7c43c1e3f076a442c14a0122afbf21964736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101115760003560e01c806395d89b41116100ad578063c52cac8911610071578063c52cac891461048c578063c700362d146104a9578063dd62ed3e146104df578063e30443bc1461050d578063f2fde38b1461053957610111565b806395d89b41146102d8578063a457c2d7146102e0578063a9059cbb1461030c578063ab25aec614610338578063c38c58131461046657610111565b806306fdde0314610116578063095ea7b3146101935780630d3c69b4146101d35780631785f53c146101f257806318160ddd1461021857806323b872dd14610232578063313ce56714610268578063395093511461028657806370a08231146102b2575b600080fd5b61011e61055f565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610158578181015183820152602001610140565b50505050905090810190601f1680156101855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101bf600480360360408110156101a957600080fd5b506001600160a01b0381351690602001356105f5565b604080519115158252519081900360200190f35b6101f0600480360360208110156101e957600080fd5b503561060b565b005b6101f06004803603602081101561020857600080fd5b50356001600160a01b0316610660565b61022061072a565b60408051918252519081900360200190f35b6101bf6004803603606081101561024857600080fd5b506001600160a01b03813581169160208101359091169060400135610730565b6102706107b8565b6040805160ff9092168252519081900360200190f35b6101bf6004803603604081101561029c57600080fd5b506001600160a01b0381351690602001356107c1565b610220600480360360208110156102c857600080fd5b50356001600160a01b0316610845565b61011e610860565b6101bf600480360360408110156102f657600080fd5b506001600160a01b0381351690602001356108c1565b6101bf6004803603604081101561032257600080fd5b506001600160a01b038135169060200135610931565b6101f06004803603606081101561034e57600080fd5b810190602081018135600160201b81111561036857600080fd5b82018360208201111561037a57600080fd5b803590602001918460018302840111600160201b8311171561039b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156103ed57600080fd5b8201836020820111156103ff57600080fd5b803590602001918460018302840111600160201b8311171561042057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505050903560ff16915061093e9050565b6101f06004803603602081101561047c57600080fd5b50356001600160a01b0316610a62565b6101f0600480360360208110156104a257600080fd5b5035610ad2565b6101f0600480360360608110156104bf57600080fd5b506001600160a01b03813581169160208101359091169060400135610b23565b610220600480360360408110156104f557600080fd5b506001600160a01b0381358116916020013516610b84565b6101f06004803603604081101561052357600080fd5b506001600160a01b038135169060200135610baf565b6101f06004803603602081101561054f57600080fd5b50356001600160a01b0316610c2b565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105eb5780601f106105c0576101008083540402835291602001916105eb565b820191906000526020600020905b8154815290600101906020018083116105ce57829003601f168201915b5050505050905090565b6000610602338484610cae565b50600192915050565b600854811115610653576040805162461bcd60e51b815260206004820152600e60248201526d1253131151d05317d05353d5539560921b604482015290519081900360640190fd5b61065d3382610d9a565b50565b6007546001600160a01b031633146106ac576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b6007546001600160a01b0382811691161415610709576040805162461bcd60e51b815260206004820152601760248201527627aba722a92fa6aaa9aa2fa922a6a0a4a72fa0a226a4a760491b604482015290519081900360640190fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b60025490565b600061073d848484610e9d565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156107a05760405162461bcd60e51b81526004018080602001828103825260218152602001806111146021913960400191505060405180910390fd5b6107ad8533858403610cae565b506001949350505050565b60055460ff1690565b3360009081526001602090815260408083206001600160a01b038616845290915281205482810181111561082e576040805162461bcd60e51b815260206004820152600f60248201526e45524332303a204f766572666c6f7760881b604482015290519081900360640190fd5b61083b3385858401610cae565b5060019392505050565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105eb5780601f106105c0576101008083540402835291602001916105eb565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156109245760405162461bcd60e51b81526004018080602001828103825260218152602001806111146021913960400191505060405180910390fd5b61083b3385858403610cae565b6000610602338484610e9d565b6007546001600160a01b0316331461098a576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b60055460ff16156109d8576040805162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b604482015290519081900360640190fd5b60ff8116610a22576040805162461bcd60e51b8152602060048201526012602482015271494c4c4547414c5f494e49545f56414c554560701b604482015290519081900360640190fd5b8251610a3590600390602086019061103b565b508151610a4990600490602085019061103b565b506005805460ff191660ff929092169190911790555050565b6007546001600160a01b03163314610aae576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6007546001600160a01b03163314610b1e576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b600855565b3360009081526006602052604090205460ff16610b74576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa0a226a4a760b11b604482015290519081900360640190fd5b610b7f838383610cae565b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3360009081526006602052604090205460ff16610c00576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa0a226a4a760b11b604482015290519081900360640190fd5b6001600160a01b03909116600090815260208190526040902080546002805491840391909101905555565b6007546001600160a01b03163314610c77576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b6001600160a01b03166000818152600660205260409020805460ff19166001179055600780546001600160a01b0319169091179055565b6001600160a01b038316610cf35760405162461bcd60e51b81526004018080602001828103825260248152602001806111806024913960400191505060405180910390fd5b6001600160a01b038216610d385760405162461bcd60e51b81526004018080602001828103825260228152602001806110f26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038216610df5576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254818101811115610e41576040805162461bcd60e51b815260206004820152600f60248201526e45524332303a204f766572666c6f7760881b604482015290519081900360640190fd5b8082016002556001600160a01b038316600081815260208181526040808320805487019055805186815290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3505050565b6001600160a01b038316610ee25760405162461bcd60e51b815260040180806020018281038252602581526020018061115b6025913960400191505060405180910390fd5b6001600160a01b038216610f275760405162461bcd60e51b81526004018080602001828103825260238152602001806110cf6023913960400191505060405180910390fd5b6001600160a01b0380841660009081526020819052604080822054928516825290205482821015610f895760405162461bcd60e51b81526004018080602001828103825260268152602001806111356026913960400191505060405180910390fd5b808382011015610fd2576040805162461bcd60e51b815260206004820152600f60248201526e45524332303a204f766572666c6f7760881b604482015290519081900360640190fd5b6001600160a01b0380861660008181526020818152604080832088880390559388168083529184902085880190558351878152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061107c57805160ff19168380011785556110a9565b828001600101855582156110a9579182015b828111156110a957825182559160200191906001019061108e565b506110b59291506110b9565b5090565b5b808211156110b557600081556001016110ba56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e73666572206578636565647320616c6c6f77616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122027edee8c1beb2a90deadb559ead2d818d7c43c1e3f076a442c14a0122afbf21964736f6c634300060c0033

Deployed Bytecode Sourcemap

184:1886:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;378:92:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1226:154;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1226:154:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1928:140:2;;;;;;;;;;;;;;;;-1:-1:-1;1928:140:2;;:::i;:::-;;1171:162;;;;;;;;;;;;;;;;-1:-1:-1;1171:162:2;-1:-1:-1;;;;;1171:162:2;;:::i;676:98:0:-;;;:::i;:::-;;;;;;;;;;;;;;;;1386:431;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1386:431:0;;;;;;;;;;;;;;;;;:::i;578:92::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1823:344;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1823:344:0;;;;;;;;:::i;780:117::-;;;;;;;;;;;;;;;;-1:-1:-1;780:117:0;-1:-1:-1;;;;;780:117:0;;:::i;476:96::-;;;:::i;2173:354::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2173:354:0;;;;;;;;:::i;903:170::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;903:170:0;;;;;;;;:::i;439:330:2:-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;439:330:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;439:330:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;439:330:2;;;;;;;;-1:-1:-1;439:330:2;;-1:-1:-1;;;;;439:330:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;439:330:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;439:330:2;;-1:-1:-1;;;439:330:2;;;;;-1:-1:-1;439:330:2;;-1:-1:-1;439:330:2:i;1065:100::-;;;;;;;;;;;;;;;;-1:-1:-1;1065:100:2;-1:-1:-1;;;;;1065:100:2;;:::i;1831:91::-;;;;;;;;;;;;;;;;-1:-1:-1;1831:91:2;;:::i;1473:177::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1473:177:2;;;;;;;;;;;;;;;;;:::i;1079:141:0:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1079:141:0;;;;;;;;;;:::i;1656:169:2:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1656:169:2;;;;;;;;:::i;1339:128::-;;;;;;;;;;;;;;;;-1:-1:-1;1339:128:2;-1:-1:-1;;;;;1339:128:2;;:::i;378:92:0:-;458:5;451:12;;;;;;;;-1:-1:-1;;451:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;426:13;;451:12;;458:5;;451:12;;458:5;451:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;378:92;:::o;1226:154::-;1300:4;1316:36;1325:10;1337:7;1346:5;1316:8;:36::i;:::-;-1:-1:-1;1369:4:0;1226:154;;;;:::o;1928:140:2:-;1999:8;;1989:6;:18;;1981:45;;;;;-1:-1:-1;;;1981:45:2;;;;;;;;;;;;-1:-1:-1;;;1981:45:2;;;;;;;;;;;;;;;2036:25;2042:10;2054:6;2036:5;:25::i;:::-;1928:140;:::o;1171:162::-;1021:5;;-1:-1:-1;;;;;1021:5:2;1007:10;:19;999:42;;;;;-1:-1:-1;;;999:42:2;;;;;;;;;;;;-1:-1:-1;;;999:42:2;;;;;;;;;;;;;;;1259:5:::1;::::0;-1:-1:-1;;;;;1247:17:2;;::::1;1259:5:::0;::::1;1247:17;;1239:53;;;::::0;;-1:-1:-1;;;1239:53:2;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;1239:53:2;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;1302:16:2::1;1321:5;1302:16:::0;;;:6:::1;:16;::::0;;;;:24;;-1:-1:-1;;1302:24:2::1;::::0;;1171:162::o;676:98:0:-;755:12;;676:98;:::o;1386:431::-;1522:4;1538:36;1548:6;1556:9;1567:6;1538:9;:36::i;:::-;-1:-1:-1;;;;;1611:19:0;;1584:24;1611:19;;;:11;:19;;;;;;;;1631:10;1611:31;;;;;;;;1660:26;;;;1652:72;;;;-1:-1:-1;;;1652:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1734:55;1743:6;1751:10;1782:6;1763:16;:25;1734:8;:55::i;:::-;-1:-1:-1;1806:4:0;;1386:431;-1:-1:-1;;;;1386:431:0:o;578:92::-;654:9;;;;578:92;:::o;1823:344::-;1959:10;1903:4;1947:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;1947:32:0;;;;;;;;;;1997:30;;;:51;-1:-1:-1;1997:51:0;1989:79;;;;;-1:-1:-1;;;1989:79:0;;;;;;;;;;;;-1:-1:-1;;;1989:79:0;;;;;;;;;;;;;;;2078:61;2087:10;2099:7;2128:10;2108:17;:30;2078:8;:61::i;:::-;-1:-1:-1;2156:4:0;;1823:344;-1:-1:-1;;;1823:344:0:o;780:117::-;-1:-1:-1;;;;;872:18:0;846:7;872:18;;;;;;;;;;;;780:117::o;476:96::-;558:7;551:14;;;;;;;;-1:-1:-1;;551:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;526:13;;551:14;;558:7;;551:14;;558:7;551:14;;;;;;;;;;;;;;;;;;;;;;;;2173:354;2313:10;2258:4;2301:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;2301:32:0;;;;;;;;;;2351:35;;;;2343:81;;;;-1:-1:-1;;;2343:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2434:65;2443:10;2455:7;2483:15;2464:16;:34;2434:8;:65::i;903:170::-;989:4;1005:40;1015:10;1027:9;1038:6;1005:9;:40::i;439:330:2:-;1021:5;;-1:-1:-1;;;;;1021:5:2;1007:10;:19;999:42;;;;;-1:-1:-1;;;999:42:2;;;;;;;;;;;;-1:-1:-1;;;999:42:2;;;;;;;;;;;;;;;588:9:::1;::::0;::::1;;:14:::0;580:46:::1;;;::::0;;-1:-1:-1;;;580:46:2;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;580:46:2;;;;;;;;;;;;;::::1;;644:14;::::0;::::1;636:45;;;::::0;;-1:-1:-1;;;636:45:2;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;636:45:2;;;;;;;;;;;;;::::1;;691:13:::0;;::::1;::::0;:5:::1;::::0;:13:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;714:17:2;;::::1;::::0;:7:::1;::::0;:17:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;741:9:2::1;:21:::0;;-1:-1:-1;;741:21:2::1;;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;439:330:2:o;1065:100::-;1021:5;;-1:-1:-1;;;;;1021:5:2;1007:10;:19;999:42;;;;;-1:-1:-1;;;999:42:2;;;;;;;;;;;;-1:-1:-1;;;999:42:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;1135:16:2::1;;::::0;;;:6:::1;:16;::::0;;;;:23;;-1:-1:-1;;1135:23:2::1;1154:4;1135:23;::::0;;1065:100::o;1831:91::-;1021:5;;-1:-1:-1;;;;;1021:5:2;1007:10;:19;999:42;;;;;-1:-1:-1;;;999:42:2;;;;;;;;;;;;-1:-1:-1;;;999:42:2;;;;;;;;;;;;;;;1898:8:::1;:17:::0;1831:91::o;1473:177::-;918:10;911:18;;;;:6;:18;;;;;;;;903:41;;;;;-1:-1:-1;;;903:41:2;;;;;;;;;;;;-1:-1:-1;;;903:41:2;;;;;;;;;;;;;;;1607:36:::1;1616:10;1628:7;1637:5;1607:8;:36::i;:::-;1473:177:::0;;;:::o;1079:141:0:-;-1:-1:-1;;;;;1186:18:0;;;1160:7;1186:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;1079:141::o;1656:169:2:-;918:10;911:18;;;;:6;:18;;;;;;;;903:41;;;;;-1:-1:-1;;;903:41:2;;;;;;;;;;;;-1:-1:-1;;;903:41:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;1763:18:2;;::::1;:9;:18:::0;;;::::1;::::0;;;;;;;;1738:12:::1;:43:::0;;1754:27;;::::1;1738:43:::0;;;::::1;::::0;;1791:27;1656:169::o;1339:128::-;1021:5;;-1:-1:-1;;;;;1021:5:2;1007:10;:19;999:42;;;;;-1:-1:-1;;;999:42:2;;;;;;;;;;;;-1:-1:-1;;;999:42:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;1411:16:2::1;;::::0;;;:6:::1;:16;::::0;;;;:23;;-1:-1:-1;;1411:23:2::1;1430:4;1411:23;::::0;;1444:5:::1;:16:::0;;-1:-1:-1;;;;;;1444:16:2::1;::::0;;::::1;::::0;;1339:128::o;4052:359:0:-;-1:-1:-1;;;;;4174:19:0;;4166:68;;;;-1:-1:-1;;;4166:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4252:21:0;;4244:68;;;;-1:-1:-1;;;4244:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4323:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;4373:31;;;;;;;;;;;;;;;;;4052:359;;;:::o;3258:371::-;-1:-1:-1;;;;;3333:21:0;;3325:65;;;;;-1:-1:-1;;;3325:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3417:12;;3447:15;;;:25;-1:-1:-1;3447:25:0;3439:53;;;;;-1:-1:-1;;;3439:53:0;;;;;;;;;;;;-1:-1:-1;;;3439:53:0;;;;;;;;;;;;;;;3517:15;;;3502:12;:30;-1:-1:-1;;;;;3542:18:0;;:9;:18;;;;;;;;;;;:28;;;;;;3585:37;;;;;;;;;;;;;;;;;;3258:371;;;:::o;2533:719::-;-1:-1:-1;;;;;2660:20:0;;2652:70;;;;-1:-1:-1;;;2652:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2740:23:0;;2732:71;;;;-1:-1:-1;;;2732:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2838:17:0;;;2813:22;2838:17;;;;;;;;;;;;2893:20;;;;;;;;2931:24;;;;2923:75;;;;-1:-1:-1;;;2923:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3046:17;3036:6;3016:17;:26;:47;;3008:75;;;;;-1:-1:-1;;;3008:75:0;;;;;;;;;;;;-1:-1:-1;;;3008:75:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;3093:17:0;;;:9;:17;;;;;;;;;;;3113:23;;;3093:43;;3146:20;;;;;;;;;;3169:26;;;3146:49;;3210:35;;;;;;;3146:20;;3210:35;;;;;;;;;;;2533:719;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;

Swarm Source

ipfs://27edee8c1beb2a90deadb559ead2d818d7c43c1e3f076a442c14a0122afbf219
[ 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.