More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 10,100 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Airdrop | 7311977 | 2143 days ago | IN | 0.00017 ETH | 0.00053266 | ||||
Airdrop | 7059831 | 2195 days ago | IN | 0 ETH | 0.0001615 | ||||
Airdrop | 7020196 | 2202 days ago | IN | 0 ETH | 0.00002685 | ||||
Airdrop | 7011686 | 2203 days ago | IN | 0 ETH | 0.00002685 | ||||
Airdrop | 7010633 | 2203 days ago | IN | 0 ETH | 0.00002691 | ||||
Airdrop | 7007016 | 2204 days ago | IN | 0 ETH | 0.00002685 | ||||
Airdrop | 7005044 | 2204 days ago | IN | 0 ETH | 0.00002691 | ||||
Airdrop | 7004868 | 2204 days ago | IN | 0 ETH | 0.00002691 | ||||
Airdrop | 7004672 | 2204 days ago | IN | 0 ETH | 0.00002691 | ||||
Airdrop | 7004633 | 2204 days ago | IN | 0 ETH | 0.00002691 | ||||
Airdrop | 7004528 | 2204 days ago | IN | 0 ETH | 0.00002685 | ||||
Airdrop | 6971514 | 2210 days ago | IN | 0 ETH | 0.00002691 | ||||
Airdrop | 6644790 | 2264 days ago | IN | 0 ETH | 0.00002691 | ||||
Airdrop | 6630913 | 2266 days ago | IN | 0 ETH | 0.00002691 | ||||
Airdrop | 6594719 | 2272 days ago | IN | 0 ETH | 0.00002691 | ||||
Airdrop | 6579725 | 2275 days ago | IN | 0 ETH | 0.00002691 | ||||
Transfer | 6569572 | 2277 days ago | IN | 0 ETH | 0.00012627 | ||||
Airdrop | 6564919 | 2277 days ago | IN | 0 ETH | 0.00010766 | ||||
Airdrop | 6564916 | 2277 days ago | IN | 0 ETH | 0.00002685 | ||||
Transfer | 6564207 | 2277 days ago | IN | 0 ETH | 0.00008418 | ||||
Transfer | 6564195 | 2277 days ago | IN | 0 ETH | 0.00008418 | ||||
Lock | 6563048 | 2278 days ago | IN | 0 ETH | 0.00016887 | ||||
Airdrop | 6562513 | 2278 days ago | IN | 0 ETH | 0.00110758 | ||||
Airdrop | 6562488 | 2278 days ago | IN | 0 ETH | 0.00110682 | ||||
Airdrop | 6561871 | 2278 days ago | IN | 0 ETH | 0.00030919 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BITOXAirdrop
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 500 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-09-26 */ pragma solidity 0.4.24; // File: contracts/commons/SafeMath.sol /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a / b; return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } // File: contracts/flavours/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 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 transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } // File: contracts/flavours/Lockable.sol /** * @title Lockable * @dev Base contract which allows children to * implement main operations locking mechanism. */ contract Lockable is Ownable { event Lock(); event Unlock(); bool public locked = false; /** * @dev Modifier to make a function callable * only when the contract is not locked. */ modifier whenNotLocked() { require(!locked); _; } /** * @dev Modifier to make a function callable * only when the contract is locked. */ modifier whenLocked() { require(locked); _; } /** * @dev called by the owner to lock, triggers locked state */ function lock() public onlyOwner whenNotLocked { locked = true; emit Lock(); } /** * @dev called by the owner * to unlock, returns to unlocked state */ function unlock() public onlyOwner whenLocked { locked = false; emit Unlock(); } } // File: contracts/base/ERC20Token.sol interface ERC20Token { function transferFrom(address from_, address to_, uint value_) external returns (bool); function transfer(address to_, uint value_) external returns (bool); function balanceOf(address owner_) external returns (uint); } // File: contracts/base/BaseAirdrop.sol contract BaseAirdrop is Lockable { using SafeMath for uint; ERC20Token public token; address public tokenHolder; mapping(address => bool) public users; event AirdropToken(address indexed to, uint amount); constructor(address _token, address _tokenHolder) public { require(_token != address(0) && _tokenHolder != address(0)); token = ERC20Token(_token); tokenHolder = _tokenHolder; } function airdrop(uint8 v, bytes32 r, bytes32 s, uint amount) public whenNotLocked { if (users[msg.sender] || ecrecover(prefixedHash(amount), v, r, s) != owner) { revert(); } users[msg.sender] = true; token.transferFrom(tokenHolder, msg.sender, amount); emit AirdropToken(msg.sender, amount); } function getAirdropStatus(address user) public constant returns (bool success) { return users[user]; } function originalHash(uint amount) internal view returns (bytes32) { return keccak256(abi.encodePacked( "Signed for Airdrop", address(this), address(token), msg.sender, amount )); } function prefixedHash(uint amount) internal view returns (bytes32) { bytes memory prefix = "\x19Ethereum Signed Message:\n32"; return keccak256(abi.encodePacked(prefix, originalHash(amount))); } } // File: contracts/BITOXAirdrop.sol /** * @title BITOX token airdrop contract. */ contract BITOXAirdrop is BaseAirdrop { constructor(address _token, address _tokenHolder) public BaseAirdrop(_token, _tokenHolder) { locked = true; } // Disable direct payments function() external payable { revert(); } // withdraw funds only for owner function withdraw() public onlyOwner { owner.transfer(address(this).balance); } // withdraw stuck tokens only for owner function withdrawTokens(address _someToken) public onlyOwner { ERC20Token someToken = ERC20Token(_someToken); uint balance = someToken.balanceOf(this); someToken.transfer(owner, balance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenHolder","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_someToken","type":"address"}],"name":"withdrawTokens","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":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"users","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"},{"name":"amount","type":"uint256"}],"name":"airdrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"locked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"getAirdropStatus","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"lock","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"},{"name":"_tokenHolder","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"AirdropToken","type":"event"},{"anonymous":false,"inputs":[],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60806040526000805460a060020a60ff021916905534801561002057600080fd5b50604051604080610abe83398101604052805160209091015160008054600160a060020a031916331790558181600160a060020a0382161580159061006d5750600160a060020a03811615155b151561007857600080fd5b60018054600160a060020a03938416600160a060020a0319918216179091556002805492909316911617905550506000805460a060020a60ff021916740100000000000000000000000000000000000000001790556109e2806100dc6000396000f3006080604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633ccfd60b81146100be578063420a83e7146100d557806349df728c146101065780638da5cb5b14610127578063a69df4b51461013c578063a87430ba14610151578063caf91b3014610186578063cf309012146101aa578063eed7eaea146101bf578063f2fde38b146101e0578063f83d08ba14610201578063fc0c546a14610216575b600080fd5b3480156100ca57600080fd5b506100d361022b565b005b3480156100e157600080fd5b506100ea610280565b60408051600160a060020a039092168252519081900360200190f35b34801561011257600080fd5b506100d3600160a060020a036004351661028f565b34801561013357600080fd5b506100ea6103de565b34801561014857600080fd5b506100d36103ed565b34801561015d57600080fd5b50610172600160a060020a0360043516610474565b604080519115158252519081900360200190f35b34801561019257600080fd5b506100d360ff60043516602435604435606435610489565b3480156101b657600080fd5b50610172610650565b3480156101cb57600080fd5b50610172600160a060020a0360043516610671565b3480156101ec57600080fd5b506100d3600160a060020a036004351661068f565b34801561020d57600080fd5b506100d3610723565b34801561022257600080fd5b506100ea6107c0565b600054600160a060020a0316331461024257600080fd5b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f1935050505015801561027d573d6000803e3d6000fd5b50565b600254600160a060020a031681565b600080548190600160a060020a031633146102a957600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561030d57600080fd5b505af1158015610321573d6000803e3d6000fd5b505050506040513d602081101561033757600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b1580156103ad57600080fd5b505af11580156103c1573d6000803e3d6000fd5b505050506040513d60208110156103d757600080fd5b5050505050565b600054600160a060020a031681565b600054600160a060020a0316331461040457600080fd5b60005474010000000000000000000000000000000000000000900460ff16151561042d57600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f70e3fffea7bbb557facdee48ed7f7af5179030adef9ad0c876df039a718f359e9190a1565b60036020526000908152604090205460ff1681565b60005474010000000000000000000000000000000000000000900460ff16156104b157600080fd5b3360009081526003602052604090205460ff168061054d5750600054600160a060020a031660016104e1836107cf565b60408051600080825260208083018085529490945260ff8a16828401526060820189905260808201889052915160a08083019493601f198301938390039091019190865af1158015610537573d6000803e3d6000fd5b50505060206040510351600160a060020a031614155b1561055757600080fd5b336000818152600360209081526040808320805460ff191660019081179091555460025482517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03918216600482015260248101969096526044860187905291519116936323b872dd9360648083019493928390030190829087803b1580156105e857600080fd5b505af11580156105fc573d6000803e3d6000fd5b505050506040513d602081101561061257600080fd5b505060408051828152905133917fb6b09d42fae5c5eedc2e2b4c72342ea7f76d69f00732b2183cf65d40b5afaeb3919081900360200190a250505050565b60005474010000000000000000000000000000000000000000900460ff1681565b600160a060020a031660009081526003602052604090205460ff1690565b600054600160a060020a031633146106a657600080fd5b600160a060020a03811615156106bb57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461073a57600080fd5b60005474010000000000000000000000000000000000000000900460ff161561076257600080fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001781556040517f46620e39f4e119bf05f13544f8ef38338fc06c17f6b731c7f95bee356572db969190a1565b600154600160a060020a031681565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a333200000000602082015260009080610810846108d5565b6040516020018083805190602001908083835b602083106108425780518252601f199092019160209182019101610823565b51815160209384036101000a600019018019909216911617905292019384525060408051808503815293820190819052835193945092839250908401908083835b602083106108a25780518252601f199092019160209182019101610883565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209695505050505050565b600154604080517f5369676e656420666f722041697264726f7000000000000000000000000000006020808301919091526c010000000000000000000000003081026032840152600160a060020a03909416840260468301523393909302605a820152606e80820185905282518083039091018152608e9091019182905280516000939192918291908401908083835b602083106109845780518252601f199092019160209182019101610965565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120959450505050505600a165627a7a7230582039f99304fcee6a180ec49f6af953b6e7605656f91bb1305796681f57adbfffa10029000000000000000000000000bdda280ee7bccc68f3be60a369b6b1eaee02493c000000000000000000000000521aff68ac6f05f36ae75fc786eec3b310baf68b
Deployed Bytecode
0x6080604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633ccfd60b81146100be578063420a83e7146100d557806349df728c146101065780638da5cb5b14610127578063a69df4b51461013c578063a87430ba14610151578063caf91b3014610186578063cf309012146101aa578063eed7eaea146101bf578063f2fde38b146101e0578063f83d08ba14610201578063fc0c546a14610216575b600080fd5b3480156100ca57600080fd5b506100d361022b565b005b3480156100e157600080fd5b506100ea610280565b60408051600160a060020a039092168252519081900360200190f35b34801561011257600080fd5b506100d3600160a060020a036004351661028f565b34801561013357600080fd5b506100ea6103de565b34801561014857600080fd5b506100d36103ed565b34801561015d57600080fd5b50610172600160a060020a0360043516610474565b604080519115158252519081900360200190f35b34801561019257600080fd5b506100d360ff60043516602435604435606435610489565b3480156101b657600080fd5b50610172610650565b3480156101cb57600080fd5b50610172600160a060020a0360043516610671565b3480156101ec57600080fd5b506100d3600160a060020a036004351661068f565b34801561020d57600080fd5b506100d3610723565b34801561022257600080fd5b506100ea6107c0565b600054600160a060020a0316331461024257600080fd5b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f1935050505015801561027d573d6000803e3d6000fd5b50565b600254600160a060020a031681565b600080548190600160a060020a031633146102a957600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051849350600160a060020a038416916370a082319160248083019260209291908290030181600087803b15801561030d57600080fd5b505af1158015610321573d6000803e3d6000fd5b505050506040513d602081101561033757600080fd5b505160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810185905290519394509085169263a9059cbb92604480840193602093929083900390910190829087803b1580156103ad57600080fd5b505af11580156103c1573d6000803e3d6000fd5b505050506040513d60208110156103d757600080fd5b5050505050565b600054600160a060020a031681565b600054600160a060020a0316331461040457600080fd5b60005474010000000000000000000000000000000000000000900460ff16151561042d57600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f70e3fffea7bbb557facdee48ed7f7af5179030adef9ad0c876df039a718f359e9190a1565b60036020526000908152604090205460ff1681565b60005474010000000000000000000000000000000000000000900460ff16156104b157600080fd5b3360009081526003602052604090205460ff168061054d5750600054600160a060020a031660016104e1836107cf565b60408051600080825260208083018085529490945260ff8a16828401526060820189905260808201889052915160a08083019493601f198301938390039091019190865af1158015610537573d6000803e3d6000fd5b50505060206040510351600160a060020a031614155b1561055757600080fd5b336000818152600360209081526040808320805460ff191660019081179091555460025482517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03918216600482015260248101969096526044860187905291519116936323b872dd9360648083019493928390030190829087803b1580156105e857600080fd5b505af11580156105fc573d6000803e3d6000fd5b505050506040513d602081101561061257600080fd5b505060408051828152905133917fb6b09d42fae5c5eedc2e2b4c72342ea7f76d69f00732b2183cf65d40b5afaeb3919081900360200190a250505050565b60005474010000000000000000000000000000000000000000900460ff1681565b600160a060020a031660009081526003602052604090205460ff1690565b600054600160a060020a031633146106a657600080fd5b600160a060020a03811615156106bb57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461073a57600080fd5b60005474010000000000000000000000000000000000000000900460ff161561076257600080fd5b6000805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001781556040517f46620e39f4e119bf05f13544f8ef38338fc06c17f6b731c7f95bee356572db969190a1565b600154600160a060020a031681565b60408051808201909152601c81527f19457468657265756d205369676e6564204d6573736167653a0a333200000000602082015260009080610810846108d5565b6040516020018083805190602001908083835b602083106108425780518252601f199092019160209182019101610823565b51815160209384036101000a600019018019909216911617905292019384525060408051808503815293820190819052835193945092839250908401908083835b602083106108a25780518252601f199092019160209182019101610883565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209695505050505050565b600154604080517f5369676e656420666f722041697264726f7000000000000000000000000000006020808301919091526c010000000000000000000000003081026032840152600160a060020a03909416840260468301523393909302605a820152606e80820185905282518083039091018152608e9091019182905280516000939192918291908401908083835b602083106109845780518252601f199092019160209182019101610965565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120959450505050505600a165627a7a7230582039f99304fcee6a180ec49f6af953b6e7605656f91bb1305796681f57adbfffa10029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bdda280ee7bccc68f3be60a369b6b1eaee02493c000000000000000000000000521aff68ac6f05f36ae75fc786eec3b310baf68b
-----Decoded View---------------
Arg [0] : _token (address): 0xbDda280Ee7bcCC68F3be60a369b6B1eAee02493C
Arg [1] : _tokenHolder (address): 0x521aFF68aC6F05f36ae75Fc786eeC3B310BaF68B
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000bdda280ee7bccc68f3be60a369b6b1eaee02493c
Arg [1] : 000000000000000000000000521aff68ac6f05f36ae75fc786eec3b310baf68b
Swarm Source
bzzr://39f99304fcee6a180ec49f6af953b6e7605656f91bb1305796681f57adbfffa1
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.