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
716efc4b
Unverified
Commit
716efc4b
authored
Oct 05, 2018
by
Nicolás Venturo
Committed by
GitHub
Oct 05, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #24 from nventuro/init-improvs
Initialization improvements
parents
cd3be5fb
143ccf7a
Hide whitespace changes
Inline
Side-by-side
Showing
44 changed files
with
53 additions
and
88 deletions
+53
-88
AllowanceCrowdsaleImpl.sol
contracts/mocks/AllowanceCrowdsaleImpl.sol
+1
-2
BreakInvariantBountyMock.sol
contracts/mocks/BreakInvariantBountyMock.sol
+2
-3
CappedCrowdsaleImpl.sol
contracts/mocks/CappedCrowdsaleImpl.sol
+1
-2
CapperRoleMock.sol
contracts/mocks/CapperRoleMock.sol
+1
-2
ConditionalEscrowMock.sol
contracts/mocks/ConditionalEscrowMock.sol
+1
-3
CrowdsaleMock.sol
contracts/mocks/CrowdsaleMock.sol
+1
-2
DetailedERC20Mock.sol
contracts/mocks/DetailedERC20Mock.sol
+1
-2
ECDSAMock.sol
contracts/mocks/ECDSAMock.sol
+0
-1
ERC20BurnableMock.sol
contracts/mocks/ERC20BurnableMock.sol
+1
-2
ERC20CappedMock.sol
contracts/mocks/ERC20CappedMock.sol
+1
-2
ERC20MigratorMock.sol
contracts/mocks/ERC20MigratorMock.sol
+1
-2
ERC20MintableMock.sol
contracts/mocks/ERC20MintableMock.sol
+1
-2
ERC20Mock.sol
contracts/mocks/ERC20Mock.sol
+1
-2
ERC20PausableMock.sol
contracts/mocks/ERC20PausableMock.sol
+1
-2
ERC20WithMetadataMock.sol
contracts/mocks/ERC20WithMetadataMock.sol
+1
-2
ERC721FullMock.sol
contracts/mocks/ERC721FullMock.sol
+2
-2
ERC721MintableBurnableImpl.sol
contracts/mocks/ERC721MintableBurnableImpl.sol
+2
-2
ERC721Mock.sol
contracts/mocks/ERC721Mock.sol
+1
-2
ERC721PausableMock.sol
contracts/mocks/ERC721PausableMock.sol
+1
-2
EscrowMock.sol
contracts/mocks/EscrowMock.sol
+1
-2
FinalizableCrowdsaleImpl.sol
contracts/mocks/FinalizableCrowdsaleImpl.sol
+1
-2
IncreasingPriceCrowdsaleImpl.sol
contracts/mocks/IncreasingPriceCrowdsaleImpl.sol
+1
-2
IndividuallyCappedCrowdsaleImpl.sol
contracts/mocks/IndividuallyCappedCrowdsaleImpl.sol
+1
-2
MintedCrowdsaleImpl.sol
contracts/mocks/MintedCrowdsaleImpl.sol
+1
-2
MinterRoleMock.sol
contracts/mocks/MinterRoleMock.sol
+1
-2
OwnableMock.sol
contracts/mocks/OwnableMock.sol
+1
-2
PausableMock.sol
contracts/mocks/PausableMock.sol
+1
-3
PauserRoleMock.sol
contracts/mocks/PauserRoleMock.sol
+1
-2
PostDeliveryCrowdsaleImpl.sol
contracts/mocks/PostDeliveryCrowdsaleImpl.sol
+1
-2
PullPaymentMock.sol
contracts/mocks/PullPaymentMock.sol
+1
-2
ReentrancyMock.sol
contracts/mocks/ReentrancyMock.sol
+1
-2
RefundEscrowMock.sol
contracts/mocks/RefundEscrowMock.sol
+1
-2
RefundableCrowdsaleImpl.sol
contracts/mocks/RefundableCrowdsaleImpl.sol
+1
-2
SampleCrowdsaleMock.sol
contracts/mocks/SampleCrowdsaleMock.sol
+2
-3
SecondaryMock.sol
contracts/mocks/SecondaryMock.sol
+1
-2
SignatureBouncerMock.sol
contracts/mocks/SignatureBouncerMock.sol
+1
-2
SignerRoleMock.sol
contracts/mocks/SignerRoleMock.sol
+1
-2
SimpleTokenMock.sol
contracts/mocks/SimpleTokenMock.sol
+1
-2
SplitPaymentMock.sol
contracts/mocks/SplitPaymentMock.sol
+1
-2
TimedCrowdsaleImpl.sol
contracts/mocks/TimedCrowdsaleImpl.sol
+1
-2
TokenTimelockMock.sol
contracts/mocks/TokenTimelockMock.sol
+1
-2
TokenVestingMock.sol
contracts/mocks/TokenVestingMock.sol
+1
-2
ERC721MetadataMintable.sol
contracts/token/ERC721/ERC721MetadataMintable.sol
+7
-1
ERC721Mintable.sol
contracts/token/ERC721/ERC721Mintable.sol
+1
-0
No files found.
contracts/mocks/AllowanceCrowdsaleImpl.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/IERC20.sol";
import "../crowdsale/emission/AllowanceCrowdsale.sol";
contract AllowanceCrowdsaleImpl is
Initializable, Crowdsale,
AllowanceCrowdsale {
contract AllowanceCrowdsaleImpl is AllowanceCrowdsale {
constructor (
uint256 rate,
...
...
contracts/mocks/BreakInvariantBountyMock.sol
View file @
716efc4b
...
...
@@ -4,10 +4,9 @@ pragma solidity ^0.4.24;
// See: https://github.com/ethereum/solidity/issues/4871
// solium-disable-next-line max-len
import {BreakInvariantBounty, Target} from "../drafts/BreakInvariantBounty.sol";
import "../Initializable.sol";
contract TargetMock is
Initializable,
Target {
contract TargetMock is Target {
bool private exploited;
function exploitVulnerability() public {
...
...
@@ -23,7 +22,7 @@ contract TargetMock is Initializable, Target {
}
}
contract BreakInvariantBountyMock is
Initializable,
BreakInvariantBounty {
contract BreakInvariantBountyMock is BreakInvariantBounty {
constructor() public {
BreakInvariantBounty.initialize();
}
...
...
contracts/mocks/CappedCrowdsaleImpl.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/IERC20.sol";
import "../crowdsale/validation/CappedCrowdsale.sol";
contract CappedCrowdsaleImpl is
Initializable, Crowdsale,
CappedCrowdsale {
contract CappedCrowdsaleImpl is CappedCrowdsale {
constructor (
uint256 rate,
...
...
contracts/mocks/CapperRoleMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../access/roles/CapperRole.sol";
contract CapperRoleMock is
Initializable,
CapperRole {
contract CapperRoleMock is CapperRole {
constructor() public {
CapperRole.initialize();
}
...
...
contracts/mocks/ConditionalEscrowMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../payment/ConditionalEscrow.sol";
// mock class using ConditionalEscrow
contract ConditionalEscrowMock is
Initializable,
ConditionalEscrow {
contract ConditionalEscrowMock is ConditionalEscrow {
mapping(address => bool) private _allowed;
constructor() public {
...
...
contracts/mocks/CrowdsaleMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../crowdsale/Crowdsale.sol";
contract CrowdsaleMock is
Initializable,
Crowdsale {
contract CrowdsaleMock is Crowdsale {
constructor(uint256 rate, address wallet, IERC20 token) public {
Crowdsale.initialize(rate, wallet, token);
}
...
...
contracts/mocks/DetailedERC20Mock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/ERC20.sol";
import "../token/ERC20/ERC20Detailed.sol";
contract ERC20DetailedMock is
Initializable,
ERC20, ERC20Detailed {
contract ERC20DetailedMock is ERC20, ERC20Detailed {
constructor(
string name,
string symbol,
...
...
contracts/mocks/ECDSAMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../cryptography/ECDSA.sol";
...
...
contracts/mocks/ERC20BurnableMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/ERC20Burnable.sol";
contract ERC20BurnableMock is
Initializable,
ERC20Burnable {
contract ERC20BurnableMock is ERC20Burnable {
constructor(address initialAccount, uint256 initialBalance) public {
_mint(initialAccount, initialBalance);
...
...
contracts/mocks/ERC20CappedMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/ERC20Capped.sol";
import "./MinterRoleMock.sol";
contract ERC20CappedMock is
Initializable,
ERC20Capped, MinterRoleMock {
contract ERC20CappedMock is ERC20Capped, MinterRoleMock {
constructor(uint256 cap) public {
ERC20Capped.initialize(cap);
...
...
contracts/mocks/ERC20MigratorMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../drafts/ERC20Migrator.sol";
contract ERC20MigratorMock is
Initializable,
ERC20Migrator {
contract ERC20MigratorMock is ERC20Migrator {
constructor(IERC20 legacyToken) public {
ERC20Migrator.initialize(legacyToken);
...
...
contracts/mocks/ERC20MintableMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/ERC20Mintable.sol";
import "./MinterRoleMock.sol";
contract ERC20MintableMock is
Initializable,
ERC20Mintable, MinterRoleMock {
contract ERC20MintableMock is ERC20Mintable, MinterRoleMock {
constructor() public {
ERC20Mintable.initialize();
...
...
contracts/mocks/ERC20Mock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/ERC20.sol";
// mock class using ERC20
contract ERC20Mock is
Initializable,
ERC20 {
contract ERC20Mock is ERC20 {
constructor(address initialAccount, uint256 initialBalance) public {
_mint(initialAccount, initialBalance);
...
...
contracts/mocks/ERC20PausableMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/ERC20Pausable.sol";
import "./PauserRoleMock.sol";
// mock class using ERC20Pausable
contract ERC20PausableMock is
Initializable,
ERC20Pausable, PauserRoleMock {
contract ERC20PausableMock is ERC20Pausable, PauserRoleMock {
constructor(address initialAccount, uint initialBalance) public {
ERC20Pausable.initialize();
...
...
contracts/mocks/ERC20WithMetadataMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/ERC20.sol";
import "../drafts/ERC1046/TokenMetadata.sol";
contract ERC20WithMetadataMock is
Initializable,
ERC20, ERC20WithMetadata {
contract ERC20WithMetadataMock is ERC20, ERC20WithMetadata {
constructor(string tokenURI) public {
ERC20WithMetadata.initialize(tokenURI);
}
...
...
contracts/mocks/ERC721FullMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC721/ERC721Full.sol";
import "../token/ERC721/ERC721Mintable.sol";
import "../token/ERC721/ERC721MetadataMintable.sol";
...
...
@@ -12,11 +11,12 @@ import "../token/ERC721/ERC721Burnable.sol";
* This mock just provides a public mint and burn functions for testing purposes,
* and a public setter for metadata URI
*/
contract ERC721FullMock is
Initializable,
ERC721Full, ERC721Mintable, ERC721MetadataMintable, ERC721Burnable {
contract ERC721FullMock is ERC721Full, ERC721Mintable, ERC721MetadataMintable, ERC721Burnable {
constructor(string name, string symbol) public
{
ERC721Full.initialize(name, symbol);
ERC721Mintable.initialize();
ERC721Burnable.initialize();
}
function exists(uint256 tokenId) public view returns (bool) {
...
...
contracts/mocks/ERC721MintableBurnableImpl.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC721/ERC721Full.sol";
import "../token/ERC721/ERC721Mintable.sol";
import "../token/ERC721/ERC721MetadataMintable.sol";
...
...
@@ -11,13 +10,14 @@ import "../token/ERC721/ERC721Burnable.sol";
* @title ERC721MintableBurnableImpl
*/
contract ERC721MintableBurnableImpl
is
Initializable,
ERC721Full, ERC721Mintable, ERC721MetadataMintable, ERC721Burnable {
is ERC721Full, ERC721Mintable, ERC721MetadataMintable, ERC721Burnable {
constructor()
public
{
ERC721Full.initialize("Test", "TEST");
ERC721Mintable.initialize();
ERC721MetadataMintable.initialize();
ERC721Burnable.initialize();
}
}
contracts/mocks/ERC721Mock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC721/ERC721.sol";
...
...
@@ -8,7 +7,7 @@ import "../token/ERC721/ERC721.sol";
* @title ERC721Mock
* This mock just provides a public mint and burn functions for testing purposes
*/
contract ERC721Mock is
Initializable,
ERC721 {
contract ERC721Mock is ERC721 {
constructor() public {
ERC721.initialize();
}
...
...
contracts/mocks/ERC721PausableMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC721/ERC721Pausable.sol";
import "./PauserRoleMock.sol";
...
...
@@ -9,7 +8,7 @@ import "./PauserRoleMock.sol";
* @title ERC721PausableMock
* This mock just provides a public mint, burn and exists functions for testing purposes
*/
contract ERC721PausableMock is
Initializable,
ERC721Pausable, PauserRoleMock {
contract ERC721PausableMock is ERC721Pausable, PauserRoleMock {
constructor() {
ERC721Pausable.initialize();
}
...
...
contracts/mocks/EscrowMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../payment/Escrow.sol";
contract EscrowMock is
Initializable,
Escrow {
contract EscrowMock is Escrow {
constructor() public {
Escrow.initialize();
}
...
...
contracts/mocks/FinalizableCrowdsaleImpl.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/IERC20.sol";
import "../crowdsale/distribution/FinalizableCrowdsale.sol";
contract FinalizableCrowdsaleImpl is
Initializable, Crowdsale, TimedCrowdsale,
FinalizableCrowdsale {
contract FinalizableCrowdsaleImpl is FinalizableCrowdsale {
constructor (
uint256 openingTime,
...
...
contracts/mocks/IncreasingPriceCrowdsaleImpl.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../crowdsale/price/IncreasingPriceCrowdsale.sol";
import "../math/SafeMath.sol";
contract IncreasingPriceCrowdsaleImpl is In
itializable, In
creasingPriceCrowdsale {
contract IncreasingPriceCrowdsaleImpl is IncreasingPriceCrowdsale {
constructor (
uint256 openingTime,
...
...
contracts/mocks/IndividuallyCappedCrowdsaleImpl.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/IERC20.sol";
import "../crowdsale/validation/IndividuallyCappedCrowdsale.sol";
import "./CapperRoleMock.sol";
contract IndividuallyCappedCrowdsaleImpl
is
Initializable,
Crowdsale, IndividuallyCappedCrowdsale, CapperRoleMock {
is Crowdsale, IndividuallyCappedCrowdsale, CapperRoleMock {
constructor(
uint256 rate,
...
...
contracts/mocks/MintedCrowdsaleImpl.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/ERC20Mintable.sol";
import "../crowdsale/emission/MintedCrowdsale.sol";
contract MintedCrowdsaleImpl is
Initializable,
MintedCrowdsale {
contract MintedCrowdsaleImpl is MintedCrowdsale {
constructor (
uint256 rate,
...
...
contracts/mocks/MinterRoleMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../access/roles/MinterRole.sol";
contract MinterRoleMock is
Initializable,
MinterRole {
contract MinterRoleMock is MinterRole {
constructor() public {
MinterRole.initialize();
}
...
...
contracts/mocks/OwnableMock.sol
View file @
716efc4b
...
...
@@ -5,7 +5,6 @@ import { Ownable } from "../ownership/Ownable.sol";
contract OwnableMock is Ownable {
constructor() {
initialize();
Ownable.
initialize();
}
}
contracts/mocks/PausableMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../lifecycle/Pausable.sol";
import "./PauserRoleMock.sol";
// mock class using Pausable
contract PausableMock is
Initializable,
Pausable, PauserRoleMock {
contract PausableMock is Pausable, PauserRoleMock {
bool public drasticMeasureTaken;
uint256 public count;
...
...
contracts/mocks/PauserRoleMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../access/roles/PauserRole.sol";
contract PauserRoleMock is
Initializable,
PauserRole {
contract PauserRoleMock is PauserRole {
constructor() public {
PauserRole.initialize();
}
...
...
contracts/mocks/PostDeliveryCrowdsaleImpl.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/IERC20.sol";
import "../crowdsale/distribution/PostDeliveryCrowdsale.sol";
contract PostDeliveryCrowdsaleImpl is
Initializable, Crowdsale, TimedCrowdsale,
PostDeliveryCrowdsale {
contract PostDeliveryCrowdsaleImpl is PostDeliveryCrowdsale {
constructor (
uint256 openingTime,
...
...
contracts/mocks/PullPaymentMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../payment/PullPayment.sol";
// mock class using PullPayment
contract PullPaymentMock is
Initializable,
PullPayment {
contract PullPaymentMock is PullPayment {
constructor() public payable {
PullPayment.initialize();
...
...
contracts/mocks/ReentrancyMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../utils/ReentrancyGuard.sol";
import "./ReentrancyAttack.sol";
contract ReentrancyMock is
Initializable,
ReentrancyGuard {
contract ReentrancyMock is ReentrancyGuard {
uint256 public counter;
...
...
contracts/mocks/RefundEscrowMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../payment/RefundEscrow.sol";
contract RefundEscrowMock is
Initializable,
RefundEscrow {
contract RefundEscrowMock is RefundEscrow {
constructor(address beneficiary) public {
RefundEscrow.initialize(beneficiary);
}
...
...
contracts/mocks/RefundableCrowdsaleImpl.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/ERC20Mintable.sol";
import "../crowdsale/distribution/RefundableCrowdsale.sol";
contract RefundableCrowdsaleImpl is
Initializable,
Crowdsale, TimedCrowdsale, RefundableCrowdsale {
contract RefundableCrowdsaleImpl is Crowdsale, TimedCrowdsale, RefundableCrowdsale {
constructor (
uint256 openingTime,
...
...
contracts/mocks/SampleCrowdsaleMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../examples/SampleCrowdsale.sol";
contract SampleCrowdsaleTokenMock is
Initializable,
SampleCrowdsaleToken {
contract SampleCrowdsaleTokenMock is SampleCrowdsaleToken {
constructor() public {
SampleCrowdsaleToken.initialize();
}
}
contract SampleCrowdsaleMock is
Initializable,
SampleCrowdsale {
contract SampleCrowdsaleMock is SampleCrowdsale {
constructor(
uint256 openingTime,
uint256 closingTime,
...
...
contracts/mocks/SecondaryMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../ownership/Secondary.sol";
contract SecondaryMock is
Initializable,
Secondary {
contract SecondaryMock is Secondary {
constructor() public {
Secondary.initialize();
}
...
...
contracts/mocks/SignatureBouncerMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../drafts/SignatureBouncer.sol";
import "./SignerRoleMock.sol";
contract SignatureBouncerMock is
Initializable,
SignatureBouncer, SignerRoleMock {
contract SignatureBouncerMock is SignatureBouncer, SignerRoleMock {
constructor() public {
SignatureBouncer.initialize();
}
...
...
contracts/mocks/SignerRoleMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../access/roles/SignerRole.sol";
contract SignerRoleMock is
Initializable,
SignerRole {
contract SignerRoleMock is SignerRole {
constructor() public {
SignerRole.initialize();
}
...
...
contracts/mocks/SimpleTokenMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../examples/SimpleToken.sol";
contract SimpleTokenMock is
Initializable,
SimpleToken {
contract SimpleTokenMock is SimpleToken {
constructor() public {
SimpleToken.initialize();
}
...
...
contracts/mocks/SplitPaymentMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../payment/SplitPayment.sol";
contract SplitPaymentMock is
Initializable,
SplitPayment {
contract SplitPaymentMock is SplitPayment {
constructor(address[] payees, uint256[] shares) public {
SplitPayment.initialize(payees, shares);
}
...
...
contracts/mocks/TimedCrowdsaleImpl.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/IERC20.sol";
import "../crowdsale/validation/TimedCrowdsale.sol";
contract TimedCrowdsaleImpl is
Initializable, Crowdsale,
TimedCrowdsale {
contract TimedCrowdsaleImpl is TimedCrowdsale {
constructor (
uint256 openingTime,
...
...
contracts/mocks/TokenTimelockMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../token/ERC20/TokenTimelock.sol";
contract TokenTimelockMock is
Initializable,
TokenTimelock {
contract TokenTimelockMock is TokenTimelock {
constructor(
IERC20 token,
address beneficiary,
...
...
contracts/mocks/TokenVestingMock.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../Initializable.sol";
import "../drafts/TokenVesting.sol";
contract TokenVestingMock is
Initializable,
TokenVesting {
contract TokenVestingMock is TokenVesting {
constructor(
address beneficiary,
uint256 start,
...
...
contracts/token/ERC721/ERC721MetadataMintable.sol
View file @
716efc4b
pragma solidity ^0.4.24;
import "../../Initializable.sol";
import "./ERC721Metadata.sol";
import "../../access/roles/MinterRole.sol";
...
...
@@ -8,7 +9,12 @@ import "../../access/roles/MinterRole.sol";
* @title ERC721MetadataMintable
* @dev ERC721 minting logic with metadata
*/
contract ERC721MetadataMintable is ERC721, ERC721Metadata, MinterRole {
contract ERC721MetadataMintable is Initializable, ERC721, ERC721Metadata, MinterRole {
function initialize() public initializer {
ERC721.initialize();
MinterRole.initialize();
}
/**
* @dev Function to mint tokens
* @param to The address that will receive the minted tokens.
...
...
contracts/token/ERC721/ERC721Mintable.sol
View file @
716efc4b
...
...
@@ -11,6 +11,7 @@ import "../../access/roles/MinterRole.sol";
*/
contract ERC721Mintable is Initializable, ERC721, MinterRole {
function initialize() public initializer {
ERC721.initialize();
MinterRole.initialize();
}
...
...
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