web3.js와 마찬가지로 이더리움 노드와 소통하기 위한 수단
Provider : 이더리움 노드와 연락하여 정보를 읽고 가져오는 역할(Api 설정 부분)
Sender : 서명하고 거래를 일으키는 역할(지갑)
Contract : address와 abi로 설정되는 스마트컨트랙트
mkdir Folder_Name : 새로운 폴더 만들기
cd Folder_Name : 해당 폴더로 이동하기
npm init : node package manager를 사용할 수 있는 환경 구성
npm install --save ethers : ethers라는 패키지를 설치하기
const {ethers} = require('ethers'); : package 가져오기
const provider_main = new ethers.InfuraProvider() : ethers에서는 키 없이도 가능
const provider_goerli = new ethers.InfuraProvider(network="goerli")
await provider_main.getBlockNumber() : Mainnet Block Number
await provider_goerli.getBlockNumber() : Testnet Block Number
await provider_goerli.getBalance('wallet_address') : 해당 지갑주소의 잔고 받기
await provider_goerli.getTransaction('transaction hash') : 거래 정보 받아오기
환경구성 -> 패키지 설정 -> 지갑불러오기 -> 지갑설정 -> 거래생성
mkdir Folder_Name : 새로운 폴더 만들기
cd Folder_Name : 해당 폴더로 이동하기
npm init : node package manager를 사용할 수 있는 환경 구성
npm install --save ethers : ethers라는 패키지를 설치하기
const {ethers} = require('ethers'); : package 가져오기
const provider_goerli = new ethers.InfuraProvider(network="goerli", "api_key")
const privateKey = "개인키"
const signer : new ethers.Wallet(privateKey, provider)
var tx = {to : account2, value : 1000000000000000}
var txReceipt = signer.sendTransaction(tx).then(console.log)
환경구성->패키지설정->지갑 불러오기->지갑설정->contract설정->거래생성
mkdir Folder_Name : 새로운 폴더 만들기
cd Folder_Name : 해당 폴더로 이동하기
npm init : node package manager를 사용할 수 있는 환경 구성
npm install --save ethers : ethers라는 패키지를 설치하기
const {ethers} = require('ethers'); : package 가져오기
const provider_goerli = new ethers.InfuraProvider(network="goerli", "api_key")
const privateKey = "개인키"
const signer : new ethers.Wallet(privateKey, provider)
var abi = /contract의 abi 넣기/
var c_address = 'contract address 넣기'
var contract = new ethers.Contract(c_address, abi, signer)
contract.interface.fragments : 스마트 컨트랙트 내 구현된 함수
1
await contract.a()
var txSigner = contract.connect(signer)
await txSigner.setA(100)
2 더 간단해서 선호
await contract.a()
await contract.setA(123)
await contract.a()