Contract 0x97D99Db7a938Ad4f6dD8D607dEB2083f1B36db0B

 
 
Txn Hash
Method
Block
From
To
Value
0x093084c20708e2e82a437da37b47ce2131227a57989d75f3f63b42c546f7ace8Withdraw EMONT69674182018-12-28 10:10:391431 days 11 hrs agoMCH: Owner IN  MCH: EMONT Gateway0 Ether0.0005438410
0xa440b1e9bfb28550912d13a993fad361d7492c16635adb5adc8ccc284365d4ebPause69663892018-12-28 6:02:481431 days 15 hrs agoMCH: Owner IN  MCH: EMONT Gateway0 Ether0.0004371410
0x4c810292d245a20db3e71ee1bc0b5b36e941d76861a26d355d2eea08aa11b14dExchange EMON Tt...69662742018-12-28 5:34:551431 days 16 hrs agoENS Name zkblue.eth IN  MCH: EMONT Gateway0 Ether0.000359999.6
0x2853c7be0673c3bfb58bc3f2ada67461628152ad2a4ed98b78d4c0a50f41beafExchange EMON Tt...69660462018-12-28 4:37:561431 days 16 hrs ago0x40c9afd96646df172b6fa31211fb51bf5144081e IN  MCH: EMONT Gateway0 Ether0.000119163.067
0xe80061e3f6e702b94bf7861c0c6dcb1a2babe60a9c56963f9fea2cb9373ea45bExchange EMON Tt...69658752018-12-28 4:01:591431 days 17 hrs ago0x3825c8ba07166f34ce9a2cd1e08a68b105c82cb9 IN  MCH: EMONT Gateway0 Ether0.0003749910
0x09c754b7eab6d24a193841ba3fe92238ca6ece4c2e5aec34b34a353c2f418579Exchange EMON Tt...69657932018-12-28 3:40:591431 days 17 hrs ago0x3f2360806442a4d7dc643a9e235a93a6ab1c5000 IN  MCH: EMONT Gateway0 Ether0.000174944.51126813
0xf69007a5440f5818a64f370fd09b091665bbb820eff4f092083b1aa8858b130cExchange EMON Tt...69657672018-12-28 3:35:061431 days 18 hrs ago0x59abc75b3035a0dccb9a9454296a8e92b9831c5e IN  MCH: EMONT Gateway0 Ether0.0002692710
0xa41e0b82dc6a733fc505a5e878bf31a0b175f00011a94707ff185a94e86ae789Exchange EMON Tt...69657402018-12-28 3:27:061431 days 18 hrs ago0x3f2360806442a4d7dc643a9e235a93a6ab1c5000 IN  MCH: EMONT Gateway0 Ether0.000190914.92305135
0x963f3a57a1a60c001562788b8901592203bc6ea933c82c74e5daf65b2398b6abExchange EMON Tt...69657212018-12-28 3:23:041431 days 18 hrs ago0x3f2360806442a4d7dc643a9e235a93a6ab1c5000 IN  MCH: EMONT Gateway0 Ether0.000185514.78379201
0x589c8313d3f5004e706afa17ebc6166d2c19714b038b8f0c25ea35d4e0a62a16Exchange EMON Tt...69657172018-12-28 3:21:591431 days 18 hrs agoENS Name callanca.eth IN  MCH: EMONT Gateway0 Ether0.0003757410
0x24b29bb7c5cda71c01d128653c3457732e9e372d5a29c1c6f7eabaa8aab39bb9Exchange EMON Tt...69657022018-12-28 3:17:071431 days 18 hrs ago0x31e386739f9d4cc57ad1ec00956b30d25a0dc0b9 IN  MCH: EMONT Gateway0 Ether0.000077452
0x6d3b8b06019fe27419e4bfe95ed586d3460e8801ddb84690871fc0c867b6aeaeExchange EMON Tt...69655502018-12-28 2:36:331431 days 18 hrs ago0x3f2360806442a4d7dc643a9e235a93a6ab1c5000 IN  MCH: EMONT Gateway0 Ether0.000159024.09185266
0xfbf5c595fa53a3c6ba569e9817f0d8deafe2d0cdd18c63a986f1989b13cda4f4Exchange EMON Tt...69643172018-12-27 21:30:111432 days 5 mins agoENS Name hatoyashi.eth IN  MCH: EMONT Gateway0 Ether0.0003758510
0xfe692caf67b2c88ffc5445fb9c7dd3d60a98abcf0c2ff6117fcb021bb0714f38Exchange EMON Tt...69642452018-12-27 21:13:421432 days 21 mins ago0x23a5e94d0d6ded8e93e7406dd8325378b151ca66 IN  MCH: EMONT Gateway0 Ether0.0003877910
0xd91c158f36684391f89d5174c475ac859091395cacf6722c56cd79e03922990eExchange EMON Tt...69639772018-12-27 20:13:011432 days 1 hr ago0x2bc55014f6cca7326f1f1944270378270de9d2ab IN  MCH: EMONT Gateway0 Ether0.0003877910
0xe4496c3661a1cb6d0566dc907d48d7ed4dc84682aadf473419c2225483953bebExchange EMON Tt...69639722018-12-27 20:10:421432 days 1 hr ago0x2bc55014f6cca7326f1f1944270378270de9d2ab IN  MCH: EMONT Gateway0 Ether0.0003877910
0xb88d8942b2bb8cc43d8167b4521d2893e0edb1e4e60917e3e9c09eb46d48d4d8Exchange EMON Tt...69633892018-12-27 17:51:401432 days 3 hrs agoENS Name callanca.eth IN  MCH: EMONT Gateway0 Ether0.0003056110
0x8c4a0dc899d49d79e6e858bee379cb8de70060cc5e7f5c9ad058e3b30b758e94Exchange EMON Tt...69633872018-12-27 17:50:451432 days 3 hrs agoENS Name callanca.eth IN  MCH: EMONT Gateway0 Ether0.0003758510
0xd348158617ba95076be9645327bbd489b2a713c50067e8cc21e288d2f0414e94Exchange EMON Tt...69627472018-12-27 15:14:311432 days 6 hrs ago0x3375b75ad4428b13fe7a31113ba87226972ee4bb IN  MCH: EMONT Gateway0 Ether0.0003757410
0xa8d2b04b03f2c19b97cf6d2627c7334940d2638d53176dbb177abf067e2bdeb9Exchange EMON Tt...69625182018-12-27 14:18:031432 days 7 hrs agoENS Name hatoyashi.eth IN  MCH: EMONT Gateway0 Ether0.0003758510
0x23937cb031195bfec8bdae1cb6c500233aaa5e2dece019dbc430ba667debc503Exchange EMON Tt...69625002018-12-27 14:13:171432 days 7 hrs ago0xd94d7922ed9dfa3bdb4253773bcdc78d5fc162e6 IN  MCH: EMONT Gateway0 Ether0.0003749910
0x1e1efd7fbc48324afa5d6c3d76339c305ba3063d6d216f08422877193d98cd95Exchange EMON Tt...69624502018-12-27 14:03:111432 days 7 hrs agoENS Name hatoyashi.eth IN  MCH: EMONT Gateway0 Ether0.0003758510
0x0f170463d181c43097de69e4fcb9562eaa30bc8d7a63a2e789330e56788b896cExchange EMON Tt...69624412018-12-27 14:00:091432 days 7 hrs agoENS Name hatoyashi.eth IN  MCH: EMONT Gateway0 Ether0.0003758510
0xb11d9a0bcc0f6a7f364066670de19ef7ed657b75ad32ef4ca9709c5f0c822960Exchange EMON Tt...69624392018-12-27 13:59:441432 days 7 hrs agoENS Name yastice.eth IN  MCH: EMONT Gateway0 Ether0.00007771.99999988
0x78bb0a8855b6e98a2dd0d1b006d0b6e2329284398c8681086ceb32c908d0708bExchange EMON Tt...69623952018-12-27 13:50:421432 days 7 hrs agoENS Name yastice.eth IN  MCH: EMONT Gateway0 Ether0.000097132.5
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MCHEMONTGateway

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-12-25
*/

pragma solidity 0.4.24;

// File: contracts/lib/openzeppelin-solidity/contracts/access/Roles.sol

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
  struct Role {
    mapping (address => bool) bearer;
  }

  /**
   * @dev give an account access to this role
   */
  function add(Role storage role, address account) internal {
    require(account != address(0));
    require(!has(role, account));

    role.bearer[account] = true;
  }

  /**
   * @dev remove an account's access to this role
   */
  function remove(Role storage role, address account) internal {
    require(account != address(0));
    require(has(role, account));

    role.bearer[account] = false;
  }

  /**
   * @dev check if an account has this role
   * @return bool
   */
  function has(Role storage role, address account)
    internal
    view
    returns (bool)
  {
    require(account != address(0));
    return role.bearer[account];
  }
}

// File: contracts/lib/openzeppelin-solidity/contracts/access/roles/PauserRole.sol

contract PauserRole {
  using Roles for Roles.Role;

  event PauserAdded(address indexed account);
  event PauserRemoved(address indexed account);

  Roles.Role private pausers;

  constructor() internal {
    _addPauser(msg.sender);
  }

  modifier onlyPauser() {
    require(isPauser(msg.sender));
    _;
  }

  function isPauser(address account) public view returns (bool) {
    return pausers.has(account);
  }

  function addPauser(address account) public onlyPauser {
    _addPauser(account);
  }

  function renouncePauser() public {
    _removePauser(msg.sender);
  }

  function _addPauser(address account) internal {
    pausers.add(account);
    emit PauserAdded(account);
  }

  function _removePauser(address account) internal {
    pausers.remove(account);
    emit PauserRemoved(account);
  }
}

// File: contracts/lib/openzeppelin-solidity/contracts/lifecycle/Pausable.sol

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is PauserRole {
  event Paused(address account);
  event Unpaused(address account);

  bool private _paused;

  constructor() internal {
    _paused = false;
  }

  /**
   * @return true if the contract is paused, false otherwise.
   */
  function paused() public view returns(bool) {
    return _paused;
  }

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

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

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() public onlyPauser whenNotPaused {
    _paused = true;
    emit Paused(msg.sender);
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() public onlyPauser whenPaused {
    _paused = false;
    emit Unpaused(msg.sender);
  }
}

// File: contracts/lib/openzeppelin-solidity/contracts/ownership/Ownable.sol

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

  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() internal {
    _owner = msg.sender;
    emit OwnershipTransferred(address(0), _owner);
  }

  /**
   * @return the address of the owner.
   */
  function owner() public view returns(address) {
    return _owner;
  }

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

  /**
   * @return true if `msg.sender` is the owner of the contract.
   */
  function isOwner() public view returns(bool) {
    return msg.sender == _owner;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipTransferred(_owner, address(0));
    _owner = address(0);
  }

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

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

// File: contracts/lib/openzeppelin-solidity/contracts/utils/ReentrancyGuard.sol

/**
 * @title Helps contracts guard against reentrancy attacks.
 * @author Remco Bloemen <[email protected]π.com>, Eenae <[email protected]>
 * @dev If you mark a function `nonReentrant`, you should also
 * mark it `external`.
 */
contract ReentrancyGuard {

  /// @dev counter to allow mutex lock with only one SSTORE operation
  uint256 private _guardCounter;

  constructor() internal {
    // The counter starts at one to prevent changing it from zero to a non-zero
    // value, which is a more expensive operation.
    _guardCounter = 1;
  }

  /**
   * @dev Prevents a contract from calling itself, directly or indirectly.
   * Calling a `nonReentrant` function from another `nonReentrant`
   * function is not supported. It is possible to prevent this from happening
   * by making the `nonReentrant` function external, and make it call a
   * `private` function that does the actual work.
   */
  modifier nonReentrant() {
    _guardCounter += 1;
    uint256 localCounter = _guardCounter;
    _;
    require(localCounter == _guardCounter);
  }

}

// File: contracts/lib/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
  function totalSupply() external view returns (uint256);

  function balanceOf(address who) external view returns (uint256);

  function allowance(address owner, address spender)
    external view returns (uint256);

  function transfer(address to, uint256 value) external returns (bool);

  function approve(address spender, uint256 value)
    external returns (bool);

  function transferFrom(address from, address to, uint256 value)
    external returns (bool);

  event Transfer(
    address indexed from,
    address indexed to,
    uint256 value
  );

  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}

// File: contracts/lib/openzeppelin-solidity/contracts/math/SafeMath.sol

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

  /**
  * @dev Multiplies two numbers, reverts on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

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

    return c;
  }

  /**
  * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0); // Solidity only automatically asserts 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 Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a);
    uint256 c = a - b;

    return c;
  }

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

    return c;
  }

  /**
  * @dev Divides two numbers and returns the remainder (unsigned integer modulo),
  * reverts when dividing by zero.
  */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}

// File: contracts/lib/openzeppelin-solidity/contracts/token/ERC20/ERC20.sol

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
 * Originally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract ERC20 is IERC20 {
  using SafeMath for uint256;

  mapping (address => uint256) private _balances;

  mapping (address => mapping (address => uint256)) private _allowed;

  uint256 private _totalSupply;

  /**
  * @dev Total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return _totalSupply;
  }

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

  /**
   * @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 _allowed[owner][spender];
  }

  /**
  * @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) {
    _transfer(msg.sender, 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) {
    require(spender != address(0));

    _allowed[msg.sender][spender] = value;
    emit Approval(msg.sender, spender, value);
    return true;
  }

  /**
   * @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(value <= _allowed[from][msg.sender]);

    _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
    _transfer(from, to, 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 increaseAllowance(
    address spender,
    uint256 addedValue
  )
    public
    returns (bool)
  {
    require(spender != address(0));

    _allowed[msg.sender][spender] = (
      _allowed[msg.sender][spender].add(addedValue));
    emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
    return true;
  }

  /**
   * @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 decreaseAllowance(
    address spender,
    uint256 subtractedValue
  )
    public
    returns (bool)
  {
    require(spender != address(0));

    _allowed[msg.sender][spender] = (
      _allowed[msg.sender][spender].sub(subtractedValue));
    emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
    return true;
  }

  /**
  * @dev Transfer token for a specified addresses
  * @param from The address to transfer from.
  * @param to The address to transfer to.
  * @param value The amount to be transferred.
  */
  function _transfer(address from, address to, uint256 value) internal {
    require(value <= _balances[from]);
    require(to != address(0));

    _balances[from] = _balances[from].sub(value);
    _balances[to] = _balances[to].add(value);
    emit Transfer(from, to, value);
  }

  /**
   * @dev Internal function that mints an amount of the token and assigns it to
   * an account. This encapsulates the modification of balances such that the
   * proper events are emitted.
   * @param account The account that will receive the created tokens.
   * @param value The amount that will be created.
   */
  function _mint(address account, uint256 value) internal {
    require(account != 0);
    _totalSupply = _totalSupply.add(value);
    _balances[account] = _balances[account].add(value);
    emit Transfer(address(0), account, value);
  }

  /**
   * @dev Internal function that burns an amount of the token of a given
   * account.
   * @param account The account whose tokens will be burnt.
   * @param value The amount that will be burnt.
   */
  function _burn(address account, uint256 value) internal {
    require(account != 0);
    require(value <= _balances[account]);

    _totalSupply = _totalSupply.sub(value);
    _balances[account] = _balances[account].sub(value);
    emit Transfer(account, address(0), value);
  }

  /**
   * @dev Internal function that burns an amount of the token of a given
   * account, deducting from the sender's allowance for said account. Uses the
   * internal burn function.
   * @param account The account whose tokens will be burnt.
   * @param value The amount that will be burnt.
   */
  function _burnFrom(address account, uint256 value) internal {
    require(value <= _allowed[account][msg.sender]);

    // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,
    // this function needs to emit an event with the updated approval.
    _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(
      value);
    _burn(account, value);
  }
}

// File: contracts/shop/MCHEMONTGateway.sol

contract MCHEMONTGateway is Ownable, Pausable, ReentrancyGuard {

    ERC20 public EMONT;

    event EMONTEXCHANGE(
        address indexed user,
        address indexed referrer,
        uint256 value,
        uint256 at
    );

    function setEMONTAddress(ERC20 _EMONTAddress) external onlyOwner() {
        EMONT = _EMONTAddress;
    }

    function withdrawEther() external onlyOwner() {
        owner().transfer(address(this).balance);
    }

    function withdrawEMONT() external onlyOwner() {
        uint256 EMONTBalance = EMONT.balanceOf(address(this));
        EMONT.approve(address(this), EMONTBalance);
        EMONT.transferFrom(address(this), msg.sender, EMONTBalance);
    }

    function exchangeEMONTtoGUM(uint256 amount, address _referrer) external whenNotPaused() nonReentrant() {
        require(amount == 2500000000 || amount == 10000000000 || amount == 50000000000);
        
        address referrer;
        if (_referrer == msg.sender) {
            referrer = address(0x0);
        } else {
            referrer = _referrer;
        }

        EMONT.transferFrom(msg.sender, address(this), amount);
        
        emit EMONTEXCHANGE(
            msg.sender,
            referrer,
            amount,
            block.timestamp
        );
    }
    
    function getEMONTBalance() external view returns (uint256) {
        return EMONT.balanceOf(address(this));
    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"_referrer","type":"address"}],"name":"exchangeEMONTtoGUM","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEMONT","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isPauser","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renouncePauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_EMONTAddress","type":"address"}],"name":"setEMONTAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getEMONTBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"EMONT","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":true,"name":"referrer","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"at","type":"uint256"}],"name":"EMONTEXCHANGE","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"PauserRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36100d833610100640100000000026401000000009004565b6000600260006101000a81548160ff02191690831515021790555060016003819055506102ba565b610121816001610167640100000000026111da179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156101a357600080fd5b6101bc8282610226640100000000026401000000009004565b1515156101c857600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561026357600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6112b6806102c96000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630b49d19b146100eb57806315003368146101385780633f4ba83a1461014f57806346fbf68e146101665780635c975abb146101c15780636ef8d66d146101f0578063715018a6146102075780637362377b1461021e57806382dc1ec4146102355780638456cb59146102785780638da5cb5b1461028f5780638f32d59b146102e6578063b9c9487c14610315578063db0ab5f314610358578063f2fde38b14610383578063fdb27ac6146103c6575b600080fd5b3480156100f757600080fd5b5061013660048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061041d565b005b34801561014457600080fd5b5061014d61067c565b005b34801561015b57600080fd5b506101646109c4565b005b34801561017257600080fd5b506101a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a73565b604051808215151515815260200191505060405180910390f35b3480156101cd57600080fd5b506101d6610a90565b604051808215151515815260200191505060405180910390f35b3480156101fc57600080fd5b50610205610aa7565b005b34801561021357600080fd5b5061021c610ab2565b005b34801561022a57600080fd5b50610233610b84565b005b34801561024157600080fd5b50610276600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bfe565b005b34801561028457600080fd5b5061028d610c1e565b005b34801561029b57600080fd5b506102a4610cce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102f257600080fd5b506102fb610cf7565b604051808215151515815260200191505060405180910390f35b34801561032157600080fd5b50610356600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d4e565b005b34801561036457600080fd5b5061036d610da5565b6040518082815260200191505060405180910390f35b34801561038f57600080fd5b506103c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea4565b005b3480156103d257600080fd5b506103db610ec3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600260009054906101000a900460ff1615151561043b57600080fd5b600060016003600082825401925050819055506003549050639502f90084148061046957506402540be40084145b806104785750640ba43b740084145b151561048357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156104c057600091506104c4565b8291505b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156105bd57600080fd5b505af11580156105d1573d6000803e3d6000fd5b505050506040513d60208110156105e757600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddfd8a01bff10541228257ea53237c336ef0e223a7fe048b3433c45fc628a6428642604051808381526020018281526020019250505060405180910390a36003548114151561067657600080fd5b50505050565b6000610686610cf7565b151561069157600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561074e57600080fd5b505af1158015610762573d6000803e3d6000fd5b505050506040513d602081101561077857600080fd5b81019080805190602001909291905050509050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b330836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561085057600080fd5b505af1158015610864573d6000803e3d6000fd5b505050506040513d602081101561087a57600080fd5b810190808051906020019092919050505050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3033846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561098557600080fd5b505af1158015610999573d6000803e3d6000fd5b505050506040513d60208110156109af57600080fd5b81019080805190602001909291905050505050565b6109cd33610a73565b15156109d857600080fd5b600260009054906101000a900460ff1615156109f357600080fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000610a89826001610ee990919063ffffffff16565b9050919050565b6000600260009054906101000a900460ff16905090565b610ab033610f7d565b565b610aba610cf7565b1515610ac557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b8c610cf7565b1515610b9757600080fd5b610b9f610cce565b73ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610bfb573d6000803e3d6000fd5b50565b610c0733610a73565b1515610c1257600080fd5b610c1b81610fd7565b50565b610c2733610a73565b1515610c3257600080fd5b600260009054906101000a900460ff16151515610c4e57600080fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b610d56610cf7565b1515610d6157600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610e6457600080fd5b505af1158015610e78573d6000803e3d6000fd5b505050506040513d6020811015610e8e57600080fd5b8101908080519060200190929190505050905090565b610eac610cf7565b1515610eb757600080fd5b610ec081611031565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f2657600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610f9181600161112b90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b610feb8160016111da90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561106d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561116757600080fd5b6111718282610ee9565b151561117c57600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561121657600080fd5b6112208282610ee9565b15151561122c57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505600a165627a7a723058200584dbbb8e06ef5ceae881b3a79c12209a0447694ca92ae50ffb36ff2636fb090029

Swarm Source

bzzr://0584dbbb8e06ef5ceae881b3a79c12209a0447694ca92ae50ffb36ff2636fb09
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.