ehsomma / mynfts

This project implements the ERC-721 Non-Fungible Token Standard, including the Metadata, Enumerable and Ownable extensions, and include a mint function to mint from a list of IPFS hashes (CIDs) that link to the json metadata.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MyNFTs (Natal Artists collection)

.github/workflows/ci.yml Coverage Status Solhint Slither GitHub Issues License

This project implements the ERC721 Non-Fungible Token Standard, including the Metadata, Enumerable and Ownable extensions, and include a mint function to mint from a list of IPFS hashes (CIDs) that link to the json metadata.

About the NFTs collection

First works by artists who don't yet know they are artists... but they will be.

Technical features and used tools

  • Solidity
  • openzeppelin interfaces (ERC721, ERC165, Metadata, Enumerable and Ownable)
  • Truffle
  • Unit/Integration tests
  • Chai (expect)
  • truffle-assertions (revert assertions)
  • openzeppelin/test-helpers (time and block manipulation)
  • eth-gas-reporter
  • solidity-coverage (code coverage)
  • coveralls (code coverage report)
  • solhint (linter for Solidity)
  • slither (vulnerability analyzer)
  • Full contract documentation (NatSpec Format)
  • Solidity coding conventions
  • Deployed to Rinkeby
  • Minted tokens (on Rinkeby network)
  • Opensea (you can see the NFT collection in Opensea)
  • Rarible (you can see the NFT collection in Rarible)
  • Pinata (Pinata was used to upload and pin the files to IPFS)
  • IPFS (images and json metadata files)
  • CI (Github Actions)

Additional and extended functions

  • mint(): Mints the specified list of hashes (the IPFS hash of the metadata file) on behalf of to.
  • walletOfOwner(): Returns the tokenIds of the owner.
  • tokenURI(): Returns the Uniform Resource Identifier (URI) for the tokenId with the IPFS hash of the json metadata file.
  • setBaseURI(): Changes the actual {baseURI} to the newBaseURI.

NOTE: For more information see code comments in NatalArtist.sol.

Links

Reports

Solhint

solhint 'contracts/**/*.sol' -f table

Tests

truffle test

Code coverage

truffle run coverage

Gas

truffle test --reporter eth-gas-reporter

Slither

slither --exclude-dependencies .

About

This project implements the ERC-721 Non-Fungible Token Standard, including the Metadata, Enumerable and Ownable extensions, and include a mint function to mint from a list of IPFS hashes (CIDs) that link to the json metadata.

License:MIT License


Languages

Language:Solidity 100.0%