diff --git a/contracts/examples/crowdsale/SampleCrowdsale.sol b/contracts/examples/crowdsale/SampleCrowdsale.sol new file mode 100644 index 000000000..82071c08d --- /dev/null +++ b/contracts/examples/crowdsale/SampleCrowdsale.sol @@ -0,0 +1,27 @@ +pragma solidity ^0.4.11; + +import "../../crowdsale/CappedCrowdsale.sol"; +import "../../crowdsale/RefundableCrowdsale.sol"; +import "./SampleCrowdsaleToken.sol"; + +/** + * @title SampleCrowdsale + * @dev This is an example of a fully fledged crowdsale that incorporates + * ability to finalize sale and checks for both cap and goal. + */ +contract SampleCrowdsale is CappedCrowdsale, RefundableCrowdsale { + + function SampleCrowdsale(uint256 _startBlock, uint256 _endBlock, uint256 _rate, uint256 _goal, uint256 _cap, address _wallet) + CappedCrowdsale(_cap) + FinalizableCrowdsale() + RefundableCrowdsale(_goal) + Crowdsale(_startBlock, _endBlock, _rate, _wallet) + { + require(_goal <= _cap); + } + + function createTokenContract() internal returns (MintableToken) { + return new SampleCrowdsaleToken(); + } + +} \ No newline at end of file diff --git a/contracts/examples/crowdsale/SampleCrowdsaleToken.sol b/contracts/examples/crowdsale/SampleCrowdsaleToken.sol new file mode 100644 index 000000000..155b3e439 --- /dev/null +++ b/contracts/examples/crowdsale/SampleCrowdsaleToken.sol @@ -0,0 +1,18 @@ +pragma solidity ^0.4.11; + + +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"; + uint256 public constant decimals = 18; + +}