Token Serenity

 

Overview [ERC-20]

Max Total Supply:
0 SRNT

Holders:
4,147

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
SerenityToken

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-01-17
*/

pragma solidity 0.4.18;

contract IOwned {
  function owner() public view returns (address) { owner; }
  function transferOwnership(address _newOwner) public;
}

contract Owned is IOwned {
  address public owner;

  function Owned() public {
    owner = msg.sender;
  }

  modifier validAddress(address _address) {
    require(_address != 0x0);
    _;
  }
  modifier onlyOwner {
    assert(msg.sender == owner);
    _;
  }
  
  function transferOwnership(address _newOwner) public validAddress(_newOwner) onlyOwner {
    require(_newOwner != owner);
    
    owner = _newOwner;
  }
}


library SafeMath {
  function mul(uint256 a, uint256 b) internal view returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal view 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;
  }

  function sub(uint256 a, uint256 b) internal view returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal view returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}


contract IERC20Token {
  function name() public view returns (string) { name; }
  function symbol() public view returns (string) { symbol; }
  function decimals() public view returns (uint8) { decimals; }
  function totalSupply() public view returns (uint256) { totalSupply; }
  function balanceOf(address _owner) public view returns (uint256 balance) { _owner; balance; }
  function allowance(address _owner, address _spender) public view returns (uint256 remaining) { _owner; _spender; remaining; }

  function transfer(address _to, uint256 _value) public returns (bool);
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
  function approve(address _spender, uint256 _value) public returns (bool);
}

contract ERC20Token is IERC20Token {
  using SafeMath for uint256;

  string public standard = 'Token 0.1';
  string public name = '';
  string public symbol = '';
  uint8 public decimals = 0;
  uint256 public totalSupply = 0;
  mapping (address => uint256) public balanceOf;
  mapping (address => mapping (address => uint256)) public allowance;

  event Transfer(address indexed _from, address indexed _to, uint256 _value);
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);

  function ERC20Token(string _name, string _symbol, uint8 _decimals) public {
    require(bytes(_name).length > 0 && bytes(_symbol).length > 0);
    name = _name;
    symbol = _symbol;
    decimals = _decimals;
  }

  modifier validAddress(address _address) {
    require(_address != 0x0);
    _;
  }

  function transfer(address _to, uint256 _value) public validAddress(_to) returns (bool) {
    require(_value <= balanceOf[msg.sender]);
    balanceOf[msg.sender] = balanceOf[msg.sender].sub(_value);
    balanceOf[_to] = balanceOf[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    
    return true;
  }

  function transferFrom(address _from, address _to, uint256 _value) public validAddress(_to) returns (bool) {
    require(_value <= allowance[_from][msg.sender]);
    require(_value <= balanceOf[_from]);
    allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value);
    balanceOf[_from] = balanceOf[_from].sub(_value);
    balanceOf[_to] = balanceOf[_to].add(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  function approve(address _spender, uint256 _value) public validAddress(_spender) returns (bool) {
    require(_value == 0 || allowance[msg.sender][_spender] == 0);
    allowance[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }
}

contract ISerenityToken {
  function initialSupply () public view returns (uint256) { initialSupply; }

  function totalSoldTokens () public view returns (uint256) { totalSoldTokens; }
  function totalProjectToken() public view returns (uint256) { totalProjectToken; }

  function fundingEnabled() public view returns (bool) { fundingEnabled; }
  function transfersEnabled() public view returns (bool) { transfersEnabled; }
}

contract SerenityToken is ISerenityToken, ERC20Token, Owned {
  using SafeMath for uint256;
 
  address public fundingWallet;
  bool public fundingEnabled = true;
  uint256 public maxSaleToken = 400000000 ether;
  uint256 public initialSupply = 400000000 ether;
  uint256 public totalSoldTokens = 0;
  uint256 public totalProjectToken;
  bool public transfersEnabled = false;

  mapping (address => bool) internal fundingWallets;

  event Finalize(address indexed _from, uint256 _value);
  event DisableTransfers(address indexed _from);

  function SerenityToken() ERC20Token("Serenity", "SRNT", 18) public {
    fundingWallet = msg.sender; 

    balanceOf[fundingWallet] = maxSaleToken;
    balanceOf[0x47c8F28e6056374aBA3DF0854306c2556B104601] = maxSaleToken;
    balanceOf[0xCAD0AfB8Ec657D0DB9518B930855534f6433360f] = maxSaleToken;
    balanceOf[0x041375343c3Bd1Bb28b40b5Ce7b4665A9a6e21D0] = maxSaleToken;

    fundingWallets[fundingWallet] = true;
    fundingWallets[0x47c8F28e6056374aBA3DF0854306c2556B104601] = true;
    fundingWallets[0xCAD0AfB8Ec657D0DB9518B930855534f6433360f] = true;
    fundingWallets[0x041375343c3Bd1Bb28b40b5Ce7b4665A9a6e21D0] = true;
  }

  modifier validAddress(address _address) {
    require(_address != 0x0);
    _;
  }

  modifier transfersAllowed(address _address) {
    if (fundingEnabled) {
      require(fundingWallets[_address]);
    }
    else {
      require(transfersEnabled);
    }
    _;
  }

  function transfer(address _to, uint256 _value) public validAddress(_to) transfersAllowed(msg.sender) returns (bool) {
    return super.transfer(_to, _value);
  }

  function autoTransfer(address _to, uint256 _value) public validAddress(_to) onlyOwner returns (bool) {
    return super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint256 _value) public validAddress(_to) transfersAllowed(_from) returns (bool) {
    return super.transferFrom(_from, _to, _value);
  }

  function getTotalSoldTokens() public view returns (uint256) {
    uint256 result = 0;
    result = result.add(maxSaleToken.sub(balanceOf[fundingWallet]));
    result = result.add(maxSaleToken.sub(balanceOf[0x47c8F28e6056374aBA3DF0854306c2556B104601]));
    result = result.add(maxSaleToken.sub(balanceOf[0xCAD0AfB8Ec657D0DB9518B930855534f6433360f]));
    result = result.add(maxSaleToken.sub(balanceOf[0x041375343c3Bd1Bb28b40b5Ce7b4665A9a6e21D0]));
    return result;
  }

  function finalize() external onlyOwner {
    require(fundingEnabled);
    
    totalSoldTokens = getTotalSoldTokens();

    totalProjectToken = totalSoldTokens.mul(15).div(100);

    // Zeroing a cold wallet.
    balanceOf[fundingWallet] = 0;
    balanceOf[0xCAD0AfB8Ec657D0DB9518B930855534f6433360f] = 0;
    balanceOf[0x041375343c3Bd1Bb28b40b5Ce7b4665A9a6e21D0] = 0;

    // Shareholders/bounties
    balanceOf[0x47c8F28e6056374aBA3DF0854306c2556B104601] = totalProjectToken;

    // End of crowdfunding.
    fundingEnabled = false;
    transfersEnabled = true;

    // End of crowdfunding.
    Transfer(this, fundingWallet, 0);
    Finalize(msg.sender, totalSupply);
  }

  function disableTransfers() external onlyOwner {
    require(transfersEnabled);

    transfersEnabled = false;

    DisableTransfers(msg.sender);
  }

  function disableFundingWallets(address _address) external onlyOwner {
    require(fundingEnabled);
    require(fundingWallet != _address);
    require(fundingWallets[_address]);

    fundingWallets[_address] = false;
  }

  function enableFundingWallets(address _address) external onlyOwner {
    require(fundingEnabled);
    require(fundingWallet != _address);

    fundingWallets[_address] = true;
  }
}


contract Crowdsale {
  using SafeMath for uint256;

  SerenityToken public token;

  mapping(uint256 => uint8) internal icoWeeksDiscounts;

  bool public isICOStarted = false; 
  uint256 public icoStartTime; 
  uint256 public icoEndTime; 

  address public wallet = 0x47c8F28e6056374aBA3DF0854306c2556B104601;

  event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);

  modifier validAddress(address _address) {
    require(_address != 0x0);
    _;
  }

  function Crowdsale() public {
    token = createTokenContract();
    initDiscounts();
  }

  function initDiscounts() internal {
    icoWeeksDiscounts[0] = 40;
    icoWeeksDiscounts[1] = 35;
    icoWeeksDiscounts[2] = 30;
    icoWeeksDiscounts[3] = 25;
    icoWeeksDiscounts[4] = 20;
    icoWeeksDiscounts[5] = 10;
  }

  function createTokenContract() internal returns (SerenityToken) {
    return new SerenityToken();
  }

  function () public payable {
    buyTokens(msg.sender);
  }

  function getDiscount() internal view returns (uint8) {
    require(isICOStarted == true);
    require(icoStartTime < now);
    require(icoEndTime > now);

    uint256 weeksPassed = now.sub(icoStartTime).div(7 days);
    return icoWeeksDiscounts[weeksPassed];
  } 

  function buyTokens(address beneficiary) public validAddress(beneficiary) payable {
    require(isICOStarted);
    require(validPurchase());

    uint8 discountPercents = getDiscount();
    uint256 tokens = msg.value.mul(100).div(100 - discountPercents).mul(10000);

    require(tokens >= 100 ether);

    token.autoTransfer(beneficiary, tokens);
    TokenPurchase(msg.sender, beneficiary, msg.value, tokens);

    forwardFunds();
  }

  function activateICO(uint256 _icoEndTime) public {
    require(msg.sender == wallet);
    require(_icoEndTime >= now);
    require(isICOStarted == false);
      
    isICOStarted = true;
    icoEndTime = _icoEndTime;
    icoStartTime = now;
  }

  function forwardFunds() internal {
    wallet.transfer(msg.value);
  }

  function finalize() public {
    require(msg.sender == wallet);
    token.finalize();
  }

  function validPurchase() internal view returns (bool) {
    bool withinICOPeriod = isICOStarted && now >= icoStartTime && now <= icoEndTime;

    bool nonZeroPurchase = msg.value != 0;
    
    return withinICOPeriod && nonZeroPurchase;
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"enableFundingWallets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"autoTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundingWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalProjectToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxSaleToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalSoldTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"disableFundingWallets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transfersEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSoldTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingEnabled","outputs":[{"name":"","type":"bool"}],"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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Finalize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"}],"name":"DisableTransfers","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

606060405260408051908101604052600981527f546f6b656e20302e310000000000000000000000000000000000000000000000602082015260009080516200004d92916020019062000331565b5060206040519081016040526000815260019080516200007292916020019062000331565b5060206040519081016040526000815260029080516200009792916020019062000331565b506003805460ff19908116909155600060048190556008805460a060020a60ff021916740100000000000000000000000000000000000000001790556b014adf4b7320334b900000006009819055600a55600b55600d8054909116905534156200010057600080fd5b604080519081016040908152600882527f536572656e69747900000000000000000000000000000000000000000000000060208301528051908101604052600481527f53524e540000000000000000000000000000000000000000000000000000000060208201526012600083511180156200017d575060008251115b15156200018957600080fd5b60018380516200019e92916020019062000331565b506002828051620001b492916020019062000331565b506003805460ff90921660ff1992831617905560078054600160a060020a03338116600160a060020a031992831681179093556008805490921690921780825560095490831660009081526005602090815260408083208490557f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c08490557f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f58490557f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd9390935592549093168352600e90915281208054831660019081179091557f88a70ed86e3a980c5357808226ae2f7f87303c74486aecdae79f17de41f9cf0080548416821790557fe38096d56a41577b8871d6f2197653c18c8c6e26967a7d2a522015e3318ab7d8805484168217905573041375343c3bd1bb28b40b5ce7b4665a9a6e21d09091527fdaca80441da638a1c4cfe6664cf1f72f2dd7b0d6d328233f50f8e99ff1cd43e0805490921617905550620003d69050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200037457805160ff1916838001178555620003a4565b82800160010185558215620003a4579182015b82811115620003a457825182559160200191906001019062000387565b50620003b2929150620003b6565b5090565b620003d391905b80821115620003b25760008155600101620003bd565b90565b61106c80620003e66000396000f3006060604052600436106101485763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305b95822811461014d57806306fdde031461016e578063095ea7b3146101f857806318160ddd1461022e5780631d73fb931461025357806323b872dd14610275578063313ce5671461029d578063378dc3dc146102c65780633a67a0f6146102d95780633c4b40b8146102ec5780634bb278f31461031b57806354d188641461032e5780635923c7f91461034157806359be5e45146103545780635a3b7e421461036757806370a082311461037a5780638da5cb5b1461039957806395d89b41146103ac578063a9059cbb146103bf578063b9d2fa35146103e1578063bef97c8714610400578063d7ca994914610413578063dd62ed3e14610426578063e10e95c91461044b578063f2fde38b1461045e575b600080fd5b341561015857600080fd5b61016c600160a060020a036004351661047d565b005b341561017957600080fd5b6101816104ec565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101bd5780820151838201526020016101a5565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020357600080fd5b61021a600160a060020a036004351660243561058a565b604051901515815260200160405180910390f35b341561023957600080fd5b610241610647565b60405190815260200160405180910390f35b341561025e57600080fd5b61021a600160a060020a036004351660243561064d565b341561028057600080fd5b61021a600160a060020a036004358116906024351660443561068f565b34156102a857600080fd5b6102b061070d565b60405160ff909116815260200160405180910390f35b34156102d157600080fd5b610241610716565b34156102e457600080fd5b61016c61071c565b34156102f757600080fd5b6102ff610787565b604051600160a060020a03909116815260200160405180910390f35b341561032657600080fd5b61016c610796565b341561033957600080fd5b610241610946565b341561034c57600080fd5b61024161094c565b341561035f57600080fd5b610241610952565b341561037257600080fd5b610181610aa0565b341561038557600080fd5b610241600160a060020a0360043516610b0b565b34156103a457600080fd5b6102ff610b1d565b34156103b757600080fd5b610181610b2c565b34156103ca57600080fd5b61021a600160a060020a0360043516602435610b97565b34156103ec57600080fd5b61016c600160a060020a0360043516610c13565b341561040b57600080fd5b61021a610ca6565b341561041e57600080fd5b610241610caf565b341561043157600080fd5b610241600160a060020a0360043581169060243516610cb5565b341561045657600080fd5b61021a610cd2565b341561046957600080fd5b61016c600160a060020a0360043516610ce2565b60075433600160a060020a0390811691161461049557fe5b60085460a060020a900460ff1615156104ad57600080fd5b600854600160a060020a03828116911614156104c857600080fd5b600160a060020a03166000908152600e60205260409020805460ff19166001179055565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b820191906000526020600020905b81548152906001019060200180831161056557829003601f168201915b505050505081565b600082600160a060020a03811615156105a257600080fd5b8215806105d25750600160a060020a03338116600090815260066020908152604080832093881683529290522054155b15156105dd57600080fd5b600160a060020a03338116600081815260066020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a35060019392505050565b60045481565b600082600160a060020a038116151561066557600080fd5b60075433600160a060020a0390811691161461067d57fe5b6106878484610d5b565b949350505050565b600082600160a060020a03811615156106a757600080fd5b600854859060a060020a900460ff16156106e757600160a060020a0381166000908152600e602052604090205460ff1615156106e257600080fd5b6106f8565b600d5460ff1615156106f857600080fd5b610703868686610e58565b9695505050505050565b60035460ff1681565b600a5481565b60075433600160a060020a0390811691161461073457fe5b600d5460ff16151561074557600080fd5b600d805460ff19169055600160a060020a0333167fe4e1bd53368c1f6ab96631b284b855345d15dfbdc71054b5796ba0a42153584060405160405180910390a2565b600854600160a060020a031681565b60075433600160a060020a039081169116146107ae57fe5b60085460a060020a900460ff1615156107c657600080fd5b6107ce610952565b600b8190556107f7906064906107eb90600f63ffffffff610fdd16565b9063ffffffff61100816565b600c90815560088054600160a060020a039081166000908152600560205260408082208290557f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f58290557f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd82905593547347c8f28e6056374aba3df0854306c2556b10460182527f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c055825474ff0000000000000000000000000000000000000000198116909355600d805460ff191660011790559181169230909116917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a333600160a060020a03167fd0e5eaaad928655181d43ca1fb4d47483e60e23e9c17f165728d9979d2d9b93a60045460405190815260200160405180910390a2565b600c5481565b60095481565b600854600160a060020a03166000908152600560205260408120546009548291610992916109859163ffffffff61101f16565b829063ffffffff61103116565b7347c8f28e6056374aba3df0854306c2556b10460160005260056020527f3592c6fab48b47b7ae1ef83e7ebd8ad89b35c20a1c13212d035e5cd1279161c0546009549192506109ea916109859163ffffffff61101f16565b73cad0afb8ec657d0db9518b930855534f6433360f60005260056020527f833bc96081b5b4f539ad5a03b241cdb0bbb5cfab3f275ded908aa458e3d866f554600954919250610a42916109859163ffffffff61101f16565b73041375343c3bd1bb28b40b5ce7b4665a9a6e21d060005260056020527f5d6e044aeb2ab0715e0ddbe0dba972f40fd782bbd1dc0c563ca0c19c2f385cdd54600954919250610a9a916109859163ffffffff61101f16565b92915050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b60056020526000908152604090205481565b600754600160a060020a031681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105825780601f1061055757610100808354040283529160200191610582565b600082600160a060020a0381161515610baf57600080fd5b600854339060a060020a900460ff1615610bef57600160a060020a0381166000908152600e602052604090205460ff161515610bea57600080fd5b610c00565b600d5460ff161515610c0057600080fd5b610c0a8585610d5b565b95945050505050565b60075433600160a060020a03908116911614610c2b57fe5b60085460a060020a900460ff161515610c4357600080fd5b600854600160a060020a0382811691161415610c5e57600080fd5b600160a060020a0381166000908152600e602052604090205460ff161515610c8557600080fd5b600160a060020a03166000908152600e60205260409020805460ff19169055565b600d5460ff1681565b600b5481565b600660209081526000928352604080842090915290825290205481565b60085460a060020a900460ff1681565b80600160a060020a0381161515610cf857600080fd5b60075433600160a060020a03908116911614610d1057fe5b600754600160a060020a0383811691161415610d2b57600080fd5b506007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600082600160a060020a0381161515610d7357600080fd5b600160a060020a033316600090815260056020526040902054831115610d9857600080fd5b600160a060020a033316600090815260056020526040902054610dc1908463ffffffff61101f16565b600160a060020a033381166000908152600560205260408082209390935590861681522054610df6908463ffffffff61103116565b600160a060020a0380861660008181526005602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a35060019392505050565b600082600160a060020a0381161515610e7057600080fd5b600160a060020a0380861660009081526006602090815260408083203390941683529290522054831115610ea357600080fd5b600160a060020a038516600090815260056020526040902054831115610ec857600080fd5b600160a060020a0380861660009081526006602090815260408083203390941683529290522054610eff908463ffffffff61101f16565b600160a060020a038087166000818152600660209081526040808320339095168352938152838220949094559081526005909252902054610f46908463ffffffff61101f16565b600160a060020a038087166000908152600560205260408082209390935590861681522054610f7b908463ffffffff61103116565b600160a060020a03808616600081815260056020526040908190209390935591908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b6000828202831580610ff95750828482811515610ff657fe5b04145b151561100157fe5b9392505050565b600080828481151561101657fe5b04949350505050565b60008282111561102b57fe5b50900390565b60008282018381101561100157fe00a165627a7a72305820644dea3ffa2c83bae658f41296ea6b7893ac2a677dab878d922f5a70c0f77a330029

Swarm Source

bzzr://644dea3ffa2c83bae658f41296ea6b7893ac2a677dab878d922f5a70c0f77a33

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.