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
curio contract to itself, and mints and transfers corresponding new @dev For an NFT ID, queries and transfers tokens from the appropriate
ERC-1155 tokens to caller. curio contract to itself, and mints and transfers corresponding new
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");