ETH Price: $3,322.91 (-2.69%)

Token

SKY Governance Token (SKY)
 

Overview

Max Total Supply

1,645,651,485.045742244243562748 SKY

Holders

849 ( 0.824%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
60 SKY

Value
$0.00
0x22af984f13DFB5C80145E3F9eE1050Ae5a5FB651
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Sky enables users to get rewarded for non-custodial saving.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Sky

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : Sky.sol
// SPDX-License-Identifier: AGPL-3.0-or-later

/// Sky.sol -- Sky token

// Copyright (C) 2017, 2018, 2019 dbrock, rain, mrchico
// Copyright (C) 2023 Dai Foundation
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.

pragma solidity ^0.8.21;

interface IERC1271 {
    function isValidSignature(
        bytes32,
        bytes memory
    ) external view returns (bytes4);
}

contract Sky {
    mapping (address => uint256) public wards;

    // --- ERC20 Data ---
    string  public constant name     = "SKY Governance Token";
    string  public constant symbol   = "SKY";
    string  public constant version  = "1";
    uint8   public constant decimals = 18;
    uint256 public totalSupply;

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

    // --- Events ---
    event Rely(address indexed usr);
    event Deny(address indexed usr);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);

    // --- EIP712 niceties ---
    uint256 public immutable deploymentChainId;
    bytes32 private immutable _DOMAIN_SEPARATOR;
    bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

    modifier auth {
        require(wards[msg.sender] == 1, "Sky/not-authorized");
        _;
    }

    constructor() {
        wards[msg.sender] = 1;
        emit Rely(msg.sender);

        deploymentChainId = block.chainid;
        _DOMAIN_SEPARATOR = _calculateDomainSeparator(block.chainid);
    }

    function _calculateDomainSeparator(uint256 chainId) private view returns (bytes32) {
        return keccak256(
            abi.encode(
                keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                keccak256(bytes(name)),
                keccak256(bytes(version)),
                chainId,
                address(this)
            )
        );
    }

    function DOMAIN_SEPARATOR() external view returns (bytes32) {
        return block.chainid == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(block.chainid);
    }

    // --- Administration ---
    function rely(address usr) external auth {
        wards[usr] = 1;
        emit Rely(usr);
    }

    function deny(address usr) external auth {
        wards[usr] = 0;
        emit Deny(usr);
    }

    // --- ERC20 Mutations ---
    function transfer(address to, uint256 value) external returns (bool) {
        require(to != address(0) && to != address(this), "Sky/invalid-address");
        uint256 balance = balanceOf[msg.sender];
        require(balance >= value, "Sky/insufficient-balance");

        unchecked {
            balanceOf[msg.sender] = balance - value;
            balanceOf[to] += value; // note: we don't need an overflow check here b/c sum of all balances == totalSupply
        }

        emit Transfer(msg.sender, to, value);

        return true;
    }

    function transferFrom(address from, address to, uint256 value) external returns (bool) {
        require(to != address(0) && to != address(this), "Sky/invalid-address");
        uint256 balance = balanceOf[from];
        require(balance >= value, "Sky/insufficient-balance");

        if (from != msg.sender) {
            uint256 allowed = allowance[from][msg.sender];
            if (allowed != type(uint256).max) {
                require(allowed >= value, "Sky/insufficient-allowance");

                unchecked {
                    allowance[from][msg.sender] = allowed - value;
                }
            }
        }

        unchecked {
            balanceOf[from] = balance - value;
            balanceOf[to] += value; // note: we don't need an overflow check here b/c sum of all balances == totalSupply
        }

        emit Transfer(from, to, value);

        return true;
    }

    function approve(address spender, uint256 value) external returns (bool) {
        allowance[msg.sender][spender] = value;

        emit Approval(msg.sender, spender, value);

        return true;
    }

    // --- Mint/Burn ---
    function mint(address to, uint256 value) external auth {
        require(to != address(0) && to != address(this), "Sky/invalid-address");
        unchecked {
            balanceOf[to] = balanceOf[to] + value; // note: we don't need an overflow check here b/c balanceOf[to] <= totalSupply and there is an overflow check below
        }
        totalSupply = totalSupply + value;

        emit Transfer(address(0), to, value);
    }

    function burn(address from, uint256 value) external {
        uint256 balance = balanceOf[from];
        require(balance >= value, "Sky/insufficient-balance");

        if (from != msg.sender) {
            uint256 allowed = allowance[from][msg.sender];
            if (allowed != type(uint256).max) {
                require(allowed >= value, "Sky/insufficient-allowance");

                unchecked {
                    allowance[from][msg.sender] = allowed - value;
                }
            }
        }

        unchecked {
            balanceOf[from] = balance - value; // note: we don't need overflow checks b/c require(balance >= value) and balance <= totalSupply
            totalSupply     = totalSupply - value;
        }

        emit Transfer(from, address(0), value);
    }

    // --- Approve by signature ---
    function _isValidSignature(
        address signer,
        bytes32 digest,
        bytes memory signature
    ) internal view returns (bool valid) {
        if (signature.length == 65) {
            bytes32 r;
            bytes32 s;
            uint8 v;
            assembly {
                r := mload(add(signature, 0x20))
                s := mload(add(signature, 0x40))
                v := byte(0, mload(add(signature, 0x60)))
            }
            if (signer == ecrecover(digest, v, r, s)) {
                return true;
            }
        }

        if (signer.code.length > 0) {
            (bool success, bytes memory result) = signer.staticcall(
                abi.encodeCall(IERC1271.isValidSignature, (digest, signature))
            );
            valid = (success &&
                result.length == 32 &&
                abi.decode(result, (bytes4)) == IERC1271.isValidSignature.selector);
        }
    }

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        bytes memory signature
    ) public {
        require(block.timestamp <= deadline, "Sky/permit-expired");
        require(owner != address(0), "Sky/invalid-owner");

        uint256 nonce;
        unchecked { nonce = nonces[owner]++; }

        bytes32 digest =
            keccak256(abi.encodePacked(
                "\x19\x01",
                block.chainid == deploymentChainId ? _DOMAIN_SEPARATOR : _calculateDomainSeparator(block.chainid),
                keccak256(abi.encode(
                    PERMIT_TYPEHASH,
                    owner,
                    spender,
                    value,
                    nonce,
                    deadline
                ))
            ));

        require(_isValidSignature(owner, digest, signature), "Sky/invalid-permit");

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

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external {
        permit(owner, spender, value, deadline, abi.encodePacked(r, s, v));
    }
}

Settings
{
  "remappings": [
    "dss-interfaces/=lib/token-tests/lib/dss-test/lib/dss-interfaces/src/",
    "dss-test/=lib/token-tests/lib/dss-test/src/",
    "forge-std/=lib/token-tests/lib/dss-test/lib/forge-std/src/",
    "token-tests/=lib/token-tests/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Deny","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"usr","type":"address"}],"name":"Rely","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":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"deny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deploymentChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"usr","type":"address"}],"name":"rely","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"wards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

60c060405234801561001057600080fd5b503360008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a2466080818152604080518082018252601481527f534b5920476f7665726e616e636520546f6b656e0000000000000000000000006020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f5e330519d22e434aaa5643346e11238246e5daa9e5133e282b06c6749662f9c1818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152928301939093523060a0808401919091528151808403909101815260c09092019052805191012060a05260805160a0516112f461016e600039600081816105d901526109d7015260008181610336015281816105a301526109a301526112f46000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b85780639fd5a6cf1161007c5780639fd5a6cf146102eb578063a9059cbb146102fe578063bf353dbb14610311578063cd0d009614610331578063d505accf14610358578063dd62ed3e1461036b57600080fd5b806370a08231146102635780637ecebe001461028357806395d89b41146102a35780639c52a7f1146102c55780639dc29fac146102d857600080fd5b8063313ce567116100ff578063313ce567146101f95780633644e5151461021357806340c10f191461021b57806354fd4d501461023057806365fae35e1461025057600080fd5b806306fdde031461013c578063095ea7b31461018557806318160ddd146101a857806323b872dd146101bf57806330adf81f146101d2575b600080fd5b61016f6040518060400160405280601481526020017329a5ac9023b7bb32b93730b731b2902a37b5b2b760611b81525081565b60405161017c9190610f34565b60405180910390f35b610198610193366004610f63565b610396565b604051901515815260200161017c565b6101b160015481565b60405190815260200161017c565b6101986101cd366004610f8d565b610403565b6101b17f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610201601281565b60405160ff909116815260200161017c565b6101b161059f565b61022e610229366004610f63565b6105fb565b005b61016f604051806040016040528060018152602001603160f81b81525081565b61022e61025e366004610fc9565b6106c9565b6101b1610271366004610fc9565b60026020526000908152604090205481565b6101b1610291366004610fc9565b60046020526000908152604090205481565b61016f60405180604001604052806003815260200162534b5960e81b81525081565b61022e6102d3366004610fc9565b61073d565b61022e6102e6366004610f63565b6107b0565b61022e6102f9366004610ffa565b6108ef565b61019861030c366004610f63565b610b59565b6101b161031f366004610fc9565b60006020819052908152604090205481565b6101b17f000000000000000000000000000000000000000000000000000000000000000081565b61022e6103663660046110e0565b610c20565b6101b1610379366004611153565b600360209081526000928352604080842090915290825290205481565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103f19086815260200190565b60405180910390a35060015b92915050565b60006001600160a01b0383161580159061042657506001600160a01b0383163014155b61044b5760405162461bcd60e51b815260040161044290611186565b60405180910390fd5b6001600160a01b038416600090815260026020526040902054828110156104845760405162461bcd60e51b8152600401610442906111b3565b6001600160a01b038516331461053c576001600160a01b0385166000908152600360209081526040808320338452909152902054600019811461053a57838110156105115760405162461bcd60e51b815260206004820152601a60248201527f536b792f696e73756666696369656e742d616c6c6f77616e63650000000000006044820152606401610442565b6001600160a01b0386166000908152600360209081526040808320338452909152902084820390555b505b6001600160a01b03808616600081815260026020526040808220878603905592871680825290839020805487019055915160008051602061129f8339815191529061058a9087815260200190565b60405180910390a360019150505b9392505050565b60007f000000000000000000000000000000000000000000000000000000000000000046146105d6576105d146610c77565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b3360009081526020819052604090205460011461062a5760405162461bcd60e51b8152600401610442906111ea565b6001600160a01b0382161580159061064b57506001600160a01b0382163014155b6106675760405162461bcd60e51b815260040161044290611186565b6001600160a01b0382166000908152600260205260409020805482019055600154610693908290611216565b6001556040518181526001600160a01b0383169060009060008051602061129f8339815191529060200160405180910390a35050565b336000908152602081905260409020546001146106f85760405162461bcd60e51b8152600401610442906111ea565b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b3360009081526020819052604090205460011461076c5760405162461bcd60e51b8152600401610442906111ea565b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6001600160a01b038216600090815260026020526040902054818110156107e95760405162461bcd60e51b8152600401610442906111b3565b6001600160a01b03831633146108a1576001600160a01b0383166000908152600360209081526040808320338452909152902054600019811461089f57828110156108765760405162461bcd60e51b815260206004820152601a60248201527f536b792f696e73756666696369656e742d616c6c6f77616e63650000000000006044820152606401610442565b6001600160a01b0384166000908152600360209081526040808320338452909152902083820390555b505b6001600160a01b038316600081815260026020908152604080832086860390556001805487900390555185815291929160008051602061129f833981519152910160405180910390a3505050565b814211156109345760405162461bcd60e51b815260206004820152601260248201527114dade4bdc195c9b5a5d0b595e1c1a5c995960721b6044820152606401610442565b6001600160a01b03851661097e5760405162461bcd60e51b815260206004820152601160248201527029b5bc97b4b73b30b634b216b7bbb732b960791b6044820152606401610442565b6001600160a01b038516600090815260046020526040812080546001810190915590467f0000000000000000000000000000000000000000000000000000000000000000146109d5576109d046610c77565b6109f7565b7f00000000000000000000000000000000000000000000000000000000000000005b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b03808b169282019290925290881660608201526080810187905260a0810184905260c0810186905260e00160405160208183030381529060405280519060200120604051602001610a9092919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050610ab3878285610d54565b610af45760405162461bcd60e51b815260206004820152601260248201527114dade4bda5b9d985b1a590b5c195c9b5a5d60721b6044820152606401610442565b6001600160a01b038781166000818152600360209081526040808320948b168084529482529182902089905590518881527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60006001600160a01b03831615801590610b7c57506001600160a01b0383163014155b610b985760405162461bcd60e51b815260040161044290611186565b3360009081526002602052604090205482811015610bc85760405162461bcd60e51b8152600401610442906111b3565b33600081815260026020908152604080832087860390556001600160a01b038816808452928190208054880190555186815291929160008051602061129f833981519152910160405180910390a35060019392505050565b610c6e87878787868689604051602001610c5a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b6040516020818303038152906040526108ef565b50505050505050565b604080518082018252601481527329a5ac9023b7bb32b93730b731b2902a37b5b2b760611b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f5e330519d22e434aaa5643346e11238246e5daa9e5133e282b06c6749662f9c1818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101939093523060a0808501919091528251808503909101815260c0909301909152815191012090565b60008151604103610df157602082810151604080850151606080870151835160008082529681018086528a9052951a928501839052840183905260808401819052919260019060a0016020604051602081039080840390855afa158015610dbf573d6000803e3d6000fd5b505050602060405103516001600160a01b0316876001600160a01b031603610ded5760019350505050610598565b5050505b6001600160a01b0384163b1561059857600080856001600160a01b03168585604051602401610e21929190611237565b60408051601f198184030181529181526020820180516001600160e01b0316630b135d3f60e11b17905251610e569190611258565b600060405180830381855afa9150503d8060008114610e91576040519150601f19603f3d011682016040523d82523d6000602084013e610e96565b606091505b5091509150818015610ea9575080516020145b8015610eda57508051630b135d3f60e11b90610ece9083016020908101908401611274565b6001600160e01b031916145b9695505050505050565b60005b83811015610eff578181015183820152602001610ee7565b50506000910152565b60008151808452610f20816020860160208601610ee4565b601f01601f19169290920160200192915050565b6020815260006105986020830184610f08565b80356001600160a01b0381168114610f5e57600080fd5b919050565b60008060408385031215610f7657600080fd5b610f7f83610f47565b946020939093013593505050565b600080600060608486031215610fa257600080fd5b610fab84610f47565b9250610fb960208501610f47565b9150604084013590509250925092565b600060208284031215610fdb57600080fd5b61059882610f47565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a0868803121561101257600080fd5b61101b86610f47565b945061102960208701610f47565b93506040860135925060608601359150608086013567ffffffffffffffff8082111561105457600080fd5b818801915088601f83011261106857600080fd5b81358181111561107a5761107a610fe4565b604051601f8201601f19908116603f011681019083821181831017156110a2576110a2610fe4565b816040528281528b60208487010111156110bb57600080fd5b8260208601602083013760006020848301015280955050505050509295509295909350565b600080600080600080600060e0888a0312156110fb57600080fd5b61110488610f47565b965061111260208901610f47565b95506040880135945060608801359350608088013560ff8116811461113657600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561116657600080fd5b61116f83610f47565b915061117d60208401610f47565b90509250929050565b602080825260139082015272536b792f696e76616c69642d6164647265737360681b604082015260600190565b60208082526018908201527f536b792f696e73756666696369656e742d62616c616e63650000000000000000604082015260600190565b60208082526012908201527114dade4bdb9bdd0b585d5d1a1bdc9a5e995960721b604082015260600190565b808201808211156103fd57634e487b7160e01b600052601160045260246000fd5b8281526040602082015260006112506040830184610f08565b949350505050565b6000825161126a818460208701610ee4565b9190910192915050565b60006020828403121561128657600080fd5b81516001600160e01b03198116811461059857600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c39fb6d78e9ce53badbe451fa657e0adaaeb6a3bad2071ab9a2048f80b51b53764736f6c63430008150033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b85780639fd5a6cf1161007c5780639fd5a6cf146102eb578063a9059cbb146102fe578063bf353dbb14610311578063cd0d009614610331578063d505accf14610358578063dd62ed3e1461036b57600080fd5b806370a08231146102635780637ecebe001461028357806395d89b41146102a35780639c52a7f1146102c55780639dc29fac146102d857600080fd5b8063313ce567116100ff578063313ce567146101f95780633644e5151461021357806340c10f191461021b57806354fd4d501461023057806365fae35e1461025057600080fd5b806306fdde031461013c578063095ea7b31461018557806318160ddd146101a857806323b872dd146101bf57806330adf81f146101d2575b600080fd5b61016f6040518060400160405280601481526020017329a5ac9023b7bb32b93730b731b2902a37b5b2b760611b81525081565b60405161017c9190610f34565b60405180910390f35b610198610193366004610f63565b610396565b604051901515815260200161017c565b6101b160015481565b60405190815260200161017c565b6101986101cd366004610f8d565b610403565b6101b17f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b610201601281565b60405160ff909116815260200161017c565b6101b161059f565b61022e610229366004610f63565b6105fb565b005b61016f604051806040016040528060018152602001603160f81b81525081565b61022e61025e366004610fc9565b6106c9565b6101b1610271366004610fc9565b60026020526000908152604090205481565b6101b1610291366004610fc9565b60046020526000908152604090205481565b61016f60405180604001604052806003815260200162534b5960e81b81525081565b61022e6102d3366004610fc9565b61073d565b61022e6102e6366004610f63565b6107b0565b61022e6102f9366004610ffa565b6108ef565b61019861030c366004610f63565b610b59565b6101b161031f366004610fc9565b60006020819052908152604090205481565b6101b17f000000000000000000000000000000000000000000000000000000000000000181565b61022e6103663660046110e0565b610c20565b6101b1610379366004611153565b600360209081526000928352604080842090915290825290205481565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103f19086815260200190565b60405180910390a35060015b92915050565b60006001600160a01b0383161580159061042657506001600160a01b0383163014155b61044b5760405162461bcd60e51b815260040161044290611186565b60405180910390fd5b6001600160a01b038416600090815260026020526040902054828110156104845760405162461bcd60e51b8152600401610442906111b3565b6001600160a01b038516331461053c576001600160a01b0385166000908152600360209081526040808320338452909152902054600019811461053a57838110156105115760405162461bcd60e51b815260206004820152601a60248201527f536b792f696e73756666696369656e742d616c6c6f77616e63650000000000006044820152606401610442565b6001600160a01b0386166000908152600360209081526040808320338452909152902084820390555b505b6001600160a01b03808616600081815260026020526040808220878603905592871680825290839020805487019055915160008051602061129f8339815191529061058a9087815260200190565b60405180910390a360019150505b9392505050565b60007f000000000000000000000000000000000000000000000000000000000000000146146105d6576105d146610c77565b905090565b507fc29a59280f266eae3c8c0e04b1bc7162b166c4c628bfd6d84eff529600fb085490565b3360009081526020819052604090205460011461062a5760405162461bcd60e51b8152600401610442906111ea565b6001600160a01b0382161580159061064b57506001600160a01b0382163014155b6106675760405162461bcd60e51b815260040161044290611186565b6001600160a01b0382166000908152600260205260409020805482019055600154610693908290611216565b6001556040518181526001600160a01b0383169060009060008051602061129f8339815191529060200160405180910390a35050565b336000908152602081905260409020546001146106f85760405162461bcd60e51b8152600401610442906111ea565b6001600160a01b03811660008181526020819052604080822060019055517fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a609190a250565b3360009081526020819052604090205460011461076c5760405162461bcd60e51b8152600401610442906111ea565b6001600160a01b038116600081815260208190526040808220829055517f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b9190a250565b6001600160a01b038216600090815260026020526040902054818110156107e95760405162461bcd60e51b8152600401610442906111b3565b6001600160a01b03831633146108a1576001600160a01b0383166000908152600360209081526040808320338452909152902054600019811461089f57828110156108765760405162461bcd60e51b815260206004820152601a60248201527f536b792f696e73756666696369656e742d616c6c6f77616e63650000000000006044820152606401610442565b6001600160a01b0384166000908152600360209081526040808320338452909152902083820390555b505b6001600160a01b038316600081815260026020908152604080832086860390556001805487900390555185815291929160008051602061129f833981519152910160405180910390a3505050565b814211156109345760405162461bcd60e51b815260206004820152601260248201527114dade4bdc195c9b5a5d0b595e1c1a5c995960721b6044820152606401610442565b6001600160a01b03851661097e5760405162461bcd60e51b815260206004820152601160248201527029b5bc97b4b73b30b634b216b7bbb732b960791b6044820152606401610442565b6001600160a01b038516600090815260046020526040812080546001810190915590467f0000000000000000000000000000000000000000000000000000000000000001146109d5576109d046610c77565b6109f7565b7fc29a59280f266eae3c8c0e04b1bc7162b166c4c628bfd6d84eff529600fb08545b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960208201526001600160a01b03808b169282019290925290881660608201526080810187905260a0810184905260c0810186905260e00160405160208183030381529060405280519060200120604051602001610a9092919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050610ab3878285610d54565b610af45760405162461bcd60e51b815260206004820152601260248201527114dade4bda5b9d985b1a590b5c195c9b5a5d60721b6044820152606401610442565b6001600160a01b038781166000818152600360209081526040808320948b168084529482529182902089905590518881527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b60006001600160a01b03831615801590610b7c57506001600160a01b0383163014155b610b985760405162461bcd60e51b815260040161044290611186565b3360009081526002602052604090205482811015610bc85760405162461bcd60e51b8152600401610442906111b3565b33600081815260026020908152604080832087860390556001600160a01b038816808452928190208054880190555186815291929160008051602061129f833981519152910160405180910390a35060019392505050565b610c6e87878787868689604051602001610c5a93929190928352602083019190915260f81b6001600160f81b031916604082015260410190565b6040516020818303038152906040526108ef565b50505050505050565b604080518082018252601481527329a5ac9023b7bb32b93730b731b2902a37b5b2b760611b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527f5e330519d22e434aaa5643346e11238246e5daa9e5133e282b06c6749662f9c1818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101939093523060a0808501919091528251808503909101815260c0909301909152815191012090565b60008151604103610df157602082810151604080850151606080870151835160008082529681018086528a9052951a928501839052840183905260808401819052919260019060a0016020604051602081039080840390855afa158015610dbf573d6000803e3d6000fd5b505050602060405103516001600160a01b0316876001600160a01b031603610ded5760019350505050610598565b5050505b6001600160a01b0384163b1561059857600080856001600160a01b03168585604051602401610e21929190611237565b60408051601f198184030181529181526020820180516001600160e01b0316630b135d3f60e11b17905251610e569190611258565b600060405180830381855afa9150503d8060008114610e91576040519150601f19603f3d011682016040523d82523d6000602084013e610e96565b606091505b5091509150818015610ea9575080516020145b8015610eda57508051630b135d3f60e11b90610ece9083016020908101908401611274565b6001600160e01b031916145b9695505050505050565b60005b83811015610eff578181015183820152602001610ee7565b50506000910152565b60008151808452610f20816020860160208601610ee4565b601f01601f19169290920160200192915050565b6020815260006105986020830184610f08565b80356001600160a01b0381168114610f5e57600080fd5b919050565b60008060408385031215610f7657600080fd5b610f7f83610f47565b946020939093013593505050565b600080600060608486031215610fa257600080fd5b610fab84610f47565b9250610fb960208501610f47565b9150604084013590509250925092565b600060208284031215610fdb57600080fd5b61059882610f47565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a0868803121561101257600080fd5b61101b86610f47565b945061102960208701610f47565b93506040860135925060608601359150608086013567ffffffffffffffff8082111561105457600080fd5b818801915088601f83011261106857600080fd5b81358181111561107a5761107a610fe4565b604051601f8201601f19908116603f011681019083821181831017156110a2576110a2610fe4565b816040528281528b60208487010111156110bb57600080fd5b8260208601602083013760006020848301015280955050505050509295509295909350565b600080600080600080600060e0888a0312156110fb57600080fd5b61110488610f47565b965061111260208901610f47565b95506040880135945060608801359350608088013560ff8116811461113657600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561116657600080fd5b61116f83610f47565b915061117d60208401610f47565b90509250929050565b602080825260139082015272536b792f696e76616c69642d6164647265737360681b604082015260600190565b60208082526018908201527f536b792f696e73756666696369656e742d62616c616e63650000000000000000604082015260600190565b60208082526012908201527114dade4bdb9bdd0b585d5d1a1bdc9a5e995960721b604082015260600190565b808201808211156103fd57634e487b7160e01b600052601160045260246000fd5b8281526040602082015260006112506040830184610f08565b949350505050565b6000825161126a818460208701610ee4565b9190910192915050565b60006020828403121561128657600080fd5b81516001600160e01b03198116811461059857600080fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c39fb6d78e9ce53badbe451fa657e0adaaeb6a3bad2071ab9a2048f80b51b53764736f6c63430008150033

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.