Transaction Hash:
Block:
10990992 at Oct-04-2020 06:36:42 PM +UTC
Transaction Fee:
0.105944064 ETH
$199.59
Gas Used:
1,103,584 Gas / 96 Gwei
Emitted Events:
277 |
LunaCoreToken.OwnershipTransferred( previousOwner=0x0000000000000000000000000000000000000000, newOwner=[Sender] 0xcc249d41f3b4ea5c79ec82f5f0d91f39cfa2b92d )
|
278 |
LunaCoreToken.Transfer( from=0x0000000000000000000000000000000000000000, to=[Sender] 0xcc249d41f3b4ea5c79ec82f5f0d91f39cfa2b92d, value=25000000000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x547d6118...c5634B9C9 |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
0xcC249D41...9CFa2B92d | (YF Moonshot: Deployer) |
42.163357449171083685 Eth
Nonce: 248
|
42.057413385171083685 Eth
Nonce: 249
| 0.105944064 | |
0xD224cA0c...503B79f53
Miner
| (UUPool) | 484.528181113421860274 Eth | 484.634125177421860274 Eth | 0.105944064 |
Execution Trace
LunaCoreToken.60806040( )
pragma solidity 0.6.0; library SafeMath { /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } contract Ownable { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () public { _owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == msg.sender, "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract LunaCoreToken is Ownable { using SafeMath for uint256; // standard ERC20 variables. string public constant name = "LunaCore"; string public constant symbol = "LUCR"; uint256 public constant decimals = 18; // the supply will not exceed 25,000 uint256 private constant _maximumSupply = 25000 * 10 ** decimals; // owner of the contract uint256 public _totalSupply; // events event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); // mappings mapping(address => uint256) public _balanceOf; mapping(address => mapping(address => uint256)) public allowance; constructor() public override { // transfer the entire supply into the address of the Contract creator. _owner = msg.sender; _totalSupply = _maximumSupply; _balanceOf[msg.sender] = _maximumSupply; emit Transfer(address(0), msg.sender, _maximumSupply); } function totalSupply () public view returns (uint256) { return _totalSupply; } function balanceOf (address who) public view returns (uint256) { return _balanceOf[who]; } // ensure the address is valid. function _transfer(address _from, address _to, uint256 _value) internal { _balanceOf[_from] = _balanceOf[_from].sub(_value); _balanceOf[_to] = _balanceOf[_to].add(_value); emit Transfer(_from, _to, _value); } // send tokens function transfer(address _to, uint256 _value) public returns (bool success) { require(_balanceOf[msg.sender] >= _value); _transfer(msg.sender, _to, _value); return true; } // handles presale burn + staking burn. function burn (uint256 _burnAmount) public onlyOwner returns (bool success) { _transfer(_owner, address(0), _burnAmount); _totalSupply = _totalSupply.sub(_burnAmount); return true; } // approve tokens function approve(address _spender, uint256 _value) public returns (bool success) { require(_spender != address(0)); allowance[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } // transfer from function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { require(_value <= _balanceOf[_from]); require(_value <= allowance[_from][msg.sender]); allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value); _transfer(_from, _to, _value); return true; } }