Javascript의 블록체인: 계정 간 Ether 전송

Ethereum 블록 체인에 대해 배우기 시작했을 때 가장 큰 유레카! 내가 가진 순간은 두 계정간에 Ether를 보냈을 때였습니다. 흥미로운 점은 Javascript에서 그렇게 하는 것이 단순하다는 것입니다!
이 문서에서는 2분 안에 동일한 작업을 수행할 수 있는 방법을 배웁니다.

초기 설정


이더리움 블록체인 테스트



아무도 이것을 배우기 위해 실제 Ether를 사지 않을 것입니다. 테스트 계정이 있는 테스트 블록체인이 필요합니다. 이더가 미리 로드되어 있는 것이 좋습니다.
이를 위해 infura.io(테스트 블록체인) + Metamask.io(테스트/실제 계정)의 조합 또는 테스트 블록체인 + 테스트 계정 + 테스트 에테르 모두에 대해 정말 간단한 Ganache를 사용할 수 있습니다. Ganachehere를 설치할 수 있습니다.

Ganache를 실행하면 다음과 같이 표시됩니다.



각각 100 Ether가 미리 로드된 여러 계정을 갖게 됩니다. 나는 처음 두 계정에서 이미 몇 가지 거래를 했으므로 에테르 차이가 있습니다.

노드JS



우리가 사용하고 있는 라이브러리의 CDN(web3)을 사용하면 NodeJS 없이도 내가 보여주려는 것을 할 수 있습니다. https://web3js.readthedocs.io/en/v1.3.4/getting-started.html을 참조하십시오.

그러나 NodeJS는 일을 좀 더 간단하게 만듭니다. API를 생성하려는 경우 익스프레스를 추가할 수도 있습니다.

저와 같은 코드를 따라하고 싶다면 NodeJS가 설치되어 있는지 확인하세요.

좋은 물건



이제 Ether로 넘쳐나는 계정으로 실행되는 테스트 블록체인이 있으므로 비즈니스를 시작하겠습니다.

새 자바스크립트 프로젝트를 초기화합니다.

yarn init
or
npm init


새 파일을 생성합니다main.js.

Ethereum Blockchain과 상호 작용하기 위한 Javascript SDK인 web3.js이라는 라이브러리를 사용할 것입니다. Ethers이 대안입니다.

web3.js 라이브러리를 설치합니다.

yarn add web3
or
npm install web3


실행 중인 Ganache 인스턴스를 기억하십니까? 상단 표시줄에 있어야 하는 RPC URL을 복사합니다. 대부분 http://127.0.0.1:7545 입니다.

앞으로 나아가 다


main.js 파일에서 이제 web3 라이브러리가 필요하고 Ganache에서 얻은 URL을 전달하여 새 개체를 초기화합니다.

const Web3 = require('web3')
const web3 = new Web3("http://127.0.0.1:7545")


Ganache에서 두 개의 계정을 선택하고 두 변수from(이더를 보낼 계정) 및 to(이더를 보낼 계정)에 주소를 저장합니다. 내 것은 당신과 다를 것입니다.

간단히 하기 위해 전송할 에테르의 양을 저장하기 위해 value라는 변수도 만듭니다. 1 에테르를 전송하고 싶다고 가정하면 변수는 다음과 같습니다.

const value = web3.utils.toWei("1", "ether")


1 ether를 Wei로 변환하기 위해 web3.utils를 사용하고 있습니다. 웨이는 이더리움 암호화폐의 가장 작은 단위입니다. 1이더는 10의 18승 1웨이 🤯
우리가 사용하려는 함수가 Wei의 값을 받아들이기 때문에 Wei로 변환해야 합니다.
web3.eth.sendTransaction를 호출하고 from 주소, to address 및 값을 전달하면 됩니다.

web3.eth.sendTransaction({from, to, value}, function(error, result) {
        if(error) console.log(error)
        else console.log(result)
});


최종 코드는 다음과 같습니다.

const Web3 = require('web3')
const web3 = Web3("http://127.0.0.1:7545")

// Use your local Ganache accounts for this
const from = "0x6056aD120bDC5a382A1E780fC5A4C1CDDbA98dF4"
const to = "0x3168B2b9DEc1F8886bDbCf99359d7185652F1164"

// Amount to transfer. Here, 1 ether
const value = web3.utils.toWei(1, "ether")

web3.eth.sendTransaction({from, to, value}, function(error, result) {
        if(error) console.log(error)
        else console.log(result)
});


이제 node main.js로 코드를 실행하면 전송이 성공한 경우 트랜잭션 해시를 반환해야 합니다.
Ganache를 확인하면 변경 사항이 반영되고 Ethereum 블록체인에서 성공적으로 거래가 이루어집니다! 🥳🥳🥳

좋은 웹페이지 즐겨찾기