## Securify Report
There were 75 violations and 41 warnings found. Additionally, there are 28 cases that Securify couldn't identify correctly. To give feedback, please visit [securify.ch](https://securify.ch).

### [contracts/crowdsale/Crowdsale.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/crowdsale/Crowdsale.sol):`Crowdsale`

There were 1 violations and 2 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

TODAmount

- Warning on line [196](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/crowdsale/Crowdsale.sol#L196)
```js
       */
      function _forwardFunds() internal {
          _wallet.transfer(msg.value);    // <===
      }

```

UnrestrictedEtherFlow

- Warning on line [196](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/crowdsale/Crowdsale.sol#L196)
```js
       */
      function _forwardFunds() internal {
          _wallet.transfer(msg.value);    // <===
      }

```

UnrestrictedWrite

- Violation on line [24](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/crowdsale/Crowdsale.sol#L24)
```js
      using SafeERC20 for IERC20;

      // The token being sold    // <===
      IERC20 private _token;

```

- Conflict on line [118](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/crowdsale/Crowdsale.sol#L118)
```js

          // update state
          _weiRaised = _weiRaised.add(weiAmount);    // <===

          _processPurchase(beneficiary, tokens);
```

### [contracts/drafts/ERC1046/ERC20Metadata.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/ERC1046/ERC20Metadata.sol):`ERC20Metadata`

There were 1 violations and 0 warnings found.

LockedEther

- Violation on line [10](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/ERC1046/ERC20Metadata.sol#L10)
```js
   * @dev tokenURI must respond with a URI that implements https://eips.ethereum.org/EIPS/eip-1047
   */
  contract ERC20Metadata {    // <===
      string private _tokenURI;

```

### [contracts/drafts/ERC20Migrator.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/ERC20Migrator.sol):`ERC20Migrator`

There were 2 violations and 0 warnings found.

LockedEther

- Violation on line [34](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/ERC20Migrator.sol#L34)
```js
   * ```
   */
  contract ERC20Migrator {    // <===
      using SafeERC20 for IERC20;

```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [75](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/ERC20Migrator.sol#L75)
```js
          require(newToken_.isMinter(address(this)));

          _newToken = newToken_;    // <===
      }

```

</details>

</details>

### [contracts/drafts/ERC20Snapshot.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/ERC20Snapshot.sol):`ERC20Snapshot`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [27](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/ERC20Snapshot.sol#L27)
```js

      // Snapshotted values have arrays of ids and the value corresponding to that id. These could be an array of a
      // Snapshot struct, but that would impede usage of functions that work on an array.    // <===
      struct Snapshots {
          uint256[] ids;
```

</details>

</details>

### [contracts/drafts/TokenVesting.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/TokenVesting.sol):`TokenVesting`

<details><summary><strong>There were 2 violations and 0 warnings found. Additionally, there are 4 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [13](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/TokenVesting.sol#L13)
```js
   * owner.
   */
  contract TokenVesting is Ownable {    // <===
      // The vesting schedule is time-based (i.e. using block timestamps as opposed to e.g. block numbers), and is
      // therefore sensitive to timestamp manipulation (which is something miners can do, to a certain degree). Therefore,
```

</details>

<details><summary><strong>RepeatedCall</strong></summary>

- Violation on line [161](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/TokenVesting.sol#L161)
```js
       */
      function _vestedAmount(IERC20 token) private view returns (uint256) {
          uint256 currentBalance = token.balanceOf(address(this));    // <===
          uint256 totalBalance = currentBalance.add(_released[address(token)]);

```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Conflict on line [41](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/TokenVesting.sol#L41)
```js
      /**
       * @dev Creates a vesting contract that vests its balance of any ERC20 token to the
       * beneficiary, gradually in a linear fashion until start + duration. By then all    // <===
       * of the balance will have vested.
       * @param beneficiary address of the beneficiary to whom vested tokens are transferred
```

- Conflict on line [49](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/TokenVesting.sol#L49)
```js
       * @param revocable whether the vesting is revocable or not
       */
      constructor (address beneficiary, uint256 start, uint256 cliffDuration, uint256 duration, bool revocable) public {    // <===
          require(beneficiary != address(0));
          require(cliffDuration <= duration);
```

- Conflict on line [120](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/TokenVesting.sol#L120)
```js
          require(unreleased > 0);

          _released[address(token)] = _released[address(token)].add(unreleased);    // <===

          token.safeTransfer(_beneficiary, unreleased);
```

- Conflict on line [141](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/drafts/TokenVesting.sol#L141)
```js
          uint256 refund = balance.sub(unreleased);

          _revoked[address(token)] = true;    // <===

          token.safeTransfer(owner(), refund);
```

</details>

</details>

### [contracts/examples/SampleCrowdsale.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/examples/SampleCrowdsale.sol):`SampleCrowdsale`

<details><summary><strong>There were 2 violations and 0 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [25](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/examples/SampleCrowdsale.sol#L25)
```js
   * The way to add new features to a base crowdsale is by multiple inheritance.
   * In this example we are providing following extensions:
   * CappedCrowdsale - sets a max boundary for raised funds    // <===
   * RefundableCrowdsale - set a min goal to be reached and returns funds if it's not met
   * MintedCrowdsale - assumes the token can be minted by the crowdsale, which does so
```

- Violation on line [26](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/examples/SampleCrowdsale.sol#L26)
```js
   * In this example we are providing following extensions:
   * CappedCrowdsale - sets a max boundary for raised funds
   * RefundableCrowdsale - set a min goal to be reached and returns funds if it's not met    // <===
   * MintedCrowdsale - assumes the token can be minted by the crowdsale, which does so
   * when receiving purchases.
```

- Conflict on line [54](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/examples/SampleCrowdsale.sol#L54)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/examples/SampleCrowdsale.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/examples/SampleCrowdsale.sol):`SampleCrowdsaleToken`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [14](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/examples/SampleCrowdsale.sol#L14)
```js
   * It is meant to be used in a crowdsale contract.
   */
  contract SampleCrowdsaleToken is ERC20Mintable, ERC20Detailed {    // <===
      constructor () public ERC20Detailed("Sample Crowdsale Token", "SCT", 18) {
          // solhint-disable-previous-line no-empty-blocks
```

</details>

</details>

### [contracts/examples/SimpleToken.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/examples/SimpleToken.sol):`SimpleToken`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [12](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/examples/SimpleToken.sol#L12)
```js
   * `ERC20` functions.
   */
  contract SimpleToken is ERC20, ERC20Detailed {    // <===
      uint8 public constant DECIMALS = 18;
      uint256 public constant INITIAL_SUPPLY = 10000 * (10 ** uint256(DECIMALS));
```

</details>

</details>

### [contracts/mocks/Acknowledger.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/Acknowledger.sol):`Acknowledger`

<details><summary><strong>There were 3 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>MissingInputValidation</strong></summary>

- Violation on line [8](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/Acknowledger.sol#L8)
```js
      event AcknowledgeBarDouble(uint256 a, uint256 b);

      function foo(uint256 a) public {    // <===
          emit AcknowledgeFoo(a);
      }
```

- Violation on line [12](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/Acknowledger.sol#L12)
```js
      }

      function bar(uint256 a) public {    // <===
          emit AcknowledgeBarSingle(a);
      }
```

- Violation on line [16](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/Acknowledger.sol#L16)
```js
      }

      function bar(uint256 a, uint256 b) public {    // <===
          emit AcknowledgeBarDouble(a, b);
      }
```

</details>

</details>

### [contracts/mocks/AllowanceCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/AllowanceCrowdsaleImpl.sol):`AllowanceCrowdsaleImpl`

<details><summary><strong>There were 2 violations and 3 warnings found.

</strong></summary>

<details><summary><strong>RepeatedCall</strong></summary>

- Violation on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/AllowanceCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/AllowanceCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>TODReceiver</strong></summary>

- Warning on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/AllowanceCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Warning on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/AllowanceCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/AllowanceCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/CappedCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CappedCrowdsaleImpl.sol):`CappedCrowdsaleImpl`

<details><summary><strong>There were 1 violations and 2 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CappedCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Warning on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CappedCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CappedCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

- Conflict on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CappedCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/ConditionalEscrowMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ConditionalEscrowMock.sol):`ConditionalEscrowMock`

<details><summary><strong>There were 1 violations and 1 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [17](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ConditionalEscrowMock.sol#L17)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [10](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ConditionalEscrowMock.sol#L10)
```js

      function setAllowed(address payee, bool allowed) public {
          _allowed[payee] = allowed;    // <===
      }

```

- Conflict on line [17](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ConditionalEscrowMock.sol#L17)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/CountersImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CountersImpl.sol):`CountersImpl`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [22](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CountersImpl.sol#L22)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/CrowdsaleMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CrowdsaleMock.sol):`CrowdsaleMock`

<details><summary><strong>There were 1 violations and 2 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [10](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CrowdsaleMock.sol#L10)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Warning on line [10](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CrowdsaleMock.sol#L10)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [10](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CrowdsaleMock.sol#L10)
```js
      }
  }
      // <===
```

- Conflict on line [10](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/CrowdsaleMock.sol#L10)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/ERC165/ERC165InterfacesSupported.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC165/ERC165InterfacesSupported.sol):`ERC165InterfacesSupported`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>MissingInputValidation</strong></summary>

- Violation on line [38](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC165/ERC165InterfacesSupported.sol#L38)
```js
       * @dev implement supportsInterface(bytes4) using a lookup table
       */
      function supportsInterface(bytes4 interfaceId) external view returns (bool) {    // <===
          return _supportedInterfaces[interfaceId];
      }
```

</details>

</details>

### [contracts/mocks/ERC165/ERC165InterfacesSupported.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC165/ERC165InterfacesSupported.sol):`SupportsInterfaceWithLookupMock`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>MissingInputValidation</strong></summary>

- Violation on line [38](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC165/ERC165InterfacesSupported.sol#L38)
```js
       * @dev implement supportsInterface(bytes4) using a lookup table
       */
      function supportsInterface(bytes4 interfaceId) external view returns (bool) {    // <===
          return _supportedInterfaces[interfaceId];
      }
```

</details>

</details>

### [contracts/mocks/ERC165CheckerMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC165CheckerMock.sol):`ERC165CheckerMock`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>RepeatedCall</strong></summary>

- Violation on line [20](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC165CheckerMock.sol#L20)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/ERC165Mock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC165Mock.sol):`ERC165Mock`

<details><summary><strong>There were 2 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>MissingInputValidation</strong></summary>

- Violation on line [10](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC165Mock.sol#L10)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [10](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC165Mock.sol#L10)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/ERC20DetailedMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC20DetailedMock.sol):`ERC20DetailedMock`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [6](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC20DetailedMock.sol#L6)
```js
  import "../token/ERC20/ERC20Detailed.sol";

  contract ERC20DetailedMock is ERC20, ERC20Detailed {    // <===
      constructor (string memory name, string memory symbol, uint8 decimals)
          public
```

</details>

</details>

### [contracts/mocks/ERC20MetadataMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC20MetadataMock.sol):`ERC20MetadataMock`

<details><summary><strong>There were 2 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [6](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC20MetadataMock.sol#L6)
```js
  import "../drafts/ERC1046/ERC20Metadata.sol";

  contract ERC20MetadataMock is ERC20, ERC20Metadata {    // <===
      constructor (string memory tokenURI) public ERC20Metadata(tokenURI) {
          // solhint-disable-previous-line no-empty-blocks
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [6](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC20MetadataMock.sol#L6)
```js
  import "../drafts/ERC1046/ERC20Metadata.sol";

  contract ERC20MetadataMock is ERC20, ERC20Metadata {    // <===
      constructor (string memory tokenURI) public ERC20Metadata(tokenURI) {
          // solhint-disable-previous-line no-empty-blocks
```

</details>

</details>

### [contracts/mocks/ERC20PausableMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC20PausableMock.sol):`ERC20PausableMock`

<details><summary><strong>There were 0 violations and 0 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Conflict on line [12](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC20PausableMock.sol#L12)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/ERC20SnapshotMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC20SnapshotMock.sol):`ERC20SnapshotMock`

<details><summary><strong>There were 0 violations and 1 warnings found.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Warning on line [19](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC20SnapshotMock.sol#L19)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/ERC721FullMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC721FullMock.sol):`ERC721FullMock`

<details><summary><strong>There were 1 violations and 1 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [13](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC721FullMock.sol#L13)
```js
   * checking token existence, removal of a token from an address
   */
  contract ERC721FullMock is ERC721Full, ERC721Mintable, ERC721MetadataMintable, ERC721Burnable {    // <===
      constructor (string memory name, string memory symbol) public ERC721Mintable() ERC721Full(name, symbol) {
          // solhint-disable-previous-line no-empty-blocks
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Warning on line [13](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC721FullMock.sol#L13)
```js
   * checking token existence, removal of a token from an address
   */
  contract ERC721FullMock is ERC721Full, ERC721Mintable, ERC721MetadataMintable, ERC721Burnable {    // <===
      constructor (string memory name, string memory symbol) public ERC721Mintable() ERC721Full(name, symbol) {
          // solhint-disable-previous-line no-empty-blocks
```

</details>

</details>

### [contracts/mocks/ERC721MintableBurnableImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC721MintableBurnableImpl.sol):`ERC721MintableBurnableImpl`

<details><summary><strong>There were 1 violations and 1 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [11](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC721MintableBurnableImpl.sol#L11)
```js
   * @title ERC721MintableBurnableImpl
   */
  contract ERC721MintableBurnableImpl is ERC721Full, ERC721Mintable, ERC721MetadataMintable, ERC721Burnable {    // <===
      constructor () public ERC721Mintable() ERC721Full("Test", "TEST") {
          // solhint-disable-previous-line no-empty-blocks
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Warning on line [11](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC721MintableBurnableImpl.sol#L11)
```js
   * @title ERC721MintableBurnableImpl
   */
  contract ERC721MintableBurnableImpl is ERC721Full, ERC721Mintable, ERC721MetadataMintable, ERC721Burnable {    // <===
      constructor () public ERC721Mintable() ERC721Full("Test", "TEST") {
          // solhint-disable-previous-line no-empty-blocks
```

</details>

</details>

### [contracts/mocks/ERC721ReceiverMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC721ReceiverMock.sol):`ERC721ReceiverMock`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>MissingInputValidation</strong></summary>

- Violation on line [16](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ERC721ReceiverMock.sol#L16)
```js
      }

      function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data)    // <===
          public returns (bytes4)
      {
```

</details>

</details>

### [contracts/mocks/EventEmitter.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/EventEmitter.sol):`EventEmitter`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [3](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/EventEmitter.sol#L3)
```js
  pragma solidity ^0.5.2;

  contract EventEmitter {    // <===
      event Argumentless();
      event ShortUint(uint8 value);
```

</details>

</details>

### [contracts/mocks/Failer.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/Failer.sol):`Failer`

<details><summary><strong>There were 3 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [3](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/Failer.sol#L3)
```js
  pragma solidity ^0.5.2;

  contract Failer {    // <===
      uint256[] private array;

```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [4](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/Failer.sol#L4)
```js

  contract Failer {
      uint256[] private array;    // <===

      function dontFail() public pure {
```

- Violation on line [20](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/Failer.sol#L20)
```js
      function failWithOutOfGas() public {
          for (uint256 i = 0; i < 2**200; ++i) {
              array.push(i);    // <===
          }
      }
```

</details>

</details>

### [contracts/mocks/FinalizableCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/FinalizableCrowdsaleImpl.sol):`FinalizableCrowdsaleImpl`

<details><summary><strong>There were 1 violations and 2 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/FinalizableCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Warning on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/FinalizableCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/FinalizableCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

- Conflict on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/FinalizableCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/IncreasingPriceCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/IncreasingPriceCrowdsaleImpl.sol):`IncreasingPriceCrowdsaleImpl`

<details><summary><strong>There were 1 violations and 3 warnings found.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [23](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/IncreasingPriceCrowdsaleImpl.sol#L23)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>TODReceiver</strong></summary>

- Warning on line [23](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/IncreasingPriceCrowdsaleImpl.sol#L23)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Warning on line [23](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/IncreasingPriceCrowdsaleImpl.sol#L23)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [23](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/IncreasingPriceCrowdsaleImpl.sol#L23)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/IndividuallyCappedCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/IndividuallyCappedCrowdsaleImpl.sol):`IndividuallyCappedCrowdsaleImpl`

<details><summary><strong>There were 1 violations and 3 warnings found.

</strong></summary>

<details><summary><strong>RepeatedCall</strong></summary>

- Violation on line [12](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/IndividuallyCappedCrowdsaleImpl.sol#L12)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [12](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/IndividuallyCappedCrowdsaleImpl.sol#L12)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>TODReceiver</strong></summary>

- Warning on line [12](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/IndividuallyCappedCrowdsaleImpl.sol#L12)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Warning on line [12](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/IndividuallyCappedCrowdsaleImpl.sol#L12)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/MerkleProofWrapper.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/MerkleProofWrapper.sol):`MerkleProofWrapper`

<details><summary><strong>There were 0 violations and 1 warnings found.

</strong></summary>

<details><summary><strong>MissingInputValidation</strong></summary>

- Warning on line [6](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/MerkleProofWrapper.sol#L6)
```js

  contract MerkleProofWrapper {
      function verify(bytes32[] memory proof, bytes32 root, bytes32 leaf) public pure returns (bool) {    // <===
          return MerkleProof.verify(proof, root, leaf);
      }
```

</details>

</details>

### [contracts/mocks/MintedCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/MintedCrowdsaleImpl.sol):`MintedCrowdsaleImpl`

<details><summary><strong>There were 1 violations and 1 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [11](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/MintedCrowdsaleImpl.sol#L11)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [11](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/MintedCrowdsaleImpl.sol#L11)
```js
      }
  }
      // <===
```

- Conflict on line [11](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/MintedCrowdsaleImpl.sol#L11)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/OwnableMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/OwnableMock.sol):`OwnableMock`

<details><summary><strong>There were 1 violations and 0 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [8](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/OwnableMock.sol#L8)
```js
      // solhint-disable-previous-line no-empty-blocks
  }
      // <===
```

- Conflict on line [8](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/OwnableMock.sol#L8)
```js
      // solhint-disable-previous-line no-empty-blocks
  }
      // <===
```

</details>

</details>

### [contracts/mocks/PausableCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PausableCrowdsaleImpl.sol):`PausableCrowdsaleImpl`

<details><summary><strong>There were 1 violations and 2 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [11](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PausableCrowdsaleImpl.sol#L11)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Warning on line [11](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PausableCrowdsaleImpl.sol#L11)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [11](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PausableCrowdsaleImpl.sol#L11)
```js
      }
  }
      // <===
```

- Conflict on line [11](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PausableCrowdsaleImpl.sol#L11)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/PausableMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PausableMock.sol):`PausableMock`

<details><summary><strong>There were 2 violations and 0 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [17](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PausableMock.sol#L17)
```js

      function normalProcess() external whenNotPaused {
          count++;    // <===
      }

```

- Violation on line [21](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PausableMock.sol#L21)
```js

      function drasticMeasure() external whenPaused {
          drasticMeasureTaken = true;    // <===
      }
  }
```

- Conflict on line [24](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PausableMock.sol#L24)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/PostDeliveryCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PostDeliveryCrowdsaleImpl.sol):`PostDeliveryCrowdsaleImpl`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [15](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PostDeliveryCrowdsaleImpl.sol#L15)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/PullPaymentMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PullPaymentMock.sol):`PullPaymentMock`

<details><summary><strong>There were 3 violations and 3 warnings found.

</strong></summary>

<details><summary><strong>MissingInputValidation</strong></summary>

- Violation on line [12](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PullPaymentMock.sol#L12)
```js

      // test helper function to call asyncTransfer
      function callTransfer(address dest, uint256 amount) public {    // <===
          _asyncTransfer(dest, amount);
      }
```

- Violation on line [16](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PullPaymentMock.sol#L16)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [16](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PullPaymentMock.sol#L16)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>TODReceiver</strong></summary>

- Warning on line [16](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PullPaymentMock.sol#L16)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Violation on line [16](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PullPaymentMock.sol#L16)
```js
      }
  }
      // <===
```

- Warning on line [16](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/PullPaymentMock.sol#L16)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/ReentrancyAttack.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ReentrancyAttack.sol):`ReentrancyAttack`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>MissingInputValidation</strong></summary>

- Violation on line [4](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ReentrancyAttack.sol#L4)
```js

  contract ReentrancyAttack {
      function callSender(bytes4 data) public {    // <===
          // solhint-disable-next-line avoid-low-level-calls
          (bool success,) = msg.sender.call(abi.encodeWithSelector(data));
```

</details>

</details>

### [contracts/mocks/ReentrancyMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ReentrancyMock.sol):`ReentrancyMock`

<details><summary><strong>There were 2 violations and 1 warnings found.

</strong></summary>

<details><summary><strong>MissingInputValidation</strong></summary>

- Warning on line [24](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ReentrancyMock.sol#L24)
```js
      }

      function countThisRecursive(uint256 n) public nonReentrant {    // <===
          if (n > 0) {
              count();
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [39](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ReentrancyMock.sol#L39)
```js
      }

      function count() private {    // <===
          counter += 1;
      }
```

- Violation on line [40](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/ReentrancyMock.sol#L40)
```js

      function count() private {
          counter += 1;    // <===
      }
  }
```

</details>

</details>

### [contracts/mocks/RefundableCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/RefundableCrowdsaleImpl.sol):`RefundableCrowdsaleImpl`

<details><summary><strong>There were 1 violations and 1 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Warning on line [23](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/RefundableCrowdsaleImpl.sol#L23)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [23](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/RefundableCrowdsaleImpl.sol#L23)
```js
      }
  }
      // <===
```

- Conflict on line [23](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/RefundableCrowdsaleImpl.sol#L23)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/RefundablePostDeliveryCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/RefundablePostDeliveryCrowdsaleImpl.sol):`RefundablePostDeliveryCrowdsaleImpl`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [23](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/RefundablePostDeliveryCrowdsaleImpl.sol#L23)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/RolesMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/RolesMock.sol):`RolesMock`

<details><summary><strong>There were 2 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [19](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/RolesMock.sol#L19)
```js

      function has(address account) public view returns (bool) {
          return dummyRole.has(account);    // <===
      }
  }
```

- Violation on line [22](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/RolesMock.sol#L22)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/SafeERC20Helper.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol):`ERC20NoReturnMock`

<details><summary><strong>There were 5 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>MissingInputValidation</strong></summary>

- Violation on line [84](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L84)
```js
      }

      function setAllowance(uint256 allowance_) public {    // <===
          _allowances[msg.sender] = allowance_;
      }
```

- Violation on line [88](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L88)
```js
      }

      function allowance(address owner, address) public view returns (uint256) {    // <===
          return _allowances[owner];
      }
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [73](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L73)
```js

      function transfer(address, uint256) public {
          _dummy = 0;    // <===
      }

```

- Violation on line [77](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L77)
```js

      function transferFrom(address, address, uint256) public {
          _dummy = 0;    // <===
      }

```

- Violation on line [81](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L81)
```js

      function approve(address, uint256) public {
          _dummy = 0;    // <===
      }

```

</details>

</details>

### [contracts/mocks/SafeERC20Helper.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol):`ERC20ReturnFalseMock`

<details><summary><strong>There were 3 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [14](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L14)
```js

      function transfer(address, uint256) public returns (bool) {
          _dummy = 0;    // <===
          return false;
      }
```

- Violation on line [19](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L19)
```js

      function transferFrom(address, address, uint256) public returns (bool) {
          _dummy = 0;    // <===
          return false;
      }
```

- Violation on line [24](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L24)
```js

      function approve(address, uint256) public returns (bool) {
          _dummy = 0;    // <===
          return false;
      }
```

</details>

</details>

### [contracts/mocks/SafeERC20Helper.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol):`ERC20ReturnTrueMock`

<details><summary><strong>There were 3 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [42](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L42)
```js

      function transfer(address, uint256) public returns (bool) {
          _dummy = 0;    // <===
          return true;
      }
```

- Violation on line [47](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L47)
```js

      function transferFrom(address, address, uint256) public returns (bool) {
          _dummy = 0;    // <===
          return true;
      }
```

- Violation on line [52](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L52)
```js

      function approve(address, uint256) public returns (bool) {
          _dummy = 0;    // <===
          return true;
      }
```

</details>

</details>

### [contracts/mocks/SafeERC20Helper.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol):`SafeERC20Wrapper`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [93](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SafeERC20Helper.sol#L93)
```js
  }

  contract SafeERC20Wrapper {    // <===
      using SafeERC20 for IERC20;

```

</details>

</details>

### [contracts/mocks/SecondaryMock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SecondaryMock.sol):`SecondaryMock`

<details><summary><strong>There were 0 violations and 0 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Conflict on line [10](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/SecondaryMock.sol#L10)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/TimedCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/TimedCrowdsaleImpl.sol):`TimedCrowdsaleImpl`

<details><summary><strong>There were 1 violations and 2 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [19](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/TimedCrowdsaleImpl.sol#L19)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Warning on line [19](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/TimedCrowdsaleImpl.sol#L19)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [19](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/TimedCrowdsaleImpl.sol#L19)
```js
      }
  }
      // <===
```

- Conflict on line [19](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/TimedCrowdsaleImpl.sol#L19)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/mocks/WhitelistCrowdsaleImpl.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/WhitelistCrowdsaleImpl.sol):`WhitelistCrowdsaleImpl`

<details><summary><strong>There were 1 violations and 2 warnings found.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [13](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/WhitelistCrowdsaleImpl.sol#L13)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Warning on line [13](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/WhitelistCrowdsaleImpl.sol#L13)
```js
      }
  }
      // <===
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [13](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/mocks/WhitelistCrowdsaleImpl.sol#L13)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/payment/PaymentSplitter.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/PaymentSplitter.sol):`PaymentSplitter`

<details><summary><strong>There were 2 violations and 2 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [93](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/PaymentSplitter.sol#L93)
```js
          _totalReleased = _totalReleased.add(payment);

          account.transfer(payment);    // <===
          emit PaymentReleased(account, payment);
      }
```

</details>

<details><summary><strong>TODReceiver</strong></summary>

- Conflict on line [93](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/PaymentSplitter.sol#L93)
```js
          _totalReleased = _totalReleased.add(payment);

          account.transfer(payment);    // <===
          emit PaymentReleased(account, payment);
      }
```

</details>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Warning on line [93](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/PaymentSplitter.sol#L93)
```js
          _totalReleased = _totalReleased.add(payment);

          account.transfer(payment);    // <===
          emit PaymentReleased(account, payment);
      }
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Violation on line [90](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/PaymentSplitter.sol#L90)
```js
          require(payment != 0);

          _released[account] = _released[account].add(payment);    // <===
          _totalReleased = _totalReleased.add(payment);

```

- Violation on line [91](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/PaymentSplitter.sol#L91)
```js

          _released[account] = _released[account].add(payment);
          _totalReleased = _totalReleased.add(payment);    // <===

          account.transfer(payment);
```

</details>

</details>

### [contracts/payment/escrow/Escrow.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/Escrow.sol):`Escrow`

<details><summary><strong>There were 0 violations and 1 warnings found. Additionally, there are 3 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Warning on line [50](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/Escrow.sol#L50)
```js
          _deposits[payee] = 0;

          payee.transfer(payment);    // <===

          emit Withdrawn(payee, payment);
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Conflict on line [26](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/Escrow.sol#L26)
```js
      mapping(address => uint256) private _deposits;

      function depositsOf(address payee) public view returns (uint256) {    // <===
          return _deposits[payee];
      }
```

- Conflict on line [36](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/Escrow.sol#L36)
```js
      function deposit(address payee) public onlyPrimary payable {
          uint256 amount = msg.value;
          _deposits[payee] = _deposits[payee].add(amount);    // <===

          emit Deposited(payee, amount);
```

- Conflict on line [48](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/Escrow.sol#L48)
```js
          uint256 payment = _deposits[payee];

          _deposits[payee] = 0;    // <===

          payee.transfer(payment);
```

</details>

</details>

### [contracts/payment/escrow/RefundEscrow.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/RefundEscrow.sol):`RefundEscrow`

<details><summary><strong>There were 2 violations and 2 warnings found. Additionally, there are 5 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>TODAmount</strong></summary>

- Violation on line [82](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/RefundEscrow.sol#L82)
```js
      function beneficiaryWithdraw() public {
          require(_state == State.Closed);
          _beneficiary.transfer(address(this).balance);    // <===
      }

```

- Warning on line [59](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/RefundEscrow.sol#L59)
```js

      /**
       * @dev Allows for the beneficiary to withdraw their funds, rejecting    // <===
       * further deposits.
       */
```

</details>

<details><summary><strong>TODReceiver</strong></summary>

- Violation on line [82](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/RefundEscrow.sol#L82)
```js
      function beneficiaryWithdraw() public {
          require(_state == State.Closed);
          _beneficiary.transfer(address(this).balance);    // <===
      }

```

</details>

<details><summary><strong>UnrestrictedEtherFlow</strong></summary>

- Warning on line [82](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/RefundEscrow.sol#L82)
```js
      function beneficiaryWithdraw() public {
          require(_state == State.Closed);
          _beneficiary.transfer(address(this).balance);    // <===
      }

```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Conflict on line [30](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/RefundEscrow.sol#L30)
```js
       */
      constructor (address payable beneficiary) public {
          require(beneficiary != address(0));    // <===
          _beneficiary = beneficiary;
          _state = State.Active;
```

- Conflict on line [45](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/RefundEscrow.sol#L45)
```js
       * @return the beneficiary of the escrow.
       */
      function beneficiary() public view returns (address) {    // <===
          return _beneficiary;
      }
```

- Conflict on line [59](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/RefundEscrow.sol#L59)
```js

      /**
       * @dev Allows for the beneficiary to withdraw their funds, rejecting    // <===
       * further deposits.
       */
```

- Conflict on line [64](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/RefundEscrow.sol#L64)
```js
      function close() public onlyPrimary {
          require(_state == State.Active);
          _state = State.Closed;    // <===
          emit RefundsClosed();
      }
```

- Conflict on line [73](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/payment/escrow/RefundEscrow.sol#L73)
```js
      function enableRefunds() public onlyPrimary {
          require(_state == State.Active);
          _state = State.Refunding;    // <===
          emit RefundsEnabled();
      }
```

</details>

</details>

### [contracts/token/ERC20/ERC20Pausable.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/token/ERC20/ERC20Pausable.sol):`ERC20Pausable`

<details><summary><strong>There were 0 violations and 0 warnings found. Additionally, there are 1 cases that Securify couldn't identify correctly.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Conflict on line [31](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/token/ERC20/ERC20Pausable.sol#L31)
```js
      }
  }
      // <===
```

</details>

</details>

### [contracts/token/ERC20/TokenTimelock.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/token/ERC20/TokenTimelock.sol):`TokenTimelock`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [10](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/token/ERC20/TokenTimelock.sol#L10)
```js
   * beneficiary to extract the tokens after a given release time
   */
  contract TokenTimelock {    // <===
      using SafeERC20 for IERC20;

```

</details>

</details>

### [contracts/token/ERC721/ERC721Enumerable.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/token/ERC721/ERC721Enumerable.sol):`ERC721Enumerable`

<details><summary><strong>There were 0 violations and 1 warnings found.

</strong></summary>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Warning on line [11](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/token/ERC721/ERC721Enumerable.sol#L11)
```js
   * @dev See https://eips.ethereum.org/EIPS/eip-721
   */
  contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {    // <===
      // Mapping from owner to list of owned token IDs
      mapping(address => uint256[]) private _ownedTokens;
```

</details>

</details>

### [contracts/token/ERC721/ERC721Full.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/token/ERC721/ERC721Full.sol):`ERC721Full`

<details><summary><strong>There were 1 violations and 1 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [13](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/token/ERC721/ERC721Full.sol#L13)
```js
   * @dev see https://eips.ethereum.org/EIPS/eip-721
   */
  contract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {    // <===
      constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {
          // solhint-disable-previous-line no-empty-blocks
```

</details>

<details><summary><strong>UnrestrictedWrite</strong></summary>

- Warning on line [13](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/token/ERC721/ERC721Full.sol#L13)
```js
   * @dev see https://eips.ethereum.org/EIPS/eip-721
   */
  contract ERC721Full is ERC721, ERC721Enumerable, ERC721Metadata {    // <===
      constructor (string memory name, string memory symbol) public ERC721Metadata(name, symbol) {
          // solhint-disable-previous-line no-empty-blocks
```

</details>

</details>

### [contracts/token/ERC721/ERC721Metadata.sol](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/token/ERC721/ERC721Metadata.sol):`ERC721Metadata`

<details><summary><strong>There were 1 violations and 0 warnings found.

</strong></summary>

<details><summary><strong>LockedEther</strong></summary>

- Violation on line [7](../blob/2c6e44ee62cd5867a79124aa3d49dec63f5f3389/contracts/token/ERC721/ERC721Metadata.sol#L7)
```js
  import "../../introspection/ERC165.sol";

  contract ERC721Metadata is ERC165, ERC721, IERC721Metadata {    // <===
      // Token name
      string private _name;
```


Successfully aliased the URL <https://formatterjs-f7ilkffon.now.sh> to the following aliases.

* https://formatterjs.rodrigomes002.now.sh
* https://formatterjs-git-master.rodrigomes002.now.sh


No, it's really **un**own :D But maybe we need a better name for "not owned"?


COOOOOL


test ok?


【栈】逆波兰表达式求值


Now could not deploy this pull request since it contains the following references to invalid secrets in the `env` sections of the `now.json` file:

* `este-api-secret` (in env: `API_SECRET)`
* `este-prisma-endpoint` (in env: `PRISMA_ENDPOINT)`
* `este-prisma-secret` (in env: `PRISMA_SECRET)`

Add those secrets or remove them from the `env` maps in the `now.json` file.


Partially reverts https://review.discourse.org/t/fix-respect-open-external-links-in-new-window-in-quotes-and-edit-history/3114/2


Started with Home Page design


Let's type this parameter so we don't accidentally misuse it: `(createAccount: Account => void)`


Works


This method can be handled by XMLWorker.


Add-Suppl-HeatingCoil-To-VRF-TU (Nigusse) - Win64-Windows-10-VisualStudio-16: OK (2411 of 2411 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


Have you updated your API as well?


This DAO objects shouldn't be here.


thankyou


So the section of code that checks that you are only putting a psi operative in the tube is :
`else if (Unit.IsPsiOperative())`

At this point you don't actually need to see if the soldier can rank up because you looking at all of their abilities and checking if there is one that they still don't have yet in the below section:

```
			foreach AllPsiAbilities(PsiAbility)
			{
				`Log("Checking for (Psi?) ability " $ PsiAbility.AbilityName $ " (" $ PsiAbility.UtilityCat $ ")");
				if (PsiAbility.AbilityName != '' && !Unit.HasSoldierAbility(PsiAbility.AbilityName))
				{
					return true; // If we find an ability that the soldier hasn't learned yet, they are valid
				}
			}
```


👍 this fixes the issue "reported" in #41


dasd'


it happens on the public demo API as well


lol


Why only the +1 rated songs? Won't it be more realistic to present the summatory of the ratings?


Fatal issue! You are using environment-specific URL! Use relative path instead!


Would that help with https://github.com/teeworlds/teeworlds/issues/2087 ?


@jannyHou I find that design suboptimal.

- What happens when the developer forgets to add `{isPassportStrategy: true}` flag for a strategy name is implementing Passport Strategy interface and not LB Strategy interface?

- Let's say I have 10 endpoints protected by `basic` strategy and want to use a "basic" passport strategy. You design is forcing me to repeat `{isPassportStrategy: true}` in every endpoint. That's a lot of repeated code!

- Later, I decide to ditch Passport in favor of a native LoopBack strategy. Now I have to change all my protected endpoints and remove `{isPassportStrategy: true}` option from them.

IMO, the conversion from Passport to LoopBack strategy should be enabled/performed in one place only, and that's the place registering the strategy under the given name (creating a new binding).

This is important for [Separation of Concerns](https://en.wikipedia.org/wiki/Separation_of_concerns). Endpoints should not need to know how is the strategy configured, whether it's a LoopBack or a Passport strategy.


Same fatal error!


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://pr-4-global-stlawu-digital.pantheonsite.io/)

Created multidev environment [pr-4](https://dashboard.pantheon.io/sites/b073fe71-ec69-489e-b8eb-cdb1080f5c60#pr-4) for global-stlawu-digital.


Do you know if there are known errors associated with the port? I feel curious 👀


Lack of default case.


Could you please tell me what happened here? We had a similar issue


Successfully aliased the URL <https://prismic-nextjs-website-nl9w3gj2k.now.sh> to the following aliases.

* https://prismic-nextjs-website.philsnow.now.sh
* https://prismic-nextjs-website-git-master.philsnow.now.sh


Secure this Transformer!
http://cwe.mitre.org/data/definitions/611.html
https://find-sec-bugs.github.io/bugs.htm#XXE_DTD_TRANSFORM_FACTORY


test ok?


Secure this one too!


ah I think fetch upstream and composer update solved it locally


и пожалуйста добавьте опцию в плагин : исключение выбора платежей и
доставки
[image: Снимок экрана 2019-04-20 в 17.01.22.png]

пн, 29 апр. 2019 г. в 17:09, avsh <notifications@github.com>:

> Изучим возможность обновления до поддержки wc 3.6.1
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <https://github.com/begateway/woocommerce-payment-module/commit/f7e77732b85b0f8cd430de0fea67dc0c318b171e#commitcomment-33347053>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AL4BSXUK32LHWMGPPHC2M5TPS36QFANCNFSM4HHJXIYA>
> .
>


Generify these methods.


> it happens on the public demo API as well

With both the staging versions? The Stable API will still use the 5 min token exp, but the staging application will expect it to be 20, so that might explain it


yes.


Emacs version 26.2 and mu version 1.1.0.


Hi, maybe you can change the fixed text `user` to use the username of the logged user.


Hey, thanks for the work! May I ask why you increased the bed size to 240x240? The physical size is ~235x235, but I think a certain safety margin should be considered. Do you have a custom bed?

Cheers


No worries about the cmake PR -- there's a lot to go through! I'll cmakeify this on my branch though... then you can see the cmake-y way of doing it.


I think it's worth adding support for running in strict mode to one of the frontends (or maybe the daemon) too so this is easy to try.


looks good


Successfully aliased the URL <https://portfolio-2s8fscm8o.now.sh> to the following aliases.

* https://nnadozie.com
* https://portfolio.nnadozie.now.sh
* https://portfolio-git-master.nnadozie.now.sh


Думаю тут неправильное использование игнора. Видимо нужно в само удаление добавить механизм, блокировки удаления объектов, совсем. Добавление в ингор в этом месте класса, просто скажет тестам не проверять этот класс, при этом при удалении будут сыпаться эксепшены. Видимо нужно в настроку самого удаления встроить мометку не удалять не при каких обстоятельствах для этих целей. И выводить какую, то понятную для пользователей информацию, что мол для удаления нужно удалить еще и это, но это удалять нельзя.