ETH Price: $3,140.17 (-0.72%)

Contract

0x2523C7366FE6e4E679f31a86D092160c04fe2D21
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x60c0604068147812018-12-02 21:40:402173 days ago1543786840IN
 Create: Eclaira
0 ETH0.003769654

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Eclaira

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.25;



/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    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;
  }
}


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


  function transferOwnership(address newOwner) onlyOwner public {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

contract ERC20CompatibleToken {
    using SafeMath for uint;

    mapping(address => uint) balances; // List of user balances.

    event Transfer(address indexed from, address indexed to, uint value);
  	event Approval(address indexed owner, address indexed spender, uint value);
    event Burn(address indexed who, uint value);

  	mapping (address => mapping (address => uint)) internal allowed;

    function transferFrom(address _from, address _to, uint _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);
    
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }
  
    function approve(address _spender, uint _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) public view returns (uint) {
        return allowed[_owner][_spender];
    }

}




contract Eclaira is ERC20CompatibleToken,Ownable {
    using SafeMath for uint;

    string public name    = "Eclaira";
    string public symbol  = "ECT";
    uint public decimals = 18;
    uint public totalSupply = 100*1000*1000 * 1 ether;

    uint public lockValue=25*1000*1000 * 1 ether;
    uint public lockDate=1561939200;   /* 2019/7/1 00:00*/
    address mainWallet;
    
    modifier isLocked() {
        if(now<lockDate){
            require(balances[mainWallet] >= totalSupply.sub(lockValue));
        }
        _;
    }

    constructor(address _mainWallet) public {
        mainWallet=_mainWallet;
        
        balances[mainWallet] = totalSupply;
        emit Transfer(msg.sender, mainWallet, totalSupply);
    }
   

    function balanceOf(address _who) public view returns(uint){
        return balances[_who];
    }
    
    function transfer(address _to, uint256 _value) isLocked public returns (bool) {
        require(_to != address(0));
        require(_value >= 0);
        require(_value <= balances[msg.sender]);
        
        if(msg.sender==mainWallet){
            require(balances[mainWallet].sub(_value) >= totalSupply.sub(lockValue));
        }

        balances[_to] = balances[_to].add(_value);
        balances[msg.sender] = balances[msg.sender].sub(_value);
        
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) isLocked public returns (bool) {
        require(_value <= allowed[_from][msg.sender]);

        if(msg.sender==mainWallet){
            require(balances[mainWallet].sub(_value) >= totalSupply.sub(lockValue));
        }
        
        balances[_from] = balances[_from].sub(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }
    
    function burn(address _who, uint256 _value) onlyOwner public { 
        balances[_who] = balances[_who].sub(_value); 
        totalSupply = totalSupply.sub(_value);
        emit Burn(_who, _value); 
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"},{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lockValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_mainWallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"who","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"}]

60c0604052600760808190527f45636c616972610000000000000000000000000000000000000000000000000060a090815261003e9160039190610153565b506040805180820190915260038082527f4543540000000000000000000000000000000000000000000000000000000000602090920191825261008391600491610153565b5060126005556a52b7d2dcc80cd2e40000006006556a14adf4b7320334b9000000600755635d194d006008553480156100bb57600080fd5b50604051602080610be583398101604081815291516002805433600160a060020a0319918216811790925560098054909116600160a060020a03808516919091178083556006549082166000908152602081815290889020829055925490865295519395169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3506101ee565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061019457805160ff19168380011785556101c1565b828001600101855582156101c1579182015b828111156101c15782518255916020019190600101906101a6565b506101cd9291506101d1565b5090565b6101eb91905b808211156101cd57600081556001016101d7565b90565b6109e8806101fd6000396000f3006080604052600436106100cf5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100d4578063095ea7b31461015e57806318160ddd1461019657806323b872dd146101bd578063313ce567146101e7578063649ae9c6146101fc57806370a08231146102115780638da5cb5b1461023257806395d89b41146102635780639dc29fac14610278578063a9059cbb1461029e578063a94ea5cc146102c2578063dd62ed3e146102d7578063f2fde38b146102fe575b600080fd5b3480156100e057600080fd5b506100e961031f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012357818101518382015260200161010b565b50505050905090810190601f1680156101505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016a57600080fd5b50610182600160a060020a03600435166024356103ad565b604080519115158252519081900360200190f35b3480156101a257600080fd5b506101ab610413565b60408051918252519081900360200190f35b3480156101c957600080fd5b50610182600160a060020a0360043581169060243516604435610419565b3480156101f357600080fd5b506101ab6105f4565b34801561020857600080fd5b506101ab6105fa565b34801561021d57600080fd5b506101ab600160a060020a0360043516610600565b34801561023e57600080fd5b5061024761061b565b60408051600160a060020a039092168252519081900360200190f35b34801561026f57600080fd5b506100e961062a565b34801561028457600080fd5b5061029c600160a060020a0360043516602435610685565b005b3480156102aa57600080fd5b50610182600160a060020a0360043516602435610737565b3480156102ce57600080fd5b506101ab6108ce565b3480156102e357600080fd5b506101ab600160a060020a03600435811690602435166108d4565b34801561030a57600080fd5b5061029c600160a060020a03600435166108ff565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103a55780601f1061037a576101008083540402835291602001916103a5565b820191906000526020600020905b81548152906001019060200180831161038857829003601f168201915b505050505081565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60065481565b60006008544210156104605760075460065461043a9163ffffffff61099416565b600954600160a060020a0316600090815260208190526040902054101561046057600080fd5b600160a060020a038416600090815260016020908152604080832033845290915290205482111561049057600080fd5b600954600160a060020a03163314156104ee576007546006546104b89163ffffffff61099416565b600954600160a060020a03166000908152602081905260409020546104e3908463ffffffff61099416565b10156104ee57600080fd5b600160a060020a038416600090815260208190526040902054610517908363ffffffff61099416565b600160a060020a038516600090815260208181526040808320939093556001815282822033835290522054610552908363ffffffff61099416565b600160a060020a0380861660009081526001602090815260408083203384528252808320949094559186168152908190522054610595908363ffffffff6109a616565b600160a060020a038085166000818152602081815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60055481565b60085481565b600160a060020a031660009081526020819052604090205490565b600254600160a060020a031681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103a55780601f1061037a576101008083540402835291602001916103a5565b600254600160a060020a0316331461069c57600080fd5b600160a060020a0382166000908152602081905260409020546106c5908263ffffffff61099416565b600160a060020a0383166000908152602081905260409020556006546106f1908263ffffffff61099416565b600655604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b600060085442101561077e576007546006546107589163ffffffff61099416565b600954600160a060020a0316600090815260208190526040902054101561077e57600080fd5b600160a060020a038316151561079357600080fd5b60008210156107a157600080fd5b336000908152602081905260409020548211156107bd57600080fd5b600954600160a060020a031633141561081b576007546006546107e59163ffffffff61099416565b600954600160a060020a0316600090815260208190526040902054610810908463ffffffff61099416565b101561081b57600080fd5b600160a060020a038316600090815260208190526040902054610844908363ffffffff6109a616565b600160a060020a038416600090815260208190526040808220929092553381522054610876908363ffffffff61099416565b33600081815260208181526040918290209390935580518581529051600160a060020a038716937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a350600192915050565b60075481565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600254600160a060020a0316331461091657600080fd5b600160a060020a038116151561092b57600080fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000828211156109a057fe5b50900390565b6000828201838110156109b557fe5b93925050505600a165627a7a723058205df0c5e6ae8d78a096d2ee456ba5e68c9328731e3167ac921054a17faf2cc8860029000000000000000000000000781d1a2d5e7a7321b159014d26d63c8561454c24

Deployed Bytecode

0x6080604052600436106100cf5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100d4578063095ea7b31461015e57806318160ddd1461019657806323b872dd146101bd578063313ce567146101e7578063649ae9c6146101fc57806370a08231146102115780638da5cb5b1461023257806395d89b41146102635780639dc29fac14610278578063a9059cbb1461029e578063a94ea5cc146102c2578063dd62ed3e146102d7578063f2fde38b146102fe575b600080fd5b3480156100e057600080fd5b506100e961031f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012357818101518382015260200161010b565b50505050905090810190601f1680156101505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561016a57600080fd5b50610182600160a060020a03600435166024356103ad565b604080519115158252519081900360200190f35b3480156101a257600080fd5b506101ab610413565b60408051918252519081900360200190f35b3480156101c957600080fd5b50610182600160a060020a0360043581169060243516604435610419565b3480156101f357600080fd5b506101ab6105f4565b34801561020857600080fd5b506101ab6105fa565b34801561021d57600080fd5b506101ab600160a060020a0360043516610600565b34801561023e57600080fd5b5061024761061b565b60408051600160a060020a039092168252519081900360200190f35b34801561026f57600080fd5b506100e961062a565b34801561028457600080fd5b5061029c600160a060020a0360043516602435610685565b005b3480156102aa57600080fd5b50610182600160a060020a0360043516602435610737565b3480156102ce57600080fd5b506101ab6108ce565b3480156102e357600080fd5b506101ab600160a060020a03600435811690602435166108d4565b34801561030a57600080fd5b5061029c600160a060020a03600435166108ff565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103a55780601f1061037a576101008083540402835291602001916103a5565b820191906000526020600020905b81548152906001019060200180831161038857829003601f168201915b505050505081565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60065481565b60006008544210156104605760075460065461043a9163ffffffff61099416565b600954600160a060020a0316600090815260208190526040902054101561046057600080fd5b600160a060020a038416600090815260016020908152604080832033845290915290205482111561049057600080fd5b600954600160a060020a03163314156104ee576007546006546104b89163ffffffff61099416565b600954600160a060020a03166000908152602081905260409020546104e3908463ffffffff61099416565b10156104ee57600080fd5b600160a060020a038416600090815260208190526040902054610517908363ffffffff61099416565b600160a060020a038516600090815260208181526040808320939093556001815282822033835290522054610552908363ffffffff61099416565b600160a060020a0380861660009081526001602090815260408083203384528252808320949094559186168152908190522054610595908363ffffffff6109a616565b600160a060020a038085166000818152602081815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60055481565b60085481565b600160a060020a031660009081526020819052604090205490565b600254600160a060020a031681565b6004805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103a55780601f1061037a576101008083540402835291602001916103a5565b600254600160a060020a0316331461069c57600080fd5b600160a060020a0382166000908152602081905260409020546106c5908263ffffffff61099416565b600160a060020a0383166000908152602081905260409020556006546106f1908263ffffffff61099416565b600655604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b600060085442101561077e576007546006546107589163ffffffff61099416565b600954600160a060020a0316600090815260208190526040902054101561077e57600080fd5b600160a060020a038316151561079357600080fd5b60008210156107a157600080fd5b336000908152602081905260409020548211156107bd57600080fd5b600954600160a060020a031633141561081b576007546006546107e59163ffffffff61099416565b600954600160a060020a0316600090815260208190526040902054610810908463ffffffff61099416565b101561081b57600080fd5b600160a060020a038316600090815260208190526040902054610844908363ffffffff6109a616565b600160a060020a038416600090815260208190526040808220929092553381522054610876908363ffffffff61099416565b33600081815260208181526040918290209390935580518581529051600160a060020a038716937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a350600192915050565b60075481565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600254600160a060020a0316331461091657600080fd5b600160a060020a038116151561092b57600080fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000828211156109a057fe5b50900390565b6000828201838110156109b557fe5b93925050505600a165627a7a723058205df0c5e6ae8d78a096d2ee456ba5e68c9328731e3167ac921054a17faf2cc8860029

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

000000000000000000000000781d1a2d5e7a7321b159014d26d63c8561454c24

-----Decoded View---------------
Arg [0] : _mainWallet (address): 0x781D1a2D5E7A7321B159014D26d63C8561454C24

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000781d1a2d5e7a7321b159014d26d63c8561454c24


Swarm Source

bzzr://5df0c5e6ae8d78a096d2ee456ba5e68c9328731e3167ac921054a17faf2cc886

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.