From ebdba08218dba834f83d46adade60dc310dab0d6 Mon Sep 17 00:00:00 2001 From: George Spasov Date: Wed, 3 Jan 2018 10:54:30 +0200 Subject: [PATCH 1/6] Added overridable getTokenAmount function --- contracts/crowdsale/Crowdsale.sol | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index 452bf573acf..74744dc4dd4 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -59,12 +59,16 @@ contract Crowdsale { return new MintableToken(); } - // fallback function can be used to buy tokens function () external payable { buyTokens(msg.sender); } + // Override this function to create logic for periodization + function getTokenAmount(uint256 weiAmount) internal constant returns(uint256) { + return weiAmount.mul(rate); + } + // low level token purchase function function buyTokens(address beneficiary) public payable { require(beneficiary != address(0)); From 2f2ef686524e3dced73f9b3911a094913757a2cd Mon Sep 17 00:00:00 2001 From: George Spasov Date: Wed, 3 Jan 2018 10:59:53 +0200 Subject: [PATCH 2/6] Increased Minor Version --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 793afa4cb6c..21cce1ca7cc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zeppelin-solidity", - "version": "1.5.0", + "version": "1.5.1", "description": "Secure Smart Contract library for Solidity", "scripts": { "test": "scripts/test.sh", @@ -52,4 +52,4 @@ "dependencies": { "dotenv": "^4.0.0" } -} +} \ No newline at end of file From 04946211a54c0c8b750799c3384ebc81e661b7b5 Mon Sep 17 00:00:00 2001 From: George Spasov Date: Wed, 3 Jan 2018 11:14:02 +0200 Subject: [PATCH 3/6] Using the new overridable function --- contracts/crowdsale/Crowdsale.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index 74744dc4dd4..48527875691 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -77,7 +77,7 @@ contract Crowdsale { uint256 weiAmount = msg.value; // calculate token amount to be created - uint256 tokens = weiAmount.mul(rate); + uint256 tokens = getTokenAmount(weiAmount); // update state weiRaised = weiRaised.add(weiAmount); From 5993f5b371dfff3121a21c2f00d94969e6737679 Mon Sep 17 00:00:00 2001 From: George Spasov Date: Thu, 4 Jan 2018 11:44:07 +0200 Subject: [PATCH 4/6] reverted back the version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 21cce1ca7cc..ad7f3e3ec5d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zeppelin-solidity", - "version": "1.5.1", + "version": "1.5.0", "description": "Secure Smart Contract library for Solidity", "scripts": { "test": "scripts/test.sh", From 7852583fdee7aa6f73a9e743d343e4cbbf005f87 Mon Sep 17 00:00:00 2001 From: George Spasov Date: Thu, 4 Jan 2018 15:49:59 +0200 Subject: [PATCH 5/6] reverted package.json file --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ad7f3e3ec5d..793afa4cb6c 100644 --- a/package.json +++ b/package.json @@ -52,4 +52,4 @@ "dependencies": { "dotenv": "^4.0.0" } -} \ No newline at end of file +} From 586c88802d91398d4fcab2975eb89870dabd3945 Mon Sep 17 00:00:00 2001 From: George Spasov Date: Fri, 5 Jan 2018 17:30:10 +0200 Subject: [PATCH 6/6] Changed constant to view and more expressive comment --- contracts/crowdsale/Crowdsale.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index 48527875691..90da148bb6b 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -64,8 +64,8 @@ contract Crowdsale { buyTokens(msg.sender); } - // Override this function to create logic for periodization - function getTokenAmount(uint256 weiAmount) internal constant returns(uint256) { + // Override this method to have a way to add business logic to your crowdsale when buying + function getTokenAmount(uint256 weiAmount) internal view returns(uint256) { return weiAmount.mul(rate); }