Source Code
Latest 25 from a total of 2,489 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 6533227 | 2687 days ago | IN | 0.001 ETH | 0.0002186 | ||||
| Transfer | 6506931 | 2691 days ago | IN | 0.001 ETH | 0.00162569 | ||||
| Collect | 6494841 | 2693 days ago | IN | 0 ETH | 0.00058652 | ||||
| Collect | 6494833 | 2693 days ago | IN | 0 ETH | 0.00058652 | ||||
| Send Air Drops | 6494811 | 2693 days ago | IN | 0 ETH | 0.00011517 | ||||
| Collect | 6389233 | 2710 days ago | IN | 0 ETH | 0.00021085 | ||||
| Transfer | 6290988 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290969 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290965 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290963 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290942 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290942 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290942 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290940 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290940 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290900 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290900 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290898 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290826 | 2727 days ago | IN | 0.001 ETH | 0.00011895 | ||||
| Transfer | 6290798 | 2727 days ago | IN | 0.001 ETH | 0.00016395 | ||||
| Transfer | 6290750 | 2727 days ago | IN | 0.001 ETH | 0.0001586 | ||||
| Transfer | 6290749 | 2727 days ago | IN | 0.001 ETH | 0.0001586 | ||||
| Transfer | 6290747 | 2727 days ago | IN | 0.001 ETH | 0.0001586 | ||||
| Transfer | 6290743 | 2727 days ago | IN | 0.001 ETH | 0.0001586 | ||||
| Transfer | 6290743 | 2727 days ago | IN | 0.001 ETH | 0.0001586 |
Latest 8 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 23223752 | 182 days ago | 0.002 ETH | ||||
| Transfer | 6389233 | 2710 days ago | 0.0666 ETH | ||||
| Transfer | 6253466 | 2733 days ago | 0.8329 ETH | ||||
| Transfer | 6087303 | 2761 days ago | 0.172 ETH | ||||
| Transfer | 6058203 | 2766 days ago | 0.21698831 ETH | ||||
| Transfer | 6046221 | 2768 days ago | 0.7901068 ETH | ||||
| Transfer | 6025755 | 2771 days ago | 0.50585 ETH | ||||
| Transfer | 6010851 | 2774 days ago | 0.005 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Airdrop
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*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
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.