본문 바로가기

솔리디티8

[Ethereum] ERC-721 소스 분석(1) - 인터페이스 ERC-721 인터페이스 ERC-721 인터페이스에 명시된 함수는 ERC-20에 비해 상대적으로 많은 편이다. 토큰 정보 확인부터 전송, 권한 설정, 주소 추적 기능이 명시되어 있다. 인터페이스 함수 목록 balanceOf : 파라미터로 전달받은 주소가 보유하고 있는 NFT 수량 반환 ownerOf : 파라미터로 전달 받은 NFT 토큰 주소를 소유하고 있는 주소 반환 safeTransferFrom : 전전송받을 주소(_to)가 NFT 토큰을 받을 수 있는지 검증하고 전송 진행(주소 종류가 EOA, CA에 따라 전달 파라미터 형식이 달라진다. 아래 코드 참조) transferFrom : NFT 소유 주소로부터 다른 주소로 토큰 전송 approve : 파라미터로 전달 받은 주소에 NFT 전송 권한 부여 se.. 2022. 3. 23.
[Ethereum] ERC-20 지난 포스트에서 ERC에 대해 알아보았다. 이번에는 ERC 토큰 그룹 중 시장에서 가장 활발하게 거래되고 있는 ERC-20 토큰에 대해 알아보려고 한다. ERC-20 ERC-20 토큰이란 이더리움 네트워크에 배포된 대체 가능 토큰(Fungible Token) 중 하나다. 이더리움 네트워크에서 가장 많이 사용되는 토큰 그룹이며, 마치 우리가 사용하는 화폐처럼 계정(Account)들 간의 거래에 사용된다. 여기서 대체 가능 토큰(Fungible Token)이란 1개의 토큰은 다른 1개와 그 가치가 동일함을 의미한다. 실생활에서 100원짜리 동전을 생각하면 된다. 내가 가지고 있는 100원은 다른 사람이 가지고 있는 100원과 같다. 그렇기 때문에 지금 가지고 있는 100원이 다른 사람의 100원으로 바뀌어도.. 2022. 3. 23.
[Solidity] 트러플(Truffle) 설치 및 컨트렉트(Contract) 배포 이번 포스트에서는 트러플(Truffle) 설치 및 트러플 콘솔을 이용한 스마트 컨트렉트 배포에 대해서 다루고자 한다. 트러플의 개념과 설치법, DApp 프로젝트에서 트러플 설정에 대해 알아본 뒤, 터미널에서 트러플 콘솔을 통해 컨트렉트 컴파일과 배포 과정을 공유한다. 트러플(Truffle)이란? 트러플(Truffle)은 이더리움 기반 DApp 개발에 유틸리티 기능을 제공받을 수 있는 일종의 블록체인 프레임워크이다. 작성된 스마트 컨트렉트 코드에 대한 컴파일(Compile), 배포(Deploy), 테스트(Test) 기능을 지원받을 수 있다. 해당 서비스에 대해 공식 문서에서는 "이더리움 가상머신(EVM)을 사용하여 블록체인 개발에 다양한 개발 환경, 테스트, 자산 파이프 라인 기능을 제공한다."고 명시되어.. 2022. 3. 16.
[Solidity] Storage와 Memory 솔리디티로 스마트 컨트렉스 작성 시, 변수는 Storage 혹은 Memory 영역에 저장된다. 컴퓨터로 비유를 하면, 데이터가 하드디스크(Disk)에 저장되는 것과 메모리(Ram)에 저장되는 것과 비슷하다. Storage 스마트 컨트렉트에서 스토리지(Storage)라고 하면, 블록체인 네트워크의 블록을 의미한다. 스토리지에 저장되는 데이터는 곧 블록체인에 저장되는 것과 같다. 컨트렉트가 실제로 블록체인 네트워크에 배포되면 해당 데이터는 영구적으로 블록체인 안에 저장된다. 대표적으로 상태 변수(State Variable)의 데이터들이 스토리지 영역을 사용한다. 컨트렉트에 선언된 전역 변수들은 storage로 선언되어 있지 않더라도 스토리지에 저장된다. 만약, 상태 변수가 아닌 변수, 예를 들어 지역 변수(.. 2022. 3. 15.