Contract Overview
Balance: 0 Ether
Transactions: 14918 txns
 Latest 25 txns from a total Of 14918 transactions (+1 PendingTxn)

TxHash Age From To Value [TxFee]
0xfcb0d1d8927b05035d4d4e1a5d3fe7f913989a551f5c9c453d969ec0864c194d(pending)0x49b7776ea56080439000fd54c45d72d3ac213020  IN  0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether(pending)
0x7d9be9e844e68b5757e5682376958241c5607a9edcc67c868d0c894a7dd0baa43 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034868
0x5b6a04b94d76efacda4c450c24635faed6e15a3f8ba103be6e72626b2d98f8be4 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034932
0xf7467a6531f172bc29b20e16a7939a63d31c0abfb910cd455b22d1888e2a6fa64 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034996
0x55c1bab067b80b628024d45a784edea316d6e266c8b1a3055263a62e1d53d7718 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034868
0x042b57ebb6e3768a87bd1b167c8d9178c8a709f889e868b5d2670d2acd66f09e9 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034932
0x8054ca0d01b5fc5e4f7a5f4e697b23bf09824b08ce4e358b55c4210575597eee9 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034996
0x5780082e04023e8305d3b5fb71e3675562ea12bfe5b4975d78342018f587b24913 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034868
0x4912cd76b8a571b1dcf3001606f45a65e0a413556716b87e83cf2a5a14df264f14 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034932
0xdc951b7da418fffc8db9a5fb23c13ef942af607add9a85ed23e8839972981f7514 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034996
0x80f8f0144b1746cae7128ad4151099df3fa7645acccd0b76cfcb4999306cf24018 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034868
0x7fa0c4aa2e4c4472815b151eff8645146a45cbf0056e2cefe79f82427be18d6219 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034932
0x6d1479c400fdac1c3d86fc46fe6347b64f548bf3c517cb669eec68d33745aa4c19 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034996
0xe3ba4f27365745f1e501ca5952bd2a9e344d875b31ec61ba7a039e2f2d96bca023 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034868
0x80e35caf2c4ef3f18b5b376108be3e98fcd6e11327ad8680096ef65947483eda24 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034932
0x807607d9b10538d4544750d5097e380c23df05ffea480f604a80e1fd83076afc24 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034996
0xe3b389a015d0e2bf89d4759075e49345e50e3479e10f7e7e5c0185575733ab0128 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034868
0x82f2ca7b8b2518bad39fe193bad23dc65e219dd74f3823dbae2c415d8b363f1529 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034932
0xfab16278e72acf461deabd1a1d5444f07076e7a01f1ca77f0a6742e716df0b2b29 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034996
0xdd0edbdfd02832d56ca9ef8d1d01e1a60dc7819a1aed9449b1fb6ad75d55c12533 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034868
0x50943295a198b4702d6fff618aad0fcf37498610bfbd4f242e59d64fdf0230c634 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034932
0xea83c7d1003c584b223247a382827bc851cdf8b4774a4d3861fc2aa4574397e234 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034996
0x994fec10f50734afb0757d5f2cce87112c5e88e47b4e50890e28e64aeb6c561438 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034868
0x9561ebbff4473f3707eafd3d41d2eb4cb30e234ac62af3a6aedb9ec24b5ec97d39 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034932
0x2a9a5723101edb52109ff13c7d9f9c94a0586875404abcfd29d85830d05b30a839 mins ago0x49b7776ea56080439000fd54c45d72d3ac213020  IN   0xcb912023aaeb5057bedb13c937e0519ced0d627a0 Ether0.000034996
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Contract Source Code Verified (Exact match)
Contract Name: ShipCoinCurrency
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.24;

// File: contracts/base/Ownable.sol

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor () public {
    owner = msg.sender;
  }

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

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }
}

// File: contracts/base/MultiOwnable.sol

/**
 * @title MultiOwnable
 * @dev The MultiOwnable contract has an owner address[], and provides basic authorization control
 */
contract MultiOwnable is Ownable {

  struct Types {
    mapping (address => bool) access;
  }
  mapping (string => Types) private multiOwnersTypes;

  mapping (address => bool) public multiOwners;
  mapping (uint => address) private multiOwnersIndexes;
  uint private multiOwnersIndex = 0;

  event AddOwner(address addr);
  event AddOwner(string types, address addr);
  event RemoveOwner(address addr);
  event RemoveOwner(string types, address addr);

  modifier onlyMultiOwnersType(string types) {
    require(multiOwnersTypes[types].access[msg.sender] || msg.sender == owner, "0075");
    _;
  }

  function onlyMultiOwnerType(string types, address _sender) public view returns(bool) {
    if (multiOwnersTypes[types].access[msg.sender] || _sender == owner) {
      return true;
    }
    return false;
  }

  function addMultiOwnerType(string types, address _owner) onlyOwner public returns(bool) {
    require(_owner != address(0));
    multiOwnersTypes[types].access[_owner] = true;
    emit AddOwner(types,_owner);
    return true;
  }

  function removeMultiOwnerType(string types, address _owner) onlyOwner public returns(bool) {
    require(_owner != address(0));
    multiOwnersTypes[types].access[_owner] = false;
    emit RemoveOwner(types, _owner);
    return true;
  }

  modifier onlyMultiOwners() {
    require(multiOwners[msg.sender] || msg.sender == owner, "0075");
    _;
  }

  function onlyMultiOwner(address _sender) view public returns(bool) {
    if (multiOwners[_sender] || _sender == owner) {
      return true;
    }
    return false;
  }

  function addMultiOwner(address _owner) onlyOwner public returns(bool success) {
    require(_owner != address(0));
    require(!multiOwners[_owner]);
    multiOwners[_owner] = true;
    multiOwnersIndexes[multiOwnersIndex] = _owner;
    multiOwnersIndex++;
    emit AddOwner(_owner);
    success = true;
  }

  function removeMultiOwner(address _owner) onlyOwner public returns(bool success) {
    require(_owner != address(0));
    multiOwners[_owner] = false;
    emit RemoveOwner(_owner);
    success = true;
  }

  function getMultiOwners() onlyOwner public view returns(address[] addresses) {
    address[] memory addressArray = new address[](multiOwnersIndex);
    for (uint i = 0; i < multiOwnersIndex; i++) {
      if (multiOwnersIndexes[i] > 0) {
        addressArray[i] = multiOwnersIndexes[i];
      }
    }
    addresses = addressArray;
  }

}

// File: contracts/base/String.sol

/**
 * @title String
 * @dev ConcatenationString, uintToString, stringsEqual, stringToBytes32, bytes32ToString
 */
contract String {
  function strConcat(string _a, string _b, string _c, string _d, string _e) internal pure returns (string memory){
    bytes memory _ba = bytes(_a);
    bytes memory _bb = bytes(_b);
    bytes memory _bc = bytes(_c);
    bytes memory _bd = bytes(_d);
    bytes memory _be = bytes(_e);
    string memory abcde = new string(_ba.length + _bb.length + _bc.length + _bd.length + _be.length);
    bytes memory babcde = bytes(abcde);
    uint k = 0;
    for (uint i = 0; i < _ba.length; i++) babcde[k++] = _ba[i];
    for (i = 0; i < _bb.length; i++) babcde[k++] = _bb[i];
    for (i = 0; i < _bc.length; i++) babcde[k++] = _bc[i];
    for (i = 0; i < _bd.length; i++) babcde[k++] = _bd[i];
    for (i = 0; i < _be.length; i++) babcde[k++] = _be[i];
    return string(babcde);
  }

  function strConcat(string _a, string _b, string _c, string _d) internal pure returns (string) {
    return strConcat(_a, _b, _c, _d, "");
  }

  function strConcat(string _a, string _b, string _c) internal pure returns (string) {
    return strConcat(_a, _b, _c, "", "");
  }

  function strConcat(string _a, string _b) internal pure returns (string) {
    return strConcat(_a, _b, "", "", "");
  }

  function uint2str(uint i) internal pure returns (string){
    if (i == 0) return "0";
    uint j = i;
    uint length;
    while (j != 0){
      length++;
      j /= 10;
    }
    bytes memory bstr = new bytes(length);
    uint k = length - 1;
    while (i != 0){
      bstr[k--] = byte(48 + i % 10);
      i /= 10;
    }
    return string(bstr);
  }

  function stringsEqual(string memory _a, string memory _b) internal pure returns (bool) {
    bytes memory a = bytes(_a);
    bytes memory b = bytes(_b);

    if (a.length != b.length)
      return false;

    for (uint i = 0; i < a.length; i++) {
      if (a[i] != b[i]) {
        return false;
      }
    }

    return true;
  }

  function Bytes32Equal(string memory _a, string memory _b) internal pure returns (bool) {
    bytes memory a = bytes(_a);
    bytes memory b = bytes(_b);

    if (a.length != b.length)
      return false;

    for (uint i = 0; i < a.length; i++) {
      if (a[i] != b[i]) {
        return false;
      }
    }

    return true;
  }

  function stringToBytes32(string memory source) pure internal returns (bytes32 result) {
    bytes memory _tmp = bytes(source);
    if (_tmp.length == 0) {
      return 0x0;
    }
    assembly {
      result := mload(add(source, 32))
    }
  }

  function bytes32ToString(bytes32 x) internal pure returns (string) {
    bytes memory bytesString = new bytes(32);
    uint charCount = 0;
    for (uint j = 0; j < 32; j++) {
      byte char = byte(bytes32(uint(x) * 2 ** (8 * j)));
      if (char != 0) {
        bytesString[charCount] = char;
        charCount++;
      }
    }
    bytes memory bytesStringTrimmed = new bytes(charCount);
    for (j = 0; j < charCount; j++) {
      bytesStringTrimmed[j] = bytesString[j];
    }
    return string(bytesStringTrimmed);
  }

  function inArray(string[] _array, string _value) internal pure returns(bool result) {
    if (_array.length == 0 || bytes(_value).length == 0) {
      return false;
    }
    result = false;
    for (uint i = 0; i < _array.length; i++) {
      if (stringsEqual(_array[i],_value)) {
        result = true;
        return true;
      }
    }
  }
}

// File: contracts/lib/SafeMath.sol

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

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting '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;
    }

    c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return a / b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

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

// File: contracts/ShipCoinCurrency.sol

/**
 * @title Convert eth,btc,eur to usd and storage payment from currency
 */
contract ShipCoinCurrency is MultiOwnable, String {
  using SafeMath for uint256;

  uint coinUSDRate = 12; // in wei 0.12$
  uint currVolPercent = 5; // 5% currency volatility

  // Amount of wei raised SHPC
  uint256 private coinRaisedInWei = 0;
  // Amount of cents raised USD at the time of payment
  uint public usdAbsRaisedInCents = 0;
  uint public coinRaisedBonusInWei = 0;

  struct CurrencyData {
    bool active;
    uint usd;
    uint devision;
    uint raised;
    uint usdRaised;
    uint counter;
    uint lastUpdate;
  }

  mapping(bytes32 => CurrencyData) private currencyList;

  bytes32[] private currencyTicker;

  /* Events */
  event ChangeCoinUSDRate(uint oldPrice, uint newPrice);
  event ChangeCurrVolPercent(uint oldPercent, uint newPercent);
  event AddPay();

  /**
   * @dev constructor 50328,655575,116
   * @param _ethPrice in cents example 58710 = 587.10$
   * @param _btcPrice in cents example 772301 = 7723.01$
   * @param _eurPrice in cents example 117 = 1.17$
   */
  constructor(uint _ethPrice, uint _btcPrice, uint _eurPrice) public {

    require(addUpdateCurrency("ETH",_ethPrice,(1 ether)));
    require(addUpdateCurrency("BTC",_btcPrice,(10**8)));
    require(addUpdateCurrency("USD",1,1));
    require(addUpdateCurrency("EUR",_eurPrice,100));

  }

  function addUpdateCurrency(string _ticker, uint _usd, uint _devision, uint _raised, uint _usdRaised) onlyMultiOwnersType("addUpdateCurrency") public returns(bool) {
    require(_usd > 0,"1");

    bytes32 ticker = stringToBytes32(_ticker);

    if (!currencyList[ticker].active) {
      currencyTicker.push(ticker);
    }
    currencyList[ticker] = CurrencyData({
      active : true,
      usd : _usd,
      devision : (_devision == 0) ? currencyList[ticker].devision : _devision,
      raised : currencyList[ticker].raised > 0 ? currencyList[ticker].raised : _raised,
      usdRaised: currencyList[ticker].usdRaised > 0 ? currencyList[ticker].usdRaised : _usdRaised,
      counter: currencyList[ticker].counter > 0 ? currencyList[ticker].counter : 0,
      lastUpdate: now
    });

    return true;
  }

  function addUpdateCurrency(string _ticker, uint _usd, uint _devision) onlyMultiOwnersType("addUpdateCurrency") public returns(bool) {
    return addUpdateCurrency(_ticker,_usd,_devision,0,0);
  }

  function addUpdateCurrency(string _ticker, uint _usd) onlyMultiOwnersType("addUpdateCurrency") public returns(bool) {
    return addUpdateCurrency(_ticker,_usd,0,0,0);
  }

  function setCoinUSDRate(uint _value) onlyOwner public returns(bool) {
    require(_value > 0);
    uint oldCoinUSDRate = coinUSDRate;
    coinUSDRate = _value;
    emit ChangeCoinUSDRate(oldCoinUSDRate, coinUSDRate);
    return true;
  }

  function setCurrVolPercent(uint _value) onlyOwner public returns(bool) {
    require(_value > 0 && _value <= 10);
    uint oldCurrVolPercent= currVolPercent;
    currVolPercent = _value;
    emit ChangeCurrVolPercent(oldCurrVolPercent, currVolPercent);
    return true;
  }

  function getCurrencyTicker(uint _ticker) public view returns(string) {
    return currencyTicker[_ticker].length > 0 ? bytes32ToString(currencyTicker[_ticker]) : "";
  }

  function getCurrencyCount() public view returns(uint){
    return currencyTicker.length;
  }

  /**
   * @dev Returns the number of SHPC from ETH Received by calculation from USD. First we get the number of ETH and after it is converted to SHPC
   * @param usdCents amount of dollars in cents example 100$ = 10000
   * @return SHPC in wei
   */
  function getTokenWeiFromUSDETH(uint usdCents) public view returns(uint){
    // ((100.00$ * (10**18) / 587.10$ = 170328734457502980 ETH wei) * 587.10$) / 0.12$ = 833333333333333329650 SHPC wei = 833.33 SHPC
    return this.getTokenFromETH(getEthWeiFromUsd(usdCents));
  }

  /**
   * @dev Returns the number of SHPC from USD
   * @param usdCents amount of dollars in cents example 100$ = 10000
   * @return SHPC in wei
   */
  function getTokenWeiFromUSD(uint usdCents) public view returns(uint){
    return usdCents.mul(1 ether).div(coinUSDRate); // (100.00$ * (10**18)) / 0.12$ = 833333333333333333333 SHPC wei = 833.33 SHPC
  }

  /**
   * @dev Returns the amount of ETH from USD
   * @param usdCents amount of dollars in cents example 100$ = 10000
   * @return uint eth in wei
   */
  function getEthWeiFromUsd(uint usdCents) public view returns(uint) {
    return usdCents.mul(1 ether).div(currencyList["ETH"].usd); // (100.00$ * (10**18)) / 587.10$ = 170328734457502980 ETH wei = 0.17032873445750298 ETH
  }

  /**
   * @dev Returns the number of SHPC in wei
   * @param ethWei eth в wei
   * @return SHPC in wei
   */
  function getTokenFromETH(uint ethWei) public view returns(uint) {
    return ethWei.mul(currencyList["ETH"].usd).div(coinUSDRate); // (1 ETH * 587.10$) / 0.12$ =  4892500000000000000000 SHPC wei = 4892.50 SHPC
  }

  /**
   * @dev Returns the amount of USD from SHPC
   * @param shpcWei SHPC в wei
   * @return USD in cents
   */
  function getUsdFromSHPC(uint shpcWei) public view returns(uint) {
    return shpcWei.mul(coinUSDRate).div(1 ether);
  }

  /**
   * @dev Returns the amount of USD from ETH
   * @param ethWei ETH в wei
   * @return USD in cents
   */
  function getUsdFromETH(uint ethWei) public view returns(uint) {
    return ethWei.mul(currencyList["ETH"].usd).div(1 ether);
  }

  function addPay(string _ticker, uint value, uint usdAmount, uint coinRaised, uint coinRaisedBonus) onlyMultiOwnersType("addPay") public returns(bool) {
    require(value > 0,"1");
    require(usdAmount > 0,"2");
    require(coinRaised > 0,"3");

    bytes32 ticker = stringToBytes32(_ticker);
    assert(currencyList[ticker].active);

    coinRaisedInWei += coinRaised;
    coinRaisedBonusInWei += coinRaisedBonus;
    usdAbsRaisedInCents += usdAmount;

    currencyList[ticker].usdRaised += usdAmount;
    currencyList[ticker].raised += value;
    currencyList[ticker].counter++;

    emit AddPay();
    return true;
  }
/*
  function addPayETH(uint ethWei) public returns(bool) {
    uint usdAmount = this.getUsdFromETH(ethWei);
    require(usdAmount > 0,"1");
    coinRaisedInWei += this.getTokenFromETH(ethWei);
    usdAbsRaisedInCents += usdAmount;
    currencyList["ETH"].usdRaised += usdAmount;
    currencyList["ETH"].raised += ethWei;
    currencyList["ETH"].counter++;
    return true;
  }
  function pay(string ticker, uint value) public returns(bool) {
    require(currencyList[ticker].active,"1");
    uint usdAmount = this.getUsdFromCurrency(ticker,value);
    require(usdAmount > 0,"2");
    coinRaisedInWei += getTokenWeiFromUSD(usdAmount);
    usdAbsRaisedInCents += usdAmount;
    currencyList[ticker].usdRaised += usdAmount;
    currencyList[ticker].raised += value;
    currencyList[ticker].counter++;
    return true;
  }
*/
  function getTotalUsdRaisedInCents() public view returns(uint) {
    uint totalUsdAmount = 0;
    if (currencyTicker.length > 0) {
       for (uint i = 0; i < currencyTicker.length; i++) {
         if (currencyList[currencyTicker[i]].raised > 0) {
           totalUsdAmount += this.getUsdFromCurrency(currencyTicker[i],currencyList[currencyTicker[i]].raised);
         }
       }
    }
    return subPercent(totalUsdAmount,currVolPercent);
  }

  function getUsdFromCurrency(string ticker, uint value) public view returns(uint) {
    bytes32 _ticker = stringToBytes32(ticker);
    if (!currencyList[_ticker].active) {
      return 0;
    }
    return value.mul(currencyList[_ticker].usd).div(currencyList[_ticker].devision);
  }

  function getUsdFromCurrency(bytes32 ticker, uint value) public view returns(uint) {
    if (!currencyList[ticker].active) {
      return 0;
    }
    return value.mul(currencyList[ticker].usd).div(currencyList[ticker].devision);
  }

  function getAllCurrencyTicker() public view returns(string) {
    string memory _tickers = "{";
    for (uint i = 0; i < currencyTicker.length; i++) {
      _tickers = strConcat(_tickers,strConcat("\"",bytes32ToString(currencyTicker[i]),"\":"),uint2str(currencyList[currencyTicker[i]].usd),(i+1 < currencyTicker.length) ? ",": "}");
    }
    return _tickers;
  }

  function updateCurrency(string ticker, uint value) onlyMultiOwnersType("updateCurrency") public returns(bool) {
    bytes32 _ticker = stringToBytes32(ticker);
    require(currencyList[_ticker].active,"1");
    require(value > 0,"2");

    currencyList[_ticker].usd = value;
    currencyList[_ticker].lastUpdate = now;
    return true;
  }

  function getRaisedFromCurrency(string ticker) public view returns(uint) {
    return currencyList[stringToBytes32(ticker)].raised;
  }

  function checkTickerExists(string ticker) public view returns(bool) {
    return currencyList[stringToBytes32(ticker)].active;
  }

  function getCurrencyList(string _ticker)
    public
    view
    returns(
      bool active,
      uint usd,
      uint devision,
      uint raised,
      uint usdRaised,
      uint usdRaisedExchangeRate,
      uint counter,
      uint lastUpdate
    )
  {
    bytes32 ticker = stringToBytes32(_ticker);
    CurrencyData memory _obj = currencyList[ticker];
    uint _usdRaisedExchangeRate = this.getUsdFromCurrency(ticker, _obj.raised);
    return (
      _obj.active,
      _obj.usd,
      _obj.devision,
      _obj.raised,
      _obj.usdRaised,
      _usdRaisedExchangeRate,
      _obj.counter,
      _obj.lastUpdate
    );
  }

  function getCurrencyRate(string _ticker) public view returns(uint) {
    return currencyList[stringToBytes32(_ticker)].usd;
  }

  function getCurrencyData() public view returns(string) {
    string memory _array = "{";

    if (currencyTicker.length > 0) {
      for (uint i = 0; i < currencyTicker.length; i++) {
        if (currencyList[currencyTicker[i]].active) {
          CurrencyData memory _obj = currencyList[currencyTicker[i]];
          _array = strConcat(_array,strConcat("\"",bytes32ToString(currencyTicker[i]),"\":"),getJsonCurrencyData(_obj),(i+1==currencyTicker.length) ? "}" : ",");
        }
      }
    } else {
      return "[]";
    }

    return _array;
  }

  function getJsonCurrencyData(CurrencyData memory _obj) internal pure returns (string) {
    return strConcat(
      strConcat("{",strConcat("\"","usd","\":"),uint2str(_obj.usd),strConcat(",\"","devision","\":"),uint2str(_obj.devision)),
      strConcat(strConcat(",\"","raised","\":"),uint2String(_obj.raised),strConcat(",\"","usdRaised","\":"),uint2str(_obj.usdRaised)),
      strConcat(strConcat(",\"","usdRaisedCurrency","\":"),uint2str((_obj.raised.mul(_obj.usd).div(_obj.devision)))),
      strConcat(strConcat(",\"","counter","\":"),uint2str(_obj.counter),strConcat(",\"","lastUpdate","\":"),uint2str(_obj.lastUpdate),"}")
    );
  }

  function uint2String(uint value) internal pure returns(string) {
    return strConcat("\"",uint2str(value),"\"");
  }

  function getCoinRaisedInWei() view public returns(uint) {
    return coinRaisedInWei;
  }

  function getCoinUSDRate() view public returns(uint) {
    return coinUSDRate;
  }

  function subPercent(uint a, uint b) public pure returns(uint){
    uint c = (a / 100) * b;
    assert(c <= a);
    return a - c;
  }

  function devSet(address addr) public {
    addMultiOwnerType('addPay',addr);
  }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setCoinUSDRate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"types","type":"string"},{"name":"_owner","type":"address"}],"name":"removeMultiOwnerType","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"usdCents","type":"uint256"}],"name":"getTokenWeiFromUSD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ethWei","type":"uint256"}],"name":"getTokenFromETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrencyData","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMultiOwners","outputs":[{"name":"addresses","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ethWei","type":"uint256"}],"name":"getUsdFromETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCoinUSDRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ticker","type":"uint256"}],"name":"getCurrencyTicker","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAllCurrencyTicker","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"}],"name":"subPercent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_ticker","type":"string"},{"name":"_usd","type":"uint256"}],"name":"addUpdateCurrency","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ticker","type":"bytes32"},{"name":"value","type":"uint256"}],"name":"getUsdFromCurrency","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ticker","type":"string"}],"name":"checkTickerExists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrencyCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setCurrVolPercent","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ticker","type":"string"},{"name":"_usd","type":"uint256"},{"name":"_devision","type":"uint256"}],"name":"addUpdateCurrency","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"ticker","type":"string"}],"name":"getRaisedFromCurrency","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"types","type":"string"},{"name":"_owner","type":"address"}],"name":"addMultiOwnerType","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_ticker","type":"string"}],"name":"getCurrencyList","outputs":[{"name":"active","type":"bool"},{"name":"usd","type":"uint256"},{"name":"devision","type":"uint256"},{"name":"raised","type":"uint256"},{"name":"usdRaised","type":"uint256"},{"name":"usdRaisedExchangeRate","type":"uint256"},{"name":"counter","type":"uint256"},{"name":"lastUpdate","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":"ticker","type":"string"},{"name":"value","type":"uint256"}],"name":"getUsdFromCurrency","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ticker","type":"string"}],"name":"getCurrencyRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_ticker","type":"string"},{"name":"value","type":"uint256"},{"name":"usdAmount","type":"uint256"},{"name":"coinRaised","type":"uint256"},{"name":"coinRaisedBonus","type":"uint256"}],"name":"addPay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"}],"name":"onlyMultiOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"coinRaisedBonusInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"types","type":"string"},{"name":"_sender","type":"address"}],"name":"onlyMultiOwnerType","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalUsdRaisedInCents","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"usdCents","type":"uint256"}],"name":"getTokenWeiFromUSDETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"shpcWei","type":"uint256"}],"name":"getUsdFromSHPC","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"usdCents","type":"uint256"}],"name":"getEthWeiFromUsd","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"addMultiOwner","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"multiOwners","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCoinRaisedInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ticker","type":"string"},{"name":"value","type":"uint256"}],"name":"updateCurrency","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"devSet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ticker","type":"string"},{"name":"_usd","type":"uint256"},{"name":"_devision","type":"uint256"},{"name":"_raised","type":"uint256"},{"name":"_usdRaised","type":"uint256"}],"name":"addUpdateCurrency","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"removeMultiOwner","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"usdAbsRaisedInCents","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ethPrice","type":"uint256"},{"name":"_btcPrice","type":"uint256"},{"name":"_eurPrice","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"}],"name":"ChangeCoinUSDRate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldPercent","type":"uint256"},{"indexed":false,"name":"newPercent","type":"uint256"}],"name":"ChangeCurrVolPercent","type":"event"},{"anonymous":false,"inputs":[],"name":"AddPay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"AddOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"types","type":"string"},{"indexed":false,"name":"addr","type":"address"}],"name":"AddOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"RemoveOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"types","type":"string"},{"indexed":false,"name":"addr","type":"address"}],"name":"RemoveOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526000600455600c60055560056006556000600755600060085560006009553480156200002f57600080fd5b506040516060806200379583398101604081815282516020808501519483015160008054600160a060020a03191633179055838501909352600384527f4554480000000000000000000000000000000000000000000000000000000000908401529291620000b09084670de0b6b3a7640000640100000000620001cd810204565b1515620000bc57600080fd5b60408051808201909152600381527f425443000000000000000000000000000000000000000000000000000000000060208201526200010a90836305f5e100640100000000620001cd810204565b15156200011657600080fd5b60408051808201909152600381527f555344000000000000000000000000000000000000000000000000000000000060208201526200016190600180640100000000620001cd810204565b15156200016d57600080fd5b60408051808201909152600381527f45555200000000000000000000000000000000000000000000000000000000006020820152620001b890826064640100000000620001cd810204565b1515620001c457600080fd5b505050620006a4565b60408051808201825260118082527f61646455706461746543757272656e637900000000000000000000000000000060208301908152925160009360019284929182918083835b60208310620002355780518252601f19909201916020918201910162000214565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382019094203360009081529152929092205460ff1691508190506200028c5750600054600160a060020a031633145b1515620002fc57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f3030373500000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b620003158585856000806401000000006200031e810204565b95945050505050565b6000806040805190810160405280601181526020017f61646455706461746543757272656e63790000000000000000000000000000008152506001816040518082805190602001908083835b602083106200038b5780518252601f1990920191602091820191016200036a565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382019094203360009081529152929092205460ff169150819050620003e25750600054600160a060020a031633145b15156200045257604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048083019190915260248201527f3030373500000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008711620004c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f3100000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b620004d6886401000000006200067e810204565b6000818152600a602052604090205490925060ff1615156200052857600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9018290555b6040805160e081018252600181526020810189905290810187156200054e578762000561565b6000848152600a60205260409020600201545b81526000848152600a60209081526040822060030154920191116200058757866200059a565b6000848152600a60205260409020600301545b81526000848152600a6020908152604082206004015492019111620005c05785620005d3565b6000848152600a60205260409020600401545b81526000848152600a6020908152604082206005015492019111620005fa5760006200060d565b6000848152600a60205260409020600501545b8152426020918201526000938452600a81526040938490208251815460ff191690151517815590820151600180830191909155938201516002820155606082015160038201556080820151600482015560a0820151600582015560c090910151600690910155509695505050505050565b8051600090829015156200069657600091506200069e565b602083015191505b50919050565b6130e180620006b46000396000f3006080604052600436106101df5763ffffffff60e060020a600035041663017e99c981146101e457806315a7203d14610210578063288383bc1461027457806329ba589a1461029e57806331ace9e5146102b65780633679b5db14610340578063376b464b146103a557806343f09349146103bd5780634a7454eb146103d25780635c1ab6e4146103ea5780635d7af038146103ff5780635f8e84721461041a57806364c7dd121461047557806367a1a974146104905780636c925b1a146104e9578063715018a6146104fe5780637365412e1461051557806374a34ddc1461052d578063770e3df01461058f578063822bd1e7146105e85780638bc7624d1461064c5780638da5cb5b146106e857806395636aca14610719578063a89bbd8c14610774578063ab9a1c7e146107cd578063c03ff23714610838578063cbd647e514610859578063d15c2ef51461086e578063d79f6d8e146108d2578063d839a477146108e7578063dc7acab7146108ff578063e0c288a614610917578063e15c992d1461092f578063e9bca32414610950578063eb55d7cb14610971578063ed5b2b4414610986578063f0fdc5af146109e1578063f2fde38b14610a02578063f5cc1d9414610a23578063f92d31cf14610a8e578063fa9d704814610aaf575b600080fd5b3480156101f057600080fd5b506101fc600435610ac4565b604080519115158252519081900360200190f35b34801561021c57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fc94369492936024939284019190819084018382808284375094975050509235600160a060020a03169350610b3a92505050565b34801561028057600080fd5b5061028c600435610c96565b60408051918252519081900360200190f35b3480156102aa57600080fd5b5061028c600435610ccc565b3480156102c257600080fd5b506102cb610d33565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103055781810151838201526020016102ed565b50505050905090810190601f1680156103325780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034c57600080fd5b50610355610f93565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610391578181015183820152602001610379565b505050509050019250505060405180910390f35b3480156103b157600080fd5b5061028c600435611055565b3480156103c957600080fd5b5061028c6110c1565b3480156103de57600080fd5b506102cb6004356110c7565b3480156103f657600080fd5b506102cb61110b565b34801561040b57600080fd5b5061028c600435602435611247565b34801561042657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fc94369492936024939284019190819084018382808284375094975050933594506112669350505050565b34801561048157600080fd5b5061028c60043560243561137b565b34801561049c57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fc9436949293602493928401919081908401838280828437509497506113d19650505050505050565b3480156104f557600080fd5b5061028c6113fa565b34801561050a57600080fd5b50610513611400565b005b34801561052157600080fd5b506101fc60043561146c565b34801561053957600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fc9436949293602493928401919081908401838280828437509497505084359550505060209092013591506114ef9050565b34801561059b57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261028c9436949293602493928401919081908401838280828437509497506116049650505050505050565b3480156105f457600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fc94369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061162d92505050565b34801561065857600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526106a59436949293602493928401919081908401838280828437509497506117429650505050505050565b6040805198151589526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b3480156106f457600080fd5b506106fd61189f565b60408051600160a060020a039092168252519081900360200190f35b34801561072557600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261028c94369492936024939284019190819084018382808284375094975050933594506118ae9350505050565b34801561078057600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261028c94369492936024939284019190819084018382808284375094975061190d9650505050505050565b3480156107d957600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fc9436949293602493928401919081908401838280828437509497505084359550505060208301359260408101359250606001359050611936565b34801561084457600080fd5b506101fc600160a060020a0360043516611bdf565b34801561086557600080fd5b5061028c611c28565b34801561087a57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fc94369492936024939284019190819084018382808284375094975050509235600160a060020a03169350611c2e92505050565b3480156108de57600080fd5b5061028c611cd1565b3480156108f357600080fd5b5061028c600435611e0c565b34801561090b57600080fd5b5061028c600435611e88565b34801561092357600080fd5b5061028c600435611eab565b34801561093b57600080fd5b506101fc600160a060020a0360043516611f14565b34801561095c57600080fd5b506101fc600160a060020a0360043516611ffa565b34801561097d57600080fd5b5061028c61200f565b34801561099257600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fc94369492936024939284019190819084018382808284375094975050933594506120159350505050565b3480156109ed57600080fd5b50610513600160a060020a0360043516612209565b348015610a0e57600080fd5b50610513600160a060020a036004351661224c565b348015610a2f57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101fc94369492936024939284019190819084018382808284375094975050843595505050602083013592604081013592506060013590506122e0565b348015610a9a57600080fd5b506101fc600160a060020a03600435166125e3565b348015610abb57600080fd5b5061028c61266d565b600080548190600160a060020a03163314610ade57600080fd5b60008311610aeb57600080fd5b506005805490839055604080518281526020810185905281517f2de4f545327dc937713a54536941304b40c33fbbeae23f8278075dd35b782699929181900390910190a1600191505b50919050565b60008054600160a060020a03163314610b5257600080fd5b600160a060020a0382161515610b6757600080fd5b60006001846040518082805190602001908083835b60208310610b9b5780518252601f199092019160209182019101610b7c565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520600160a060020a0389166000818152918452828220805460ff1916981515989098179097558583019690965280855288519085015287517fafd9ae8a0ef793e0d29d570b24ab5f08ffc62c83e68e49cb244b8b9174482b4f958995899550935083926060840192908701918190849084905b83811015610c51578181015183820152602001610c39565b50505050905090810190601f168015610c7e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15060015b92915050565b600554600090610cc490610cb884670de0b6b3a764000063ffffffff61267316565b9063ffffffff61269c16565b90505b919050565b6005547f45544800000000000000000000000000000000000000000000000000000000006000908152600a6020527f1538f2a84824c545ea4387d759caa1528e74c66be2c96d2bb2c65a8afefec962549091610cc491610cb890859063ffffffff61267316565b6060806000610d40613075565b60408051808201909152600181527f7b000000000000000000000000000000000000000000000000000000000000006020820152600b5490935060001015610f4e57600091505b600b54821015610f4957600a6000600b84815481101515610da457fe5b6000918252602080832090910154835282019290925260400190205460ff1615610f3e57600a6000600b84815481101515610ddb57fe5b600091825260208083209091015483528281019390935260409182019020815160e081018352815460ff1615158152600180830154828601526002830154828501526003830154606083015260048301546080830152600583015460a083015260069092015460c0820152825180840190935290825260f960020a60110292820192909252600b8054929350610f3b928692610eb3929091610e92919088908110610e8257fe5b90600052602060002001546126b1565b604080518082019091526002815260f160020a61111d0260208201526127f7565b610ebc84612826565b600b546001870114610f015760408051808201909152600181527f2c000000000000000000000000000000000000000000000000000000000000006020820152610f36565b60408051808201909152600181527f7d0000000000000000000000000000000000000000000000000000000000000060208201525b612c63565b92505b600190910190610d87565b610f89565b60408051808201909152600281527f5b5d00000000000000000000000000000000000000000000000000000000000060208201529350610f8d565b8293505b50505090565b600080546060918291600160a060020a03163314610fb057600080fd5b600454604051908082528060200260200182016040528015610fdc578160200160208202803883390190505b509150600090505b600454811015610b3457600081815260036020526040812054600160a060020a0316111561104d576000818152600360205260409020548251600160a060020a039091169083908390811061103557fe5b600160a060020a039092166020928302909101909101525b600101610fe4565b7f45544800000000000000000000000000000000000000000000000000000000006000908152600a6020527f1538f2a84824c545ea4387d759caa1528e74c66be2c96d2bb2c65a8afefec96254610cc490670de0b6b3a764000090610cb890859063ffffffff61267316565b60055490565b60606000600b838154811015156110da57fe5b506000526020116110f957604080516020810190915260008152610cc4565b610cc4600b83815481101515610e8257fe5b60408051808201909152600181527f7b00000000000000000000000000000000000000000000000000000000000000602082015260609060005b600b54811015610b345761123d8261118560408051908101604052806001815260200160f960020a601102815250610e92600b86815481101515610e8257fe5b6111bf600a6000600b8781548110151561119b57fe5b60009182526020808320909101548352820192909252604001902060010154612c82565b600b5460018601106112045760408051808201909152600181527f7d000000000000000000000000000000000000000000000000000000000000006020820152610f36565b60408051808201909152600181527f2c000000000000000000000000000000000000000000000000000000000000006020820152612c63565b9150600101611145565b60006064830482028381111561125957fe5b80840391505b5092915050565b60408051808201825260118082527f61646455706461746543757272656e637900000000000000000000000000000060208301908152925160009360019284929182918083835b602083106112cc5780518252601f1990920191602091820191016112ad565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382019094203360009081529152929092205460ff1691508190506113225750600054600160a060020a031633145b1515611364576040805160e560020a62461bcd0281526020600480830191909152602482015260e060020a633030373502604482015290519081900360640190fd5b611373848460008060006122e0565b949350505050565b6000828152600a602052604081205460ff16151561139b57506000610c90565b6000838152600a6020526040902060028101546001909101546113ca9190610cb890859063ffffffff61267316565b9392505050565b6000600a60006113e084612d75565b815260208101919091526040016000205460ff1692915050565b600b5490565b600054600160a060020a0316331461141757600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600080548190600160a060020a0316331461148657600080fd5b6000831180156114975750600a8311155b15156114a257600080fd5b506006805490839055604080518281526020810185905281517fda65ce831238cfe2e1b136ac31392a7b54840589a878f986e76b6adefd1391f1929181900390910190a150600192915050565b60408051808201825260118082527f61646455706461746543757272656e637900000000000000000000000000000060208301908152925160009360019284929182918083835b602083106115555780518252601f199092019160209182019101611536565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382019094203360009081529152929092205460ff1691508190506115ab5750600054600160a060020a031633145b15156115ed576040805160e560020a62461bcd0281526020600480830191909152602482015260e060020a633030373502604482015290519081900360640190fd5b6115fb8585856000806122e0565b95945050505050565b6000600a600061161384612d75565b815260208101919091526040016000206003015492915050565b60008054600160a060020a0316331461164557600080fd5b600160a060020a038216151561165a57600080fd5b600180846040518082805190602001908083835b6020831061168d5780518252601f19909201916020918201910161166e565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520600160a060020a0389166000818152918452828220805460ff1916981515989098179097558583019690965280855288519085015287517f4542120b6ce74a2d4aad8f0fd27977307c3137eba47da404678119858c8c833a9589958995509350839260608401929087019181908490849083811015610c51578181015183820152602001610c39565b6000806000806000806000806000611758613075565b60006117638c612d75565b6000818152600a60209081526040808320815160e081018352815460ff16151581526001820154818501526002820154818401526003820154606082018190526004808401546080840152600584015460a084015260069093015460c083015283517f64c7dd120000000000000000000000000000000000000000000000000000000081529283018790526024830152915194975090955030936364c7dd1293604480840194938390030190829087803b15801561182057600080fd5b505af1158015611834573d6000803e3d6000fd5b505050506040513d602081101561184a57600080fd5b8101908080519060200190929190505050905081600001518260200151836040015184606001518560800151858760a001518860c001519a509a509a509a509a509a509a509a50505050919395975091939597565b600054600160a060020a031681565b6000806118ba84612d75565b6000818152600a602052604090205490915060ff1615156118de576000915061125f565b6000818152600a6020526040902060028101546001909101546113739190610cb890869063ffffffff61267316565b6000600a600061191c84612d75565b815260208101919091526040016000206001015492915050565b6000806040805190810160405280600681526020017f61646450617900000000000000000000000000000000000000000000000000008152506001816040518082805190602001908083835b602083106119a15780518252601f199092019160209182019101611982565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382019094203360009081529152929092205460ff1691508190506119f75750600054600160a060020a031633145b1515611a39576040805160e560020a62461bcd0281526020600480830191909152602482015260e060020a633030373502604482015290519081900360640190fd5b60008711611a91576040805160e560020a62461bcd02815260206004820152600160248201527f3100000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008611611ae9576040805160e560020a62461bcd02815260206004820152600160248201527f3200000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008511611b41576040805160e560020a62461bcd02815260206004820152600160248201527f3300000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b611b4a88612d75565b6000818152600a602052604090205490925060ff161515611b6757fe5b6007805486019055600980548501905560088054870190556000828152600a60205260408082206004810180548a0190556003810180548b01905560050180546001019055517f1d3cb9e6f8769cb580022c460168d3cf3f4cc5b8553b06c757a9348b9635d1359190a1506001979650505050505050565b600160a060020a03811660009081526002602052604081205460ff1680611c135750600054600160a060020a038381169116145b15611c2057506001610cc7565b506000919050565b60095481565b60006001836040518082805190602001908083835b60208310611c625780518252601f199092019160209182019101611c43565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382019094203360009081529152929092205460ff169150819050611cbb5750600054600160a060020a038381169116145b15611cc857506001610c90565b50600092915050565b600b5460009081908190811015611df9575060005b600b54811015611df9576000600a6000600b84815481101515611d0557fe5b600091825260208083209091015483528201929092526040019020600301541115611df157600b805430916364c7dd129184908110611d4057fe5b9060005260206000200154600a6000600b86815481101515611d5e57fe5b60009182526020808320909101548352828101939093526040918201812060030154825160e060020a63ffffffff88160281526004810195909552602485015290516044808501949192918390030190829087803b158015611dbf57600080fd5b505af1158015611dd3573d6000803e3d6000fd5b505050506040513d6020811015611de957600080fd5b505191909101905b600101611ce6565b611e0582600654611247565b9250505090565b6000306329ba589a611e1d84611eab565b6040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b158015611e5657600080fd5b505af1158015611e6a573d6000803e3d6000fd5b505050506040513d6020811015611e8057600080fd5b505192915050565b6000610cc4670de0b6b3a7640000610cb86005548561267390919063ffffffff16565b7f45544800000000000000000000000000000000000000000000000000000000006000908152600a6020527f1538f2a84824c545ea4387d759caa1528e74c66be2c96d2bb2c65a8afefec96254610cc490610cb884670de0b6b3a764000063ffffffff61267316565b60008054600160a060020a03163314611f2c57600080fd5b600160a060020a0382161515611f4157600080fd5b600160a060020a03821660009081526002602052604090205460ff1615611f6757600080fd5b600160a060020a0382166000818152600260209081526040808320805460ff191660019081179091556004805485526003845293829020805473ffffffffffffffffffffffffffffffffffffffff191686179055835401909255815192835290517fac1e9ef41b54c676ccf449d83ae6f2624bcdce8f5b93a6b48ce95874c332693d9281900390910190a1506001919050565b60026020526000908152604090205460ff1681565b60075490565b6000806040805190810160405280600e81526020017f75706461746543757272656e63790000000000000000000000000000000000008152506001816040518082805190602001908083835b602083106120805780518252601f199092019160209182019101612061565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382019094203360009081529152929092205460ff1691508190506120d65750600054600160a060020a031633145b1515612118576040805160e560020a62461bcd0281526020600480830191909152602482015260e060020a633030373502604482015290519081900360640190fd5b61212185612d75565b6000818152600a602052604090205490925060ff16151561218c576040805160e560020a62461bcd02815260206004820152600160248201527f3100000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600084116121e4576040805160e560020a62461bcd02815260206004820152600160248201527f3200000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b506000908152600a602052604090206001808201939093554260069091015550919050565b6122486040805190810160405280600681526020017f61646450617900000000000000000000000000000000000000000000000000008152508261162d565b5050565b600054600160a060020a0316331461226357600080fd5b600160a060020a038116151561227857600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806040805190810160405280601181526020017f61646455706461746543757272656e63790000000000000000000000000000008152506001816040518082805190602001908083835b6020831061234b5780518252601f19909201916020918201910161232c565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382019094203360009081529152929092205460ff1691508190506123a15750600054600160a060020a031633145b15156123e3576040805160e560020a62461bcd0281526020600480830191909152602482015260e060020a633030373502604482015290519081900360640190fd5b6000871161243b576040805160e560020a62461bcd02815260206004820152600160248201527f3100000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b61244488612d75565b6000818152600a602052604090205490925060ff16151561249557600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9018290555b6040805160e081018252600181526020810189905290810187156124b957876124cc565b6000848152600a60205260409020600201545b81526000848152600a60209081526040822060030154920191116124f05786612503565b6000848152600a60205260409020600301545b81526000848152600a6020908152604082206004015492019111612527578561253a565b6000848152600a60205260409020600401545b81526000848152600a602090815260408220600501549201911161255f576000612572565b6000848152600a60205260409020600501545b8152426020918201526000938452600a81526040938490208251815460ff191690151517815590820151600180830191909155938201516002820155606082015160038201556080820151600482015560a0820151600582015560c090910151600690910155509695505050505050565b60008054600160a060020a031633146125fb57600080fd5b600160a060020a038216151561261057600080fd5b600160a060020a038216600081815260026020908152604091829020805460ff19169055815192835290517fac6e8398676cf37429d530b81144d7079e99f4fe9d28b0d88c4a749ceccbe8cd9281900390910190a1506001919050565b60085481565b600082151561268457506000610c90565b5081810281838281151561269457fe5b0414610c9057fe5b600081838115156126a957fe5b049392505050565b6040805160208082528183019092526060918291600091829182918591908082016104008038833901905050945060009350600092505b602083101561275d576008830260020a870291507fff000000000000000000000000000000000000000000000000000000000000008216156127525781858581518110151561273357fe5b906020010190600160f860020a031916908160001a9053506001909301925b6001909201916126e8565b836040519080825280601f01601f19166020018201604052801561278b578160200160208202803883390190505b509050600092505b838310156127ed5784838151811015156127a957fe5b90602001015160f860020a900460f860020a0281848151811015156127ca57fe5b906020010190600160f860020a031916908160001a905350600190920191612793565b9695505050505050565b606061137384848460206040519081016040528060008152506020604051908101604052806000815250612d94565b6060610cc461296d6040805190810160405280600181526020017f7b000000000000000000000000000000000000000000000000000000000000008152506128dd60408051908101604052806001815260200160f960020a6011028152506040805190810160405280600381526020017f757364000000000000000000000000000000000000000000000000000000000081525060408051908101604052806002815260200160f160020a61111d028152506127f7565b6128ea8660200151612c82565b604080518082018252600280825260f160020a6116110260208084019190915283518085018552600881527f6465766973696f6e00000000000000000000000000000000000000000000000081830152845180860190955291845260f160020a61111d029084015261295b926127f7565b6129688860400151612c82565b612d94565b612a756129ea60408051908101604052806002815260200160f160020a611611028152506040805190810160405280600681526020017f726169736564000000000000000000000000000000000000000000000000000081525060408051908101604052806002815260200160f160020a61111d028152506127f7565b6129f78660600151612ff5565b604080518082018252600280825260f160020a6116110260208084019190915283518085018552600981527f757364526169736564000000000000000000000000000000000000000000000081830152845180860190955291845260f160020a61111d0290840152612a68926127f7565b610f368860800151612c82565b612b22612af260408051908101604052806002815260200160f160020a611611028152506040805190810160405280601181526020017f75736452616973656443757272656e637900000000000000000000000000000081525060408051908101604052806002815260200160f160020a61111d028152506127f7565b612b1d612b188860400151610cb88a602001518b6060015161267390919063ffffffff16565b612c82565b613040565b610f36612b9f60408051908101604052806002815260200160f160020a611611028152506040805190810160405280600781526020017f636f756e7465720000000000000000000000000000000000000000000000000081525060408051908101604052806002815260200160f160020a61111d028152506127f7565b612bac8860a00151612c82565b604080518082018252600280825260f160020a6116110260208084019190915283518085018552600a81527f6c6173745570646174650000000000000000000000000000000000000000000081830152845180860190955291845260f160020a61111d0290840152612c1d926127f7565b612c2a8a60c00151612c82565b60408051808201909152600181527f7d000000000000000000000000000000000000000000000000000000000000006020820152612d94565b60606115fb858585856020604051908101604052806000815250612d94565b60606000808281851515612ccb5760408051808201909152600181527f300000000000000000000000000000000000000000000000000000000000000060208201529450612d6c565b8593505b8315612ce657600190920191600a84049350612ccf565b826040519080825280601f01601f191660200182016040528015612d14578160200160208202803883390190505b5091505060001982015b8515612d6857815160001982019160f860020a6030600a8a060102918491908110612d4557fe5b906020010190600160f860020a031916908160001a905350600a86049550612d1e565b8194505b50505050919050565b805160009082901515612d8b5760009150610b34565b50506020015190565b6060806060806060806060806000808e98508d97508c96508b95508a94508451865188518a518c51010101016040519080825280601f01601f191660200182016040528015612ded578160200160208202803883390190505b50935083925060009150600090505b8851811015612e5a578881815181101515612e1357fe5b90602001015160f860020a900460f860020a028383806001019450815181101515612e3a57fe5b906020010190600160f860020a031916908160001a905350600101612dfc565b5060005b8751811015612ebc578781815181101515612e7557fe5b90602001015160f860020a900460f860020a028383806001019450815181101515612e9c57fe5b906020010190600160f860020a031916908160001a905350600101612e5e565b5060005b8651811015612f1e578681815181101515612ed757fe5b90602001015160f860020a900460f860020a028383806001019450815181101515612efe57fe5b906020010190600160f860020a031916908160001a905350600101612ec0565b5060005b8551811015612f80578581815181101515612f3957fe5b90602001015160f860020a900460f860020a028383806001019450815181101515612f6057fe5b906020010190600160f860020a031916908160001a905350600101612f22565b5060005b8451811015612fe2578481815181101515612f9b57fe5b90602001015160f860020a900460f860020a028383806001019450815181101515612fc257fe5b906020010190600160f860020a031916908160001a905350600101612f84565b50909d9c50505050505050505050505050565b6060610cc460408051908101604052806001815260200160f960020a60110281525061302084612c82565b604080518082019091526001815260f960020a60110260208201526127f7565b6040805160208181018352600080835283518083018552818152845192830190945281526060926113ca928692869290612d94565b60e06040519081016040528060001515815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250905600a165627a7a723058201452137d68289743de5ab74dd97e9f8b3c2ef8c6fd518b0ad82f63907b47ab830029000000000000000000000000000000000000000000000000000000000000d0aa00000000000000000000000000000000000000000000000000000000000a50a70000000000000000000000000000000000000000000000000000000000000074

    Constructor Arguments (ABI-encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000d0aa00000000000000000000000000000000000000000000000000000000000a50a70000000000000000000000000000000000000000000000000000000000000074

-----Decoded View---------------
Found 3 constructor arguments :
Arg [0] : 000000000000000000000000000000000000000000000000000000000000d0aa
Arg [1] : 00000000000000000000000000000000000000000000000000000000000a50a7
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000074


   Swarm Source:
bzzr://1452137d68289743de5ab74dd97e9f8b3c2ef8c6fd518b0ad82f63907b47ab83

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward