传统账户密钥
从 Web3j 和 kaia 库(web3j-ext
)中导入必要的类。
使用指定的 BAOBAB_URL 创建 Web3j 实例
此外,您还可以更改默认提供商。 例如,使用alchemy提供商。
从私人密钥加载证书并获取其地址
定义要签署的任何信息
设置区块编号为 kaia 网络中的最新区块
签署信息并将签名转换为字符串
恢复地址,并与原始地址进行比较
关闭 Web3j 实例
SignMsgWithLegacyExample.java
package org.web3j.example.accountKey;import org.web3j.tx.response.PollingTransactionReceiptProcessor;import org.web3j.tx.response.TransactionReceiptProcessor;import org.web3j.example.keySample;import java.io.IOException;import org.web3j.crypto.KlayCredentials;import org.web3j.crypto.KlaySignatureData;import org.web3j.crypto.Sign.SignatureData;import org.web3j.protocol.http.HttpService;import org.web3j.protocol.kaia.Web3j;import org.web3j.protocol.kaia.core.method.response.KlayRecoverFromMessageResponse;/** * */public class SignMsgWithLegacyExample implements keySample { /** * */ public static void run() throws Exception { Web3j web3j = Web3j.build(new HttpService(keySample.BAOBAB_URL)); KlayCredentials credentials1 = KlayCredentials.create(keySample.LEGACY_KEY_privkey); String from = credentials1.getAddress(); String message = "0xdeadbeef"; String blockNumber = "latest"; SignatureData signature = KlaySignatureData.signPrefixedMessage(message, credentials1); String result = KlaySignatureData.getSignatureString(signature); KlayRecoverFromMessageResponse response = web3j.klayRecoverFromMessage(from, message, result, blockNumber) .send(); System.out.println("Original address : " + from); System.out.println("Result address : " + response.getResult()); web3j.shutdown(); }}
output
❯ java SignMsgWithLegacyExample.javaOriginal address : 0xa2a8854b1802d8cd5de631e690817c253d6a9153Result address : 0xa2a8854b1802d8cd5de631e690817c253d6a9153