aboutsummaryrefslogtreecommitdiffstats
path: root/test/compilationTests/zeppelin/crowdsale/FinalizableCrowdsale.sol
diff options
context:
space:
mode:
Diffstat (limited to 'test/compilationTests/zeppelin/crowdsale/FinalizableCrowdsale.sol')
-rw-r--r--test/compilationTests/zeppelin/crowdsale/FinalizableCrowdsale.sol39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/compilationTests/zeppelin/crowdsale/FinalizableCrowdsale.sol b/test/compilationTests/zeppelin/crowdsale/FinalizableCrowdsale.sol
new file mode 100644
index 00000000..1a736083
--- /dev/null
+++ b/test/compilationTests/zeppelin/crowdsale/FinalizableCrowdsale.sol
@@ -0,0 +1,39 @@
+pragma solidity ^0.4.11;
+
+import '../math/SafeMath.sol';
+import '../ownership/Ownable.sol';
+import './Crowdsale.sol';
+
+/**
+ * @title FinalizableCrowdsale
+ * @dev Extension of Crowsdale where an owner can do extra work
+ * after finishing. By default, it will end token minting.
+ */
+contract FinalizableCrowdsale is Crowdsale, Ownable {
+ using SafeMath for uint256;
+
+ bool public isFinalized = false;
+
+ event Finalized();
+
+ // should be called after crowdsale ends, to do
+ // some extra finalization work
+ function finalize() onlyOwner {
+ require(!isFinalized);
+ require(hasEnded());
+
+ finalization();
+ Finalized();
+
+ isFinalized = true;
+ }
+
+ // end token minting on finalization
+ // override this with custom logic if needed
+ function finalization() internal {
+ token.finishMinting();
+ }
+
+
+
+}