Unverified Commit 19c74140 by Nicolás Venturo Committed by GitHub

Bump minimum Solidity version to 0.5.7 (#1724)

* Bump Solidity version to 0.5.7

* Add changelog entry.
parent 5e46cf6d
...@@ -7,6 +7,9 @@ ...@@ -7,6 +7,9 @@
implementers there. ([#1677](https://github.com/OpenZeppelin/openzeppelin-solidity/pull/1677)) implementers there. ([#1677](https://github.com/OpenZeppelin/openzeppelin-solidity/pull/1677))
* `ERC777`: initial support for the [ERC777 token](https://eips.ethereum.org/EIPS/eip-777), which has multiple improvements over `ERC20` such as built-in burning, a more straightforward permission system, and optional sender and receiver hooks on transfer (mandatory for contracts!). ([#1684](https://github.com/OpenZeppelin/openzeppelin-solidity/pull/1684)) * `ERC777`: initial support for the [ERC777 token](https://eips.ethereum.org/EIPS/eip-777), which has multiple improvements over `ERC20` such as built-in burning, a more straightforward permission system, and optional sender and receiver hooks on transfer (mandatory for contracts!). ([#1684](https://github.com/OpenZeppelin/openzeppelin-solidity/pull/1684))
### Improvements:
* Upgraded the minimum compiler version to v0.5.7: this prevents users from encountering compiler bugs that were fixed in this version. ([#1724](https://github.com/OpenZeppelin/openzeppelin-solidity/pull/1724))
## 2.2.0 (2019-03-14) ## 2.2.0 (2019-03-14)
### New features: ### New features:
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title Roles * @title Roles
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../Roles.sol"; import "../Roles.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../Roles.sol"; import "../Roles.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../Roles.sol"; import "../Roles.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../Roles.sol"; import "../Roles.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../Roles.sol"; import "../Roles.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../Roles.sol"; import "../Roles.sol";
import "./WhitelistAdminRole.sol"; import "./WhitelistAdminRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../math/SafeMath.sol"; import "../math/SafeMath.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../../math/SafeMath.sol"; import "../../math/SafeMath.sol";
import "../validation/TimedCrowdsale.sol"; import "../validation/TimedCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../validation/TimedCrowdsale.sol"; import "../validation/TimedCrowdsale.sol";
import "../../math/SafeMath.sol"; import "../../math/SafeMath.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../../math/SafeMath.sol"; import "../../math/SafeMath.sol";
import "./FinalizableCrowdsale.sol"; import "./FinalizableCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./RefundableCrowdsale.sol"; import "./RefundableCrowdsale.sol";
import "./PostDeliveryCrowdsale.sol"; import "./PostDeliveryCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../Crowdsale.sol"; import "../Crowdsale.sol";
import "../../token/ERC20/IERC20.sol"; import "../../token/ERC20/IERC20.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../Crowdsale.sol"; import "../Crowdsale.sol";
import "../../token/ERC20/ERC20Mintable.sol"; import "../../token/ERC20/ERC20Mintable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../validation/TimedCrowdsale.sol"; import "../validation/TimedCrowdsale.sol";
import "../../math/SafeMath.sol"; import "../../math/SafeMath.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../../math/SafeMath.sol"; import "../../math/SafeMath.sol";
import "../Crowdsale.sol"; import "../Crowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../../math/SafeMath.sol"; import "../../math/SafeMath.sol";
import "../Crowdsale.sol"; import "../Crowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../Crowdsale.sol"; import "../Crowdsale.sol";
import "../../lifecycle/Pausable.sol"; import "../../lifecycle/Pausable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../../math/SafeMath.sol"; import "../../math/SafeMath.sol";
import "../Crowdsale.sol"; import "../Crowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../Crowdsale.sol"; import "../Crowdsale.sol";
import "../../access/roles/WhitelistedRole.sol"; import "../../access/roles/WhitelistedRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title Elliptic curve signature operations * @title Elliptic curve signature operations
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title MerkleProof * @title MerkleProof
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../math/SafeMath.sol"; import "../math/SafeMath.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../../token/ERC20/IERC20.sol"; import "../../token/ERC20/IERC20.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC1820Implementer.sol"; import "./IERC1820Implementer.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../token/ERC20/ERC20Mintable.sol"; import "../token/ERC20/ERC20Mintable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../math/SafeMath.sol"; import "../math/SafeMath.sol";
import "../utils/Arrays.sol"; import "../utils/Arrays.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC777.sol"; import "./IERC777.sol";
import "./IERC777Recipient.sol"; import "./IERC777Recipient.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title ERC777 token interface * @title ERC777 token interface
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title ERC777 token recipient interface * @title ERC777 token recipient interface
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title ERC777 token sender interface * @title ERC777 token sender interface
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title IERC1820Implementer * @title IERC1820Implementer
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title ERC1820 Pseudo-introspection Registry Contract * @title ERC1820 Pseudo-introspection Registry Contract
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../access/roles/SignerRole.sol"; import "../access/roles/SignerRole.sol";
import "../cryptography/ECDSA.sol"; import "../cryptography/ECDSA.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title SignedSafeMath * @title SignedSafeMath
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/SafeERC20.sol"; import "../token/ERC20/SafeERC20.sol";
import "../ownership/Ownable.sol"; import "../ownership/Ownable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../crowdsale/validation/CappedCrowdsale.sol"; import "../crowdsale/validation/CappedCrowdsale.sol";
import "../crowdsale/distribution/RefundableCrowdsale.sol"; import "../crowdsale/distribution/RefundableCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/ERC20.sol"; import "../token/ERC20/ERC20.sol";
import "../token/ERC20/ERC20Detailed.sol"; import "../token/ERC20/ERC20Detailed.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC165.sol"; import "./IERC165.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title ERC165Checker * @title ERC165Checker
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title IERC165 * @title IERC165
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../access/roles/PauserRole.sol"; import "../access/roles/PauserRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title Math * @title Math
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title SafeMath * @title SafeMath
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../utils/Address.sol"; import "../utils/Address.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../crowdsale/emission/AllowanceCrowdsale.sol"; import "../crowdsale/emission/AllowanceCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../utils/Arrays.sol"; import "../utils/Arrays.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../crowdsale/validation/CappedCrowdsale.sol"; import "../crowdsale/validation/CappedCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../access/roles/CapperRole.sol"; import "../access/roles/CapperRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../payment/escrow/ConditionalEscrow.sol"; import "../payment/escrow/ConditionalEscrow.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../drafts/Counters.sol"; import "../drafts/Counters.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../crowdsale/Crowdsale.sol"; import "../crowdsale/Crowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../cryptography/ECDSA.sol"; import "../cryptography/ECDSA.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../../introspection/IERC165.sol"; import "../../introspection/IERC165.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
contract ERC165NotSupported { contract ERC165NotSupported {
// solhint-disable-previous-line no-empty-blocks // solhint-disable-previous-line no-empty-blocks
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../introspection/ERC165Checker.sol"; import "../introspection/ERC165Checker.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../introspection/ERC165.sol"; import "../introspection/ERC165.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../drafts/ERC1820Implementer.sol"; import "../drafts/ERC1820Implementer.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/ERC20Burnable.sol"; import "../token/ERC20/ERC20Burnable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/ERC20.sol"; import "../token/ERC20/ERC20.sol";
import "../token/ERC20/ERC20Detailed.sol"; import "../token/ERC20/ERC20Detailed.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/ERC20.sol"; import "../token/ERC20/ERC20.sol";
import "../drafts/ERC1046/ERC20Metadata.sol"; import "../drafts/ERC1046/ERC20Metadata.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/ERC20Mintable.sol"; import "../token/ERC20/ERC20Mintable.sol";
import "./MinterRoleMock.sol"; import "./MinterRoleMock.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/ERC20.sol"; import "../token/ERC20/ERC20.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/ERC20Pausable.sol"; import "../token/ERC20/ERC20Pausable.sol";
import "./PauserRoleMock.sol"; import "./PauserRoleMock.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../drafts/ERC20Snapshot.sol"; import "../drafts/ERC20Snapshot.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC721/ERC721Full.sol"; import "../token/ERC721/ERC721Full.sol";
import "../token/ERC721/ERC721Mintable.sol"; import "../token/ERC721/ERC721Mintable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC721/ERC721Full.sol"; import "../token/ERC721/ERC721Full.sol";
import "../token/ERC721/ERC721Mintable.sol"; import "../token/ERC721/ERC721Mintable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC721/ERC721.sol"; import "../token/ERC721/ERC721.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC721/ERC721Pausable.sol"; import "../token/ERC721/ERC721Pausable.sol";
import "./PauserRoleMock.sol"; import "./PauserRoleMock.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC721/IERC721Receiver.sol"; import "../token/ERC721/IERC721Receiver.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../drafts/ERC777/ERC777.sol"; import "../drafts/ERC777/ERC777.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../drafts/ERC777/IERC777.sol"; import "../drafts/ERC777/IERC777.sol";
import "../drafts/ERC777/IERC777Sender.sol"; import "../drafts/ERC777/IERC777Sender.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../crowdsale/distribution/FinalizableCrowdsale.sol"; import "../crowdsale/distribution/FinalizableCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../crowdsale/price/IncreasingPriceCrowdsale.sol"; import "../crowdsale/price/IncreasingPriceCrowdsale.sol";
import "../math/SafeMath.sol"; import "../math/SafeMath.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../crowdsale/validation/IndividuallyCappedCrowdsale.sol"; import "../crowdsale/validation/IndividuallyCappedCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../math/Math.sol"; import "../math/Math.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import { MerkleProof } from "../cryptography/MerkleProof.sol"; import { MerkleProof } from "../cryptography/MerkleProof.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/ERC20Mintable.sol"; import "../token/ERC20/ERC20Mintable.sol";
import "../crowdsale/emission/MintedCrowdsale.sol"; import "../crowdsale/emission/MintedCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../access/roles/MinterRole.sol"; import "../access/roles/MinterRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../ownership/Ownable.sol"; import "../ownership/Ownable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../ownership/Ownable.sol"; import "../ownership/Ownable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/ERC20.sol"; import "../token/ERC20/ERC20.sol";
import "../crowdsale/validation/PausableCrowdsale.sol"; import "../crowdsale/validation/PausableCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../lifecycle/Pausable.sol"; import "../lifecycle/Pausable.sol";
import "./PauserRoleMock.sol"; import "./PauserRoleMock.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../access/roles/PauserRole.sol"; import "../access/roles/PauserRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../crowdsale/distribution/PostDeliveryCrowdsale.sol"; import "../crowdsale/distribution/PostDeliveryCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../payment/PullPayment.sol"; import "../payment/PullPayment.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
contract ReentrancyAttack { contract ReentrancyAttack {
function callSender(bytes4 data) public { function callSender(bytes4 data) public {
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../utils/ReentrancyGuard.sol"; import "../utils/ReentrancyGuard.sol";
import "./ReentrancyAttack.sol"; import "./ReentrancyAttack.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../crowdsale/distribution/RefundableCrowdsale.sol"; import "../crowdsale/distribution/RefundableCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../crowdsale/distribution/RefundablePostDeliveryCrowdsale.sol"; import "../crowdsale/distribution/RefundablePostDeliveryCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../access/Roles.sol"; import "../access/Roles.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../token/ERC20/SafeERC20.sol"; import "../token/ERC20/SafeERC20.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../math/SafeMath.sol"; import "../math/SafeMath.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../ownership/Secondary.sol"; import "../ownership/Secondary.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../drafts/SignatureBouncer.sol"; import "../drafts/SignatureBouncer.sol";
import "./SignerRoleMock.sol"; import "./SignerRoleMock.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../drafts/SignedSafeMath.sol"; import "../drafts/SignedSafeMath.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../access/roles/SignerRole.sol"; import "../access/roles/SignerRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../crowdsale/validation/TimedCrowdsale.sol"; import "../crowdsale/validation/TimedCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../access/roles/WhitelistAdminRole.sol"; import "../access/roles/WhitelistAdminRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../token/ERC20/IERC20.sol"; import "../token/ERC20/IERC20.sol";
import "../crowdsale/validation/WhitelistCrowdsale.sol"; import "../crowdsale/validation/WhitelistCrowdsale.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../access/roles/WhitelistedRole.sol"; import "../access/roles/WhitelistedRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title Ownable * @title Ownable
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title Secondary * @title Secondary
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../math/SafeMath.sol"; import "../math/SafeMath.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./escrow/Escrow.sol"; import "./escrow/Escrow.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./Escrow.sol"; import "./Escrow.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../../math/SafeMath.sol"; import "../../math/SafeMath.sol";
import "../../ownership/Secondary.sol"; import "../../ownership/Secondary.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./ConditionalEscrow.sol"; import "./ConditionalEscrow.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC20.sol"; import "./IERC20.sol";
import "../../math/SafeMath.sol"; import "../../math/SafeMath.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./ERC20.sol"; import "./ERC20.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./ERC20Mintable.sol"; import "./ERC20Mintable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC20.sol"; import "./IERC20.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./ERC20.sol"; import "./ERC20.sol";
import "../../access/roles/MinterRole.sol"; import "../../access/roles/MinterRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./ERC20.sol"; import "./ERC20.sol";
import "../../lifecycle/Pausable.sol"; import "../../lifecycle/Pausable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title ERC20 interface * @title ERC20 interface
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC20.sol"; import "./IERC20.sol";
import "../../math/SafeMath.sol"; import "../../math/SafeMath.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./SafeERC20.sol"; import "./SafeERC20.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC721.sol"; import "./IERC721.sol";
import "./IERC721Receiver.sol"; import "./IERC721Receiver.sol";
...@@ -42,7 +42,7 @@ contract ERC721 is ERC165, IERC721 { ...@@ -42,7 +42,7 @@ contract ERC721 is ERC165, IERC721 {
* bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd
* bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e
* bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde
* *
* => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^ * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^
* 0xa22cb465 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd * 0xa22cb465 ^ 0xe985e9c ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd
*/ */
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./ERC721.sol"; import "./ERC721.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC721Enumerable.sol"; import "./IERC721Enumerable.sol";
import "./ERC721.sol"; import "./ERC721.sol";
...@@ -21,12 +21,12 @@ contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable { ...@@ -21,12 +21,12 @@ contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {
// Mapping from token id to position in the allTokens array // Mapping from token id to position in the allTokens array
mapping(uint256 => uint256) private _allTokensIndex; mapping(uint256 => uint256) private _allTokensIndex;
/* /*
* bytes4(keccak256('totalSupply()')) == 0x18160ddd * bytes4(keccak256('totalSupply()')) == 0x18160ddd
* bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59 * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59
* bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7 * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7
* *
* => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63 * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63
*/ */
bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63; bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./ERC721.sol"; import "./ERC721.sol";
import "./ERC721Enumerable.sol"; import "./ERC721Enumerable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC721Receiver.sol"; import "./IERC721Receiver.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./ERC721.sol"; import "./ERC721.sol";
import "./IERC721Metadata.sol"; import "./IERC721Metadata.sol";
...@@ -18,7 +18,7 @@ contract ERC721Metadata is ERC165, ERC721, IERC721Metadata { ...@@ -18,7 +18,7 @@ contract ERC721Metadata is ERC165, ERC721, IERC721Metadata {
* bytes4(keccak256('name()')) == 0x06fdde03 * bytes4(keccak256('name()')) == 0x06fdde03
* bytes4(keccak256('symbol()')) == 0x95d89b41 * bytes4(keccak256('symbol()')) == 0x95d89b41
* bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd
* *
* => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f
*/ */
bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f; bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./ERC721Metadata.sol"; import "./ERC721Metadata.sol";
import "../../access/roles/MinterRole.sol"; import "../../access/roles/MinterRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./ERC721.sol"; import "./ERC721.sol";
import "../../access/roles/MinterRole.sol"; import "../../access/roles/MinterRole.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./ERC721.sol"; import "./ERC721.sol";
import "../../lifecycle/Pausable.sol"; import "../../lifecycle/Pausable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../../introspection/IERC165.sol"; import "../../introspection/IERC165.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC721.sol"; import "./IERC721.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC721.sol"; import "./IERC721.sol";
import "./IERC721Enumerable.sol"; import "./IERC721Enumerable.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "./IERC721.sol"; import "./IERC721.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title ERC721 token receiver interface * @title ERC721 token receiver interface
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* Utility library of inline functions on addresses * Utility library of inline functions on addresses
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
import "../math/Math.sol"; import "../math/Math.sol";
......
pragma solidity ^0.5.2; pragma solidity ^0.5.7;
/** /**
* @title Helps contracts guard against reentrancy attacks. * @title Helps contracts guard against reentrancy attacks.
......
...@@ -18,7 +18,7 @@ module.exports = { ...@@ -18,7 +18,7 @@ module.exports = {
compilers: { compilers: {
solc: { solc: {
version: '0.5.2', version: '0.5.7',
}, },
}, },
}; };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment