Sponsored Link:   SHARPAY.io • Share button with blockchain profit • ICOBench TOP Project • 30% Bonus • Buy Now!
 Latest 25 txns from a total Of 28064 transactions (+6 PendingTxns)
View All

TxHash Age From To Value [TxFee]
0x6a216bef572019486dc2a9488cab12bd437b305039a0e708dc8b071749476f9d(pending)0xc0f03910493909358e45bd5e335336f00bbf7baa  IN  0xa5fd1a791c4dfcaacc963d4f73c6ae5824149ea70 Ether(pending)
0xf55c68072c8fd4ca328185f5101123b63395d6842337df52d6ecb23786b6313c(pending)0xafb4aa150388f46fcb6c384f6441b3f355b0cd4f  IN  0xa5fd1a791c4dfcaacc963d4f73c6ae5824149ea70 Ether(pending)
0xf7274e02860fe7a4398f92b441d7cff5245d2552925a4061cb4e83f3f2c4e49d(pending)0x9a21b6c37425f01249252a83fd6159ad2709e58b  IN  0xa5fd1a791c4dfcaacc963d4f73c6ae5824149ea70 Ether(pending)
0xa7a98e819b1f75efa7ff1af01763a711ddc9d6704463698f518bf78e2f11ca27(pending)0x0bab4dc108302ddc5677376f1669e0ab7cf890d6  IN  0xa5fd1a791c4dfcaacc963d4f73c6ae5824149ea70 Ether(pending)
0x96cf79040f5c67df27ef3a035d40a55777e79a73932d9684c305d1e5735f6d72(pending)0x9d6cb6f9b86616512e90c97d7643af170dab75b0  IN  0xa5fd1a791c4dfcaacc963d4f73c6ae5824149ea70 Ether(pending)
0xe2cfa95bd9def18536597b358161128a73db8fcc1957884d91286195d2410e74(pending)0x1b30a979b817e56f83159d1c1b992021bc01c4be  IN  0xa5fd1a791c4dfcaacc963d4f73c6ae5824149ea70 Ether(pending)
0x782742a51e12ed347f6c8cc307a6932a4cbb7056393b6b8e25908b7a882ee1831 min ago0x0f4c9150c6e7a5fd37a4bf0e27a1c2ba49ea1d71  IN   Jibrel Network Token0 Ether0.000988191204
0xb2dc188601c32a3f4c432ff119c8d49f44b6507cd5ac098647f7da1eca938c6324 mins ago0x0f4c9150c6e7a5fd37a4bf0e27a1c2ba49ea1d71  IN   Jibrel Network Token0 Ether0.0007668438
0x42abca5941b836f743db12fdb4fa247e77fad48e44f4569a77b7a723e7d2494528 mins ago0x0d0707963952f2fba59dd06f2b425ace40b492fe  IN   Jibrel Network Token0 Ether0.001397451
0xd34381b563f390a3b0cf628ee8290fee76d18943049bd2f2e47d9d775fbe9cd835 mins agoBibox  IN   Jibrel Network Token0 Ether0.000987204
0xd40319a27bd10aa3fd936002b2a463288bbf3b05391164ed68024e2f7fbc11ef39 mins ago0x0f4c9150c6e7a5fd37a4bf0e27a1c2ba49ea1d71  IN   Jibrel Network Token0 Ether0.0010850796
0x20ac61e8115980f20e4b4dc37acff6736b0987b92c05e66d2f4400c7966cf38359 mins ago0x0d0707963952f2fba59dd06f2b425ace40b492fe  IN   Jibrel Network Token0 Ether0.001479654
0x7e8c86373842e280acd3b14104cf74d7324165e38c5d8da5c54deda99816148d1 hr 13 mins agoBibox  IN   Jibrel Network Token0 Ether0.0008879244
0x1dac5b1fccbba5d9f31606a66c6bcc0de1c5dd8aa9c97e423b35cf2af339618d1 hr 19 mins ago0x1ba7a20a4349c4801963f69b2c9ce1ce495b9083  IN   Jibrel Network Token0 Ether0.000903308653
0x6d42c6bb4410295591ada85ae2a389e5fce454753020cf8b11b074b5111857951 hr 34 mins ago0x0d0707963952f2fba59dd06f2b425ace40b492fe  IN   Jibrel Network Token0 Ether0.001210806
0x50abda107d8cfcce69410d4f2d621a9712c9d6966bf7cb0ce8b73e810200a1f31 hr 45 mins ago0x3f38bf1aa01353ed8d8fe91a596feba454e53884  IN   Jibrel Network Token0 Ether0.000807972
0x63a68b1e926705a188827e2206013af82142dcf2d09deb0d911172b613ccd3301 hr 48 mins ago0x0d0707963952f2fba59dd06f2b425ace40b492fe  IN   Jibrel Network Token0 Ether0.001481958
0xee6178d05ee863188204ff0a9ca5c828c0f73ee0e99885149cc2566323f05d002 hrs 20 mins agoBibox  IN   Jibrel Network Token0 Ether0.0009291678
0xc7708e19d60e39b6b262c5c5b7197c99d82a559fcb47e3e5b0c3355a358ca3352 hrs 33 mins ago0x492928f45f38aa754dc9c88824741ccf8c1a12b5  IN   Jibrel Network Token0 Ether0.004195617
0x81a0a2986d9a4480a071b2604ae24c70cb9af6538062777111d05f0d8928e37c2 hrs 55 mins agoBibox  IN   Jibrel Network Token0 Ether0.000816859692
0xc55f00e66f097360ce29be6901391ba8491f43ad7611d43349349b2693f1754e3 hrs 1 min agoBibox  IN   Jibrel Network Token0 Ether0.000987204
0xf13516f23ebca0ebc51cca721f372589b931cd0440d6222a01f365c5e50242223 hrs 20 mins ago0xa28256c4a628585f6f17e841f8ab4bc9929f0b02  IN   Jibrel Network Token0 Ether0.001726263
0x464a409b4ed732ccf84a6c9406b7b2a557b1923f14470f5e239710c3ab621d153 hrs 25 mins ago0x80a909968642f7f90686ff964e71154a00ce6e49  IN   Jibrel Network Token0 Ether0.00336015
0xecca9950945591ea91db9d67405dbf432146de2365d41fd88d990124a7df5d043 hrs 35 mins ago0x2b5634c42055806a59e9107ed44d43c426e58258  IN   Jibrel Network Token0 Ether0.001009965
0x91a678f8467e1c568d75ff3bfcf1416febbcc3edfafa7fce4ff83a11426eb2216 hrs 4 mins ago0x2b5634c42055806a59e9107ed44d43c426e58258  IN   Jibrel Network Token0 Ether0.001210806
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Contract Source Code Verified (Exact match)
Contract Name: JNTViewERC20
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

/* Author: Victor Mezrin  [email protected] */

pragma solidity ^0.4.18;



/**
 * @title CommonModifiers
 * @dev Base contract which contains common checks.
 */
contract CommonModifiersInterface {

  /**
   * @dev Assemble the given address bytecode. If bytecode exists then the _addr is a contract.
   */
  function isContract(address _targetAddress) internal constant returns (bool);

  /**
   * @dev modifier to allow actions only when the _targetAddress is a contract.
   */
  modifier onlyContractAddress(address _targetAddress) {
    require(isContract(_targetAddress) == true);
    _;
  }
}



/**
 * @title CommonModifiers
 * @dev Base contract which contains common checks.
 */
contract CommonModifiers is CommonModifiersInterface {

  /**
   * @dev Assemble the given address bytecode. If bytecode exists then the _addr is a contract.
   */
  function isContract(address _targetAddress) internal constant returns (bool) {
    require (_targetAddress != address(0x0));

    uint256 length;
    assembly {
      //retrieve the size of the code on target address, this needs assembly
      length := extcodesize(_targetAddress)
    }
    return (length > 0);
  }
}



/**
 * @title AssetIDInterface
 * @dev Interface of a contract that assigned to an asset (JNT, jUSD etc.)
 * @dev Contracts for the same asset (like JNT, jUSD etc.) will have the same AssetID.
 * @dev This will help to avoid misconfiguration of contracts
 */
contract AssetIDInterface {
  function getAssetID() public constant returns (string);
  function getAssetIDHash() public constant returns (bytes32);
}



/**
 * @title AssetID
 * @dev Base contract implementing AssetIDInterface
 */
contract AssetID is AssetIDInterface {

  /* Storage */

  string assetID;


  /* Constructor */

  function AssetID(string _assetID) public {
    require(bytes(_assetID).length > 0);

    assetID = _assetID;
  }


  /* Getters */

  function getAssetID() public constant returns (string) {
    return assetID;
  }

  function getAssetIDHash() public constant returns (bytes32) {
    return keccak256(assetID);
  }
}



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

  /**
   * @dev The getter for "owner" contract variable
   */
  function getOwner() public constant returns (address);

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



/**
 * @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 is OwnableInterface {

  /* Storage */

  address owner = address(0x0);
  address proposedOwner = address(0x0);


  /* Events */

  event OwnerAssignedEvent(address indexed newowner);
  event OwnershipOfferCreatedEvent(address indexed currentowner, address indexed proposedowner);
  event OwnershipOfferAcceptedEvent(address indexed currentowner, address indexed proposedowner);
  event OwnershipOfferCancelledEvent(address indexed currentowner, address indexed proposedowner);


  /**
   * @dev The constructor sets the initial `owner` to the passed account.
   */
  function Ownable() public {
    owner = msg.sender;

    OwnerAssignedEvent(owner);
  }


  /**
   * @dev Old owner requests transfer ownership to the new owner.
   * @param _proposedOwner The address to transfer ownership to.
   */
  function createOwnershipOffer(address _proposedOwner) external onlyOwner {
    require (proposedOwner == address(0x0));
    require (_proposedOwner != address(0x0));
    require (_proposedOwner != address(this));

    proposedOwner = _proposedOwner;

    OwnershipOfferCreatedEvent(owner, _proposedOwner);
  }


  /**
   * @dev Allows the new owner to accept an ownership offer to contract control.
   */
  //noinspection UnprotectedFunction
  function acceptOwnershipOffer() external {
    require (proposedOwner != address(0x0));
    require (msg.sender == proposedOwner);

    address _oldOwner = owner;
    owner = proposedOwner;
    proposedOwner = address(0x0);

    OwnerAssignedEvent(owner);
    OwnershipOfferAcceptedEvent(_oldOwner, owner);
  }


  /**
   * @dev Old owner cancels transfer ownership to the new owner.
   */
  function cancelOwnershipOffer() external {
    require (proposedOwner != address(0x0));
    require (msg.sender == owner || msg.sender == proposedOwner);

    address _oldProposedOwner = proposedOwner;
    proposedOwner = address(0x0);

    OwnershipOfferCancelledEvent(owner, _oldProposedOwner);
  }


  /**
   * @dev The getter for "owner" contract variable
   */
  function getOwner() public constant returns (address) {
    return owner;
  }

  /**
   * @dev The getter for "proposedOwner" contract variable
   */
  function getProposedOwner() public constant returns (address) {
    return proposedOwner;
  }
}



/**
 * @title ManageableInterface
 * @dev Contract that allows to grant permissions to any address
 * @dev In real life we are no able to perform all actions with just one Ethereum address
 * @dev because risks are too high.
 * @dev Instead owner delegates rights to manage an contract to the different addresses and
 * @dev stay able to revoke permissions at any time.
 */
contract ManageableInterface {

  /**
   * @dev Function to check if the manager can perform the action or not
   * @param _manager        address Manager`s address
   * @param _permissionName string  Permission name
   * @return True if manager is enabled and has been granted needed permission
   */
  function isManagerAllowed(address _manager, string _permissionName) public constant returns (bool);

  /**
   * @dev Modifier to use in derived contracts
   */
  modifier onlyAllowedManager(string _permissionName) {
    require(isManagerAllowed(msg.sender, _permissionName) == true);
    _;
  }
}



contract Manageable is OwnableInterface,
                       ManageableInterface {

  /* Storage */

  mapping (address => bool) managerEnabled;  // hard switch for a manager - on/off
  mapping (address => mapping (string => bool)) managerPermissions;  // detailed info about manager`s permissions


  /* Events */

  event ManagerEnabledEvent(address indexed manager);
  event ManagerDisabledEvent(address indexed manager);
  event ManagerPermissionGrantedEvent(address indexed manager, string permission);
  event ManagerPermissionRevokedEvent(address indexed manager, string permission);


  /* Configure contract */

  /**
   * @dev Function to add new manager
   * @param _manager address New manager
   */
  function enableManager(address _manager) external onlyOwner onlyValidManagerAddress(_manager) {
    require(managerEnabled[_manager] == false);

    managerEnabled[_manager] = true;
    ManagerEnabledEvent(_manager);
  }

  /**
   * @dev Function to remove existing manager
   * @param _manager address Existing manager
   */
  function disableManager(address _manager) external onlyOwner onlyValidManagerAddress(_manager) {
    require(managerEnabled[_manager] == true);

    managerEnabled[_manager] = false;
    ManagerDisabledEvent(_manager);
  }

  /**
   * @dev Function to grant new permission to the manager
   * @param _manager        address Existing manager
   * @param _permissionName string  Granted permission name
   */
  function grantManagerPermission(
    address _manager, string _permissionName
  )
    external
    onlyOwner
    onlyValidManagerAddress(_manager)
    onlyValidPermissionName(_permissionName)
  {
    require(managerPermissions[_manager][_permissionName] == false);

    managerPermissions[_manager][_permissionName] = true;
    ManagerPermissionGrantedEvent(_manager, _permissionName);
  }

  /**
   * @dev Function to revoke permission of the manager
   * @param _manager        address Existing manager
   * @param _permissionName string  Revoked permission name
   */
  function revokeManagerPermission(
    address _manager, string _permissionName
  )
    external
    onlyOwner
    onlyValidManagerAddress(_manager)
    onlyValidPermissionName(_permissionName)
  {
    require(managerPermissions[_manager][_permissionName] == true);

    managerPermissions[_manager][_permissionName] = false;
    ManagerPermissionRevokedEvent(_manager, _permissionName);
  }


  /* Getters */

  /**
   * @dev Function to check manager status
   * @param _manager address Manager`s address
   * @return True if manager is enabled
   */
  function isManagerEnabled(
    address _manager
  )
    public
    constant
    onlyValidManagerAddress(_manager)
    returns (bool)
  {
    return managerEnabled[_manager];
  }

  /**
   * @dev Function to check permissions of a manager
   * @param _manager        address Manager`s address
   * @param _permissionName string  Permission name
   * @return True if manager has been granted needed permission
   */
  function isPermissionGranted(
    address _manager, string _permissionName
  )
    public
    constant
    onlyValidManagerAddress(_manager)
    onlyValidPermissionName(_permissionName)
    returns (bool)
  {
    return managerPermissions[_manager][_permissionName];
  }

  /**
   * @dev Function to check if the manager can perform the action or not
   * @param _manager        address Manager`s address
   * @param _permissionName string  Permission name
   * @return True if manager is enabled and has been granted needed permission
   */
  function isManagerAllowed(
    address _manager, string _permissionName
  )
    public
    constant
    onlyValidManagerAddress(_manager)
    onlyValidPermissionName(_permissionName)
    returns (bool)
  {
    return (managerEnabled[_manager] && managerPermissions[_manager][_permissionName]);
  }


  /* Helpers */

  /**
   * @dev Modifier to check manager address
   */
  modifier onlyValidManagerAddress(address _manager) {
    require(_manager != address(0x0));
    _;
  }

  /**
   * @dev Modifier to check name of manager permission
   */
  modifier onlyValidPermissionName(string _permissionName) {
    require(bytes(_permissionName).length != 0);
    _;
  }
}



/**
 * @title PausableInterface
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 * @dev Based on zeppelin's Pausable, but integrated with Manageable
 * @dev Contract is in paused state by default and should be explicitly unlocked
 */
contract PausableInterface {

  /**
   * Events
   */

  event PauseEvent();
  event UnpauseEvent();


  /**
   * @dev called by the manager to pause, triggers stopped state
   */
  function pauseContract() public;

  /**
   * @dev called by the manager to unpause, returns to normal state
   */
  function unpauseContract() public;

  /**
   * @dev The getter for "paused" contract variable
   */
  function getPaused() public constant returns (bool);


  /**
   * @dev modifier to allow actions only when the contract IS paused
   */
  modifier whenContractNotPaused() {
    require(getPaused() == false);
    _;
  }

  /**
   * @dev modifier to allow actions only when the contract IS NOT paused
   */
  modifier whenContractPaused {
    require(getPaused() == true);
    _;
  }
}



/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 * @dev Based on zeppelin's Pausable, but integrated with Manageable
 * @dev Contract is in paused state by default and should be explicitly unlocked
 */
contract Pausable is ManageableInterface,
                     PausableInterface {

  /**
   * Storage
   */

  bool paused = true;


  /**
   * @dev called by the manager to pause, triggers stopped state
   */
  function pauseContract() public onlyAllowedManager('pause_contract') whenContractNotPaused {
    paused = true;
    PauseEvent();
  }

  /**
   * @dev called by the manager to unpause, returns to normal state
   */
  function unpauseContract() public onlyAllowedManager('unpause_contract') whenContractPaused {
    paused = false;
    UnpauseEvent();
  }

  /**
   * @dev The getter for "paused" contract variable
   */
  function getPaused() public constant returns (bool) {
    return paused;
  }
}



/**
 * @title BytecodeExecutorInterface interface
 * @dev Implementation of a contract that execute any bytecode on behalf of the contract
 * @dev Last resort for the immutable and not-replaceable contract :)
 */
contract BytecodeExecutorInterface {

  /* Events */

  event CallExecutedEvent(address indexed target,
                          uint256 suppliedGas,
                          uint256 ethValue,
                          bytes32 transactionBytecodeHash);
  event DelegatecallExecutedEvent(address indexed target,
                                  uint256 suppliedGas,
                                  bytes32 transactionBytecodeHash);


  /* Functions */

  function executeCall(address _target, uint256 _suppliedGas, uint256 _ethValue, bytes _transactionBytecode) external;
  function executeDelegatecall(address _target, uint256 _suppliedGas, bytes _transactionBytecode) external;
}



/**
 * @title BytecodeExecutor
 * @dev Implementation of a contract that execute any bytecode on behalf of the contract
 * @dev Last resort for the immutable and not-replaceable contract :)
 */
contract BytecodeExecutor is ManageableInterface,
                             BytecodeExecutorInterface {

  /* Storage */

  bool underExecution = false;


  /* BytecodeExecutorInterface */

  function executeCall(
    address _target,
    uint256 _suppliedGas,
    uint256 _ethValue,
    bytes _transactionBytecode
  )
    external
    onlyAllowedManager('execute_call')
  {
    require(underExecution == false);

    underExecution = true; // Avoid recursive calling
    _target.call.gas(_suppliedGas).value(_ethValue)(_transactionBytecode);
    underExecution = false;

    CallExecutedEvent(_target, _suppliedGas, _ethValue, keccak256(_transactionBytecode));
  }

  function executeDelegatecall(
    address _target,
    uint256 _suppliedGas,
    bytes _transactionBytecode
  )
    external
    onlyAllowedManager('execute_delegatecall')
  {
    require(underExecution == false);

    underExecution = true; // Avoid recursive calling
    _target.delegatecall.gas(_suppliedGas)(_transactionBytecode);
    underExecution = false;

    DelegatecallExecutedEvent(_target, _suppliedGas, keccak256(_transactionBytecode));
  }
}





/**
 * @title CrydrControllerERC20Interface interface
 * @dev Interface of a contract that implement business-logic of an ERC20 CryDR
 */
contract CrydrControllerERC20Interface {

  /* ERC20 support. _msgsender - account that invoked CrydrView */

  function transfer(address _msgsender, address _to, uint256 _value) public;
  function getTotalSupply() public constant returns (uint256);
  function getBalance(address _owner) public constant returns (uint256);

  function approve(address _msgsender, address _spender, uint256 _value) public;
  function transferFrom(address _msgsender, address _from, address _to, uint256 _value) public;
  function getAllowance(address _owner, address _spender) public constant returns (uint256);
}





contract CrydrViewBaseInterface {

  /* Events */

  event CrydrControllerChangedEvent(address indexed crydrcontroller);


  /* Configuration */

  function setCrydrController(address _crydrController) external;
  function getCrydrController() public constant returns (address);

  function getCrydrViewStandardName() public constant returns (string);
  function getCrydrViewStandardNameHash() public constant returns (bytes32);
}



contract CrydrViewBase is CommonModifiersInterface,
                          AssetIDInterface,
                          ManageableInterface,
                          PausableInterface,
                          CrydrViewBaseInterface {

  /* Storage */

  address crydrController = address(0x0);
  string crydrViewStandardName = '';


  /* Constructor */

  function CrydrViewBase(string _crydrViewStandardName) public {
    require(bytes(_crydrViewStandardName).length > 0);

    crydrViewStandardName = _crydrViewStandardName;
  }


  /* CrydrViewBaseInterface */

  function setCrydrController(
    address _crydrController
  )
    external
    onlyContractAddress(_crydrController)
    onlyAllowedManager('set_crydr_controller')
    whenContractPaused
  {
    require(crydrController != _crydrController);

    crydrController = _crydrController;
    CrydrControllerChangedEvent(_crydrController);
  }

  function getCrydrController() public constant returns (address) {
    return crydrController;
  }


  function getCrydrViewStandardName() public constant returns (string) {
    return crydrViewStandardName;
  }

  function getCrydrViewStandardNameHash() public constant returns (bytes32) {
    return keccak256(crydrViewStandardName);
  }


  /* PausableInterface */

  /**
   * @dev Override method to ensure that contract properly configured before it is unpaused
   */
  function unpauseContract() public {
    require(isContract(crydrController) == true);
    require(getAssetIDHash() == AssetIDInterface(crydrController).getAssetIDHash());

    super.unpauseContract();
  }
}



/**
 * @title CrydrViewERC20Interface
 * @dev ERC20 interface to use in applications
 */
contract CrydrViewERC20Interface {
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);

  function transfer(address _to, uint256 _value) external returns (bool);
  function totalSupply() external constant returns (uint256);
  function balanceOf(address _owner) external constant returns (uint256);

  function approve(address _spender, uint256 _value) external returns (bool);
  function transferFrom(address _from, address _to, uint256 _value) external returns (bool);
  function allowance(address _owner, address _spender) external constant returns (uint256);
}



contract CrydrViewERC20 is PausableInterface,
                           CrydrViewBaseInterface,
                           CrydrViewERC20Interface {

  /* ERC20Interface */

  function transfer(
    address _to,
    uint256 _value
  )
    external
    whenContractNotPaused
    onlyPayloadSize(2 * 32)
    returns (bool)
  {
    CrydrControllerERC20Interface(getCrydrController()).transfer(msg.sender, _to, _value);
    return true;
  }

  function totalSupply() external constant returns (uint256) {
    return CrydrControllerERC20Interface(getCrydrController()).getTotalSupply();
  }

  function balanceOf(address _owner) external constant onlyPayloadSize(1 * 32) returns (uint256) {
    return CrydrControllerERC20Interface(getCrydrController()).getBalance(_owner);
  }


  function approve(
    address _spender,
    uint256 _value
  )
    external
    whenContractNotPaused
    onlyPayloadSize(2 * 32)
    returns (bool)
  {
    CrydrControllerERC20Interface(getCrydrController()).approve(msg.sender, _spender, _value);
    return true;
  }

  function transferFrom(
    address _from,
    address _to,
    uint256 _value
  )
    external
    whenContractNotPaused
    onlyPayloadSize(3 * 32)
    returns (bool)
  {
    CrydrControllerERC20Interface(getCrydrController()).transferFrom(msg.sender, _from, _to, _value);
    return true;
  }

  function allowance(
    address _owner,
    address _spender
  )
    external
    constant
    onlyPayloadSize(2 * 32)
    returns (uint256)
  {
    return CrydrControllerERC20Interface(getCrydrController()).getAllowance(_owner, _spender);
  }


  /* Helpers */

  /**
   * @dev Fix for the ERC20 short address attack.
   */
  modifier onlyPayloadSize(uint256 size) {
    require(msg.data.length == (size + 4));
    _;
  }
}



/**
 * @title CrydrViewERC20LoggableInterface
 * @dev Contract is able to create Transfer/Approval events with the cal from controller
 */
contract CrydrViewERC20LoggableInterface {

  function emitTransferEvent(address _from, address _to, uint256 _value) external;
  function emitApprovalEvent(address _owner, address _spender, uint256 _value) external;
}



contract CrydrViewERC20Loggable is PausableInterface,
                                   CrydrViewBaseInterface,
                                   CrydrViewERC20Interface,
                                   CrydrViewERC20LoggableInterface {

  function emitTransferEvent(
    address _from,
    address _to,
    uint256 _value
  )
    external
  {
    require(msg.sender == getCrydrController());

    Transfer(_from, _to, _value);
  }

  function emitApprovalEvent(
    address _owner,
    address _spender,
    uint256 _value
  )
    external
  {
    require(msg.sender == getCrydrController());

    Approval(_owner, _spender, _value);
  }
}



/**
 * @title CrydrViewERC20MintableInterface
 * @dev Contract is able to create Mint/Burn events with the cal from controller
 */
contract CrydrViewERC20MintableInterface {
  event MintEvent(address indexed owner, uint256 value);
  event BurnEvent(address indexed owner, uint256 value);

  function emitMintEvent(address _owner, uint256 _value) external;
  function emitBurnEvent(address _owner, uint256 _value) external;
}



contract CrydrViewERC20Mintable is PausableInterface,
                                   CrydrViewBaseInterface,
                                   CrydrViewERC20MintableInterface {

  function emitMintEvent(
    address _owner,
    uint256 _value
  )
    external
  {
    require(msg.sender == getCrydrController());

    MintEvent(_owner, _value);
  }

  function emitBurnEvent(
    address _owner,
    uint256 _value
  )
    external
  {
    require(msg.sender == getCrydrController());

    BurnEvent(_owner, _value);
  }
}



/**
 * @title CrydrViewERC20NamedInterface
 * @dev Contract is able to set name/symbol/decimals
 */
contract CrydrViewERC20NamedInterface {

  function name() external constant returns (string);
  function symbol() external constant returns (string);
  function decimals() external constant returns (uint8);

  function getNameHash() external constant returns (bytes32);
  function getSymbolHash() external constant returns (bytes32);

  function setName(string _name) external;
  function setSymbol(string _symbol) external;
  function setDecimals(uint8 _decimals) external;
}



contract CrydrViewERC20Named is ManageableInterface,
                                PausableInterface,
                                CrydrViewERC20NamedInterface {

  /* Storage */

  string tokenName = '';
  string tokenSymbol = '';
  uint8 tokenDecimals = 0;


  /* Constructor */

  function CrydrViewERC20Named(string _name, string _symbol, uint8 _decimals) public {
    require(bytes(_name).length > 0);
    require(bytes(_symbol).length > 0);

    tokenName = _name;
    tokenSymbol = _symbol;
    tokenDecimals = _decimals;
  }


  /* CrydrViewERC20NamedInterface */

  function name() external constant returns (string) {
    return tokenName;
  }

  function symbol() external constant returns (string) {
    return tokenSymbol;
  }

  function decimals() external constant returns (uint8) {
    return tokenDecimals;
  }


  function getNameHash() external constant returns (bytes32){
    return keccak256(tokenName);
  }

  function getSymbolHash() external constant returns (bytes32){
    return keccak256(tokenSymbol);
  }


  function setName(
    string _name
  )
    external
    whenContractPaused
    onlyAllowedManager('set_crydr_name')
  {
    require(bytes(_name).length > 0);

    tokenName = _name;
  }

  function setSymbol(
    string _symbol
  )
    external
    whenContractPaused
    onlyAllowedManager('set_crydr_symbol')
  {
    require(bytes(_symbol).length > 0);

    tokenSymbol = _symbol;
  }

  function setDecimals(
    uint8 _decimals
  )
    external
    whenContractPaused
    onlyAllowedManager('set_crydr_decimals')
  {
    tokenDecimals = _decimals;
  }
}



contract JCashCrydrViewERC20 is CommonModifiers,
                                AssetID,
                                Ownable,
                                Manageable,
                                Pausable,
                                BytecodeExecutor,
                                CrydrViewBase,
                                CrydrViewERC20,
                                CrydrViewERC20Loggable,
                                CrydrViewERC20Mintable,
                                CrydrViewERC20Named {

  function JCashCrydrViewERC20(string _assetID, string _name, string _symbol, uint8 _decimals)
    public
    AssetID(_assetID)
    CrydrViewBase('erc20')
    CrydrViewERC20Named(_name, _symbol, _decimals)
  { }
}



contract JNTViewERC20 is JCashCrydrViewERC20 {
  function JNTViewERC20() public JCashCrydrViewERC20('JNT', 'Jibrel Network Token', 'JNT', 18) {}
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"_manager","type":"address"},{"name":"_permissionName","type":"string"}],"name":"isManagerAllowed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"cancelOwnershipOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCrydrViewStandardNameHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_crydrController","type":"address"}],"name":"setCrydrController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_manager","type":"address"},{"name":"_permissionName","type":"string"}],"name":"isPermissionGranted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pauseContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"}],"name":"enableManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAssetID","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getSymbolHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_decimals","type":"uint8"}],"name":"setDecimals","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"},{"name":"_permissionName","type":"string"}],"name":"revokeManagerPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCrydrViewStandardName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"},{"name":"_permissionName","type":"string"}],"name":"grantManagerPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_suppliedGas","type":"uint256"},{"name":"_ethValue","type":"uint256"},{"name":"_transactionBytecode","type":"bytes"}],"name":"executeCall","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitMintEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_proposedOwner","type":"address"}],"name":"createOwnershipOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_manager","type":"address"}],"name":"isManagerEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitTransferEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAssetIDHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpauseContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCrydrController","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_suppliedGas","type":"uint256"},{"name":"_transactionBytecode","type":"bytes"}],"name":"executeDelegatecall","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"}],"name":"disableManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getNameHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getProposedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitBurnEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"emitApprovalEvent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnershipOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"MintEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"BurnEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"crydrcontroller","type":"address"}],"name":"CrydrControllerChangedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"suppliedGas","type":"uint256"},{"indexed":false,"name":"ethValue","type":"uint256"},{"indexed":false,"name":"transactionBytecodeHash","type":"bytes32"}],"name":"CallExecutedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"target","type":"address"},{"indexed":false,"name":"suppliedGas","type":"uint256"},{"indexed":false,"name":"transactionBytecodeHash","type":"bytes32"}],"name":"DelegatecallExecutedEvent","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseEvent","type":"event"},{"anonymous":false,"inputs":[],"name":"UnpauseEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"manager","type":"address"}],"name":"ManagerEnabledEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"manager","type":"address"}],"name":"ManagerDisabledEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"manager","type":"address"},{"indexed":false,"name":"permission","type":"string"}],"name":"ManagerPermissionGrantedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"manager","type":"address"},{"indexed":false,"name":"permission","type":"string"}],"name":"ManagerPermissionRevokedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"newowner","type":"address"}],"name":"OwnerAssignedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"currentowner","type":"address"},{"indexed":true,"name":"proposedowner","type":"address"}],"name":"OwnershipOfferCreatedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"currentowner","type":"address"},{"indexed":true,"name":"proposedowner","type":"address"}],"name":"OwnershipOfferAcceptedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"currentowner","type":"address"},{"indexed":true,"name":"proposedowner","type":"address"}],"name":"OwnershipOfferCancelledEvent","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006101000a81548160ff0219169083151502179055506000600560016101000a81548160ff0219169083151502179055506000600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060206040519081016040528060008152506006908051906020019062000128929190620003f9565b5060206040519081016040528060008152506007908051906020019062000151929190620003f9565b506020604051908101604052806000815250600890805190602001906200017a929190620003f9565b506000600960006101000a81548160ff021916908360ff1602179055503415620001a357600080fd5b6040805190810160405280600381526020017f4a4e5400000000000000000000000000000000000000000000000000000000008152506040805190810160405280601481526020017f4a696272656c204e6574776f726b20546f6b656e0000000000000000000000008152506040805190810160405280600381526020017f4a4e54000000000000000000000000000000000000000000000000000000000081525060128282826040805190810160405280600581526020017f657263323000000000000000000000000000000000000000000000000000000081525087600081511115156200029257600080fd5b8060009080519060200190620002aa929190620003f9565b505033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8d2a41ca5ff551a8f68510de75177b7d56e6019c8579b5509d2be1bb41a0d0af60405160405180910390a2600081511115156200036357600080fd5b80600690805190602001906200037b929190620003f9565b5050600083511115156200038e57600080fd5b600082511115156200039f57600080fd5b8260079080519060200190620003b7929190620003f9565b508160089080519060200190620003d0929190620003f9565b5080600960006101000a81548160ff021916908360ff16021790555050505050505050620004a8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200043c57805160ff19168380011785556200046d565b828001600101855582156200046d579182015b828111156200046c5782518255916020019190600101906200044f565b5b5090506200047c919062000480565b5090565b620004a591905b80821115620004a157600081600090555060010162000487565b5090565b90565b61364f80620004b86000396000f3006060604052600436106101f9576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630392d2b4146101fe57806306fdde0314610292578063095ea7b31461032057806318160ddd1461037a5780631eb96a5c146103a3578063230f6e83146103b857806323b872dd146103e9578063305f17d514610462578063313ce5671461049b57806332a2fda7146104ca578063439766ce1461055e5780635ca5b334146105735780636805b84b146105ac578063696b5fb7146105d95780636ea928d91461066757806370a08231146106985780637a1395aa146106e55780637c0efb8b1461070b5780637c6fb02a14610758578063822b08d0146107e6578063893d20e8146108335780638ba7e57014610888578063958689d7146108e757806395d89b41146109295780639739db9d146109b75780639b53d87c146109f0578063a6d49dca14610a41578063a773d98a14610aa2578063a9059cbb14610ad3578063b33712c514610b2d578063b84c824614610b42578063c47f002714610b70578063ca9c286214610b9e578063d2b7d95714610bf3578063d4859dc514610c49578063dd62ed3e14610c82578063e102d95014610cee578063eae5a62d14610d1f578063ed810cfa14610d74578063f23b6fa214610db6578063f538534514610e17575b600080fd5b341561020957600080fd5b610278600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610e2c565b604051808215151515815260200191505060405180910390f35b341561029d57600080fd5b6102a5610f92565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102e55780820151818401526020810190506102ca565b50505050905090810190601f1680156103125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561032b57600080fd5b610360600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061103a565b604051808215151515815260200191505060405180910390f35b341561038557600080fd5b61038d611168565b6040518082815260200191505060405180910390f35b34156103ae57600080fd5b6103b66111fd565b005b34156103c357600080fd5b6103cb6113f6565b60405180826000191660001916815260200191505060405180910390f35b34156103f457600080fd5b610448600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611467565b604051808215151515815260200191505060405180910390f35b341561046d57600080fd5b610499600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115ca565b005b34156104a657600080fd5b6104ae611738565b604051808260ff1660ff16815260200191505060405180910390f35b34156104d557600080fd5b610544600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061174f565b604051808215151515815260200191505060405180910390f35b341561056957600080fd5b610571611860565b005b341561057e57600080fd5b6105aa600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611916565b005b34156105b757600080fd5b6105bf611a92565b604051808215151515815260200191505060405180910390f35b34156105e457600080fd5b6105ec611aa9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561062c578082015181840152602081019050610611565b50505050905090810190601f1680156106595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561067257600080fd5b61067a611b51565b60405180826000191660001916815260200191505060405180910390f35b34156106a357600080fd5b6106cf600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611bc2565b6040518082815260200191505060405180910390f35b34156106f057600080fd5b610709600480803560ff16906020019091905050611ca8565b005b341561071657600080fd5b610756600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190820180359060200191909192905050611d33565b005b341561076357600080fd5b61076b611f61565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107ab578082015181840152602081019050610790565b50505050905090810190601f1680156107d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156107f157600080fd5b610831600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190820180359060200191909192905050612009565b005b341561083e57600080fd5b610846612237565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561089357600080fd5b6108e5600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919080359060200190919080359060200190820180359060200191909192905050612261565b005b34156108f257600080fd5b610927600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506123d6565b005b341561093457600080fd5b61093c612469565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561097c578082015181840152602081019050610961565b50505050905090810190601f1680156109a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109c257600080fd5b6109ee600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612511565b005b34156109fb57600080fd5b610a27600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506126e6565b604051808215151515815260200191505060405180910390f35b3415610a4c57600080fd5b610aa0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061277a565b005b3415610aad57600080fd5b610ab5612825565b60405180826000191660001916815260200191505060405180910390f35b3415610ade57600080fd5b610b13600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612895565b604051808215151515815260200191505060405180910390f35b3415610b3857600080fd5b610b406129c3565b005b3415610b4d57600080fd5b610b6e60048080359060200190820180359060200191909192905050612acf565b005b3415610b7b57600080fd5b610b9c60048080359060200190820180359060200191909192905050612b64565b005b3415610ba957600080fd5b610bb1612bf9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610bfe57600080fd5b610c47600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919080359060200190820180359060200191909192905050612c23565b005b3415610c5457600080fd5b610c80600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d8c565b005b3415610c8d57600080fd5b610cd8600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612f08565b6040518082815260200191505060405180910390f35b3415610cf957600080fd5b610d01613023565b60405180826000191660001916815260200191505060405180910390f35b3415610d2a57600080fd5b610d32613094565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d7f57600080fd5b610db4600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506130be565b005b3415610dc157600080fd5b610e15600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050613151565b005b3415610e2257600080fd5b610e2a6131fc565b005b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610e6b57600080fd5b826000815114151515610e7d57600080fd5b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015610f885750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b602083101515610f465780518252602082019150602081019050602083039250610f21565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff165b9250505092915050565b610f9a61356a565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110305780601f1061100557610100808354040283529160200191611030565b820191906000526020600020905b81548152906001019060200180831161101357829003601f168201915b5050505050905090565b6000801515611047611a92565b151514151561105557600080fd5b604060048101600036905014151561106c57600080fd5b611074612bf9565b73ffffffffffffffffffffffffffffffffffffffff1663e1f21c673386866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b151561114957600080fd5b6102c65a03f1151561115a57600080fd5b505050600191505092915050565b6000611172612bf9565b73ffffffffffffffffffffffffffffffffffffffff1663c4e41b226000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156111dd57600080fd5b6102c65a03f115156111ee57600080fd5b50505060405180519050905090565b60008073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561125c57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113055750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561131057600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f223225995c0c0965e8752fd93ca10aba4bafcbca26f31b1565955adb68e76bda60405160405180910390a350565b6000600660405180828054600181600116156101000203166002900480156114555780601f10611433576101008083540402835291820191611455565b820191906000526020600020905b815481529060010190602001808311611441575b50509150506040518091039020905090565b6000801515611474611a92565b151514151561148257600080fd5b606060048101600036905014151561149957600080fd5b6114a1612bf9565b73ffffffffffffffffffffffffffffffffffffffff166315dacbea338787876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001945050505050600060405180830381600087803b15156115aa57600080fd5b6102c65a03f115156115bb57600080fd5b50505060019150509392505050565b80600115156115d882613465565b15151415156115e657600080fd5b6040805190810160405280601481526020017f7365745f63727964725f636f6e74726f6c6c65720000000000000000000000008152506001151561162a3383610e2c565b151514151561163857600080fd5b60011515611644611a92565b151514151561165257600080fd5b8273ffffffffffffffffffffffffffffffffffffffff16600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156116af57600080fd5b82600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff167f95e43e6707a0436b5cc3af93d12042ce56df5ec4fe857d77836fe6316dc8457060405160405180910390a2505050565b6000600960009054906101000a900460ff16905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561178e57600080fd5b8260008151141515156117a057600080fd5b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b60208310151561181557805182526020820191506020810190506020830392506117f0565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff169250505092915050565b6040805190810160405280600e81526020017f70617573655f636f6e7472616374000000000000000000000000000000000000815250600115156118a43383610e2c565b15151415156118b257600080fd5b600015156118be611a92565b15151415156118cc57600080fd5b6001600560006101000a81548160ff0219169083151502179055507f14cc32b2b0edca88201ca20553c392d108a2feb2c750a0ee14c707b4f34fbee260405160405180910390a150565b61191e612237565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561195757600080fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561199457600080fd5b60001515600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156119f357600080fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f7f0b61f78ab0b549b68ce61404f4ee01a26ffdf8d421d099d271d789aaea3a8e60405160405180910390a25050565b6000600560009054906101000a900460ff16905090565b611ab161356a565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b475780601f10611b1c57610100808354040283529160200191611b47565b820191906000526020600020905b815481529060010190602001808311611b2a57829003601f168201915b5050505050905090565b600060086040518082805460018160011615610100020316600290048015611bb05780601f10611b8e576101008083540402835291820191611bb0565b820191906000526020600020905b815481529060010190602001808311611b9c575b50509150506040518091039020905090565b60006020600481016000369050141515611bdb57600080fd5b611be3612bf9565b73ffffffffffffffffffffffffffffffffffffffff1663f8b2cb4f846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611c8557600080fd5b6102c65a03f11515611c9657600080fd5b50505060405180519050915050919050565b60011515611cb4611a92565b1515141515611cc257600080fd5b6040805190810160405280601281526020017f7365745f63727964725f646563696d616c73000000000000000000000000000081525060011515611d063383610e2c565b1515141515611d1457600080fd5b81600960006101000a81548160ff021916908360ff1602179055505050565b611d3b612237565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7457600080fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611db157600080fd5b82828080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506000815114151515611df557600080fd5b60011515600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858560405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff161515141515611e7757600080fd5b6000600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858560405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167fe2b13fa06e3428fe0e43b2e517d25708ba477cafdff4fbcd06e3e93864517ddc8585604051808060200182810382528484828181526020019250808284378201915050935050505060405180910390a25050505050565b611f6961356a565b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fff5780601f10611fd457610100808354040283529160200191611fff565b820191906000526020600020905b815481529060010190602001808311611fe257829003601f168201915b5050505050905090565b612011612237565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561204a57600080fd5b82600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561208757600080fd5b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505060008151141515156120cb57600080fd5b60001515600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858560405180838380828437820191505092505050908152602001604051809103902060009054906101000a900460ff16151514151561214d57600080fd5b6001600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020858560405180838380828437820191505092505050908152602001604051809103902060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167fb76b4ee2621e0744da93fa797bdc4851a3b9e303b2950f2f234a449e5f36d35e8585604051808060200182810382528484828181526020019250808284378201915050935050505060405180910390a25050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040805190810160405280600c81526020017f657865637574655f63616c6c0000000000000000000000000000000000000000815250600115156122a53383610e2c565b15151415156122b357600080fd5b60001515600560019054906101000a900460ff1615151415156122d557600080fd5b6001600560016101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff168585858560405180838380828437820191505092505050600060405180830381858888f19350505050506000600560016101000a81548160ff0219169083151502179055508573ffffffffffffffffffffffffffffffffffffffff167f376185a1f1832ecd7ffd6a421a54d437594db00f80f6122e8534d19d978b65b686868686604051808383808284378201915050925050506040518091039020604051808481526020018381526020018260001916600019168152602001935050505060405180910390a2505050505050565b6123de612bf9565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561241757600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167f3fffaa5804a26fcec0d70b1d0fb0a2d0031df3a5f9c8af2127c2f4360e97b463826040518082815260200191505060405180910390a25050565b61247161356a565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156125075780601f106124dc57610100808354040283529160200191612507565b820191906000526020600020905b8154815290600101906020018083116124ea57829003601f168201915b5050505050905090565b612519612237565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561255257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156125af57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156125eb57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561262657600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0c5d18b25c2665dfeec8ea7956663ec48f079fdd04799ddd335f2fdce1a9fceb60405160405180910390a350565b600081600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561272557600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16915050919050565b612782612bf9565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156127bb57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008060405180828054600181600116156101000203166002900480156128835780601f10612861576101008083540402835291820191612883565b820191906000526020600020905b81548152906001019060200180831161286f575b50509150506040518091039020905090565b60008015156128a2611a92565b15151415156128b057600080fd5b60406004810160003690501415156128c757600080fd5b6128cf612bf9565b73ffffffffffffffffffffffffffffffffffffffff1663beabacc83386866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b15156129a457600080fd5b6102c65a03f115156129b557600080fd5b505050600191505092915050565b600115156129f2600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613465565b1515141515612a0057600080fd5b600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a773d98a6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515612a8e57600080fd5b6102c65a03f11515612a9f57600080fd5b5050506040518051905060001916612ab5612825565b60001916141515612ac557600080fd5b612acd6134b4565b565b60011515612adb611a92565b1515141515612ae957600080fd5b6040805190810160405280601081526020017f7365745f63727964725f73796d626f6c0000000000000000000000000000000081525060011515612b2d3383610e2c565b1515141515612b3b57600080fd5b600083839050111515612b4d57600080fd5b828260089190612b5e92919061357e565b50505050565b60011515612b70611a92565b1515141515612b7e57600080fd5b6040805190810160405280600e81526020017f7365745f63727964725f6e616d6500000000000000000000000000000000000081525060011515612bc23383610e2c565b1515141515612bd057600080fd5b600083839050111515612be257600080fd5b828260079190612bf392919061357e565b50505050565b6000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040805190810160405280601481526020017f657865637574655f64656c656761746563616c6c00000000000000000000000081525060011515612c673383610e2c565b1515141515612c7557600080fd5b60001515600560019054906101000a900460ff161515141515612c9757600080fd5b6001600560016101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff16848484604051808383808284378201915050925050506000604051808303818686f492505050506000600560016101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167ffd9a51b5876c403362d350caaea2a99618ed2c0b3eb601e0ab04606616e671888585856040518083838082843782019150509250505060405180910390206040518083815260200182600019166000191681526020019250505060405180910390a25050505050565b612d94612237565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612dcd57600080fd5b80600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612e0a57600080fd5b60011515600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515612e6957600080fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f91975e22df3ba360814d3153e8eaef17954cf47d52a42840fc9747ad1086b35160405160405180910390a25050565b60006040600481016000369050141515612f2157600080fd5b612f29612bf9565b73ffffffffffffffffffffffffffffffffffffffff16630af4187d85856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1515612fff57600080fd5b6102c65a03f1151561301057600080fd5b5050506040518051905091505092915050565b6000600760405180828054600181600116156101000203166002900480156130825780601f10613060576101008083540402835291820191613082565b820191906000526020600020905b81548152906001019060200180831161306e575b50509150506040518091039020905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6130c6612bf9565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130ff57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167f512586160ebd4dc6945ba9ec5d21a1f723f26f3c7aa36cdffb6818d4e7b88030826040518082815260200191505060405180910390a25050565b613159612bf9565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561319257600080fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561325b57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156132b757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8d2a41ca5ff551a8f68510de75177b7d56e6019c8579b5509d2be1bb41a0d0af60405160405180910390a2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f3912b3f6ff73ee5d4cd2894666c349dec2d3d2ed7dc6d35c28c5eabf105a88d860405160405180910390a350565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156134a457600080fd5b823b905060008111915050919050565b6040805190810160405280601081526020017f756e70617573655f636f6e747261637400000000000000000000000000000000815250600115156134f83383610e2c565b151514151561350657600080fd5b60011515613512611a92565b151514151561352057600080fd5b6000600560006101000a81548160ff0219169083151502179055507f6249a5c797c884cbf33e63e8cfc250816032db24e22051de68a388315e64afc660405160405180910390a150565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106135bf57803560ff19168380011785556135ed565b828001600101855582156135ed579182015b828111156135ec5782358255916020019190600101906135d1565b5b5090506135fa91906135fe565b5090565b61362091905b8082111561361c576000816000905550600101613604565b5090565b905600a165627a7a72305820ec674e8d64e700bcb0909d4673514f7a296d8f89c8b59f5af0c4157895cdd18e0029

   Swarm Source:
bzzr://ec674e8d64e700bcb0909d4673514f7a296d8f89c8b59f5af0c4157895cdd18e

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.