{"repo":"alpersonalwebsite/erc721-smart-contract","free":true,"listed":false,"github":"https://github.com/alpersonalwebsite/erc721-smart-contract","clone":"git clone https://github.com/alpersonalwebsite/erc721-smart-contract.git","description":"Decentralized Star Notary: an ERC-721 contract in Solidity with unit tests and a small UI to register and look up stars by token id. Learning demo, with the permissive mint and exchange documented as such.","language":"Solidity","stars":55,"topics":["blockchain","dapp","erc721","ethereum","nft","openzeppelin","smart-contracts","solidity","truffle","web3"],"license":"MIT","category":"blockchain-web3","readme_excerpt":"Decentralized Star Notary Objective Create and implement an ERC-721 smart contract with its proper UT and a basic UI to \"Register\" (Add) and \"Retrieve\" a \"Digital Asset\" (in this case, a Star) by its \"Token ID\". The contract should cover the following functionality: Creation Existence Token to Asset (Star) Transaction: Selling and Buying Transferring Exchanging Scope note: this is a learning demo. A couple of functions are intentionally permissive — mint is unrestricted (anyone can mint an arbitrary token) and exchangeStars can be called by any address (a documented \"source of trust\" simplification). A production contract would add access control and require both owners' approval. Installation Note: electron will be downloaded and installed. Build compatibility note: the pinned compiler ( solc 0.4.24 in truffle-config.js / pragma ^0.4.24 ) and the resolved openzeppelin-solidity (2.x, which targets Solidity ^0.5.0 ) are an inconsistent pair, so the contract will not compile as committed . It was written against roughly solc 0.5.x + OpenZeppelin 2.0.0 (it uses addTokenTo / removeTokenFrom , which OZ removed after 2.0). To build and test it, use a 0.5.x compiler with an OpenZeppelin 2.0.x release (or, with a 0.4.x compiler, OpenZeppelin 1.x). The versions are left frozen here on purpose, so this is documented rather than changed. Deploying locally 1. Install truffle and ganache-cli globally 2. Open one terminal and execute Example result: 3. Open another terminal and execute Exa","default_branch":null,"files":null,"tree":[],"storefront":"/r/alpersonalwebsite","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/alpersonalwebsite/erc721-smart-contract/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}