Transaction Hash:
Block:
21429589 at Dec-18-2024 01:02:59 PM +UTC
Transaction Fee:
0.00082700152861536 ETH
$2.00
Gas Used:
47,040 Gas / 17.580814809 Gwei
Emitted Events:
133 |
MrFwashere.Approval( owner=[Sender] 0xf4ea232b7530a3081c6487a558004c9e8dca1b8d, spender=0x00000000...43aC78BA3, value=115792089237316195423570985008687907853269984665640564039457584007913129639935 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x3d5d3DCD...14635c725 | |||||
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 12.78205774089018203 Eth | 12.78212213909706203 Eth | 0.00006439820688 | |
0xF4EA232B...E8DCa1b8d |
0.07865618311858262 Eth
Nonce: 34
|
0.07782918158996726 Eth
Nonce: 35
| 0.00082700152861536 |
Execution Trace
MrFwashere.approve( spender=0x000000000022D473030F116dDEE9F6B43aC78BA3, value=115792089237316195423570985008687907853269984665640564039457584007913129639935 ) => ( True )
approve[MrFwashere (ln:55)]
Approval[MrFwashere (ln:58)]
pragma solidity ^0.8.0; // Mr F is here again, with a shitcoin 🤡 // Don't buy, NFA, blah blah // https://twitter.com/VitalikButerin/status/1333744735735795712 // https://decrypt.co/50055/the-strange-message-written-on-ethereum-2-0s-first-block // https://twitter.com/MrFwashere interface ERC20 { 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 approveAndCall(address spender, uint tokens, bytes calldata data) external returns (bool success); 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); } interface ApproveAndCallFallBack { function receiveApproval(address from, uint256 tokens, address token, bytes calldata data) external; } contract MrFwashere is ERC20 { string public constant name = "Mr F was here"; string public constant symbol = "MRF"; uint8 public constant decimals = 18; uint256 private _totalSupply = 11364381 * 10**18; // https://beaconscan.com/slot/1 -> https://etherscan.io/block/11364381 mapping(address => uint256) private balances; mapping(address => mapping(address => uint256)) private allowed; constructor() { balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address player) public view override returns (uint256) { return balances[player]; } function allowance(address player, address spender) public view override returns (uint256) { return allowed[player][spender]; } function transfer(address to, uint256 value) public override returns (bool) { require(value <= balances[msg.sender]); require(to != address(0)); balances[msg.sender] -= value; balances[to] += value; emit Transfer(msg.sender, to, value); return true; } function multiTransfer(address[] memory receivers, uint256[] memory amounts) public { for (uint256 i = 0; i < receivers.length; i++) { transfer(receivers[i], amounts[i]); } } function approve(address spender, uint256 value) public override returns (bool) { require(spender != address(0)); allowed[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function approveAndCall(address spender, uint256 tokens, bytes calldata data) external override returns (bool) { allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data); return true; } function transferFrom(address from, address to, uint256 value) public override returns (bool) { require(value <= balances[from]); require(value <= allowed[from][msg.sender]); require(to != address(0)); balances[from] -= value; balances[to] += value; allowed[from][msg.sender] -= value; emit Transfer(from, to, value); return true; } function increaseAllowance(address spender, uint256 addedValue) public returns (bool) { require(spender != address(0)); allowed[msg.sender][spender] += addedValue; emit Approval(msg.sender, spender, allowed[msg.sender][spender]); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) { require(spender != address(0)); allowed[msg.sender][spender] -= subtractedValue; emit Approval(msg.sender, spender, allowed[msg.sender][spender]); return true; } function burn(uint256 amount) external { require(amount != 0); require(amount <= balances[msg.sender]); _totalSupply -= amount; balances[msg.sender] -= amount; emit Transfer(msg.sender, address(0), amount); } }