reactjs ethereum QR Code ( 리액트 ether qrcode )

이더리움을 전송하기 위해 QRcode 를 만들어 보았습니다.


https://youtu.be/WSiUFD0dcWM




우선 가져와야 하는 npm package 는 

https://www.npmjs.com/package/ethereum-qr-code  입니다.




nodejs 로 구현되어 있습니다.

reactjs 로 그냥은 사용할 수가 없습니다.


나는 reactjs 로 사용하고 싶은데 다른것은 없나?

그래서 또 찾아 보았습니다.

https://www.npmjs.com/package/react-ether-qrcode




있습니다.

그럼 이걸 사용해 보았습니다.


코드는 

app.js 를 수정하였습니다.

import './App.css';

import EtherumQRCode from "react-ether-qrcode"

function App() {
  return (
    <div className="App">
      <EtherumQRCode value={1gas={1300to={"0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8"/>
    </div>
  );
}

export default App;


동작하지 않습니다. 


뭔가 문제가 있습니다.


이런 문제가 발생합니다.




또 찾아 보았습니다.

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


import './App.css';
import EtherumQRCode from './EthereumQRCode';

function App() {
    return (
        <div className="App">
            <EtherumQRCode value={2to={"0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8"size={200/>
        </div>
    );
}

export default App;


실행한다.

yarn start


결과는



정상적으로 QRCode 가 나온다.


그럼 진짜 전송되는 금액이 정확하게 입력되는지 확인해 보자.




금액이 이상하다.



분명 코드에서는 

<EtherumQRCode value={2to={"0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8"size={200/>

value 값을 2로 입력하였는데

표시되는 금액이 다르다. 


뭐가 문제인가?

입력하는 value 의 단위가 wei 이다. eth 로 되어 있지 않다.


우리가 보는 1eth 를 전송하기 위해서는 입력하는 value 에 1000,000,000,000,000,000 이렇게 입력을 해야된다.


단위와 관련된 내용은 아래를 참조 하기 바란다.


이더리움 단위는 아래와 같이 3가지 입니다.

1.  Wei

2.  Gwei

3.  Ether



코인 변환값을 보여주는 사이트가 있어 링크를 만들어 걸어 놓았다.합니다.

https://eth-converter.com/


내용은 

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에 있다. 

https://github.com/wonsolution/reactethqrcode.git




댓글

이 블로그의 인기 게시물

mount 명령 ( 읽기 권한만 있는놈 쓰기 권한 주기 )

c# mqtt client example

비글본 블랙 고정 아이피 설정