diff --git a/README.md b/README.md index 12baad9..0e258a1 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ pip3 install --requirement requirements.txt bash ./generate.sh python3 setup.py --verbose bdist_wheel pip3 install ./dist/bdkpython--py3-none-any.whl -python3 ./tests/test_bdk.py +python -m unittest --verbose tests/test_bdk.py ```
diff --git a/generate.sh b/generate.sh index d222d2d..fe1bd45 100644 --- a/generate.sh +++ b/generate.sh @@ -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 diff --git a/setup.py b/setup.py index 2619c8e..b2a68b1 100644 --- a/setup.py +++ b/setup.py @@ -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', diff --git a/tests/test_bdk.py b/tests/test_bdk.py index 68d9a1f..6259c97 100644 --- a/tests/test_bdk.py +++ b/tests/test_bdk.py @@ -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()