ETH Price: $2,637.93 (-0.11%)

Contract

0x9148AB505Fd9eaB5141b2b36Ce815E2786b7f7cd
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Emergency ERC20D...43482592017-10-08 17:38:142548 days ago1507484294IN
0x9148AB50...786b7f7cd
0 ETH0.0015687640
Tranfer Minter O...43482422017-10-08 17:33:042548 days ago1507483984IN
0x9148AB50...786b7f7cd
0 ETH0.001310240
Air Drop43475822017-10-08 11:55:272548 days ago1507463727IN
0x9148AB50...786b7f7cd
0 ETH0.0986591461.0000001
Air Drop43475782017-10-08 11:51:032548 days ago1507463463IN
0x9148AB50...786b7f7cd
0 ETH0.001249758.0000001
Air Drop43470272017-10-08 7:13:532549 days ago1507446833IN
0x9148AB50...786b7f7cd
0 ETH0.002705488.0000001
Air Drop43470272017-10-08 7:13:532549 days ago1507446833IN
0x9148AB50...786b7f7cd
0 ETH0.002705488.0000001
Air Drop43470262017-10-08 7:13:382549 days ago1507446818IN
0x9148AB50...786b7f7cd
0 ETH0.002825998.0000001
Air Drop43470232017-10-08 7:12:482549 days ago1507446768IN
0x9148AB50...786b7f7cd
0 ETH0.002825488.0000001
Air Drop43470232017-10-08 7:12:482549 days ago1507446768IN
0x9148AB50...786b7f7cd
0 ETH0.002824968.0000001
Air Drop43470232017-10-08 7:12:482549 days ago1507446768IN
0x9148AB50...786b7f7cd
0 ETH0.002825998.0000001
Air Drop43470232017-10-08 7:12:482549 days ago1507446768IN
0x9148AB50...786b7f7cd
0 ETH0.002705998.0000001
Air Drop43470222017-10-08 7:12:372549 days ago1507446757IN
0x9148AB50...786b7f7cd
0 ETH0.002825998.0000001
Air Drop43470222017-10-08 7:12:372549 days ago1507446757IN
0x9148AB50...786b7f7cd
0 ETH0.002825998.0000001
Air Drop43470212017-10-08 7:12:162549 days ago1507446736IN
0x9148AB50...786b7f7cd
0 ETH0.002825488.0000001
Air Drop43470212017-10-08 7:12:162549 days ago1507446736IN
0x9148AB50...786b7f7cd
0 ETH0.002704968.0000001
Air Drop43470182017-10-08 7:11:482549 days ago1507446708IN
0x9148AB50...786b7f7cd
0 ETH0.002825998.0000001
Air Drop43470172017-10-08 7:11:402549 days ago1507446700IN
0x9148AB50...786b7f7cd
0 ETH0.002824968.0000001
Air Drop43470162017-10-08 7:11:152549 days ago1507446675IN
0x9148AB50...786b7f7cd
0 ETH0.002825998.0000001
Air Drop43470122017-10-08 7:09:492549 days ago1507446589IN
0x9148AB50...786b7f7cd
0 ETH0.002824968.0000001
Air Drop43470122017-10-08 7:09:492549 days ago1507446589IN
0x9148AB50...786b7f7cd
0 ETH0.002825998.0000001
Air Drop43470122017-10-08 7:09:492549 days ago1507446589IN
0x9148AB50...786b7f7cd
0 ETH0.002824968.0000001
Air Drop43470112017-10-08 7:09:442549 days ago1507446584IN
0x9148AB50...786b7f7cd
0 ETH0.002825488.0000001
Air Drop43470112017-10-08 7:09:442549 days ago1507446584IN
0x9148AB50...786b7f7cd
0 ETH0.002825488.0000001
Air Drop43470102017-10-08 7:09:412549 days ago1507446581IN
0x9148AB50...786b7f7cd
0 ETH0.002825488.0000001
Air Drop43470092017-10-08 7:08:332549 days ago1507446513IN
0x9148AB50...786b7f7cd
0 ETH0.002825998.0000001
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KyberAirDrop

Compiler Version
v0.4.15+commit.bbb8e64f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-09-25
*/

pragma solidity ^0.4.13;

contract Ownable {
  address public owner;


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() {
    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) onlyOwner {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }

}

contract KyberAirDrop is Ownable {
  uint public numDrops;
  uint public dropAmount;

  function KyberAirDrop( address dropper ) {
    transferOwnership(dropper);
  }

  event TokenDrop( address receiver, uint amount );
  function airDrop( ERC20Interface token,
                    address   tokenRepo,
                    address[] recipients,
                    uint amount,
                    bool kgt,
                    KyberGenesisToken kgtToken ) onlyOwner {
    require( amount == 0 || amount == (2*(10**18)) || amount == (5*(10**18)) );

    if( amount > 0 ) {
      for( uint i = 0 ; i < recipients.length ; i++ ) {
          assert( token.transferFrom( tokenRepo, recipients[i], amount ) );
          TokenDrop( recipients[i], amount );
      }
    }

    if( kgt ) {
      kgtToken.mint(recipients);
    }

    numDrops += recipients.length;
    dropAmount += recipients.length * amount;
  }

  function tranferMinterOwnership( KyberGenesisToken kgtToken, address newOwner ) onlyOwner {
    kgtToken.transferOwnership(newOwner);
  }

  function emergencyERC20Drain( ERC20Interface token, uint amount ) {
      // callable by anyone
      address kyberMultisig = 0x3EB01B3391EA15CE752d01Cf3D3F09deC596F650;
      token.transfer( kyberMultisig, amount );
  }
}

contract KyberGenesisToken is Ownable {
  string  public  constant name     = "Kyber Genesis Token";
  string  public  constant symbol   = "KGT";
  uint    public  constant decimals = 0;

  uint                   public totalSupply = 0;
  mapping(address=>uint) public balanceOf;

  function KyberGenesisToken( address minter ) {
    transferOwnership(minter);
  }

  event Transfer(address indexed _from, address indexed _to, uint _value);
  event EndMinting( uint timestamp );

  function mint( address[] recipients ) onlyOwner {
    uint newRecipients = 0;
    for( uint i = 0 ; i < recipients.length ; i++ ){
      address recipient = recipients[i];
      if( balanceOf[recipient] == 0 ){
        Transfer( address(0x0), recipient, 1 );
        balanceOf[recipient] = 1;
        newRecipients++;
      }
    }

    totalSupply += newRecipients;
  }

  function endMinting() onlyOwner {
    transferOwnership(address(0xdead));
    EndMinting(block.timestamp);
  }

  function burn() {
    require(balanceOf[msg.sender] == 1 );
    Transfer( msg.sender, address(0x0), 1 );
    balanceOf[msg.sender] = 0;
    totalSupply--;
  }

  function emergencyERC20Drain( ERC20Interface token, uint amount ){
      // callable by anyone
      address kyberMultisig = 0x3EB01B3391EA15CE752d01Cf3D3F09deC596F650;
      token.transfer( kyberMultisig, amount );
  }


  // ERC20 stubs
  function transfer(address _to, uint _value) returns (bool){ revert(); }
  function transferFrom(address _from, address _to, uint _value) returns (bool){ revert(); }
  function approve(address _spender, uint _value) returns (bool){ revert(); }
  function allowance(address _owner, address _spender) constant returns (uint){ return 0; }
  event Approval(address indexed _owner, address indexed _spender, uint _value);
}

contract ERC20Interface {
  function transferFrom(address _from, address _to, uint _value) returns (bool){}
  function transfer(address _to, uint _value) returns (bool){}
  function ERC20Interface(){}
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"dropAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"tokenRepo","type":"address"},{"name":"recipients","type":"address[]"},{"name":"amount","type":"uint256"},{"name":"kgt","type":"bool"},{"name":"kgtToken","type":"address"}],"name":"airDrop","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numDrops","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"kgtToken","type":"address"},{"name":"newOwner","type":"address"}],"name":"tranferMinterOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"emergencyERC20Drain","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"dropper","type":"address"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenDrop","type":"event"}]

6060604052341561000f57600080fd5b60405160208061066f833981016040528080519150505b5b60008054600160a060020a03191633600160a060020a03161790555b6100598164010000000061053161006082021704565b5b506100ab565b60005433600160a060020a0390811691161461007b57600080fd5b600160a060020a038116156100a65760008054600160a060020a031916600160a060020a0383161790555b5b5b50565b6105b5806100ba6000396000f300606060405236156100675763ffffffff60e060020a60003504166305748be2811461006c578063608bc08c146100915780638bc30096146101125780638da5cb5b146101375780638e744f5414610166578063db0e16f11461018d578063f2fde38b146101b1575b600080fd5b341561007757600080fd5b61007f6101d2565b60405190815260200160405180910390f35b341561009c57600080fd5b610110600160a060020a036004803582169160248035909116919060649060443590810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505084359460208101351515945060400135600160a060020a031692506101d8915050565b005b341561011d57600080fd5b61007f610406565b60405190815260200160405180910390f35b341561014257600080fd5b61014a61040c565b604051600160a060020a03909116815260200160405180910390f35b341561017157600080fd5b610110600160a060020a036004358116906024351661041b565b005b341561019857600080fd5b610110600160a060020a036004351660243561049e565b005b34156101bc57600080fd5b610110600160a060020a0360043516610531565b005b60025481565b6000805433600160a060020a039081169116146101f457600080fd5b831580610208575083671bc16d674ec80000145b8061021a575083674563918244f40000145b151561022557600080fd5b600084111561033f575060005b845181101561033f5786600160a060020a03166323b872dd8787848151811061025757fe5b906020019060200201518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156102ba57600080fd5b6102c65a03f115156102cb57600080fd5b5050506040518051905015156102dd57fe5b7fb88903f74059b09b78248a0df6ba49200ca616f185ca84aca28d3e74e754ab8685828151811061030a57fe5b9060200190602002015185604051600160a060020a03909216825260208201526040908101905180910390a15b600101610232565b5b82156103e25781600160a060020a031663bd075b84866040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019060200280838360005b838110156103a95780820151818401525b602001610390565b5050505090500192505050600060405180830381600087803b15156103cd57600080fd5b6102c65a03f115156103de57600080fd5b5050505b845160018054909101905583855160028054919092020190555b5b50505050505050565b60015481565b600054600160a060020a031681565b60005433600160a060020a0390811691161461043657600080fd5b81600160a060020a031663f2fde38b8260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561048457600080fd5b6102c65a03f1151561049557600080fd5b5050505b5b5050565b733eb01b3391ea15ce752d01cf3d3f09dec596f650600160a060020a03831663a9059cbb828460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561051057600080fd5b6102c65a03f1151561052157600080fd5b505050604051805150505b505050565b60005433600160a060020a0390811691161461054c57600080fd5b600160a060020a03811615610584576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b505600a165627a7a723058204aea17b09940a7e1bffd623333825ec4196fa8cf05c50e945fffe7b404e882130029000000000000000000000000cbac9e86e0b7160f1a8e4835ad01dd51c514afce

Deployed Bytecode

0x606060405236156100675763ffffffff60e060020a60003504166305748be2811461006c578063608bc08c146100915780638bc30096146101125780638da5cb5b146101375780638e744f5414610166578063db0e16f11461018d578063f2fde38b146101b1575b600080fd5b341561007757600080fd5b61007f6101d2565b60405190815260200160405180910390f35b341561009c57600080fd5b610110600160a060020a036004803582169160248035909116919060649060443590810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505084359460208101351515945060400135600160a060020a031692506101d8915050565b005b341561011d57600080fd5b61007f610406565b60405190815260200160405180910390f35b341561014257600080fd5b61014a61040c565b604051600160a060020a03909116815260200160405180910390f35b341561017157600080fd5b610110600160a060020a036004358116906024351661041b565b005b341561019857600080fd5b610110600160a060020a036004351660243561049e565b005b34156101bc57600080fd5b610110600160a060020a0360043516610531565b005b60025481565b6000805433600160a060020a039081169116146101f457600080fd5b831580610208575083671bc16d674ec80000145b8061021a575083674563918244f40000145b151561022557600080fd5b600084111561033f575060005b845181101561033f5786600160a060020a03166323b872dd8787848151811061025757fe5b906020019060200201518760006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156102ba57600080fd5b6102c65a03f115156102cb57600080fd5b5050506040518051905015156102dd57fe5b7fb88903f74059b09b78248a0df6ba49200ca616f185ca84aca28d3e74e754ab8685828151811061030a57fe5b9060200190602002015185604051600160a060020a03909216825260208201526040908101905180910390a15b600101610232565b5b82156103e25781600160a060020a031663bd075b84866040518263ffffffff1660e060020a0281526004018080602001828103825283818151815260200191508051906020019060200280838360005b838110156103a95780820151818401525b602001610390565b5050505090500192505050600060405180830381600087803b15156103cd57600080fd5b6102c65a03f115156103de57600080fd5b5050505b845160018054909101905583855160028054919092020190555b5b50505050505050565b60015481565b600054600160a060020a031681565b60005433600160a060020a0390811691161461043657600080fd5b81600160a060020a031663f2fde38b8260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561048457600080fd5b6102c65a03f1151561049557600080fd5b5050505b5b5050565b733eb01b3391ea15ce752d01cf3d3f09dec596f650600160a060020a03831663a9059cbb828460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561051057600080fd5b6102c65a03f1151561052157600080fd5b505050604051805150505b505050565b60005433600160a060020a0390811691161461054c57600080fd5b600160a060020a03811615610584576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b505600a165627a7a723058204aea17b09940a7e1bffd623333825ec4196fa8cf05c50e945fffe7b404e882130029

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

000000000000000000000000cBAC9e86E0B7160F1a8E4835ad01Dd51c514afce

-----Decoded View---------------
Arg [0] : dropper (address): 0xcBAC9e86E0B7160F1a8E4835ad01Dd51c514afce

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


Swarm Source

bzzr://4aea17b09940a7e1bffd623333825ec4196fa8cf05c50e945fffe7b404e88213

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  ]

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.