Contract 0xB5C518AB9B41080af0D9df48d9EcBF1f098a44D0

 

Contract Overview

Balance:
2.515745110946800599 Ether

EtherValue:
$312.86 (@ $124.36/ETH)
TxHash Block Age From To Value [TxFee]
0xee41c80cccfc16d309aa328ca2a61bd8a6cb26e358ac9703e75a0f4412b2cb6772289939 hrs 57 mins ago0xc9721cf7f10611974050caaf5ac68f93f23b0848  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.01 Ether0.000221688
0x601edd8a162854f9b522ec2f825dbc48a5ac33132c3fa477180c872ef247be0d72249951 day 8 hrs ago0x46a21f815bc8f0c29da5e0d04179c3b43fbf2587  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.01 Ether0.000221688
0xb51c17dc24408ebd913a314e3c60312f5d7d07d1e5e7b209e4d007df0f5bfffb72208822 days 8 hrs ago0x46a21f815bc8f0c29da5e0d04179c3b43fbf2587  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.3 Ether0.001049515
0x50786e3af3d0a9c71e0513a6b34887967624c4275be4ca902aba68817e9c559472204382 days 10 hrs ago0x088fe8abe54c2e108a5cee063f640132bd654625  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.05 Ether0.000295328
0xe4f970abe49827d26bc6ec82f9ce566bc5e05a8462d810a432ca028ebe1f8ec472203552 days 11 hrs ago0x088fe8abe54c2e108a5cee063f640132bd654625  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.000188661
0x0421693062fec8f0c9c88866aef4cbeb71a9ae17c8bfd11799d11af08482e4aa72203262 days 11 hrs ago0x088fe8abe54c2e108a5cee063f640132bd654625  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.000290165
0xa59a4efa9a122f85e9bea7888c5dc82fdb48367fd388a85e979b1df05421578972200222 days 13 hrs ago0xc9721cf7f10611974050caaf5ac68f93f23b0848  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.000174195
0xcfd459e15f2501458ee4905f2667b1836f9604fe34bc84948169a889a2aa80ee72198052 days 14 hrs ago0x007fad20636774cd5026a62925348f1deee8ab3c  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.000314435
0x8047a596a17200b72230fd6bf54324e3f6bc53826e6192bf416564a67e97b7b072198032 days 14 hrs ago0xc9721cf7f10611974050caaf5ac68f93f23b0848  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.000210501
0xf7d4d8c43c037f6ef863e31c2d0125a56d0343d2c401dda003b7909c539088c672198032 days 14 hrs ago0xc9721cf7f10611974050caaf5ac68f93f23b0848  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.000174195
0xe4779aab0469b67804969e960c748d844ec639af6124ebd63c4028410de6658a72197962 days 14 hrs ago0x9faae4f7ba45fec8715188e141651fe8c4d6d65b  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.000314435
0xaa82144914553cca3a0448fb79c89cf97c58765b17da66827ace32a57015a80272197632 days 14 hrs ago0xc9721cf7f10611974050caaf5ac68f93f23b0848  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.000251548
0xa877fc9c43dd6f3c725cdec0b57bc6353f5b8d10787fcb98b9b1c5ce06224ab472184012 days 22 hrs ago0xb9b96883ee448477386013db5b2c82fc1c746d18  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.00023797
0x368abfe95623f8741fb5eadd9aa4f744aba61ff87caa33200f1b94690116eb4472172253 days 5 hrs ago0xda54bb504f8a1d37142fd62da268344e56c7df36  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.00023797
0xb5a00f67f6c158e7da23076e8d022227c66f9c9cce59f06253e86b2e2b6cdb3b72172223 days 5 hrs ago0xda54bb504f8a1d37142fd62da268344e56c7df36  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.00023797
0x21704575b55b334f2d72a077abec9752f74555dfc580e04f561b756bec3ac45b72172113 days 5 hrs ago0xda54bb504f8a1d37142fd62da268344e56c7df36  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.01 Ether0.005244375
0x524b34d392f5273a109cc2f997d93cd074c56f19f6209dd23f38cf3245e9bf2372172113 days 5 hrs ago0xda54bb504f8a1d37142fd62da268344e56c7df36  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.01 Ether0.001124195
0xa713ea317f524dfc6250c732a391039d62d1732de559a370df7762e19c50266a72165493 days 9 hrs ago0x516f124c9f52074451b434559337e377b926e99d  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.01 Ether0.000674709
0x96f49ebe6cff3a1457f6a7556f3cbfd674b9fae640baa179e240f5286f42af7672164103 days 10 hrs ago0x46a21f815bc8f0c29da5e0d04179c3b43fbf2587  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.000046778
0xef9cb821dd03344ee82818d9982ead252b4da419dab35c7f9ce75ebaaee2628072164083 days 10 hrs ago0x46a21f815bc8f0c29da5e0d04179c3b43fbf2587  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00 Ether0.00011613
0xc379012d4ce9d94592979efb031236a223e3a30f462f32e706ff74839a6f433572159563 days 12 hrs ago0xb9b96883ee448477386013db5b2c82fc1c746d18  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.01 Ether0.00036948
0xb2bfa5100831813557c1bf9103bf0833be71fac9f7c5f5082428a51b1df4715b72159503 days 13 hrs ago0xb9b96883ee448477386013db5b2c82fc1c746d18  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.01 Ether0.000443376
0x24c3a27474b8cb940980dfdfb99e5c2ea0e18a996817168ff567ded061b1123572153393 days 16 hrs ago0xdfea4be32b1f777d82a6389a0d4f399569c46202  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.01 Ether0.00073896
0xfc6e7857702c326fa9ce4da7e7160de1b272c446bfc9fd6cf84be4967ec3434472151303 days 17 hrs ago0xe5549610a0c3c19e18012a55957d7196929609ae  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.02 Ether0.001123555
0xe46750b40cb72fd64fc11da6e42d094d80ebbce69d9f497897d18c95eb49805672145073 days 21 hrs ago0xb9b96883ee448477386013db5b2c82fc1c746d18  IN   0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00.01 Ether0.00036948
[ Download CSV Export 

Latest 3 Internal Transactions Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xa877fc9c43dd6f3c725cdec0b57bc6353f5b8d10787fcb98b9b1c5ce06224ab472184012 days 22 hrs ago0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00xb9b96883ee448477386013db5b2c82fc1c746d180.008251131052117148 Ether
0x368abfe95623f8741fb5eadd9aa4f744aba61ff87caa33200f1b94690116eb4472172253 days 5 hrs ago0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00xda54bb504f8a1d37142fd62da268344e56c7df360.008103758001082253 Ether
0xb5a00f67f6c158e7da23076e8d022227c66f9c9cce59f06253e86b2e2b6cdb3b72172223 days 5 hrs ago0xb5c518ab9b41080af0d9df48d9ecbf1f098a44d00xda54bb504f8a1d37142fd62da268344e56c7df360.0081 Ether
[ Download CSV Export 
Contract Source Code Verified (Exact Match)
Contract Name: KillFish
Compiler Version: v0.4.25+commit.59dbf8f1
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.25;

/**
*
* «KillFish» is an economic game that provides the possibility to earn Ethereum.
*  
* The world ocean is a huge object containing many predatory fish fighting and eating each other.
* Every player has an in-game task to maintain his/her fish growth periodically replenishing (feeding)
* it or chasing after any smaller-size fish. As a matter of fact, this game is endless and a user
* is capable to get in or out of the game at any stage, to collect and draw out his/her earnings 
* using the money transfer service on the Ethereum wallet.
* 
* Every player can use 2 basic methods for earning money:
* 1. To collect dividends from all new fish engaged in the game and from all fish that are about
*     to leave the game, as well as from other actions of the players.
* 2. To attack smaller-size prey status assigned fish 2 or 3 times a week.  
*
* More information on the site https://killfish.io
* 
* «KillFish» - экономическая игра, предоставляющая возможность игрокам зарабатывать деньги в Ethereum.
* 
* Мировой океан огромен и в нём обитает множество хищных рыб, которые стремятся съесть друг друга.
* Задача игрока состоит в том, что бы поддерживать рост своей рыбы, периодически пополняя(кормя)
* её или охотясь на меньших по размерам рыб . Игра по сути своей бесконечная, можно на любом этапе
* войти и выйти из неё, получить свой доход переводом на Ethereum кошелёк.
*
* Каждый игрок имеет возможность заработать 2 основными способами в игре:
* 1. Получать долю от всех новых рыб в игре и всех рыб, которые покидают игру,
*     а также от других действий игроков.
* 2. 2-3 раза в неделю нападать на рыб меньшего размера, которые находятся в статусе жертвы.
* 
* Больше информации на сайте https://killfish.io
*
*/

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, reverts on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b);

    return c;
  }

  /**
  * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0); // Solidity only automatically asserts 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, reverts on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a);
    uint256 c = a - b;

    return c;
  }

  /**
  * @dev Adds two numbers, reverts on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a);

    return c;
  }

  /**
  * @dev Divides two numbers and returns the remainder (unsigned integer modulo),
  * reverts when dividing by zero.
  */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}

/**
 * @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 private _owner;

  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() internal {
    _owner = msg.sender;
    emit OwnershipTransferred(address(0), _owner);
  }

  /**
   * @return the address of the owner.
   */
  function owner() public view returns(address) {
    return _owner;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(isOwner());
    _;
  }

  /**
   * @return true if `msg.sender` is the owner of the contract.
   */
  function isOwner() public view returns(bool) {
    return 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 {
    _transferOwnership(newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0));
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}

contract ERC721 {
    function implementsERC721() public pure returns (bool);
    function totalSupply() public view returns (uint256 total);
    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 returns (bool);
    
    event Transfer(
        address indexed from, 
        address indexed to, 
        uint256 indexed tokenId
    );
}

contract KillFish is Ownable, ERC721 {
    
    using SafeMath for uint256;
    using SafeMath for uint64;
    
    /**
    * token structure
    */
    
    struct Fish {  
        uint64 genes;       //genes determine only the appearance 00 000 000 000-99 999 999 999
        string nickname;    //fish nickname
        uint64 birthTime;   //birth time
        uint64 feedTime;    //last feeding time
        uint64 huntTime;    //last hunting time
        uint256 share;      //fish size (per share)
        uint256 feedValue;  //how much fish should eat (per eth)
        uint256 eatenValue; //how much did the fish eat (per eth)
    }
    
    /**
    * storage
    */
    
    Fish[] fishes;
    
    mapping (uint256 => address) private _tokenOwner;
    
    mapping (address => uint256) private _ownedTokensCount;
    
    uint256 private _totalSupply;
    
    uint256 public totalShares;
    
    uint256 public balanceFishes;
    uint256 public balanceOwner;
    uint256 public balanceMarketing;
    
    uint256 public maxGasPrice;
    
    /**
    * constants
    */
    
    string constant public name = "KillFish.io";
    string constant public symbol = "FISH";
    
    uint256 constant public minPayment = 10000 szabo;   // 10000 szabo=0.01 eth
    uint8 constant public percentFeeFishesInput = 5;
    uint8 constant public percentFeeFishesOutput = 5;
    uint8 constant public percentFeeFishesBite = 20;
    
    uint8 constant public percentFeeMarketingInput = 5;
    uint8 constant public percentFeeAdminOutput = 5;
    uint8 constant public percentFeeAdminBite = 10;
    
    uint8 constant public percentFeed = 5;
    
    uint64 constant public pausePrey = 7 days;
    uint64 constant public pauseHunter = 2 days;
    
    /**
    * admin functions
    */
    
    event UpdateMaxGasPrice(
        uint256 maxGasPrice
    );
    event WithdrawalMarketing(
        address indexed to, 
        uint256 value
    );
    event WithdrawalOwner(
        address indexed to, 
        uint256 value
    );
    
    function updateMaxGasPrice(uint256 _newMaxGasPrice) public onlyOwner {
        require(_newMaxGasPrice >= 10000000000 wei); // 10000000000 wei = 10 gwei
        
        maxGasPrice=_newMaxGasPrice;
        
        emit UpdateMaxGasPrice(maxGasPrice);
    }
    
    function withdrawalMarketing(address _to, uint256 _value) public onlyOwner {
        balanceMarketing=balanceMarketing.sub(_value);
        emit WithdrawalMarketing(_to, _value);
        
        _to.transfer(_value);
    }
    
    function withdrawalOwner(address _to, uint256 _value) public onlyOwner {
        balanceOwner=balanceOwner.sub(_value);
        emit WithdrawalOwner(_to, _value);
        
        _to.transfer(_value);
    }
    
    constructor() public {
        
        updateMaxGasPrice(25000000000 wei); // 25000000000 wei = 25 gwei
        
    }
    
    /**
    * ERC721 functions
    */
    
    modifier onlyOwnerOf(uint256 _tokenId) {
        require(msg.sender == _tokenOwner[_tokenId], "not token owner");
        _;
    }
    
    function implementsERC721() public pure returns (bool) {
        return true;
    }
    
    function totalSupply() public view returns (uint256 total) {
        return _totalSupply;
    }
    
    function balanceOf(address _owner) public view returns (uint256 balance) {
        return _ownedTokensCount[_owner];
    }
    
    function ownerOf(uint256 _tokenId) public view returns (address owner) {
        return _tokenOwner[_tokenId];
    }
    
    function _transfer(address _from, address _to, uint256 _tokenId) private returns (bool) {
        _ownedTokensCount[_to] = _ownedTokensCount[_to].add(1);
        _ownedTokensCount[_from] = _ownedTokensCount[_from].sub(1);
        _tokenOwner[_tokenId] = _to;
        emit Transfer(_from, _to, _tokenId);
        return true;
    }
    
    function transfer(address _to, uint256 _tokenId) public onlyOwnerOf(_tokenId) returns (bool)  {
        return _transfer(msg.sender, _to, _tokenId);
    }
    
    /**
    * refund
    */
    
    function () public payable {
        revert();
    }

    /**
    * fish functions
    */
    
    event CreateFish(
        uint256 indexed tokenId,
        uint64 genes,
        string nickname,
        uint64 birthTime,
        uint256 share,
        uint256 feedValue,
        uint256 eatenValue
    );
    event FeedFish(
        uint256 indexed tokenId,
        uint256 share,
        uint256 feedValue,
        uint256 eatenValue
    );
    event DestroyFish(
        uint256 indexed tokenId,
        uint256 share,
        uint256 withdrawal
    );    
    event BiteFish(
        uint256 indexed tokenId,
        uint256 indexed preyId,
        uint256 hunterShare,
        uint256 hunterFeedValue,
        uint256 preyShare,
        uint256 preyFeedValue
    );
    event UpdateNickname(
        uint256 indexed tokenId,
        string nickname
    );    
    
    modifier checkMaxGasPrice() {
        require(tx.gasprice<=maxGasPrice, "gas price > maxGasPrice");
        _;
    }
    
    modifier checkMinPayment() {
        require(msg.value>=minPayment, "msg.value < minPayment");
        _;
    }
    
    function createFish(string _nickname) public payable checkMinPayment checkMaxGasPrice returns(uint256) {
        
        uint256 feeMarketing=msg.value.mul(percentFeeMarketingInput).div(100);
        uint256 feeFishes=msg.value.mul(percentFeeFishesInput).div(100);
        uint256 value=msg.value.sub(feeMarketing).sub(feeFishes);
        
        balanceFishes=balanceFishes.add(value).add(feeFishes);
        balanceMarketing=balanceMarketing.add(feeMarketing);
        
        uint256 share=_newShare(value);
        
        totalShares=totalShares.add(share);
        
        Fish memory newFish=Fish({
            genes: _newGenes(),
            nickname: _nickname,
            birthTime: uint64(now),
            feedTime: uint64(now),
            huntTime: uint64(now), 
            share: share,
            feedValue: _newFeedValue(share),
            eatenValue: value
        });
        uint256 newTokenId = fishes.push(newFish) - 1;
        
        _totalSupply=_totalSupply.add(1);
        _ownedTokensCount[msg.sender]=_ownedTokensCount[msg.sender].add(1);
        _tokenOwner[newTokenId]=msg.sender;
        
        emit CreateFish(newTokenId, fishes[newTokenId].genes, fishes[newTokenId].nickname, fishes[newTokenId].birthTime, fishes[newTokenId].share, fishes[newTokenId].feedValue, value);
        emit Transfer(address(0), msg.sender, newTokenId);
        
        return newTokenId;
    }
    
    function feedFish(uint256 _tokenId) public payable checkMinPayment checkMaxGasPrice returns(bool) {
        require(statusLive(_tokenId), "fish dead");
        
        uint256 feeMarketing=msg.value.mul(percentFeeMarketingInput).div(100);
        uint256 feeFishes=msg.value.mul(percentFeeFishesInput).div(100);
        uint256 value=msg.value.sub(feeMarketing).sub(feeFishes);
        
        balanceFishes=balanceFishes.add(value).add(feeFishes);
        balanceMarketing=balanceMarketing.add(feeMarketing);
        
        uint256 share=_newShare(value);
        
        totalShares=totalShares.add(share);
        fishes[_tokenId].share=fishes[_tokenId].share.add(share);
        fishes[_tokenId].eatenValue=fishes[_tokenId].eatenValue.add(value);
        
        if (value<fishes[_tokenId].feedValue) {
            fishes[_tokenId].feedValue=fishes[_tokenId].feedValue.sub(value);
        } else {
            fishes[_tokenId].feedValue=_newFeedValue(fishes[_tokenId].share);
            fishes[_tokenId].feedTime=uint64(now);
            fishes[_tokenId].huntTime=uint64(now);
        }
        
        emit FeedFish(_tokenId, share, fishes[_tokenId].feedValue, value);
        
        return true;
    }

    function destroyFish(uint256 _tokenId) public onlyOwnerOf(_tokenId) checkMaxGasPrice returns(bool) {
        
        uint256 share=fishes[_tokenId].share;
        uint256 withdrawal=shareToValue(share);
        uint256 feeFishes=withdrawal.mul(percentFeeFishesOutput).div(100);
        uint256 feeAdmin=withdrawal.mul(percentFeeAdminOutput).div(100);
        
        withdrawal=withdrawal.sub(feeFishes).sub(feeAdmin);
        
        totalShares=totalShares.sub(share);
        fishes[_tokenId].share=0;
        fishes[_tokenId].feedValue=0;
        fishes[_tokenId].nickname="";
        fishes[_tokenId].feedTime=uint64(now);
        
        _transfer(msg.sender, address(0), _tokenId);
        
        balanceOwner=balanceOwner.add(feeAdmin);
        balanceFishes=balanceFishes.sub(withdrawal).sub(feeAdmin);
        
        emit DestroyFish(_tokenId, share, withdrawal);
        
        msg.sender.transfer(withdrawal);
        
        return true;   
    }
    
    function biteFish(uint256 _tokenId, uint256 _preyId) public onlyOwnerOf(_tokenId) checkMaxGasPrice returns(bool) {
        require(statusLive(_preyId), "prey dead");
        require(statusPrey(_preyId), "not prey");
        require(statusHunter(_tokenId), "not hunter");
        require(fishes[_preyId].share<fishes[_tokenId].share, "too much prey");
        
        uint256 sharePrey;
        uint256 shareHunter;
        uint256 shareFishes;
        uint256 shareAdmin;
        uint256 value;
        
        if (shareToValue(fishes[_preyId].share)<minPayment.mul(2)) {
            sharePrey=fishes[_preyId].share;
            
            _transfer(ownerOf(_preyId), address(0), _preyId);
            fishes[_preyId].nickname="";
        } else {
            sharePrey=fishes[_preyId].share.mul(percentFeed).div(100);
            
            if (shareToValue(sharePrey)<minPayment) {
                sharePrey=valueToShare(minPayment);
            }

        }
        
        shareFishes=sharePrey.mul(percentFeeFishesBite).div(100);
        shareAdmin=sharePrey.mul(percentFeeAdminBite).div(100);
        shareHunter=sharePrey.sub(shareFishes).sub(shareAdmin);
        
        fishes[_preyId].share=fishes[_preyId].share.sub(sharePrey);
        fishes[_tokenId].share=fishes[_tokenId].share.add(shareHunter);
        
        fishes[_preyId].feedValue=_newFeedValue(fishes[_preyId].share);
        fishes[_preyId].feedTime=uint64(now);
        
        fishes[_tokenId].huntTime=uint64(now);
        
        value=shareToValue(shareHunter);
        
        if (value<fishes[_tokenId].feedValue) {
            fishes[_tokenId].feedValue=fishes[_tokenId].feedValue.sub(value);
        } else {
            fishes[_tokenId].feedValue=_newFeedValue(fishes[_tokenId].share);
            fishes[_tokenId].feedTime=uint64(now);
        }
        
        value=shareToValue(shareAdmin);
        
        totalShares=totalShares.sub(shareFishes).sub(shareAdmin);
        
        balanceOwner=balanceOwner.add(value);
        balanceFishes=balanceFishes.sub(value);
        
        emit BiteFish(_tokenId, _preyId, shareHunter, fishes[_tokenId].feedValue, sharePrey, fishes[_preyId].feedValue);
        
        return true;        
    }
    
    function updateNickname(uint256 _tokenId, string _nickname) public onlyOwnerOf(_tokenId) returns(bool) {
        
        fishes[_tokenId].nickname=_nickname;
        
        emit UpdateNickname(_tokenId, _nickname);
        
        return true;
    }
    
    /**
    * utilities
    */
    
    function getFish(uint256 _tokenId) public view
        returns (
        uint64 genes,
        string nickname,
        uint64 birthTime,
        uint64 feedTime,
        uint64 huntTime,
        uint256 share,
        uint256 feedValue,
        uint256 eatenValue
    ) {
        Fish memory fish=fishes[_tokenId];
        
        genes=fish.genes;
        nickname=fish.nickname;
        birthTime=fish.birthTime;
        feedTime=fish.feedTime;
        huntTime=fish.huntTime;
        share=fish.share; 
        feedValue=fish.feedValue; 
        eatenValue=fish.eatenValue; 
    }

    function statusLive(uint256 _tokenId) public view returns(bool) {
        if (fishes[_tokenId].share==0) {return false;}
        return true;
    }
    
    function statusPrey(uint256 _tokenId) public view returns(bool) {
        if (now<=fishes[_tokenId].feedTime.add(pausePrey)) {return false;}
        return true;
    }
    
    function statusHunter(uint256 _tokenId) public view returns(bool) {
        if (now<=fishes[_tokenId].huntTime.add(pauseHunter)) {return false;}
        return true;
    }
    
    function shareToValue(uint256 _share) public view returns(uint256) {
        if (totalShares == 0) {return 0;}
        return _share.mul(balanceFishes).div(totalShares);
    }
    
    function valueToShare(uint256 _value) public view returns(uint256) {
        if (balanceFishes == 0) {return 0;}
        return _value.mul(totalShares).div(balanceFishes);
    }
    
    function _newShare(uint256 _value) private view returns(uint256) {
        if (totalShares == 0) {return _value;}
        return _value.mul(totalShares).div(balanceFishes.sub(_value));
    }
    
    function _newFeedValue(uint256 _share) private view returns(uint256) {
        uint256 _value=shareToValue(_share);
        return _value.mul(percentFeed).div(100);
    }
    
    function _newGenes() private view returns(uint64) {
        return uint64(uint256(keccak256(abi.encodePacked(now, totalShares, balanceFishes)))%(10**11));
    }
    
}

Contract ABI
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"statusHunter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"withdrawalMarketing","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"destroyFish","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"pausePrey","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getFish","outputs":[{"name":"genes","type":"uint64"},{"name":"nickname","type":"string"},{"name":"birthTime","type":"uint64"},{"name":"feedTime","type":"uint64"},{"name":"huntTime","type":"uint64"},{"name":"share","type":"uint256"},{"name":"feedValue","type":"uint256"},{"name":"eatenValue","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceOwner","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_preyId","type":"uint256"}],"name":"biteFish","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minPayment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percentFeeAdminOutput","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalShares","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"statusLive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxGasPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percentFeed","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_share","type":"uint256"}],"name":"shareToValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newMaxGasPrice","type":"uint256"}],"name":"updateMaxGasPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_value","type":"uint256"}],"name":"valueToShare","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"withdrawalOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pauseHunter","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"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":"balanceFishes","outputs":[{"name":"","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":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"feedFish","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"statusPrey","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percentFeeAdminBite","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"balanceMarketing","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nickname","type":"string"}],"name":"createFish","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"percentFeeFishesOutput","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_nickname","type":"string"}],"name":"updateNickname","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"percentFeeFishesInput","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percentFeeFishesBite","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"percentFeeMarketingInput","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"maxGasPrice","type":"uint256"}],"name":"UpdateMaxGasPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"WithdrawalMarketing","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"WithdrawalOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"genes","type":"uint64"},{"indexed":false,"name":"nickname","type":"string"},{"indexed":false,"name":"birthTime","type":"uint64"},{"indexed":false,"name":"share","type":"uint256"},{"indexed":false,"name":"feedValue","type":"uint256"},{"indexed":false,"name":"eatenValue","type":"uint256"}],"name":"CreateFish","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"share","type":"uint256"},{"indexed":false,"name":"feedValue","type":"uint256"},{"indexed":false,"name":"eatenValue","type":"uint256"}],"name":"FeedFish","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"share","type":"uint256"},{"indexed":false,"name":"withdrawal","type":"uint256"}],"name":"DestroyFish","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenId","type":"uint256"},{"indexed":true,"name":"preyId","type":"uint256"},{"indexed":false,"name":"hunterShare","type":"uint256"},{"indexed":false,"name":"hunterFeedValue","type":"uint256"},{"indexed":false,"name":"preyShare","type":"uint256"},{"indexed":false,"name":"preyFeedValue","type":"uint256"}],"name":"BiteFish","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"nickname","type":"string"}],"name":"UpdateNickname","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"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
60806040523480156200001157600080fd5b5060008054600160a060020a0319163317808255604051600160a060020a039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3620000746405d21dba006401000000006200007a810204565b620000f8565b6200008d640100000000620000e7810204565b15156200009957600080fd5b6402540be400811015620000ac57600080fd5b60098190556040805182815290517fea062c96f5ff8fb5dea315616f398d3a9eaed6a22c0dfc1c9434f762fba8e51c9181900360200190a150565b600054600160a060020a0316331490565b6126d180620001086000396000f3006080604052600436106101e25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101e757806307b1dec2146102715780630827f2981461029d5780630e8a8e8c146102c35780631051db34146102db57806313624cb6146102f0578063154972121461032257806318160ddd146103fa5780631b2da5121461042157806326644ccf146104365780632e2764991461045157806339a1121d146104665780633a98ef39146104915780633d98aa66146104a65780633de39c11146104be57806340a0791714610466578063441130d5146104d357806348146341146104eb5780634b64fcd1146105035780635dea3aaa1461051b57806362d09cfa1461053f5780636352211e1461055457806370a0823114610588578063886b0905146105a95780638da5cb5b146105be5780638f32d59b146105d35780639326f04e146105e857806395d89b41146105f3578063971fbf8614610608578063995336f514610620578063a9059cbb14610635578063b2ef10ec14610659578063be3791bb1461066e578063c2381ab114610466578063c68905b9146106ba578063c8019bf314610466578063d86fdd2414610718578063dd6ab34f14610466578063f2fde38b1461072d575b600080fd5b3480156101f357600080fd5b506101fc61074e565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023657818101518382015260200161021e565b50505050905090810190601f1680156102635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027d57600080fd5b50610289600435610785565b604080519115158252519081900360200190f35b3480156102a957600080fd5b506102c1600160a060020a03600435166024356107f6565b005b3480156102cf57600080fd5b50610289600435610899565b3480156102e757600080fd5b50610289610b76565b3480156102fc57600080fd5b50610305610b7c565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561032e57600080fd5b5061033a600435610b83565b6040805167ffffffffffffffff808b168252888116928201929092528682166060820152908516608082015260a0810184905260c0810183905260e0810182905261010060208083018281528a519284019290925289516101208401918b019080838360005b838110156103b85781810151838201526020016103a0565b50505050905090810190601f1680156103e55780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b34801561040657600080fd5b5061040f610d62565b60408051918252519081900360200190f35b34801561042d57600080fd5b5061040f610d68565b34801561044257600080fd5b50610289600435602435610d6e565b34801561045d57600080fd5b5061040f6114cd565b34801561047257600080fd5b5061047b6114d8565b6040805160ff9092168252519081900360200190f35b34801561049d57600080fd5b5061040f6114dd565b3480156104b257600080fd5b506102896004356114e3565b3480156104ca57600080fd5b5061040f611516565b3480156104df57600080fd5b5061040f60043561151c565b3480156104f757600080fd5b506102c1600435611552565b34801561050f57600080fd5b5061040f6004356115b2565b34801561052757600080fd5b506102c1600160a060020a03600435166024356115e2565b34801561054b57600080fd5b50610305611680565b34801561056057600080fd5b5061056c600435611687565b60408051600160a060020a039092168252519081900360200190f35b34801561059457600080fd5b5061040f600160a060020a03600435166116a2565b3480156105b557600080fd5b5061040f6116bd565b3480156105ca57600080fd5b5061056c6116c3565b3480156105df57600080fd5b506102896116d2565b6102896004356116e3565b3480156105ff57600080fd5b506101fc611ab5565b34801561061457600080fd5b50610289600435611aec565b34801561062c57600080fd5b5061047b611b3e565b34801561064157600080fd5b50610289600160a060020a0360043516602435611b43565b34801561066557600080fd5b5061040f611bb6565b6040805160206004803580820135601f810184900484028501840190955284845261040f943694929360249392840191908190840183828082843750949750611bbc9650505050505050565b3480156106c657600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526102899583359536956044949193909101919081908401838280828437509497506121209650505050505050565b34801561072457600080fd5b5061047b612257565b34801561073957600080fd5b506102c1600160a060020a036004351661225c565b60408051808201909152600b81527f4b696c6c466973682e696f000000000000000000000000000000000000000000602082015281565b60006107df6202a30067ffffffffffffffff166001848154811015156107a757fe5b6000918252602090912060069091020160020154700100000000000000000000000000000000900467ffffffffffffffff169061227b565b42116107ed575060006107f1565b5060015b919050565b6107fe6116d2565b151561080957600080fd5b60085461081c908263ffffffff61229416565b600855604080518281529051600160a060020a038416917f9c102ab3c025af7fe22cf5954a2921e1d1960b6adb6b8444e912b5a6724f590e919081900360200190a2604051600160a060020a0383169082156108fc029083906000818181858888f19350505050158015610894573d6000803e3d6000fd5b505050565b60008181526002602052604081205481908190819081908690600160a060020a031633146108ff576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612666833981519152604482015290519081900360640190fd5b6009543a1115610947576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612686833981519152604482015290519081900360640190fd5b600180548890811061095557fe5b90600052602060002090600602016003015494506109728561151c565b9350610996606461098a86600563ffffffff6122ab16565b9063ffffffff6122d916565b92506109ae606461098a86600563ffffffff6122ab16565b91506109d0826109c4868663ffffffff61229416565b9063ffffffff61229416565b6005549094506109e6908663ffffffff61229416565b6005556001805460009190899081106109fb57fe5b9060005260206000209060060201600301819055506000600188815481101515610a2157fe5b9060005260206000209060060201600401819055506020604051908101604052806000815250600188815481101515610a5657fe5b90600052602060002090600602016001019080519060200190610a7a92919061255f565b5042600188815481101515610a8b57fe5b906000526020600020906006020160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550610ace336000896122fc565b50600754610ae2908363ffffffff61227b16565b600755600654610afe9083906109c4908763ffffffff61229416565b6006556040805186815260208101869052815189927faeed33eb41bb66d2b073c8873adb2370f3bacd0bc9166e555bd259c4c5682e17928290030190a2604051339085156108fc029086906000818181858888f19350505050158015610b68573d6000803e3d6000fd5b506001979650505050505050565b60015b90565b62093a8081565b60006060600080600080600080610b986125dd565b600180548b908110610ba657fe5b6000918252602091829020604080516101008082018352600694909402909201805467ffffffffffffffff168352600180820180548451600293821615909702600019011691909104601f8101879004870286018701909352828552929490938582019390929091830182828015610c5f5780601f10610c3457610100808354040283529160200191610c5f565b820191906000526020600020905b815481529060010190602001808311610c4257829003601f168201915b505050505081526020016002820160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016002820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016002820160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016003820154815260200160048201548152602001600582015481525050905080600001519850806020015197508060400151965080606001519550806080015194508060a0015193508060c0015192508060e00151915050919395975091939597565b60045490565b60075481565b600082815260026020526040812054819081908190819081908890600160a060020a03163314610dd6576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612666833981519152604482015290519081900360640190fd5b6009543a1115610e1e576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612686833981519152604482015290519081900360640190fd5b610e27886114e3565b1515610e7d576040805160e560020a62461bcd02815260206004820152600960248201527f7072657920646561640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610e8688611aec565b1515610edc576040805160e560020a62461bcd02815260206004820152600860248201527f6e6f742070726579000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b610ee589610785565b1515610f3b576040805160e560020a62461bcd02815260206004820152600a60248201527f6e6f742068756e74657200000000000000000000000000000000000000000000604482015290519081900360640190fd5b600180548a908110610f4957fe5b906000526020600020906006020160030154600189815481101515610f6a57fe5b906000526020600020906006020160030154101515610fd3576040805160e560020a62461bcd02815260206004820152600d60248201527f746f6f206d756368207072657900000000000000000000000000000000000000604482015290519081900360640190fd5b610feb662386f26fc10000600263ffffffff6122ab16565b61101460018a815481101515610ffd57fe5b90600052602060002090600602016003015461151c565b101561109857600180548990811061102857fe5b906000526020600020906006020160030154955061105061104889611687565b60008a6122fc565b50604080516020810190915260008152600180548a90811061106e57fe5b9060005260206000209060060201600101908051906020019061109292919061255f565b50611100565b6110d4606461098a600560ff1660018c8154811015156110b457fe5b9060005260206000209060060201600301546122ab90919063ffffffff16565b9550662386f26fc100006110e78761151c565b1015611100576110fd662386f26fc100006115b2565b95505b611116606461098a88601463ffffffff6122ab16565b935061112e606461098a88600a63ffffffff6122ab16565b9250611144836109c4888763ffffffff61229416565b94506111798660018a81548110151561115957fe5b90600052602060002090600602016003015461229490919063ffffffff16565b600180548a90811061118757fe5b9060005260206000209060060201600301819055506111cf8560018b8154811015156111af57fe5b90600052602060002090600602016003015461227b90919063ffffffff16565b600180548b9081106111dd57fe5b90600052602060002090600602016003018190555061121b60018981548110151561120457fe5b9060005260206000209060060201600301546123d8565b600180548a90811061122957fe5b9060005260206000209060060201600401819055504260018981548110151561124e57fe5b906000526020600020906006020160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055504260018a81548110151561129557fe5b906000526020600020906006020160020160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506112d58561151c565b91506001898154811015156112e657fe5b90600052602060002090600602016004015482101561135a576113328260018b81548110151561131257fe5b90600052602060002090600602016004015461229490919063ffffffff16565b600180548b90811061134057fe5b9060005260206000209060060201600401819055506113d7565b61136c60018a81548110151561120457fe5b600180548b90811061137a57fe5b9060005260206000209060060201600401819055504260018a81548110151561139f57fe5b906000526020600020906006020160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b6113e08361151c565b91506113fb836109c48660055461229490919063ffffffff16565b600555600754611411908363ffffffff61227b16565b600755600654611427908363ffffffff61229416565b60068190555087897fd071e263fc1156e072a058e9814dc0de287e87047c6ee258276dfa320531340f8760018d81548110151561146057fe5b9060005260206000209060060201600401548a60018e81548110151561148257fe5b9060005260206000209060060201600401546040518085815260200184815260200183815260200182815260200194505050505060405180910390a350600198975050505050505050565b662386f26fc1000081565b600581565b60055481565b60006001828154811015156114f457fe5b906000526020600020906006020160030154600014156107ed575060006107f1565b60095481565b600060055460001415611531575060006107f1565b61154c60055461098a600654856122ab90919063ffffffff16565b92915050565b61155a6116d2565b151561156557600080fd5b6402540be40081101561157757600080fd5b60098190556040805182815290517fea062c96f5ff8fb5dea315616f398d3a9eaed6a22c0dfc1c9434f762fba8e51c9181900360200190a150565b6000600654600014156115c7575060006107f1565b61154c60065461098a600554856122ab90919063ffffffff16565b6115ea6116d2565b15156115f557600080fd5b600754611608908263ffffffff61229416565b600755604080518281529051600160a060020a038416917fb2551b09f7896063de17573e3bdb70357b69aac31da0af0c084cb74411470ea6919081900360200190a2604051600160a060020a0383169082156108fc029083906000818181858888f19350505050158015610894573d6000803e3d6000fd5b6202a30081565b600090815260026020526040902054600160a060020a031690565b600160a060020a031660009081526003602052604090205490565b60065481565b600054600160a060020a031690565b600054600160a060020a0316331490565b600080808080662386f26fc10000341015611748576040805160e560020a62461bcd02815260206004820152601660248201527f6d73672e76616c7565203c206d696e5061796d656e7400000000000000000000604482015290519081900360640190fd5b6009543a1115611790576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612686833981519152604482015290519081900360640190fd5b611799866114e3565b15156117ef576040805160e560020a62461bcd02815260206004820152600960248201527f6669736820646561640000000000000000000000000000000000000000000000604482015290519081900360640190fd5b611805606461098a34600563ffffffff6122ab16565b935061181d606461098a34600563ffffffff6122ab16565b9250611833836109c4348763ffffffff61229416565b915061185a8361184e8460065461227b90919063ffffffff16565b9063ffffffff61227b16565b600655600854611870908563ffffffff61227b16565b60085561187c826123fc565b600554909150611892908263ffffffff61227b16565b600555600180546118a9918391899081106111af57fe5b60018054889081106118b757fe5b9060005260206000209060060201600301819055506118ff826001888154811015156118df57fe5b90600052602060002090600602016005015461227b90919063ffffffff16565b600180548890811061190d57fe5b6000918252602090912060056006909202010155600180548790811061192f57fe5b9060005260206000209060060201600401548210156119835761195b8260018881548110151561131257fe5b600180548890811061196957fe5b906000526020600020906006020160040181905550611a47565b61199560018781548110151561120457fe5b60018054889081106119a357fe5b906000526020600020906006020160040181905550426001878154811015156119c857fe5b906000526020600020906006020160020160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555042600187815481101515611a0f57fe5b906000526020600020906006020160020160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b857fb0111ea60ca04152a33cd667fbc2ae1c91a04c12fd64762478e4bdc096ba0f5582600189815481101515611a7957fe5b6000918252602091829020600460069092020101546040805193845291830152818101869052519081900360600190a250600195945050505050565b60408051808201909152600481527f4649534800000000000000000000000000000000000000000000000000000000602082015281565b60006107df62093a8067ffffffffffffffff16600184815481101515611b0e57fe5b600091825260209091206006909102016002015468010000000000000000900467ffffffffffffffff169061227b565b600a81565b6000818152600260205260408120548290600160a060020a03163314611ba1576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612666833981519152604482015290519081900360640190fd5b611bac3385856122fc565b91505b5092915050565b60085481565b6000806000806000611bcc6125dd565b6000662386f26fc10000341015611c2d576040805160e560020a62461bcd02815260206004820152601660248201527f6d73672e76616c7565203c206d696e5061796d656e7400000000000000000000604482015290519081900360640190fd5b6009543a1115611c75576040805160e560020a62461bcd0281526020600482015260176024820152600080516020612686833981519152604482015290519081900360640190fd5b611c8b606461098a34600563ffffffff6122ab16565b9550611ca3606461098a34600563ffffffff6122ab16565b9450611cb9856109c4348963ffffffff61229416565b9350611cd48561184e8660065461227b90919063ffffffff16565b600655600854611cea908763ffffffff61227b16565b600855611cf6846123fc565b600554909350611d0c908463ffffffff61227b16565b60055560408051610100810190915280611d2461243b565b67ffffffffffffffff1681526020018981526020014267ffffffffffffffff1681526020014267ffffffffffffffff1681526020014267ffffffffffffffff168152602001848152602001611d78856123d8565b81526020908101869052600180548082018083556000839052845160069092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68101805467ffffffffffffffff90941667ffffffffffffffff19909416939093178355858501518051969850939591948894611e1c937fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf79093019291019061255f565b5060408201516002820180546060850151608086015167ffffffffffffffff1990921667ffffffffffffffff948516176fffffffffffffffff0000000000000000191668010000000000000000918516919091021777ffffffffffffffff000000000000000000000000000000001916700100000000000000000000000000000000939091169290920291909117905560a0820151600382015560c082015160048083019190915560e090920151600590910155549190039150611ee190600161227b565b60045533600090815260036020526040902054611f0590600163ffffffff61227b16565b336000818152600360209081526040808320949094558482526002905291909120805473ffffffffffffffffffffffffffffffffffffffff191690911790556001805482917f2846c5aeb373b9593f801b54d39b59280e10d7324c52954e4d2e6e84436936029183908110611f7657fe5b60009182526020909120600690910201546001805467ffffffffffffffff9092169185908110611fa257fe5b9060005260206000209060060201600101600185815481101515611fc257fe5b60009182526020909120600260069092020101546001805467ffffffffffffffff9092169187908110611ff157fe5b90600052602060002090600602016003015460018781548110151561201257fe5b6000918252602091829020600460069092020101546040805167ffffffffffffffff8089168252861691810191909152606081018490526080810182905260a081018d905260c092810183815286546002600019610100600184161502019091160493820184905291928d929060e0830190889080156120d35780601f106120a8576101008083540402835291602001916120d3565b820191906000526020600020905b8154815290600101906020018083116120b657829003601f168201915b505097505050505050505060405180910390a2604051819033906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4979650505050505050565b6000828152600260205260408120548390600160a060020a0316331461217e576040805160e560020a62461bcd02815260206004820152600f6024820152600080516020612666833981519152604482015290519081900360640190fd5b8260018581548110151561218e57fe5b906000526020600020906006020160010190805190602001906121b292919061255f565b50837fb1a15f4baa3f2b718bc7cbb4ae63bec6b3d788ffa9e6f350f700fe41df8d8918846040518080602001828103825283818151815260200191508051906020019080838360005b838110156122135781810151838201526020016121fb565b50505050905090810190601f1680156122405780820380516001836020036101000a031916815260200191505b509250505060405180910390a25060019392505050565b601481565b6122646116d2565b151561226f57600080fd5b612278816124e2565b50565b60008282018381101561228d57600080fd5b9392505050565b600080838311156122a457600080fd5b5050900390565b6000808315156122be5760009150611baf565b508282028284828115156122ce57fe5b041461228d57600080fd5b6000808083116122e857600080fd5b82848115156122f357fe5b04949350505050565b600160a060020a03821660009081526003602052604081205461232690600163ffffffff61227b16565b600160a060020a03808516600090815260036020526040808220939093559086168152205461235c90600163ffffffff61229416565b600160a060020a0385811660008181526003602090815260408083209590955586825260029052838120805473ffffffffffffffffffffffffffffffffffffffff19169388169384179055925185937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a45060019392505050565b6000806123e48361151c565b905061228d606461098a83600563ffffffff6122ab16565b6000600554600014156124105750806107f1565b60065461154c90612427908463ffffffff61229416565b60055461098a90859063ffffffff6122ab16565b600064174876e800426005546006546040516020018084815260200183815260200182815260200193505050506040516020818303038152906040526040518082805190602001908083835b602083106124a65780518252601f199092019160209182019101612487565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120925050508115156124dc57fe5b06905090565b600160a060020a03811615156124f757600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125a057805160ff19168380011785556125cd565b828001600101855582156125cd579182015b828111156125cd5782518255916020019190600101906125b2565b506125d992915061264b565b5090565b61010060405190810160405280600067ffffffffffffffff16815260200160608152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681526020016000815260200160008152602001600081525090565b610b7991905b808211156125d9576000815560010161265156006e6f7420746f6b656e206f776e65720000000000000000000000000000000000676173207072696365203e206d61784761735072696365000000000000000000a165627a7a723058203a46efdce5992d2184b37a1a818176bd3397e3ac33354fae2dbfaab136e8ff220029


   Swarm Source:
bzzr://3a46efdce5992d2184b37a1a818176bd3397e3ac33354fae2dbfaab136e8ff22
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.