Transactions
Token Transfers
Internal Transactions
Coin Balance History
Code
Read Contract
Write Contract
- Contract name:
- Airdrop
- Optimization enabled
- true
- Compiler version
- v0.7.0+commit.9e61f92b
- Optimization runs
- 200
- EVM Version
- default
- Verified at
- 2021-12-22T16:34:08.816562Z
Contract source code
// SPDX-License-Identifier: Unlicensed
pragma solidity 0.7.0;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract Airdrop {
address public owner;
address public _tokenAddress = 0xaE103F90c038b479A24DaE8d10439e964329407C;
uint256 tokens = 10000;
uint256 decimals = 9;
constructor() {
owner = msg.sender;
}
function multisend(address[] memory _to) public returns (bool _success) {
require(msg.sender == owner, "only the owner can send airdrop");
require(_to.length > 0);
for (uint8 i = 0; i < _to.length; i++) {
require((IERC20(_tokenAddress).transfer(_to[i], tokens * 10 ** decimals)) == true);
}
return true;
}
function setTokenAddress(address _address) public {
require(msg.sender == owner, "only the owner can set address");
_tokenAddress = _address;
}
function setAmount(uint256 amount) public {
require(msg.sender == owner, "only the owner can set address");
tokens = amount;
}
function setDecimal(uint256 dec) public {
require(msg.sender == owner, "only the owner can set address");
decimals = dec;
}
function withdrawTokens(address _tokenAddr) public {
require(msg.sender == owner, "only the owner can remove");
require(IERC20(_tokenAddr).balanceOf(address(this)) > 0, "can not withdraw 0 or negative");
require((IERC20(_tokenAddr).transfer(owner, IERC20(_tokenAddr).balanceOf(address(this))) ) == true);
}
}
Contract ABI
[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"_tokenAddress","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"_success","internalType":"bool"}],"name":"multisend","inputs":[{"type":"address[]","name":"_to","internalType":"address[]"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setAmount","inputs":[{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setDecimal","inputs":[{"type":"uint256","name":"dec","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setTokenAddress","inputs":[{"type":"address","name":"_address","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"withdrawTokens","inputs":[{"type":"address","name":"_tokenAddr","internalType":"address"}]}]
Deployed ByteCode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80634d2e1b7f1161005b5780634d2e1b7f146100ed578063543fcf03146101a45780638da5cb5b146101c8578063eb909bbc146101d05761007d565b806326a4e8d214610082578063271f88b4146100aa57806349df728c146100c7575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b03166101ed565b005b6100a8600480360360208110156100c057600080fd5b503561026e565b6100a8600480360360208110156100dd57600080fd5b50356001600160a01b03166102d2565b6101906004803603602081101561010357600080fd5b81019060208101813564010000000081111561011e57600080fd5b82018360208201111561013057600080fd5b8035906020019184602083028401116401000000008311171561015257600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061050b945050505050565b604080519115158252519081900360200190f35b6101ac610651565b604080516001600160a01b039092168252519081900360200190f35b6101ac610660565b6100a8600480360360208110156101e657600080fd5b503561066f565b6000546001600160a01b0316331461024c576040805162461bcd60e51b815260206004820152601e60248201527f6f6e6c7920746865206f776e65722063616e2073657420616464726573730000604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146102cd576040805162461bcd60e51b815260206004820152601e60248201527f6f6e6c7920746865206f776e65722063616e2073657420616464726573730000604482015290519081900360640190fd5b600255565b6000546001600160a01b03163314610331576040805162461bcd60e51b815260206004820152601960248201527f6f6e6c7920746865206f776e65722063616e2072656d6f766500000000000000604482015290519081900360640190fd5b6000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561038057600080fd5b505afa158015610394573d6000803e3d6000fd5b505050506040513d60208110156103aa57600080fd5b5051116103fe576040805162461bcd60e51b815260206004820152601e60248201527f63616e206e6f742077697468647261772030206f72206e656761746976650000604482015290519081900360640190fd5b600054604080516370a0823160e01b815230600482015290516001600160a01b038085169363a9059cbb9391169184916370a08231916024808301926020929190829003018186803b15801561045357600080fd5b505afa158015610467573d6000803e3d6000fd5b505050506040513d602081101561047d57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156104ce57600080fd5b505af11580156104e2573d6000803e3d6000fd5b505050506040513d60208110156104f857600080fd5b5051151560011461050857600080fd5b50565b600080546001600160a01b0316331461056b576040805162461bcd60e51b815260206004820152601f60248201527f6f6e6c7920746865206f776e65722063616e2073656e642061697264726f7000604482015290519081900360640190fd5b600082511161057957600080fd5b60005b82518160ff1610156106485760015483516001600160a01b039091169063a9059cbb90859060ff85169081106105ae57fe5b6020026020010151600354600a0a600254026040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561060657600080fd5b505af115801561061a573d6000803e3d6000fd5b505050506040513d602081101561063057600080fd5b5051151560011461064057600080fd5b60010161057c565b50600192915050565b6001546001600160a01b031681565b6000546001600160a01b031681565b6000546001600160a01b031633146106ce576040805162461bcd60e51b815260206004820152601e60248201527f6f6e6c7920746865206f776e65722063616e2073657420616464726573730000604482015290519081900360640190fd5b60035556fea264697066735822122072e2e7ac666d552580df99a58dd7f0c4ac18b078c87577f6f9f9a93bbf9bdf8864736f6c63430007000033