Transaction Hash:
Block:
17854518 at Aug-06-2023 07:46:23 AM +UTC
Transaction Fee:
0.000745653267891186 ETH
$1.48
Gas Used:
51,626 Gas / 14.443367061 Gwei
Emitted Events:
| 219 |
MintableToken.Transfer( from=[Sender] 0xf710aa65091051c1dcaf9b2dfdf2c70350c1677b, to=0xc444aDD008b80e511ad424CE9e117ca3C4944461, value=150000000000000000000000000000 )
|
Account State Difference:
| Address | Before | After | State Difference | ||
|---|---|---|---|---|---|
|
0x1f9090aa...8e676c326
Miner
| 0.357565719011970944 Eth | 0.357570426270650944 Eth | 0.00000470725868 | ||
| 0xf710AA65...350c1677B |
0.0128741 Eth
Nonce: 0
|
0.012128446732108814 Eth
Nonce: 1
| 0.000745653267891186 | ||
| 0xFD957F21...B8Ffb3794 |
Execution Trace
MintableToken.transfer( to=0xc444aDD008b80e511ad424CE9e117ca3C4944461, value=150000000000000000000000000000 ) => ( success=True )
transfer[BaseERC20Token (ln:30)]
Transfer[BaseERC20Token (ln:35)]
pragma solidity ^0.4.23;
contract BaseERC20Token {
mapping (address => uint256) public balanceOf;
string public name;
string public symbol;
uint8 public decimals;
uint256 public totalSupply;
event Transfer(address indexed from, address indexed to, uint256 value);
constructor (
uint256 _totalSupply,
uint8 _decimals,
string _name,
string _symbol
)
public
{
name = _name;
symbol = _symbol;
decimals = _decimals;
totalSupply = _totalSupply;
balanceOf[msg.sender] = _totalSupply;
emit Transfer(address(0), msg.sender, _totalSupply);
}
function transfer(address to, uint256 value) public returns (bool success) {
require(balanceOf[msg.sender] >= value);
balanceOf[msg.sender] -= value;
balanceOf[to] += value;
emit Transfer(msg.sender, to, value);
return true;
}
event Approval(address indexed owner, address indexed spender, uint256 value);
mapping(address => mapping(address => uint256)) public allowance;
function approve(address spender, uint256 value)
public
returns (bool success)
{
allowance[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
function transferFrom(address from, address to, uint256 value)
public
returns (bool success)
{
require(value <= balanceOf[from]);
require(value <= allowance[from][msg.sender]);
balanceOf[from] -= value;
balanceOf[to] += value;
allowance[from][msg.sender] -= value;
emit Transfer(from, to, value);
return true;
}
}
contract MintableToken is BaseERC20Token {
address public owner = msg.sender;
constructor(
uint256 _totalSupply,
uint8 _decimals,
string _name,
string _symbol
) BaseERC20Token(_totalSupply, _decimals, _name, _symbol) public
{
}
function mint(address recipient, uint256 amount) public {
require(msg.sender == owner);
require(totalSupply + amount >= totalSupply); // Overflow check
totalSupply += amount;
balanceOf[recipient] += amount;
emit Transfer(address(0), recipient, amount);
}
function burn(uint256 amount) public {
require(amount <= balanceOf[msg.sender]);
totalSupply -= amount;
balanceOf[msg.sender] -= amount;
emit Transfer(msg.sender, address(0), amount);
}
function burnFrom(address from, uint256 amount) public {
require(amount <= balanceOf[from]);
require(amount <= allowance[from][msg.sender]);
totalSupply -= amount;
balanceOf[from] -= amount;
allowance[from][msg.sender] -= amount;
emit Transfer(from, address(0), amount);
}
}