ETH Price: $1,849.37 (-0.95%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer65332272018-10-17 17:46:012687 days ago1539798361IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.00021864
Transfer65069312018-10-13 10:54:312691 days ago1539428071IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.0016256941
Collect64948412018-10-11 11:45:272693 days ago1539258327IN
0x98b8F5d7...41Ef8A529
0 ETH0.000586525
Collect64948332018-10-11 11:43:572693 days ago1539258237IN
0x98b8F5d7...41Ef8A529
0 ETH0.000586525
Send Air Drops64948112018-10-11 11:39:542693 days ago1539257994IN
0x98b8F5d7...41Ef8A529
0 ETH0.000115175
Collect63892332018-09-24 6:24:012710 days ago1537770241IN
0x98b8F5d7...41Ef8A529
0 ETH0.000210857
Transfer62909882018-09-07 23:41:162727 days ago1536363676IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62909692018-09-07 23:34:572727 days ago1536363297IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62909652018-09-07 23:34:272727 days ago1536363267IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62909632018-09-07 23:33:462727 days ago1536363226IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62909422018-09-07 23:28:112727 days ago1536362891IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62909422018-09-07 23:28:112727 days ago1536362891IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62909422018-09-07 23:28:112727 days ago1536362891IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62909402018-09-07 23:27:552727 days ago1536362875IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62909402018-09-07 23:27:552727 days ago1536362875IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62909002018-09-07 23:19:252727 days ago1536362365IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62909002018-09-07 23:19:252727 days ago1536362365IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62908982018-09-07 23:18:532727 days ago1536362333IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62908262018-09-07 22:59:412727 days ago1536361181IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000118953
Transfer62907982018-09-07 22:52:522727 days ago1536360772IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.000163953
Transfer62907502018-09-07 22:40:232727 days ago1536360023IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.00015864
Transfer62907492018-09-07 22:40:032727 days ago1536360003IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.00015864
Transfer62907472018-09-07 22:39:312727 days ago1536359971IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.00015864
Transfer62907432018-09-07 22:38:472727 days ago1536359927IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.00015864
Transfer62907432018-09-07 22:38:472727 days ago1536359927IN
0x98b8F5d7...41Ef8A529
0.001 ETH0.00015864
View all transactions

Latest 8 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer232237522025-08-26 7:19:47182 days ago1756192787
0x98b8F5d7...41Ef8A529
0.002 ETH
Transfer63892332018-09-24 6:24:012710 days ago1537770241
0x98b8F5d7...41Ef8A529
0.0666 ETH
Transfer62534662018-09-01 16:40:272733 days ago1535820027
0x98b8F5d7...41Ef8A529
0.8329 ETH
Transfer60873032018-08-04 14:37:332761 days ago1533393453
0x98b8F5d7...41Ef8A529
0.172 ETH
Transfer60582032018-07-30 16:31:192766 days ago1532968279
0x98b8F5d7...41Ef8A529
0.21698831 ETH
Transfer60462212018-07-28 16:42:002768 days ago1532796120
0x98b8F5d7...41Ef8A529
0.7901068 ETH
Transfer60257552018-07-25 5:30:102771 days ago1532496610
0x98b8F5d7...41Ef8A529
0.50585 ETH
Transfer60108512018-07-22 16:26:222774 days ago1532276782
0x98b8F5d7...41Ef8A529
0.005 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Airdrop

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-07-22
*/

contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender)
    public view returns (uint256);

  function transferFrom(address from, address to, uint256 value)
    public returns (bool);

  function approve(address spender, uint256 value) public returns (bool);
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting '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;
    }

    c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return a / b;
  }

  /**
  * @dev Subtracts two numbers, throws 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 Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}

/**
 * @title SafeERC20
 * @dev Wrappers around ERC20 operations that throw on failure.
 * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,
 * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
 */
library SafeERC20 {
  function safeTransfer(ERC20Basic token, address to, uint256 value) internal {
    require(token.transfer(to, value));
  }

  function safeTransferFrom(
    ERC20 token,
    address from,
    address to,
    uint256 value
  )
    internal
  {
    require(token.transferFrom(from, to, value));
  }

  function safeApprove(ERC20 token, address spender, uint256 value) internal {
    require(token.approve(spender, value));
  }
}

/**
  * The contract used for airdrop campaign of ATT token 
  */
contract Airdrop {
    
    using SafeMath for uint256;
    using SafeERC20 for ERC20;
    
    // The token being sold
    ERC20 public token;

    address owner = 0x0;

    // How many token units a buyer gets per wei.
    // The rate is the conversion between wei and the smallest and indivisible token unit.
    // So, if you are using a rate of 1 with a DetailedERC20 token with 3 decimals called TOK
    // 1 wei will give you 1 unit, or 0.001 TOK.
    uint256 public rate;
    
    modifier isOwner {
        assert(owner == msg.sender);
        _;
    }

  /**
   * Event for token drop logging
   * @param sender who send the tokens
   * @param beneficiary who got the tokens
   * @param value weis sent
   * @param amount amount of tokens dropped
   */
  event TokenDropped(
    address indexed sender,
    address indexed beneficiary,
    uint256 value,
    uint256 amount
  );

  /**
   * @param _token Address of the token being sold
   */
  constructor(ERC20 _token) public
  {
    require(_token != address(0));

    owner = msg.sender;
    token = _token;
  }

  // -----------------------------------------
  // Crowdsale external interface
  // -----------------------------------------

  /**
   * @dev fallback function ***DO NOT OVERRIDE***
   */
  function () external payable {
    sendAirDrops(msg.sender);
  }

    /**
    * @dev low level token purchase ***DO NOT OVERRIDE***
    * @param _beneficiary Address performing the token purchase
    */
    function sendAirDrops(address _beneficiary) public payable
    {
        uint256 weiAmount = msg.value;
        _preValidatePurchase(_beneficiary, weiAmount);
        
        // calculate token amount to be created
        uint256 tokens = 50 * (10 ** 6);
        
        _processAirdrop(_beneficiary, tokens);
        
        emit TokenDropped(
            msg.sender,
            _beneficiary,
            weiAmount,
            tokens
        );
    }
  
    function collect(uint256 _weiAmount) isOwner public {
        address thisAddress = this;
        owner.transfer(thisAddress.balance);
    }

  // -----------------------------------------
  // Internal interface (extensible)
  // -----------------------------------------

  /**
   * @dev Validation of an incoming purchase. Use require statements to revert state when conditions are not met. Use super to concatenate validations.
   * @param _beneficiary Address performing the token purchase
   * @param _weiAmount Value in wei involved in the purchase
   */
  function _preValidatePurchase( address _beneficiary, uint256 _weiAmount) internal
  {
    require(_beneficiary != address(0));
    require(_weiAmount >= 1 * (10 ** 15));
  }

  /**
   * @dev Source of tokens. Override this method to modify the way in which the crowdsale ultimately gets and sends its tokens.
   * @param _beneficiary Address performing the token purchase
   * @param _tokenAmount Number of tokens to be emitted
   */
  function _deliverTokens(
    address _beneficiary,
    uint256 _tokenAmount
  )
    internal
  {
    token.safeTransfer(_beneficiary, _tokenAmount);
  }

  /**
   * @dev Executed when a purchase has been validated and is ready to be executed.
   * @param _beneficiary Address receiving the tokens
   * @param _tokenAmount Number of tokens to be purchased
   */
  function _processAirdrop(
    address _beneficiary,
    uint256 _tokenAmount
  )
    internal
  {
    _deliverTokens(_beneficiary, _tokenAmount);
  }

}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"sendAirDrops","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_weiAmount","type":"uint256"}],"name":"collect","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenDropped","type":"event"}]

608060405260018054600160a060020a031916905534801561002057600080fd5b506040516020806103798339810160405251600160a060020a038116151561004757600080fd5b60018054600160a060020a0319908116331790915560008054600160a060020a0393909316929091169190911790556102f4806100856000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632c4e722e811461006c578063b6fca0df14610093578063ce3f865f146100a7578063fc0c546a146100bf575b61006a336100f0565b005b34801561007857600080fd5b5061008161015a565b60408051918252519081900360200190f35b61006a600160a060020a03600435166100f0565b3480156100b357600080fd5b5061006a600435610160565b3480156100cb57600080fd5b506100d46101b7565b60408051600160a060020a039092168252519081900360200190f35b3460006100fd83836101c6565b506302faf08061010d83826101f3565b60408051838152602081018390528151600160a060020a0386169233927fe376a8cd1c1608cc51d52e6a6ca8ba2d0937e556ce00627b97c2e4ac1b35096d929081900390910190a3505050565b60025481565b600154600090600160a060020a0316331461017757fe5b506001546040513091600160a060020a031690823180156108fc02916000818181858888f193505050501580156101b2573d6000803e3d6000fd5b505050565b600054600160a060020a031681565b600160a060020a03821615156101db57600080fd5b66038d7ea4c680008110156101ef57600080fd5b5050565b6101ef82826000546101ef90600160a060020a0316838363ffffffff61021516565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561029157600080fd5b505af11580156102a5573d6000803e3d6000fd5b505050506040513d60208110156102bb57600080fd5b505115156101b257600080fd00a165627a7a72305820745cf814be1b8ff40b4860c5afcda533f380909f85a01c5e78b96666fe43b6c90029000000000000000000000000758d26cb421d1fefad0f85698718bc7b0a31eb6a

Deployed Bytecode

0x6080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632c4e722e811461006c578063b6fca0df14610093578063ce3f865f146100a7578063fc0c546a146100bf575b61006a336100f0565b005b34801561007857600080fd5b5061008161015a565b60408051918252519081900360200190f35b61006a600160a060020a03600435166100f0565b3480156100b357600080fd5b5061006a600435610160565b3480156100cb57600080fd5b506100d46101b7565b60408051600160a060020a039092168252519081900360200190f35b3460006100fd83836101c6565b506302faf08061010d83826101f3565b60408051838152602081018390528151600160a060020a0386169233927fe376a8cd1c1608cc51d52e6a6ca8ba2d0937e556ce00627b97c2e4ac1b35096d929081900390910190a3505050565b60025481565b600154600090600160a060020a0316331461017757fe5b506001546040513091600160a060020a031690823180156108fc02916000818181858888f193505050501580156101b2573d6000803e3d6000fd5b505050565b600054600160a060020a031681565b600160a060020a03821615156101db57600080fd5b66038d7ea4c680008110156101ef57600080fd5b5050565b6101ef82826000546101ef90600160a060020a0316838363ffffffff61021516565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561029157600080fd5b505af11580156102a5573d6000803e3d6000fd5b505050506040513d60208110156102bb57600080fd5b505115156101b257600080fd00a165627a7a72305820745cf814be1b8ff40b4860c5afcda533f380909f85a01c5e78b96666fe43b6c90029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000758d26cb421d1fefad0f85698718bc7b0a31eb6a

-----Decoded View---------------
Arg [0] : _token (address): 0x758D26CB421D1fEfAd0F85698718bc7B0a31eb6a

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000758d26cb421d1fefad0f85698718bc7b0a31eb6a


Swarm Source

bzzr://745cf814be1b8ff40b4860c5afcda533f380909f85a01c5e78b96666fe43b6c9

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.