12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- pragma solidity ^0.4.18;
- import "../crowdsale/validation/CappedCrowdsale.sol";
- import "../crowdsale/distribution/RefundableCrowdsale.sol";
- import "../crowdsale/emission/MintedCrowdsale.sol";
- import "../token/ERC20/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"; // solium-disable-line uppercase
- string public constant symbol = "SCT"; // solium-disable-line uppercase
- uint8 public constant decimals = 18; // solium-disable-line uppercase
- }
- /**
- * @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, MintedCrowdsale {
- function SampleCrowdsale(uint256 _openingTime, uint256 _closingTime, uint256 _rate, address _wallet, uint256 _cap, MintableToken _token, uint256 _goal) public
- Crowdsale(_rate, _wallet, _token)
- CappedCrowdsale(_cap)
- TimedCrowdsale(_openingTime, _closingTime)
- RefundableCrowdsale(_goal)
- {
- //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);
- }
- }
|