BlockChain
(BlockChain) Remix 활용
JJeongHyun
2023. 3. 13. 17:02
반응형
Remix를 사용하기 전에 폴더 및 라이브러리 설정
mkdir remix
cd remix
npm init -y
npm i truffle @openzeppelin/contracts @remix-project/remixd
npm i -D prettier-plugin-solidity
npx truffle init
Remix
- http://remix.ethereum.org에서 사용
- 스마트 컨트랙트의 작성 및 배포를 쉽게 할 수 있도록 하는 Ethereum IDE이라고 쉽게 이야기가 가
- VScode에서 작성한 로컬 파일을 Remix에서 연동
- -s : 로컬 폴더 위치 옵션
- -u : 연결할 주소
npx remixd -s . --remix-ide https://remix.ethereum.org
# npx remixd -s . -u https://remix.ethereum.org
이후 Remix 웹페이에서 localhost로 연결 해준다
Solidity Compile
pinata를 이용해 testnets.opensea에 NFT 올리기
- pinata : ipfs 서비스 웹페이지
- ipfs : InterPlanetary File System
- 블록체인 이더리움 네트워크에서 사용하는 P2P 파일 저장 방식
- ipfs를 사용할 경우 Ubuntu, Linux 등 OS에서 프로그램 설치
- 간단하게 테스트하기 위해 pinata 사용
- ipfs : InterPlanetary File System
- NFT 객체를 만들기 전에 NFTToken 이미지를 먼저 pinata에 업로드해준다
- 성공적으로 업로드된 이미지의 CID를 복사해 둔다
NFT 객체 생성
{
"name": "RPS NFT",
"description": "Rock, Scissors, Paper with Pinata",
"image": "https://gateway.pinata.cloud/ipfs/QmTDC8tseTkeo9xqg67rrGugDy9rsyKvAA3BEgdBLqkEhT",
// .../ipfs/ + 업로드한 이미지의 CID
"atrributes": [
{
"trait_type": "Rank",
"value": 1
},
{
"trait_type": "Type",
"value": 1
}
]
}
- 이미지의 CID를 위 코드처럼 붙여 넣기 해준다
- JSON 파일 생성 후 이미지 업로드처럼 JSON파일도 업로드해준다
- 이후 CID를 복사해서 Remix 웹에 있는 solidity를 수정 후 컴파일
- remix에서 연결된 Metamask 쪽으로 배포(deploy) 및 transact 버튼을 클릭해준다
NFT Token 생성
- MetaMask에 연결된 계정 주소를 가져와서 token 개수를 조회
- Token을 생성한 적이 없기에 숫자 0이 나타난 걸 확인할 수 있다
- 23이라는 tokenId값을 _minting 함수를 실행시키고 트랜잭션이 발생시킨다
- 성공적으로 트랜잭션이 끝나고 다시 토큰을 조회해 보면 0 → 1로 바뀐 걸 확인할 수 있다
opensea에서 Token 확인
- testnets.opensea.io에서 확인