defichaindart 3.8.7+3 defichaindart: ^3.8.7+3 copied to clipboard
A dart DefiChain library for Flutter. BIP32, BIP39, P2PKH integration.
defichaindart #
A dart DefiChain library for Flutter.
Released under the terms of the MIT LICENSE.
Base on bitcoindart
Otherwise, pull requests are appreciated.
Installing #
Examples #
import 'package:defichaindart/defichaindart.dart';
main() {
var seed = bip39.mnemonicToSeed("praise you muffin lion enable neck grocery crumble super myself license ghost");
var hdWallet = new HDWallet.fromSeed(seed);
print(hdWallet.address);
// => 12eUJoaWBENQ3tNZE52ZQaHqr3v4tTX4os
print(hdWallet.pubKey);
// => 0360729fb3c4733e43bf91e5208b0d240f8d8de239cff3f2ebd616b94faa0007f4
print(hdWallet.privKey);
// => 01304181d699cd89db7de6337d597adf5f78dc1f0784c400e41a3bd829a5a226
print(hdWallet.wif);
// => KwG2BU1ERd3ndbFUrdpR7ymLZbsd7xZpPKxsgJzUf76A4q9CkBpY
var wallet = Wallet.fromWIF("Kxr9tQED9H44gCmp6HAdmemAzU3n84H3dGkuWTKvE23JgHMW8gct");
print(wallet.address);
// => 19AAjaTUbRjQCMuVczepkoPswiZRhjtg31
print(wallet.pubKey);
// => 03aea0dfd576151cb399347aa6732f8fdf027b9ea3ea2e65fb754803f776e0a509
print(wallet.privKey);
// => 3095cb26affefcaaa835ff968d60437c7c764da40cdd1a1b497406c7902a8ac9
print(wallet.wif);
// => Kxr9tQED9H44gCmp6HAdmemAzU3n84H3dGkuWTKvE23JgHMW8gct
}
The below examples are implemented as integration tests:
- Generate a random address
- Validating address
- Generate an address from a SHA256 hash
- Import an address via WIF
- Generate a Testnet address
- Generate a Litecoin address
- Generate a Segwit address
- Generate a Segwit Testnet address
- Generate a Segwit address (via P2SH)
- Create a 1-to-1 Transaction
- Create a 2-to-2 Transaction
- Create a Transaction with a SegWit P2SH(P2WPKH) input
- Create a Transaction with a SegWit P2WPKH input
- Import a BIP32 testnet xpriv and export to WIF
- Export a BIP32 xpriv, then import it
- Export a BIP32 xpub
- Create a BIP32, bitcoin, account 0, external address
- Create a BIP44, bitcoin, account 0, external address
- Use BIP39 to generate BIP32 addresses
TODO #
- Generate a SegWit multisig address
- Create a Transaction with a P2SH(multisig) input
- Build a Transaction w/ psbt format
- Add Tapscript / Taproot feature
Running the test suite #
pub run test
Complementing Libraries #
- BIP39 - Mnemonic generation for deterministic keys
- BIP32 - BIP32
- Base58 Check - Base58 check encoding/decoding
LICENSE MIT #
Script #
// Analyze pub dependencies
pub outdated --no-dev-dependencies --up-to-date --no-dependency-overrides
// Analyze code
flutter analyze
dart analyze
// Auto fix code(Use it cautiously)
pub global activate dartfix
dartfix --pedantic -w .
// Format code
dartfmt -w --fix --follow-links .
// Publish validation
pub publish --dry-run --verbose
// Publish
flutter packages pub publish --verbose --server https://pub.dartlang.org