Transaction Hash:
Block:
11185329 at Nov-03-2020 04:49:18 PM +UTC
Transaction Fee:
0.003700953 ETH
$12.84
Gas Used:
53,637 Gas / 69 Gwei
Emitted Events:
227 |
RequestJNTR.TokenRequest( user=[Sender] 0x343a3c7f789335c9ea60932d34be258f643678d9, amount=5000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x0f540ac2...AEC93C847 | 1.433707604151154722 Eth | 1.438707604151154722 Eth | 0.005 | ||
0x343a3C7F...F643678d9 |
0.01624611400269687 Eth
Nonce: 314
|
0.00754516100269687 Eth
Nonce: 315
| 0.008700953 | ||
0xB3b7874F...A3505D8d4
Miner
| (Babel Pool) | 17,019.587084106028946489 Eth | 17,019.590785059028946489 Eth | 0.003700953 | |
0xe1d01334...b830aA3D4 |
Execution Trace
ETH 0.005
RequestJNTR.CALL( )
- ETH 0.005
0x0f540ac274a95699c945014105c751baec93c847.CALL( )
1{"Ownable.sol":{"content":"// SPDX-License-Identifier: No License (None)\r\npragma solidity ^0.6.9;\r\n\r\n/**\r\n * @title Ownable\r\n * @dev TheOwnable contract has an owner address, and provides basic authorization control\r\n * functions, this simplifies the implementation of \"userpermissions\".\r\n *\r\n * Source https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/v2.1.3/contracts/ownership/Ownable.sol\r\n *This contract is copied here and renamed from the original to avoid clashes in the compiled artifacts\r\n * when the user imports a zos-libcontract (that transitively causes this contract to be compiled and added to the\r\n * build/artifacts folder) as well as the vanilla Ownableimplementation from an openzeppelin version.\r\n */\r\ncontract Ownable {\r\n address private _owner;\r\n\r\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\r\n\r\n /**\r\n * @dev The Ownable constructor sets the original `owner` of thecontract to the sender\r\n * account.\r\n */\r\n constructor () internal {\r\n _owner = msg.sender;\r\n emitOwnershipTransferred(address(0), _owner);\r\n }\r\n\r\n /**\r\n * @return the address of the owner.\r\n */\r\n function owner()public view returns (address) {\r\n return _owner;\r\n }\r\n\r\n /**\r\n * @dev Throws if called by any account other than theowner.\r\n */\r\n modifier onlyOwner() {\r\n require(isOwner(),\"Not Owner\");\r\n _;\r\n }\r\n\r\n /**\r\n *@return true if `msg.sender` is the owner of the contract.\r\n */\r\n function isOwner() public view returns (bool) {\r\n return msg.sender == _owner;\r\n }\r\n\r\n /**\r\n * @dev Allows the current owner to relinquish control of the contract.\r\n * @noticeRenouncing to ownership will leave the contract without an owner.\r\n * It will not be possible to call the functions with the `onlyOwner`\r\n* modifier anymore.\r\n */\r\n function renounceOwnership() public onlyOwner {\r\n emit OwnershipTransferred(_owner, address(0));\r\n _owner = address(0);\r\n }\r\n\r\n /**\r\n * @dev Allows the current owner to transfer control of the contract to anewOwner.\r\n * @param newOwner The address to transfer ownership to.\r\n */\r\n function transferOwnership(address newOwner) publiconlyOwner {\r\n _transferOwnership(newOwner);\r\n }\r\n\r\n /**\r\n * @dev Transfers control of the contract to a newOwner.\r\n* @param newOwner The address to transfer ownership to.\r\n */\r\n function _transferOwnership(address newOwner) internal {\r\nrequire(newOwner != address(0),\"Zero address not allowed\");\r\n emit OwnershipTransferred(_owner, newOwner);\r\n _owner = newOwner;\r\n }\r\n}"},"RequestJNTR.sol":{"content":"// SPDX-License-Identifier: No License (None)\r\npragma solidity ^0.6.9;\r\n\r\nimport \"./Ownable.sol\";\r\n\r\ncontract RequestJNTR is Ownable {\r\n mapping(address =\u003e bool) public isReceived; // user =\u003e isReceived\r\n uint256public fee;\r\n address payable public system; // system address mey change fee amount and receive fee\r\n event TokenRequest(addressindexed user, uint256 amount);\r\n\r\n modifier onlySystem() {\r\n require(msg.sender == system, \"Caller is not the system\");\r\n_;\r\n }\r\n\r\n constructor (address payable _system, uint256 _fee) public {\r\n system = _system;\r\n fee = _fee;\r\n}\r\n\r\n function setFee(uint256 _fee) external onlySystem returns(bool) {\r\n fee = _fee;\r\n return true;\r\n }\r\n\r\nfunction setSystem(address payable _system) external onlyOwner returns(bool) {\r\n system = _system;\r\n return true;\r\n}\r\n\r\n function tokenRequest() public payable {\r\n require(fee \u003c= msg.value, \"Not enough value\");\r\n require(!isReceived[msg.sender], \"You already requested tokens\");\r\n isReceived[msg.sender] = true;\r\n system.transfer(msg.value);\r\nemit TokenRequest(msg.sender, msg.value);\r\n }\r\n}"}}