* Implement AddressSet in terms of a generic Set * Add Uint256Set * Add EnumerableMap * Fix wording on EnumerableSet docs and tests * Refactor ERC721 using EnumerableSet and EnumerableMap * Fix tests * Fix linter error * Gas optimization for EnumerableMap * Gas optimization for EnumerableSet * Remove often not-taken if from Enumerable data structures * Fix failing test * Gas optimization for EnumerableMap * Fix linter errors * Add comment for clarification * Improve test naming * Rename EnumerableMap.add to set * Add overload for EnumerableMap.get with custom error message * Improve Enumerable docs * Rename Uint256Set to UintSet * Add changelog entry
40 lines
1012 B
Solidity
40 lines
1012 B
Solidity
pragma solidity ^0.6.0;
|
|
|
|
import "../token/ERC721/ERC721.sol";
|
|
|
|
/**
|
|
* @title ERC721Mock
|
|
* 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) { }
|
|
|
|
function exists(uint256 tokenId) public view returns (bool) {
|
|
return _exists(tokenId);
|
|
}
|
|
|
|
function setTokenURI(uint256 tokenId, string memory uri) public {
|
|
_setTokenURI(tokenId, uri);
|
|
}
|
|
|
|
function setBaseURI(string memory baseURI) public {
|
|
_setBaseURI(baseURI);
|
|
}
|
|
|
|
function mint(address to, uint256 tokenId) public {
|
|
_mint(to, tokenId);
|
|
}
|
|
|
|
function safeMint(address to, uint256 tokenId) public {
|
|
_safeMint(to, tokenId);
|
|
}
|
|
|
|
function safeMint(address to, uint256 tokenId, bytes memory _data) public {
|
|
_safeMint(to, tokenId, _data);
|
|
}
|
|
|
|
function burn(uint256 tokenId) public {
|
|
_burn(tokenId);
|
|
}
|
|
}
|