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)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Sky
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// 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)); } }
{ "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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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.