I'm reading the crowdsale template, and I'm wondering if I'm reading certain things correctly.
Okay, the first part I want to ask about.
/* checks if the goal or time limit has been reached and ends the campaign
*/ function checkGoalReached() afterDeadline {
This section looks like a simple date deadline function, using a new variable couldn't we also determine if some one trys to buy tokens BEFORE the crowdsale? Something like StartTime = now + 1 years - 50 weeks, meaning this crowdsale is going to start in 2 weeks from now? (https://solidity.readthedocs.io/en/latest/units-and-global-variables.html)
Q1: Wouldn't this be a good approach for these ICOs? This way they can publish their real crowdsale address before the ICO begins?
I know some people lost a lot of ETH because of poorly communicated token addresses...
Q2: This part confuses me as well, is it used for freezing eth? Are ETH going into this contract address available to the creator? Or does that have to be specifically coded into the contract?
function safeWithdrawal() afterDeadline {
if (!fundingGoalReached) {
uint amount = balanceOf[msg.sender];
balanceOf[msg.sender] = 0;
if (amount > 0) {
if (msg.sender.send(amount)) {
FundTransfer(msg.sender, amount, false);
} else {
balanceOf[msg.sender] = amount;
}
}
} if (fundingGoalReached && beneficiary == msg.sender) {
if (beneficiary.send(amountRaised)) {
FundTransfer(beneficiary, amountRaised, false);
} else {
//If we fail to send the funds to beneficiary, unlock funders balance
fundingGoalReached = false;
}
}
} }
I appreciate the time and answers. I have an idea I'd like to try to make happen, its not life changing and not meant to be the next big thing... I just really want to learn.
I guess what I'm trying to accomplish is a smart contract that will allow me to pull the ETH at any time, and that will provide participants with a flat rate of exchange for a new token. Anyone have any examples? The code is fairly easy to read, just trying to find resources at this time.