Swisstronik testnet technical task | Mint an ERC-721 (NFT) token.
Clone Repository#
text
1git clone https://github.com/rpxtxt/swisstronik-erc721-mint-token.git
2cd swisstronik-erc721-mint-tokenInstall Dependencies#
text
npm installSet Environment Variables#
Create a .env file in the project root:
text
PRIVATE_KEY="your private key"Update Smart Contract#
Open contracts/Nft.sol and update it:
text
1// SPDX-License-Identifier: MIT
2pragma solidity ^0.8.20;
3
4import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
5
6contract TestNFT is ERC721 {
7 uint256 private _currentTokenId = 0;
8
9 event NFTMinted(address recipient, uint256 tokenId);
10
11 constructor() ERC721("NameNFT", "NFTSYMBOL") {}
12
13 function mintNFT(address recipient) public returns (uint256) {
14 _currentTokenId += 1;
15 uint256 newItemId = _currentTokenId;
16 _mint(recipient, newItemId);
17
18 emit NFTMinted(recipient, newItemId);
19
20 return newItemId;
21 }
22
23 function burnNFT(uint256 tokenId) public {
24 _burn(tokenId);
25 }
26}Compile, Deploy, and Mint#
text
1npm run compile
2npm run deploy
3npm run mint


