ERC-20
Overview
Max Total Supply
10,000 ⓕ
Holders
1,851
Market
Price
$0.00 @ 0.000000 FTM
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
FantomPunksMarket
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2021-04-29 */ //SPDX-License-Identifier: MIT pragma solidity <0.9.0; contract FantomPunksMarket { // You can use this hash to verify the image file containing all the punks string public imageHash = "ac39af4793119ee46bbff351d8cb6b5f23da60222126add4268e261199a2921b"; address payable owner; string public standard = 'FantomPunks'; string public name; string public symbol; uint8 public decimals; uint256 public totalSupply; uint public nextPunkIndexToAssign = 0; uint public punksRemainingToAssign = 0; uint price = 100 ether; //mapping (address => uint) public addressToPunkIndex; mapping (uint => address) public punkIndexToAddress; /* This creates an array with all balances */ mapping (address => uint256) public balanceOf; struct Offer { bool isForSale; uint punkIndex; address seller; uint minValue; // in fantom address onlySellTo; // specify to sell only to a specific person } struct Bid { bool hasBid; uint punkIndex; address bidder; uint value; } // A record of punks that are offered for sale at a specific minimum value, and perhaps to a specific person mapping (uint => Offer) public punksOfferedForSale; // A record of the highest punk bid mapping (uint => Bid) public punkBids; mapping (address => uint) public pendingWithdrawals; event Assign(address indexed to, uint256 punkIndex); event Transfer(address indexed from, address indexed to, uint256 value); event PunkTransfer(address indexed from, address indexed to, uint256 punkIndex); event PunkOffered(uint indexed punkIndex, uint minValue, address indexed toAddress); event PunkBidEntered(uint indexed punkIndex, uint value, address indexed fromAddress); event PunkBidWithdrawn(uint indexed punkIndex, uint value, address indexed fromAddress); event PunkBought(uint indexed punkIndex, uint value, address indexed fromAddress, address indexed toAddress); event PunkNoLongerForSale(uint indexed punkIndex); /* Initializes contract with initial supply tokens to the creator of the contract */ constructor (){ owner = payable(msg.sender); totalSupply = 10000; // Update total supply punksRemainingToAssign = totalSupply; name = "FANTOMPUNKS"; // Set the name for display purposes symbol = unicode"ⓕ"; // Set the symbol for display purposes decimals = 0; // Amount of decimals for display purposes } function getPunk() public payable { uint256 punkIndex = nextPunkIndexToAssign; if (punksRemainingToAssign == 0) revert(); if (punkIndexToAddress[punkIndex] != address(0)) revert(); if (punkIndex >= 10000) revert(); if (msg.value != price) revert(); punkIndexToAddress[punkIndex] = msg.sender; balanceOf[msg.sender]++; punksRemainingToAssign--; nextPunkIndexToAssign = punkIndex + 1; emit Assign(msg.sender, punkIndex); emit Transfer(address(this), msg.sender, 1); emit PunkTransfer(address(this), msg.sender, punkIndex); owner.transfer(msg.value); } // Transfer ownership of a punk to another user without requiring payment function transferPunk(address to, uint punkIndex) public { if (punkIndexToAddress[punkIndex] != msg.sender) revert(); if (punkIndex >= 10000) revert(); if (punksOfferedForSale[punkIndex].isForSale) { punkNoLongerForSale(punkIndex); } punkIndexToAddress[punkIndex] = to; balanceOf[msg.sender]--; balanceOf[to]++; emit Transfer(msg.sender, to, 1); emit PunkTransfer(msg.sender, to, punkIndex); // Check for the case where there is a bid from the new owner and refund it. // Any other bid can stay in place. Bid storage bid = punkBids[punkIndex]; if (bid.bidder == to) { // Kill bid and refund value pendingWithdrawals[to] += bid.value; punkBids[punkIndex] = Bid(false, punkIndex, address(0), 0); } } function punkNoLongerForSale(uint punkIndex) public { if (punkIndexToAddress[punkIndex] != msg.sender) revert(); if (punkIndex >= 10000) revert(); punksOfferedForSale[punkIndex] = Offer(false, punkIndex, msg.sender, 0, address(0)); emit PunkNoLongerForSale(punkIndex); } function offerPunkForSale(uint punkIndex, uint minSalePriceInWei) public { if (punkIndexToAddress[punkIndex] != msg.sender) revert(); if (punkIndex >= 10000) revert(); punksOfferedForSale[punkIndex] = Offer(true, punkIndex, msg.sender, minSalePriceInWei, address(0)); emit PunkOffered(punkIndex, minSalePriceInWei, address(0)); } function offerPunkForSaleToAddress(uint punkIndex, uint minSalePriceInWei, address toAddress) public { if (punkIndexToAddress[punkIndex] != msg.sender) revert(); if (punkIndex >= 10000) revert(); punksOfferedForSale[punkIndex] = Offer(true, punkIndex, msg.sender, minSalePriceInWei, toAddress); emit PunkOffered(punkIndex, minSalePriceInWei, toAddress); } function buyPunk(uint punkIndex) payable public { Offer storage offer = punksOfferedForSale[punkIndex]; if (punkIndex >= 10000) revert(); if (!offer.isForSale) revert(); // punk not actually for sale if (offer.onlySellTo != address(0) && offer.onlySellTo != msg.sender) revert(); // punk not supposed to be sold to this user if (msg.value < offer.minValue) revert(); // Didn't send enough ETH if (offer.seller != punkIndexToAddress[punkIndex]) revert(); // Seller no longer owner of punk address seller = offer.seller; punkIndexToAddress[punkIndex] = msg.sender; balanceOf[seller]--; balanceOf[msg.sender]++; emit Transfer(seller, msg.sender, 1); emit PunkTransfer(seller, msg.sender, punkIndex); punkNoLongerForSale(punkIndex); pendingWithdrawals[seller] += msg.value; emit PunkBought(punkIndex, msg.value, seller, msg.sender); // Check for the case where there is a bid from the new owner and refund it. // Any other bid can stay in place. Bid storage bid = punkBids[punkIndex]; if (bid.bidder == msg.sender) { // Kill bid and refund value pendingWithdrawals[msg.sender] += bid.value; punkBids[punkIndex] = Bid(false, punkIndex, address(0), 0); } } function withdraw() public{ uint amount = pendingWithdrawals[msg.sender]; // Remember to zero the pending refund before // sending to prevent re-entrancy attacks pendingWithdrawals[msg.sender] = 0; payable(msg.sender).transfer(amount); } function enterBidForPunk(uint punkIndex) payable public { if (punkIndex >= 10000) revert(); if (punkIndexToAddress[punkIndex] == address(0)) revert(); if (punkIndexToAddress[punkIndex] == msg.sender) revert(); if (msg.value == 0) revert(); Bid storage existing = punkBids[punkIndex]; if (msg.value <= existing.value) revert(); if (existing.value > 0) { // Refund the failing bid pendingWithdrawals[existing.bidder] += existing.value; } punkBids[punkIndex] = Bid(true, punkIndex, msg.sender, msg.value); emit PunkBidEntered(punkIndex, msg.value, msg.sender); } function acceptBidForPunk(uint punkIndex, uint minPrice) public { if (punkIndex >= 10000) revert(); if (punkIndexToAddress[punkIndex] != msg.sender) revert(); address seller = msg.sender; Bid storage bid = punkBids[punkIndex]; if (bid.value == 0) revert(); if (bid.value < minPrice) revert(); punkIndexToAddress[punkIndex] = bid.bidder; balanceOf[seller]--; balanceOf[bid.bidder]++; emit Transfer(seller, bid.bidder, 1); emit PunkTransfer(seller, bid.bidder, punkIndex); punksOfferedForSale[punkIndex] = Offer(false, punkIndex, bid.bidder, 0, address(0)); uint amount = bid.value; punkBids[punkIndex] = Bid(false, punkIndex, address(0), 0); pendingWithdrawals[seller] += amount; emit PunkBought(punkIndex, bid.value, seller, bid.bidder); } function withdrawBidForPunk(uint punkIndex) public { if (punkIndex >= 10000) revert(); if (punkIndexToAddress[punkIndex] == address(0)) revert(); if (punkIndexToAddress[punkIndex] == msg.sender) revert(); Bid storage bid = punkBids[punkIndex]; if (bid.bidder != msg.sender) revert(); emit PunkBidWithdrawn(punkIndex, bid.value, msg.sender); uint amount = bid.value; punkBids[punkIndex] = Bid(false, punkIndex, address(0), 0); // Refund the bid money payable(msg.sender).transfer(amount); } function getRemaining() public view returns (uint) { return punksRemainingToAssign; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"punkIndex","type":"uint256"}],"name":"Assign","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"punkIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"}],"name":"PunkBidEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"punkIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"}],"name":"PunkBidWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"punkIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"}],"name":"PunkBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"punkIndex","type":"uint256"}],"name":"PunkNoLongerForSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"punkIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minValue","type":"uint256"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"}],"name":"PunkOffered","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":"punkIndex","type":"uint256"}],"name":"PunkTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"punkIndex","type":"uint256"},{"internalType":"uint256","name":"minPrice","type":"uint256"}],"name":"acceptBidForPunk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"punkIndex","type":"uint256"}],"name":"buyPunk","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"punkIndex","type":"uint256"}],"name":"enterBidForPunk","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getPunk","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"imageHash","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextPunkIndexToAssign","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"punkIndex","type":"uint256"},{"internalType":"uint256","name":"minSalePriceInWei","type":"uint256"}],"name":"offerPunkForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"punkIndex","type":"uint256"},{"internalType":"uint256","name":"minSalePriceInWei","type":"uint256"},{"internalType":"address","name":"toAddress","type":"address"}],"name":"offerPunkForSaleToAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pendingWithdrawals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"punkBids","outputs":[{"internalType":"bool","name":"hasBid","type":"bool"},{"internalType":"uint256","name":"punkIndex","type":"uint256"},{"internalType":"address","name":"bidder","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"punkIndexToAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"punkIndex","type":"uint256"}],"name":"punkNoLongerForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"punksOfferedForSale","outputs":[{"internalType":"bool","name":"isForSale","type":"bool"},{"internalType":"uint256","name":"punkIndex","type":"uint256"},{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"minValue","type":"uint256"},{"internalType":"address","name":"onlySellTo","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"punksRemainingToAssign","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"standard","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"punkIndex","type":"uint256"}],"name":"transferPunk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"punkIndex","type":"uint256"}],"name":"withdrawBidForPunk","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e06040908152608081815290620019e860a0398051620000299160009160209091019062000113565b5060408051808201909152600b8082526a46616e746f6d50756e6b7360a81b60209092019182526200005e9160029162000113565b506000600755600060085568056bc75e2d631000006009553480156200008357600080fd5b50600180546001600160a01b03191633179055612710600681905560085560408051808201909152600b8082526a46414e544f4d50554e4b5360a81b6020909201918252620000d59160039162000113565b5060408051808201909152600380825262e2939560e81b6020909201918252620001029160049162000113565b506005805460ff19169055620001f6565b8280546200012190620001b9565b90600052602060002090601f01602090048101928262000145576000855562000190565b82601f106200016057805160ff191683800117855562000190565b8280016001018555821562000190579182015b828111156200019057825182559160200191906001019062000173565b506200019e929150620001a2565b5090565b5b808211156200019e5760008155600101620001a3565b600281046001821680620001ce57607f821691505b60208210811415620001f057634e487b7160e01b600052602260045260246000fd5b50919050565b6117e280620002066000396000f3fe60806040526004361061012b5760003560e01c806370a08231116100a657806370a08231146102b65780638264fe98146102d65780638b72a2ec146102e957806395d89b4114610309578063979bc6381461031e578063bed2af801461033e578063bf31196f14610346578063c0d6ce6314610366578063c44193c31461037b578063d6a022b81461039b578063f3f43703146103b0578063f6eeff1e146103d05761012b565b806306fdde0314610130578063088f11f31461015b578063091dbfd21461018c57806318160ddd146101a157806323165b75146101c3578063313ce567146101e35780633ccfd60b1461020557806351605d801461021a57806352f29a251461022f57806358178168146102445780635a3b7e42146102715780636e743fa914610286575b600080fd5b34801561013c57600080fd5b506101456103f0565b6040516101529190611670565b60405180910390f35b34801561016757600080fd5b5061017b610176366004611592565b61047e565b604051610152959493929190611639565b61019f61019a366004611592565b6104bc565b005b3480156101ad57600080fd5b506101b661062d565b6040516101529190611667565b3480156101cf57600080fd5b5061019f6101de3660046115aa565b610633565b3480156101ef57600080fd5b506101f86109bd565b60405161015291906116c3565b34801561021157600080fd5b5061019f6109c6565b34801561022657600080fd5b50610145610a0b565b34801561023b57600080fd5b506101b6610a18565b34801561025057600080fd5b5061026461025f366004611592565b610a1e565b60405161015291906115ff565b34801561027d57600080fd5b50610145610a39565b34801561029257600080fd5b506102a66102a1366004611592565b610a46565b6040516101529493929190611613565b3480156102c257600080fd5b506101b66102d1366004611548565b610a7d565b61019f6102e4366004611592565b610a8f565b3480156102f557600080fd5b5061019f610304366004611569565b610d4f565b34801561031557600080fd5b50610145610f4f565b34801561032a57600080fd5b5061019f610339366004611592565b610f5c565b61019f6110ba565b34801561035257600080fd5b5061019f6103613660046115cb565b611231565b34801561037257600080fd5b506101b6611336565b34801561038757600080fd5b5061019f6103963660046115aa565b61133c565b3480156103a757600080fd5b506101b661142d565b3480156103bc57600080fd5b506101b66103cb366004611548565b611433565b3480156103dc57600080fd5b5061019f6103eb366004611592565b611445565b600380546103fd90611700565b80601f016020809104026020016040519081016040528092919081815260200182805461042990611700565b80156104765780601f1061044b57610100808354040283529160200191610476565b820191906000526020600020905b81548152906001019060200180831161045957829003601f168201915b505050505081565b600c602052600090815260409020805460018201546002830154600384015460049094015460ff9093169391926001600160a01b0391821692911685565b61271081106104ca57600080fd5b6000818152600a60205260409020546001600160a01b03166104eb57600080fd5b6000818152600a60205260409020546001600160a01b031633141561050f57600080fd5b3461051957600080fd5b6000818152600d602052604090206003810154341161053757600080fd5b60038101541561057857600381015460028201546001600160a01b03166000908152600e6020526040812080549091906105729084906116d1565b90915550505b604080516080810182526001808252602080830186815233848601818152346060870181815260008b8152600d909652948890209651875460ff191690151517875592519486019490945592516002850180546001600160a01b0319166001600160a01b039092169190911790559051600390930192909255915184917f5b859394fabae0c1ba88baffe67e751ab5248d2e879028b8c8d6897b0519f56a916106219190611667565b60405180910390a35050565b60065481565b612710821061064157600080fd5b6000828152600a60205260409020546001600160a01b0316331461066457600080fd5b6000828152600d60205260409020600381015433919061068357600080fd5b828160030154101561069457600080fd5b60028101546000858152600a6020908152604080832080546001600160a01b0319166001600160a01b039586161790559285168252600b90529081208054916106dc836116e9565b909155505060028101546001600160a01b03166000908152600b602052604081208054916107098361173b565b909155505060028101546040516001600160a01b039182169184169060008051602061176d8339815191529061074190600190611667565b60405180910390a360028101546040516001600160a01b039182169184169060008051602061178d8339815191529061077b908890611667565b60405180910390a36040518060a001604052806000151581526020018581526020018260020160009054906101000a90046001600160a01b03166001600160a01b031681526020016000815260200160006001600160a01b0316815250600c600086815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506060820151816003015560808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050600081600301549050604051806080016040528060001515815260200186815260200160006001600160a01b031681526020016000815250600d600087815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506060820151816003015590505080600e6000856001600160a01b03166001600160a01b03168152602001908152602001600020600082825461096091906116d1565b9091555050600282015460038301546040516001600160a01b039283169286169188917f58e5d5a525e3b40bc15abaa38b5882678db1ee68befd2f60bafe3a7fd06db9e3916109ae91611667565b60405180910390a45050505050565b60055460ff1681565b336000818152600e6020526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015610a07573d6000803e3d6000fd5b5050565b600080546103fd90611700565b60075481565b600a602052600090815260409020546001600160a01b031681565b600280546103fd90611700565b600d60205260009081526040902080546001820154600283015460039093015460ff9092169290916001600160a01b039091169084565b600b6020526000908152604090205481565b6000818152600c602052604090206127108210610aab57600080fd5b805460ff16610ab957600080fd5b60048101546001600160a01b031615801590610ae2575060048101546001600160a01b03163314155b15610aec57600080fd5b8060030154341015610afd57600080fd5b6000828152600a602052604090205460028201546001600160a01b03908116911614610b2857600080fd5b60028101546000838152600a6020908152604080832080546001600160a01b031916331790556001600160a01b03909316808352600b909152918120805491610b70836116e9565b9091555050336000908152600b60205260408120805491610b908361173b565b9190505550336001600160a01b0316816001600160a01b031660008051602061176d8339815191526001604051610bc79190611667565b60405180910390a3336001600160a01b0316816001600160a01b031660008051602061178d83398151915285604051610c009190611667565b60405180910390a3610c1183611445565b6001600160a01b0381166000908152600e602052604081208054349290610c399084906116d1565b92505081905550336001600160a01b0316816001600160a01b0316847f58e5d5a525e3b40bc15abaa38b5882678db1ee68befd2f60bafe3a7fd06db9e334604051610c849190611667565b60405180910390a46000838152600d6020526040902060028101546001600160a01b0316331415610d49576003810154336000908152600e602052604081208054909190610cd39084906116d1565b90915550506040805160808101825260008082526020808301888152838501838152606085018481528a8552600d909352949092209251835460ff19169015151783559051600183015591516002820180546001600160a01b0319166001600160a01b0390921691909117905590516003909101555b50505050565b6000818152600a60205260409020546001600160a01b03163314610d7257600080fd5b6127108110610d8057600080fd5b6000818152600c602052604090205460ff1615610da057610da081611445565b6000818152600a6020908152604080832080546001600160a01b0319166001600160a01b038716179055338352600b9091528120805491610de0836116e9565b90915550506001600160a01b0382166000908152600b60205260408120805491610e098361173b565b9190505550816001600160a01b0316336001600160a01b031660008051602061176d8339815191526001604051610e409190611667565b60405180910390a3816001600160a01b0316336001600160a01b031660008051602061178d83398151915283604051610e799190611667565b60405180910390a36000818152600d6020526040902060028101546001600160a01b0384811691161415610f4a5760038101546001600160a01b0384166000908152600e602052604081208054909190610ed49084906116d1565b9091555050604080516080810182526000808252602080830186815283850183815260608501848152888552600d909352949092209251835460ff19169015151783559051600183015591516002820180546001600160a01b0319166001600160a01b0390921691909117905590516003909101555b505050565b600480546103fd90611700565b6127108110610f6a57600080fd5b6000818152600a60205260409020546001600160a01b0316610f8b57600080fd5b6000818152600a60205260409020546001600160a01b0316331415610faf57600080fd5b6000818152600d6020526040902060028101546001600160a01b03163314610fd657600080fd5b336001600160a01b0316827f6f30e1ee4d81dcc7a8a478577f65d2ed2edb120565960ac45fe7c50551c8793283600301546040516110149190611667565b60405180910390a36003818101546040805160808101825260008082526020808301888152838501838152606085018481528a8552600d9093528584209451855460ff191690151517855590516001850155516002840180546001600160a01b0319166001600160a01b0390921691909117905551919094015551909133916108fc84150291849190818181858888f19350505050158015610d49573d6000803e3d6000fd5b6007546008546110c957600080fd5b6000818152600a60205260409020546001600160a01b0316156110eb57600080fd5b61271081106110f957600080fd5b600954341461110757600080fd5b6000818152600a6020908152604080832080546001600160a01b031916339081179091558352600b90915281208054916111408361173b565b909155505060088054906000611155836116e9565b9091555061116690508160016116d1565b60075560405133907f8a0e37b73a0d9c82e205d4d1a3ff3d0b57ce5f4d7bccf6bac03336dc101cb7ba9061119b908490611667565b60405180910390a26040513390309060008051602061176d833981519152906111c690600190611667565b60405180910390a36040513390309060008051602061178d833981519152906111f0908590611667565b60405180910390a36001546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015610a07573d6000803e3d6000fd5b6000838152600a60205260409020546001600160a01b0316331461125457600080fd5b612710831061126257600080fd5b6040805160a0810182526001808252602080830187815233848601908152606085018881526001600160a01b038881166080880181815260008d8152600c909752958990209751885490151560ff1990911617885593519587019590955590516002860180549186166001600160a01b0319928316179055905160038601559151600490940180549490931693909116929092179055905184907f3c7b682d5da98001a9b8cbda6c647d2c63d698a4184fd1d55e2ce7b66f5d21eb90611329908690611667565b60405180910390a3505050565b60085481565b6000828152600a60205260409020546001600160a01b0316331461135f57600080fd5b612710821061136d57600080fd5b6040805160a0810182526001808252602080830186815233848601908152606085018781526000608087018181528a8252600c9095528781209651875460ff1916901515178755925194860194909455516002850180546001600160a01b03199081166001600160a01b03938416179091559351600386015591516004909401805490931693909116929092179055905183907f3c7b682d5da98001a9b8cbda6c647d2c63d698a4184fd1d55e2ce7b66f5d21eb90610621908590611667565b60085490565b600e6020526000908152604090205481565b6000818152600a60205260409020546001600160a01b0316331461146857600080fd5b612710811061147657600080fd5b6040805160a08101825260008082526020808301858152338486019081526060850184815260808601858152888652600c9094528685209551865460ff191690151517865591516001860155516002850180546001600160a01b03199081166001600160a01b0393841617909155915160038601559151600490940180549091169390911692909217909155905182917fb0e0a660b4e50f26f0b7ce75c24655fc76cc66e3334a54ff410277229fa10bd491a250565b80356001600160a01b038116811461154357600080fd5b919050565b600060208284031215611559578081fd5b6115628261152c565b9392505050565b6000806040838503121561157b578081fd5b6115848361152c565b946020939093013593505050565b6000602082840312156115a3578081fd5b5035919050565b600080604083850312156115bc578182fd5b50508035926020909101359150565b6000806000606084860312156115df578081fd5b83359250602084013591506115f66040850161152c565b90509250925092565b6001600160a01b0391909116815260200190565b931515845260208401929092526001600160a01b03166040830152606082015260800190565b941515855260208501939093526001600160a01b039182166040850152606084015216608082015260a00190565b90815260200190565b6000602080835283518082850152825b8181101561169c57858101830151858201604001528201611680565b818111156116ad5783604083870101525b50601f01601f1916929092016040019392505050565b60ff91909116815260200190565b600082198211156116e4576116e4611756565b500190565b6000816116f8576116f8611756565b506000190190565b60028104600182168061171457607f821691505b6020821081141561173557634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561174f5761174f611756565b5060010190565b634e487b7160e01b600052601160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef05af636b70da6819000c49f85b21fa82081c632069bb626f30932034099107d8a26469706673582212203dbf142d75c4f7f30beca944d8b1511d91ade5a4d79bf01100b89f7f127cb66264736f6c6343000800003361633339616634373933313139656534366262666633353164386362366235663233646136303232323132366164643432363865323631313939613239323162
Deployed Bytecode
0x60806040526004361061012b5760003560e01c806370a08231116100a657806370a08231146102b65780638264fe98146102d65780638b72a2ec146102e957806395d89b4114610309578063979bc6381461031e578063bed2af801461033e578063bf31196f14610346578063c0d6ce6314610366578063c44193c31461037b578063d6a022b81461039b578063f3f43703146103b0578063f6eeff1e146103d05761012b565b806306fdde0314610130578063088f11f31461015b578063091dbfd21461018c57806318160ddd146101a157806323165b75146101c3578063313ce567146101e35780633ccfd60b1461020557806351605d801461021a57806352f29a251461022f57806358178168146102445780635a3b7e42146102715780636e743fa914610286575b600080fd5b34801561013c57600080fd5b506101456103f0565b6040516101529190611670565b60405180910390f35b34801561016757600080fd5b5061017b610176366004611592565b61047e565b604051610152959493929190611639565b61019f61019a366004611592565b6104bc565b005b3480156101ad57600080fd5b506101b661062d565b6040516101529190611667565b3480156101cf57600080fd5b5061019f6101de3660046115aa565b610633565b3480156101ef57600080fd5b506101f86109bd565b60405161015291906116c3565b34801561021157600080fd5b5061019f6109c6565b34801561022657600080fd5b50610145610a0b565b34801561023b57600080fd5b506101b6610a18565b34801561025057600080fd5b5061026461025f366004611592565b610a1e565b60405161015291906115ff565b34801561027d57600080fd5b50610145610a39565b34801561029257600080fd5b506102a66102a1366004611592565b610a46565b6040516101529493929190611613565b3480156102c257600080fd5b506101b66102d1366004611548565b610a7d565b61019f6102e4366004611592565b610a8f565b3480156102f557600080fd5b5061019f610304366004611569565b610d4f565b34801561031557600080fd5b50610145610f4f565b34801561032a57600080fd5b5061019f610339366004611592565b610f5c565b61019f6110ba565b34801561035257600080fd5b5061019f6103613660046115cb565b611231565b34801561037257600080fd5b506101b6611336565b34801561038757600080fd5b5061019f6103963660046115aa565b61133c565b3480156103a757600080fd5b506101b661142d565b3480156103bc57600080fd5b506101b66103cb366004611548565b611433565b3480156103dc57600080fd5b5061019f6103eb366004611592565b611445565b600380546103fd90611700565b80601f016020809104026020016040519081016040528092919081815260200182805461042990611700565b80156104765780601f1061044b57610100808354040283529160200191610476565b820191906000526020600020905b81548152906001019060200180831161045957829003601f168201915b505050505081565b600c602052600090815260409020805460018201546002830154600384015460049094015460ff9093169391926001600160a01b0391821692911685565b61271081106104ca57600080fd5b6000818152600a60205260409020546001600160a01b03166104eb57600080fd5b6000818152600a60205260409020546001600160a01b031633141561050f57600080fd5b3461051957600080fd5b6000818152600d602052604090206003810154341161053757600080fd5b60038101541561057857600381015460028201546001600160a01b03166000908152600e6020526040812080549091906105729084906116d1565b90915550505b604080516080810182526001808252602080830186815233848601818152346060870181815260008b8152600d909652948890209651875460ff191690151517875592519486019490945592516002850180546001600160a01b0319166001600160a01b039092169190911790559051600390930192909255915184917f5b859394fabae0c1ba88baffe67e751ab5248d2e879028b8c8d6897b0519f56a916106219190611667565b60405180910390a35050565b60065481565b612710821061064157600080fd5b6000828152600a60205260409020546001600160a01b0316331461066457600080fd5b6000828152600d60205260409020600381015433919061068357600080fd5b828160030154101561069457600080fd5b60028101546000858152600a6020908152604080832080546001600160a01b0319166001600160a01b039586161790559285168252600b90529081208054916106dc836116e9565b909155505060028101546001600160a01b03166000908152600b602052604081208054916107098361173b565b909155505060028101546040516001600160a01b039182169184169060008051602061176d8339815191529061074190600190611667565b60405180910390a360028101546040516001600160a01b039182169184169060008051602061178d8339815191529061077b908890611667565b60405180910390a36040518060a001604052806000151581526020018581526020018260020160009054906101000a90046001600160a01b03166001600160a01b031681526020016000815260200160006001600160a01b0316815250600c600086815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506060820151816003015560808201518160040160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050600081600301549050604051806080016040528060001515815260200186815260200160006001600160a01b031681526020016000815250600d600087815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506060820151816003015590505080600e6000856001600160a01b03166001600160a01b03168152602001908152602001600020600082825461096091906116d1565b9091555050600282015460038301546040516001600160a01b039283169286169188917f58e5d5a525e3b40bc15abaa38b5882678db1ee68befd2f60bafe3a7fd06db9e3916109ae91611667565b60405180910390a45050505050565b60055460ff1681565b336000818152600e6020526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015610a07573d6000803e3d6000fd5b5050565b600080546103fd90611700565b60075481565b600a602052600090815260409020546001600160a01b031681565b600280546103fd90611700565b600d60205260009081526040902080546001820154600283015460039093015460ff9092169290916001600160a01b039091169084565b600b6020526000908152604090205481565b6000818152600c602052604090206127108210610aab57600080fd5b805460ff16610ab957600080fd5b60048101546001600160a01b031615801590610ae2575060048101546001600160a01b03163314155b15610aec57600080fd5b8060030154341015610afd57600080fd5b6000828152600a602052604090205460028201546001600160a01b03908116911614610b2857600080fd5b60028101546000838152600a6020908152604080832080546001600160a01b031916331790556001600160a01b03909316808352600b909152918120805491610b70836116e9565b9091555050336000908152600b60205260408120805491610b908361173b565b9190505550336001600160a01b0316816001600160a01b031660008051602061176d8339815191526001604051610bc79190611667565b60405180910390a3336001600160a01b0316816001600160a01b031660008051602061178d83398151915285604051610c009190611667565b60405180910390a3610c1183611445565b6001600160a01b0381166000908152600e602052604081208054349290610c399084906116d1565b92505081905550336001600160a01b0316816001600160a01b0316847f58e5d5a525e3b40bc15abaa38b5882678db1ee68befd2f60bafe3a7fd06db9e334604051610c849190611667565b60405180910390a46000838152600d6020526040902060028101546001600160a01b0316331415610d49576003810154336000908152600e602052604081208054909190610cd39084906116d1565b90915550506040805160808101825260008082526020808301888152838501838152606085018481528a8552600d909352949092209251835460ff19169015151783559051600183015591516002820180546001600160a01b0319166001600160a01b0390921691909117905590516003909101555b50505050565b6000818152600a60205260409020546001600160a01b03163314610d7257600080fd5b6127108110610d8057600080fd5b6000818152600c602052604090205460ff1615610da057610da081611445565b6000818152600a6020908152604080832080546001600160a01b0319166001600160a01b038716179055338352600b9091528120805491610de0836116e9565b90915550506001600160a01b0382166000908152600b60205260408120805491610e098361173b565b9190505550816001600160a01b0316336001600160a01b031660008051602061176d8339815191526001604051610e409190611667565b60405180910390a3816001600160a01b0316336001600160a01b031660008051602061178d83398151915283604051610e799190611667565b60405180910390a36000818152600d6020526040902060028101546001600160a01b0384811691161415610f4a5760038101546001600160a01b0384166000908152600e602052604081208054909190610ed49084906116d1565b9091555050604080516080810182526000808252602080830186815283850183815260608501848152888552600d909352949092209251835460ff19169015151783559051600183015591516002820180546001600160a01b0319166001600160a01b0390921691909117905590516003909101555b505050565b600480546103fd90611700565b6127108110610f6a57600080fd5b6000818152600a60205260409020546001600160a01b0316610f8b57600080fd5b6000818152600a60205260409020546001600160a01b0316331415610faf57600080fd5b6000818152600d6020526040902060028101546001600160a01b03163314610fd657600080fd5b336001600160a01b0316827f6f30e1ee4d81dcc7a8a478577f65d2ed2edb120565960ac45fe7c50551c8793283600301546040516110149190611667565b60405180910390a36003818101546040805160808101825260008082526020808301888152838501838152606085018481528a8552600d9093528584209451855460ff191690151517855590516001850155516002840180546001600160a01b0319166001600160a01b0390921691909117905551919094015551909133916108fc84150291849190818181858888f19350505050158015610d49573d6000803e3d6000fd5b6007546008546110c957600080fd5b6000818152600a60205260409020546001600160a01b0316156110eb57600080fd5b61271081106110f957600080fd5b600954341461110757600080fd5b6000818152600a6020908152604080832080546001600160a01b031916339081179091558352600b90915281208054916111408361173b565b909155505060088054906000611155836116e9565b9091555061116690508160016116d1565b60075560405133907f8a0e37b73a0d9c82e205d4d1a3ff3d0b57ce5f4d7bccf6bac03336dc101cb7ba9061119b908490611667565b60405180910390a26040513390309060008051602061176d833981519152906111c690600190611667565b60405180910390a36040513390309060008051602061178d833981519152906111f0908590611667565b60405180910390a36001546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015610a07573d6000803e3d6000fd5b6000838152600a60205260409020546001600160a01b0316331461125457600080fd5b612710831061126257600080fd5b6040805160a0810182526001808252602080830187815233848601908152606085018881526001600160a01b038881166080880181815260008d8152600c909752958990209751885490151560ff1990911617885593519587019590955590516002860180549186166001600160a01b0319928316179055905160038601559151600490940180549490931693909116929092179055905184907f3c7b682d5da98001a9b8cbda6c647d2c63d698a4184fd1d55e2ce7b66f5d21eb90611329908690611667565b60405180910390a3505050565b60085481565b6000828152600a60205260409020546001600160a01b0316331461135f57600080fd5b612710821061136d57600080fd5b6040805160a0810182526001808252602080830186815233848601908152606085018781526000608087018181528a8252600c9095528781209651875460ff1916901515178755925194860194909455516002850180546001600160a01b03199081166001600160a01b03938416179091559351600386015591516004909401805490931693909116929092179055905183907f3c7b682d5da98001a9b8cbda6c647d2c63d698a4184fd1d55e2ce7b66f5d21eb90610621908590611667565b60085490565b600e6020526000908152604090205481565b6000818152600a60205260409020546001600160a01b0316331461146857600080fd5b612710811061147657600080fd5b6040805160a08101825260008082526020808301858152338486019081526060850184815260808601858152888652600c9094528685209551865460ff191690151517865591516001860155516002850180546001600160a01b03199081166001600160a01b0393841617909155915160038601559151600490940180549091169390911692909217909155905182917fb0e0a660b4e50f26f0b7ce75c24655fc76cc66e3334a54ff410277229fa10bd491a250565b80356001600160a01b038116811461154357600080fd5b919050565b600060208284031215611559578081fd5b6115628261152c565b9392505050565b6000806040838503121561157b578081fd5b6115848361152c565b946020939093013593505050565b6000602082840312156115a3578081fd5b5035919050565b600080604083850312156115bc578182fd5b50508035926020909101359150565b6000806000606084860312156115df578081fd5b83359250602084013591506115f66040850161152c565b90509250925092565b6001600160a01b0391909116815260200190565b931515845260208401929092526001600160a01b03166040830152606082015260800190565b941515855260208501939093526001600160a01b039182166040850152606084015216608082015260a00190565b90815260200190565b6000602080835283518082850152825b8181101561169c57858101830151858201604001528201611680565b818111156116ad5783604083870101525b50601f01601f1916929092016040019392505050565b60ff91909116815260200190565b600082198211156116e4576116e4611756565b500190565b6000816116f8576116f8611756565b506000190190565b60028104600182168061171457607f821691505b6020821081141561173557634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561174f5761174f611756565b5060010190565b634e487b7160e01b600052601160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef05af636b70da6819000c49f85b21fa82081c632069bb626f30932034099107d8a26469706673582212203dbf142d75c4f7f30beca944d8b1511d91ade5a4d79bf01100b89f7f127cb66264736f6c63430008000033
Deployed Bytecode Sourcemap
57:9477:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;349:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1271:50;;;;;;;;;;-1:-1:-1;1271:50:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;7193:696::-;;;;;;:::i;:::-;;:::i;:::-;;429:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7897:918::-;;;;;;;;;;-1:-1:-1;7897:918:0;;;;;:::i;:::-;;:::i;401:21::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6898:287::-;;;;;;;;;;;;;:::i;173:92::-;;;;;;;;;;;;;:::i;464:37::-;;;;;;;;;;;;;:::i;644:51::-;;;;;;;;;;-1:-1:-1;644:51:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;304:38::-;;;;;;;;;;;;;:::i;1371:37::-;;;;;;;;;;-1:-1:-1;1371:37:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;755:45::-;;;;;;;;;;-1:-1:-1;755:45:0;;;;;:::i;:::-;;:::i;5487:1403::-;;;;;;:::i;:::-;;:::i;3498:880::-;;;;;;;;;;-1:-1:-1;3498:880:0;;;;;:::i;:::-;;:::i;374:20::-;;;;;;;;;;;;;:::i;8823:601::-;;;;;;;;;;-1:-1:-1;8823:601:0;;;;;:::i;:::-;;:::i;2740:671::-;;;:::i;5083:396::-;;;;;;;;;;-1:-1:-1;5083:396:0;;;;;:::i;:::-;;:::i;508:38::-;;;;;;;;;;;;;:::i;4705:370::-;;;;;;;;;;-1:-1:-1;4705:370:0;;;;;:::i;:::-;;:::i;9432:99::-;;;;;;;;;;;;;:::i;1417:51::-;;;;;;;;;;-1:-1:-1;1417:51:0;;;;;:::i;:::-;;:::i;4386:311::-;;;;;;;;;;-1:-1:-1;4386:311:0;;;;;:::i;:::-;;:::i;349:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1271:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1271:50:0;;;;;;;:::o;7193:696::-;7277:5;7264:9;:18;7260:32;;7284:8;;;7260:32;7364:1;7323:29;;;:18;:29;;;;;;-1:-1:-1;;;;;7323:29:0;7319:57;;7368:8;;;7319:57;7391:29;;;;:18;:29;;;;;;-1:-1:-1;;;;;7391:29:0;7424:10;7391:43;7387:57;;;7436:8;;;7387:57;7459:9;7455:28;;7475:8;;;7455:28;7494:20;7517:19;;;:8;:19;;;;;7564:14;;;;7551:9;:27;7547:41;;7580:8;;;7547:41;7603:14;;;;:18;7599:143;;7716:14;;;;7696:15;;;;-1:-1:-1;;;;;7696:15:0;7677:35;;;;:18;:35;;;;;:53;;:35;;;:53;;7716:14;;7677:53;:::i;:::-;;;;-1:-1:-1;;7599:143:0;7774:43;;;;;;;;7778:4;7774:43;;;;;;;;;;7795:10;7774:43;;;;;;7807:9;7774:43;;;;;;-1:-1:-1;7752:19:0;;;:8;:19;;;;;;;:65;;;;-1:-1:-1;;7752:65:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7752:65:0;-1:-1:-1;;;;;7752:65:0;;;;;;;;;;;;;;;;;;;7833:48;;7774:43;;7833:48;;;;7807:9;7833:48;:::i;:::-;;;;;;;;7193:696;;:::o;429:26::-;;;;:::o;7897:918::-;7989:5;7976:9;:18;7972:32;;7996:8;;;7972:32;8035:29;;;;:18;:29;;;;;;-1:-1:-1;;;;;8035:29:0;8068:10;8035:43;8031:57;;8080:8;;;8031:57;8099:14;8155:19;;;:8;:19;;;;;8189:9;;;;8116:10;;8155:19;8185:28;;8205:8;;;8185:28;8240:8;8228:3;:9;;;:20;8224:34;;;8250:8;;;8224:34;8303:10;;;;;8271:29;;;:18;:29;;;;;;;;:42;;-1:-1:-1;;;;;;8271:42:0;-1:-1:-1;;;;;8303:10:0;;;8271:42;;;8324:17;;;;;:9;:17;;;;;:19;;;;;;:::i;:::-;;;;-1:-1:-1;;8364:10:0;;;;-1:-1:-1;;;;;8364:10:0;8354:21;;;;:9;:21;;;;;:23;;;;;;:::i;:::-;;;;-1:-1:-1;;8410:10:0;;;;8393:31;;-1:-1:-1;;;;;8410:10:0;;;;8393:31;;;-1:-1:-1;;;;;;;;;;;8393:31:0;;;8410:10;;8393:31;:::i;:::-;;;;;;;;8461:10;;;;8440:43;;-1:-1:-1;;;;;8461:10:0;;;;8440:43;;;-1:-1:-1;;;;;;;;;;;8440:43:0;;;8473:9;;8440:43;:::i;:::-;;;;;;;;8539:50;;;;;;;;8545:5;8539:50;;;;;;8552:9;8539:50;;;;8563:3;:10;;;;;;;;;;-1:-1:-1;;;;;8563:10:0;-1:-1:-1;;;;;8539:50:0;;;;;8575:1;8539:50;;;;8586:1;-1:-1:-1;;;;;8539:50:0;;;;8506:19;:30;8526:9;8506:30;;;;;;;;;;;:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8506:83:0;;;;;-1:-1:-1;;;;;8506:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8506:83:0;;;;;-1:-1:-1;;;;;8506:83:0;;;;;;;;;8600:11;8614:3;:9;;;8600:23;;8656:36;;;;;;;;8660:5;8656:36;;;;;;8667:9;8656:36;;;;8686:1;-1:-1:-1;;;;;8656:36:0;;;;;8690:1;8656:36;;;8634:8;:19;8643:9;8634:19;;;;;;;;;;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8634:58:0;;;;;-1:-1:-1;;;;;8634:58:0;;;;;;;;;;;;;;;;;8733:6;8703:18;:26;8722:6;-1:-1:-1;;;;;8703:26:0;-1:-1:-1;;;;;8703:26:0;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;-1:-1:-1;;8796:10:0;;;;8777:9;;;;8755:52;;-1:-1:-1;;;;;8796:10:0;;;;8755:52;;;8766:9;;8755:52;;;;;:::i;:::-;;;;;;;;7897:918;;;;;:::o;401:21::-;;;;;;:::o;6898:287::-;6968:10;6935:11;6949:30;;;:18;:30;;;;;;;;7096:34;;;;7141:36;;6949:30;;6968:10;7141:36;;;;;6949:30;;7141:36;6935:11;7141:36;6949:30;6968:10;7141:36;;;;;;;;;;;;;;;;;;;;;6898:287;:::o;173:92::-;;;;;;;:::i;464:37::-;;;;:::o;644:51::-;;;;;;;;;;;;-1:-1:-1;;;;;644:51:0;;:::o;304:38::-;;;;;;;:::i;1371:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1371:37:0;;;;;:::o;755:45::-;;;;;;;;;;;;;:::o;5487:1403::-;5546:19;5568:30;;;:19;:30;;;;;5626:5;5613:18;;5609:32;;5633:8;;;5609:32;5657:15;;;;5652:30;;5674:8;;;5652:30;5742:16;;;;-1:-1:-1;;;;;5742:16:0;:30;;;;:64;;-1:-1:-1;5776:16:0;;;;-1:-1:-1;;;;;5776:16:0;5796:10;5776:30;;5742:64;5738:78;;;5808:8;;;5738:78;5889:5;:14;;;5877:9;:26;5873:40;;;5905:8;;;5873:40;5975:29;;;;:18;:29;;;;;;5959:12;;;;-1:-1:-1;;;;;5959:12:0;;;5975:29;;5959:45;5955:59;;6006:8;;;5955:59;6078:12;;;;6061:14;6103:29;;;:18;:29;;;;;;;;:42;;-1:-1:-1;;;;;;6103:42:0;6135:10;6103:42;;;-1:-1:-1;;;;;6078:12:0;;;6156:17;;;:9;:17;;;;;;:19;;;;;;:::i;:::-;;;;-1:-1:-1;;6196:10:0;6186:21;;;;:9;:21;;;;;:23;;;;;;:::i;:::-;;;;;;6242:10;-1:-1:-1;;;;;6225:31:0;6234:6;-1:-1:-1;;;;;6225:31:0;-1:-1:-1;;;;;;;;;;;6254:1:0;6225:31;;;;;;:::i;:::-;;;;;;;;6293:10;-1:-1:-1;;;;;6272:43:0;6285:6;-1:-1:-1;;;;;6272:43:0;-1:-1:-1;;;;;;;;;;;6305:9:0;6272:43;;;;;;:::i;:::-;;;;;;;;6328:30;6348:9;6328:19;:30::i;:::-;-1:-1:-1;;;;;6369:26:0;;;;;;:18;:26;;;;;:39;;6399:9;;6369:26;:39;;6399:9;;6369:39;:::i;:::-;;;;;;;;6465:10;-1:-1:-1;;;;;6424:52:0;6457:6;-1:-1:-1;;;;;6424:52:0;6435:9;6424:52;6446:9;6424:52;;;;;;:::i;:::-;;;;;;;;6620:15;6638:19;;;:8;:19;;;;;6672:10;;;;-1:-1:-1;;;;;6672:10:0;6686;6672:24;6668:215;;;6789:9;;;;6774:10;6755:30;;;;:18;:30;;;;;:43;;:30;;;:43;;6789:9;;6755:43;:::i;:::-;;;;-1:-1:-1;;6835:36:0;;;;;;;;-1:-1:-1;6835:36:0;;;;;;;;;;;;;;;;;;;;;;6813:19;;;:8;:19;;;;;;;:58;;;;-1:-1:-1;;6813:58:0;;;;;;;;;-1:-1:-1;6813:58:0;;;;;;;;;;-1:-1:-1;;;;;;6813:58:0;-1:-1:-1;;;;;6813:58:0;;;;;;;;;;;;;;;;6668:215;5487:1403;;;;:::o;3498:880::-;3570:29;;;;:18;:29;;;;;;-1:-1:-1;;;;;3570:29:0;3603:10;3570:43;3566:57;;3615:8;;;3566:57;3651:5;3638:9;:18;3634:32;;3658:8;;;3634:32;3681:30;;;;:19;:30;;;;;:40;;;3677:103;;;3738:30;3758:9;3738:19;:30::i;:::-;3790:29;;;;:18;:29;;;;;;;;:34;;-1:-1:-1;;;;;;3790:34:0;-1:-1:-1;;;;;3790:34:0;;;;;3845:10;3835:21;;:9;:21;;;;;:23;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;3869:13:0;;;;;;:9;:13;;;;;:15;;;;;;:::i;:::-;;;;;;3921:2;-1:-1:-1;;;;;3900:27:0;3909:10;-1:-1:-1;;;;;3900:27:0;-1:-1:-1;;;;;;;;;;;3925:1:0;3900:27;;;;;;:::i;:::-;;;;;;;;3968:2;-1:-1:-1;;;;;3943:39:0;3956:10;-1:-1:-1;;;;;3943:39:0;-1:-1:-1;;;;;;;;;;;3972:9:0;3943:39;;;;;;:::i;:::-;;;;;;;;4124:15;4142:19;;;:8;:19;;;;;4176:10;;;;-1:-1:-1;;;;;4176:16:0;;;:10;;:16;4172:199;;;4277:9;;;;-1:-1:-1;;;;;4251:22:0;;;;;;:18;:22;;;;;:35;;:22;;;:35;;4277:9;;4251:35;:::i;:::-;;;;-1:-1:-1;;4323:36:0;;;;;;;;-1:-1:-1;4323:36:0;;;;;;;;;;;;;;;;;;;;;;4301:19;;;:8;:19;;;;;;;:58;;;;-1:-1:-1;;4301:58:0;;;;;;;;;-1:-1:-1;4301:58:0;;;;;;;;;;-1:-1:-1;;;;;;4301:58:0;-1:-1:-1;;;;;4301:58:0;;;;;;;;;;;;;;;;4172:199;3498:880;;;:::o;374:20::-;;;;;;;:::i;8823:601::-;8902:5;8889:9;:18;8885:32;;8909:8;;;8885:32;8989:1;8948:29;;;:18;:29;;;;;;-1:-1:-1;;;;;8948:29:0;8944:57;;8993:8;;;8944:57;9016:29;;;;:18;:29;;;;;;-1:-1:-1;;;;;9016:29:0;9049:10;9016:43;9012:57;;;9061:8;;;9012:57;9080:15;9099:19;;;:8;:19;;;;;9133:10;;;;-1:-1:-1;;;;;9133:10:0;9147;9133:24;9129:38;;9159:8;;;9129:38;9222:10;-1:-1:-1;;;;;9183:50:0;9200:9;9183:50;9211:3;:9;;;9183:50;;;;;;:::i;:::-;;;;;;;;9258:9;;;;;9300:36;;;;;;;;-1:-1:-1;9300:36:0;;;;;;;;;;;;;;;;;;;;;;9278:19;;;:8;:19;;;;;;:58;;;;-1:-1:-1;;9278:58:0;;;;;;;;;-1:-1:-1;9278:58:0;;;;;;;;;-1:-1:-1;;;;;;9278:58:0;-1:-1:-1;;;;;9278:58:0;;;;;;;;;;;;;;;9380:36;9258:9;;9388:10;;9380:36;;;;;9258:9;;9380:36;;-1:-1:-1;9380:36:0;9258:9;9388:10;9380:36;;;;;;;;;;;;;;;;;;;2740:671;2805:21;;2841:22;;2837:41;;2870:8;;;2837:41;2934:1;2893:29;;;:18;:29;;;;;;-1:-1:-1;;;;;2893:29:0;:43;2889:57;;2938:8;;;2889:57;2974:5;2961:9;:18;2957:32;;2981:8;;;2957:32;3017:5;;3004:9;:18;3000:32;;3024:8;;;3000:32;3043:29;;;;:18;:29;;;;;;;;:42;;-1:-1:-1;;;;;;3043:42:0;3075:10;3043:42;;;;;;3096:21;;:9;:21;;;;;:23;;;;;;:::i;:::-;;;;-1:-1:-1;;3130:22:0;:24;;;:22;:24;;;:::i;:::-;;;;-1:-1:-1;3189:13:0;;-1:-1:-1;3189:9:0;3201:1;3189:13;:::i;:::-;3165:21;:37;3218:29;;3225:10;;3218:29;;;;3237:9;;3218:29;:::i;:::-;;;;;;;;3263:38;;3287:10;;3280:4;;-1:-1:-1;;;;;;;;;;;3263:38:0;;;3299:1;;3263:38;:::i;:::-;;;;;;;;3317:50;;3345:10;;3338:4;;-1:-1:-1;;;;;;;;;;;3317:50:0;;;3357:9;;3317:50;:::i;:::-;;;;;;;;3378:5;;:25;;-1:-1:-1;;;;;3378:5:0;;;;3393:9;3378:25;;;;;:5;:25;:5;:25;3393:9;3378:5;:25;;;;;;;;;;;;;;;;;;;5083:396;5199:29;;;;:18;:29;;;;;;-1:-1:-1;;;;;5199:29:0;5232:10;5199:43;5195:57;;5244:8;;;5195:57;5280:5;5267:9;:18;5263:32;;5287:8;;;5263:32;5339:64;;;;;;;;5345:4;5339:64;;;;;;;;;;5362:10;5339:64;;;;;;;;;;;;-1:-1:-1;;;;;5339:64:0;;;;;;;;;-1:-1:-1;5306:30:0;;;:19;:30;;;;;;;:97;;;;;;;-1:-1:-1;;5306:97:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5306:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5419:52;;5351:9;;5419:52;;;;5374:17;;5419:52;:::i;:::-;;;;;;;;5083:396;;;:::o;508:38::-;;;;:::o;4705:370::-;4793:29;;;;:18;:29;;;;;;-1:-1:-1;;;;;4793:29:0;4826:10;4793:43;4789:57;;4838:8;;;4789:57;4874:5;4861:9;:18;4857:32;;4881:8;;;4857:32;4933:65;;;;;;;;4939:4;4933:65;;;;;;;;;;4956:10;4933:65;;;;;;;;;;;;-1:-1:-1;4933:65:0;;;;;;4900:30;;;:19;:30;;;;;;:98;;;;-1:-1:-1;;4900:98:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4900:98:0;;;-1:-1:-1;;;;;4900:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5014:53;;4933:65;;5014:53;;;;4933:65;;5014:53;:::i;9432:99::-;9501:22;;9432:99;:::o;1417:51::-;;;;;;;;;;;;;:::o;4386:311::-;4453:29;;;;:18;:29;;;;;;-1:-1:-1;;;;;4453:29:0;4486:10;4453:43;4449:57;;4498:8;;;4449:57;4534:5;4521:9;:18;4517:32;;4541:8;;;4517:32;4593:50;;;;;;;;-1:-1:-1;4593:50:0;;;;;;;;;;4617:10;4593:50;;;;;;;;;;;;;;;;;;4560:30;;;:19;:30;;;;;;:83;;;;-1:-1:-1;;4560:83:0;;;;;;;;;-1:-1:-1;4560:83:0;;;;;;;;;-1:-1:-1;;;;;;4560:83:0;;;-1:-1:-1;;;;;4560:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4659:30;;4593:50;;4659:30;;;4386:311;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;113:2;65:124;;;:::o;194:198::-;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;:::-;345:41;264:128;-1:-1:-1;;;264:128:1:o;397:266::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;653:2;638:18;;;;625:32;;-1:-1:-1;;;484:179:1:o;668:190::-;;780:2;768:9;759:7;755:23;751:32;748:2;;;801:6;793;786:22;748:2;-1:-1:-1;829:23:1;;738:120;-1:-1:-1;738:120:1:o;863:258::-;;;992:2;980:9;971:7;967:23;963:32;960:2;;;1013:6;1005;998:22;960:2;-1:-1:-1;;1041:23:1;;;1111:2;1096:18;;;1083:32;;-1:-1:-1;950:171:1:o;1126:334::-;;;;1272:2;1260:9;1251:7;1247:23;1243:32;1240:2;;;1293:6;1285;1278:22;1240:2;1334:9;1321:23;1311:33;;1391:2;1380:9;1376:18;1363:32;1353:42;;1414:40;1450:2;1439:9;1435:18;1414:40;:::i;:::-;1404:50;;1230:230;;;;;:::o;1465:203::-;-1:-1:-1;;;;;1629:32:1;;;;1611:51;;1599:2;1584:18;;1566:102::o;1673:427::-;1923:14;;1916:22;1898:41;;1970:2;1955:18;;1948:34;;;;-1:-1:-1;;;;;2018:32:1;2013:2;1998:18;;1991:60;2082:2;2067:18;;2060:34;1885:3;1870:19;;1852:248::o;2105:529::-;2383:14;;2376:22;2358:41;;2430:2;2415:18;;2408:34;;;;-1:-1:-1;;;;;2516:15:1;;;2511:2;2496:18;;2489:43;2563:2;2548:18;;2541:34;2612:15;2606:3;2591:19;;2584:44;2345:3;2330:19;;2312:322::o;2639:185::-;2793:25;;;2781:2;2766:18;;2748:76::o;2829:603::-;;2970:2;2999;2988:9;2981:21;3031:6;3025:13;3074:6;3069:2;3058:9;3054:18;3047:34;3099:4;3112:140;3126:6;3123:1;3120:13;3112:140;;;3221:14;;;3217:23;;3211:30;3187:17;;;3206:2;3183:26;3176:66;3141:10;;3112:140;;;3270:6;3267:1;3264:13;3261:2;;;3340:4;3335:2;3326:6;3315:9;3311:22;3307:31;3300:45;3261:2;-1:-1:-1;3416:2:1;3395:15;-1:-1:-1;;3391:29:1;3376:45;;;;3423:2;3372:54;;2950:482;-1:-1:-1;;;2950:482:1:o;3619:184::-;3791:4;3779:17;;;;3761:36;;3749:2;3734:18;;3716:87::o;3808:128::-;;3879:1;3875:6;3872:1;3869:13;3866:2;;;3885:18;;:::i;:::-;-1:-1:-1;3921:9:1;;3856:80::o;3941:136::-;;4008:5;3998:2;;4017:18;;:::i;:::-;-1:-1:-1;;;4053:18:1;;3988:89::o;4082:380::-;4167:1;4157:12;;4214:1;4204:12;;;4225:2;;4279:4;4271:6;4267:17;4257:27;;4225:2;4332;4324:6;4321:14;4301:18;4298:38;4295:2;;;4378:10;4373:3;4369:20;4366:1;4359:31;4413:4;4410:1;4403:15;4441:4;4438:1;4431:15;4295:2;;4137:325;;;:::o;4467:135::-;;-1:-1:-1;;4527:17:1;;4524:2;;;4547:18;;:::i;:::-;-1:-1:-1;4594:1:1;4583:13;;4514:88::o;4607:127::-;4668:10;4663:3;4659:20;4656:1;4649:31;4699:4;4696:1;4689:15;4723:4;4720:1;4713:15
Swarm Source
ipfs://3dbf142d75c4f7f30beca944d8b1511d91ade5a4d79bf01100b89f7f127cb662
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.