Contract Overview | EtheriscTGE
Balance: 0 Ether
Ether Value: $0
Transactions: 525 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xd4d3e122ba3e69b8b42505a89c73dee03b72e31eat txn 0xc8f7a32e69726a547749e840caca21b70a6074115066aeb828d84bcabcd58bfd
 Latest 25 transactions from a total of 525 transactions

TxHash Age From To Value [TxFee]
0x86f17a5cc154e7f5a82202874caa8250be5e478b69fca8b115b0385cd13b1bab28 days 13 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.000334405
0xa119839d87b6e1c7c471c27427c1e476c2c3a02371b0b55c35deaa278829481568 days 15 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.000694185
0x74e5e478e4c1227e28f5cd86de0753f11ab4dcd189a094ef55e8510cd6973a2371 days 17 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.00333018
0x96c39510f7c2bc69ca403744613184ac506564e0b1a7918d8923ea3cf98fc476105 days 18 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.00133574
0x8bd58deb778a221faa80918263426de6672fefebc1ec1b8fad2d14b6fdd9deaa113 days 18 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.000492276
0x68d003b41f48430354a90fd5c50acd6e420b399d42dda51a16decdfb77bac98d117 days 1 hr ago0x948af1c7a15793cf4db41e4990ec2a7e08a260e5  IN   EtheriscTGE0.001 Ether0.000861
0xc173f73ca87af12755d3d00bc8a80804916f7aeabf1498a529cda424400f4f37118 days 9 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.001685248
0xac3639b0a503a357551901f195c57f4683e6ac0cc7bee2126b0d8ada8d87bbcb119 days 19 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.003023376
0xe3d85fffdf20ab30368abb4e67f7be6dd40a60c98b5430b5cb3eccb90c42f72a126 days 12 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.040340628
0x33e97c5b52fedc436069a16c81da4787b77f129fda359156dd6405015786ddc7126 days 14 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.001494855
0xa37fe87aa0f13ad00dbd757566201ebff9a7ab60158e0d65af2bac07425dd0c5130 days 17 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.00040781
0x0048ed7f57365ba4cf4c8f676525326e6856b579cd4453ae8533581f28bb30ff130 days 17 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.000440255
0xca6f2f5a627dc0be026be4e375332f045fcc464bdb5dd6c330c7508142781a0e131 days 13 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.000315284
0x1993266acedcbd1c5e4aa6ecaebd19441123cc2611c396ef8807d6942764fe6d131 days 15 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.000694105
0x6d6533293281abf8337bc332b17a63e46700b4b251961baaf5d877cd926f4c08133 days 14 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.000666321
0xe661e82726a9eff1612aefcd33a4ef4fd9e49cb45ea83e1bfacccc24aa3d8889133 days 14 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.003968346
0x38dbdd4cfdb22ea5537e6ac6b5203da9c00d1a9f8a11104e27ee53d2a5b33cb4133 days 14 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.003965934
0x950a451bc887b0b2ff7dd71ff95a0c6f800a6eae4ed739764bd760551af8d612133 days 14 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.003964938
0xc7f95536844d9754a75bd951691a6ca81e35fd4879ff42f0c6bf8c276aaec58c133 days 14 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.003965454
0x972f6e936f6c9a9dc68b23d247cb3e405f8ed2a3e53334a033be041dc9da33ed133 days 15 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.003966354
0xb071cc7546a3cc9417dc2bb17cfc834d69b5464f73e9ca89e7284eeb08388727133 days 15 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.003968442
0x06bffed7d8f4cb773971715611651891e6ae435c015483e2810a07b19b303343133 days 15 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.003967158
0x1b760f348da5fbcfc40993c0719dfd7c490692ce8b5198d3d7d855425e06116d133 days 15 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.002643436
0xc6fbfeb52cae2bb0ad01424954c8b15bcdb7761da925e368939f63c617ef9fde133 days 15 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.002644692
0xf1e551074e5bcf557a78b083098a48f9125cf8ddea3ac8f7a209309523b7da0f133 days 15 hrs ago0xd4d3e122ba3e69b8b42505a89c73dee03b72e31e  IN   EtheriscTGE0 Ether0.00661257
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0xfde05824626ebdd95f5adacbb24523361eb0e7fd6c73f61f0aa1a44cbaeb93e26016395141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc3 Ether
0xf59ce62ec52c82d243776f2dad04f9de7436ecaf2b5ee610bd40f7203e552d236016391141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc20 Ether
0x9fd8f68f3ba34e2f387c0602d21eb3160252a3912a34bb1abd79002f017eacbd6016370141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc2.99 Ether
0x4ad5cd39b155dc3bdd207e85facf0985c87f04fcc6eda2d3128bbbb23652ed366016357141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc0.294 Ether
0xd5cb2d031b15afed8b0cbc32e9f13765b265ef7edad4551ea4d36d9cc91c8a176016355141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc10.414877895 Ether
0xb803dea42397b09bf695e340b0294cb5269c216ea336a08b50bffd152dde88096016348141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc50 Ether
0x0b58905b5e8e7ace1bfd6fb41ba4654d8374a103b59035b9152c4e366318cca56016345141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc1 Ether
0x516755c4b494a3a6e1983f36b0b14d13485b9d03913d3a3fca75e9140254750b6016341141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc50 Ether
0xb4c6040b02dab7968ee18373057ae93b26cf75a6ff78a1c8fb0a1f5f878ec6756016334141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc0.010115 Ether
0xaa3e38207806ad64adc0896fdbad4bbcfb0116e2634975da87a9876bc192999f6016325141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc3 Ether
0x85c222cec51c5e0da1ce64bc790642d527a5506f702e01ea847423c0081600156016312141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc5 Ether
0xe17fda723f4e1df777021283b74fff85793b4e5143e7fc78bd3a260b1606c83c6016311141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc10 Ether
0xb6ed992c8fe395c28298e4863e407656ef32341236888bf4d3cbf3c0fc7c5e1a6016307141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc0.02 Ether
0x5fee3e1f6ab3f3526cfac554b0c95f01bb16642ef02aa415b46aea87e648a57d6016307141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc11 Ether
0xe26da1e0f41e65ff3ffd768bdba40995db5af7cf90b3218ac40dc094169d63116016298141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc5.015 Ether
0x1b957d6bca89448f74b0d74c6ff48a1ec620ebba006986c7235f81122ea657536016289141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc1.2437 Ether
0x481c50955f2dfb7056ccf28308488a6ed0dbd820fe274c6d7c7ddf9ce117964e6016271141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc0.6 Ether
0x674af6194c9b68f2c1e33d1d2953baf8a5cf48496b460715d858ed2eda2bcc9b6016254141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc5.04 Ether
0x37464caddd112015c10aa7d4fed181fff20030e9ee0c727f8271b861f4fd3ca66016239141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc0.9937 Ether
0x5925863f1c46b992627598c852f90971c9a51f456fc155113c302c827c574b276016238141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc1 Ether
0x2f501d56f399a0f668a097f13fee5c19082d2f0c1a4eedc5bca0c282fd424a776016225141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc0.35 Ether
0x9ef2b6d97c37f56edf9cab7621388b0047ac7dd401e4906eff26a42adb4143a66016211141 days 13 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc1.5 Ether
0xbde4da85ce287c442acdde5536f3d2627bc58d9f77af93c9fa550d56005736246016204141 days 14 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc0.03 Ether
0xf36434df32a1f0af8e457c21f85ef0280bee143c52b3550cff8c649e1d1576456016180141 days 14 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc1 Ether
0x55b0b0f327149173971df0e62377918ec9b37ff910619824b23b9623c5bcee836016140141 days 14 hrs ago0x00391d08b3e68e476a774ada379258264eb744850x5c3095c53743b8857d6e1d107e5014cdc7b44efc0.05 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: DipTge
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.24;

// File: contracts/tokensale/DipTgeInterface.sol

contract DipTgeInterface {
    function tokenIsLocked(address _contributor) public constant returns (bool);
}

// File: zeppelin-solidity/contracts/ownership/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 OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() {
    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) onlyOwner public {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

// File: zeppelin-solidity/contracts/math/SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal constant 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 constant returns (uint256) {
    assert(b <= a);
    return a - b;
  }

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

// File: zeppelin-solidity/contracts/token/ERC20Basic.sol

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) public constant returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

// File: zeppelin-solidity/contracts/token/BasicToken.sol

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public constant returns (uint256 balance) {
    return balances[_owner];
  }

}

// File: zeppelin-solidity/contracts/token/ERC20.sol

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public constant returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: zeppelin-solidity/contracts/token/StandardToken.sol

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));

    uint256 _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // require (_value <= _allowance);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = _allowance.sub(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

  /**
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   */
  function increaseApproval (address _spender, uint _addedValue)
    returns (bool success) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  function decreaseApproval (address _spender, uint _subtractedValue)
    returns (bool success) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}

// File: zeppelin-solidity/contracts/token/MintableToken.sol

/**
 * @title Mintable token
 * @dev Simple ERC20 Token example, with mintable token creation
 * @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120
 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
 */

contract MintableToken is StandardToken, Ownable {
  event Mint(address indexed to, uint256 amount);
  event MintFinished();

  bool public mintingFinished = false;


  modifier canMint() {
    require(!mintingFinished);
    _;
  }

  /**
   * @dev Function to mint tokens
   * @param _to The address that will receive the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
    totalSupply = totalSupply.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Mint(_to, _amount);
    Transfer(0x0, _to, _amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() onlyOwner public returns (bool) {
    mintingFinished = true;
    MintFinished();
    return true;
  }
}

// File: zeppelin-solidity/contracts/lifecycle/Pausable.sol

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    Unpause();
  }
}

// File: zeppelin-solidity/contracts/token/PausableToken.sol

/**
 * @title Pausable token
 *
 * @dev StandardToken modified with pausable transfers.
 **/

contract PausableToken is StandardToken, Pausable {

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

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

  function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
    return super.approve(_spender, _value);
  }

  function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {
    return super.increaseApproval(_spender, _addedValue);
  }

  function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {
    return super.decreaseApproval(_spender, _subtractedValue);
  }
}

// File: contracts/token/DipToken.sol

/**
 * @title DIP Token
 * @dev The Decentralized Insurance Platform Token.
 * @author Christoph Mussenbrock
 * @copyright 2017 Etherisc GmbH
 */

pragma solidity 0.4.24;





contract DipToken is PausableToken, MintableToken {

  string public constant name = "Decentralized Insurance Protocol";
  string public constant symbol = "DIP";
  uint256 public constant decimals = 18;
  uint256 public constant MAXIMUM_SUPPLY = 10**9 * 10**18; // 1 Billion 1'000'000'000

  DipTgeInterface public DipTokensale;

  constructor() public {
    DipTokensale = DipTgeInterface(owner);
  }

  modifier shouldNotBeLockedIn(address _contributor) {
    // after LockIntTime2, we don't need to check anymore, and
    // the DipTokensale contract is no longer required.
    require(DipTokensale.tokenIsLocked(_contributor) == false);
    _;
  }

  /**
   * @dev Function to mint tokens
   * @param _to The address that will recieve the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _amount) public returns (bool) {
    if (totalSupply.add(_amount) > MAXIMUM_SUPPLY) {
      return false;
    }

    return super.mint(_to, _amount);
  }

  /**
   * Owner can transfer back tokens which have been sent to this contract by mistake.
   * @param  _token address of token contract of the respective tokens
   * @param  _to where to send the tokens
   */
  function salvageTokens(ERC20Basic _token, address _to) onlyOwner public {
    _token.transfer(_to, _token.balanceOf(this));
  }

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

  function transfer(address to, uint256 value) shouldNotBeLockedIn(msg.sender) public returns (bool) {
      return super.transfer(to, value);
  }
}

// File: zeppelin-solidity/contracts/crowdsale/Crowdsale.sol

/**
 * @title Crowdsale
 * @dev Crowdsale is a base contract for managing a token crowdsale.
 * Crowdsales have a start and end timestamps, where investors can make
 * token purchases and the crowdsale will assign them tokens based
 * on a token per ETH rate. Funds collected are forwarded to a wallet
 * as they arrive.
 */
contract Crowdsale {
  using SafeMath for uint256;

  // The token being sold
  MintableToken public token;

  // start and end timestamps where investments are allowed (both inclusive)
  uint256 public startTime;
  uint256 public endTime;

  // address where funds are collected
  address public wallet;

  // how many token units a buyer gets per wei
  uint256 public rate;

  // amount of raised money in wei
  uint256 public weiRaised;

  /**
   * event for token purchase logging
   * @param purchaser who paid for the tokens
   * @param beneficiary who got the tokens
   * @param value weis paid for purchase
   * @param amount amount of tokens purchased
   */
  event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);


  function Crowdsale(uint256 _startTime, uint256 _endTime, uint256 _rate, address _wallet) {
    require(_startTime >= now);
    require(_endTime >= _startTime);
    require(_rate > 0);
    require(_wallet != 0x0);

    token = createTokenContract();
    startTime = _startTime;
    endTime = _endTime;
    rate = _rate;
    wallet = _wallet;
  }

  // creates the token to be sold.
  // override this method to have crowdsale of a specific mintable token.
  function createTokenContract() internal returns (MintableToken) {
    return new MintableToken();
  }


  // fallback function can be used to buy tokens
  function () payable {
    buyTokens(msg.sender);
  }

  // low level token purchase function
  function buyTokens(address beneficiary) public payable {
    require(beneficiary != 0x0);
    require(validPurchase());

    uint256 weiAmount = msg.value;

    // calculate token amount to be created
    uint256 tokens = weiAmount.mul(rate);

    // update state
    weiRaised = weiRaised.add(weiAmount);

    token.mint(beneficiary, tokens);
    TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);

    forwardFunds();
  }

  // send ether to the fund collection wallet
  // override to create custom fund forwarding mechanisms
  function forwardFunds() internal {
    wallet.transfer(msg.value);
  }

  // @return true if the transaction can buy tokens
  function validPurchase() internal constant returns (bool) {
    bool withinPeriod = now >= startTime && now <= endTime;
    bool nonZeroPurchase = msg.value != 0;
    return withinPeriod && nonZeroPurchase;
  }

  // @return true if crowdsale event has ended
  function hasEnded() public constant returns (bool) {
    return now > endTime;
  }


}

// File: contracts/tokensale/DipWhitelistedCrowdsale.sol

/**
 * @title DIP Token Generating Event
 * @dev The Decentralized Insurance Platform Token.
 * @author Christoph Mussenbrock
 * @copyright 2017 Etherisc GmbH
 */

pragma solidity 0.4.24;





contract DipWhitelistedCrowdsale is Ownable {
  using SafeMath for uint256;

  struct ContributorData {
    uint256 allowance;
    uint256 contributionAmount;
    uint256 tokensIssued;
    bool airdrop;
    uint256 bonus;        // 0 == 0%, 4 == 25%, 10 == 10%
    uint256 lockupPeriod; // 0, 1 or 2 (years)
  }

  mapping (address => ContributorData) public contributorList;

  event Whitelisted(address indexed _contributor, uint256 _allowance, bool _airdrop, uint256 _bonus, uint256 _lockupPeriod);

  /**
   * Push contributor data to the contract before the crowdsale
   */
  function editContributors (
    address[] _contributorAddresses,
    uint256[] _contributorAllowance,
    bool[] _airdrop,
    uint256[] _bonus,
    uint256[] _lockupPeriod
  ) onlyOwner public {
    // Check if input data is consistent
    require(
      _contributorAddresses.length == _contributorAllowance.length &&
      _contributorAddresses.length == _airdrop.length &&
      _contributorAddresses.length == _bonus.length &&
      _contributorAddresses.length == _lockupPeriod.length
    );

    for (uint256 cnt = 0; cnt < _contributorAddresses.length; cnt = cnt.add(1)) {
      require(_bonus[cnt] == 0 || _bonus[cnt] == 4 || _bonus[cnt] == 10);
      require(_lockupPeriod[cnt] <= 2);

      address contributor = _contributorAddresses[cnt];
      contributorList[contributor].allowance = _contributorAllowance[cnt];
      contributorList[contributor].airdrop = _airdrop[cnt];
      contributorList[contributor].bonus = _bonus[cnt];
      contributorList[contributor].lockupPeriod = _lockupPeriod[cnt];

      emit Whitelisted(
        _contributorAddresses[cnt],
        _contributorAllowance[cnt],
        _airdrop[cnt],
        _bonus[cnt],
        _lockupPeriod[cnt]
      );
    }
  }

}

// File: zeppelin-solidity/contracts/crowdsale/FinalizableCrowdsale.sol

/**
 * @title FinalizableCrowdsale
 * @dev Extension of Crowdsale where an owner can do extra work
 * after finishing.
 */
contract FinalizableCrowdsale is Crowdsale, Ownable {
  using SafeMath for uint256;

  bool public isFinalized = false;

  event Finalized();

  /**
   * @dev Must be called after crowdsale ends, to do some extra finalization
   * work. Calls the contract's finalization function.
   */
  function finalize() onlyOwner public {
    require(!isFinalized);
    require(hasEnded());

    finalization();
    Finalized();

    isFinalized = true;
  }

  /**
   * @dev Can be overridden to add finalization logic. The overriding function
   * should call super.finalization() to ensure the chain of finalization is
   * executed entirely.
   */
  function finalization() internal {
  }
}

// File: contracts/tokensale/DipTge.sol

/**
 * @title DIP Token Generating Event
 * @notice The Decentralized Insurance Platform Token.
 * @author Christoph Mussenbrock
 *
 * @copyright 2017 Etherisc GmbH
 */

pragma solidity 0.4.24;







contract DipTge is DipWhitelistedCrowdsale, FinalizableCrowdsale {

  using SafeMath for uint256;

  enum state { pendingStart, priorityPass, crowdsale, crowdsaleEnded }

  uint256 public startOpenPpTime;
  uint256 public hardCap;
  uint256 public lockInTime1; // token lock-in period for team, ECA, US accredited investors
  uint256 public lockInTime2; // token lock-in period for founders
  state public crowdsaleState = state.pendingStart;

  event DipTgeStarted(uint256 _time);
  event CrowdsaleStarted(uint256 _time);
  event HardCapReached(uint256 _time);
  event DipTgeEnded(uint256 _time);
  event TokenAllocated(address _beneficiary, uint256 _amount);

  constructor(
    uint256 _startTime,
    uint256 _startOpenPpTime,
    uint256 _endTime,
    uint256 _lockInTime1,
    uint256 _lockInTime2,
    uint256 _hardCap,
    uint256 _rate,
    address _wallet
  )
    Crowdsale(_startTime, _endTime, _rate, _wallet)
    public
  {
    // Check arguments
    require(_startTime >= block.timestamp);
    require(_startOpenPpTime >= _startTime);
    require(_endTime >= _startOpenPpTime);
    require(_lockInTime1 >= _endTime);
    require(_lockInTime2 > _lockInTime1);
    require(_hardCap > 0);
    require(_rate > 0);
    require(_wallet != 0x0);

    // Set contract fields
    startOpenPpTime = _startOpenPpTime;
    hardCap = _hardCap;
    lockInTime1 = _lockInTime1;
    lockInTime2 = _lockInTime2;
    DipToken(token).pause();
  }

  function setRate(uint256 _rate) onlyOwner public {
    require(crowdsaleState == state.pendingStart);

    rate = _rate;
  }

  function unpauseToken() onlyOwner external {
    DipToken(token).unpause();
  }

  /**
   * Calculate the maximum remaining contribution allowed for an address
   * @param  _contributor the address of the contributor
   * @return maxContribution maximum allowed amount in wei
   */
  function calculateMaxContribution(address _contributor) public constant returns (uint256 _maxContribution) {
    uint256 maxContrib = 0;

    if (crowdsaleState == state.priorityPass) {
      maxContrib = contributorList[_contributor].allowance.sub(contributorList[_contributor].contributionAmount);

      if (maxContrib > hardCap.sub(weiRaised)) {
        maxContrib = hardCap.sub(weiRaised);
      }
    } else if (crowdsaleState == state.crowdsale) {
      if (contributorList[_contributor].allowance > 0) {
        maxContrib = hardCap.sub(weiRaised);
      }
    }

    return maxContrib;
  }

  /**
   * Calculate amount of tokens
   * This is used twice:
   * 1) For calculation of token amount plus optional bonus from wei amount contributed
   * In this case, rate is the defined exchange rate of ETH against DIP.
   * 2) For calculation of token amount plus optional bonus from DIP token amount
   * In the second case, rate == 1 because we have already calculated DIP tokens from RSC amount
   * by applying a factor of 10/32.
   * @param _contributor the address of the contributor
   * @param _amount contribution amount
   * @return _tokens amount of tokens
   */
  function calculateTokens(address _contributor, uint256 _amount, uint256 _rate) public constant returns (uint256 _tokens) {
    uint256 bonus = contributorList[_contributor].bonus;

    assert(bonus == 0 || bonus == 4 || bonus == 10);

    if (bonus > 0) {
      _tokens = _amount.add(_amount.div(bonus)).mul(_rate);
    } else {
      _tokens = _amount.mul(_rate);
    }
  }

  /**
   * Set the current state of the crowdsale.
   */
  function setCrowdsaleState() public {
    if (weiRaised >= hardCap && crowdsaleState != state.crowdsaleEnded) {

      crowdsaleState = state.crowdsaleEnded;
      emit HardCapReached(block.timestamp);
      emit DipTgeEnded(block.timestamp);

    } else if (
      block.timestamp >= startTime &&
      block.timestamp < startOpenPpTime &&
      crowdsaleState != state.priorityPass
    ) {

      crowdsaleState = state.priorityPass;
      emit DipTgeStarted(block.timestamp);

    } else if (
      block.timestamp >= startOpenPpTime &&
      block.timestamp <= endTime &&
      crowdsaleState != state.crowdsale
    ) {

      crowdsaleState = state.crowdsale;
      emit CrowdsaleStarted(block.timestamp);

    } else if (
      crowdsaleState != state.crowdsaleEnded &&
      block.timestamp > endTime
    ) {

      crowdsaleState = state.crowdsaleEnded;
      emit DipTgeEnded(block.timestamp);
    }
  }

  /**
   * The token buying function.
   * @param  _beneficiary  receiver of tokens.
   */
  function buyTokens(address _beneficiary) public payable {
    require(_beneficiary != 0x0);
    require(validPurchase());
    require(contributorList[_beneficiary].airdrop == false);

    setCrowdsaleState();

    uint256 weiAmount = msg.value;
    uint256 maxContrib = calculateMaxContribution(_beneficiary);
    uint256 refund;

    if (weiAmount > maxContrib) {
      refund = weiAmount.sub(maxContrib);
      weiAmount = maxContrib;
    }

    // stop here if transaction does not yield tokens
    require(weiAmount > 0);

    // calculate token amount to be created
    uint256 tokens = calculateTokens(_beneficiary, weiAmount, rate);

    assert(tokens > 0);

    // update state
    weiRaised = weiRaised.add(weiAmount);

    require(token.mint(_beneficiary, tokens));
    emit TokenPurchase(msg.sender, _beneficiary, weiAmount, tokens);

    contributorList[_beneficiary].contributionAmount = contributorList[_beneficiary].contributionAmount.add(weiAmount);
    contributorList[_beneficiary].tokensIssued = contributorList[_beneficiary].tokensIssued.add(tokens);

    wallet.transfer(weiAmount);

    if (refund != 0) _beneficiary.transfer(refund);
  }

  /**
   * Check if token is locked.
   */
  function tokenIsLocked(address _contributor) public constant returns (bool) {

    if (block.timestamp < lockInTime1 && contributorList[_contributor].lockupPeriod == 1) {
      return true;
    } else if (block.timestamp < lockInTime2 && contributorList[_contributor].lockupPeriod == 2) {
      return true;
    }

    return false;

  }


  /**
   * Distribute tokens to selected team members & founders.
   * Unit of Allowance is ETH and is converted in number of tokens by multiplying with Rate.
   * This can be called by any whitelisted beneficiary.
   */
  function airdrop() public {
    airdropFor(msg.sender);
  }


  /**
   * Alternatively to airdrop(); tokens can be directly sent to beneficiaries by this function
   * This can be called only once.
   */
  function airdropFor(address _beneficiary) public {
    require(_beneficiary != 0x0);
    require(contributorList[_beneficiary].airdrop == true);
    require(contributorList[_beneficiary].tokensIssued == 0);
    require(contributorList[_beneficiary].allowance > 0);

    setCrowdsaleState();

    require(crowdsaleState == state.crowdsaleEnded);

    uint256 amount = contributorList[_beneficiary].allowance.mul(rate);
    require(token.mint(_beneficiary, amount));
    emit TokenAllocated(_beneficiary, amount);

    contributorList[_beneficiary].tokensIssued = contributorList[_beneficiary].tokensIssued.add(amount);
  }

  /**
   * Creates an new ERC20 Token contract for the DIP Token.
   * Overrides Crowdsale function
   * @return the created token
   */
  function createTokenContract() internal returns (MintableToken) {
    return new DipToken();
  }

  /**
   * Finalize sale and perform cleanup actions.
   */
  function finalization() internal {
    uint256 maxSupply = DipToken(token).MAXIMUM_SUPPLY();
    token.mint(wallet, maxSupply.sub(token.totalSupply())); // Alternativly, hardcode remaining token distribution.
    token.finishMinting();
    token.transferOwnership(owner);
  }

  /**
   * Owner can transfer back tokens which have been sent to this contract by mistake.
   * @param  _token address of token contract of the respective tokens
   * @param  _to where to send the tokens
   */
  function salvageTokens(ERC20Basic _token, address _to) onlyOwner external {
    _token.transfer(_to, _token.balanceOf(this));
  }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"_contributor","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_rate","type":"uint256"}],"name":"calculateTokens","outputs":[{"name":"_tokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"airdrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_contributor","type":"address"}],"name":"tokenIsLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"airdropFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpauseToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_contributor","type":"address"}],"name":"calculateMaxContribution","outputs":[{"name":"_maxContribution","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"name":"","type":"bool"}],"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":"","type":"address"}],"name":"contributorList","outputs":[{"name":"allowance","type":"uint256"},{"name":"contributionAmount","type":"uint256"},{"name":"tokensIssued","type":"uint256"},{"name":"airdrop","type":"bool"},{"name":"bonus","type":"uint256"},{"name":"lockupPeriod","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockInTime2","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setCrowdsaleState","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_contributorAddresses","type":"address[]"},{"name":"_contributorAllowance","type":"uint256[]"},{"name":"_airdrop","type":"bool[]"},{"name":"_bonus","type":"uint256[]"},{"name":"_lockupPeriod","type":"uint256[]"}],"name":"editContributors","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_to","type":"address"}],"name":"salvageTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startOpenPpTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockInTime1","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","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"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_startOpenPpTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_lockInTime1","type":"uint256"},{"name":"_lockInTime2","type":"uint256"},{"name":"_hardCap","type":"uint256"},{"name":"_rate","type":"uint256"},{"name":"_wallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_time","type":"uint256"}],"name":"DipTgeStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_time","type":"uint256"}],"name":"CrowdsaleStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_time","type":"uint256"}],"name":"HardCapReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_time","type":"uint256"}],"name":"DipTgeEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_beneficiary","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"TokenAllocated","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_contributor","type":"address"},{"indexed":false,"name":"_allowance","type":"uint256"},{"indexed":false,"name":"_airdrop","type":"bool"},{"indexed":false,"name":"_bonus","type":"uint256"},{"indexed":false,"name":"_lockupPeriod","type":"uint256"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526008805460ff19908116909155600d805490911690553480156200002757600080fd5b506040516101008062002bb683398101604090815281516020830151918301516060840151608085015160a086015160c087015160e090970151949693949293919290919087868383428410156200007e57600080fd5b838310156200008c57600080fd5b600082116200009a57600080fd5b600160a060020a0381161515620000b057600080fd5b620000c36401000000006200021a810204565b60008054600160a060020a03928316600160a060020a03199182161790915560019590955560029390935560049190915560038054919092169083161790556006805490911633179055428810156200011b57600080fd5b878710156200012957600080fd5b868610156200013757600080fd5b858510156200014557600080fd5b8484116200015257600080fd5b600083116200016057600080fd5b600082116200016e57600080fd5b600160a060020a03811615156200018457600080fd5b6009879055600a839055600b859055600c84905560008054604080517f8456cb590000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692638456cb599260048084019382900301818387803b158015620001f357600080fd5b505af115801562000208573d6000803e3d6000fd5b5050505050505050505050506200025a565b60006200022662000249565b604051809103906000f08015801562000243573d6000803e3d6000fd5b50905090565b6040516110c68062001af083390190565b611886806200026a6000396000f3006080604052600436106101505763ffffffff60e060020a6000350416631adda83a811461015b5780632c4e722e146101945780633197cbb6146101a957806334fcf437146101be5780633884d635146101d65780633e03c84f146101eb5780634042b66f146102205780634bb278f3146102355780634faf94201461024a57806350669a031461026b578063521eb273146102805780635f2536f7146102b157806378e97925146102d25780638d4e4083146102e75780638da5cb5b146102fc57806392acb4d6146103115780639ff1b56f14610365578063b5cb06111461037a578063b70949c91461038f578063bb957493146104c8578063d3087ff5146104ef578063e7bb523314610504578063ebf652cc1461053d578063ec8ac4d814610552578063ecb70fb714610566578063f2fde38b1461057b578063fb86a4041461059c578063fc0c546a146105b1575b610159336105c6565b005b34801561016757600080fd5b50610182600160a060020a0360043516602435604435610875565b60408051918252519081900360200190f35b3480156101a057600080fd5b5061018261090c565b3480156101b557600080fd5b50610182610912565b3480156101ca57600080fd5b50610159600435610918565b3480156101e257600080fd5b50610159610951565b3480156101f757600080fd5b5061020c600160a060020a036004351661095c565b604080519115158252519081900360200190f35b34801561022c57600080fd5b506101826109d9565b34801561024157600080fd5b506101596109df565b34801561025657600080fd5b50610159600160a060020a0360043516610a59565b34801561027757600080fd5b50610159610c73565b34801561028c57600080fd5b50610295610cfe565b60408051600160a060020a039092168252519081900360200190f35b3480156102bd57600080fd5b50610182600160a060020a0360043516610d0d565b3480156102de57600080fd5b50610182610dea565b3480156102f357600080fd5b5061020c610df0565b34801561030857600080fd5b50610295610df9565b34801561031d57600080fd5b50610332600160a060020a0360043516610e08565b604080519687526020870195909552858501939093529015156060850152608084015260a0830152519081900360c00190f35b34801561037157600080fd5b50610182610e41565b34801561038657600080fd5b50610159610e47565b34801561039b57600080fd5b506040805160206004803580820135838102808601850190965280855261015995369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375094975061104b9650505050505050565b3480156104d457600080fd5b50610159600160a060020a0360043581169060243516611324565b3480156104fb57600080fd5b5061018261144a565b34801561051057600080fd5b50610519611450565b6040518082600381111561052957fe5b60ff16815260200191505060405180910390f35b34801561054957600080fd5b50610182611459565b610159600160a060020a03600435166105c6565b34801561057257600080fd5b5061020c61145f565b34801561058757600080fd5b50610159600160a060020a0360043516611467565b3480156105a857600080fd5b506101826114fc565b3480156105bd57600080fd5b50610295611502565b6000808080600160a060020a03851615156105e057600080fd5b6105e8611511565b15156105f357600080fd5b600160a060020a03851660009081526007602052604090206003015460ff161561061c57600080fd5b610624610e47565b34935061063085610d0d565b9250828411156106505761064a848463ffffffff61154116565b91508293505b6000841161065d57600080fd5b61066a8585600454610875565b90506000811161067657fe5b600554610689908563ffffffff61155316565b60055560008054604080517f40c10f19000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015260248201869052915191909216926340c10f1992604480820193602093909283900390910190829087803b1580156106fe57600080fd5b505af1158015610712573d6000803e3d6000fd5b505050506040513d602081101561072857600080fd5b5051151561073557600080fd5b60408051858152602081018390528151600160a060020a0388169233927f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18929081900390910190a3600160a060020a0385166000908152600760205260409020600101546107a9908563ffffffff61155316565b600160a060020a03861660009081526007602052604090206001810191909155600201546107dd908263ffffffff61155316565b600160a060020a03808716600090815260076020526040808220600201939093556003549251929091169186156108fc0291879190818181858888f1935050505015801561082f573d6000803e3d6000fd5b50811561086e57604051600160a060020a0386169083156108fc029084906000818181858888f1935050505015801561086c573d6000803e3d6000fd5b505b5050505050565b600160a060020a03831660009081526007602052604081206004015480158061089e5750806004145b806108a9575080600a145b15156108b157fe5b60008111156108f1576108ea836108de6108d1878563ffffffff61156916565b879063ffffffff61155316565b9063ffffffff61158016565b9150610904565b610901848463ffffffff61158016565b91505b509392505050565b60045481565b60025481565b600654600160a060020a0316331461092f57600080fd5b6000600d5460ff16600381111561094257fe5b1461094c57600080fd5b600455565b61095a33610a59565b565b6000600b544210801561098a5750600160a060020a0382166000908152600760205260409020600501546001145b15610997575060016109d4565b600c54421080156109c35750600160a060020a0382166000908152600760205260409020600501546002145b156109d0575060016109d4565b5060005b919050565b60055481565b600654600160a060020a031633146109f657600080fd5b60085460ff1615610a0657600080fd5b610a0e61145f565b1515610a1957600080fd5b610a216115a4565b6040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a16008805460ff19166001179055565b6000600160a060020a0382161515610a7057600080fd5b600160a060020a03821660009081526007602052604090206003015460ff161515600114610a9d57600080fd5b600160a060020a03821660009081526007602052604090206002015415610ac357600080fd5b600160a060020a03821660009081526007602052604081205411610ae657600080fd5b610aee610e47565b6003600d5460ff166003811115610b0157fe5b14610b0b57600080fd5b600454600160a060020a038316600090815260076020526040902054610b369163ffffffff61158016565b60008054604080517f40c10f19000000000000000000000000000000000000000000000000000000008152600160a060020a0387811660048301526024820186905291519495509116926340c10f1992604480840193602093929083900390910190829087803b158015610ba957600080fd5b505af1158015610bbd573d6000803e3d6000fd5b505050506040513d6020811015610bd357600080fd5b50511515610be057600080fd5b60408051600160a060020a03841681526020810183905281517f355d073376c545ace08b6df926659a4228940d3214a213a7f300f2ad3ca10ce2929181900390910190a1600160a060020a038216600090815260076020526040902060020154610c50908263ffffffff61155316565b600160a060020a0390921660009081526007602052604090206002019190915550565b600654600160a060020a03163314610c8a57600080fd5b60008054604080517f3f4ba83a0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692633f4ba83a9260048084019382900301818387803b158015610ce457600080fd5b505af1158015610cf8573d6000803e3d6000fd5b50505050565b600354600160a060020a031681565b6000806001600d5460ff166003811115610d2357fe5b1415610d9457600160a060020a038316600090815260076020526040902060018101549054610d579163ffffffff61154116565b9050610d70600554600a5461154190919063ffffffff16565b811115610d8f57600554600a54610d8c9163ffffffff61154116565b90505b610de4565b6002600d5460ff166003811115610da757fe5b1415610de457600160a060020a0383166000908152600760205260408120541115610de457600554600a54610de19163ffffffff61154116565b90505b92915050565b60015481565b60085460ff1681565b600654600160a060020a031681565b60076020526000908152604090208054600182015460028301546003840154600485015460059095015493949293919260ff9091169186565b600c5481565b600a5460055410158015610e6c57506003600d5460ff166003811115610e6957fe5b14155b15610eea57600d805460ff191660031790556040805142815290517f4f27c566270debe1b8a29c9ff8413f6e10dc1757ddfb9e667cc2cc205042946d916020908290030190a16040805142815290517f2f5acfa415b12b6c51cfab9440997eb8391c513f2e8fe90ba8cd19b851facdda9181900360200190a161095a565b6001544210158015610efd575060095442105b8015610f1a57506001600d5460ff166003811115610f1757fe5b14155b15610f6557600d805460ff191660011790556040805142815290517f7ae66aa6794e64276976d872ac7e8376771c141ca007c7d540cf6c3a4e20d9d3916020908290030190a161095a565b6009544210158015610f7957506002544211155b8015610f9657506002600d5460ff166003811115610f9357fe5b14155b15610fe157600d805460ff191660021790556040805142815290517f712173de1d50109191e0d0671c67415bf3d44508558069796106054c5600d501916020908290030190a161095a565b6003600d5460ff166003811115610ff457fe5b14158015611003575060025442115b1561095a57600d805460ff191660031790556040805142815290517f2f5acfa415b12b6c51cfab9440997eb8391c513f2e8fe90ba8cd19b851facdda916020908290030190a1565b6006546000908190600160a060020a0316331461106757600080fd5b85518751148015611079575084518751145b8015611086575083518751145b8015611093575082518751145b151561109e57600080fd5b600091505b865182101561131b5783828151811015156110ba57fe5b90602001906020020151600014806110e9575083828151811015156110db57fe5b906020019060200201516004145b8061110b575083828151811015156110fd57fe5b90602001906020020151600a145b151561111657600080fd5b6002838381518110151561112657fe5b60209081029091010151111561113b57600080fd5b868281518110151561114957fe5b906020019060200201519050858281518110151561116357fe5b6020908102909101810151600160a060020a03831660009081526007909252604090912055845185908390811061119657fe5b602090810291909101810151600160a060020a038316600090815260079092526040909120600301805460ff191691151591909117905583518490839081106111db57fe5b6020908102909101810151600160a060020a03831660009081526007909252604090912060040155825183908390811061121157fe5b6020908102909101810151600160a060020a03831660009081526007909252604090912060050155865187908390811061124757fe5b90602001906020020151600160a060020a03167f77c09a19fcd5375bb199fef6f7ff5c86bb393ad9b0574d097475dbec3263d43d878481518110151561128957fe5b9060200190602002015187858151811015156112a157fe5b9060200190602002015187868151811015156112b957fe5b9060200190602002015187878151811015156112d157fe5b60209081029091018101516040805195865293151591850191909152838301919091526060830152519081900360800190a261131482600163ffffffff61155316565b91506110a3565b50505050505050565b600654600160a060020a0316331461133b57600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a0384169163a9059cbb91849184916370a08231916024808201926020929091908290030181600087803b1580156113a757600080fd5b505af11580156113bb573d6000803e3d6000fd5b505050506040513d60208110156113d157600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561142057600080fd5b505af1158015611434573d6000803e3d6000fd5b505050506040513d6020811015610cf857600080fd5b60095481565b600d5460ff1681565b600b5481565b600254421190565b600654600160a060020a0316331461147e57600080fd5b600160a060020a038116151561149357600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a5481565b600054600160a060020a031681565b6000806000600154421015801561152a57506002544211155b91505034151581801561153a5750805b9250505090565b60008282111561154d57fe5b50900390565b60008282018381101561156257fe5b9392505050565b600080828481151561157757fe5b04949350505050565b600082820283158061159c575082848281151561159957fe5b04145b151561156257fe5b60008060009054906101000a9004600160a060020a0316600160a060020a0316633d0c49246040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156115f857600080fd5b505af115801561160c573d6000803e3d6000fd5b505050506040513d602081101561162257600080fd5b505160008054600354604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051949550600160a060020a03928316946340c10f199492909316926116d49286926318160ddd9260048083019360209383900390910190829087803b15801561169b57600080fd5b505af11580156116af573d6000803e3d6000fd5b505050506040513d60208110156116c557600080fd5b5051859063ffffffff61154116565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561172657600080fd5b505af115801561173a573d6000803e3d6000fd5b505050506040513d602081101561175057600080fd5b505060008054604080517f7d64bcb40000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692637d64bcb4926004808401936020939083900390910190829087803b1580156117b357600080fd5b505af11580156117c7573d6000803e3d6000fd5b505050506040513d60208110156117dd57600080fd5b505060008054600654604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201529051919092169263f2fde38b926024808201939182900301818387803b15801561184657600080fd5b505af115801561086e573d6000803e3d6000fd00a165627a7a72305820ab1d48b0ec09c9f04b81174885703b2beb0971d4e215cfcad8a7fd93a2fba2f1002960806040526003805460a060020a61ffff021916905534801561002157600080fd5b5060038054600160a060020a031990811633179182905560048054909116600160a060020a0392909216919091179055611066806100606000396000f3006080604052600436106101275763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461012c57806306fdde0314610155578063095ea7b3146101df57806318160ddd1461020357806323b872dd1461022a578063313ce567146102545780633d0c4924146102695780633f4ba83a1461027e57806340c10f19146102955780635c975abb146102b957806366188463146102ce57806370a08231146102f25780637d64bcb4146103135780638456cb59146103285780638da5cb5b1461033d57806395d89b411461036e578063a9059cbb14610383578063bb957493146103a7578063d73dd623146103ce578063dd62ed3e146103f2578063e63b6b8714610419578063f2fde38b1461042e575b600080fd5b34801561013857600080fd5b5061014161044f565b604080519115158252519081900360200190f35b34801561016157600080fd5b5061016a610471565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a457818101518382015260200161018c565b50505050905090810190601f1680156101d15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101eb57600080fd5b50610141600160a060020a03600435166024356104aa565b34801561020f57600080fd5b506102186104d7565b60408051918252519081900360200190f35b34801561023657600080fd5b50610141600160a060020a03600435811690602435166044356104dd565b34801561026057600080fd5b50610218610593565b34801561027557600080fd5b50610218610598565b34801561028a57600080fd5b506102936105a8565b005b3480156102a157600080fd5b50610141600160a060020a0360043516602435610620565b3480156102c557600080fd5b5061014161065a565b3480156102da57600080fd5b50610141600160a060020a036004351660243561066a565b3480156102fe57600080fd5b50610218600160a060020a036004351661068e565b34801561031f57600080fd5b506101416106a9565b34801561033457600080fd5b50610293610729565b34801561034957600080fd5b506103526107a6565b60408051600160a060020a039092168252519081900360200190f35b34801561037a57600080fd5b5061016a6107b5565b34801561038f57600080fd5b50610141600160a060020a03600435166024356107ec565b3480156103b357600080fd5b50610293600160a060020a036004358116906024351661089c565b3480156103da57600080fd5b50610141600160a060020a03600435166024356109e1565b3480156103fe57600080fd5b50610218600160a060020a0360043581169060243516610a05565b34801561042557600080fd5b50610352610a30565b34801561043a57600080fd5b50610293600160a060020a0360043516610a3f565b6003547501000000000000000000000000000000000000000000900460ff1681565b6040805190810160405280602081526020017f446563656e7472616c697a656420496e737572616e63652050726f746f636f6c81525081565b60035460009060a060020a900460ff16156104c457600080fd5b6104ce8383610ad4565b90505b92915050565b60005481565b60048054604080517f3e03c84f000000000000000000000000000000000000000000000000000000008152600160a060020a0380881694820194909452905160009387931691633e03c84f91602480830192602092919082900301818887803b15801561054957600080fd5b505af115801561055d573d6000803e3d6000fd5b505050506040513d602081101561057357600080fd5b50511561057f57600080fd5b61058a858585610b3a565b95945050505050565b601281565b6b033b2e3c9fd0803ce800000081565b600354600160a060020a031633146105bf57600080fd5b60035460a060020a900460ff1615156105d757600080fd5b6003805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600080546b033b2e3c9fd0803ce800000090610642908463ffffffff610b5f16565b1115610650575060006104d1565b6104ce8383610b75565b60035460a060020a900460ff1681565b60035460009060a060020a900460ff161561068457600080fd5b6104ce8383610c92565b600160a060020a031660009081526001602052604090205490565b600354600090600160a060020a031633146106c357600080fd5b6003805475ff000000000000000000000000000000000000000000191675010000000000000000000000000000000000000000001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b600354600160a060020a0316331461074057600080fd5b60035460a060020a900460ff161561075757600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600354600160a060020a031681565b60408051808201909152600381527f4449500000000000000000000000000000000000000000000000000000000000602082015281565b60048054604080517f3e03c84f00000000000000000000000000000000000000000000000000000000815233938101849052905160009392600160a060020a031691633e03c84f91602480830192602092919082900301818887803b15801561085457600080fd5b505af1158015610868573d6000803e3d6000fd5b505050506040513d602081101561087e57600080fd5b50511561088a57600080fd5b6108948484610d82565b949350505050565b600354600160a060020a031633146108b357600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a0384169163a9059cbb91849184916370a08231916024808201926020929091908290030181600087803b15801561091f57600080fd5b505af1158015610933573d6000803e3d6000fd5b505050506040513d602081101561094957600080fd5b5051604080517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156109b157600080fd5b505af11580156109c5573d6000803e3d6000fd5b505050506040513d60208110156109db57600080fd5b50505050565b60035460009060a060020a900460ff16156109fb57600080fd5b6104ce8383610da6565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600354600160a060020a03163314610a5657600080fd5b600160a060020a0381161515610a6b57600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60035460009060a060020a900460ff1615610b5457600080fd5b610894848484610e3f565b600082820183811015610b6e57fe5b9392505050565b600354600090600160a060020a03163314610b8f57600080fd5b6003547501000000000000000000000000000000000000000000900460ff1615610bb857600080fd5b600054610bcb908363ffffffff610b5f16565b6000908155600160a060020a038416815260016020526040902054610bf6908363ffffffff610b5f16565b600160a060020a038416600081815260016020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b336000908152600260209081526040808320600160a060020a038616845290915281205480831115610ce757336000908152600260209081526040808320600160a060020a0388168452909152812055610d1c565b610cf7818463ffffffff610f6116565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60035460009060a060020a900460ff1615610d9c57600080fd5b6104ce8383610f73565b336000908152600260209081526040808320600160a060020a0386168452909152812054610dda908363ffffffff610b5f16565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600080600160a060020a0384161515610e5757600080fd5b50600160a060020a03841660008181526002602090815260408083203384528252808320549383526001909152902054610e97908463ffffffff610f6116565b600160a060020a038087166000908152600160205260408082209390935590861681522054610ecc908463ffffffff610b5f16565b600160a060020a038516600090815260016020526040902055610ef5818463ffffffff610f6116565b600160a060020a03808716600081815260026020908152604080832033845282529182902094909455805187815290519288169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3506001949350505050565b600082821115610f6d57fe5b50900390565b6000600160a060020a0383161515610f8a57600080fd5b33600090815260016020526040902054610faa908363ffffffff610f6116565b3360009081526001602052604080822092909255600160a060020a03851681522054610fdc908363ffffffff610b5f16565b600160a060020a0384166000818152600160209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506001929150505600a165627a7a72305820dcbfff5de4a3b0f5ca6944f78565e29b6302d9417dd58bc7746af97037c3c3700029000000000000000000000000000000000000000000000000000000005b310370000000000000000000000000000000000000000000000000000000005b379af0000000000000000000000000000000000000000000000000000000005b55ed70000000000000000000000000000000000000000000000000000000005d3720f0000000000000000000000000000000000000000000000000000000005f19a5f0000000000000000000000000000000000000000000000cb49b44ba602d80000000000000000000000000000000000000000000000000000000000000000013880000000000000000000000005c3095c53743b8857d6e1d107e5014cdc7b44efc

    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000005b310370000000000000000000000000000000000000000000000000000000005b379af0000000000000000000000000000000000000000000000000000000005b55ed70000000000000000000000000000000000000000000000000000000005d3720f0000000000000000000000000000000000000000000000000000000005f19a5f0000000000000000000000000000000000000000000000cb49b44ba602d80000000000000000000000000000000000000000000000000000000000000000013880000000000000000000000005c3095c53743b8857d6e1d107e5014cdc7b44efc

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005b310370
Arg [1] : 000000000000000000000000000000000000000000000000000000005b379af0
Arg [2] : 000000000000000000000000000000000000000000000000000000005b55ed70
Arg [3] : 000000000000000000000000000000000000000000000000000000005d3720f0
Arg [4] : 000000000000000000000000000000000000000000000000000000005f19a5f0
Arg [5] : 000000000000000000000000000000000000000000000cb49b44ba602d800000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000001388
Arg [7] : 0000000000000000000000005c3095c53743b8857d6e1d107e5014cdc7b44efc


   Swarm Source:
bzzr://dcbfff5de4a3b0f5ca6944f78565e29b6302d9417dd58bc7746af97037c3c370

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.