reactjs ethereum QR Code ( 리액트 ether qrcode )
이더리움을 전송하기 위해 QRcode 를 만들어 보았습니다.
우선 가져와야 하는 npm package 는
https://www.npmjs.com/package/ethereum-qr-code 입니다.
nodejs 로 구현되어 있습니다.
reactjs 로 그냥은 사용할 수가 없습니다.
나는 reactjs 로 사용하고 싶은데 다른것은 없나?
그래서 또 찾아 보았습니다.
https://www.npmjs.com/package/react-ether-qrcode
있습니다.
그럼 이걸 사용해 보았습니다.
코드는
동작하지 않습니다.
뭔가 문제가 있습니다.
https://github.com/remiroyc/react-ethereum
이건 동작 하겠지 하고 보았습니다.
실행하는 예제가 아닙니다.
그래서 만들었습니다.
실행하는 예제로
아래와 같이 입력한다.
yarn create react-app ethqrscan
cd ethqrscan
yarn add ethereum-qr-code
yarn add lodash.uniqueid
yarn add prop-types
add file EthereumQRCode.js
파일 수정
App.js
실행한다.
yarn start
결과는
정상적으로 QRCode 가 나온다.
그럼 진짜 전송되는 금액이 정확하게 입력되는지 확인해 보자.
금액이 이상하다.
분명 코드에서는
<EtherumQRCode value={2} to={"0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8"} size={200} />
value 값을 2로 입력하였는데
표시되는 금액이 다르다.
뭐가 문제인가?
입력하는 value 의 단위가 wei 이다. eth 로 되어 있지 않다.
우리가 보는 1eth 를 전송하기 위해서는 입력하는 value 에 1000,000,000,000,000,000 이렇게 입력을 해야된다.
단위와 관련된 내용은 아래를 참조 하기 바란다.
이더리움 단위는 아래와 같이 3가지 입니다.
1. Wei
2. Gwei
3. Ether
코인 변환값을 보여주는 사이트가 있어 링크를 만들어 걸어 놓았다.합니다.
내용은
1ether 는
1000000000 Gwei 이고
1000000000000000000 wei 이다는 뜻입니다.
그래서, 위에 내용을 가지고 전송을 할려고 하면
예 ) 나는 1ether 를 보내고 싶다.
그럼 value 에는 어떻게 입력해야 하는가?
1 eth 는 1 x 10의 9승 gwei = 1 000 000 000 입니다.
1 eth 는 1 x 10의 18승 wei = 1 000 000 000 000 000 000 입니다.
1: 1 000 000 000 000 000 000
value 값에 1 000 000 000 000 000 000 이렇게 10의 18승 수를 맞추어 입력해야 한다.
입력하기 어렵다.
그래서, 소스를 수정하였다.
1. 이미지의 크기를 변경
2. 입력하는 value 단위를 wei->eth 단위로 입력하도록
정상적으로 동작하는 것을 확인 할수 있다.
해당 소스는 github에 있다.
댓글
댓글 쓰기