पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv0.31.3

bdk_flutter

बिटकॉइन डेवलपमेंट किट (bdk) (https://bitcoindevkit.org/) के लिए फ्लटर लाइब्रेरी

AndroidiOSmacOS
30-दिन डाउनलोड
589
लाइक
36
Pub अंक
140

पैकेज इंस्टॉल करें

flutter pub add bdk_flutter

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

bdk_flutter एक Flutter प per है जो Bitcoin Development Kit (bdk) को Flutter एप्लिकेशन में एकीकृत करता है, जिससे विकासकर्ता सुरक्षित, मूल बिटकॉइन वॉलेट बना सकते हैं, जिसमें कीज़ प्रबंधन, लेनदेन निर्माण और ब्लॉकचेन इंटरैक्शन के लिए पूर्ण नियंत्रण होता है। यह bdk के ठोस Rust-आधारित बैकएंड तक एक पुल प्रदान करता है, जिसमें HD वॉलेट समर्थन, PSBT हैंडलिंग और ब्लॉकचेन सिंक्रनाइजेशन जैसी विशेषताएं शामिल हैं। Web3, क्रिप्टो और ब्लॉकचेन एप्लिकेशन के लिए डिज़ाइन किया गया, यह विकासकर्ताओं को Android, iOS और macOS प्लेटफॉर्मों पर हल्के, गोपनीयता-केंद्रित बिटकॉइन समाधान बनाने में सक्षम बनाता है।

उपयोग

  • फ्लटर एप्स में बिटकॉइन वॉलेट बनाना
  • बहु-हस्ताक्षर लेनदेन के लिए PSBT बनाना
  • बिटकॉइन ब्लॉकचेन सिंक का एकीकरण
  • BIP39 और BIP44 के साथ HD वॉलेट का प्रबंधन करें
  • ऑफलाइन स्वाइगिंग कार्यप्रवाह सक्षम करें

मुख्य विशेषताएँ

  • बिटकॉइन डेवलपमेंट किट के साथ नेटिव एंटीग्रेशन
  • HD वॉलेट और BIP मानकों का समर्थन
  • PSBT निर्माण और हस्ताक्षर क्षमता
  • क्रॉस-प्लेटफॉर्म संगतता (Android, iOS, macOS)
  • सुरक्षित की प्रबंधन और वॉलेट संचालन

इनके लिए उपयुक्त

  • फ्लटर विकासकर्ता बिटकॉइन वॉलेट बना रहे हैं
  • बिटकॉइन कार्यक्षमता की आवश्यकता वाले वेब3 प्रोजेक्ट
  • ऑफलाइन लेनदेन साइनिंग की आवश्यकता वाले ऐप्स
  • Rust-आधारित bdk बैकएंड का उपयोग करने वाले विकासकर्मी
  • क्रिप्टो-नेटिव मोबाइल एप्लिकेशन

विचार योग्य बातें

  • बिटकॉइन मूल बातों के समझ की आवश्यकता है
  • परिपक्व लाइब्रेरी की तुलना में सीमित दस्तावेज़न
  • कम शक्ति वाले उपकरणों पर संभावित कार्यक्षमता अतिरिक्त खर्च
  • bdk के लिए मूल प्लेटफ़ॉर्म सेटअप पर निर्भर करता है
  • उत्पादन डेप्लॉयमेंट के लिए अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता हो सकती है

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

Bdk Flutter

BDK is released under the MIT license. Docs Current pub package version. Issues Stars Forks Demo App

A Flutter library for the Bitcoin Development Kit. The bdk library aims to be the core building block for Bitcoin Applications of any kind.

Requirements
  • Flutter : 3.0 or higher
  • Android minSdkVersion. : API 23 or higher.
  • Deployment target : iOS 12.0 or greater.
How to Use

To use the bdk_flutter package in your project, add it as a dependency in your project's pubspec.yaml:

dependencies:
  bdk_flutter: ^0.31.3
Examples
Create a Wallet & sync the balance of a descriptor
import 'package:bdk_flutter/bdk_flutter.dart';

// ....

final mnemonic = await Mnemonic.create(WordCount.words12);
final descriptorSecretKey = await DescriptorSecretKey.create( network: Network.testnet,
                                                              mnemonic: mnemonic );
final externalDescriptor = await Descriptor.newBip44( secretKey: descriptorSecretKey,
                                                      network: Network.testnet,
                                                      keychain: KeychainKind.externalChain );
final internalDescriptor = await Descriptor.newBip44( secretKey: descriptorSecretKey,
                                                      network: Network.testnet,
                                                      keychain: KeyChainKind.internalChain );
final blockchain = await Blockchain.create( config: BlockchainConfig.electrum(
                                                                        config: ElectrumConfig(
                                                                            stopGap: 10,
                                                                            timeout: 5,
                                                                            retry: 5,
                                                                            url: "ssl://electrum.blockstream.info:60002" )));
final wallet = await Wallet.create( descriptor: externalDescriptor,
                                    changeDescriptor: internalDescriptor,
                                    network: Network.testnet,
                                    databaseConfig: const DatabaseConfig.memory() );
final _ = await wallet.sync( blockchain );
Create a public wallet descriptor
import 'package:bdk_flutter/bdk_flutter.dart';

// ....

final mnemonic = await Mnemonic.create(WordCount.words12);
final descriptorSecretKey = await DescriptorSecretKey.create( network: Network.testnet,
                                                              mnemonic: mnemonic );
final externalDescriptor = await Descriptor.newBip44( secretKey: descriptorSecretKey,
                                                      network: Network.testnet,
                                                      keychain: KeychainKind.externalChain  );
final externalPublicDescriptor = await Descriptor.create( descriptor: externalDescriptor.toString(),
                                                    network: Network.testnet);
Get the transaction details
import 'package:bdk_flutter/bdk_flutter.dart';

final bdkWallet = .....

// ....

final txBuilder  = TxBuilder();
final address = await Address.fromString(s: "mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB", network: Network.testnet);

final script =  address.scriptPubkey();
final feeRate = await blockchain.estimateFee(target: 25);

final (psbt, transactionDetails) = await txBuilder.feeRate( feeRate.satPerVb )
                                       .addRecipient( script, 2000 )
                                       .finish( bdkWallet );

final serializedPsbt =  psbt.jsonSerialize();
final jsonObject = json.decode(serializedPsbt);
final outputs = jsonObject['unsigned_tx']['output'] as List;
final inputs = jsonObject['inputs'][0]['non_witness_utxo']['output'] as List;

debugPrint("=========Inputs=====");
    for (var e in inputs) {
      debugPrint("amount: ${e['value']}");
      debugPrint("script_pubkey: ${e['script_pubkey']}");
    }

debugPrint("=========Outputs=====");
    for (var e in outputs) {
      debugPrint("amount: ${e['value']}");
      debugPrint("script_pubkey: ${e['script_pubkey']}");
    }

Create an internal and extarnal wallet descriptors from derivation path.
import 'package:bdk_flutter/bdk_flutter.dart';


final mnemonic = await Mnemonic.create(WordCount.words12);
final descriptorSecretKey = await DescriptorSecretKey.create(
        network: Network.testnet, mnemonic: mnemonic);

// create external descriptor
final derivationPath = await DerivationPath.create(path: "m/44h/1h/0h/0");
final descriptorPrivateKey =
         descriptorSecretKey.derive(derivationPath);
final Descriptor descriptorPrivate = await Descriptor.create(
      descriptor: "pkh(${descriptorPrivateKey.toString()})",
      network: Network.testnet,
    );

// create internal descriptor
final derivationPathInt =
        await DerivationPath.create(path: "m/44h/1h/0h/1");
final descriptorPrivateKeyInt =
         descriptorSecretKey.derive(derivationPathInt);
final Descriptor descriptorPrivateInt = await Descriptor.create(
      descriptor: "pkh(${descriptorPrivateKeyInt.toString()})",
      network: Network.testnet,
    );

final bdkWallet = await Wallet.create(
      descriptor: descriptorPrivate,
      changeDescriptor: descriptorPrivateInt,
      network: Network.testnet,
      databaseConfig: const DatabaseConfig.memory(),
    );

final address =
        bdkWallet.getAddress(addressIndex: const AddressIndex.increase());
final internalAddress =
        bdkWallet.getInternalAddress(addressIndex: const AddressIndex.increase());

API Documentation

The latest API documentation is available here

Example Projects
  • *BDK Flutter Demo App: The BDK Flutter Demo App is a simple bitcoin app built in flutter to serve as a reference app to demonstrate bdk-flutter api usage.
References:
  • Setting up a local Esplora instance for testing: https://bitcoin.stackexchange.com/questions/116937/how-do-i-setup-an-esplora-instance-for-local-testing/116938#116938

Thanks for taking a look!

श्रेणियाँ

निर्भरताएँ

निर्भरता सूची 6 आइटम

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट