Как использовать мнемонику для восстановления моего бумажного эфириума
Я использую web3j, чтобы создать свой бумажник ethereum. Код, как вниз
import org.web3j.crypto.Bip39Wallet;
import org.web3j.crypto.Credentials;
import org.web3j.crypto.ECKeyPair;
import org.web3j.crypto.WalletUtils;
wallet = WalletUtils.generateBip39Wallet(password, new File(keystorePath));
// keystore's file name
String keystoreFileName = wallet.getFilename();
// my mnemonic
String mnemonic = wallet.getMnemonic();
Я могу использовать этот код, чтобы получить мой адрес
Credentials credentials = WalletUtils.loadBip39Credentials(password, mnemonic);
String address = credentials.getAddress();
Я могу импортировать свой кошелек следующим образом:
Credentials credentials = WalletUtils.loadBip39Credentials(password, mnemonic);
но таким образом мне нужен пароль и мнемоника, как я импортирую или восстанавливаю свой кошелек с помощью мнемоники без пароля, потому что некоторым приложениям кошелька, таким как metamask или imtoken, им не нужен старый пароль, который я создаю, и который может сбросить новый пароль.
Другими словами, для восстановления или импорта кошелька просто нужно мнемоника, как я это делаю с помощью web3j
Это ereryone может сказать мне, как это сделать с помощью web3j.thank большое.
2 ответа
Вы можете просто передать пустую строку в качестве пароля:
// generate
wallet = WalletUtils.generateBip39Wallet("", tempDir);
// restore using WalletUtils
Credentials credentials = WalletUtils.loadBip39Credentials("", wallet.getMnemonic());
// or using constructor (and empty dummy file)
File tempFile = Files.createTempFile(null, null).toFile();
wallet = new Bip39Wallet(tempFile.getName(), wallet.getMnemonic());
Вам необходимо использовать протокол шифрования bip44 для создания мнемоник и восстановления кошельков. Потому что кошельки imtoken и metamask работают на основе протокола bip44. Если вы используете протокол bip39, результат будет отличаться от imtoken и metamask. Обратитесь к следующему примеру кода