[팁] geth console에서 js 실행하기

geth console에서 js 실행하기

web3.js 프로그램을 개발하다 보면 이리저리 테스트할 경우가 많다.

간단하게 geth 콘솔에서 javascript 프로그램을 실행해보고 실 코딩을 하는 것이 도움이 된다.

다만 콘솔이다 보니 손으로 일일이 쳐 넣어야 하는 번거러움이 있어 이것이 불편하다.

다행이 저장된 파일을 불러오는 방식이 있어 이를 소개하고자한다.

저장된 파일을 불러오는 방식을 사용하면 한 터미널에서 javascript 파일을 수정하고, 다른 터미널에서 이를 호출하기만 하면 쉽게 테스트할 수 있다.

이 때 사용하는 명령어가 바로 loadScript이다.

$ geth --exec 'loadScript("/tmp/checkbalances.js")' attach http://123.123.123.123:8545
$ geth --jspath "/tmp" --exec 'loadScript("checkbalances.js")' attach http://123.123.123.123:8545

출처: https://github.com/ethereum/go-ethereum/wiki/JavaScript-Console#non-interactive-use-jsre-script-mode


사용하는 방식은 두 가지다.


1. 콘솔 상에서 실행하는 방법

~/tmp $ geth attach http://your.address.kr:8545
Welcome to the Geth JavaScript console!

instance: Geth/v1.8.6-stable-12683fec/linux-amd64/go1.10
coinbase: 0x0a5476a467ae58155f39bc30c1d2d3f85d2c7ffc
at block: 225068 (Thu, 07 Jun 2018 16:22:57 KST)
 modules: eth:1.0 net:1.0 personal:1.0 rpc:1.0 web3:1.0

> javaScript('./test.js');


2. 명령행에서 바로 실행하는 방식

~/tmp $ geth --exec 'loadScript("./test.js")' attach http://your.address.kr:8545


어떤 방식으로 사용하던 test.js 파일을 하나 열어두고 이를 수정/저장하며 위 두 명령을 실행하면 된다.


참고로 콘솔 상에서도 방향키 Up(^)를 사용하면 방금 실행한 명령어를 다시 호출할 수 있다.