Source Code
Overview
ETH Balance
0.045152 ETH
Eth Value
$92.83 (@ $2,055.91/ETH)Latest 25 from a total of 32 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Join Pillar | 6440558 | 2717 days ago | IN | 0.01 ETH | 0.00235109 | ||||
| Withdraw Winning... | 6397310 | 2724 days ago | IN | 0 ETH | 0.00008844 | ||||
| Join Pillar With... | 6388496 | 2726 days ago | IN | 0 ETH | 0.00116611 | ||||
| Withdraw Winning... | 6387457 | 2726 days ago | IN | 0 ETH | 0.00009038 | ||||
| Withdraw Winning... | 6387350 | 2726 days ago | IN | 0 ETH | 0.00020337 | ||||
| Withdraw Winning... | 6387350 | 2726 days ago | IN | 0 ETH | 0.0001401 | ||||
| Withdraw Winning... | 6387347 | 2726 days ago | IN | 0 ETH | 0.00009038 | ||||
| Withdraw Winning... | 6386572 | 2726 days ago | IN | 0 ETH | 0.00008844 | ||||
| Withdraw Winning... | 6385294 | 2726 days ago | IN | 0 ETH | 0.00008828 | ||||
| Join Pillar | 6385152 | 2726 days ago | IN | 0.01 ETH | 0.00185354 | ||||
| Join Pillar | 6385137 | 2726 days ago | IN | 0.01 ETH | 0.00101406 | ||||
| Join Pillar | 6385133 | 2726 days ago | IN | 0.01 ETH | 0.0008 | ||||
| Join Pillar | 6378771 | 2727 days ago | IN | 0.01 ETH | 0.00089789 | ||||
| Join Pillar | 6378752 | 2727 days ago | IN | 0.01 ETH | 0.00094565 | ||||
| Join Pillar | 6378734 | 2727 days ago | IN | 0.01 ETH | 0.00084062 | ||||
| Join Pillar | 6361032 | 2730 days ago | IN | 0.01 ETH | 0.0010613 | ||||
| Join Pillar | 6358828 | 2731 days ago | IN | 0.01 ETH | 0.00016209 | ||||
| Join Pillar | 6358424 | 2731 days ago | IN | 0.01 ETH | 0.00131293 | ||||
| Join Pillar | 6356589 | 2731 days ago | IN | 0.01 ETH | 0.0002705 | ||||
| Join Pillar | 6356537 | 2731 days ago | IN | 0.01 ETH | 0.00127777 | ||||
| Join Pillar | 6356374 | 2731 days ago | IN | 0.01 ETH | 0.00015943 | ||||
| Join Pillar | 6356355 | 2731 days ago | IN | 0.01 ETH | 0.00015943 | ||||
| Join Pillar | 6356341 | 2731 days ago | IN | 0.01 ETH | 0.00015943 | ||||
| Join Pillar | 6356332 | 2731 days ago | IN | 0.01 ETH | 0.00120245 | ||||
| Join Pillar | 6356332 | 2731 days ago | IN | 0.01 ETH | 0.00013286 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
KittyPillar
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-09-03
*/
pragma solidity ^0.4.21;
//**********************************************************************************
// KITTYPILLAR CONTRACT
//**********************************************************************************
contract KittyPillar {
using SafeMath for uint256;
address public owner; //owner of this contract
address public kittyCoreAddress; //address of kittyCore
KittyCoreInterface private kittyCore; //kittycore reference
//**********************************************************************************
// Events
//**********************************************************************************
event PlayerJoined
(
address playerAddr,
uint256 pId,
uint256 timeStamp
);
event KittyJoined
(
address ownerAddr,
uint256 kittyId,
uint8 pillarIdx,
uint256 contribution,
uint256 currentRound,
uint256 timeStamp
);
event RoundEnded
(
uint256 currentRId,
uint256 pillarWon,
uint256 timeStamp
);
event Withdrawal
(
address playerAddr,
uint256 pId,
uint256 amount,
uint256 timeStamp
);
//**********************************************************************************
// Modifiers
//**********************************************************************************
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
//**********************************************************************************
// Configs
//**********************************************************************************
uint256 public contributionTarget_ = 100; //round target contributions
bool public paused_ = false;
uint256 public joinFee_ = 10000000000000000; //0.01 ether
uint256 public totalDeveloperCut_ = 0;
uint256 public minPower_ = 3; //minimum power of kitty
uint256 public maxPower_ = 20; //maximum power of kitty
//**********************************************************************************
// Data
//**********************************************************************************
//***************************
// Round
//***************************
uint256 public currentRId_;
mapping (uint256 => KittyPillarDataSets.Round) public round_; // (rId => data) round data
//***************************
// Player
//***************************
uint256 private currentPId_;
mapping (address => uint256) public pIdByAddress_; // (address => pId) returns player id by address
mapping (uint8 => mapping (uint256 => KittyPillarDataSets.Pillar)) public pillarRounds_; // (pillarIdx => roundId -> Pillar) returns pillar's round information
mapping (uint256 => KittyPillarDataSets.Player) public players_; // (pId => player) returns player information
mapping (uint256 => mapping (uint256 => uint256[])) public playerRounds_; // (pId => roundId => uint256[]) returns player's round information
mapping (uint256 => mapping (uint256 => KittyPillarDataSets.KittyRound)) public kittyRounds_; // (kittyId => roundId => KittyRound) returns kitty's round information
//**********************************************************************************
// Functions
//**********************************************************************************
constructor(address _kittyCoreAddress) public {
owner = msg.sender; //init owner
kittyCoreAddress = _kittyCoreAddress;
kittyCore = KittyCoreInterface(kittyCoreAddress);
//start round
currentRId_ = 1;
round_[currentRId_].pot = 0;
round_[currentRId_].targetContributions = contributionTarget_;
round_[currentRId_].timeStarted = now;
round_[currentRId_].ended = false;
}
function getPillarRoundsKitties(uint8 _pillarIdx, uint256 _rId) external view returns (uint256[]) {
return pillarRounds_[_pillarIdx][_rId].kittyIds;
}
function getPlayerRoundsKitties(uint256 _pId, uint256 _rId) external view returns (uint256[]) {
return playerRounds_[_pId][_rId];
}
function joinPillarWithEarnings(uint256 _kittyId, uint8 _pillarIdx, uint256 _rId) external {
require(!paused_, "game is paused");
require((_pillarIdx>=0)&&(_pillarIdx<=2), "there is no such pillar here");
require(msg.sender == kittyCore.ownerOf(_kittyId), "sender not owner of kitty");
uint256 _pId = pIdByAddress_[msg.sender];
require(_pId!=0, "not an existing player"); //needs to be an existing player
require(players_[_pId].totalEth >= joinFee_, "insufficient tokens in pouch for join fee");
require(kittyRounds_[_kittyId][currentRId_].contribution==0, "kitty has already joined a pillar this round");
require(_rId == currentRId_, "round has ended, wait for next round");
players_[_pId].totalEth = players_[_pId].totalEth.sub(joinFee_); //deduct joinFee from winnings
joinPillarCore(_pId, _kittyId, _pillarIdx);
}
function joinPillar(uint256 _kittyId, uint8 _pillarIdx, uint256 _rId) external payable {
require(!paused_, "game is paused");
require(msg.value == joinFee_, "incorrect join fee");
require((_pillarIdx>=0)&&(_pillarIdx<=2), "there is no such pillar here");
require(msg.sender == kittyCore.ownerOf(_kittyId), "sender not owner of kitty");
require(kittyRounds_[_kittyId][currentRId_].contribution==0, "kitty has already joined a pillar this round");
require(_rId == currentRId_, "round has ended, wait for next round");
uint256 _pId = pIdByAddress_[msg.sender];
//add player if he/she doesn't exists in game
if (_pId == 0) {
currentPId_ = currentPId_.add(1);
pIdByAddress_[msg.sender] = currentPId_;
players_[currentPId_].ownerAddr = msg.sender;
_pId = currentPId_;
emit PlayerJoined
(
msg.sender,
_pId,
now
);
}
joinPillarCore(_pId, _kittyId, _pillarIdx);
}
function joinPillarCore(uint256 _pId, uint256 _kittyId, uint8 _pillarIdx) private {
//record kitty under player for this round
playerRounds_[_pId][currentRId_].push(_kittyId);
//calculate kitty's power
uint256 minPower = minPower_;
if (pillarRounds_[_pillarIdx][currentRId_].totalContributions<(round_[currentRId_].targetContributions/2)) { //pillar under half, check other pillars
uint8 i;
for (i=0; i<3; i++) {
if (i!=_pillarIdx) {
if (pillarRounds_[i][currentRId_].totalContributions >= (round_[currentRId_].targetContributions/2)) {
minPower = maxPower_/2; //minimum power increases, so to help the low pillar grow faster
break;
}
}
}
}
uint256 genes;
( , , , , , , , , , genes) = kittyCore.getKitty(_kittyId);
uint256 _contribution = ((getKittyPower(genes) % maxPower_) + minPower); //from min to max power
// add to kitty round
uint256 joinedTime = now;
kittyRounds_[_kittyId][currentRId_].pillar = _pillarIdx;
kittyRounds_[_kittyId][currentRId_].contribution = _contribution;
kittyRounds_[_kittyId][currentRId_].kittyOwnerPId = _pId;
kittyRounds_[_kittyId][currentRId_].timeStamp = joinedTime;
// update current round's info
pillarRounds_[_pillarIdx][currentRId_].totalContributions = pillarRounds_[_pillarIdx][currentRId_].totalContributions.add(_contribution);
pillarRounds_[_pillarIdx][currentRId_].kittyIds.push(_kittyId);
//update current round pot
totalDeveloperCut_ = totalDeveloperCut_.add((joinFee_/100).mul(4)); //4% developer fee
round_[currentRId_].pot = round_[currentRId_].pot.add((joinFee_/100).mul(96)); //update pot minus fee
emit KittyJoined
(
msg.sender,
_kittyId,
_pillarIdx,
_contribution,
currentRId_,
joinedTime
);
//if meet target contribution, end round
if (pillarRounds_[_pillarIdx][currentRId_].totalContributions >= round_[currentRId_].targetContributions) {
endRound(_pillarIdx);
}
}
function getKittyPower(uint256 kittyGene) private view returns(uint256) {
return (uint(keccak256(abi.encodePacked(kittyGene,
blockhash(block.number - 1),
blockhash(block.number - 2),
blockhash(block.number - 4),
blockhash(block.number - 7))
)));
}
function endRound(uint8 _wonPillarIdx) private {
//distribute pot
uint256 numWinners = pillarRounds_[_wonPillarIdx][currentRId_].kittyIds.length;
uint256 numFirstMovers = numWinners / 2; //half but rounded floor
//perform round up if required
if ((numFirstMovers * 2) < numWinners) {
numFirstMovers = numFirstMovers.add(1);
}
uint256 avgTokensPerWinner = round_[currentRId_].pot/numWinners;
//first half (round up) of the pillar kitties get 20% extra off the pot to reward the precision, strength and valor!
uint256 tokensPerFirstMovers = avgTokensPerWinner.add(avgTokensPerWinner.mul(2) / 10);
//the rest of the pot is divided by the rest of the followers
uint256 tokensPerFollowers = (round_[currentRId_].pot - (numFirstMovers.mul(tokensPerFirstMovers))) / (numWinners-numFirstMovers);
uint256 totalEthCount = 0;
for(uint256 i = 0; i < numWinners; i++) {
uint256 kittyId = pillarRounds_[_wonPillarIdx][currentRId_].kittyIds[i];
if (i < numFirstMovers) {
players_[kittyRounds_[kittyId][currentRId_].kittyOwnerPId].totalEth = players_[kittyRounds_[kittyId][currentRId_].kittyOwnerPId].totalEth.add(tokensPerFirstMovers);
totalEthCount = totalEthCount.add(tokensPerFirstMovers);
} else {
players_[kittyRounds_[kittyId][currentRId_].kittyOwnerPId].totalEth = players_[kittyRounds_[kittyId][currentRId_].kittyOwnerPId].totalEth.add(tokensPerFollowers);
totalEthCount = totalEthCount.add(tokensPerFollowers);
}
}
//set round param to end
round_[currentRId_].pillarWon = _wonPillarIdx;
round_[currentRId_].timeEnded = now;
round_[currentRId_].ended = true;
emit RoundEnded(
currentRId_,
_wonPillarIdx,
round_[currentRId_].timeEnded
);
//start next round
currentRId_ = currentRId_.add(1);
round_[currentRId_].pot = 0;
round_[currentRId_].targetContributions = contributionTarget_;
round_[currentRId_].timeStarted = now;
round_[currentRId_].ended = false;
}
function withdrawWinnings() external {
uint256 _pId = pIdByAddress_[msg.sender];
//player doesn't exists in game
require(_pId != 0, "player doesn't exist in game, don't disturb");
require(players_[_pId].totalEth > 0, "there is nothing to withdraw");
uint256 withdrawalSum = players_[_pId].totalEth;
players_[_pId].totalEth = 0; //all is gone from contract to user wallet
msg.sender.transfer(withdrawalSum); //byebye ether
emit Withdrawal
(
msg.sender,
_pId,
withdrawalSum,
now
);
}
//**********************************************************************************
// Admin Functions
//**********************************************************************************
function setJoinFee(uint256 _joinFee) external onlyOwner {
joinFee_ = _joinFee;
}
function setPlayConfigs(uint256 _contributionTarget, uint256 _maxPower, uint256 _minPower) external onlyOwner {
require(_minPower.mul(2) <= _maxPower, "min power cannot be more than half of max power");
contributionTarget_ = _contributionTarget;
maxPower_ = _maxPower;
minPower_ = _minPower;
}
function setKittyCoreAddress(address _kittyCoreAddress) external onlyOwner {
kittyCoreAddress = _kittyCoreAddress;
kittyCore = KittyCoreInterface(kittyCoreAddress);
}
/**
* @dev Current owner can transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) external onlyOwner {
require(newOwner != address(0));
owner = newOwner;
}
function setPaused(bool _paused) external onlyOwner {
paused_ = _paused;
}
function withdrawDeveloperCut() external onlyOwner {
address thisAddress = this;
uint256 balance = thisAddress.balance;
uint256 withdrawalSum = totalDeveloperCut_;
if (balance >= withdrawalSum) {
totalDeveloperCut_ = 0;
owner.transfer(withdrawalSum);
}
}
}
//**********************************************************************************
// STRUCTS
//**********************************************************************************
library KittyPillarDataSets {
struct Round {
uint256 pot; // total Eth in pot
uint256 targetContributions; // target contribution to end game
uint8 pillarWon; // idx of pillar which won this round
uint256 timeStarted; // time round started
uint256 timeEnded; // time round ended
bool ended; // has round ended
}
struct Pillar {
uint256 totalContributions;
uint256[] kittyIds;
}
struct Player {
address ownerAddr; // player address
uint256 totalEth; // total Eth won and not yet claimed
}
struct KittyRound {
uint8 pillar;
uint256 contribution;
uint256 kittyOwnerPId;
uint256 timeStamp;
}
}
//**********************************************************************************
// INTERFACES
//**********************************************************************************
//Cryptokitties interface
interface KittyCoreInterface {
function getKitty(uint _id) external returns (
bool isGestating,
bool isReady,
uint256 cooldownIndex,
uint256 nextActionAt,
uint256 siringWithId,
uint256 birthTime,
uint256 matronId,
uint256 sireId,
uint256 generation,
uint256 genes
);
function ownerOf(uint256 _tokenId) external view returns (address owner);
}
//**********************************************************************************
// LIBRARIES
//**********************************************************************************
/**
* @title SafeMath from OpenZeppelin
* @dev Math operations with safety checks that throw on error
* Changes:
* - changed asserts to require with error log
* - removed div
*/
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
if (a == 0) {
return 0;
}
c = a * b;
require(c / a == b, "SafeMath mul failed");
return c;
}
/**
* @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a, "SafeMath sub failed");
return a - b;
}
/**
* @dev Adds two numbers, throws on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a + b;
require(c >= a, "SafeMath add failed");
return c;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[],"name":"withdrawDeveloperCut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"round_","outputs":[{"name":"pot","type":"uint256"},{"name":"targetContributions","type":"uint256"},{"name":"pillarWon","type":"uint8"},{"name":"timeStarted","type":"uint256"},{"name":"timeEnded","type":"uint256"},{"name":"ended","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"players_","outputs":[{"name":"ownerAddr","type":"address"},{"name":"totalEth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kittyCoreAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"pIdByAddress_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentRId_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxPower_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"kittyRounds_","outputs":[{"name":"pillar","type":"uint8"},{"name":"contribution","type":"uint256"},{"name":"kittyOwnerPId","type":"uint256"},{"name":"timeStamp","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kittyCoreAddress","type":"address"}],"name":"setKittyCoreAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"},{"name":"","type":"uint256"}],"name":"pillarRounds_","outputs":[{"name":"totalContributions","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalDeveloperCut_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused_","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minPower_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_pillarIdx","type":"uint8"},{"name":"_rId","type":"uint256"}],"name":"getPillarRoundsKitties","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"playerRounds_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_pId","type":"uint256"},{"name":"_rId","type":"uint256"}],"name":"getPlayerRoundsKitties","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"joinFee_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_kittyId","type":"uint256"},{"name":"_pillarIdx","type":"uint8"},{"name":"_rId","type":"uint256"}],"name":"joinPillar","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawWinnings","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_joinFee","type":"uint256"}],"name":"setJoinFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_contributionTarget","type":"uint256"},{"name":"_maxPower","type":"uint256"},{"name":"_minPower","type":"uint256"}],"name":"setPlayConfigs","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contributionTarget_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kittyId","type":"uint256"},{"name":"_pillarIdx","type":"uint8"},{"name":"_rId","type":"uint256"}],"name":"joinPillarWithEarnings","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_kittyCoreAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"playerAddr","type":"address"},{"indexed":false,"name":"pId","type":"uint256"},{"indexed":false,"name":"timeStamp","type":"uint256"}],"name":"PlayerJoined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ownerAddr","type":"address"},{"indexed":false,"name":"kittyId","type":"uint256"},{"indexed":false,"name":"pillarIdx","type":"uint8"},{"indexed":false,"name":"contribution","type":"uint256"},{"indexed":false,"name":"currentRound","type":"uint256"},{"indexed":false,"name":"timeStamp","type":"uint256"}],"name":"KittyJoined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"currentRId","type":"uint256"},{"indexed":false,"name":"pillarWon","type":"uint256"},{"indexed":false,"name":"timeStamp","type":"uint256"}],"name":"RoundEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"playerAddr","type":"address"},{"indexed":false,"name":"pId","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"timeStamp","type":"uint256"}],"name":"Withdrawal","type":"event"}]Contract Creation Code
6080604052606460039081556004805460ff19169055662386f26fc100006005556000600655600755601460085534801561003957600080fd5b50604051602080611d20833981016040525160008054600160a060020a03199081163317825560018054600160a060020a03948516908316178082556002805490931694169390931790556009829055908152600a6020527fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc7556003547fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc855427fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bca557fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bcc805460ff19169055611bed806101336000396000f3006080604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313a7070f811461015857806316c38b3c1461016f57806324c33d331461018957806325a5e6e9146101d85780632c2ccdfb14610213578063339ba8601461024457806352357779146102775780636042fbe11461028c578063629919e9146102a157806378a7b804146102e65780637fde0c061461030757806385349e01146103255780638801b4fc1461033a5780638da5cb5b1461036357806393469800146103785780639480cd1a1461038d578063a254be21146103fb578063ac50905014610419578063bbeb592314610434578063c4818ae114610449578063cc42e83a1461045d578063ceeb706614610472578063e09874c01461048a578063f2ab59d9146104a8578063f2fde38b146104bd578063f77dff06146104de575b600080fd5b34801561016457600080fd5b5061016d6104ff565b005b34801561017b57600080fd5b5061016d6004351515610572565b34801561019557600080fd5b506101a160043561059c565b60408051968752602087019590955260ff9093168585015260608501919091526080840152151560a0830152519081900360c00190f35b3480156101e457600080fd5b506101f06004356105d6565b60408051600160a060020a03909316835260208301919091528051918290030190f35b34801561021f57600080fd5b506102286105fb565b60408051600160a060020a039092168252519081900360200190f35b34801561025057600080fd5b50610265600160a060020a036004351661060a565b60408051918252519081900360200190f35b34801561028357600080fd5b5061026561061c565b34801561029857600080fd5b50610265610622565b3480156102ad57600080fd5b506102bc600435602435610628565b6040805160ff90951685526020850193909352838301919091526060830152519081900360800190f35b3480156102f257600080fd5b5061016d600160a060020a036004351661065e565b34801561031357600080fd5b5061026560ff600435166024356106b1565b34801561033157600080fd5b506102656106ce565b34801561034657600080fd5b5061034f6106d4565b604080519115158252519081900360200190f35b34801561036f57600080fd5b506102286106dd565b34801561038457600080fd5b506102656106ec565b34801561039957600080fd5b506103ab60ff600435166024356106f2565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103e75781810151838201526020016103cf565b505050509050019250505060405180910390f35b34801561040757600080fd5b50610265600435602435604435610765565b34801561042557600080fd5b506103ab6004356024356107a2565b34801561044057600080fd5b5061026561080b565b61016d60043560ff60243516604435610811565b34801561046957600080fd5b5061016d610bfb565b34801561047e57600080fd5b5061016d600435610d81565b34801561049657600080fd5b5061016d600435602435604435610d9d565b3480156104b457600080fd5b50610265610e50565b3480156104c957600080fd5b5061016d600160a060020a0360043516610e56565b3480156104ea57600080fd5b5061016d60043560ff60243516604435610eb1565b6000805481908190600160a060020a0316331461051b57600080fd5b505060065430915081319080821061056d57600060068190558054604051600160a060020a039091169183156108fc02918491818181858888f1935050505015801561056b573d6000803e3d6000fd5b505b505050565b600054600160a060020a0316331461058957600080fd5b6004805460ff1916911515919091179055565b600a602052600090815260409020805460018201546002830154600384015460048501546005909501549394929360ff9283169391921686565b600e6020526000908152604090208054600190910154600160a060020a039091169082565b600154600160a060020a031681565b600c6020526000908152604090205481565b60095481565b60085481565b6010602090815260009283526040808420909152908252902080546001820154600283015460039093015460ff90921692909184565b600054600160a060020a0316331461067557600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03938416179182905560028054929093169116179055565b600d60209081526000928352604080842090915290825290205481565b60065481565b60045460ff1681565b600054600160a060020a031681565b60075481565b60ff82166000908152600d6020908152604080832084845282529182902060010180548351818402810184019094528084526060939283018282801561075757602002820191906000526020600020905b815481526020019060010190808311610743575b505050505090505b92915050565b600f6020528260005260406000206020528160005260406000208181548110151561078c57fe5b9060005260206000200160009250925050505481565b6000828152600f602090815260408083208484528252918290208054835181840281018401909452808452606093928301828280156107575760200282019190600052602060002090815481526020019060010190808311610743575050505050905092915050565b60055481565b60045460009060ff161561086f576040805160e560020a62461bcd02815260206004820152600e60248201527f67616d6520697320706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b60055434146108c8576040805160e560020a62461bcd02815260206004820152601260248201527f696e636f7272656374206a6f696e206665650000000000000000000000000000604482015290519081900360640190fd5b60008360ff16101580156108e0575060028360ff1611155b1515610936576040805160e560020a62461bcd02815260206004820152601c60248201527f7468657265206973206e6f20737563682070696c6c6172206865726500000000604482015290519081900360640190fd5b600254604080517f6352211e000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691636352211e916024808201926020929091908290030181600087803b15801561099d57600080fd5b505af11580156109b1573d6000803e3d6000fd5b505050506040513d60208110156109c757600080fd5b5051600160a060020a03163314610a28576040805160e560020a62461bcd02815260206004820152601960248201527f73656e646572206e6f74206f776e6572206f66206b6974747900000000000000604482015290519081900360640190fd5b6000848152601060209081526040808320600954845290915290206001015415610ac2576040805160e560020a62461bcd02815260206004820152602c60248201527f6b697474792068617320616c7265616479206a6f696e656420612070696c6c6160448201527f72207468697320726f756e640000000000000000000000000000000000000000606482015290519081900360840190fd5b6009548214610b40576040805160e560020a62461bcd028152602060048201526024808201527f726f756e642068617320656e6465642c207761697420666f72206e657874207260448201527f6f756e6400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50336000908152600c6020526040902054801515610bf057600b54610b6c90600163ffffffff6112c116565b600b818155336000818152600c60209081526040808320869055948252600e815290849020805473ffffffffffffffffffffffffffffffffffffffff19168317905591548351918252918101829052428184015291519092507fc9b3932fab18f6ac6d50cac9682ed0c164ce31d2505f3571323a0cf5902dd68c9181900360600190a15b61056b81858561131c565b336000908152600c602052604081205490811515610c89576040805160e560020a62461bcd02815260206004820152602b60248201527f706c6179657220646f65736e277420657869737420696e2067616d652c20646f60448201527f6e27742064697374757262000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000828152600e602052604081206001015411610cf0576040805160e560020a62461bcd02815260206004820152601c60248201527f7468657265206973206e6f7468696e6720746f20776974686472617700000000604482015290519081900360640190fd5b506000818152600e602052604080822060010180549083905590519091339183156108fc0291849190818181858888f19350505050158015610d36573d6000803e3d6000fd5b50604080513381526020810184905280820183905242606082015290517f650fdf669e93aa6c8ff3defe2da9c12b64f1548e5e1e54e803f4c1beb6466c8e9181900360800190a15050565b600054600160a060020a03163314610d9857600080fd5b600555565b600054600160a060020a03163314610db457600080fd5b81610dc682600263ffffffff61171b16565b1115610e42576040805160e560020a62461bcd02815260206004820152602f60248201527f6d696e20706f7765722063616e6e6f74206265206d6f7265207468616e20686160448201527f6c66206f66206d617820706f7765720000000000000000000000000000000000606482015290519081900360840190fd5b600392909255600855600755565b60035481565b600054600160a060020a03163314610e6d57600080fd5b600160a060020a0381161515610e8257600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045460009060ff1615610f0f576040805160e560020a62461bcd02815260206004820152600e60248201527f67616d6520697320706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b60008360ff1610158015610f27575060028360ff1611155b1515610f7d576040805160e560020a62461bcd02815260206004820152601c60248201527f7468657265206973206e6f20737563682070696c6c6172206865726500000000604482015290519081900360640190fd5b600254604080517f6352211e000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691636352211e916024808201926020929091908290030181600087803b158015610fe457600080fd5b505af1158015610ff8573d6000803e3d6000fd5b505050506040513d602081101561100e57600080fd5b5051600160a060020a0316331461106f576040805160e560020a62461bcd02815260206004820152601960248201527f73656e646572206e6f74206f776e6572206f66206b6974747900000000000000604482015290519081900360640190fd5b50336000908152600c60205260409020548015156110d7576040805160e560020a62461bcd02815260206004820152601660248201527f6e6f7420616e206578697374696e6720706c6179657200000000000000000000604482015290519081900360640190fd5b6005546000828152600e60205260409020600101541015611168576040805160e560020a62461bcd02815260206004820152602960248201527f696e73756666696369656e7420746f6b656e7320696e20706f75636820666f7260448201527f206a6f696e206665650000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152601060209081526040808320600954845290915290206001015415611202576040805160e560020a62461bcd02815260206004820152602c60248201527f6b697474792068617320616c7265616479206a6f696e656420612070696c6c6160448201527f72207468697320726f756e640000000000000000000000000000000000000000606482015290519081900360840190fd5b6009548214611280576040805160e560020a62461bcd028152602060048201526024808201527f726f756e642068617320656e6465642c207761697420666f72206e657874207260448201527f6f756e6400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6005546000828152600e60205260409020600101546112a49163ffffffff61179216565b6000828152600e602052604090206001015561056b81858561131c565b8181018281101561075f576040805160e560020a62461bcd02815260206004820152601360248201527f536166654d61746820616464206661696c656400000000000000000000000000604482015290519081900360640190fd5b6000838152600f60209081526040808320600980548552908352818420805460018082018355918652848620018790556007549154808652600a85528386209091015460ff87168652600d8552838620918652935290832054909291829182918291600290910411156113f957600093505b60038460ff1610156113f95760ff848116908716146113ee576009546000818152600a602090815260408083206001015460ff89168452600d8352818420948452939091529020546002909104116113ee576008546002900494506113f9565b60019093019261138e565b600254604080517fe98b7f4d000000000000000000000000000000000000000000000000000000008152600481018a90529051600160a060020a039092169163e98b7f4d91602480820192610140929091908290030181600087803b15801561146157600080fd5b505af1158015611475573d6000803e3d6000fd5b505050506040513d61014081101561148c57600080fd5b50610120015160085490935085906114a3856117f2565b8115156114ac57fe5b0601915042905085601060008981526020019081526020016000206000600954815260200190815260200160002060000160006101000a81548160ff021916908360ff1602179055508160106000898152602001908152602001600020600060095481526020019081526020016000206001018190555087601060008981526020019081526020016000206000600954815260200190815260200160002060020181905550806010600089815260200190815260200160002060006009548152602001908152602001600020600301819055506115c182600d60008960ff1660ff16815260200190815260200160002060006009548152602001908152602001600020600001546112c190919063ffffffff16565b60ff87166000908152600d60209081526040808320600980548552908352818420949094559254825291812060019081018054918201815582529190200187905560055461163090611621906004906064905b049063ffffffff61171b16565b6006549063ffffffff6112c116565b6006556005546116679061164990606090606490611614565b6009546000908152600a60205260409020549063ffffffff6112c116565b600980546000908152600a602090815260409182902093909355905481513381529283018a905260ff89168383015260608301859052608083015260a08201839052517fe801de7c6b464752d7db0d7f9828b9c57ba8f871b13b826f9daa846935b45c869181900360c00190a16009546000818152600a602090815260408083206001015460ff8b168452600d8352818420948452939091529020541061171157611711866118a1565b5050505050505050565b600082151561172c5750600061075f565b5081810281838281151561173c57fe5b041461075f576040805160e560020a62461bcd02815260206004820152601360248201527f536166654d617468206d756c206661696c656400000000000000000000000000604482015290519081900360640190fd5b6000828211156117ec576040805160e560020a62461bcd02815260206004820152601360248201527f536166654d61746820737562206661696c656400000000000000000000000000604482015290519081900360640190fd5b50900390565b604080516020808201849052436000198101408385015260011981014060608401526003198101406080840152600619014060a0808401919091528351808403909101815260c0909201928390528151600093918291908401908083835b6020831061186f5780518252601f199092019160209182019101611850565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b60ff81166000908152600d60209081526040808320600954845290915281206001015490808080808080600288049650878760020210156118f0576118ed87600163ffffffff6112c116565b96505b6009546000908152600a6020526040902054889081151561190d57fe5b04955061193e600a61192688600263ffffffff61171b16565b81151561192f57fe5b8891900463ffffffff6112c116565b9450868803611953888763ffffffff61171b16565b6009546000908152600a60205260409020540381151561196f57fe5b04935060009250600091505b87821015611acb5760ff89166000908152600d60209081526040808320600954845290915290206001018054839081106119b157fe5b9060005260206000200154905086821015611a4557600081815260106020908152604080832060095484528252808320600201548352600e909152902060010154611a02908663ffffffff6112c116565b600082815260106020908152604080832060095484528252808320600201548352600e909152902060010155611a3e838663ffffffff6112c116565b9250611ac0565b600081815260106020908152604080832060095484528252808320600201548352600e909152902060010154611a81908563ffffffff6112c116565b600082815260106020908152604080832060095484528252808320600201548352600e909152902060010155611abd838563ffffffff6112c116565b92505b60019091019061197b565b600980546000908152600a60209081526040808320600201805460ff8f1660ff1991821681179092558554855282852042600491820155865486528386206005018054909216600117909155945480855293829020909401548151938452918301939093528183015290517fc5285db7d8a9c3a0ce0e8982ff9a84fe8df355101d9545735558c69efb4aad579181900360600190a1600954611b7490600163ffffffff6112c116565b60098181556000918252600a60205260408083208390556003805483548552828520600101558254845281842042910155905482529020600501805460ff191690555050505050505050505600a165627a7a72305820b55d786958eca85c838a89e456e57049ed5490d1a61b3561b1016d9b5aee2bf8002900000000000000000000000006012c8cf97bead5deae237070f9587f8e7a266d
Deployed Bytecode
0x6080604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313a7070f811461015857806316c38b3c1461016f57806324c33d331461018957806325a5e6e9146101d85780632c2ccdfb14610213578063339ba8601461024457806352357779146102775780636042fbe11461028c578063629919e9146102a157806378a7b804146102e65780637fde0c061461030757806385349e01146103255780638801b4fc1461033a5780638da5cb5b1461036357806393469800146103785780639480cd1a1461038d578063a254be21146103fb578063ac50905014610419578063bbeb592314610434578063c4818ae114610449578063cc42e83a1461045d578063ceeb706614610472578063e09874c01461048a578063f2ab59d9146104a8578063f2fde38b146104bd578063f77dff06146104de575b600080fd5b34801561016457600080fd5b5061016d6104ff565b005b34801561017b57600080fd5b5061016d6004351515610572565b34801561019557600080fd5b506101a160043561059c565b60408051968752602087019590955260ff9093168585015260608501919091526080840152151560a0830152519081900360c00190f35b3480156101e457600080fd5b506101f06004356105d6565b60408051600160a060020a03909316835260208301919091528051918290030190f35b34801561021f57600080fd5b506102286105fb565b60408051600160a060020a039092168252519081900360200190f35b34801561025057600080fd5b50610265600160a060020a036004351661060a565b60408051918252519081900360200190f35b34801561028357600080fd5b5061026561061c565b34801561029857600080fd5b50610265610622565b3480156102ad57600080fd5b506102bc600435602435610628565b6040805160ff90951685526020850193909352838301919091526060830152519081900360800190f35b3480156102f257600080fd5b5061016d600160a060020a036004351661065e565b34801561031357600080fd5b5061026560ff600435166024356106b1565b34801561033157600080fd5b506102656106ce565b34801561034657600080fd5b5061034f6106d4565b604080519115158252519081900360200190f35b34801561036f57600080fd5b506102286106dd565b34801561038457600080fd5b506102656106ec565b34801561039957600080fd5b506103ab60ff600435166024356106f2565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103e75781810151838201526020016103cf565b505050509050019250505060405180910390f35b34801561040757600080fd5b50610265600435602435604435610765565b34801561042557600080fd5b506103ab6004356024356107a2565b34801561044057600080fd5b5061026561080b565b61016d60043560ff60243516604435610811565b34801561046957600080fd5b5061016d610bfb565b34801561047e57600080fd5b5061016d600435610d81565b34801561049657600080fd5b5061016d600435602435604435610d9d565b3480156104b457600080fd5b50610265610e50565b3480156104c957600080fd5b5061016d600160a060020a0360043516610e56565b3480156104ea57600080fd5b5061016d60043560ff60243516604435610eb1565b6000805481908190600160a060020a0316331461051b57600080fd5b505060065430915081319080821061056d57600060068190558054604051600160a060020a039091169183156108fc02918491818181858888f1935050505015801561056b573d6000803e3d6000fd5b505b505050565b600054600160a060020a0316331461058957600080fd5b6004805460ff1916911515919091179055565b600a602052600090815260409020805460018201546002830154600384015460048501546005909501549394929360ff9283169391921686565b600e6020526000908152604090208054600190910154600160a060020a039091169082565b600154600160a060020a031681565b600c6020526000908152604090205481565b60095481565b60085481565b6010602090815260009283526040808420909152908252902080546001820154600283015460039093015460ff90921692909184565b600054600160a060020a0316331461067557600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03938416179182905560028054929093169116179055565b600d60209081526000928352604080842090915290825290205481565b60065481565b60045460ff1681565b600054600160a060020a031681565b60075481565b60ff82166000908152600d6020908152604080832084845282529182902060010180548351818402810184019094528084526060939283018282801561075757602002820191906000526020600020905b815481526020019060010190808311610743575b505050505090505b92915050565b600f6020528260005260406000206020528160005260406000208181548110151561078c57fe5b9060005260206000200160009250925050505481565b6000828152600f602090815260408083208484528252918290208054835181840281018401909452808452606093928301828280156107575760200282019190600052602060002090815481526020019060010190808311610743575050505050905092915050565b60055481565b60045460009060ff161561086f576040805160e560020a62461bcd02815260206004820152600e60248201527f67616d6520697320706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b60055434146108c8576040805160e560020a62461bcd02815260206004820152601260248201527f696e636f7272656374206a6f696e206665650000000000000000000000000000604482015290519081900360640190fd5b60008360ff16101580156108e0575060028360ff1611155b1515610936576040805160e560020a62461bcd02815260206004820152601c60248201527f7468657265206973206e6f20737563682070696c6c6172206865726500000000604482015290519081900360640190fd5b600254604080517f6352211e000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691636352211e916024808201926020929091908290030181600087803b15801561099d57600080fd5b505af11580156109b1573d6000803e3d6000fd5b505050506040513d60208110156109c757600080fd5b5051600160a060020a03163314610a28576040805160e560020a62461bcd02815260206004820152601960248201527f73656e646572206e6f74206f776e6572206f66206b6974747900000000000000604482015290519081900360640190fd5b6000848152601060209081526040808320600954845290915290206001015415610ac2576040805160e560020a62461bcd02815260206004820152602c60248201527f6b697474792068617320616c7265616479206a6f696e656420612070696c6c6160448201527f72207468697320726f756e640000000000000000000000000000000000000000606482015290519081900360840190fd5b6009548214610b40576040805160e560020a62461bcd028152602060048201526024808201527f726f756e642068617320656e6465642c207761697420666f72206e657874207260448201527f6f756e6400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50336000908152600c6020526040902054801515610bf057600b54610b6c90600163ffffffff6112c116565b600b818155336000818152600c60209081526040808320869055948252600e815290849020805473ffffffffffffffffffffffffffffffffffffffff19168317905591548351918252918101829052428184015291519092507fc9b3932fab18f6ac6d50cac9682ed0c164ce31d2505f3571323a0cf5902dd68c9181900360600190a15b61056b81858561131c565b336000908152600c602052604081205490811515610c89576040805160e560020a62461bcd02815260206004820152602b60248201527f706c6179657220646f65736e277420657869737420696e2067616d652c20646f60448201527f6e27742064697374757262000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000828152600e602052604081206001015411610cf0576040805160e560020a62461bcd02815260206004820152601c60248201527f7468657265206973206e6f7468696e6720746f20776974686472617700000000604482015290519081900360640190fd5b506000818152600e602052604080822060010180549083905590519091339183156108fc0291849190818181858888f19350505050158015610d36573d6000803e3d6000fd5b50604080513381526020810184905280820183905242606082015290517f650fdf669e93aa6c8ff3defe2da9c12b64f1548e5e1e54e803f4c1beb6466c8e9181900360800190a15050565b600054600160a060020a03163314610d9857600080fd5b600555565b600054600160a060020a03163314610db457600080fd5b81610dc682600263ffffffff61171b16565b1115610e42576040805160e560020a62461bcd02815260206004820152602f60248201527f6d696e20706f7765722063616e6e6f74206265206d6f7265207468616e20686160448201527f6c66206f66206d617820706f7765720000000000000000000000000000000000606482015290519081900360840190fd5b600392909255600855600755565b60035481565b600054600160a060020a03163314610e6d57600080fd5b600160a060020a0381161515610e8257600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045460009060ff1615610f0f576040805160e560020a62461bcd02815260206004820152600e60248201527f67616d6520697320706175736564000000000000000000000000000000000000604482015290519081900360640190fd5b60008360ff1610158015610f27575060028360ff1611155b1515610f7d576040805160e560020a62461bcd02815260206004820152601c60248201527f7468657265206973206e6f20737563682070696c6c6172206865726500000000604482015290519081900360640190fd5b600254604080517f6352211e000000000000000000000000000000000000000000000000000000008152600481018790529051600160a060020a0390921691636352211e916024808201926020929091908290030181600087803b158015610fe457600080fd5b505af1158015610ff8573d6000803e3d6000fd5b505050506040513d602081101561100e57600080fd5b5051600160a060020a0316331461106f576040805160e560020a62461bcd02815260206004820152601960248201527f73656e646572206e6f74206f776e6572206f66206b6974747900000000000000604482015290519081900360640190fd5b50336000908152600c60205260409020548015156110d7576040805160e560020a62461bcd02815260206004820152601660248201527f6e6f7420616e206578697374696e6720706c6179657200000000000000000000604482015290519081900360640190fd5b6005546000828152600e60205260409020600101541015611168576040805160e560020a62461bcd02815260206004820152602960248201527f696e73756666696369656e7420746f6b656e7320696e20706f75636820666f7260448201527f206a6f696e206665650000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6000848152601060209081526040808320600954845290915290206001015415611202576040805160e560020a62461bcd02815260206004820152602c60248201527f6b697474792068617320616c7265616479206a6f696e656420612070696c6c6160448201527f72207468697320726f756e640000000000000000000000000000000000000000606482015290519081900360840190fd5b6009548214611280576040805160e560020a62461bcd028152602060048201526024808201527f726f756e642068617320656e6465642c207761697420666f72206e657874207260448201527f6f756e6400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6005546000828152600e60205260409020600101546112a49163ffffffff61179216565b6000828152600e602052604090206001015561056b81858561131c565b8181018281101561075f576040805160e560020a62461bcd02815260206004820152601360248201527f536166654d61746820616464206661696c656400000000000000000000000000604482015290519081900360640190fd5b6000838152600f60209081526040808320600980548552908352818420805460018082018355918652848620018790556007549154808652600a85528386209091015460ff87168652600d8552838620918652935290832054909291829182918291600290910411156113f957600093505b60038460ff1610156113f95760ff848116908716146113ee576009546000818152600a602090815260408083206001015460ff89168452600d8352818420948452939091529020546002909104116113ee576008546002900494506113f9565b60019093019261138e565b600254604080517fe98b7f4d000000000000000000000000000000000000000000000000000000008152600481018a90529051600160a060020a039092169163e98b7f4d91602480820192610140929091908290030181600087803b15801561146157600080fd5b505af1158015611475573d6000803e3d6000fd5b505050506040513d61014081101561148c57600080fd5b50610120015160085490935085906114a3856117f2565b8115156114ac57fe5b0601915042905085601060008981526020019081526020016000206000600954815260200190815260200160002060000160006101000a81548160ff021916908360ff1602179055508160106000898152602001908152602001600020600060095481526020019081526020016000206001018190555087601060008981526020019081526020016000206000600954815260200190815260200160002060020181905550806010600089815260200190815260200160002060006009548152602001908152602001600020600301819055506115c182600d60008960ff1660ff16815260200190815260200160002060006009548152602001908152602001600020600001546112c190919063ffffffff16565b60ff87166000908152600d60209081526040808320600980548552908352818420949094559254825291812060019081018054918201815582529190200187905560055461163090611621906004906064905b049063ffffffff61171b16565b6006549063ffffffff6112c116565b6006556005546116679061164990606090606490611614565b6009546000908152600a60205260409020549063ffffffff6112c116565b600980546000908152600a602090815260409182902093909355905481513381529283018a905260ff89168383015260608301859052608083015260a08201839052517fe801de7c6b464752d7db0d7f9828b9c57ba8f871b13b826f9daa846935b45c869181900360c00190a16009546000818152600a602090815260408083206001015460ff8b168452600d8352818420948452939091529020541061171157611711866118a1565b5050505050505050565b600082151561172c5750600061075f565b5081810281838281151561173c57fe5b041461075f576040805160e560020a62461bcd02815260206004820152601360248201527f536166654d617468206d756c206661696c656400000000000000000000000000604482015290519081900360640190fd5b6000828211156117ec576040805160e560020a62461bcd02815260206004820152601360248201527f536166654d61746820737562206661696c656400000000000000000000000000604482015290519081900360640190fd5b50900390565b604080516020808201849052436000198101408385015260011981014060608401526003198101406080840152600619014060a0808401919091528351808403909101815260c0909201928390528151600093918291908401908083835b6020831061186f5780518252601f199092019160209182019101611850565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b60ff81166000908152600d60209081526040808320600954845290915281206001015490808080808080600288049650878760020210156118f0576118ed87600163ffffffff6112c116565b96505b6009546000908152600a6020526040902054889081151561190d57fe5b04955061193e600a61192688600263ffffffff61171b16565b81151561192f57fe5b8891900463ffffffff6112c116565b9450868803611953888763ffffffff61171b16565b6009546000908152600a60205260409020540381151561196f57fe5b04935060009250600091505b87821015611acb5760ff89166000908152600d60209081526040808320600954845290915290206001018054839081106119b157fe5b9060005260206000200154905086821015611a4557600081815260106020908152604080832060095484528252808320600201548352600e909152902060010154611a02908663ffffffff6112c116565b600082815260106020908152604080832060095484528252808320600201548352600e909152902060010155611a3e838663ffffffff6112c116565b9250611ac0565b600081815260106020908152604080832060095484528252808320600201548352600e909152902060010154611a81908563ffffffff6112c116565b600082815260106020908152604080832060095484528252808320600201548352600e909152902060010155611abd838563ffffffff6112c116565b92505b60019091019061197b565b600980546000908152600a60209081526040808320600201805460ff8f1660ff1991821681179092558554855282852042600491820155865486528386206005018054909216600117909155945480855293829020909401548151938452918301939093528183015290517fc5285db7d8a9c3a0ce0e8982ff9a84fe8df355101d9545735558c69efb4aad579181900360600190a1600954611b7490600163ffffffff6112c116565b60098181556000918252600a60205260408083208390556003805483548552828520600101558254845281842042910155905482529020600501805460ff191690555050505050505050505600a165627a7a72305820b55d786958eca85c838a89e456e57049ed5490d1a61b3561b1016d9b5aee2bf80029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000006012c8cf97bead5deae237070f9587f8e7a266d
-----Decoded View---------------
Arg [0] : _kittyCoreAddress (address): 0x06012c8cf97BEaD5deAe237070F9587f8E7A266d
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000006012c8cf97bead5deae237070f9587f8e7a266d
Swarm Source
bzzr://b55d786958eca85c838a89e456e57049ed5490d1a61b3561b1016d9b5aee2bf8
Loading...
Loading
Loading...
Loading
Net Worth in USD
$92.94
Net Worth in ETH
0.045208
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,058.47 | 0.0452 | $92.94 |
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.