
오늘은
Web3.js라이브러리를 통해 node 환경에서 블록체인 네트워크에 접근하고 트랜잭션을 일으키는 작업과 특정 컨트랙트 주소와 abi로 특정 컨트랙트를 이용하는 방법을 해보았다.
먼저 web3.js를 설치할 폴더에 npm init을 해주고 package.json 파일이 생성된 것을 확인했으면 npm install web3로 web3.js 라이브러리를 설치해준다.
그리고 터미널에서 node를 입력해 node 환경으로 이동한다.
const {Web3} = require('web3')const web3 = new Web3('INFURA_API_KEY') : infura api key로 접근web3 : web3.js에서 할 수 있는 기능들 나열web3.provider : 'INFURA_API_KEY'web3.eth.getBlobkNumber() : 해당 네트워크에서 가장 마지막에 생성된 블록 넘버web3.eth.getBlock(10000) : 10000번째 블록의 정보web3.eth.getBalance('지갑주소'): 지갑주소의 현재 잔액web3.eth.getTransaction('tx hash'): 해당 트랜잭션의 정보web3.eth.accounts.create(): 지갑 주소 생성const privateKey = '0x개인키': 개인키 선언const account = web3.eth.accounts.privateKeyToAccount(prviateKey): 선언했던 개인키에 해당하는 지갑 주소account: 지갑 주소 정보web3.eth.accounts.wallet.add(account): 해당 환경에 지갑 정보 추가var account2 = '돈을 받을 지갑 주소'web3.eth.sendTransaction({from: account.address, to: account2, gas: "21000", value: "10000000000000000"}): value만큼 돈을 account2에 보내고 account.address로 부터 돈이 빠져나간다(가스한도 21000) => 그러나 에러뜸!!(web3.eth.defaultAccount를 설정해주어야함)web3.eth.defaultAccount = account.address : 기본 지갑 설정let abi = 'CONTRACT ABI' : abi를 넣은 변수 선언let c_address = 'CONTRACT ADDRESS': contract address 넣은 변수 선언let contract = new web3.eth.Contract(abi, c_address): abi와 CA를 넣고 컨트랙트 변수 선언contract.methods