Overview
ETH Balance
0.001100327429789608 ETH
Eth Value
$2.21 (@ $2,005.38/ETH)More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 212 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Purchase | 13893685 | 1185 days ago | IN | 0.0055 ETH | 0.0043929 | ||||
Purchase | 13893650 | 1185 days ago | IN | 0.0055 ETH | 0.00505346 | ||||
Purchase | 13560855 | 1237 days ago | IN | 0.02567758 ETH | 0.00763601 | ||||
Payout | 5642076 | 2503 days ago | IN | 0 ETH | 0.00013915 | ||||
Payout | 5630613 | 2505 days ago | IN | 0 ETH | 0.00034672 | ||||
Add Art | 5324704 | 2558 days ago | IN | 0 ETH | 0.00028914 | ||||
Add Art | 5324666 | 2558 days ago | IN | 0 ETH | 0.00028837 | ||||
Add Art | 5324642 | 2558 days ago | IN | 0 ETH | 0.00029151 | ||||
Add Art | 5324556 | 2558 days ago | IN | 0 ETH | 0.00032189 | ||||
Purchase | 5270741 | 2567 days ago | IN | 0.005 ETH | 0.0000239 | ||||
Purchase | 5270370 | 2567 days ago | IN | 0.0055 ETH | 0.00021256 | ||||
Purchase | 5265530 | 2568 days ago | IN | 0.005 ETH | 0.00016744 | ||||
Add Art To | 5252914 | 2570 days ago | IN | 0 ETH | 0.00048705 | ||||
Add Art | 5237405 | 2572 days ago | IN | 0 ETH | 0.000321 | ||||
Purchase | 5233065 | 2573 days ago | IN | 0.01 ETH | 0.00006872 | ||||
Add Art | 5214129 | 2576 days ago | IN | 0 ETH | 0.00032253 | ||||
Purchase | 5193677 | 2580 days ago | IN | 0.01105151 ETH | 0.00033914 | ||||
Purchase | 5192284 | 2580 days ago | IN | 0.005 ETH | 0.00025116 | ||||
Purchase | 5191387 | 2580 days ago | IN | 0.005 ETH | 0.00008372 | ||||
Purchase | 5191377 | 2580 days ago | IN | 0.005 ETH | 0.00008372 | ||||
Purchase | 5191275 | 2580 days ago | IN | 0.005 ETH | 0.00009872 | ||||
Purchase | 5187548 | 2581 days ago | IN | 0.02613341 ETH | 0.00033914 | ||||
Purchase | 5187478 | 2581 days ago | IN | 0.00654023 ETH | 0.00018097 | ||||
Add Art | 5173180 | 2583 days ago | IN | 0 ETH | 0.00029189 | ||||
Add Art | 5173138 | 2583 days ago | IN | 0 ETH | 0.00029151 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
- | 13893685 | 1185 days ago | 0.005335 ETH | ||||
- | 13893650 | 1185 days ago | 0.005335 ETH | ||||
- | 13560855 | 1237 days ago | 0.02490725 ETH | ||||
Transfer | 5630613 | 2505 days ago | 0.19798406 ETH | ||||
Transfer | 5270370 | 2567 days ago | 0.005335 ETH | ||||
Transfer | 5193677 | 2580 days ago | 0.00000216 ETH | ||||
Transfer | 5193677 | 2580 days ago | 0.01071786 ETH | ||||
Transfer | 5187548 | 2581 days ago | 0.00001833 ETH | ||||
Transfer | 5187548 | 2581 days ago | 0.02533163 ETH | ||||
Transfer | 5187478 | 2581 days ago | 0.00003047 ETH | ||||
Transfer | 5171958 | 2584 days ago | 0.02777957 ETH | ||||
Transfer | 5171958 | 2584 days ago | 0.02776908 ETH | ||||
Transfer | 5171702 | 2584 days ago | 0.00001096 ETH | ||||
Transfer | 5171702 | 2584 days ago | 0.02004047 ETH | ||||
Transfer | 5170677 | 2584 days ago | 0.00000743 ETH | ||||
Transfer | 5170677 | 2584 days ago | 0.03271391 ETH | ||||
Transfer | 5170512 | 2584 days ago | 0.00006581 ETH | ||||
Transfer | 5170512 | 2584 days ago | 0.02225026 ETH | ||||
Transfer | 5170512 | 2584 days ago | 0.00009022 ETH | ||||
Transfer | 5170512 | 2584 days ago | 0.02898554 ETH | ||||
Transfer | 5170511 | 2584 days ago | 0.0000942 ETH | ||||
Transfer | 5170511 | 2584 days ago | 0.02834377 ETH | ||||
Transfer | 5170506 | 2584 days ago | 0.00014117 ETH | ||||
Transfer | 5170506 | 2584 days ago | 0.02544995 ETH | ||||
Transfer | 5170309 | 2584 days ago | 0.00000894 ETH |
Loading...
Loading
Contract Name:
BitGallery
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-19 */ pragma solidity 0.4.19; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint a, uint b) internal pure returns (uint) { if (a == 0) { return 0; } uint c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint a, uint b) internal pure returns (uint) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint 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(uint a, uint b) internal pure returns (uint) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint a, uint b) internal pure returns (uint) { uint c = a + b; assert(c >= a); return c; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } /** * @title Heritable * @dev The Heritable contract provides ownership transfer capabilities, in the * case that the current owner stops "heartbeating". Only the heir can pronounce the * owner's death. */ contract Heritable is Ownable { address public heir; // Time window the owner has to notify they are alive. uint public heartbeatTimeout; // Timestamp of the owner's death, as pronounced by the heir. uint public timeOfDeath; event HeirChanged(address indexed owner, address indexed newHeir); event OwnerHeartbeated(address indexed owner); event OwnerProclaimedDead(address indexed owner, address indexed heir, uint timeOfDeath); event HeirOwnershipClaimed(address indexed previousOwner, address indexed newOwner); /** * @dev Throw an exception if called by any account other than the heir's. */ modifier onlyHeir() { require(msg.sender == heir); _; } /** * @notice Create a new Heritable Contract with heir address 0x0. * @param _heartbeatTimeout time available for the owner to notify they are alive, * before the heir can take ownership. */ function Heritable(uint _heartbeatTimeout) public { setHeartbeatTimeout(_heartbeatTimeout); } function setHeir(address newHeir) public onlyOwner { require(newHeir != owner); heartbeat(); HeirChanged(owner, newHeir); heir = newHeir; } /** * @dev set heir = 0x0 */ function removeHeir() public onlyOwner { heartbeat(); heir = 0; } /** * @dev Heir can pronounce the owners death. To claim the ownership, they will * have to wait for `heartbeatTimeout` seconds. */ function proclaimDeath() public onlyHeir { require(owner != heir); // added require(ownerLives()); OwnerProclaimedDead(owner, heir, timeOfDeath); timeOfDeath = now; } /** * @dev Owner can send a heartbeat if they were mistakenly pronounced dead. */ function heartbeat() public onlyOwner { OwnerHeartbeated(owner); timeOfDeath = 0; } /** * @dev Allows heir to transfer ownership only if heartbeat has timed out. */ function claimHeirOwnership() public onlyHeir { require(!ownerLives()); require(now >= timeOfDeath + heartbeatTimeout); OwnershipTransferred(owner, heir); HeirOwnershipClaimed(owner, heir); owner = heir; timeOfDeath = 0; } function setHeartbeatTimeout(uint newHeartbeatTimeout) internal onlyOwner { require(ownerLives()); heartbeatTimeout = newHeartbeatTimeout; } function ownerLives() internal view returns (bool) { return timeOfDeath == 0; } } /// @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, uint _tokenId) public; function balanceOf(address _owner) public view returns (uint balance); function implementsERC721() public pure returns (bool); function ownerOf(uint _tokenId) public view returns (address addr); function takeOwnership(uint _tokenId) public; function totalSupply() public view returns (uint total); function transferFrom(address _from, address _to, uint _tokenId) public; function transfer(address _to, uint _tokenId) public; event Transfer(address indexed from, address indexed to, uint tokenId); event Approval(address indexed owner, address indexed approved, uint tokenId); // Optional // function name() public view returns (string name); // function symbol() public view returns (string symbol); // function tokenOfOwnerByIndex(address _owner, uint _index) external view returns (uint tokenId); // function tokenMetadata(uint _tokenId) public view returns (string infoUrl); } contract BitArtToken is Heritable, ERC721 { string public constant NAME = "BitGallery"; string public constant SYMBOL = "BitArt"; struct Art { bytes32 data; } Art[] internal arts; mapping (uint => address) public tokenOwner; mapping (address => uint) public ownedTokenCount; mapping (uint => address) public tokenApprovals; event Transfer(address from, address to, uint tokenId); event Approval(address owner, address approved, uint tokenId); // 30 days to change owner function BitArtToken() Heritable(2592000) public {} function tokensOf(address _owner) external view returns(uint[]) { uint tokenCount = balanceOf(_owner); if (tokenCount == 0) { return new uint[](0); } else { uint[] memory result = new uint[](tokenCount); uint totaltokens = totalSupply(); uint index = 0; for (uint tokenId = 0; tokenId < totaltokens; tokenId++) { if (tokenOwner[tokenId] == _owner) { result[index] = tokenId; index++; } } return result; } } function approve(address _to, uint _tokenId) public { require(_owns(msg.sender, _tokenId)); tokenApprovals[_tokenId] = _to; Approval(msg.sender, _to, _tokenId); } function balanceOf(address _owner) public view returns (uint balance) { return ownedTokenCount[_owner]; } function getArts() public view returns (bytes32[]) { uint count = totalSupply(); bytes32[] memory result = new bytes32[](count); for (uint i = 0; i < count; i++) { result[i] = arts[i].data; } return result; } function implementsERC721() public pure returns (bool) { return true; } function name() public pure returns (string) { return NAME; } function ownerOf(uint _tokenId) public view returns (address owner) { owner = tokenOwner[_tokenId]; require(_addressNotNull(owner)); } function symbol() public pure returns (string) { return SYMBOL; } function takeOwnership(uint _tokenId) public { address newOwner = msg.sender; require(_addressNotNull(newOwner)); require(_approved(newOwner, _tokenId)); address oldOwner = tokenOwner[_tokenId]; _transfer(oldOwner, newOwner, _tokenId); } function totalSupply() public view returns (uint total) { return arts.length; } function transfer(address _to, uint _tokenId) public { require(_owns(msg.sender, _tokenId)); require(_addressNotNull(_to)); _transfer(msg.sender, _to, _tokenId); } function transferFrom(address _from, address _to, uint _tokenId) public { require(_owns(_from, _tokenId)); require(_approved(_to, _tokenId)); require(_addressNotNull(_to)); _transfer(_from, _to, _tokenId); } function _mint(address _to, uint256 _tokenId) internal { require(_to != address(0)); require(tokenOwner[_tokenId] == address(0)); _transfer(0x0, _to, _tokenId); } function _transfer(address _from, address _to, uint _tokenId) internal { require(_from != _to); ownedTokenCount[_to]++; tokenOwner[_tokenId] = _to; if (_addressNotNull(_from)) { ownedTokenCount[_from]--; delete tokenApprovals[_tokenId]; } Transfer(_from, _to, _tokenId); } function _addressNotNull(address _address) private pure returns (bool) { return _address != address(0); } function _approved(address _to, uint _tokenId) private view returns (bool) { return tokenApprovals[_tokenId] == _to; } function _owns(address _claimant, uint _tokenId) private view returns (bool) { return _claimant == tokenOwner[_tokenId]; } } contract BitAuction is BitArtToken { using SafeMath for uint; struct Auction { uint basePrice; uint64 time1; uint64 time2; uint8 pct1; uint8 pct2; uint8 discount; } uint internal _auctionStartsAfter; uint internal _auctionDuration; uint internal _auctionFee; mapping (uint => Auction) public tokenAuction; event AuctionRulesChanged(uint startsAfter, uint duration, uint fee); event NewAuction(uint tokenId, uint discount); event NewSaleDiscount(uint tokenId, uint discount); function BitAuction() public { } function setSaleDiscount(uint _tokenId, uint _discount) external { require(ownerOf(_tokenId) == msg.sender); require(_discount <= 90); require(_discount >= 10); Auction storage auction = tokenAuction[_tokenId]; require(auction.basePrice > 0); require(auction.time2 <= now); auction.discount = uint8(_discount); NewSaleDiscount(_tokenId, _discount); } function canPurchase(uint _tokenId) public view returns (bool) { Auction storage auction = tokenAuction[_tokenId]; require(auction.time1 > 0); return (now >= auction.time1 && priceOf(_tokenId) > 0); } function getPrices(uint[] _ids) public view returns (uint[]) { uint count = _ids.length; bool isEmpty = count == 0; if (isEmpty) { count = totalSupply(); } uint[] memory result = new uint[](count); for (uint i = 0; i < count; i++) { uint tokenId = isEmpty ? i : _ids[i]; result[i] = priceOf(tokenId); } return result; } function priceOf(uint _tokenId) public view returns (uint) { Auction storage auction = tokenAuction[_tokenId]; return _currentPrice(auction); } function setAuctionDurationRules(uint _timeAfter, uint _duration, uint _fee) public onlyOwner { require(_timeAfter >= 0 seconds); require(_timeAfter <= 7 days); require(_duration >= 24 hours); require(_duration <= 30 days); require(_fee >= 1); require(_fee <= 5); _auctionStartsAfter = _timeAfter; _auctionDuration = _duration; _auctionFee = _fee; AuctionRulesChanged(_timeAfter, _duration, _fee); } function _createCustomAuction(uint _tokenId, uint _basePrice, uint _time1, uint _time2, uint _pct1, uint _pct2) private { require(_time1 >= now); require(_time2 >= _time1); require(_pct1 > 0); require(_pct2 > 0); Auction memory auction = Auction({ basePrice: _basePrice, time1: uint64(_time1), time2: uint64(_time2), pct1: uint8(_pct1), pct2: uint8(_pct2), discount: 0 }); tokenAuction[_tokenId] = auction; } function _createNewTokenAuction(uint _tokenId, uint _basePrice) internal { _createCustomAuction(_tokenId, _basePrice, now, now + _auctionStartsAfter + _auctionDuration, 100, 10); } function _createStandartAuction(uint _tokenId, uint _basePrice) internal { uint start = now + _auctionStartsAfter; _createCustomAuction(_tokenId, _basePrice, start, start + _auctionDuration, 200, 110); } function _currentPrice(Auction _auction) internal view returns (uint) { if (_auction.discount > 0) { return uint((_auction.basePrice * (100 - _auction.discount)) / 100); } uint _startingPrice = uint((_auction.basePrice * _auction.pct1) / 100); if (_auction.time1 > now) { return _startingPrice; } uint _secondsPassed = uint(now - _auction.time1); uint _duration = uint(_auction.time2 - _auction.time1); uint _endingPrice = uint((_auction.basePrice * _auction.pct2) / 100); if (_secondsPassed >= _duration) { return _endingPrice; } else { int totalPriceChange = int(_endingPrice) - int(_startingPrice); int currentPriceChange = totalPriceChange * int(_secondsPassed) / int(_duration); int currentPrice = int(_startingPrice) + currentPriceChange; return uint(currentPrice); } } function _computePrice(uint _secondsPassed, uint _duration, uint _startingPrice, uint _endingPrice) private pure returns (uint) { if (_secondsPassed >= _duration) { return _endingPrice; } else { int totalPriceChange = int(_endingPrice) - int(_startingPrice); int currentPriceChange = totalPriceChange * int(_secondsPassed) / int(_duration); int currentPrice = int(_startingPrice) + currentPriceChange; return uint(currentPrice); } } } contract BitGallery is BitAuction { using SafeMath for uint; string public infoMessage; event TokenSold(uint tokenId, uint price, address from, address to); event NewToken(uint tokenId, string metadata); function BitGallery() public { setAuctionDurationRules(24 hours, 6 days, 3); setMessage("Our web site is www.bitgallery.co"); } function() public payable {} function addArt(string _keyData, uint _basePrice) public onlyOwner { return addArtTo(address(this), _keyData, _basePrice); } function addArtTo(address _owner, string _keyData, uint _basePrice) public onlyOwner { require(_basePrice >= 1 finney); Art memory _art = Art({ data: keccak256(_keyData) }); uint tokenId = arts.push(_art) - 1; NewToken(tokenId, _keyData); _mint(_owner, tokenId); _createNewTokenAuction(tokenId, _basePrice); } function artExists(string _keydata) public view returns (bool) { for (uint i = 0; i < totalSupply(); i++) { if (arts[i].data == keccak256(_keydata)) { return true; } } return false; } function fullDataOf(uint _tokenId) public view returns ( uint basePrice, uint64 time1, uint64 time2, uint8 pct1, uint8 pct2, uint8 discount, uint currentPrice, bool _canPurchase, address owner ) { Auction storage auction = tokenAuction[_tokenId]; basePrice = auction.basePrice; time1 = auction.time1; time2 = auction.time2; pct1 = auction.pct1; pct2 = auction.pct2; discount = auction.discount; currentPrice = priceOf(_tokenId); _canPurchase = canPurchase(_tokenId); owner = ownerOf(_tokenId); } function payout(address _to) public onlyOwner { require(_to != address(this)); if (_to == address(0)) { _to = msg.sender; } _to.transfer(this.balance); } function purchase(uint _tokenId) public payable { Auction storage auction = tokenAuction[_tokenId]; require(now >= auction.time1); uint price = _currentPrice(auction); require(msg.value >= price); uint payment = uint((price * (100 - _auctionFee)) / 100); uint purchaseExcess = msg.value - price; _createStandartAuction(_tokenId, price); address from = ownerOf(_tokenId); address to = msg.sender; _transfer(from, to, _tokenId); if (from != address(this)) { from.transfer(payment); } TokenSold(_tokenId, price, from, to); msg.sender.transfer(purchaseExcess); } function setMessage(string _message) public onlyOwner { infoMessage = _message; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":true,"inputs":[{"name":"_ids","type":"uint256[]"}],"name":"getPrices","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","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":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimHeirOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ownedTokenCount","outputs":[{"name":"","type":"uint256"}],"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":"newHeir","type":"address"}],"name":"setHeir","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"proclaimDeath","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_keyData","type":"string"},{"name":"_basePrice","type":"uint256"}],"name":"addArt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_message","type":"string"}],"name":"setMessage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_discount","type":"uint256"}],"name":"setSaleDiscount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"heartbeat","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"fullDataOf","outputs":[{"name":"basePrice","type":"uint256"},{"name":"time1","type":"uint64"},{"name":"time2","type":"uint64"},{"name":"pct1","type":"uint8"},{"name":"pct2","type":"uint8"},{"name":"discount","type":"uint8"},{"name":"currentPrice","type":"uint256"},{"name":"_canPurchase","type":"bool"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getArts","outputs":[{"name":"","type":"bytes32[]"}],"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":"heartbeatTimeout","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"canPurchase","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"heir","outputs":[{"name":"","type":"address"}],"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":"infoMessage","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"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":true,"inputs":[{"name":"_keydata","type":"string"}],"name":"artExists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenApprovals","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"timeOfDeath","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"priceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_timeAfter","type":"uint256"},{"name":"_duration","type":"uint256"},{"name":"_fee","type":"uint256"}],"name":"setAuctionDurationRules","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"removeHeir","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenAuction","outputs":[{"name":"basePrice","type":"uint256"},{"name":"time1","type":"uint64"},{"name":"time2","type":"uint64"},{"name":"pct1","type":"uint8"},{"name":"pct2","type":"uint8"},{"name":"discount","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_keyData","type":"string"},{"name":"_basePrice","type":"uint256"}],"name":"addArtTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"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":"price","type":"uint256"},{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"}],"name":"TokenSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"metadata","type":"string"}],"name":"NewToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"startsAfter","type":"uint256"},{"indexed":false,"name":"duration","type":"uint256"},{"indexed":false,"name":"fee","type":"uint256"}],"name":"AuctionRulesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"discount","type":"uint256"}],"name":"NewAuction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"discount","type":"uint256"}],"name":"NewSaleDiscount","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":false,"name":"owner","type":"address"},{"indexed":false,"name":"approved","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"newHeir","type":"address"}],"name":"HeirChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerHeartbeated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"heir","type":"address"},{"indexed":false,"name":"timeOfDeath","type":"uint256"}],"name":"OwnerProclaimedDead","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"HeirOwnershipClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
606060405234156200001057600080fd5b60008054600160a060020a03191633600160a060020a031617905562278d006200004881640100000000620000e5810262001faf1704565b506200006b620151806207e9006003640100000000620014e26200012a82021704565b620000df60606040519081016040908152602182527f4f7572207765622073697465206973207777772e62697467616c6c6572792e6360208301527f6f000000000000000000000000000000000000000000000000000000000000009082015264010000000062000d916200020182021704565b620002e0565b60005433600160a060020a039081169116146200010157600080fd5b6200011964010000000062001aad6200023682021704565b15156200012557600080fd5b600255565b60005433600160a060020a039081169116146200014657600080fd5b60008310156200015557600080fd5b62093a808311156200016657600080fd5b620151808210156200017757600080fd5b62278d008211156200018857600080fd5b60018110156200019757600080fd5b6005811115620001a657600080fd5b60088390556009829055600a8190557fe69f8fd4054d4231f941e78995aa6b652a1a26018c0f0c0e89987f07f1390c6683838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b60005433600160a060020a039081169116146200021d57600080fd5b600c818051620002329291602001906200023e565b5050565b600354155b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028157805160ff1916838001178555620002b1565b82800160010185558215620002b1579182015b82811115620002b157825182559160200191906001019062000294565b50620002bf929150620002c3565b5090565b6200023b91905b80821115620002bf5760008155600101620002ca565b61200e80620002f06000396000f3006060604052600436106101f85763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101fa578063095ea7b31461028457806309cb3a4e146102a65780630b7e9c44146103485780631051db341461036757806318160ddd1461038e5780631c921e16146103b35780631caaa487146103c65780631d4f828a146103f857806323b872dd1461041757806323defc771461043f578063248451311461045e578063306ad3fd14610471578063368b8772146104c45780633949e341146105155780633defb9621461052e5780635a3f26721461054157806361f35cbb14610560578063632ca5c9146105e05780636352211e146105f357806370a08231146106095780637bca38be146106285780638257f6101461063b5780638da5cb5b1461065157806391f2ebb81461066457806395d89b41146106775780639c85a28a1461068a578063a3f4df7e1461069d578063a9059cbb146106b0578063ab15dd73146106d2578063acdeb5b914610723578063b2e6ceeb14610739578063b4a8f3e61461074f578063b9186d7d14610762578063c34136b614610778578063ebf88de414610794578063ed111e1c146107a7578063efef39a114610806578063f0ae74e314610811578063f2fde38b14610872578063f76f8d7814610891575b005b341561020557600080fd5b61020d6108a4565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610249578082015183820152602001610231565b50505050905090810190601f1680156102765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028f57600080fd5b6101f8600160a060020a03600435166024356108e6565b34156102b157600080fd5b6102f5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061097a95505050505050565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561033457808201518382015260200161031c565b505050509050019250505060405180910390f35b341561035357600080fd5b6101f8600160a060020a0360043516610a33565b341561037257600080fd5b61037a610ac2565b604051901515815260200160405180910390f35b341561039957600080fd5b6103a1610ac7565b60405190815260200160405180910390f35b34156103be57600080fd5b6101f8610acd565b34156103d157600080fd5b6103dc600435610bb2565b604051600160a060020a03909116815260200160405180910390f35b341561040357600080fd5b6103a1600160a060020a0360043516610bcd565b341561042257600080fd5b6101f8600160a060020a0360043581169060243516604435610bdf565b341561044a57600080fd5b6101f8600160a060020a0360043516610c2d565b341561046957600080fd5b6101f8610cc9565b341561047c57600080fd5b6101f860046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350610d6792505050565b34156104cf57600080fd5b6101f860046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610d9195505050505050565b341561052057600080fd5b6101f8600435602435610dbf565b341561053957600080fd5b6101f8610eb1565b341561054c57600080fd5b6102f5600160a060020a0360043516610f0b565b341561056b57600080fd5b610576600435610fe7565b60405198895267ffffffffffffffff97881660208a01529590961660408089019190915260ff94851660608901529284166080880152921660a086015260c085019190915291151560e0840152600160a060020a0316610100830152610120909101905180910390f35b34156105eb57600080fd5b6102f561108b565b34156105fe57600080fd5b6103dc600435611116565b341561061457600080fd5b6103a1600160a060020a0360043516611147565b341561063357600080fd5b6103a1611162565b341561064657600080fd5b61037a600435611168565b341561065c57600080fd5b6103dc6111c0565b341561066f57600080fd5b6103dc6111cf565b341561068257600080fd5b61020d6111de565b341561069557600080fd5b61020d61121f565b34156106a857600080fd5b61020d6112bd565b34156106bb57600080fd5b6101f8600160a060020a03600435166024356112f4565b34156106dd57600080fd5b61037a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061132895505050505050565b341561072e57600080fd5b6103dc6004356113d2565b341561074457600080fd5b6101f86004356113ed565b341561075a57600080fd5b6103a161143d565b341561076d57600080fd5b6103a1600435611443565b341561078357600080fd5b6101f86004356024356044356114e2565b341561079f57600080fd5b6101f86115b2565b34156107b257600080fd5b6107bd6004356115e7565b60405195865267ffffffffffffffff94851660208701529290931660408086019190915260ff918216606086015292811660808501521660a083015260c0909101905180910390f35b6101f8600435611657565b341561081c57600080fd5b6101f860048035600160a060020a03169060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650509335935061183e92505050565b341561087d57600080fd5b6101f8600160a060020a03600435166119c8565b341561089c57600080fd5b61020d611a56565b6108ac611eac565b60408051908101604052600a81527f42697447616c6c65727900000000000000000000000000000000000000000000602082015290505b90565b6108f03382611a8d565b15156108fb57600080fd5b600081815260076020526040908190208054600160a060020a031916600160a060020a0385161790557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259033908490849051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15050565b610982611eac565b60008061098d611eac565b600080865194508415935083156109a9576109a6610ac7565b94505b846040518059106109b75750595b90808252806020026020018201604052509250600091505b84821015610a2557836109f7578682815181106109e857fe5b906020019060200201516109f9565b815b9050610a0481611443565b838381518110610a1057fe5b602090810290910101526001909101906109cf565b8295505b5050505050919050565b60005433600160a060020a03908116911614610a4e57600080fd5b30600160a060020a031681600160a060020a031614151515610a6f57600080fd5b600160a060020a0381161515610a825750335b80600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f193505050501515610abf57600080fd5b50565b600190565b60045490565b60015433600160a060020a03908116911614610ae857600080fd5b610af0611aad565b15610afa57600080fd5b60025460035401421015610b0d57600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600154600054600160a060020a0391821691167f1017a357e19071e4408dbd385f24e591aa5bcee52b444dc0c8abddbe6ad29de660405160405180910390a360015460008054600160a060020a031916600160a060020a03909216919091178155600355565b600560205260009081526040902054600160a060020a031681565b60066020526000908152604090205481565b610be98382611a8d565b1515610bf457600080fd5b610bfe8282611ab4565b1515610c0957600080fd5b610c1282611ad4565b1515610c1d57600080fd5b610c28838383611ae2565b505050565b60005433600160a060020a03908116911614610c4857600080fd5b600054600160a060020a0382811691161415610c6357600080fd5b610c6b610eb1565b600054600160a060020a0380831691167f4e6093f85fa64484abd692810d8a44d508792ff7b7a021d9fbd69fa1c6ff18a060405160405180910390a360018054600160a060020a031916600160a060020a0392909216919091179055565b60015433600160a060020a03908116911614610ce457600080fd5b600154600054600160a060020a0390811691161415610d0257600080fd5b610d0a611aad565b1515610d1557600080fd5b600154600054600354600160a060020a0392831692909116907f66389f1f3251c39e71cb18351daefea45bda23e98df0767266b8aed4ff9382779060405190815260200160405180910390a342600355565b60005433600160a060020a03908116911614610d8257600080fd5b610d8d30838361183e565b5050565b60005433600160a060020a03908116911614610dac57600080fd5b600c818051610d8d929160200190611ebe565b600033600160a060020a0316610dd484611116565b600160a060020a031614610de757600080fd5b605a821115610df557600080fd5b600a821015610e0357600080fd5b506000828152600b60205260408120805490919011610e2157600080fd5b6001810154426801000000000000000090910467ffffffffffffffff161115610e4957600080fd5b60018101805472ff0000000000000000000000000000000000001916609060020a60ff8516021790557f699c6178abef37ca53103b7ca4ad2d48b45c900372bc62f6812d4a5a219a59b6838360405191825260208201526040908101905180910390a1505050565b60005433600160a060020a03908116911614610ecc57600080fd5b600054600160a060020a03167fd40b9d9a7572411aff4bbb95ba7bd9a9d4e9b70747ec46f8fe7913c309b6845260405160405180910390a26000600355565b610f13611eac565b6000610f1d611eac565b6000806000610f2b87611147565b9450841515610f5b576000604051805910610f435750595b90808252806020026020018201604052509550610a29565b84604051805910610f695750595b90808252806020026020018201604052509350610f84610ac7565b925060009150600090505b82811015610fdf57600081815260056020526040902054600160a060020a0388811691161415610fd75780848381518110610fc657fe5b602090810290910101526001909101905b600101610f8f565b839550610a29565b6000818152600b6020526040812080546001820154909267ffffffffffffffff808316936801000000000000000084049091169260ff7001000000000000000000000000000000008204811693710100000000000000000000000000000000008304821693609060020a90930490911691819081906110658b611443565b93506110708b611168565b925061107b8b611116565b9150509193959799909294969850565b611093611eac565b600061109d611eac565b60006110a7610ac7565b9250826040518059106110b75750595b90808252806020026020018201604052509150600090505b8281101561110f5760048054829081106110e557fe5b6000918252602090912001548282815181106110fd57fe5b602090810290910101526001016110cf565b5092915050565b600081815260056020526040902054600160a060020a031661113781611ad4565b151561114257600080fd5b919050565b600160a060020a031660009081526006602052604090205490565b60025481565b6000818152600b60205260408120600181015467ffffffffffffffff1682901161119157600080fd5b600181015467ffffffffffffffff1642108015906111b7575060006111b584611443565b115b91505b50919050565b600054600160a060020a031681565b600154600160a060020a031681565b6111e6611eac565b60408051908101604052600681527f42697441727400000000000000000000000000000000000000000000000000006020820152905090565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112b55780601f1061128a576101008083540402835291602001916112b5565b820191906000526020600020905b81548152906001019060200180831161129857829003601f168201915b505050505081565b60408051908101604052600a81527f42697447616c6c65727900000000000000000000000000000000000000000000602082015281565b6112fe3382611a8d565b151561130957600080fd5b61131282611ad4565b151561131d57600080fd5b610d8d338383611ae2565b6000805b611334610ac7565b8110156113c957826040518082805190602001908083835b6020831061136b5780518252601f19909201916020918201910161134c565b6001836020036101000a038019825116818451161790925250505091909101925060409150505190819003902060048054839081106113a657fe5b60009182526020909120015414156113c157600191506111ba565b60010161132c565b50600092915050565b600760205260009081526040902054600160a060020a031681565b3360006113f982611ad4565b151561140457600080fd5b61140e8284611ab4565b151561141957600080fd5b50600082815260056020526040902054600160a060020a0316610c28818385611ae2565b60035481565b6000818152600b6020526040808220906111b790829060c0905190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925260ff70010000000000000000000000000000000083048116606083015271010000000000000000000000000000000000830481166080830152609060020a90920490911660a0820152611bd7565b60005433600160a060020a039081169116146114fd57600080fd5b600083101561150b57600080fd5b62093a8083111561151b57600080fd5b6201518082101561152b57600080fd5b62278d0082111561153b57600080fd5b600181101561154957600080fd5b600581111561155757600080fd5b60088390556009829055600a8190557fe69f8fd4054d4231f941e78995aa6b652a1a26018c0f0c0e89987f07f1390c6683838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b60005433600160a060020a039081169116146115cd57600080fd5b6115d5610eb1565b60018054600160a060020a0319169055565b600b602052600090815260409020805460019091015467ffffffffffffffff808216916801000000000000000081049091169060ff7001000000000000000000000000000000008204811691710100000000000000000000000000000000008104821691609060020a9091041686565b6000818152600b602052604081206001810154909190819081908190819067ffffffffffffffff1642101561168b57600080fd5b6117198660c060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925260ff70010000000000000000000000000000000083048116606083015271010000000000000000000000000000000000830481166080830152609060020a90920490911660a0820152611bd7565b9450348590101561172957600080fd5b600a546064908103860204935084340392506117458786611cca565b61174e87611116565b915033905061175e828289611ae2565b30600160a060020a031682600160a060020a03161415156117aa57600160a060020a03821684156108fc0285604051600060405180830381858888f1935050505015156117aa57600080fd5b7fb45b7a510d22eabde36919bed5551eccad687e7b55e2d2aa3033dc0786a9877b878684846040519384526020840192909252600160a060020a03908116604080850191909152911660608301526080909101905180910390a1600160a060020a03331683156108fc0284604051600060405180830381858888f19350505050151561183557600080fd5b50505050505050565b611846611eac565b6000805433600160a060020a0390811691161461186257600080fd5b66038d7ea4c6800083101561187657600080fd5b602060405190810160405280856040518082805190602001908083835b602083106118b25780518252601f199092019160209182019101611893565b6001836020036101000a03801982511681845116179092525050509190910192506040915050519081900390209052600480549193506001918083016118f88382611f3c565b6000928352602090922085910181519055500390507fca8605e5b2854022d4ef7e920a48b0c49ca69a8453970d922c3dd8b93057fa67818560405182815260406020820181815290820183818151815260200191508051906020019080838360005b8381101561197257808201518382015260200161195a565b50505050905090810190601f16801561199f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a16119b78582611ce7565b6119c18184611d2a565b5050505050565b60005433600160a060020a039081169116146119e357600080fd5b600160a060020a03811615156119f857600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008054600160a060020a031916600160a060020a0392909216919091179055565b60408051908101604052600681527f4269744172740000000000000000000000000000000000000000000000000000602082015281565b600090815260056020526040902054600160a060020a0390811691161490565b6003541590565b600090815260076020526040902054600160a060020a0391821691161490565b600160a060020a0316151590565b600160a060020a038381169083161415611afb57600080fd5b600160a060020a038216600081815260066020908152604080832080546001019055848352600590915290208054600160a060020a0319169091179055611b4183611ad4565b15611b8257600160a060020a03831660009081526006602090815260408083208054600019019055838352600790915290208054600160a060020a03191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b60008060008060008060008060008960a0015160ff161115611c175760648960a0015160640360ff168a6000015102811515611c0f57fe5b049750611cbe565b6064896060015160ff168a5102811515611c2d57fe5b04965042896020015167ffffffffffffffff161115611c4e57869750611cbe565b886020015167ffffffffffffffff1642039550886020015189604001510367ffffffffffffffff1694506064896080015160ff168a5102811515611c8e57fe5b049350848610611ca057839750611cbe565b868403925084868402811515611cb257fe5b05915081870190508097505b50505050505050919050565b600060085442019050610c28838383600954850160c8606e611d3e565b600160a060020a0382161515611cfc57600080fd5b600081815260056020526040902054600160a060020a031615611d1e57600080fd5b610d8d60008383611ae2565b610d8d8282426009546008544201016064600a5b611d46611f60565b42851015611d5357600080fd5b84841015611d6057600080fd5b60008311611d6d57600080fd5b60008211611d7a57600080fd5b60c0604051908101604090815287825267ffffffffffffffff8088166020808501919091529087168284015260ff808716606085015285166080840152600060a084018190528a8152600b90915220909150819081518155602082015160018201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160106101000a81548160ff021916908360ff16021790555060808201518160010160116101000a81548160ff021916908360ff16021790555060a08201516001909101805460ff92909216609060020a0272ff000000000000000000000000000000000000199092169190911790555050505050505050565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611eff57805160ff1916838001178555611f2c565b82800160010185558215611f2c579182015b82811115611f2c578251825591602001919060010190611f11565b50611f38929150611f95565b5090565b815481835581811511610c2857600083815260209020610c28918101908301611f95565b60c06040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a082015290565b6108e391905b80821115611f385760008155600101611f9b565b60005433600160a060020a03908116911614611fca57600080fd5b611fd2611aad565b1515611fdd57600080fd5b6002555600a165627a7a723058202d38690b3cb2f39fa03f8d20b1fc9f8b9b165fa01258d2bc3a6d7584ca9d3c3f0029
Deployed Bytecode
0x6060604052600436106101f85763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101fa578063095ea7b31461028457806309cb3a4e146102a65780630b7e9c44146103485780631051db341461036757806318160ddd1461038e5780631c921e16146103b35780631caaa487146103c65780631d4f828a146103f857806323b872dd1461041757806323defc771461043f578063248451311461045e578063306ad3fd14610471578063368b8772146104c45780633949e341146105155780633defb9621461052e5780635a3f26721461054157806361f35cbb14610560578063632ca5c9146105e05780636352211e146105f357806370a08231146106095780637bca38be146106285780638257f6101461063b5780638da5cb5b1461065157806391f2ebb81461066457806395d89b41146106775780639c85a28a1461068a578063a3f4df7e1461069d578063a9059cbb146106b0578063ab15dd73146106d2578063acdeb5b914610723578063b2e6ceeb14610739578063b4a8f3e61461074f578063b9186d7d14610762578063c34136b614610778578063ebf88de414610794578063ed111e1c146107a7578063efef39a114610806578063f0ae74e314610811578063f2fde38b14610872578063f76f8d7814610891575b005b341561020557600080fd5b61020d6108a4565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610249578082015183820152602001610231565b50505050905090810190601f1680156102765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028f57600080fd5b6101f8600160a060020a03600435166024356108e6565b34156102b157600080fd5b6102f5600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061097a95505050505050565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561033457808201518382015260200161031c565b505050509050019250505060405180910390f35b341561035357600080fd5b6101f8600160a060020a0360043516610a33565b341561037257600080fd5b61037a610ac2565b604051901515815260200160405180910390f35b341561039957600080fd5b6103a1610ac7565b60405190815260200160405180910390f35b34156103be57600080fd5b6101f8610acd565b34156103d157600080fd5b6103dc600435610bb2565b604051600160a060020a03909116815260200160405180910390f35b341561040357600080fd5b6103a1600160a060020a0360043516610bcd565b341561042257600080fd5b6101f8600160a060020a0360043581169060243516604435610bdf565b341561044a57600080fd5b6101f8600160a060020a0360043516610c2d565b341561046957600080fd5b6101f8610cc9565b341561047c57600080fd5b6101f860046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350610d6792505050565b34156104cf57600080fd5b6101f860046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610d9195505050505050565b341561052057600080fd5b6101f8600435602435610dbf565b341561053957600080fd5b6101f8610eb1565b341561054c57600080fd5b6102f5600160a060020a0360043516610f0b565b341561056b57600080fd5b610576600435610fe7565b60405198895267ffffffffffffffff97881660208a01529590961660408089019190915260ff94851660608901529284166080880152921660a086015260c085019190915291151560e0840152600160a060020a0316610100830152610120909101905180910390f35b34156105eb57600080fd5b6102f561108b565b34156105fe57600080fd5b6103dc600435611116565b341561061457600080fd5b6103a1600160a060020a0360043516611147565b341561063357600080fd5b6103a1611162565b341561064657600080fd5b61037a600435611168565b341561065c57600080fd5b6103dc6111c0565b341561066f57600080fd5b6103dc6111cf565b341561068257600080fd5b61020d6111de565b341561069557600080fd5b61020d61121f565b34156106a857600080fd5b61020d6112bd565b34156106bb57600080fd5b6101f8600160a060020a03600435166024356112f4565b34156106dd57600080fd5b61037a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061132895505050505050565b341561072e57600080fd5b6103dc6004356113d2565b341561074457600080fd5b6101f86004356113ed565b341561075a57600080fd5b6103a161143d565b341561076d57600080fd5b6103a1600435611443565b341561078357600080fd5b6101f86004356024356044356114e2565b341561079f57600080fd5b6101f86115b2565b34156107b257600080fd5b6107bd6004356115e7565b60405195865267ffffffffffffffff94851660208701529290931660408086019190915260ff918216606086015292811660808501521660a083015260c0909101905180910390f35b6101f8600435611657565b341561081c57600080fd5b6101f860048035600160a060020a03169060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650509335935061183e92505050565b341561087d57600080fd5b6101f8600160a060020a03600435166119c8565b341561089c57600080fd5b61020d611a56565b6108ac611eac565b60408051908101604052600a81527f42697447616c6c65727900000000000000000000000000000000000000000000602082015290505b90565b6108f03382611a8d565b15156108fb57600080fd5b600081815260076020526040908190208054600160a060020a031916600160a060020a0385161790557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259033908490849051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15050565b610982611eac565b60008061098d611eac565b600080865194508415935083156109a9576109a6610ac7565b94505b846040518059106109b75750595b90808252806020026020018201604052509250600091505b84821015610a2557836109f7578682815181106109e857fe5b906020019060200201516109f9565b815b9050610a0481611443565b838381518110610a1057fe5b602090810290910101526001909101906109cf565b8295505b5050505050919050565b60005433600160a060020a03908116911614610a4e57600080fd5b30600160a060020a031681600160a060020a031614151515610a6f57600080fd5b600160a060020a0381161515610a825750335b80600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f193505050501515610abf57600080fd5b50565b600190565b60045490565b60015433600160a060020a03908116911614610ae857600080fd5b610af0611aad565b15610afa57600080fd5b60025460035401421015610b0d57600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600154600054600160a060020a0391821691167f1017a357e19071e4408dbd385f24e591aa5bcee52b444dc0c8abddbe6ad29de660405160405180910390a360015460008054600160a060020a031916600160a060020a03909216919091178155600355565b600560205260009081526040902054600160a060020a031681565b60066020526000908152604090205481565b610be98382611a8d565b1515610bf457600080fd5b610bfe8282611ab4565b1515610c0957600080fd5b610c1282611ad4565b1515610c1d57600080fd5b610c28838383611ae2565b505050565b60005433600160a060020a03908116911614610c4857600080fd5b600054600160a060020a0382811691161415610c6357600080fd5b610c6b610eb1565b600054600160a060020a0380831691167f4e6093f85fa64484abd692810d8a44d508792ff7b7a021d9fbd69fa1c6ff18a060405160405180910390a360018054600160a060020a031916600160a060020a0392909216919091179055565b60015433600160a060020a03908116911614610ce457600080fd5b600154600054600160a060020a0390811691161415610d0257600080fd5b610d0a611aad565b1515610d1557600080fd5b600154600054600354600160a060020a0392831692909116907f66389f1f3251c39e71cb18351daefea45bda23e98df0767266b8aed4ff9382779060405190815260200160405180910390a342600355565b60005433600160a060020a03908116911614610d8257600080fd5b610d8d30838361183e565b5050565b60005433600160a060020a03908116911614610dac57600080fd5b600c818051610d8d929160200190611ebe565b600033600160a060020a0316610dd484611116565b600160a060020a031614610de757600080fd5b605a821115610df557600080fd5b600a821015610e0357600080fd5b506000828152600b60205260408120805490919011610e2157600080fd5b6001810154426801000000000000000090910467ffffffffffffffff161115610e4957600080fd5b60018101805472ff0000000000000000000000000000000000001916609060020a60ff8516021790557f699c6178abef37ca53103b7ca4ad2d48b45c900372bc62f6812d4a5a219a59b6838360405191825260208201526040908101905180910390a1505050565b60005433600160a060020a03908116911614610ecc57600080fd5b600054600160a060020a03167fd40b9d9a7572411aff4bbb95ba7bd9a9d4e9b70747ec46f8fe7913c309b6845260405160405180910390a26000600355565b610f13611eac565b6000610f1d611eac565b6000806000610f2b87611147565b9450841515610f5b576000604051805910610f435750595b90808252806020026020018201604052509550610a29565b84604051805910610f695750595b90808252806020026020018201604052509350610f84610ac7565b925060009150600090505b82811015610fdf57600081815260056020526040902054600160a060020a0388811691161415610fd75780848381518110610fc657fe5b602090810290910101526001909101905b600101610f8f565b839550610a29565b6000818152600b6020526040812080546001820154909267ffffffffffffffff808316936801000000000000000084049091169260ff7001000000000000000000000000000000008204811693710100000000000000000000000000000000008304821693609060020a90930490911691819081906110658b611443565b93506110708b611168565b925061107b8b611116565b9150509193959799909294969850565b611093611eac565b600061109d611eac565b60006110a7610ac7565b9250826040518059106110b75750595b90808252806020026020018201604052509150600090505b8281101561110f5760048054829081106110e557fe5b6000918252602090912001548282815181106110fd57fe5b602090810290910101526001016110cf565b5092915050565b600081815260056020526040902054600160a060020a031661113781611ad4565b151561114257600080fd5b919050565b600160a060020a031660009081526006602052604090205490565b60025481565b6000818152600b60205260408120600181015467ffffffffffffffff1682901161119157600080fd5b600181015467ffffffffffffffff1642108015906111b7575060006111b584611443565b115b91505b50919050565b600054600160a060020a031681565b600154600160a060020a031681565b6111e6611eac565b60408051908101604052600681527f42697441727400000000000000000000000000000000000000000000000000006020820152905090565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112b55780601f1061128a576101008083540402835291602001916112b5565b820191906000526020600020905b81548152906001019060200180831161129857829003601f168201915b505050505081565b60408051908101604052600a81527f42697447616c6c65727900000000000000000000000000000000000000000000602082015281565b6112fe3382611a8d565b151561130957600080fd5b61131282611ad4565b151561131d57600080fd5b610d8d338383611ae2565b6000805b611334610ac7565b8110156113c957826040518082805190602001908083835b6020831061136b5780518252601f19909201916020918201910161134c565b6001836020036101000a038019825116818451161790925250505091909101925060409150505190819003902060048054839081106113a657fe5b60009182526020909120015414156113c157600191506111ba565b60010161132c565b50600092915050565b600760205260009081526040902054600160a060020a031681565b3360006113f982611ad4565b151561140457600080fd5b61140e8284611ab4565b151561141957600080fd5b50600082815260056020526040902054600160a060020a0316610c28818385611ae2565b60035481565b6000818152600b6020526040808220906111b790829060c0905190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925260ff70010000000000000000000000000000000083048116606083015271010000000000000000000000000000000000830481166080830152609060020a90920490911660a0820152611bd7565b60005433600160a060020a039081169116146114fd57600080fd5b600083101561150b57600080fd5b62093a8083111561151b57600080fd5b6201518082101561152b57600080fd5b62278d0082111561153b57600080fd5b600181101561154957600080fd5b600581111561155757600080fd5b60088390556009829055600a8190557fe69f8fd4054d4231f941e78995aa6b652a1a26018c0f0c0e89987f07f1390c6683838360405180848152602001838152602001828152602001935050505060405180910390a1505050565b60005433600160a060020a039081169116146115cd57600080fd5b6115d5610eb1565b60018054600160a060020a0319169055565b600b602052600090815260409020805460019091015467ffffffffffffffff808216916801000000000000000081049091169060ff7001000000000000000000000000000000008204811691710100000000000000000000000000000000008104821691609060020a9091041686565b6000818152600b602052604081206001810154909190819081908190819067ffffffffffffffff1642101561168b57600080fd5b6117198660c060405190810160409081528254825260019092015467ffffffffffffffff8082166020840152680100000000000000008204169282019290925260ff70010000000000000000000000000000000083048116606083015271010000000000000000000000000000000000830481166080830152609060020a90920490911660a0820152611bd7565b9450348590101561172957600080fd5b600a546064908103860204935084340392506117458786611cca565b61174e87611116565b915033905061175e828289611ae2565b30600160a060020a031682600160a060020a03161415156117aa57600160a060020a03821684156108fc0285604051600060405180830381858888f1935050505015156117aa57600080fd5b7fb45b7a510d22eabde36919bed5551eccad687e7b55e2d2aa3033dc0786a9877b878684846040519384526020840192909252600160a060020a03908116604080850191909152911660608301526080909101905180910390a1600160a060020a03331683156108fc0284604051600060405180830381858888f19350505050151561183557600080fd5b50505050505050565b611846611eac565b6000805433600160a060020a0390811691161461186257600080fd5b66038d7ea4c6800083101561187657600080fd5b602060405190810160405280856040518082805190602001908083835b602083106118b25780518252601f199092019160209182019101611893565b6001836020036101000a03801982511681845116179092525050509190910192506040915050519081900390209052600480549193506001918083016118f88382611f3c565b6000928352602090922085910181519055500390507fca8605e5b2854022d4ef7e920a48b0c49ca69a8453970d922c3dd8b93057fa67818560405182815260406020820181815290820183818151815260200191508051906020019080838360005b8381101561197257808201518382015260200161195a565b50505050905090810190601f16801561199f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a16119b78582611ce7565b6119c18184611d2a565b5050505050565b60005433600160a060020a039081169116146119e357600080fd5b600160a060020a03811615156119f857600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008054600160a060020a031916600160a060020a0392909216919091179055565b60408051908101604052600681527f4269744172740000000000000000000000000000000000000000000000000000602082015281565b600090815260056020526040902054600160a060020a0390811691161490565b6003541590565b600090815260076020526040902054600160a060020a0391821691161490565b600160a060020a0316151590565b600160a060020a038381169083161415611afb57600080fd5b600160a060020a038216600081815260066020908152604080832080546001019055848352600590915290208054600160a060020a0319169091179055611b4183611ad4565b15611b8257600160a060020a03831660009081526006602090815260408083208054600019019055838352600790915290208054600160a060020a03191690555b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b60008060008060008060008060008960a0015160ff161115611c175760648960a0015160640360ff168a6000015102811515611c0f57fe5b049750611cbe565b6064896060015160ff168a5102811515611c2d57fe5b04965042896020015167ffffffffffffffff161115611c4e57869750611cbe565b886020015167ffffffffffffffff1642039550886020015189604001510367ffffffffffffffff1694506064896080015160ff168a5102811515611c8e57fe5b049350848610611ca057839750611cbe565b868403925084868402811515611cb257fe5b05915081870190508097505b50505050505050919050565b600060085442019050610c28838383600954850160c8606e611d3e565b600160a060020a0382161515611cfc57600080fd5b600081815260056020526040902054600160a060020a031615611d1e57600080fd5b610d8d60008383611ae2565b610d8d8282426009546008544201016064600a5b611d46611f60565b42851015611d5357600080fd5b84841015611d6057600080fd5b60008311611d6d57600080fd5b60008211611d7a57600080fd5b60c0604051908101604090815287825267ffffffffffffffff8088166020808501919091529087168284015260ff808716606085015285166080840152600060a084018190528a8152600b90915220909150819081518155602082015160018201805467ffffffffffffffff191667ffffffffffffffff9290921691909117905560408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160106101000a81548160ff021916908360ff16021790555060808201518160010160116101000a81548160ff021916908360ff16021790555060a08201516001909101805460ff92909216609060020a0272ff000000000000000000000000000000000000199092169190911790555050505050505050565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611eff57805160ff1916838001178555611f2c565b82800160010185558215611f2c579182015b82811115611f2c578251825591602001919060010190611f11565b50611f38929150611f95565b5090565b815481835581811511610c2857600083815260209020610c28918101908301611f95565b60c06040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a082015290565b6108e391905b80821115611f385760008155600101611f9b565b60005433600160a060020a03908116911614611fca57600080fd5b611fd2611aad565b1515611fdd57600080fd5b6002555600a165627a7a723058202d38690b3cb2f39fa03f8d20b1fc9f8b9b165fa01258d2bc3a6d7584ca9d3c3f0029
Swarm Source
bzzr://2d38690b3cb2f39fa03f8d20b1fc9f8b9b165fa01258d2bc3a6d7584ca9d3c3f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,004.17 | 0.00110033 | $2.21 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.