Transaction Hash:
Block:
5565413 at May-06-2018 09:11:22 AM +UTC
Transaction Fee:
0.00131024015625 ETH
$4.78
Gas Used:
51,955 Gas / 25.21875 Gwei
Emitted Events:
4 |
WaykiCoin.Transfer( _from=[Sender] 0x04e7d4f727046556811905f49f09897e090fb323, _to=0x52A0Fb74e0fDFf45f4829a126A48F3Da044d6a81, _value=401000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x04E7d4F7...e090fb323 |
0.20475492 Eth
Nonce: 3
|
0.20344467984375 Eth
Nonce: 4
| 0.00131024015625 | ||
0x4f878C08...Cd4Ae99E5 | |||||
0x52bc44d5...b7d7bE3b5
Miner
| (Nanopool) | 5,533.132457141606179995 Eth | 5,533.133767381762429995 Eth | 0.00131024015625 |
Execution Trace
WaykiCoin.transfer( _to=0x52A0Fb74e0fDFf45f4829a126A48F3Da044d6a81, _value=401000000000 ) => ( success=True )
transfer[WaykiCoin (ln:31)]
Transfer[WaykiCoin (ln:38)]
pragma solidity ^0.4.11; contract WaykiCoin{ mapping (address => uint256) balances; address public owner; string public name; string public symbol; uint8 public decimals; // total amount of tokens uint256 public totalSupply; // `allowed` tracks any extra transfer rights as in all ERC20 tokens mapping (address => mapping (address => uint256)) allowed; function WaykiCoin() public { owner = msg.sender; // Set owner of contract name = "WaykiCoin"; // Set the name for display purposes symbol = "WIC"; // Set the symbol for display purposes decimals = 8; // Amount of decimals for display purposes totalSupply = 21000000000000000; // Total supply balances[owner] = totalSupply; // Set owner balance equal totalsupply } /// @param _owner The address from which the balance will be retrieved /// @return The balance function balanceOf(address _owner) public constant returns (uint256 balance) { return balances[_owner]; } /// @notice send `_value` token to `_to` from `msg.sender` /// @param _to The address of the recipient /// @param _value The amount of token to be transferred /// @return Whether the transfer was successful or not function transfer(address _to, uint256 _value) public returns (bool success) { require(_value > 0 ); // Check send token value > 0; require(balances[msg.sender] >= _value); // Check if the sender has enough require(balances[_to] + _value > balances[_to]); // Check for overflows balances[msg.sender] -= _value; // Subtract from the sender balances[_to] += _value; // Add the same to the recipient Transfer(msg.sender, _to, _value); // Notify anyone listening that this transfer took place return true; } /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from` /// @param _from The address of the sender /// @param _to The address of the recipient /// @param _value The amount of token to be transferred /// @return Whether the transfer was successful or not function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { require(balances[_from] >= _value); // Check if the sender has enough require(balances[_to] + _value >= balances[_to]); // Check for overflows require(_value <= allowed[_from][msg.sender]); // Check allowance balances[_from] -= _value; // Subtract from the sender balances[_to] += _value; // Add the same to the recipient allowed[_from][msg.sender] -= _value; Transfer(_from, _to, _value); return true; } /// @notice `msg.sender` approves `_spender` to spend `_value` tokens /// @param _spender The address of the account able to transfer the tokens /// @param _value The amount of tokens to be approved for transfer /// @return Whether the approval was successful or not function approve(address _spender, uint256 _value) public returns (bool success) { require(balances[msg.sender] >= _value); allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /// @param _owner The address of the account owning tokens /// @param _spender The address of the account able to transfer the tokens /// @return Amount of remaining tokens allowed to spent function allowance(address _owner, address _spender) public constant returns (uint256 remaining) { return allowed[_owner][_spender]; } /* This unnamed function is called whenever someone tries to send ether to it */ function () private { revert(); // Prevents accidental sending of ether } event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); }