我正在从助记符创建一个钱包,对于以太坊,我已使用web3j库生成助记符,地址及其私钥,现在对于比特币,我想使用相同的生成助记符来生成比特币地址及其私钥,我正在使用Bitcoinj库,但无法获取其地址和密钥。 我也尝试了Walletappkit,但是它的生成地址没有获取助记符,因此在Walletappkit中有使用助记符的任何方式,这样我就可以获取比特币地址并同步交易的比特币链。 也可以使用任何方式使用walletappkit而不进行同步,并获取比特币详细信息,例如其余额和交易信息。
下面是我如何使用web3j和bitcoinj创建以太坊钱包及其助记键的代码。
val wallet = WalletUtils.generateBip39Wallet("", File(path))
val mnemonics = wallet.mnemonic
// bitcoinj
var seed = DeterministicSeed(wallet.mnemonic, null, "", 1409478661L)
val chain = DeterministicKeyChain.builder().seed(seed).build()
val keyPath = HDUtils.parsePath("M/44H/60H/0H/0/0")
val key = chain.getKeyByPath(keyPath, true)
val privKey = key.privKey
// Web3j
val credentials = Credentials.create(privKey.toString(16))
val eth_address = credentials.address
答案 0 :(得分:1)
您可以使用 bitcore.js 生成助记符。我正在共享link的npm软件包,请看看。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:padding="20dp"
android:background="@android:color/black"
android:layout_height="wrap_content">
<TextView
android:layout_width="110dp"
android:layout_height="130dp"
android:id="@+id/tv"
android:textSize="16sp"
android:background="@android:color/holo_red_dark"
android:textColor="@android:color/white"
android:gravity="center"
android:padding="40dp"/>
</LinearLayout>
答案 1 :(得分:0)
我不确定我是否正确理解您要做什么,但是如果您想从助记符种子恢复/创建一个Bitcoinj钱包,那么有一个here的官方示例:
// Here we restore our wallet from a seed with no passphrase. Also have a look at the BackupToMnemonicSeed.java example that shows how to backup a wallet by creating a mnemonic sentence.
String seedCode = "yard impulse luxury drive today throw farm pepper survey wreck glass federal";
String passphrase = "";
Long creationtime = 1409478661L;
DeterministicSeed seed = new DeterministicSeed(seedCode, null, passphrase, creationtime);
// The wallet class provides a easy fromSeed() function that loads a new wallet from a given seed.
Wallet wallet = Wallet.fromSeed(params, seed, Script.ScriptType.P2PKH);