Upgrade library to bdk-ffi 0.6.0

This commit is contained in:
thunderbiscuit 2022-05-11 16:02:49 -04:00
parent cc730b00b2
commit 3ae2f48846
No known key found for this signature in database
GPG Key ID: 88253696EB836462
4 changed files with 56 additions and 55 deletions

View File

@ -17,7 +17,7 @@ pip3 install --requirement requirements.txt
bash ./generate.sh
python3 setup.py --verbose bdist_wheel
pip3 install ./dist/bdkpython-<yourversion>-py3-none-any.whl
python3 ./tests/test_bdk.py
python -m unittest --verbose tests/test_bdk.py
```
<br/>

View File

@ -7,4 +7,5 @@ PY_SRC="${SCRIPT_DIR}/src/bdkpython/"
echo "Generating bdk.py..."
# GENERATE_PYTHON_BINDINGS_OUT="$PY_SRC" GENERATE_PYTHON_BINDINGS_FIXUP_LIB_PATH=bdkffi cargo run --manifest-path ./bdk-ffi/Cargo.toml --release --bin generate --features generate-python
BDKFFI_BINDGEN_PYTHON_FIXUP_PATH=bdkffi cargo run --manifest-path ./bdk-ffi/Cargo.toml --package bdk-ffi-bindgen -- --language python --udl-file ./bdk-ffi/src/bdk.udl --out-dir ./src/bdkpython/
# BDKFFI_BINDGEN_PYTHON_FIXUP_PATH=bdkffi cargo run --manifest-path ./bdk-ffi/Cargo.toml --package bdk-ffi-bindgen -- --language python --udl-file ./bdk-ffi/src/bdk.udl --out-dir ./src/bdkpython/
BDKFFI_BINDGEN_OUTPUT_DIR="$PY_SRC" BDKFFI_BINDGEN_PYTHON_FIXUP_PATH=bdkffi cargo run --manifest-path ./bdk-ffi/Cargo.toml --package bdk-ffi-bindgen -- --language python --udl-file ./bdk-ffi/src/bdk.udl

View File

@ -18,24 +18,24 @@ pip install bdkpython
import bdkpython as bdk
descriptor = "wpkh(tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy/84h/1h/0h/0/*)"
config = bdk.DatabaseConfig.MEMORY("")
client = bdk.BlockchainConfig.ELECTRUM(
bdk.ElectrumConfig(
"ssl://electrum.blockstream.info:60002",
None,
5,
None,
100
)
)
descriptor = "wpkh(tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy/84h/0h/0h/0/*)"
db_config = bdk.DatabaseConfig.MEMORY()
blockchain_config = bdk.BlockchainConfig.ELECTRUM(
bdk.ElectrumConfig(
"ssl://electrum.blockstream.info:60002",
None,
5,
None,
100
)
)
blockchain = bdk.Blockchain(blockchain_config)
wallet = bdk.Wallet(
descriptor=descriptor,
change_descriptor=descriptor,
change_descriptor=None,
network=bdk.Network.TESTNET,
database_config=config,
blockchain_config=client
database_config=db_config,
)
# print new receive address
@ -44,11 +44,7 @@ print(f"New BIP84 testnet address: {address}")
# print wallet balance
class LogProgress(bdk.BdkProgress):
def update(self, progress, update):
pass
wallet.sync(progress_update=LogProgress(), max_address_param=20)
wallet.sync(blockchain, None)
balance = wallet.get_balance()
print(f"Wallet balance is: {balance}")
"""
@ -61,7 +57,7 @@ rust_ext = RustExtension(
setup(
name='bdkpython',
version = '0.0.6.dev',
version = '0.1.0.dev',
description="The Python language bindings for the bitcoindevkit",
long_description=LONG_DESCRIPTION,
long_description_content_type='text/markdown',

View File

@ -1,42 +1,46 @@
import bdkpython as bdk
import unittest
# taken from bdk test suite @ https://github.com/bitcoindevkit/bdk/blob/master/src/descriptor/template.rs#L676
descriptor = "wpkh(tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy/84h/0h/0h/0/*)"
db_config = bdk.DatabaseConfig.MEMORY()
client = bdk.BlockchainConfig.ELECTRUM(
bdk.ElectrumConfig(
"ssl://electrum.blockstream.info:60002",
None,
5,
None,
100
)
)
def test_address_bip84_testnet():
wallet = bdk.Wallet(
descriptor=descriptor,
change_descriptor=None,
network=bdk.Network.TESTNET,
database_config=db_config
blockchain_config = bdk.BlockchainConfig.ELECTRUM(
bdk.ElectrumConfig(
"ssl://electrum.blockstream.info:60002",
None,
5,
None,
100
)
address = wallet.get_new_address()
print(f"New address is {address}")
assert address == "tb1qkmvk2nadgplmd57ztld8nf8v2yxkzmdvvztyse"
)
blockchain = bdk.Blockchain(blockchain_config)
test_address_bip84_testnet()
class TestSimpleBip84Wallet(unittest.TestCase):
# def test_wallet_balance():
# wallet = bdk.OnlineWallet(
# descriptor=descriptor,
# change_descriptor=descriptor,
# network=bdk.Network.TESTNET,
# database_config=config,
# blockchain_config=client
# )
# wallet.sync()
# balance = wallet.get_balance()
# assert balance > 0
def test_address_bip84_testnet(self):
wallet = bdk.Wallet(
descriptor=descriptor,
change_descriptor=None,
network=bdk.Network.TESTNET,
database_config=db_config
)
address = wallet.get_new_address()
# print(f"New address is {address}")
assert address == "tb1qkmvk2nadgplmd57ztld8nf8v2yxkzmdvvztyse", f"Wrong address {address}, should be tb1qkmvk2nadgplmd57ztld8nf8v2yxkzmdvvztyse"
def test_wallet_balance(self):
wallet = bdk.Wallet(
descriptor=descriptor,
change_descriptor=None,
network=bdk.Network.TESTNET,
database_config=db_config,
)
wallet.sync(blockchain, None)
balance = wallet.get_balance()
# print(f"Balance is {balance} sat")
assert balance > 0, "Balance is 0, send testnet coins to tb1qkmvk2nadgplmd57ztld8nf8v2yxkzmdvvztyse"
if __name__ == '__main__':
unittest.main()