FlutterBIP39助记词生成插件bip39_dart的使用
FlutterBIP39助记词生成插件bip39_dart的使用
BIP39
Dart实现的Bitcoin BIP39: 用于生成确定性密钥的助记词代码
开发者注意事项
请记住允许从具有无效校验和(或你没有词汇表)的助记词短语恢复。
当校验和无效时,警告用户该短语不是由你的应用程序生成的,并询问他们是否愿意继续使用它。这样,你的应用只需要保存支持的语言的词汇表,但你可以恢复其他应用在其他语言中生成的短语。
然而,应该有其他检查措施,例如确保用户输入的是用空格分隔的12个或更多单词。
示例
示例代码
// 生成一个随机的助记词(底层使用crypto.randomBytes),默认为128位熵
var mnemonic = bip39_dart.generateMnemonic();
// => 'seed sock milk update focus rotate barely fade car face mechanic mercy'
// 将助记词转换为十六进制字符串形式的种子
bip39_dart.mnemonicToSeedHex('basket actual');
// => '5cf2d4a8b0355e90295bdfc565a022a409af063d5365bb57bf74d9528f494bfa4400f53d8349b80fdae44082d7f9541e1dba2b003bcfec9d0d53781ca676651f'
// 将助记词转换为Uint8List形式的种子
bip39_dart.mnemonicToSeed('basket actual');
// => Uint8List [92, 242, 212, 168, 176, 53, 94, 144, 41, 91, 223, 197, 101, 160, 34, 164, 9, 175, 6, 61, 83, 101, 187, 87, 191, 116, 217, 82, 143, 73, 75, 250, 68, 0, 245, 61, 131, 73, 184, 15, 218, 228, 64, 130, 215, 249, 84, 30, 29, 186, 43, 0, 59, 207, 236, 157, 13, 83, 120, 28, 166, 118, 101, 31]
// 验证助记词是否有效
bip39_dart.validateMnemonic(mnemonic);
// => true
// 验证助记词是否有效
bip39_dart.validateMnemonic('basket actual');
// => false
完整示例
import 'package:bip39_dart/bip39_dart.dart' as bip39;
void main() async {
// 只支持BIP39英语词汇表
// 使用HEX字符串表示熵
String randomMnemonic = await bip39_dart.generateMnemonic();
// 将助记词转换为十六进制字符串形式的种子
String seed = bip39_dart.mnemonicToSeedHex(
"update elbow source spin squeeze horror world become oak assist bomb nuclear"
);
// => '77e6a9b1236d6b53eaa64e2727b5808a55ce09eb899e1938ed55ef5d4f8153170a2c8f4674eb94ce58be7b75922e48e6e56582d806253bd3d72f4b3d896738a4'
// 将熵转换为助记词
String mnemonic = await bip39_dart.entropyToMnemonic('00000000000000000000000000000000');
// => 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about'
// 验证助记词是否有效
bool isValid = await bip39_dart.validateMnemonic(mnemonic);
// => true
// 验证助记词是否有效
isValid = await bip39_dart.validateMnemonic('basket actual');
// => false
// 将助记词转换回熵
String entropy = bip39_dart.mnemonicToEntropy(mnemonic);
// => '00000000000000000000000000000000'
}
更多关于FlutterBIP39助记词生成插件bip39_dart的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于FlutterBIP39助记词生成插件bip39_dart的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
bip39_dart
是一个用于生成和管理 BIP39 助记词的 Dart 插件。BIP39 是一种广泛使用的标准,用于生成加密货币钱包的助记词。通过 bip39_dart
,你可以轻松地在 Flutter 应用中生成、验证和恢复助记词。
安装插件
首先,你需要在 pubspec.yaml
文件中添加 bip39_dart
依赖:
dependencies:
bip39_dart: ^1.0.0
然后运行 flutter pub get
来安装依赖。
使用插件
以下是如何在 Flutter 应用中使用 bip39_dart
生成和验证 BIP39 助记词的示例。
1. 生成助记词
import 'package:bip39_dart/bip39_dart.dart' as bip39;
void main() {
// 生成一个随机的助记词
String mnemonic = bip39.generateMnemonic();
print('Generated Mnemonic: $mnemonic');
}
2. 验证助记词
import 'package:bip39_dart/bip39_dart.dart' as bip39;
void main() {
String mnemonic = 'your mnemonic phrase here';
// 验证助记词是否有效
bool isValid = bip39.validateMnemonic(mnemonic);
if (isValid) {
print('Mnemonic is valid.');
} else {
print('Mnemonic is not valid.');
}
}
3. 从助记词生成种子
import 'package:bip39_dart/bip39_dart.dart' as bip39;
void main() {
String mnemonic = 'your mnemonic phrase here';
// 生成种子
String seed = bip39.mnemonicToSeedHex(mnemonic);
print('Generated Seed: $seed');
}
4. 从种子生成 HD 钱包
你可以使用 bip32_dart
或其他相关的库来从种子生成 HD 钱包。
import 'package:bip39_dart/bip39_dart.dart' as bip39;
import 'package:bip32_dart/bip32_dart.dart' as bip32;
void main() {
String mnemonic = 'your mnemonic phrase here';
String seed = bip39.mnemonicToSeedHex(mnemonic);
// 生成 HD 钱包
bip32.BIP32 root = bip32.BIP32.fromSeed(seed);
// 生成派生地址
bip32.BIP32 child = root.derivePath("m/44'/0'/0'/0/0");
print('Address: ${child.toBase58()}');
}