Source Code
Latest 10 from a total of 10 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer Ownersh... | 6636988 | 2685 days ago | IN | 0 ETH | 0.00013989 | ||||
| Owner Recover To... | 6636959 | 2685 days ago | IN | 0 ETH | 0.00011615 | ||||
| Transfer | 6122446 | 2771 days ago | IN | 0 ETH | 0.00742185 | ||||
| Transfer | 6122411 | 2771 days ago | IN | 0 ETH | 0.00372204 | ||||
| Transfer | 6034169 | 2786 days ago | IN | 0 ETH | 0.00008998 | ||||
| Transfer | 6034137 | 2786 days ago | IN | 0 ETH | 0.00276754 | ||||
| Transfer | 6034114 | 2786 days ago | IN | 0 ETH | 0.00673113 | ||||
| Transfer | 6033869 | 2786 days ago | IN | 0 ETH | 0.00245697 | ||||
| Transfer | 6033807 | 2786 days ago | IN | 0 ETH | 0.00141127 | ||||
| Transfer | 6033753 | 2786 days ago | IN | 0 ETH | 0.00005998 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PixieTokenAirdropper
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-26
*/
pragma solidity ^0.4.24;
// File: openzeppelin-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: openzeppelin-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: openzeppelin-solidity/contracts/ownership/HasNoEther.sol
/**
* @title Contracts that should not own Ether
* @author Remco Bloemen <remco@2π.com>
* @dev This tries to block incoming ether to prevent accidental loss of Ether. Should Ether end up
* in the contract, it will allow the owner to reclaim this ether.
* @notice Ether can still be sent to this contract by:
* calling functions labeled `payable`
* `selfdestruct(contract_address)`
* mining directly to the contract address
*/
contract HasNoEther is Ownable {
/**
* @dev Constructor that rejects incoming Ether
* @dev The `payable` flag is added so we can access `msg.value` without compiler warning. If we
* leave out payable, then Solidity will allow inheriting contracts to implement a payable
* constructor. By doing it this way we prevent a payable constructor from working. Alternatively
* we could use assembly to access msg.value.
*/
constructor() public payable {
require(msg.value == 0);
}
/**
* @dev Disallows direct send by settings a default function without the `payable` flag.
*/
function() external {
}
/**
* @dev Transfer all Ether held by the contract to the owner.
*/
function reclaimEther() external onlyOwner {
owner.transfer(address(this).balance);
}
}
// File: openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol
/**
* @title ERC20Basic
* @dev Simpler version of ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/179
*/
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);
}
// File: contracts/pixie/PixieTokenAirdropper.sol
contract PixieTokenAirdropper is Ownable, HasNoEther {
// The token which is already deployed to the network
ERC20Basic public token;
event AirDroppedTokens(uint256 addressCount);
event AirDrop(address indexed receiver, uint256 total);
// After this contract is deployed, we will grant access to this contract
// by calling methods on the token since we are using the same owner
// and granting the distribution of tokens to this contract
constructor(address _token) public payable {
require(_token != address(0), "Must be a non-zero address");
token = ERC20Basic(_token);
}
function transfer(address[] _address, uint256[] _values) onlyOwner public {
require(_address.length == _values.length, "Address array and values array must be same length");
for (uint i = 0; i < _address.length; i += 1) {
_transfer(_address[i], _values[i]);
}
emit AirDroppedTokens(_address.length);
}
function transferSingle(address _address, uint256 _value) onlyOwner public {
_transfer(_address, _value);
emit AirDroppedTokens(1);
}
function _transfer(address _address, uint256 _value) internal {
require(_address != address(0), "Address invalid");
require(_value > 0, "Value invalid");
token.transfer(_address, _value);
emit AirDrop(_address, _value);
}
function remainingBalance() public view returns (uint256) {
return token.balanceOf(address(this));
}
// after we distribute the bonus tokens, we will send them back to the coin itself
function ownerRecoverTokens(address _beneficiary) external onlyOwner {
require(_beneficiary != address(0));
require(_beneficiary != address(token));
uint256 _tokensRemaining = token.balanceOf(address(this));
if (_tokensRemaining > 0) {
token.transfer(_beneficiary, _tokensRemaining);
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"ownerRecoverTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"reclaimEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"remainingBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferSingle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address[]"},{"name":"_values","type":"uint256[]"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addressCount","type":"uint256"}],"name":"AirDroppedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"receiver","type":"address"},{"indexed":false,"name":"total","type":"uint256"}],"name":"AirDrop","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
6080604052604051602080610a20833981016040525160008054600160a060020a03191633179055341561003257600080fd5b600160a060020a03811615156100a957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d7573742062652061206e6f6e2d7a65726f2061646472657373000000000000604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055610948806100d86000396000f3006080604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663715018a681146100a75780638da5cb5b146100be5780639427dfea146100ef5780639f727c2714610110578063da25de3c14610125578063dfc3ed371461014c578063f2fde38b14610170578063fc0c546a14610191578063ffc3a769146101a6575b3480156100a457600080fd5b50005b3480156100b357600080fd5b506100bc610234565b005b3480156100ca57600080fd5b506100d36102a0565b60408051600160a060020a039092168252519081900360200190f35b3480156100fb57600080fd5b506100bc600160a060020a03600435166102af565b34801561011c57600080fd5b506100bc610434565b34801561013157600080fd5b5061013a610489565b60408051918252519081900360200190f35b34801561015857600080fd5b506100bc600160a060020a036004351660243561051f565b34801561017c57600080fd5b506100bc600160a060020a0360043516610578565b34801561019d57600080fd5b506100d3610598565b3480156101b257600080fd5b50604080516020600480358082013583810280860185019096528085526100bc95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506105a79650505050505050565b600054600160a060020a0316331461024b57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b60008054600160a060020a031633146102c757600080fd5b600160a060020a03821615156102dc57600080fd5b600154600160a060020a03838116911614156102f757600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b50519050600081111561043057600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561040357600080fd5b505af1158015610417573d6000803e3d6000fd5b505050506040513d602081101561042d57600080fd5b50505b5050565b600054600160a060020a0316331461044b57600080fd5b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015610486573d6000803e3d6000fd5b50565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b505050506040513d602081101561051857600080fd5b5051905090565b600054600160a060020a0316331461053657600080fd5b61054082826106db565b604080516001815290517fa2a256b95d31e8cbc055315d9e75869394b96e9b6ff78d8f1de8d7123c49deb59181900360200190a15050565b600054600160a060020a0316331461058f57600080fd5b6104868161089f565b600154600160a060020a031681565b60008054600160a060020a031633146105bf57600080fd5b815183511461065557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4164647265737320617272617920616e642076616c756573206172726179206d60448201527f7573742062652073616d65206c656e6774680000000000000000000000000000606482015290519081900360840190fd5b5060005b82518110156106a25761069a838281518110151561067357fe5b90602001906020020151838381518110151561068b57fe5b906020019060200201516106db565b600101610659565b825160408051918252517fa2a256b95d31e8cbc055315d9e75869394b96e9b6ff78d8f1de8d7123c49deb59181900360200190a1505050565b600160a060020a038216151561075257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4164647265737320696e76616c69640000000000000000000000000000000000604482015290519081900360640190fd5b600081116107c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f56616c756520696e76616c696400000000000000000000000000000000000000604482015290519081900360640190fd5b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561083057600080fd5b505af1158015610844573d6000803e3d6000fd5b505050506040513d602081101561085a57600080fd5b5050604080518281529051600160a060020a038416917f2a2f3a6f457f222229acc6b14376a5d3f4344fae935675150a096e2f1056bd98919081900360200190a25050565b600160a060020a03811615156108b457600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058206cb9d58ac5e35103a4bc46a6092fc5d57a2add49dd762d46552a495dfa60ce2d00290000000000000000000000002c61c057c4d599f21d11533d321c1d3e25d16afc
Deployed Bytecode
0x6080604052600436106100985763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663715018a681146100a75780638da5cb5b146100be5780639427dfea146100ef5780639f727c2714610110578063da25de3c14610125578063dfc3ed371461014c578063f2fde38b14610170578063fc0c546a14610191578063ffc3a769146101a6575b3480156100a457600080fd5b50005b3480156100b357600080fd5b506100bc610234565b005b3480156100ca57600080fd5b506100d36102a0565b60408051600160a060020a039092168252519081900360200190f35b3480156100fb57600080fd5b506100bc600160a060020a03600435166102af565b34801561011c57600080fd5b506100bc610434565b34801561013157600080fd5b5061013a610489565b60408051918252519081900360200190f35b34801561015857600080fd5b506100bc600160a060020a036004351660243561051f565b34801561017c57600080fd5b506100bc600160a060020a0360043516610578565b34801561019d57600080fd5b506100d3610598565b3480156101b257600080fd5b50604080516020600480358082013583810280860185019096528085526100bc95369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506105a79650505050505050565b600054600160a060020a0316331461024b57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b60008054600160a060020a031633146102c757600080fd5b600160a060020a03821615156102dc57600080fd5b600154600160a060020a03838116911614156102f757600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b50519050600081111561043057600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561040357600080fd5b505af1158015610417573d6000803e3d6000fd5b505050506040513d602081101561042d57600080fd5b50505b5050565b600054600160a060020a0316331461044b57600080fd5b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015610486573d6000803e3d6000fd5b50565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b505050506040513d602081101561051857600080fd5b5051905090565b600054600160a060020a0316331461053657600080fd5b61054082826106db565b604080516001815290517fa2a256b95d31e8cbc055315d9e75869394b96e9b6ff78d8f1de8d7123c49deb59181900360200190a15050565b600054600160a060020a0316331461058f57600080fd5b6104868161089f565b600154600160a060020a031681565b60008054600160a060020a031633146105bf57600080fd5b815183511461065557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4164647265737320617272617920616e642076616c756573206172726179206d60448201527f7573742062652073616d65206c656e6774680000000000000000000000000000606482015290519081900360840190fd5b5060005b82518110156106a25761069a838281518110151561067357fe5b90602001906020020151838381518110151561068b57fe5b906020019060200201516106db565b600101610659565b825160408051918252517fa2a256b95d31e8cbc055315d9e75869394b96e9b6ff78d8f1de8d7123c49deb59181900360200190a1505050565b600160a060020a038216151561075257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4164647265737320696e76616c69640000000000000000000000000000000000604482015290519081900360640190fd5b600081116107c157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f56616c756520696e76616c696400000000000000000000000000000000000000604482015290519081900360640190fd5b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561083057600080fd5b505af1158015610844573d6000803e3d6000fd5b505050506040513d602081101561085a57600080fd5b5050604080518281529051600160a060020a038416917f2a2f3a6f457f222229acc6b14376a5d3f4344fae935675150a096e2f1056bd98919081900360200190a25050565b600160a060020a03811615156108b457600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058206cb9d58ac5e35103a4bc46a6092fc5d57a2add49dd762d46552a495dfa60ce2d0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002c61c057c4d599f21d11533d321c1d3e25d16afc
-----Decoded View---------------
Arg [0] : _token (address): 0x2C61c057c4d599F21D11533D321C1D3e25d16AFC
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002c61c057c4d599f21d11533d321c1d3e25d16afc
Swarm Source
bzzr://6cb9d58ac5e35103a4bc46a6092fc5d57a2add49dd762d46552a495dfa60ce2d
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.