More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 439 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Set Approval For... | 18622544 | 118 days ago | IN | 0 ETH | 0.00079768 | ||||
Set Approval For... | 18620824 | 118 days ago | IN | 0 ETH | 0.00073796 | ||||
Set Approval For... | 17851549 | 226 days ago | IN | 0 ETH | 0.00034881 | ||||
Set Approval For... | 17851543 | 226 days ago | IN | 0 ETH | 0.00028015 | ||||
Set Approval For... | 16821858 | 371 days ago | IN | 0 ETH | 0.0005003 | ||||
Set Approval For... | 16683031 | 390 days ago | IN | 0 ETH | 0.00050084 | ||||
Set Approval For... | 15947700 | 493 days ago | IN | 0 ETH | 0.00098155 | ||||
Set Approval For... | 15947667 | 493 days ago | IN | 0 ETH | 0.00096684 | ||||
Transfer | 15137837 | 614 days ago | IN | 0 ETH | 0.00100196 | ||||
Approve | 15137825 | 614 days ago | IN | 0 ETH | 0.00051449 | ||||
Approve | 15137807 | 614 days ago | IN | 0 ETH | 0.00083972 | ||||
Approve | 14834397 | 664 days ago | IN | 0 ETH | 0.00058292 | ||||
Set Approval For... | 14610411 | 700 days ago | IN | 0 ETH | 0.00104568 | ||||
Transfer | 14580175 | 705 days ago | IN | 0 ETH | 0.00233641 | ||||
Transfer | 14578671 | 705 days ago | IN | 0 ETH | 0.0025969 | ||||
Approve | 14540362 | 711 days ago | IN | 0 ETH | 0.00150447 | ||||
Approve | 14445398 | 726 days ago | IN | 0 ETH | 0.00213323 | ||||
Approve | 14445285 | 726 days ago | IN | 0 ETH | 0.00115709 | ||||
Approve | 14445280 | 726 days ago | IN | 0 ETH | 0.00202853 | ||||
Approve | 14445082 | 726 days ago | IN | 0 ETH | 0.00187621 | ||||
Approve | 14193795 | 765 days ago | IN | 0 ETH | 0.00235903 | ||||
Approve | 13659698 | 848 days ago | IN | 0 ETH | 0.00329491 | ||||
Approve | 13659424 | 848 days ago | IN | 0 ETH | 0.00333463 | ||||
Approve | 13273369 | 908 days ago | IN | 0 ETH | 0.00199085 | ||||
Approve | 13273364 | 908 days ago | IN | 0 ETH | 0.0016246 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
HiPrecious
Compiler Version
v0.4.24-nightly.2018.4.26+commit.ef2111a2
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-05-16 */ pragma solidity ^0.4.18; // solhint-disable-line /// @title Interface for contracts conforming to ERC-721: Non-Fungible Tokens /// @author Dieter Shirley <[email protected]> (https://github.com/dete) contract ERC721 { // Required methods function approve(address _to, uint256 _tokenId) public; function balanceOf(address _owner) public view returns (uint256 balance); function implementsERC721() public pure returns (bool); function ownerOf(uint256 _tokenId) public view returns (address addr); function takeOwnership(uint256 _tokenId) public; function totalSupply() public view returns (uint256 total); function transferFrom(address _from, address _to, uint256 _tokenId) public; function transfer(address _to, uint256 _tokenId) public; event Transfer(address indexed from, address indexed to, uint256 tokenId); event Approval(address indexed owner, address indexed approved, uint256 tokenId); // Optional // function name() public view returns (string name); // function symbol() public view returns (string symbol); // function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256 tokenId); //function tokenUri(uint256 _tokenId) public view returns (string); } contract HiPrecious is ERC721 { /*** EVENTS ***/ /// @dev The Birth event is fired whenever a new precious comes into existence. event Birth(uint256 tokenId, string name, address owner); /// @dev Transfer event as defined in current draft of ERC721. /// ownership is assigned, including births. event Transfer(address from, address to, uint256 tokenId); /*** CONSTANTS ***/ /// @notice Name and symbol of the non fungible token, as defined in ERC721. string public constant NAME = "HiPrecious"; // solhint-disable-line string public constant SYMBOL = "HIP"; // solhint-disable-line /*** STORAGE ***/ /// @dev A mapping from precious IDs to the address that owns them. All preciouses have /// some valid owner address. mapping (uint256 => address) public preciousIndexToOwner; // @dev A mapping from owner address to count of precious that address owns. // Used internally inside balanceOf() to resolve ownership count. mapping (address => uint256) private ownershipPreciousCount; /// @dev A mapping from HiPreciousIDs to an address that has been approved to call /// transferFrom(). Each Precious can only have one approved address for transfer /// at any time. A zero value means no approval is outstanding. mapping (uint256 => address) public preciousIndexToApproved; // Addresses of the main roles in HiPrecious. address public daVinciAddress; //CPO Product address public cresusAddress; //CFO Finance function () public payable {} // Give the ability of receiving ether /*** DATATYPES ***/ struct Precious { string name; // Edition name like 'Monroe' uint256 number; // Like 12 means #12 out of the edition.worldQuantity possible (here in the example 15) uint256 editionId; // id to find the edition in which this precious Belongs to. Stored in allEditions[precious.editionId] uint256 collectionId; // id to find the collection in which this precious Belongs to. Stored in allCollections[precious.collectionId] string tokenURI; } struct Edition { uint256 id; string name; // Like 'Lee' uint256 worldQuantity; // The number of precious composing this edition (ex: if 15 then there will never be more precious in this edition) uint256[] preciousIds; // The list of precious ids which compose this edition. uint256 collectionId; } struct Collection { uint256 id; string name; // Like 'China' uint256[] editionIds; // The list of edition ids which compose this collection Ex: allEditions.get[editionIds[0]].name = 'Lee01'dawd' } Precious[] private allPreciouses; Edition[] private allEditions; Collection[] private allCollections; /*** ACCESS MODIFIERS ***/ /// @dev Access modifier for CEO-only functionality modifier onlyDaVinci() { require(msg.sender == daVinciAddress); _; } /// @dev Access modifier for CFO-only functionality modifier onlyCresus() { require(msg.sender == cresusAddress); _; } /// Access modifier for contract owner only functionality modifier onlyCLevel() { require(msg.sender == daVinciAddress || msg.sender == cresusAddress); _; } /*** CONSTRUCTOR ***/ function HiPrecious() public { daVinciAddress = msg.sender; cresusAddress = msg.sender; } /*** PUBLIC FUNCTIONS ***/ /// @notice Grant another address the right to transfer token via takeOwnership() and transferFrom(). /// @param _to The address to be granted transfer approval. Pass address(0) to /// clear all approvals. /// @param _tokenId The ID of the Token that can be transferred if this call succeeds. /// @dev Required for ERC-721 compliance. function approve( address _to, uint256 _tokenId ) public { // Caller must own token. require(_owns(msg.sender, _tokenId)); preciousIndexToApproved[_tokenId] = _to; emit Approval(msg.sender, _to, _tokenId); } /// For querying balance of a particular account /// @param _owner The address for balance query /// @dev Required for ERC-721 compliance. function balanceOf(address _owner) public view returns (uint256 balance) { return ownershipPreciousCount[_owner]; } /// @dev Creates a new Collection with the given name. function createContractCollection(string _name) public onlyDaVinci { _createCollection(_name); } /// @dev Creates a new Edition with the given name and worldQuantity which will never be overcome. function createContractEditionForCollection(string _name, uint256 _collectionId, uint256 _worldQuantity) public onlyDaVinci { _createEdition(_name, _collectionId, _worldQuantity); } /// @dev Creates a new Precious with the given name. function createContractPreciousForEdition(address _to, uint256 _editionId, string _tokenURI) public onlyDaVinci { _createPrecious(_to, _editionId, _tokenURI); } /// @notice Returns all the relevant information about a specific precious. /// @param _tokenId The tokenId of the precious of interest. function getPrecious(uint256 _tokenId) public view returns ( string preciousName, uint256 number, uint256 editionId, uint256 collectionId, address owner ) { Precious storage precious = allPreciouses[_tokenId]; preciousName = precious.name; number = precious.number; editionId = precious.editionId; collectionId = precious.collectionId; owner = preciousIndexToOwner[_tokenId]; } /// @notice Returns all the relevant information about a specific edition. /// @param _editionId The tokenId of the edition of interest. function getEdition(uint256 _editionId) public view returns ( uint256 id, string editionName, uint256 worldQuantity, uint256[] preciousIds ) { Edition storage edition = allEditions[_editionId-1]; id = edition.id; editionName = edition.name; worldQuantity = edition.worldQuantity; preciousIds = edition.preciousIds; } /// @notice Returns all the relevant information about a specific collection. /// @param _collectionId The tokenId of the collection of interest. function getCollection(uint256 _collectionId) public view returns ( uint256 id, string collectionName, uint256[] editionIds ) { Collection storage collection = allCollections[_collectionId-1]; id = collection.id; collectionName = collection.name; editionIds = collection.editionIds; } function implementsERC721() public pure returns (bool) { return true; } /// @dev Required for ERC-721 compliance. function name() public pure returns (string) { return NAME; } /// For querying owner of token /// @param _tokenId The tokenID for owner inquiry /// @dev Required for ERC-721 compliance. function ownerOf(uint256 _tokenId) public view returns (address owner) { owner = preciousIndexToOwner[_tokenId]; require(owner != address(0)); } function payout(address _to) public onlyCresus { _payout(_to); } /// @dev Assigns a new address to act as the CPO. Only available to the current CPO. /// @param _newDaVinci The address of the new CPO function setDaVinci(address _newDaVinci) public onlyDaVinci { require(_newDaVinci != address(0)); daVinciAddress = _newDaVinci; } /// @dev Assigns a new address to act as the CFO. Only available to the current CFO. /// @param _newCresus The address of the new CFO function setCresus(address _newCresus) public onlyCresus { require(_newCresus != address(0)); cresusAddress = _newCresus; } function tokenURI(uint256 _tokenId) public view returns (string){ require(_tokenId<allPreciouses.length); return allPreciouses[_tokenId].tokenURI; } function setTokenURI(uint256 _tokenId, string newURI) public onlyDaVinci{ require(_tokenId<allPreciouses.length); Precious storage precious = allPreciouses[_tokenId]; precious.tokenURI = newURI; } /// @dev Required for ERC-721 compliance. function symbol() public pure returns (string) { return SYMBOL; } /// @notice Allow pre-approved user to take ownership of a token /// @param _tokenId The ID of the Token that can be transferred if this call succeeds. /// @dev Required for ERC-721 compliance. function takeOwnership(uint256 _tokenId) public { address newOwner = msg.sender; address oldOwner = preciousIndexToOwner[_tokenId]; // Safety check to prevent against an unexpected 0x0 default. require(_addressNotNull(newOwner)); // Making sure transfer is approved require(_approved(newOwner, _tokenId)); _transfer(oldOwner, newOwner, _tokenId); } /// @param _owner The owner whose celebrity tokens we are interested in. /// @dev This method MUST NEVER be called by smart contract code. First, it's fairly /// expensive (it walks the entire allPreciouses array looking for preciouses belonging to owner), /// but it also returns a dynamic array, which is only supported for web3 calls, and /// not contract-to-contract calls. function tokensOfOwner(address _owner) public view returns(uint256[] ownerTokens) { uint256 tokenCount = balanceOf(_owner); if (tokenCount == 0) { // Return an empty array return new uint256[](0); } else { uint256[] memory result = new uint256[](tokenCount); uint256 totalPreciouses = totalSupply(); uint256 resultIndex = 0; uint256 preciousId; for (preciousId = 0; preciousId <= totalPreciouses; preciousId++) { if (preciousIndexToOwner[preciousId] == _owner) { result[resultIndex] = preciousId; resultIndex++; } } return result; } } /// For querying totalSupply of preciouses /// @dev Required for ERC-721 compliance. function totalSupply() public view returns (uint256 total) { return allPreciouses.length; } /// Owner initates the transfer of the token to another account /// @param _to The address for the token to be transferred to. /// @param _tokenId The ID of the Token that can be transferred if this call succeeds. /// @dev Required for ERC-721 compliance. function transfer( address _to, uint256 _tokenId ) public { require(_owns(msg.sender, _tokenId)); require(_addressNotNull(_to)); _transfer(msg.sender, _to, _tokenId); } /// Third-party initiates transfer of token from address _from to address _to /// @param _from The address for the token to be transferred from. /// @param _to The address for the token to be transferred to. /// @param _tokenId The ID of the Token that can be transferred if this call succeeds. /// @dev Required for ERC-721 compliance. function transferFrom( address _from, address _to, uint256 _tokenId ) public { require(_owns(_from, _tokenId)); require(_approved(_to, _tokenId)); require(_addressNotNull(_to)); _transfer(_from, _to, _tokenId); } /*** PRIVATE FUNCTIONS ***/ /// Safety check on _to address to prevent against an unexpected 0x0 default. function _addressNotNull(address _to) private pure returns (bool) { return _to != address(0); } /// For checking approval of transfer for address _to function _approved(address _to, uint256 _tokenId) private view returns (bool) { return preciousIndexToApproved[_tokenId] == _to; } /// For creating Collections function _createCollection(string _name) private onlyDaVinci{ uint256 newCollectionId = allCollections.length+1; uint256[] storage newEditionIds; Collection memory _collection = Collection({ id: newCollectionId, name: _name, editionIds: newEditionIds }); allCollections.push(_collection); } /// For creating Editions function _createEdition(string _name, uint256 _collectionId, uint256 _worldQuantity) private onlyDaVinci{ Collection storage collection = allCollections[_collectionId-1]; //Would retrieve Bad instruction if not exist uint256 newEditionId = allEditions.length+1; uint256[] storage newPreciousIds; Edition memory _edition = Edition({ id: newEditionId, name: _name, worldQuantity: _worldQuantity, preciousIds: newPreciousIds, collectionId: _collectionId }); allEditions.push(_edition); collection.editionIds.push(newEditionId); } /// For creating Precious function _createPrecious(address _owner, uint256 _editionId, string _tokenURI) private onlyDaVinci{ Edition storage edition = allEditions[_editionId-1]; //if _editionId doesn't exist in array, exits. //Check if we can still print precious for that specific edition require(edition.preciousIds.length < edition.worldQuantity); //string memory preciousName = edition.name + '_' + edition.preciousIds.length+1 + '/' + edition.worldQuantity; NOT DOABLE IN SOLIDITY Precious memory _precious = Precious({ name: edition.name, number: edition.preciousIds.length+1, editionId: _editionId, collectionId: edition.collectionId, tokenURI: _tokenURI }); uint256 newPreciousId = allPreciouses.push(_precious) - 1; edition.preciousIds.push(newPreciousId); // It's probably never going to happen, 4 billion preciouses are A LOT, but // let's just be 100% sure we never let this happen. require(newPreciousId == uint256(uint32(newPreciousId))); emit Birth(newPreciousId, edition.name, _owner); // This will assign ownership, and also emit the Transfer event as // per ERC721 draft _transfer(address(0), _owner, newPreciousId); } /// Check for token ownership function _owns(address claimant, uint256 _tokenId) private view returns (bool) { return claimant == preciousIndexToOwner[_tokenId]; } /// For paying out balance on contract function _payout(address _to) private { if (_to == address(0)) { cresusAddress.transfer(address(this).balance); } else { _to.transfer(address(this).balance); } } /// @dev Assigns ownership of a specific Precious to an address. function _transfer(address _from, address _to, uint256 _tokenId) private { // Since the number of preciouses is capped to 2^32 we can't overflow this ownershipPreciousCount[_to]++; //transfer ownership preciousIndexToOwner[_tokenId] = _to; // When creating new preciouses _from is 0x0, but we can't account that address. if (_from != address(0)) { ownershipPreciousCount[_from]--; // clear any previously approved ownership exchange delete preciousIndexToApproved[_tokenId]; } // Emit the transfer event. emit Transfer(_from, _to, _tokenId); } } library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"cresusAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"payout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_newCresus","type":"address"}],"name":"setCresus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"newURI","type":"string"}],"name":"setTokenURI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"preciousIndexToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_editionId","type":"uint256"},{"name":"_tokenURI","type":"string"}],"name":"createContractPreciousForEdition","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_collectionId","type":"uint256"},{"name":"_worldQuantity","type":"uint256"}],"name":"createContractEditionForCollection","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newDaVinci","type":"address"}],"name":"setDaVinci","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_collectionId","type":"uint256"}],"name":"getCollection","outputs":[{"name":"id","type":"uint256"},{"name":"collectionName","type":"string"},{"name":"editionIds","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getPrecious","outputs":[{"name":"preciousName","type":"string"},{"name":"number","type":"uint256"},{"name":"editionId","type":"uint256"},{"name":"collectionId","type":"uint256"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"createContractCollection","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"ownerTokens","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_editionId","type":"uint256"}],"name":"getEdition","outputs":[{"name":"id","type":"uint256"},{"name":"editionName","type":"string"},{"name":"worldQuantity","type":"uint256"},{"name":"preciousIds","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"daVinciAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"preciousIndexToApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"owner","type":"address"}],"name":"Birth","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b5033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061290c806100a26000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302c9e5371461016c57806306fdde03146101c3578063095ea7b3146102535780630b7e9c44146102a05780631051db34146102e357806315ab250d14610312578063162094c41461035557806318160ddd146103c85780631928a00a146103f357806323b872dd1461046057806330f12642146104cd57806337375a43146105605780633d5bb7f4146105dd5780635a1f3c28146106205780636352211e1461071557806370a0823114610782578063771feb74146107d9578063789e4e53146108c75780638462151c1461093057806395d89b41146109c8578063a3f4df7e14610a58578063a642c03214610ae8578063a9059cbb14610be4578063b2e6ceeb14610c31578063c87b56dd14610c5e578063c8dd64ea14610d04578063f76f8d7814610d5b578063fcdae9a014610deb575b005b34801561017857600080fd5b50610181610e58565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cf57600080fd5b506101d8610e7e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102185780820151818401526020810190506101fd565b50505050905090810190601f1680156102455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025f57600080fd5b5061029e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ebb565b005b3480156102ac57600080fd5b506102e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f8b565b005b3480156102ef57600080fd5b506102f8610ff3565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610353600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ffc565b005b34801561036157600080fd5b506103c660048036038101908080359060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506110d8565b005b3480156103d457600080fd5b506103dd611186565b6040518082815260200191505060405180910390f35b3480156103ff57600080fd5b5061041e60048036038101908080359060200190929190505050611193565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046c57600080fd5b506104cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111c6565b005b3480156104d957600080fd5b5061055e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611214565b005b34801561056c57600080fd5b506105db600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919080359060200190929190505050611280565b005b3480156105e957600080fd5b5061061e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ec565b005b34801561062c57600080fd5b5061064b600480360381019080803590602001909291905050506113c8565b604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561069557808201518184015260208101905061067a565b50505050905090810190601f1680156106c25780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019060200280838360005b838110156106fe5780820151818401526020810190506106e3565b505050509050019550505050505060405180910390f35b34801561072157600080fd5b50610740600480360381019080803590602001909291905050506114f4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078e57600080fd5b506107c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061156c565b6040518082815260200191505060405180910390f35b3480156107e557600080fd5b50610804600480360381019080803590602001909291905050506115b5565b60405180806020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825287818151815260200191508051906020019080838360005b8381101561088857808201518184015260208101905061086d565b50505050905090810190601f1680156108b55780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3480156108d357600080fd5b5061092e600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506116d1565b005b34801561093c57600080fd5b50610971600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611739565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156109b4578082015181840152602081019050610999565b505050509050019250505060405180910390f35b3480156109d457600080fd5b506109dd611885565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a1d578082015181840152602081019050610a02565b50505050905090810190601f168015610a4a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a6457600080fd5b50610a6d6118c2565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610aad578082015181840152602081019050610a92565b50505050905090810190601f168015610ada5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610af457600080fd5b50610b13600480360381019080803590602001909291905050506118fb565b604051808581526020018060200184815260200180602001838103835286818151815260200191508051906020019080838360005b83811015610b63578082015181840152602081019050610b48565b50505050905090810190601f168015610b905780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019060200280838360005b83811015610bcc578082015181840152602081019050610bb1565b50505050905001965050505050505060405180910390f35b348015610bf057600080fd5b50610c2f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a31565b005b348015610c3d57600080fd5b50610c5c60048036038101908080359060200190929190505050611a69565b005b348015610c6a57600080fd5b50610c8960048036038101908080359060200190929190505050611add565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cc9578082015181840152602081019050610cae565b50505050905090810190601f168015610cf65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d1057600080fd5b50610d19611bb2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d6757600080fd5b50610d70611bd8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610db0578082015181840152602081019050610d95565b50505050905090810190601f168015610ddd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610df757600080fd5b50610e1660048036038101908080359060200190929190505050611c11565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040805190810160405280600a81526020017f486950726563696f757300000000000000000000000000000000000000000000815250905090565b610ec53382611c44565b1515610ed057600080fd5b816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe757600080fd5b610ff081611caf565b50565b60006001905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561105857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561109457600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561113657600080fd5b6005805490508310151561114957600080fd5b60058381548110151561115857fe5b90600052602060002090600502019050818160040190805190602001906111809291906126ec565b50505050565b6000600580549050905090565b60006020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111d08382611c44565b15156111db57600080fd5b6111e58282611dcb565b15156111f057600080fd5b6111f982611e37565b151561120457600080fd5b61120f838383611e70565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561127057600080fd5b61127b838383612071565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112dc57600080fd5b6112e78383836123c3565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561134857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561138457600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060608060006007600186038154811015156113e157fe5b9060005260206000209060030201905080600001549350806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114905780601f1061146557610100808354040283529160200191611490565b820191906000526020600020905b81548152906001019060200180831161147357829003601f168201915b50505050509250806002018054806020026020016040519081016040528092919081815260200182805480156114e557602002820191906000526020600020905b8154815260200190600101908083116114d1575b50505050509150509193909250565b600080600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561156757600080fd5b919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060008060008060006005878154811015156115ce57fe5b90600052602060002090600502019050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116765780601f1061164b57610100808354040283529160200191611676565b820191906000526020600020905b81548152906001019060200180831161165957829003601f168201915b5050505050955080600101549450806002015493508060030154925060008088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505091939590929450565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561172d57600080fd5b61173681612592565b50565b606060006060600080600061174d8761156c565b945060008514156117905760006040519080825280602002602001820160405280156117885781602001602082028038833980820191505090505b50955061187b565b846040519080825280602002602001820160405280156117bf5781602001602082028038833980820191505090505b5093506117ca611186565b925060009150600090505b8281111515611877578673ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561186a5780848381518110151561185357fe5b906020019060200201818152505081806001019250505b80806001019150506117d5565b8395505b5050505050919050565b60606040805190810160405280600381526020017f4849500000000000000000000000000000000000000000000000000000000000815250905090565b6040805190810160405280600a81526020017f486950726563696f75730000000000000000000000000000000000000000000081525081565b6000606060006060600060066001870381548110151561191757fe5b9060005260206000209060050201905080600001549450806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119c65780601f1061199b576101008083540402835291602001916119c6565b820191906000526020600020905b8154815290600101906020018083116119a957829003601f168201915b505050505093508060020154925080600301805480602002602001604051908101604052809291908181526020018280548015611a2257602002820191906000526020600020905b815481526020019060010190808311611a0e575b50505050509150509193509193565b611a3b3382611c44565b1515611a4657600080fd5b611a4f82611e37565b1515611a5a57600080fd5b611a65338383611e70565b5050565b60008033915060008084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611aad82611e37565b1515611ab857600080fd5b611ac28284611dcb565b1515611acd57600080fd5b611ad8818385611e70565b505050565b606060058054905082101515611af257600080fd5b600582815481101515611b0157fe5b90600052602060002090600502016004018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ba65780601f10611b7b57610100808354040283529160200191611ba6565b820191906000526020600020905b815481529060010190602001808311611b8957829003601f168201915b50505050509050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f484950000000000000000000000000000000000000000000000000000000000081525081565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d6957600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611d63573d6000803e3d6000fd5b50611dc8565b8073ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611dc6573d6000803e3d6000fd5b505b50565b60008273ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055508160008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515611fcd57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506002600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b600061207b61276c565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120d957600080fd5b6006600186038154811015156120eb57fe5b906000526020600020906005020192508260020154836003018054905010151561211457600080fd5b60a060405190810160405280846001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121b85780601f1061218d576101008083540402835291602001916121b8565b820191906000526020600020905b81548152906001019060200180831161219b57829003601f168201915b505050505081526020016001856003018054905001815260200186815260200184600401548152602001858152509150600160058390806001815401808255809150509060018203906000526020600020906005020160009091929091909150600082015181600001908051906020019061223492919061279c565b50602082015181600101556040820151816002015560608201518160030155608082015181600401908051906020019061226f92919061279c565b505050039050826003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508063ffffffff16811415156122b757600080fd5b7fb3b0cf861f168bcdb275c69da97b2543631552ba562628aa3c7317d4a6089ef281846001018860405180848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182810382528481815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561239f5780601f106123745761010080835404028352916020019161239f565b820191906000526020600020905b81548152906001019060200180831161238257829003601f168201915b505094505050505060405180910390a16123bb60008783611e70565b505050505050565b60008060006123d061281c565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561242c57600080fd5b60076001870381548110151561243e57fe5b90600052602060002090600302019350600160068054905001925060a060405190810160405280848152602001888152602001868152602001838054806020026020016040519081016040528092919081815260200182805480156124c257602002820191906000526020600020905b8154815260200190600101908083116124ae575b505050505081526020018781525090506006819080600181540180825580915050906001820390600052602060002090600502016000909192909190915060008201518160000155602082015181600101908051906020019061252692919061279c565b5060408201518160020155606082015181600301908051906020019061254d92919061284c565b50608082015181600401555050508360020183908060018154018082558091505090600182039060005260206000200160009091929091909150555050505050505050565b60008061259d612899565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125f957600080fd5b60016007805490500192506060604051908101604052808481526020018581526020018380548060200260200160405190810160405280929190818152602001828054801561266757602002820191906000526020600020905b815481526020019060010190808311612653575b50505050508152509050600781908060018154018082558091505090600182039060005260206000209060030201600090919290919091506000820151816000015560208201518160010190805190602001906126c592919061279c565b5060408201518160020190805190602001906126e292919061284c565b5050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061272d57805160ff191683800117855561275b565b8280016001018555821561275b579182015b8281111561275a57825182559160200191906001019061273f565b5b50905061276891906128bb565b5090565b60a06040519081016040528060608152602001600081526020016000815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106127dd57805160ff191683800117855561280b565b8280016001018555821561280b579182015b8281111561280a5782518255916020019190600101906127ef565b5b50905061281891906128bb565b5090565b60a06040519081016040528060008152602001606081526020016000815260200160608152602001600081525090565b828054828255906000526020600020908101928215612888579160200282015b8281111561288757825182559160200191906001019061286c565b5b50905061289591906128bb565b5090565b6060604051908101604052806000815260200160608152602001606081525090565b6128dd91905b808211156128d95760008160009055506001016128c1565b5090565b905600a165627a7a723058206be75eb840b4e8535a9f481b49cd2c2d7a3620adc58ad1f8ba95018a23096b160029
Deployed Bytecode
0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302c9e5371461016c57806306fdde03146101c3578063095ea7b3146102535780630b7e9c44146102a05780631051db34146102e357806315ab250d14610312578063162094c41461035557806318160ddd146103c85780631928a00a146103f357806323b872dd1461046057806330f12642146104cd57806337375a43146105605780633d5bb7f4146105dd5780635a1f3c28146106205780636352211e1461071557806370a0823114610782578063771feb74146107d9578063789e4e53146108c75780638462151c1461093057806395d89b41146109c8578063a3f4df7e14610a58578063a642c03214610ae8578063a9059cbb14610be4578063b2e6ceeb14610c31578063c87b56dd14610c5e578063c8dd64ea14610d04578063f76f8d7814610d5b578063fcdae9a014610deb575b005b34801561017857600080fd5b50610181610e58565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cf57600080fd5b506101d8610e7e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102185780820151818401526020810190506101fd565b50505050905090810190601f1680156102455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025f57600080fd5b5061029e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ebb565b005b3480156102ac57600080fd5b506102e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f8b565b005b3480156102ef57600080fd5b506102f8610ff3565b604051808215151515815260200191505060405180910390f35b34801561031e57600080fd5b50610353600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ffc565b005b34801561036157600080fd5b506103c660048036038101908080359060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506110d8565b005b3480156103d457600080fd5b506103dd611186565b6040518082815260200191505060405180910390f35b3480156103ff57600080fd5b5061041e60048036038101908080359060200190929190505050611193565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046c57600080fd5b506104cb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111c6565b005b3480156104d957600080fd5b5061055e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611214565b005b34801561056c57600080fd5b506105db600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919080359060200190929190505050611280565b005b3480156105e957600080fd5b5061061e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ec565b005b34801561062c57600080fd5b5061064b600480360381019080803590602001909291905050506113c8565b604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561069557808201518184015260208101905061067a565b50505050905090810190601f1680156106c25780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019060200280838360005b838110156106fe5780820151818401526020810190506106e3565b505050509050019550505050505060405180910390f35b34801561072157600080fd5b50610740600480360381019080803590602001909291905050506114f4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078e57600080fd5b506107c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061156c565b6040518082815260200191505060405180910390f35b3480156107e557600080fd5b50610804600480360381019080803590602001909291905050506115b5565b60405180806020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825287818151815260200191508051906020019080838360005b8381101561088857808201518184015260208101905061086d565b50505050905090810190601f1680156108b55780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3480156108d357600080fd5b5061092e600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506116d1565b005b34801561093c57600080fd5b50610971600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611739565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156109b4578082015181840152602081019050610999565b505050509050019250505060405180910390f35b3480156109d457600080fd5b506109dd611885565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a1d578082015181840152602081019050610a02565b50505050905090810190601f168015610a4a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a6457600080fd5b50610a6d6118c2565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610aad578082015181840152602081019050610a92565b50505050905090810190601f168015610ada5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610af457600080fd5b50610b13600480360381019080803590602001909291905050506118fb565b604051808581526020018060200184815260200180602001838103835286818151815260200191508051906020019080838360005b83811015610b63578082015181840152602081019050610b48565b50505050905090810190601f168015610b905780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019060200280838360005b83811015610bcc578082015181840152602081019050610bb1565b50505050905001965050505050505060405180910390f35b348015610bf057600080fd5b50610c2f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a31565b005b348015610c3d57600080fd5b50610c5c60048036038101908080359060200190929190505050611a69565b005b348015610c6a57600080fd5b50610c8960048036038101908080359060200190929190505050611add565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cc9578082015181840152602081019050610cae565b50505050905090810190601f168015610cf65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610d1057600080fd5b50610d19611bb2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d6757600080fd5b50610d70611bd8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610db0578082015181840152602081019050610d95565b50505050905090810190601f168015610ddd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610df757600080fd5b50610e1660048036038101908080359060200190929190505050611c11565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040805190810160405280600a81526020017f486950726563696f757300000000000000000000000000000000000000000000815250905090565b610ec53382611c44565b1515610ed057600080fd5b816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fe757600080fd5b610ff081611caf565b50565b60006001905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561105857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561109457600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561113657600080fd5b6005805490508310151561114957600080fd5b60058381548110151561115857fe5b90600052602060002090600502019050818160040190805190602001906111809291906126ec565b50505050565b6000600580549050905090565b60006020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111d08382611c44565b15156111db57600080fd5b6111e58282611dcb565b15156111f057600080fd5b6111f982611e37565b151561120457600080fd5b61120f838383611e70565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561127057600080fd5b61127b838383612071565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112dc57600080fd5b6112e78383836123c3565b505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561134857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561138457600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060608060006007600186038154811015156113e157fe5b9060005260206000209060030201905080600001549350806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114905780601f1061146557610100808354040283529160200191611490565b820191906000526020600020905b81548152906001019060200180831161147357829003601f168201915b50505050509250806002018054806020026020016040519081016040528092919081815260200182805480156114e557602002820191906000526020600020905b8154815260200190600101908083116114d1575b50505050509150509193909250565b600080600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561156757600080fd5b919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060008060008060006005878154811015156115ce57fe5b90600052602060002090600502019050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116765780601f1061164b57610100808354040283529160200191611676565b820191906000526020600020905b81548152906001019060200180831161165957829003601f168201915b5050505050955080600101549450806002015493508060030154925060008088815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505091939590929450565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561172d57600080fd5b61173681612592565b50565b606060006060600080600061174d8761156c565b945060008514156117905760006040519080825280602002602001820160405280156117885781602001602082028038833980820191505090505b50955061187b565b846040519080825280602002602001820160405280156117bf5781602001602082028038833980820191505090505b5093506117ca611186565b925060009150600090505b8281111515611877578673ffffffffffffffffffffffffffffffffffffffff1660008083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561186a5780848381518110151561185357fe5b906020019060200201818152505081806001019250505b80806001019150506117d5565b8395505b5050505050919050565b60606040805190810160405280600381526020017f4849500000000000000000000000000000000000000000000000000000000000815250905090565b6040805190810160405280600a81526020017f486950726563696f75730000000000000000000000000000000000000000000081525081565b6000606060006060600060066001870381548110151561191757fe5b9060005260206000209060050201905080600001549450806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119c65780601f1061199b576101008083540402835291602001916119c6565b820191906000526020600020905b8154815290600101906020018083116119a957829003601f168201915b505050505093508060020154925080600301805480602002602001604051908101604052809291908181526020018280548015611a2257602002820191906000526020600020905b815481526020019060010190808311611a0e575b50505050509150509193509193565b611a3b3382611c44565b1515611a4657600080fd5b611a4f82611e37565b1515611a5a57600080fd5b611a65338383611e70565b5050565b60008033915060008084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611aad82611e37565b1515611ab857600080fd5b611ac28284611dcb565b1515611acd57600080fd5b611ad8818385611e70565b505050565b606060058054905082101515611af257600080fd5b600582815481101515611b0157fe5b90600052602060002090600502016004018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611ba65780601f10611b7b57610100808354040283529160200191611ba6565b820191906000526020600020905b815481529060010190602001808311611b8957829003601f168201915b50505050509050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f484950000000000000000000000000000000000000000000000000000000000081525081565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d6957600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611d63573d6000803e3d6000fd5b50611dc8565b8073ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611dc6573d6000803e3d6000fd5b505b50565b60008273ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055508160008083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515611fcd57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506002600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b600061207b61276c565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120d957600080fd5b6006600186038154811015156120eb57fe5b906000526020600020906005020192508260020154836003018054905010151561211457600080fd5b60a060405190810160405280846001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121b85780601f1061218d576101008083540402835291602001916121b8565b820191906000526020600020905b81548152906001019060200180831161219b57829003601f168201915b505050505081526020016001856003018054905001815260200186815260200184600401548152602001858152509150600160058390806001815401808255809150509060018203906000526020600020906005020160009091929091909150600082015181600001908051906020019061223492919061279c565b50602082015181600101556040820151816002015560608201518160030155608082015181600401908051906020019061226f92919061279c565b505050039050826003018190806001815401808255809150509060018203906000526020600020016000909192909190915055508063ffffffff16811415156122b757600080fd5b7fb3b0cf861f168bcdb275c69da97b2543631552ba562628aa3c7317d4a6089ef281846001018860405180848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182810382528481815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561239f5780601f106123745761010080835404028352916020019161239f565b820191906000526020600020905b81548152906001019060200180831161238257829003601f168201915b505094505050505060405180910390a16123bb60008783611e70565b505050505050565b60008060006123d061281c565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561242c57600080fd5b60076001870381548110151561243e57fe5b90600052602060002090600302019350600160068054905001925060a060405190810160405280848152602001888152602001868152602001838054806020026020016040519081016040528092919081815260200182805480156124c257602002820191906000526020600020905b8154815260200190600101908083116124ae575b505050505081526020018781525090506006819080600181540180825580915050906001820390600052602060002090600502016000909192909190915060008201518160000155602082015181600101908051906020019061252692919061279c565b5060408201518160020155606082015181600301908051906020019061254d92919061284c565b50608082015181600401555050508360020183908060018154018082558091505090600182039060005260206000200160009091929091909150555050505050505050565b60008061259d612899565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125f957600080fd5b60016007805490500192506060604051908101604052808481526020018581526020018380548060200260200160405190810160405280929190818152602001828054801561266757602002820191906000526020600020905b815481526020019060010190808311612653575b50505050508152509050600781908060018154018082558091505090600182039060005260206000209060030201600090919290919091506000820151816000015560208201518160010190805190602001906126c592919061279c565b5060408201518160020190805190602001906126e292919061284c565b5050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061272d57805160ff191683800117855561275b565b8280016001018555821561275b579182015b8281111561275a57825182559160200191906001019061273f565b5b50905061276891906128bb565b5090565b60a06040519081016040528060608152602001600081526020016000815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106127dd57805160ff191683800117855561280b565b8280016001018555821561280b579182015b8281111561280a5782518255916020019190600101906127ef565b5b50905061281891906128bb565b5090565b60a06040519081016040528060008152602001606081526020016000815260200160608152602001600081525090565b828054828255906000526020600020908101928215612888579160200282015b8281111561288757825182559160200191906001019061286c565b5b50905061289591906128bb565b5090565b6060604051908101604052806000815260200160608152602001606081525090565b6128dd91905b808211156128d95760008160009055506001016128c1565b5090565b905600a165627a7a723058206be75eb840b4e8535a9f481b49cd2c2d7a3620adc58ad1f8ba95018a23096b160029
Swarm Source
bzzr://6be75eb840b4e8535a9f481b49cd2c2d7a3620adc58ad1f8ba95018a23096b16
Loading...
Loading
Loading...
Loading
OVERVIEW
NFTs issued on Ethereum since 2018, Hiprecious is paying tribute to Human cultural Heritage, History and to our beautiful World with a set of limited editions of hand crafted cards.Multichain Portfolio | 23 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.