diff --git a/bdk-python/docs/_build/html/.doctrees/api.doctree b/bdk-python/docs/_build/html/.doctrees/api.doctree
index 86a3ce5a..fa8290b1 100644
Binary files a/bdk-python/docs/_build/html/.doctrees/api.doctree and b/bdk-python/docs/_build/html/.doctrees/api.doctree differ
diff --git a/bdk-python/docs/_build/html/.doctrees/environment.pickle b/bdk-python/docs/_build/html/.doctrees/environment.pickle
index a1be6a90..66868c0d 100644
Binary files a/bdk-python/docs/_build/html/.doctrees/environment.pickle and b/bdk-python/docs/_build/html/.doctrees/environment.pickle differ
diff --git a/bdk-python/docs/_build/html/_modules/bdkpython/bdk.html b/bdk-python/docs/_build/html/_modules/bdkpython/bdk.html
index a1e52e0b..9e90f766 100644
--- a/bdk-python/docs/_build/html/_modules/bdkpython/bdk.html
+++ b/bdk-python/docs/_build/html/_modules/bdkpython/bdk.html
@@ -41,10 +41,7 @@
@@ -3381,8 +3378,6 @@
pass
-
-
[docs]
class DerivationPath :
_pointer : ctypes . c_void_p
def __init__ ( self , path : "str" ):
@@ -3407,8 +3402,7 @@
Source code for bdkpython.bdk
# and just create a new instance with the required pointer.
inst = cls . __new__ ( cls )
inst . _pointer = pointer
- return inst
-
+
return inst
@@ -3462,8 +3456,6 @@
Source code for bdkpython.bdk
raise NotImplementedError
-
-
[docs]
class Descriptor :
_pointer : ctypes . c_void_p
def __init__ ( self , descriptor : "str" , network : "Network" ):
@@ -3493,8 +3485,6 @@
Source code for bdkpython.bdk
inst . _pointer = pointer
return inst
-
-
[docs]
@classmethod
def new_bip44 ( cls , secret_key : "DescriptorSecretKey" , keychain : "KeychainKind" , network : "Network" ):
_UniffiConverterTypeDescriptorSecretKey . check_lower ( secret_key )
@@ -3508,12 +3498,9 @@
Source code for bdkpython.bdk
_UniffiConverterTypeDescriptorSecretKey . lower ( secret_key ),
_UniffiConverterTypeKeychainKind . lower ( keychain ),
_UniffiConverterTypeNetwork . lower ( network ))
- return cls . _make_instance_ ( pointer )
-
+
return cls . _make_instance_ ( pointer )
-
-
[docs]
@classmethod
def new_bip44_public ( cls , public_key : "DescriptorPublicKey" , fingerprint : "str" , keychain : "KeychainKind" , network : "Network" ):
_UniffiConverterTypeDescriptorPublicKey . check_lower ( public_key )
@@ -3530,12 +3517,9 @@
Source code for bdkpython.bdk
_UniffiConverterString . lower ( fingerprint ),
_UniffiConverterTypeKeychainKind . lower ( keychain ),
_UniffiConverterTypeNetwork . lower ( network ))
- return cls . _make_instance_ ( pointer )
-
+
return cls . _make_instance_ ( pointer )
-
-
[docs]
@classmethod
def new_bip49 ( cls , secret_key : "DescriptorSecretKey" , keychain : "KeychainKind" , network : "Network" ):
_UniffiConverterTypeDescriptorSecretKey . check_lower ( secret_key )
@@ -3549,12 +3533,9 @@
Source code for bdkpython.bdk
_UniffiConverterTypeDescriptorSecretKey . lower ( secret_key ),
_UniffiConverterTypeKeychainKind . lower ( keychain ),
_UniffiConverterTypeNetwork . lower ( network ))
- return cls . _make_instance_ ( pointer )
-
+
return cls . _make_instance_ ( pointer )
-
-
[docs]
@classmethod
def new_bip49_public ( cls , public_key : "DescriptorPublicKey" , fingerprint : "str" , keychain : "KeychainKind" , network : "Network" ):
_UniffiConverterTypeDescriptorPublicKey . check_lower ( public_key )
@@ -3571,12 +3552,9 @@
Source code for bdkpython.bdk
_UniffiConverterString . lower ( fingerprint ),
_UniffiConverterTypeKeychainKind . lower ( keychain ),
_UniffiConverterTypeNetwork . lower ( network ))
- return cls . _make_instance_ ( pointer )
-
+
return cls . _make_instance_ ( pointer )
-
-
[docs]
@classmethod
def new_bip84 ( cls , secret_key : "DescriptorSecretKey" , keychain : "KeychainKind" , network : "Network" ):
_UniffiConverterTypeDescriptorSecretKey . check_lower ( secret_key )
@@ -3590,12 +3568,9 @@
Source code for bdkpython.bdk
_UniffiConverterTypeDescriptorSecretKey . lower ( secret_key ),
_UniffiConverterTypeKeychainKind . lower ( keychain ),
_UniffiConverterTypeNetwork . lower ( network ))
- return cls . _make_instance_ ( pointer )
-
+
return cls . _make_instance_ ( pointer )
-
-
[docs]
@classmethod
def new_bip84_public ( cls , public_key : "DescriptorPublicKey" , fingerprint : "str" , keychain : "KeychainKind" , network : "Network" ):
_UniffiConverterTypeDescriptorPublicKey . check_lower ( public_key )
@@ -3612,12 +3587,9 @@
Source code for bdkpython.bdk
_UniffiConverterString . lower ( fingerprint ),
_UniffiConverterTypeKeychainKind . lower ( keychain ),
_UniffiConverterTypeNetwork . lower ( network ))
- return cls . _make_instance_ ( pointer )
-
+
return cls . _make_instance_ ( pointer )
-
-
[docs]
@classmethod
def new_bip86 ( cls , secret_key : "DescriptorSecretKey" , keychain : "KeychainKind" , network : "Network" ):
_UniffiConverterTypeDescriptorSecretKey . check_lower ( secret_key )
@@ -3631,12 +3603,9 @@
Source code for bdkpython.bdk
_UniffiConverterTypeDescriptorSecretKey . lower ( secret_key ),
_UniffiConverterTypeKeychainKind . lower ( keychain ),
_UniffiConverterTypeNetwork . lower ( network ))
- return cls . _make_instance_ ( pointer )
-
+
return cls . _make_instance_ ( pointer )
-
-
[docs]
@classmethod
def new_bip86_public ( cls , public_key : "DescriptorPublicKey" , fingerprint : "str" , keychain : "KeychainKind" , network : "Network" ):
_UniffiConverterTypeDescriptorPublicKey . check_lower ( public_key )
@@ -3653,13 +3622,10 @@
Source code for bdkpython.bdk
_UniffiConverterString . lower ( fingerprint ),
_UniffiConverterTypeKeychainKind . lower ( keychain ),
_UniffiConverterTypeNetwork . lower ( network ))
- return cls . _make_instance_ ( pointer )
-
+
return cls . _make_instance_ ( pointer )
-
-
[docs]
def is_multipath ( self , ) -> "bool" :
"""
Whether or not this key has multiple derivation paths.
@@ -3667,15 +3633,12 @@
Source code for bdkpython.bdk
return _UniffiConverterBool . lift (
_uniffi_rust_call ( _UniffiLib . uniffi_bdkffi_fn_method_descriptor_is_multipath , self . _uniffi_clone_pointer (),)
- )
-
+
)
-
-
[docs]
def to_single_descriptors ( self , ) -> "typing.List[Descriptor]" :
"""
Get as many descriptors as different paths in this descriptor.
@@ -3686,20 +3649,16 @@
Source code for bdkpython.bdk
return _UniffiConverterSequenceTypeDescriptor . lift (
_uniffi_rust_call_with_error ( _UniffiConverterTypeMiniscriptError , _UniffiLib . uniffi_bdkffi_fn_method_descriptor_to_single_descriptors , self . _uniffi_clone_pointer (),)
- )
-
+
)
-
-
[docs]
def to_string_with_secret ( self , ) -> "str" :
return _UniffiConverterString . lift (
_uniffi_rust_call ( _UniffiLib . uniffi_bdkffi_fn_method_descriptor_to_string_with_secret , self . _uniffi_clone_pointer (),)
-
)
-
+
)
@@ -3708,8 +3667,7 @@
Source code for bdkpython.bdk
def __str__ ( self , ) -> "str" :
return _UniffiConverterString . lift (
_uniffi_rust_call ( _UniffiLib . uniffi_bdkffi_fn_method_descriptor_uniffi_trait_display , self . _uniffi_clone_pointer (),)
- )
-
+
)
@@ -3767,8 +3725,6 @@
Source code for bdkpython.bdk
raise NotImplementedError
-
-
[docs]
class DescriptorPublicKey :
_pointer : ctypes . c_void_p
@@ -3793,8 +3749,6 @@
Source code for bdkpython.bdk
inst . _pointer = pointer
return inst
-
-
[docs]
@classmethod
def from_string ( cls , public_key : "str" ):
_UniffiConverterString . check_lower ( public_key )
@@ -3802,55 +3756,43 @@
Source code for bdkpython.bdk
# Call the (fallible) function before creating any half-baked object instances.
pointer = _uniffi_rust_call_with_error ( _UniffiConverterTypeDescriptorKeyError , _UniffiLib . uniffi_bdkffi_fn_constructor_descriptorpublickey_from_string ,
_UniffiConverterString . lower ( public_key ))
- return cls . _make_instance_ ( pointer )
-
+
return cls . _make_instance_ ( pointer )
-
-
[docs]
def as_string ( self , ) -> "str" :
return _UniffiConverterString . lift (
_uniffi_rust_call ( _UniffiLib . uniffi_bdkffi_fn_method_descriptorpublickey_as_string , self . _uniffi_clone_pointer (),)
-
)
-
+
)
-
-
[docs]
def derive ( self , path : "DerivationPath" ) -> "DescriptorPublicKey" :
_UniffiConverterTypeDerivationPath . check_lower ( path )
return _UniffiConverterTypeDescriptorPublicKey . lift (
_uniffi_rust_call_with_error ( _UniffiConverterTypeDescriptorKeyError , _UniffiLib . uniffi_bdkffi_fn_method_descriptorpublickey_derive , self . _uniffi_clone_pointer (),
_UniffiConverterTypeDerivationPath . lower ( path ))
-
)
-
+
)
-
-
[docs]
def extend ( self , path : "DerivationPath" ) -> "DescriptorPublicKey" :
_UniffiConverterTypeDerivationPath . check_lower ( path )
return _UniffiConverterTypeDescriptorPublicKey . lift (
_uniffi_rust_call_with_error ( _UniffiConverterTypeDescriptorKeyError , _UniffiLib . uniffi_bdkffi_fn_method_descriptorpublickey_extend , self . _uniffi_clone_pointer (),
_UniffiConverterTypeDerivationPath . lower ( path ))
-
)
-
+
)
-
-
[docs]
def is_multipath ( self , ) -> "bool" :
"""
Whether or not this key has multiple derivation paths.
@@ -3858,15 +3800,12 @@
Source code for bdkpython.bdk
return _UniffiConverterBool . lift (
_uniffi_rust_call ( _UniffiLib . uniffi_bdkffi_fn_method_descriptorpublickey_is_multipath , self . _uniffi_clone_pointer (),)
- )
-
+
)
-
-
[docs]
def master_fingerprint ( self , ) -> "str" :
"""
The fingerprint of the master key associated with this key, `0x00000000` if none.
@@ -3874,9 +3813,7 @@
Source code for bdkpython.bdk
return _UniffiConverterString . lift (
_uniffi_rust_call ( _UniffiLib . uniffi_bdkffi_fn_method_descriptorpublickey_master_fingerprint , self . _uniffi_clone_pointer (),)
- )
-
-
+
)
@@ -3926,8 +3863,6 @@
Source code for bdkpython.bdk
raise NotImplementedError
-
-
[docs]
class DescriptorSecretKey :
_pointer : ctypes . c_void_p
def __init__ ( self , network : "Network" , mnemonic : "Mnemonic" , password : "typing.Optional[str]" ):
@@ -3960,8 +3895,6 @@
Source code for bdkpython.bdk
inst . _pointer = pointer
return inst
-
-
[docs]
@classmethod
def from_string ( cls , secret_key : "str" ):
_UniffiConverterString . check_lower ( secret_key )
@@ -3969,73 +3902,56 @@
Source code for bdkpython.bdk
# Call the (fallible) function before creating any half-baked object instances.
pointer = _uniffi_rust_call_with_error ( _UniffiConverterTypeDescriptorKeyError , _UniffiLib . uniffi_bdkffi_fn_constructor_descriptorsecretkey_from_string ,
_UniffiConverterString . lower ( secret_key ))
- return cls . _make_instance_ ( pointer )
-
+
return cls . _make_instance_ ( pointer )
-
-
[docs]
def as_public ( self , ) -> "DescriptorPublicKey" :
return _UniffiConverterTypeDescriptorPublicKey . lift (
_uniffi_rust_call ( _UniffiLib . uniffi_bdkffi_fn_method_descriptorsecretkey_as_public , self . _uniffi_clone_pointer (),)
-
)
-
+
)
-
-
[docs]
def as_string ( self , ) -> "str" :
return _UniffiConverterString . lift (
_uniffi_rust_call ( _UniffiLib . uniffi_bdkffi_fn_method_descriptorsecretkey_as_string , self . _uniffi_clone_pointer (),)
-
)
-
+
)
-
-
[docs]
def derive ( self , path : "DerivationPath" ) -> "DescriptorSecretKey" :
_UniffiConverterTypeDerivationPath . check_lower ( path )
return _UniffiConverterTypeDescriptorSecretKey . lift (
_uniffi_rust_call_with_error ( _UniffiConverterTypeDescriptorKeyError , _UniffiLib . uniffi_bdkffi_fn_method_descriptorsecretkey_derive , self . _uniffi_clone_pointer (),
_UniffiConverterTypeDerivationPath . lower ( path ))
-
)
-
+
)
-
-
[docs]
def extend ( self , path : "DerivationPath" ) -> "DescriptorSecretKey" :
_UniffiConverterTypeDerivationPath . check_lower ( path )
return _UniffiConverterTypeDescriptorSecretKey . lift (
_uniffi_rust_call_with_error ( _UniffiConverterTypeDescriptorKeyError , _UniffiLib . uniffi_bdkffi_fn_method_descriptorsecretkey_extend , self . _uniffi_clone_pointer (),
_UniffiConverterTypeDerivationPath . lower ( path ))
-
)
-
+
)
-
-
[docs]
def secret_bytes ( self , ) -> "typing.List[int]" :
return _UniffiConverterSequenceUInt8 . lift (
_uniffi_rust_call ( _UniffiLib . uniffi_bdkffi_fn_method_descriptorsecretkey_secret_bytes , self . _uniffi_clone_pointer (),)
-
)
-
-
+ )
diff --git a/bdk-python/docs/_build/html/_modules/index.html b/bdk-python/docs/_build/html/_modules/index.html
index ed7dae72..a6b948ed 100644
--- a/bdk-python/docs/_build/html/_modules/index.html
+++ b/bdk-python/docs/_build/html/_modules/index.html
@@ -41,10 +41,7 @@
diff --git a/bdk-python/docs/_build/html/_sources/api.rst.txt b/bdk-python/docs/_build/html/_sources/api.rst.txt
index d154c06d..34489df9 100644
--- a/bdk-python/docs/_build/html/_sources/api.rst.txt
+++ b/bdk-python/docs/_build/html/_sources/api.rst.txt
@@ -1,31 +1,97 @@
-BDK Python API Reference
-=====================
-
-This document describes the Python API for the Bitcoin Development Kit (BDK).
-
-Bdk Module
-==========
-Bitcoin Module
-==============
-
-Examples
---------
-
-Basic Wallet Usage
-~~~~~~~~~~~~~~~~
-
-.. code-block:: python
-
- from bdkpython import *
- # Create a new wallet
- descriptor = "wpkh(...)" # Your descriptor here
- wallet = Wallet(descriptor, network=Network.TESTNET)
-
- # Sync wallet
- blockchain = Blockchain("https://blockstream.info/testnet/api")
- wallet.sync(blockchain)
-
- # Get balance
- balance = wallet.get_balance()
- print(f"Confirmed balance: {balance.confirmed}")
-
\ No newline at end of file
+API Reference
+============
+
+.. currentmodule:: bdkpython
+
+Core Types
+----------
+
+.. autoclass:: Amount
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: FeeRate
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: Address
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: Script
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: OutPoint
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Wallet Operations
+-----------------
+
+.. autoclass:: TxBuilder
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: BumpFeeTxBuilder
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: Psbt
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: ElectrumClient
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: EsploraClient
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: Wallet
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Utilities
+---------
+
+.. autoclass:: Mnemonic
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: Network
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Exceptions
+----------
+
+.. autoclass:: InternalError
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: FeeRateError
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: ParseAmountError
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
diff --git a/bdk-python/docs/_build/html/api.html b/bdk-python/docs/_build/html/api.html
index 2c803690..09c701ce 100644
--- a/bdk-python/docs/_build/html/api.html
+++ b/bdk-python/docs/_build/html/api.html
@@ -6,7 +6,7 @@
-
BDK Python API Reference — BDK Python 0.1.0 documentation
+
API Reference — BDK Python 0.1.0 documentation
@@ -43,11 +43,120 @@
diff --git a/bdk-python/docs/_build/html/objects.inv b/bdk-python/docs/_build/html/objects.inv
index f641961a..8b0e5763 100644
Binary files a/bdk-python/docs/_build/html/objects.inv and b/bdk-python/docs/_build/html/objects.inv differ
diff --git a/bdk-python/docs/_build/html/search.html b/bdk-python/docs/_build/html/search.html
index 2b72f802..92a34845 100644
--- a/bdk-python/docs/_build/html/search.html
+++ b/bdk-python/docs/_build/html/search.html
@@ -44,9 +44,7 @@
diff --git a/bdk-python/docs/_build/html/searchindex.js b/bdk-python/docs/_build/html/searchindex.js
index 0221ba7d..ea18b13e 100644
--- a/bdk-python/docs/_build/html/searchindex.js
+++ b/bdk-python/docs/_build/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles": {"BDK Python API Reference": [[0, null]], "Basic Wallet Usage": [[0, "basic-wallet-usage"]], "Bdk Module": [[0, "bdk-module"]], "Bitcoin Module": [[0, "bitcoin-module"]], "Contents:": [[1, null]], "Examples": [[0, "examples"]], "Indices and tables": [[1, "indices-and-tables"]], "Welcome to BDK Python\u2019s documentation!": [[1, null]]}, "docnames": ["api", "index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["api.rst", "index.rst"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [], "0": [], "0032": [], "0174": [], "0371": [], "0x00000000": [], "1": [], "2": [], "A": [], "For": [], "If": [], "In": [], "It": [], "The": [], "These": [], "To": [], "Will": [], "_": [], "absolut": [], "accord": [], "ad": [], "add": [], "add_data": [], "add_global_xpub": [], "add_recipi": [], "add_unspend": [], "add_utxo": [], "addit": [], "addressinfo": [], "after": [], "all": [], "allow_dust": [], "alongsid": [], "alreadi": [], "also": [], "alwai": [], "amount": [], "an": [], "anchor": [], "ani": [], "anyon": [], "api": 1, "appli": [], "apply_upd": [], "ar": [], "arbitrari": [], "arg": [], "as_publ": [], "as_str": [], "ask": [], "assign": [], "associ": [], "assum": [], "attempt": [], "avail": [], "avoid": [], "balanc": 0, "base": [], "batch_siz": [], "bdk_wallet": [], "bdkpython": 0, "been": [], "befor": [], "behavior": [], "best": [], "bip": [], "bip174": [], "bip32": [], "bip371": [], "bitbox": [], "bitcoin": 1, "blob": [], "block": [], "blockchain": 0, "blockstream": 0, "bool": [], "both": [], "broadcast": [], "build_fee_bump": [], "build_tx": [], "builder": [], "built": [], "bumpfeetxbuild": [], "calcul": [], "calculate_fe": [], "calculate_fee_r": [], "call": [], "caller": [], "can": [], "cancel_tx": [], "canonicaltx": [], "case": [], "caus": [], "chain": [], "chainposit": [], "chang": [], "change_descriptor": [], "change_polici": [], "changespendpolici": [], "check": [], "checksum": [], "choos": [], "class": [], "classmethod": [], "close": [], "coin": [], "coinbas": [], "coldcard": [], "collect": [], "com": [], "combin": [], "complet": [], "complex": [], "comput": [], "confirm": 0, "conflict": [], "connect": [], "construct": [], "consum": [], "contain": [], "core": [], "correspond": [], "could": [], "creat": 0, "csv": [], "current": [], "current_height": [], "custom": [], "data": [], "databas": [], "decid": [], "default": [], "defin": [], "deriv": [], "derivation_index": [], "derivation_of_spk": [], "derivationpath": [], "describ": 0, "descriptor": 0, "descriptor_checksum": [], "descriptorpublickei": [], "descriptorsecretkei": [], "determin": [], "develop": 0, "dict": [], "differ": [], "do": [], "do_not_spend_chang": [], "doc": [], "document": 0, "doe": [], "doesn": [], "don": [], "drain": [], "drain_to": [], "drain_wallet": [], "dust": [], "e": [], "each": [], "ed": [], "effect": [], "effort": [], "either": [], "electrumcli": [], "empti": [], "encapsul": [], "end": [], "entropi": [], "enum": [], "equal": [], "esploracli": [], "even": [], "everi": [], "exact": [], "exampl": 1, "except": [], "excess": [], "exclus": [], "exist": [], "extend": [], "extern": [], "extract_tx": [], "f": 0, "fals": [], "fee": [], "fee_absolut": [], "fee_rat": [], "feeamount": [], "feepolici": [], "feerat": [], "fetch": [], "fetch_prev_txout": [], "field": [], "fill": [], "filter": [], "final": [], "finalize_psbt": [], "finalizedpsbtresult": [], "find": [], "fine": [], "fingerprint": [], "finish": [], "first": [], "follow": [], "free": [], "from": 0, "from_entropi": [], "from_script": [], "from_str": [], "full": [], "full_scan": [], "full_scan_request": [], "fullscanrequest": [], "fullscanrequestbuild": [], "function": [], "further": [], "futur": [], "gener": [], "get": 0, "get_bal": 0, "get_height": [], "get_tx": [], "get_utxo": [], "github": [], "given": [], "graph": [], "greater": [], "guarante": [], "ha": [], "hardwar": [], "hasn": [], "have": [], "height": [], "here": 0, "highest": [], "how": [], "html": [], "http": 0, "i": [], "ignor": [], "immatur": [], "import": 0, "includ": [], "increment": [], "index": 1, "info": 0, "inform": [], "input": [], "input_fin": [], "insert": [], "insert_txout": [], "instead": [], "int": [], "intend": [], "interact": [], "intern": [], "internalerror": [], "is_min": [], "is_multipath": [], "is_valid_for_network": [], "iter": [], "its": [], "itself": [], "json_seri": [], "just": [], "kei": [], "keychain": [], "keychainandindex": [], "keychainkind": [], "kit": 0, "known": [], "kwarg": [], "last": [], "latest": [], "librari": [], "like": [], "limit": [], "list": [], "list_output": [], "list_unsp": [], "list_unused_address": [], "load": [], "local": [], "localoutput": [], "locktim": [], "longer": [], "lower": [], "lowest": [], "mai": [], "make": [], "mani": [], "manual": [], "manually_selected_onli": [], "mark": [], "mark_us": [], "master": [], "master_fingerprint": [], "matur": [], "max": [], "maximum": [], "mean": [], "mediawiki": [], "mempool": [], "meta": [], "method": [], "might": [], "mine": [], "minimum": [], "mnemon": [], "modul": 1, "more": [], "multipath": [], "multipl": [], "multisig": [], "must": [], "mutual": [], "need": [], "network": 0, "new": 0, "new_bip44": [], "new_bip44_publ": [], "new_bip49": [], "new_bip49_publ": [], "new_bip84": [], "new_bip84_publ": [], "new_bip86": [], "new_bip86_publ": [], "newli": [], "next": [], "next_derivation_index": [], "next_unused_address": [], "nlocktim": [], "non": [], "none": [], "note": [], "nsequenc": [], "number": [], "object": [], "offlin": [], "older": [], "one": [], "onli": [], "only_spend_chang": [], "op": [], "op_cltv": [], "op_csv": [], "op_return": [], "oper": [], "option": [], "order": [], "ordinari": [], "other": [], "otherwis": [], "out": [], "outpoint": [], "output": [], "over": [], "overshoot": [], "own": [], "page": 1, "paid": [], "panic": [], "parallel": [], "parallel_request": [], "part": [], "partial": [], "pass": [], "password": [], "path": [], "peek": [], "peek_address": [], "pend": [], "per": [], "perfectli": [], "perform": [], "persist": [], "pleas": [], "polici": [], "policy_path": [], "possibl": [], "presenc": [], "present": [], "prevent": [], "previou": [], "previous": [], "print": 0, "prioriti": [], "prove": [], "provid": [], "psbt": [], "psbt_base64": [], "psbt_global_xpub": [], "pub": [], "pubkei": [], "public": [], "public_descriptor": [], "public_kei": [], "r": [], "random": [], "rate": [], "realli": [], "receiv": [], "recipi": [], "refer": 1, "regular": [], "relai": [], "relat": [], "relev": [], "remain": [], "remov": [], "replac": [], "request": [], "requir": [], "respect": [], "restor": [], "result": [], "return": [], "reus": [], "reveal": [], "reveal_addresses_to": [], "reveal_next_address": [], "right": [], "rng": [], "rust": [], "same": [], "sat": [], "scan": [], "script_pubkei": [], "scriptamount": [], "scriptsig": [], "scriptwit": [], "search": 1, "secret_byt": [], "secret_kei": [], "see": [], "seen": [], "select": [], "self": [], "send": [], "sent": [], "sent_and_receiv": [], "sentandreceivedvalu": [], "separ": [], "serial": [], "set": [], "set_exact_sequ": [], "set_recipi": [], "shortcut": [], "should": [], "sign": [], "signer": [], "signerord": [], "signopt": [], "sinc": [], "singl": [], "size": [], "slightli": [], "small": [], "snipe": [], "softwar": [], "some": [], "sourc": [], "specif": [], "specifi": [], "spend": [], "spent": [], "spk": [], "stage": [], "standard": [], "start": [], "start_full_scan": [], "start_sync_with_revealed_spk": [], "step": [], "stop_gap": [], "str": [], "struct": [], "suffici": [], "sum": [], "summat": [], "sync": 0, "sync_request": [], "syncrequest": [], "syncrequestbuild": [], "t": [], "take": [], "target": [], "testnet": 0, "than": [], "thei": [], "them": [], "thi": 0, "thread": [], "time": [], "timestamp": [], "to_qr_uri": [], "to_single_descriptor": [], "to_string_with_secret": [], "too": [], "total": [], "track": [], "true": [], "trust": [], "tupl": [], "tweak": [], "tx": [], "txbuilder": [], "txid": [], "txin": [], "txout": [], "type": [], "unconfirm": [], "unix": [], "unreach": [], "unspend": [], "unspent": [], "until": [], "untrust": [], "unus": [], "up": [], "updat": [], "url": [], "us": [], "usual": [], "util": [], "utxo": [], "valid": [], "valu": [], "vb": [], "veri": [], "version": [], "via": [], "viabl": [], "wa": [], "wai": [], "wallet": [], "wallettx": [], "want": [], "warn": [], "we": [], "well": [], "were": [], "when": [], "whether": [], "which": [], "whichev": [], "while": [], "wif": [], "wildcard": [], "without": [], "word_count": [], "wordcount": [], "work": [], "would": [], "wpkh": 0, "xprv": [], "you": [], "your": 0, "zero": []}, "titles": ["BDK Python API Reference", "Welcome to BDK Python\u2019s documentation!"], "titleterms": {"": 1, "address": [], "amount": [], "api": 0, "basic": 0, "bdk": [0, 1], "bitcoin": 0, "blockchain": [], "build": [], "client": [], "content": 1, "core": [], "descriptor": [], "document": 1, "exampl": 0, "except": [], "fee": [], "indic": 1, "modul": 0, "oper": [], "python": [0, 1], "refer": 0, "script": [], "tabl": 1, "transact": [], "type": [], "usag": 0, "util": [], "wallet": 0, "welcom": 1}})
\ No newline at end of file
+Search.setIndex({"alltitles": {"API Reference": [[0, null]], "Contents:": [[1, null]], "Core Types": [[0, "core-types"]], "Exceptions": [[0, "exceptions"]], "Indices and tables": [[1, "indices-and-tables"]], "Utilities": [[0, "utilities"]], "Wallet Operations": [[0, "wallet-operations"]], "Welcome to BDK Python\u2019s documentation!": [[1, null]]}, "docnames": ["api", "index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["api.rst", "index.rst"], "indexentries": {"add_data() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.add_data", false]], "add_global_xpubs() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.add_global_xpubs", false]], "add_recipient() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.add_recipient", false]], "add_unspendable() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.add_unspendable", false]], "add_utxo() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.add_utxo", false]], "address (class in bdkpython)": [[0, "bdkpython.Address", false]], "allow_dust() (bdkpython.bumpfeetxbuilder method)": [[0, "bdkpython.BumpFeeTxBuilder.allow_dust", false]], "allow_dust() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.allow_dust", false]], "apply_update() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.apply_update", false]], "balance() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.balance", false]], "broadcast() (bdkpython.electrumclient method)": [[0, "bdkpython.ElectrumClient.broadcast", false]], "broadcast() (bdkpython.esploraclient method)": [[0, "bdkpython.EsploraClient.broadcast", false]], "bumpfeetxbuilder (class in bdkpython)": [[0, "bdkpython.BumpFeeTxBuilder", false]], "calculate_fee() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.calculate_fee", false]], "calculate_fee_rate() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.calculate_fee_rate", false]], "cancel_tx() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.cancel_tx", false]], "change_policy() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.change_policy", false]], "combine() (bdkpython.psbt method)": [[0, "bdkpython.Psbt.combine", false]], "current_height() (bdkpython.bumpfeetxbuilder method)": [[0, "bdkpython.BumpFeeTxBuilder.current_height", false]], "current_height() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.current_height", false]], "derivation_index() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.derivation_index", false]], "derivation_of_spk() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.derivation_of_spk", false]], "descriptor_checksum() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.descriptor_checksum", false]], "do_not_spend_change() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.do_not_spend_change", false]], "drain_to() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.drain_to", false]], "drain_wallet() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.drain_wallet", false]], "electrumclient (class in bdkpython)": [[0, "bdkpython.ElectrumClient", false]], "esploraclient (class in bdkpython)": [[0, "bdkpython.EsploraClient", false]], "extract_tx() (bdkpython.psbt method)": [[0, "bdkpython.Psbt.extract_tx", false]], "fee() (bdkpython.psbt method)": [[0, "bdkpython.Psbt.fee", false]], "fee_absolute() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.fee_absolute", false]], "fee_rate() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.fee_rate", false]], "finalize() (bdkpython.psbt method)": [[0, "bdkpython.Psbt.finalize", false]], "finalize_psbt() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.finalize_psbt", false]], "finish() (bdkpython.bumpfeetxbuilder method)": [[0, "bdkpython.BumpFeeTxBuilder.finish", false]], "finish() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.finish", false]], "from_entropy() (bdkpython.mnemonic class method)": [[0, "bdkpython.Mnemonic.from_entropy", false]], "from_script() (bdkpython.address class method)": [[0, "bdkpython.Address.from_script", false]], "from_string() (bdkpython.mnemonic class method)": [[0, "bdkpython.Mnemonic.from_string", false]], "full_scan() (bdkpython.electrumclient method)": [[0, "bdkpython.ElectrumClient.full_scan", false]], "full_scan() (bdkpython.esploraclient method)": [[0, "bdkpython.EsploraClient.full_scan", false]], "get_height() (bdkpython.esploraclient method)": [[0, "bdkpython.EsploraClient.get_height", false]], "get_tx() (bdkpython.esploraclient method)": [[0, "bdkpython.EsploraClient.get_tx", false]], "get_tx() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.get_tx", false]], "get_utxo() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.get_utxo", false]], "internalerror (class in bdkpython)": [[0, "bdkpython.InternalError", false]], "is_mine() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.is_mine", false]], "is_valid_for_network() (bdkpython.address method)": [[0, "bdkpython.Address.is_valid_for_network", false]], "json_serialize() (bdkpython.psbt method)": [[0, "bdkpython.Psbt.json_serialize", false]], "list_output() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.list_output", false]], "list_unspent() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.list_unspent", false]], "list_unused_addresses() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.list_unused_addresses", false]], "load() (bdkpython.wallet class method)": [[0, "bdkpython.Wallet.load", false]], "manually_selected_only() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.manually_selected_only", false]], "mark_used() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.mark_used", false]], "mnemonic (class in bdkpython)": [[0, "bdkpython.Mnemonic", false]], "network() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.network", false]], "next_derivation_index() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.next_derivation_index", false]], "next_unused_address() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.next_unused_address", false]], "nlocktime() (bdkpython.bumpfeetxbuilder method)": [[0, "bdkpython.BumpFeeTxBuilder.nlocktime", false]], "nlocktime() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.nlocktime", false]], "only_spend_change() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.only_spend_change", false]], "peek_address() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.peek_address", false]], "persist() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.persist", false]], "policies() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.policies", false]], "policy_path() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.policy_path", false]], "psbt (class in bdkpython)": [[0, "bdkpython.Psbt", false]], "reveal_addresses_to() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.reveal_addresses_to", false]], "reveal_next_address() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.reveal_next_address", false]], "script_pubkey() (bdkpython.address method)": [[0, "bdkpython.Address.script_pubkey", false]], "sent_and_received() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.sent_and_received", false]], "serialize() (bdkpython.psbt method)": [[0, "bdkpython.Psbt.serialize", false]], "set_exact_sequence() (bdkpython.bumpfeetxbuilder method)": [[0, "bdkpython.BumpFeeTxBuilder.set_exact_sequence", false]], "set_exact_sequence() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.set_exact_sequence", false]], "set_recipients() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.set_recipients", false]], "sign() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.sign", false]], "start_full_scan() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.start_full_scan", false]], "start_sync_with_revealed_spks() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.start_sync_with_revealed_spks", false]], "sync() (bdkpython.electrumclient method)": [[0, "bdkpython.ElectrumClient.sync", false]], "sync() (bdkpython.esploraclient method)": [[0, "bdkpython.EsploraClient.sync", false]], "to_qr_uri() (bdkpython.address method)": [[0, "bdkpython.Address.to_qr_uri", false]], "transactions() (bdkpython.wallet method)": [[0, "bdkpython.Wallet.transactions", false]], "txbuilder (class in bdkpython)": [[0, "bdkpython.TxBuilder", false]], "unspendable() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.unspendable", false]], "version() (bdkpython.bumpfeetxbuilder method)": [[0, "bdkpython.BumpFeeTxBuilder.version", false]], "version() (bdkpython.txbuilder method)": [[0, "bdkpython.TxBuilder.version", false]], "wallet (class in bdkpython)": [[0, "bdkpython.Wallet", false]]}, "objects": {"bdkpython": [[0, 0, 1, "", "Address"], [0, 0, 1, "", "BumpFeeTxBuilder"], [0, 0, 1, "", "ElectrumClient"], [0, 0, 1, "", "EsploraClient"], [0, 0, 1, "", "InternalError"], [0, 0, 1, "", "Mnemonic"], [0, 0, 1, "", "Psbt"], [0, 0, 1, "", "TxBuilder"], [0, 0, 1, "", "Wallet"]], "bdkpython.Address": [[0, 1, 1, "", "from_script"], [0, 1, 1, "", "is_valid_for_network"], [0, 1, 1, "", "script_pubkey"], [0, 1, 1, "", "to_qr_uri"]], "bdkpython.BumpFeeTxBuilder": [[0, 1, 1, "", "allow_dust"], [0, 1, 1, "", "current_height"], [0, 1, 1, "", "finish"], [0, 1, 1, "", "nlocktime"], [0, 1, 1, "", "set_exact_sequence"], [0, 1, 1, "", "version"]], "bdkpython.ElectrumClient": [[0, 1, 1, "", "broadcast"], [0, 1, 1, "", "full_scan"], [0, 1, 1, "", "sync"]], "bdkpython.EsploraClient": [[0, 1, 1, "", "broadcast"], [0, 1, 1, "", "full_scan"], [0, 1, 1, "", "get_height"], [0, 1, 1, "", "get_tx"], [0, 1, 1, "", "sync"]], "bdkpython.Mnemonic": [[0, 1, 1, "", "from_entropy"], [0, 1, 1, "", "from_string"]], "bdkpython.Psbt": [[0, 1, 1, "", "combine"], [0, 1, 1, "", "extract_tx"], [0, 1, 1, "", "fee"], [0, 1, 1, "", "finalize"], [0, 1, 1, "", "json_serialize"], [0, 1, 1, "", "serialize"]], "bdkpython.TxBuilder": [[0, 1, 1, "", "add_data"], [0, 1, 1, "", "add_global_xpubs"], [0, 1, 1, "", "add_recipient"], [0, 1, 1, "", "add_unspendable"], [0, 1, 1, "", "add_utxo"], [0, 1, 1, "", "allow_dust"], [0, 1, 1, "", "change_policy"], [0, 1, 1, "", "current_height"], [0, 1, 1, "", "do_not_spend_change"], [0, 1, 1, "", "drain_to"], [0, 1, 1, "", "drain_wallet"], [0, 1, 1, "", "fee_absolute"], [0, 1, 1, "", "fee_rate"], [0, 1, 1, "", "finish"], [0, 1, 1, "", "manually_selected_only"], [0, 1, 1, "", "nlocktime"], [0, 1, 1, "", "only_spend_change"], [0, 1, 1, "", "policy_path"], [0, 1, 1, "", "set_exact_sequence"], [0, 1, 1, "", "set_recipients"], [0, 1, 1, "", "unspendable"], [0, 1, 1, "", "version"]], "bdkpython.Wallet": [[0, 1, 1, "", "apply_update"], [0, 1, 1, "", "balance"], [0, 1, 1, "", "calculate_fee"], [0, 1, 1, "", "calculate_fee_rate"], [0, 1, 1, "", "cancel_tx"], [0, 1, 1, "", "derivation_index"], [0, 1, 1, "", "derivation_of_spk"], [0, 1, 1, "", "descriptor_checksum"], [0, 1, 1, "", "finalize_psbt"], [0, 1, 1, "", "get_tx"], [0, 1, 1, "", "get_utxo"], [0, 1, 1, "", "is_mine"], [0, 1, 1, "", "list_output"], [0, 1, 1, "", "list_unspent"], [0, 1, 1, "", "list_unused_addresses"], [0, 1, 1, "", "load"], [0, 1, 1, "", "mark_used"], [0, 1, 1, "", "network"], [0, 1, 1, "", "next_derivation_index"], [0, 1, 1, "", "next_unused_address"], [0, 1, 1, "", "peek_address"], [0, 1, 1, "", "persist"], [0, 1, 1, "", "policies"], [0, 1, 1, "", "reveal_addresses_to"], [0, 1, 1, "", "reveal_next_address"], [0, 1, 1, "", "sent_and_received"], [0, 1, 1, "", "sign"], [0, 1, 1, "", "start_full_scan"], [0, 1, 1, "", "start_sync_with_revealed_spks"], [0, 1, 1, "", "transactions"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"]}, "objtypes": {"0": "py:class", "1": "py:method"}, "terms": {"": 0, "0": 0, "0032": 0, "0174": 0, "0371": 0, "1": 0, "2": 0, "A": 0, "For": 0, "If": 0, "In": 0, "It": 0, "The": 0, "These": 0, "To": 0, "Will": 0, "_": 0, "absolut": 0, "accord": 0, "ad": 0, "add": 0, "add_data": 0, "add_global_xpub": 0, "add_recipi": 0, "add_unspend": 0, "add_utxo": 0, "addit": 0, "address": 0, "addressinfo": 0, "after": 0, "all": 0, "allow_dust": 0, "alongsid": 0, "alreadi": 0, "also": 0, "alwai": 0, "amount": 0, "an": 0, "anchor": 0, "ani": 0, "anyon": 0, "api": 1, "appli": 0, "apply_upd": 0, "ar": 0, "arbitrari": 0, "ask": 0, "assign": 0, "associ": 0, "assum": 0, "attempt": 0, "avail": 0, "avoid": 0, "balanc": 0, "base": 0, "batch_siz": 0, "bdk_wallet": 0, "bdkpython": 0, "been": 0, "befor": 0, "behavior": 0, "best": 0, "bip": 0, "bip174": 0, "bip32": 0, "bip371": 0, "bitbox": 0, "bitcoin": 0, "blob": 0, "block": 0, "blockchain": 0, "bool": 0, "both": 0, "broadcast": 0, "build": 0, "build_fee_bump": 0, "build_tx": 0, "builder": 0, "built": 0, "bumpfeetxbuild": 0, "calcul": 0, "calculate_fe": 0, "calculate_fee_r": 0, "call": 0, "caller": 0, "can": 0, "cancel_tx": 0, "canonicaltx": 0, "case": 0, "caus": 0, "chain": 0, "chainposit": 0, "chang": 0, "change_descriptor": 0, "change_polici": 0, "changespendpolici": 0, "check": 0, "checksum": 0, "choos": 0, "class": 0, "classmethod": 0, "client": 0, "close": 0, "coin": 0, "coinbas": 0, "coldcard": 0, "collect": 0, "com": 0, "combin": 0, "complet": 0, "complex": 0, "comput": 0, "confirm": 0, "conflict": 0, "connect": 0, "construct": 0, "consum": 0, "contain": 0, "core": 1, "correspond": 0, "could": 0, "creat": 0, "csv": 0, "current": 0, "current_height": 0, "custom": 0, "data": 0, "databas": 0, "decid": 0, "default": 0, "defin": 0, "deriv": 0, "derivation_index": 0, "derivation_of_spk": 0, "descriptor": 0, "descriptor_checksum": 0, "determin": 0, "dict": 0, "differ": 0, "do": 0, "do_not_spend_chang": 0, "doc": 0, "doe": 0, "doesn": 0, "don": 0, "drain": 0, "drain_to": 0, "drain_wallet": 0, "dust": 0, "e": 0, "each": 0, "ed": 0, "effect": 0, "effort": 0, "either": 0, "electrumcli": 0, "empti": 0, "encapsul": 0, "end": 0, "entropi": 0, "enum": 0, "equal": 0, "esploracli": 0, "even": 0, "everi": 0, "exact": 0, "exampl": 0, "except": 1, "excess": 0, "exclus": 0, "exist": 0, "extend": 0, "extern": 0, "extract_tx": 0, "fals": 0, "fee": 0, "fee_absolut": 0, "fee_rat": 0, "feeamount": 0, "feepolici": 0, "feerat": 0, "fetch": 0, "fetch_prev_txout": 0, "field": 0, "fill": 0, "filter": 0, "final": 0, "finalize_psbt": 0, "finalizedpsbtresult": 0, "find": 0, "fine": 0, "finish": 0, "first": 0, "follow": 0, "free": 0, "from": 0, "from_entropi": 0, "from_script": 0, "from_str": 0, "full": 0, "full_scan": 0, "full_scan_request": 0, "fullscanrequest": 0, "fullscanrequestbuild": 0, "function": 0, "further": 0, "futur": 0, "gener": 0, "get": 0, "get_height": 0, "get_tx": 0, "get_utxo": 0, "github": 0, "given": 0, "graph": 0, "greater": 0, "guarante": 0, "ha": 0, "hardwar": 0, "hasn": 0, "have": 0, "height": 0, "highest": 0, "how": 0, "html": 0, "http": 0, "i": 0, "ignor": 0, "immatur": 0, "import": 0, "includ": 0, "increment": 0, "index": [0, 1], "inform": 0, "input": 0, "input_fin": 0, "insert": 0, "insert_txout": 0, "instead": 0, "int": 0, "intend": 0, "interact": 0, "intern": 0, "internalerror": 0, "is_min": 0, "is_valid_for_network": 0, "iter": 0, "its": 0, "json_seri": 0, "just": 0, "kei": 0, "keychain": 0, "keychainandindex": 0, "keychainkind": 0, "known": 0, "last": 0, "latest": 0, "librari": 0, "like": 0, "limit": 0, "list": 0, "list_output": 0, "list_unsp": 0, "list_unused_address": 0, "load": 0, "local": 0, "localoutput": 0, "locktim": 0, "longer": 0, "lower": 0, "lowest": 0, "mai": 0, "make": 0, "manual": 0, "manually_selected_onli": 0, "mark": 0, "mark_us": 0, "master": 0, "matur": 0, "max": 0, "maximum": 0, "mean": 0, "mediawiki": 0, "mempool": 0, "meta": 0, "method": 0, "might": 0, "mine": 0, "minimum": 0, "mnemon": 0, "modul": 1, "more": 0, "multisig": 0, "must": 0, "mutual": 0, "need": 0, "network": 0, "new": 0, "newli": 0, "next": 0, "next_derivation_index": 0, "next_unused_address": 0, "nlocktim": 0, "non": 0, "none": 0, "note": 0, "nsequenc": 0, "number": 0, "object": 0, "offlin": 0, "older": 0, "one": 0, "onli": 0, "only_spend_chang": 0, "op": 0, "op_cltv": 0, "op_csv": 0, "op_return": 0, "oper": 1, "option": 0, "order": 0, "ordinari": 0, "other": 0, "otherwis": 0, "out": 0, "outpoint": 0, "output": 0, "over": 0, "overshoot": 0, "own": 0, "page": 1, "paid": 0, "panic": 0, "parallel_request": 0, "part": 0, "partial": 0, "pass": 0, "peek": 0, "peek_address": 0, "pend": 0, "per": 0, "perfectli": 0, "perform": 0, "persist": 0, "pleas": 0, "polici": 0, "policy_path": 0, "possibl": 0, "presenc": 0, "present": 0, "prevent": 0, "previou": 0, "previous": 0, "prioriti": 0, "prove": 0, "provid": 0, "psbt": 0, "psbt_base64": 0, "psbt_global_xpub": 0, "pub": 0, "pubkei": 0, "public": 0, "public_descriptor": 0, "r": 0, "random": 0, "rate": 0, "realli": 0, "receiv": 0, "recipi": 0, "refer": 1, "relai": 0, "relat": 0, "relev": 0, "remain": 0, "remov": 0, "replac": 0, "request": 0, "requir": 0, "respect": 0, "restor": 0, "result": 0, "return": 0, "reus": 0, "reveal": 0, "reveal_addresses_to": 0, "reveal_next_address": 0, "right": 0, "rng": 0, "rust": 0, "same": 0, "sat": 0, "scan": 0, "script": 0, "script_pubkei": 0, "scriptamount": 0, "scriptsig": 0, "scriptwit": 0, "search": 1, "see": 0, "seen": 0, "select": 0, "self": 0, "send": 0, "sent": 0, "sent_and_receiv": 0, "sentandreceivedvalu": 0, "separ": 0, "serial": 0, "set": 0, "set_exact_sequ": 0, "set_recipi": 0, "shortcut": 0, "should": 0, "sign": 0, "signer": 0, "signerord": 0, "signopt": 0, "sinc": 0, "singl": 0, "size": 0, "slightli": 0, "small": 0, "snipe": 0, "softwar": 0, "some": 0, "sourc": 0, "specif": 0, "specifi": 0, "spend": 0, "spent": 0, "spk": 0, "stage": 0, "standard": 0, "start": 0, "start_full_scan": 0, "start_sync_with_revealed_spk": 0, "step": 0, "stop_gap": 0, "str": 0, "struct": 0, "suffici": 0, "sum": 0, "summat": 0, "sync": 0, "sync_request": 0, "syncrequest": 0, "syncrequestbuild": 0, "t": 0, "take": 0, "target": 0, "than": 0, "thei": 0, "them": 0, "thi": 0, "thread": 0, "time": 0, "timestamp": 0, "to_qr_uri": 0, "too": 0, "total": 0, "track": 0, "transact": 0, "true": 0, "trust": 0, "tupl": 0, "tweak": 0, "tx": 0, "txbuilder": 0, "txid": 0, "txin": 0, "txout": 0, "type": 1, "unconfirm": 0, "unix": 0, "unreach": 0, "unspend": 0, "unspent": 0, "until": 0, "untrust": 0, "unus": 0, "up": 0, "updat": 0, "url": 0, "us": 0, "usual": 0, "util": 1, "utxo": 0, "valid": 0, "valu": 0, "vb": 0, "veri": 0, "version": 0, "via": 0, "viabl": 0, "wa": 0, "wai": 0, "wallet": 1, "wallettx": 0, "want": 0, "warn": 0, "we": 0, "well": 0, "were": 0, "when": 0, "whether": 0, "which": 0, "whichev": 0, "while": 0, "wif": 0, "wildcard": 0, "without": 0, "word_count": 0, "wordcount": 0, "work": 0, "would": 0, "xprv": 0, "you": 0, "your": 0, "zero": 0}, "titles": ["API Reference", "Welcome to BDK Python\u2019s documentation!"], "titleterms": {"": 1, "api": 0, "bdk": 1, "content": 1, "core": 0, "document": 1, "except": 0, "indic": 1, "oper": 0, "python": 1, "refer": 0, "tabl": 1, "type": 0, "util": 0, "wallet": 0, "welcom": 1}})
\ No newline at end of file
diff --git a/bdk-python/docs/api.rst b/bdk-python/docs/api.rst
index d154c06d..34489df9 100644
--- a/bdk-python/docs/api.rst
+++ b/bdk-python/docs/api.rst
@@ -1,31 +1,97 @@
-BDK Python API Reference
-=====================
-
-This document describes the Python API for the Bitcoin Development Kit (BDK).
-
-Bdk Module
-==========
-Bitcoin Module
-==============
-
-Examples
---------
-
-Basic Wallet Usage
-~~~~~~~~~~~~~~~~
-
-.. code-block:: python
-
- from bdkpython import *
- # Create a new wallet
- descriptor = "wpkh(...)" # Your descriptor here
- wallet = Wallet(descriptor, network=Network.TESTNET)
-
- # Sync wallet
- blockchain = Blockchain("https://blockstream.info/testnet/api")
- wallet.sync(blockchain)
-
- # Get balance
- balance = wallet.get_balance()
- print(f"Confirmed balance: {balance.confirmed}")
-
\ No newline at end of file
+API Reference
+============
+
+.. currentmodule:: bdkpython
+
+Core Types
+----------
+
+.. autoclass:: Amount
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: FeeRate
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: Address
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: Script
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: OutPoint
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Wallet Operations
+-----------------
+
+.. autoclass:: TxBuilder
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: BumpFeeTxBuilder
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: Psbt
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: ElectrumClient
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: EsploraClient
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: Wallet
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Utilities
+---------
+
+.. autoclass:: Mnemonic
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: Network
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Exceptions
+----------
+
+.. autoclass:: InternalError
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: FeeRateError
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+.. autoclass:: ParseAmountError
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
diff --git a/bdk-python/scripts/generate_docs.py b/bdk-python/scripts/generate_docs.py
old mode 100755
new mode 100644
index 43fb7f02..ba97b08b
--- a/bdk-python/scripts/generate_docs.py
+++ b/bdk-python/scripts/generate_docs.py
@@ -1,116 +1,48 @@
-#!/usr/bin/env python3
import os
-import sys
-import inspect
-import importlib
-from typing import Any, Dict, List
-
-def get_class_methods(cls: type) -> List[Dict[str, Any]]:
- """Extract method information from a class."""
- methods = []
- for name, member in inspect.getmembers(cls, predicate=inspect.isfunction):
- if not name.startswith('_') or name == '__init__':
- sig = inspect.signature(member)
- doc = inspect.getdoc(member) or ''
- methods.append({
- 'name': name,
- 'signature': str(sig),
- 'doc': doc
- })
- return methods
-
-def get_class_info(cls: type) -> Dict[str, Any]:
- """Extract class information including docstring and methods."""
- return {
- 'name': cls.__name__,
- 'doc': inspect.getdoc(cls) or '',
- 'methods': get_class_methods(cls)
- }
-
-def format_rst_class(class_info: Dict[str, Any]) -> str:
- """Format class information as RST."""
- lines = []
- lines.append(f".. py:class:: {class_info['name']}")
- lines.append('')
-
- if class_info['doc']:
- lines.append(f" {class_info['doc']}")
- lines.append('')
-
- for method in class_info['methods']:
- lines.append(f" .. py:method:: {method['name']}{method['signature']}")
- lines.append('')
- if method['doc']:
- for doc_line in method['doc'].split('\n'):
- lines.append(f" {doc_line}")
- lines.append('')
-
- return '\n'.join(lines)
-
-def generate_module_docs(module) -> str:
- """Generate RST documentation for a module."""
- lines = []
-
- # Module header
- module_name = module.__name__.split('.')[-1]
- lines.append(f"{module_name.capitalize()} Module")
- lines.append('=' * len(f"{module_name} Module"))
- lines.append('')
-
- if module.__doc__:
- lines.append(module.__doc__)
- lines.append('')
-
- # Get all classes
- for obj in inspect.getmembers(module):
- if inspect.isclass(obj) and obj.__module__ == module.__name__:
- class_info = get_class_info(obj)
- lines.append(format_rst_class(class_info))
- lines.append('')
-
- return '\n'.join(lines)
-
-
-def main():
- output_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'docs')
- os.makedirs(output_dir, exist_ok=True)
-
- # Generate main API documentation
- api_rst_path = os.path.join(output_dir, 'api.rst')
-
- with open(api_rst_path, 'w') as f:
- f.write("BDK Python API Reference\n")
- f.write("=====================\n\n")
- f.write("This document describes the Python API for the Bitcoin Development Kit (BDK).\n\n")
-
- # Generate docs for each module
- for module_name in ['bdk', 'bitcoin']:
- try:
- module = importlib.import_module(f'bdkpython.{module_name}')
- f.write(generate_module_docs(module))
- except ImportError as e:
- print(f"Warning: Could not import {module_name}: {e}", file=sys.stderr)
-
- # Add examples section to ast
- f.write("\nExamples\n")
- f.write("--------\n\n")
- f.write("Basic Wallet Usage\n")
- f.write("~~~~~~~~~~~~~~~~\n\n")
- f.write(".. code-block:: python\n\n")
-
- f.write(""" from bdkpython import *
- # Create a new wallet
- descriptor = "wpkh(...)" # Your descriptor here
- wallet = Wallet(descriptor, network=Network.TESTNET)
-
- # Sync wallet
- blockchain = Blockchain("https://blockstream.info/testnet/api")
- wallet.sync(blockchain)
-
- # Get balance
- balance = wallet.get_balance()
- print(f"Confirmed balance: {balance.confirmed}")
- """)
-
-if __name__ == '__main__':
- main()
+import re
+
+# Define the directory where the Python source files are located
+src_dir = 'src/bdkpython'
+
+# Define the output file for the API documentation
+output_file = 'docs/api.rst'
+
+# Define categories and corresponding classes
+categories = {
+ "Core Types": ["Amount", "FeeRate", "Address", "Script", "OutPoint"],
+ "Wallet Operations": ["TxBuilder", "BumpFeeTxBuilder", "Psbt", "Blockchain", "ElectrumClient", "EsploraClient", "Wallet"],
+ "Utilities": ["Mnemonic", "Network"],
+ "Exceptions": ["InternalError", "FeeRateError", "ParseAmountError"]
+}
+
+# Regex pattern to match class definitions
+class_pattern = re.compile(r'^class ([A-Za-z][A-Za-z0-9_]*)')
+
+# Scan the source directory for Python files and extract public classes
+public_classes = {}
+for root, _, files in os.walk(src_dir):
+ for file in files:
+ if file.endswith('.py'):
+ with open(os.path.join(root, file), 'r') as f:
+ for line in f:
+ match = class_pattern.match(line)
+ if match:
+ class_name = match.group(1)
+ # Only consider classes not starting with underscore
+ if not class_name.startswith('_'):
+ public_classes[class_name] = root
+
+# Generate the RST content
+rst_content = "API Reference\n============\n\n.. currentmodule:: bdkpython\n\n"
+
+for category, class_list in categories.items():
+ rst_content += f"{category}\n{'-' * len(category)}\n\n"
+ for class_name in class_list:
+ if class_name in public_classes:
+ rst_content += f".. autoclass:: {class_name}\n :members:\n :undoc-members:\n :show-inheritance:\n\n"
+
+# Write the RST content to the output file
+with open(output_file, 'w') as f:
+ f.write(rst_content)
+
+print(f"API documentation has been generated in {output_file}")
\ No newline at end of file