ERC721ConsecutiveEnumerableMock.sol 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.0;
  3. import "../../token/ERC721/extensions/ERC721Consecutive.sol";
  4. import "../../token/ERC721/extensions/ERC721Enumerable.sol";
  5. contract ERC721ConsecutiveEnumerableMock is ERC721Consecutive, ERC721Enumerable {
  6. constructor(
  7. string memory name,
  8. string memory symbol,
  9. address[] memory receivers,
  10. uint96[] memory amounts
  11. ) ERC721(name, symbol) {
  12. for (uint256 i = 0; i < receivers.length; ++i) {
  13. _mintConsecutive(receivers[i], amounts[i]);
  14. }
  15. }
  16. function supportsInterface(
  17. bytes4 interfaceId
  18. ) public view virtual override(ERC721, ERC721Enumerable) returns (bool) {
  19. return super.supportsInterface(interfaceId);
  20. }
  21. function _ownerOf(uint256 tokenId) internal view virtual override(ERC721, ERC721Consecutive) returns (address) {
  22. return super._ownerOf(tokenId);
  23. }
  24. function _mint(address to, uint256 tokenId) internal virtual override(ERC721, ERC721Consecutive) {
  25. super._mint(to, tokenId);
  26. }
  27. function _beforeTokenTransfer(
  28. address from,
  29. address to,
  30. uint256 firstTokenId,
  31. uint256 batchSize
  32. ) internal virtual override(ERC721, ERC721Enumerable) {
  33. super._beforeTokenTransfer(from, to, firstTokenId, batchSize);
  34. }
  35. function _afterTokenTransfer(
  36. address from,
  37. address to,
  38. uint256 firstTokenId,
  39. uint256 batchSize
  40. ) internal virtual override(ERC721, ERC721Consecutive) {
  41. super._afterTokenTransfer(from, to, firstTokenId, batchSize);
  42. }
  43. }