123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- pragma solidity ^0.4.11;
- import "../crowdsale/CappedCrowdsale.sol";
- import "../crowdsale/RefundableCrowdsale.sol";
- import "../token/MintableToken.sol";
- /**
- * @title SampleCrowdsaleToken
- * @dev Very simple ERC20 Token that can be minted.
- * It is meant to be used in a crowdsale contract.
- */
- contract SampleCrowdsaleToken is MintableToken {
- string public constant name = "Sample Crowdsale Token";
- string public constant symbol = "SCT";
- uint8 public constant decimals = 18;
- }
- /**
- * @title SampleCrowdsale
- * @dev This is an example of a fully fledged crowdsale.
- * The way to add new features to a base crowdsale is by multiple inheritance.
- * In this example we are providing following extensions:
- * CappedCrowdsale - sets a max boundary for raised funds
- * RefundableCrowdsale - set a min goal to be reached and returns funds if it's not met
- *
- * After adding multiple features it's good practice to run integration tests
- * to ensure that subcontracts works together as intended.
- */
- contract SampleCrowdsale is CappedCrowdsale, RefundableCrowdsale {
- function SampleCrowdsale(uint256 _startTime, uint256 _endTime, uint256 _rate, uint256 _goal, uint256 _cap, address _wallet)
- CappedCrowdsale(_cap)
- FinalizableCrowdsale()
- RefundableCrowdsale(_goal)
- Crowdsale(_startTime, _endTime, _rate, _wallet)
- {
- //As goal needs to be met for a successful crowdsale
- //the value needs to less or equal than a cap which is limit for accepted funds
- require(_goal <= _cap);
- }
- function createTokenContract() internal returns (MintableToken) {
- return new SampleCrowdsaleToken();
- }
- }
|