Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 47 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Payout | 5506867 | 2164 days ago | IN | 0 ETH | 0.00012616 | ||||
Purchase | 5333092 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5333067 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5333063 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5333060 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5333043 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5333043 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5333043 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5333043 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5333032 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5329758 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5329755 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5329746 | 2193 days ago | IN | 0.02 ETH | 0.00011989 | ||||
Purchase | 5329125 | 2194 days ago | IN | 0.16 ETH | 0.00013483 | ||||
Purchase | 5328947 | 2194 days ago | IN | 0.16 ETH | 0.00008993 | ||||
Purchase | 5328869 | 2194 days ago | IN | 0.08 ETH | 0.00011989 | ||||
Create Promo Tea... | 5328839 | 2194 days ago | IN | 0 ETH | 0.00020458 | ||||
Create Promo Tea... | 5328828 | 2194 days ago | IN | 0 ETH | 0.00020342 | ||||
Create Promo Tea... | 5328823 | 2194 days ago | IN | 0 ETH | 0.00020432 | ||||
Create Promo Tea... | 5328823 | 2194 days ago | IN | 0 ETH | 0.00020458 | ||||
Create Promo Tea... | 5328821 | 2194 days ago | IN | 0 ETH | 0.00020432 | ||||
Create Promo Tea... | 5328818 | 2194 days ago | IN | 0 ETH | 0.00020509 | ||||
Create Promo Tea... | 5328814 | 2194 days ago | IN | 0 ETH | 0.00020381 | ||||
Create Promo Tea... | 5328813 | 2194 days ago | IN | 0 ETH | 0.00020483 | ||||
Create Promo Tea... | 5328813 | 2194 days ago | IN | 0 ETH | 0.00020394 |
Latest 16 internal transactions
Advanced mode:
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
5506867 | 2164 days ago | 0.032 ETH | ||||
5333092 | 2193 days ago | 0.019 ETH | ||||
5333067 | 2193 days ago | 0.019 ETH | ||||
5333063 | 2193 days ago | 0.019 ETH | ||||
5333060 | 2193 days ago | 0.019 ETH | ||||
5333043 | 2193 days ago | 0.019 ETH | ||||
5333043 | 2193 days ago | 0.019 ETH | ||||
5333043 | 2193 days ago | 0.019 ETH | ||||
5333043 | 2193 days ago | 0.019 ETH | ||||
5333032 | 2193 days ago | 0.019 ETH | ||||
5329758 | 2193 days ago | 0.019 ETH | ||||
5329755 | 2193 days ago | 0.019 ETH | ||||
5329746 | 2193 days ago | 0.019 ETH | ||||
5329125 | 2194 days ago | 0.152 ETH | ||||
5328947 | 2194 days ago | 0.152 ETH | ||||
5328869 | 2194 days ago | 0.076 ETH |
Loading...
Loading
Contract Name:
BallerToken
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-03-27 */ pragma solidity ^0.4.18; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } /** * @title Destructible * @dev Base contract that can be destroyed by owner. All funds in contract will be sent to the owner. */ contract Destructible is Ownable { function Destructible() public payable { } /** * @dev Transfers the current balance to the owner and terminates the contract. */ function destroy() onlyOwner public { selfdestruct(owner); } function destroyAndSend(address _recipient) onlyOwner public { selfdestruct(_recipient); } } /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold 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) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract BallerToken is Ownable, Destructible { using SafeMath for uint; /*** EVENTS ***/ // @dev Fired whenever a new Baller token is created for the first time. event BallerCreated(uint256 tokenId, string name, address owner); // @dev Fired whenever a new Baller Player token is created for first time event BallerPlayerCreated(uint256 tokenId, string name, uint teamID, address owner); // @dev Fired whenever a Baller token is sold. event TokenSold(uint256 tokenId, uint256 oldPrice, uint256 newPrice, address prevOwner, address newOwner, string name); // @dev Fired whenever a team is transfered from one owner to another event Transfer(address from, address to, uint256 tokenId); /*** CONSTANTS ***/ uint constant private DEFAULT_START_PRICE = 0.01 ether; uint constant private FIRST_PRICE_LIMIT = 0.5 ether; uint constant private SECOND_PRICE_LIMIT = 2 ether; uint constant private THIRD_PRICE_LIMIT = 5 ether; uint constant private FIRST_COMMISSION_LEVEL = 5; uint constant private SECOND_COMMISSION_LEVEL = 4; uint constant private THIRD_COMMISSION_LEVEL = 3; uint constant private FOURTH_COMMISSION_LEVEL = 2; uint constant private FIRST_LEVEL_INCREASE = 200; uint constant private SECOND_LEVEL_INCREASE = 135; uint constant private THIRD_LEVEL_INCREASE = 125; uint constant private FOURTH_LEVEL_INCREASE = 115; /*** STORAGE ***/ // @dev maps team id to address of who owns it mapping (uint => address) private teamIndexToOwner; // @dev maps team id to a price mapping (uint => uint) private teamIndexToPrice; // @dev maps address to how many tokens they own mapping (address => uint) private ownershipTokenCount; // @dev maps player id to address of who owns it mapping (uint => address) public playerIndexToOwner; // @dev maps player id to a price mapping (uint => uint) private playerIndexToPrice; // @dev maps address to how many players they own mapping (address => uint) private playerOwnershipTokenCount; /*** DATATYPES ***/ //@dev struct for a baller team struct Team { string name; } //@dev struct for a baller player struct Player { string name; uint teamID; } //@dev array which holds each team Team[] private ballerTeams; //@dev array which holds each baller Player[] private ballerPlayers; /*** PUBLIC FUNCTIONS ***/ /** * @dev public function to create team, can only be called by owner of smart contract * @param _name the name of the team * @param _price the price of the team when created */ function createTeam(string _name, uint _price) public onlyOwner { _createTeam(_name, this, _price); } /** * @dev public function to create a promotion team and assign it to some address * @param _name the name of the team * @param _owner the owner of the team when created * @param _price the price of the team when created */ function createPromoTeam(string _name, address _owner, uint _price) public onlyOwner { _createTeam(_name, _owner, _price); } /** * @dev public function to create a player, can only be called by owner of smart contract * @param _name the name of the player * @param _teamID the id of the team the player belongs to * @param _price the price of the player when created */ function createPlayer(string _name, uint _teamID, uint _price) public onlyOwner { _createPlayer(_name, _teamID, this, _price); } /** * @dev Returns all the relevant information about a specific team. * @param _tokenId The ID of the team. * @return teamName the name of the team. * @return currPrice what the team is currently worth. * @return owner address of whoever owns the team */ function getTeam(uint _tokenId) public view returns(string teamName, uint currPrice, address owner) { Team storage currTeam = ballerTeams[_tokenId]; teamName = currTeam.name; currPrice = teamIndexToPrice[_tokenId]; owner = ownerOf(_tokenId); } /** * @dev Returns all relevant info about a specific player. * @return playerName the name of the player * @return currPrice what the player is currently worth. * @return owner address of whoever owns the player. * @return owningTeamID ID of team that the player plays on. */ function getPlayer(uint _tokenId) public view returns(string playerName, uint currPrice, address owner, uint owningTeamID) { Player storage currPlayer = ballerPlayers[_tokenId]; playerName = currPlayer.name; currPrice = playerIndexToPrice[_tokenId]; owner = ownerOfPlayer(_tokenId); owningTeamID = currPlayer.teamID; } /** * @dev changes the name of a specific team. * @param _tokenId The id of the team which you want to change. * @param _newName The name you want to set the team to be. */ function changeTeamName(uint _tokenId, string _newName) public onlyOwner { require(_tokenId < ballerTeams.length && _tokenId >= 0); ballerTeams[_tokenId].name = _newName; } /** * @dev changes name of a player. * @param _tokenId the id of the player which you want to change. * @param _newName the name you want to set the player to be. */ function changePlayerName(uint _tokenId, string _newName) public onlyOwner { require(_tokenId < ballerPlayers.length && _tokenId >= 0); ballerPlayers[_tokenId].name = _newName; } /** * @dev changes the team the player is own * @param _tokenId the id of the player which you want to change. * @param _newTeamId the team the player will now be on. */ function changePlayerTeam(uint _tokenId, uint _newTeamId) public onlyOwner { require(_newTeamId < ballerPlayers.length && _newTeamId >= 0); ballerPlayers[_tokenId].teamID = _newTeamId; } /** * @dev sends all ethereum in this contract to the address specified * @param _to address you want the eth to be sent to */ function payout(address _to) public onlyOwner { _withdrawAmount(_to, this.balance); } /** * @dev Function to send some amount of ethereum out of the contract to an address * @param _to address the eth will be sent to * @param _amount amount you want to withdraw */ function withdrawAmount(address _to, uint _amount) public onlyOwner { _withdrawAmount(_to, _amount); } /** * @dev Function to get price of a team * @param _teamId of team * @return price price of team */ function priceOfTeam(uint _teamId) public view returns (uint price) { price = teamIndexToPrice[_teamId]; } /** * @dev Function to get price of a player * @param _playerID id of player * @return price price of player */ function priceOfPlayer(uint _playerID) public view returns (uint price) { price = playerIndexToPrice[_playerID]; } /** * @dev Gets list of teams owned by a person. * @dev note: don't want to call this in the smart contract, expensive op. * @param _owner address of the owner * @return ownedTeams list of the teams owned by the owner */ function getTeamsOfOwner(address _owner) public view returns (uint[] ownedTeams) { uint tokenCount = balanceOf(_owner); ownedTeams = new uint[](tokenCount); uint totalTeams = totalSupply(); uint resultIndex = 0; if (tokenCount != 0) { for (uint pos = 0; pos < totalTeams; pos++) { address currOwner = ownerOf(pos); if (currOwner == _owner) { ownedTeams[resultIndex] = pos; resultIndex++; } } } } /** * @dev Gets list of players owned by a person. * @dev note: don't want to call this in smart contract, expensive op. * @param _owner address of owner * @return ownedPlayers list of all players owned by the address passed in */ function getPlayersOfOwner(address _owner) public view returns (uint[] ownedPlayers) { uint numPlayersOwned = balanceOfPlayers(_owner); ownedPlayers = new uint[](numPlayersOwned); uint totalPlayers = totalPlayerSupply(); uint resultIndex = 0; if (numPlayersOwned != 0) { for (uint pos = 0; pos < totalPlayers; pos++) { address currOwner = ownerOfPlayer(pos); if (currOwner == _owner) { ownedPlayers[resultIndex] = pos; resultIndex++; } } } } /* * @dev gets the address of owner of the team * @param _tokenId is id of the team * @return owner the owner of the team's address */ function ownerOf(uint _tokenId) public view returns (address owner) { owner = teamIndexToOwner[_tokenId]; require(owner != address(0)); } /* * @dev gets address of owner of player * @param _playerId is id of the player * @return owner the address of the owner of the player */ function ownerOfPlayer(uint _playerId) public view returns (address owner) { owner = playerIndexToOwner[_playerId]; require(owner != address(0)); } function teamOwnerOfPlayer(uint _playerId) public view returns (address teamOwner) { uint teamOwnerId = ballerPlayers[_playerId].teamID; teamOwner = ownerOf(teamOwnerId); } /* * @dev gets how many tokens an address owners * @param _owner is address of owner * @return numTeamsOwned how much teams he has */ function balanceOf(address _owner) public view returns (uint numTeamsOwned) { numTeamsOwned = ownershipTokenCount[_owner]; } /* * @dev gets how many players an owner owners * @param _owner is address of owner * @return numPlayersOwned how many players the owner has */ function balanceOfPlayers(address _owner) public view returns (uint numPlayersOwned) { numPlayersOwned = playerOwnershipTokenCount[_owner]; } /* * @dev gets total number of teams * @return totalNumTeams which is the number of teams */ function totalSupply() public view returns (uint totalNumTeams) { totalNumTeams = ballerTeams.length; } /* * @dev gets total number of players * @return totalNumPlayers is the number of players */ function totalPlayerSupply() public view returns (uint totalNumPlayers) { totalNumPlayers = ballerPlayers.length; } /** * @dev Allows user to buy a team from the old owner. * @dev Pays old owner minus commission, updates price. * @param _teamId id of the team they're trying to buy */ function purchase(uint _teamId) public payable { address oldOwner = ownerOf(_teamId); address newOwner = msg.sender; uint sellingPrice = teamIndexToPrice[_teamId]; // Making sure token owner is not sending to self require(oldOwner != newOwner); // Safety check to prevent against an unexpected 0x0 default. require(_addressNotNull(newOwner)); // Making sure sent amount is greater than or equal to the sellingPrice require(msg.value >= sellingPrice); uint payment = _calculatePaymentToOwner(sellingPrice, true); uint excessPayment = msg.value.sub(sellingPrice); uint newPrice = _calculateNewPrice(sellingPrice); teamIndexToPrice[_teamId] = newPrice; _transfer(oldOwner, newOwner, _teamId); // Pay old tokenOwner, unless it's the smart contract if (oldOwner != address(this)) { oldOwner.transfer(payment); } newOwner.transfer(excessPayment); string memory teamName = ballerTeams[_teamId].name; TokenSold(_teamId, sellingPrice, newPrice, oldOwner, newOwner, teamName); } /** * @dev allows user to buy a player from the old owner. * @dev pays old owner minus commission, updates price. * @dev commission includes house plus amount that goes to owner of team that player plays on * @param _playerId the id of the player they're trying to buy. */ function purchasePlayer(uint _playerId) public payable { address oldOwner = ownerOfPlayer(_playerId); address newOwner = msg.sender; address teamOwner = teamOwnerOfPlayer(_playerId); uint sellingPrice = playerIndexToPrice[_playerId]; // Making sure token owner is not sending to self require(oldOwner != newOwner); // Safety check to prevent against na unexpected 0x0 default require(_addressNotNull(newOwner)); //Making sure sent amount is greater than or equal to selling price require(msg.value >= sellingPrice); bool sellingTeam = false; uint payment = _calculatePaymentToOwner(sellingPrice, sellingTeam); uint commission = msg.value.sub(payment); uint teamOwnerCommission = commission.div(2); uint excessPayment = msg.value.sub(sellingPrice); uint newPrice = _calculateNewPrice(sellingPrice); playerIndexToPrice[_playerId] = newPrice; _transferPlayer(oldOwner, newOwner, _playerId); // pay old token owner if (oldOwner != address(this)) { oldOwner.transfer(payment); } // pay team owner if (teamOwner != address(this)) { teamOwner.transfer(teamOwnerCommission); } newOwner.transfer(excessPayment); string memory playerName = ballerPlayers[_playerId].name; TokenSold(_playerId, sellingPrice, newPrice, oldOwner, newOwner, playerName); } /// Safety check on _to address to prevent against an unexpected 0x0 default. function _addressNotNull(address _to) private pure returns (bool) { return _to != address(0); } /** * @dev Internal function to send some amount of ethereum out of the contract to an address * @param _to address the eth will be sent to * @param _amount amount you want to withdraw */ function _withdrawAmount(address _to, uint _amount) private { require(this.balance >= _amount); if (_to == address(0)) { owner.transfer(_amount); } else { _to.transfer(_amount); } } /** * @dev internal function to create team * @param _name the name of the team * @param _owner the owner of the team * @param _startingPrice the price of the team at the beginning */ function _createTeam(string _name, address _owner, uint _startingPrice) private { Team memory currTeam = Team(_name); uint newTeamId = ballerTeams.push(currTeam) - 1; // make sure we never overflow amount of tokens possible to be created // 4 billion tokens...shouldn't happen. require(newTeamId == uint256(uint32(newTeamId))); BallerCreated(newTeamId, _name, _owner); teamIndexToPrice[newTeamId] = _startingPrice; _transfer(address(0), _owner, newTeamId); } /** * @dev internal function to create player * @param _name the name of the player * @param _teamID the id of the team the player plays on * @param _owner the owner of the player * @param _startingPrice the price of the player at creation */ function _createPlayer(string _name, uint _teamID, address _owner, uint _startingPrice) private { Player memory currPlayer = Player(_name, _teamID); uint newPlayerId = ballerPlayers.push(currPlayer) - 1; // make sure we never overflow amount of tokens possible to be created // 4 billion players, shouldn't happen require(newPlayerId == uint256(uint32(newPlayerId))); BallerPlayerCreated(newPlayerId, _name, _teamID, _owner); playerIndexToPrice[newPlayerId] = _startingPrice; _transferPlayer(address(0), _owner, newPlayerId); } /** * @dev internal function to transfer ownership of team * @param _from original owner of token * @param _to the new owner * @param _teamId id of the team */ function _transfer(address _from, address _to, uint _teamId) private { ownershipTokenCount[_to]++; teamIndexToOwner[_teamId] = _to; // Creation of new team causes _from to be 0 if (_from != address(0)) { ownershipTokenCount[_from]--; } Transfer(_from, _to, _teamId); } /** * @dev internal function to transfer ownership of player * @param _from original owner of token * @param _to the new owner * @param _playerId the id of the player */ function _transferPlayer(address _from, address _to, uint _playerId) private { playerOwnershipTokenCount[_to]++; playerIndexToOwner[_playerId] = _to; // creation of new player causes _from to be 0 if (_from != address(0)) { playerOwnershipTokenCount[_from]--; } Transfer(_from, _to, _playerId); } /** * @dev internal function to calculate how much to give to owner of contract * @param _sellingPrice the current price of the team * @param _sellingTeam if you're selling a team or a player * @return payment amount the owner gets after commission. */ function _calculatePaymentToOwner(uint _sellingPrice, bool _sellingTeam) private pure returns (uint payment) { uint multiplier = 1; if (! _sellingTeam) { multiplier = 2; } uint commissionAmount = 100; if (_sellingPrice < FIRST_PRICE_LIMIT) { commissionAmount = commissionAmount.sub(FIRST_COMMISSION_LEVEL.mul(multiplier)); payment = uint256(_sellingPrice.mul(commissionAmount).div(100)); } else if (_sellingPrice < SECOND_PRICE_LIMIT) { commissionAmount = commissionAmount.sub(SECOND_COMMISSION_LEVEL.mul(multiplier)); payment = uint256(_sellingPrice.mul(commissionAmount).div(100)); } else if (_sellingPrice < THIRD_PRICE_LIMIT) { commissionAmount = commissionAmount.sub(THIRD_COMMISSION_LEVEL.mul(multiplier)); payment = uint256(_sellingPrice.mul(commissionAmount).div(100)); } else { commissionAmount = commissionAmount.sub(FOURTH_COMMISSION_LEVEL.mul(multiplier)); payment = uint256(_sellingPrice.mul(commissionAmount).div(100)); } } /** * @dev internal function to calculate how much the new price is * @param _sellingPrice the current price of the team. * @return newPrice price the team will be worth after being bought. */ function _calculateNewPrice(uint _sellingPrice) private pure returns (uint newPrice) { if (_sellingPrice < FIRST_PRICE_LIMIT) { newPrice = uint256(_sellingPrice.mul(FIRST_LEVEL_INCREASE).div(100)); } else if (_sellingPrice < SECOND_PRICE_LIMIT) { newPrice = uint256(_sellingPrice.mul(SECOND_LEVEL_INCREASE).div(100)); } else if (_sellingPrice < THIRD_PRICE_LIMIT) { newPrice = uint256(_sellingPrice.mul(THIRD_LEVEL_INCREASE).div(100)); } else { newPrice = uint256(_sellingPrice.mul(FOURTH_LEVEL_INCREASE).div(100)); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getTeam","outputs":[{"name":"teamName","type":"string"},{"name":"currPrice","type":"uint256"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_playerId","type":"uint256"}],"name":"teamOwnerOfPlayer","outputs":[{"name":"teamOwner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_playerId","type":"uint256"}],"name":"purchasePlayer","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"payout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"totalNumTeams","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalPlayerSupply","outputs":[{"name":"totalNumPlayers","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_newName","type":"string"}],"name":"changePlayerName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_newTeamId","type":"uint256"}],"name":"changePlayerTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"numTeamsOwned","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_playerID","type":"uint256"}],"name":"priceOfPlayer","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_owner","type":"address"},{"name":"_price","type":"uint256"}],"name":"createPromoTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"getTeamsOfOwner","outputs":[{"name":"ownedTeams","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOfPlayers","outputs":[{"name":"numPlayersOwned","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_newName","type":"string"}],"name":"changeTeamName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_price","type":"uint256"}],"name":"createTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"getPlayersOfOwner","outputs":[{"name":"ownedPlayers","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_teamID","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"createPlayer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_playerId","type":"uint256"}],"name":"ownerOfPlayer","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_teamId","type":"uint256"}],"name":"priceOfTeam","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getPlayer","outputs":[{"name":"playerName","type":"string"},{"name":"currPrice","type":"uint256"},{"name":"owner","type":"address"},{"name":"owningTeamID","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_teamId","type":"uint256"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"playerIndexToOwner","outputs":[{"name":"","type":"address"}],"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":"_recipient","type":"address"}],"name":"destroyAndSend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"owner","type":"address"}],"name":"BallerCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"teamID","type":"uint256"},{"indexed":false,"name":"owner","type":"address"}],"name":"BallerPlayerCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"oldPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"},{"indexed":false,"name":"prevOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"},{"indexed":false,"name":"name","type":"string"}],"name":"TokenSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
6060604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612d04806100536000396000f300606060405260043610610169576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680628e0f1b1461016e5780630488781a14610244578063075881d6146102a75780630b7e9c44146102bf57806318160ddd146102f85780632d144e6b146103215780635d72b30d1461034a5780636352211e146103b05780636fff06521461041357806370a082311461043f578063736fe5651461048c5780637ae488c3146104ce57806383197ef0146105055780638da5cb5b1461051a5780638faad4c41461056f57806392f461ed146105f4578063956fd9df14610682578063a7fb95f6146106cf578063ad8ead6914610735578063adc73d461461079b578063b96a39bd14610829578063bfcc8b6d14610898578063cc6eced7146108fb578063e55ae4e814610932578063efef39a114610a0f578063f2d05f2b14610a27578063f2fde38b14610a8a578063f5074f4114610ac3575b600080fd5b341561017957600080fd5b61018f6004808035906020019091905050610afc565b60405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156102075780820151818401526020810190506101ec565b50505050905090810190601f1680156102345780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561024f57600080fd5b6102656004808035906020019091905050610bed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102bd6004808035906020019091905050610c24565b005b34156102ca57600080fd5b6102f6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611056565b005b341561030357600080fd5b61030b6110d5565b6040518082815260200191505060405180910390f35b341561032c57600080fd5b6103346110e2565b6040518082815260200191505060405180910390f35b341561035557600080fd5b6103ae600480803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506110ef565b005b34156103bb57600080fd5b6103d160048080359060200190919050506111a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561041e57600080fd5b61043d600480803590602001909190803590602001909190505061121c565b005b341561044a57600080fd5b610476600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112c0565b6040518082815260200191505060405180910390f35b341561049757600080fd5b6104cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611309565b005b34156104d957600080fd5b6104ef6004808035906020019091905050611372565b6040518082815260200191505060405180910390f35b341561051057600080fd5b61051861138f565b005b341561052557600080fd5b61052d611424565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057a57600080fd5b6105f2600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611449565b005b34156105ff57600080fd5b61062b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114b4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561066e578082015181840152602081019050610653565b505050509050019250505060405180910390f35b341561068d57600080fd5b6106b9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611592565b6040518082815260200191505060405180910390f35b34156106da57600080fd5b610733600480803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506115db565b005b341561074057600080fd5b610799600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190505061168c565b005b34156107a657600080fd5b6107d2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156108155780820151818401526020810190506107fa565b505050509050019250505060405180910390f35b341561083457600080fd5b610896600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080359060200190919050506117d4565b005b34156108a357600080fd5b6108b96004808035906020019091905050611840565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561090657600080fd5b61091c60048080359060200190919050506118b9565b6040518082815260200191505060405180910390f35b341561093d57600080fd5b61095360048080359060200190919050506118d6565b60405180806020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825286818151815260200191508051906020019080838360005b838110156109d15780820151818401526020810190506109b6565b50505050905090810190601f1680156109fe5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b610a2560048080359060200190919050506119d2565b005b3415610a3257600080fd5b610a486004808035906020019091905050611d48565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a9557600080fd5b610ac1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d7b565b005b3415610ace57600080fd5b610afa600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ed0565b005b610b04612a31565b6000806000600785815481101515610b1857fe5b90600052602060002090019050806000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bbd5780601f10610b9257610100808354040283529160200191610bbd565b820191906000526020600020905b815481529060010190602001808311610ba057829003601f168201915b5050505050935060026000868152602001908152602001600020549250610be3856111a3565b9150509193909250565b600080600883815481101515610bff57fe5b9060005260206000209060020201600101549050610c1c816111a3565b915050919050565b600080600080600080600080600080610c3b612a31565b610c448c611840565b9a50339950610c528c610bed565b9850600560008d81526020019081526020016000205497508973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614151515610ca557600080fd5b610cae8a611f44565b1515610cb957600080fd5b873410151515610cc857600080fd5b60009650610cd68888611f7d565b9550610ceb863461212090919063ffffffff16565b9450610d0160028661213990919063ffffffff16565b9350610d16883461212090919063ffffffff16565b9250610d2188612154565b915081600560008e815260200190815260200160002081905550610d468b8b8e612241565b3073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff16141515610dbc578a73ffffffffffffffffffffffffffffffffffffffff166108fc879081150290604051600060405180830381858888f193505050501515610dbb57600080fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141515610e32578873ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050501515610e3157600080fd5b5b8973ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515610e7257600080fd5b60088c815481101515610e8157fe5b90600052602060002090600202016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f265780601f10610efb57610100808354040283529160200191610f26565b820191906000526020600020905b815481529060010190602001808311610f0957829003601f168201915b505050505090507e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f8c89848e8e86604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611009578082015181840152602081019050610fee565b50505050905090810190601f1680156110365780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a1505050505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b157600080fd5b6110d2813073ffffffffffffffffffffffffffffffffffffffff163161240d565b50565b6000600780549050905090565b6000600880549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114a57600080fd5b6008805490508210801561115f575060008210155b151561116a57600080fd5b8060088381548110151561117a57fe5b9060005260206000209060020201600001908051906020019061119e929190612a45565b505050565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561121757600080fd5b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561127757600080fd5b6008805490508110801561128c575060008110155b151561129757600080fd5b806008838154811015156112a757fe5b9060005260206000209060020201600101819055505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561136457600080fd5b61136e828261240d565b5050565b600060056000838152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ea57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114a457600080fd5b6114af838383612513565b505050565b6114bc612ac5565b60008060008060006114cd876112c0565b9450846040518059106114dd5750595b908082528060200260200182016040525095506114f86110d5565b93506000925060008514151561158857600091505b838210156115875761151e826111a3565b90508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561157a5781868481518110151561156357fe5b906020019060200201818152505082806001019350505b818060010192505061150d565b5b5050505050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163657600080fd5b6007805490508210801561164b575060008210155b151561165657600080fd5b8060078381548110151561166657fe5b90600052602060002090016000019080519060200190611687929190612a45565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116e757600080fd5b6116f2823083612513565b5050565b6116fe612ac5565b600080600080600061170f87611592565b94508460405180591061171f5750595b9080825280602002602001820160405250955061173a6110e2565b9350600092506000851415156117ca57600091505b838210156117c95761176082611840565b90508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117bc578186848151811015156117a557fe5b906020019060200201818152505082806001019350505b818060010192505061174f565b5b5050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561182f57600080fd5b61183b83833084612691565b505050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156118b457600080fd5b919050565b600060026000838152602001908152602001600020549050919050565b6118de612a31565b6000806000806008868154811015156118f357fe5b90600052602060002090600202019050806000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561199b5780601f106119705761010080835404028352916020019161199b565b820191906000526020600020905b81548152906001019060200180831161197e57829003601f168201915b50505050509450600560008781526020019081526020016000205493506119c186611840565b925080600101549150509193509193565b6000806000806000806119e3612a31565b6119ec886111a3565b9650339550600260008981526020019081526020016000205494508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515611a4257600080fd5b611a4b86611f44565b1515611a5657600080fd5b843410151515611a6557600080fd5b611a70856001611f7d565b9350611a85853461212090919063ffffffff16565b9250611a9085612154565b915081600260008a815260200190815260200160002081905550611ab587878a61282a565b3073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141515611b2b578673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050501515611b2a57600080fd5b5b8573ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515611b6b57600080fd5b600788815481101515611b7a57fe5b90600052602060002090016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c1c5780601f10611bf157610100808354040283529160200191611c1c565b820191906000526020600020905b815481529060010190602001808311611bff57829003601f168201915b505050505090507e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f8886848a8a86604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611cff578082015181840152602081019050611ce4565b50505050905090810190601f168015611d2c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050505050505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dd657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e1257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f2b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600060019150831515611f9257600291505b606490506706f05b59d3b20000851015611ffb57611fcc611fbd8360056129f690919063ffffffff16565b8261212090919063ffffffff16565b9050611ff46064611fe683886129f690919063ffffffff16565b61213990919063ffffffff16565b9250612118565b671bc16d674ec80000851015612060576120316120228360046129f690919063ffffffff16565b8261212090919063ffffffff16565b9050612059606461204b83886129f690919063ffffffff16565b61213990919063ffffffff16565b9250612117565b674563918244f400008510156120c5576120966120878360036129f690919063ffffffff16565b8261212090919063ffffffff16565b90506120be60646120b083886129f690919063ffffffff16565b61213990919063ffffffff16565b9250612116565b6120eb6120dc8360026129f690919063ffffffff16565b8261212090919063ffffffff16565b9050612113606461210583886129f690919063ffffffff16565b61213990919063ffffffff16565b92505b5b5b505092915050565b600082821115151561212e57fe5b818303905092915050565b600080828481151561214757fe5b0490508091505092915050565b60006706f05b59d3b200008210156121945761218d606461217f60c8856129f690919063ffffffff16565b61213990919063ffffffff16565b905061223c565b671bc16d674ec800008210156121d2576121cb60646121bd6087856129f690919063ffffffff16565b61213990919063ffffffff16565b905061223b565b674563918244f400008210156122105761220960646121fb607d856129f690919063ffffffff16565b61213990919063ffffffff16565b905061223a565b61223760646122296073856129f690919063ffffffff16565b61213990919063ffffffff16565b90505b5b5b919050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561236957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055505b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b803073ffffffffffffffffffffffffffffffffffffffff16311015151561243357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124ce576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156124c957600080fd5b61250f565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561250e57600080fd5b5b5050565b61251b612ad9565b60006020604051908101604052808681525091506001600780548060010182816125459190612af3565b916000526020600020900160008590919091506000820151816000019080519060200190612574929190612b1f565b5050500390508063ffffffff168114151561258e57600080fd5b7f8482e3a5a624fa2db56c597cc43a1fd7c7b13b40073d14918619a6658932a8f381868660405180848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561262a57808201518184015260208101905061260f565b50505050905090810190601f1680156126575780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a182600260008381526020019081526020016000208190555061268a6000858361282a565b5050505050565b612699612b9f565b600060408051908101604052808781526020018681525091506001600880548060010182816126c89190612bbf565b9160005260206000209060020201600085909190915060008201518160000190805190602001906126fa929190612b1f565b506020820151816001015550500390508063ffffffff168114151561271e57600080fd5b7f2a65207877aa6973e1b08d7c4b1ddc15c146d1635126a1ab58fa9a88c05a650b8187878760405180858152602001806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156127c15780820151818401526020810190506127a6565b50505050905090810190601f1680156127ee5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a182600560008381526020019081526020016000208190555061282260008583612241565b505050505050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561295257600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055505b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b6000806000841415612a0b5760009150612a2a565b8284029050828482811515612a1c57fe5b04141515612a2657fe5b8091505b5092915050565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612a8657805160ff1916838001178555612ab4565b82800160010185558215612ab4579182015b82811115612ab3578251825591602001919060010190612a98565b5b509050612ac19190612bf1565b5090565b602060405190810160405280600081525090565b602060405190810160405280612aed612c16565b81525090565b815481835581811511612b1a57818360005260206000209182019101612b199190612c2a565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612b6057805160ff1916838001178555612b8e565b82800160010185558215612b8e579182015b82811115612b8d578251825591602001919060010190612b72565b5b509050612b9b9190612bf1565b5090565b6040805190810160405280612bb2612c16565b8152602001600081525090565b815481835581811511612bec57600202816002028360005260206000209182019101612beb9190612c59565b5b505050565b612c1391905b80821115612c0f576000816000905550600101612bf7565b5090565b90565b602060405190810160405280600081525090565b612c5691905b80821115612c525760008082016000612c499190612c90565b50600101612c30565b5090565b90565b612c8d91905b80821115612c895760008082016000612c789190612c90565b600182016000905550600201612c5f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10612cb65750612cd5565b601f016020900490600052602060002090810190612cd49190612bf1565b5b505600a165627a7a72305820b21963695a2be441ccbffef608f3060f8d9f81af063ca0d63a9dd9b4371407c70029
Deployed Bytecode
0x606060405260043610610169576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680628e0f1b1461016e5780630488781a14610244578063075881d6146102a75780630b7e9c44146102bf57806318160ddd146102f85780632d144e6b146103215780635d72b30d1461034a5780636352211e146103b05780636fff06521461041357806370a082311461043f578063736fe5651461048c5780637ae488c3146104ce57806383197ef0146105055780638da5cb5b1461051a5780638faad4c41461056f57806392f461ed146105f4578063956fd9df14610682578063a7fb95f6146106cf578063ad8ead6914610735578063adc73d461461079b578063b96a39bd14610829578063bfcc8b6d14610898578063cc6eced7146108fb578063e55ae4e814610932578063efef39a114610a0f578063f2d05f2b14610a27578063f2fde38b14610a8a578063f5074f4114610ac3575b600080fd5b341561017957600080fd5b61018f6004808035906020019091905050610afc565b60405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156102075780820151818401526020810190506101ec565b50505050905090810190601f1680156102345780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561024f57600080fd5b6102656004808035906020019091905050610bed565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102bd6004808035906020019091905050610c24565b005b34156102ca57600080fd5b6102f6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611056565b005b341561030357600080fd5b61030b6110d5565b6040518082815260200191505060405180910390f35b341561032c57600080fd5b6103346110e2565b6040518082815260200191505060405180910390f35b341561035557600080fd5b6103ae600480803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506110ef565b005b34156103bb57600080fd5b6103d160048080359060200190919050506111a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561041e57600080fd5b61043d600480803590602001909190803590602001909190505061121c565b005b341561044a57600080fd5b610476600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506112c0565b6040518082815260200191505060405180910390f35b341561049757600080fd5b6104cc600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611309565b005b34156104d957600080fd5b6104ef6004808035906020019091905050611372565b6040518082815260200191505060405180910390f35b341561051057600080fd5b61051861138f565b005b341561052557600080fd5b61052d611424565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561057a57600080fd5b6105f2600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611449565b005b34156105ff57600080fd5b61062b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114b4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561066e578082015181840152602081019050610653565b505050509050019250505060405180910390f35b341561068d57600080fd5b6106b9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611592565b6040518082815260200191505060405180910390f35b34156106da57600080fd5b610733600480803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506115db565b005b341561074057600080fd5b610799600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190505061168c565b005b34156107a657600080fd5b6107d2600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156108155780820151818401526020810190506107fa565b505050509050019250505060405180910390f35b341561083457600080fd5b610896600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080359060200190919050506117d4565b005b34156108a357600080fd5b6108b96004808035906020019091905050611840565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561090657600080fd5b61091c60048080359060200190919050506118b9565b6040518082815260200191505060405180910390f35b341561093d57600080fd5b61095360048080359060200190919050506118d6565b60405180806020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825286818151815260200191508051906020019080838360005b838110156109d15780820151818401526020810190506109b6565b50505050905090810190601f1680156109fe5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b610a2560048080359060200190919050506119d2565b005b3415610a3257600080fd5b610a486004808035906020019091905050611d48565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a9557600080fd5b610ac1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d7b565b005b3415610ace57600080fd5b610afa600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611ed0565b005b610b04612a31565b6000806000600785815481101515610b1857fe5b90600052602060002090019050806000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bbd5780601f10610b9257610100808354040283529160200191610bbd565b820191906000526020600020905b815481529060010190602001808311610ba057829003601f168201915b5050505050935060026000868152602001908152602001600020549250610be3856111a3565b9150509193909250565b600080600883815481101515610bff57fe5b9060005260206000209060020201600101549050610c1c816111a3565b915050919050565b600080600080600080600080600080610c3b612a31565b610c448c611840565b9a50339950610c528c610bed565b9850600560008d81526020019081526020016000205497508973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff1614151515610ca557600080fd5b610cae8a611f44565b1515610cb957600080fd5b873410151515610cc857600080fd5b60009650610cd68888611f7d565b9550610ceb863461212090919063ffffffff16565b9450610d0160028661213990919063ffffffff16565b9350610d16883461212090919063ffffffff16565b9250610d2188612154565b915081600560008e815260200190815260200160002081905550610d468b8b8e612241565b3073ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff16141515610dbc578a73ffffffffffffffffffffffffffffffffffffffff166108fc879081150290604051600060405180830381858888f193505050501515610dbb57600080fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16141515610e32578873ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050501515610e3157600080fd5b5b8973ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515610e7257600080fd5b60088c815481101515610e8157fe5b90600052602060002090600202016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f265780601f10610efb57610100808354040283529160200191610f26565b820191906000526020600020905b815481529060010190602001808311610f0957829003601f168201915b505050505090507e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f8c89848e8e86604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611009578082015181840152602081019050610fee565b50505050905090810190601f1680156110365780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a1505050505050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110b157600080fd5b6110d2813073ffffffffffffffffffffffffffffffffffffffff163161240d565b50565b6000600780549050905090565b6000600880549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114a57600080fd5b6008805490508210801561115f575060008210155b151561116a57600080fd5b8060088381548110151561117a57fe5b9060005260206000209060020201600001908051906020019061119e929190612a45565b505050565b60006001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561121757600080fd5b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561127757600080fd5b6008805490508110801561128c575060008110155b151561129757600080fd5b806008838154811015156112a757fe5b9060005260206000209060020201600101819055505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561136457600080fd5b61136e828261240d565b5050565b600060056000838152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ea57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114a457600080fd5b6114af838383612513565b505050565b6114bc612ac5565b60008060008060006114cd876112c0565b9450846040518059106114dd5750595b908082528060200260200182016040525095506114f86110d5565b93506000925060008514151561158857600091505b838210156115875761151e826111a3565b90508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561157a5781868481518110151561156357fe5b906020019060200201818152505082806001019350505b818060010192505061150d565b5b5050505050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163657600080fd5b6007805490508210801561164b575060008210155b151561165657600080fd5b8060078381548110151561166657fe5b90600052602060002090016000019080519060200190611687929190612a45565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116e757600080fd5b6116f2823083612513565b5050565b6116fe612ac5565b600080600080600061170f87611592565b94508460405180591061171f5750595b9080825280602002602001820160405250955061173a6110e2565b9350600092506000851415156117ca57600091505b838210156117c95761176082611840565b90508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117bc578186848151811015156117a557fe5b906020019060200201818152505082806001019350505b818060010192505061174f565b5b5050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561182f57600080fd5b61183b83833084612691565b505050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156118b457600080fd5b919050565b600060026000838152602001908152602001600020549050919050565b6118de612a31565b6000806000806008868154811015156118f357fe5b90600052602060002090600202019050806000018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561199b5780601f106119705761010080835404028352916020019161199b565b820191906000526020600020905b81548152906001019060200180831161197e57829003601f168201915b50505050509450600560008781526020019081526020016000205493506119c186611840565b925080600101549150509193509193565b6000806000806000806119e3612a31565b6119ec886111a3565b9650339550600260008981526020019081526020016000205494508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515611a4257600080fd5b611a4b86611f44565b1515611a5657600080fd5b843410151515611a6557600080fd5b611a70856001611f7d565b9350611a85853461212090919063ffffffff16565b9250611a9085612154565b915081600260008a815260200190815260200160002081905550611ab587878a61282a565b3073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141515611b2b578673ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f193505050501515611b2a57600080fd5b5b8573ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515611b6b57600080fd5b600788815481101515611b7a57fe5b90600052602060002090016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c1c5780601f10611bf157610100808354040283529160200191611c1c565b820191906000526020600020905b815481529060010190602001808311611bff57829003601f168201915b505050505090507e8201e7bcbf010c2c07de59d6e97cb7e3cf67a46125c49cbc89b9d2cde1f48f8886848a8a86604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611cff578082015181840152602081019050611ce4565b50505050905090810190601f168015611d2c5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050505050505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dd657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611e1257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f2b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600060019150831515611f9257600291505b606490506706f05b59d3b20000851015611ffb57611fcc611fbd8360056129f690919063ffffffff16565b8261212090919063ffffffff16565b9050611ff46064611fe683886129f690919063ffffffff16565b61213990919063ffffffff16565b9250612118565b671bc16d674ec80000851015612060576120316120228360046129f690919063ffffffff16565b8261212090919063ffffffff16565b9050612059606461204b83886129f690919063ffffffff16565b61213990919063ffffffff16565b9250612117565b674563918244f400008510156120c5576120966120878360036129f690919063ffffffff16565b8261212090919063ffffffff16565b90506120be60646120b083886129f690919063ffffffff16565b61213990919063ffffffff16565b9250612116565b6120eb6120dc8360026129f690919063ffffffff16565b8261212090919063ffffffff16565b9050612113606461210583886129f690919063ffffffff16565b61213990919063ffffffff16565b92505b5b5b505092915050565b600082821115151561212e57fe5b818303905092915050565b600080828481151561214757fe5b0490508091505092915050565b60006706f05b59d3b200008210156121945761218d606461217f60c8856129f690919063ffffffff16565b61213990919063ffffffff16565b905061223c565b671bc16d674ec800008210156121d2576121cb60646121bd6087856129f690919063ffffffff16565b61213990919063ffffffff16565b905061223b565b674563918244f400008210156122105761220960646121fb607d856129f690919063ffffffff16565b61213990919063ffffffff16565b905061223a565b61223760646122296073856129f690919063ffffffff16565b61213990919063ffffffff16565b90505b5b5b919050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561236957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055505b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b803073ffffffffffffffffffffffffffffffffffffffff16311015151561243357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124ce576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156124c957600080fd5b61250f565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561250e57600080fd5b5b5050565b61251b612ad9565b60006020604051908101604052808681525091506001600780548060010182816125459190612af3565b916000526020600020900160008590919091506000820151816000019080519060200190612574929190612b1f565b5050500390508063ffffffff168114151561258e57600080fd5b7f8482e3a5a624fa2db56c597cc43a1fd7c7b13b40073d14918619a6658932a8f381868660405180848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561262a57808201518184015260208101905061260f565b50505050905090810190601f1680156126575780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a182600260008381526020019081526020016000208190555061268a6000858361282a565b5050505050565b612699612b9f565b600060408051908101604052808781526020018681525091506001600880548060010182816126c89190612bbf565b9160005260206000209060020201600085909190915060008201518160000190805190602001906126fa929190612b1f565b506020820151816001015550500390508063ffffffff168114151561271e57600080fd5b7f2a65207877aa6973e1b08d7c4b1ddc15c146d1635126a1ab58fa9a88c05a650b8187878760405180858152602001806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156127c15780820151818401526020810190506127a6565b50505050905090810190601f1680156127ee5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a182600560008381526020019081526020016000208190555061282260008583612241565b505050505050565b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151561295257600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055505b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a1505050565b6000806000841415612a0b5760009150612a2a565b8284029050828482811515612a1c57fe5b04141515612a2657fe5b8091505b5092915050565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612a8657805160ff1916838001178555612ab4565b82800160010185558215612ab4579182015b82811115612ab3578251825591602001919060010190612a98565b5b509050612ac19190612bf1565b5090565b602060405190810160405280600081525090565b602060405190810160405280612aed612c16565b81525090565b815481835581811511612b1a57818360005260206000209182019101612b199190612c2a565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612b6057805160ff1916838001178555612b8e565b82800160010185558215612b8e579182015b82811115612b8d578251825591602001919060010190612b72565b5b509050612b9b9190612bf1565b5090565b6040805190810160405280612bb2612c16565b8152602001600081525090565b815481835581811511612bec57600202816002028360005260206000209182019101612beb9190612c59565b5b505050565b612c1391905b80821115612c0f576000816000905550600101612bf7565b5090565b90565b602060405190810160405280600081525090565b612c5691905b80821115612c525760008082016000612c499190612c90565b50600101612c30565b5090565b90565b612c8d91905b80821115612c895760008082016000612c789190612c90565b600182016000905550600201612c5f565b5090565b90565b50805460018160011615610100020316600290046000825580601f10612cb65750612cd5565b601f016020900490600052602060002090810190612cd49190612bf1565b5b505600a165627a7a72305820b21963695a2be441ccbffef608f3060f8d9f81af063ca0d63a9dd9b4371407c70029
Swarm Source
bzzr://b21963695a2be441ccbffef608f3060f8d9f81af063ca0d63a9dd9b4371407c7
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 24 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.