ETH Price: $2,044.78 (-0.88%)

Token

 

Overview

Max Total Supply

0

Holders

0

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
LastHero

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-11-30
*/

pragma solidity 0.4.25;

/**
* ETH CRYPTOCURRENCY DISTRIBUTION PROJECT
* 
* Web              - https://333eth.io
* 
* Twitter          - https://twitter.com/333eth_io
* 
* Telegram_channel - https://t.me/Ethereum333
* 
* EN  Telegram_chat: https://t.me/Ethereum333_chat_en
* 
* RU  Telegram_chat: https://t.me/Ethereum333_chat_ru
* 
* KOR Telegram_chat: https://t.me/Ethereum333_chat_kor
* 
* Email:             mailto:support(at sign)333eth.io
* 
* 
* 
* When the timer reaches zero then latest bettor takes the bank. Each bet restart a timer again.
* 
* Bet in 1 ETH - the timer turns on for 3 minutes 33 seconds.
* 
* Bet 0.1ETH - the timer turns on for 6 minutes 33 seconds.
* 
* Bet 0.01 ETH - the timer turns on for 9 minutes 33 seconds.
* You need to send such bet`s amounts. If more was sent, then contract will return the difference to the wallet. For example, sending 0.99 ETH system will perceive as a contribution to 0.1 ETH and difference 0.89
* 
* The game does not have a fraudulent Ponzi scheme. No fraudulent referral programs.
* 
* In the contract of the game realized the refusal of ownership. It is impossible to stop the flow of bets. Bet from smart contracts is prohibited.
* 
* Eth distribution:
* 50% paid to the winner.
* 40% is transferred to the next level of the game with the same rules and so on.
* 10% commission (7.5% of them to shareholders, 2.5% of the administration).
* 
* RECOMMENDED GAS LIMIT: 100000
* 
* RECOMMENDED GAS PRICE: https://ethgasstation.info/
*/


library Zero {
  function requireNotZero(address addr) internal pure {
    require(addr != address(0), "require not zero address");
  }

  function requireNotZero(uint val) internal pure {
    require(val != 0, "require not zero value");
  }

  function notZero(address addr) internal pure returns(bool) {
    return !(addr == address(0));
  }

  function isZero(address addr) internal pure returns(bool) {
    return addr == address(0);
  }

  function isZero(uint a) internal pure returns(bool) {
    return a == 0;
  }

  function notZero(uint a) internal pure returns(bool) {
    return a != 0;
  }
}


library Percent {
  // Solidity automatically throws when dividing by 0
  struct percent {
    uint num;
    uint den;
  }
  
  // storage
  function mul(percent storage p, uint a) internal view returns (uint) {
    if (a == 0) {
      return 0;
    }
    return a*p.num/p.den;
  }

  function div(percent storage p, uint a) internal view returns (uint) {
    return a/p.num*p.den;
  }

  function sub(percent storage p, uint a) internal view returns (uint) {
    uint b = mul(p, a);
    if (b >= a) {
      return 0;
    }
    return a - b;
  }

  function add(percent storage p, uint a) internal view returns (uint) {
    return a + mul(p, a);
  }

  function toMemory(percent storage p) internal view returns (Percent.percent memory) {
    return Percent.percent(p.num, p.den);
  }

  // memory 
  function mmul(percent memory p, uint a) internal pure returns (uint) {
    if (a == 0) {
      return 0;
    }
    return a*p.num/p.den;
  }

  function mdiv(percent memory p, uint a) internal pure returns (uint) {
    return a/p.num*p.den;
  }

  function msub(percent memory p, uint a) internal pure returns (uint) {
    uint b = mmul(p, a);
    if (b >= a) {
      return 0;
    }
    return a - b;
  }

  function madd(percent memory p, uint a) internal pure returns (uint) {
    return a + mmul(p, a);
  }
}

library Address {
  function toAddress(bytes source) internal pure returns(address addr) {
    // solium-disable security/no-inline-assembly
    assembly { addr := mload(add(source,0x14)) }
    return addr;
  }

  function isNotContract(address addr) internal view returns(bool) {
    // solium-disable security/no-inline-assembly
    uint length;
    assembly { length := extcodesize(addr) }
    return length == 0;
  }
}


contract Accessibility {
  address private owner;
  modifier onlyOwner() {
    require(msg.sender == owner, "access denied");
    _;
  }

  constructor() public {
    owner = msg.sender;
  }

  function disown() internal {
    delete owner;
  }
}

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


library Timer {
  using SafeMath for uint;
  struct timer {
    uint duration;
    uint startup;
  }
  function start(timer storage t, uint duration) internal {
    t.startup = now;
    t.duration = duration;
  }

  function timeLeft(timer storage t) internal view returns (uint) {
    if (now >= t.startup.add(t.duration)) {
      return 0;
    }
    return (t.startup+t.duration).sub(now);
  }
}


library Bet {
  struct bet {
    address bettor;
    uint amount;
    uint excess;
    uint duration;
  }

  function New(address bettor, uint value) internal pure returns(bet memory b ) {
    
    (uint[3] memory vals, uint[3] memory durs) = bets();
    if (value >= vals[0]) {
      b.amount = vals[0];
      b.duration = durs[0];
    } else if (vals[1] <= value && value < vals[0]) {
      b.amount = vals[1];
      b.duration = durs[1];
    } else if (vals[2] <= value && value < vals[1]) {
      b.amount = vals[2];
      b.duration = durs[2];
    } else {
      return b;
    }

    b.bettor = bettor;
    b.excess = value - b.amount;
  }

  function bets() internal pure returns(uint[3] memory vals, uint[3] memory durs) {
    (vals[0], vals[1], vals[2]) = (1 ether, 0.1 ether, 0.01 ether); 
    (durs[0], durs[1], durs[2]) = (3 minutes + 33 seconds, 6 minutes + 33 seconds, 9 minutes + 33 seconds);
  }

  function transferExcess(bet memory b) internal {
    b.bettor.transfer(b.excess);
  }
}



contract LastHero is Accessibility {
  using Percent for Percent.percent;
  using Timer for Timer.timer;
  using Address for address;
  using Bet for Bet.bet;
  using Zero for *;
  
  Percent.percent private m_bankPercent = Percent.percent(50,100);
  Percent.percent private m_nextLevelPercent = Percent.percent(40,100);
  Percent.percent private m_adminsPercent = Percent.percent(10,100);
  
  uint public nextLevelBankAmount;
  uint public bankAmount;
  uint public level;
  address public bettor;
  address public adminsAddress;
  Timer.timer private m_timer;

  modifier notFromContract() {
    require(msg.sender.isNotContract(), "only externally accounts");
    _;
  }

  event LogSendExcessOfEther(address indexed addr, uint excess, uint when);
  event LogNewWinner(address indexed addr, uint indexed level, uint amount, uint when);
  event LogNewLevel(uint indexed level, uint bankAmount, uint when);
  event LogNewBet(address indexed addr, uint indexed amount, uint duration, uint indexed level, uint when);
  event LogDisown(uint when);


  constructor() public {
    level = 1;
    emit LogNewLevel(level, address(this).balance, now);
    adminsAddress = msg.sender;
    m_timer.duration = uint(-1);
  }

  function() public payable {
    doBet();
  }

  function doDisown() public onlyOwner {
    disown();
    emit LogDisown(now);
  }

  function setAdminsAddress(address addr) public onlyOwner {
    addr.requireNotZero();
    adminsAddress = addr;
  }

  function bankPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_bankPercent.num, m_bankPercent.den);
  }

  function nextLevelPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_nextLevelPercent.num, m_nextLevelPercent.den);
  }

  function adminsPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_adminsPercent.num, m_adminsPercent.den);
  }

  function timeLeft() public view returns(uint duration) {
    duration = m_timer.timeLeft();
  }

  function timerInfo() public view returns(uint startup, uint duration) {
    (startup, duration) = (m_timer.startup, m_timer.duration);
  }

  function durationForBetAmount(uint betAmount) public view returns(uint duration) {
    Bet.bet memory bet = Bet.New(msg.sender, betAmount);
    duration = bet.duration;
  }

  function availableBets() public view returns(uint[3] memory vals, uint[3] memory durs) {
    (vals, durs) = Bet.bets();
  }

  function doBet() public payable notFromContract {

    // send ether to bettor if needed
    if (m_timer.timeLeft().isZero()) {
      bettor.transfer(bankAmount);
      emit LogNewWinner(bettor, level, bankAmount, now);

      bankAmount = nextLevelBankAmount;
      nextLevelBankAmount = 0;
      level++;
      emit LogNewLevel(level, bankAmount, now);
    }

    Bet.bet memory bet = Bet.New(msg.sender, msg.value);
    bet.amount.requireNotZero();

    // send bet`s excess of ether if needed
    if (bet.excess.notZero()) {
      bet.transferExcess();
      emit LogSendExcessOfEther(bet.bettor, bet.excess, now);
    }

    // commision
    nextLevelBankAmount += m_nextLevelPercent.mul(bet.amount);
    bankAmount += m_bankPercent.mul(bet.amount);
    adminsAddress.send(m_adminsPercent.mul(bet.amount));
  
    m_timer.start(bet.duration);
    bettor = bet.bettor;

    emit LogNewBet(bet.bettor, bet.amount, bet.duration, level, now);
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"bankPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timeLeft","outputs":[{"name":"duration","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doBet","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"timerInfo","outputs":[{"name":"startup","type":"uint256"},{"name":"duration","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"availableBets","outputs":[{"name":"vals","type":"uint256[3]"},{"name":"durs","type":"uint256[3]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"level","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextLevelPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextLevelBankAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminsPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAdminsAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bettor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bankAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"betAmount","type":"uint256"}],"name":"durationForBetAmount","outputs":[{"name":"duration","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doDisown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"excess","type":"uint256"},{"indexed":false,"name":"when","type":"uint256"}],"name":"LogSendExcessOfEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":true,"name":"level","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNewWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"level","type":"uint256"},{"indexed":false,"name":"bankAmount","type":"uint256"},{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNewLevel","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":true,"name":"amount","type":"uint256"},{"indexed":false,"name":"duration","type":"uint256"},{"indexed":true,"name":"level","type":"uint256"},{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNewBet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"}],"name":"LogDisown","type":"event"}]

60326080819052606460a08190526001919091556002819055602860c081905260e08290526003556004819055610140604052600a61010081905261012082905260055560065534801561005257600080fd5b5060008054600160a060020a0319163317905560016009819055604080513031815242602082015281517f8e341c1c92d534c5f272ffff664a270a180cc332c0389592cfcbab9ceca1e4a5929181900390910190a2600b8054600160a060020a03191633179055600019600c55610b16806100ce6000396000f3006080604052600436106100da5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630dc2649281146100e45780631300a6d11461011257806313fff718146100da5780632150097f146101395780632c6127c71461014e57806362d2c555146101c75780636fd5ae15146101f857806387ba67be1461020d5780639059b7b61461022257806395a23c3a14610237578063984d4a931461024c578063afe9d22f1461026d578063b42a275e14610282578063badf3de914610297578063fc7c41af146102af575b6100e26102c4565b005b3480156100f057600080fd5b506100f96105ba565b6040805192835260208301919091528051918290030190f35b34801561011e57600080fd5b506101276105c4565b60408051918252519081900360200190f35b34801561014557600080fd5b506100f96105d5565b34801561015a57600080fd5b506101636105df565b6040518083606080838360005b83811015610188578181015183820152602001610170565b5050505090500182600360200280838360005b838110156101b357818101518382015260200161019b565b505050509050019250505060405180910390f35b3480156101d357600080fd5b506101dc610600565b60408051600160a060020a039092168252519081900360200190f35b34801561020457600080fd5b5061012761060f565b34801561021957600080fd5b506100f9610615565b34801561022e57600080fd5b5061012761061f565b34801561024357600080fd5b506100f9610625565b34801561025857600080fd5b506100e2600160a060020a036004351661062f565b34801561027957600080fd5b506101dc6106d2565b34801561028e57600080fd5b506101276106e1565b3480156102a357600080fd5b506101276004356106e7565b3480156102bb57600080fd5b506100e2610706565b6102cc610a99565b6102d5336107a5565b151561032b576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b61033d610338600c6107aa565b6107f2565b1561042357600a54600854604051600160a060020a039092169181156108fc0291906000818181858888f1935050505015801561037e573d6000803e3d6000fd5b50600954600a54600854604080519182524260208301528051600160a060020a03909316927f35cffdaee15eab992eef99bafcff392170910bfa84987a4ea6100b40a7f83aa39281900390910190a36007805460088190556000909155600980546001019081905560408051928352426020840152805191927f8e341c1c92d534c5f272ffff664a270a180cc332c0389592cfcbab9ceca1e4a5929081900390910190a25b61042d33346107f6565b905061043c81602001516108bc565b6104498160400151610916565b156104a4576104578161091b565b805160408083015181519081524260208201528151600160a060020a03909316927fb60e708352ee445685890105302f33d9455095a8800cc9f08462222baeb9f86c929181900390910190a25b60208101516104bb9060039063ffffffff61095c16565b60078054909101905560208101516104db9060019063ffffffff61095c16565b600880549091019055600b546020820151600160a060020a03909116906108fc9061050e9060059063ffffffff61095c16565b6040518115909202916000818181858888f1505050606083015161053c9250600c915063ffffffff61098916565b8051600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169182179055600954602080840151606085015160408051918252429382019390935282519394919391927f96eb29cbf6c6d458440df9b910e3e403851ccda95d8a5f887b1f08b15157694792918290030190a450565b6001546002549091565b60006105d0600c6107aa565b905090565b600d54600c549091565b6105e7610acb565b6105ef610acb565b6105f7610993565b90939092509050565b600b54600160a060020a031681565b60095481565b6003546004549091565b60075481565b6005546006549091565b600054600160a060020a03163314610691576040805160e560020a62461bcd02815260206004820152600d60248201527f6163636573732064656e69656400000000000000000000000000000000000000604482015290519081900360640190fd5b6106a381600160a060020a03166109ea565b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a54600160a060020a031681565b60085481565b60006106f1610a99565b6106fb33846107f6565b606001519392505050565b600054600160a060020a03163314610768576040805160e560020a62461bcd02815260206004820152600d60248201527f6163636573732064656e69656400000000000000000000000000000000000000604482015290519081900360640190fd5b610770610a4a565b6040805142815290517f5189687a7ec9d4aebe2f548f952ffbbad19e4cd545c4a05b5e2369cd272dd5519181900360200190a1565b3b1590565b805460018201546000916107c4919063ffffffff610a6916565b42106107d2575060006107ed565b815460018301546107ea91014263ffffffff610a8216565b90505b919050565b1590565b6107fe610a99565b610806610acb565b61080e610acb565b610816610993565b81519193509150841061083d57815160208401528060005b6020020151606084015261089b565b602082015184108015906108515750815184105b15610868576020808301519084015280600161082e565b6040820151841080159061087f5750602082015184105b15610896576040820151602084015280600261082e565b6108b4565b600160a060020a03851683526020830151840360408401525b505092915050565b801515610913576040805160e560020a62461bcd02815260206004820152601660248201527f72657175697265206e6f74207a65726f2076616c756500000000000000000000604482015290519081900360640190fd5b50565b151590565b80516040808301519051600160a060020a039092169181156108fc0291906000818181858888f19350505050158015610958573d6000803e3d6000fd5b5050565b600081151561096d57506000610983565b60018301548354830281151561097f57fe5b0490505b92915050565b4260018301559055565b61099b610acb565b6109a3610acb565b662386f26fc1000060408084019190915267016345785d8a0000602080850191909152670de0b6b3a7640000845261023d918301919091526101899082015260d581529091565b600160a060020a0381161515610913576040805160e560020a62461bcd02815260206004820152601860248201527f72657175697265206e6f74207a65726f20616464726573730000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600082820183811015610a7b57600080fd5b9392505050565b60008083831115610a9257600080fd5b5050900390565b6080604051908101604052806000600160a060020a031681526020016000815260200160008152602001600081525090565b60606040519081016040528060039060208202803883395091929150505600a165627a7a72305820412745eecfbc5fac5341bfff00826f6ef041063035f2f49d4587f55e52600c630029

Deployed Bytecode

0x6080604052600436106100da5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630dc2649281146100e45780631300a6d11461011257806313fff718146100da5780632150097f146101395780632c6127c71461014e57806362d2c555146101c75780636fd5ae15146101f857806387ba67be1461020d5780639059b7b61461022257806395a23c3a14610237578063984d4a931461024c578063afe9d22f1461026d578063b42a275e14610282578063badf3de914610297578063fc7c41af146102af575b6100e26102c4565b005b3480156100f057600080fd5b506100f96105ba565b6040805192835260208301919091528051918290030190f35b34801561011e57600080fd5b506101276105c4565b60408051918252519081900360200190f35b34801561014557600080fd5b506100f96105d5565b34801561015a57600080fd5b506101636105df565b6040518083606080838360005b83811015610188578181015183820152602001610170565b5050505090500182600360200280838360005b838110156101b357818101518382015260200161019b565b505050509050019250505060405180910390f35b3480156101d357600080fd5b506101dc610600565b60408051600160a060020a039092168252519081900360200190f35b34801561020457600080fd5b5061012761060f565b34801561021957600080fd5b506100f9610615565b34801561022e57600080fd5b5061012761061f565b34801561024357600080fd5b506100f9610625565b34801561025857600080fd5b506100e2600160a060020a036004351661062f565b34801561027957600080fd5b506101dc6106d2565b34801561028e57600080fd5b506101276106e1565b3480156102a357600080fd5b506101276004356106e7565b3480156102bb57600080fd5b506100e2610706565b6102cc610a99565b6102d5336107a5565b151561032b576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792065787465726e616c6c79206163636f756e74730000000000000000604482015290519081900360640190fd5b61033d610338600c6107aa565b6107f2565b1561042357600a54600854604051600160a060020a039092169181156108fc0291906000818181858888f1935050505015801561037e573d6000803e3d6000fd5b50600954600a54600854604080519182524260208301528051600160a060020a03909316927f35cffdaee15eab992eef99bafcff392170910bfa84987a4ea6100b40a7f83aa39281900390910190a36007805460088190556000909155600980546001019081905560408051928352426020840152805191927f8e341c1c92d534c5f272ffff664a270a180cc332c0389592cfcbab9ceca1e4a5929081900390910190a25b61042d33346107f6565b905061043c81602001516108bc565b6104498160400151610916565b156104a4576104578161091b565b805160408083015181519081524260208201528151600160a060020a03909316927fb60e708352ee445685890105302f33d9455095a8800cc9f08462222baeb9f86c929181900390910190a25b60208101516104bb9060039063ffffffff61095c16565b60078054909101905560208101516104db9060019063ffffffff61095c16565b600880549091019055600b546020820151600160a060020a03909116906108fc9061050e9060059063ffffffff61095c16565b6040518115909202916000818181858888f1505050606083015161053c9250600c915063ffffffff61098916565b8051600a805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169182179055600954602080840151606085015160408051918252429382019390935282519394919391927f96eb29cbf6c6d458440df9b910e3e403851ccda95d8a5f887b1f08b15157694792918290030190a450565b6001546002549091565b60006105d0600c6107aa565b905090565b600d54600c549091565b6105e7610acb565b6105ef610acb565b6105f7610993565b90939092509050565b600b54600160a060020a031681565b60095481565b6003546004549091565b60075481565b6005546006549091565b600054600160a060020a03163314610691576040805160e560020a62461bcd02815260206004820152600d60248201527f6163636573732064656e69656400000000000000000000000000000000000000604482015290519081900360640190fd5b6106a381600160a060020a03166109ea565b600b805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a54600160a060020a031681565b60085481565b60006106f1610a99565b6106fb33846107f6565b606001519392505050565b600054600160a060020a03163314610768576040805160e560020a62461bcd02815260206004820152600d60248201527f6163636573732064656e69656400000000000000000000000000000000000000604482015290519081900360640190fd5b610770610a4a565b6040805142815290517f5189687a7ec9d4aebe2f548f952ffbbad19e4cd545c4a05b5e2369cd272dd5519181900360200190a1565b3b1590565b805460018201546000916107c4919063ffffffff610a6916565b42106107d2575060006107ed565b815460018301546107ea91014263ffffffff610a8216565b90505b919050565b1590565b6107fe610a99565b610806610acb565b61080e610acb565b610816610993565b81519193509150841061083d57815160208401528060005b6020020151606084015261089b565b602082015184108015906108515750815184105b15610868576020808301519084015280600161082e565b6040820151841080159061087f5750602082015184105b15610896576040820151602084015280600261082e565b6108b4565b600160a060020a03851683526020830151840360408401525b505092915050565b801515610913576040805160e560020a62461bcd02815260206004820152601660248201527f72657175697265206e6f74207a65726f2076616c756500000000000000000000604482015290519081900360640190fd5b50565b151590565b80516040808301519051600160a060020a039092169181156108fc0291906000818181858888f19350505050158015610958573d6000803e3d6000fd5b5050565b600081151561096d57506000610983565b60018301548354830281151561097f57fe5b0490505b92915050565b4260018301559055565b61099b610acb565b6109a3610acb565b662386f26fc1000060408084019190915267016345785d8a0000602080850191909152670de0b6b3a7640000845261023d918301919091526101899082015260d581529091565b600160a060020a0381161515610913576040805160e560020a62461bcd02815260206004820152601860248201527f72657175697265206e6f74207a65726f20616464726573730000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600082820183811015610a7b57600080fd5b9392505050565b60008083831115610a9257600080fd5b5050900390565b6080604051908101604052806000600160a060020a031681526020016000815260200160008152602001600081525090565b60606040519081016040528060039060208202803883395091929150505600a165627a7a72305820412745eecfbc5fac5341bfff00826f6ef041063035f2f49d4587f55e52600c630029

Swarm Source

bzzr://412745eecfbc5fac5341bfff00826f6ef041063035f2f49d4587f55e52600c63
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.