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
9b371046
Unverified
Commit
9b371046
authored
Sep 19, 2018
by
Francisco Giordano
Committed by
GitHub
Sep 19, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Turn off blank-lines Solium rule (#1284)
* turn off blank-lines rule * remove triple newlines
parent
3e55408c
Hide whitespace changes
Inline
Side-by-side
Showing
110 changed files
with
1 additions
and
131 deletions
+1
-131
.soliumrc.json
.soliumrc.json
+1
-0
Roles.sol
contracts/access/Roles.sol
+0
-1
CapperRole.sol
contracts/access/roles/CapperRole.sol
+0
-1
MinterRole.sol
contracts/access/roles/MinterRole.sol
+0
-1
PauserRole.sol
contracts/access/roles/PauserRole.sol
+0
-1
SignerRole.sol
contracts/access/roles/SignerRole.sol
+0
-1
BreakInvariantBounty.sol
contracts/bounties/BreakInvariantBounty.sol
+0
-3
Crowdsale.sol
contracts/crowdsale/Crowdsale.sol
+0
-1
FinalizableCrowdsale.sol
contracts/crowdsale/distribution/FinalizableCrowdsale.sol
+0
-1
PostDeliveryCrowdsale.sol
contracts/crowdsale/distribution/PostDeliveryCrowdsale.sol
+0
-1
RefundableCrowdsale.sol
contracts/crowdsale/distribution/RefundableCrowdsale.sol
+0
-2
AllowanceCrowdsale.sol
contracts/crowdsale/emission/AllowanceCrowdsale.sol
+0
-1
MintedCrowdsale.sol
contracts/crowdsale/emission/MintedCrowdsale.sol
+0
-1
IncreasingPriceCrowdsale.sol
contracts/crowdsale/price/IncreasingPriceCrowdsale.sol
+0
-1
CappedCrowdsale.sol
contracts/crowdsale/validation/CappedCrowdsale.sol
+0
-1
IndividuallyCappedCrowdsale.sol
...acts/crowdsale/validation/IndividuallyCappedCrowdsale.sol
+0
-1
TimedCrowdsale.sol
contracts/crowdsale/validation/TimedCrowdsale.sol
+0
-1
ECDSA.sol
contracts/cryptography/ECDSA.sol
+0
-1
MerkleProof.sol
contracts/cryptography/MerkleProof.sol
+0
-1
Counter.sol
contracts/drafts/Counter.sol
+0
-1
TokenMetadata.sol
contracts/drafts/ERC1046/TokenMetadata.sol
+0
-2
ERC20Migrator.sol
contracts/drafts/ERC20Migrator.sol
+0
-1
SignatureBouncer.sol
contracts/drafts/SignatureBouncer.sol
+0
-1
TokenVesting.sol
contracts/drafts/TokenVesting.sol
+0
-1
SampleCrowdsale.sol
contracts/examples/SampleCrowdsale.sol
+0
-2
SimpleToken.sol
contracts/examples/SimpleToken.sol
+0
-2
ERC165.sol
contracts/introspection/ERC165.sol
+0
-1
ERC165Checker.sol
contracts/introspection/ERC165Checker.sol
+0
-2
IERC165.sol
contracts/introspection/IERC165.sol
+0
-1
Pausable.sol
contracts/lifecycle/Pausable.sol
+0
-2
Math.sol
contracts/math/Math.sol
+0
-1
SafeMath.sol
contracts/math/SafeMath.sol
+0
-1
AddressImpl.sol
contracts/mocks/AddressImpl.sol
+0
-1
AllowanceCrowdsaleImpl.sol
contracts/mocks/AllowanceCrowdsaleImpl.sol
+0
-1
CappedCrowdsaleImpl.sol
contracts/mocks/CappedCrowdsaleImpl.sol
+0
-1
CapperRoleMock.sol
contracts/mocks/CapperRoleMock.sol
+0
-1
ConditionalEscrowMock.sol
contracts/mocks/ConditionalEscrowMock.sol
+0
-2
CounterImpl.sol
contracts/mocks/CounterImpl.sol
+0
-1
DetailedERC20Mock.sol
contracts/mocks/DetailedERC20Mock.sol
+0
-1
ECDSAMock.sol
contracts/mocks/ECDSAMock.sol
+0
-2
ERC165InterfacesSupported.sol
contracts/mocks/ERC165/ERC165InterfacesSupported.sol
+0
-3
ERC165NotSupported.sol
contracts/mocks/ERC165/ERC165NotSupported.sol
+0
-1
ERC165CheckerMock.sol
contracts/mocks/ERC165CheckerMock.sol
+0
-1
ERC165Mock.sol
contracts/mocks/ERC165Mock.sol
+0
-1
ERC20BurnableMock.sol
contracts/mocks/ERC20BurnableMock.sol
+0
-1
ERC20MintableMock.sol
contracts/mocks/ERC20MintableMock.sol
+0
-1
ERC20Mock.sol
contracts/mocks/ERC20Mock.sol
+0
-1
ERC20PausableMock.sol
contracts/mocks/ERC20PausableMock.sol
+0
-1
ERC20WithMetadataMock.sol
contracts/mocks/ERC20WithMetadataMock.sol
+0
-1
ERC721FullMock.sol
contracts/mocks/ERC721FullMock.sol
+0
-1
ERC721MintableBurnableImpl.sol
contracts/mocks/ERC721MintableBurnableImpl.sol
+0
-1
ERC721Mock.sol
contracts/mocks/ERC721Mock.sol
+0
-1
ERC721PausableMock.sol
contracts/mocks/ERC721PausableMock.sol
+0
-1
ERC721ReceiverMock.sol
contracts/mocks/ERC721ReceiverMock.sol
+0
-1
FinalizableCrowdsaleImpl.sol
contracts/mocks/FinalizableCrowdsaleImpl.sol
+0
-1
ForceEther.sol
contracts/mocks/ForceEther.sol
+0
-1
IncreasingPriceCrowdsaleImpl.sol
contracts/mocks/IncreasingPriceCrowdsaleImpl.sol
+0
-1
IndividuallyCappedCrowdsaleImpl.sol
contracts/mocks/IndividuallyCappedCrowdsaleImpl.sol
+0
-1
InsecureInvariantTargetBounty.sol
contracts/mocks/InsecureInvariantTargetBounty.sol
+0
-2
MathMock.sol
contracts/mocks/MathMock.sol
+0
-2
MerkleProofWrapper.sol
contracts/mocks/MerkleProofWrapper.sol
+0
-1
MessageHelper.sol
contracts/mocks/MessageHelper.sol
+0
-1
MintedCrowdsaleImpl.sol
contracts/mocks/MintedCrowdsaleImpl.sol
+0
-1
MinterRoleMock.sol
contracts/mocks/MinterRoleMock.sol
+0
-1
PausableMock.sol
contracts/mocks/PausableMock.sol
+0
-2
PauserRoleMock.sol
contracts/mocks/PauserRoleMock.sol
+0
-1
PostDeliveryCrowdsaleImpl.sol
contracts/mocks/PostDeliveryCrowdsaleImpl.sol
+0
-1
PullPaymentMock.sol
contracts/mocks/PullPaymentMock.sol
+0
-2
ReentrancyAttack.sol
contracts/mocks/ReentrancyAttack.sol
+0
-1
ReentrancyMock.sol
contracts/mocks/ReentrancyMock.sol
+0
-1
RefundableCrowdsaleImpl.sol
contracts/mocks/RefundableCrowdsaleImpl.sol
+0
-1
RolesMock.sol
contracts/mocks/RolesMock.sol
+0
-1
SafeERC20Helper.sol
contracts/mocks/SafeERC20Helper.sol
+0
-3
SafeMathMock.sol
contracts/mocks/SafeMathMock.sol
+0
-2
SecondaryMock.sol
contracts/mocks/SecondaryMock.sol
+0
-1
SecureInvariantTargetBounty.sol
contracts/mocks/SecureInvariantTargetBounty.sol
+0
-2
SignatureBouncerMock.sol
contracts/mocks/SignatureBouncerMock.sol
+0
-1
SignerRoleMock.sol
contracts/mocks/SignerRoleMock.sol
+0
-1
TimedCrowdsaleImpl.sol
contracts/mocks/TimedCrowdsaleImpl.sol
+0
-1
Ownable.sol
contracts/ownership/Ownable.sol
+0
-3
Secondary.sol
contracts/ownership/Secondary.sol
+0
-1
ConditionalEscrow.sol
contracts/payment/ConditionalEscrow.sol
+0
-1
Escrow.sol
contracts/payment/Escrow.sol
+0
-1
PullPayment.sol
contracts/payment/PullPayment.sol
+0
-1
RefundEscrow.sol
contracts/payment/RefundEscrow.sol
+0
-1
SplitPayment.sol
contracts/payment/SplitPayment.sol
+0
-1
ERC20.sol
contracts/token/ERC20/ERC20.sol
+0
-1
ERC20Burnable.sol
contracts/token/ERC20/ERC20Burnable.sol
+0
-1
ERC20Capped.sol
contracts/token/ERC20/ERC20Capped.sol
+0
-1
ERC20Detailed.sol
contracts/token/ERC20/ERC20Detailed.sol
+0
-1
ERC20Mintable.sol
contracts/token/ERC20/ERC20Mintable.sol
+0
-1
ERC20Pausable.sol
contracts/token/ERC20/ERC20Pausable.sol
+0
-1
IERC20.sol
contracts/token/ERC20/IERC20.sol
+0
-1
SafeERC20.sol
contracts/token/ERC20/SafeERC20.sol
+0
-1
TokenTimelock.sol
contracts/token/ERC20/TokenTimelock.sol
+0
-1
ERC721.sol
contracts/token/ERC721/ERC721.sol
+0
-1
ERC721Burnable.sol
contracts/token/ERC721/ERC721Burnable.sol
+0
-1
ERC721Enumerable.sol
contracts/token/ERC721/ERC721Enumerable.sol
+0
-1
ERC721Full.sol
contracts/token/ERC721/ERC721Full.sol
+0
-1
ERC721Holder.sol
contracts/token/ERC721/ERC721Holder.sol
+0
-1
ERC721Metadata.sol
contracts/token/ERC721/ERC721Metadata.sol
+0
-1
ERC721Mintable.sol
contracts/token/ERC721/ERC721Mintable.sol
+0
-1
ERC721Pausable.sol
contracts/token/ERC721/ERC721Pausable.sol
+0
-1
IERC721.sol
contracts/token/ERC721/IERC721.sol
+0
-1
IERC721Enumerable.sol
contracts/token/ERC721/IERC721Enumerable.sol
+0
-1
IERC721Full.sol
contracts/token/ERC721/IERC721Full.sol
+0
-1
IERC721Metadata.sol
contracts/token/ERC721/IERC721Metadata.sol
+0
-1
IERC721Receiver.sol
contracts/token/ERC721/IERC721Receiver.sol
+0
-1
Address.sol
contracts/utils/Address.sol
+0
-1
ReentrancyGuard.sol
contracts/utils/ReentrancyGuard.sol
+0
-1
No files found.
.soliumrc.json
View file @
9b371046
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
"extends"
:
"solium:all"
,
"extends"
:
"solium:all"
,
"plugins"
:
[
"security"
],
"plugins"
:
[
"security"
],
"rules"
:
{
"rules"
:
{
"blank-lines"
:
"off"
,
"error-reason"
:
"off"
,
"error-reason"
:
"off"
,
"indentation"
:
[
"error"
,
2
],
"indentation"
:
[
"error"
,
2
],
"lbrace"
:
"off"
,
"lbrace"
:
"off"
,
...
...
contracts/access/Roles.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title Roles
* @title Roles
* @dev Library for managing addresses assigned to a Role.
* @dev Library for managing addresses assigned to a Role.
...
...
contracts/access/roles/CapperRole.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../Roles.sol";
import "../Roles.sol";
contract CapperRole {
contract CapperRole {
using Roles for Roles.Role;
using Roles for Roles.Role;
...
...
contracts/access/roles/MinterRole.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../Roles.sol";
import "../Roles.sol";
contract MinterRole {
contract MinterRole {
using Roles for Roles.Role;
using Roles for Roles.Role;
...
...
contracts/access/roles/PauserRole.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../Roles.sol";
import "../Roles.sol";
contract PauserRole {
contract PauserRole {
using Roles for Roles.Role;
using Roles for Roles.Role;
...
...
contracts/access/roles/SignerRole.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../Roles.sol";
import "../Roles.sol";
contract SignerRole {
contract SignerRole {
using Roles for Roles.Role;
using Roles for Roles.Role;
...
...
contracts/bounties/BreakInvariantBounty.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
import "../payment/PullPayment.sol";
import "../payment/PullPayment.sol";
import "../ownership/Ownable.sol";
import "../ownership/Ownable.sol";
/**
/**
* @title BreakInvariantBounty
* @title BreakInvariantBounty
* @dev This bounty will pay out to a researcher if they break invariant logic of the contract.
* @dev This bounty will pay out to a researcher if they break invariant logic of the contract.
...
@@ -70,7 +68,6 @@ contract BreakInvariantBounty is PullPayment, Ownable {
...
@@ -70,7 +68,6 @@ contract BreakInvariantBounty is PullPayment, Ownable {
}
}
/**
/**
* @title Target
* @title Target
* @dev Your main contract should inherit from this class and implement the checkInvariant method.
* @dev Your main contract should inherit from this class and implement the checkInvariant method.
...
...
contracts/crowdsale/Crowdsale.sol
View file @
9b371046
...
@@ -4,7 +4,6 @@ import "../token/ERC20/IERC20.sol";
...
@@ -4,7 +4,6 @@ import "../token/ERC20/IERC20.sol";
import "../math/SafeMath.sol";
import "../math/SafeMath.sol";
import "../token/ERC20/SafeERC20.sol";
import "../token/ERC20/SafeERC20.sol";
/**
/**
* @title Crowdsale
* @title Crowdsale
* @dev Crowdsale is a base contract for managing a token crowdsale,
* @dev Crowdsale is a base contract for managing a token crowdsale,
...
...
contracts/crowdsale/distribution/FinalizableCrowdsale.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../../math/SafeMath.sol";
import "../../math/SafeMath.sol";
import "../validation/TimedCrowdsale.sol";
import "../validation/TimedCrowdsale.sol";
/**
/**
* @title FinalizableCrowdsale
* @title FinalizableCrowdsale
* @dev Extension of Crowdsale with a one-off finalization action, where one
* @dev Extension of Crowdsale with a one-off finalization action, where one
...
...
contracts/crowdsale/distribution/PostDeliveryCrowdsale.sol
View file @
9b371046
...
@@ -4,7 +4,6 @@ import "../validation/TimedCrowdsale.sol";
...
@@ -4,7 +4,6 @@ import "../validation/TimedCrowdsale.sol";
import "../../token/ERC20/IERC20.sol";
import "../../token/ERC20/IERC20.sol";
import "../../math/SafeMath.sol";
import "../../math/SafeMath.sol";
/**
/**
* @title PostDeliveryCrowdsale
* @title PostDeliveryCrowdsale
* @dev Crowdsale that locks tokens from withdrawal until it ends.
* @dev Crowdsale that locks tokens from withdrawal until it ends.
...
...
contracts/crowdsale/distribution/RefundableCrowdsale.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
import "../../math/SafeMath.sol";
import "../../math/SafeMath.sol";
import "./FinalizableCrowdsale.sol";
import "./FinalizableCrowdsale.sol";
import "../../payment/RefundEscrow.sol";
import "../../payment/RefundEscrow.sol";
/**
/**
* @title RefundableCrowdsale
* @title RefundableCrowdsale
* @dev Extension of Crowdsale contract that adds a funding goal, and
* @dev Extension of Crowdsale contract that adds a funding goal, and
...
...
contracts/crowdsale/emission/AllowanceCrowdsale.sol
View file @
9b371046
...
@@ -5,7 +5,6 @@ import "../../token/ERC20/IERC20.sol";
...
@@ -5,7 +5,6 @@ import "../../token/ERC20/IERC20.sol";
import "../../token/ERC20/SafeERC20.sol";
import "../../token/ERC20/SafeERC20.sol";
import "../../math/SafeMath.sol";
import "../../math/SafeMath.sol";
/**
/**
* @title AllowanceCrowdsale
* @title AllowanceCrowdsale
* @dev Extension of Crowdsale where tokens are held by a wallet, which approves an allowance to the crowdsale.
* @dev Extension of Crowdsale where tokens are held by a wallet, which approves an allowance to the crowdsale.
...
...
contracts/crowdsale/emission/MintedCrowdsale.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../Crowdsale.sol";
import "../Crowdsale.sol";
import "../../token/ERC20/ERC20Mintable.sol";
import "../../token/ERC20/ERC20Mintable.sol";
/**
/**
* @title MintedCrowdsale
* @title MintedCrowdsale
* @dev Extension of Crowdsale contract whose tokens are minted in each purchase.
* @dev Extension of Crowdsale contract whose tokens are minted in each purchase.
...
...
contracts/crowdsale/price/IncreasingPriceCrowdsale.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../validation/TimedCrowdsale.sol";
import "../validation/TimedCrowdsale.sol";
import "../../math/SafeMath.sol";
import "../../math/SafeMath.sol";
/**
/**
* @title IncreasingPriceCrowdsale
* @title IncreasingPriceCrowdsale
* @dev Extension of Crowdsale contract that increases the price of tokens linearly in time.
* @dev Extension of Crowdsale contract that increases the price of tokens linearly in time.
...
...
contracts/crowdsale/validation/CappedCrowdsale.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../../math/SafeMath.sol";
import "../../math/SafeMath.sol";
import "../Crowdsale.sol";
import "../Crowdsale.sol";
/**
/**
* @title CappedCrowdsale
* @title CappedCrowdsale
* @dev Crowdsale with a limit for total contributions.
* @dev Crowdsale with a limit for total contributions.
...
...
contracts/crowdsale/validation/IndividuallyCappedCrowdsale.sol
View file @
9b371046
...
@@ -4,7 +4,6 @@ import "../../math/SafeMath.sol";
...
@@ -4,7 +4,6 @@ import "../../math/SafeMath.sol";
import "../Crowdsale.sol";
import "../Crowdsale.sol";
import "../../access/roles/CapperRole.sol";
import "../../access/roles/CapperRole.sol";
/**
/**
* @title IndividuallyCappedCrowdsale
* @title IndividuallyCappedCrowdsale
* @dev Crowdsale with per-beneficiary caps.
* @dev Crowdsale with per-beneficiary caps.
...
...
contracts/crowdsale/validation/TimedCrowdsale.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../../math/SafeMath.sol";
import "../../math/SafeMath.sol";
import "../Crowdsale.sol";
import "../Crowdsale.sol";
/**
/**
* @title TimedCrowdsale
* @title TimedCrowdsale
* @dev Crowdsale accepting contributions only within a time frame.
* @dev Crowdsale accepting contributions only within a time frame.
...
...
contracts/cryptography/ECDSA.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title Elliptic curve signature operations
* @title Elliptic curve signature operations
* @dev Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d
* @dev Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d
...
...
contracts/cryptography/MerkleProof.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title MerkleProof
* @title MerkleProof
* @dev Merkle proof verification based on
* @dev Merkle proof verification based on
...
...
contracts/drafts/Counter.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title Counter
* @title Counter
* @author Matt Condon (@shrugs)
* @author Matt Condon (@shrugs)
...
...
contracts/drafts/ERC1046/TokenMetadata.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../../token/ERC20/IERC20.sol";
import "../../token/ERC20/IERC20.sol";
/**
/**
* @title ERC-1047 Token Metadata
* @title ERC-1047 Token Metadata
* @dev See https://eips.ethereum.org/EIPS/eip-1046
* @dev See https://eips.ethereum.org/EIPS/eip-1046
...
@@ -13,7 +12,6 @@ contract ERC20TokenMetadata is IERC20 {
...
@@ -13,7 +12,6 @@ contract ERC20TokenMetadata is IERC20 {
function tokenURI() external view returns (string);
function tokenURI() external view returns (string);
}
}
contract ERC20WithMetadata is ERC20TokenMetadata {
contract ERC20WithMetadata is ERC20TokenMetadata {
string private _tokenURI = "";
string private _tokenURI = "";
...
...
contracts/drafts/ERC20Migrator.sol
View file @
9b371046
...
@@ -5,7 +5,6 @@ import "../token/ERC20/ERC20Mintable.sol";
...
@@ -5,7 +5,6 @@ import "../token/ERC20/ERC20Mintable.sol";
import "../token/ERC20/SafeERC20.sol";
import "../token/ERC20/SafeERC20.sol";
import "../math/Math.sol";
import "../math/Math.sol";
/**
/**
* @title ERC20Migrator
* @title ERC20Migrator
* @dev This contract can be used to migrate an ERC20 token from one
* @dev This contract can be used to migrate an ERC20 token from one
...
...
contracts/drafts/SignatureBouncer.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../access/roles/SignerRole.sol";
import "../access/roles/SignerRole.sol";
import "../cryptography/ECDSA.sol";
import "../cryptography/ECDSA.sol";
/**
/**
* @title SignatureBouncer
* @title SignatureBouncer
* @author PhABC, Shrugs and aflesher
* @author PhABC, Shrugs and aflesher
...
...
contracts/drafts/TokenVesting.sol
View file @
9b371046
...
@@ -6,7 +6,6 @@ import "../token/ERC20/SafeERC20.sol";
...
@@ -6,7 +6,6 @@ import "../token/ERC20/SafeERC20.sol";
import "../ownership/Ownable.sol";
import "../ownership/Ownable.sol";
import "../math/SafeMath.sol";
import "../math/SafeMath.sol";
/**
/**
* @title TokenVesting
* @title TokenVesting
* @dev A token holder contract that can release its token balance gradually like a
* @dev A token holder contract that can release its token balance gradually like a
...
...
contracts/examples/SampleCrowdsale.sol
View file @
9b371046
...
@@ -5,7 +5,6 @@ import "../crowdsale/distribution/RefundableCrowdsale.sol";
...
@@ -5,7 +5,6 @@ import "../crowdsale/distribution/RefundableCrowdsale.sol";
import "../crowdsale/emission/MintedCrowdsale.sol";
import "../crowdsale/emission/MintedCrowdsale.sol";
import "../token/ERC20/ERC20Mintable.sol";
import "../token/ERC20/ERC20Mintable.sol";
/**
/**
* @title SampleCrowdsaleToken
* @title SampleCrowdsaleToken
* @dev Very simple ERC20 Token that can be minted.
* @dev Very simple ERC20 Token that can be minted.
...
@@ -18,7 +17,6 @@ contract SampleCrowdsaleToken is ERC20Mintable {
...
@@ -18,7 +17,6 @@ contract SampleCrowdsaleToken is ERC20Mintable {
uint8 public constant decimals = 18;
uint8 public constant decimals = 18;
}
}
/**
/**
* @title SampleCrowdsale
* @title SampleCrowdsale
* @dev This is an example of a fully fledged crowdsale.
* @dev This is an example of a fully fledged crowdsale.
...
...
contracts/examples/SimpleToken.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
import "../token/ERC20/ERC20.sol";
import "../token/ERC20/ERC20.sol";
/**
/**
* @title SimpleToken
* @title SimpleToken
* @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator.
* @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator.
...
...
contracts/introspection/ERC165.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "./IERC165.sol";
import "./IERC165.sol";
/**
/**
* @title ERC165
* @title ERC165
* @author Matt Condon (@shrugs)
* @author Matt Condon (@shrugs)
...
...
contracts/introspection/ERC165Checker.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title ERC165Checker
* @title ERC165Checker
* @dev Use `using ERC165Checker for address`; to include this library
* @dev Use `using ERC165Checker for address`; to include this library
...
@@ -16,7 +15,6 @@ library ERC165Checker {
...
@@ -16,7 +15,6 @@ library ERC165Checker {
* bytes4(keccak256('supportsInterface(bytes4)'))
* bytes4(keccak256('supportsInterface(bytes4)'))
*/
*/
/**
/**
* @notice Query if a contract supports ERC165
* @notice Query if a contract supports ERC165
* @param account The address of the contract to query for support of ERC165
* @param account The address of the contract to query for support of ERC165
...
...
contracts/introspection/IERC165.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title IERC165
* @title IERC165
* @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md
* @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md
...
...
contracts/lifecycle/Pausable.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../access/roles/PauserRole.sol";
import "../access/roles/PauserRole.sol";
/**
/**
* @title Pausable
* @title Pausable
* @dev Base contract which allows children to implement an emergency stop mechanism.
* @dev Base contract which allows children to implement an emergency stop mechanism.
...
@@ -13,7 +12,6 @@ contract Pausable is PauserRole {
...
@@ -13,7 +12,6 @@ contract Pausable is PauserRole {
bool private _paused = false;
bool private _paused = false;
/**
/**
* @return true if the contract is paused, false otherwise.
* @return true if the contract is paused, false otherwise.
*/
*/
...
...
contracts/math/Math.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title Math
* @title Math
* @dev Assorted math operations
* @dev Assorted math operations
...
...
contracts/math/SafeMath.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title SafeMath
* @title SafeMath
* @dev Math operations with safety checks that revert on error
* @dev Math operations with safety checks that revert on error
...
...
contracts/mocks/AddressImpl.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../utils/Address.sol";
import "../utils/Address.sol";
contract AddressImpl {
contract AddressImpl {
function isContract(address account)
function isContract(address account)
external
external
...
...
contracts/mocks/AllowanceCrowdsaleImpl.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/IERC20.sol";
import "../token/ERC20/IERC20.sol";
import "../crowdsale/emission/AllowanceCrowdsale.sol";
import "../crowdsale/emission/AllowanceCrowdsale.sol";
contract AllowanceCrowdsaleImpl is AllowanceCrowdsale {
contract AllowanceCrowdsaleImpl is AllowanceCrowdsale {
constructor (
constructor (
...
...
contracts/mocks/CappedCrowdsaleImpl.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/IERC20.sol";
import "../token/ERC20/IERC20.sol";
import "../crowdsale/validation/CappedCrowdsale.sol";
import "../crowdsale/validation/CappedCrowdsale.sol";
contract CappedCrowdsaleImpl is CappedCrowdsale {
contract CappedCrowdsaleImpl is CappedCrowdsale {
constructor (
constructor (
...
...
contracts/mocks/CapperRoleMock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../access/roles/CapperRole.sol";
import "../access/roles/CapperRole.sol";
contract CapperRoleMock is CapperRole {
contract CapperRoleMock is CapperRole {
function removeCapper(address account) public {
function removeCapper(address account) public {
_removeCapper(account);
_removeCapper(account);
...
...
contracts/mocks/ConditionalEscrowMock.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
import "../payment/ConditionalEscrow.sol";
import "../payment/ConditionalEscrow.sol";
// mock class using ConditionalEscrow
// mock class using ConditionalEscrow
contract ConditionalEscrowMock is ConditionalEscrow {
contract ConditionalEscrowMock is ConditionalEscrow {
mapping(address => bool) private _allowed;
mapping(address => bool) private _allowed;
...
...
contracts/mocks/CounterImpl.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../drafts/Counter.sol";
import "../drafts/Counter.sol";
contract CounterImpl {
contract CounterImpl {
using Counter for Counter.Counter;
using Counter for Counter.Counter;
...
...
contracts/mocks/DetailedERC20Mock.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/ERC20.sol";
import "../token/ERC20/ERC20.sol";
import "../token/ERC20/ERC20Detailed.sol";
import "../token/ERC20/ERC20Detailed.sol";
contract ERC20DetailedMock is ERC20, ERC20Detailed {
contract ERC20DetailedMock is ERC20, ERC20Detailed {
constructor(
constructor(
string name,
string name,
...
...
contracts/mocks/ECDSAMock.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
import "../cryptography/ECDSA.sol";
import "../cryptography/ECDSA.sol";
contract ECDSAMock {
contract ECDSAMock {
using ECDSA for bytes32;
using ECDSA for bytes32;
...
...
contracts/mocks/ERC165/ERC165InterfacesSupported.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../../introspection/IERC165.sol";
import "../../introspection/IERC165.sol";
/**
/**
* https://github.com/ethereum/EIPs/blob/master/EIPS/eip-214.md#specification
* https://github.com/ethereum/EIPs/blob/master/EIPS/eip-214.md#specification
* > Any attempts to make state-changing operations inside an execution instance with STATIC set to true will instead throw an exception.
* > Any attempts to make state-changing operations inside an execution instance with STATIC set to true will instead throw an exception.
...
@@ -56,8 +55,6 @@ contract SupportsInterfaceWithLookupMock is IERC165 {
...
@@ -56,8 +55,6 @@ contract SupportsInterfaceWithLookupMock is IERC165 {
}
}
}
}
contract ERC165InterfacesSupported is SupportsInterfaceWithLookupMock {
contract ERC165InterfacesSupported is SupportsInterfaceWithLookupMock {
constructor (bytes4[] interfaceIds)
constructor (bytes4[] interfaceIds)
public
public
...
...
contracts/mocks/ERC165/ERC165NotSupported.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
contract ERC165NotSupported {
contract ERC165NotSupported {
}
}
contracts/mocks/ERC165CheckerMock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../introspection/ERC165Checker.sol";
import "../introspection/ERC165Checker.sol";
contract ERC165CheckerMock {
contract ERC165CheckerMock {
using ERC165Checker for address;
using ERC165Checker for address;
...
...
contracts/mocks/ERC165Mock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../introspection/ERC165.sol";
import "../introspection/ERC165.sol";
contract ERC165Mock is ERC165 {
contract ERC165Mock is ERC165 {
function registerInterface(bytes4 interfaceId)
function registerInterface(bytes4 interfaceId)
public
public
...
...
contracts/mocks/ERC20BurnableMock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/ERC20Burnable.sol";
import "../token/ERC20/ERC20Burnable.sol";
contract ERC20BurnableMock is ERC20Burnable {
contract ERC20BurnableMock is ERC20Burnable {
constructor(address initialAccount, uint256 initialBalance) public {
constructor(address initialAccount, uint256 initialBalance) public {
...
...
contracts/mocks/ERC20MintableMock.sol
View file @
9b371046
...
@@ -3,6 +3,5 @@ pragma solidity ^0.4.24;
...
@@ -3,6 +3,5 @@ pragma solidity ^0.4.24;
import "../token/ERC20/ERC20Mintable.sol";
import "../token/ERC20/ERC20Mintable.sol";
import "./MinterRoleMock.sol";
import "./MinterRoleMock.sol";
contract ERC20MintableMock is ERC20Mintable, MinterRoleMock {
contract ERC20MintableMock is ERC20Mintable, MinterRoleMock {
}
}
contracts/mocks/ERC20Mock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/ERC20.sol";
import "../token/ERC20/ERC20.sol";
// mock class using ERC20
// mock class using ERC20
contract ERC20Mock is ERC20 {
contract ERC20Mock is ERC20 {
...
...
contracts/mocks/ERC20PausableMock.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/ERC20Pausable.sol";
import "../token/ERC20/ERC20Pausable.sol";
import "./PauserRoleMock.sol";
import "./PauserRoleMock.sol";
// mock class using ERC20Pausable
// mock class using ERC20Pausable
contract ERC20PausableMock is ERC20Pausable, PauserRoleMock {
contract ERC20PausableMock is ERC20Pausable, PauserRoleMock {
...
...
contracts/mocks/ERC20WithMetadataMock.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/ERC20.sol";
import "../token/ERC20/ERC20.sol";
import "../drafts/ERC1046/TokenMetadata.sol";
import "../drafts/ERC1046/TokenMetadata.sol";
contract ERC20WithMetadataMock is ERC20, ERC20WithMetadata {
contract ERC20WithMetadataMock is ERC20, ERC20WithMetadata {
constructor(string tokenURI) public
constructor(string tokenURI) public
ERC20WithMetadata(tokenURI)
ERC20WithMetadata(tokenURI)
...
...
contracts/mocks/ERC721FullMock.sol
View file @
9b371046
...
@@ -4,7 +4,6 @@ import "../token/ERC721/ERC721Full.sol";
...
@@ -4,7 +4,6 @@ import "../token/ERC721/ERC721Full.sol";
import "../token/ERC721/ERC721Mintable.sol";
import "../token/ERC721/ERC721Mintable.sol";
import "../token/ERC721/ERC721Burnable.sol";
import "../token/ERC721/ERC721Burnable.sol";
/**
/**
* @title ERC721Mock
* @title ERC721Mock
* This mock just provides a public mint and burn functions for testing purposes,
* This mock just provides a public mint and burn functions for testing purposes,
...
...
contracts/mocks/ERC721MintableBurnableImpl.sol
View file @
9b371046
...
@@ -4,7 +4,6 @@ import "../token/ERC721/ERC721Full.sol";
...
@@ -4,7 +4,6 @@ import "../token/ERC721/ERC721Full.sol";
import "../token/ERC721/ERC721Mintable.sol";
import "../token/ERC721/ERC721Mintable.sol";
import "../token/ERC721/ERC721Burnable.sol";
import "../token/ERC721/ERC721Burnable.sol";
/**
/**
* @title ERC721MintableBurnableImpl
* @title ERC721MintableBurnableImpl
*/
*/
...
...
contracts/mocks/ERC721Mock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../token/ERC721/ERC721.sol";
import "../token/ERC721/ERC721.sol";
/**
/**
* @title ERC721Mock
* @title ERC721Mock
* This mock just provides a public mint and burn functions for testing purposes
* This mock just provides a public mint and burn functions for testing purposes
...
...
contracts/mocks/ERC721PausableMock.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC721/ERC721Pausable.sol";
import "../token/ERC721/ERC721Pausable.sol";
import "./PauserRoleMock.sol";
import "./PauserRoleMock.sol";
/**
/**
* @title ERC721PausableMock
* @title ERC721PausableMock
* This mock just provides a public mint, burn and exists functions for testing purposes
* This mock just provides a public mint, burn and exists functions for testing purposes
...
...
contracts/mocks/ERC721ReceiverMock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../token/ERC721/IERC721Receiver.sol";
import "../token/ERC721/IERC721Receiver.sol";
contract ERC721ReceiverMock is IERC721Receiver {
contract ERC721ReceiverMock is IERC721Receiver {
bytes4 private _retval;
bytes4 private _retval;
bool private _reverts;
bool private _reverts;
...
...
contracts/mocks/FinalizableCrowdsaleImpl.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/IERC20.sol";
import "../token/ERC20/IERC20.sol";
import "../crowdsale/distribution/FinalizableCrowdsale.sol";
import "../crowdsale/distribution/FinalizableCrowdsale.sol";
contract FinalizableCrowdsaleImpl is FinalizableCrowdsale {
contract FinalizableCrowdsaleImpl is FinalizableCrowdsale {
constructor (
constructor (
...
...
contracts/mocks/ForceEther.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
// @title Force Ether into a contract.
// @title Force Ether into a contract.
// @notice even
// @notice even
// if the contract is not payable.
// if the contract is not payable.
...
...
contracts/mocks/IncreasingPriceCrowdsaleImpl.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../crowdsale/price/IncreasingPriceCrowdsale.sol";
import "../crowdsale/price/IncreasingPriceCrowdsale.sol";
import "../math/SafeMath.sol";
import "../math/SafeMath.sol";
contract IncreasingPriceCrowdsaleImpl is IncreasingPriceCrowdsale {
contract IncreasingPriceCrowdsaleImpl is IncreasingPriceCrowdsale {
constructor (
constructor (
...
...
contracts/mocks/IndividuallyCappedCrowdsaleImpl.sol
View file @
9b371046
...
@@ -4,7 +4,6 @@ import "../token/ERC20/IERC20.sol";
...
@@ -4,7 +4,6 @@ import "../token/ERC20/IERC20.sol";
import "../crowdsale/validation/IndividuallyCappedCrowdsale.sol";
import "../crowdsale/validation/IndividuallyCappedCrowdsale.sol";
import "./CapperRoleMock.sol";
import "./CapperRoleMock.sol";
contract IndividuallyCappedCrowdsaleImpl
contract IndividuallyCappedCrowdsaleImpl
is IndividuallyCappedCrowdsale, CapperRoleMock {
is IndividuallyCappedCrowdsale, CapperRoleMock {
...
...
contracts/mocks/InsecureInvariantTargetBounty.sol
View file @
9b371046
...
@@ -5,14 +5,12 @@ pragma solidity ^0.4.24;
...
@@ -5,14 +5,12 @@ pragma solidity ^0.4.24;
// solium-disable-next-line max-len
// solium-disable-next-line max-len
import {BreakInvariantBounty, Target} from "../bounties/BreakInvariantBounty.sol";
import {BreakInvariantBounty, Target} from "../bounties/BreakInvariantBounty.sol";
contract InsecureInvariantTargetMock is Target {
contract InsecureInvariantTargetMock is Target {
function checkInvariant() public returns(bool) {
function checkInvariant() public returns(bool) {
return false;
return false;
}
}
}
}
contract InsecureInvariantTargetBounty is BreakInvariantBounty {
contract InsecureInvariantTargetBounty is BreakInvariantBounty {
function _deployContract() internal returns (address) {
function _deployContract() internal returns (address) {
return new InsecureInvariantTargetMock();
return new InsecureInvariantTargetMock();
...
...
contracts/mocks/MathMock.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
import "../math/Math.sol";
import "../math/Math.sol";
contract MathMock {
contract MathMock {
function max(uint256 a, uint256 b) public pure returns (uint256) {
function max(uint256 a, uint256 b) public pure returns (uint256) {
return Math.max(a, b);
return Math.max(a, b);
...
...
contracts/mocks/MerkleProofWrapper.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import { MerkleProof } from "../cryptography/MerkleProof.sol";
import { MerkleProof } from "../cryptography/MerkleProof.sol";
contract MerkleProofWrapper {
contract MerkleProofWrapper {
function verify(
function verify(
...
...
contracts/mocks/MessageHelper.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
contract MessageHelper {
contract MessageHelper {
event Show(bytes32 b32, uint256 number, string text);
event Show(bytes32 b32, uint256 number, string text);
...
...
contracts/mocks/MintedCrowdsaleImpl.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/ERC20Mintable.sol";
import "../token/ERC20/ERC20Mintable.sol";
import "../crowdsale/emission/MintedCrowdsale.sol";
import "../crowdsale/emission/MintedCrowdsale.sol";
contract MintedCrowdsaleImpl is MintedCrowdsale {
contract MintedCrowdsaleImpl is MintedCrowdsale {
constructor (
constructor (
...
...
contracts/mocks/MinterRoleMock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../access/roles/MinterRole.sol";
import "../access/roles/MinterRole.sol";
contract MinterRoleMock is MinterRole {
contract MinterRoleMock is MinterRole {
function removeMinter(address account) public {
function removeMinter(address account) public {
_removeMinter(account);
_removeMinter(account);
...
...
contracts/mocks/PausableMock.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
import "../lifecycle/Pausable.sol";
import "../lifecycle/Pausable.sol";
import "./PauserRoleMock.sol";
import "./PauserRoleMock.sol";
// mock class using Pausable
// mock class using Pausable
contract PausableMock is Pausable, PauserRoleMock {
contract PausableMock is Pausable, PauserRoleMock {
bool public drasticMeasureTaken;
bool public drasticMeasureTaken;
...
...
contracts/mocks/PauserRoleMock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../access/roles/PauserRole.sol";
import "../access/roles/PauserRole.sol";
contract PauserRoleMock is PauserRole {
contract PauserRoleMock is PauserRole {
function removePauser(address account) public {
function removePauser(address account) public {
_removePauser(account);
_removePauser(account);
...
...
contracts/mocks/PostDeliveryCrowdsaleImpl.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/IERC20.sol";
import "../token/ERC20/IERC20.sol";
import "../crowdsale/distribution/PostDeliveryCrowdsale.sol";
import "../crowdsale/distribution/PostDeliveryCrowdsale.sol";
contract PostDeliveryCrowdsaleImpl is PostDeliveryCrowdsale {
contract PostDeliveryCrowdsaleImpl is PostDeliveryCrowdsale {
constructor (
constructor (
...
...
contracts/mocks/PullPaymentMock.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
import "../payment/PullPayment.sol";
import "../payment/PullPayment.sol";
// mock class using PullPayment
// mock class using PullPayment
contract PullPaymentMock is PullPayment {
contract PullPaymentMock is PullPayment {
...
...
contracts/mocks/ReentrancyAttack.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
contract ReentrancyAttack {
contract ReentrancyAttack {
function callSender(bytes4 data) public {
function callSender(bytes4 data) public {
...
...
contracts/mocks/ReentrancyMock.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../utils/ReentrancyGuard.sol";
import "../utils/ReentrancyGuard.sol";
import "./ReentrancyAttack.sol";
import "./ReentrancyAttack.sol";
contract ReentrancyMock is ReentrancyGuard {
contract ReentrancyMock is ReentrancyGuard {
uint256 public counter;
uint256 public counter;
...
...
contracts/mocks/RefundableCrowdsaleImpl.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/ERC20Mintable.sol";
import "../token/ERC20/ERC20Mintable.sol";
import "../crowdsale/distribution/RefundableCrowdsale.sol";
import "../crowdsale/distribution/RefundableCrowdsale.sol";
contract RefundableCrowdsaleImpl is RefundableCrowdsale {
contract RefundableCrowdsaleImpl is RefundableCrowdsale {
constructor (
constructor (
...
...
contracts/mocks/RolesMock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../access/Roles.sol";
import "../access/Roles.sol";
contract RolesMock {
contract RolesMock {
using Roles for Roles.Role;
using Roles for Roles.Role;
...
...
contracts/mocks/SafeERC20Helper.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/IERC20.sol";
import "../token/ERC20/IERC20.sol";
import "../token/ERC20/SafeERC20.sol";
import "../token/ERC20/SafeERC20.sol";
contract ERC20FailingMock is IERC20 {
contract ERC20FailingMock is IERC20 {
function totalSupply() public view returns (uint256) {
function totalSupply() public view returns (uint256) {
return 0;
return 0;
...
@@ -30,7 +29,6 @@ contract ERC20FailingMock is IERC20 {
...
@@ -30,7 +29,6 @@ contract ERC20FailingMock is IERC20 {
}
}
}
}
contract ERC20SucceedingMock is IERC20 {
contract ERC20SucceedingMock is IERC20 {
function totalSupply() public view returns (uint256) {
function totalSupply() public view returns (uint256) {
return 0;
return 0;
...
@@ -57,7 +55,6 @@ contract ERC20SucceedingMock is IERC20 {
...
@@ -57,7 +55,6 @@ contract ERC20SucceedingMock is IERC20 {
}
}
}
}
contract SafeERC20Helper {
contract SafeERC20Helper {
using SafeERC20 for IERC20;
using SafeERC20 for IERC20;
...
...
contracts/mocks/SafeMathMock.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
import "../math/SafeMath.sol";
import "../math/SafeMath.sol";
contract SafeMathMock {
contract SafeMathMock {
function mul(uint256 a, uint256 b) public pure returns (uint256) {
function mul(uint256 a, uint256 b) public pure returns (uint256) {
...
...
contracts/mocks/SecondaryMock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../ownership/Secondary.sol";
import "../ownership/Secondary.sol";
contract SecondaryMock is Secondary {
contract SecondaryMock is Secondary {
function onlyPrimaryMock() public view onlyPrimary {
function onlyPrimaryMock() public view onlyPrimary {
}
}
...
...
contracts/mocks/SecureInvariantTargetBounty.sol
View file @
9b371046
...
@@ -5,14 +5,12 @@ pragma solidity ^0.4.24;
...
@@ -5,14 +5,12 @@ pragma solidity ^0.4.24;
// solium-disable-next-line max-len
// solium-disable-next-line max-len
import {BreakInvariantBounty, Target} from "../bounties/BreakInvariantBounty.sol";
import {BreakInvariantBounty, Target} from "../bounties/BreakInvariantBounty.sol";
contract SecureInvariantTargetMock is Target {
contract SecureInvariantTargetMock is Target {
function checkInvariant() public returns(bool) {
function checkInvariant() public returns(bool) {
return true;
return true;
}
}
}
}
contract SecureInvariantTargetBounty is BreakInvariantBounty {
contract SecureInvariantTargetBounty is BreakInvariantBounty {
function _deployContract() internal returns (address) {
function _deployContract() internal returns (address) {
return new SecureInvariantTargetMock();
return new SecureInvariantTargetMock();
...
...
contracts/mocks/SignatureBouncerMock.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../drafts/SignatureBouncer.sol";
import "../drafts/SignatureBouncer.sol";
import "./SignerRoleMock.sol";
import "./SignerRoleMock.sol";
contract SignatureBouncerMock is SignatureBouncer, SignerRoleMock {
contract SignatureBouncerMock is SignatureBouncer, SignerRoleMock {
function checkValidSignature(address account, bytes signature)
function checkValidSignature(address account, bytes signature)
public
public
...
...
contracts/mocks/SignerRoleMock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../access/roles/SignerRole.sol";
import "../access/roles/SignerRole.sol";
contract SignerRoleMock is SignerRole {
contract SignerRoleMock is SignerRole {
function removeSigner(address account) public {
function removeSigner(address account) public {
_removeSigner(account);
_removeSigner(account);
...
...
contracts/mocks/TimedCrowdsaleImpl.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../token/ERC20/IERC20.sol";
import "../token/ERC20/IERC20.sol";
import "../crowdsale/validation/TimedCrowdsale.sol";
import "../crowdsale/validation/TimedCrowdsale.sol";
contract TimedCrowdsaleImpl is TimedCrowdsale {
contract TimedCrowdsaleImpl is TimedCrowdsale {
constructor (
constructor (
...
...
contracts/ownership/Ownable.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title Ownable
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* @dev The Ownable contract has an owner address, and provides basic authorization control
...
@@ -9,14 +8,12 @@ pragma solidity ^0.4.24;
...
@@ -9,14 +8,12 @@ pragma solidity ^0.4.24;
contract Ownable {
contract Ownable {
address private _owner;
address private _owner;
event OwnershipRenounced(address indexed previousOwner);
event OwnershipRenounced(address indexed previousOwner);
event OwnershipTransferred(
event OwnershipTransferred(
address indexed previousOwner,
address indexed previousOwner,
address indexed newOwner
address indexed newOwner
);
);
/**
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
* account.
...
...
contracts/ownership/Secondary.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title Secondary
* @title Secondary
* @dev A Secondary contract can only be used by its primary account (the one that created it)
* @dev A Secondary contract can only be used by its primary account (the one that created it)
...
...
contracts/payment/ConditionalEscrow.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "./Escrow.sol";
import "./Escrow.sol";
/**
/**
* @title ConditionalEscrow
* @title ConditionalEscrow
* @dev Base abstract escrow to only allow withdrawal if a condition is met.
* @dev Base abstract escrow to only allow withdrawal if a condition is met.
...
...
contracts/payment/Escrow.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "../math/SafeMath.sol";
import "../math/SafeMath.sol";
import "../ownership/Secondary.sol";
import "../ownership/Secondary.sol";
/**
/**
* @title Escrow
* @title Escrow
* @dev Base escrow contract, holds funds destinated to a payee until they
* @dev Base escrow contract, holds funds destinated to a payee until they
...
...
contracts/payment/PullPayment.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "./Escrow.sol";
import "./Escrow.sol";
/**
/**
* @title PullPayment
* @title PullPayment
* @dev Base contract supporting async send for pull payments. Inherit from this
* @dev Base contract supporting async send for pull payments. Inherit from this
...
...
contracts/payment/RefundEscrow.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "./ConditionalEscrow.sol";
import "./ConditionalEscrow.sol";
import "../ownership/Secondary.sol";
import "../ownership/Secondary.sol";
/**
/**
* @title RefundEscrow
* @title RefundEscrow
* @dev Escrow that holds funds for a beneficiary, deposited from multiple parties.
* @dev Escrow that holds funds for a beneficiary, deposited from multiple parties.
...
...
contracts/payment/SplitPayment.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../math/SafeMath.sol";
import "../math/SafeMath.sol";
/**
/**
* @title SplitPayment
* @title SplitPayment
* @dev This contract can be used when payments need to be received by a group
* @dev This contract can be used when payments need to be received by a group
...
...
contracts/token/ERC20/ERC20.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "./IERC20.sol";
import "./IERC20.sol";
import "../../math/SafeMath.sol";
import "../../math/SafeMath.sol";
/**
/**
* @title Standard ERC20 token
* @title Standard ERC20 token
*
*
...
...
contracts/token/ERC20/ERC20Burnable.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "./ERC20.sol";
import "./ERC20.sol";
/**
/**
* @title Burnable Token
* @title Burnable Token
* @dev Token that can be irreversibly burned (destroyed).
* @dev Token that can be irreversibly burned (destroyed).
...
...
contracts/token/ERC20/ERC20Capped.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "./ERC20Mintable.sol";
import "./ERC20Mintable.sol";
/**
/**
* @title Capped token
* @title Capped token
* @dev Mintable token with a token cap.
* @dev Mintable token with a token cap.
...
...
contracts/token/ERC20/ERC20Detailed.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "./IERC20.sol";
import "./IERC20.sol";
/**
/**
* @title ERC20Detailed token
* @title ERC20Detailed token
* @dev The decimals are only for visualization purposes.
* @dev The decimals are only for visualization purposes.
...
...
contracts/token/ERC20/ERC20Mintable.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "./ERC20.sol";
import "./ERC20.sol";
import "../../access/roles/MinterRole.sol";
import "../../access/roles/MinterRole.sol";
/**
/**
* @title ERC20Mintable
* @title ERC20Mintable
* @dev ERC20 minting logic
* @dev ERC20 minting logic
...
...
contracts/token/ERC20/ERC20Pausable.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "./ERC20.sol";
import "./ERC20.sol";
import "../../lifecycle/Pausable.sol";
import "../../lifecycle/Pausable.sol";
/**
/**
* @title Pausable token
* @title Pausable token
* @dev ERC20 modified with pausable transfers.
* @dev ERC20 modified with pausable transfers.
...
...
contracts/token/ERC20/IERC20.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title ERC20 interface
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
* @dev see https://github.com/ethereum/EIPs/issues/20
...
...
contracts/token/ERC20/SafeERC20.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "./ERC20.sol";
import "./ERC20.sol";
import "./IERC20.sol";
import "./IERC20.sol";
/**
/**
* @title SafeERC20
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure.
* @dev Wrappers around ERC20 operations that throw on failure.
...
...
contracts/token/ERC20/TokenTimelock.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "./SafeERC20.sol";
import "./SafeERC20.sol";
/**
/**
* @title TokenTimelock
* @title TokenTimelock
* @dev TokenTimelock is a token holder contract that will allow a
* @dev TokenTimelock is a token holder contract that will allow a
...
...
contracts/token/ERC721/ERC721.sol
View file @
9b371046
...
@@ -6,7 +6,6 @@ import "../../math/SafeMath.sol";
...
@@ -6,7 +6,6 @@ import "../../math/SafeMath.sol";
import "../../utils/Address.sol";
import "../../utils/Address.sol";
import "../../introspection/ERC165.sol";
import "../../introspection/ERC165.sol";
/**
/**
* @title ERC721 Non-Fungible Token Standard basic implementation
* @title ERC721 Non-Fungible Token Standard basic implementation
* @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
* @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
...
...
contracts/token/ERC721/ERC721Burnable.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "./ERC721.sol";
import "./ERC721.sol";
contract ERC721Burnable is ERC721 {
contract ERC721Burnable is ERC721 {
function burn(uint256 tokenId)
function burn(uint256 tokenId)
public
public
...
...
contracts/token/ERC721/ERC721Enumerable.sol
View file @
9b371046
...
@@ -4,7 +4,6 @@ import "./IERC721Enumerable.sol";
...
@@ -4,7 +4,6 @@ import "./IERC721Enumerable.sol";
import "./ERC721.sol";
import "./ERC721.sol";
import "../../introspection/ERC165.sol";
import "../../introspection/ERC165.sol";
contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {
contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {
// Mapping from owner to list of owned token IDs
// Mapping from owner to list of owned token IDs
mapping(address => uint256[]) private _ownedTokens;
mapping(address => uint256[]) private _ownedTokens;
...
...
contracts/token/ERC721/ERC721Full.sol
View file @
9b371046
...
@@ -4,7 +4,6 @@ import "./ERC721.sol";
...
@@ -4,7 +4,6 @@ import "./ERC721.sol";
import "./ERC721Enumerable.sol";
import "./ERC721Enumerable.sol";
import "./ERC721Metadata.sol";
import "./ERC721Metadata.sol";
/**
/**
* @title Full ERC721 Token
* @title Full ERC721 Token
* This implementation includes all the required and some optional functionality of the ERC721 standard
* This implementation includes all the required and some optional functionality of the ERC721 standard
...
...
contracts/token/ERC721/ERC721Holder.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "./IERC721Receiver.sol";
import "./IERC721Receiver.sol";
contract ERC721Holder is IERC721Receiver {
contract ERC721Holder is IERC721Receiver {
function onERC721Received(
function onERC721Received(
address,
address,
...
...
contracts/token/ERC721/ERC721Metadata.sol
View file @
9b371046
...
@@ -4,7 +4,6 @@ import "./ERC721.sol";
...
@@ -4,7 +4,6 @@ import "./ERC721.sol";
import "./IERC721Metadata.sol";
import "./IERC721Metadata.sol";
import "../../introspection/ERC165.sol";
import "../../introspection/ERC165.sol";
contract ERC721Metadata is ERC165, ERC721, IERC721Metadata {
contract ERC721Metadata is ERC165, ERC721, IERC721Metadata {
// Token name
// Token name
string internal _name;
string internal _name;
...
...
contracts/token/ERC721/ERC721Mintable.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "./ERC721Full.sol";
import "./ERC721Full.sol";
import "../../access/roles/MinterRole.sol";
import "../../access/roles/MinterRole.sol";
/**
/**
* @title ERC721Mintable
* @title ERC721Mintable
* @dev ERC721 minting logic
* @dev ERC721 minting logic
...
...
contracts/token/ERC721/ERC721Pausable.sol
View file @
9b371046
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
...
@@ -3,7 +3,6 @@ pragma solidity ^0.4.24;
import "./ERC721.sol";
import "./ERC721.sol";
import "../../lifecycle/Pausable.sol";
import "../../lifecycle/Pausable.sol";
/**
/**
* @title ERC721 Non-Fungible Pausable token
* @title ERC721 Non-Fungible Pausable token
* @dev ERC721 modified with pausable transfers.
* @dev ERC721 modified with pausable transfers.
...
...
contracts/token/ERC721/IERC721.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "../../introspection/IERC165.sol";
import "../../introspection/IERC165.sol";
/**
/**
* @title ERC721 Non-Fungible Token Standard basic interface
* @title ERC721 Non-Fungible Token Standard basic interface
* @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
* @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
...
...
contracts/token/ERC721/IERC721Enumerable.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "./IERC721.sol";
import "./IERC721.sol";
/**
/**
* @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
* @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
* @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
* @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
...
...
contracts/token/ERC721/IERC721Full.sol
View file @
9b371046
...
@@ -4,7 +4,6 @@ import "./IERC721.sol";
...
@@ -4,7 +4,6 @@ import "./IERC721.sol";
import "./IERC721Enumerable.sol";
import "./IERC721Enumerable.sol";
import "./IERC721Metadata.sol";
import "./IERC721Metadata.sol";
/**
/**
* @title ERC-721 Non-Fungible Token Standard, full implementation interface
* @title ERC-721 Non-Fungible Token Standard, full implementation interface
* @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
* @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
...
...
contracts/token/ERC721/IERC721Metadata.sol
View file @
9b371046
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
...
@@ -2,7 +2,6 @@ pragma solidity ^0.4.24;
import "./IERC721.sol";
import "./IERC721.sol";
/**
/**
* @title ERC-721 Non-Fungible Token Standard, optional metadata extension
* @title ERC-721 Non-Fungible Token Standard, optional metadata extension
* @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
* @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
...
...
contracts/token/ERC721/IERC721Receiver.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title ERC721 token receiver interface
* @title ERC721 token receiver interface
* @dev Interface for any contract that wants to support safeTransfers
* @dev Interface for any contract that wants to support safeTransfers
...
...
contracts/utils/Address.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* Utility library of inline functions on addresses
* Utility library of inline functions on addresses
*/
*/
...
...
contracts/utils/ReentrancyGuard.sol
View file @
9b371046
pragma solidity ^0.4.24;
pragma solidity ^0.4.24;
/**
/**
* @title Helps contracts guard against reentrancy attacks.
* @title Helps contracts guard against reentrancy attacks.
* @author Remco Bloemen <remco@2π.com>, Eenae <alexey@mixbytes.io>
* @author Remco Bloemen <remco@2π.com>, Eenae <alexey@mixbytes.io>
...
...
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