Contract Overview
Balance:
0.051 Ether
More Info
My Name Tag:
Not Available
[ Download CSV Export ]
Latest 4 internal transactions
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0xd8aad3e49b5e333e729501b7a766383f51ca2a05d148109e9326fe61b99eb2cd | 1100351 | 1719 days 21 hrs ago | 0xd275a265038c9ab985bc96a81aaabcceef8f57b9 | 0xf5136f6a8c2c8c559fd1468d81a3f7dc9d2dc26e | 0.008 Ether | ||
0xd8aad3e49b5e333e729501b7a766383f51ca2a05d148109e9326fe61b99eb2cd | 1100351 | 1719 days 21 hrs ago | 0xd275a265038c9ab985bc96a81aaabcceef8f57b9 | 0xf5136f6a8c2c8c559fd1468d81a3f7dc9d2dc26e | 0.001 Ether | ||
0xca8146bdd87b8e6ae4b4b349c01026a719ddf7c36f7e73f4e6cdfa725f30749e | 1100348 | 1719 days 21 hrs ago | 0xd275a265038c9ab985bc96a81aaabcceef8f57b9 | 0xf5136f6a8c2c8c559fd1468d81a3f7dc9d2dc26e | 0.4 Ether | ||
0xca8146bdd87b8e6ae4b4b349c01026a719ddf7c36f7e73f4e6cdfa725f30749e | 1100348 | 1719 days 21 hrs ago | 0xd275a265038c9ab985bc96a81aaabcceef8f57b9 | 0xf5136f6a8c2c8c559fd1468d81a3f7dc9d2dc26e | 0.05 Ether |
[ Download CSV Export ]
Contract Name:
ArtGallery
Compiler Version
v0.4.17+commit.bdeb9e52
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-10-16 */ pragma solidity 0.4.17; contract ArtGallery { /// LogPurchase is emitted when an artwork is purchased. event LogPurchase( address newOwner, uint256 purchaseAmount, uint numEdition ); /// PayoutOwner is emitted when an owner is paid. event PayoutOwner( address owner, uint256 purchaseAmount, uint numEdition ); /// PayoutArtist is emitted when an artist is paid. event PayoutArtist( address artist, uint256 purchaseAmount, uint numEdition ); /// curator is the contract owner. address public contractOwner; /// withdrawAddress is the cold-storage address. address private withdrawAddress; /// numArtworks is a counter for the number of artworks in the gallery. uint numArtworks; struct ArtWork { /// artist is the artwork's artist wallet. address artist; /// artistName is the artwork's artist name. string artistName; /// title is the name of the artwork. string title; /// title is the description of the artwork. string description; /// createdYear is the year the artwork was created. uint createdYear; /// artThumbHash is the IPFS hash of the artwork thumbnail. string artThumbHash; /// artHash is the IPFS hash of the artwork thumbnail. string artHash; /// numEditions is the number of number of editions. uint numEditions; /// artistHasSigned flags whether the artist has signed the artwork. bool artistHasSigned; /// editions is an array of all the artwork editions. /// getter function automatically created. mapping (uint => Edition) editions; } /// artworks is an array of all the artworks in the gallery.. /// getter function automatically created. mapping (uint => ArtWork) public artworks; /// Provenence is a data structure to track the purchase details of the artwork. struct Provenence { address owner; uint purchaseAmount; uint purchaseDate; } struct Edition { /// owner is the artwork owner. address owner; /// listingPrice is the value in wei that the artwork is on sale for. uint256 listingPrice; /// forSaleDate is the date at which the artwork is available for sale. /// Stored as seconds since epoch. uint forSaleDate; /// forSale flags whether the artwork is for sale. bool forSale; /// provenence is an array of all artwork purchases. Provenence[] provenence; } /// ownerShare is the percentage the owner of the artwork receives from a sale. uint32 private constant ownerShare = 80; /// artistShare is the percentage the artist of the artwork receives from a sale. uint32 private constant artistShare = 10; /// contractOwnerShare is the percentage the contract owner receives from a sale. uint32 private constant contractOwnerShare = 10; /// onlyOwner ensures only the artwork owner can execute a function. modifier onlyOwner(uint numArtwork, uint numEdition) { require(msg.sender == artworks[numArtwork].editions[numEdition].owner); _; } /// onlyContractOwner ensures only the contract owner can execute a function. modifier onlyContractOwner() { require(msg.sender == contractOwner); _; } /// onlyArtist ensures only the artwork artist can execute a function. modifier onlyArtist(uint numArtwork) { require(msg.sender == artworks[numArtwork].artist); _; } function ArtGallery(address _withdrawAddress) public { if (_withdrawAddress == address(0)) revert(); // Set the withdraw address. withdrawAddress = _withdrawAddress; // contractOwner is the contract creator contractOwner = msg.sender; numArtworks = 0; } function createArtwork(address _artist, string _artistName, string _title, string _description, uint _createdYear, string _artThumbHash, string _artHash, uint _numEditions) onlyContractOwner() public { if (_artist == address(0)) revert(); if (bytes(_artistName).length == 0) revert(); if (bytes(_title).length == 0) revert(); if (bytes(_description).length == 0) revert(); if (_createdYear == 0) revert(); if (bytes(_artThumbHash).length == 0) revert(); if (bytes(_artHash).length == 0) revert(); if (_numEditions < 1) revert(); artworks[numArtworks].artist = _artist; artworks[numArtworks].artistName = _artistName; artworks[numArtworks].title = _title; artworks[numArtworks].description = _description; artworks[numArtworks].createdYear = _createdYear; artworks[numArtworks].artThumbHash = _artThumbHash; artworks[numArtworks].artHash = _artHash; artworks[numArtworks].numEditions = _numEditions; artworks[numArtworks].artistHasSigned = false; // Create all editions for(uint i=0; i<artworks[numArtworks].numEditions; i++) { artworks[numArtworks].editions[i].owner = _artist; artworks[numArtworks].editions[i].listingPrice = 0; artworks[numArtworks].editions[i].forSaleDate = 0; artworks[numArtworks].editions[i].forSale = false; } numArtworks += 1; } /// If an artwork is for sale, process the purchase. function buy(uint numArtwork, uint numEdition) public payable returns (bool) { if (numArtwork < 0) revert(); if (numEdition < 0) revert(); if (artworks[numArtwork].editions[numEdition].forSale != true) revert(); if (artworks[numArtwork].artistHasSigned != true) revert(); if (msg.value < artworks[numArtwork].editions[numEdition].listingPrice) revert(); if (artworks[numArtwork].editions[numEdition].forSaleDate > now) revert(); uint256 artistAmount = msg.value / 100 * artistShare; uint256 ownerAmount = msg.value / 100 * ownerShare; // Send the artist their share if (!artworks[numArtwork].artist.send(artistAmount)) { revert(); } PayoutArtist(artworks[numArtwork].artist, msg.value, numEdition); // Send the current owner their share if (!artworks[numArtwork].editions[numEdition].owner.send(ownerAmount)) { revert(); } PayoutOwner(artworks[numArtwork].editions[numEdition].owner, msg.value, numEdition); // Artwork is no longer for sale artworks[numArtwork].editions[numEdition].forSale = false; artworks[numArtwork].editions[numEdition].forSaleDate = 0; artworks[numArtwork].editions[numEdition].listingPrice = 0; // Change ownership artworks[numArtwork].editions[numEdition].owner = msg.sender; artworks[numArtwork].editions[numEdition].provenence.push(Provenence({ owner: artworks[numArtwork].editions[numEdition].owner, purchaseAmount: msg.value, purchaseDate: now })); LogPurchase(msg.sender, msg.value, numEdition); return true; } /// listWorkForSale allows the artist to list the artwork for sale. function listWorkForSale(uint numArtwork, uint numEdition, uint256 _listingPrice, uint _forSaleDate) onlyOwner(numArtwork, numEdition) public returns (bool) { if (numArtwork < 0) revert(); if (numEdition < 0) revert(); if (_listingPrice <= 0) revert(); if (_forSaleDate <= 0) revert(); if (artworks[numArtwork].artistHasSigned != true) revert(); artworks[numArtwork].editions[numEdition].listingPrice = _listingPrice; artworks[numArtwork].editions[numEdition].forSaleDate = _forSaleDate; artworks[numArtwork].editions[numEdition].forSale = true; return artworks[numArtwork].editions[numEdition].forSale; } /// delistWorkForSale allows the artist to delist the artwork from sale. function delistWorkForSale(uint numArtwork, uint numEdition) onlyOwner(numArtwork, numEdition) public returns (bool) { if (numArtwork < 0) revert(); if (numEdition < 0) revert(); if (artworks[numArtwork].editions[numEdition].forSale != true) revert(); artworks[numArtwork].editions[numEdition].forSale = false; artworks[numArtwork].editions[numEdition].forSaleDate = 0; artworks[numArtwork].editions[numEdition].listingPrice = 0; return artworks[numArtwork].editions[numEdition].forSale; } /// signWork allows the artist to sign the work. function signWork(uint numArtwork) onlyArtist(numArtwork) public returns (bool) { if (numArtwork < 0) revert(); if (artworks[numArtwork].artistHasSigned) revert(); artworks[numArtwork].artistHasSigned = true; return artworks[numArtwork].artistHasSigned; } /// getSalesNum returns the number of purchases. function getSalesNum(uint numArtwork, uint numEdition) public constant returns (uint) { if (numArtwork < 0) revert(); if (numEdition < 0) revert(); return artworks[numArtwork].editions[numEdition].provenence.length; } /// getEdition returns the edition specific artwork details. function getEdition(uint numArtwork, uint numEdition) public constant returns (address, uint256, uint, bool) { if (numArtwork < 0) revert(); if (numEdition < 0) revert(); return ( artworks[numArtwork].editions[numEdition].owner, artworks[numArtwork].editions[numEdition].listingPrice, artworks[numArtwork].editions[numEdition].forSaleDate, artworks[numArtwork].editions[numEdition].forSale ); } /// getCheapestEditionForSale returns the ediiton for sale for the least amount of all editions. /// Note: Returns the edition number, not the index number. function getCheapestEditionForSale(uint numArtwork) public constant returns (uint, uint256) { if (numArtwork < 0) revert(); uint cheapestEdition = 0; uint256 cheapestAmount = 0; bool foundFirst = false; for(uint i=0; i<artworks[numArtwork].numEditions; i++) { if (artworks[numArtwork].editions[i].forSale) { if (!foundFirst) { cheapestEdition = i; cheapestAmount = artworks[numArtwork].editions[i].listingPrice; foundFirst = true; } if (artworks[numArtwork].editions[i].listingPrice < cheapestAmount) { cheapestEdition = i; cheapestAmount = artworks[numArtwork].editions[i].listingPrice; } } } if (cheapestAmount > 0) { return (cheapestEdition + 1, cheapestAmount); } else { return (0, 0); } } /// getProvenence returns the edition specific artwork details. function getProvenence(uint numArtwork, uint numEdition, uint provenenceId) public constant returns (address, uint256, uint) { if (numArtwork < 0) revert(); if (numEdition < 0) revert(); if (provenenceId < 0) revert(); return ( artworks[numArtwork].editions[numEdition].provenence[provenenceId].owner, artworks[numArtwork].editions[numEdition].provenence[provenenceId].purchaseAmount, artworks[numArtwork].editions[numEdition].provenence[provenenceId].purchaseDate ); } /// withdraw allows the contract owner to transfer out the contract balance. function withdraw() public onlyContractOwner() { withdrawAddress.transfer(this.balance); } /// Used for development. Remove for deployment. function destroy() public onlyContractOwner() { selfdestruct(withdrawAddress); } }
[{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"numArtwork","type":"uint256"},{"name":"numEdition","type":"uint256"}],"name":"getSalesNum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"numArtwork","type":"uint256"},{"name":"numEdition","type":"uint256"}],"name":"delistWorkForSale","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"numArtwork","type":"uint256"}],"name":"signWork","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"artworks","outputs":[{"name":"artist","type":"address"},{"name":"artistName","type":"string"},{"name":"title","type":"string"},{"name":"description","type":"string"},{"name":"createdYear","type":"uint256"},{"name":"artThumbHash","type":"string"},{"name":"artHash","type":"string"},{"name":"numEditions","type":"uint256"},{"name":"artistHasSigned","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"numArtwork","type":"uint256"},{"name":"numEdition","type":"uint256"},{"name":"_listingPrice","type":"uint256"},{"name":"_forSaleDate","type":"uint256"}],"name":"listWorkForSale","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"numArtwork","type":"uint256"},{"name":"numEdition","type":"uint256"},{"name":"provenenceId","type":"uint256"}],"name":"getProvenence","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"numArtwork","type":"uint256"}],"name":"getCheapestEditionForSale","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"numArtwork","type":"uint256"},{"name":"numEdition","type":"uint256"}],"name":"buy","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_artist","type":"address"},{"name":"_artistName","type":"string"},{"name":"_title","type":"string"},{"name":"_description","type":"string"},{"name":"_createdYear","type":"uint256"},{"name":"_artThumbHash","type":"string"},{"name":"_artHash","type":"string"},{"name":"_numEditions","type":"uint256"}],"name":"createArtwork","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"numArtwork","type":"uint256"},{"name":"numEdition","type":"uint256"}],"name":"getEdition","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_withdrawAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"},{"indexed":false,"name":"purchaseAmount","type":"uint256"},{"indexed":false,"name":"numEdition","type":"uint256"}],"name":"LogPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"purchaseAmount","type":"uint256"},{"indexed":false,"name":"numEdition","type":"uint256"}],"name":"PayoutOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"artist","type":"address"},{"indexed":false,"name":"purchaseAmount","type":"uint256"},{"indexed":false,"name":"numEdition","type":"uint256"}],"name":"PayoutArtist","type":"event"}]
Contract Creation Code
6060604052341561000f57600080fd5b6040516020806114c883398101604052808051915050600160a060020a038116151561003a57600080fd5b60018054600160a060020a03928316600160a060020a03199182161790915560008054339093169290911691909117815560025561144b8061007d6000396000f300606060405236156100c25763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633ccfd60b81146100c757806342b97086146100dc5780634369a55a1461010757806346053d31146101345780634b6026731461014a5780634c2c87a8146104035780637e3f84fa1461042257806383197ef014610474578063aba1262d14610487578063ce606ee0146104b5578063d6febde8146104e4578063defd803b146104f2578063e5807df514610664575b600080fd5b34156100d257600080fd5b6100da6106b3565b005b34156100e757600080fd5b6100f5600435602435610709565b60405190815260200160405180910390f35b341561011257600080fd5b61012060043560243561074b565b604051901515815260200160405180910390f35b341561013f57600080fd5b61012060043561080c565b341561015557600080fd5b610160600435610888565b604051600160a060020a038a1681526080810186905260e0810183905281151561010080830191909152610120602083018181528b54600260018216159094026000190116929092049083018190526040830190606084019060a085019060c08601906101408701908f9080156102185780601f106101ed57610100808354040283529160200191610218565b820191906000526020600020905b8154815290600101906020018083116101fb57829003601f168201915b505086810385528d54600260001961010060018416150201909116048082526020909101908e90801561028c5780601f106102615761010080835404028352916020019161028c565b820191906000526020600020905b81548152906001019060200180831161026f57829003601f168201915b505086810384528c54600260001961010060018416150201909116048082526020909101908d9080156103005780601f106102d557610100808354040283529160200191610300565b820191906000526020600020905b8154815290600101906020018083116102e357829003601f168201915b505086810383528a54600260001961010060018416150201909116048082526020909101908b9080156103745780601f1061034957610100808354040283529160200191610374565b820191906000526020600020905b81548152906001019060200180831161035757829003601f168201915b505086810382528954600260001961010060018416150201909116048082526020909101908a9080156103e85780601f106103bd576101008083540402835291602001916103e8565b820191906000526020600020905b8154815290600101906020018083116103cb57829003601f168201915b50509e50505050505050505050505050505060405180910390f35b341561040e57600080fd5b6101206004356024356044356064356108d6565b341561042d57600080fd5b61043e6004356024356044356109b0565b6040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390f35b341561047f57600080fd5b6100da610aa7565b341561049257600080fd5b61049d600435610ad0565b60405191825260208201526040908101905180910390f35b34156104c057600080fd5b6104c8610be6565b604051600160a060020a03909116815260200160405180910390f35b610120600435602435610bf5565b34156104fd57600080fd5b6100da60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496505093359350610fc492505050565b341561066f57600080fd5b61067d6004356024356112ac565b604051600160a060020a039094168452602084019290925260408084019190915290151560608301526080909101905180910390f35b60005433600160a060020a039081169116146106ce57600080fd5b600154600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561070757600080fd5b565b60008083101561071857600080fd5b600082101561072657600080fd5b5060009182526003602090815260408084209284526009909201905290206004015490565b60008281526003602090815260408083208484526009019091528120548390839033600160a060020a0390811691161461078457600080fd5b600085101561079257600080fd5b60008410156107a057600080fd5b6000858152600360208181526040808420888552600901909152909120015460ff1615156001146107d057600080fd5b505050600091825260036020818152604080852093855260099093019052908220908101805460ff191690556002810182905560010181905590565b600081815260036020526040812054829033600160a060020a0390811691161461083557600080fd5b600083101561084357600080fd5b60008381526003602052604090206008015460ff161561086257600080fd5b50506000908152600360205260409020600801805460ff19166001179081905560ff1690565b60036020819052600091825260409091208054600482015460078301546008840154600160a060020a0390931694600185019460028101949181019392600582019260069092019160ff1689565b60008481526003602090815260408083208684526009019091528120548590859033600160a060020a0390811691161461090f57600080fd5b600087101561091d57600080fd5b600086101561092b57600080fd5b6000851161093857600080fd5b6000841161094557600080fd5b60008781526003602052604090206008015460ff16151560011461096857600080fd5b5050506000938452600360208181526040808720958752600990950190529290932060018082019290925560028101939093559101805460ff19169091179081905560ff1690565b6000806000808610156109c257600080fd5b60008510156109d057600080fd5b60008410156109de57600080fd5b60008681526003602090815260408083208884526009019091529020600401805485908110610a0957fe5b600091825260208083206003928302015489845291815260408084208985526009019091529091206004018054600160a060020a039092169186908110610a4c57fe5b60009182526020808320600392830201600101548a845291815260408084208a8552600901909152909120600401805487908110610a8657fe5b90600052602060002090600302016002015492509250925093509350939050565b60005433600160a060020a03908116911614610ac257600080fd5b600154600160a060020a0316ff5b6000806000806000806000871015610ae757600080fd5b5060009250829150819050805b600087815260036020526040902060070154811015610bbe576000878152600360208181526040808420858552600901909152909120015460ff1615610bb657811515610b6757600087815260036020908152604080832084845260090190915290206001908101549194509092509050825b600087815260036020908152604080832084845260090190915290206001015483901015610bb65760008781526003602090815260408083208484526009019091529020600101549093509150825b600101610af4565b6000831115610bd557836001018395509550610bdd565b600095508594505b50505050915091565b600054600160a060020a031681565b600080600080851015610c0757600080fd5b6000841015610c1557600080fd5b6000858152600360208181526040808420888552600901909152909120015460ff161515600114610c4557600080fd5b60008581526003602052604090206008015460ff161515600114610c6857600080fd5b6000858152600360209081526040808320878452600901909152902060010154341015610c9457600080fd5b600085815260036020908152604080832087845260090190915290206002015442901115610cc157600080fd5b5050600083815260036020526040908190205460643404600a810292605090910291600160a060020a0316906108fc84150290849051600060405180830381858888f193505050501515610d1457600080fd5b60008581526003602052604090819020547f59890e293b9354303662ffa4934ca554287201497d5fd9b7b853004d72ab009f91600160a060020a039091169034908790518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160008581526003602090815260408083208784526009019091529081902054600160a060020a03169082156108fc0290839051600060405180830381858888f193505050501515610dda57600080fd5b600085815260036020908152604080832087845260090190915290819020547fd059640b7955aad4da0a0cd04fe0d7cb198f875a72df36ec1d6592d4379bf16a91600160a060020a039091169034908790518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a160008581526003602081815260408084208885526009019091528220908101805460ff1916905560028101829055600180820192909255805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a0316178155600401805490918101610ece8382611314565b916000526020600020906003020160006060604051908101604090815260008a8152600360209081528282208b835260090181529082902054600160a060020a03168352349083015242908201529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201518160010155604082015181600201555050507fc36ff72519d1e8a9f1f0f449ae2c45d8be882e5686a23704a81b4f591841c1cc3334866040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a1506001949350505050565b6000805433600160a060020a03908116911614610fe057600080fd5b600160a060020a0389161515610ff557600080fd5b8751151561100257600080fd5b8651151561100f57600080fd5b8551151561101c57600080fd5b84151561102857600080fd5b8351151561103557600080fd5b8251151561104257600080fd5b600182101561105057600080fd5b60028054600090815260036020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038e1617905591548152206001018880516110a2929160200190611345565b50600280546000908152600360205260409020018780516110c7929160200190611345565b506002546000908152600360208190526040909120018680516110ee929160200190611345565b50600280546000908152600360205260408082206004018890559154815220600501848051611121929160200190611345565b506002546000908152600360205260409020600601838051611147929160200190611345565b50506002805460009081526003602052604080822060070184905591548152908120600801805460ff191690555b6002546000908152600360205260409020600701548110156112985788600360006002548152602001908152602001600020600901600083815260200190815260200160002060000160006101000a815481600160a060020a030219169083600160a060020a03160217905550600060036000600254815260200190815260200160002060090160008381526020019081526020016000206001018190555060006003600060025481526020019081526020016000206009016000838152602001908152602001600020600201819055506000600360006002548152602001908152602001600020600901600083815260200190815260200160002060030160006101000a81548160ff0219169083151502179055508080600101915050611175565b505060028054600101905550505050505050565b60008060008060008610156112c057600080fd5b60008510156112ce57600080fd5b5050506000928352506003602081815260408085209385526009909301905291208054600182015460028301549290930154600160a060020a039091169360ff90911690565b8154818355818115116113405760030281600302836000526020600020918201910161134091906113c3565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061138657805160ff19168380011785556113b3565b828001600101855582156113b3579182015b828111156113b3578251825591602001919060010190611398565b506113bf929150611405565b5090565b61140291905b808211156113bf57805473ffffffffffffffffffffffffffffffffffffffff1916815560006001820181905560028201556003016113c9565b90565b61140291905b808211156113bf576000815560010161140b5600a165627a7a723058208e45d4834df2424b645fa76df4f5779ee790f44dcd92036288939f7b15e6e8800029000000000000000000000000b659225621bef60ac15ef0e7d2f79c3647b40315
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b659225621bef60ac15ef0e7d2f79c3647b40315
-----Decoded View---------------
Arg [0] : _withdrawAddress (address): 0xb659225621bef60ac15ef0e7d2f79c3647b40315
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b659225621bef60ac15ef0e7d2f79c3647b40315
Swarm Source
bzzr://8e45d4834df2424b645fa76df4f5779ee790f44dcd92036288939f7b15e6e880
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.