박주니 개발 정리

recordNFT - 배포 및 address 확인 본문

블록체인

recordNFT - 배포 및 address 확인

박주니 2023. 3. 7. 17:24
728x90
반응형

적용하게 된 이유)

recordNFT를 사용하게 된 이유는 현재 프로젝트 관리자에서 거래내역을 DB로 저장을 하면 보안상으로 취약할 수 있기 때문에 db가 아닌 블록체인으로 기록 용도로 사용하는 nft를 찾게 되다가 recordNFT를 알게 되어서 적용하게 되었습니다. 주로 erc721, erc1155에 대해 거래 위주로 사용했고 필요한 정보는 따로 db에 저장을 했는데 블록체인을 사용하는 가장 큰 이유는 보안이기 때문에 recordNFT가 필수라는 것을 다시 한번 느낄 수 있었습니다. 

 

배포 방법)

1. remix에 접속해주시길 바랍니다.

https://remix.ethereum.org/#lang=en&optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.18+commit.87f61d96.js 

 

Remix - Ethereum IDE

 

remix.ethereum.org

 

 

2. File explorer을 선택해서 contracts 폴더 안에 RecordNFT.sol 생성하고 안에 RecordNFT 스마트 컨트렉트 내용을 넣습니다. 

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";

contract RecordNFT is ERC721 {
    struct Record {
        uint256 tokenId;
        address owner;
        string recordInfo;
    }

    uint256 private _tokenIdCounter;

    mapping(uint256 => Record) private _records;

    constructor() ERC721("RecordNFT", "RNFT") {}

    function createRecordNFT(string memory _recordInfo) public returns (uint256) {
        _tokenIdCounter += 1;
        _safeMint(msg.sender, _tokenIdCounter);
        _records[_tokenIdCounter] = Record(_tokenIdCounter, msg.sender, _recordInfo);
        return _tokenIdCounter;
    }

    function getRecord(uint256 tokenId)
        public
        view
        returns (Record memory)
    {
        require(_exists(tokenId), "RecordNFT: token not exist");
        return _records[tokenId];
    }

    function getRecordInfo(uint256 tokenId)
        public
        view
        returns (string memory)
    {
        require(_exists(tokenId), "RecordNFT: token not exist");
        return _records[tokenId].recordInfo;
    }
}

참조 이미지) 위치를 모르신다면 하단에 이미지를 참고해주시길 바랍니다.

3. Solidity Compiler을 선택해서 Compile  RecordNFT.sol 버튼을 클릭해주시길 바랍니다.

4. Deploy & run transactions를 클릭합니다. 그리고 ENVIRONMENT는 Injected Provider - MetaMask를 선택합니다.

추가 설명) ENVIROMENT에서 MataMask를 선택하고 난 이후에 메타마스크를 접속하시면 접속한 ACCOUNT 정보가 나오는 것을 확인하실 수 있습니다. 예를 들어서 저는 polygon으로 프로젝트를 진행하고 있기 때문에 네트워크를 폴리곤으로 선택해서 진행했습니다. 따라서 하시는 분들은 사용하고자하는 네트워크에 연결하시면 됩니다. 

 

5. CONTRACT가 RecordNFT인지 다시 한번 확인하고 Deploy를 클릭합니다. 

6. Deploy를 클릭하면 메타마스크 가스 지출 화면이 나오고 확인을 누르시면 됩니다. 정상적으로 진행시 terminal에서 해당 block을 확인하실 수 있습니다.

recordNFT address 확인 방법 (폴리곤 기준)

1. 메타마스크로 들어가서 활동을 클릭 후 형광펜으로 체크한 부분 계약 배포를 클릭합니다.

2. 해당 모달창에서 상태 옆에 형광펜으로 체크한 블록 탐색기에서 보기를 클릭합니다.

3, polygonscan으로 넘어가서 mainnet으로 하셨으면 polygon mainnet, testnet으로 하셨으면 polygon testnest으로 선택하시고 tx 옆에 적혀있는 tx hash를 복사해놓습니다.

추가 설명)

1번 - tx/ 옆에 있는 내용은 tx hash를 의미함으로 형광펜 체크된 부분을 미리 복사 해주시길 바랍니다. 

2번 - 2번 형광펜으로 체크한 부분을 클릭하시면 해당 네트워크를 선택하실 수 있습니다. 

4. Polygon PoS Chain Testnet Explorer 에서 해당 input에 3번에서 tx hash 복사한 것을 붙인 후 검색을 합니다.

5. Transaction Details에서 To를 보시면 해당 contract 주소를 확인하실 수 있습니다.

 

 

다음 적용 방법은 recordNFT- 적용을 확인해주시길 바랍니다.

728x90
반응형
Comments