Contract 0xead5661cb523d145327438f58f3407ad653365ef 1

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x0211d27259af1ab29d6b31e255991e8cbb94eea1eec8e2c5bc43cf75c0b5b4c9Send Tokens96203042021-07-31 3:49:5582 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.00187968
0xb83c88c80b61f957d2d58e1e5932c54e810ea0027d2714dfe062e8d1a30d5e37Send Tokens96203032021-07-31 3:49:5282 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380554
0x96ea926917feef678d8db7d0c2c2f8b3a79d83f4322c669b702c33372e41bb6dSend Tokens96203012021-07-31 3:49:4582 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380578
0x5fa9f7a4e387d9e30024e7e119a45a159915f2c9231e0de1596191d0e496ea1bSend Tokens96203012021-07-31 3:49:4582 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380578
0xdaaa89a482c36cf0ac1b7afea20bbc1fed7590ea08c198c8004193f8d9e9d3e4Send Tokens96202992021-07-31 3:49:3982 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380554
0xc6379986b72aeb256cb368fcfce835fe762c42db16a111a68aad3fedf4927092Send Tokens96202992021-07-31 3:49:3982 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380554
0xf4fff6f628727b04359f2329ad272234105fc513047c715f127418bd0abf8468Send Tokens96202992021-07-31 3:49:3982 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380602
0x2f9f34f84aedaea63071183121b7e975652987959a036f067361429b196418fdSend Tokens96202972021-07-31 3:49:3082 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380554
0xe48193213593b3e5c1f5754af2abee9da811c3f5872f07ef05d4f09266cc5365Send Tokens96202962021-07-31 3:49:2782 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380554
0x5ee418921bf31d060c56e5cfa65830a4788ad30bacd3e2160ab97fcbe0678aa8Send Tokens96202952021-07-31 3:49:2482 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380602
0xe55dc0bf2a8b2ebb913ff9f8c941dcf7640a5091e8ca09bf49d99949a2777482Send Tokens96202942021-07-31 3:49:2182 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380578
0xb50835732824ea20134f7fe975f9f3056a98f684af9c3091c42626d053f838abSend Tokens96202942021-07-31 3:49:2182 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380578
0x8974f088fe0f0da7c678c500dda6a2523577a534a806b8f5a43168c4c6b9aca3Send Tokens96202932021-07-31 3:49:1882 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380554
0x63cf7bf2fcecfea27d6be05806a25000d1786ab544279bd1689cc940d3c034d2Send Tokens96202922021-07-31 3:49:1482 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380602
0x0502d203aff67f25b27474510ca00fd28037fd499478a64850c4ba514b310b89Send Tokens96202912021-07-31 3:49:1182 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380602
0xbfc24896ef23531b099f0ec89bfb2f5e9c10e46e64d1fafed2237acd53946a66Send Tokens96202902021-07-31 3:49:0882 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380602
0x623f36dc83a64e3ee1c05ba250b2ae5d99d9308491d47dcf1193e2d1a945242aSend Tokens96202892021-07-31 3:49:0582 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380578
0x68a2ec5a8988240933de6edc6ea90280f9164568b2f4556e42f714a7102c3fd8Send Tokens96202882021-07-31 3:49:0282 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380602
0xb565aa4659b6cc4792b2c3ca089fe6ecbbf4c7fd89da77e1fb626b0a44e0901aSend Tokens96202882021-07-31 3:49:0282 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.0138053
0x3682f82ac8d3e62be262e320c0cbe10c67c8c462b96723491bc67d9597b5d8b2Send Tokens96202862021-07-31 3:48:5682 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380578
0x9a04329c0322db6b5900bf0e675e71ae610b9f2c9d5d1e37c16eb8f24663a436Send Tokens96202862021-07-31 3:48:5682 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.0138053
0xa10840443659d7c48e14d6b0f7ffc18c2996624eed63d410bb2f253f7087004bSend Tokens96202852021-07-31 3:48:5382 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380554
0xfa8a37dd099128cd3f3422673454ed84f788907070208c843927b904a9448f4fSend Tokens96202842021-07-31 3:48:5082 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380602
0x3b56c287082bbbb35f6669c96f0caaa74adae1e835c53e249dc3563a66c1f041Send Tokens96202822021-07-31 3:48:4482 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380602
0x5954716319cf908b45744edb259943ad1102b10641011d70942380d78182da66Send Tokens96202812021-07-31 3:48:4182 days 23 hrs ago0x9130fc4334921f418fbbaf87d37a57e786ee75d2 IN  0xead5661cb523d145327438f58f3407ad653365ef0 BNB0.01380602
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DoubleMoonAirdrop

Compiler Version
v0.7.3+commit.9bfce1f6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 4 : DoubleMoonAirdrop.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.7.0;

import "@openzeppelin/contracts/utils/Context.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract DoubleMoonAirdrop is Context, Ownable {

    address public tokenAddr;

    constructor(address _tokenAddr) {
        tokenAddr = _tokenAddr;
    }

    function sendTokens(address[] memory _recipients, uint256[] memory _amount) public onlyOwner returns (bool) {
        require(_recipients.length == _amount.length);

        for (uint i = 0; i < _recipients.length; i++) {
            require(_recipients[i] != address(0));
            require(IERC20(tokenAddr).transfer(_recipients[i], _amount[i]));
        }
        return true;
    }

    function updateTokenAddress(address newTokenAddr) public onlyOwner {
        tokenAddr = newTokenAddr;
    }

    function tokensAvailable() public view returns (uint256) {
        return IERC20(tokenAddr).balanceOf(address(this));
    }

    function withdrawTokens(address beneficiary) public onlyOwner {
        uint256 balance = tokensAvailable();
        require (balance > 0, "Balance is zero");
        require(IERC20(tokenAddr).transfer(beneficiary, balance));
    }
}

File 2 of 4 : Context.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

File 3 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

import "../utils/Context.sol";
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 4 of 4 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_recipients","type":"address[]"},{"internalType":"uint256[]","name":"_amount","type":"uint256[]"}],"name":"sendTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensAvailable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTokenAddr","type":"address"}],"name":"updateTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiary","type":"address"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506040516109583803806109588339818101604052602081101561003357600080fd5b5051600061003f6100ae565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b03929092169190911790556100b2565b3390565b610897806100c16000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063715018a61161005b578063715018a6146101195780638da5cb5b14610121578063d8b66ae114610129578063f2fde38b1461026457610088565b806349df728c1461008d5780635fbe4d1d146100b557806360659a92146100d95780636691461a146100f3575b600080fd5b6100b3600480360360208110156100a357600080fd5b50356001600160a01b031661028a565b005b6100bd6103ce565b604080516001600160a01b039092168252519081900360200190f35b6100e16103dd565b60408051918252519081900360200190f35b6100b36004803603602081101561010957600080fd5b50356001600160a01b0316610459565b6100b36104dd565b6100bd610589565b6102506004803603604081101561013f57600080fd5b81019060208101813564010000000081111561015a57600080fd5b82018360208201111561016c57600080fd5b8035906020019184602083028401116401000000008311171561018e57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156101de57600080fd5b8201836020820111156101f057600080fd5b8035906020019184602083028401116401000000008311171561021257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610598945050505050565b604080519115158252519081900360200190f35b6100b36004803603602081101561027a57600080fd5b50356001600160a01b0316610715565b610292610817565b6001600160a01b03166102a3610589565b6001600160a01b0316146102ec576040805162461bcd60e51b81526020600482018190526024820152600080516020610842833981519152604482015290519081900360640190fd5b60006102f66103dd565b90506000811161033f576040805162461bcd60e51b815260206004820152600f60248201526e42616c616e6365206973207a65726f60881b604482015290519081900360640190fd5b6001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b505050506040513d60208110156103bf57600080fd5b50516103ca57600080fd5b5050565b6001546001600160a01b031681565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561042857600080fd5b505afa15801561043c573d6000803e3d6000fd5b505050506040513d602081101561045257600080fd5b5051905090565b610461610817565b6001600160a01b0316610472610589565b6001600160a01b0316146104bb576040805162461bcd60e51b81526020600482018190526024820152600080516020610842833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6104e5610817565b6001600160a01b03166104f6610589565b6001600160a01b03161461053f576040805162461bcd60e51b81526020600482018190526024820152600080516020610842833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b60006105a2610817565b6001600160a01b03166105b3610589565b6001600160a01b0316146105fc576040805162461bcd60e51b81526020600482018190526024820152600080516020610842833981519152604482015290519081900360640190fd5b815183511461060a57600080fd5b60005b835181101561070b5760006001600160a01b031684828151811061062d57fe5b60200260200101516001600160a01b0316141561064957600080fd5b60015484516001600160a01b039091169063a9059cbb9086908490811061066c57fe5b602002602001015185848151811061068057fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156106ce57600080fd5b505af11580156106e2573d6000803e3d6000fd5b505050506040513d60208110156106f857600080fd5b505161070357600080fd5b60010161060d565b5060019392505050565b61071d610817565b6001600160a01b031661072e610589565b6001600160a01b031614610777576040805162461bcd60e51b81526020600482018190526024820152600080516020610842833981519152604482015290519081900360640190fd5b6001600160a01b0381166107bc5760405162461bcd60e51b815260040180806020018281038252602681526020018061081c6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220d627ce13fee20defb61ad86c8194d688a7c9094d83e971cc338181b05295026264736f6c634300070300330000000000000000000000000314e5a39806c30d67b869ee1bcdabee7e08de74

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000314e5a39806c30d67b869ee1bcdabee7e08de74

-----Decoded View---------------
Arg [0] : _tokenAddr (address): 0x0314e5a39806c30d67b869ee1bcdabee7e08de74

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000314e5a39806c30d67b869ee1bcdabee7e08de74


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.