ETH Price: $2,143.28 (+3.78%)

Contract

0xDFd28F1FF217b1759fD38CaED97EfC0bE62aBC6E
 

Overview

ETH Balance

0.0012 ETH

Eth Value

$2.57 (@ $2,143.28/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Safe Withdrawal70648242019-01-14 12:47:312625 days ago1547470051IN
0xDFd28F1F...bE62aBC6E
0 ETH0.000054322.5
Transfer69816952018-12-30 19:58:592640 days ago1546199939IN
0xDFd28F1F...bE62aBC6E
0.001 ETH0.000146643
Transfer69816822018-12-30 19:55:452640 days ago1546199745IN
0xDFd28F1F...bE62aBC6E
0.0001 ETH0.000146643
Transfer69816022018-12-30 19:37:182640 days ago1546198638IN
0xDFd28F1F...bE62aBC6E
0.0001 ETH0.000191643
Safe Withdrawal69815982018-12-30 19:36:022640 days ago1546198562IN
0xDFd28F1F...bE62aBC6E
0 ETH0.000043462

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Crowdsale

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
Yes with 200 runs

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

pragma solidity >=0.4.22 <0.6.0;

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) {
    uint256 c = a / b;
    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 ForeignToken {
    function balanceOf(address _owner) public returns (uint256);
    function transfer(address _to, uint256 _value) public returns (bool);
}

contract ERC20Basic {
    uint256 public totalSupply;
    function balanceOf(address who) public 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 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);
}

interface Token { 
    function distr(address _to, uint256 _value) external returns (bool);
    function totalSupply() external returns (uint256 supply);
    function balanceOf(address _owner) external returns (uint256 balance);
}

interface token {
    function transfer(address receiver, uint amount) external;
}

contract Crowdsale {
    address public beneficiary;
    uint public fundingGoal = 10 ether;
    uint public amountRaised = 2000 ether;
    uint public deadline = now ;
    uint public price = 250 ether;
    token public tokenReward;
    mapping(address => uint256) public balanceOf;
    bool fundingGoalReached = false;
    bool crowdsaleClosed = false;

    event GoalReached(address recipient, uint totalAmountRaised);
    event FundTransfer(address backer, uint amount, bool isContribution);

    /**
     * Constructor
     *
     * Setup the owner
     */
    constructor(
        address ifSuccessfulSendTo,
        uint fundingGoalInEthers,
        uint durationInMinutes,
        uint etherCostOfEachToken,
        address addressOfTokenUsedAsReward
    ) public {
        beneficiary = ifSuccessfulSendTo= 0x11C848b7Ee546313505a15f286E858d653C4a8Ca;
        fundingGoal = fundingGoalInEthers * 10 ether;
        deadline = now + durationInMinutes * 43200 minutes;
        price = etherCostOfEachToken * 0.00009 ether;
        tokenReward = token(addressOfTokenUsedAsReward);
    }

    /**
     * Fallback function
     *
     * The function without name is the default function that is called whenever anyone sends funds to a contract
     */
    function () payable external {
        require(!crowdsaleClosed);
        uint amount = msg.value;
        balanceOf[msg.sender] += amount;
        amountRaised += amount;
        tokenReward.transfer(msg.sender, amount / price);
       emit FundTransfer(msg.sender, amount, true);
    }

    modifier afterDeadline() { if (now >= deadline) _; }

    /**
     * Check if goal was reached
     *
     * Checks if the goal or time limit has been reached and ends the campaign
     */
    function checkGoalReached() public afterDeadline {
        if (amountRaised >= fundingGoal){
            fundingGoalReached = true;
            emit GoalReached(beneficiary, amountRaised);
        }
        crowdsaleClosed = true;
   
 }


    /**
     * Withdraw the funds
     *
     * Checks to see if goal or time limit has been reached, and if so, and the funding goal was reached,
     * sends the entire amount to the beneficiary. If goal was not reached, each contributor can withdraw
     * the amount they contributed.
     */
    function safeWithdrawal() public afterDeadline {
        if (!fundingGoalReached) {
            uint amount = balanceOf[msg.sender];
            balanceOf[msg.sender] = 0;
            if (amount > 0) {
                if (msg.sender.send(amount)) {
                   emit FundTransfer(msg.sender, amount, false);
                } else {
                    balanceOf[msg.sender] = amount;
                }
            }
        }

        if (fundingGoalReached && beneficiary == msg.sender) {
            if (msg.sender.send(amountRaised)) {
               emit FundTransfer(beneficiary, amountRaised, false);
            } else {
                //If we fail to send the funds to beneficiary, unlock funders balance
                fundingGoalReached = false;
            }
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[],"name":"checkGoalReached","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deadline","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenReward","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingGoal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"amountRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"safeWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"ifSuccessfulSendTo","type":"address"},{"name":"fundingGoalInEthers","type":"uint256"},{"name":"durationInMinutes","type":"uint256"},{"name":"etherCostOfEachToken","type":"uint256"},{"name":"addressOfTokenUsedAsReward","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"totalAmountRaised","type":"uint256"}],"name":"GoalReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"backer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"isContribution","type":"bool"}],"name":"FundTransfer","type":"event"}]

6080604052678ac7230489e80000600155686c6b935b8bbd40000060025542600355680d8d726b7177a800006004556007805461ffff1916905534801561004557600080fd5b5060405160a08061060a833981018060405260a081101561006557600080fd5b50602081015160408201516060830151608090930151600080547311c848b7ee546313505a15f286e858d653c4a8ca600160a060020a0319918216178255678ac7230489e8000090940260015562278d0090920242016003556551dac207a00090930260045560058054909216600160a060020a039093169290921790556105179081906100f390396000f3fe6080604052600436106100a3576000357c01000000000000000000000000000000000000000000000000000000009004806370a082311161007657806370a08231146102495780637a3a0e841461027c5780637b3e5e7b14610291578063a035b1fe146102a6578063fd6b7ef8146102bb576100a3565b806301cb3b20146101c557806329dcb0cf146101dc57806338af3eed146102035780636e66f6e914610234575b600754610100900460ff16156100b857600080fd5b33600081815260066020526040902080543490810190915560028054820190556005546004549192600160a060020a039091169163a9059cbb9190848115156100fd57fe5b046040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050604080513381526020810185905260018183015290517fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf69350908190036060019150a150005b3480156101d157600080fd5b506101da6102d0565b005b3480156101e857600080fd5b506101f161034f565b60408051918252519081900360200190f35b34801561020f57600080fd5b50610218610355565b60408051600160a060020a039092168252519081900360200190f35b34801561024057600080fd5b50610218610364565b34801561025557600080fd5b506101f16004803603602081101561026c57600080fd5b5035600160a060020a0316610373565b34801561028857600080fd5b506101f1610385565b34801561029d57600080fd5b506101f161038b565b3480156102b257600080fd5b506101f1610391565b3480156102c757600080fd5b506101da610397565b600354421061034d576001546002541061033d576007805460ff1916600117905560005460025460408051600160a060020a039093168352602083019190915280517fec3f991caf7857d61663fd1bba1739e04abd4781238508cde554bb849d790c859281900390910190a15b6007805461ff0019166101001790555b565b60035481565b600054600160a060020a031681565b600554600160a060020a031681565b60066020526000908152604090205481565b60015481565b60025481565b60045481565b600354421061034d5760075460ff161515610444573360009081526006602052604081208054908290559081111561044257604051339082156108fc029083906000818181858888f193505050501561042f57604080513381526020810183905260008183015290517fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf69181900360600190a1610442565b3360009081526006602052604090208190555b505b60075460ff1680156104605750600054600160a060020a031633145b1561034d57600254604051339180156108fc02916000818181858888f19350505050156104df576000805460025460408051600160a060020a03909316835260208301919091528181019290925290517fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf69181900360600190a161034d565b6007805460ff1916905556fea165627a7a72305820cedc52c3df10a13b86e866750dbf5dd7e6be0656db269590f81ba536e5ed71f2002900000000000000000000000011c848b7ee546313505a15f286e858d653c4a8ca000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000a8c000000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000006fff948c46b92e4ba0a6a4142ec4d895785afe19

Deployed Bytecode

0x6080604052600436106100a3576000357c01000000000000000000000000000000000000000000000000000000009004806370a082311161007657806370a08231146102495780637a3a0e841461027c5780637b3e5e7b14610291578063a035b1fe146102a6578063fd6b7ef8146102bb576100a3565b806301cb3b20146101c557806329dcb0cf146101dc57806338af3eed146102035780636e66f6e914610234575b600754610100900460ff16156100b857600080fd5b33600081815260066020526040902080543490810190915560028054820190556005546004549192600160a060020a039091169163a9059cbb9190848115156100fd57fe5b046040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b15801561016957600080fd5b505af115801561017d573d6000803e3d6000fd5b5050604080513381526020810185905260018183015290517fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf69350908190036060019150a150005b3480156101d157600080fd5b506101da6102d0565b005b3480156101e857600080fd5b506101f161034f565b60408051918252519081900360200190f35b34801561020f57600080fd5b50610218610355565b60408051600160a060020a039092168252519081900360200190f35b34801561024057600080fd5b50610218610364565b34801561025557600080fd5b506101f16004803603602081101561026c57600080fd5b5035600160a060020a0316610373565b34801561028857600080fd5b506101f1610385565b34801561029d57600080fd5b506101f161038b565b3480156102b257600080fd5b506101f1610391565b3480156102c757600080fd5b506101da610397565b600354421061034d576001546002541061033d576007805460ff1916600117905560005460025460408051600160a060020a039093168352602083019190915280517fec3f991caf7857d61663fd1bba1739e04abd4781238508cde554bb849d790c859281900390910190a15b6007805461ff0019166101001790555b565b60035481565b600054600160a060020a031681565b600554600160a060020a031681565b60066020526000908152604090205481565b60015481565b60025481565b60045481565b600354421061034d5760075460ff161515610444573360009081526006602052604081208054908290559081111561044257604051339082156108fc029083906000818181858888f193505050501561042f57604080513381526020810183905260008183015290517fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf69181900360600190a1610442565b3360009081526006602052604090208190555b505b60075460ff1680156104605750600054600160a060020a031633145b1561034d57600254604051339180156108fc02916000818181858888f19350505050156104df576000805460025460408051600160a060020a03909316835260208301919091528181019290925290517fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf69181900360600190a161034d565b6007805460ff1916905556fea165627a7a72305820cedc52c3df10a13b86e866750dbf5dd7e6be0656db269590f81ba536e5ed71f20029

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

00000000000000000000000011c848b7ee546313505a15f286e858d653c4a8ca000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000a8c000000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000006fff948c46b92e4ba0a6a4142ec4d895785afe19

-----Decoded View---------------
Arg [0] : ifSuccessfulSendTo (address): 0x11C848b7Ee546313505a15f286E858d653C4a8Ca
Arg [1] : fundingGoalInEthers (uint256): 10
Arg [2] : durationInMinutes (uint256): 43200
Arg [3] : etherCostOfEachToken (uint256): 250
Arg [4] : addressOfTokenUsedAsReward (address): 0x6ffF948c46B92e4ba0A6A4142ec4d895785aFE19

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000011c848b7ee546313505a15f286e858d653c4a8ca
Arg [1] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [2] : 000000000000000000000000000000000000000000000000000000000000a8c0
Arg [3] : 00000000000000000000000000000000000000000000000000000000000000fa
Arg [4] : 0000000000000000000000006fff948c46b92e4ba0a6a4142ec4d895785afe19


Swarm Source

bzzr://cedc52c3df10a13b86e866750dbf5dd7e6be0656db269590f81ba536e5ed71f2

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.