There are reports that this address was used in a Phishing scam. Please exercise caution when interacting with it. Reported by GoPlusSecurity.
Fake_Phishing297713
Source Code
Phish / Hack
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 11 from a total of 11 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Release | 5916519 | 2754 days ago | IN | 0 ETH | 0.04694409 | ||||
| Release | 5911756 | 2755 days ago | IN | 0 ETH | 0.02861805 | ||||
| Release | 5899451 | 2757 days ago | IN | 0 ETH | 0.02288164 | ||||
| Release | 5893830 | 2758 days ago | IN | 0 ETH | 0.03148337 | ||||
| Pay Commission | 5875379 | 2761 days ago | IN | 0.001 ETH | 0.00053928 | ||||
| Release | 5875367 | 2761 days ago | IN | 0 ETH | 0.00171804 | ||||
| Release | 5875364 | 2761 days ago | IN | 0 ETH | 0.00190957 | ||||
| Release | 5875352 | 2761 days ago | IN | 0 ETH | 0.00184185 | ||||
| Release | 5869599 | 2762 days ago | IN | 0 ETH | 0.00171516 | ||||
| Transfer Ownersh... | 5869152 | 2762 days ago | IN | 0 ETH | 0.0005872 | ||||
| Set Bitpainting ... | 5868257 | 2762 days ago | IN | 0 ETH | 0.00008775 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 5875379 | 2761 days ago | 0.001 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BitpaintingPaintings
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-06-28
*/
pragma solidity ^0.4.15;
// File: contracts/interfaces/IAuctions.sol
contract IAuctions {
function currentPrice(uint _tokenId) public constant returns (uint256);
function createAuction(
uint256 _tokenId,
uint256 _startingPrice,
uint256 _endingPrice,
uint256 _duration) public;
function createReleaseAuction(
uint _tokenId,
uint _startingPrice,
uint _endingPrice,
uint _startedAt,
uint _duration) public;
function cancelAuction(uint256 _tokenId) external;
function cancelAuctionWhenPaused(uint256 _tokenId) external;
function bid(uint256 _tokenId, address _owner) external payable;
function market() public constant returns (
uint[] tokens,
address[] sellers,
uint8[] generations,
uint8[] speeds,
uint[] prices
);
function auctionsOf(address _of) public constant returns (
uint[] tokens,
uint[] prices
);
function signature() external constant returns (uint _signature);
}
// File: contracts/interfaces/IPaintings.sol
contract IPaintings {
function createPainting(uint _tokenId) external;
function sendAsGift(address _to, uint _tokenId) external;
function collectionOf(address _of) public constant returns (
uint[] tokens,
bool[] pending,
bool[] forSale,
bool[] locked,
uint8[] generations,
uint8[] speeds
);
function collectionCountsOf(address _of)
public constant returns (uint total, uint pending, uint forSale);
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/BitpaintingPaintings.sol
contract BitpaintingPaintings is PaintingOwnership, IPaintings {
event CommissionPaidSuccessfully(
address _to,
uint _fromBlock,
uint _toBlock);
uint version = 3;
modifier canPayCommission() {
require(bitpaintingStorage.isOwner(msg.sender)
|| bitpaintingStorage.isAdmin(msg.sender));
_;
}
function release(
uint _tokenId,
uint _artistId,
uint _releasedAt,
uint8[] _gens,
uint _auctionStartingPrice,
uint _auctionEndingPrice,
uint _auctionDuration,
string _artist,
string _name
) external canReleaseArtwork whenNotPaused {
_createOriginalPainting(_tokenId, _artistId, _releasedAt);
_approve(_tokenId, owner);
bitpaintingStorage.setEditionLimits(_tokenId, _gens[0], _gens[1],_gens[2]);
auctionsContract().createReleaseAuction(
_tokenId,
_auctionStartingPrice,
_auctionEndingPrice,
_releasedAt,
_auctionDuration);
bitpaintingStorage.setPaintingArtist(_tokenId, _artist);
bitpaintingStorage.setPaintingName(_tokenId, _name);
}
function releaseNow(
uint _tokenId,
uint _artistId,
uint8[] _gens,
uint _auctionStartingPrice,
uint _auctionEndingPrice,
uint _auctionDuration,
string _artist,
string _name
) external canReleaseArtwork whenNotPaused {
uint _releasedAt = now;
_createOriginalPainting(_tokenId, _artistId, _releasedAt);
_approve(_tokenId, owner);
bitpaintingStorage.setEditionLimits(_tokenId, _gens[0], _gens[1],_gens[2]);
auctionsContract().createReleaseAuction(
_tokenId,
_auctionStartingPrice,
_auctionEndingPrice,
now, // _releasedAt
_auctionDuration);
bitpaintingStorage.setPaintingArtist(_tokenId, _artist);
bitpaintingStorage.setPaintingName(_tokenId, _name);
}
function cancel(uint _tokenId) external canCancelArtwork whenNotPaused {
require(bitpaintingStorage.isOnAuction(_tokenId));
require(bitpaintingStorage.canBeChanged(_tokenId));
bitpaintingStorage.resetPainting(_tokenId);
bitpaintingStorage.removeAuction(_tokenId);
bitpaintingStorage.resetEditionLimits(_tokenId);
bitpaintingStorage.purgeInformation(_tokenId);
}
function auctionsContract() internal returns (IAuctions auctions){
uint _signature = uint(keccak256("auctions"));
return IAuctions(bitpaintingStorage.contracts(_signature));
}
function createPainting(uint _tokenId)
external canReleaseArtwork whenNotPaused {
_createOriginalPainting(_tokenId, 1, now);
_approve(_tokenId, owner);
}
function sendAsGift(address _to, uint _tokenId) external whenNotPaused {
require(_to != address(0));
require(_to != address(this));
require(_owns(msg.sender, _tokenId));
require(bitpaintingStorage.isReady(_tokenId));
require(!bitpaintingStorage.hasEditionInProgress(_tokenId));
if (bitpaintingStorage.isOnAuction(_tokenId)) {
bitpaintingStorage.removeAuction(_tokenId);
}
bitpaintingStorage.sealForChanges(_tokenId);
_transfer(msg.sender, _to, _tokenId);
bitpaintingStorage.increaseOwnershipTokenCount(_to);
bitpaintingStorage.decreaseOwnershipTokenCount(msg.sender);
}
function allTokenIds() public constant returns (uint[] tokenIds) {
uint len = bitpaintingStorage.totalPaintingsCount();
uint resultLen = bitpaintingStorage.paintingsCount();
tokenIds = new uint[](resultLen);
uint pointer = 0;
for (uint index = 0; index < len; index++) {
uint token = bitpaintingStorage.getPaintingIdAtIndex(index);
if (bitpaintingStorage.isCanceled(token)) {
continue;
}
tokenIds[pointer] = token;
pointer++;
}
}
function collectionOf(address _of) public constant returns (
uint[] tokens,
bool[] pending,
bool[] forSale,
bool[] locked,
uint8[] generations,
uint8[] speeds
) {
uint tokenCount = bitpaintingStorage.totalPaintingsCount();
uint length = balanceOf(_of);
uint pointer;
tokens = new uint[](length);
pending = new bool[](length);
forSale = new bool[](length);
locked = new bool[](length);
generations = new uint8[](length);
speeds = new uint8[](length);
for(uint index = 0; index < tokenCount; index++) {
uint tokenId = bitpaintingStorage.getPaintingIdAtIndex(index);
if (_ownerOf(tokenId) != _of) {
continue;
}
uint _createdAt;
(,,_createdAt,,,) = bitpaintingStorage.getPainting(tokenId);
if (_createdAt == 0) {
continue;
}
tokens[pointer] = tokenId;
pending[pointer] = !bitpaintingStorage.isReady(tokenId);
forSale[pointer] = (bitpaintingStorage.getAuctionStartedAt(tokenId) > 0);
uint edition = bitpaintingStorage.lastEditionOf(tokenId);
if (edition == 0) {
locked[pointer] = false;
} else {
locked[pointer] = !bitpaintingStorage.isReady(edition);
}
generations[pointer] = bitpaintingStorage.getPaintingGeneration(tokenId);
speeds[pointer] = bitpaintingStorage.getPaintingSpeed(tokenId);
pointer++;
}
}
function collectionCountsOf(address _of) public constant
returns (uint total, uint pending, uint forSale) {
uint tokenCount = totalSupply();
for(uint index = 0; index < tokenCount; index++) {
uint tokenId = bitpaintingStorage.getPaintingIdAtIndex(index);
if (_ownerOf(tokenId) != _of) {
continue;
}
total++;
if (bitpaintingStorage.isReady(tokenId)) {
if (bitpaintingStorage.getAuctionStartedAt(tokenId) > 0) {
forSale++;
}
continue;
}
if (!bitpaintingStorage.isReady(tokenId)) {
pending++;
continue;
}
}
}
function payCommission(address _to, uint _fromBlock, uint _toBlock)
public payable canPayCommission {
require(_toBlock < block.number);
require(_fromBlock <= _toBlock);
_to.transfer(msg.value);
CommissionPaidSuccessfully(_to, _fromBlock, _toBlock);
}
function signature() external constant returns (uint _signature) {
return uint(keccak256("paintings"));
}
}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":false,"inputs":[{"name":"_to","type":"address"},{"name":"_fromBlock","type":"uint256"},{"name":"_toBlock","type":"uint256"}],"name":"payCommission","outputs":[],"payable":true,"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":"_address","type":"address"}],"name":"setBitpaintingStorage","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_artistId","type":"uint256"},{"name":"_releasedAt","type":"uint256"},{"name":"_gens","type":"uint8[]"},{"name":"_auctionStartingPrice","type":"uint256"},{"name":"_auctionEndingPrice","type":"uint256"},{"name":"_auctionDuration","type":"uint256"},{"name":"_artist","type":"string"},{"name":"_name","type":"string"}],"name":"release","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_of","type":"address"}],"name":"collectionOf","outputs":[{"name":"tokens","type":"uint256[]"},{"name":"pending","type":"bool[]"},{"name":"forSale","type":"bool[]"},{"name":"locked","type":"bool[]"},{"name":"generations","type":"uint8[]"},{"name":"speeds","type":"uint8[]"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"cancel","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":"_tokenId","type":"uint256"},{"name":"_artistId","type":"uint256"},{"name":"_gens","type":"uint8[]"},{"name":"_auctionStartingPrice","type":"uint256"},{"name":"_auctionEndingPrice","type":"uint256"},{"name":"_auctionDuration","type":"uint256"},{"name":"_artist","type":"string"},{"name":"_name","type":"string"}],"name":"releaseNow","outputs":[],"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":true,"inputs":[{"name":"_of","type":"address"}],"name":"collectionCountsOf","outputs":[{"name":"total","type":"uint256"},{"name":"pending","type":"uint256"},{"name":"forSale","type":"uint256"}],"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":"erc721Metadata","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"sendAsGift","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_contractAddress","type":"address"}],"name":"setMetadataAddress","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"allTokenIds","outputs":[{"name":"tokenIds","type":"uint256[]"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"createPainting","outputs":[],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_fromBlock","type":"uint256"},{"indexed":false,"name":"_toBlock","type":"uint256"}],"name":"CommissionPaidSuccessfully","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
60606040526000805460a060020a60ff0219169055600380555b60008054600160a060020a03191633600160a060020a03161790555b5b613741806100456000396000f300606060405236156101905763ffffffff60e060020a60003504166301ffc9a781146101955780630560ff44146101e157806306fdde031461027b578063095ea7b3146103065780630a52d1941461032a578063179047431461034657806318160ddd1461037557806323b872dd1461039a578063290b3cb7146103c45780632f54bf6e146103f7578063362f29c91461042a57806338284f361461044b5780633ccfd60b1461049c5780633e94c904146104b15780633f4ba83a1461068357806340e58ee51461069857806351ff4847146106b05780635c975abb146106d55780636352211e146106fc57806370a082311461072e5780637984932e1461075f5780638456cb59146107ab5780638462151c146107c05780638da5cb5b1461083357806395d89b41146108625780639d5c7be8146108ed578063a9059cbb14610930578063aad9973f14610954578063bc4006f514610987578063c7046117146109b6578063e17b25af146109da578063e7619fad146109fb578063f2fde38b14610a62578063fe5709cd14610a83575b600080fd5b34156101a057600080fd5b6101cd7fffffffff0000000000000000000000000000000000000000000000000000000060043516610a9b565b604051901515815260200160405180910390f35b34156101ec57600080fd5b610203600480359060248035908101910135610d22565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102405780820151818401525b602001610227565b50505050905090810190601f16801561026d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028657600080fd5b610203610e01565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102405780820151818401525b602001610227565b50505050905090810190601f16801561026d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031157600080fd5b610328600160a060020a0360043516602435610e38565b005b610328600160a060020a0360043516602435604435610ec4565b005b341561035157600080fd5b610359611069565b604051600160a060020a03909116815260200160405180910390f35b341561038057600080fd5b610388611078565b60405190815260200160405180910390f35b34156103a557600080fd5b610328600160a060020a03600435811690602435166044356110e2565b005b34156103cf57600080fd5b6101cd600160a060020a036004351661110b565b604051901515815260200160405180910390f35b341561040257600080fd5b6101cd600160a060020a0360043516611204565b604051901515815260200160405180910390f35b341561043557600080fd5b610328600160a060020a036004351661121b565b005b341561045657600080fd5b61032860048035906024803591604435916064358082019290810135916084359160a4359160c4359160e43580830192908201359161010435918201910135611278565b005b34156104a757600080fd5b610328611514565b005b34156104bc57600080fd5b6104d0600160a060020a036004351661156c565b6040518080602001806020018060200180602001806020018060200187810387528d818151815260200191508051906020019060200280838360005b838110156105255780820151818401525b60200161050c565b5050505090500187810386528c818151815260200191508051906020019060200280838360005b838110156105655780820151818401525b60200161054c565b5050505090500187810385528b818151815260200191508051906020019060200280838360005b838110156105a55780820151818401525b60200161058c565b5050505090500187810384528a818151815260200191508051906020019060200280838360005b838110156105e55780820151818401525b6020016105cc565b50505050905001878103835289818151815260200191508051906020019060200280838360005b838110156106255780820151818401525b60200161060c565b50505050905001878103825288818151815260200191508051906020019060200280838360005b838110156106655780820151818401525b60200161064c565b505050509050019c5050505050505050505050505060405180910390f35b341561068e57600080fd5b610328611ba2565b005b34156106a357600080fd5b610328600435611c62565b005b34156106bb57600080fd5b610388611ef4565b60405190815260200160405180910390f35b34156106e057600080fd5b6101cd611f2e565b604051901515815260200160405180910390f35b341561070757600080fd5b610359600435611f3e565b604051600160a060020a03909116815260200160405180910390f35b341561073957600080fd5b610388600160a060020a0360043516611f51565b60405190815260200160405180910390f35b341561076a57600080fd5b61032860048035906024803591604435808301929082013591606435916084359160a4359160c43580820192908101359160e435908101910135611fce565b005b34156107b657600080fd5b61032861226e565b005b34156107cb57600080fd5b6107df600160a060020a036004351661232d565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561081f5780820151818401525b602001610806565b505050509050019250505060405180910390f35b341561083e57600080fd5b61035961246e565b604051600160a060020a03909116815260200160405180910390f35b341561086d57600080fd5b61020361247d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102405780820151818401525b602001610227565b50505050905090810190601f16801561026d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108f857600080fd5b61090c600160a060020a03600435166124b4565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561093b57600080fd5b610328600160a060020a03600435166024356126ec565b005b341561095f57600080fd5b6101cd600160a060020a036004351661275f565b604051901515815260200160405180910390f35b341561099257600080fd5b6103596128d3565b604051600160a060020a03909116815260200160405180910390f35b34156109c157600080fd5b610328600160a060020a03600435166024356128e2565b005b34156109e557600080fd5b610328600160a060020a0360043516612c35565b005b3415610a0657600080fd5b6107df612c7d565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561081f5780820151818401525b602001610806565b505050509050019250505060405180910390f35b3415610a6d57600080fd5b610328600160a060020a0360043516612ea4565b005b3415610a8e57600080fd5b610328600435612f01565b005b60006040517f737570706f727473496e7465726661636528627974657334290000000000000081526019016040518091039020600160e060020a03191682600160e060020a0319161480610d1a57506040517f746f6b656e4d657461646174612875696e743235362c737472696e67290000008152601d0160405180910390206040517f746f6b656e734f664f776e657228616464726573732900000000000000000000815260160160405180910390206040517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602082015260250160405180910390206040517f7472616e7366657228616464726573732c75696e743235362900000000000000815260190160405180910390206040517f617070726f766528616464726573732c75696e74323536290000000000000000815260180160405180910390206040517f6f776e65724f662875696e743235362900000000000000000000000000000000815260100160405180910390206040517f62616c616e63654f662861646472657373290000000000000000000000000000815260120160405180910390206040517f746f74616c537570706c792829000000000000000000000000000000000000008152600d0160405180910390206040517f73796d626f6c2829000000000000000000000000000000000000000000000000815260080160405180910390206040517f6e616d652829000000000000000000000000000000000000000000000000000081526006016040518091039020181818181818181818600160e060020a03191682600160e060020a031916145b90505b919050565b610d2a6136a4565b610d326136b6565b600254600090600160a060020a03161515610d4c57600080fd5b600254600160a060020a031663cb4799f2878787600060405160a0015260405160e060020a63ffffffff861602815260048101848152604060248301908152604483018490529091606401848480828437820191505094505050505060a060405180830381600087803b1515610dc157600080fd5b6102c65a03f11515610dd257600080fd5b50505060405180608001805160209091016040529092509050610df58282612f55565b92505b50509392505050565b60408051908101604052600c81527f4269745061696e74696e67730000000000000000000000000000000000000000602082015281565b60005460a060020a900460ff1615610e4f57600080fd5b610e593382612faa565b1515610e6457600080fd5b610e6e818361302f565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15b5b5050565b600154600160a060020a0316632f54bf6e3360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f1d57600080fd5b6102c65a03f11515610f2e57600080fd5b5050506040518051905080610fb35750600154600160a060020a03166324d7806c3360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f9757600080fd5b6102c65a03f11515610fa857600080fd5b505050604051805190505b1515610fbe57600080fd5b438110610fca57600080fd5b80821115610fd757600080fd5b600160a060020a0383163480156108fc0290604051600060405180830381858888f19350505050151561100957600080fd5b7f5ce0713bdae07b19c9fe8119bee321b8b425f4981de47ef807bf8e2c340258968383836040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15b5b505050565b600154600160a060020a031681565b600154600090600160a060020a031663197b945482604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110c257600080fd5b6102c65a03f115156110d357600080fd5b50505060405180519150505b90565b60005460a060020a900460ff16156110f957600080fd5b61106383838361309f565b5b5b505050565b600154600090600160a060020a0316632f54bf6e83836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561116657600080fd5b6102c65a03f1151561117757600080fd5b5050506040518051905080610d1a5750600154600160a060020a03166324d7806c8360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111e057600080fd5b6102c65a03f115156111f157600080fd5b505050604051805190505b90505b919050565b600054600160a060020a038281169116145b919050565b60005433600160a060020a0390811691161461123657600080fd5b600160a060020a038116151561124b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6112813361275f565b151561128c57600080fd5b60005460a060020a900460ff16156112a357600080fd5b6112ae8c8c8c613128565b6000546112c5908d90600160a060020a031661302f565b600154600160a060020a031663783370b58d8b8b60008181106112e457fe5b9050602002013560ff168c8c600181811015156112fd57fe5b9050602002013560ff168d8d6002818110151561131657fe5b9050602002013560ff1660405160e060020a63ffffffff8716028152600481019490945260ff92831660248501529082166044840152166064820152608401600060405180830381600087803b151561136e57600080fd5b6102c65a03f1151561137f57600080fd5b50505061138a613152565b600160a060020a031663f26539668d89898e8a60405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152608482015260a401600060405180830381600087803b15156113ed57600080fd5b6102c65a03f115156113fe57600080fd5b5050600154600160a060020a0316905063d59f4e688d868660405160e060020a63ffffffff8616028152600481018481526040602483019081526044830184905290916064018484808284378201915050945050505050600060405180830381600087803b151561146e57600080fd5b6102c65a03f1151561147f57600080fd5b5050600154600160a060020a0316905063fabb79528d848460405160e060020a63ffffffff8616028152600481018481526040602483019081526044830184905290916064018484808284378201915050945050505050600060405180830381600087803b15156114ef57600080fd5b6102c65a03f1151561150057600080fd5b5050505b5b5b505050505050505050505050565b60005433600160a060020a0390811691161461152f57600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561156857600080fd5b5b5b565b6115746136a4565b61157c6136a4565b6115846136a4565b61158c6136a4565b6115946136a4565b61159c6136a4565b600154600090819081908190819081908190600160a060020a0316632efd08df82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156115f257600080fd5b6102c65a03f1151561160357600080fd5b5050506040518051905096506116188e611f51565b9550856040518059106116285750595b908082528060200260200182016040525b509c508560405180591061164a5750595b908082528060200260200182016040525b509b508560405180591061166c5750595b908082528060200260200182016040525b509a508560405180591061168e5750595b908082528060200260200182016040525b509950856040518059106116b05750595b908082528060200260200182016040525b509850856040518059106116d25750595b908082528060200260200182016040525b509750600093505b86841015611b9157600154600160a060020a031663a3e7061d8560006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561174457600080fd5b6102c65a03f1151561175557600080fd5b5050506040518051935050600160a060020a038e16611773846131fc565b600160a060020a03161461178657611b86565b600154600160a060020a031663145f8ba284600060405160c0015260405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b15156117d757600080fd5b6102c65a03f115156117e857600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051509296505050841515925061182591505057611b86565b828d868151811061183257fe5b60209081029091010152600154600160a060020a03166350df8f718460006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561188d57600080fd5b6102c65a03f1151561189e57600080fd5b50505060405180519050158c86815181106118b557fe5b911515602092830290910190910152600154600090600160a060020a03166337016a5f85836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561191757600080fd5b6102c65a03f1151561192857600080fd5b50505060405180519050118b868151811061193f57fe5b911515602092830290910190910152600154600160a060020a031663f50b769e8460006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561199f57600080fd5b6102c65a03f115156119b057600080fd5b50505060405180519150508015156119e45760008a86815181106119d057fe5b911515602092830290910190910152611a6d565b600154600160a060020a03166350df8f718260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611a3557600080fd5b6102c65a03f11515611a4657600080fd5b50505060405180519050158a8681518110611a5d57fe5b9115156020928302909101909101525b600154600160a060020a0316630af9d89c8460006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611abe57600080fd5b6102c65a03f11515611acf57600080fd5b50505060405180519050898681518110611ae557fe5b60ff909216602092830290910190910152600154600160a060020a0316639ed573608460006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611b4757600080fd5b6102c65a03f11515611b5857600080fd5b50505060405180519050888681518110611b6e57fe5b60ff9092166020928302909101909101526001909401935b6001909301926116eb565b5b5050505050505091939550919395565b60005433600160a060020a0390811691161480611c325750600154600160a060020a031663ca4b208b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611c0257600080fd5b6102c65a03f11515611c1357600080fd5b50505060405180519050600160a060020a031633600160a060020a0316145b1515611c3d57600080fd5b60005460a060020a900460ff161515611c5557600080fd5b611568613271565b5b5b5b565b611c6b3361110b565b1515611c7657600080fd5b60005460a060020a900460ff1615611c8d57600080fd5b600154600160a060020a03166337e246ad8260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611cde57600080fd5b6102c65a03f11515611cef57600080fd5b505050604051805190501515611d0457600080fd5b600154600160a060020a0316637d6979e78260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611d5557600080fd5b6102c65a03f11515611d6657600080fd5b505050604051805190501515611d7b57600080fd5b600154600160a060020a0316638635b5278260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515611dc357600080fd5b6102c65a03f11515611dd457600080fd5b5050600154600160a060020a03169050632dd7030b8260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515611e2057600080fd5b6102c65a03f11515611e3157600080fd5b5050600154600160a060020a03169050634a61f3478260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515611e7d57600080fd5b6102c65a03f11515611e8e57600080fd5b5050600154600160a060020a0316905063a61bd76d8260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515611eda57600080fd5b6102c65a03f11515611eeb57600080fd5b5050505b5b5b50565b60006040517f7061696e74696e67730000000000000000000000000000000000000000000000815260090160405190819003902090505b90565b60005460a060020a900460ff1681565b6000610d1a826131fc565b90505b919050565b600154600090600160a060020a031663b4f6eae483836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111e057600080fd5b6102c65a03f115156111f157600080fd5b50505060405180519150505b919050565b6000611fd93361275f565b1515611fe457600080fd5b60005460a060020a900460ff1615611ffb57600080fd5b50426120088c8c83613128565b60005461201f908d90600160a060020a031661302f565b600154600160a060020a031663783370b58d8c8c600081811061203e57fe5b9050602002013560ff168d8d6001818110151561205757fe5b9050602002013560ff168e8e6002818110151561207057fe5b9050602002013560ff1660405160e060020a63ffffffff8716028152600481019490945260ff92831660248501529082166044840152166064820152608401600060405180830381600087803b15156120c857600080fd5b6102c65a03f115156120d957600080fd5b5050506120e4613152565b600160a060020a031663f26539668d8a8a428b60405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152608482015260a401600060405180830381600087803b151561214757600080fd5b6102c65a03f1151561215857600080fd5b5050600154600160a060020a0316905063d59f4e688d878760405160e060020a63ffffffff8616028152600481018481526040602483019081526044830184905290916064018484808284378201915050945050505050600060405180830381600087803b15156121c857600080fd5b6102c65a03f115156121d957600080fd5b5050600154600160a060020a0316905063fabb79528d858560405160e060020a63ffffffff8616028152600481018481526040602483019081526044830184905290916064018484808284378201915050945050505050600060405180830381600087803b15156114ef57600080fd5b6102c65a03f1151561150057600080fd5b5050505b5b5b505050505050505050505050565b60005433600160a060020a03908116911614806122fe5750600154600160a060020a031663ca4b208b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156122ce57600080fd5b6102c65a03f115156122df57600080fd5b50505060405180519050600160a060020a031633600160a060020a0316145b151561230957600080fd5b60005460a060020a900460ff161561232057600080fd5b6115686132d7565b5b5b5b565b6123356136a4565b600061233f6136a4565b600080600061234d87611f51565b945084151561237e5760006040518059106123655750595b908082528060200260200182016040525b509550612464565b8460405180591061238c5750595b908082528060200260200182016040525b5093506123a8611078565b925060009150600190505b82811161246057600154600160a060020a038089169116630d66343c8360006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561240f57600080fd5b6102c65a03f1151561242057600080fd5b50505060405180519050600160a060020a03161415612457578084838151811061244657fe5b602090810290910101526001909101905b5b6001016123b3565b8395505b5050505050919050565b600054600160a060020a031681565b60408051908101604052600281527f4250000000000000000000000000000000000000000000000000000000000000602082015281565b6000806000806000806124c5611078565b9250600091505b828210156126e157600154600160a060020a031663a3e7061d8360006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561252557600080fd5b6102c65a03f1151561253657600080fd5b5050506040518051915050600160a060020a038716612554826131fc565b600160a060020a031614612567576126d5565b60018054960195600160a060020a03166350df8f718260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156125bc57600080fd5b6102c65a03f115156125cd57600080fd5b505050604051805190501561265c57600154600090600160a060020a03166337016a5f83836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561262f57600080fd5b6102c65a03f1151561264057600080fd5b505050604051805190501115612657576001909301925b6126d5565b600154600160a060020a03166350df8f718260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156126ad57600080fd5b6102c65a03f115156126be57600080fd5b5050506040518051905015156126d5576001909401935b5b6001909101906124cc565b5b5050509193909250565b60005460a060020a900460ff161561270357600080fd5b600160a060020a038216151561271857600080fd5b30600160a060020a031682600160a060020a03161415151561273957600080fd5b6127433382612faa565b151561274e57600080fd5b610ebf338383613342565b5b5b5050565b600154600090600160a060020a0316632f54bf6e83836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156127ba57600080fd5b6102c65a03f115156127cb57600080fd5b50505060405180519050806128505750600154600160a060020a03166324d7806c8360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561283457600080fd5b6102c65a03f1151561284557600080fd5b505050604051805190505b80610d1a5750600154600160a060020a031663babcc5398360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111e057600080fd5b6102c65a03f115156111f157600080fd5b505050604051805190505b90505b919050565b600254600160a060020a031681565b60005460a060020a900460ff16156128f957600080fd5b600160a060020a038216151561290e57600080fd5b30600160a060020a031682600160a060020a03161415151561292f57600080fd5b6129393382612faa565b151561294457600080fd5b600154600160a060020a03166350df8f718260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051905015156129bb57600080fd5b600154600160a060020a0316635f4eab658260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515612a0c57600080fd5b6102c65a03f11515612a1d57600080fd5b5050506040518051159050612a3157600080fd5b600154600160a060020a03166337e246ad8260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515612a8257600080fd5b6102c65a03f11515612a9357600080fd5b5050506040518051905015612aff57600154600160a060020a0316632dd7030b8260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515612aea57600080fd5b6102c65a03f11515612afb57600080fd5b5050505b600154600160a060020a0316631e801c8c8260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515612b4757600080fd5b6102c65a03f11515612b5857600080fd5b505050612b66338383613342565b600154600160a060020a0316636bfaa9038360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515612bb657600080fd5b6102c65a03f11515612bc757600080fd5b5050600154600160a060020a03169050631be6ce573360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515612c1b57600080fd5b6102c65a03f11515612c2c57600080fd5b5050505b5b5050565b60005433600160a060020a03908116911614612c5057600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b612c856136a4565b6001546000908190819081908190600160a060020a0316632efd08df82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612cd757600080fd5b6102c65a03f11515612ce857600080fd5b5050506040518051600154909650600160a060020a0316905063197b94546000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612d3d57600080fd5b6102c65a03f11515612d4e57600080fd5b50505060405180519050935083604051805910612d685750595b908082528060200260200182016040525b50955060009250600091505b84821015612e9b57600154600160a060020a031663a3e7061d8360006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515612dde57600080fd5b6102c65a03f11515612def57600080fd5b5050506040518051600154909250600160a060020a031690506339e3af9b8260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515612e4d57600080fd5b6102c65a03f11515612e5e57600080fd5b5050506040518051905015612e7257612e90565b80868481518110612e7f57fe5b602090810290910101526001909201915b600190910190612d85565b5b505050505090565b60005433600160a060020a03908116911614612ebf57600080fd5b600160a060020a0381161515612ed457600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b612f0a3361275f565b1515612f1557600080fd5b60005460a060020a900460ff1615612f2c57600080fd5b612f3881600142613128565b600054611274908290600160a060020a031661302f565b5b5b5b50565b612f5d6136a4565b612f656136a4565b60008084604051805910612f765750595b908082528060200260200182016040525b5092505060208201905084612f9d828287613403565b8293505b50505092915050565b600154600090600160a060020a038085169116630d66343c84846040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561300157600080fd5b6102c65a03f1151561301257600080fd5b50505060405180519050600160a060020a03161490505b92915050565b600154600160a060020a031663febe4909838360405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b1515612c1b57600080fd5b6102c65a03f11515612c2c57600080fd5b5050505b5050565b60005460a060020a900460ff16156130b657600080fd5b600160a060020a03821615156130cb57600080fd5b30600160a060020a031682600160a060020a0316141515156130ec57600080fd5b6130f6338261344a565b151561310157600080fd5b61310b8382612faa565b151561311657600080fd5b611063838383613342565b5b5b505050565b60008054600160a060020a03169080600a61314884888480858b8b6134cf565b5b50505050505050565b6000806040517f61756374696f6e730000000000000000000000000000000000000000000000008152600801604051908190039020600154909150600160a060020a031663474da79a8260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156131db57600080fd5b6102c65a03f115156131ec57600080fd5b50505060405180519250505b5090565b600154600090600160a060020a0316630d66343c83836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156111e057600080fd5b6102c65a03f115156111f157600080fd5b50505060405180519150505b919050565b60005460a060020a900460ff16151561328957600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a15b5b565b60005460a060020a900460ff16156132ee57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a15b5b565b600154600160a060020a031663687c4fa7828460405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b151561339957600080fd5b6102c65a03f115156133aa57600080fd5b5050507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15b505050565b60005b6020821061342a57825184526020840193506020830192505b602082039150613406565b6001826020036101000a0390508019835116818551161784525b50505050565b600154600090600160a060020a031663b5b12e758385846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b15156134ac57600080fd5b6102c65a03f115156134bd57600080fd5b50505060405180519150505b92915050565b60008063ffffffff881688146134e457600080fd5b63ffffffff871687146134f657600080fd5b5b600154600160a060020a0316638754b1d18a8a8a8a8a8a8a60405160e060020a63ffffffff8a16028152600160a060020a0390971660048801526024870195909552604486019390935260ff918216606486015216608484015260a483015260c482015260e401600060405180830381600087803b151561357757600080fd5b6102c65a03f1151561358857600080fd5b5050600154600160a060020a0316905063145f8ba289600060405160c0015260405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b15156135dd57600080fd5b6102c65a03f115156135ee57600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051509296509094507f30327159df74d598a666b3800d1708fc84a7a52e5f6fb58cdd4bdffe7ad653c793508b92508c91508a9050898686604051958652600160a060020a03909416602086015260408086019390935260ff9091166060850152608084015260a083019190915260c0909101905180910390a161369860008a8a613342565b5b505050505050505050565b60206040519081016040526000815290565b60806040519081016040526004815b600081526000199190910190602001816136c55790505090565b60206040519081016040526000815290565b60206040519081016040526000815290565b602060405190810160405260008152905600a165627a7a72305820c0ea2fa0388529abf07d63e43f301f8796c232745c5992c476a6b5d28d30a2510029
Deployed Bytecode
0x606060405236156101905763ffffffff60e060020a60003504166301ffc9a781146101955780630560ff44146101e157806306fdde031461027b578063095ea7b3146103065780630a52d1941461032a578063179047431461034657806318160ddd1461037557806323b872dd1461039a578063290b3cb7146103c45780632f54bf6e146103f7578063362f29c91461042a57806338284f361461044b5780633ccfd60b1461049c5780633e94c904146104b15780633f4ba83a1461068357806340e58ee51461069857806351ff4847146106b05780635c975abb146106d55780636352211e146106fc57806370a082311461072e5780637984932e1461075f5780638456cb59146107ab5780638462151c146107c05780638da5cb5b1461083357806395d89b41146108625780639d5c7be8146108ed578063a9059cbb14610930578063aad9973f14610954578063bc4006f514610987578063c7046117146109b6578063e17b25af146109da578063e7619fad146109fb578063f2fde38b14610a62578063fe5709cd14610a83575b600080fd5b34156101a057600080fd5b6101cd7fffffffff0000000000000000000000000000000000000000000000000000000060043516610a9b565b604051901515815260200160405180910390f35b34156101ec57600080fd5b610203600480359060248035908101910135610d22565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102405780820151818401525b602001610227565b50505050905090810190601f16801561026d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028657600080fd5b610203610e01565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102405780820151818401525b602001610227565b50505050905090810190601f16801561026d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031157600080fd5b610328600160a060020a0360043516602435610e38565b005b610328600160a060020a0360043516602435604435610ec4565b005b341561035157600080fd5b610359611069565b604051600160a060020a03909116815260200160405180910390f35b341561038057600080fd5b610388611078565b60405190815260200160405180910390f35b34156103a557600080fd5b610328600160a060020a03600435811690602435166044356110e2565b005b34156103cf57600080fd5b6101cd600160a060020a036004351661110b565b604051901515815260200160405180910390f35b341561040257600080fd5b6101cd600160a060020a0360043516611204565b604051901515815260200160405180910390f35b341561043557600080fd5b610328600160a060020a036004351661121b565b005b341561045657600080fd5b61032860048035906024803591604435916064358082019290810135916084359160a4359160c4359160e43580830192908201359161010435918201910135611278565b005b34156104a757600080fd5b610328611514565b005b34156104bc57600080fd5b6104d0600160a060020a036004351661156c565b6040518080602001806020018060200180602001806020018060200187810387528d818151815260200191508051906020019060200280838360005b838110156105255780820151818401525b60200161050c565b5050505090500187810386528c818151815260200191508051906020019060200280838360005b838110156105655780820151818401525b60200161054c565b5050505090500187810385528b818151815260200191508051906020019060200280838360005b838110156105a55780820151818401525b60200161058c565b5050505090500187810384528a818151815260200191508051906020019060200280838360005b838110156105e55780820151818401525b6020016105cc565b50505050905001878103835289818151815260200191508051906020019060200280838360005b838110156106255780820151818401525b60200161060c565b50505050905001878103825288818151815260200191508051906020019060200280838360005b838110156106655780820151818401525b60200161064c565b505050509050019c5050505050505050505050505060405180910390f35b341561068e57600080fd5b610328611ba2565b005b34156106a357600080fd5b610328600435611c62565b005b34156106bb57600080fd5b610388611ef4565b60405190815260200160405180910390f35b34156106e057600080fd5b6101cd611f2e565b604051901515815260200160405180910390f35b341561070757600080fd5b610359600435611f3e565b604051600160a060020a03909116815260200160405180910390f35b341561073957600080fd5b610388600160a060020a0360043516611f51565b60405190815260200160405180910390f35b341561076a57600080fd5b61032860048035906024803591604435808301929082013591606435916084359160a4359160c43580820192908101359160e435908101910135611fce565b005b34156107b657600080fd5b61032861226e565b005b34156107cb57600080fd5b6107df600160a060020a036004351661232d565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561081f5780820151818401525b602001610806565b505050509050019250505060405180910390f35b341561083e57600080fd5b61035961246e565b604051600160a060020a03909116815260200160405180910390f35b341561086d57600080fd5b61020361247d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102405780820151818401525b602001610227565b50505050905090810190601f16801561026d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108f857600080fd5b61090c600160a060020a03600435166124b4565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561093b57600080fd5b610328600160a060020a03600435166024356126ec565b005b341561095f57600080fd5b6101cd600160a060020a036004351661275f565b604051901515815260200160405180910390f35b341561099257600080fd5b6103596128d3565b604051600160a060020a03909116815260200160405180910390f35b34156109c157600080fd5b610328600160a060020a03600435166024356128e2565b005b34156109e557600080fd5b610328600160a060020a0360043516612c35565b005b3415610a0657600080fd5b6107df612c7d565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561081f5780820151818401525b602001610806565b505050509050019250505060405180910390f35b3415610a6d57600080fd5b610328600160a060020a0360043516612ea4565b005b3415610a8e57600080fd5b610328600435612f01565b005b60006040517f737570706f727473496e7465726661636528627974657334290000000000000081526019016040518091039020600160e060020a03191682600160e060020a0319161480610d1a57506040517f746f6b656e4d657461646174612875696e743235362c737472696e67290000008152601d0160405180910390206040517f746f6b656e734f664f776e657228616464726573732900000000000000000000815260160160405180910390206040517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f7432353629000000000000000000000000000000000000000000000000000000602082015260250160405180910390206040517f7472616e7366657228616464726573732c75696e743235362900000000000000815260190160405180910390206040517f617070726f766528616464726573732c75696e74323536290000000000000000815260180160405180910390206040517f6f776e65724f662875696e743235362900000000000000000000000000000000815260100160405180910390206040517f62616c616e63654f662861646472657373290000000000000000000000000000815260120160405180910390206040517f746f74616c537570706c792829000000000000000000000000000000000000008152600d0160405180910390206040517f73796d626f6c2829000000000000000000000000000000000000000000000000815260080160405180910390206040517f6e616d652829000000000000000000000000000000000000000000000000000081526006016040518091039020181818181818181818600160e060020a03191682600160e060020a031916145b90505b919050565b610d2a6136a4565b610d326136b6565b600254600090600160a060020a03161515610d4c57600080fd5b600254600160a060020a031663cb4799f2878787600060405160a0015260405160e060020a63ffffffff861602815260048101848152604060248301908152604483018490529091606401848480828437820191505094505050505060a060405180830381600087803b1515610dc157600080fd5b6102c65a03f11515610dd257600080fd5b50505060405180608001805160209091016040529092509050610df58282612f55565b92505b50509392505050565b60408051908101604052600c81527f4269745061696e74696e67730000000000000000000000000000000000000000602082015281565b60005460a060020a900460ff1615610e4f57600080fd5b610e593382612faa565b1515610e6457600080fd5b610e6e818361302f565b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925338383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15b5b5050565b600154600160a060020a0316632f54bf6e3360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f1d57600080fd5b6102c65a03f11515610f2e57600080fd5b5050506040518051905080610fb35750600154600160a060020a03166324d7806c3360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f9757600080fd5b6102c65a03f11515610fa857600080fd5b505050604051805190505b1515610fbe57600080fd5b438110610fca57600080fd5b80821115610fd757600080fd5b600160a060020a0383163480156108fc0290604051600060405180830381858888f19350505050151561100957600080fd5b7f5ce0713bdae07b19c9fe8119bee321b8b425f4981de47ef807bf8e2c340258968383836040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15b5b505050565b600154600160a060020a031681565b600154600090600160a060020a031663197b945482604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156110c257600080fd5b6102c65a03f115156110d357600080fd5b50505060405180519150505b90565b60005460a060020a900460ff16156110f957600080fd5b61106383838361309f565b5b5b505050565b600154600090600160a060020a0316632f54bf6e83836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561116657600080fd5b6102c65a03f1151561117757600080fd5b5050506040518051905080610d1a5750600154600160a060020a03166324d7806c8360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111e057600080fd5b6102c65a03f115156111f157600080fd5b505050604051805190505b90505b919050565b600054600160a060020a038281169116145b919050565b60005433600160a060020a0390811691161461123657600080fd5b600160a060020a038116151561124b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6112813361275f565b151561128c57600080fd5b60005460a060020a900460ff16156112a357600080fd5b6112ae8c8c8c613128565b6000546112c5908d90600160a060020a031661302f565b600154600160a060020a031663783370b58d8b8b60008181106112e457fe5b9050602002013560ff168c8c600181811015156112fd57fe5b9050602002013560ff168d8d6002818110151561131657fe5b9050602002013560ff1660405160e060020a63ffffffff8716028152600481019490945260ff92831660248501529082166044840152166064820152608401600060405180830381600087803b151561136e57600080fd5b6102c65a03f1151561137f57600080fd5b50505061138a613152565b600160a060020a031663f26539668d89898e8a60405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152608482015260a401600060405180830381600087803b15156113ed57600080fd5b6102c65a03f115156113fe57600080fd5b5050600154600160a060020a0316905063d59f4e688d868660405160e060020a63ffffffff8616028152600481018481526040602483019081526044830184905290916064018484808284378201915050945050505050600060405180830381600087803b151561146e57600080fd5b6102c65a03f1151561147f57600080fd5b5050600154600160a060020a0316905063fabb79528d848460405160e060020a63ffffffff8616028152600481018481526040602483019081526044830184905290916064018484808284378201915050945050505050600060405180830381600087803b15156114ef57600080fd5b6102c65a03f1151561150057600080fd5b5050505b5b5b505050505050505050505050565b60005433600160a060020a0390811691161461152f57600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561156857600080fd5b5b5b565b6115746136a4565b61157c6136a4565b6115846136a4565b61158c6136a4565b6115946136a4565b61159c6136a4565b600154600090819081908190819081908190600160a060020a0316632efd08df82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156115f257600080fd5b6102c65a03f1151561160357600080fd5b5050506040518051905096506116188e611f51565b9550856040518059106116285750595b908082528060200260200182016040525b509c508560405180591061164a5750595b908082528060200260200182016040525b509b508560405180591061166c5750595b908082528060200260200182016040525b509a508560405180591061168e5750595b908082528060200260200182016040525b509950856040518059106116b05750595b908082528060200260200182016040525b509850856040518059106116d25750595b908082528060200260200182016040525b509750600093505b86841015611b9157600154600160a060020a031663a3e7061d8560006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561174457600080fd5b6102c65a03f1151561175557600080fd5b5050506040518051935050600160a060020a038e16611773846131fc565b600160a060020a03161461178657611b86565b600154600160a060020a031663145f8ba284600060405160c0015260405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b15156117d757600080fd5b6102c65a03f115156117e857600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051509296505050841515925061182591505057611b86565b828d868151811061183257fe5b60209081029091010152600154600160a060020a03166350df8f718460006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561188d57600080fd5b6102c65a03f1151561189e57600080fd5b50505060405180519050158c86815181106118b557fe5b911515602092830290910190910152600154600090600160a060020a03166337016a5f85836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561191757600080fd5b6102c65a03f1151561192857600080fd5b50505060405180519050118b868151811061193f57fe5b911515602092830290910190910152600154600160a060020a031663f50b769e8460006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561199f57600080fd5b6102c65a03f115156119b057600080fd5b50505060405180519150508015156119e45760008a86815181106119d057fe5b911515602092830290910190910152611a6d565b600154600160a060020a03166350df8f718260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611a3557600080fd5b6102c65a03f11515611a4657600080fd5b50505060405180519050158a8681518110611a5d57fe5b9115156020928302909101909101525b600154600160a060020a0316630af9d89c8460006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611abe57600080fd5b6102c65a03f11515611acf57600080fd5b50505060405180519050898681518110611ae557fe5b60ff909216602092830290910190910152600154600160a060020a0316639ed573608460006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611b4757600080fd5b6102c65a03f11515611b5857600080fd5b50505060405180519050888681518110611b6e57fe5b60ff9092166020928302909101909101526001909401935b6001909301926116eb565b5b5050505050505091939550919395565b60005433600160a060020a0390811691161480611c325750600154600160a060020a031663ca4b208b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611c0257600080fd5b6102c65a03f11515611c1357600080fd5b50505060405180519050600160a060020a031633600160a060020a0316145b1515611c3d57600080fd5b60005460a060020a900460ff161515611c5557600080fd5b611568613271565b5b5b5b565b611c6b3361110b565b1515611c7657600080fd5b60005460a060020a900460ff1615611c8d57600080fd5b600154600160a060020a03166337e246ad8260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611cde57600080fd5b6102c65a03f11515611cef57600080fd5b505050604051805190501515611d0457600080fd5b600154600160a060020a0316637d6979e78260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515611d5557600080fd5b6102c65a03f11515611d6657600080fd5b505050604051805190501515611d7b57600080fd5b600154600160a060020a0316638635b5278260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515611dc357600080fd5b6102c65a03f11515611dd457600080fd5b5050600154600160a060020a03169050632dd7030b8260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515611e2057600080fd5b6102c65a03f11515611e3157600080fd5b5050600154600160a060020a03169050634a61f3478260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515611e7d57600080fd5b6102c65a03f11515611e8e57600080fd5b5050600154600160a060020a0316905063a61bd76d8260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515611eda57600080fd5b6102c65a03f11515611eeb57600080fd5b5050505b5b5b50565b60006040517f7061696e74696e67730000000000000000000000000000000000000000000000815260090160405190819003902090505b90565b60005460a060020a900460ff1681565b6000610d1a826131fc565b90505b919050565b600154600090600160a060020a031663b4f6eae483836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111e057600080fd5b6102c65a03f115156111f157600080fd5b50505060405180519150505b919050565b6000611fd93361275f565b1515611fe457600080fd5b60005460a060020a900460ff1615611ffb57600080fd5b50426120088c8c83613128565b60005461201f908d90600160a060020a031661302f565b600154600160a060020a031663783370b58d8c8c600081811061203e57fe5b9050602002013560ff168d8d6001818110151561205757fe5b9050602002013560ff168e8e6002818110151561207057fe5b9050602002013560ff1660405160e060020a63ffffffff8716028152600481019490945260ff92831660248501529082166044840152166064820152608401600060405180830381600087803b15156120c857600080fd5b6102c65a03f115156120d957600080fd5b5050506120e4613152565b600160a060020a031663f26539668d8a8a428b60405160e060020a63ffffffff88160281526004810195909552602485019390935260448401919091526064830152608482015260a401600060405180830381600087803b151561214757600080fd5b6102c65a03f1151561215857600080fd5b5050600154600160a060020a0316905063d59f4e688d878760405160e060020a63ffffffff8616028152600481018481526040602483019081526044830184905290916064018484808284378201915050945050505050600060405180830381600087803b15156121c857600080fd5b6102c65a03f115156121d957600080fd5b5050600154600160a060020a0316905063fabb79528d858560405160e060020a63ffffffff8616028152600481018481526040602483019081526044830184905290916064018484808284378201915050945050505050600060405180830381600087803b15156114ef57600080fd5b6102c65a03f1151561150057600080fd5b5050505b5b5b505050505050505050505050565b60005433600160a060020a03908116911614806122fe5750600154600160a060020a031663ca4b208b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156122ce57600080fd5b6102c65a03f115156122df57600080fd5b50505060405180519050600160a060020a031633600160a060020a0316145b151561230957600080fd5b60005460a060020a900460ff161561232057600080fd5b6115686132d7565b5b5b5b565b6123356136a4565b600061233f6136a4565b600080600061234d87611f51565b945084151561237e5760006040518059106123655750595b908082528060200260200182016040525b509550612464565b8460405180591061238c5750595b908082528060200260200182016040525b5093506123a8611078565b925060009150600190505b82811161246057600154600160a060020a038089169116630d66343c8360006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561240f57600080fd5b6102c65a03f1151561242057600080fd5b50505060405180519050600160a060020a03161415612457578084838151811061244657fe5b602090810290910101526001909101905b5b6001016123b3565b8395505b5050505050919050565b600054600160a060020a031681565b60408051908101604052600281527f4250000000000000000000000000000000000000000000000000000000000000602082015281565b6000806000806000806124c5611078565b9250600091505b828210156126e157600154600160a060020a031663a3e7061d8360006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561252557600080fd5b6102c65a03f1151561253657600080fd5b5050506040518051915050600160a060020a038716612554826131fc565b600160a060020a031614612567576126d5565b60018054960195600160a060020a03166350df8f718260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156125bc57600080fd5b6102c65a03f115156125cd57600080fd5b505050604051805190501561265c57600154600090600160a060020a03166337016a5f83836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561262f57600080fd5b6102c65a03f1151561264057600080fd5b505050604051805190501115612657576001909301925b6126d5565b600154600160a060020a03166350df8f718260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156126ad57600080fd5b6102c65a03f115156126be57600080fd5b5050506040518051905015156126d5576001909401935b5b6001909101906124cc565b5b5050509193909250565b60005460a060020a900460ff161561270357600080fd5b600160a060020a038216151561271857600080fd5b30600160a060020a031682600160a060020a03161415151561273957600080fd5b6127433382612faa565b151561274e57600080fd5b610ebf338383613342565b5b5b5050565b600154600090600160a060020a0316632f54bf6e83836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156127ba57600080fd5b6102c65a03f115156127cb57600080fd5b50505060405180519050806128505750600154600160a060020a03166324d7806c8360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561283457600080fd5b6102c65a03f1151561284557600080fd5b505050604051805190505b80610d1a5750600154600160a060020a031663babcc5398360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156111e057600080fd5b6102c65a03f115156111f157600080fd5b505050604051805190505b90505b919050565b600254600160a060020a031681565b60005460a060020a900460ff16156128f957600080fd5b600160a060020a038216151561290e57600080fd5b30600160a060020a031682600160a060020a03161415151561292f57600080fd5b6129393382612faa565b151561294457600080fd5b600154600160a060020a03166350df8f718260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561299557600080fd5b6102c65a03f115156129a657600080fd5b5050506040518051905015156129bb57600080fd5b600154600160a060020a0316635f4eab658260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515612a0c57600080fd5b6102c65a03f11515612a1d57600080fd5b5050506040518051159050612a3157600080fd5b600154600160a060020a03166337e246ad8260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515612a8257600080fd5b6102c65a03f11515612a9357600080fd5b5050506040518051905015612aff57600154600160a060020a0316632dd7030b8260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515612aea57600080fd5b6102c65a03f11515612afb57600080fd5b5050505b600154600160a060020a0316631e801c8c8260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515612b4757600080fd5b6102c65a03f11515612b5857600080fd5b505050612b66338383613342565b600154600160a060020a0316636bfaa9038360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515612bb657600080fd5b6102c65a03f11515612bc757600080fd5b5050600154600160a060020a03169050631be6ce573360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515612c1b57600080fd5b6102c65a03f11515612c2c57600080fd5b5050505b5b5050565b60005433600160a060020a03908116911614612c5057600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b612c856136a4565b6001546000908190819081908190600160a060020a0316632efd08df82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612cd757600080fd5b6102c65a03f11515612ce857600080fd5b5050506040518051600154909650600160a060020a0316905063197b94546000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612d3d57600080fd5b6102c65a03f11515612d4e57600080fd5b50505060405180519050935083604051805910612d685750595b908082528060200260200182016040525b50955060009250600091505b84821015612e9b57600154600160a060020a031663a3e7061d8360006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515612dde57600080fd5b6102c65a03f11515612def57600080fd5b5050506040518051600154909250600160a060020a031690506339e3af9b8260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515612e4d57600080fd5b6102c65a03f11515612e5e57600080fd5b5050506040518051905015612e7257612e90565b80868481518110612e7f57fe5b602090810290910101526001909201915b600190910190612d85565b5b505050505090565b60005433600160a060020a03908116911614612ebf57600080fd5b600160a060020a0381161515612ed457600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b612f0a3361275f565b1515612f1557600080fd5b60005460a060020a900460ff1615612f2c57600080fd5b612f3881600142613128565b600054611274908290600160a060020a031661302f565b5b5b5b50565b612f5d6136a4565b612f656136a4565b60008084604051805910612f765750595b908082528060200260200182016040525b5092505060208201905084612f9d828287613403565b8293505b50505092915050565b600154600090600160a060020a038085169116630d66343c84846040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561300157600080fd5b6102c65a03f1151561301257600080fd5b50505060405180519050600160a060020a03161490505b92915050565b600154600160a060020a031663febe4909838360405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b1515612c1b57600080fd5b6102c65a03f11515612c2c57600080fd5b5050505b5050565b60005460a060020a900460ff16156130b657600080fd5b600160a060020a03821615156130cb57600080fd5b30600160a060020a031682600160a060020a0316141515156130ec57600080fd5b6130f6338261344a565b151561310157600080fd5b61310b8382612faa565b151561311657600080fd5b611063838383613342565b5b5b505050565b60008054600160a060020a03169080600a61314884888480858b8b6134cf565b5b50505050505050565b6000806040517f61756374696f6e730000000000000000000000000000000000000000000000008152600801604051908190039020600154909150600160a060020a031663474da79a8260006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156131db57600080fd5b6102c65a03f115156131ec57600080fd5b50505060405180519250505b5090565b600154600090600160a060020a0316630d66343c83836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156111e057600080fd5b6102c65a03f115156111f157600080fd5b50505060405180519150505b919050565b60005460a060020a900460ff16151561328957600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a15b5b565b60005460a060020a900460ff16156132ee57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a15b5b565b600154600160a060020a031663687c4fa7828460405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401600060405180830381600087803b151561339957600080fd5b6102c65a03f115156133aa57600080fd5b5050507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15b505050565b60005b6020821061342a57825184526020840193506020830192505b602082039150613406565b6001826020036101000a0390508019835116818551161784525b50505050565b600154600090600160a060020a031663b5b12e758385846040516020015260405160e060020a63ffffffff85160281526004810192909252600160a060020a03166024820152604401602060405180830381600087803b15156134ac57600080fd5b6102c65a03f115156134bd57600080fd5b50505060405180519150505b92915050565b60008063ffffffff881688146134e457600080fd5b63ffffffff871687146134f657600080fd5b5b600154600160a060020a0316638754b1d18a8a8a8a8a8a8a60405160e060020a63ffffffff8a16028152600160a060020a0390971660048801526024870195909552604486019390935260ff918216606486015216608484015260a483015260c482015260e401600060405180830381600087803b151561357757600080fd5b6102c65a03f1151561358857600080fd5b5050600154600160a060020a0316905063145f8ba289600060405160c0015260405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b15156135dd57600080fd5b6102c65a03f115156135ee57600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051509296509094507f30327159df74d598a666b3800d1708fc84a7a52e5f6fb58cdd4bdffe7ad653c793508b92508c91508a9050898686604051958652600160a060020a03909416602086015260408086019390935260ff9091166060850152608084015260a083019190915260c0909101905180910390a161369860008a8a613342565b5b505050505050505050565b60206040519081016040526000815290565b60806040519081016040526004815b600081526000199190910190602001816136c55790505090565b60206040519081016040526000815290565b60206040519081016040526000815290565b602060405190810160405260008152905600a165627a7a72305820c0ea2fa0388529abf07d63e43f301f8796c232745c5992c476a6b5d28d30a2510029
Swarm Source
bzzr://c0ea2fa0388529abf07d63e43f301f8796c232745c5992c476a6b5d28d30a251
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 ]
[ 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.