안녕하세요.
이번 글에서는 저번에 말씀드렸던 이더리움 네트워크에 tx를 만들어 배포하는 부분을 진행할건데 가장 기본적인 내지갑이 가지고있는 코인을 다른 지갑 주소로 보내는 부분에 대해 다뤄보겠습니다.
먼저 getBalance Api 아래 sendEth기능을 담당하는 api 껍데기만 만들어주세요.
그리고 index.js 에 router와 미들웨어 같이 추가해 주시면 됩니다. 잘 기억 안나시는 분은 저번글을 참고해주세요.
혹시 아직 내가만든 내 wallet 주소로 이더리움을 못보내신분은 시간내서 간단명료하게 한번 다루겠습니다.
전 글에서 eth-lightwallet 모듈을 수정한다고 따로 폴더를 만들어서 뺐던거 기억하시나요?
eth-lightwallet 모듈을 옮기고나서 node-modules안에 있는 eth-lightwallet는 삭제해주세요.
my_modules/eth-lightwallet/lib/keystore.js 파일안에 password 입력 부분을 수정하려고 합니다.
패스워드를 직접 스트링으로 코드에 넣어줄거예요.
모듈을 수정하는방법도 좋진 않지만, 코드에 직접 패스워드를 기입하는것도 절대로!! 운영환경에선 하면 안되는 방법입니다
저희는 쉬운 모듈을 가지고 쉽게 월렛을 만들기때문에 이런 방법을 사용합니다. 이렇게 패스워드를 코드에 기입해주시고 toAddress와 보낼 eth수량을 입력받아 동작하는 sendEth API를 작성해보도록 하겠습니다.
exports.sendEth = async (req, res) => {
var web3 = req.web3;
var fromAddress = req.address;
var toAddress = req.body.toAddress
var gasPrice = req.gasPrice;
var value = req.body.value;
web3.eth.sendTransaction({
from: fromAddress.toString(),
to: toAddress.toString(),
value: value,
gasPrice: gasPrice,
gas: 21000
}, function (err, txhash) {
console.log(txhash)
res.json({ code: 1, txhash })
});
}
이제 postman으로 sendEth API를 호출하기만 하면 정상적으로 다른 주소로 이더가 전송됩니다.
다음에는 토큰을 만드는 smartcontract를 작성하고 이 토큰의 balance를 조회하고, 전송하는 api를 만들어 보도록 하겠습니다.
번외로 내 지갑주소에 이더리움을 받는 방법에 대해 간단하게 설명드리겠습니다.
https://faucet.ropsten.be/ 에 접속하셔서 내 지갑주소 넣으시면 끝입니다.
https://github.com/MinhoKim1018/eth-wallet/tree/ch03
이더리움 simple wallet 만들기 (4) 보러가기
'이더리움' 카테고리의 다른 글
이더리움 simple wallet 만들기(6) (토큰사용) (3) | 2020.03.15 |
---|---|
이더리움 simple wallet 만들기(5) (토큰발행) (0) | 2020.03.12 |
이더리움 simple wallet 만들기 (4) (4) | 2020.03.09 |
이더리움 simple wallet 만들기 (2) (0) | 2020.03.08 |
이더리움 simple wallet 만들기 (1) (2) | 2020.03.07 |