Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 6 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x40e4af98aca710ddbb86a4f7d2d781906d3d108cat txn 0xe9a04206789dc1541433c654c2013f97002e87682ec3e47211e9f51dc008f564
 Latest 6 txns

TxHash Age From To Value [TxFee]
0xcbe430c1ed7efbececdbbbcc6b226f776dffdc47cbefa8caca7896f69e4fa76d5 days 16 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c  IN   0x80c26f10fa35a1b5ef3fb96e34920994400aa21f0 Ether0.0000380775
0x58831ac921b2d2fff2a7e429d2fba2a1c7227b981a140c3682988bc919cc49508 days 19 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c  IN   0x80c26f10fa35a1b5ef3fb96e34920994400aa21f0 Ether0.0001585325
0xcc8fece9659a3fc8b208fe2fc18570dc58a1d339cfb01a04136cc4c9aaceba6686 days 19 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c  IN   0x80c26f10fa35a1b5ef3fb96e34920994400aa21f0 Ether0.000350265
0x2c25b3c2d86aa5b3cc0e5788630d7df436dacdd4a192dc5b4e4cb215d1071c4586 days 20 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c  IN   0x80c26f10fa35a1b5ef3fb96e34920994400aa21f0 Ether0.000459165
0x66cb3035d42012eab95161347b458dda10f64b299b03b40ca3cb37750b6223e686 days 20 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c  IN   0x80c26f10fa35a1b5ef3fb96e34920994400aa21f0 Ether0.00023637
0xe9a04206789dc1541433c654c2013f97002e87682ec3e47211e9f51dc008f56486 days 20 hrs ago0x40e4af98aca710ddbb86a4f7d2d781906d3d108c  IN    Contract Creation0 Ether0.00736277
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
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: LockRule
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

/**
 * LockRule.sol
 * Rule to lock all tokens on a schedule and define a whitelist of exceptions.

 * More info about MPS : https://github.com/MtPelerin/MtPelerin-share-MPS

 * The unflattened code is available through this github tag:
 * https://github.com/MtPelerin/MtPelerin-protocol/tree/etherscan-verify-batch-2

 * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved

 * @notice All matters regarding the intellectual property of this code 
 * @notice or software are subject to Swiss Law without reference to its 
 * @notice conflicts of law rules.

 * @notice License for each contract is available in the respective file
 * @notice or in the LICENSE.md file.
 * @notice https://github.com/MtPelerin/

 * @notice Code by OpenZeppelin is copyrighted and licensed on their repository:
 * @notice https://github.com/OpenZeppelin/openzeppelin-solidity
 */


 pragma solidity ^0.4.24;

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


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

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

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

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}

// File: contracts/Authority.sol

/**
 * @title Authority
 * @dev The Authority contract has an authority address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 * Authority means to represent a legal entity that is entitled to specific rights
 *
 * @author Cyril Lapinte - <[email protected]>
 *
 * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved
 * @notice Please refer to the top of this file for the license.
 *
 * Error messages
 * AU01: Message sender must be an authority
 */
contract Authority is Ownable {

  address authority;

  /**
   * @dev Throws if called by any account other than the authority.
   */
  modifier onlyAuthority {
    require(msg.sender == authority, "AU01");
    _;
  }

  /**
   * @dev Returns the address associated to the authority
   */
  function authorityAddress() public view returns (address) {
    return authority;
  }

  /** Define an address as authority, with an arbitrary name included in the event
   * @dev returns the authority of the
   * @param _name the authority name
   * @param _address the authority address.
   */
  function defineAuthority(string _name, address _address) public onlyOwner {
    emit AuthorityDefined(_name, _address);
    authority = _address;
  }

  event AuthorityDefined(
    string name,
    address _address
  );
}

// File: contracts/interface/IRule.sol

/**
 * @title IRule
 * @dev IRule interface
 * @author Cyril Lapinte - <[email protected]>
 *
 * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved
 * @notice Please refer to the top of this file for the license.
 **/
interface IRule {
  function isAddressValid(address _address) external view returns (bool);
  function isTransferValid(address _from, address _to, uint256 _amount)
    external view returns (bool);
}

// File: contracts/rule/LockRule.sol

/**
 * @title LockRule
 * @dev LockRule contract
 * This rule allow to lock assets for a period of time
 * for event such as investment vesting
 *
 * @author Cyril Lapinte - <[email protected]>
 *
 * @notice Copyright © 2016 - 2018 Mt Pelerin Group SA - All Rights Reserved
 * @notice Please refer to the top of this file for the license.
 *
 * Error messages
 * LOR01: definePass() call have failed
 * LOR02: startAt must be before or equal to endAt
 */
contract LockRule is IRule, Authority {

  enum Direction {
    NONE,
    RECEIVE,
    SEND,
    BOTH
  }

  struct ScheduledLock {
    Direction restriction;
    uint256 startAt;
    uint256 endAt;
    bool scheduleInverted;
  }

  mapping(address => Direction) individualPasses;
  ScheduledLock lock = ScheduledLock(
    Direction.NONE,
    0,
    0,
    false
  );

  /**
   * @dev hasSendDirection
   */
  function hasSendDirection(Direction _direction) public pure returns (bool) {
    return _direction == Direction.SEND || _direction == Direction.BOTH;
  }

  /**
   * @dev hasReceiveDirection
   */
  function hasReceiveDirection(Direction _direction)
    public pure returns (bool)
  {
    return _direction == Direction.RECEIVE || _direction == Direction.BOTH;
  }

  /**
   * @dev restriction
   */
  function restriction() public view returns (Direction) {
    return lock.restriction;
  }

  /**
   * @dev scheduledStartAt
   */
  function scheduledStartAt() public view returns (uint256) {
    return lock.startAt;
  }

  /**
   * @dev scheduledEndAt
   */
  function scheduledEndAt() public view returns (uint256) {
    return lock.endAt;
  }

  /**
   * @dev lock inverted
   */
  function isScheduleInverted() public view returns (bool) {
    return lock.scheduleInverted;
  }

  /**
   * @dev isLocked
   */
  function isLocked() public view returns (bool) {
    // solium-disable-next-line security/no-block-members
    return (lock.startAt <= now && lock.endAt > now)
      ? !lock.scheduleInverted : lock.scheduleInverted;
  }

  /**
   * @dev individualPass
   */
  function individualPass(address _address)
    public view returns (Direction)
  {
    return individualPasses[_address];
  }

  /**
   * @dev can the address send
   */
  function canSend(address _address) public view returns (bool) {
    if (isLocked() && hasSendDirection(lock.restriction)) {
      return hasSendDirection(individualPasses[_address]);
    }
    return true;
  }

  /**
   * @dev can the address receive
   */
  function canReceive(address _address) public view returns (bool) {
    if (isLocked() && hasReceiveDirection(lock.restriction)) {
      return hasReceiveDirection(individualPasses[_address]);
    }
    return true;
  }

  /**
   * @dev allow authority to provide a pass to an address
   */
  function definePass(address _address, uint256 _lock)
    public onlyAuthority returns (bool)
  {
    individualPasses[_address] = Direction(_lock);
    emit PassDefinition(_address, Direction(_lock));
    return true;
  }

  /**
   * @dev allow authority to provide addresses with lock passes
   */
  function defineManyPasses(address[] _addresses, uint256 _lock)
    public onlyAuthority returns (bool)
  {
    for (uint256 i = 0; i < _addresses.length; i++) {
      require(definePass(_addresses[i], _lock), "LOR01");
    }
    return true;
  }

  /**
   * @dev schedule lock
   */
  function scheduleLock(
    Direction _restriction,
    uint256 _startAt, uint256 _endAt, bool _scheduleInverted)
    public onlyAuthority returns (bool)
  {
    require(_startAt <= _endAt, "LOR02");
    lock = ScheduledLock(
      _restriction,
      _startAt,
      _endAt,
      _scheduleInverted
    );
    emit LockDefinition(
      lock.restriction, lock.startAt, lock.endAt, lock.scheduleInverted);
  }

  /**
   * @dev validates an address
   */
  function isAddressValid(address /*_address*/) public view returns (bool) {
    return true;
  }

  /**
   * @dev validates a transfer of ownership
   */
  function isTransferValid(address _from, address _to, uint256 /* _amount */)
    public view returns (bool)
  {
    return (canSend(_from) && canReceive(_to));
  }

  event LockDefinition(
    Direction restriction,
    uint256 startAt,
    uint256 endAt,
    bool scheduleInverted
  );
  event PassDefinition(address _address, Direction pass);
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"scheduledStartAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isScheduleInverted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"scheduledEndAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"canSend","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_lock","type":"uint256"}],"name":"definePass","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_lock","type":"uint256"}],"name":"defineManyPasses","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_direction","type":"uint8"}],"name":"hasSendDirection","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"authorityAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"","type":"uint256"}],"name":"isTransferValid","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_restriction","type":"uint8"},{"name":"_startAt","type":"uint256"},{"name":"_endAt","type":"uint256"},{"name":"_scheduleInverted","type":"bool"}],"name":"scheduleLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"canReceive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_direction","type":"uint8"}],"name":"hasReceiveDirection","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"individualPass","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"restriction","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isAddressValid","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":false,"inputs":[{"name":"_name","type":"string"},{"name":"_address","type":"address"}],"name":"defineAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"restriction","type":"uint8"},{"indexed":false,"name":"startAt","type":"uint256"},{"indexed":false,"name":"endAt","type":"uint256"},{"indexed":false,"name":"scheduleInverted","type":"bool"}],"name":"LockDefinition","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_address","type":"address"},{"indexed":false,"name":"pass","type":"uint8"}],"name":"PassDefinition","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"_address","type":"address"}],"name":"AuthorityDefined","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526080604051908101604052806000600381111561001d57fe5b8152602001600081526020016000815260200160001515815250600360008201518160000160006101000a81548160ff0219169083600381111561005d57fe5b0217905550602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611444806100e76000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631216c275146101175780631c779669146101425780632999239d146101715780632bc06a921461019c5780632f2c0dc6146101f757806331166aff1461025c5780633c00fb57146102e45780633c695d4e1461032c57806340ecb7f2146103835780635aa496a714610408578063715018a6146104705780638da5cb5b1461048757806390d370ba146104de578063a4e2d63414610539578063a760153814610568578063ac5a67da146105b0578063bb8c5e4914610615578063cf31ff861461064e578063f2fde38b146106a9578063fc21e167146106ec575b600080fd5b34801561012357600080fd5b5061012c610775565b6040518082815260200191505060405180910390f35b34801561014e57600080fd5b50610157610782565b604051808215151515815260200191505060405180910390f35b34801561017d57600080fd5b5061018661079b565b6040518082815260200191505060405180910390f35b3480156101a857600080fd5b506101dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107a8565b604051808215151515815260200191505060405180910390f35b34801561020357600080fd5b50610242600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610840565b604051808215151515815260200191505060405180910390f35b34801561026857600080fd5b506102ca6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610a00565b604051808215151515815260200191505060405180910390f35b3480156102f057600080fd5b50610312600480360381019080803560ff169060200190929190505050610b83565b604051808215151515815260200191505060405180910390f35b34801561033857600080fd5b50610341610bc6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038f57600080fd5b506103ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bf0565b604051808215151515815260200191505060405180910390f35b34801561041457600080fd5b50610456600480360381019080803560ff1690602001909291908035906020019092919080359060200190929190803515159060200190929190505050610c15565b604051808215151515815260200191505060405180910390f35b34801561047c57600080fd5b50610485610e7b565b005b34801561049357600080fd5b5061049c610f7d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ea57600080fd5b5061051f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fa2565b604051808215151515815260200191505060405180910390f35b34801561054557600080fd5b5061054e61103a565b604051808215151515815260200191505060405180910390f35b34801561057457600080fd5b50610596600480360381019080803560ff169060200190929190505050611089565b604051808215151515815260200191505060405180910390f35b3480156105bc57600080fd5b506105f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110cc565b6040518082600381111561060157fe5b60ff16815260200191505060405180910390f35b34801561062157600080fd5b5061062a611122565b6040518082600381111561063a57fe5b60ff16815260200191505060405180910390f35b34801561065a57600080fd5b5061068f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061113c565b604051808215151515815260200191505060405180910390f35b3480156106b557600080fd5b506106ea600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611147565b005b3480156106f857600080fd5b50610773600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111ae565b005b6000600360010154905090565b60006003800160009054906101000a900460ff16905090565b6000600360020154905090565b60006107b261103a565b80156107d557506107d4600360000160009054906101000a900460ff16610b83565b5b156108365761082f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b83565b905061083b565b600190505b919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b81600381111561091357fe5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083600381111561096d57fe5b02179055507fa245938fd300b26f5f31f13421f58a5162ddd1aef5557f4728244877429f0372838360038111156109a057fe5b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018260038111156109e257fe5b60ff1681526020019250505060405180910390a16001905092915050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ac8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600090505b8351811015610b7857610af78482815181101515610ae757fe5b9060200190602002015184610840565b1515610b6b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f4c4f52303100000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8080600101915050610acd565b600191505092915050565b600060026003811115610b9257fe5b826003811115610b9e57fe5b1480610bbf5750600380811115610bb157fe5b826003811115610bbd57fe5b145b9050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610bfb846107a8565b8015610c0c5750610c0b83610fa2565b5b90509392505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cdc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f415530310000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b828411151515610d54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f4c4f52303200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b608060405190810160405280866003811115610d6c57fe5b8152602001858152602001848152602001831515815250600360008201518160000160006101000a81548160ff02191690836003811115610da957fe5b0217905550602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050507fd0af39087be897a7c1d79df0d41ca0c6c2d8974eba65120d57b234552913232f600360000160009054906101000a900460ff166003600101546003600201546003800160009054906101000a900460ff1660405180856003811115610e4757fe5b60ff1681526020018481526020018381526020018215151515815260200194505050505060405180910390a1949350505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ed657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610fac61103a565b8015610fcf5750610fce600360000160009054906101000a900460ff16611089565b5b1561103057611029600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611089565b9050611035565b600190505b919050565b60004260036001015411158015611055575042600360020154115b611070576003800160009054906101000a900460ff16611084565b6003800160009054906101000a900460ff16155b905090565b60006001600381111561109857fe5b8260038111156110a457fe5b14806110c557506003808111156110b757fe5b8260038111156110c357fe5b145b9050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360000160009054906101000a900460ff16905090565b600060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a257600080fd5b6111ab8161131e565b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561120957600080fd5b7fc8c81ac5a1b95ead7b5f71eafa51c9a1436e443c27ba33460885b9debe345abf828260405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561129e578082015181840152602081019050611283565b50505050905090810190601f1680156112cb5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561135a57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820c1f712e9dff61460e0127a4a1f5d3662d216953bc421acfb25d035c986a6c95d0029

   Swarm Source:
bzzr://c1f712e9dff61460e0127a4a1f5d3662d216953bc421acfb25d035c986a6c95d

 

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.