Discover more of Etherscan's tools and services in one place.
Sponsored
Contract Source Code:
File 1 of 2: Ownable.sol
// SPDX-License-Identifier: No License (None) pragma solidity ^0.6.9; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". * * Source https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/v2.1.3/contracts/ownership/Ownable.sol * This contract is copied here and renamed from the original to avoid clashes in the compiled artifacts * when the user imports a zos-lib contract (that transitively causes this contract to be compiled and added to the * build/artifacts folder) as well as the vanilla Ownable implementation from an openzeppelin version. */ 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(),"Not Owner"); _; } /** * @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),"Zero address not allowed"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } }
File 2 of 2: RequestJNTR.sol
// SPDX-License-Identifier: No License (None) pragma solidity ^0.6.9; import "./Ownable.sol"; contract RequestJNTR is Ownable { mapping(address => bool) public isReceived; // user => isReceived uint256 public fee; address payable public system; // system address mey change fee amount and receive fee event TokenRequest(address indexed user, uint256 amount); modifier onlySystem() { require(msg.sender == system, "Caller is not the system"); _; } constructor (address payable _system, uint256 _fee) public { system = _system; fee = _fee; } function setFee(uint256 _fee) external onlySystem returns(bool) { fee = _fee; return true; } function setSystem(address payable _system) external onlyOwner returns(bool) { system = _system; return true; } function tokenRequest() public payable { require(fee <= msg.value, "Not enough value"); require(!isReceived[msg.sender], "You already requested tokens"); isReceived[msg.sender] = true; system.transfer(msg.value); emit TokenRequest(msg.sender, msg.value); } }
Please enter a contract address above to load the contract details and source code.
Please DO NOT store any passwords or private keys here. A private note (up to 100 characters) can be saved and is useful for transaction tracking.
This website uses cookies to improve your experience. By continuing to use this website, you agree to its Terms and Privacy Policy.