Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 52 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 12058701 | 1769 days ago | IN | 0 ETH | 0.00783965 | ||||
| Create Edition | 6296318 | 2690 days ago | IN | 0 ETH | 0.00248454 | ||||
| Create Edition | 5874176 | 2761 days ago | IN | 0 ETH | 0.00383962 | ||||
| Create Edition | 5869605 | 2762 days ago | IN | 0 ETH | 0.008274 | ||||
| Create Edition | 5868576 | 2762 days ago | IN | 0 ETH | 0.0041409 | ||||
| Create Edition | 5863813 | 2763 days ago | IN | 0 ETH | 0.00076792 | ||||
| Create Edition | 5857940 | 2764 days ago | IN | 0 ETH | 0.0008274 | ||||
| Create Edition | 5817964 | 2771 days ago | IN | 0 ETH | 0.00384012 | ||||
| Create Edition | 5817962 | 2771 days ago | IN | 0 ETH | 0.0041409 | ||||
| Create Edition | 5817950 | 2771 days ago | IN | 0 ETH | 0.00383962 | ||||
| Create Edition | 5811813 | 2772 days ago | IN | 0 ETH | 0.0008274 | ||||
| Create Edition | 5807342 | 2773 days ago | IN | 0 ETH | 0.0008274 | ||||
| Create Edition | 5782496 | 2777 days ago | IN | 0 ETH | 0.00268773 | ||||
| Create Edition | 5782105 | 2777 days ago | IN | 0 ETH | 0.0017298 | ||||
| Create Edition | 5776739 | 2778 days ago | IN | 0 ETH | 0.0016548 | ||||
| Create Edition | 5760289 | 2781 days ago | IN | 0 ETH | 0.00192176 | ||||
| Create Edition | 5754486 | 2782 days ago | IN | 0 ETH | 0.00207045 | ||||
| Create Edition | 5754338 | 2782 days ago | IN | 0 ETH | 0.00191981 | ||||
| Create Edition | 5751037 | 2783 days ago | IN | 0 ETH | 0.0034976 | ||||
| Create Edition | 5748976 | 2783 days ago | IN | 0 ETH | 0.0049644 | ||||
| Create Edition | 5748674 | 2783 days ago | IN | 0 ETH | 0.00304442 | ||||
| Create Edition | 5748553 | 2783 days ago | IN | 0 ETH | 0.00268773 | ||||
| Create Edition | 5748544 | 2783 days ago | IN | 0 ETH | 0.00381017 | ||||
| Create Edition | 5745141 | 2784 days ago | IN | 0 ETH | 0.00207045 | ||||
| Create Edition | 5743821 | 2784 days ago | IN | 0 ETH | 0.00886566 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BitpaintingEditions
Compiler Version
v0.4.15+commit.bbb8e64f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-05-29
*/
pragma solidity ^0.4.15;
// File: contracts/interfaces/IEditions.sol
contract IEditions {
function createEdition(uint _tokenId) external;
function pendingEditionsOf(address _of) public constant returns (
uint[] tokens,
uint[] startedAt,
uint[] completedAt,
uint8[] currentCounts,
uint8[] limitCounts
);
function counter(uint _tokenId) public
constant returns (uint8 current, uint8 limit);
function signature() external constant returns (uint _signature);
}
// File: contracts/interfaces/IStorage.sol
contract IStorage {
function isOwner(address _address) public constant returns (bool);
function isAllowed(address _address) external constant returns (bool);
function developer() public constant returns (address);
function setDeveloper(address _address) public;
function addAdmin(address _address) public;
function isAdmin(address _address) public constant returns (bool);
function removeAdmin(address _address) public;
function contracts(uint _signature) public returns (address _address);
function exists(uint _tokenId) external constant returns (bool);
function paintingsCount() public constant returns (uint);
function increaseOwnershipTokenCount(address _address) public;
function decreaseOwnershipTokenCount(address _address) public;
function setOwnership(uint _tokenId, address _address) public;
function getPainting(uint _tokenId)
external constant returns (address, uint, uint, uint, uint8, uint8);
function createPainting(
address _owner,
uint _tokenId,
uint _parentId,
uint8 _generation,
uint8 _speed,
uint _artistId,
uint _releasedAt) public;
function approve(uint _tokenId, address _claimant) external;
function isApprovedFor(uint _tokenId, address _claimant)
external constant returns (bool);
function createEditionMeta(uint _tokenId) public;
function getPaintingOwner(uint _tokenId)
external constant returns (address);
function getPaintingGeneration(uint _tokenId)
public constant returns (uint8);
function getPaintingSpeed(uint _tokenId)
external constant returns (uint8);
function getPaintingArtistId(uint _tokenId)
public constant returns (uint artistId);
function getOwnershipTokenCount(address _address)
external constant returns (uint);
function isReady(uint _tokenId) public constant returns (bool);
function getPaintingIdAtIndex(uint _index) public constant returns (uint);
function lastEditionOf(uint _index) public constant returns (uint);
function getPaintingOriginal(uint _tokenId)
external constant returns (uint);
function canBeBidden(uint _tokenId) public constant returns (bool _can);
function addAuction(
uint _tokenId,
uint _startingPrice,
uint _endingPrice,
uint _duration,
address _seller) public;
function addReleaseAuction(
uint _tokenId,
uint _startingPrice,
uint _endingPrice,
uint _startedAt,
uint _duration) public;
function initAuction(
uint _tokenId,
uint _startingPrice,
uint _endingPrice,
uint _startedAt,
uint _duration,
address _seller,
bool _byTeam) public;
function _isOnAuction(uint _tokenId) internal constant returns (bool);
function isOnAuction(uint _tokenId) external constant returns (bool);
function removeAuction(uint _tokenId) public;
function getAuction(uint256 _tokenId)
external constant returns (
address seller,
uint256 startingPrice,
uint256 endingPrice,
uint256 duration,
uint256 startedAt);
function getAuctionSeller(uint256 _tokenId)
public constant returns (address);
function getAuctionEnd(uint _tokenId)
public constant returns (uint);
function canBeCanceled(uint _tokenId) external constant returns (bool);
function getAuctionsCount() public constant returns (uint);
function getTokensOnAuction() public constant returns (uint[]);
function getTokenIdAtIndex(uint _index) public constant returns (uint);
function getAuctionStartedAt(uint256 _tokenId) public constant returns (uint);
function getOffsetIndex() public constant returns (uint);
function nextOffsetIndex() public returns (uint);
function canCreateEdition(uint _tokenId, uint8 _generation)
public constant returns (bool);
function isValidGeneration(uint8 _generation)
public constant returns (bool);
function increaseGenerationCount(uint _tokenId, uint8 _generation) public;
function getEditionsCount(uint _tokenId) external constant returns (uint8[3]);
function setLastEditionOf(uint _tokenId, uint _editionId) public;
function setEditionLimits(uint _tokenId, uint8 _gen1, uint8 _gen2, uint8 _gen3) public;
function getEditionLimits(uint _tokenId) external constant returns (uint8[3]);
function hasEditionInProgress(uint _tokenId) external constant returns (bool);
function hasEmptyEditionSlots(uint _tokenId) external constant returns (bool);
function setPaintingName(uint _tokenId, string _name) public;
function setPaintingArtist(uint _tokenId, string _name) public;
function purgeInformation(uint _tokenId) public;
function resetEditionLimits(uint _tokenId) public;
function resetPainting(uint _tokenId) public;
function decreaseSpeed(uint _tokenId) public;
function isCanceled(uint _tokenId) public constant returns (bool _is);
function totalPaintingsCount() public constant returns (uint _total);
function isSecondary(uint _tokenId) public constant returns (bool _is);
function secondarySaleCut() public constant returns (uint8 _cut);
function sealForChanges(uint _tokenId) public;
function canBeChanged(uint _tokenId) public constant returns (bool _can);
function getPaintingName(uint _tokenId) public constant returns (string);
function getPaintingArtist(uint _tokenId) public constant returns (string);
function signature() external constant returns (bytes4);
}
// File: contracts/libs/Ownable.sol
/**
* @title Ownable
* @dev Manages ownership of the contracts
*/
contract Ownable {
address public owner;
function Ownable() public {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
function isOwner(address _address) public constant returns (bool) {
return _address == owner;
}
function transferOwnership(address newOwner) external onlyOwner {
require(newOwner != address(0));
owner = newOwner;
}
}
// File: contracts/libs/Pausable.sol
/**
* @title Pausable
* @dev Base contract which allows children to implement an emergency stop mechanism.
*/
contract Pausable is Ownable {
event Pause();
event Unpause();
bool public paused = false;
/**
* @dev modifier to allow actions only when the contract IS paused
*/
modifier whenNotPaused() {
require(!paused);
_;
}
/**
* @dev modifier to allow actions only when the contract IS NOT paused
*/
modifier whenPaused {
require(paused);
_;
}
/**
* @dev called by the owner to pause, triggers stopped state
*/
function _pause() internal whenNotPaused {
paused = true;
Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function _unpause() internal whenPaused {
paused = false;
Unpause();
}
}
// File: contracts/libs/BitpaintingBase.sol
contract BitpaintingBase is Pausable {
/*** EVENTS ***/
event Create(uint _tokenId,
address _owner,
uint _parentId,
uint8 _generation,
uint _createdAt,
uint _completedAt);
event Transfer(address from, address to, uint256 tokenId);
IStorage public bitpaintingStorage;
modifier canPauseUnpause() {
require(msg.sender == owner || msg.sender == bitpaintingStorage.developer());
_;
}
function setBitpaintingStorage(address _address) public onlyOwner {
require(_address != address(0));
bitpaintingStorage = IStorage(_address);
}
/**
* @dev called by the owner to pause, triggers stopped state
*/
function pause() public canPauseUnpause whenNotPaused {
super._pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function unpause() external canPauseUnpause whenPaused {
super._unpause();
}
function canUserReleaseArtwork(address _address)
public constant returns (bool _can) {
return (bitpaintingStorage.isOwner(_address)
|| bitpaintingStorage.isAdmin(_address)
|| bitpaintingStorage.isAllowed(_address));
}
function canUserCancelArtwork(address _address)
public constant returns (bool _can) {
return (bitpaintingStorage.isOwner(_address)
|| bitpaintingStorage.isAdmin(_address));
}
modifier canReleaseArtwork() {
require(canUserReleaseArtwork(msg.sender));
_;
}
modifier canCancelArtwork() {
require(canUserCancelArtwork(msg.sender));
_;
}
/// @dev Assigns ownership of a specific Painting to an address.
function _transfer(address _from, address _to, uint256 _tokenId)
internal {
bitpaintingStorage.setOwnership(_tokenId, _to);
Transfer(_from, _to, _tokenId);
}
function _createOriginalPainting(uint _tokenId, uint _artistId, uint _releasedAt) internal {
address _owner = owner;
uint _parentId = 0;
uint8 _generation = 0;
uint8 _speed = 10;
_createPainting(_owner, _tokenId, _parentId, _generation, _speed, _artistId, _releasedAt);
}
function _createPainting(
address _owner,
uint _tokenId,
uint _parentId,
uint8 _generation,
uint8 _speed,
uint _artistId,
uint _releasedAt
)
internal
{
require(_tokenId == uint256(uint32(_tokenId)));
require(_parentId == uint256(uint32(_parentId)));
require(_generation == uint256(uint8(_generation)));
bitpaintingStorage.createPainting(
_owner, _tokenId, _parentId, _generation, _speed, _artistId, _releasedAt);
uint _createdAt;
uint _completedAt;
(,,_createdAt, _completedAt,,) = bitpaintingStorage.getPainting(_tokenId);
// emit the create event
Create(
_tokenId,
_owner,
_parentId,
_generation,
_createdAt,
_completedAt
);
// This will assign ownership, and also emit the Transfer event as
// per ERC721 draft
_transfer(0, _owner, _tokenId);
}
}
// File: contracts/libs/ERC721.sol
/// @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 totalSupply() public constant returns (uint256 total);
function balanceOf(address _owner) public constant returns (uint256 balance);
function ownerOf(uint256 _tokenId) external constant returns (address owner);
function approve(address _to, uint256 _tokenId) external;
function transfer(address _to, uint256 _tokenId) external;
function transferFrom(address _from, address _to, uint256 _tokenId) external;
// Events
event Transfer(address from, address to, uint256 tokenId);
event Approval(address owner, address approved, uint256 tokenId);
// Optional
// function name() public view returns (string name);
// function symbol() public view returns (string symbol);
// function tokensOfOwner(address _owner) external view returns (uint256[] tokenIds);
// function tokenMetadata(uint256 _tokenId, string _preferredTransport) public view returns (string infoUrl);
// ERC-165 Compatibility (https://github.com/ethereum/EIPs/issues/165)
function supportsInterface(bytes4 _interfaceID) external constant returns (bool);
}
// File: contracts/libs/ERC721Metadata.sol
/// @title The external contract that is responsible for generating metadata for the kitties,
/// it has one function that will return the data as bytes.
contract ERC721Metadata {
/// @dev Given a token Id, returns a byte array that is supposed to be converted into string.
function getMetadata(uint256 _tokenId, string) public constant returns (bytes32[4] buffer, uint256 count) {
if (_tokenId == 1) {
buffer[0] = "Hello World! :D";
count = 15;
} else if (_tokenId == 2) {
buffer[0] = "I would definitely choose a medi";
buffer[1] = "um length string.";
count = 49;
} else if (_tokenId == 3) {
buffer[0] = "Lorem ipsum dolor sit amet, mi e";
buffer[1] = "st accumsan dapibus augue lorem,";
buffer[2] = " tristique vestibulum id, libero";
buffer[3] = " suscipit varius sapien aliquam.";
count = 128;
}
}
}
// File: contracts/libs/PaintingOwnership.sol
contract PaintingOwnership is BitpaintingBase, ERC721 {
/// @notice Name and symbol of the non fungible token, as defined in ERC721.
string public constant name = "BitPaintings";
string public constant symbol = "BP";
ERC721Metadata public erc721Metadata;
bytes4 constant InterfaceSignature_ERC165 =
bytes4(keccak256('supportsInterface(bytes4)'));
bytes4 constant InterfaceSignature_ERC721 =
bytes4(keccak256('name()')) ^
bytes4(keccak256('symbol()')) ^
bytes4(keccak256('totalSupply()')) ^
bytes4(keccak256('balanceOf(address)')) ^
bytes4(keccak256('ownerOf(uint256)')) ^
bytes4(keccak256('approve(address,uint256)')) ^
bytes4(keccak256('transfer(address,uint256)')) ^
bytes4(keccak256('transferFrom(address,address,uint256)')) ^
bytes4(keccak256('tokensOfOwner(address)')) ^
bytes4(keccak256('tokenMetadata(uint256,string)'));
/// @notice Introspection interface as per ERC-165 (https://github.com/ethereum/EIPs/issues/165).
/// Returns true for any standardized interfaces implemented by this contract. We implement
/// ERC-165 (obviously!) and ERC-721.
function supportsInterface(bytes4 _interfaceID) external constant returns (bool)
{
// DEBUG ONLY
//require((InterfaceSignature_ERC165 == 0x01ffc9a7) && (InterfaceSignature_ERC721 == 0x9a20483d));
return ((_interfaceID == InterfaceSignature_ERC165) || (_interfaceID == InterfaceSignature_ERC721));
}
/// @dev Set the address of the sibling contract that tracks metadata.
/// CEO only.
function setMetadataAddress(address _contractAddress) public onlyOwner {
erc721Metadata = ERC721Metadata(_contractAddress);
}
function _owns(address _claimant, uint256 _tokenId) internal constant returns (bool) {
return bitpaintingStorage.getPaintingOwner(_tokenId) == _claimant;
}
function balanceOf(address _owner) public constant returns (uint256 count) {
return bitpaintingStorage.getOwnershipTokenCount(_owner);
}
function _approve(uint256 _tokenId, address _approved) internal {
bitpaintingStorage.approve(_tokenId, _approved);
}
function _approvedFor(address _claimant, uint256 _tokenId)
internal constant returns (bool) {
return bitpaintingStorage.isApprovedFor(_tokenId, _claimant);
}
function transfer(
address _to,
uint256 _tokenId
)
external
whenNotPaused
{
require(_to != address(0));
require(_to != address(this));
require(_owns(msg.sender, _tokenId));
_transfer(msg.sender, _to, _tokenId);
}
function approve(
address _to,
uint256 _tokenId
)
external
whenNotPaused
{
require(_owns(msg.sender, _tokenId));
_approve(_tokenId, _to);
Approval(msg.sender, _to, _tokenId);
}
function transferFrom(
address _from,
address _to,
uint256 _tokenId
)
external whenNotPaused {
_transferFrom(_from, _to, _tokenId);
}
function _transferFrom(
address _from,
address _to,
uint256 _tokenId
)
internal
whenNotPaused
{
require(_to != address(0));
require(_to != address(this));
require(_approvedFor(msg.sender, _tokenId));
require(_owns(_from, _tokenId));
_transfer(_from, _to, _tokenId);
}
function totalSupply() public constant returns (uint) {
return bitpaintingStorage.paintingsCount();
}
function ownerOf(uint256 _tokenId)
external constant returns (address) {
return _ownerOf(_tokenId);
}
function _ownerOf(uint256 _tokenId)
internal constant returns (address) {
return bitpaintingStorage.getPaintingOwner(_tokenId);
}
function tokensOfOwner(address _owner)
external constant returns(uint256[]) {
uint256 tokenCount = balanceOf(_owner);
if (tokenCount == 0) {
return new uint256[](0);
}
uint256[] memory result = new uint256[](tokenCount);
uint256 totalCats = totalSupply();
uint256 resultIndex = 0;
uint256 paintingId;
for (paintingId = 1; paintingId <= totalCats; paintingId++) {
if (bitpaintingStorage.getPaintingOwner(paintingId) == _owner) {
result[resultIndex] = paintingId;
resultIndex++;
}
}
return result;
}
/// @dev Adapted from memcpy() by @arachnid (Nick Johnson <[email protected]>)
/// This method is licenced under the Apache License.
/// Ref: https://github.com/Arachnid/solidity-stringutils/blob/2f6ca9accb48ae14c66f1437ec50ed19a0616f78/strings.sol
function _memcpy(uint _dest, uint _src, uint _len) private constant {
// Copy word-length chunks while possible
for(; _len >= 32; _len -= 32) {
assembly {
mstore(_dest, mload(_src))
}
_dest += 32;
_src += 32;
}
// Copy remaining bytes
uint256 mask = 256 ** (32 - _len) - 1;
assembly {
let srcpart := and(mload(_src), not(mask))
let destpart := and(mload(_dest), mask)
mstore(_dest, or(destpart, srcpart))
}
}
/// @dev Adapted from toString(slice) by @arachnid (Nick Johnson <[email protected]>)
/// This method is licenced under the Apache License.
/// Ref: https://github.com/Arachnid/solidity-stringutils/blob/2f6ca9accb48ae14c66f1437ec50ed19a0616f78/strings.sol
function _toString(bytes32[4] _rawBytes, uint256 _stringLength) private constant returns (string) {
var outputString = new string(_stringLength);
uint256 outputPtr;
uint256 bytesPtr;
assembly {
outputPtr := add(outputString, 32)
bytesPtr := _rawBytes
}
_memcpy(outputPtr, bytesPtr, _stringLength);
return outputString;
}
/// @notice Returns a URI pointing to a metadata package for this token conforming to
/// ERC-721 (https://github.com/ethereum/EIPs/issues/721)
/// @param _tokenId The ID number of the Kitty whose metadata should be returned.
function tokenMetadata(uint256 _tokenId, string _preferredTransport) external constant returns (string infoUrl) {
require(erc721Metadata != address(0));
bytes32[4] memory buffer;
uint256 count;
(buffer, count) = erc721Metadata.getMetadata(_tokenId, _preferredTransport);
return _toString(buffer, count);
}
function withdraw() external onlyOwner {
owner.transfer(this.balance);
}
}
// File: contracts/BitpaintingEditions.sol
contract BitpaintingEditions is PaintingOwnership, IEditions {
event EditionCreated(
address creator,
uint parentId,
uint editionId,
uint8 parentSpeed);
function createEdition(uint _tokenId) external whenNotPaused {
address creator = msg.sender;
require(creator == _ownerOf(_tokenId));
require(bitpaintingStorage.isReady(_tokenId));
require(!bitpaintingStorage.hasEditionInProgress(_tokenId));
require(bitpaintingStorage.hasEmptyEditionSlots(_tokenId));
require(!bitpaintingStorage.isOnAuction(_tokenId));
bitpaintingStorage.createEditionMeta(_tokenId);
uint editionId = bitpaintingStorage.getOffsetIndex();
uint8 _generation =
bitpaintingStorage.getPaintingGeneration(_tokenId) + 1;
uint8 _speed = 10;
uint _artistId = bitpaintingStorage.getPaintingArtistId(_tokenId);
_createPainting(creator, editionId, _tokenId, _generation, _speed, _artistId, now + 1);
bitpaintingStorage.decreaseSpeed(_tokenId);
uint8 speed = bitpaintingStorage.getPaintingSpeed(_tokenId);
EditionCreated(creator, _tokenId, editionId, speed);
}
function pendingEditionsOf(address _of) public constant returns (
uint[] tokens,
uint[] startedAt,
uint[] completedAt,
uint8[] currentCounts,
uint8[] limitCounts
) {
uint tokenCount = totalSupply();
uint length = balanceOf(_of);
uint pointer;
tokens = new uint[](length);
startedAt = new uint[](length);
completedAt = new uint[](length);
currentCounts = new uint8[](length);
limitCounts = new uint8[](length);
for(uint index = 0; index < tokenCount; index++) {
uint tokenId = bitpaintingStorage.getPaintingIdAtIndex(index);
if (tokenId == 0) {
continue;
}
if (_ownerOf(tokenId) != _of) {
continue;
}
if (bitpaintingStorage.isReady(tokenId)) {
continue;
}
uint _startedAt;
uint _completedAt;
(,,_startedAt, _completedAt,,) = bitpaintingStorage.getPainting(tokenId);
uint8 _current;
uint8 _limit;
(_current, _limit) = counter(tokenId);
tokens[pointer] = tokenId;
startedAt[pointer] = _startedAt;
completedAt[pointer] = _completedAt;
currentCounts[pointer] = _current;
limitCounts[pointer] = _limit;
pointer++;
}
}
function counter(uint _tokenId) public
constant returns (uint8 current, uint8 limit) {
uint8 gen = bitpaintingStorage.getPaintingGeneration(_tokenId);
if (gen == 0) {
current = 1;
limit = 1;
} else {
uint original = bitpaintingStorage.getPaintingOriginal(_tokenId);
uint8[3] memory counts = bitpaintingStorage.getEditionsCount(original);
uint8[3] memory limits = bitpaintingStorage.getEditionLimits(original);
current = counts[gen - 1];
limit = limits[gen - 1];
}
}
function signature() external constant returns (uint _signature) {
return uint(keccak256("editions"));
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"_interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_preferredTransport","type":"string"}],"name":"tokenMetadata","outputs":[{"name":"infoUrl","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"}],"name":"pendingEditionsOf","outputs":[{"name":"tokens","type":"uint256[]"},{"name":"startedAt","type":"uint256[]"},{"name":"completedAt","type":"uint256[]"},{"name":"currentCounts","type":"uint8[]"},{"name":"limitCounts","type":"uint8[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"bitpaintingStorage","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"canUserCancelArtwork","outputs":[{"name":"_can","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"createEdition","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setBitpaintingStorage","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"signature","outputs":[{"name":"_signature","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"count","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"canUserReleaseArtwork","outputs":[{"name":"_can","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"counter","outputs":[{"name":"current","type":"uint8"},{"name":"limit","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"erc721Metadata","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_contractAddress","type":"address"}],"name":"setMetadataAddress","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"creator","type":"address"},{"indexed":false,"name":"parentId","type":"uint256"},{"indexed":false,"name":"editionId","type":"uint256"},{"indexed":false,"name":"parentSpeed","type":"uint8"}],"name":"EditionCreated","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":false,"name":"_tokenId","type":"uint256"},{"indexed":false,"name":"_owner","type":"address"},{"indexed":false,"name":"_parentId","type":"uint256"},{"indexed":false,"name":"_generation","type":"uint8"},{"indexed":false,"name":"_createdAt","type":"uint256"},{"indexed":false,"name":"_completedAt","type":"uint256"}],"name":"Create","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"}]Contract Creation Code
60606040526000805460a060020a60ff02191690555b60008054600160a060020a03191633600160a060020a03161790555b5b61277f806100416000396000f3006060604052361561014e5763ffffffff60e060020a60003504166301ffc9a781146101535780630560ff441461019f57806306fdde0314610239578063095ea7b3146102c457806312610b5b146102e8578063179047431461047457806318160ddd146104a357806323b872dd146104c8578063290b3cb7146104f25780632f54bf6e14610525578063330cbc7514610558578063362f29c9146105705780633ccfd60b146105915780633f4ba83a146105a657806351ff4847146105bb5780635c975abb146105e05780636352211e1461060757806370a08231146106395780638456cb591461066a5780638462151c1461067f5780638da5cb5b146106f257806395d89b4114610721578063a9059cbb146107ac578063aad9973f146107d0578063b1f525c614610803578063bc4006f514610837578063e17b25af14610866578063f2fde38b14610887575b600080fd5b341561015e57600080fd5b61018b7fffffffff00000000000000000000000000000000000000000000000000000000600435166108a8565b604051901515815260200160405180910390f35b34156101aa57600080fd5b6101c1600480359060248035908101910135610b2f565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101fe5780820151818401525b6020016101e5565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561024457600080fd5b6101c1610c0e565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101fe5780820151818401525b6020016101e5565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102cf57600080fd5b6102e6600160a060020a0360043516602435610c45565b005b34156102f357600080fd5b610307600160a060020a0360043516610cd1565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b838110156103585780820151818401525b60200161033f565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b838110156103985780820151818401525b60200161037f565b50505050905001868103845289818151815260200191508051906020019060200280838360005b838110156103d85780820151818401525b6020016103bf565b50505050905001868103835288818151815260200191508051906020019060200280838360005b838110156104185780820151818401525b6020016103ff565b50505050905001868103825287818151815260200191508051906020019060200280838360005b838110156104585780820151818401525b60200161043f565b505050509050019a505050505050505050505060405180910390f35b341561047f57600080fd5b610487611032565b604051600160a060020a03909116815260200160405180910390f35b34156104ae57600080fd5b6104b6611041565b60405190815260200160405180910390f35b34156104d357600080fd5b6102e6600160a060020a03600435811690602435166044356110ab565b005b34156104fd57600080fd5b61018b600160a060020a03600435166110d4565b604051901515815260200160405180910390f35b341561053057600080fd5b61018b600160a060020a03600435166111cd565b604051901515815260200160405180910390f35b341561056357600080fd5b6102e66004356111e4565b005b341561057b57600080fd5b6102e6600160a060020a03600435166116f0565b005b341561059c57600080fd5b6102e661174d565b005b34156105b157600080fd5b6102e66117a5565b005b34156105c657600080fd5b6104b6611865565b60405190815260200160405180910390f35b34156105eb57600080fd5b61018b61189f565b604051901515815260200160405180910390f35b341561061257600080fd5b6104876004356118af565b604051600160a060020a03909116815260200160405180910390f35b341561064457600080fd5b6104b6600160a060020a03600435166118c2565b60405190815260200160405180910390f35b341561067557600080fd5b6102e661193f565b005b341561068a57600080fd5b61069e600160a060020a03600435166119fe565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156106de5780820151818401525b6020016106c5565b505050509050019250505060405180910390f35b34156106fd57600080fd5b610487611b3f565b604051600160a060020a03909116815260200160405180910390f35b341561072c57600080fd5b6101c1611b4e565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101fe5780820151818401525b6020016101e5565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156107b757600080fd5b6102e6600160a060020a0360043516602435611b85565b005b34156107db57600080fd5b61018b600160a060020a0360043516611bf8565b604051901515815260200160405180910390f35b341561080e57600080fd5b610819600435611d6c565b60405160ff9283168152911660208201526040908101905180910390f35b341561084257600080fd5b610487611f9d565b604051600160a060020a03909116815260200160405180910390f35b341561087157600080fd5b6102e6600160a060020a0360043516611fac565b005b341561089257600080fd5b6102e6600160a060020a0360043516611ff4565b005b60006040517f737570706f727473496e7465726661636528627974657334290000000000000081526019016040518091039020600160e060020a03191682600160e060020a0319161480610b2757506040517f746f6b656e4d657461646174612875696e743235362c737472696e67290000008152601d0160405180910390206040517f746f6b656e734f664f776e657228616464726573732900000000000000000000815260160160405180910390206040517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602082015260250160405180910390206040517f7472616e7366657228616464726573732c75696e743235362900000000000000815260190160405180910390206040517f617070726f766528616464726573732c75696e74323536290000000000000000815260180160405180910390206040517f6f776e65724f662875696e743235362900000000000000000000000000000000815260100160405180910390206040517f62616c616e63654f662861646472657373290000000000000000000000000000815260120160405180910390206040517f746f74616c537570706c792829000000000000000000000000000000000000008152600d0160405180910390206040517f73796d626f6c2829000000000000000000000000000000000000000000000000815260080160405180910390206040517f6e616d652829000000000000000000000000000000000000000000000000000081526006016040518091039020181818181818181818600160e060020a03191682600160e060020a031916145b90505b919050565b610b376126cc565b610b3f6126de565b600254600090600160a060020a03161515610b5957600080fd5b600254600160a060020a031663cb4799f2878787600060405160a0015260405160e060020a63ffffffff861602815260048101848152604060248301908152604483018490529091606401848480828437820191505094505050505060a060405180830381600087803b1515610bce57600080fd5b6102c65a03f11515610bdf57600080fd5b50505060405180608001805160209091016040529092509050610c028282612051565b92505b50509392505050565b60408051908101604052600c81527f4269745061696e74696e67730000000000000000000000000000000000000000602082015281565b60005460a060020a900460ff1615610c5c57600080fd5b610c6633826120a6565b1515610c7157600080fd5b610c7b818361212b565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15b5b5050565b610cd96126cc565b610ce16126cc565b610ce96126cc565b610cf16126cc565b610cf96126cc565b6000806000806000806000806000610d0f611041565b9850610d1a8f6118c2565b975087604051805910610d2a5750595b908082528060200260200182016040525b509d5087604051805910610d4c5750595b908082528060200260200182016040525b509c5087604051805910610d6e5750595b908082528060200260200182016040525b509b5087604051805910610d905750595b908082528060200260200182016040525b509a5087604051805910610db25750595b908082528060200260200182016040525b509950600095505b8886101561101f57600154600160a060020a031663a3e7061d8760006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610e2457600080fd5b6102c65a03f11515610e3557600080fd5b5050506040518051955050841515610e4c57611014565b8e600160a060020a0316610e5f8661219b565b600160a060020a031614610e7257611014565b600154600160a060020a03166350df8f718660006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610ec357600080fd5b6102c65a03f11515610ed457600080fd5b5050506040518051905015610ee857611014565b600154600160a060020a031663145f8ba286600060405160c0015260405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b1515610f3957600080fd5b6102c65a03f11515610f4a57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805150929850909650610f879350889250611d6c915050565b9092509050848e8881518110610f9957fe5b60209081029091010152838d8881518110610fb057fe5b60209081029091010152828c8881518110610fc757fe5b60209081029091010152818b8881518110610fde57fe5b60ff909216602092830290910190910152808a8881518110610ffc57fe5b60ff9092166020928302909101909101526001909601955b600190950194610dcb565b5b50505050505050505091939590929450565b600154600160a060020a031681565b600154600090600160a060020a031663197b945482604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561108b57600080fd5b6102c65a03f1151561109c57600080fd5b50505060405180519150505b90565b60005460a060020a900460ff16156110c257600080fd5b6110cd838383612210565b5b5b505050565b600154600090600160a060020a0316632f54bf6e83836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561112f57600080fd5b6102c65a03f1151561114057600080fd5b5050506040518051905080610b275750600154600160a060020a03166324d7806c8360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111a957600080fd5b6102c65a03f115156111ba57600080fd5b505050604051805190505b90505b919050565b600054600160a060020a038281169116145b919050565b600080600080600080600060149054906101000a900460ff1615151561120957600080fd5b3395506112158761219b565b600160a060020a0387811691161461122c57600080fd5b600154600160a060020a03166350df8f718860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561127d57600080fd5b6102c65a03f1151561128e57600080fd5b5050506040518051905015156112a357600080fd5b600154600160a060020a0316635f4eab658860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156112f457600080fd5b6102c65a03f1151561130557600080fd5b505050604051805115905061131957600080fd5b600154600160a060020a031663108a101b8860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561136a57600080fd5b6102c65a03f1151561137b57600080fd5b50505060405180519050151561139057600080fd5b600154600160a060020a03166337e246ad8860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156113e157600080fd5b6102c65a03f115156113f257600080fd5b505050604051805115905061140657600080fd5b600154600160a060020a03166370d1383d8860405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b151561144e57600080fd5b6102c65a03f1151561145f57600080fd5b5050600154600160a060020a0316905063fafb76dd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156114ab57600080fd5b6102c65a03f115156114bc57600080fd5b5050506040518051600154909650600160a060020a03169050630af9d89c8860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561151a57600080fd5b6102c65a03f1151561152b57600080fd5b50505060405180516001805491019550600a9450600160a060020a0316905063cd0fdc248860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158f57600080fd5b6102c65a03f115156115a057600080fd5b5050506040518051905091506115be86868987878742600101612299565b600154600160a060020a0316639e6afbda8860405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b151561160657600080fd5b6102c65a03f1151561161757600080fd5b5050600154600160a060020a03169050639ed573608860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561166c57600080fd5b6102c65a03f1151561167d57600080fd5b5050506040518051905090507f3f97d0875a1b44e01bf3372d1da5a4087c4e97a5ad5f81a4e1c69768548c8a3a86888784604051600160a060020a039094168452602084019290925260408084019190915260ff90911660608301526080909101905180910390a15b5b50505050505050565b60005433600160a060020a0390811691161461170b57600080fd5b600160a060020a038116151561172057600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60005433600160a060020a0390811691161461176857600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156117a157600080fd5b5b5b565b60005433600160a060020a03908116911614806118355750600154600160a060020a031663ca4b208b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561180557600080fd5b6102c65a03f1151561181657600080fd5b50505060405180519050600160a060020a031633600160a060020a0316145b151561184057600080fd5b60005460a060020a900460ff16151561185857600080fd5b6117a161246e565b5b5b5b565b60006040517f65646974696f6e73000000000000000000000000000000000000000000000000815260080160405190819003902090505b90565b60005460a060020a900460ff1681565b6000610b278261219b565b90505b919050565b600154600090600160a060020a031663b4f6eae483836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111a957600080fd5b6102c65a03f115156111ba57600080fd5b50505060405180519150505b919050565b60005433600160a060020a03908116911614806119cf5750600154600160a060020a031663ca4b208b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561199f57600080fd5b6102c65a03f115156119b057600080fd5b50505060405180519050600160a060020a031633600160a060020a0316145b15156119da57600080fd5b60005460a060020a900460ff16156119f157600080fd5b6117a16124d4565b5b5b5b565b611a066126cc565b6000611a106126cc565b6000806000611a1e876118c2565b9450841515611a4f576000604051805910611a365750595b908082528060200260200182016040525b509550611b35565b84604051805910611a5d5750595b908082528060200260200182016040525b509350611a79611041565b925060009150600190505b828111611b3157600154600160a060020a038089169116630d66343c8360006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611ae057600080fd5b6102c65a03f11515611af157600080fd5b50505060405180519050600160a060020a03161415611b285780848381518110611b1757fe5b602090810290910101526001909101905b5b600101611a84565b8395505b5050505050919050565b600054600160a060020a031681565b60408051908101604052600281527f4250000000000000000000000000000000000000000000000000000000000000602082015281565b60005460a060020a900460ff1615611b9c57600080fd5b600160a060020a0382161515611bb157600080fd5b30600160a060020a031682600160a060020a031614151515611bd257600080fd5b611bdc33826120a6565b1515611be757600080fd5b610ccc33838361253f565b5b5b5050565b600154600090600160a060020a0316632f54bf6e83836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611c5357600080fd5b6102c65a03f11515611c6457600080fd5b5050506040518051905080611ce95750600154600160a060020a03166324d7806c8360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ccd57600080fd5b6102c65a03f11515611cde57600080fd5b505050604051805190505b80610b275750600154600160a060020a031663babcc5398360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111a957600080fd5b6102c65a03f115156111ba57600080fd5b505050604051805190505b90505b919050565b600080600080611d7a61272b565b611d8261272b565b600154600160a060020a0316630af9d89c8860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611dd357600080fd5b6102c65a03f11515611de457600080fd5b505050604051805194505060ff84161515611e06576001955060019450611f93565b600154600160a060020a031663a42455278860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611e5757600080fd5b6102c65a03f11515611e6857600080fd5b5050506040518051600154909450600160a060020a03169050635de815348460006040516060015260405160e060020a63ffffffff84160281526004810191909152602401606060405180830381600087803b1515611ec657600080fd5b6102c65a03f11515611ed757600080fd5b505050604051606081016040908152600154919350600160a060020a039091169063f79098f4908590600090516060015260405160e060020a63ffffffff84160281526004810191909152602401606060405180830381600087803b1515611f3e57600080fd5b6102c65a03f11515611f4f57600080fd5b5050506040516060810160405290508160ff60001986011660038110611f7157fe5b602002015195508060ff60001986011660038110611f8b57fe5b602002015194505b5b50505050915091565b600254600160a060020a031681565b60005433600160a060020a03908116911614611fc757600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60005433600160a060020a0390811691161461200f57600080fd5b600160a060020a038116151561202457600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6120596126cc565b6120616126cc565b600080846040518059106120725750595b908082528060200260200182016040525b5092505060208201905084612099828287612600565b8293505b50505092915050565b600154600090600160a060020a038085169116630d66343c84846040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156120fd57600080fd5b6102c65a03f1151561210e57600080fd5b50505060405180519050600160a060020a03161490505b92915050565b600154600160a060020a031663febe4909838360405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b151561218257600080fd5b6102c65a03f1151561219357600080fd5b5050505b5050565b600154600090600160a060020a0316630d66343c83836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156111a957600080fd5b6102c65a03f115156111ba57600080fd5b50505060405180519150505b919050565b60005460a060020a900460ff161561222757600080fd5b600160a060020a038216151561223c57600080fd5b30600160a060020a031682600160a060020a03161415151561225d57600080fd5b6122673382612647565b151561227257600080fd5b61227c83826120a6565b151561228757600080fd5b6110cd83838361253f565b5b5b505050565b60008063ffffffff881688146122ae57600080fd5b63ffffffff871687146122c057600080fd5b5b600154600160a060020a0316638754b1d18a8a8a8a8a8a8a60405160e060020a63ffffffff8a16028152600160a060020a0390971660048801526024870195909552604486019390935260ff918216606486015216608484015260a483015260c482015260e401600060405180830381600087803b151561234157600080fd5b6102c65a03f1151561235257600080fd5b5050600154600160a060020a0316905063145f8ba289600060405160c0015260405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b15156123a757600080fd5b6102c65a03f115156123b857600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051509296509094507f30327159df74d598a666b3800d1708fc84a7a52e5f6fb58cdd4bdffe7ad653c793508b92508c91508a9050898686604051958652600160a060020a03909416602086015260408086019390935260ff9091166060850152608084015260a083019190915260c0909101905180910390a161246260008a8a61253f565b5b505050505050505050565b60005460a060020a900460ff16151561248657600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a15b5b565b60005460a060020a900460ff16156124eb57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a15b5b565b600154600160a060020a031663687c4fa7828460405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b151561259657600080fd5b6102c65a03f115156125a757600080fd5b5050507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15b505050565b60005b6020821061262757825184526020840193506020830192505b602082039150612603565b6001826020036101000a0390508019835116818551161784525b50505050565b600154600090600160a060020a031663b5b12e758385846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b15156126a957600080fd5b6102c65a03f115156126ba57600080fd5b50505060405180519150505b92915050565b60206040519081016040526000815290565b60806040519081016040526004815b600081526000199190910190602001816126ed5790505090565b60206040519081016040526000815290565b60206040519081016040526000815290565b60606040519081016040526003815b60008152600019909101906020018161273a57905050905600a165627a7a723058203c0f4c698e6608d3635ce57694e7a7ae372a866e9f03f5aceb427912aae948af0029
Deployed Bytecode
0x6060604052361561014e5763ffffffff60e060020a60003504166301ffc9a781146101535780630560ff441461019f57806306fdde0314610239578063095ea7b3146102c457806312610b5b146102e8578063179047431461047457806318160ddd146104a357806323b872dd146104c8578063290b3cb7146104f25780632f54bf6e14610525578063330cbc7514610558578063362f29c9146105705780633ccfd60b146105915780633f4ba83a146105a657806351ff4847146105bb5780635c975abb146105e05780636352211e1461060757806370a08231146106395780638456cb591461066a5780638462151c1461067f5780638da5cb5b146106f257806395d89b4114610721578063a9059cbb146107ac578063aad9973f146107d0578063b1f525c614610803578063bc4006f514610837578063e17b25af14610866578063f2fde38b14610887575b600080fd5b341561015e57600080fd5b61018b7fffffffff00000000000000000000000000000000000000000000000000000000600435166108a8565b604051901515815260200160405180910390f35b34156101aa57600080fd5b6101c1600480359060248035908101910135610b2f565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101fe5780820151818401525b6020016101e5565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561024457600080fd5b6101c1610c0e565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101fe5780820151818401525b6020016101e5565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102cf57600080fd5b6102e6600160a060020a0360043516602435610c45565b005b34156102f357600080fd5b610307600160a060020a0360043516610cd1565b60405180806020018060200180602001806020018060200186810386528b818151815260200191508051906020019060200280838360005b838110156103585780820151818401525b60200161033f565b5050505090500186810385528a818151815260200191508051906020019060200280838360005b838110156103985780820151818401525b60200161037f565b50505050905001868103845289818151815260200191508051906020019060200280838360005b838110156103d85780820151818401525b6020016103bf565b50505050905001868103835288818151815260200191508051906020019060200280838360005b838110156104185780820151818401525b6020016103ff565b50505050905001868103825287818151815260200191508051906020019060200280838360005b838110156104585780820151818401525b60200161043f565b505050509050019a505050505050505050505060405180910390f35b341561047f57600080fd5b610487611032565b604051600160a060020a03909116815260200160405180910390f35b34156104ae57600080fd5b6104b6611041565b60405190815260200160405180910390f35b34156104d357600080fd5b6102e6600160a060020a03600435811690602435166044356110ab565b005b34156104fd57600080fd5b61018b600160a060020a03600435166110d4565b604051901515815260200160405180910390f35b341561053057600080fd5b61018b600160a060020a03600435166111cd565b604051901515815260200160405180910390f35b341561056357600080fd5b6102e66004356111e4565b005b341561057b57600080fd5b6102e6600160a060020a03600435166116f0565b005b341561059c57600080fd5b6102e661174d565b005b34156105b157600080fd5b6102e66117a5565b005b34156105c657600080fd5b6104b6611865565b60405190815260200160405180910390f35b34156105eb57600080fd5b61018b61189f565b604051901515815260200160405180910390f35b341561061257600080fd5b6104876004356118af565b604051600160a060020a03909116815260200160405180910390f35b341561064457600080fd5b6104b6600160a060020a03600435166118c2565b60405190815260200160405180910390f35b341561067557600080fd5b6102e661193f565b005b341561068a57600080fd5b61069e600160a060020a03600435166119fe565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156106de5780820151818401525b6020016106c5565b505050509050019250505060405180910390f35b34156106fd57600080fd5b610487611b3f565b604051600160a060020a03909116815260200160405180910390f35b341561072c57600080fd5b6101c1611b4e565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101fe5780820151818401525b6020016101e5565b50505050905090810190601f16801561022b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156107b757600080fd5b6102e6600160a060020a0360043516602435611b85565b005b34156107db57600080fd5b61018b600160a060020a0360043516611bf8565b604051901515815260200160405180910390f35b341561080e57600080fd5b610819600435611d6c565b60405160ff9283168152911660208201526040908101905180910390f35b341561084257600080fd5b610487611f9d565b604051600160a060020a03909116815260200160405180910390f35b341561087157600080fd5b6102e6600160a060020a0360043516611fac565b005b341561089257600080fd5b6102e6600160a060020a0360043516611ff4565b005b60006040517f737570706f727473496e7465726661636528627974657334290000000000000081526019016040518091039020600160e060020a03191682600160e060020a0319161480610b2757506040517f746f6b656e4d657461646174612875696e743235362c737472696e67290000008152601d0160405180910390206040517f746f6b656e734f664f776e657228616464726573732900000000000000000000815260160160405180910390206040517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602082015260250160405180910390206040517f7472616e7366657228616464726573732c75696e743235362900000000000000815260190160405180910390206040517f617070726f766528616464726573732c75696e74323536290000000000000000815260180160405180910390206040517f6f776e65724f662875696e743235362900000000000000000000000000000000815260100160405180910390206040517f62616c616e63654f662861646472657373290000000000000000000000000000815260120160405180910390206040517f746f74616c537570706c792829000000000000000000000000000000000000008152600d0160405180910390206040517f73796d626f6c2829000000000000000000000000000000000000000000000000815260080160405180910390206040517f6e616d652829000000000000000000000000000000000000000000000000000081526006016040518091039020181818181818181818600160e060020a03191682600160e060020a031916145b90505b919050565b610b376126cc565b610b3f6126de565b600254600090600160a060020a03161515610b5957600080fd5b600254600160a060020a031663cb4799f2878787600060405160a0015260405160e060020a63ffffffff861602815260048101848152604060248301908152604483018490529091606401848480828437820191505094505050505060a060405180830381600087803b1515610bce57600080fd5b6102c65a03f11515610bdf57600080fd5b50505060405180608001805160209091016040529092509050610c028282612051565b92505b50509392505050565b60408051908101604052600c81527f4269745061696e74696e67730000000000000000000000000000000000000000602082015281565b60005460a060020a900460ff1615610c5c57600080fd5b610c6633826120a6565b1515610c7157600080fd5b610c7b818361212b565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15b5b5050565b610cd96126cc565b610ce16126cc565b610ce96126cc565b610cf16126cc565b610cf96126cc565b6000806000806000806000806000610d0f611041565b9850610d1a8f6118c2565b975087604051805910610d2a5750595b908082528060200260200182016040525b509d5087604051805910610d4c5750595b908082528060200260200182016040525b509c5087604051805910610d6e5750595b908082528060200260200182016040525b509b5087604051805910610d905750595b908082528060200260200182016040525b509a5087604051805910610db25750595b908082528060200260200182016040525b509950600095505b8886101561101f57600154600160a060020a031663a3e7061d8760006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610e2457600080fd5b6102c65a03f11515610e3557600080fd5b5050506040518051955050841515610e4c57611014565b8e600160a060020a0316610e5f8661219b565b600160a060020a031614610e7257611014565b600154600160a060020a03166350df8f718660006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610ec357600080fd5b6102c65a03f11515610ed457600080fd5b5050506040518051905015610ee857611014565b600154600160a060020a031663145f8ba286600060405160c0015260405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b1515610f3957600080fd5b6102c65a03f11515610f4a57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805150929850909650610f879350889250611d6c915050565b9092509050848e8881518110610f9957fe5b60209081029091010152838d8881518110610fb057fe5b60209081029091010152828c8881518110610fc757fe5b60209081029091010152818b8881518110610fde57fe5b60ff909216602092830290910190910152808a8881518110610ffc57fe5b60ff9092166020928302909101909101526001909601955b600190950194610dcb565b5b50505050505050505091939590929450565b600154600160a060020a031681565b600154600090600160a060020a031663197b945482604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561108b57600080fd5b6102c65a03f1151561109c57600080fd5b50505060405180519150505b90565b60005460a060020a900460ff16156110c257600080fd5b6110cd838383612210565b5b5b505050565b600154600090600160a060020a0316632f54bf6e83836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561112f57600080fd5b6102c65a03f1151561114057600080fd5b5050506040518051905080610b275750600154600160a060020a03166324d7806c8360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111a957600080fd5b6102c65a03f115156111ba57600080fd5b505050604051805190505b90505b919050565b600054600160a060020a038281169116145b919050565b600080600080600080600060149054906101000a900460ff1615151561120957600080fd5b3395506112158761219b565b600160a060020a0387811691161461122c57600080fd5b600154600160a060020a03166350df8f718860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561127d57600080fd5b6102c65a03f1151561128e57600080fd5b5050506040518051905015156112a357600080fd5b600154600160a060020a0316635f4eab658860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156112f457600080fd5b6102c65a03f1151561130557600080fd5b505050604051805115905061131957600080fd5b600154600160a060020a031663108a101b8860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561136a57600080fd5b6102c65a03f1151561137b57600080fd5b50505060405180519050151561139057600080fd5b600154600160a060020a03166337e246ad8860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156113e157600080fd5b6102c65a03f115156113f257600080fd5b505050604051805115905061140657600080fd5b600154600160a060020a03166370d1383d8860405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b151561144e57600080fd5b6102c65a03f1151561145f57600080fd5b5050600154600160a060020a0316905063fafb76dd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156114ab57600080fd5b6102c65a03f115156114bc57600080fd5b5050506040518051600154909650600160a060020a03169050630af9d89c8860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561151a57600080fd5b6102c65a03f1151561152b57600080fd5b50505060405180516001805491019550600a9450600160a060020a0316905063cd0fdc248860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561158f57600080fd5b6102c65a03f115156115a057600080fd5b5050506040518051905091506115be86868987878742600101612299565b600154600160a060020a0316639e6afbda8860405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b151561160657600080fd5b6102c65a03f1151561161757600080fd5b5050600154600160a060020a03169050639ed573608860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561166c57600080fd5b6102c65a03f1151561167d57600080fd5b5050506040518051905090507f3f97d0875a1b44e01bf3372d1da5a4087c4e97a5ad5f81a4e1c69768548c8a3a86888784604051600160a060020a039094168452602084019290925260408084019190915260ff90911660608301526080909101905180910390a15b5b50505050505050565b60005433600160a060020a0390811691161461170b57600080fd5b600160a060020a038116151561172057600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60005433600160a060020a0390811691161461176857600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f1935050505015156117a157600080fd5b5b5b565b60005433600160a060020a03908116911614806118355750600154600160a060020a031663ca4b208b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561180557600080fd5b6102c65a03f1151561181657600080fd5b50505060405180519050600160a060020a031633600160a060020a0316145b151561184057600080fd5b60005460a060020a900460ff16151561185857600080fd5b6117a161246e565b5b5b5b565b60006040517f65646974696f6e73000000000000000000000000000000000000000000000000815260080160405190819003902090505b90565b60005460a060020a900460ff1681565b6000610b278261219b565b90505b919050565b600154600090600160a060020a031663b4f6eae483836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111a957600080fd5b6102c65a03f115156111ba57600080fd5b50505060405180519150505b919050565b60005433600160a060020a03908116911614806119cf5750600154600160a060020a031663ca4b208b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561199f57600080fd5b6102c65a03f115156119b057600080fd5b50505060405180519050600160a060020a031633600160a060020a0316145b15156119da57600080fd5b60005460a060020a900460ff16156119f157600080fd5b6117a16124d4565b5b5b5b565b611a066126cc565b6000611a106126cc565b6000806000611a1e876118c2565b9450841515611a4f576000604051805910611a365750595b908082528060200260200182016040525b509550611b35565b84604051805910611a5d5750595b908082528060200260200182016040525b509350611a79611041565b925060009150600190505b828111611b3157600154600160a060020a038089169116630d66343c8360006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611ae057600080fd5b6102c65a03f11515611af157600080fd5b50505060405180519050600160a060020a03161415611b285780848381518110611b1757fe5b602090810290910101526001909101905b5b600101611a84565b8395505b5050505050919050565b600054600160a060020a031681565b60408051908101604052600281527f4250000000000000000000000000000000000000000000000000000000000000602082015281565b60005460a060020a900460ff1615611b9c57600080fd5b600160a060020a0382161515611bb157600080fd5b30600160a060020a031682600160a060020a031614151515611bd257600080fd5b611bdc33826120a6565b1515611be757600080fd5b610ccc33838361253f565b5b5b5050565b600154600090600160a060020a0316632f54bf6e83836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611c5357600080fd5b6102c65a03f11515611c6457600080fd5b5050506040518051905080611ce95750600154600160a060020a03166324d7806c8360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ccd57600080fd5b6102c65a03f11515611cde57600080fd5b505050604051805190505b80610b275750600154600160a060020a031663babcc5398360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111a957600080fd5b6102c65a03f115156111ba57600080fd5b505050604051805190505b90505b919050565b600080600080611d7a61272b565b611d8261272b565b600154600160a060020a0316630af9d89c8860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611dd357600080fd5b6102c65a03f11515611de457600080fd5b505050604051805194505060ff84161515611e06576001955060019450611f93565b600154600160a060020a031663a42455278860006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611e5757600080fd5b6102c65a03f11515611e6857600080fd5b5050506040518051600154909450600160a060020a03169050635de815348460006040516060015260405160e060020a63ffffffff84160281526004810191909152602401606060405180830381600087803b1515611ec657600080fd5b6102c65a03f11515611ed757600080fd5b505050604051606081016040908152600154919350600160a060020a039091169063f79098f4908590600090516060015260405160e060020a63ffffffff84160281526004810191909152602401606060405180830381600087803b1515611f3e57600080fd5b6102c65a03f11515611f4f57600080fd5b5050506040516060810160405290508160ff60001986011660038110611f7157fe5b602002015195508060ff60001986011660038110611f8b57fe5b602002015194505b5b50505050915091565b600254600160a060020a031681565b60005433600160a060020a03908116911614611fc757600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60005433600160a060020a0390811691161461200f57600080fd5b600160a060020a038116151561202457600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6120596126cc565b6120616126cc565b600080846040518059106120725750595b908082528060200260200182016040525b5092505060208201905084612099828287612600565b8293505b50505092915050565b600154600090600160a060020a038085169116630d66343c84846040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156120fd57600080fd5b6102c65a03f1151561210e57600080fd5b50505060405180519050600160a060020a03161490505b92915050565b600154600160a060020a031663febe4909838360405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b151561218257600080fd5b6102c65a03f1151561219357600080fd5b5050505b5050565b600154600090600160a060020a0316630d66343c83836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156111a957600080fd5b6102c65a03f115156111ba57600080fd5b50505060405180519150505b919050565b60005460a060020a900460ff161561222757600080fd5b600160a060020a038216151561223c57600080fd5b30600160a060020a031682600160a060020a03161415151561225d57600080fd5b6122673382612647565b151561227257600080fd5b61227c83826120a6565b151561228757600080fd5b6110cd83838361253f565b5b5b505050565b60008063ffffffff881688146122ae57600080fd5b63ffffffff871687146122c057600080fd5b5b600154600160a060020a0316638754b1d18a8a8a8a8a8a8a60405160e060020a63ffffffff8a16028152600160a060020a0390971660048801526024870195909552604486019390935260ff918216606486015216608484015260a483015260c482015260e401600060405180830381600087803b151561234157600080fd5b6102c65a03f1151561235257600080fd5b5050600154600160a060020a0316905063145f8ba289600060405160c0015260405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b15156123a757600080fd5b6102c65a03f115156123b857600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051509296509094507f30327159df74d598a666b3800d1708fc84a7a52e5f6fb58cdd4bdffe7ad653c793508b92508c91508a9050898686604051958652600160a060020a03909416602086015260408086019390935260ff9091166060850152608084015260a083019190915260c0909101905180910390a161246260008a8a61253f565b5b505050505050505050565b60005460a060020a900460ff16151561248657600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a15b5b565b60005460a060020a900460ff16156124eb57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a15b5b565b600154600160a060020a031663687c4fa7828460405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b151561259657600080fd5b6102c65a03f115156125a757600080fd5b5050507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15b505050565b60005b6020821061262757825184526020840193506020830192505b602082039150612603565b6001826020036101000a0390508019835116818551161784525b50505050565b600154600090600160a060020a031663b5b12e758385846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b15156126a957600080fd5b6102c65a03f115156126ba57600080fd5b50505060405180519150505b92915050565b60206040519081016040526000815290565b60806040519081016040526004815b600081526000199190910190602001816126ed5790505090565b60206040519081016040526000815290565b60206040519081016040526000815290565b60606040519081016040526003815b60008152600019909101906020018161273a57905050905600a165627a7a723058203c0f4c698e6608d3635ce57694e7a7ae372a866e9f03f5aceb427912aae948af0029
Swarm Source
bzzr://3c0f4c698e6608d3635ce57694e7a7ae372a866e9f03f5aceb427912aae948af
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.