Transaction Hash:
Block:
11526805 at Dec-26-2020 03:22:57 AM +UTC
Transaction Fee:
0.00168147 ETH
$3.77
Gas Used:
24,021 Gas / 70 Gwei
Emitted Events:
63 |
XanPool.Transfer( _from=[Sender] 0x64c57a9f8ce9c72862976c410fee2cd09a175ee4, _to=0xa232d931309317d2e519E7cBE01dfB9FeE677e64, value=4939110000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x64c57A9f...09A175eE4 |
0.016000001 Eth
Nonce: 7
|
0.014318531 Eth
Nonce: 8
| 0.00168147 | ||
0x8DC6eD01...3C7360D7F | |||||
0xEA674fdD...16B898ec8
Miner
| (Ethermine) | 817.328692121571951334 Eth | 817.330373591571951334 Eth | 0.00168147 |
Execution Trace
XanPool.transfer( _to=0xa232d931309317d2e519E7cBE01dfB9FeE677e64, _value=4939110000000 ) => ( True )
transfer[XanPool (ln:55)]
burn[XanPool (ln:57)]
safeSub[XanPool (ln:72)]
safeSub[XanPool (ln:73)]
Burn[XanPool (ln:74)]
safeSub[XanPool (ln:62)]
safeAdd[XanPool (ln:63)]
Transfer[XanPool (ln:64)]
pragma solidity 0.4.26; contract SafeMath { function safeMul(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a * b; _assert(a == 0 || c / a == b); return c; } function safeDiv(uint256 a, uint256 b) internal pure returns (uint256) { _assert(b > 0); uint256 c = a / b; _assert(a == b * c + a % b); return c; } function safeSub(uint256 a, uint256 b) internal pure returns (uint256) { _assert(b <= a); return a - b; } function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; _assert(c >= a && c >= b); return c; } function _assert(bool assertion) internal pure { if (!assertion) { revert(); } } } contract XanPool is SafeMath { string public name = "XanPool"; string public symbol = "XLP"; uint8 constant public decimals = 8; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) public _allowed; uint256 public totalSupply = 10 * 100000000 * 100000000; constructor () public{ _balances[msg.sender] = totalSupply; emit Transfer(0x0, msg.sender, totalSupply); } function balanceOf(address addr) public view returns (uint256) { return _balances[addr]; } function transfer(address _to, uint256 _value) public returns (bool) { if (_to == address(0)) { return burn(_value); } else { require(_balances[msg.sender] >= _value && _value >= 0); require(_balances[_to] + _value >= _balances[_to]); _balances[msg.sender] = safeSub(_balances[msg.sender], _value); _balances[_to] = safeAdd(_balances[_to], _value); emit Transfer(msg.sender, _to, _value); return true; } } function burn(uint256 _value) public returns (bool) { require(_balances[msg.sender] >= _value && _value > 0); require(totalSupply >= _value); _balances[msg.sender] = safeSub(_balances[msg.sender], _value); totalSupply = safeSub(totalSupply, _value); emit Burn(msg.sender, _value); return true; } function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_balances[_from] >= _value && _value >= 0); require(_balances[_to] + _value >= _balances[_to]); require(_allowed[_from][msg.sender] >= _value); _balances[_to] = safeAdd(_balances[_to], _value); _balances[_from] = safeSub(_balances[_from], _value); _allowed[_from][msg.sender] = safeSub(_allowed[_from][msg.sender], _value); emit Transfer(_from, _to, _value); return true; } function approve(address spender, uint256 value) public returns (bool) { require(spender != address(0)); require(value == 0 || _allowed[msg.sender][spender] == 0); _allowed[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } function allowance(address _master, address _spender) public view returns (uint256) { return _allowed[_master][_spender]; } event Approval(address indexed _owner, address indexed _spender, uint256 _value); event Transfer(address indexed _from, address indexed _to, uint256 value); event Burn(address indexed _from, uint256 value); }