documentation improvements

This commit is contained in:
Moon Man 2023-01-29 16:44:25 -05:00
parent 0f93eae7b0
commit dcc29d5d4d
1 changed files with 26 additions and 15 deletions

View File

@ -14,12 +14,11 @@ contract CurioERC1155Wrapper is ERC1155, ERC1155Metadata_URI, Ownable {
using SafeMath for uint256; using SafeMath for uint256;
using Address for address; using Address for address;
// nft id => curio contract address
mapping (uint256 => address) public contracts; mapping (uint256 => address) public contracts;
mapping (uint256 => string) public urls; mapping (uint256 => string) public urls;
/** /**
@notice Initialize an nft id's data. @notice Initialize an nft id's data
*/ */
function create(uint256 _id, address _contract, string memory _url) internal { function create(uint256 _id, address _contract, string memory _url) internal {
@ -45,11 +44,11 @@ contract CurioERC1155Wrapper is ERC1155, ERC1155Metadata_URI, Ownable {
} }
/** /**
@dev override ERC1155 uri function to return IPFS ref. @notice Returns URI of token metadata
@param _id NFT ID @param _id NFT ID
@return IPFS URI pointing to NFT ID's metadata. @return URI data URI of metadata JSON
*/ */
function uri(uint256 _id) public view returns (string memory) { function uri(uint256 _id) external override view returns (string memory) {
IMastersFedi curio = IMastersFedi(contracts[_id]); IMastersFedi curio = IMastersFedi(contracts[_id]);
return string(abi.encodePacked("data:application/json;base64,", Base64.encode(abi.encodePacked( return string(abi.encodePacked("data:application/json;base64,", Base64.encode(abi.encodePacked(
@ -66,8 +65,9 @@ contract CurioERC1155Wrapper is ERC1155, ERC1155Metadata_URI, Ownable {
} }
/** /**
@dev change the external URL for a token. @notice Change the external URL for a token
@param _id NFT ID @param _id NFT ID
@param _url URL pointing to user or site
*/ */
function setExternalUrl(uint256 _id, string memory _url) external onlyOwner { function setExternalUrl(uint256 _id, string memory _url) external onlyOwner {
require(contracts[_id] != address(0), "id must exist"); require(contracts[_id] != address(0), "id must exist");
@ -76,18 +76,22 @@ contract CurioERC1155Wrapper is ERC1155, ERC1155Metadata_URI, Ownable {
} }
/** /**
@dev helper function to see if NFT ID exists, makes OpenSea happy. @notice If NFT ID exists
@dev Makes OpenSea happy
@param _id NFT ID @param _id NFT ID
@return if NFT ID exists. @return exists if NFT ID exists.
*/ */
function exists(uint256 _id) external view returns(bool) { function exists(uint256 _id) external view returns(bool) {
return contracts[_id] != address(0); return contracts[_id] != address(0);
} }
/** /**
@dev for an NFT ID, queries and transfers tokens from the appropriate @notice Converts old-style NFT to new-style
@dev For an NFT ID, queries and transfers tokens from the appropriate
curio contract to itself, and mints and transfers corresponding new curio contract to itself, and mints and transfers corresponding new
ERC-1155 tokens to caller. ERC-1155 tokens to caller
@param _id NFT ID
@param _quantity how many to wrap
*/ */
function wrap(uint256 _id, uint256 _quantity) external { function wrap(uint256 _id, uint256 _quantity) external {
address tokenContract = contracts[_id]; address tokenContract = contracts[_id];
@ -112,7 +116,9 @@ contract CurioERC1155Wrapper is ERC1155, ERC1155Metadata_URI, Ownable {
} }
/** /**
@dev batch version of wrap. @notice Batch version of wrap function
@param _ids array of NFT IDs
@param _quantities how many to wrap of each
*/ */
function wrapBatch(uint256[] calldata _ids, uint256[] calldata _quantities) external { function wrapBatch(uint256[] calldata _ids, uint256[] calldata _quantities) external {
require(_ids.length == _quantities.length, "ids and quantities must match"); require(_ids.length == _quantities.length, "ids and quantities must match");
@ -145,8 +151,11 @@ contract CurioERC1155Wrapper is ERC1155, ERC1155Metadata_URI, Ownable {
} }
/** /**
@dev for an NFT ID, burns ERC-1155 quantity and transfers curio ERC-20 @notice Unwrap new-style NFTs back to old-style
tokens to caller. @dev For an NFT ID, burns ERC-1155 quantity and transfers curio ERC-20
tokens to caller
@param _id NFT ID
@param _quantity how many to unwrap
*/ */
function unwrap(uint256 _id, uint256 _quantity) external { function unwrap(uint256 _id, uint256 _quantity) external {
address tokenContract = contracts[_id]; address tokenContract = contracts[_id];
@ -163,7 +172,9 @@ contract CurioERC1155Wrapper is ERC1155, ERC1155Metadata_URI, Ownable {
} }
/** /**
@dev batch version of unwrap. @notice Batch version of unwrap
@param _ids array of NFT IDs
@param _quantities how many to unwrap of each
*/ */
function unwrapBatch(uint256[] calldata _ids, uint256[] calldata _quantities) external { function unwrapBatch(uint256[] calldata _ids, uint256[] calldata _quantities) external {
require(_ids.length == _quantities.length, "ids and quantities must match"); require(_ids.length == _quantities.length, "ids and quantities must match");