Transaction Hash:
Block:
7748643 at May-12-2019 11:33:12 PM +UTC
Transaction Fee:
0.00000362967 ETH
$0.01
Gas Used:
21,351 Gas / 0.17 Gwei
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x52bc44d5...b7d7bE3b5
Miner
| (Nanopool) | 6,862.326733032204682262 Eth | 6,862.326736661874682262 Eth | 0.00000362967 | |
0xF42223A0...08c31Dd80 |
0.001186420706 Eth
Nonce: 15
|
0.001182791036 Eth
Nonce: 16
| 0.00000362967 |
Execution Trace
VokenAirdrop.CALL( )
pragma solidity ^0.5.7; // Voken Airdrop Fund // Just call this contract (send 0 ETH here), // and you will receive 100-200 VNET Tokens immediately. // // More info: // https://vision.network // https://voken.io // // Contact us: // [email protected] // [email protected] /** * @title Ownable */ contract Ownable { address internal _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract * to the sender account. */ constructor () internal { _owner = msg.sender; emit OwnershipTransferred(address(0), _owner); } /** * @return the address of the owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == _owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) external onlyOwner { require(newOwner != address(0)); _owner = newOwner; emit OwnershipTransferred(_owner, newOwner); } /** * @dev Rescue compatible ERC20 Token * * @param tokenAddr ERC20 The address of the ERC20 token contract * @param receiver The address of the receiver * @param amount uint256 */ function rescueTokens(address tokenAddr, address receiver, uint256 amount) external onlyOwner { IERC20 _token = IERC20(tokenAddr); require(receiver != address(0)); uint256 balance = _token.balanceOf(address(this)); require(balance >= amount); assert(_token.transfer(receiver, amount)); } /** * @dev Withdraw Ether */ function withdrawEther(address payable to, uint256 amount) external onlyOwner { require(to != address(0)); uint256 balance = address(this).balance; require(balance >= amount); to.transfer(amount); } } /** * @title ERC20 interface * @dev see https://eips.ethereum.org/EIPS/eip-20 */ interface IERC20{ function balanceOf(address owner) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); } /** * @title SafeMath * @dev Unsigned math operations with safety checks that revert on error. */ library SafeMath { /** * @dev Adds two unsigned integers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); 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) { assert(b <= a); return a - b; } /** * @dev Multiplies two unsigned integers, reverts on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(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) { assert(b > 0); uint256 c = a / b; assert(a == b * c + a % b); return a / b; } /** * @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; } } /** * @title Voken Airdrop */ contract VokenAirdrop is Ownable { using SafeMath for uint256; IERC20 public Voken; mapping(address => bool) public _airdopped; event Donate(address indexed account, uint256 amount); /** * @dev constructor */ constructor() public { Voken = IERC20(0x82070415FEe803f94Ce5617Be1878503e58F0a6a); } /** * @dev receive ETH and send Vokens */ function () external payable { require(_airdopped[msg.sender] != true); uint256 balance = Voken.balanceOf(address(this)); require(balance > 0); uint256 vokenAmount = 100; vokenAmount = vokenAmount.add(uint256(keccak256(abi.encode(now, msg.sender, now))) % 100).mul(10 ** 6); if (vokenAmount <= balance) { assert(Voken.transfer(msg.sender, vokenAmount)); } else { assert(Voken.transfer(msg.sender, balance)); } _airdopped[msg.sender] = true; } }