Ganache + Solidity + ERC20을 활용한 Ethereum SmartContract 배포 및 Android 통신 (3)
이전 글 보기
지난 2편에서는 Solidity를 작성해보고 Compile 해서 Ganache에 배포하는 것 까지 해보았다. 이 포스팅에서는 Ganache에 배포한 SmartContract를 Web3j를 이용하여 Android와 통신에 사용할 java 파일을 생성해 보겠다.
필요한 것
1. Docker
2. Android Studio
3. Web3j
일단 Docker는, Solidity를 .bin과 .abi 파일로 컴파일 하기 위해 필요한 것이고, web3j 는 Android에서 SmartContract를 사용하기 위해 java로 Generate해준다.
Docker의 다운로드 방법은 2편에 기재해 놓았으나, 나는 친절하니까 한 번 더 알려드리도록 하겠다.
(Mac) https://docs.docker.com/docker-for-mac/install/
(Windows) https://docs.docker.com/docker-for-windows/install/
OS에 맞게 가서 다운받도록 한다.
$ curl -L https://get.web3j.io | sh
컴파일을 해 보자
위에서도 말씀드렸듯이, Android에서 사용하려면 Web3j를 이용해야 하고, web3j를 이용하려면 .bin .abi 파일로 컴파일을 해야 한다. 우선 터미널을 열고 프로젝트 경로에서 contracts 폴더에 들어간다. 그 다음 아래와 같이 커맨드를 입력한다. 아, 당연히 Docker는 실행 중 이어야 한다.
docker run --rm -v ${PWD}:/sources ethereum/solc:0.5.3 -o /sources/build --abi --bin --optimize /sources/MyToken.sol
그럼 이제 contracts폴더 안에 build 폴더가 생성되고 그 안에 sol파일에 대한 bin , abi 파일이 생성이 되었다. 마지막으로 web3j java파일로 generate 해보도록 하겠다.
build 폴더로 들어가서 아래 커맨드를 입력한다.
$ web3j solidity generate -b MyToken.bin -a MyToken.abi -o /원하는/출력/경로 -p com.example.yourpackage
-o 뒤에는 최종 java파일이 나올 경로를 설정해 주면 된다. -p는 이제 생성할 Android 프로젝트의 package명을 넣으면 된다. 그럼 최종적으로 MyToken.java 파일이 생성이 된다. 이로써 모든 준비는 끝이 났다.
막상 글을 쓰다보니 점점 귀찮아 진다..
Android 프로젝트에 import하고 사용 하는 건 또 따로 빼서 알려드리도록.... 하겠...ㄷ...
'BlockChain' 카테고리의 다른 글
댓글
이 글 공유하기
다른 글
-
Ganache + Solidity + ERC20을 활용한 Ethereum SmartContract 배포 및 Android 통신 (4)
Ganache + Solidity + ERC20을 활용한 Ethereum SmartContract 배포 및 Android 통신 (4)
2020.02.06 -
Ganache + Solidity + ERC20을 활용한 Ethereum SmartContract 배포 및 Android 통신 (2)
Ganache + Solidity + ERC20을 활용한 Ethereum SmartContract 배포 및 Android 통신 (2)
2020.02.04 -
Ganache + Solidity + ERC20을 활용한 Ethereum SmartContract 배포 및 Android 통신 (1)
Ganache + Solidity + ERC20을 활용한 Ethereum SmartContract 배포 및 Android 통신 (1)
2020.02.04