Transaction Hash:
Block:
13058150 at Aug-19-2021 09:19:34 PM +UTC
Transaction Fee:
0.0022305231050739 ETH
$4.27
Gas Used:
46,228 Gas / 48.250478175 Gwei
Emitted Events:
335 |
Token.Approval( owner=[Sender] 0x0e4247b348a42e497e97cd70a7397aa1197ce4a0, spender=0x22CcD028...cB22C6dF0, value=1506000000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x0E4247b3...1197cE4a0 |
1.135261113778246225 Eth
Nonce: 100
|
1.133030590673172325 Eth
Nonce: 101
| 0.0022305231050739 | ||
0x5A0b54D5...D3E029c4c
Miner
| (Spark Pool) | 48.673813347437039738 Eth | 48.673998259437039738 Eth | 0.000184912 | |
0x99676c9f...80dC25027 |
Execution Trace
Token.approve( _spender=0x22CcD028d21D3A3e64646493a223b20cB22C6dF0, _amount=1506000000000000000000 ) => ( success=True )
approve[Token (ln:66)]
Approval[Token (ln:71)]
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Token { string public name = "Wrapped ETHO"; string public symbol = "ETHO"; uint8 public decimals = 18; uint256 public totalSupply = 0; address owner; modifier restricted { require(msg.sender == owner, "This function is restricted to owner"); _; } modifier issuerOnly { require(isIssuer[msg.sender], "You do not have issuer rights"); _; } mapping(address => uint256) public balanceOf; mapping(address => mapping(address => uint256)) public allowance; mapping(address => bool) isIssuer; event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); event IssuerRights(address indexed issuer, bool value); event TransferOwnership( address indexed previousOwner, address indexed newOwner ); function mint(address _to, uint256 _amount) public issuerOnly returns (bool success) { totalSupply += _amount; balanceOf[_to] += _amount; emit Transfer(address(0), _to, _amount); return true; } function burn(uint256 _amount) public issuerOnly returns (bool success) { totalSupply -= _amount; balanceOf[msg.sender] -= _amount; emit Transfer(msg.sender, address(0), _amount); return true; } function burnFrom(address _from, uint256 _amount) public issuerOnly returns (bool success) { allowance[_from][msg.sender] -= _amount; balanceOf[_from] -= _amount; totalSupply -= _amount; emit Transfer(_from, address(0), _amount); return true; } function approve(address _spender, uint256 _amount) public returns (bool success) { allowance[msg.sender][_spender] = _amount; emit Approval(msg.sender, _spender, _amount); return true; } function transfer(address _to, uint256 _amount) public returns (bool success) { balanceOf[msg.sender] -= _amount; balanceOf[_to] += _amount; emit Transfer(msg.sender, _to, _amount); return true; } function transferFrom( address _from, address _to, uint256 _amount ) public returns (bool success) { allowance[_from][msg.sender] -= _amount; balanceOf[_from] -= _amount; balanceOf[_to] += _amount; emit Transfer(_from, _to, _amount); return true; } function transferOwnership(address _newOwner) public restricted { require(_newOwner != address(0), "Invalid address: should not be 0x0"); emit TransferOwnership(owner, _newOwner); owner = _newOwner; } function setIssuerRights(address _issuer, bool _value) public restricted { isIssuer[_issuer] = _value; emit IssuerRights(_issuer, _value); } constructor() { owner = msg.sender; emit TransferOwnership(address(0), msg.sender); } }