Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 62 txns
Token Tracker: LD2.zero (XLDZ)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x2f1c3f09f1049642ae53678c044a5e6fbc79b4e4at txn 0x3981a76e91cd7d9aab7ff5c42c8bd6ebc7ef8ade145f03f4438a5ec716f5d29b
 Latest 25 transactions from a total of 62 transactions

TxHash Age From To Value [TxFee]
0xe9a4e129065a12b1ae5187a8031dde675d15e6fdb777e60fc8e3fa45011bbf2f6 days 3 hrs ago0xfe516d029a0d403a93cdac514610d0058acd6e82  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.00041559564
0x0506328d76968c7582cd045a39425c6a8e20068735599effa2957fa65bc37f8520 days 10 hrs ago0xb5bae7e37cc502869bf8ba83cc40297e3a45d463  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.002116707
0xe9f549aee7cd75e9809919af10fe3fdf6f0d8ed4587f2ee8d33045463bdf5f0421 days 23 hrs ago0x67b4d78a86d6279bc69dd8c85c7071fb418a964a  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.001501707
0x2405615b71795c37ea9634c7aeab03a0c20f89e68dbcf1a3bbf11a09d5d2bed429 days 33 mins ago0x18ed700e288cf5861004271585b54eb7980c5871  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.000103254
0x70da579dd47e9e6518bf42b1a6e52afff0ed1f16578af6789d2a96761d8867d829 days 1 hr ago0x18ed700e288cf5861004271585b54eb7980c5871  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.000199881
0xbce05b2b12eff53c703c7f96e43e2640daf6717b013471cf0af32330009c66cf30 days 9 hrs ago0x604ece7976e24e6a85f8d0926828433097a8e5f3  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.0002478096
0x5adc8c4be468e0e0ba3c8e1042d1f3167aef1577f65932d5553de9c6599d420e31 days 8 hrs ago0x1b85ec99155e168886497c7f2d9caaa4b43e336c  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.00103254
0x7ef2381d05e5b89bf617f8375a412e06cda4a6e2cc7708910245ba21e6fcde7731 days 9 hrs ago0x1b85ec99155e168886497c7f2d9caaa4b43e336c  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.001667275
0x64fa8d354872aae16ac9eba931b6c925569559131e0b1d20c9fc76a72523289f32 days 2 hrs ago0x34ab005ae9789bda6e0a55d256cf637570394745  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.002121955
0x6492f0a5d4c31882321e3da63dd170d08f8a0911890ec60f1f9b5ea1c81f747133 days 1 hr ago0x156796e890ea35bb953c54aae00b9a01deb87e79  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.001506955
0x5f9aaaaff8071fe8e69dc77aa23dd2b5a37a1f22e85e15faf04ed70fc2c858d133 days 2 hrs ago0x156796e890ea35bb953c54aae00b9a01deb87e79  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.000108248
0xcb4057b8dc493c7bf18c68763fe4150135a711f979a40587b029a976c6c2224b36 days 2 hrs ago0x156796e890ea35bb953c54aae00b9a01deb87e79  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.000081186
0xa478e2975e631206ed5ffd32a84d992167a2e76f0dd3d469fdfe6867df5b140b37 days 1 hr ago0x5ecede545a286a2605757d539437deb83c1da050  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.002116707
0x9df356f1f051d86bbf30b6c8dbde70e9ba51023fa1e4b31caf48f5e0a277eae438 days 1 hr ago0xfe516d029a0d403a93cdac514610d0058acd6e82  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.000155073
0x72e29c59e7bf921926c9a0c1bc17c88efbb3f13597d801e6ed07a4565e39bc7938 days 1 hr ago0x34ab005ae9789bda6e0a55d256cf637570394745  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.001504331
0xda2f668c0057485f276ee02da9118d8e3073d225bf68efb478e7579c084527a342 days 5 hrs ago0x1c5377488c98d2ab9a05a5ce1feda867a15f3ca6  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.000206508
0x1fe456f76de6694891e1225452a72c49936c40426e4739329e89c769c85b56a343 days 6 hrs ago0xb0e31e0e2304c361cbeb3d87e537bc981d876feb  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.000256215
0xd985ecc9fb020f8f0eba195b4d95db80acfdce0814b7497d1bfecbc3fec9179c44 days 10 hrs ago0xbf3848e7572ca5708e410a82e50e3763e9adb71d  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.002731707
0x6251265bc39b5d09ace5321dbaaf08de4e7532907dd303f2580f26dba4a61a0146 days 5 hrs ago0x1b85ec99155e168886497c7f2d9caaa4b43e336c  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.00399762
0xd41010a9b2b6d8855c27e0b301858e383a3d10d49a364a049ad32acd9a3f43e346 days 5 hrs ago0x1b85ec99155e168886497c7f2d9caaa4b43e336c  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.00101252375
0x557b4c91d83c39ba01acf5ab30e0a7b74850c93db21dfd38d174617894b75ed349 days 19 hrs ago0x2f1c3f09f1049642ae53678c044a5e6fbc79b4e4  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.000137965
0x179a0e0fe28b56f2fdeafce9dca29041a69cbeaf8e5bf93d5297ae1728ff89d549 days 21 hrs ago0x2f1c3f09f1049642ae53678c044a5e6fbc79b4e4  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.000170275
0x6b7c8040702f46c6980419d90eea4fdef2cb1908e19b0f25dbb721bd2083c89d50 days 10 hrs ago0x2f1c3f09f1049642ae53678c044a5e6fbc79b4e4  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.0001946
0x4295781768449e1cb7c71a51e93861a4668b915f56e49d135c0037839319f2e051 days 4 hrs ago0x2f1c3f09f1049642ae53678c044a5e6fbc79b4e4  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.00014595
0xe1485f5e55a23bb2c1df4a458481afa3d135d5c9050ceaf8fc51250801b5741c51 days 6 hrs ago0xdb7f7cfc293d763e2d666b7176a03855839df013  IN   0x2f5cdc81a729b750f3b733cb95660e788441c71e0 Ether0.000309762
[ 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: LD2Zero
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.19;

// File: contracts/storage/interface/RocketStorageInterface.sol

// Our eternal storage interface
contract RocketStorageInterface {
    // Modifiers
    modifier onlyLatestRocketNetworkContract() {_;}
    // Getters
    function getAddress(bytes32 _key) external view returns (address);
    function getUint(bytes32 _key) external view returns (uint);
    function getString(bytes32 _key) external view returns (string);
    function getBytes(bytes32 _key) external view returns (bytes);
    function getBool(bytes32 _key) external view returns (bool);
    function getInt(bytes32 _key) external view returns (int);
    // Setters
    function setAddress(bytes32 _key, address _value) onlyLatestRocketNetworkContract external;
    function setUint(bytes32 _key, uint _value) onlyLatestRocketNetworkContract external;
    function setString(bytes32 _key, string _value) onlyLatestRocketNetworkContract external;
    function setBytes(bytes32 _key, bytes _value) onlyLatestRocketNetworkContract external;
    function setBool(bytes32 _key, bool _value) onlyLatestRocketNetworkContract external;
    function setInt(bytes32 _key, int _value) onlyLatestRocketNetworkContract external;
    // Deleters
    function deleteAddress(bytes32 _key) onlyLatestRocketNetworkContract external;
    function deleteUint(bytes32 _key) onlyLatestRocketNetworkContract external;
    function deleteString(bytes32 _key) onlyLatestRocketNetworkContract external;
    function deleteBytes(bytes32 _key) onlyLatestRocketNetworkContract external;
    function deleteBool(bytes32 _key) onlyLatestRocketNetworkContract external;
    function deleteInt(bytes32 _key) onlyLatestRocketNetworkContract external;
    // Hash helpers
    function kcck256str(string _key1) external pure returns (bytes32);
    function kcck256strstr(string _key1, string _key2) external pure returns (bytes32);
    function kcck256stradd(string _key1, address _key2) external pure returns (bytes32);
    function kcck256straddadd(string _key1, address _key2, address _key3) external pure returns (bytes32);
}

// File: contracts/storage/RocketBase.sol

/// @title Base settings / modifiers for each contract in Rocket Pool
/// @author David Rugendyke
contract RocketBase {

    /*** Events ****************/

    event ContractAdded (
        address indexed _newContractAddress,                    // Address of the new contract
        uint256 created                                         // Creation timestamp
    );

    event ContractUpgraded (
        address indexed _oldContractAddress,                    // Address of the contract being upgraded
        address indexed _newContractAddress,                    // Address of the new contract
        uint256 created                                         // Creation timestamp
    );

    /**** Properties ************/

    uint8 public version;                                                   // Version of this contract


    /*** Contracts **************/

    RocketStorageInterface rocketStorage = RocketStorageInterface(0);       // The main storage contract where primary persistant storage is maintained


    /*** Modifiers ************/

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

    /**
    * @dev Modifier to scope access to admins
    */
    modifier onlyAdmin() {
        roleCheck("admin", msg.sender);
        _;
    }

    /**
    * @dev Modifier to scope access to admins
    */
    modifier onlySuperUser() {
        require(roleHas("owner", msg.sender) || roleHas("admin", msg.sender));
        _;
    }

    /**
    * @dev Reverts if the address doesn't have this role
    */
    modifier onlyRole(string _role) {
        roleCheck(_role, msg.sender);
        _;
    }

  
    /*** Constructor **********/
   
    /// @dev Set the main Rocket Storage address
    constructor(address _rocketStorageAddress) public {
        // Update the contract address
        rocketStorage = RocketStorageInterface(_rocketStorageAddress);
    }


    /*** Role Utilities */

    /**
    * @dev Check if an address is an owner
    * @return bool
    */
    function isOwner(address _address) public view returns (bool) {
        return rocketStorage.getBool(keccak256("access.role", "owner", _address));
    }

    /**
    * @dev Check if an address has this role
    * @return bool
    */
    function roleHas(string _role, address _address) internal view returns (bool) {
        return rocketStorage.getBool(keccak256("access.role", _role, _address));
    }

     /**
    * @dev Check if an address has this role, reverts if it doesn't
    */
    function roleCheck(string _role, address _address) view internal {
        require(roleHas(_role, _address) == true);
    }

}

// File: contracts/Authorized.sol

/**
 * @title Authorized
 * @dev The Authorized contract has an issuer, depository, and auditor address, and provides basic 
 * authorization control functions, this simplifies the implementation of "user permissions".
 */
contract Authorized is RocketBase {

    // The issuer's address
    // In contract's RocketStorage 
    // address public token.issuer;

    // The depository's address
    // In contract's RocketStorage 
    // address public token.depository;

    // The auditor's address
    // In contract's RocketStorage 
    // address public token.auditor;

    event IssuerTransferred(address indexed previousIssuer, address indexed newIssuer);
    event AuditorTransferred(address indexed previousAuditor, address indexed newAuditor);
    event DepositoryTransferred(address indexed previousDepository, address indexed newDepository);

    /* 
     *  Modifiers
     */

    // Ensure sender is issuer   
    modifier onlyIssuer {
        require( msg.sender == issuer() );
        _;
    }

    // Ensure sender is depository
    modifier onlyDepository {
        require( msg.sender == depository() );
        _;
    }

    // Ensure sender is auditor
    modifier onlyAuditor {
        require( msg.sender == auditor() );
        _;
    }


  /**
   * @dev Allows the current owner to explicity assign a new issuer.
   * @param newIssuer The address of the new issuer.
   */
  function setIssuer(address newIssuer) public onlyOwner {
    require(newIssuer != address(0));
    rocketStorage.setAddress(keccak256("token.issuer"), newIssuer);
    emit IssuerTransferred(issuer(), newIssuer);
  }

  /**
   * @dev Get the current issuer address from storage.
   */
  function issuer() public view returns (address) {
    return rocketStorage.getAddress(keccak256("token.issuer"));
  }

  /**
   * @dev Allows the current owner to explicity assign a new auditor.
   * @param newAuditor The address of the new auditor.
   */
  function setAuditor(address newAuditor) public onlyOwner {
    require(newAuditor != address(0));
    rocketStorage.setAddress(keccak256("token.auditor"), newAuditor);
    emit AuditorTransferred(auditor(), newAuditor);
  }

  /**
   * @dev Get the current auditor address from storage.
   */
  function auditor() public view returns (address) {
    return rocketStorage.getAddress(keccak256("token.auditor"));
  }

  /**
   * @dev Allows the current owner to explicity assign a new depository.
   * @param newDepository The address of the new depository.
   */
  function setDepository(address newDepository) public onlyOwner {
    require(newDepository != address(0));
    rocketStorage.setAddress(keccak256("token.depository"), newDepository);
    emit DepositoryTransferred(depository(), newDepository);
  }

  /**
   * @dev Get the current depository address from storage.
   */
  function depository() public view returns (address) {
    return rocketStorage.getAddress(keccak256("token.depository"));
  }

}

// File: contracts/PausableRedemption.sol

/**
 * @title PausableRedemption
 * @dev Base contract which allows children to implement an emergency stop mechanism, specifically for redemption.
 */
contract PausableRedemption is RocketBase {
  event PauseRedemption();
  event UnpauseRedemption();

  // Whether redemption is paused or not
  // Stored in RocketStorage
  // bool public token.redemptionPaused = false;

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

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

  /**
   * @dev returns the redemptionPaused status from contract storage
   */
  function redemptionPaused() public view returns (bool) {
    return rocketStorage.getBool(keccak256("token.redemptionPaused"));
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pauseRedemption() onlyOwner whenRedemptionNotPaused public {
    rocketStorage.setBool(keccak256("token.redemptionPaused"), true);
    emit PauseRedemption();
  }

  /**
   * @dev called by the owner to unpause redemption, returns to normal state
   */
  function unpauseRedemption() onlyOwner whenRedemptionPaused public {
    rocketStorage.setBool(keccak256("token.redemptionPaused"), false);
    emit UnpauseRedemption();
  }
}

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

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

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

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

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

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

// File: contracts/Issuable.sol

contract Issuable is RocketBase, Authorized, PausableRedemption {
    using SafeMath for uint256;

    event AssetsUpdated(address indexed depository, uint256 amount);
    event CertificationUpdated(address indexed auditor, uint256 amount);

    // Get assetsOnDeposit
    function assetsOnDeposit() public view returns (uint256) {
        return rocketStorage.getUint(keccak256("issuable.assetsOnDeposit"));
    }

    // Get assetsCertified
    function assetsCertified() public view returns (uint256) {
        return rocketStorage.getUint(keccak256("issuable.assetsCertified"));
    }

    /******* For paused redemption *******/

    // Set assetsOnDeposit
    function setAssetsOnDeposit(uint256 _total) public onlyDepository whenRedemptionPaused {
        uint256 totalSupply_ = rocketStorage.getUint(keccak256("token.totalSupply"));
        require(_total >= totalSupply_);
        rocketStorage.setUint(keccak256("issuable.assetsOnDeposit"), _total);
        emit AssetsUpdated(msg.sender, _total);
    }

    // Set assetsCertified
    function setAssetsCertified(uint256 _total) public onlyAuditor whenRedemptionPaused {
        uint256 totalSupply_ = rocketStorage.getUint(keccak256("token.totalSupply"));
        require(_total >= totalSupply_);
        rocketStorage.setUint(keccak256("issuable.assetsCertified"), _total);
        emit CertificationUpdated(msg.sender, _total);
    }

    /******* For during both paused and non-paused redemption *******/

    // Depository can receive assets (increasing)
    function receiveAssets(uint256 _units) public onlyDepository {
        uint256 total_ = assetsOnDeposit().add(_units);
        rocketStorage.setUint(keccak256("issuable.assetsOnDeposit"), total_);
        emit AssetsUpdated(msg.sender, total_);
    }

    // Depository can release assets (decreasing), but never to less than the totalSupply
    function releaseAssets(uint256 _units) public onlyDepository {
        uint256 totalSupply_ = rocketStorage.getUint(keccak256("token.totalSupply"));
        uint256 total_ = assetsOnDeposit().sub(_units);
        require(total_ >= totalSupply_);
        rocketStorage.setUint(keccak256("issuable.assetsOnDeposit"), total_);
        emit AssetsUpdated(msg.sender, total_);
    }

    // Auditor can increase certified assets
    function increaseAssetsCertified(uint256 _units) public onlyAuditor {
        uint256 total_ = assetsCertified().add(_units);
        rocketStorage.setUint(keccak256("issuable.assetsCertified"), total_);
        emit CertificationUpdated(msg.sender, total_);
    }

    // Auditor can decrease certified assets
    function decreaseAssetsCertified(uint256 _units) public onlyAuditor {
        uint256 totalSupply_ = rocketStorage.getUint(keccak256("token.totalSupply"));
        uint256 total_ = assetsCertified().sub(_units);
        require(total_ >= totalSupply_);
        rocketStorage.setUint(keccak256("issuable.assetsCertified"), total_);
        emit CertificationUpdated(msg.sender, total_);
    }

}

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

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

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

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

// File: contracts/LD2Token.sol

/// @title The primary ERC20 token contract, using LD2 storage
/// @author Steven Brendtro
contract LD2Token is ERC20, RocketBase, Issuable {
  using SafeMath for uint256;

  event TokensIssued(address indexed issuer, uint256 amount);

  // The balances of the token, per ERC20, but stored in contract storage (rocketStorage)
  // mapping(address => uint256) token.balances;

  // The totalSupply of the token, per ERC20, but stored in contract storage (rocketStorage)
  // uint256 token.totalSupply;

  // The authorizations of the token, per ERC20, but stored in contract storage (rocketStorage)
  // This is accomplished by hashing token.allowed + _fromAddr + _toAddr
  // mapping (address => mapping (address => uint256)) internal allowed;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return rocketStorage.getUint(keccak256("token.totalSupply"));
  }

  /**
  * @dev increase total number of tokens in existence
  */
  function increaseTotalSupply(uint256 _increase) internal {
    uint256 totalSupply_ = totalSupply();
    totalSupply_ = totalSupply_.add(_increase);
    rocketStorage.setUint(keccak256("token.totalSupply"),totalSupply_);
  }

  /**
  * @dev decrease total number of tokens in existence
  */
  function decreaseTotalSupply(uint256 _decrease) internal {
    uint256 totalSupply_ = totalSupply();
    totalSupply_ = totalSupply_.sub(_decrease);
    rocketStorage.setUint(keccak256("token.totalSupply"),totalSupply_);
  }

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

    // SafeMath.sub will throw if there is not enough balance.
    // Use the contract storage
    setBalanceOf(msg.sender, balanceOf(msg.sender).sub(_value));
    setBalanceOf(_to, balanceOf(_to).add(_value));
    emit Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256 balance) {
    return rocketStorage.getUint(keccak256("token.balances",_owner));
  }

  /**
  * @dev Updates the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @param _balance An uint256 representing the amount owned by the passed address.
  */
  function setBalanceOf(address _owner, uint256 _balance) internal {
    rocketStorage.setUint(keccak256("token.balances",_owner), _balance);
  }

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

  /**
  * @dev Updates the allowance by _owner of the _spender to have access to _balance.
  * @param _owner The address to query the the balance of.
  * @param _spender The address which will spend the funds
  * @param _balance An uint256 representing the amount owned by the passed address.
  */
  function setAllowance(address _owner, address _spender, uint256 _balance) internal {
    rocketStorage.setUint(keccak256("token.allowed",_owner,_spender), _balance);
  }

  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balanceOf(_from));
    require(_value <= allowance(_from, msg.sender));
    
    setBalanceOf(_from, balanceOf(_from).sub(_value));
    setBalanceOf(_to, balanceOf(_to).add(_value));
    setAllowance(_from, msg.sender, allowance(_from, msg.sender).sub(_value));
    emit Transfer(_from, _to, _value);
    return true;
  }

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

  /**
   * @dev Increase the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    setAllowance(msg.sender, _spender, allowance(msg.sender, _spender).add(_addedValue));
    emit Approval(msg.sender, _spender, allowance(msg.sender, _spender));
    return true;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    uint oldValue = allowance(msg.sender, _spender);
    if (_subtractedValue > oldValue) {
      setAllowance(msg.sender, _spender, 0);
    } else {
      setAllowance(msg.sender, _spender, oldValue.sub(_subtractedValue));
    }
    emit Approval(msg.sender, _spender, allowance(msg.sender, _spender));
    return true;
  }


  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * Issuer can only issue tokens up to the lesser of assetsOnDeposit and
   * assetsCertified.  This prevents issuing uncertified tokens and ensures
   * that every token issued has exactly one unit of the asset backing it.
   * @param _units Total amount of additional tokens to issue
   */
  function issueTokensForAssets( uint256 _units ) public onlyIssuer {

    uint256 newSupply_ = totalSupply().add(_units);

    // Find the greater of assetsOnDeposit and assetsCertified
    uint256 limit_ = 0;
    if ( assetsOnDeposit() > assetsCertified() )
      limit_ = assetsOnDeposit();
    else
      limit_ = assetsCertified();

    // the new supply can't be larger than our issuance limit
    require( newSupply_ <= limit_ );

    // Increase the total supply
    increaseTotalSupply( _units );

    // Increase the issuer's balance
    setBalanceOf(issuer(), balanceOf(issuer()).add(_units));

    emit TokensIssued(issuer(), _units);
  }

}

// File: contracts/LD2Zero.sol

/// @title The LD2-style ERC20 token for LD2.zero
/// @author Steven Brendtro
contract LD2Zero is LD2Token {

  string public name = "LD2.zero";
  string public symbol = "XLDZ";
  // Decimals are stored in RocketStorage
  // uint8 public token.decimals = 18;

  /*** Constructor ***********/

  /// @dev LD2Zero constructor
  constructor(address _rocketStorageAddress) RocketBase(_rocketStorageAddress) public {
    // Set the decimals
    if(decimals() == 0) {
      rocketStorage.setUint(keccak256("token.decimals"),18);
    }
  }

  function decimals() public view returns (uint8) {
    return uint8(rocketStorage.getUint(keccak256("token.decimals")));
  }

}

    Contract ABI  
[{"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":true,"inputs":[],"name":"issuer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_units","type":"uint256"}],"name":"increaseAssetsCertified","outputs":[],"payable":false,"stateMutability":"nonpayable","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":true,"inputs":[{"name":"_address","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newDepository","type":"address"}],"name":"setDepository","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_units","type":"uint256"}],"name":"releaseAssets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_units","type":"uint256"}],"name":"issueTokensForAssets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"auditor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_units","type":"uint256"}],"name":"receiveAssets","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_units","type":"uint256"}],"name":"decreaseAssetsCertified","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"assetsOnDeposit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"assetsCertified","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newIssuer","type":"address"}],"name":"setIssuer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_total","type":"uint256"}],"name":"setAssetsOnDeposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"redemptionPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpauseRedemption","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pauseRedemption","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":"newAuditor","type":"address"}],"name":"setAuditor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_total","type":"uint256"}],"name":"setAssetsCertified","outputs":[],"payable":false,"stateMutability":"nonpayable","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":true,"inputs":[],"name":"depository","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"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"},{"inputs":[{"name":"_rocketStorageAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"issuer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokensIssued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"depository","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AssetsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"auditor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"CertificationUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseRedemption","type":"event"},{"anonymous":false,"inputs":[],"name":"UnpauseRedemption","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousIssuer","type":"address"},{"indexed":true,"name":"newIssuer","type":"address"}],"name":"IssuerTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousAuditor","type":"address"},{"indexed":true,"name":"newAuditor","type":"address"}],"name":"AuditorTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousDepository","type":"address"},{"indexed":true,"name":"newDepository","type":"address"}],"name":"DepositoryTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newContractAddress","type":"address"},{"indexed":false,"name":"created","type":"uint256"}],"name":"ContractAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_oldContractAddress","type":"address"},{"indexed":true,"name":"_newContractAddress","type":"address"},{"indexed":false,"name":"created","type":"uint256"}],"name":"ContractUpgraded","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":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

  Contract Creation Code Switch To Opcodes View
608060405260008060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040805190810160405280600881526020017f4c44322e7a65726f000000000000000000000000000000000000000000000000815250600190805190602001906200009292919062000385565b506040805190810160405280600481526020017f584c445a0000000000000000000000000000000000000000000000000000000081525060029080519060200190620000e092919062000385565b50348015620000ee57600080fd5b5060405160208062003ee9833981018060405281019080805190602001909291905050508080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060006200017062000273640100000000026401000000009004565b60ff1614156200026c57600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a60405180807f746f6b656e2e646563696d616c73000000000000000000000000000000000000815250600e019050604051809103902060126040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b1580156200025257600080fd5b505af115801562000267573d6000803e3d6000fd5b505050505b5062000434565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f560405180807f746f6b656e2e646563696d616c73000000000000000000000000000000000000815250600e01905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156200034357600080fd5b505af115801562000358573d6000803e3d6000fd5b505050506040513d60208110156200036f57600080fd5b8101908080519060200190929190505050905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003c857805160ff1916838001178555620003f9565b82800160010185558215620003f9579182015b82811115620003f8578251825591602001919060010190620003db565b5b5090506200040891906200040c565b5090565b6200043191905b808211156200042d57600081600090555060010162000413565b5090565b90565b613aa580620004446000396000f30060806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610190578063095ea7b31461022057806318160ddd146102855780631d143848146102b05780631d532a971461030757806323b872dd146103345780632f54bf6e146103b9578063313ce5671461041457806337472c4b146104455780633936e99a1461048857806339cef0b7146104b55780633ec045a6146104e25780634e98a5b31461053957806350116afb1461056657806352353e5b146105935780635445cbf3146105be57806354fd4d50146105e957806355cc4e571461061a5780635b5e7bbe1461065d578063661884631461068a57806370a08231146106ef57806373a95ddd146107465780638d044c061461077557806392bccb801461078c57806395d89b41146107a35780639f20325514610833578063a784d96914610876578063a9059cbb146108a3578063bedd12a514610908578063d73dd6231461095f578063dd62ed3e146109c4575b600080fd5b34801561019c57600080fd5b506101a5610a3b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022c57600080fd5b5061026b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ad9565b604051808215151515815260200191505060405180910390f35b34801561029157600080fd5b5061029a610b55565b6040518082815260200191505060405180910390f35b3480156102bc57600080fd5b506102c5610c64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031357600080fd5b5061033260048036038101908080359060200190929190505050610d73565b005b34801561034057600080fd5b5061039f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f12565b604051808215151515815260200191505060405180910390f35b3480156103c557600080fd5b506103fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061105c565b604051808215151515815260200191505060405180910390f35b34801561042057600080fd5b506104296111d8565b604051808260ff1660ff16815260200191505060405180910390f35b34801561045157600080fd5b50610486600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112e7565b005b34801561049457600080fd5b506104b3600480360381019080803590602001909291905050506114e0565b005b3480156104c157600080fd5b506104e06004803603810190808035906020019092919050505061179b565b005b3480156104ee57600080fd5b506104f76118d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054557600080fd5b50610564600480360381019080803590602001909291905050506119e2565b005b34801561057257600080fd5b5061059160048036038101908080359060200190929190505050611b81565b005b34801561059f57600080fd5b506105a8611e3c565b6040518082815260200191505060405180910390f35b3480156105ca57600080fd5b506105d3611f4b565b6040518082815260200191505060405180910390f35b3480156105f557600080fd5b506105fe61205a565b604051808260ff1660ff16815260200191505060405180910390f35b34801561062657600080fd5b5061065b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061206c565b005b34801561066957600080fd5b5061068860048036038101908080359060200190929190505050612265565b005b34801561069657600080fd5b506106d5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612515565b604051808215151515815260200191505060405180910390f35b3480156106fb57600080fd5b50610730600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125d4565b6040518082815260200191505060405180910390f35b34801561075257600080fd5b5061075b612728565b604051808215151515815260200191505060405180910390f35b34801561078157600080fd5b5061078a612837565b005b34801561079857600080fd5b506107a16129aa565b005b3480156107af57600080fd5b506107b8612b1e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107f85780820151818401526020810190506107dd565b50505050905090810190601f1680156108255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561083f57600080fd5b50610874600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bbc565b005b34801561088257600080fd5b506108a160048036038101908080359060200190929190505050612db5565b005b3480156108af57600080fd5b506108ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613065565b604051808215151515815260200191505060405180910390f35b34801561091457600080fd5b5061091d613170565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561096b57600080fd5b506109aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061327f565b604051808215151515815260200191505060405180910390f35b3480156109d057600080fd5b50610a25600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061331f565b6040518082815260200191505060405180910390f35b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ad15780601f10610aa657610100808354040283529160200191610ad1565b820191906000526020600020905b815481529060010190602001808311610ab457829003601f168201915b505050505081565b6000610ae63384846134b7565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f560405180807f746f6b656e2e746f74616c537570706c79000000000000000000000000000000815250601101905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610c2457600080fd5b505af1158015610c38573d6000803e3d6000fd5b505050506040513d6020811015610c4e57600080fd5b8101908080519060200190929190505050905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321f8a72160405180807f746f6b656e2e6973737565720000000000000000000000000000000000000000815250600c01905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610d3357600080fd5b505af1158015610d47573d6000803e3d6000fd5b505050506040513d6020811015610d5d57600080fd5b8101908080519060200190929190505050905090565b6000610d7d6118d3565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610db657600080fd5b610dd082610dc2611f4b565b61363090919063ffffffff16565b9050600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a60405180807f6973737561626c652e617373657473436572746966696564000000000000000081525060180190506040518091039020836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b158015610ea857600080fd5b505af1158015610ebc573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f8d00389a45f384d8402408f5a7399a45c8743b03397ea1066c7f39ba821acbd3826040518082815260200191505060405180910390a25050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610f4f57600080fd5b610f58846125d4565b8211151515610f6657600080fd5b610f70843361331f565b8211151515610f7e57600080fd5b610fa284610f9d84610f8f886125d4565b61364e90919063ffffffff16565b613667565b610fc683610fc184610fb3876125d4565b61363090919063ffffffff16565b613667565b610fec8433610fe785610fd9893361331f565b61364e90919063ffffffff16565b6134b7565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ae1cfca8360405180807f6163636573732e726f6c65000000000000000000000000000000000000000000815250600b01807f6f776e65720000000000000000000000000000000000000000000000000000008152506005018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561119657600080fd5b505af11580156111aa573d6000803e3d6000fd5b505050506040513d60208110156111c057600080fd5b81019080805190602001909291905050509050919050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f560405180807f746f6b656e2e646563696d616c73000000000000000000000000000000000000815250600e01905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156112a757600080fd5b505af11580156112bb573d6000803e3d6000fd5b505050506040513d60208110156112d157600080fd5b8101908080519060200190929190505050905090565b6113266040805190810160405280600581526020017f6f776e65720000000000000000000000000000000000000000000000000000008152503361379c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561136257600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca446dd960405180807f746f6b656e2e6465706f7369746f72790000000000000000000000000000000081525060100190506040518091039020836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15801561146457600080fd5b505af1158015611478573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1661149b613170565b73ffffffffffffffffffffffffffffffffffffffff167fb5259c65bbd39a8ca451c496a6a75cc125e30888d4e5cb42e082cbf870f7f98460405160405180910390a350565b6000806114eb613170565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561152457600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f560405180807f746f6b656e2e746f74616c537570706c79000000000000000000000000000000815250601101905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156115f257600080fd5b505af1158015611606573d6000803e3d6000fd5b505050506040513d602081101561161c57600080fd5b810190808051906020019092919050505091506116498361163b611e3c565b61364e90919063ffffffff16565b905081811015151561165a57600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a60405180807f6973737561626c652e6173736574734f6e4465706f736974000000000000000081525060180190506040518091039020836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b15801561173057600080fd5b505af1158015611744573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f060ad790703fe32f48013c83cae8b7561f23bfa2b6b256a9e5f047bcab9846ff826040518082815260200191505060405180910390a2505050565b6000806117a6610c64565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117df57600080fd5b6117f9836117eb610b55565b61363090919063ffffffff16565b915060009050611807611f4b565b61180f611e3c565b11156118245761181d611e3c565b905061182f565b61182c611f4b565b90505b80821115151561183e57600080fd5b611847836137bc565b611879611852610c64565b61187485611866611861610c64565b6125d4565b61363090919063ffffffff16565b613667565b611881610c64565b73ffffffffffffffffffffffffffffffffffffffff167f21d739f160a7464fddaac4a1d1517d84e76b75618a053943b345c408c4160fe0846040518082815260200191505060405180910390a2505050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321f8a72160405180807f746f6b656e2e61756469746f7200000000000000000000000000000000000000815250600d01905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156119a257600080fd5b505af11580156119b6573d6000803e3d6000fd5b505050506040513d60208110156119cc57600080fd5b8101908080519060200190929190505050905090565b60006119ec613170565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a2557600080fd5b611a3f82611a31611e3c565b61363090919063ffffffff16565b9050600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a60405180807f6973737561626c652e6173736574734f6e4465706f736974000000000000000081525060180190506040518091039020836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b158015611b1757600080fd5b505af1158015611b2b573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f060ad790703fe32f48013c83cae8b7561f23bfa2b6b256a9e5f047bcab9846ff826040518082815260200191505060405180910390a25050565b600080611b8c6118d3565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bc557600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f560405180807f746f6b656e2e746f74616c537570706c79000000000000000000000000000000815250601101905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015611c9357600080fd5b505af1158015611ca7573d6000803e3d6000fd5b505050506040513d6020811015611cbd57600080fd5b81019080805190602001909291905050509150611cea83611cdc611f4b565b61364e90919063ffffffff16565b9050818110151515611cfb57600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a60405180807f6973737561626c652e617373657473436572746966696564000000000000000081525060180190506040518091039020836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b158015611dd157600080fd5b505af1158015611de5573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f8d00389a45f384d8402408f5a7399a45c8743b03397ea1066c7f39ba821acbd3826040518082815260200191505060405180910390a2505050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f560405180807f6973737561626c652e6173736574734f6e4465706f7369740000000000000000815250601801905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015611f0b57600080fd5b505af1158015611f1f573d6000803e3d6000fd5b505050506040513d6020811015611f3557600080fd5b8101908080519060200190929190505050905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f560405180807f6973737561626c652e6173736574734365727469666965640000000000000000815250601801905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561201a57600080fd5b505af115801561202e573d6000803e3d6000fd5b505050506040513d602081101561204457600080fd5b8101908080519060200190929190505050905090565b6000809054906101000a900460ff1681565b6120ab6040805190810160405280600581526020017f6f776e65720000000000000000000000000000000000000000000000000000008152503361379c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156120e757600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca446dd960405180807f746f6b656e2e6973737565720000000000000000000000000000000000000000815250600c0190506040518091039020836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156121e957600080fd5b505af11580156121fd573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16612220610c64565b73ffffffffffffffffffffffffffffffffffffffff167fd7850b647d2d788d7d51865cb8181f56b7ee1fbab1a965018c2168bc9b2025cd60405160405180910390a350565b600061226f613170565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122a857600080fd5b6122b0612728565b15156122bb57600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f560405180807f746f6b656e2e746f74616c537570706c79000000000000000000000000000000815250601101905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561238957600080fd5b505af115801561239d573d6000803e3d6000fd5b505050506040513d60208110156123b357600080fd5b810190808051906020019092919050505090508082101515156123d557600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a60405180807f6973737561626c652e6173736574734f6e4465706f736974000000000000000081525060180190506040518091039020846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b1580156124ab57600080fd5b505af11580156124bf573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f060ad790703fe32f48013c83cae8b7561f23bfa2b6b256a9e5f047bcab9846ff836040518082815260200191505060405180910390a25050565b600080612522338561331f565b90508083111561253d57612538338560006134b7565b61255b565b61255a3385612555868561364e90919063ffffffff16565b6134b7565b5b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256125b4338861331f565b6040518082815260200191505060405180910390a3600191505092915050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f58360405180807f746f6b656e2e62616c616e636573000000000000000000000000000000000000815250600e018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156126e657600080fd5b505af11580156126fa573d6000803e3d6000fd5b505050506040513d602081101561271057600080fd5b81019080805190602001909291905050509050919050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ae1cfca60405180807f746f6b656e2e726564656d7074696f6e50617573656400000000000000000000815250601601905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156127f757600080fd5b505af115801561280b573d6000803e3d6000fd5b505050506040513d602081101561282157600080fd5b8101908080519060200190929190505050905090565b6128766040805190810160405280600581526020017f6f776e65720000000000000000000000000000000000000000000000000000008152503361379c565b61287e612728565b151561288957600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663abfdcced60405180807f746f6b656e2e726564656d7074696f6e506175736564000000000000000000008152506016019050604051809103902060006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018215151515815260200192505050600060405180830381600087803b15801561296457600080fd5b505af1158015612978573d6000803e3d6000fd5b505050507fbce743db9bf1569865d948ae209f4b31bdc56ae5ec378043db68b4fa9c7d357460405160405180910390a1565b6129e96040805190810160405280600581526020017f6f776e65720000000000000000000000000000000000000000000000000000008152503361379c565b6129f1612728565b1515156129fd57600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663abfdcced60405180807f746f6b656e2e726564656d7074696f6e506175736564000000000000000000008152506016019050604051809103902060016040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018215151515815260200192505050600060405180830381600087803b158015612ad857600080fd5b505af1158015612aec573d6000803e3d6000fd5b505050507fb01a4065e58695e97210d46a2000a27c3294895b909a24c827d86bb0808d998a60405160405180910390a1565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612bb45780601f10612b8957610100808354040283529160200191612bb4565b820191906000526020600020905b815481529060010190602001808311612b9757829003601f168201915b505050505081565b612bfb6040805190810160405280600581526020017f6f776e65720000000000000000000000000000000000000000000000000000008152503361379c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612c3757600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ca446dd960405180807f746f6b656e2e61756469746f7200000000000000000000000000000000000000815250600d0190506040518091039020836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015612d3957600080fd5b505af1158015612d4d573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff16612d706118d3565b73ffffffffffffffffffffffffffffffffffffffff167f702d4284a49e256c67224cbd6cc10ea64895d336988b4a2dccc6d827a8fb4d8260405160405180910390a350565b6000612dbf6118d3565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612df857600080fd5b612e00612728565b1515612e0b57600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f560405180807f746f6b656e2e746f74616c537570706c79000000000000000000000000000000815250601101905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015612ed957600080fd5b505af1158015612eed573d6000803e3d6000fd5b505050506040513d6020811015612f0357600080fd5b81019080805190602001909291905050509050808210151515612f2557600080fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a60405180807f6973737561626c652e617373657473436572746966696564000000000000000081525060180190506040518091039020846040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b158015612ffb57600080fd5b505af115801561300f573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f8d00389a45f384d8402408f5a7399a45c8743b03397ea1066c7f39ba821acbd3836040518082815260200191505060405180910390a25050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156130a257600080fd5b6130ab336125d4565b82111515156130b957600080fd5b6130dd336130d8846130ca336125d4565b61364e90919063ffffffff16565b613667565b613101836130fc846130ee876125d4565b61363090919063ffffffff16565b613667565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166321f8a72160405180807f746f6b656e2e6465706f7369746f727900000000000000000000000000000000815250601001905060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561323f57600080fd5b505af1158015613253573d6000803e3d6000fd5b505050506040513d602081101561326957600080fd5b8101908080519060200190929190505050905090565b60006132a733846132a285613294338961331f565b61363090919063ffffffff16565b6134b7565b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925613300338761331f565b6040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bd02d0f5848460405180807f746f6b656e2e616c6c6f77656400000000000000000000000000000000000000815250600d018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019250505060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561347457600080fd5b505af1158015613488573d6000803e3d6000fd5b505050506040513d602081101561349e57600080fd5b8101908080519060200190929190505050905092915050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a848460405180807f746f6b656e2e616c6c6f77656400000000000000000000000000000000000000815250600d018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401925050506040518091039020836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b15801561361357600080fd5b505af1158015613627573d6000803e3d6000fd5b50505050505050565b600080828401905083811015151561364457fe5b8091505092915050565b600082821115151561365c57fe5b818303905092915050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a8360405180807f746f6b656e2e62616c616e636573000000000000000000000000000000000000815250600e018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019150506040518091039020836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b15801561378057600080fd5b505af1158015613794573d6000803e3d6000fd5b505050505050565b600115156137aa83836138cf565b15151415156137b857600080fd5b5050565b60006137c6610b55565b90506137db828261363090919063ffffffff16565b9050600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a4853a60405180807f746f6b656e2e746f74616c537570706c7900000000000000000000000000000081525060110190506040518091039020836040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200182815260200192505050600060405180830381600087803b1580156138b357600080fd5b505af11580156138c7573d6000803e3d6000fd5b505050505050565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ae1cfca848460405180807f6163636573732e726f6c65000000000000000000000000000000000000000000815250600b0183805190602001908083835b60208310151561396d5780518252602082019150602081019050602083039250613948565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019250505060405180910390206040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015613a3657600080fd5b505af1158015613a4a573d6000803e3d6000fd5b505050506040513d6020811015613a6057600080fd5b81019080805190602001909291905050509050929150505600a165627a7a7230582073ba48b577c606033328cba5d9b557f9f0563678c95115f31dd557fbf62d663400290000000000000000000000006816184f231aa6af7f959d99ec0ace5731ab33f0

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006816184f231aa6af7f959d99ec0ace5731ab33f0


   Swarm Source:
bzzr://73ba48b577c606033328cba5d9b557f9f0563678c95115f31dd557fbf62d6634

 

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.