‘이더리움 댑 개발’ 세미나 14-1. Web3 공식 문서(버전 1.2.9) – User Documentation

web3.js – Ethereum JavaScript API

web3.js is a collection of libraries that allow you to interact with a local or remote ethereum node using HTTP, IPC or WebSocket.

 

web3.js 라이브러리는 다음과 같은 모듈로 구성됩니다.

  • web3-eth is for the ethereum blockchain and smart contracts.
  • web3-shh is for the whisper protocol to communicate p2p and broadcast.
  • web3-bzz is for the swarm protocol, the decentralized file storage.
  • web3-utils contains useful helper functions for Dapp developers.

 

Getting Started

프로젝트에 web3 모듈 설치 

  • npm: npm install web3
  • yarn: yarn add web3

web3 인스턴스 얻기 

트러플 react box 코드를 살펴보면 web3 인스턴스를 얻을 수 있는 코드(getWeb3.js)를 제공하고 있습니다.

 

Callbacks Promises Events

Most web3.js objects allow a callback as the last parameter, as well as returning promises to chain functions.

Ethereum as a blockchain has different levels of finality and therefore needs to return multiple “stages” of an action. To cope with requirement we return a “promiEvent” for functions like web3.eth.sendTransaction or contract methods. This “promiEvent” is a promise combined with an event emitter to allow acting on different stages of action on the blockchain, like a transaction.

PromiEvents work like a normal promises with added on, once and off functions. This way developers can watch for additional events like on “receipt” or “transactionHash”.

 

Glossary

json interface

컨트랙트 ABI(Application Binary Interface)를 나타내는 json 객체입니다. web3.eth.Contract 객체를 사용해서 컨트랙트와 컨트랙트 함수와 이벤트를 나타내는 자바스크립트 객체를 만들 수 있습니다.

  • 함수 표현 json 객체
    • type
      • “function” 또는 “constructor “
    • name – 함수 이름
    • constant – 블록체인 상태를 수정할 수 없으면 true
    • payable – 이더를 받을 수 있으면 true
    • stateMutability – pure, view, nonpayable, payable 값 중 하나로 작성
    • inputs – 매개변수 목록- name, type으로 구성된 객체 배열
    • outputs – 출력 변수 목록이라는 점만 다르고 inputs와 같음
  • 이벤트 표현 json 객체
    • type
      • “event”
    • name
    • inputs – name, type, indexed로 구성된 객체 배열
    • anonymous – anonymous로 선언된 이벤트인 경우 true
About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*