Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 289 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Upgrade Contract | 5203321 | 2479 days ago | IN | 0 ETH | 0.00031811 | ||||
Purchase | 5198097 | 2480 days ago | IN | 0.0016 ETH | 0.00018018 | ||||
Purchase | 5198056 | 2480 days ago | IN | 0.10995116 ETH | 0.00009009 | ||||
Purchase | 5198055 | 2480 days ago | IN | 0.10995116 ETH | 0.00009009 | ||||
Purchase | 5198053 | 2480 days ago | IN | 0.10995116 ETH | 0.00009009 | ||||
Purchase | 5198051 | 2480 days ago | IN | 0.10995116 ETH | 0.00009009 | ||||
Purchase | 5198051 | 2480 days ago | IN | 0.10995116 ETH | 0.00135138 | ||||
Purchase | 5198050 | 2480 days ago | IN | 0.10995116 ETH | 0.00135138 | ||||
Purchase | 5198045 | 2480 days ago | IN | 0.10995116 ETH | 0.00004504 | ||||
Purchase | 5198044 | 2480 days ago | IN | 0.10995116 ETH | 0.00112615 | ||||
Purchase | 5198044 | 2480 days ago | IN | 0.10995116 ETH | 0.00112615 | ||||
Purchase | 5198042 | 2480 days ago | IN | 0.10995116 ETH | 0.00027027 | ||||
Purchase | 5198042 | 2480 days ago | IN | 0.1 ETH | 0.00045046 | ||||
Purchase | 5198040 | 2480 days ago | IN | 0.10995116 ETH | 0.00024775 | ||||
Purchase | 5198040 | 2480 days ago | IN | 0.3 ETH | 0.00092344 | ||||
Purchase | 5198040 | 2480 days ago | IN | 0.5 ETH | 0.00094596 | ||||
Purchase | 5198040 | 2480 days ago | IN | 0.5 ETH | 0.00094596 | ||||
Purchase | 5198040 | 2480 days ago | IN | 0.5 ETH | 0.00114867 | ||||
Purchase | 5198036 | 2480 days ago | IN | 0.10995116 ETH | 0.00090092 | ||||
Purchase | 5198035 | 2480 days ago | IN | 0.004096 ETH | 0.00002477 | ||||
Purchase | 5198035 | 2480 days ago | IN | 0.10995116 ETH | 0.00004504 | ||||
On Maintenance | 5198032 | 2480 days ago | IN | 0 ETH | 0.002742 | ||||
Purchase | 5198031 | 2480 days ago | IN | 0.00256 ETH | 0.00003473 | ||||
Purchase | 5198024 | 2480 days ago | IN | 0.10995116 ETH | 0.00006314 | ||||
Purchase | 5198021 | 2480 days ago | IN | 0.10995116 ETH | 0.00006314 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
5203321 | 2479 days ago | 0.46898072 ETH | ||||
5198031 | 2480 days ago | 0.00256 ETH | ||||
5198024 | 2480 days ago | 0.10995116 ETH | ||||
5198021 | 2480 days ago | 0.10995116 ETH | ||||
5198020 | 2480 days ago | 0.0016 ETH | ||||
5198017 | 2480 days ago | 0.04294967 ETH | ||||
5198015 | 2480 days ago | 0.0065536 ETH | ||||
5198015 | 2480 days ago | 0.10995116 ETH | ||||
5198013 | 2480 days ago | 0.10995116 ETH | ||||
5198013 | 2480 days ago | 0.004096 ETH | ||||
5198011 | 2480 days ago | 0.10995116 ETH | ||||
5198011 | 2480 days ago | 0.10995116 ETH | ||||
5198011 | 2480 days ago | 0.10995116 ETH | ||||
5198008 | 2480 days ago | 0.10995116 ETH | ||||
5198008 | 2480 days ago | 0.10995116 ETH | ||||
5198008 | 2480 days ago | 0.02684354 ETH | ||||
5198008 | 2480 days ago | 1.55 ETH | ||||
5198008 | 2480 days ago | 1.67 ETH | ||||
5198007 | 2480 days ago | 1.55 ETH | ||||
5198007 | 2480 days ago | 1.55 ETH | ||||
5198007 | 2480 days ago | 1.55 ETH | ||||
5198007 | 2480 days ago | 0.01048576 ETH | ||||
5198006 | 2480 days ago | 1.3 ETH | ||||
5198006 | 2480 days ago | 1.3 ETH | ||||
5198006 | 2480 days ago | 0.10995116 ETH |
Loading...
Loading
Contract Name:
EtherIslands
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-03-04 */ pragma solidity ^0.4.19; /** * @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 ERC721 interface * @dev see https://github.com/ethereum/eips/issues/721 */ contract ERC721 { event Transfer(address indexed _from, address indexed _to, uint256 _tokenId); event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId); function balanceOf(address _owner) public view returns (uint256 _balance); function ownerOf(uint256 _tokenId) public view returns (address _owner); function transfer(address _to, uint256 _tokenId) public; function approve(address _to, uint256 _tokenId) public; function takeOwnership(uint256 _tokenId) public; } /** * @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 Substracts 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 EtherIslands is Ownable, ERC721 { using SafeMath for uint256; /*** EVENTS ***/ event NewIsland(uint256 tokenId, bytes32 name, address owner); event IslandSold(uint256 tokenId, uint256 oldPrice, uint256 newPrice, address prevOwner, address winner, bytes32 name); event Transfer(address from, address to, uint256 tokenId); event DividendsPaid(address to, uint256 amount, bytes32 divType); event ShipsBought(uint256 tokenId, address owner); event IslandAttacked(uint256 attackerId, uint256 targetId, uint256 treasuryStolen); event TreasuryWithdrawn(uint256 tokenId); /*** STRUCTS ***/ struct Island { bytes32 name; address owner; uint256 price; uint256 treasury; uint256 treasury_next_withdrawal_block; uint256 previous_price; uint256 attack_ships_count; uint256 defense_ships_count; uint256 transactions_count; address approve_transfer_to; address[2] previous_owners; } struct IslandBattleStats { uint256 attacks_won; uint256 attacks_lost; uint256 defenses_won; uint256 defenses_lost; uint256 treasury_stolen; uint256 treasury_lost; uint256 attack_cooldown; uint256 defense_cooldown; } /*** CONSTANTS ***/ string public constant NAME = "EtherIslands"; string public constant SYMBOL = "EIS"; bool public maintenance = true; uint256 islands_count; uint256 shipPrice = 0.01 ether; uint256 withdrawalBlocksCooldown = 720; uint256 battle_cooldown = 40; address m_address = 0x9BB3364Baa5dbfcaa61ee0A79a9cA17359Fc7bBf; mapping(address => uint256) private ownerCount; mapping(uint256 => Island) private islands; mapping(uint256 => IslandBattleStats) private islandBattleStats; /*** DEFAULT METHODS ***/ function symbol() public pure returns (string) {return SYMBOL;} function name() public pure returns (string) {return NAME;} function implementsERC721() public pure returns (bool) {return true;} function EtherIslands() public { } /** PUBLIC METHODS **/ function createIsland(bytes32 _name, uint256 _price, address _owner, uint256 _attack_ships_count, uint256 _defense_ships_count) public onlyOwner { require(msg.sender != address(0)); _create_island(_name, _owner, _price, 0, _attack_ships_count, _defense_ships_count); } function importIsland(bytes32 _name, address[3] _owners, uint256[7] _island_data, uint256[8] _island_battle_stats) public onlyOwner { require(msg.sender != address(0)); _import_island(_name, _owners, _island_data, _island_battle_stats); } function attackIsland(uint256 _attacker_id, uint256 _target_id) public payable { require(maintenance == false); Island storage attackerIsland = islands[_attacker_id]; IslandBattleStats storage attackerIslandBattleStats = islandBattleStats[_attacker_id]; Island storage defenderIsland = islands[_target_id]; IslandBattleStats storage defenderIslandBattleStats = islandBattleStats[_target_id]; require(attackerIsland.owner == msg.sender); require(attackerIsland.owner != defenderIsland.owner); require(msg.sender != address(0)); require(msg.value == 0); require(block.number >= attackerIslandBattleStats.attack_cooldown); require(block.number >= defenderIslandBattleStats.defense_cooldown); require(attackerIsland.attack_ships_count > 0); // attacker must have at least 1 attack ship require(attackerIsland.attack_ships_count > defenderIsland.defense_ships_count); uint256 goods_stolen = SafeMath.mul(SafeMath.div(defenderIsland.treasury, 100), 25); defenderIsland.treasury = SafeMath.sub(defenderIsland.treasury, goods_stolen); attackerIslandBattleStats.attacks_won++; attackerIslandBattleStats.treasury_stolen = SafeMath.add(attackerIslandBattleStats.treasury_stolen, goods_stolen); defenderIslandBattleStats.defenses_lost++; defenderIslandBattleStats.treasury_lost = SafeMath.add(defenderIslandBattleStats.treasury_lost, goods_stolen); uint256 cooldown_block = block.number + battle_cooldown; attackerIslandBattleStats.attack_cooldown = cooldown_block; defenderIslandBattleStats.defense_cooldown = cooldown_block; uint256 goods_to_treasury = SafeMath.mul(SafeMath.div(goods_stolen, 100), 75); attackerIsland.treasury = SafeMath.add(attackerIsland.treasury, goods_to_treasury); // 2% of attacker army and 10% of defender army is destroyed attackerIsland.attack_ships_count = SafeMath.sub(attackerIsland.attack_ships_count, SafeMath.mul(SafeMath.div(attackerIsland.attack_ships_count, 100), 2)); defenderIsland.defense_ships_count = SafeMath.sub(defenderIsland.defense_ships_count, SafeMath.mul(SafeMath.div(defenderIsland.defense_ships_count, 100), 10)); // Dividends uint256 goods_for_current_owner = SafeMath.mul(SafeMath.div(goods_stolen, 100), 15); uint256 goods_for_previous_owner_1 = SafeMath.mul(SafeMath.div(goods_stolen, 100), 6); uint256 goods_for_previous_owner_2 = SafeMath.mul(SafeMath.div(goods_stolen, 100), 3); uint256 goods_for_dev = SafeMath.mul(SafeMath.div(goods_stolen, 100), 1); attackerIsland.owner.transfer(goods_for_current_owner); attackerIsland.previous_owners[0].transfer(goods_for_previous_owner_1); attackerIsland.previous_owners[1].transfer(goods_for_previous_owner_2); //Split dev fee m_address.transfer(SafeMath.mul(SafeMath.div(goods_for_dev, 100), 20)); owner.transfer(SafeMath.mul(SafeMath.div(goods_for_dev, 100), 80)); IslandAttacked(_attacker_id, _target_id, goods_stolen); } function buyShips(uint256 _island_id, uint256 _ships_to_buy, bool _is_attack_ships) public payable { require(maintenance == false); Island storage island = islands[_island_id]; uint256 totalPrice = SafeMath.mul(_ships_to_buy, shipPrice); require(island.owner == msg.sender); require(msg.sender != address(0)); require(msg.value >= totalPrice); if (_is_attack_ships) { island.attack_ships_count = SafeMath.add(island.attack_ships_count, _ships_to_buy); } else { island.defense_ships_count = SafeMath.add(island.defense_ships_count, _ships_to_buy); } // Dividends uint256 treasury_div = SafeMath.mul(SafeMath.div(totalPrice, 100), 80); uint256 dev_div = SafeMath.mul(SafeMath.div(totalPrice, 100), 17); uint256 previous_owner_div = SafeMath.mul(SafeMath.div(totalPrice, 100), 2); uint256 previous_owner2_div = SafeMath.mul(SafeMath.div(totalPrice, 100), 1); island.previous_owners[0].transfer(previous_owner_div); //divs for 1st previous owner island.previous_owners[1].transfer(previous_owner2_div); //divs for 2nd previous owner island.treasury = SafeMath.add(treasury_div, island.treasury); // divs for treasury //Split dev fee uint256 m_fee = SafeMath.mul(SafeMath.div(dev_div, 100), 20); uint256 d_fee = SafeMath.mul(SafeMath.div(dev_div, 100), 80); m_address.transfer(m_fee); owner.transfer(d_fee); DividendsPaid(island.previous_owners[0], previous_owner_div, "buyShipPreviousOwner"); DividendsPaid(island.previous_owners[1], previous_owner2_div, "buyShipPreviousOwner2"); ShipsBought(_island_id, island.owner); } function withdrawTreasury(uint256 _island_id) public payable { require(maintenance == false); Island storage island = islands[_island_id]; require(island.owner == msg.sender); require(msg.sender != address(0)); require(island.treasury > 0); require(block.number >= island.treasury_next_withdrawal_block); uint256 treasury_to_withdraw = SafeMath.mul(SafeMath.div(island.treasury, 100), 10); uint256 treasury_for_previous_owner_1 = SafeMath.mul(SafeMath.div(treasury_to_withdraw, 100), 2); uint256 treasury_for_previous_owner_2 = SafeMath.mul(SafeMath.div(treasury_to_withdraw, 100), 1); uint256 treasury_for_previous_owners = SafeMath.add(treasury_for_previous_owner_2, treasury_for_previous_owner_1); uint256 treasury_for_current_owner = SafeMath.sub(treasury_to_withdraw, treasury_for_previous_owners); island.owner.transfer(treasury_for_current_owner); island.previous_owners[0].transfer(treasury_for_previous_owner_1); island.previous_owners[1].transfer(treasury_for_previous_owner_2); island.treasury = SafeMath.sub(island.treasury, treasury_to_withdraw); island.treasury_next_withdrawal_block = block.number + withdrawalBlocksCooldown; //setting cooldown for next withdrawal DividendsPaid(island.previous_owners[0], treasury_for_previous_owner_1, "withdrawalPreviousOwner"); DividendsPaid(island.previous_owners[1], treasury_for_previous_owner_2, "withdrawalPreviousOwner2"); DividendsPaid(island.owner, treasury_for_current_owner, "withdrawalOwner"); TreasuryWithdrawn(_island_id); } function purchase(uint256 _island_id) public payable { require(maintenance == false); Island storage island = islands[_island_id]; require(island.owner != msg.sender); require(msg.sender != address(0)); require(msg.value >= island.price); uint256 excess = SafeMath.sub(msg.value, island.price); if (island.previous_price > 0) { uint256 owners_cut = SafeMath.mul(SafeMath.div(island.price, 160), 130); uint256 treasury_cut = SafeMath.mul(SafeMath.div(island.price, 160), 18); uint256 dev_fee = SafeMath.mul(SafeMath.div(island.price, 160), 7); uint256 previous_owner_fee = SafeMath.mul(SafeMath.div(island.price, 160), 3); uint256 previous_owner_fee2 = SafeMath.mul(SafeMath.div(island.price, 160), 2); if (island.owner != address(this)) { island.owner.transfer(owners_cut); //divs for current island owner } island.previous_owners[0].transfer(previous_owner_fee); //divs for 1st previous owner island.previous_owners[1].transfer(previous_owner_fee2); //divs for 2nd previous owner island.treasury = SafeMath.add(treasury_cut, island.treasury); // divs for treasury //Split dev fee uint256 m_fee = SafeMath.mul(SafeMath.div(dev_fee, 100), 20); uint256 d_fee = SafeMath.mul(SafeMath.div(dev_fee, 100), 80); m_address.transfer(m_fee); owner.transfer(d_fee); DividendsPaid(island.previous_owners[0], previous_owner_fee, "previousOwner"); DividendsPaid(island.previous_owners[1], previous_owner_fee2, "previousOwner2"); DividendsPaid(island.owner, owners_cut, "owner"); DividendsPaid(owner, dev_fee, "dev"); } else { island.owner.transfer(msg.value); } island.previous_price = island.price; island.treasury_next_withdrawal_block = block.number + withdrawalBlocksCooldown; address _old_owner = island.owner; island.price = SafeMath.mul(SafeMath.div(island.price, 100), 160); //Change owners island.previous_owners[1] = island.previous_owners[0]; island.previous_owners[0] = island.owner; island.owner = msg.sender; island.transactions_count++; ownerCount[_old_owner] -= 1; ownerCount[island.owner] += 1; islandBattleStats[_island_id].attack_cooldown = battle_cooldown; // immunity for 10 mins islandBattleStats[_island_id].defense_cooldown = battle_cooldown; // immunity for 10 mins Transfer(_old_owner, island.owner, _island_id); IslandSold(_island_id, island.previous_price, island.price, _old_owner, island.owner, island.name); msg.sender.transfer(excess); //returning excess } function onMaintenance() public onlyOwner { require(msg.sender != address(0)); maintenance = true; } function offMaintenance() public onlyOwner { require(msg.sender != address(0)); maintenance = false; } function totalSupply() public view returns (uint256 total) { return islands_count; } function balanceOf(address _owner) public view returns (uint256 balance) { return ownerCount[_owner]; } function priceOf(uint256 _island_id) public view returns (uint256 price) { return islands[_island_id].price; } function getIslandBattleStats(uint256 _island_id) public view returns ( uint256 id, uint256 attacks_won, uint256 attacks_lost, uint256 defenses_won, uint256 defenses_lost, uint256 treasury_stolen, uint256 treasury_lost, uint256 attack_cooldown, uint256 defense_cooldown ) { id = _island_id; attacks_won = islandBattleStats[_island_id].attacks_won; attacks_lost = islandBattleStats[_island_id].attacks_lost; defenses_won = islandBattleStats[_island_id].defenses_won; defenses_lost = islandBattleStats[_island_id].defenses_lost; treasury_stolen = islandBattleStats[_island_id].treasury_stolen; treasury_lost = islandBattleStats[_island_id].treasury_lost; attack_cooldown = islandBattleStats[_island_id].attack_cooldown; defense_cooldown = islandBattleStats[_island_id].defense_cooldown; } function getIsland(uint256 _island_id) public view returns ( uint256 id, bytes32 island_name, address owner, uint256 price, uint256 treasury, uint256 treasury_next_withdrawal_block, uint256 previous_price, uint256 attack_ships_count, uint256 defense_ships_count, uint256 transactions_count ) { id = _island_id; island_name = islands[_island_id].name; owner = islands[_island_id].owner; price = islands[_island_id].price; treasury = islands[_island_id].treasury; treasury_next_withdrawal_block = islands[_island_id].treasury_next_withdrawal_block; previous_price = islands[_island_id].previous_price; attack_ships_count = islands[_island_id].attack_ships_count; defense_ships_count = islands[_island_id].defense_ships_count; transactions_count = islands[_island_id].transactions_count; } function getIslandPreviousOwners(uint256 _island_id) public view returns ( address[2] previous_owners ) { previous_owners = islands[_island_id].previous_owners; } function getIslands() public view returns (uint256[], address[], uint256[], uint256[], uint256[], uint256[], uint256[]) { uint256[] memory ids = new uint256[](islands_count); address[] memory owners = new address[](islands_count); uint256[] memory prices = new uint256[](islands_count); uint256[] memory treasuries = new uint256[](islands_count); uint256[] memory attack_ships_counts = new uint256[](islands_count); uint256[] memory defense_ships_counts = new uint256[](islands_count); uint256[] memory transactions_count = new uint256[](islands_count); for (uint256 _id = 0; _id < islands_count; _id++) { ids[_id] = _id; owners[_id] = islands[_id].owner; prices[_id] = islands[_id].price; treasuries[_id] = islands[_id].treasury; attack_ships_counts[_id] = islands[_id].attack_ships_count; defense_ships_counts[_id] = islands[_id].defense_ships_count; transactions_count[_id] = islands[_id].transactions_count; } return (ids, owners, prices, treasuries, attack_ships_counts, defense_ships_counts, transactions_count); } /** PRIVATE METHODS **/ function _create_island(bytes32 _name, address _owner, uint256 _price, uint256 _previous_price, uint256 _attack_ships_count, uint256 _defense_ships_count) private { islands[islands_count] = Island({ name : _name, owner : _owner, price : _price, treasury : 0, treasury_next_withdrawal_block : 0, previous_price : _previous_price, attack_ships_count : _attack_ships_count, defense_ships_count : _defense_ships_count, transactions_count : 0, approve_transfer_to : address(0), previous_owners : [_owner, _owner] }); islandBattleStats[islands_count] = IslandBattleStats({ attacks_won : 0, attacks_lost : 0, defenses_won : 0, defenses_lost : 0, treasury_stolen : 0, treasury_lost : 0, attack_cooldown : 0, defense_cooldown : 0 }); NewIsland(islands_count, _name, _owner); Transfer(address(this), _owner, islands_count); islands_count++; } function _import_island(bytes32 _name, address[3] _owners, uint256[7] _island_data, uint256[8] _island_battle_stats) private { islands[islands_count] = Island({ name : _name, owner : _owners[0], price : _island_data[0], treasury : _island_data[1], treasury_next_withdrawal_block : _island_data[2], previous_price : _island_data[3], attack_ships_count : _island_data[4], defense_ships_count : _island_data[5], transactions_count : _island_data[6], approve_transfer_to : address(0), previous_owners : [_owners[1], _owners[2]] }); islandBattleStats[islands_count] = IslandBattleStats({ attacks_won : _island_battle_stats[0], attacks_lost : _island_battle_stats[1], defenses_won : _island_battle_stats[2], defenses_lost : _island_battle_stats[3], treasury_stolen : _island_battle_stats[4], treasury_lost : _island_battle_stats[5], attack_cooldown : _island_battle_stats[6], defense_cooldown : _island_battle_stats[7] }); NewIsland(islands_count, _name, _owners[0]); Transfer(address(this), _owners[0], islands_count); islands_count++; } function _transfer(address _from, address _to, uint256 _island_id) private { islands[_island_id].owner = _to; islands[_island_id].approve_transfer_to = address(0); ownerCount[_from] -= 1; ownerCount[_to] += 1; Transfer(_from, _to, _island_id); } /*** ERC-721 compliance. ***/ function approve(address _to, uint256 _island_id) public { require(msg.sender == islands[_island_id].owner); islands[_island_id].approve_transfer_to = _to; Approval(msg.sender, _to, _island_id); } function ownerOf(uint256 _island_id) public view returns (address owner){ owner = islands[_island_id].owner; require(owner != address(0)); } function takeOwnership(uint256 _island_id) public { address oldOwner = islands[_island_id].owner; require(msg.sender != address(0)); require(islands[_island_id].approve_transfer_to == msg.sender); _transfer(oldOwner, msg.sender, _island_id); } function transfer(address _to, uint256 _island_id) public { require(msg.sender != address(0)); require(msg.sender == islands[_island_id].owner); _transfer(msg.sender, _to, _island_id); } function transferFrom(address _from, address _to, uint256 _island_id) public { require(_from == islands[_island_id].owner); require(islands[_island_id].approve_transfer_to == _to); require(_to != address(0)); _transfer(_from, _to, _island_id); } function upgradeContract(address _newContract) public onlyOwner { _newContract.transfer(this.balance); } function AddEth () public payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_island_id","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_owners","type":"address[3]"},{"name":"_island_data","type":"uint256[7]"},{"name":"_island_battle_stats","type":"uint256[8]"}],"name":"importIsland","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_island_id","type":"uint256"}],"name":"withdrawTreasury","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_island_id","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"AddEth","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_island_id","type":"uint256"},{"name":"_ships_to_buy","type":"uint256"},{"name":"_is_attack_ships","type":"bool"}],"name":"buyShips","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_island_id","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maintenance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_island_id","type":"uint256"}],"name":"getIsland","outputs":[{"name":"id","type":"uint256"},{"name":"island_name","type":"bytes32"},{"name":"owner","type":"address"},{"name":"price","type":"uint256"},{"name":"treasury","type":"uint256"},{"name":"treasury_next_withdrawal_block","type":"uint256"},{"name":"previous_price","type":"uint256"},{"name":"attack_ships_count","type":"uint256"},{"name":"defense_ships_count","type":"uint256"},{"name":"transactions_count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_attacker_id","type":"uint256"},{"name":"_target_id","type":"uint256"}],"name":"attackIsland","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"onMaintenance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_island_id","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_island_id","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"bytes32"},{"name":"_price","type":"uint256"},{"name":"_owner","type":"address"},{"name":"_attack_ships_count","type":"uint256"},{"name":"_defense_ships_count","type":"uint256"}],"name":"createIsland","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_island_id","type":"uint256"}],"name":"priceOf","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"offMaintenance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_island_id","type":"uint256"}],"name":"getIslandBattleStats","outputs":[{"name":"id","type":"uint256"},{"name":"attacks_won","type":"uint256"},{"name":"attacks_lost","type":"uint256"},{"name":"defenses_won","type":"uint256"},{"name":"defenses_lost","type":"uint256"},{"name":"treasury_stolen","type":"uint256"},{"name":"treasury_lost","type":"uint256"},{"name":"attack_cooldown","type":"uint256"},{"name":"defense_cooldown","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getIslands","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"address[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_island_id","type":"uint256"}],"name":"getIslandPreviousOwners","outputs":[{"name":"previous_owners","type":"address[2]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newContract","type":"address"}],"name":"upgradeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_island_id","type":"uint256"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewIsland","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":"winner","type":"address"},{"indexed":false,"name":"name","type":"bytes32"}],"name":"IslandSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"divType","type":"bytes32"}],"name":"DividendsPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"owner","type":"address"}],"name":"ShipsBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"attackerId","type":"uint256"},{"indexed":false,"name":"targetId","type":"uint256"},{"indexed":false,"name":"treasuryStolen","type":"uint256"}],"name":"IslandAttacked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"TreasuryWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60606040526000805460a060020a60ff02191674010000000000000000000000000000000000000000179055662386f26fc100006002556102d0600355602860045560058054600160a060020a031916739bb3364baa5dbfcaa61ee0a79a9ca17359fc7bbf179055341561007257600080fd5b60008054600160a060020a033316600160a060020a0319909116179055612a318061009e6000396000f30060606040526004361061017f5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610184578063095ea7b31461020e5780630d28f8d1146102325780631051db34146102c157806311f1fc99146102e857806318160ddd146102f357806323b872dd14610318578063472b64921461034057806361b98cb3146103485780636352211e1461035b5780636c376cc51461038d57806370a08231146103a05780638da5cb5b146103bf578063913158f7146103d257806394b663861461044c578063952868b51461045a57806395d89b411461046d578063a3f4df7e14610480578063a9059cbb14610493578063b2e6ceeb146104b5578063b5dd20e9146104cb578063b9186d7d146104f6578063d5ea36f91461050c578063dc3134ae1461051f578063deb081df14610582578063e6e0556214610787578063eb2c0223146107d5578063efef39a1146107f4578063f2fde38b146107ff578063f76f8d781461081e575b600080fd5b341561018f57600080fd5b610197610831565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101d35780820151838201526020016101bb565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021957600080fd5b610230600160a060020a0360043516602435610873565b005b341561023d57600080fd5b6102306004803590608460246003606060405190810160405291908282606080828437820191505050505091908060e001906007806020026040519081016040529190828260e0808284378201915050505050919080610100019060088060200260405190810160405291908282610100808284375093955061090a945050505050565b34156102cc57600080fd5b6102d461094c565b604051901515815260200160405180910390f35b610230600435610951565b34156102fe57600080fd5b610306610c73565b60405190815260200160405180910390f35b341561032357600080fd5b610230600160a060020a0360043581169060243516604435610c79565b610230610cf0565b6102306004356024356044351515610cf2565b341561036657600080fd5b610371600435611039565b604051600160a060020a03909116815260200160405180910390f35b341561039857600080fd5b6102d4611065565b34156103ab57600080fd5b610306600160a060020a0360043516611075565b34156103ca57600080fd5b610371611090565b34156103dd57600080fd5b6103e860043561109f565b604051998a5260208a0198909852600160a060020a039096166040808a01919091526060890195909552608088019390935260a087019190915260c086015260e0850152610100840191909152610120830191909152610140909101905180910390f35b6102306004356024356110f6565b341561046557600080fd5b6102306114f0565b341561047857600080fd5b610197611546565b341561048b57600080fd5b610197611587565b341561049e57600080fd5b610230600160a060020a03600435166024356115be565b34156104c057600080fd5b61023060043561160c565b34156104d657600080fd5b610230600435602435600160a060020a036044351660643560843561166c565b341561050157600080fd5b6103066004356116b2565b341561051757600080fd5b6102306116c7565b341561052a57600080fd5b610535600435611717565b60405198895260208901979097526040808901969096526060880194909452608087019290925260a086015260c085015260e0840152610100830191909152610120909101905180910390f35b341561058d57600080fd5b61059561175e565b604051808060200180602001806020018060200180602001806020018060200188810388528f818151815260200191508051906020019060200280838360005b838110156105ed5780820151838201526020016105d5565b5050505090500188810387528e818151815260200191508051906020019060200280838360005b8381101561062c578082015183820152602001610614565b5050505090500188810386528d818151815260200191508051906020019060200280838360005b8381101561066b578082015183820152602001610653565b5050505090500188810385528c818151815260200191508051906020019060200280838360005b838110156106aa578082015183820152602001610692565b5050505090500188810384528b818151815260200191508051906020019060200280838360005b838110156106e95780820151838201526020016106d1565b5050505090500188810383528a818151815260200191508051906020019060200280838360005b83811015610728578082015183820152602001610710565b50505050905001888103825289818151815260200191508051906020019060200280838360005b8381101561076757808201518382015260200161074f565b505050509050019e50505050505050505050505050505060405180910390f35b341561079257600080fd5b61079d600435611a22565b6040518082604080838360005b838110156107c25780820151838201526020016107aa565b5050505090500191505060405180910390f35b34156107e057600080fd5b610230600160a060020a0360043516611a7f565b610230600435611ada565b341561080a57600080fd5b610230600160a060020a03600435166121d5565b341561082957600080fd5b610197612263565b61083961290e565b60408051908101604052600c81527f457468657249736c616e64730000000000000000000000000000000000000000602082015290505b90565b60008181526007602052604090206001015433600160a060020a0390811691161461089d57600080fd5b600081815260076020526040908190206009018054600160a060020a031916600160a060020a038581169182179092559133909116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a35050565b60005433600160a060020a0390811691161461092557600080fd5b33600160a060020a0316151561093a57600080fd5b6109468484848461229a565b50505050565b600190565b600080548190819081908190819060a060020a900460ff161561097357600080fd5b6000878152600760205260409020600181015490965033600160a060020a039081169116146109a157600080fd5b33600160a060020a031615156109b657600080fd5b6003860154600090116109c857600080fd5b60048601544310156109d957600080fd5b6109f26109eb87600301546064612563565b600a61257f565b9450610a09610a02866064612563565b600261257f565b9350610a20610a19866064612563565b600161257f565b9250610a2c83856125b1565b9150610a3885836125c0565b6001870154909150600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610a7057600080fd5b600a860154600160a060020a03166108fc85150285604051600060405180830381858888f193505050501515610aa557600080fd5b600b860154600160a060020a03166108fc84150284604051600060405180830381858888f193505050501515610ada57600080fd5b610ae88660030154866125c0565b6003878101919091555443016004870155600a8601546000805160206129e683398151915290600160a060020a031685604051600160a060020a03909216825260208201527f7769746864726177616c50726576696f75734f776e65720000000000000000006040808301919091526060909101905180910390a1600b8601546000805160206129e683398151915290600160a060020a031684604051600160a060020a03909216825260208201527f7769746864726177616c50726576696f75734f776e65723200000000000000006040808301919091526060909101905180910390a160018601546000805160206129e683398151915290600160a060020a031682604051600160a060020a03909216825260208201527f7769746864726177616c4f776e657200000000000000000000000000000000006040808301919091526060909101905180910390a17fdcfb70a6f0f5eab41644ac0cde62fe5f51ce0bb0a53b88ea72c4b2b78ad887bc8760405190815260200160405180910390a150505050505050565b60015490565b600081815260076020526040902060010154600160a060020a03848116911614610ca257600080fd5b600081815260076020526040902060090154600160a060020a03838116911614610ccb57600080fd5b600160a060020a0382161515610ce057600080fd5b610ceb8383836125d2565b505050565b565b60008054819081908190819081908190819060a060020a900460ff1615610d1857600080fd5b60008b8152600760205260409020600254909850610d37908b9061257f565b600189015490975033600160a060020a03908116911614610d5757600080fd5b33600160a060020a03161515610d6c57600080fd5b3487901015610d7a57600080fd5b8815610d9857610d8e88600601548b6125b1565b6006890155610dac565b610da688600701548b6125b1565b60078901555b610dc1610dba886064612563565b605061257f565b9550610dd8610dd1886064612563565b601161257f565b9450610de8610a02886064612563565b9350610df8610a19886064612563565b600a890154909350600160a060020a03166108fc85150285604051600060405180830381858888f193505050501515610e3057600080fd5b600b880154600160a060020a03166108fc84150284604051600060405180830381858888f193505050501515610e6557600080fd5b610e738689600301546125b1565b6003890155610e8d610e86866064612563565b601461257f565b9150610e9d610dba866064612563565b600554909150600160a060020a031682156108fc0283604051600060405180830381858888f193505050501515610ed357600080fd5b600054600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610f0657600080fd5b600a8801546000805160206129e683398151915290600160a060020a031685604051600160a060020a03909216825260208201527f6275795368697050726576696f75734f776e65720000000000000000000000006040808301919091526060909101905180910390a1600b8801546000805160206129e683398151915290600160a060020a031684604051600160a060020a03909216825260208201527f6275795368697050726576696f75734f776e65723200000000000000000000006040808301919091526060909101905180910390a160018801547ff93b010291992b1f39b774e39ebd25679d89423a837516acc89864839e693579908c90600160a060020a0316604051918252600160a060020a031660208201526040908101905180910390a15050505050505050505050565b600081815260076020526040902060010154600160a060020a031680151561106057600080fd5b919050565b60005460a060020a900460ff1681565b600160a060020a031660009081526006602052604090205490565b600054600160a060020a031681565b600081815260076020819052604090912080546001820154600283015460038401546004850154600586015460068701549787015460089097015498999598600160a060020a039095169793969295919490939291565b60008060008060008060008060008060008060149054906101000a900460ff1615156000151514151561112857600080fd5b600760008e81526020019081526020016000209a50600860008e81526020019081526020016000209950600760008d81526020019081526020016000209850600860008d8152602001908152602001600020975033600160a060020a03168b60010160009054906101000a9004600160a060020a0316600160a060020a03161415156111b357600080fd5b6001808a0154908c0154600160a060020a03908116911614156111d557600080fd5b33600160a060020a031615156111ea57600080fd5b34156111f557600080fd5b60068a015443101561120657600080fd5b600788015443101561121757600080fd5b60068b01546000901161122957600080fd5b600789015460068c01541161123d57600080fd5b61125661124f8a600301546064612563565b601961257f565b96506112668960030154886125c0565b60038a015589546001018a5560048a015461128190886125b1565b60048b0155600388018054600101905560058801546112a090886125b1565b6005890155600454430160068b018190556007890181905595506112cf6112c8886064612563565b604b61257f565b94506112df8b60030154866125b1565b60038c015560068b0154611300906112fb610a02826064612563565b6125c0565b60068c0155600789015461131c906112fb6109eb826064612563565b60078a015561133661132f886064612563565b600f61257f565b935061134d611346886064612563565b600661257f565b925061136461135d886064612563565b600361257f565b9150611374610a19886064612563565b60018c0154909150600160a060020a031684156108fc0285604051600060405180830381858888f1935050505015156113ac57600080fd5b600a8b0154600160a060020a03166108fc84150284604051600060405180830381858888f1935050505015156113e157600080fd5b600b8b0154600160a060020a03166108fc83150283604051600060405180830381858888f19350505050151561141657600080fd5b600554600160a060020a03166108fc611433610e86846064612563565b9081150290604051600060405180830381858888f19350505050151561145857600080fd5b600054600160a060020a03166108fc611475610dba846064612563565b9081150290604051600060405180830381858888f19350505050151561149a57600080fd5b7fbfdc5cbaee78217e7eda2a48bd822c621bbee874c4148603f419f857bc506d3c8d8d8960405180848152602001838152602001828152602001935050505060405180910390a150505050505050505050505050565b60005433600160a060020a0390811691161461150b57600080fd5b33600160a060020a0316151561152057600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a179055565b61154e61290e565b60408051908101604052600381527f45495300000000000000000000000000000000000000000000000000000000006020820152905090565b60408051908101604052600c81527f457468657249736c616e64730000000000000000000000000000000000000000602082015281565b33600160a060020a031615156115d357600080fd5b60008181526007602052604090206001015433600160a060020a039081169116146115fd57600080fd5b6116083383836125d2565b5050565b600081815260076020526040902060010154600160a060020a03908116903316151561163757600080fd5b60008281526007602052604090206009015433600160a060020a0390811691161461166157600080fd5b6116088133846125d2565b60005433600160a060020a0390811691161461168757600080fd5b33600160a060020a0316151561169c57600080fd5b6116ab85848660008686612679565b5050505050565b60009081526007602052604090206002015490565b60005433600160a060020a039081169116146116e257600080fd5b33600160a060020a031615156116f757600080fd5b6000805474ff000000000000000000000000000000000000000019169055565b600081815260086020526040902080546001820154600283015460038401546004850154600586015460068701546007909701549798959794969395929491939092909190565b61176661290e565b61176e61290e565b61177661290e565b61177e61290e565b61178661290e565b61178e61290e565b61179661290e565b61179e61290e565b6117a661290e565b6117ae61290e565b6117b661290e565b6117be61290e565b6117c661290e565b6117ce61290e565b60006001546040518059106117e05750595b908082528060200260200182016040525097506001546040518059106118035750595b908082528060200260200182016040525096506001546040518059106118265750595b908082528060200260200182016040525095506001546040518059106118495750595b9080825280602002602001820160405250945060015460405180591061186c5750595b9080825280602002602001820160405250935060015460405180591061188f5750595b908082528060200260200182016040525092506001546040518059106118b25750595b90808252806020026020018201604052509150600090505b600154811015611a0b57808882815181106118e157fe5b6020908102909101810191909152600082815260079091526040902060010154600160a060020a031687828151811061191657fe5b600160a060020a03909216602092830290910182015260008281526007909152604090206002015486828151811061194a57fe5b602090810290910181019190915260008281526007909152604090206003015485828151811061197657fe5b60209081029091018101919091526000828152600790915260409020600601548482815181106119a257fe5b602090810290910181019190915260008281526007918290526040902001548382815181106119cd57fe5b60209081029091018101919091526000828152600790915260409020600801548282815181106119f957fe5b602090810290910101526001016118ca565b50959d949c50929a50909850965094509092509050565b611a2a612920565b60008281526007602052604090819020600a019060029080519081016040529190828260026020028201915b8154600160a060020a03168152600190910190602001808311611a565750505050509050919050565b60005433600160a060020a03908116911614611a9a57600080fd5b80600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f193505050501515611ad757600080fd5b50565b6000805481908190819081908190819081908190819060a060020a900460ff1615611b0457600080fd5b60008b81526007602052604090206001810154909a5033600160a060020a0390811691161415611b3357600080fd5b33600160a060020a03161515611b4857600080fd5b60028a0154341015611b5957600080fd5b611b67348b600201546125c0565b985060008a600501541115611eec57611b8f611b888b6002015460a0612563565b608261257f565b9750611baa611ba38b6002015460a0612563565b601261257f565b9650611bc5611bbe8b6002015460a0612563565b600761257f565b9550611bd961135d8b6002015460a0612563565b9450611bed610a028b6002015460a0612563565b60018b015490945030600160a060020a03908116911614611c3d5760018a0154600160a060020a031688156108fc0289604051600060405180830381858888f193505050501515611c3d57600080fd5b600a8a0154600160a060020a03166108fc86150286604051600060405180830381858888f193505050501515611c7257600080fd5b600b8a0154600160a060020a03166108fc85150285604051600060405180830381858888f193505050501515611ca757600080fd5b611cb5878b600301546125b1565b60038b0155611cc8610e86876064612563565b9250611cd8610dba876064612563565b600554909250600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515611d0e57600080fd5b600054600160a060020a031682156108fc0283604051600060405180830381858888f193505050501515611d4157600080fd5b600a8a01546000805160206129e683398151915290600160a060020a031686604051600160a060020a03909216825260208201527f70726576696f75734f776e6572000000000000000000000000000000000000006040808301919091526060909101905180910390a1600b8a01546000805160206129e683398151915290600160a060020a031685604051600160a060020a03909216825260208201527f70726576696f75734f776e6572320000000000000000000000000000000000006040808301919091526060909101905180910390a160018a01546000805160206129e683398151915290600160a060020a031689604051600160a060020a03909216825260208201527f6f776e65720000000000000000000000000000000000000000000000000000006040808301919091526060909101905180910390a16000546000805160206129e683398151915290600160a060020a031687604051600160a060020a03909216825260208201527f64657600000000000000000000000000000000000000000000000000000000006040808301919091526060909101905180910390a1611f22565b60018a0154600160a060020a03163480156108fc0290604051600060405180830381858888f193505050501515611f2257600080fd5b50600289015460058a01819055600354430160048b015560018a0154600160a060020a031690611f5e90611f57906064612563565b60a061257f565b60028b0155600a8a0160000154600160a060020a0316600a8b016001018054600160a060020a031916600160a060020a0392831617905560018b015416600a8b0160000160006101000a815481600160a060020a030219169083600160a060020a03160217905550338a60010160006101000a815481600160a060020a030219169083600160a060020a03160217905550896008016000815480929190600101919050555060016006600083600160a060020a0316600160a060020a03168152602001908152602001600020600082825403925050819055506001600660008c60010160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008282540192505081905550600454600860008d815260200190815260200160002060060181905550600454600860008d8152602001908152602001600020600701819055506000805160206129c6833981519152818b60010160009054906101000a9004600160a060020a03168d604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a160058a015460028b015460018c01548c547fdcab0704e5b2c212cba558657bf325bc1b823c2a4e89c77e93926533ec56b5f9938f93909290918691600160a060020a0316906040519586526020860194909452604080860193909352600160a060020a03918216606086015216608084015260a083019190915260c0909101905180910390a1600160a060020a03331689156108fc028a604051600060405180830381858888f1935050505015156121c857600080fd5b5050505050505050505050565b60005433600160a060020a039081169116146121f057600080fd5b600160a060020a038116151561220557600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008054600160a060020a031916600160a060020a0392909216919091179055565b60408051908101604052600381527f4549530000000000000000000000000000000000000000000000000000000000602082015281565b610160604051908101604052848152602081018451600160a060020a03168152602001835181526020018360016020020151815260200160408401518152602001606084015181526020016080840151815260200160a0840151815260200160c084015181526020016000600160a060020a0316815260200160408051908101604052806020870151600160a060020a031681526020016040870151600160a060020a0316905290526001546000908152600760205260409020815181556020820151600182018054600160a060020a031916600160a060020a039290921691909117905560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151600982018054600160a060020a031916600160a060020a039290921691909117905561014082015161240490600a8301906002612947565b5090505061010060405190810160405280825181526020018260016020020151815260200160408301518152602001606083015181526020016080830151815260200160a0830151815260200160c0830151815260200160e083015190526001546000908152600860205260409020815181556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015160079190910155506001547f6dbe83e0361d1759b05d67925ee5ed7d3c73361da16f0abb8aaebf121c7fd345908585516040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a16000805160206129c6833981519152308451600154604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505060018054810190555050565b600080828481151561257157fe5b0490508091505b5092915050565b6000808315156125925760009150612578565b508282028284828115156125a257fe5b04146125aa57fe5b9392505050565b6000828201838110156125aa57fe5b6000828211156125cc57fe5b50900390565b600081815260076020908152604080832060018082018054600160a060020a03808a16600160a060020a03199283168117909355600990940180549091169055918816855260069093528184208054600019019055835291829020805490910190556000805160206129c68339815191529084908490849051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b610160604051908101604052808760001916815260200186600160a060020a031681526020018581526020016000815260200160008152602001848152602001838152602001828152602001600081526020016000600160a060020a03168152602001604080519081016040908152600160a060020a038916808352602080840191909152919092526001546000908152600790915220815181556020820151600182018054600160a060020a031916600160a060020a039290921691909117905560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151600982018054600160a060020a031916600160a060020a03929092169190911790556101408201516127c090600a8301906002612947565b5090505061010060405190810160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250600860006001548152602001908152602001600020600082015181556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701559050507f6dbe83e0361d1759b05d67925ee5ed7d3c73361da16f0abb8aaebf121c7fd34560015487876040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a16000805160206129c68339815191523086600154604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15050600180548101905550505050565b60206040519081016040526000815290565b604080519081016040526002815b60008152600019909101906020018161292e5790505090565b8260028101928215612991579160200282015b828111156129915782518254600160a060020a031916600160a060020a03919091161782556020929092019160019091019061295a565b5061299d9291506129a1565b5090565b61087091905b8082111561299d578054600160a060020a03191681556001016129a75600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef643236658eb2709c16f0857e1a7a4fffee3c798264461cc3462be70c4fa9d8cda165627a7a72305820a049f3e60d6ea93c6b6878526c271cfa60341a08046a434a365a274e320244bc0029
Deployed Bytecode
0x60606040526004361061017f5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610184578063095ea7b31461020e5780630d28f8d1146102325780631051db34146102c157806311f1fc99146102e857806318160ddd146102f357806323b872dd14610318578063472b64921461034057806361b98cb3146103485780636352211e1461035b5780636c376cc51461038d57806370a08231146103a05780638da5cb5b146103bf578063913158f7146103d257806394b663861461044c578063952868b51461045a57806395d89b411461046d578063a3f4df7e14610480578063a9059cbb14610493578063b2e6ceeb146104b5578063b5dd20e9146104cb578063b9186d7d146104f6578063d5ea36f91461050c578063dc3134ae1461051f578063deb081df14610582578063e6e0556214610787578063eb2c0223146107d5578063efef39a1146107f4578063f2fde38b146107ff578063f76f8d781461081e575b600080fd5b341561018f57600080fd5b610197610831565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101d35780820151838201526020016101bb565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021957600080fd5b610230600160a060020a0360043516602435610873565b005b341561023d57600080fd5b6102306004803590608460246003606060405190810160405291908282606080828437820191505050505091908060e001906007806020026040519081016040529190828260e0808284378201915050505050919080610100019060088060200260405190810160405291908282610100808284375093955061090a945050505050565b34156102cc57600080fd5b6102d461094c565b604051901515815260200160405180910390f35b610230600435610951565b34156102fe57600080fd5b610306610c73565b60405190815260200160405180910390f35b341561032357600080fd5b610230600160a060020a0360043581169060243516604435610c79565b610230610cf0565b6102306004356024356044351515610cf2565b341561036657600080fd5b610371600435611039565b604051600160a060020a03909116815260200160405180910390f35b341561039857600080fd5b6102d4611065565b34156103ab57600080fd5b610306600160a060020a0360043516611075565b34156103ca57600080fd5b610371611090565b34156103dd57600080fd5b6103e860043561109f565b604051998a5260208a0198909852600160a060020a039096166040808a01919091526060890195909552608088019390935260a087019190915260c086015260e0850152610100840191909152610120830191909152610140909101905180910390f35b6102306004356024356110f6565b341561046557600080fd5b6102306114f0565b341561047857600080fd5b610197611546565b341561048b57600080fd5b610197611587565b341561049e57600080fd5b610230600160a060020a03600435166024356115be565b34156104c057600080fd5b61023060043561160c565b34156104d657600080fd5b610230600435602435600160a060020a036044351660643560843561166c565b341561050157600080fd5b6103066004356116b2565b341561051757600080fd5b6102306116c7565b341561052a57600080fd5b610535600435611717565b60405198895260208901979097526040808901969096526060880194909452608087019290925260a086015260c085015260e0840152610100830191909152610120909101905180910390f35b341561058d57600080fd5b61059561175e565b604051808060200180602001806020018060200180602001806020018060200188810388528f818151815260200191508051906020019060200280838360005b838110156105ed5780820151838201526020016105d5565b5050505090500188810387528e818151815260200191508051906020019060200280838360005b8381101561062c578082015183820152602001610614565b5050505090500188810386528d818151815260200191508051906020019060200280838360005b8381101561066b578082015183820152602001610653565b5050505090500188810385528c818151815260200191508051906020019060200280838360005b838110156106aa578082015183820152602001610692565b5050505090500188810384528b818151815260200191508051906020019060200280838360005b838110156106e95780820151838201526020016106d1565b5050505090500188810383528a818151815260200191508051906020019060200280838360005b83811015610728578082015183820152602001610710565b50505050905001888103825289818151815260200191508051906020019060200280838360005b8381101561076757808201518382015260200161074f565b505050509050019e50505050505050505050505050505060405180910390f35b341561079257600080fd5b61079d600435611a22565b6040518082604080838360005b838110156107c25780820151838201526020016107aa565b5050505090500191505060405180910390f35b34156107e057600080fd5b610230600160a060020a0360043516611a7f565b610230600435611ada565b341561080a57600080fd5b610230600160a060020a03600435166121d5565b341561082957600080fd5b610197612263565b61083961290e565b60408051908101604052600c81527f457468657249736c616e64730000000000000000000000000000000000000000602082015290505b90565b60008181526007602052604090206001015433600160a060020a0390811691161461089d57600080fd5b600081815260076020526040908190206009018054600160a060020a031916600160a060020a038581169182179092559133909116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a35050565b60005433600160a060020a0390811691161461092557600080fd5b33600160a060020a0316151561093a57600080fd5b6109468484848461229a565b50505050565b600190565b600080548190819081908190819060a060020a900460ff161561097357600080fd5b6000878152600760205260409020600181015490965033600160a060020a039081169116146109a157600080fd5b33600160a060020a031615156109b657600080fd5b6003860154600090116109c857600080fd5b60048601544310156109d957600080fd5b6109f26109eb87600301546064612563565b600a61257f565b9450610a09610a02866064612563565b600261257f565b9350610a20610a19866064612563565b600161257f565b9250610a2c83856125b1565b9150610a3885836125c0565b6001870154909150600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610a7057600080fd5b600a860154600160a060020a03166108fc85150285604051600060405180830381858888f193505050501515610aa557600080fd5b600b860154600160a060020a03166108fc84150284604051600060405180830381858888f193505050501515610ada57600080fd5b610ae88660030154866125c0565b6003878101919091555443016004870155600a8601546000805160206129e683398151915290600160a060020a031685604051600160a060020a03909216825260208201527f7769746864726177616c50726576696f75734f776e65720000000000000000006040808301919091526060909101905180910390a1600b8601546000805160206129e683398151915290600160a060020a031684604051600160a060020a03909216825260208201527f7769746864726177616c50726576696f75734f776e65723200000000000000006040808301919091526060909101905180910390a160018601546000805160206129e683398151915290600160a060020a031682604051600160a060020a03909216825260208201527f7769746864726177616c4f776e657200000000000000000000000000000000006040808301919091526060909101905180910390a17fdcfb70a6f0f5eab41644ac0cde62fe5f51ce0bb0a53b88ea72c4b2b78ad887bc8760405190815260200160405180910390a150505050505050565b60015490565b600081815260076020526040902060010154600160a060020a03848116911614610ca257600080fd5b600081815260076020526040902060090154600160a060020a03838116911614610ccb57600080fd5b600160a060020a0382161515610ce057600080fd5b610ceb8383836125d2565b505050565b565b60008054819081908190819081908190819060a060020a900460ff1615610d1857600080fd5b60008b8152600760205260409020600254909850610d37908b9061257f565b600189015490975033600160a060020a03908116911614610d5757600080fd5b33600160a060020a03161515610d6c57600080fd5b3487901015610d7a57600080fd5b8815610d9857610d8e88600601548b6125b1565b6006890155610dac565b610da688600701548b6125b1565b60078901555b610dc1610dba886064612563565b605061257f565b9550610dd8610dd1886064612563565b601161257f565b9450610de8610a02886064612563565b9350610df8610a19886064612563565b600a890154909350600160a060020a03166108fc85150285604051600060405180830381858888f193505050501515610e3057600080fd5b600b880154600160a060020a03166108fc84150284604051600060405180830381858888f193505050501515610e6557600080fd5b610e738689600301546125b1565b6003890155610e8d610e86866064612563565b601461257f565b9150610e9d610dba866064612563565b600554909150600160a060020a031682156108fc0283604051600060405180830381858888f193505050501515610ed357600080fd5b600054600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610f0657600080fd5b600a8801546000805160206129e683398151915290600160a060020a031685604051600160a060020a03909216825260208201527f6275795368697050726576696f75734f776e65720000000000000000000000006040808301919091526060909101905180910390a1600b8801546000805160206129e683398151915290600160a060020a031684604051600160a060020a03909216825260208201527f6275795368697050726576696f75734f776e65723200000000000000000000006040808301919091526060909101905180910390a160018801547ff93b010291992b1f39b774e39ebd25679d89423a837516acc89864839e693579908c90600160a060020a0316604051918252600160a060020a031660208201526040908101905180910390a15050505050505050505050565b600081815260076020526040902060010154600160a060020a031680151561106057600080fd5b919050565b60005460a060020a900460ff1681565b600160a060020a031660009081526006602052604090205490565b600054600160a060020a031681565b600081815260076020819052604090912080546001820154600283015460038401546004850154600586015460068701549787015460089097015498999598600160a060020a039095169793969295919490939291565b60008060008060008060008060008060008060149054906101000a900460ff1615156000151514151561112857600080fd5b600760008e81526020019081526020016000209a50600860008e81526020019081526020016000209950600760008d81526020019081526020016000209850600860008d8152602001908152602001600020975033600160a060020a03168b60010160009054906101000a9004600160a060020a0316600160a060020a03161415156111b357600080fd5b6001808a0154908c0154600160a060020a03908116911614156111d557600080fd5b33600160a060020a031615156111ea57600080fd5b34156111f557600080fd5b60068a015443101561120657600080fd5b600788015443101561121757600080fd5b60068b01546000901161122957600080fd5b600789015460068c01541161123d57600080fd5b61125661124f8a600301546064612563565b601961257f565b96506112668960030154886125c0565b60038a015589546001018a5560048a015461128190886125b1565b60048b0155600388018054600101905560058801546112a090886125b1565b6005890155600454430160068b018190556007890181905595506112cf6112c8886064612563565b604b61257f565b94506112df8b60030154866125b1565b60038c015560068b0154611300906112fb610a02826064612563565b6125c0565b60068c0155600789015461131c906112fb6109eb826064612563565b60078a015561133661132f886064612563565b600f61257f565b935061134d611346886064612563565b600661257f565b925061136461135d886064612563565b600361257f565b9150611374610a19886064612563565b60018c0154909150600160a060020a031684156108fc0285604051600060405180830381858888f1935050505015156113ac57600080fd5b600a8b0154600160a060020a03166108fc84150284604051600060405180830381858888f1935050505015156113e157600080fd5b600b8b0154600160a060020a03166108fc83150283604051600060405180830381858888f19350505050151561141657600080fd5b600554600160a060020a03166108fc611433610e86846064612563565b9081150290604051600060405180830381858888f19350505050151561145857600080fd5b600054600160a060020a03166108fc611475610dba846064612563565b9081150290604051600060405180830381858888f19350505050151561149a57600080fd5b7fbfdc5cbaee78217e7eda2a48bd822c621bbee874c4148603f419f857bc506d3c8d8d8960405180848152602001838152602001828152602001935050505060405180910390a150505050505050505050505050565b60005433600160a060020a0390811691161461150b57600080fd5b33600160a060020a0316151561152057600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a179055565b61154e61290e565b60408051908101604052600381527f45495300000000000000000000000000000000000000000000000000000000006020820152905090565b60408051908101604052600c81527f457468657249736c616e64730000000000000000000000000000000000000000602082015281565b33600160a060020a031615156115d357600080fd5b60008181526007602052604090206001015433600160a060020a039081169116146115fd57600080fd5b6116083383836125d2565b5050565b600081815260076020526040902060010154600160a060020a03908116903316151561163757600080fd5b60008281526007602052604090206009015433600160a060020a0390811691161461166157600080fd5b6116088133846125d2565b60005433600160a060020a0390811691161461168757600080fd5b33600160a060020a0316151561169c57600080fd5b6116ab85848660008686612679565b5050505050565b60009081526007602052604090206002015490565b60005433600160a060020a039081169116146116e257600080fd5b33600160a060020a031615156116f757600080fd5b6000805474ff000000000000000000000000000000000000000019169055565b600081815260086020526040902080546001820154600283015460038401546004850154600586015460068701546007909701549798959794969395929491939092909190565b61176661290e565b61176e61290e565b61177661290e565b61177e61290e565b61178661290e565b61178e61290e565b61179661290e565b61179e61290e565b6117a661290e565b6117ae61290e565b6117b661290e565b6117be61290e565b6117c661290e565b6117ce61290e565b60006001546040518059106117e05750595b908082528060200260200182016040525097506001546040518059106118035750595b908082528060200260200182016040525096506001546040518059106118265750595b908082528060200260200182016040525095506001546040518059106118495750595b9080825280602002602001820160405250945060015460405180591061186c5750595b9080825280602002602001820160405250935060015460405180591061188f5750595b908082528060200260200182016040525092506001546040518059106118b25750595b90808252806020026020018201604052509150600090505b600154811015611a0b57808882815181106118e157fe5b6020908102909101810191909152600082815260079091526040902060010154600160a060020a031687828151811061191657fe5b600160a060020a03909216602092830290910182015260008281526007909152604090206002015486828151811061194a57fe5b602090810290910181019190915260008281526007909152604090206003015485828151811061197657fe5b60209081029091018101919091526000828152600790915260409020600601548482815181106119a257fe5b602090810290910181019190915260008281526007918290526040902001548382815181106119cd57fe5b60209081029091018101919091526000828152600790915260409020600801548282815181106119f957fe5b602090810290910101526001016118ca565b50959d949c50929a50909850965094509092509050565b611a2a612920565b60008281526007602052604090819020600a019060029080519081016040529190828260026020028201915b8154600160a060020a03168152600190910190602001808311611a565750505050509050919050565b60005433600160a060020a03908116911614611a9a57600080fd5b80600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f193505050501515611ad757600080fd5b50565b6000805481908190819081908190819081908190819060a060020a900460ff1615611b0457600080fd5b60008b81526007602052604090206001810154909a5033600160a060020a0390811691161415611b3357600080fd5b33600160a060020a03161515611b4857600080fd5b60028a0154341015611b5957600080fd5b611b67348b600201546125c0565b985060008a600501541115611eec57611b8f611b888b6002015460a0612563565b608261257f565b9750611baa611ba38b6002015460a0612563565b601261257f565b9650611bc5611bbe8b6002015460a0612563565b600761257f565b9550611bd961135d8b6002015460a0612563565b9450611bed610a028b6002015460a0612563565b60018b015490945030600160a060020a03908116911614611c3d5760018a0154600160a060020a031688156108fc0289604051600060405180830381858888f193505050501515611c3d57600080fd5b600a8a0154600160a060020a03166108fc86150286604051600060405180830381858888f193505050501515611c7257600080fd5b600b8a0154600160a060020a03166108fc85150285604051600060405180830381858888f193505050501515611ca757600080fd5b611cb5878b600301546125b1565b60038b0155611cc8610e86876064612563565b9250611cd8610dba876064612563565b600554909250600160a060020a031683156108fc0284604051600060405180830381858888f193505050501515611d0e57600080fd5b600054600160a060020a031682156108fc0283604051600060405180830381858888f193505050501515611d4157600080fd5b600a8a01546000805160206129e683398151915290600160a060020a031686604051600160a060020a03909216825260208201527f70726576696f75734f776e6572000000000000000000000000000000000000006040808301919091526060909101905180910390a1600b8a01546000805160206129e683398151915290600160a060020a031685604051600160a060020a03909216825260208201527f70726576696f75734f776e6572320000000000000000000000000000000000006040808301919091526060909101905180910390a160018a01546000805160206129e683398151915290600160a060020a031689604051600160a060020a03909216825260208201527f6f776e65720000000000000000000000000000000000000000000000000000006040808301919091526060909101905180910390a16000546000805160206129e683398151915290600160a060020a031687604051600160a060020a03909216825260208201527f64657600000000000000000000000000000000000000000000000000000000006040808301919091526060909101905180910390a1611f22565b60018a0154600160a060020a03163480156108fc0290604051600060405180830381858888f193505050501515611f2257600080fd5b50600289015460058a01819055600354430160048b015560018a0154600160a060020a031690611f5e90611f57906064612563565b60a061257f565b60028b0155600a8a0160000154600160a060020a0316600a8b016001018054600160a060020a031916600160a060020a0392831617905560018b015416600a8b0160000160006101000a815481600160a060020a030219169083600160a060020a03160217905550338a60010160006101000a815481600160a060020a030219169083600160a060020a03160217905550896008016000815480929190600101919050555060016006600083600160a060020a0316600160a060020a03168152602001908152602001600020600082825403925050819055506001600660008c60010160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060008282540192505081905550600454600860008d815260200190815260200160002060060181905550600454600860008d8152602001908152602001600020600701819055506000805160206129c6833981519152818b60010160009054906101000a9004600160a060020a03168d604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a160058a015460028b015460018c01548c547fdcab0704e5b2c212cba558657bf325bc1b823c2a4e89c77e93926533ec56b5f9938f93909290918691600160a060020a0316906040519586526020860194909452604080860193909352600160a060020a03918216606086015216608084015260a083019190915260c0909101905180910390a1600160a060020a03331689156108fc028a604051600060405180830381858888f1935050505015156121c857600080fd5b5050505050505050505050565b60005433600160a060020a039081169116146121f057600080fd5b600160a060020a038116151561220557600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008054600160a060020a031916600160a060020a0392909216919091179055565b60408051908101604052600381527f4549530000000000000000000000000000000000000000000000000000000000602082015281565b610160604051908101604052848152602081018451600160a060020a03168152602001835181526020018360016020020151815260200160408401518152602001606084015181526020016080840151815260200160a0840151815260200160c084015181526020016000600160a060020a0316815260200160408051908101604052806020870151600160a060020a031681526020016040870151600160a060020a0316905290526001546000908152600760205260409020815181556020820151600182018054600160a060020a031916600160a060020a039290921691909117905560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151600982018054600160a060020a031916600160a060020a039290921691909117905561014082015161240490600a8301906002612947565b5090505061010060405190810160405280825181526020018260016020020151815260200160408301518152602001606083015181526020016080830151815260200160a0830151815260200160c0830151815260200160e083015190526001546000908152600860205260409020815181556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015160079190910155506001547f6dbe83e0361d1759b05d67925ee5ed7d3c73361da16f0abb8aaebf121c7fd345908585516040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a16000805160206129c6833981519152308451600154604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505060018054810190555050565b600080828481151561257157fe5b0490508091505b5092915050565b6000808315156125925760009150612578565b508282028284828115156125a257fe5b04146125aa57fe5b9392505050565b6000828201838110156125aa57fe5b6000828211156125cc57fe5b50900390565b600081815260076020908152604080832060018082018054600160a060020a03808a16600160a060020a03199283168117909355600990940180549091169055918816855260069093528184208054600019019055835291829020805490910190556000805160206129c68339815191529084908490849051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a1505050565b610160604051908101604052808760001916815260200186600160a060020a031681526020018581526020016000815260200160008152602001848152602001838152602001828152602001600081526020016000600160a060020a03168152602001604080519081016040908152600160a060020a038916808352602080840191909152919092526001546000908152600790915220815181556020820151600182018054600160a060020a031916600160a060020a039290921691909117905560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151600982018054600160a060020a031916600160a060020a03929092169190911790556101408201516127c090600a8301906002612947565b5090505061010060405190810160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250600860006001548152602001908152602001600020600082015181556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701559050507f6dbe83e0361d1759b05d67925ee5ed7d3c73361da16f0abb8aaebf121c7fd34560015487876040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390a16000805160206129c68339815191523086600154604051600160a060020a039384168152919092166020820152604080820192909252606001905180910390a15050600180548101905550505050565b60206040519081016040526000815290565b604080519081016040526002815b60008152600019909101906020018161292e5790505090565b8260028101928215612991579160200282015b828111156129915782518254600160a060020a031916600160a060020a03919091161782556020929092019160019091019061295a565b5061299d9291506129a1565b5090565b61087091905b8082111561299d578054600160a060020a03191681556001016129a75600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef643236658eb2709c16f0857e1a7a4fffee3c798264461cc3462be70c4fa9d8cda165627a7a72305820a049f3e60d6ea93c6b6878526c271cfa60341a08046a434a365a274e320244bc0029
Swarm Source
bzzr://a049f3e60d6ea93c6b6878526c271cfa60341a08046a434a365a274e320244bc
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.