ETH Price: $3,385.11 (-1.80%)
Gas: 4 Gwei

Contract

0x7Db19012B3D97F86c69Bc275a717b006D8B2ebFE
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Last Txn Sent

No transactions sent

First Txn Sent

No transactions sent

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Close58965592018-07-03 5:23:562191 days ago1530595436IN
0x7Db19012...6D8B2ebFE
0 ETH0.0023196699
Transfer Ownersh...58958412018-07-03 2:23:462192 days ago1530584626IN
0x7Db19012...6D8B2ebFE
0 ETH0.0012237640
Release Many58951992018-07-02 23:45:342192 days ago1530575134IN
0x7Db19012...6D8B2ebFE
0 ETH0.0223938420
Release Many58278522018-06-21 10:17:502203 days ago1529576270IN
0x7Db19012...6D8B2ebFE
0 ETH0.0108956410
Release Many58278502018-06-21 10:17:262203 days ago1529576246IN
0x7Db19012...6D8B2ebFE
0 ETH0.0113462810
Release Many58278332018-06-21 10:12:042203 days ago1529575924IN
0x7Db19012...6D8B2ebFE
0 ETH0.008837028
Release Many58278302018-06-21 10:10:302203 days ago1529575830IN
0x7Db19012...6D8B2ebFE
0 ETH0.009078048
Release Many58278282018-06-21 10:10:112203 days ago1529575811IN
0x7Db19012...6D8B2ebFE
0 ETH0.008837028
Release Many58278242018-06-21 10:09:392203 days ago1529575779IN
0x7Db19012...6D8B2ebFE
0 ETH0.008716518
Release Many58278202018-06-21 10:08:292203 days ago1529575709IN
0x7Db19012...6D8B2ebFE
0 ETH0.008717538
Release Many58278162018-06-21 10:07:592203 days ago1529575679IN
0x7Db19012...6D8B2ebFE
0 ETH0.008957538
Release Many58278142018-06-21 10:07:002203 days ago1529575620IN
0x7Db19012...6D8B2ebFE
0 ETH0.008958048
Release Many58278112018-06-21 10:06:432203 days ago1529575603IN
0x7Db19012...6D8B2ebFE
0 ETH0.008838048
Release Many58278082018-06-21 10:06:212203 days ago1529575581IN
0x7Db19012...6D8B2ebFE
0 ETH0.008958048
Release Many58278062018-06-21 10:05:492203 days ago1529575549IN
0x7Db19012...6D8B2ebFE
0 ETH0.009197028
Release Many58278042018-06-21 10:05:292203 days ago1529575529IN
0x7Db19012...6D8B2ebFE
0 ETH0.008957028
Release Many58277972018-06-21 10:03:522203 days ago1529575432IN
0x7Db19012...6D8B2ebFE
0 ETH0.008957538
Release Many58277952018-06-21 10:03:112203 days ago1529575391IN
0x7Db19012...6D8B2ebFE
0 ETH0.008837028
Release Many58277932018-06-21 10:02:422203 days ago1529575362IN
0x7Db19012...6D8B2ebFE
0 ETH0.009077028
Release Many58277902018-06-21 10:01:342203 days ago1529575294IN
0x7Db19012...6D8B2ebFE
0 ETH0.008597538
Release Many58277872018-06-21 10:01:182203 days ago1529575278IN
0x7Db19012...6D8B2ebFE
0 ETH0.009078048
Release Many58277832018-06-21 10:00:142203 days ago1529575214IN
0x7Db19012...6D8B2ebFE
0 ETH0.009078048
Release Many58277802018-06-21 9:59:392203 days ago1529575179IN
0x7Db19012...6D8B2ebFE
0 ETH0.008838048
Release Many58277782018-06-21 9:58:432203 days ago1529575123IN
0x7Db19012...6D8B2ebFE
0 ETH0.0089568
Release Many58277752018-06-21 9:58:222203 days ago1529575102IN
0x7Db19012...6D8B2ebFE
0 ETH0.009078048
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To Value
58965592018-07-03 5:23:562191 days ago1530595436
0x7Db19012...6D8B2ebFE
0 ETH
Loading...
Loading
Contract Self Destruct called at Txn Hash 0x73a2d2c84f9eb1d3bb1627de87154214414770caca32345ae41e477dbfc3a948


Contract Source Code Verified (Exact Match)

Contract Name:
Distribute

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-06-21
*/

pragma solidity ^0.4.24;

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.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  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;
  }
}

contract Distribute is Ownable {
    using SafeERC20 for ERC20;

    event TokenReleased(address indexed buyer, uint256 amount);

    ERC20 public Token;
    mapping (address => bool) released;

    constructor(address token) public {
        require(token != address(0));
        Token = ERC20(token);
    }

    function release(address beneficiary, uint256 amount)
        public
        onlyOwner
    {
        require(!released[beneficiary]);
        Token.safeTransfer(beneficiary, amount);
        released[beneficiary] = true;
        emit TokenReleased(beneficiary, amount);
    }

    function releaseMany(address[] beneficiaries, uint256[] amounts)
        external
        onlyOwner
    {
        require(beneficiaries.length == amounts.length);
        for (uint256 i = 0; i < beneficiaries.length; i++) {
            release(beneficiaries[i], amounts[i]);
        }
    }

    function withdraw()
        public
        onlyOwner
    {
        Token.safeTransfer(owner, Token.balanceOf(address(this)));
    }

    function close()
        external
        onlyOwner
    {
        withdraw();
        selfdestruct(owner);
    }
}

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);
}

contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender)
    public view returns (uint256);

  function transferFrom(address from, address to, uint256 value)
    public returns (bool);

  function approve(address spender, uint256 value) public returns (bool);
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}

library SafeERC20 {
  function safeTransfer(ERC20Basic token, address to, uint256 value) internal {
    require(token.transfer(to, value));
  }

  function safeTransferFrom(
    ERC20 token,
    address from,
    address to,
    uint256 value
  )
    internal
  {
    require(token.transferFrom(from, to, value));
  }

  function safeApprove(ERC20 token, address spender, uint256 value) internal {
    require(token.approve(spender, value));
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"amount","type":"uint256"}],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"beneficiaries","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"releaseMany","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"close","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"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":true,"inputs":[],"name":"Token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenReleased","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"}]

608060405234801561001057600080fd5b5060405160208061063c833981016040525160008054600160a060020a03191633179055600160a060020a038116151561004957600080fd5b60018054600160a060020a031916600160a060020a03929092169190911790556105c4806100786000396000f30060806040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630357371d81146100925780632d56d572146100b85780633ccfd60b146100e457806343d726d6146100f9578063715018a61461010e5780638da5cb5b14610123578063c241267614610154578063f2fde38b14610169575b600080fd5b34801561009e57600080fd5b506100b6600160a060020a036004351660243561018a565b005b3480156100c457600080fd5b506100b66024600480358281019290820135918135918201910135610240565b3480156100f057600080fd5b506100b66102b8565b34801561010557600080fd5b506100b6610389565b34801561011a57600080fd5b506100b66103b6565b34801561012f57600080fd5b50610138610422565b60408051600160a060020a039092168252519081900360200190f35b34801561016057600080fd5b50610138610431565b34801561017557600080fd5b506100b6600160a060020a0360043516610440565b600054600160a060020a031633146101a157600080fd5b600160a060020a03821660009081526002602052604090205460ff16156101c757600080fd5b6001546101e490600160a060020a0316838363ffffffff61046316565b600160a060020a038216600081815260026020908152604091829020805460ff19166001179055815184815291517f9cf9e3ab58b33f06d81842ea0ad850b6640c6430d6396973312e1715792e7a919281900390910190a25050565b60008054600160a060020a0316331461025857600080fd5b83821461026457600080fd5b5060005b838110156102b1576102a985858381811061027f57fe5b90506020020135600160a060020a0316848484818110151561029d57fe5b9050602002013561018a565b600101610268565b5050505050565b600054600160a060020a031633146102cf57600080fd5b60008054600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905161038794600160a060020a0394851694909316926370a0823192602480820193602093909283900390910190829087803b15801561034257600080fd5b505af1158015610356573d6000803e3d6000fd5b505050506040513d602081101561036c57600080fd5b5051600154600160a060020a0316919063ffffffff61046316565b565b600054600160a060020a031633146103a057600080fd5b6103a86102b8565b600054600160a060020a0316ff5b600054600160a060020a031633146103cd57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600154600160a060020a031681565b600054600160a060020a0316331461045757600080fd5b6104608161051b565b50565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156104df57600080fd5b505af11580156104f3573d6000803e3d6000fd5b505050506040513d602081101561050957600080fd5b5051151561051657600080fd5b505050565b600160a060020a038116151561053057600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058200a9ec919055a8f984f35540e8dfeca086d1005ca415f7514485955299dd956ed0029000000000000000000000000f8b358b3397a8ea5464f8cc753645d42e14b79ea

Deployed Bytecode

0x60806040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630357371d81146100925780632d56d572146100b85780633ccfd60b146100e457806343d726d6146100f9578063715018a61461010e5780638da5cb5b14610123578063c241267614610154578063f2fde38b14610169575b600080fd5b34801561009e57600080fd5b506100b6600160a060020a036004351660243561018a565b005b3480156100c457600080fd5b506100b66024600480358281019290820135918135918201910135610240565b3480156100f057600080fd5b506100b66102b8565b34801561010557600080fd5b506100b6610389565b34801561011a57600080fd5b506100b66103b6565b34801561012f57600080fd5b50610138610422565b60408051600160a060020a039092168252519081900360200190f35b34801561016057600080fd5b50610138610431565b34801561017557600080fd5b506100b6600160a060020a0360043516610440565b600054600160a060020a031633146101a157600080fd5b600160a060020a03821660009081526002602052604090205460ff16156101c757600080fd5b6001546101e490600160a060020a0316838363ffffffff61046316565b600160a060020a038216600081815260026020908152604091829020805460ff19166001179055815184815291517f9cf9e3ab58b33f06d81842ea0ad850b6640c6430d6396973312e1715792e7a919281900390910190a25050565b60008054600160a060020a0316331461025857600080fd5b83821461026457600080fd5b5060005b838110156102b1576102a985858381811061027f57fe5b90506020020135600160a060020a0316848484818110151561029d57fe5b9050602002013561018a565b600101610268565b5050505050565b600054600160a060020a031633146102cf57600080fd5b60008054600154604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905161038794600160a060020a0394851694909316926370a0823192602480820193602093909283900390910190829087803b15801561034257600080fd5b505af1158015610356573d6000803e3d6000fd5b505050506040513d602081101561036c57600080fd5b5051600154600160a060020a0316919063ffffffff61046316565b565b600054600160a060020a031633146103a057600080fd5b6103a86102b8565b600054600160a060020a0316ff5b600054600160a060020a031633146103cd57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031681565b600154600160a060020a031681565b600054600160a060020a0316331461045757600080fd5b6104608161051b565b50565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156104df57600080fd5b505af11580156104f3573d6000803e3d6000fd5b505050506040513d602081101561050957600080fd5b5051151561051657600080fd5b505050565b600160a060020a038116151561053057600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058200a9ec919055a8f984f35540e8dfeca086d1005ca415f7514485955299dd956ed0029

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

000000000000000000000000f8b358b3397a8ea5464f8cc753645d42e14b79ea

-----Decoded View---------------
Arg [0] : token (address): 0xf8b358b3397a8ea5464f8cc753645d42e14b79EA

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f8b358b3397a8ea5464f8cc753645d42e14b79ea


Swarm Source

bzzr://0a9ec919055a8f984f35540e8dfeca086d1005ca415f7514485955299dd956ed

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.