728x90
오늘은 web3j 라이브러리를 활용하여 지갑주소 생성하는 예시를 만들어 보겠습니다.
라이브러리 준비 및 그래들 설정
=> web3j는 자바 14버전 이후 부터 생긴 record 기능(14,15는 프리뷰, 16부터 정식 지원, 17은 해당 기능 지원하면서 LTS 버전)을 활용합니다. 해당 기능을 사용할 수 있도록 app 수준 build.gradle 파일에서 위 이미지와 같이 설정해주세요.
=> web3j는 Bouncy Castle, Jackson, OkHttp, RxJava, WebSocket 라이브러리들에 의존하는 라이브러리 입니다. 이에 따라web3j 포함 필요한 라이브러리들을 추가해주세요.
https://github.com/LFDT-web3j/web3j?tab=readme-ov-file
GitHub - LFDT-web3j/web3j: Lightweight Java and Android library for integration with Ethereum clients
Lightweight Java and Android library for integration with Ethereum clients - LFDT-web3j/web3j
github.com
레이아웃 xml 파일 코드(activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<Button
android:id="@+id/btn_generate_wallet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="지갑 주소 생성" />
<TextView
android:id="@+id/tv_wallet_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp" />
</LinearLayout>
액티비티 자바 코드
public class MainActivity extends AppCompatActivity {
private TextView tvWalletAddress; //지갑 주소 보여줄 뷰
private Button btnGenerateWallet; //지갑 주소 생성 버튼 뷰
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvWalletAddress = findViewById(R.id.tv_wallet_address);
btnGenerateWallet = findViewById(R.id.btn_generate_wallet);
// 지갑 주소 생성 버튼 눌릴시 이벤트 설정
btnGenerateWallet.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
generateWallet();
}
});
}
//지값 주소 생성 메서드
private void generateWallet() {
try {
//SECP-256k1 기반 private key, public key를 가진 객체 생성
ECKeyPair ecKeyPair = Keys.createEcKeyPair();
// 생성한 키값 기반 지갑 주소 가져오기
String walletAddress = Credentials.create(ecKeyPair).getAddress();
// UI에 표시
tvWalletAddress.setText("지갑 주소: " + walletAddress);
} catch (Exception e) {
Toast.makeText(this, "지갑 생성 오류: " + e.getMessage(), Toast.LENGTH_SHORT).show();
Log.e("에러", "에러 발생", e);
}
}
}
실행 결과
지갑 주소가 생성된 것을 확인할 수 있습니다
'안드로이드 자바' 카테고리의 다른 글
[Java][Android] InputFilter 사용해서 글자 수 제한하기 (0) | 2025.04.15 |
---|---|
[Java][Android] SpannableString 로 TextView 특정 단어만 색 바꾸기 & 클릭 이벤트 주기 (0) | 2025.04.13 |
[Java][Android] Timer 클래스 활용해 카운트 작업 하기 (0) | 2025.04.08 |
[Java][Android] BottomSheet에 CalendarView띄워서 날짜 선택하기 (0) | 2025.04.06 |
[Java][Android]Web3j 활용해 키쌍 생성하기 (0) | 2025.04.04 |