이더리움 스마트 컨트랙트

    Ethereum/이더리움 - Fundraising 컨트랙트

    이번 포스팅에서는 킥스타터(Kickstarter), 와디즈(Wadiz)와 같은 크라우드 펀딩 서비스 앱을 위한 컨트랙트를 작성해보고자 한다. 심플하게 작성된 컨트랙트이며 핵심적인 기능들만을 담아보고자 하였다. 컨트랙트 설명 contract Fundraising 1. 컨트랙트 설명 크라우드 펀딩 프로젝트 주최자 (owner) : 돈을 모금하려는 자. 목표 금액 (targetAmount) : 모금하려는 돈의 총 금액. 크라우드 펀딩 프로젝트에 기부한 모든 사람들의 목록 (donation; mapping 데이터 타입; key). 참여한 사람들의 기부 금액 (donation; mapping 데이터 타입; value). 기부금의 누적 총액 (raisedAmount). 데드라인 (finishTime) ..

    Ethereum/이더리움 - NFT / SaleToken 컨트랙트

    이번 포스팅에서는 OpenSea 와 같은 NFT 마켓플레이스에서 사용자들 간 NFT 판매 및 구매에 사용되는 스마트 컨트랙트를 작성해보고자 한다. openzeppelin-solidity 라이브러리를 사용하여 컨트랙트를 작성했으며 토큰 관련 컨트랙트는 contract JwToken , NFT 판매 및 구매 관련 컨트랙트는 contract SaleToken 이라는 이름으로 제작하였다. 각각의 컨트랙트 안에서 정의된 함수들의 기능에 대한 설명을 중점으로 해서 작성해보고자 한다. contract JwToken contract SaleToken 1. contract JwToken JwToken 컨트랙트는 minting(민팅)과 관련된 기능들이 구현되어 있는 컨트랙트이며 해당 컨트랙트 안에서 구현된 주..

    Ethereum/이더리움 - 스마트 컨트랙트로 투표 Dapp 만들기

    이번 포스팅에서는 스마트 컨트랙트를 이용해 간단한 투표 앱을 만들어 보고자 한다. 투표 앱의 전반적인 기능은 다음과 같이 구성해보았다. 후보자 초기화 - 스마트 컨트랙트 배포 진행시 후보군 등록 후보자에 대한 투표 기능 후보자에 대한 득표수 확인 스마트 컨트랙트의 작성 및 배포/실행은 truffle을 이용하였으며 Ganache를 사용해 로컬 이더리움 네트워크에 배포를 진행하였다. Voting이라는 이름으로 스마트 컨트랙트를 작성하였으며 candidateList 와 votesReceived 라는 두 가지 상태변수를 만들어주었다. candidateList는 string 데이터 타입을 요소로 갖는 배열( string[ ] ) 형태로 만들어주었으며 constructor( ) 함수를 이용해 배포를 진행하는 시점에..

    Ethereum/이더리움 - 스마트 컨트랙트로 토큰 발행하기

    이번 포스팅에서는 스마트 컨트랙트로 토큰(Token)을 발행하는 방법에 대해 다루고자 한다. ERC-20 Solidity 데이터 타입 인스턴스 생성 스마트 컨트랙트로 토큰 발행하기 1. ERC-20 ERC-20은 이더리움 블록체인 네트워크에서 정한 표준 토큰 스펙이다. 다시 말해, ERC-20은 이더리움 네트워크 상에서 발행되는 토큰의 표준을 뜻하며 스마트 컨트랙트를 통해 토큰을 발행하기 위해서는 정해놓은 규격에 맞춰 코드를 작성해야 함을 의미한다. 그렇다면 여기서 이야기하는 규격이라는 것은 어떤 것을 의미하는 것일까? 우리는 TypeScript에서 interface라는 것을 사용하여 객체의 형태를 지정해 주었다. interface는 객체의 모양을 본 뜬 내용이라고 할 수 있으며 토큰을 만들..

    Ethereum/이더리움 - Truffle (스마트 컨트랙트 개발 프레임워크)

    이번 포스팅에서는 Truffle을 이용해 스마트 컨트랙트를 배포 및 실행하는 방법에 대해 알아보고자 한다. Truffle은 스마트 컨트랙트를 쉽게 배포하고 실행시킬 수 있도록 해주는 스마트 컨트랙트 개발 프레임워크이다. Truffle 이외에도 Hardhat 이라는 프레임워크가 존재하는데 Truffle에서는 web3 라이브러리를 사용하고 Hardhat에서는 ethers 라이브러리를 사용한다. 본 포스팅에서는 Truffle을 이용해 스마트 컨트랙트를 배포하고 실행해보도록 하겠다. 👉 설치 $ npm install truffle $ # 버전 확인 $ npx truffle version truffle 설치를 완료했다면 터미널에 다음과 같이 입력하여 truffle 프레임워크를 생성해주도록 하자. $ npx tru..