Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
openzeppelin-contracts-upgradeable
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
俞永鹏
openzeppelin-contracts-upgradeable
Commits
693907d3
Commit
693907d3
authored
Sep 28, 2018
by
Francisco Giordano
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
convert SampleCrowdsale and SampleCrowdsaleToken to initializers
parent
2108641a
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
63 additions
and
7 deletions
+63
-7
SampleCrowdsale.sol
contracts/examples/SampleCrowdsale.sol
+33
-5
SampleCrowdsaleMock.sol
contracts/mocks/SampleCrowdsaleMock.sol
+28
-0
SampleCrowdsale.test.js
test/examples/SampleCrowdsale.test.js
+2
-2
No files found.
contracts/examples/SampleCrowdsale.sol
View file @
693907d3
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);
...
...
contracts/mocks/SampleCrowdsaleMock.sol
0 → 100644
View file @
693907d3
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);
}
}
test/examples/SampleCrowdsale.test.js
View file @
693907d3
...
@@ -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
(
'SampleCrowdsale
Mock
'
);
const
SampleCrowdsaleToken
=
artifacts
.
require
(
'SampleCrowdsaleToken'
);
const
SampleCrowdsaleToken
=
artifacts
.
require
(
'SampleCrowdsaleToken
Mock
'
);
contract
(
'SampleCrowdsale'
,
function
([
_
,
deployer
,
owner
,
wallet
,
investor
])
{
contract
(
'SampleCrowdsale'
,
function
([
_
,
deployer
,
owner
,
wallet
,
investor
])
{
const
RATE
=
new
BigNumber
(
10
);
const
RATE
=
new
BigNumber
(
10
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment