ETH Price: $3,456.71 (+1.71%)

Contract

0xb52834a6d5e84C08b60D8e1A5255b999fc0c729b
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Get Airdrop64390392018-10-02 10:43:542275 days ago1538477034IN
0xb52834a6...9fc0c729b
0 ETH0.000090731
Transfer62752922018-09-05 8:31:512302 days ago1536136311IN
0xb52834a6...9fc0c729b
0 ETH0.000054712.6
Get Airdrop62752432018-09-05 8:20:532302 days ago1536135653IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62734042018-09-05 0:53:102302 days ago1536108790IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62734012018-09-05 0:52:332302 days ago1536108753IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62733502018-09-05 0:42:282302 days ago1536108148IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62733482018-09-05 0:42:102302 days ago1536108130IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62733462018-09-05 0:41:492302 days ago1536108109IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62733082018-09-05 0:33:392302 days ago1536107619IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62733082018-09-05 0:33:392302 days ago1536107619IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62732992018-09-05 0:30:532302 days ago1536107453IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62732972018-09-05 0:30:412302 days ago1536107441IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62732972018-09-05 0:30:412302 days ago1536107441IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62732602018-09-05 0:22:482302 days ago1536106968IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62732572018-09-05 0:22:332302 days ago1536106953IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62732552018-09-05 0:22:082302 days ago1536106928IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62732552018-09-05 0:22:082302 days ago1536106928IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62732532018-09-05 0:21:262302 days ago1536106886IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62731592018-09-04 23:58:072302 days ago1536105487IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62731542018-09-04 23:56:402302 days ago1536105400IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62731502018-09-04 23:56:032302 days ago1536105363IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62731432018-09-04 23:55:012302 days ago1536105301IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62731422018-09-04 23:54:552302 days ago1536105295IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62688222018-09-04 6:27:342303 days ago1536042454IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
Get Airdrop62688202018-09-04 6:27:252303 days ago1536042445IN
0xb52834a6...9fc0c729b
0 ETH0.000226832.5
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:
AirdropContractium

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-07-11
*/

pragma solidity ^0.4.18 ;

library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    return a / b;
  }

  
  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 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}

contract ContractiumInterface {
    function balanceOf(address who) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function contractSpend(address _from, uint256 _value) public returns (bool);
    function allowance(address _owner, address _spender) public view returns (uint256);
    function owner() public view returns (address);
}

contract Ownable {
  address public owner;

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

  function Ownable() public {
    owner = msg.sender;
  }

  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }
  
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}

contract AirdropContractium is Ownable {
    
    
    using SafeMath for uint256;
    
    //Contractium contract interface
    ContractiumInterface ctuContract;

    //Store addresses submitted
    mapping(address => bool) submitted;
    
    uint8 public constant decimals = 18;
    uint256 public constant INITIAL_AIRDROP = 20000000 * (10 ** uint256(decimals));
    address public constant CTU_ADDRESS = 0x943ACa8ed65FBf188A7D369Cfc2BeE0aE435ee1B;
    address public ctu_owner = 0x69f4965e77dFF568cF2f8877F2B39d636D581ae8;
    
    uint256 public reward = 200 * (10 ** uint256(decimals));
    uint256 public remainAirdrop;
   
    event Submit(address _addr, bool _isSuccess);
   
    constructor() public {
        owner = msg.sender;
        remainAirdrop = INITIAL_AIRDROP;
        ctuContract = ContractiumInterface(CTU_ADDRESS);
    }
    
    function getAirdrop() public isNotSubmitted isRemain returns (bool) {
        return submit(msg.sender);
    }
    
    function batchSubmit(address[] _addresses) public onlyOwner {
        for(uint i; i < _addresses.length; i++) {
            if (!submitted[_addresses[i]]) {
                submit(_addresses[i]);
            }
        }
    }
    
    
    function submit(address _addr) private returns (bool) {
        address _from = ctu_owner;
        address _to = _addr;
        uint256 _value = uint256(reward);
        bool isSuccess = ctuContract.transferFrom(_from, _to, _value);
        
        if (isSuccess) {
            submitted[_to] = true;
            remainAirdrop = remainAirdrop.sub(_value);
        }
        
        emit Submit(_addr, isSuccess);
        
        closeAirdrop();
        return isSuccess;
    }
    
    
    modifier isNotSubmitted() {
        require(!submitted[msg.sender]);
        _;
    }
    
    modifier isRemain() {
        require(remainAirdrop > 0);
        require(reward > 0);
        _;
    }
    
    function closeAirdrop() private {
        address _owner = ctu_owner;
        address _spender = address(this);
        uint256 _remain = ctuContract.allowance(_owner, _spender);
        
        if (_remain < reward) {
            reward = 0;
            remainAirdrop = 0;
        }
    }
  
    function setCtuContract(address _ctuAddress) public onlyOwner  returns (bool) {
        require(_ctuAddress != address(0x0));
        ctuContract = ContractiumInterface(_ctuAddress);
        ctu_owner = ctuContract.owner();
        return true;
    }
    
    function setRemainAirdrop(uint256 _remain) public onlyOwner  returns (bool) {
        remainAirdrop = _remain;
        return true;
    }
    
    function setReward(uint256 _reward) public onlyOwner  returns (bool) {
        reward = _reward;
        return true;
    }

    function transferOwnership(address _addr) public onlyOwner {
        super.transferOwnership(_addr);
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"CTU_ADDRESS","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_reward","type":"uint256"}],"name":"setReward","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"remainAirdrop","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_remain","type":"uint256"}],"name":"setRemainAirdrop","outputs":[{"name":"","type":"bool"}],"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":"_ctuAddress","type":"address"}],"name":"setCtuContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_AIRDROP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"}],"name":"batchSubmit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ctu_owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getAirdrop","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_addr","type":"address"},{"indexed":false,"name":"_isSuccess","type":"bool"}],"name":"Submit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405260038054600160a060020a0319167369f4965e77dff568cf2f8877f2b39d636d581ae8179055680ad78ebc5ac620000060045534801561004357600080fd5b5060008054600160a060020a0319908116339081178216179091556a108b2a2c280290940000006005556001805490911673943aca8ed65fbf188a7d369cfc2bee0ae435ee1b1790556108108061009b6000396000f3006080604052600436106100c45763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c55f81881146100c9578063228cb733146100fa578063293be45614610121578063313ce5671461014d5780633a3fdf051461017857806355c605001461018d5780638da5cb5b146101a5578063a31ffa30146101ba578063b5922a2b146101db578063be268c3f146101f0578063c6b4ad8014610247578063d25f82a01461025c578063f2fde38b14610271575b600080fd5b3480156100d557600080fd5b506100de610292565b60408051600160a060020a039092168252519081900360200190f35b34801561010657600080fd5b5061010f6102aa565b60408051918252519081900360200190f35b34801561012d57600080fd5b506101396004356102b0565b604080519115158252519081900360200190f35b34801561015957600080fd5b506101626102d1565b6040805160ff9092168252519081900360200190f35b34801561018457600080fd5b5061010f6102d6565b34801561019957600080fd5b506101396004356102dc565b3480156101b157600080fd5b506100de6102fd565b3480156101c657600080fd5b50610139600160a060020a036004351661030c565b3480156101e757600080fd5b5061010f61041d565b3480156101fc57600080fd5b50604080516020600480358082013583810280860185019096528085526102459536959394602494938501929182918501908490808284375094975061042c9650505050505050565b005b34801561025357600080fd5b506100de6104b9565b34801561026857600080fd5b506101396104c8565b34801561027d57600080fd5b50610245600160a060020a0360043516610511565b73943aca8ed65fbf188a7d369cfc2bee0ae435ee1b81565b60045481565b60008054600160a060020a031633146102c857600080fd5b50600455600190565b601281565b60055481565b60008054600160a060020a031633146102f457600080fd5b50600555600190565b600054600160a060020a031681565b60008054600160a060020a0316331461032457600080fd5b600160a060020a038216151561033957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038481169190911791829055604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290519290911691638da5cb5b916004808201926020929091908290030181600087803b1580156103bd57600080fd5b505af11580156103d1573d6000803e3d6000fd5b505050506040513d60208110156103e757600080fd5b50516003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055506001919050565b6a108b2a2c2802909400000081565b60008054600160a060020a0316331461044457600080fd5b81518110156104b55760026000838381518110151561045f57fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff1615156104ad576104ab828281518110151561049c57fe5b90602001906020020151610534565b505b600101610444565b5050565b600354600160a060020a031681565b3360009081526002602052604081205460ff16156104e557600080fd5b6005546000106104f457600080fd5b60045460001061050357600080fd5b61050c33610534565b905090565b600054600160a060020a0316331461052857600080fd5b6105318161067d565b50565b60035460048054600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03958616948101859052868616602482015260448101849052905160009587949387939116916323b872dd9160648082019260209290919082900301818787803b1580156105b957600080fd5b505af11580156105cd573d6000803e3d6000fd5b505050506040513d60208110156105e357600080fd5b50519050801561062757600160a060020a0383166000908152600260205260409020805460ff19166001179055600554610623908363ffffffff61071116565b6005555b60408051600160a060020a0388168152821515602082015281517fd1cba7308fe436ffd981cd849402c6ef3f58dccedbb599aac9402bb0e4422006929181900390910190a1610674610723565b95945050505050565b600054600160a060020a0316331461069457600080fd5b600160a060020a03811615156106a957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282111561071d57fe5b50900390565b600354600154604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482018190523060248301819052925190949293600093169163dd62ed3e91604480830192602092919082900301818787803b15801561079b57600080fd5b505af11580156107af573d6000803e3d6000fd5b505050506040513d60208110156107c557600080fd5b50516004549091508110156107df57600060048190556005555b5050505600a165627a7a7230582042dae8482b4c741793358199060c87d8af7326c9169eaed4a2137c66e10d46c40029

Deployed Bytecode

0x6080604052600436106100c45763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c55f81881146100c9578063228cb733146100fa578063293be45614610121578063313ce5671461014d5780633a3fdf051461017857806355c605001461018d5780638da5cb5b146101a5578063a31ffa30146101ba578063b5922a2b146101db578063be268c3f146101f0578063c6b4ad8014610247578063d25f82a01461025c578063f2fde38b14610271575b600080fd5b3480156100d557600080fd5b506100de610292565b60408051600160a060020a039092168252519081900360200190f35b34801561010657600080fd5b5061010f6102aa565b60408051918252519081900360200190f35b34801561012d57600080fd5b506101396004356102b0565b604080519115158252519081900360200190f35b34801561015957600080fd5b506101626102d1565b6040805160ff9092168252519081900360200190f35b34801561018457600080fd5b5061010f6102d6565b34801561019957600080fd5b506101396004356102dc565b3480156101b157600080fd5b506100de6102fd565b3480156101c657600080fd5b50610139600160a060020a036004351661030c565b3480156101e757600080fd5b5061010f61041d565b3480156101fc57600080fd5b50604080516020600480358082013583810280860185019096528085526102459536959394602494938501929182918501908490808284375094975061042c9650505050505050565b005b34801561025357600080fd5b506100de6104b9565b34801561026857600080fd5b506101396104c8565b34801561027d57600080fd5b50610245600160a060020a0360043516610511565b73943aca8ed65fbf188a7d369cfc2bee0ae435ee1b81565b60045481565b60008054600160a060020a031633146102c857600080fd5b50600455600190565b601281565b60055481565b60008054600160a060020a031633146102f457600080fd5b50600555600190565b600054600160a060020a031681565b60008054600160a060020a0316331461032457600080fd5b600160a060020a038216151561033957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038481169190911791829055604080517f8da5cb5b00000000000000000000000000000000000000000000000000000000815290519290911691638da5cb5b916004808201926020929091908290030181600087803b1580156103bd57600080fd5b505af11580156103d1573d6000803e3d6000fd5b505050506040513d60208110156103e757600080fd5b50516003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055506001919050565b6a108b2a2c2802909400000081565b60008054600160a060020a0316331461044457600080fd5b81518110156104b55760026000838381518110151561045f57fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff1615156104ad576104ab828281518110151561049c57fe5b90602001906020020151610534565b505b600101610444565b5050565b600354600160a060020a031681565b3360009081526002602052604081205460ff16156104e557600080fd5b6005546000106104f457600080fd5b60045460001061050357600080fd5b61050c33610534565b905090565b600054600160a060020a0316331461052857600080fd5b6105318161067d565b50565b60035460048054600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03958616948101859052868616602482015260448101849052905160009587949387939116916323b872dd9160648082019260209290919082900301818787803b1580156105b957600080fd5b505af11580156105cd573d6000803e3d6000fd5b505050506040513d60208110156105e357600080fd5b50519050801561062757600160a060020a0383166000908152600260205260409020805460ff19166001179055600554610623908363ffffffff61071116565b6005555b60408051600160a060020a0388168152821515602082015281517fd1cba7308fe436ffd981cd849402c6ef3f58dccedbb599aac9402bb0e4422006929181900390910190a1610674610723565b95945050505050565b600054600160a060020a0316331461069457600080fd5b600160a060020a03811615156106a957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282111561071d57fe5b50900390565b600354600154604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a03938416600482018190523060248301819052925190949293600093169163dd62ed3e91604480830192602092919082900301818787803b15801561079b57600080fd5b505af11580156107af573d6000803e3d6000fd5b505050506040513d60208110156107c557600080fd5b50516004549091508110156107df57600060048190556005555b5050505600a165627a7a7230582042dae8482b4c741793358199060c87d8af7326c9169eaed4a2137c66e10d46c40029

Swarm Source

bzzr://42dae8482b4c741793358199060c87d8af7326c9169eaed4a2137c66e10d46c4

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.