ETH Price: $3,255.22 (-0.61%)
Gas: 1 Gwei

Token

Seven Deadly Sins (7DS)
 

Overview

Max Total Supply

133 7DS

Holders

76

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
jonnie.eth
0x45647d3dfbde306a251e93600c732167b981fbf5
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:
SevenDeadlySins

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : Owned.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Simple single owner authorization mixin.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol)
abstract contract Owned {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event OwnershipTransferred(address indexed user, address indexed newOwner);

    /*//////////////////////////////////////////////////////////////
                            OWNERSHIP STORAGE
    //////////////////////////////////////////////////////////////*/

    address public owner;

    modifier onlyOwner() virtual {
        require(msg.sender == owner, "UNAUTHORIZED");

        _;
    }

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(address _owner) {
        owner = _owner;

        emit OwnershipTransferred(address(0), _owner);
    }

    /*//////////////////////////////////////////////////////////////
                             OWNERSHIP LOGIC
    //////////////////////////////////////////////////////////////*/

    function transferOwnership(address newOwner) public virtual onlyOwner {
        owner = newOwner;

        emit OwnershipTransferred(msg.sender, newOwner);
    }
}

File 2 of 4 : ERC1155.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Minimalist and gas efficient standard ERC1155 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol)
abstract contract ERC1155 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event TransferSingle(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256 id,
        uint256 amount
    );

    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] amounts
    );

    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    event URI(string value, uint256 indexed id);

    /*//////////////////////////////////////////////////////////////
                             ERC1155 STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(address => mapping(uint256 => uint256)) public balanceOf;

    mapping(address => mapping(address => bool)) public isApprovedForAll;

    /*//////////////////////////////////////////////////////////////
                             METADATA LOGIC
    //////////////////////////////////////////////////////////////*/

    function uri(uint256 id) public view virtual returns (string memory);

    /*//////////////////////////////////////////////////////////////
                              ERC1155 LOGIC
    //////////////////////////////////////////////////////////////*/

    function setApprovalForAll(address operator, bool approved) public virtual {
        isApprovedForAll[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes calldata data
    ) public virtual {
        require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED");

        balanceOf[from][id] -= amount;
        balanceOf[to][id] += amount;

        emit TransferSingle(msg.sender, from, to, id, amount);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, from, id, amount, data) ==
                    ERC1155TokenReceiver.onERC1155Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) public virtual {
        require(ids.length == amounts.length, "LENGTH_MISMATCH");

        require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED");

        // Storing these outside the loop saves ~15 gas per iteration.
        uint256 id;
        uint256 amount;

        for (uint256 i = 0; i < ids.length; ) {
            id = ids[i];
            amount = amounts[i];

            balanceOf[from][id] -= amount;
            balanceOf[to][id] += amount;

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, from, to, ids, amounts);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, from, ids, amounts, data) ==
                    ERC1155TokenReceiver.onERC1155BatchReceived.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function balanceOfBatch(address[] calldata owners, uint256[] calldata ids)
        public
        view
        virtual
        returns (uint256[] memory balances)
    {
        require(owners.length == ids.length, "LENGTH_MISMATCH");

        balances = new uint256[](owners.length);

        // Unchecked because the only math done is incrementing
        // the array index counter which cannot possibly overflow.
        unchecked {
            for (uint256 i = 0; i < owners.length; ++i) {
                balances[i] = balanceOf[owners[i]][ids[i]];
            }
        }
    }

    /*//////////////////////////////////////////////////////////////
                              ERC165 LOGIC
    //////////////////////////////////////////////////////////////*/

    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0xd9b67a26 || // ERC165 Interface ID for ERC1155
            interfaceId == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal virtual {
        balanceOf[to][id] += amount;

        emit TransferSingle(msg.sender, address(0), to, id, amount);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, address(0), id, amount, data) ==
                    ERC1155TokenReceiver.onERC1155Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _batchMint(
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal virtual {
        uint256 idsLength = ids.length; // Saves MLOADs.

        require(idsLength == amounts.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < idsLength; ) {
            balanceOf[to][ids[i]] += amounts[i];

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, address(0), to, ids, amounts);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, address(0), ids, amounts, data) ==
                    ERC1155TokenReceiver.onERC1155BatchReceived.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _batchBurn(
        address from,
        uint256[] memory ids,
        uint256[] memory amounts
    ) internal virtual {
        uint256 idsLength = ids.length; // Saves MLOADs.

        require(idsLength == amounts.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < idsLength; ) {
            balanceOf[from][ids[i]] -= amounts[i];

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                ++i;
            }
        }

        emit TransferBatch(msg.sender, from, address(0), ids, amounts);
    }

    function _burn(
        address from,
        uint256 id,
        uint256 amount
    ) internal virtual {
        balanceOf[from][id] -= amount;

        emit TransferSingle(msg.sender, from, address(0), id, amount);
    }
}

/// @notice A generic interface for a contract which properly accepts ERC1155 tokens.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol)
abstract contract ERC1155TokenReceiver {
    function onERC1155Received(
        address,
        address,
        uint256,
        uint256,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC1155TokenReceiver.onERC1155Received.selector;
    }

    function onERC1155BatchReceived(
        address,
        address,
        uint256[] calldata,
        uint256[] calldata,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC1155TokenReceiver.onERC1155BatchReceived.selector;
    }
}

File 3 of 4 : ReentrancyGuard.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Gas optimized reentrancy protection for smart contracts.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/ReentrancyGuard.sol)
/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/security/ReentrancyGuard.sol)
abstract contract ReentrancyGuard {
    uint256 private locked = 1;

    modifier nonReentrant() virtual {
        require(locked == 1, "REENTRANCY");

        locked = 2;

        _;

        locked = 1;
    }
}

File 4 of 4 : SevenDeadlySins.sol
// SPDX-License-Identifier: UNLICENSED
/* 
 ______ ______ _____  ___ ______ _   __   __  _____ _____ _   _  _____ 
|___  / |  _  \  ___|/ _ \|  _  \ |  \ \ / / /  ___|_   _| \ | |/  ___|
   / /  | | | | |__ / /_\ \ | | | |   \ V /  \ `--.  | | |  \| |\ `--. 
  / /   | | | |  __||  _  | | | | |    \ /    `--. \ | | | . ` | `--. \
./ /    | |/ /| |___| | | | |/ /| |____| |   /\__/ /_| |_| |\  |/\__/ /
\_/     |___/ \____/\_| |_/___/ \_____/\_/   \____/ \___/\_| \_/\____/ 

*/   
pragma solidity ^0.8.17;

/// @title Seven Deadly Sins
/// @author @CM4YN3Z

import "solmate/tokens/ERC1155.sol";
import "solmate/auth/Owned.sol";
import "solmate/utils/ReentrancyGuard.sol";

contract SevenDeadlySins is ERC1155, Owned, ReentrancyGuard {

    string public name;
    string public symbol;
    uint public receiveTokenId;

    struct Token {
        string uri;
        uint price;
        uint incrementor;
        bool mintActive;
    }
    
    mapping(uint => Token) public tokens;

    constructor(
        string memory _name,
        string memory _symbol,
        address _owner
    )Owned(_owner){
        name = _name;
        symbol = _symbol;
    }

    receive() external payable {
        mint(receiveTokenId);
    }

    /// @notice Mints a token and increases the token price by the value stored in the incrementor.
    /// @param tokenId uint ID of the token to be minted.
    function mint(uint tokenId) public payable nonReentrant {
        require(tokens[tokenId].mintActive, "SevenDeadlySins: Minting is not active");
        require(msg.value >= tokens[tokenId].price, "SevenDeadlySins: Incorrect payment amount");
        _mint(msg.sender, tokenId, 1, "");
        tokens[tokenId].price += tokens[tokenId].incrementor;
    }
    
    /// @notice Returns the URI for a given token ID.
    /// @param tokenId uint ID of the token to query
    /// @return URI of given token ID
    function uri(uint tokenId) public view override returns (string memory) {
        return tokens[tokenId].uri;
    }

    /// @notice Owner function to set the token URI for a given token ID.
    /// @param tokenId uint ID of the token to set the URI for.
    /// @param newURI string memory new URI value.
    function setTokenURI(uint tokenId, string memory newURI) external onlyOwner {
        tokens[tokenId].uri = newURI;
    }

    /// @notice Owner function to set the token price for a given token ID.
    /// @param tokenId uint ID of the token to set the price for.
    /// @param newTokenPrice uint new price value.
    function setTokenPrice(uint tokenId, uint newTokenPrice) external onlyOwner {
        tokens[tokenId].price = newTokenPrice;
    }

    /// @notice Owner function to set the incrementor that is added to the price after each mint.
    /// @param tokenId uint ID of the token to set the incrementor for.
    /// @param newTokenIncrementor uint new incrementor value in wei.
    /// @dev The value defaults to 0, so if no incrementor is set, the price of the token will be constant.
    function setTokenIncrementor(uint tokenId, uint newTokenIncrementor) external onlyOwner {
        tokens[tokenId].incrementor = newTokenIncrementor;
    }

    /// @notice Owner function to set the tokenID that is minted when ether is sent to the contract.
    /// @param tokenId uint ID of the token to set the receiveTokenId for.
    /// @dev This value defaults to 0, so if no receiveTokenId is set, the contract will always mint the token with ID 0.
    function setReceiveTokenId(uint tokenId) external onlyOwner {
        receiveTokenId = tokenId;
    }

    /// @notice Owner function to activate a token for minting.
    /// @param tokenId uint ID of the token to be activated.
    function flipMintActive(uint tokenId) external onlyOwner {
        tokens[tokenId].mintActive = !tokens[tokenId].mintActive;
    }

    /// @notice Owner function to withdraw ETH from the contract.
    function withdrawETH() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "solady/=lib/solady/src/",
    "solmate/=lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"flipMintActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiveTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"setReceiveTokenId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"newTokenIncrementor","type":"uint256"}],"name":"setTokenIncrementor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"newTokenPrice","type":"uint256"}],"name":"setTokenPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"newURI","type":"string"}],"name":"setTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokens","outputs":[{"internalType":"string","name":"uri","type":"string"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"incrementor","type":"uint256"},{"internalType":"bool","name":"mintActive","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260016003553480156200001657600080fd5b5060405162001dbb38038062001dbb833981016040819052620000399162000172565b600280546001600160a01b0319166001600160a01b0383169081179091556040518291906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060046200009484826200028e565b506005620000a383826200028e565b505050506200035a565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000d557600080fd5b81516001600160401b0380821115620000f257620000f2620000ad565b604051601f8301601f19908116603f011681019082821181831017156200011d576200011d620000ad565b816040528381526020925086838588010111156200013a57600080fd5b600091505b838210156200015e57858201830151818301840152908201906200013f565b600093810190920192909252949350505050565b6000806000606084860312156200018857600080fd5b83516001600160401b0380821115620001a057600080fd5b620001ae87838801620000c3565b94506020860151915080821115620001c557600080fd5b50620001d486828701620000c3565b604086015190935090506001600160a01b0381168114620001f457600080fd5b809150509250925092565b600181811c908216806200021457607f821691505b6020821081036200023557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028957600081815260208120601f850160051c81016020861015620002645750805b601f850160051c820191505b81811015620002855782815560010162000270565b5050505b505050565b81516001600160401b03811115620002aa57620002aa620000ad565b620002c281620002bb8454620001ff565b846200023b565b602080601f831160018114620002fa5760008415620002e15750858301515b600019600386901b1c1916600185901b17855562000285565b600085815260208120601f198616915b828110156200032b578886015182559484019460019091019084016200030a565b50858210156200034a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611a51806200036a6000396000f3fe60806040526004361061012d5760003560e01c80638da5cb5b116100ab578063a882f8f01161006f578063a882f8f014610371578063e086e5ec14610391578063e985e9c5146103a6578063eb685c47146103e1578063f242432a14610401578063f2fde38b1461042157600080fd5b80638da5cb5b146102d157806395d89b4114610309578063a0712d681461031e578063a22cb46514610331578063a3fff2c41461035157600080fd5b8063162094c4116100f2578063162094c41461021e5780632eb2c2d61461023e5780634e1273f41461025e5780634f64b2be1461028b57806376883a04146102bb57600080fd5b8062fdd58e1461014457806301ffc9a71461018c57806306fdde03146101bc5780630ae7c4d8146101de5780630e89341c146101fe57600080fd5b3661013f5761013d600654610441565b005b600080fd5b34801561015057600080fd5b5061017961015f3660046111b5565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b34801561019857600080fd5b506101ac6101a73660046111f5565b6105bf565b6040519015158152602001610183565b3480156101c857600080fd5b506101d1610611565b604051610183919061125f565b3480156101ea57600080fd5b5061013d6101f9366004611272565b61069f565b34801561020a57600080fd5b506101d1610219366004611294565b6106de565b34801561022a57600080fd5b5061013d6102393660046112c3565b610780565b34801561024a57600080fd5b5061013d61025936600461140c565b6107c7565b34801561026a57600080fd5b5061027e6102793660046114c7565b610a6a565b6040516101839190611533565b34801561029757600080fd5b506102ab6102a6366004611294565b610b9f565b6040516101839493929190611577565b3480156102c757600080fd5b5061017960065481565b3480156102dd57600080fd5b506002546102f1906001600160a01b031681565b6040516001600160a01b039091168152602001610183565b34801561031557600080fd5b506101d1610c54565b61013d61032c366004611294565b610441565b34801561033d57600080fd5b5061013d61034c3660046115a8565b610c61565b34801561035d57600080fd5b5061013d61036c366004611294565b610ccd565b34801561037d57600080fd5b5061013d61038c366004611294565b610cfc565b34801561039d57600080fd5b5061013d610d49565b3480156103b257600080fd5b506101ac6103c13660046115e4565b600160209081526000928352604080842090915290825290205460ff1681565b3480156103ed57600080fd5b5061013d6103fc366004611272565b610da2565b34801561040d57600080fd5b5061013d61041c366004611617565b610de1565b34801561042d57600080fd5b5061013d61043c36600461168f565b610fdb565b6003546001146104855760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b60448201526064015b60405180910390fd5b600260039081556000828152600760205260409020015460ff166104fa5760405162461bcd60e51b815260206004820152602660248201527f536576656e446561646c7953696e733a204d696e74696e67206973206e6f742060448201526561637469766560d01b606482015260840161047c565b60008181526007602052604090206001015434101561056d5760405162461bcd60e51b815260206004820152602960248201527f536576656e446561646c7953696e733a20496e636f7272656374207061796d656044820152681b9d08185b5bdd5b9d60ba1b606482015260840161047c565b6105893382600160405180602001604052806000815250611051565b6000818152600760205260408120600281015460019091018054919290916105b29084906116c0565b9091555050600160035550565b60006301ffc9a760e01b6001600160e01b0319831614806105f05750636cdb3d1360e11b6001600160e01b03198316145b8061060b57506303a24d0760e21b6001600160e01b03198316145b92915050565b6004805461061e906116d3565b80601f016020809104026020016040519081016040528092919081815260200182805461064a906116d3565b80156106975780601f1061066c57610100808354040283529160200191610697565b820191906000526020600020905b81548152906001019060200180831161067a57829003601f168201915b505050505081565b6002546001600160a01b031633146106c95760405162461bcd60e51b815260040161047c9061170d565b60009182526007602052604090912060020155565b60008181526007602052604090208054606091906106fb906116d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610727906116d3565b80156107745780601f1061074957610100808354040283529160200191610774565b820191906000526020600020905b81548152906001019060200180831161075757829003601f168201915b50505050509050919050565b6002546001600160a01b031633146107aa5760405162461bcd60e51b815260040161047c9061170d565b60008281526007602052604090206107c28282611779565b505050565b8483146108085760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b604482015260640161047c565b336001600160a01b038916148061084257506001600160a01b038816600090815260016020908152604080832033845290915290205460ff165b61087f5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161047c565b60008060005b8781101561093a5788888281811061089f5761089f611839565b9050602002013592508686828181106108ba576108ba611839565b6001600160a01b038e16600090815260208181526040808320898452825282208054939091029490940135955085939250906108f790849061184f565b90915550506001600160a01b038a166000908152602081815260408083208684529091528120805484929061092d9084906116c0565b9091555050600101610885565b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b60405161098e9493929190611894565b60405180910390a46001600160a01b0389163b15610a355760405163bc197c8160e01b808252906001600160a01b038b169063bc197c81906109e29033908f908e908e908e908e908e908e906004016118ef565b6020604051808303816000875af1158015610a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a259190611953565b6001600160e01b03191614610a42565b6001600160a01b03891615155b610a5e5760405162461bcd60e51b815260040161047c90611970565b50505050505050505050565b6060838214610aad5760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b604482015260640161047c565b8367ffffffffffffffff811115610ac657610ac66112ad565b604051908082528060200260200182016040528015610aef578160200160208202803683370190505b50905060005b84811015610b9657600080878784818110610b1257610b12611839565b9050602002016020810190610b27919061168f565b6001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110610b5b57610b5b611839565b90506020020135815260200190815260200160002054828281518110610b8357610b83611839565b6020908102919091010152600101610af5565b50949350505050565b600760205260009081526040902080548190610bba906116d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610be6906116d3565b8015610c335780601f10610c0857610100808354040283529160200191610c33565b820191906000526020600020905b815481529060010190602001808311610c1657829003601f168201915b50505050600183015460028401546003909401549293909290915060ff1684565b6005805461061e906116d3565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6002546001600160a01b03163314610cf75760405162461bcd60e51b815260040161047c9061170d565b600655565b6002546001600160a01b03163314610d265760405162461bcd60e51b815260040161047c9061170d565b6000908152600760205260409020600301805460ff19811660ff90911615179055565b6002546001600160a01b03163314610d735760405162461bcd60e51b815260040161047c9061170d565b60405133904780156108fc02916000818181858888f19350505050158015610d9f573d6000803e3d6000fd5b50565b6002546001600160a01b03163314610dcc5760405162461bcd60e51b815260040161047c9061170d565b60009182526007602052604090912060010155565b336001600160a01b0387161480610e1b57506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b610e585760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161047c565b6001600160a01b03861660009081526020818152604080832087845290915281208054859290610e8990849061184f565b90915550506001600160a01b03851660009081526020818152604080832087845290915281208054859290610ebf9084906116c0565b909155505060408051858152602081018590526001600160a01b03808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0385163b15610faa5760405163f23a6e6160e01b808252906001600160a01b0387169063f23a6e6190610f579033908b908a908a908a908a9060040161199a565b6020604051808303816000875af1158015610f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9a9190611953565b6001600160e01b03191614610fb7565b6001600160a01b03851615155b610fd35760405162461bcd60e51b815260040161047c90611970565b505050505050565b6002546001600160a01b031633146110055760405162461bcd60e51b815260040161047c9061170d565b600280546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b6001600160a01b038416600090815260208181526040808320868452909152812080548492906110829084906116c0565b909155505060408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b1561116a5760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e61906111179033906000908990899089906004016119e1565b6020604051808303816000875af1158015611136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115a9190611953565b6001600160e01b03191614611177565b6001600160a01b03841615155b6111935760405162461bcd60e51b815260040161047c90611970565b50505050565b80356001600160a01b03811681146111b057600080fd5b919050565b600080604083850312156111c857600080fd5b6111d183611199565b946020939093013593505050565b6001600160e01b031981168114610d9f57600080fd5b60006020828403121561120757600080fd5b8135611212816111df565b9392505050565b6000815180845260005b8181101561123f57602081850181015186830182015201611223565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006112126020830184611219565b6000806040838503121561128557600080fd5b50508035926020909101359150565b6000602082840312156112a657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156112d657600080fd5b82359150602083013567ffffffffffffffff808211156112f557600080fd5b818501915085601f83011261130957600080fd5b81358181111561131b5761131b6112ad565b604051601f8201601f19908116603f01168101908382118183101715611343576113436112ad565b8160405282815288602084870101111561135c57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261139057600080fd5b50813567ffffffffffffffff8111156113a857600080fd5b6020830191508360208260051b85010111156113c357600080fd5b9250929050565b60008083601f8401126113dc57600080fd5b50813567ffffffffffffffff8111156113f457600080fd5b6020830191508360208285010111156113c357600080fd5b60008060008060008060008060a0898b03121561142857600080fd5b61143189611199565b975061143f60208a01611199565b9650604089013567ffffffffffffffff8082111561145c57600080fd5b6114688c838d0161137e565b909850965060608b013591508082111561148157600080fd5b61148d8c838d0161137e565b909650945060808b01359150808211156114a657600080fd5b506114b38b828c016113ca565b999c989b5096995094979396929594505050565b600080600080604085870312156114dd57600080fd5b843567ffffffffffffffff808211156114f557600080fd5b6115018883890161137e565b9096509450602087013591508082111561151a57600080fd5b506115278782880161137e565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b8181101561156b5783518352928401929184019160010161154f565b50909695505050505050565b60808152600061158a6080830187611219565b60208301959095525060408101929092521515606090910152919050565b600080604083850312156115bb57600080fd5b6115c483611199565b9150602083013580151581146115d957600080fd5b809150509250929050565b600080604083850312156115f757600080fd5b61160083611199565b915061160e60208401611199565b90509250929050565b60008060008060008060a0878903121561163057600080fd5b61163987611199565b955061164760208801611199565b94506040870135935060608701359250608087013567ffffffffffffffff81111561167157600080fd5b61167d89828a016113ca565b979a9699509497509295939492505050565b6000602082840312156116a157600080fd5b61121282611199565b634e487b7160e01b600052601160045260246000fd5b8082018082111561060b5761060b6116aa565b600181811c908216806116e757607f821691505b60208210810361170757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b601f8211156107c257600081815260208120601f850160051c8101602086101561175a5750805b601f850160051c820191505b81811015610fd357828155600101611766565b815167ffffffffffffffff811115611793576117936112ad565b6117a7816117a184546116d3565b84611733565b602080601f8311600181146117dc57600084156117c45750858301515b600019600386901b1c1916600185901b178555610fd3565b600085815260208120601f198616915b8281101561180b578886015182559484019460019091019084016117ec565b50858210156118295787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b8181038181111561060b5761060b6116aa565b81835260006001600160fb1b0383111561187b57600080fd5b8260051b80836020870137939093016020019392505050565b6040815260006118a8604083018688611862565b82810360208401526118bb818587611862565b979650505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0389811682528816602082015260a06040820181905260009061191c908301888a611862565b828103606084015261192f818789611862565b905082810360808401526119448185876118c6565b9b9a5050505050505050505050565b60006020828403121561196557600080fd5b8151611212816111df565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906119d590830184866118c6565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906118bb9083018461121956fea26469706673582212202d9d4d1f71da621b7cf71e1ef175673e99f339f6c04bf6eca3aa859d4eff77dc64736f6c63430008110033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000e2e1ca6e9eb1ed730ada2d09e4818d1a04a717080000000000000000000000000000000000000000000000000000000000000011536576656e20446561646c792053696e7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033744530000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061012d5760003560e01c80638da5cb5b116100ab578063a882f8f01161006f578063a882f8f014610371578063e086e5ec14610391578063e985e9c5146103a6578063eb685c47146103e1578063f242432a14610401578063f2fde38b1461042157600080fd5b80638da5cb5b146102d157806395d89b4114610309578063a0712d681461031e578063a22cb46514610331578063a3fff2c41461035157600080fd5b8063162094c4116100f2578063162094c41461021e5780632eb2c2d61461023e5780634e1273f41461025e5780634f64b2be1461028b57806376883a04146102bb57600080fd5b8062fdd58e1461014457806301ffc9a71461018c57806306fdde03146101bc5780630ae7c4d8146101de5780630e89341c146101fe57600080fd5b3661013f5761013d600654610441565b005b600080fd5b34801561015057600080fd5b5061017961015f3660046111b5565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b34801561019857600080fd5b506101ac6101a73660046111f5565b6105bf565b6040519015158152602001610183565b3480156101c857600080fd5b506101d1610611565b604051610183919061125f565b3480156101ea57600080fd5b5061013d6101f9366004611272565b61069f565b34801561020a57600080fd5b506101d1610219366004611294565b6106de565b34801561022a57600080fd5b5061013d6102393660046112c3565b610780565b34801561024a57600080fd5b5061013d61025936600461140c565b6107c7565b34801561026a57600080fd5b5061027e6102793660046114c7565b610a6a565b6040516101839190611533565b34801561029757600080fd5b506102ab6102a6366004611294565b610b9f565b6040516101839493929190611577565b3480156102c757600080fd5b5061017960065481565b3480156102dd57600080fd5b506002546102f1906001600160a01b031681565b6040516001600160a01b039091168152602001610183565b34801561031557600080fd5b506101d1610c54565b61013d61032c366004611294565b610441565b34801561033d57600080fd5b5061013d61034c3660046115a8565b610c61565b34801561035d57600080fd5b5061013d61036c366004611294565b610ccd565b34801561037d57600080fd5b5061013d61038c366004611294565b610cfc565b34801561039d57600080fd5b5061013d610d49565b3480156103b257600080fd5b506101ac6103c13660046115e4565b600160209081526000928352604080842090915290825290205460ff1681565b3480156103ed57600080fd5b5061013d6103fc366004611272565b610da2565b34801561040d57600080fd5b5061013d61041c366004611617565b610de1565b34801561042d57600080fd5b5061013d61043c36600461168f565b610fdb565b6003546001146104855760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b60448201526064015b60405180910390fd5b600260039081556000828152600760205260409020015460ff166104fa5760405162461bcd60e51b815260206004820152602660248201527f536576656e446561646c7953696e733a204d696e74696e67206973206e6f742060448201526561637469766560d01b606482015260840161047c565b60008181526007602052604090206001015434101561056d5760405162461bcd60e51b815260206004820152602960248201527f536576656e446561646c7953696e733a20496e636f7272656374207061796d656044820152681b9d08185b5bdd5b9d60ba1b606482015260840161047c565b6105893382600160405180602001604052806000815250611051565b6000818152600760205260408120600281015460019091018054919290916105b29084906116c0565b9091555050600160035550565b60006301ffc9a760e01b6001600160e01b0319831614806105f05750636cdb3d1360e11b6001600160e01b03198316145b8061060b57506303a24d0760e21b6001600160e01b03198316145b92915050565b6004805461061e906116d3565b80601f016020809104026020016040519081016040528092919081815260200182805461064a906116d3565b80156106975780601f1061066c57610100808354040283529160200191610697565b820191906000526020600020905b81548152906001019060200180831161067a57829003601f168201915b505050505081565b6002546001600160a01b031633146106c95760405162461bcd60e51b815260040161047c9061170d565b60009182526007602052604090912060020155565b60008181526007602052604090208054606091906106fb906116d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610727906116d3565b80156107745780601f1061074957610100808354040283529160200191610774565b820191906000526020600020905b81548152906001019060200180831161075757829003601f168201915b50505050509050919050565b6002546001600160a01b031633146107aa5760405162461bcd60e51b815260040161047c9061170d565b60008281526007602052604090206107c28282611779565b505050565b8483146108085760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b604482015260640161047c565b336001600160a01b038916148061084257506001600160a01b038816600090815260016020908152604080832033845290915290205460ff165b61087f5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161047c565b60008060005b8781101561093a5788888281811061089f5761089f611839565b9050602002013592508686828181106108ba576108ba611839565b6001600160a01b038e16600090815260208181526040808320898452825282208054939091029490940135955085939250906108f790849061184f565b90915550506001600160a01b038a166000908152602081815260408083208684529091528120805484929061092d9084906116c0565b9091555050600101610885565b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b60405161098e9493929190611894565b60405180910390a46001600160a01b0389163b15610a355760405163bc197c8160e01b808252906001600160a01b038b169063bc197c81906109e29033908f908e908e908e908e908e908e906004016118ef565b6020604051808303816000875af1158015610a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a259190611953565b6001600160e01b03191614610a42565b6001600160a01b03891615155b610a5e5760405162461bcd60e51b815260040161047c90611970565b50505050505050505050565b6060838214610aad5760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b604482015260640161047c565b8367ffffffffffffffff811115610ac657610ac66112ad565b604051908082528060200260200182016040528015610aef578160200160208202803683370190505b50905060005b84811015610b9657600080878784818110610b1257610b12611839565b9050602002016020810190610b27919061168f565b6001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110610b5b57610b5b611839565b90506020020135815260200190815260200160002054828281518110610b8357610b83611839565b6020908102919091010152600101610af5565b50949350505050565b600760205260009081526040902080548190610bba906116d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610be6906116d3565b8015610c335780601f10610c0857610100808354040283529160200191610c33565b820191906000526020600020905b815481529060010190602001808311610c1657829003601f168201915b50505050600183015460028401546003909401549293909290915060ff1684565b6005805461061e906116d3565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6002546001600160a01b03163314610cf75760405162461bcd60e51b815260040161047c9061170d565b600655565b6002546001600160a01b03163314610d265760405162461bcd60e51b815260040161047c9061170d565b6000908152600760205260409020600301805460ff19811660ff90911615179055565b6002546001600160a01b03163314610d735760405162461bcd60e51b815260040161047c9061170d565b60405133904780156108fc02916000818181858888f19350505050158015610d9f573d6000803e3d6000fd5b50565b6002546001600160a01b03163314610dcc5760405162461bcd60e51b815260040161047c9061170d565b60009182526007602052604090912060010155565b336001600160a01b0387161480610e1b57506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b610e585760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161047c565b6001600160a01b03861660009081526020818152604080832087845290915281208054859290610e8990849061184f565b90915550506001600160a01b03851660009081526020818152604080832087845290915281208054859290610ebf9084906116c0565b909155505060408051858152602081018590526001600160a01b03808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0385163b15610faa5760405163f23a6e6160e01b808252906001600160a01b0387169063f23a6e6190610f579033908b908a908a908a908a9060040161199a565b6020604051808303816000875af1158015610f76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9a9190611953565b6001600160e01b03191614610fb7565b6001600160a01b03851615155b610fd35760405162461bcd60e51b815260040161047c90611970565b505050505050565b6002546001600160a01b031633146110055760405162461bcd60e51b815260040161047c9061170d565b600280546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b6001600160a01b038416600090815260208181526040808320868452909152812080548492906110829084906116c0565b909155505060408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b1561116a5760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e61906111179033906000908990899089906004016119e1565b6020604051808303816000875af1158015611136573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115a9190611953565b6001600160e01b03191614611177565b6001600160a01b03841615155b6111935760405162461bcd60e51b815260040161047c90611970565b50505050565b80356001600160a01b03811681146111b057600080fd5b919050565b600080604083850312156111c857600080fd5b6111d183611199565b946020939093013593505050565b6001600160e01b031981168114610d9f57600080fd5b60006020828403121561120757600080fd5b8135611212816111df565b9392505050565b6000815180845260005b8181101561123f57602081850181015186830182015201611223565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006112126020830184611219565b6000806040838503121561128557600080fd5b50508035926020909101359150565b6000602082840312156112a657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156112d657600080fd5b82359150602083013567ffffffffffffffff808211156112f557600080fd5b818501915085601f83011261130957600080fd5b81358181111561131b5761131b6112ad565b604051601f8201601f19908116603f01168101908382118183101715611343576113436112ad565b8160405282815288602084870101111561135c57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261139057600080fd5b50813567ffffffffffffffff8111156113a857600080fd5b6020830191508360208260051b85010111156113c357600080fd5b9250929050565b60008083601f8401126113dc57600080fd5b50813567ffffffffffffffff8111156113f457600080fd5b6020830191508360208285010111156113c357600080fd5b60008060008060008060008060a0898b03121561142857600080fd5b61143189611199565b975061143f60208a01611199565b9650604089013567ffffffffffffffff8082111561145c57600080fd5b6114688c838d0161137e565b909850965060608b013591508082111561148157600080fd5b61148d8c838d0161137e565b909650945060808b01359150808211156114a657600080fd5b506114b38b828c016113ca565b999c989b5096995094979396929594505050565b600080600080604085870312156114dd57600080fd5b843567ffffffffffffffff808211156114f557600080fd5b6115018883890161137e565b9096509450602087013591508082111561151a57600080fd5b506115278782880161137e565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b8181101561156b5783518352928401929184019160010161154f565b50909695505050505050565b60808152600061158a6080830187611219565b60208301959095525060408101929092521515606090910152919050565b600080604083850312156115bb57600080fd5b6115c483611199565b9150602083013580151581146115d957600080fd5b809150509250929050565b600080604083850312156115f757600080fd5b61160083611199565b915061160e60208401611199565b90509250929050565b60008060008060008060a0878903121561163057600080fd5b61163987611199565b955061164760208801611199565b94506040870135935060608701359250608087013567ffffffffffffffff81111561167157600080fd5b61167d89828a016113ca565b979a9699509497509295939492505050565b6000602082840312156116a157600080fd5b61121282611199565b634e487b7160e01b600052601160045260246000fd5b8082018082111561060b5761060b6116aa565b600181811c908216806116e757607f821691505b60208210810361170757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b601f8211156107c257600081815260208120601f850160051c8101602086101561175a5750805b601f850160051c820191505b81811015610fd357828155600101611766565b815167ffffffffffffffff811115611793576117936112ad565b6117a7816117a184546116d3565b84611733565b602080601f8311600181146117dc57600084156117c45750858301515b600019600386901b1c1916600185901b178555610fd3565b600085815260208120601f198616915b8281101561180b578886015182559484019460019091019084016117ec565b50858210156118295787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b8181038181111561060b5761060b6116aa565b81835260006001600160fb1b0383111561187b57600080fd5b8260051b80836020870137939093016020019392505050565b6040815260006118a8604083018688611862565b82810360208401526118bb818587611862565b979650505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0389811682528816602082015260a06040820181905260009061191c908301888a611862565b828103606084015261192f818789611862565b905082810360808401526119448185876118c6565b9b9a5050505050505050505050565b60006020828403121561196557600080fd5b8151611212816111df565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906119d590830184866118c6565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906118bb9083018461121956fea26469706673582212202d9d4d1f71da621b7cf71e1ef175673e99f339f6c04bf6eca3aa859d4eff77dc64736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000e2e1ca6e9eb1ed730ada2d09e4818d1a04a717080000000000000000000000000000000000000000000000000000000000000011536576656e20446561646c792053696e7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033744530000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Seven Deadly Sins
Arg [1] : _symbol (string): 7DS
Arg [2] : _owner (address): 0xE2E1ca6E9Eb1Ed730Ada2d09e4818d1a04A71708

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 000000000000000000000000e2e1ca6e9eb1ed730ada2d09e4818d1a04a71708
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000011
Arg [4] : 536576656e20446561646c792053696e73000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 3744530000000000000000000000000000000000000000000000000000000000


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

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