ETH Price: $2,409.47 (-0.65%)

Token

Synthetix Network Token (SNX)

Overview

Max Total Supply

102,108,800.846863676797961711 SNX

Holders

78,128 ( 0.001%)

Market

Price

$1.39 @ 0.000577 ETH (-0.26%)

Onchain Market Cap

$141,931,233.18

Circulating Supply Market Cap

$454,792,479.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
3.19432735209276086 SNX

Value
$4.44 ( ~0.00184272636636044 ETH) [0.0000%]
0xAc9a102344Ee0B22334dC09668674Da1d2844Df4
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Synthetix is the backbone for derivatives trading in DeFi, allowing anyone, anywhere to gain on-chain exposure to a vast range of assets.

Market

Volume (24H):$18,498,261.00
Market Capitalization:$454,792,479.00
Circulating Supply:327,769,196.00 SNX
Market Data Source: Coinmarketcap

Contract Source Code Verified (Genesis Bytecode Match Only)

Contract Name:
ProxyERC20

Compiler Version
v0.5.16

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at optimistic.etherscan.io on 2021-08-25
*/

/*

Note:

This is a PROXY contract, it defers requests to its underlying TARGET contract. 
Always use this address in your applications and never the TARGET as it is liable to change.

*//*
   ____            __   __        __   _
  / __/__ __ ___  / /_ / /  ___  / /_ (_)__ __
 _\ \ / // // _ \/ __// _ \/ -_)/ __// / \ \ /
/___/ \_, //_//_/\__//_//_/\__/ \__//_/ /_\_\
     /___/

* Synthetix: ProxyERC20.sol
*
* Latest source (may be newer): https://github.com/Synthetixio/synthetix/blob/master/contracts/ProxyERC20.sol
* Docs: https://docs.synthetix.io/contracts/ProxyERC20
*
* Contract Dependencies: 
*	- IERC20
*	- Owned
*	- Proxy
* Libraries: (none)
*
* MIT License
* ===========
*
* Copyright (c) 2021 Synthetix
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
*/



pragma solidity ^0.5.16;

// https://docs.synthetix.io/contracts/source/contracts/owned
contract Owned {
    address public owner;
    address public nominatedOwner;

    constructor(address _owner) public {
        require(_owner != address(0), "Owner address cannot be 0");
        owner = _owner;
        emit OwnerChanged(address(0), _owner);
    }

    function nominateNewOwner(address _owner) external onlyOwner {
        nominatedOwner = _owner;
        emit OwnerNominated(_owner);
    }

    function acceptOwnership() external {
        require(msg.sender == nominatedOwner, "You must be nominated before you can accept ownership");
        emit OwnerChanged(owner, nominatedOwner);
        owner = nominatedOwner;
        nominatedOwner = address(0);
    }

    modifier onlyOwner {
        _onlyOwner();
        _;
    }

    function _onlyOwner() private view {
        require(msg.sender == owner, "Only the contract owner may perform this action");
    }

    event OwnerNominated(address newOwner);
    event OwnerChanged(address oldOwner, address newOwner);
}


// Inheritance


// Internal references


// https://docs.synthetix.io/contracts/source/contracts/proxyable
contract Proxyable is Owned {
    // This contract should be treated like an abstract contract

    /* The proxy this contract exists behind. */
    Proxy public proxy;
    Proxy public integrationProxy;

    /* The caller of the proxy, passed through to this contract.
     * Note that every function using this member must apply the onlyProxy or
     * optionalProxy modifiers, otherwise their invocations can use stale values. */
    address public messageSender;

    constructor(address payable _proxy) internal {
        // This contract is abstract, and thus cannot be instantiated directly
        require(owner != address(0), "Owner must be set");

        proxy = Proxy(_proxy);
        emit ProxyUpdated(_proxy);
    }

    function setProxy(address payable _proxy) external onlyOwner {
        proxy = Proxy(_proxy);
        emit ProxyUpdated(_proxy);
    }

    function setIntegrationProxy(address payable _integrationProxy) external onlyOwner {
        integrationProxy = Proxy(_integrationProxy);
    }

    function setMessageSender(address sender) external onlyProxy {
        messageSender = sender;
    }

    modifier onlyProxy {
        _onlyProxy();
        _;
    }

    function _onlyProxy() private view {
        require(Proxy(msg.sender) == proxy || Proxy(msg.sender) == integrationProxy, "Only the proxy can call");
    }

    modifier optionalProxy {
        _optionalProxy();
        _;
    }

    function _optionalProxy() private {
        if (Proxy(msg.sender) != proxy && Proxy(msg.sender) != integrationProxy && messageSender != msg.sender) {
            messageSender = msg.sender;
        }
    }

    modifier optionalProxy_onlyOwner {
        _optionalProxy_onlyOwner();
        _;
    }

    // solhint-disable-next-line func-name-mixedcase
    function _optionalProxy_onlyOwner() private {
        if (Proxy(msg.sender) != proxy && Proxy(msg.sender) != integrationProxy && messageSender != msg.sender) {
            messageSender = msg.sender;
        }
        require(messageSender == owner, "Owner only function");
    }

    event ProxyUpdated(address proxyAddress);
}


// Inheritance


// Internal references


// https://docs.synthetix.io/contracts/source/contracts/proxy
contract Proxy is Owned {
    Proxyable public target;

    constructor(address _owner) public Owned(_owner) {}

    function setTarget(Proxyable _target) external onlyOwner {
        target = _target;
        emit TargetUpdated(_target);
    }

    function _emit(
        bytes calldata callData,
        uint numTopics,
        bytes32 topic1,
        bytes32 topic2,
        bytes32 topic3,
        bytes32 topic4
    ) external onlyTarget {
        uint size = callData.length;
        bytes memory _callData = callData;

        assembly {
            /* The first 32 bytes of callData contain its length (as specified by the abi).
             * Length is assumed to be a uint256 and therefore maximum of 32 bytes
             * in length. It is also leftpadded to be a multiple of 32 bytes.
             * This means moving call_data across 32 bytes guarantees we correctly access
             * the data itself. */
            switch numTopics
                case 0 {
                    log0(add(_callData, 32), size)
                }
                case 1 {
                    log1(add(_callData, 32), size, topic1)
                }
                case 2 {
                    log2(add(_callData, 32), size, topic1, topic2)
                }
                case 3 {
                    log3(add(_callData, 32), size, topic1, topic2, topic3)
                }
                case 4 {
                    log4(add(_callData, 32), size, topic1, topic2, topic3, topic4)
                }
        }
    }

    // solhint-disable no-complex-fallback
    function() external payable {
        // Mutable call setting Proxyable.messageSender as this is using call not delegatecall
        target.setMessageSender(msg.sender);

        assembly {
            let free_ptr := mload(0x40)
            calldatacopy(free_ptr, 0, calldatasize)

            /* We must explicitly forward ether to the underlying contract as well. */
            let result := call(gas, sload(target_slot), callvalue, free_ptr, calldatasize, 0, 0)
            returndatacopy(free_ptr, 0, returndatasize)

            if iszero(result) {
                revert(free_ptr, returndatasize)
            }
            return(free_ptr, returndatasize)
        }
    }

    modifier onlyTarget {
        require(Proxyable(msg.sender) == target, "Must be proxy target");
        _;
    }

    event TargetUpdated(Proxyable newTarget);
}


// https://docs.synthetix.io/contracts/source/interfaces/ierc20
interface IERC20 {
    // ERC20 Optional Views
    function name() external view returns (string memory);

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

    function decimals() external view returns (uint8);

    // Views
    function totalSupply() external view returns (uint);

    function balanceOf(address owner) external view returns (uint);

    function allowance(address owner, address spender) external view returns (uint);

    // Mutative functions
    function transfer(address to, uint value) external returns (bool);

    function approve(address spender, uint value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint value
    ) external returns (bool);

    // Events
    event Transfer(address indexed from, address indexed to, uint value);

    event Approval(address indexed owner, address indexed spender, uint value);
}


// Inheritance


// https://docs.synthetix.io/contracts/source/contracts/proxyerc20
contract ProxyERC20 is Proxy, IERC20 {
    constructor(address _owner) public Proxy(_owner) {}

    // ------------- ERC20 Details ------------- //

    function name() public view returns (string memory) {
        // Immutable static call from target contract
        return IERC20(address(target)).name();
    }

    function symbol() public view returns (string memory) {
        // Immutable static call from target contract
        return IERC20(address(target)).symbol();
    }

    function decimals() public view returns (uint8) {
        // Immutable static call from target contract
        return IERC20(address(target)).decimals();
    }

    // ------------- ERC20 Interface ------------- //

    /**
     * @dev Total number of tokens in existence
     */
    function totalSupply() public view returns (uint256) {
        // Immutable static call from target contract
        return IERC20(address(target)).totalSupply();
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param account The address to query the balance of.
     * @return An uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address account) public view returns (uint256) {
        // Immutable static call from target contract
        return IERC20(address(target)).balanceOf(account);
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address owner, address spender) public view returns (uint256) {
        // Immutable static call from target contract
        return IERC20(address(target)).allowance(owner, spender);
    }

    /**
     * @dev Transfer token for a specified address
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function transfer(address to, uint256 value) public returns (bool) {
        // Mutable state call requires the proxy to tell the target who the msg.sender is.
        target.setMessageSender(msg.sender);

        // Forward the ERC20 call to the target contract
        IERC20(address(target)).transfer(to, value);

        // Event emitting will occur via Synthetix.Proxy._emit()
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        // Mutable state call requires the proxy to tell the target who the msg.sender is.
        target.setMessageSender(msg.sender);

        // Forward the ERC20 call to the target contract
        IERC20(address(target)).approve(spender, value);

        // Event emitting will occur via Synthetix.Proxy._emit()
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     */
    function transferFrom(
        address from,
        address to,
        uint256 value
    ) public returns (bool) {
        // Mutable state call requires the proxy to tell the target who the msg.sender is.
        target.setMessageSender(msg.sender);

        // Forward the ERC20 call to the target contract
        IERC20(address(target)).transferFrom(from, to, value);

        // Event emitting will occur via Synthetix.Proxy._emit()
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"payable":false,"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":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract Proxyable","name":"newTarget","type":"address"}],"name":"TargetUpdated","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"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"numTopics","type":"uint256"},{"internalType":"bytes32","name":"topic1","type":"bytes32"},{"internalType":"bytes32","name":"topic2","type":"bytes32"},{"internalType":"bytes32","name":"topic3","type":"bytes32"},{"internalType":"bytes32","name":"topic4","type":"bytes32"}],"name":"_emit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Proxyable","name":"_target","type":"address"}],"name":"setTarget","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"target","outputs":[{"internalType":"contract Proxyable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]

80604052600436106100f35760003560e01c8063776d1a011161008a57806395d89b411161005957806395d89b411461059d578063a9059cbb146105bb578063d4b8399214610606578063dd62ed3e14610624576100f3565b8063776d1a011461045a57806379ba50971461049f5780638da5cb5b146104bd578063907dff97146104db576100f3565b806323b872dd116100c657806323b872dd14610352578063313ce567146103a757806353a47bb7146103db57806370a0823114610415576100f3565b806306fdde03146101e7578063095ea7b31461027c5780631627540c146102db57806318160ddd14610322575b600060026100ff6113c3565b906101000a90046001600160a01b03166001600160a01b031663bc67f8325a61012661141e565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038160008780610162611464565b158015610177576000806101746114b0565b50505b505a61018161151b565b5050505050501580156101a1573d6000803e3d600061019e6114b0565b50505b50505050604051366000823760008036833460026101bd6113c3565b5a6101c661151b565b5050505050503d6000833e806101e3573d826101e06114b0565b50505b3d82f35b3480156101fc576000806101f96114b0565b50505b50610205610671565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610241578082015183820152602001610229565b50505050905090810190601f16801561026e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102915760008061028e6114b0565b50505b506102c7600480360360408110156102b1576000806102ae6114b0565b50505b506001600160a01b038135169060200135610801565b604051901515815260200160405180910390f35b3480156102f0576000806102ed6114b0565b50505b50610320600480360360208110156103105760008061030d6114b0565b50505b50356001600160a01b0316610995565b005b348015610337576000806103346114b0565b50505b50610340610a0f565b60405190815260200160405180910390f35b348015610367576000806103646114b0565b50505b506102c760048036036060811015610387576000806103846114b0565b50505b506001600160a01b03813581169160208101359091169060400135610aca565b3480156103bc576000806103b96114b0565b50505b506103c5610c6a565b60405160ff909116815260200160405180910390f35b3480156103f0576000806103ed6114b0565b50505b506103f9610cba565b6040516001600160a01b03909116815260200160405180910390f35b34801561042a576000806104276114b0565b50505b506103406004803603602081101561044a576000806104476114b0565b50505b50356001600160a01b0316610cd9565b34801561046f5760008061046c6114b0565b50505b506103206004803603602081101561048f5760008061048c6114b0565b50505b50356001600160a01b0316610dab565b3480156104b4576000806104b16114b0565b50505b50610320610e26565b3480156104d2576000806104cf6114b0565b50505b506103f9610fa9565b3480156104f0576000806104ed6114b0565b50505b50610320600480360360c08110156105105760008061050d6114b0565b50505b810190602081018135640100000000811115610534576000806105316114b0565b50505b82018360208201111561054f5760008061054c6114b0565b50505b8035906020019184600183028401116401000000008311171561057a576000806105776114b0565b50505b919350915080359060208101359060408101359060608101359060800135610fb4565b3480156105b2576000806105af6114b0565b50505b506102056110ed565b3480156105d0576000806105cd6114b0565b50505b506102c7600480360360408110156105f0576000806105ed6114b0565b50505b506001600160a01b03813516906020013561113e565b34801561061b576000806106186114b0565b50505b506103f961125f565b348015610639576000806106366114b0565b50505b5061034060048036036040811015610659576000806106566114b0565b50505b506001600160a01b038135811691602001351661126b565b60606000600261067f6113c3565b906101000a90046001600160a01b03166001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186806106c2611464565b1580156106d7576000806106d46114b0565b50505b505a6106e1611606565b5050505050158015610700573d6000803e3d60006106fd6114b0565b50505b505050506040513d6000823e601f3d908101601f1916820160405260208110156107325760008061072f6114b0565b50505b810190808051604051939291908464010000000082111561075b576000806107586114b0565b50505b908301906020820185811115610779576000806107766114b0565b50505b825164010000000081118282018810171561079c576000806107996114b0565b50505b825250602001908051906020019080838360005b838110156107c85780820151838201526020016107b0565b50505050905090810190601f1680156107f55780820380516001836020036101000a031916815260200191505b50604052505050905090565b600080600261080e6113c3565b906101000a90046001600160a01b03166001600160a01b031663bc67f8325a61083561141e565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038160008780610871611464565b158015610886576000806108836114b0565b50505b505a61089061151b565b5050505050501580156108b0573d6000803e3d60006108ad6114b0565b50505b5050505060026000906108c16113c3565b906101000a90046001600160a01b03166001600160a01b031663095ea7b384846040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160206040518083038160008780610922611464565b158015610937576000806109346114b0565b50505b505a61094161151b565b505050505050158015610961573d6000803e3d600061095e6114b0565b50505b505050506040513d60208110156109805760008061097d6114b0565b50505b81019080805150600193505050505b92915050565b61099d611346565b80600180806109aa6113c3565b816001600160a01b0302191690836001600160a01b03160217906109cc6116cc565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b6000806002610a1c6113c3565b906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b81526004016020604051808303818680610a5f611464565b158015610a7457600080610a716114b0565b50505b505a610a7e611606565b5050505050158015610a9d573d6000803e3d6000610a9a6114b0565b50505b505050506040513d6020811015610abc57600080610ab96114b0565b50505b810190808051935050505090565b6000806002610ad76113c3565b906101000a90046001600160a01b03166001600160a01b031663bc67f8325a610afe61141e565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038160008780610b3a611464565b158015610b4f57600080610b4c6114b0565b50505b505a610b5961151b565b505050505050158015610b79573d6000803e3d6000610b766114b0565b50505b505050506002600090610b8a6113c3565b906101000a90046001600160a01b03166001600160a01b03166323b872dd8585856040516001600160e01b031960e086901b1681526001600160a01b039384166004820152919092166024820152604481019190915260640160206040518083038160008780610bf8611464565b158015610c0d57600080610c0a6114b0565b50505b505a610c1761151b565b505050505050158015610c37573d6000803e3d6000610c346114b0565b50505b505050506040513d6020811015610c5657600080610c536114b0565b50505b810190808051506001979650505050505050565b6000806002610c776113c3565b906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b81526004016020604051808303818680610a5f611464565b60006001610cc66113c3565b906101000a90046001600160a01b031681565b6000806002610ce66113c3565b906101000a90046001600160a01b03166001600160a01b03166370a08231836040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303818680610d3f611464565b158015610d5457600080610d516114b0565b50505b505a610d5e611606565b5050505050158015610d7d573d6000803e3d6000610d7a6114b0565b50505b505050506040513d6020811015610d9c57600080610d996114b0565b50505b81019080805195945050505050565b610db3611346565b806002600181610dc16113c3565b816001600160a01b0302191690836001600160a01b0316021790610de36116cc565b5050507f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e816040516001600160a01b03909116815260200160405180910390a150565b60006001610e326113c3565b906101000a90046001600160a01b03166001600160a01b03165a610e5461141e565b6001600160a01b031614610ea25760405162461bcd60e51b815260040180806020018281038252603581526020018061171b6035913960400191505060405180910390610e9f6114b0565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c600080610ece6113c3565b906101000a90046001600160a01b03166001600090610eeb6113c3565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a160006001610f2a6113c3565b906101000a90046001600160a01b03166000806101000a81610f4a6113c3565b816001600160a01b0302191690836001600160a01b0316021790610f6c6116cc565b5050506000600160006101000a81610f826113c3565b816001600160a01b0302191690836001600160a01b0316021790610fa46116cc565b505050565b600080610cc66113c3565b60006002610fc06113c3565b906101000a90046001600160a01b03166001600160a01b03165a610fe261141e565b6001600160a01b03161461103c5760405162461bcd60e51b8152602060048201526014602482015273135d5cdd081899481c1c9bde1e481d185c99d95d60621b6044820152606401604051809103906110396114b0565b50505b8560608882806020601f82018190048102016040519081016040528181529291906020840183838082843760009201919091525092935089925050811590506110a457600181146110af57600281146110bb57600381146110c857600481146110d6576110e1565b8260208301a06110e1565b868360208401a16110e1565b85878460208501a26110e1565b8486888560208601a36110e1565b838587898660208701a45b50505050505050505050565b6060600060026110fb6113c3565b906101000a90046001600160a01b03166001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186806106c2611464565b600080600261114b6113c3565b906101000a90046001600160a01b03166001600160a01b031663bc67f8325a61117261141e565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087806111ae611464565b1580156111c3576000806111c06114b0565b50505b505a6111cd61151b565b5050505050501580156111ed573d6000803e3d60006111ea6114b0565b50505b5050505060026000906111fe6113c3565b906101000a90046001600160a01b03166001600160a01b031663a9059cbb84846040516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482015260440160206040518083038160008780610922611464565b60006002610cc66113c3565b60008060026112786113c3565b906101000a90046001600160a01b03166001600160a01b031663dd62ed3e84846040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186806112d9611464565b1580156112ee576000806112eb6114b0565b50505b505a6112f8611606565b5050505050158015611317573d6000803e3d60006113146114b0565b50505b505050506040513d6020811015611336576000806113336114b0565b50505b8101908080519695505050505050565b6000806113516113c3565b906101000a90046001600160a01b03166001600160a01b03165a61137361141e565b6001600160a01b0316146113c15760405162461bcd60e51b815260040180806020018281038252602f815260200180611750602f9139604001915050604051809103906113be6114b0565b50505b565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015610fa457600082820152602001611407565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020611407565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020611407565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156114e85780860151828201604001526020016114cd565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6385979f76598160e01b815261154c565b808083111561098f575090919050565b808083101561098f575090919050565b836004820152846024820152606060448201528760648201526084810160005b8981101561158457808901518282015260200161156c565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af150596115d98e3d61153c565b8d016115e5818761152c565b5b828110156115fa57600081526020016115e6565b50929d50505050505050565b638540661f598160e01b8152836004820152846024820152606060448201528660648201526084810160005b8881101561164a578088015182820152602001611632565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af1505961169f8d3d61153c565b8c016116ab818761152c565b5b828110156116c057600081526020016116ac565b50929c50505050505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60008152602061140756fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e

Deployed Bytecode

0x6080604052600436106100f35760003560e01c8063776d1a011161008a57806395d89b411161005957806395d89b4114610473578063a9059cbb14610488578063d4b83992146104c1578063dd62ed3e146104d6576100f3565b8063776d1a011461038157806379ba5097146103b45780638da5cb5b146103c9578063907dff97146103de576100f3565b806323b872dd116100c657806323b872dd146102af578063313ce567146102f257806353a47bb71461031d57806370a082311461034e576100f3565b806306fdde031461017c578063095ea7b3146102065780631627540c1461025357806318160ddd14610288575b60025460408051635e33fc1960e11b815233600482015290516001600160a01b039092169163bc67f8329160248082019260009290919082900301818387803b15801561013f57600080fd5b505af1158015610153573d6000803e3d6000fd5b5050505060405136600082376000803683346002545af13d6000833e80610178573d82fd5b3d82f35b34801561018857600080fd5b50610191610511565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101cb5781810151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021257600080fd5b5061023f6004803603604081101561022957600080fd5b506001600160a01b038135169060200135610648565b604080519115158252519081900360200190f35b34801561025f57600080fd5b506102866004803603602081101561027657600080fd5b50356001600160a01b0316610736565b005b34801561029457600080fd5b5061029d610792565b60408051918252519081900360200190f35b3480156102bb57600080fd5b5061023f600480360360608110156102d257600080fd5b506001600160a01b03813581169160208101359091169060400135610808565b3480156102fe57600080fd5b506103076108ff565b6040805160ff9092168252519081900360200190f35b34801561032957600080fd5b50610332610944565b604080516001600160a01b039092168252519081900360200190f35b34801561035a57600080fd5b5061029d6004803603602081101561037157600080fd5b50356001600160a01b0316610953565b34801561038d57600080fd5b50610286600480360360208110156103a457600080fd5b50356001600160a01b03166109d6565b3480156103c057600080fd5b50610286610a32565b3480156103d557600080fd5b50610332610aee565b3480156103ea57600080fd5b50610286600480360360c081101561040157600080fd5b81019060208101813564010000000081111561041c57600080fd5b82018360208201111561042e57600080fd5b8035906020019184600183028401116401000000008311171561045057600080fd5b919350915080359060208101359060408101359060608101359060800135610afd565b34801561047f57600080fd5b50610191610c06565b34801561049457600080fd5b5061023f600480360360408110156104ab57600080fd5b506001600160a01b038135169060200135610c4b565b3480156104cd57600080fd5b50610332610d04565b3480156104e257600080fd5b5061029d600480360360408110156104f957600080fd5b506001600160a01b0381358116916020013516610d13565b600254604080516306fdde0360e01b815290516060926001600160a01b0316916306fdde03916004808301926000929190829003018186803b15801561055657600080fd5b505afa15801561056a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561059357600080fd5b81019080805160405193929190846401000000008211156105b357600080fd5b9083019060208201858111156105c857600080fd5b82516401000000008111828201881017156105e257600080fd5b82525081516020918201929091019080838360005b8381101561060f5781810151838201526020016105f7565b50505050905090810190601f16801561063c5780820380516001836020036101000a031916815260200191505b50604052505050905090565b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b50506002546040805163095ea7b360e01b81526001600160a01b03888116600483015260248201889052915191909216935063095ea7b3925060448083019260209291908290030181600087803b15801561070157600080fd5b505af1158015610715573d6000803e3d6000fd5b505050506040513d602081101561072b57600080fd5b506001949350505050565b61073e610d9f565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600254604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156107d757600080fd5b505afa1580156107eb573d6000803e3d6000fd5b505050506040513d602081101561080157600080fd5b5051905090565b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b15801561085357600080fd5b505af1158015610867573d6000803e3d6000fd5b5050600254604080516323b872dd60e01b81526001600160a01b03898116600483015288811660248301526044820188905291519190921693506323b872dd925060648083019260209291908290030181600087803b1580156108c957600080fd5b505af11580156108dd573d6000803e3d6000fd5b505050506040513d60208110156108f357600080fd5b50600195945050505050565b6002546040805163313ce56760e01b815290516000926001600160a01b03169163313ce567916004808301926020929190829003018186803b1580156107d757600080fd5b6001546001600160a01b031681565b600254604080516370a0823160e01b81526001600160a01b038481166004830152915160009392909216916370a0823191602480820192602092909190829003018186803b1580156109a457600080fd5b505afa1580156109b8573d6000803e3d6000fd5b505050506040513d60208110156109ce57600080fd5b505192915050565b6109de610d9f565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e9181900360200190a150565b6001546001600160a01b03163314610a7b5760405162461bcd60e51b8152600401808060200182810382526035815260200180610deb6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b03163314610b53576040805162461bcd60e51b8152602060048201526014602482015273135d5cdd081899481c1c9bde1e481d185c99d95d60621b604482015290519081900360640190fd5b604080516020601f89018190048102820181019092528781528791606091908a908490819084018382808284376000920191909152509293508992505081159050610bbd5760018114610bc85760028114610bd45760038114610be15760048114610bef57610bfa565b8260208301a0610bfa565b868360208401a1610bfa565b85878460208501a2610bfa565b8486888560208601a3610bfa565b838587898660208701a45b50505050505050505050565b600254604080516395d89b4160e01b815290516060926001600160a01b0316916395d89b41916004808301926000929190829003018186803b15801561055657600080fd5b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b158015610c9657600080fd5b505af1158015610caa573d6000803e3d6000fd5b50506002546040805163a9059cbb60e01b81526001600160a01b03888116600483015260248201889052915191909216935063a9059cbb925060448083019260209291908290030181600087803b15801561070157600080fd5b6002546001600160a01b031681565b60025460408051636eb1769f60e11b81526001600160a01b03858116600483015284811660248301529151600093929092169163dd62ed3e91604480820192602092909190829003018186803b158015610d6c57600080fd5b505afa158015610d80573d6000803e3d6000fd5b505050506040513d6020811015610d9657600080fd5b50519392505050565b6000546001600160a01b03163314610de85760405162461bcd60e51b815260040180806020018281038252602f815260200180610e20602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a723158208e94edf35869a730a856486697ccc72821948d0c9c45ee17f049d8c4e3cbb9a564736f6c63430005100032

Library Used


[ 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.