主页 > imtoken安卓版下载官网 > Web3j 4.x Android 以太坊钱包实现教程【含源码】

Web3j 4.x Android 以太坊钱包实现教程【含源码】

imtoken安卓版下载官网 2023-05-20 06:45:28

本教程讲解如何使用 Web3j 4.x 和 Infura 提供的以太坊节点开发安卓手机以太坊钱包应用。教程包括项目依赖配置、以太坊节点选择、以太坊钱包地址创建、测试以太坊获取、执行以太坊转账交易等,并提供完整的参考实现源码下载。

1、项目配置

使用 Web3j 的第一步是将 Web3j 依赖项添加到您的 Android 项目中。由于 Web3j 有一个 maven 插件,这很容易:只需将 mavencentral 添加到项目的 build.gradle 文件中,然后将 web3j 作为依赖项添加到 build.gradle 文件中(确保您使用的是 android 版本)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

repositories {
mavenCentral()
google()
jcenter()
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'org.web3j:core:4.1.0-android'
}

系统高效学习web3j,推荐汇智网的在线互动教程《Web3j以太坊开发详解》,涵盖了以太坊中的核心概念,如账户管理、状态与交易、智能合约开发与交互、过滤器等,也详细讲解如何使用web3j与以太坊区块链交互,是java工程师学习以太坊应用开发的最佳选择。

以太坊钱包app官网下载

2、决定使用哪种节点类型

钱包应用程序必须通过以太坊节点才能与以太坊区块链进行通信。我们可以部署自己的节点以太坊钱包app官网下载,也可以使用第三方提供的云节点,比如 Infura 的开放节点。我决定使用 Infura 的原因是我不需要自己同步区块链数据,因为这个同步过程需要很多时间,而且非常繁琐,所以我想尽可能避免构建自己的节点。

你可以注册 Infura 并获得一个 API 密钥,你可以创建一个 Web3j 对象来连接到 Rinkeby 测试网络,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

以太坊钱包app官网下载

// FIXME: Add your own API key here
web3 = Web3j.build(new HttpService("https://rinkeby.infura.io/v3/YOURKEY"));
try {
Web3ClientVersion clientVersion = web3.web3ClientVersion().sendAsync().get();
if(!clientVersion.hasError()){
//Connected
}
else {
//Show Error
}
}
catch (Exception e) {
//Show Error
}

注意上面代码中的URL - ,YOURKEY需要替换成你的API KEY。这个url中的rinkeby表示可以用这个url访问以太坊的rinkeby测试链,很容易理解以太坊钱包app官网下载,把rinkeby换成mainnet,就可以连接到以太坊的主网了,例如: .

如果一切正常,以上代码就可以连接以太坊的Rinkeby测试链了!

3、创建钱包

以太坊钱包app官网下载

现在让我们创建一个钱包来发送或接收一些测试链以太。为此,我们首先需要在用户的设备中创建一个钱包文件:

1
2
3
4
5
6
7
8
9
10
11

//FIXME: Use your own password here
private final String password = "medium";
private String walletPath = getFilesDir().getAbsolutePath();
private File walletDir = new File(walletPath);

try{
WalletUtils.generateNewWalletFile(password, walletDir);
}
catch (Exception e){
//Display an Error
}

4、获取地址并加载钱包

以太坊钱包app官网下载

太好了,现在我们有了钱包,让我们获取钱包地址并从 Rinkeby Faucet 获取该地址的一些测试以太:

1
2
3
4
5
6
7
8

try {
Credentials credentials = WalletUtils.loadCredentials(password, walletDir);
Toast.makeText(this, "Your address is " + credentials.getAddress(), Toast.LENGTH_LONG).show();

}
catch (Exception e){
//Show Error
}

5、发送交易

以太坊钱包app官网下载

现在你的钱包里有了一些以太币,让我们把这些测试币转回来:

1
2
3
4
5
6
7

try{
Credentials credentials = WalletUtils.loadCredentials(password, walletDir); TransactionReceipt receipt = Transfer.sendFunds(web3,credentials,"0x31B98D14007bDEe637298086988A0bBd31184523",new BigDecimal(1),Convert.Unit.ETHER).sendAsync().get();
Toast.makeText(this, "Transaction complete: " +receipt.getTransactionHash(), Toast.LENGTH_LONG).show();
}
catch (Exception e){
//Show Error
}

6、结论

在本教程中,我们创建了一个简单的 Android 移动应用程序来发送和接收以太币,您可以在此处下载完整的实现代码。

原始链接:使用 Web3j 和 Infura 使用 Android 进行以太坊开发的介绍