Contract Overview
Balance: 0 Ether
Transactions: 2 txns
 Latest 2 txns

TxHash Age From To Value [TxFee]
0x5a2451d6eff3de5c57abba67c52487ff0243a591ba47794b9361a92c1a9eb9d526 days 14 hrs ago0xe73168deb6831502ffc1f437e4835a3ea12d69b7  IN   0xeab271a01fe3a5ce73301403a4a4d32b09de62be0 Ether0.00055725
0x95ba8e19227c3407993ada36f457c8994871e12ef5ae06c59ff61525c68da3ae26 days 14 hrs ago0xa803c226c8281550454523191375695928dcfe92  IN   0xeab271a01fe3a5ce73301403a4a4d32b09de62be0 Ether0.0008047495


[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 2 Internal Transactions

ParentTxHash Block Age From To Value
0x5a2451d6eff3de5c57abba67c52487ff0243a591ba47794b9361a92c1a9eb9d5486595526 days 14 hrs ago0xeab271a01fe3a5ce73301403a4a4d32b09de62be0xa9beb993deebbc120f97d2ac15bae2e325031baf0 Ether
0x90944eb7882bcd25cf0fde313501cee050658c24b5e3b3d658a4f091eae4de41486577326 days 15 hrs ago0xa9beb993deebbc120f97d2ac15bae2e325031baf  Contract Creation0 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact Match)
Contract Name: MultiSignatureVault
Compiler Version: v0.5.0+commit.1d4f565a
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.5.0;

// File: contracts/math/SafeMath.sol

library SafeMath {

  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) return 0;

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

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0);
    uint256 c = a / b;
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a);
    uint256 c = a - b;
    return c;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a);

    return c;
  }

  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}

// File: contracts/blacklist/Blacklist.sol

library Blacklist {
  struct List {
    mapping(address => bool) registry;
  }
  function add(List storage list, address beneficiary) internal {
    list.registry[beneficiary] = true;
  }
  function remove(List storage list, address beneficiary) internal {
    list.registry[beneficiary] = false;
  }
  function check(List storage list, address beneficiary) view internal returns (bool) {
    return list.registry[beneficiary];
  }
}

// File: contracts/ownership/Ownable.sol

contract Ownable {
    address public owner;
    address public pendingOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

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

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    modifier onlyPendingOwner() {
        require(msg.sender == pendingOwner);
        _;
    }

    function newOwner(address _newOwner) external onlyOwner {
        pendingOwner = _newOwner;
    }

    function claimOwnership() external onlyPendingOwner {
        emit OwnershipTransferred(owner, pendingOwner);
        owner = pendingOwner;
        pendingOwner = address(0);
    }
}

// File: contracts/blacklist/Blacklisted.sol

contract Blacklisted is Ownable {
  Blacklist.List private _list;
  modifier whenNotFrozen() {
    require(Blacklist.check(_list, msg.sender) == false);
    _;
  }
  event AddressAdded(address[] beneficiary);
  event AddressRemoved(address[] beneficiary);

  function freezeAccount(address[] calldata _beneficiary) external onlyOwner {
    for (uint256 i = 0; i < _beneficiary.length; i++) {
      Blacklist.add(_list, _beneficiary[i]);
    }
    emit AddressAdded(_beneficiary);
  }

  function deFreezeAccount(address[] calldata _beneficiary) external onlyOwner {
    for (uint256 i = 0; i < _beneficiary.length; i++) {
      Blacklist.remove(_list, _beneficiary[i]);
    }
    emit AddressRemoved(_beneficiary);
  }

  function isFrozen(address _beneficiary) external view returns (bool){
    return Blacklist.check(_list, _beneficiary);
  }
}

// File: contracts/lifecycle/Pausable.sol

contract Pausable is Ownable {

  event Pause();
  event Unpause();

  bool public paused = false;

  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  modifier whenPaused() {
    require(paused);
    _;
  }

  function pause() onlyOwner whenNotPaused external {
    paused = true;
    emit Pause();
  }

  function unpause() onlyOwner whenPaused external {
    paused = false;
    emit Unpause();
  }
}

// File: contracts/token/BasicInterface.sol

contract ERC20 {
    function balanceOf(address tokenOwner) public view returns (uint balance);
    function allowance(address tokenOwner, address spender) public view returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

// File: contracts/token/BasicToken.sol

contract BasicToken is ERC20 {
  using SafeMath for uint256;

  mapping(address => uint256) balances;
  uint256 public _totalSupply;

  function totalSupply() public view returns (uint256) {
    return _totalSupply;
  }

  function balanceOf(address owner) public view returns (uint256 balance) {
    return balances[owner];
  }

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

  function _transfer(address from, address to, uint256 value) internal {
    require(to != address(0));
    balances[from] = balances[from].sub(value);
    balances[to] = balances[to].add(value);
    emit Transfer(from, to, value);
  }

}

// File: contracts/token/StandardToken.sol

contract StandardToken is BasicToken {
  mapping (address => mapping (address => uint256)) allowed;

  function transferFrom(address from, address to, uint256 value) public returns (bool) {
    allowed[from][msg.sender] = allowed[from][msg.sender].sub(value);
    _transfer(from, to, value);
    emit Approval(from, msg.sender, allowed[from][msg.sender]);
    return true;
  }

  function approve(address spender, uint256 value) public returns (bool) {
    allowed[msg.sender][spender] = value;
    emit Approval(msg.sender, spender, value);
    return true;
  }

  function allowance(address owner, address spender) public view returns (uint256 remaining) {
    return allowed[owner][spender];
  }

  function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
    require(spender != address(0));
    allowed[msg.sender][spender] = allowed[msg.sender][spender].add(addedValue);
    emit Approval(msg.sender, spender, allowed[msg.sender][spender]);
    return true;
  }

  function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
    require(spender != address(0));
    allowed[msg.sender][spender] = allowed[msg.sender][spender].sub(subtractedValue);
    emit Approval(msg.sender, spender, allowed[msg.sender][spender]);
    return true;
  }
}

// File: contracts/token/BurnableToken.sol

contract BurnableToken is StandardToken {

  function burn(address account, uint256 value) public {
    require(account != address(0));
    _totalSupply = _totalSupply.sub(value);
    balances[account] = balances[account].sub(value);
    emit Transfer(account, address(0), value);
  }

  function burnFrom(address account, uint256 value) public {
    allowed[account][msg.sender] = allowed[account][msg.sender].sub(value);
    burn(account, value);
    emit Approval(account, msg.sender, allowed[account][msg.sender]);
  }

}

// File: contracts/ownership/Multiownable.sol

contract Multiownable {

  uint256 public ownersGeneration;
  uint256 public howManyOwnersDecide;
  address[] public owners;
  bytes32[] public allOperations;
  address internal insideCallSender;
  uint256 internal insideCallCount;

  // Reverse lookup tables for owners and allOperations
  mapping(address => uint) public ownersIndices;
  mapping(bytes32 => uint) public allOperationsIndicies;

  // Owners voting mask per operations
  mapping(bytes32 => uint256) public votesMaskByOperation;
  mapping(bytes32 => uint256) public votesCountByOperation;

  event OwnershipTransferred(address[] previousOwners, uint howManyOwnersDecide, address[] newOwners, uint newHowManyOwnersDecide);
  event OperationCreated(bytes32 operation, uint howMany, uint ownersCount, address proposer);
  event OperationUpvoted(bytes32 operation, uint votes, uint howMany, uint ownersCount, address upvoter);
  event OperationPerformed(bytes32 operation, uint howMany, uint ownersCount, address performer);
  event OperationDownvoted(bytes32 operation, uint votes, uint ownersCount,  address downvoter);
  event OperationCancelled(bytes32 operation, address lastCanceller);

  function isOwner(address wallet) public view returns(bool) {
    return ownersIndices[wallet] > 0;
  }

  function ownersCount() public view returns(uint) {
    return owners.length;
  }

  function allOperationsCount() public view returns(uint) {
    return allOperations.length;
  }

  /**
  * @dev Allows to perform method by any of the owners
  */
  modifier onlyAnyOwner {
    if (checkHowManyOwners(1)) {
      bool update = (insideCallSender == address(0));
      if (update) {
        insideCallSender = msg.sender;
        insideCallCount = 1;
      }
      _;
      if (update) {
        insideCallSender = address(0);
        insideCallCount = 0;
      }
    }
  }

  /**
  * @dev Allows to perform method only after some owners call it with the same arguments
  */
  modifier onlyOwners() {
    require(howManyOwnersDecide > 0);
    require(howManyOwnersDecide <= owners.length);

    if (checkHowManyOwners(howManyOwnersDecide)) {
      bool update = (insideCallSender == address(0));
      if (update) {
        insideCallSender = msg.sender;
        insideCallCount = howManyOwnersDecide;
      }
      _;
      if (update) {
        insideCallSender = address(0);
        insideCallCount = 0;
      }
    }
  }

  constructor(address[] memory _owners) public {
    owners.push(msg.sender);
    ownersIndices[msg.sender] = 1;
    howManyOwnersDecide = 1;
    transferOwnership(_owners, 2);
  }

  /**
  * @dev onlyManyOwners modifier helper
  */
  function checkHowManyOwners(uint howMany) internal returns(bool) {
    if (insideCallSender == msg.sender) {
      require(howMany <= insideCallCount);
      return true;
    }

    uint ownerIndex = ownersIndices[msg.sender] - 1;
    require(ownerIndex < owners.length);
    bytes32 operation = keccak256(abi.encodePacked(msg.data, ownersGeneration));

    require((votesMaskByOperation[operation] & (2 ** ownerIndex)) == 0);
    votesMaskByOperation[operation] |= (2 ** ownerIndex);
    uint operationVotesCount = votesCountByOperation[operation] + 1;
    votesCountByOperation[operation] = operationVotesCount;
    if (operationVotesCount == 1) {
      allOperationsIndicies[operation] = allOperations.length;
      allOperations.push(operation);
      emit OperationCreated(operation, howMany, owners.length, msg.sender);
    }
    emit OperationUpvoted(operation, operationVotesCount, howMany, owners.length, msg.sender);

    // If enough owners confirmed the same operation
    if (votesCountByOperation[operation] == howMany) {
      deleteOperation(operation);
      emit OperationPerformed(operation, howMany, owners.length, msg.sender);
      return true;
    }

    return false;
  }

  function deleteOperation(bytes32 operation) internal {
    uint index = allOperationsIndicies[operation];
    if (index < allOperations.length - 1) { // Not last
      allOperations[index] = allOperations[allOperations.length - 1];
      allOperationsIndicies[allOperations[index]] = index;
    }
    allOperations.length--;

    delete votesMaskByOperation[operation];
    delete votesCountByOperation[operation];
    delete allOperationsIndicies[operation];
  }

  function cancelPending(bytes32 operation) public onlyAnyOwner {
    uint ownerIndex = ownersIndices[msg.sender] - 1;
    require((votesMaskByOperation[operation] & (2 ** ownerIndex)) != 0);
    votesMaskByOperation[operation] &= ~(2 ** ownerIndex);
    uint operationVotesCount = votesCountByOperation[operation] - 1;
    votesCountByOperation[operation] = operationVotesCount;
    emit OperationDownvoted(operation, operationVotesCount, owners.length, msg.sender);
    if (operationVotesCount == 0) {
      deleteOperation(operation);
      emit OperationCancelled(operation, msg.sender);
    }
  }

  function transferOwnership(address[] memory newOwners, uint256 _howManyOwnersDecide) public onlyAnyOwner {
    _transferOwnership(newOwners, _howManyOwnersDecide);
  }

  function _transferOwnership(address[] memory newOwners, uint256 newHowManyOwnersDecide) internal onlyOwners {
    require(newOwners.length > 0);
    require(newOwners.length <= 256);
    require(newHowManyOwnersDecide > 0);
    require(newHowManyOwnersDecide <= newOwners.length);

    // Reset owners reverse lookup table
    for (uint j = 0; j < owners.length; j++) {
      delete ownersIndices[owners[j]];
    }
    for (uint i = 0; i < newOwners.length; i++) {
      require(newOwners[i] != address(0));
      require(ownersIndices[newOwners[i]] == 0);
      ownersIndices[newOwners[i]] = i + 1;
    }

    emit OwnershipTransferred(owners, howManyOwnersDecide, newOwners, newHowManyOwnersDecide);
    owners = newOwners;
    howManyOwnersDecide = newHowManyOwnersDecide;
    allOperations.length = 0;
    ownersGeneration++;
  }

}

// File: contracts/Hydra.sol

contract MultiSignatureVault is Multiownable {

  bool lockState;
  function () external payable {}

  constructor(address[] memory _owners) public Multiownable(_owners) {
    lockState = false;
  }

  function transferTo(address payable to, uint256 amount) external onlyOwners {
    require(!lockState);
    lockState = true;
    to.transfer(amount);
    lockState = false;
  }

  function transferTokensTo(address token, address to, uint256 amount) external onlyOwners {
    require(!lockState);
    lockState = true;
    ERC20(token).transfer(to, amount);
    lockState = false;
  }
}

contract Hydra is StandardToken, BurnableToken, Blacklisted, Pausable {

  string private _name;
  string private _symbol;
  uint8 private _decimals;

  MultiSignatureVault public vaultTeam;
  MultiSignatureVault public vaultInvestor;
  MultiSignatureVault public vaultOperation;

  constructor(address[] memory owners) public {
    _name = "Hydra Token";
    _symbol = "HDRA";
    _decimals = 18;
    _totalSupply = 300000000E18;

    vaultTeam = new MultiSignatureVault(owners);
    vaultInvestor = new MultiSignatureVault(owners);
    vaultOperation = new MultiSignatureVault(owners);

    balances[address(vaultTeam)] = 60000000E18;
    balances[address(vaultInvestor)] = 150000000E18;
    balances[address(vaultOperation)] = 90000000E18;

    emit Transfer(address(this), address(vaultTeam), 60000000E18);
    emit Transfer(address(this), address(vaultInvestor), 150000000E18);
    emit Transfer(address(this), address(vaultOperation), 90000000E18);
  }

  function name() public view returns (string memory) {
    return _name;
  }

  function symbol() public view returns (string memory) {
    return _symbol;
  }

  function decimals() public view returns (uint8) {
    return _decimals;
  }

  function transfer(address to, uint256 value) public whenNotPaused whenNotFrozen returns (bool) {
    return super.transfer(to, value);
  }

  function transferFrom(address from, address to, uint256 value) public whenNotPaused whenNotFrozen returns (bool) {
    return super.transferFrom(from, to, value);
  }

  function approve(address spender, uint256 value) public whenNotPaused whenNotFrozen returns (bool) {
    return super.approve(spender, value);
  }

  function increaseAllowance(address spender, uint addedValue) public whenNotPaused whenNotFrozen returns (bool success) {
    return super.increaseAllowance(spender, addedValue);
  }

  function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused whenNotFrozen returns (bool success) {
    return super.decreaseAllowance(spender, subtractedValue);
  }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"allOperationsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"howManyOwnersDecide","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"wallet","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferTokensTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"allOperations","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"votesMaskByOperation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"operation","type":"bytes32"}],"name":"cancelPending","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"votesCountByOperation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownersGeneration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwners","type":"address[]"},{"name":"_howManyOwnersDecide","type":"uint256"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ownersCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ownersIndices","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"allOperationsIndicies","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousOwners","type":"address[]"},{"indexed":false,"name":"howManyOwnersDecide","type":"uint256"},{"indexed":false,"name":"newOwners","type":"address[]"},{"indexed":false,"name":"newHowManyOwnersDecide","type":"uint256"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"howMany","type":"uint256"},{"indexed":false,"name":"ownersCount","type":"uint256"},{"indexed":false,"name":"proposer","type":"address"}],"name":"OperationCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"votes","type":"uint256"},{"indexed":false,"name":"howMany","type":"uint256"},{"indexed":false,"name":"ownersCount","type":"uint256"},{"indexed":false,"name":"upvoter","type":"address"}],"name":"OperationUpvoted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"howMany","type":"uint256"},{"indexed":false,"name":"ownersCount","type":"uint256"},{"indexed":false,"name":"performer","type":"address"}],"name":"OperationPerformed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"votes","type":"uint256"},{"indexed":false,"name":"ownersCount","type":"uint256"},{"indexed":false,"name":"downvoter","type":"address"}],"name":"OperationDownvoted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"lastCanceller","type":"address"}],"name":"OperationCancelled","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040523480156200001157600080fd5b50604051620017c8380380620017c8833981018060405260208110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81518560208202830111640100000000821117156200008257600080fd5b505060028054600181810183557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9091018054600160a060020a0319163390811790915560009081526006602052604090208190558055909350839250620000f69150829064010000000062000108810204565b5050600a805460ff1916905562000869565b6200011d600164010000000062000187810204565b156200018357600454600160a060020a03161580156200014f5760048054600160a060020a0319163317905560016005555b620001648383640100000000620003d6810204565b8015620001815760048054600160a060020a031916905560006005555b505b5050565b600454600090600160a060020a0316331415620001b757600554821115620001ae57600080fd5b506001620003d1565b33600090815260066020526040902054600254600019909101908110620001dd57600080fd5b60008036600054604051602001808484808284379190910192835250506040805180830381526020928301825280519083012060008181526008909352912054909350600285900a1615915062000235905057600080fd5b60008181526008602090815260408083208054600287900a179055600990915290208054600190810191829055811415620002f857600380546000848152600760209081526040808320849055600184018555939091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910184905560025482518581529182018890528183015233606082015290517f6bab0114f9524353d2d33e64edd3ebbd16e21edd57de2226ba76c310a7ce22659181900360800190a15b60025460408051848152602081018490528082018890526060810192909252336080830152517f8dd9582c6577aea81973b5adeb6c135f6e18565d99578b7ba0c9377437ec02219181900360a00190a1600082815260096020526040902054851415620003c9576200037382640100000000620006c5810204565b600254604080518481526020810188905280820192909252336060830152517f8a11c8ca99994c292318ce367f65bf6ff61d390bc814b3588496f6fbcc32807a9181900360800190a160019350505050620003d1565b600093505050505b919050565b600154600010620003e657600080fd5b6002546001541115620003f857600080fd5b6200041460015462000187640100000000026401000000009004565b156200018357600454600160a060020a0316158015620004475760048054600160a060020a031916331790556001546005555b82516000106200045657600080fd5b825161010010156200046757600080fd5b600082116200047557600080fd5b82518211156200048457600080fd5b60005b600254811015620004d45760066000600283815481101515620004a657fe5b6000918252602080832090910154600160a060020a0316835282019290925260400181205560010162000487565b5060005b835181101562000597578351600090859083908110620004f457fe5b60209081029091010151600160a060020a031614156200051357600080fd5b6006600085838151811015156200052657fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054156200055457600080fd5b806001016006600086848151811015156200056b57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002055600101620004d8565b507fd167b96814cd24898418cc293e8d47d54afe6dcf0631283f0830e1eae621f6bd6002600154858560405180806020018581526020018060200184815260200183810383528781815481526020019150805480156200062157602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000602575b50508381038252855181528551602091820191808801910280838360005b83811015620006595781810151838201526020016200063f565b50505050905001965050505050505060405180910390a182516200068590600290602086019062000791565b50600182905560006200069a600382620007fb565b506000805460010190558015620001815760048054600160a060020a03191690556000600555505050565b600081815260076020526040902054600354600019018110156200075257600380546000198101908110620006f657fe5b90600052602060002001546003828154811015156200071157fe5b906000526020600020018190555080600760006003848154811015156200073457fe5b90600052602060002001548152602001908152602001600020819055505b600380549062000767906000198301620007fb565b50506000908152600860209081526040808320839055600982528083208390556007909152812055565b828054828255906000526020600020908101928215620007e9579160200282015b82811115620007e95782518254600160a060020a031916600160a060020a03909116178255602090920191600190910190620007b2565b50620007f792915062000822565b5090565b8154818355818111156200018157600083815260209020620001819181019083016200084c565b6200084991905b80821115620007f7578054600160a060020a031916815560010162000829565b90565b6200084991905b80821115620007f7576000815560010162000853565b610f4f80620008796000396000f3fe6080604052600436106100da5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c2781146100dc57806322f2f89a146101225780632ccb1b30146101495780632f4a81df146101825780632f54bf6e1461019757806338571708146101de578063431ab23314610221578063568b59151461024b578063893372ca1461027557806390a530851461029f578063b25bb3a7146102c9578063b474b792146102de578063b948854614610390578063cc047a04146103a5578063ea1a2644146103d8575b005b3480156100e857600080fd5b50610106600480360360208110156100ff57600080fd5b5035610402565b60408051600160a060020a039092168252519081900360200190f35b34801561012e57600080fd5b5061013761042a565b60408051918252519081900360200190f35b34801561015557600080fd5b506100da6004803603604081101561016c57600080fd5b50600160a060020a038135169060200135610431565b34801561018e57600080fd5b5061013761050d565b3480156101a357600080fd5b506101ca600480360360208110156101ba57600080fd5b5035600160a060020a0316610513565b604080519115158252519081900360200190f35b3480156101ea57600080fd5b506100da6004803603606081101561020157600080fd5b50600160a060020a03813581169160208101359091169060400135610533565b34801561022d57600080fd5b506101376004803603602081101561024457600080fd5b5035610670565b34801561025757600080fd5b506101376004803603602081101561026e57600080fd5b503561068f565b34801561028157600080fd5b506100da6004803603602081101561029857600080fd5b50356106a1565b3480156102ab57600080fd5b50610137600480360360208110156102c257600080fd5b50356107f3565b3480156102d557600080fd5b50610137610805565b3480156102ea57600080fd5b506100da6004803603604081101561030157600080fd5b81019060208101813564010000000081111561031c57600080fd5b82018360208201111561032e57600080fd5b8035906020019184602083028401116401000000008311171561035057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061080b915050565b34801561039c57600080fd5b5061013761086f565b3480156103b157600080fd5b50610137600480360360208110156103c857600080fd5b5035600160a060020a0316610875565b3480156103e457600080fd5b50610137600480360360208110156103fb57600080fd5b5035610887565b600280548290811061041057fe5b600091825260209091200154600160a060020a0316905081565b6003545b90565b60015460001061044057600080fd5b600254600154111561045157600080fd5b61045c600154610899565b1561050957600454600160a060020a031615801561048d5760048054600160a060020a031916331790556001546005555b600a5460ff161561049d57600080fd5b600a805460ff19166001179055604051600160a060020a0384169083156108fc029084906000818181858888f193505050501580156104e0573d6000803e3d6000fd5b50600a805460ff1916905580156105075760048054600160a060020a031916905560006005555b505b5050565b60015481565b600160a060020a038116600090815260066020526040812054115b919050565b60015460001061054257600080fd5b600254600154111561055357600080fd5b61055e600154610899565b1561050757600454600160a060020a031615801561058f5760048054600160a060020a031916331790556001546005555b600a5460ff161561059f57600080fd5b600a805460ff19166001179055604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301526024820185905291519186169163a9059cbb916044808201926020929091908290030181600087803b15801561061857600080fd5b505af115801561062c573d6000803e3d6000fd5b505050506040513d602081101561064257600080fd5b5050600a805460ff19169055801561066a5760048054600160a060020a031916905560006005555b50505050565b600380548290811061067e57fe5b600091825260209091200154905081565b60086020526000908152604090205481565b6106ab6001610899565b156107f057600454600160a060020a03161580156106db5760048054600160a060020a0319163317905560016005555b3360009081526006602090815260408083205485845260089092529091205460001990910190600282900a16151561071257600080fd5b60008381526008602090815260408083208054600286810a19919091169091556009835292819020805460001901908190559254815187815292830184905282820152336060830152517f3e0a7036018b5a2a3c5d0afa14e51998ef3cf98c38e4289a8897222b3acf75a79181900360800190a18015156107d15761079684610ad3565b6040805185815233602082015281517f55e0dd61c29aac6fc36807628300ad3e3ec68655ae76ae4002f7fb101496fa9f929181900390910190a15b505080156105095760048054600160a060020a03191690556000600555505b50565b60096020526000908152604090205481565b60005481565b6108156001610899565b1561050957600454600160a060020a03161580156108455760048054600160a060020a0319163317905560016005555b61084f8383610b99565b80156105075760048054600160a060020a03191690556000600555505050565b60025490565b60066020526000908152604090205481565b60076020526000908152604090205481565b600454600090600160a060020a03163314156108c6576005548211156108be57600080fd5b50600161052e565b336000908152600660205260409020546002546000199091019081106108eb57600080fd5b60008036600054604051602001808484808284379190910192835250506040805180830381526020928301825280519083012060008181526008909352912054909350600285900a16159150610942905057600080fd5b60008181526008602090815260408083208054600287900a179055600990915290208054600190810191829055811415610a0457600380546000848152600760209081526040808320849055600184018555939091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90910184905560025482518581529182018890528183015233606082015290517f6bab0114f9524353d2d33e64edd3ebbd16e21edd57de2226ba76c310a7ce22659181900360800190a15b60025460408051848152602081018490528082018890526060810192909252336080830152517f8dd9582c6577aea81973b5adeb6c135f6e18565d99578b7ba0c9377437ec02219181900360a00190a1600082815260096020526040902054851415610ac857610a7382610ad3565b600254604080518481526020810188905280820192909252336060830152517f8a11c8ca99994c292318ce367f65bf6ff61d390bc814b3588496f6fbcc32807a9181900360800190a16001935050505061052e565b506000949350505050565b60008181526007602052604090205460035460001901811015610b5c57600380546000198101908110610b0257fe5b9060005260206000200154600382815481101515610b1c57fe5b90600052602060002001819055508060076000600384815481101515610b3e57fe5b90600052602060002001548152602001908152602001600020819055505b6003805490610b6f906000198301610e5c565b50506000908152600860209081526040808320839055600982528083208390556007909152812055565b600154600010610ba857600080fd5b6002546001541115610bb957600080fd5b610bc4600154610899565b1561050957600454600160a060020a0316158015610bf55760048054600160a060020a031916331790556001546005555b8251600010610c0357600080fd5b82516101001015610c1357600080fd5b60008211610c2057600080fd5b8251821115610c2e57600080fd5b60005b600254811015610c7b5760066000600283815481101515610c4e57fe5b6000918252602080832090910154600160a060020a03168352820192909252604001812055600101610c31565b5060005b8351811015610d37578351600090859083908110610c9957fe5b60209081029091010151600160a060020a03161415610cb757600080fd5b600660008583815181101515610cc957fe5b6020908102909101810151600160a060020a031682528101919091526040016000205415610cf657600080fd5b80600101600660008684815181101515610d0c57fe5b6020908102909101810151600160a060020a0316825281019190915260400160002055600101610c7f565b507fd167b96814cd24898418cc293e8d47d54afe6dcf0631283f0830e1eae621f6bd600260015485856040518080602001858152602001806020018481526020018381038352878181548152602001915080548015610dbf57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610da1575b50508381038252855181528551602091820191808801910280838360005b83811015610df5578181015183820152602001610ddd565b50505050905001965050505050505060405180910390a18251610e1f906002906020860190610e80565b5060018290556000610e32600382610e5c565b5060008054600101905580156105075760048054600160a060020a03191690556000600555505050565b81548183558181111561050757600083815260209020610507918101908301610ee5565b828054828255906000526020600020908101928215610ed5579160200282015b82811115610ed55782518254600160a060020a031916600160a060020a03909116178255602090920191600190910190610ea0565b50610ee1929150610eff565b5090565b61042e91905b80821115610ee15760008155600101610eeb565b61042e91905b80821115610ee1578054600160a060020a0319168155600101610f0556fea165627a7a72305820fed84032c05af2f0969d23568bbd986d64d1bec48a856ed3b3ee63209e4dfe69002900000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004000000000000000000000000a803c226c8281550454523191375695928dcfe92000000000000000000000000641ad78baca220c5bd28b51ce8e0f495e85fe6890000000000000000000000006dbc5fbb69d43442a5bec07e18037896b1e2ef6d000000000000000000000000e73168deb6831502ffc1f437e4835a3ea12d69b7

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

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [2] : 000000000000000000000000a803c226c8281550454523191375695928dcfe92
Arg [3] : 000000000000000000000000641ad78baca220c5bd28b51ce8e0f495e85fe689
Arg [4] : 0000000000000000000000006dbc5fbb69d43442a5bec07e18037896b1e2ef6d
Arg [5] : 000000000000000000000000e73168deb6831502ffc1f437e4835a3ea12d69b7


   Swarm Source:
bzzr://fed84032c05af2f0969d23568bbd986d64d1bec48a856ed3b3ee63209e4dfe69

 

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