Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Transactions Sent
Latest:
N/A
First:
N/A
Latest 25 from a total of 9,035 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Start Game | 5287191 | 2391 days ago | IN | 0.01 ETH | 0.00000212 | ||||
Migrate Blockjac... | 5201104 | 2405 days ago | IN | 0 ETH | 0.00027881 | ||||
Game Tick | 5194607 | 2407 days ago | IN | 0 ETH | 0.00037457 | ||||
Hit | 5178786 | 2409 days ago | IN | 0 ETH | 0.00056075 | ||||
Start Game | 5178776 | 2409 days ago | IN | 0.02 ETH | 0.00066606 | ||||
Hit | 5178764 | 2409 days ago | IN | 0 ETH | 0.00026379 | ||||
Hit | 5178728 | 2409 days ago | IN | 0 ETH | 0.00025439 | ||||
Hit | 5178703 | 2409 days ago | IN | 0 ETH | 0.00054937 | ||||
Start Game | 5178660 | 2409 days ago | IN | 0.02 ETH | 0.00058238 | ||||
Game Tick | 5178660 | 2409 days ago | IN | 0 ETH | 0.00101294 | ||||
Start Game | 5178647 | 2409 days ago | IN | 0.01 ETH | 0.00172642 | ||||
Hit | 5178637 | 2409 days ago | IN | 0 ETH | 0.00109875 | ||||
Start Game | 5178632 | 2409 days ago | IN | 0.01 ETH | 0.00067168 | ||||
Hit | 5178596 | 2409 days ago | IN | 0 ETH | 0.00242028 | ||||
Start Game | 5178570 | 2409 days ago | IN | 0.01 ETH | 0.00201506 | ||||
Hit | 5174420 | 2410 days ago | IN | 0 ETH | 0.00025682 | ||||
Hit | 5174237 | 2410 days ago | IN | 0 ETH | 0.00053996 | ||||
Start Game | 5173992 | 2410 days ago | IN | 0.05 ETH | 0.00069407 | ||||
Game Tick | 5163038 | 2412 days ago | IN | 0 ETH | 0.0018058 | ||||
Stand | 5163030 | 2412 days ago | IN | 0 ETH | 0.00224188 | ||||
Start Game | 5163015 | 2412 days ago | IN | 0.01 ETH | 0.00179116 | ||||
Start Game | 5141988 | 2416 days ago | IN | 0.01 ETH | 0.00067168 | ||||
Stand | 5138655 | 2416 days ago | IN | 0 ETH | 0.00025567 | ||||
Hit | 5138631 | 2416 days ago | IN | 0 ETH | 0.00036961 | ||||
Hit | 5138600 | 2416 days ago | IN | 0 ETH | 0.00056075 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
5201104 | 2405 days ago | 110.982 ETH | ||||
5201104 | 2405 days ago | 0.4358 ETH | ||||
5201104 | 2405 days ago | 3.9222 ETH | ||||
5178660 | 2409 days ago | 0.025 ETH | ||||
5178647 | 2409 days ago | 0.02 ETH | ||||
5163038 | 2412 days ago | 0.02 ETH | ||||
5113053 | 2420 days ago | 0.025 ETH | ||||
5101509 | 2422 days ago | 0.02 ETH | ||||
5090919 | 2424 days ago | 0.36 ETH | ||||
5090764 | 2424 days ago | 0.04 ETH | ||||
5090754 | 2424 days ago | 0.02 ETH | ||||
5090740 | 2424 days ago | 0.1 ETH | ||||
5090665 | 2424 days ago | 0.02 ETH | ||||
5090648 | 2424 days ago | 0.02 ETH | ||||
4978653 | 2443 days ago | 0.04 ETH | ||||
4950830 | 2448 days ago | 0.04 ETH | ||||
4950820 | 2448 days ago | 0.02 ETH | ||||
4950780 | 2448 days ago | 0.1 ETH | ||||
4879987 | 2461 days ago | 0.1 ETH | ||||
4816735 | 2472 days ago | 0.2 ETH | ||||
4808676 | 2473 days ago | 0.02 ETH | ||||
4807900 | 2473 days ago | 0.02 ETH | ||||
4805554 | 2474 days ago | 0.2 ETH | ||||
4670591 | 2497 days ago | 0.02 ETH | ||||
4658063 | 2499 days ago | 0.025 ETH |
Loading...
Loading
Contract Self Destruct called at Txn Hash 0xbdec4a52e85177dd58341dd212a52f4de3de24c88648ce5f52816e30d1b344c4
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Blockjack
Compiler Version
v0.4.8+commit.60cc1668
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-05-05 */ pragma solidity ^0.4.8; library ArrayLib { // Inserts to keep array sorted (assumes input array is sorted) function insertInPlace(uint8[] storage self, uint8 n) { uint8 insertingIndex = 0; while (self.length > 0 && insertingIndex < self.length && self[insertingIndex] < n) { insertingIndex += 1; } self.length += 1; for (uint8 i = uint8(self.length) - 1; i > insertingIndex; i--) { self[i] = self[i - 1]; } self[insertingIndex] = n; } } library DeckLib { using ArrayLib for uint8[]; enum Suit { Spades, Hearts, Clubs, Diamonds } uint8 constant cardsPerSuit = 13; uint8 constant suits = 4; uint8 constant totalCards = cardsPerSuit * suits; struct Deck { uint8[] usedCards; // always has to be sorted address player; uint256 gameID; } function init(Deck storage self, uint256 gameID) { self.usedCards = new uint8[](0); self.player = msg.sender; self.gameID = gameID; } function getCard(Deck storage self, uint256 blockNumber) returns (uint8) { uint cardIndex = self.usedCards.length; if (cardIndex >= totalCards) throw; uint8 r = uint8(getRandomNumber(blockNumber, self.player, self.gameID, cardIndex, totalCards - cardIndex)); for (uint8 i = 0; i < cardIndex; i++) { if (self.usedCards[i] <= r) r += 1; } self.usedCards.insertInPlace(r); return r; } function cardDescription(uint8 self) constant returns (Suit, uint8) { return (Suit(self / cardsPerSuit), cardFacevalue(self)); } function cardEmojified(uint8 self) constant returns (uint8, string) { string memory emojiSuit; var (suit, number) = cardDescription(self); if (suit == Suit.Clubs) emojiSuit = "♣️"; else if (suit == Suit.Diamonds) emojiSuit = "♦️"; else if (suit == Suit.Hearts) emojiSuit = "♥️"; else if (suit == Suit.Spades) emojiSuit = "♠️"; return (number, emojiSuit); } function cardFacevalue(uint8 self) constant returns (uint8) { return 1 + self % cardsPerSuit; } function blackjackValue(uint8 self) constant returns (uint8) { uint8 cardValue = cardFacevalue(self); return cardValue < 10 ? cardValue : 10; } function getRandomNumber(uint b, address player, uint256 gameID, uint n, uint m) constant returns (uint) { // Uses blockhash as randomness source. // Credits: https://github.com/Bunjin/Rouleth/blob/master/Provably_Fair_No_Cheating.md bytes32 blockHash = block.blockhash(b); if (blockHash == 0x0) throw; return uint(uint256(keccak256(blockHash, player, gameID, n)) % m); } } library GameLib { using DeckLib for *; uint8 constant houseLimit = 17; uint8 constant target = 21; enum ComparaisonResult { First, Second, Tie } enum GameState { InitialCards, Waiting, Hit, Stand, DoubleDown, Finished } enum GameResult { Ongoing, House, Tie, Player, PlayerNatural } struct Game { address player; uint256 bet; uint256 payout; uint256 gameID; DeckLib.Deck deck; uint8[] houseCards; uint8[] playerCards; uint256 actionBlock; // Block on which commitment to perform an action happens. GameState state; GameResult result; bool closed; } function init(Game storage self, uint256 gameID) { self.player = msg.sender; self.bet = msg.value; self.payout = 0; self.houseCards = new uint8[](0); self.playerCards = new uint8[](0); self.actionBlock = block.number; self.state = GameState.InitialCards; self.result = GameResult.Ongoing; self.closed = false; self.gameID = gameID; self.deck.init(gameID); } function tick(Game storage self) returns (bool) { if (block.number <= self.actionBlock) return false; // Can't tick yet if (self.actionBlock + 255 < block.number) { endGame(self, GameResult.House); return true; } if (!needsTick(self)) return true; // not needed, everything is fine if (self.state == GameState.InitialCards) dealInitialCards(self); if (self.state == GameState.Hit) dealHitCard(self); if (self.state == GameState.DoubleDown) { dealHitCard(self); forceStand(self); } if (self.state == GameState.Stand) { dealHouseCards(self); checkGameResult(self); } else { checkGameContinues(self); } return true; } function needsTick(Game storage self) constant returns (bool) { if (self.state == GameState.Waiting) return false; if (self.state == GameState.Finished) return false; return true; } function checkGameResult(Game storage self) { uint8 houseHand = countHand(self.houseCards); if (houseHand == target && self.houseCards.length == 2) return endGame(self, GameResult.House); // House natural ComparaisonResult result = compareHands(houseHand, countHand(self.playerCards)); if (result == ComparaisonResult.First) return endGame(self, GameResult.House); if (result == ComparaisonResult.Second) return endGame(self, GameResult.Player); endGame(self, GameResult.Tie); } function checkGameContinues(Game storage self) { uint8 playerHand = countHand(self.playerCards); if (playerHand == target && self.playerCards.length == 2) return endGame(self, GameResult.PlayerNatural); // player natural if (playerHand > target) return endGame(self, GameResult.House); // Player busted if (playerHand == target && self.state == GameState.Waiting) { // Player is forced to stand with 21 (but should not already standing, ie in double down) forceStand(self); } } function forceStand(Game storage self) { uint256 currentActionBlock = self.actionBlock; playerDecision(self, GameState.Stand); self.actionBlock = currentActionBlock; if (!tick(self)) throw; // Forces tick, commitment to play actually happened past block } function canDoubleDown(Game storage self) returns (bool) { if (self.playerCards.length > 2) return false; uint8 totalPlayer = countHand(self.playerCards); if (totalPlayer < 9 || totalPlayer > 11) return false; if (msg.value != self.bet) return false; return true; } function playerDecision(Game storage self, GameState decision) { if (self.state != GameState.Waiting) throw; if (decision != GameState.Hit && decision != GameState.Stand && decision != GameState.DoubleDown) throw; if (decision == GameState.DoubleDown){ if (!canDoubleDown(self)) throw; self.bet += msg.value; } self.state = decision; self.actionBlock = block.number; } function dealInitialCards(Game storage self) private { self.playerCards.push(self.deck.getCard(self.actionBlock)); self.houseCards.push(self.deck.getCard(self.actionBlock)); self.playerCards.push(self.deck.getCard(self.actionBlock)); self.state = GameState.Waiting; } function dealHitCard(Game storage self) private { self.playerCards.push(self.deck.getCard(self.actionBlock)); self.state = GameState.Waiting; } function dealHouseCards(Game storage self) private { self.houseCards.push(self.deck.getCard(self.actionBlock)); if (countHand(self.houseCards) < houseLimit) dealHouseCards(self); } function endGame(Game storage self, GameResult result) { self.result = result; self.state = GameState.Finished; self.payout = payoutForResult(self.result, self.bet); closeGame(self); } function closeGame(Game storage self) private { if (self.closed) throw; // cannot re-close if (self.state != GameState.Finished) throw; // not closable self.closed = true; if (self.payout > 0) { if (!self.player.send(self.payout)) throw; } } function payoutForResult(GameResult result, uint256 bet) private returns (uint256) { if (result == GameResult.PlayerNatural) return bet * 5 / 2; // bet + 1.5x bet if (result == GameResult.Player) return bet * 2; // doubles bet if (result == GameResult.Tie) return bet; // returns bet return 0; } function countHand(uint8[] memory hand) returns (uint8) { uint8[] memory possibleSums = new uint8[](1); for (uint i = 0; i < hand.length; i++) { uint8 value = hand[i].blackjackValue(); uint l = possibleSums.length; for (uint j = 0; j < l; j++) { possibleSums[j] += value; if (value == 1) { // is Ace possibleSums = appendArray(possibleSums, possibleSums[j] + 10); // Fork possible sum with 11 as ace value. } } } return bestSum(possibleSums); } function bestSum(uint8[] possibleSums) returns (uint8 bestSum) { bestSum = 50; // very bad hand for (uint i = 0; i < possibleSums.length; i++) { if (compareHands(bestSum, possibleSums[i]) == ComparaisonResult.Second) { bestSum = possibleSums[i]; } } return; } function appendArray(uint8[] memory array, uint8 n) returns (uint8[] memory) { uint8[] memory newArray = new uint8[](array.length + 1); for (uint8 i = 0; i < array.length; i++) { newArray[i] = array[i]; } newArray[array.length] = n; return newArray; } function compareHands(uint8 a, uint8 b) returns (ComparaisonResult) { if (a <= target && b <= target) { if (a > b) return ComparaisonResult.First; if (a < b) return ComparaisonResult.Second; } if (a > target && b > target) { if (a < b) return ComparaisonResult.First; if (a > b) return ComparaisonResult.Second; } if (a > target) return ComparaisonResult.Second; if (b > target) return ComparaisonResult.First; return ComparaisonResult.Tie; } } contract Blockjack { event GameEnded(uint256 gameID, address player, uint gameResult, uint256 wager, uint256 payout, uint8 playerHand, uint8 houseHand); event GameNeedsTick(uint256 gameID, address player, uint256 actionBlock); using GameLib for GameLib.Game; GameLib.Game[] games; mapping (address => uint256) public currentGame; // Initial settings uint256 public minBet = 10 finney; uint256 public maxBet = 500 finney; bool public allowsNewGames = true; uint256 public maxBlockActions = 10; mapping (uint256 => uint256) blockActions; //main address public DX; address public DEV; uint256 public initialBankroll; uint256 public currentBankroll; mapping (address => bool) public isOwner; modifier onlyOwner { if (!isOwner[msg.sender]) throw; _; } modifier only(address x) { if (msg.sender != x) throw; _; } modifier onlyPlayer(uint256 gameID) { if (msg.sender != games[gameID].player) throw; _; } modifier blockActionProtected { blockActions[block.number] += 1; if (blockActions[block.number] > maxBlockActions) throw; _; } function Blockjack(address _DX, address _DEV) { DX = _DX; DEV = _DEV; games.length += 1; games[0].init(0); // Init game 0 so indices start on 1 games[0].player = this; isOwner[DX] = true; isOwner[DEV] = true; } function () payable { startGame(); } function startGame() blockActionProtected payable { if (!allowsNewGames) throw; if (msg.value < minBet) throw; if (msg.value > maxBet) throw; // check if player has game opened uint256 currentGameId = currentGame[msg.sender]; if (games.length > currentGameId) { GameLib.Game openedGame = games[currentGameId]; if (openedGame.player == msg.sender && !openedGame.closed) { // Check for index 0 mapping problems if (!openedGame.tick()) throw; if (!openedGame.closed) throw; // cannot start game with on-going game recordEndedGame(currentGameId); } } uint256 newGameID = games.length; games.length += 1; games[newGameID].init(newGameID); currentGame[msg.sender] = newGameID; tickRequiredLog(games[newGameID]); } function hit(uint256 gameID) onlyPlayer(gameID) blockActionProtected { GameLib.Game game = games[gameID]; if (!game.tick()) throw; game.playerDecision(GameLib.GameState.Hit); tickRequiredLog(game); } function doubleDown(uint256 gameID) onlyPlayer(gameID) blockActionProtected payable { GameLib.Game game = games[gameID]; if (!game.tick()) throw; game.playerDecision(GameLib.GameState.DoubleDown); tickRequiredLog(game); } function stand(uint256 gameID) onlyPlayer(gameID) blockActionProtected { GameLib.Game game = games[gameID]; if (!game.tick()) throw; game.playerDecision(GameLib.GameState.Stand); tickRequiredLog(game); } function gameTick(uint256 gameID) blockActionProtected { GameLib.Game openedGame = games[gameID]; if (openedGame.closed) throw; if (!openedGame.tick()) throw; if (openedGame.closed) recordEndedGame(gameID); } function recordEndedGame(uint gameID) private { GameLib.Game openedGame = games[gameID]; //vs potential overflow when croupier is not ticking frequently enough if(currentBankroll + openedGame.bet > openedGame.payout){ currentBankroll = currentBankroll + openedGame.bet - openedGame.payout; } GameEnded( openedGame.gameID, openedGame.player, uint(openedGame.result), openedGame.bet, openedGame.payout, GameLib.countHand(openedGame.playerCards), GameLib.countHand(openedGame.houseCards) ); } function tickRequiredLog(GameLib.Game storage game) private { GameNeedsTick(game.gameID, game.player, game.actionBlock); } // Constants function gameState(uint i) constant returns (uint8[], uint8[], uint8, uint8, uint256, uint256, uint8, uint8, bool, uint256) { GameLib.Game game = games[i]; return ( game.houseCards, game.playerCards, GameLib.countHand(game.houseCards), GameLib.countHand(game.playerCards), game.bet, game.payout, uint8(game.state), uint8(game.result), game.closed, game.actionBlock ); } function changeDev(address newDev) only(DEV) { isOwner[DEV] = false; DEV = newDev; isOwner[DEV] = true; } function changeDX(address newDX) only(DX) { isOwner[DX] = false; DX = newDX; isOwner[DX] = true; } function setSettings(uint256 _min, uint256 _max, uint256 _maxBlockActions) only(DX) { minBet = _min; maxBet = _max; maxBlockActions = _maxBlockActions; } function registerOwner(address _new_watcher) only(DX) { isOwner[_new_watcher] = true; } function removeOwner(address _old_watcher) only(DX) { isOwner[_old_watcher] = false; } function stopBlockjack() onlyOwner { allowsNewGames = false; } function startBlockjack() only(DX) { allowsNewGames = true; } function addBankroll() only(DX) payable { initialBankroll += msg.value; currentBankroll += msg.value; } function migrateBlockjack() only(DX) { stopBlockjack(); shareProfits(); suicide(DX); } uint256 DX_PROFITS = 90; uint256 DEV_PROFITS = 10; uint256 PROFITS_BASE = 100; function shareProfits() onlyOwner{ if (currentBankroll <= initialBankroll) return; // there are no profits uint256 profit = currentBankroll - initialBankroll; uint256 notSent; if (!DX.send(profit * DX_PROFITS / PROFITS_BASE)) { notSent = profit * DX_PROFITS / PROFITS_BASE; } if (!DEV.send(profit * DEV_PROFITS / PROFITS_BASE)){ notSent = profit * DEV_PROFITS / PROFITS_BASE; } currentBankroll -= profit - notSent; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_new_watcher","type":"address"}],"name":"registerOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"addBankroll","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_old_watcher","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"shareProfits","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"gameID","type":"uint256"}],"name":"doubleDown","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"maxBet","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_min","type":"uint256"},{"name":"_max","type":"uint256"},{"name":"_maxBlockActions","type":"uint256"}],"name":"setSettings","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"gameState","outputs":[{"name":"","type":"uint8[]"},{"name":"","type":"uint8[]"},{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"migrateBlockjack","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"stopBlockjack","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"currentGame","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newDev","type":"address"}],"name":"changeDev","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"gameID","type":"uint256"}],"name":"gameTick","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minBet","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"gameID","type":"uint256"}],"name":"stand","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"currentBankroll","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newDX","type":"address"}],"name":"changeDX","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maxBlockActions","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"DEV","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"DX","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"startBlockjack","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"startGame","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"gameID","type":"uint256"}],"name":"hit","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"allowsNewGames","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"initialBankroll","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_DX","type":"address"},{"name":"_DEV","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"gameID","type":"uint256"},{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"gameResult","type":"uint256"},{"indexed":false,"name":"wager","type":"uint256"},{"indexed":false,"name":"payout","type":"uint256"},{"indexed":false,"name":"playerHand","type":"uint8"},{"indexed":false,"name":"houseHand","type":"uint8"}],"name":"GameEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"gameID","type":"uint256"},{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"actionBlock","type":"uint256"}],"name":"GameNeedsTick","type":"event"}]
Contract Creation Code
6060604052662386f26fc100006002556706f05b59d3b200006003556004805460ff19166001179055600a6005819055605a600c55600d556064600e5534620000005760405160408062001a998339810160405280516020909101515b60078054600160a060020a03808516600160a060020a03199283161790925560088054928416929091169190911790556000805460018101808355919082908015829011620001ee57600b0281600b028360005260206000209182019101620001ee91905b8082111562000127578054600160a060020a03191681556000600182018190556002820181905560038201819055600482018054828255818352602080842084926200012b92601f909101048101905b8082111562000127576000815560010162000111565b5090565b5b5050600181018054600160a060020a0319169055600060029091018190556007830180548282559082526020918290206200018892601f909201919091048101905b8082111562000127576000815560010162000111565b5090565b5b5060088201805460008255601f016020900490600052602060002090810190620001c991905b8082111562000127576000815560010162000111565b5090565b5b505060006009820155600a8101805462ffffff19169055600b01620000c1565b5090565b5b50505050600060008154811015620000005790600052602060002090600b020160005b50734a0af9db6314e61013dd0c4b2de13d8a226b3b4463772b36aa909160006040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060006040518083038186803b15620000005760325a03f415620000005750505030600060008154811015620000005790600052602060002090600b020160005b508054600160a060020a031916600160a060020a0392831617905560075481166000908152600b6020526040808220805460ff1990811660019081179092556008549094168352912080549092161790555b50505b61178480620003156000396000f300606060405236156101385763ffffffff60e060020a6000350416631220c6ed8114610149578063148105ab14610164578063173825d91461016e57806326767cfe1461018957806327a1d948146101985780632e5b2168146101a55780632f54bf6e146101c4578063438b2aed146101f15780634e0e1a3e1461020957806358be98dd1461031057806364b837ab1461031f578063657045061461032e57806388a8c95c1461035957806391b56822146103745780639619367d1461038657806396b76c23146103a55780639741efe4146103b7578063a51db46b146103d6578063bb826e50146103f1578063c1eb5ddd14610410578063cfb079d314610439578063d50b65d714610462578063d65ab5f214610471578063ebf6e91d1461047b578063ef4498881461048d578063faee4a10146104ae575b6101475b6101446104cd565b5b565b005b3461000057610147600160a060020a0360043516610855565b005b61014761089a565b005b3461000057610147600160a060020a03600435166108cf565b005b3461000057610147610911565b005b610147600435610a0f565b005b34610000576101b2610b75565b60408051918252519081900360200190f35b34610000576101dd600160a060020a0360043516610b7b565b604080519115158252519081900360200190f35b3461000057610147600435602435604435610b90565b005b3461000057610219600435610bc3565b6040805160ff808b169282019290925288821660608201526080810188905260a0810187905285821660c082015290841660e082015282151561010082015261012081018290526101408082528b51908201528a5181906020808301916101608401918f8101910280838382156102ab575b8051825260208311156102ab57601f19909201916020918201910161028b565b5050509190910184810383528d5181528d5160209182019250818f01910280838382156102f3575b8051825260208311156102f357601f1990920191602091820191016102d3565b5050509050019c5050505050505050505050505060405180910390f35b3461000057610147610ef7565b005b3461000057610147610f35565b005b34610000576101b2600160a060020a0360043516610f6a565b60408051918252519081900360200190f35b3461000057610147600160a060020a0360043516610f7c565b005b3461000057610147600435610fec565b005b34610000576101b26110e2565b60408051918252519081900360200190f35b34610000576101476004356110e8565b005b34610000576101b261124f565b60408051918252519081900360200190f35b3461000057610147600160a060020a0360043516611255565b005b34610000576101b26112c5565b60408051918252519081900360200190f35b346100005761041d6112cb565b60408051600160a060020a039092168252519081900360200190f35b346100005761041d6112da565b60408051600160a060020a039092168252519081900360200190f35b34610000576101476112e9565b005b6101476104cd565b005b3461000057610147600435611317565b005b34610000576101dd61147e565b604080519115158252519081900360200190f35b34610000576101b2611487565b60408051918252519081900360200190f35b436000908152600660205260408120805460010190819055600554829182919011156104f857610000565b60045460ff16151561050957610000565b60025434101561051857610000565b60035434111561052757610000565b600160a060020a0333166000908152600160205260408120549054909350839011156106305760008381548110156100005790600052602060002090600b020160005b50805490925033600160a060020a0390811691161480156105965750600a82015462010000900460ff16155b156106305781734a0af9db6314e61013dd0c4b2de13d8a226b3b44635176076990916000604051602001526040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b156100005760325a03f415610000575050604051511515905061060e57610000565b600a82015462010000900460ff16151561062757610000565b6106308361148d565b5b5b50600080546001810180835590918183801582901161078857600b0281600b02836000526020600020918201910161078891905b808211156106c8578054600160a060020a03191681556000600182018190556002820181905560038201819055600482018054828255818352602080842084926106cc92601f909101048101905b808211156106c857600081556001016106b4565b5090565b5b5050600181018054600160a060020a03191690556000600290910181905560078301805482825590825260209182902061072692601f909201919091048101905b808211156106c857600081556001016106b4565b5090565b5b5060088201805460008255601f01602090049060005260206000209081019061076491905b808211156106c857600081556001016106b4565b5090565b5b505060006009820155600a8101805462ffffff19169055600b01610666565b5090565b5b5050505060008181548110156100005790600052602060002090600b020160005b50734a0af9db6314e61013dd0c4b2de13d8a226b3b4463772b36aa9091836040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060006040518083038186803b156100005760325a03f41561000057505050600160a060020a0333166000908152600160205260408120829055805461084e919083908110156100005790600052602060002090600b020160005b50611702565b5b5b505050565b600754600160a060020a03908116903316811461087157610000565b600160a060020a0382166000908152600b60205260409020805460ff191660011790555b5b5050565b600754600160a060020a0390811690331681146108b657610000565b6009805434908101909155600a805490910190555b5b50565b600754600160a060020a0390811690331681146108eb57610000565b600160a060020a0382166000908152600b60205260409020805460ff191690555b5b5050565b600160a060020a0333166000908152600b6020526040812054819060ff16151561093a57610000565b600954600a541161094a57610895565b600954600a54600754600e54600c54939092039450600160a060020a0316916108fc91908502811561000057604051919004801590920291906000818181858888f1935050505015156109a957600e54600c5483028115610000570490505b600854600e54600d54600160a060020a03909216916108fc91908502811561000057604051919004801590920291906000818181858888f1935050505015156109fe57600e54600d5483028115610000570490505b600a8054828403900390555b5b5050565b60008160008181548110156100005790600052602060002090600b020160005b505433600160a060020a03908116911614610a4957610000565b436000908152600660205260409020805460010190819055600554901115610a7057610000565b60008381548110156100005790600052602060002090600b020160005b50915081734a0af9db6314e61013dd0c4b2de13d8a226b3b44635176076990916000604051602001526040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b156100005760325a03f4156100005750506040515115159050610b0357610000565b6040805160e060020a63b14efa81028152600480820185905260248201529051734a0af9db6314e61013dd0c4b2de13d8a226b3b449163b14efa81916044808301926000929190829003018186803b156100005760325a03f4156100005750505061084e82611702565b5b5b5b505050565b60035481565b600b6020526000908152604090205460ff1681565b600754600160a060020a039081169033168114610bac57610000565b6002849055600383905560058290555b5b50505050565b6020604051908101604052806000815250602060405190810160405280600081525060006000600060006000600060006000600060008c81548110156100005790600052602060002090600b020160005b5090508060070181600801734a0af9db6314e61013dd0c4b2de13d8a226b3b4463c9ae5594846007016000604051602001526040518263ffffffff1660e060020a02815260040180806020018281038252838181548152602001915080548015610cbb57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610c8c5790505b50509250505060206040518083038186803b156100005760325a03f4156100005750505060405180519050734a0af9db6314e61013dd0c4b2de13d8a226b3b4463c9ae5594856008016000604051602001526040518263ffffffff1660e060020a02815260040180806020018281038252838181548152602001915080548015610d8257602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610d535790505b50509250505060206040518083038186803b156100005760325a03f4156100005750506040515160018601546002870154600a880154929350909160ff166005811161000057600a880154610100900460ff16600481116100005788600a0160029054906101000a900460ff16896009015489805480602002602001604051908101604052809291908181526020018280548015610e5d57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e2e5790505b5050505050995088805480602002602001604051908101604052809291908181526020018280548015610ecd57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e9e5790505b505050505098509a509a509a509a509a509a509a509a509a509a505b509193959799509193959799565b600754600160a060020a039081169033168114610f1357610000565b610f1b610f35565b610f23610911565b600754600160a060020a0316ff5b5b50565b600160a060020a0333166000908152600b602052604090205460ff161515610f5c57610000565b6004805460ff191690555b5b565b60016020526000908152604090205481565b600854600160a060020a039081169033168114610f9857610000565b60088054600160a060020a039081166000908152600b6020526040808220805460ff199081169091558454600160a060020a031916878516179485905593909216815220805490911660011790555b5b5050565b43600090815260066020526040812080546001019081905560055490111561101357610000565b60008281548110156100005790600052602060002090600b020160005b50600a81015490915062010000900460ff161561104c57610000565b80734a0af9db6314e61013dd0c4b2de13d8a226b3b44635176076990916000604051602001526040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b156100005760325a03f41561000057505060405151151590506110bf57610000565b600a81015462010000900460ff1615610895576108958261148d565b5b5b5b5050565b60025481565b60008160008181548110156100005790600052602060002090600b020160005b505433600160a060020a0390811691161461112257610000565b43600090815260066020526040902080546001019081905560055490111561114957610000565b60008381548110156100005790600052602060002090600b020160005b50915081734a0af9db6314e61013dd0c4b2de13d8a226b3b44635176076990916000604051602001526040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b156100005760325a03f41561000057505060405151151590506111dc57610000565b6040805160e060020a63b14efa8102815260048101849052600360248201529051734a0af9db6314e61013dd0c4b2de13d8a226b3b449163b14efa81916044808301926000929190829003018186803b156100005760325a03f4156100005750505061084e82611702565b5b5b5b505050565b600a5481565b600754600160a060020a03908116903316811461127157610000565b60078054600160a060020a039081166000908152600b6020526040808220805460ff199081169091558454600160a060020a031916878516179485905593909216815220805490911660011790555b5b5050565b60055481565b600854600160a060020a031681565b600754600160a060020a031681565b600754600160a060020a03908116903316811461130557610000565b6004805460ff191660011790555b5b50565b60008160008181548110156100005790600052602060002090600b020160005b505433600160a060020a0390811691161461135157610000565b43600090815260066020526040902080546001019081905560055490111561137857610000565b60008381548110156100005790600052602060002090600b020160005b50915081734a0af9db6314e61013dd0c4b2de13d8a226b3b44635176076990916000604051602001526040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b156100005760325a03f415610000575050604051511515905061140b57610000565b6040805160e060020a63b14efa8102815260048101849052600260248201529051734a0af9db6314e61013dd0c4b2de13d8a226b3b449163b14efa81916044808301926000929190829003018186803b156100005760325a03f4156100005750505061084e82611702565b5b5b5b505050565b60045460ff1681565b60095481565b600060008281548110156100005790600052602060002090600b020160005b50905080600201548160010154600a540111156114d95780600201548160010154600a540103600a819055505b60038101548154600a8301547f4a1970571cf2c9b2472a30fa66289291ec13b549a106daed111833db9f7e29129291600160a060020a031690610100900460ff16600481116100005784600101548560020154734a0af9db6314e61013dd0c4b2de13d8a226b3b4463c9ae5594886008016000604051602001526040518263ffffffff1660e060020a028152600401808060200182810382528381815481526020019150805480156115c857602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116115995790505b50509250505060206040518083038186803b156100005760325a03f4156100005750505060405180519050734a0af9db6314e61013dd0c4b2de13d8a226b3b4463c9ae5594896007016000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818154815260200191508054801561168f57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116116605790505b50509250505060206040518083038186803b156100005760325a03f415610000575050604080518051988152600160a060020a03909716602088015286810195909552506060850192909252608084015260ff90811660a084015290921660c082015290519081900360e00190a15b5050565b60038101548154600983015460408051938452600160a060020a03909216602084015282820152517f59ae20734117a013d881adb81df355936db8e563cb97747816a988eb4d7c6f249181900360600190a15b505600a165627a7a7230582098bd82430d1d8ba83ccfb6480cdb4bb0eba5da2529e643f7f5e3927f67e5f28800290000000000000000000000000c26a6dbf6b285145ca4f64397a521f8b5e49a790000000000000000000000000c26a6dbf6b285145ca4f64397a521f8b5e49a79
Deployed Bytecode
0x606060405236156101385763ffffffff60e060020a6000350416631220c6ed8114610149578063148105ab14610164578063173825d91461016e57806326767cfe1461018957806327a1d948146101985780632e5b2168146101a55780632f54bf6e146101c4578063438b2aed146101f15780634e0e1a3e1461020957806358be98dd1461031057806364b837ab1461031f578063657045061461032e57806388a8c95c1461035957806391b56822146103745780639619367d1461038657806396b76c23146103a55780639741efe4146103b7578063a51db46b146103d6578063bb826e50146103f1578063c1eb5ddd14610410578063cfb079d314610439578063d50b65d714610462578063d65ab5f214610471578063ebf6e91d1461047b578063ef4498881461048d578063faee4a10146104ae575b6101475b6101446104cd565b5b565b005b3461000057610147600160a060020a0360043516610855565b005b61014761089a565b005b3461000057610147600160a060020a03600435166108cf565b005b3461000057610147610911565b005b610147600435610a0f565b005b34610000576101b2610b75565b60408051918252519081900360200190f35b34610000576101dd600160a060020a0360043516610b7b565b604080519115158252519081900360200190f35b3461000057610147600435602435604435610b90565b005b3461000057610219600435610bc3565b6040805160ff808b169282019290925288821660608201526080810188905260a0810187905285821660c082015290841660e082015282151561010082015261012081018290526101408082528b51908201528a5181906020808301916101608401918f8101910280838382156102ab575b8051825260208311156102ab57601f19909201916020918201910161028b565b5050509190910184810383528d5181528d5160209182019250818f01910280838382156102f3575b8051825260208311156102f357601f1990920191602091820191016102d3565b5050509050019c5050505050505050505050505060405180910390f35b3461000057610147610ef7565b005b3461000057610147610f35565b005b34610000576101b2600160a060020a0360043516610f6a565b60408051918252519081900360200190f35b3461000057610147600160a060020a0360043516610f7c565b005b3461000057610147600435610fec565b005b34610000576101b26110e2565b60408051918252519081900360200190f35b34610000576101476004356110e8565b005b34610000576101b261124f565b60408051918252519081900360200190f35b3461000057610147600160a060020a0360043516611255565b005b34610000576101b26112c5565b60408051918252519081900360200190f35b346100005761041d6112cb565b60408051600160a060020a039092168252519081900360200190f35b346100005761041d6112da565b60408051600160a060020a039092168252519081900360200190f35b34610000576101476112e9565b005b6101476104cd565b005b3461000057610147600435611317565b005b34610000576101dd61147e565b604080519115158252519081900360200190f35b34610000576101b2611487565b60408051918252519081900360200190f35b436000908152600660205260408120805460010190819055600554829182919011156104f857610000565b60045460ff16151561050957610000565b60025434101561051857610000565b60035434111561052757610000565b600160a060020a0333166000908152600160205260408120549054909350839011156106305760008381548110156100005790600052602060002090600b020160005b50805490925033600160a060020a0390811691161480156105965750600a82015462010000900460ff16155b156106305781734a0af9db6314e61013dd0c4b2de13d8a226b3b44635176076990916000604051602001526040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b156100005760325a03f415610000575050604051511515905061060e57610000565b600a82015462010000900460ff16151561062757610000565b6106308361148d565b5b5b50600080546001810180835590918183801582901161078857600b0281600b02836000526020600020918201910161078891905b808211156106c8578054600160a060020a03191681556000600182018190556002820181905560038201819055600482018054828255818352602080842084926106cc92601f909101048101905b808211156106c857600081556001016106b4565b5090565b5b5050600181018054600160a060020a03191690556000600290910181905560078301805482825590825260209182902061072692601f909201919091048101905b808211156106c857600081556001016106b4565b5090565b5b5060088201805460008255601f01602090049060005260206000209081019061076491905b808211156106c857600081556001016106b4565b5090565b5b505060006009820155600a8101805462ffffff19169055600b01610666565b5090565b5b5050505060008181548110156100005790600052602060002090600b020160005b50734a0af9db6314e61013dd0c4b2de13d8a226b3b4463772b36aa9091836040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060006040518083038186803b156100005760325a03f41561000057505050600160a060020a0333166000908152600160205260408120829055805461084e919083908110156100005790600052602060002090600b020160005b50611702565b5b5b505050565b600754600160a060020a03908116903316811461087157610000565b600160a060020a0382166000908152600b60205260409020805460ff191660011790555b5b5050565b600754600160a060020a0390811690331681146108b657610000565b6009805434908101909155600a805490910190555b5b50565b600754600160a060020a0390811690331681146108eb57610000565b600160a060020a0382166000908152600b60205260409020805460ff191690555b5b5050565b600160a060020a0333166000908152600b6020526040812054819060ff16151561093a57610000565b600954600a541161094a57610895565b600954600a54600754600e54600c54939092039450600160a060020a0316916108fc91908502811561000057604051919004801590920291906000818181858888f1935050505015156109a957600e54600c5483028115610000570490505b600854600e54600d54600160a060020a03909216916108fc91908502811561000057604051919004801590920291906000818181858888f1935050505015156109fe57600e54600d5483028115610000570490505b600a8054828403900390555b5b5050565b60008160008181548110156100005790600052602060002090600b020160005b505433600160a060020a03908116911614610a4957610000565b436000908152600660205260409020805460010190819055600554901115610a7057610000565b60008381548110156100005790600052602060002090600b020160005b50915081734a0af9db6314e61013dd0c4b2de13d8a226b3b44635176076990916000604051602001526040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b156100005760325a03f4156100005750506040515115159050610b0357610000565b6040805160e060020a63b14efa81028152600480820185905260248201529051734a0af9db6314e61013dd0c4b2de13d8a226b3b449163b14efa81916044808301926000929190829003018186803b156100005760325a03f4156100005750505061084e82611702565b5b5b5b505050565b60035481565b600b6020526000908152604090205460ff1681565b600754600160a060020a039081169033168114610bac57610000565b6002849055600383905560058290555b5b50505050565b6020604051908101604052806000815250602060405190810160405280600081525060006000600060006000600060006000600060008c81548110156100005790600052602060002090600b020160005b5090508060070181600801734a0af9db6314e61013dd0c4b2de13d8a226b3b4463c9ae5594846007016000604051602001526040518263ffffffff1660e060020a02815260040180806020018281038252838181548152602001915080548015610cbb57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610c8c5790505b50509250505060206040518083038186803b156100005760325a03f4156100005750505060405180519050734a0af9db6314e61013dd0c4b2de13d8a226b3b4463c9ae5594856008016000604051602001526040518263ffffffff1660e060020a02815260040180806020018281038252838181548152602001915080548015610d8257602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610d535790505b50509250505060206040518083038186803b156100005760325a03f4156100005750506040515160018601546002870154600a880154929350909160ff166005811161000057600a880154610100900460ff16600481116100005788600a0160029054906101000a900460ff16896009015489805480602002602001604051908101604052809291908181526020018280548015610e5d57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e2e5790505b5050505050995088805480602002602001604051908101604052809291908181526020018280548015610ecd57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610e9e5790505b505050505098509a509a509a509a509a509a509a509a509a509a505b509193959799509193959799565b600754600160a060020a039081169033168114610f1357610000565b610f1b610f35565b610f23610911565b600754600160a060020a0316ff5b5b50565b600160a060020a0333166000908152600b602052604090205460ff161515610f5c57610000565b6004805460ff191690555b5b565b60016020526000908152604090205481565b600854600160a060020a039081169033168114610f9857610000565b60088054600160a060020a039081166000908152600b6020526040808220805460ff199081169091558454600160a060020a031916878516179485905593909216815220805490911660011790555b5b5050565b43600090815260066020526040812080546001019081905560055490111561101357610000565b60008281548110156100005790600052602060002090600b020160005b50600a81015490915062010000900460ff161561104c57610000565b80734a0af9db6314e61013dd0c4b2de13d8a226b3b44635176076990916000604051602001526040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b156100005760325a03f41561000057505060405151151590506110bf57610000565b600a81015462010000900460ff1615610895576108958261148d565b5b5b5b5050565b60025481565b60008160008181548110156100005790600052602060002090600b020160005b505433600160a060020a0390811691161461112257610000565b43600090815260066020526040902080546001019081905560055490111561114957610000565b60008381548110156100005790600052602060002090600b020160005b50915081734a0af9db6314e61013dd0c4b2de13d8a226b3b44635176076990916000604051602001526040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b156100005760325a03f41561000057505060405151151590506111dc57610000565b6040805160e060020a63b14efa8102815260048101849052600360248201529051734a0af9db6314e61013dd0c4b2de13d8a226b3b449163b14efa81916044808301926000929190829003018186803b156100005760325a03f4156100005750505061084e82611702565b5b5b5b505050565b600a5481565b600754600160a060020a03908116903316811461127157610000565b60078054600160a060020a039081166000908152600b6020526040808220805460ff199081169091558454600160a060020a031916878516179485905593909216815220805490911660011790555b5b5050565b60055481565b600854600160a060020a031681565b600754600160a060020a031681565b600754600160a060020a03908116903316811461130557610000565b6004805460ff191660011790555b5b50565b60008160008181548110156100005790600052602060002090600b020160005b505433600160a060020a0390811691161461135157610000565b43600090815260066020526040902080546001019081905560055490111561137857610000565b60008381548110156100005790600052602060002090600b020160005b50915081734a0af9db6314e61013dd0c4b2de13d8a226b3b44635176076990916000604051602001526040518263ffffffff1660e060020a0281526004018082815260200191505060206040518083038186803b156100005760325a03f415610000575050604051511515905061140b57610000565b6040805160e060020a63b14efa8102815260048101849052600260248201529051734a0af9db6314e61013dd0c4b2de13d8a226b3b449163b14efa81916044808301926000929190829003018186803b156100005760325a03f4156100005750505061084e82611702565b5b5b5b505050565b60045460ff1681565b60095481565b600060008281548110156100005790600052602060002090600b020160005b50905080600201548160010154600a540111156114d95780600201548160010154600a540103600a819055505b60038101548154600a8301547f4a1970571cf2c9b2472a30fa66289291ec13b549a106daed111833db9f7e29129291600160a060020a031690610100900460ff16600481116100005784600101548560020154734a0af9db6314e61013dd0c4b2de13d8a226b3b4463c9ae5594886008016000604051602001526040518263ffffffff1660e060020a028152600401808060200182810382528381815481526020019150805480156115c857602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116115995790505b50509250505060206040518083038186803b156100005760325a03f4156100005750505060405180519050734a0af9db6314e61013dd0c4b2de13d8a226b3b4463c9ae5594896007016000604051602001526040518263ffffffff1660e060020a0281526004018080602001828103825283818154815260200191508054801561168f57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116116605790505b50509250505060206040518083038186803b156100005760325a03f415610000575050604080518051988152600160a060020a03909716602088015286810195909552506060850192909252608084015260ff90811660a084015290921660c082015290519081900360e00190a15b5050565b60038101548154600983015460408051938452600160a060020a03909216602084015282820152517f59ae20734117a013d881adb81df355936db8e563cb97747816a988eb4d7c6f249181900360600190a15b505600a165627a7a7230582098bd82430d1d8ba83ccfb6480cdb4bb0eba5da2529e643f7f5e3927f67e5f2880029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000c26a6dbf6b285145ca4f64397a521f8b5e49a790000000000000000000000000c26a6dbf6b285145ca4f64397a521f8b5e49a79
-----Decoded View---------------
Arg [0] : _DX (address): 0x0C26a6dbF6b285145cA4F64397a521F8b5E49a79
Arg [1] : _DEV (address): 0x0C26a6dbF6b285145cA4F64397a521F8b5E49a79
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000c26a6dbf6b285145ca4f64397a521f8b5e49a79
Arg [1] : 0000000000000000000000000c26a6dbf6b285145ca4f64397a521f8b5e49a79
Libraries Used
ArrayLib : 0xcbf109aafdbdd2797aeea214cf3297b2361743f6UnverifiedDeckLib : 0x3ae855a405c9bd435a4ab226dd5c82e66a6b81bfUnverifiedGameLib : 0x4a0af9db6314e61013dd0c4b2de13d8a226b3b44Unverified
Swarm Source
bzzr://98bd82430d1d8ba83ccfb6480cdb4bb0eba5da2529e643f7f5e3927f67e5f288
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.