Преглед на файлове

Merge branch 'solc-0.7' into release-v3.3-solc-0.7

Francisco Giordano преди 4 години
родител
ревизия
40a15c0406
променени са 100 файла, в които са добавени 148 реда и са изтрити 144 реда
  1. 6 0
      CHANGELOG.md
  2. 2 2
      README.md
  3. 1 1
      buidler.config.js
  4. 1 1
      contracts/GSN/Context.sol
  5. 1 1
      contracts/GSN/GSNRecipient.sol
  6. 3 3
      contracts/GSN/GSNRecipientERC20Fee.sol
  7. 2 2
      contracts/GSN/GSNRecipientSignature.sol
  8. 1 1
      contracts/GSN/IRelayHub.sol
  9. 1 1
      contracts/GSN/IRelayRecipient.sol
  10. 1 1
      contracts/access/AccessControl.sol
  11. 2 2
      contracts/access/Ownable.sol
  12. 2 2
      contracts/access/TimelockController.sol
  13. 1 1
      contracts/cryptography/ECDSA.sol
  14. 1 1
      contracts/cryptography/MerkleProof.sol
  15. 2 2
      contracts/introspection/ERC165.sol
  16. 1 1
      contracts/introspection/ERC165Checker.sol
  17. 1 1
      contracts/introspection/ERC1820Implementer.sol
  18. 1 1
      contracts/introspection/IERC165.sol
  19. 1 1
      contracts/introspection/IERC1820Implementer.sol
  20. 1 1
      contracts/introspection/IERC1820Registry.sol
  21. 1 1
      contracts/math/Math.sol
  22. 1 1
      contracts/math/SafeMath.sol
  23. 1 1
      contracts/math/SignedSafeMath.sol
  24. 2 2
      contracts/mocks/AccessControlMock.sol
  25. 1 1
      contracts/mocks/AddressImpl.sol
  26. 2 2
      contracts/mocks/ArraysImpl.sol
  27. 1 1
      contracts/mocks/CallReceiverMock.sol
  28. 1 1
      contracts/mocks/ClashingImplementation.sol
  29. 1 1
      contracts/mocks/ConditionalEscrowMock.sol
  30. 1 1
      contracts/mocks/ContextMock.sol
  31. 1 1
      contracts/mocks/CountersImpl.sol
  32. 1 1
      contracts/mocks/Create2Impl.sol
  33. 1 1
      contracts/mocks/DummyImplementation.sol
  34. 1 1
      contracts/mocks/ECDSAMock.sol
  35. 2 2
      contracts/mocks/ERC1155BurnableMock.sol
  36. 2 2
      contracts/mocks/ERC1155Mock.sol
  37. 2 2
      contracts/mocks/ERC1155PausableMock.sol
  38. 1 2
      contracts/mocks/ERC1155ReceiverMock.sol
  39. 3 3
      contracts/mocks/ERC165/ERC165InterfacesSupported.sol
  40. 1 1
      contracts/mocks/ERC165/ERC165NotSupported.sol
  41. 1 1
      contracts/mocks/ERC165CheckerMock.sol
  42. 1 1
      contracts/mocks/ERC165Mock.sol
  43. 1 1
      contracts/mocks/ERC1820ImplementerMock.sol
  44. 2 2
      contracts/mocks/ERC20BurnableMock.sol
  45. 2 2
      contracts/mocks/ERC20CappedMock.sol
  46. 2 2
      contracts/mocks/ERC20DecimalsMock.sol
  47. 2 2
      contracts/mocks/ERC20Mock.sol
  48. 2 2
      contracts/mocks/ERC20PausableMock.sol
  49. 2 2
      contracts/mocks/ERC20SnapshotMock.sol
  50. 2 2
      contracts/mocks/ERC721BurnableMock.sol
  51. 1 2
      contracts/mocks/ERC721GSNRecipientMock.sol
  52. 2 2
      contracts/mocks/ERC721Mock.sol
  53. 2 2
      contracts/mocks/ERC721PausableMock.sol
  54. 2 2
      contracts/mocks/ERC721ReceiverMock.sol
  55. 2 2
      contracts/mocks/ERC777Mock.sol
  56. 1 1
      contracts/mocks/ERC777SenderRecipientMock.sol
  57. 1 1
      contracts/mocks/EnumerableMapMock.sol
  58. 1 1
      contracts/mocks/EnumerableSetMock.sol
  59. 1 1
      contracts/mocks/EtherReceiverMock.sol
  60. 2 2
      contracts/mocks/GSNRecipientERC20FeeMock.sol
  61. 2 2
      contracts/mocks/GSNRecipientMock.sol
  62. 2 2
      contracts/mocks/GSNRecipientSignatureMock.sol
  63. 1 1
      contracts/mocks/InitializableMock.sol
  64. 1 1
      contracts/mocks/MathMock.sol
  65. 1 1
      contracts/mocks/MerkleProofWrapper.sol
  66. 1 1
      contracts/mocks/MultipleInheritanceInitializableMocks.sol
  67. 1 1
      contracts/mocks/OwnableMock.sol
  68. 2 2
      contracts/mocks/PausableMock.sol
  69. 2 2
      contracts/mocks/PullPaymentMock.sol
  70. 1 1
      contracts/mocks/ReentrancyAttack.sol
  71. 2 2
      contracts/mocks/ReentrancyMock.sol
  72. 1 1
      contracts/mocks/RegressionImplementation.sol
  73. 1 1
      contracts/mocks/SafeCastMock.sol
  74. 2 2
      contracts/mocks/SafeERC20Helper.sol
  75. 1 1
      contracts/mocks/SafeMathMock.sol
  76. 1 1
      contracts/mocks/SignedSafeMathMock.sol
  77. 1 1
      contracts/mocks/SingleInheritanceInitializableMocks.sol
  78. 1 1
      contracts/mocks/StringsMock.sol
  79. 1 1
      contracts/package.json
  80. 2 2
      contracts/payment/PaymentSplitter.sol
  81. 2 2
      contracts/payment/PullPayment.sol
  82. 1 1
      contracts/payment/escrow/ConditionalEscrow.sol
  83. 1 1
      contracts/payment/escrow/Escrow.sol
  84. 2 2
      contracts/payment/escrow/RefundEscrow.sol
  85. 2 2
      contracts/presets/ERC1155PresetMinterPauser.sol
  86. 2 2
      contracts/presets/ERC20PresetMinterPauser.sol
  87. 2 2
      contracts/presets/ERC721PresetMinterPauserAutoId.sol
  88. 1 1
      contracts/proxy/Proxy.sol
  89. 1 1
      contracts/proxy/ProxyAdmin.sol
  90. 2 2
      contracts/proxy/TransparentUpgradeableProxy.sol
  91. 2 2
      contracts/proxy/UpgradeableProxy.sol
  92. 2 2
      contracts/token/ERC1155/ERC1155.sol
  93. 1 1
      contracts/token/ERC1155/ERC1155Burnable.sol
  94. 1 1
      contracts/token/ERC1155/ERC1155Holder.sol
  95. 1 1
      contracts/token/ERC1155/ERC1155Pausable.sol
  96. 2 2
      contracts/token/ERC1155/ERC1155Receiver.sol
  97. 1 1
      contracts/token/ERC1155/IERC1155.sol
  98. 1 1
      contracts/token/ERC1155/IERC1155MetadataURI.sol
  99. 1 1
      contracts/token/ERC1155/IERC1155Receiver.sol
  100. 2 2
      contracts/token/ERC20/ERC20.sol

+ 6 - 0
CHANGELOG.md

@@ -7,6 +7,12 @@
  * `TimelockController`: added a contract to augment access control schemes with a delay. ([#2354](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/2354))
  * `EnumerableSet`: added `Bytes32Set`, for sets of `bytes32`. ([#2395](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/2395))
 
+## 3.2.2-solc-0.7 (2020-10-28)
+ * Resolve warnings introduced by Solidity 0.7.4. ([#2396](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/2396))
+
+## 3.2.1-solc-0.7 (2020-09-15)
+ * `ERC777`: Remove a warning about function state visibility in Solidity 0.7. ([#2327](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/2327))
+
 ## 3.2.0 (2020-09-10)
 
 ### New features

+ 2 - 2
README.md

@@ -27,12 +27,12 @@ OpenZeppelin Contracts features a [stable API](https://docs.openzeppelin.com/con
 Once installed, you can use the contracts in the library by importing them:
 
 ```solidity
-pragma solidity ^0.6.0;
+pragma solidity ^0.7.0;
 
 import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
 
 contract MyCollectible is ERC721 {
-    constructor() ERC721("MyCollectible", "MCO") public {
+    constructor() ERC721("MyCollectible", "MCO") {
     }
 }
 ```

+ 1 - 1
buidler.config.js

@@ -15,6 +15,6 @@ module.exports = {
     },
   },
   solc: {
-    version: '0.6.12',
+    version: '0.7.4',
   },
 };

+ 1 - 1
contracts/GSN/Context.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /*
  * @dev Provides information about the current execution context, including the

+ 1 - 1
contracts/GSN/GSNRecipient.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./IRelayRecipient.sol";
 import "./IRelayHub.sol";

+ 3 - 3
contracts/GSN/GSNRecipientERC20Fee.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./GSNRecipient.sol";
 import "../math/SafeMath.sol";
@@ -30,7 +30,7 @@ contract GSNRecipientERC20Fee is GSNRecipient {
     /**
      * @dev The arguments to the constructor are the details that the gas payment token will have: `name` and `symbol`. `decimals` is hard-coded to 18.
      */
-    constructor(string memory name, string memory symbol) public {
+    constructor(string memory name, string memory symbol) {
         _token = new __unstable__ERC20Owned(name, symbol);
     }
 
@@ -118,7 +118,7 @@ contract GSNRecipientERC20Fee is GSNRecipient {
 contract __unstable__ERC20Owned is ERC20, Ownable {
     uint256 private constant _UINT256_MAX = 2**256 - 1;
 
-    constructor(string memory name, string memory symbol) public ERC20(name, symbol) { }
+    constructor(string memory name, string memory symbol) ERC20(name, symbol) { }
 
     // The owner (GSNRecipientERC20Fee) can mint tokens
     function mint(address account, uint256 amount) public onlyOwner {

+ 2 - 2
contracts/GSN/GSNRecipientSignature.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./GSNRecipient.sol";
 import "../cryptography/ECDSA.sol";
@@ -23,7 +23,7 @@ contract GSNRecipientSignature is GSNRecipient {
     /**
      * @dev Sets the trusted signer that is going to be producing signatures to approve relayed calls.
      */
-    constructor(address trustedSigner) public {
+    constructor(address trustedSigner) {
         require(trustedSigner != address(0), "GSNRecipientSignature: trusted signer is the zero address");
         _trustedSigner = trustedSigner;
     }

+ 1 - 1
contracts/GSN/IRelayHub.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @dev Interface for `RelayHub`, the core contract of the GSN. Users should not need to interact with this contract

+ 1 - 1
contracts/GSN/IRelayRecipient.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @dev Base interface for a contract that will be called via the GSN from {IRelayHub}.

+ 1 - 1
contracts/access/AccessControl.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../utils/EnumerableSet.sol";
 import "../utils/Address.sol";

+ 2 - 2
contracts/access/Ownable.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../GSN/Context.sol";
 /**
@@ -23,7 +23,7 @@ abstract contract Ownable is Context {
     /**
      * @dev Initializes the contract setting the deployer as the initial owner.
      */
-    constructor () internal {
+    constructor () {
         address msgSender = _msgSender();
         _owner = msgSender;
         emit OwnershipTransferred(address(0), msgSender);

+ 2 - 2
contracts/access/TimelockController.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.9 <0.8.0;
+pragma solidity ^0.7.0;
 pragma experimental ABIEncoderV2;
 
 import "./../math/SafeMath.sol";
@@ -52,7 +52,7 @@ contract TimelockController is AccessControl {
     /**
      * @dev Initializes the contract with a given `minDelay`.
      */
-    constructor(uint256 minDelay, address[] memory proposers, address[] memory executors) public {
+    constructor(uint256 minDelay, address[] memory proposers, address[] memory executors) {
         _setRoleAdmin(TIMELOCK_ADMIN_ROLE, TIMELOCK_ADMIN_ROLE);
         _setRoleAdmin(PROPOSER_ROLE, TIMELOCK_ADMIN_ROLE);
         _setRoleAdmin(EXECUTOR_ROLE, TIMELOCK_ADMIN_ROLE);

+ 1 - 1
contracts/cryptography/ECDSA.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.

+ 1 - 1
contracts/cryptography/MerkleProof.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @dev These functions deal with verification of Merkle trees (hash trees),

+ 2 - 2
contracts/introspection/ERC165.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./IERC165.sol";
 
@@ -21,7 +21,7 @@ abstract contract ERC165 is IERC165 {
      */
     mapping(bytes4 => bool) private _supportedInterfaces;
 
-    constructor () internal {
+    constructor () {
         // Derived contracts need only register support for their own interfaces,
         // we register support for ERC165 itself here
         _registerInterface(_INTERFACE_ID_ERC165);

+ 1 - 1
contracts/introspection/ERC165Checker.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.2 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @dev Library used to query support of an interface declared via {IERC165}.

+ 1 - 1
contracts/introspection/ERC1820Implementer.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./IERC1820Implementer.sol";
 

+ 1 - 1
contracts/introspection/IERC165.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @dev Interface of the ERC165 standard, as defined in the

+ 1 - 1
contracts/introspection/IERC1820Implementer.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @dev Interface for an ERC1820 implementer, as defined in the

+ 1 - 1
contracts/introspection/IERC1820Registry.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @dev Interface of the global ERC1820 Registry, as defined in the

+ 1 - 1
contracts/math/Math.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @dev Standard math utilities missing in the Solidity language.

+ 1 - 1
contracts/math/SafeMath.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @dev Wrappers over Solidity's arithmetic operations with added overflow

+ 1 - 1
contracts/math/SignedSafeMath.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @title SignedSafeMath

+ 2 - 2
contracts/mocks/AccessControlMock.sol

@@ -1,11 +1,11 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../access/AccessControl.sol";
 
 contract AccessControlMock is AccessControl {
-    constructor() public {
+    constructor() {
         _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());
     }
 

+ 1 - 1
contracts/mocks/AddressImpl.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../utils/Address.sol";
 

+ 2 - 2
contracts/mocks/ArraysImpl.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../utils/Arrays.sol";
 
@@ -9,7 +9,7 @@ contract ArraysImpl {
 
     uint256[] private _array;
 
-    constructor (uint256[] memory array) public {
+    constructor (uint256[] memory array) {
         _array = array;
     }
 

+ 1 - 1
contracts/mocks/CallReceiverMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 contract CallReceiverMock {
     string public sharedAnswer;

+ 1 - 1
contracts/mocks/ClashingImplementation.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 
 /**

+ 1 - 1
contracts/mocks/ConditionalEscrowMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../payment/escrow/ConditionalEscrow.sol";
 

+ 1 - 1
contracts/mocks/ContextMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../GSN/Context.sol";
 

+ 1 - 1
contracts/mocks/CountersImpl.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../utils/Counters.sol";
 

+ 1 - 1
contracts/mocks/Create2Impl.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../utils/Create2.sol";
 import "../introspection/ERC1820Implementer.sol";

+ 1 - 1
contracts/mocks/DummyImplementation.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 abstract contract Impl {
   function version() public pure virtual returns (string memory); 

+ 1 - 1
contracts/mocks/ECDSAMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../cryptography/ECDSA.sol";
 

+ 2 - 2
contracts/mocks/ERC1155BurnableMock.sol

@@ -1,11 +1,11 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC1155/ERC1155Burnable.sol";
 
 contract ERC1155BurnableMock is ERC1155Burnable {
-    constructor(string memory uri) public ERC1155(uri) { }
+    constructor(string memory uri) ERC1155(uri) { }
 
     function mint(address to, uint256 id, uint256 value, bytes memory data) public {
         _mint(to, id, value, data);

+ 2 - 2
contracts/mocks/ERC1155Mock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC1155/ERC1155.sol";
 
@@ -9,7 +9,7 @@ import "../token/ERC1155/ERC1155.sol";
  * This mock just publicizes internal functions for testing purposes
  */
 contract ERC1155Mock is ERC1155 {
-    constructor (string memory uri) public ERC1155(uri) {
+    constructor (string memory uri) ERC1155(uri) {
         // solhint-disable-previous-line no-empty-blocks
     }
 

+ 2 - 2
contracts/mocks/ERC1155PausableMock.sol

@@ -1,12 +1,12 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./ERC1155Mock.sol";
 import "../token/ERC1155/ERC1155Pausable.sol";
 
 contract ERC1155PausableMock is ERC1155Mock, ERC1155Pausable {
-    constructor(string memory uri) public ERC1155Mock(uri) { }
+    constructor(string memory uri) ERC1155Mock(uri) { }
 
     function pause() external {
         _pause();

+ 1 - 2
contracts/mocks/ERC1155ReceiverMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC1155/IERC1155Receiver.sol";
 import "./ERC165Mock.sol";
@@ -20,7 +20,6 @@ contract ERC1155ReceiverMock is IERC1155Receiver, ERC165Mock {
         bytes4 batRetval,
         bool batReverts
     )
-        public
     {
         _recRetval = recRetval;
         _recReverts = recReverts;

+ 3 - 3
contracts/mocks/ERC165/ERC165InterfacesSupported.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../../introspection/IERC165.sol";
 
@@ -29,7 +29,7 @@ contract SupportsInterfaceWithLookupMock is IERC165 {
      * @dev A contract implementing SupportsInterfaceWithLookup
      * implement ERC165 itself.
      */
-    constructor () public {
+    constructor () {
         _registerInterface(INTERFACE_ID_ERC165);
     }
 
@@ -50,7 +50,7 @@ contract SupportsInterfaceWithLookupMock is IERC165 {
 }
 
 contract ERC165InterfacesSupported is SupportsInterfaceWithLookupMock {
-    constructor (bytes4[] memory interfaceIds) public {
+    constructor (bytes4[] memory interfaceIds) {
         for (uint256 i = 0; i < interfaceIds.length; i++) {
             _registerInterface(interfaceIds[i]);
         }

+ 1 - 1
contracts/mocks/ERC165/ERC165NotSupported.sol

@@ -1,5 +1,5 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 contract ERC165NotSupported { }

+ 1 - 1
contracts/mocks/ERC165CheckerMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../introspection/ERC165Checker.sol";
 

+ 1 - 1
contracts/mocks/ERC165Mock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../introspection/ERC165.sol";
 

+ 1 - 1
contracts/mocks/ERC1820ImplementerMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../introspection/ERC1820Implementer.sol";
 

+ 2 - 2
contracts/mocks/ERC20BurnableMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC20/ERC20Burnable.sol";
 
@@ -10,7 +10,7 @@ contract ERC20BurnableMock is ERC20Burnable {
         string memory symbol,
         address initialAccount,
         uint256 initialBalance
-    ) public ERC20(name, symbol) {
+    ) ERC20(name, symbol) {
         _mint(initialAccount, initialBalance);
     }
 }

+ 2 - 2
contracts/mocks/ERC20CappedMock.sol

@@ -1,12 +1,12 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC20/ERC20Capped.sol";
 
 contract ERC20CappedMock is ERC20Capped {
     constructor (string memory name, string memory symbol, uint256 cap)
-        public ERC20(name, symbol) ERC20Capped(cap)
+        ERC20(name, symbol) ERC20Capped(cap)
     { }
 
     function mint(address to, uint256 tokenId) public {

+ 2 - 2
contracts/mocks/ERC20DecimalsMock.sol

@@ -1,11 +1,11 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC20/ERC20.sol";
 
 contract ERC20DecimalsMock is ERC20 {
-    constructor (string memory name, string memory symbol, uint8 decimals) public ERC20(name, symbol) {
+    constructor (string memory name, string memory symbol, uint8 decimals) ERC20(name, symbol) {
         _setupDecimals(decimals);
     }
 }

+ 2 - 2
contracts/mocks/ERC20Mock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC20/ERC20.sol";
 
@@ -11,7 +11,7 @@ contract ERC20Mock is ERC20 {
         string memory symbol,
         address initialAccount,
         uint256 initialBalance
-    ) public payable ERC20(name, symbol) {
+    ) payable ERC20(name, symbol) {
         _mint(initialAccount, initialBalance);
     }
 

+ 2 - 2
contracts/mocks/ERC20PausableMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC20/ERC20Pausable.sol";
 
@@ -11,7 +11,7 @@ contract ERC20PausableMock is ERC20Pausable {
         string memory symbol,
         address initialAccount,
         uint256 initialBalance
-    ) public ERC20(name, symbol) {
+    ) ERC20(name, symbol) {
         _mint(initialAccount, initialBalance);
     }
 

+ 2 - 2
contracts/mocks/ERC20SnapshotMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC20/ERC20Snapshot.sol";
 
@@ -11,7 +11,7 @@ contract ERC20SnapshotMock is ERC20Snapshot {
         string memory symbol,
         address initialAccount,
         uint256 initialBalance
-    ) public ERC20(name, symbol) {
+    ) ERC20(name, symbol) {
         _mint(initialAccount, initialBalance);
     }
 

+ 2 - 2
contracts/mocks/ERC721BurnableMock.sol

@@ -1,11 +1,11 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC721/ERC721Burnable.sol";
 
 contract ERC721BurnableMock is ERC721Burnable {
-    constructor(string memory name, string memory symbol) public ERC721(name, symbol) { }
+    constructor(string memory name, string memory symbol) ERC721(name, symbol) { }
 
     function mint(address to, uint256 tokenId) public {
         _mint(to, tokenId);

+ 1 - 2
contracts/mocks/ERC721GSNRecipientMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC721/ERC721.sol";
 import "../GSN/GSNRecipient.sol";
@@ -12,7 +12,6 @@ import "../GSN/GSNRecipientSignature.sol";
  */
 contract ERC721GSNRecipientMock is ERC721, GSNRecipient, GSNRecipientSignature {
     constructor(string memory name, string memory symbol, address trustedSigner)
-        public
         ERC721(name, symbol)
         GSNRecipientSignature(trustedSigner)
     { }

+ 2 - 2
contracts/mocks/ERC721Mock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC721/ERC721.sol";
 
@@ -9,7 +9,7 @@ import "../token/ERC721/ERC721.sol";
  * This mock just provides a public safeMint, mint, and burn functions for testing purposes
  */
 contract ERC721Mock is ERC721 {
-    constructor (string memory name, string memory symbol) public ERC721(name, symbol) { }
+    constructor (string memory name, string memory symbol) ERC721(name, symbol) { }
 
     function exists(uint256 tokenId) public view returns (bool) {
         return _exists(tokenId);

+ 2 - 2
contracts/mocks/ERC721PausableMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC721/ERC721Pausable.sol";
 
@@ -9,7 +9,7 @@ import "../token/ERC721/ERC721Pausable.sol";
  * This mock just provides a public mint, burn and exists functions for testing purposes
  */
 contract ERC721PausableMock is ERC721Pausable {
-    constructor (string memory name, string memory symbol) public ERC721(name, symbol) { }
+    constructor (string memory name, string memory symbol) ERC721(name, symbol) { }
 
     function mint(address to, uint256 tokenId) public {
         super._mint(to, tokenId);

+ 2 - 2
contracts/mocks/ERC721ReceiverMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../token/ERC721/IERC721Receiver.sol";
 
@@ -10,7 +10,7 @@ contract ERC721ReceiverMock is IERC721Receiver {
 
     event Received(address operator, address from, uint256 tokenId, bytes data, uint256 gas);
 
-    constructor (bytes4 retval, bool reverts) public {
+    constructor (bytes4 retval, bool reverts) {
         _retval = retval;
         _reverts = reverts;
     }

+ 2 - 2
contracts/mocks/ERC777Mock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../GSN/Context.sol";
 import "../token/ERC777/ERC777.sol";
@@ -12,7 +12,7 @@ contract ERC777Mock is Context, ERC777 {
         string memory name,
         string memory symbol,
         address[] memory defaultOperators
-    ) public ERC777(name, symbol, defaultOperators) {
+    ) ERC777(name, symbol, defaultOperators) {
         _mint(initialHolder, initialBalance, "", "");
     }
 

+ 1 - 1
contracts/mocks/ERC777SenderRecipientMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../GSN/Context.sol";
 import "../token/ERC777/IERC777.sol";

+ 1 - 1
contracts/mocks/EnumerableMapMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../utils/EnumerableMap.sol";
 

+ 1 - 1
contracts/mocks/EnumerableSetMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../utils/EnumerableSet.sol";
 

+ 1 - 1
contracts/mocks/EtherReceiverMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 contract EtherReceiverMock {
     bool private _acceptEther;

+ 2 - 2
contracts/mocks/GSNRecipientERC20FeeMock.sol

@@ -1,12 +1,12 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../GSN/GSNRecipient.sol";
 import "../GSN/GSNRecipientERC20Fee.sol";
 
 contract GSNRecipientERC20FeeMock is GSNRecipient, GSNRecipientERC20Fee {
-    constructor(string memory name, string memory symbol) public GSNRecipientERC20Fee(name, symbol) { }
+    constructor(string memory name, string memory symbol) GSNRecipientERC20Fee(name, symbol) { }
 
     function mint(address account, uint256 amount) public {
         _mint(account, amount);

+ 2 - 2
contracts/mocks/GSNRecipientMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./ContextMock.sol";
 import "../GSN/GSNRecipient.sol";
@@ -13,7 +13,7 @@ contract GSNRecipientMock is ContextMock, GSNRecipient {
 
     function acceptRelayedCall(address, address, bytes calldata, uint256, uint256, uint256, uint256, bytes calldata, uint256)
         external
-        view
+        pure
         override
         returns (uint256, bytes memory)
     {

+ 2 - 2
contracts/mocks/GSNRecipientSignatureMock.sol

@@ -1,12 +1,12 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../GSN/GSNRecipient.sol";
 import "../GSN/GSNRecipientSignature.sol";
 
 contract GSNRecipientSignatureMock is GSNRecipient, GSNRecipientSignature {
-    constructor(address trustedSigner) public GSNRecipientSignature(trustedSigner) { }
+    constructor(address trustedSigner) GSNRecipientSignature(trustedSigner) { }
 
     event MockFunctionCalled();
 

+ 1 - 1
contracts/mocks/InitializableMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../proxy/Initializable.sol";
 

+ 1 - 1
contracts/mocks/MathMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../math/Math.sol";
 

+ 1 - 1
contracts/mocks/MerkleProofWrapper.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import { MerkleProof } from "../cryptography/MerkleProof.sol";
 

+ 1 - 1
contracts/mocks/MultipleInheritanceInitializableMocks.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../proxy/Initializable.sol";
 

+ 1 - 1
contracts/mocks/OwnableMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../access/Ownable.sol";
 

+ 2 - 2
contracts/mocks/PausableMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../utils/Pausable.sol";
 
@@ -8,7 +8,7 @@ contract PausableMock is Pausable {
     bool public drasticMeasureTaken;
     uint256 public count;
 
-    constructor () public {
+    constructor () {
         drasticMeasureTaken = false;
         count = 0;
     }

+ 2 - 2
contracts/mocks/PullPaymentMock.sol

@@ -1,12 +1,12 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../payment/PullPayment.sol";
 
 // mock class using PullPayment
 contract PullPaymentMock is PullPayment {
-    constructor () public payable { }
+    constructor () payable { }
 
     // test helper function to call asyncTransfer
     function callTransfer(address dest, uint256 amount) public {

+ 1 - 1
contracts/mocks/ReentrancyAttack.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../GSN/Context.sol";
 contract ReentrancyAttack is Context {

+ 2 - 2
contracts/mocks/ReentrancyMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../utils/ReentrancyGuard.sol";
 import "./ReentrancyAttack.sol";
@@ -8,7 +8,7 @@ import "./ReentrancyAttack.sol";
 contract ReentrancyMock is ReentrancyGuard {
     uint256 public counter;
 
-    constructor () public {
+    constructor () {
         counter = 0;
     }
 

+ 1 - 1
contracts/mocks/RegressionImplementation.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../proxy/Initializable.sol";
 

+ 1 - 1
contracts/mocks/SafeCastMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../utils/SafeCast.sol";
 

+ 2 - 2
contracts/mocks/SafeERC20Helper.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../GSN/Context.sol";
 import "../token/ERC20/IERC20.sol";
@@ -98,7 +98,7 @@ contract SafeERC20Wrapper is Context {
 
     IERC20 private _token;
 
-    constructor (IERC20 token) public {
+    constructor (IERC20 token) {
         _token = token;
     }
 

+ 1 - 1
contracts/mocks/SafeMathMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../math/SafeMath.sol";
 

+ 1 - 1
contracts/mocks/SignedSafeMathMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../math/SignedSafeMath.sol";
 

+ 1 - 1
contracts/mocks/SingleInheritanceInitializableMocks.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../proxy/Initializable.sol";
 

+ 1 - 1
contracts/mocks/StringsMock.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../utils/Strings.sol";
 

+ 1 - 1
contracts/package.json

@@ -1,7 +1,7 @@
 {
   "name": "@openzeppelin/contracts",
   "description": "Secure Smart Contract library for Solidity",
-  "version": "3.3.0",
+  "version": "3.3.0-solc-0.7",
   "files": [
     "**/*.sol",
     "/build/contracts/*.json",

+ 2 - 2
contracts/payment/PaymentSplitter.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../GSN/Context.sol";
 import "../math/SafeMath.sol";
@@ -39,7 +39,7 @@ contract PaymentSplitter is Context {
      * All addresses in `payees` must be non-zero. Both arrays must have the same non-zero length, and there must be no
      * duplicates in `payees`.
      */
-    constructor (address[] memory payees, uint256[] memory shares_) public payable {
+    constructor (address[] memory payees, uint256[] memory shares_) payable {
         // solhint-disable-next-line max-line-length
         require(payees.length == shares_.length, "PaymentSplitter: payees and shares length mismatch");
         require(payees.length > 0, "PaymentSplitter: no payees");

+ 2 - 2
contracts/payment/PullPayment.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.2 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./escrow/Escrow.sol";
 
@@ -25,7 +25,7 @@ import "./escrow/Escrow.sol";
 abstract contract PullPayment {
     Escrow private _escrow;
 
-    constructor () internal {
+    constructor () {
         _escrow = new Escrow();
     }
 

+ 1 - 1
contracts/payment/escrow/ConditionalEscrow.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./Escrow.sol";
 

+ 1 - 1
contracts/payment/escrow/Escrow.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../../math/SafeMath.sol";
 import "../../access/Ownable.sol";

+ 2 - 2
contracts/payment/escrow/RefundEscrow.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./ConditionalEscrow.sol";
 
@@ -27,7 +27,7 @@ contract RefundEscrow is ConditionalEscrow {
      * @dev Constructor.
      * @param beneficiary_ The beneficiary of the deposits.
      */
-    constructor (address payable beneficiary_) public {
+    constructor (address payable beneficiary_) {
         require(beneficiary_ != address(0), "RefundEscrow: beneficiary is the zero address");
         _beneficiary = beneficiary_;
         _state = State.Active;

+ 2 - 2
contracts/presets/ERC1155PresetMinterPauser.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../access/AccessControl.sol";
 import "../GSN/Context.sol";
@@ -30,7 +30,7 @@ contract ERC1155PresetMinterPauser is Context, AccessControl, ERC1155Burnable, E
      * @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE`, and `PAUSER_ROLE` to the account that
      * deploys the contract.
      */
-    constructor(string memory uri) public ERC1155(uri) {
+    constructor(string memory uri) ERC1155(uri) {
         _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());
 
         _setupRole(MINTER_ROLE, _msgSender());

+ 2 - 2
contracts/presets/ERC20PresetMinterPauser.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../access/AccessControl.sol";
 import "../GSN/Context.sol";
@@ -32,7 +32,7 @@ contract ERC20PresetMinterPauser is Context, AccessControl, ERC20Burnable, ERC20
      *
      * See {ERC20-constructor}.
      */
-    constructor(string memory name, string memory symbol) public ERC20(name, symbol) {
+    constructor(string memory name, string memory symbol) ERC20(name, symbol) {
         _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());
 
         _setupRole(MINTER_ROLE, _msgSender());

+ 2 - 2
contracts/presets/ERC721PresetMinterPauserAutoId.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../access/AccessControl.sol";
 import "../GSN/Context.sol";
@@ -39,7 +39,7 @@ contract ERC721PresetMinterPauserAutoId is Context, AccessControl, ERC721Burnabl
      * Token URIs will be autogenerated based on `baseURI` and their token IDs.
      * See {ERC721-tokenURI}.
      */
-    constructor(string memory name, string memory symbol, string memory baseURI) public ERC721(name, symbol) {
+    constructor(string memory name, string memory symbol, string memory baseURI) ERC721(name, symbol) {
         _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());
 
         _setupRole(MINTER_ROLE, _msgSender());

+ 1 - 1
contracts/proxy/Proxy.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 /**
  * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM

+ 1 - 1
contracts/proxy/ProxyAdmin.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../access/Ownable.sol";
 import "./TransparentUpgradeableProxy.sol";

+ 2 - 2
contracts/proxy/TransparentUpgradeableProxy.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./UpgradeableProxy.sol";
 
@@ -30,7 +30,7 @@ contract TransparentUpgradeableProxy is UpgradeableProxy {
      * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and
      * optionally initialized with `_data` as explained in {UpgradeableProxy-constructor}.
      */
-    constructor(address _logic, address admin_, bytes memory _data) public payable UpgradeableProxy(_logic, _data) {
+    constructor(address _logic, address admin_, bytes memory _data) payable UpgradeableProxy(_logic, _data) {
         assert(_ADMIN_SLOT == bytes32(uint256(keccak256("eip1967.proxy.admin")) - 1));
         _setAdmin(admin_);
     }

+ 2 - 2
contracts/proxy/UpgradeableProxy.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./Proxy.sol";
 import "../utils/Address.sol";
@@ -21,7 +21,7 @@ contract UpgradeableProxy is Proxy {
      * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
      * function call, and allows initializating the storage of the proxy like a Solidity constructor.
      */
-    constructor(address _logic, bytes memory _data) public payable {
+    constructor(address _logic, bytes memory _data) payable {
         assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1));
         _setImplementation(_logic);
         if(_data.length > 0) {

+ 2 - 2
contracts/token/ERC1155/ERC1155.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./IERC1155.sol";
 import "./IERC1155MetadataURI.sol";
@@ -52,7 +52,7 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI {
     /**
      * @dev See {_setURI}.
      */
-    constructor (string memory uri_) public {
+    constructor (string memory uri_) {
         _setURI(uri_);
 
         // register the supported interfaces to conform to ERC1155 via ERC165

+ 1 - 1
contracts/token/ERC1155/ERC1155Burnable.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./ERC1155.sol";
 

+ 1 - 1
contracts/token/ERC1155/ERC1155Holder.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./ERC1155Receiver.sol";
 

+ 1 - 1
contracts/token/ERC1155/ERC1155Pausable.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./ERC1155.sol";
 import "../../utils/Pausable.sol";

+ 2 - 2
contracts/token/ERC1155/ERC1155Receiver.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./IERC1155Receiver.sol";
 import "../../introspection/ERC165.sol";
@@ -9,7 +9,7 @@ import "../../introspection/ERC165.sol";
  * @dev _Available since v3.1._
  */
 abstract contract ERC1155Receiver is ERC165, IERC1155Receiver {
-    constructor() internal {
+    constructor() {
         _registerInterface(
             ERC1155Receiver(0).onERC1155Received.selector ^
             ERC1155Receiver(0).onERC1155BatchReceived.selector

+ 1 - 1
contracts/token/ERC1155/IERC1155.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.2 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../../introspection/IERC165.sol";
 

+ 1 - 1
contracts/token/ERC1155/IERC1155MetadataURI.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.2 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "./IERC1155.sol";
 

+ 1 - 1
contracts/token/ERC1155/IERC1155Receiver.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../../introspection/IERC165.sol";
 

+ 2 - 2
contracts/token/ERC20/ERC20.sol

@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: MIT
 
-pragma solidity >=0.6.0 <0.8.0;
+pragma solidity ^0.7.0;
 
 import "../../GSN/Context.sol";
 import "./IERC20.sol";
@@ -52,7 +52,7 @@ contract ERC20 is Context, IERC20 {
      * All three of these values are immutable: they can only be set once during
      * construction.
      */
-    constructor (string memory name_, string memory symbol_) public {
+    constructor (string memory name_, string memory symbol_) {
         _name = name_;
         _symbol = symbol_;
         _decimals = 18;

Някои файлове не бяха показани, защото твърде много файлове са промени