이더리움 코인 송금과 승인 – 파이썬 Flask Dapp 개발

이더리움 코인 송금과 승인 – 파이썬 Flask Dapp 개발

한 계좌에서 다른 계좌로 이더리움을 전송하는 방법을 알아보자.

Ganache에서 임의로 만든 계좌는 Private 키 없이도 전송이 가능하며

메타마스크 등의 도구 등을 사용해 별도로

네트워크 참여한 계좌는 개인키로 서명해야 이더리움 전송이 가능하다.

간단한 이더리움 송금

먼저 Ganache에서 임의로 생성된 계좌로부터 데이터를 전송해보자.

다음 코드를 작성하고 실행하도록 하자.

sendTransaction 함수를 사용하면 a로부터 b에게

amount 만큼의 이더리움을 전송할 수 있다.

트랜잭션을 다음과 같이 실행한다.

# python w3_transfer_eth.py b‘\x16\x8b\x07\x18\x9a\x96\x0f\xd3&\xdc&\x7f\xe1\x8c\xaf\xf8\xd5\xeb\r\xc1″%\x9f\x1a\xf0\x0e~\xb6\x19\x85\x90\xed’

가나슈에서 확인하면 다음과 같이 트랜잭션의 해시 값과 사용된 가스의 양과 전송된 데이터의 양을 확인할 수 있다.

계좌에서도 전송된 이더리움을 확인할 수 있다.

메타마스크에서 다른 계좌로 송금하기

앞서 확인한 전송방법과 달리 Ganache가 아닌 타 계좌에서 데이터를 송금할 때는

싸인을 하는 과정이 필요하다. 이더리움을 메타마스크의 계좌로 전송해보자.

우선 Ganache로 접속한 메타마스크의 이더리움 계좌 주소를 확인한다.

가운데 Account에 마우스로 클릭하면 ‘복사 완료’라고 나타난다. 복사한 주소를

그대로 가져와서 다음 코드에 입력한다. 일단은 별도의 공간에 붙여넣기 해두자.

이번에는 프라이빗 키를 획득해보자. 메타마스크의 오른쪽 상단 메뉴에서

“계정 세부 정보”를 클릭하고 “비공개 키 내보내기”를 선택한다.

패스워드를 입력하면 프라이빗 키가 노출된다.

프라이빗 키를 마찬가지로 계좌 주소와 함께 백업해두기 바란다.

복사한 계좌 주소를 c 변수에 입력하자.

현재 이 계좌에는 5 이더리움이 있지만 실습을 처음하는

경우에는 계좌 잔고가 없을 수 있으므로 먼저 Ganache 계좌에서 메

타마스크 계좌로 돈을 가져온 뒤 메타

마스크에서 다른 계좌로 송금할 예정이다.

 

앞서 확인한 것처럼 Ganache 계좌에서 돈이 인출될 때는 별도의 프라

이빗 키가 필요없다. 하지만 메타마스크에서

돈을 인출할 때는 계좌를 인증하는 프라이빗 키가 필요하다.

다음과 같이 코드를 작성하고 앞서 얻은 계좌 주

소와 프라이빗 키를 교체하자. 다음과 같

은 과정으로 이더리움을 전송한다. 메타마스크에서 이더리움을 전

송할 때는 앞서 작성한 과정보다 조금 더 많은 작업이 필요하다.

 

1. 이더리움 프라이빗 네트워크 접속

2. 메타마스크 주소에 2 이더리움 전송

3. 메타마스크에서 실행할 트랜잭션 작성 (1 이더리움 전송)

4. 메타마스크 계좌에 프라이빗 키로 인증 과정 수행

5. 트랜잭션 실행(메타마스크 계좌로부터 이더리움 전송)

코드를 실행하고 결과를 관찰해보자.

# python w3_transfer_eth.py tx_hash: b‘z\xff\x8cO\x8e\xe6\xcb\xca\xc8|\x80\x14,/\x8b\x06D\x82\x05gr\\\r\x1f\xa3\xbc\xab<\xb286\xc2’ tx_hash: b‘\xd3\x1e\xaa\xde\xf1\x030gH\xd5xjt\x11m\xf0\xce\xf6K\x91#\x8c\xbd\x8f\x8e\x8fo h\x90\xb6*’

네트워크를 초기화해서 0 이더리움을 만든 후에 다시 실행하고 나타난 결과다.

2 이더리움을 받은 뒤에 1이더리움을 보냈기 때문에 약 1이더리움이 남는다.

1이더리움에서 일부 지출된 금액은 Gas로 인한 지출이 있었기 때문이다.

Ganache에서 블록이나 트랜잭션 확인하면 원하는 각 트랜잭션이 어떻게 이뤄졌는지 관찰할 수 있다.

Leave a Comment

%d 블로거가 이것을 좋아합니다: