Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Transactions Sent
Latest:
N/A
First:
N/A
Latest 25 from a total of 10,034 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Kill | 6403670 | 2130 days ago | IN | 0 ETH | 0.00098059 | ||||
Trigger Air Drop | 6403492 | 2130 days ago | IN | 0 ETH | 0.00061015 | ||||
Trigger Air Drop | 6403489 | 2130 days ago | IN | 0 ETH | 0.00061015 | ||||
Trigger Air Drop | 6403486 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403484 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403482 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403480 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403478 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403476 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403473 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403471 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403468 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403466 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403463 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403460 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403458 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403456 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403453 | 2130 days ago | IN | 0 ETH | 0.00175719 | ||||
Trigger Air Drop | 6403451 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403448 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403446 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403444 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403441 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403439 | 2130 days ago | IN | 0 ETH | 0.00175854 | ||||
Trigger Air Drop | 6403437 | 2130 days ago | IN | 0 ETH | 0.00175854 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
6403670 | 2130 days ago | 0 ETH |
Loading...
Loading
Contract Self Destruct called at Txn Hash 0x22c1481295bd9a5e15cff02f90413a3d012ece614d48b5bbc8c99f7561ad1588
Contract Name:
MintableAirDropper
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-09-07 */ pragma solidity 0.4.24; // File: zeppelin-solidity/contracts/ownership/Ownable.sol /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to relinquish control of the contract. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } /** * @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) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } // File: zeppelin-solidity/contracts/math/SafeMath.sol /** * @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; } } // File: contracts/ZTXInterface.sol contract ZTXInterface { function transferOwnership(address _newOwner) public; function mint(address _to, uint256 amount) public returns (bool); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); function unpause() public; } // File: contracts/airdropper/AirDropperCore.sol /** * @title AirDropperCore * @author Gustavo Guimaraes - <[email protected]> * @dev Contract for the ZTX airdrop */ contract AirDropperCore is Ownable { using SafeMath for uint256; mapping (address => bool) public claimedAirdropTokens; uint256 public numOfCitizensWhoReceivedDrops; uint256 public tokenAmountPerUser; uint256 public airdropReceiversLimit; ZTXInterface public ztx; event TokenDrop(address indexed receiver, uint256 amount); /** * @dev Constructor for the airdrop contract * @param _airdropReceiversLimit Cap of airdrop receivers * @param _tokenAmountPerUser Number of tokens done per user * @param _ztx ZTX contract address */ constructor(uint256 _airdropReceiversLimit, uint256 _tokenAmountPerUser, ZTXInterface _ztx) public { require( _airdropReceiversLimit != 0 && _tokenAmountPerUser != 0 && _ztx != address(0), "constructor params cannot be empty" ); airdropReceiversLimit = _airdropReceiversLimit; tokenAmountPerUser = _tokenAmountPerUser; ztx = ZTXInterface(_ztx); } function triggerAirDrops(address[] recipients) external onlyOwner { for (uint256 i = 0; i < recipients.length; i++) { triggerAirDrop(recipients[i]); } } /** * @dev Distributes tokens to recipient addresses * @param recipient address to receive airdropped token */ function triggerAirDrop(address recipient) public onlyOwner { numOfCitizensWhoReceivedDrops = numOfCitizensWhoReceivedDrops.add(1); require( numOfCitizensWhoReceivedDrops <= airdropReceiversLimit && !claimedAirdropTokens[recipient], "Cannot give more tokens than airdropShare and cannot airdrop to an address that already receive tokens" ); claimedAirdropTokens[recipient] = true; // eligible citizens for airdrop receive tokenAmountPerUser in ZTX sendTokensToUser(recipient, tokenAmountPerUser); emit TokenDrop(recipient, tokenAmountPerUser); } /** * @dev Can be overridden to add sendTokensToUser logic. The overriding function * should call super.sendTokensToUser() to ensure the chain is * executed entirely. * @param recipient Address to receive airdropped tokens * @param tokenAmount Number of rokens to receive */ function sendTokensToUser(address recipient, uint256 tokenAmount) internal { } } // File: contracts/airdropper/MintableAirDropper.sol /** * @title MintableAirDropper * @author Gustavo Guimaraes - <[email protected]> * @dev Airdrop contract that mints ZTX tokens */ contract MintableAirDropper is AirDropperCore { /** * @dev Constructor for the airdrop contract. * NOTE: airdrop must be the token owner in order to mint ZTX tokens * @param _airdropReceiversLimit Cap of airdrop receivers * @param _tokenAmountPerUser Number of tokens done per user * @param _ztx ZTX contract address */ constructor ( uint256 _airdropReceiversLimit, uint256 _tokenAmountPerUser, ZTXInterface _ztx ) public AirDropperCore(_airdropReceiversLimit, _tokenAmountPerUser, _ztx) {} /** * @dev override sendTokensToUser logic * @param recipient Address to receive airdropped tokens * @param tokenAmount Number of rokens to receive */ function sendTokensToUser(address recipient, uint256 tokenAmount) internal { ztx.mint(recipient, tokenAmount); super.sendTokensToUser(recipient, tokenAmount); } /** * @dev Self-destructs contract */ function kill(address newZuluOwner) external onlyOwner { require( numOfCitizensWhoReceivedDrops >= airdropReceiversLimit, "only able to kill contract when numOfCitizensWhoReceivedDrops equals or is higher than airdropReceiversLimit" ); ztx.unpause(); ztx.transferOwnership(newZuluOwner); selfdestruct(owner); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"claimedAirdropTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"recipients","type":"address[]"}],"name":"triggerAirDrops","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenAmountPerUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ztx","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"airdropReceiversLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newZuluOwner","type":"address"}],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"}],"name":"triggerAirDrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numOfCitizensWhoReceivedDrops","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_airdropReceiversLimit","type":"uint256"},{"name":"_tokenAmountPerUser","type":"uint256"},{"name":"_ztx","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenDrop","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405160608061099a83398101604090815281516020830151919092015160008054600160a060020a03191633179055828282821580159061005257508115155b80156100665750600160a060020a03811615155b15156100f957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f636f6e7374727563746f7220706172616d732063616e6e6f7420626520656d7060448201527f7479000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60049290925560035560058054600160a060020a03909216600160a060020a0319909216919091179055505050610865806101356000396000f3006080604052600436106100ae5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166339c670f081146100b357806347faffcb146100e8578063715018a61461010a5780637f52fcae1461011f578063820203a3146101465780638da5cb5b14610177578063961cc5691461018c578063cbf0b0c0146101a1578063d304380b146101c2578063d7c0302e146101e3578063f2fde38b146101f8575b600080fd5b3480156100bf57600080fd5b506100d4600160a060020a0360043516610219565b604080519115158252519081900360200190f35b3480156100f457600080fd5b50610108600480356024810191013561022e565b005b34801561011657600080fd5b50610108610283565b34801561012b57600080fd5b506101346102ef565b60408051918252519081900360200190f35b34801561015257600080fd5b5061015b6102f5565b60408051600160a060020a039092168252519081900360200190f35b34801561018357600080fd5b5061015b610304565b34801561019857600080fd5b50610134610313565b3480156101ad57600080fd5b50610108600160a060020a0360043516610319565b3480156101ce57600080fd5b50610108600160a060020a0360043516610527565b3480156101ef57600080fd5b506101346106d8565b34801561020457600080fd5b50610108600160a060020a03600435166106de565b60016020526000908152604090205460ff1681565b60008054600160a060020a0316331461024657600080fd5b5060005b8181101561027e5761027683838381811061026157fe5b90506020020135600160a060020a0316610527565b60010161024a565b505050565b600054600160a060020a0316331461029a57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60035481565b600554600160a060020a031681565b600054600160a060020a031681565b60045481565b600054600160a060020a0316331461033057600080fd5b600454600254101561041557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152606c60248201527f6f6e6c792061626c6520746f206b696c6c20636f6e7472616374207768656e2060448201527f6e756d4f66436974697a656e7357686f526563656976656444726f707320657160648201527f75616c73206f7220697320686967686572207468616e2061697264726f70526560848201527f636569766572734c696d6974000000000000000000000000000000000000000060a482015290519081900360c40190fd5b600560009054906101000a9004600160a060020a0316600160a060020a0316633f4ba83a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561048157600080fd5b505af1158015610495573d6000803e3d6000fd5b5050600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152915191909216935063f2fde38b9250602480830192600092919082900301818387803b15801561050057600080fd5b505af1158015610514573d6000803e3d6000fd5b5050600054600160a060020a0316915050ff5b600054600160a060020a0316331461053e57600080fd5b60025461055290600163ffffffff61070116565b6002819055600454108015906105815750600160a060020a03811660009081526001602052604090205460ff16155b151561066057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152606660248201527f43616e6e6f742067697665206d6f726520746f6b656e73207468616e2061697260448201527f64726f70536861726520616e642063616e6e6f742061697264726f7020746f2060648201527f616e2061646472657373207468617420616c726561647920726563656976652060848201527f746f6b656e73000000000000000000000000000000000000000000000000000060a482015290519081900360c40190fd5b600160a060020a0381166000908152600160208190526040909120805460ff19169091179055600354610694908290610714565b6003546040805191825251600160a060020a038316917fb88903f74059b09b78248a0df6ba49200ca616f185ca84aca28d3e74e754ab86919081900360200190a250565b60025481565b600054600160a060020a031633146106f557600080fd5b6106fe816107bc565b50565b8181018281101561070e57fe5b92915050565b600554604080517f40c10f19000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015260248201859052915191909216916340c10f199160448083019260209291908290030181600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b505050506040513d60208110156107ad57600080fd5b506107b89050828282565b5050565b600160a060020a03811615156107d157600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058202577ca22facd13d4acd9a0b1372dad900c4e6723c7447f224b35badccb3070220029000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000001b1ae4d6e2ef500000000000000000000000000000e8f9fa977ea585591d9f394681318c16552577fb
Deployed Bytecode
0x6080604052600436106100ae5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166339c670f081146100b357806347faffcb146100e8578063715018a61461010a5780637f52fcae1461011f578063820203a3146101465780638da5cb5b14610177578063961cc5691461018c578063cbf0b0c0146101a1578063d304380b146101c2578063d7c0302e146101e3578063f2fde38b146101f8575b600080fd5b3480156100bf57600080fd5b506100d4600160a060020a0360043516610219565b604080519115158252519081900360200190f35b3480156100f457600080fd5b50610108600480356024810191013561022e565b005b34801561011657600080fd5b50610108610283565b34801561012b57600080fd5b506101346102ef565b60408051918252519081900360200190f35b34801561015257600080fd5b5061015b6102f5565b60408051600160a060020a039092168252519081900360200190f35b34801561018357600080fd5b5061015b610304565b34801561019857600080fd5b50610134610313565b3480156101ad57600080fd5b50610108600160a060020a0360043516610319565b3480156101ce57600080fd5b50610108600160a060020a0360043516610527565b3480156101ef57600080fd5b506101346106d8565b34801561020457600080fd5b50610108600160a060020a03600435166106de565b60016020526000908152604090205460ff1681565b60008054600160a060020a0316331461024657600080fd5b5060005b8181101561027e5761027683838381811061026157fe5b90506020020135600160a060020a0316610527565b60010161024a565b505050565b600054600160a060020a0316331461029a57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60035481565b600554600160a060020a031681565b600054600160a060020a031681565b60045481565b600054600160a060020a0316331461033057600080fd5b600454600254101561041557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152606c60248201527f6f6e6c792061626c6520746f206b696c6c20636f6e7472616374207768656e2060448201527f6e756d4f66436974697a656e7357686f526563656976656444726f707320657160648201527f75616c73206f7220697320686967686572207468616e2061697264726f70526560848201527f636569766572734c696d6974000000000000000000000000000000000000000060a482015290519081900360c40190fd5b600560009054906101000a9004600160a060020a0316600160a060020a0316633f4ba83a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15801561048157600080fd5b505af1158015610495573d6000803e3d6000fd5b5050600554604080517ff2fde38b000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152915191909216935063f2fde38b9250602480830192600092919082900301818387803b15801561050057600080fd5b505af1158015610514573d6000803e3d6000fd5b5050600054600160a060020a0316915050ff5b600054600160a060020a0316331461053e57600080fd5b60025461055290600163ffffffff61070116565b6002819055600454108015906105815750600160a060020a03811660009081526001602052604090205460ff16155b151561066057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152606660248201527f43616e6e6f742067697665206d6f726520746f6b656e73207468616e2061697260448201527f64726f70536861726520616e642063616e6e6f742061697264726f7020746f2060648201527f616e2061646472657373207468617420616c726561647920726563656976652060848201527f746f6b656e73000000000000000000000000000000000000000000000000000060a482015290519081900360c40190fd5b600160a060020a0381166000908152600160208190526040909120805460ff19169091179055600354610694908290610714565b6003546040805191825251600160a060020a038316917fb88903f74059b09b78248a0df6ba49200ca616f185ca84aca28d3e74e754ab86919081900360200190a250565b60025481565b600054600160a060020a031633146106f557600080fd5b6106fe816107bc565b50565b8181018281101561070e57fe5b92915050565b600554604080517f40c10f19000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015260248201859052915191909216916340c10f199160448083019260209291908290030181600087803b15801561078357600080fd5b505af1158015610797573d6000803e3d6000fd5b505050506040513d60208110156107ad57600080fd5b506107b89050828282565b5050565b600160a060020a03811615156107d157600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058202577ca22facd13d4acd9a0b1372dad900c4e6723c7447f224b35badccb3070220029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000001b1ae4d6e2ef500000000000000000000000000000e8f9fa977ea585591d9f394681318c16552577fb
-----Decoded View---------------
Arg [0] : _airdropReceiversLimit (uint256): 10000
Arg [1] : _tokenAmountPerUser (uint256): 500000000000000000000
Arg [2] : _ztx (address): 0xE8F9fa977ea585591d9F394681318C16552577fB
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000002710
Arg [1] : 00000000000000000000000000000000000000000000001b1ae4d6e2ef500000
Arg [2] : 000000000000000000000000e8f9fa977ea585591d9f394681318c16552577fb
Swarm Source
bzzr://2577ca22facd13d4acd9a0b1372dad900c4e6723c7447f224b35badccb307022
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.