Commit 693907d3 by Francisco Giordano

convert SampleCrowdsale and SampleCrowdsaleToken to initializers

parent 2108641a
pragma solidity ^0.4.24; pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../crowdsale/validation/CappedCrowdsale.sol"; import "../crowdsale/validation/CappedCrowdsale.sol";
import "../crowdsale/distribution/RefundableCrowdsale.sol"; import "../crowdsale/distribution/RefundableCrowdsale.sol";
import "../crowdsale/emission/MintedCrowdsale.sol"; import "../crowdsale/emission/MintedCrowdsale.sol";
...@@ -11,11 +12,19 @@ import "../token/ERC20/ERC20Mintable.sol"; ...@@ -11,11 +12,19 @@ import "../token/ERC20/ERC20Mintable.sol";
* @dev Very simple ERC20 Token that can be minted. * @dev Very simple ERC20 Token that can be minted.
* It is meant to be used in a crowdsale contract. * It is meant to be used in a crowdsale contract.
*/ */
contract SampleCrowdsaleToken is ERC20Mintable { contract SampleCrowdsaleToken is Initializable, ERC20Mintable {
string public constant name = "Sample Crowdsale Token"; string public name;
string public constant symbol = "SCT"; string public symbol;
uint8 public constant decimals = 18; uint8 public decimals;
function initialize() public initializer {
ERC20Mintable.initialize();
name = "Sample Crowdsale Token";
symbol = "SCT";
decimals = 18;
}
} }
...@@ -35,7 +44,7 @@ contract SampleCrowdsaleToken is ERC20Mintable { ...@@ -35,7 +44,7 @@ contract SampleCrowdsaleToken is ERC20Mintable {
// https://github.com/duaraghav8/Solium/issues/205 // https://github.com/duaraghav8/Solium/issues/205
// --elopio - 2018-05-10 // --elopio - 2018-05-10
// solium-disable-next-line max-len // solium-disable-next-line max-len
contract SampleCrowdsale is CappedCrowdsale, RefundableCrowdsale, MintedCrowdsale { contract SampleCrowdsale is Initializable, Crowdsale, CappedCrowdsale, RefundableCrowdsale, MintedCrowdsale {
constructor( constructor(
uint256 openingTime, uint256 openingTime,
...@@ -52,6 +61,25 @@ contract SampleCrowdsale is CappedCrowdsale, RefundableCrowdsale, MintedCrowdsal ...@@ -52,6 +61,25 @@ contract SampleCrowdsale is CappedCrowdsale, RefundableCrowdsale, MintedCrowdsal
TimedCrowdsale(openingTime, closingTime) TimedCrowdsale(openingTime, closingTime)
RefundableCrowdsale(goal) RefundableCrowdsale(goal)
{ {
}
function initialize(
uint256 openingTime,
uint256 closingTime,
uint256 rate,
address wallet,
uint256 cap,
ERC20Mintable token,
uint256 goal
)
public
initializer
{
Crowdsale.initialize(rate, wallet, token);
CappedCrowdsale.initialize(cap);
TimedCrowdsale.initialize(openingTime, closingTime);
RefundableCrowdsale.initialize(goal);
//As goal needs to be met for a successful crowdsale //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 //the value needs to less or equal than a cap which is limit for accepted funds
require(goal <= cap); require(goal <= cap);
......
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../examples/SampleCrowdsale.sol";
contract SampleCrowdsaleTokenMock is Initializable, SampleCrowdsaleToken {
constructor() public {
SampleCrowdsaleToken.initialize();
}
}
contract SampleCrowdsaleMock is Initializable, SampleCrowdsale {
constructor(
uint256 openingTime,
uint256 closingTime,
uint256 rate,
address wallet,
uint256 cap,
ERC20Mintable token,
uint256 goal
)
public
SampleCrowdsale(openingTime, closingTime, rate, wallet, cap, token, goal)
{
SampleCrowdsale.initialize(openingTime, closingTime, rate, wallet, cap, token, goal);
}
}
...@@ -13,8 +13,8 @@ const should = require('chai') ...@@ -13,8 +13,8 @@ const should = require('chai')
.use(require('chai-bignumber')(BigNumber)) .use(require('chai-bignumber')(BigNumber))
.should(); .should();
const SampleCrowdsale = artifacts.require('SampleCrowdsale'); const SampleCrowdsale = artifacts.require('SampleCrowdsaleMock');
const SampleCrowdsaleToken = artifacts.require('SampleCrowdsaleToken'); const SampleCrowdsaleToken = artifacts.require('SampleCrowdsaleTokenMock');
contract('SampleCrowdsale', function ([_, deployer, owner, wallet, investor]) { contract('SampleCrowdsale', function ([_, deployer, owner, wallet, investor]) {
const RATE = new BigNumber(10); const RATE = new BigNumber(10);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment