| | --- |
| | license: mit |
| | datasets: |
| | - OpenAssistant/oasst1 |
| | language: |
| | - en |
| | metrics: |
| | - character |
| | pipeline_tag: text-generation |
| | tags: |
| | - code |
| | library_name: adapter-transformers |
| | --- |
| | |
| | // SPDX-License-Identifier: UNLICENSED |
| | pragma solidity ^0.8.0; |
| |
|
| | import "@openzeppelin/contracts/utils/Counters.sol"; |
| | import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; |
| | import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; |
| |
|
| | contract NFT is ERC721URIStorage { |
| | using Counters for Counters.Counter; |
| | Counters.Counter private _tokenIds; |
| | |
| | address public owner; |
| | uint256 public cost; |
| | |
| | constructor( |
| | string memory _name, |
| | string memory _symbol, |
| | uint256 _cost |
| | ) ERC721(_name, _symbol) { |
| | owner = msg.sender; |
| | cost = _cost; |
| | } |
| | |
| | function mint(string memory tokenURI) public payable { |
| | require(msg.value >= cost); |
| | |
| | _tokenIds.increment(); |
| | |
| | uint256 newItemId = _tokenIds.current(); |
| | _mint(msg.sender, newItemId); |
| | _setTokenURI(newItemId, tokenURI); |
| | } |
| | |
| | function totalSupply() public view returns (uint256) { |
| | return _tokenIds.current(); |
| | } |
| | |
| | function withdraw() public { |
| | require(msg.sender == owner); |
| | (bool success, ) = owner.call{value: address(this).balance}(""); |
| | require(success); |
| | } |
| | } |