Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/test-bdk-ffi-latest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
key: ${{ runner.os }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }}

- name: "Generate bdk.py and binaries"
run: bash ./scripts/generate-linux.sh
run: bash ./scripts/generate-linux.sh --skip-submodule-update

- name: "Build wheel"
run: UV_PYTHON=${PYBIN}/python uv build --wheel --config-setting=--build-option=--plat-name=manylinux_2_28_x86_64 --verbose
Expand Down Expand Up @@ -107,7 +107,7 @@ jobs:
python-version: ${{ matrix.python }}

- name: "Generate bdk.py and binaries"
run: bash ./scripts/generate-macos-arm64.sh
run: bash ./scripts/generate-macos-arm64.sh --skip-submodule-update

- name: "Build wheel"
# Specifying the plat-name argument is necessary to build a wheel with the correct name,
Expand Down Expand Up @@ -157,7 +157,7 @@ jobs:
python-version: ${{ matrix.python }}

- name: "Generate bdk.py and binaries"
run: bash ./scripts/generate-macos-x86_64.sh
run: bash ./scripts/generate-macos-x86_64.sh --skip-submodule-update

- name: "Build wheel"
run: uv build --wheel --config-setting=--build-option=--plat-name=macosx_11_0_x86_64 --verbose
Expand Down Expand Up @@ -206,7 +206,7 @@ jobs:
python-version: ${{ matrix.python }}

- name: "Generate bdk.py and binaries"
run: bash ./scripts/generate-windows.sh
run: bash ./scripts/generate-windows.sh --skip-submodule-update

- name: "Build wheel"
run: uv build --wheel --verbose
Expand Down
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,19 @@ This repository uses the bdk-ffi repository as a git submodule. Here are useful

## Local Testing and Usage

1. Sync dependencies with `uv`
2. Run one of the build script
1. Run one of the build script (skip the submodule update if you are making local changes to the bdk-ffi submodule)
2. Sync dependencies with `uv`
3. Create the wheel
4. Install the library
5. Run the tests

```sh
uv sync
# If you made changes to the bdk-ffi submodule and wish to use those instead of the committed hash
bash scripts/generate-macos-arm64.sh --skip-submodule-update
# Otherwise
bash scripts/generate-macos-arm64.sh

uv sync
uv build --wheel -v
uv pip install ./dist/bdkpython-<yourversion>.whl --force-reinstall
uv run python -m unittest --verbose
Expand Down
2 changes: 1 addition & 1 deletion bdk-ffi
Submodule bdk-ffi updated 65 files
+10 −10 .github/ISSUE_TEMPLATE/bug_report.md
+4 −4 .github/ISSUE_TEMPLATE/enhancement_request.md
+17 −12 .github/ISSUE_TEMPLATE/release.md
+39 −39 .github/ISSUE_TEMPLATE/summer_project.md
+9 −1 .github/pull_request_template.md
+20 −0 .github/release.yml
+0 −38 .github/workflows/android-api-docs.yaml
+1 −1 .github/workflows/audit.yaml
+58 −0 .github/workflows/changelog-label.yaml
+24 −0 .github/workflows/diff-check.yaml
+0 −29 .github/workflows/live-tests.yaml
+0 −45 .github/workflows/publish-android.yaml
+17 −0 .github/workflows/test-android.yaml
+1 −1 .github/workflows/test-swift.yaml
+2 −2 .github/workflows/trigger-external-bindings.yml
+76 −26 CHANGELOG.md
+24 −16 DEVELOPMENT_CYCLE.md
+9 −9 README.md
+2 −13 bdk-android/README.md
+1 −1 bdk-android/build.gradle.kts
+2 −1 bdk-android/lib/build.gradle.kts
+10 −0 bdk-android/lib/src/androidTest/assets/README.md
+ bdk-android/lib/src/androidTest/assets/wallet_pre_v1.sqlite3
+79 −0 bdk-android/lib/src/androidTest/kotlin/org/bitcoindevkit/CbfSyncTest.kt
+9 −7 bdk-android/lib/src/androidTest/kotlin/org/bitcoindevkit/Constants.kt
+2 −2 bdk-android/lib/src/androidTest/kotlin/org/bitcoindevkit/CreatingWalletTest.kt
+129 −33 bdk-android/lib/src/androidTest/kotlin/org/bitcoindevkit/DescriptorTest.kt
+55 −0 bdk-android/lib/src/androidTest/kotlin/org/bitcoindevkit/EsploraClientTest.kt
+53 −2 bdk-android/lib/src/androidTest/kotlin/org/bitcoindevkit/MnemonicTest.kt
+37 −2 bdk-android/lib/src/androidTest/kotlin/org/bitcoindevkit/PersistenceTest.kt
+1 −1 bdk-android/scripts/dev/build-dev-macos-aarch64.sh
+1 −1 bdk-android/scripts/release/build-release-linux-x86_64.sh
+1 −1 bdk-android/scripts/release/build-release-macos-aarch64.sh
+1 −1 bdk-android/scripts/release/build-release-windows-x86_64.sh
+159 −194 bdk-ffi/Cargo.lock
+3 −3 bdk-ffi/Cargo.toml
+4 −0 bdk-ffi/justfile
+20 −0 bdk-ffi/scripts/build-docs.sh
+15 −0 bdk-ffi/scripts/deploy-docs.sh
+11 −2 bdk-ffi/src/bitcoin.rs
+321 −24 bdk-ffi/src/descriptor.rs
+9 −3 bdk-ffi/src/electrum.rs
+44 −1 bdk-ffi/src/error.rs
+1 −1 bdk-ffi/src/esplora.rs
+94 −7 bdk-ffi/src/keys.rs
+45 −22 bdk-ffi/src/kyoto.rs
+45 −2 bdk-ffi/src/store.rs
+5 −24 bdk-ffi/src/tests/bitcoin.rs
+18 −31 bdk-ffi/src/tests/descriptor.rs
+77 −17 bdk-ffi/src/tests/keys.rs
+1 −0 bdk-ffi/src/tests/mod.rs
+64 −3 bdk-ffi/src/tests/tx_builder.rs
+107 −0 bdk-ffi/src/tests/wallet.rs
+155 −9 bdk-ffi/src/tx_builder.rs
+114 −6 bdk-ffi/src/types.rs
+111 −10 bdk-ffi/src/wallet.rs
+4 −4 bdk-swift/README.md
+2 −2 bdk-swift/Tests/BitcoinDevKitTests/LiveElectrumClientTests.swift
+2 −2 bdk-swift/Tests/BitcoinDevKitTests/LiveMemoryWalletTests.swift
+3 −3 bdk-swift/Tests/BitcoinDevKitTests/LiveTransactionTests.swift
+2 −2 bdk-swift/Tests/BitcoinDevKitTests/LiveTxBuilderTests.swift
+4 −4 bdk-swift/Tests/BitcoinDevKitTests/LiveWalletTests.swift
+44 −2 bdk-swift/Tests/BitcoinDevKitTests/OfflineDescriptorTests.swift
+9 −9 bdk-swift/Tests/BitcoinDevKitTests/OfflinePersistenceTests.swift
+6 −6 bdk-swift/Tests/BitcoinDevKitTests/OfflineWalletTests.swift
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "bdkpython"
version = "2.4.0.dev0"
version = "3.0.0a0"
description = "The Python language bindings for the Bitcoin Development Kit"
readme = "README.md"
requires-python = ">=3.10"
Expand Down
11 changes: 8 additions & 3 deletions scripts/generate-linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,18 @@
set -euo pipefail

printf "\nSubmodule check...\n"
git submodule update --init
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
if [[ "${1:-}" != "--skip-submodule-update" ]]; then
git submodule update --init
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
else
printf "Skipping submodule update, using local changes.\n"
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
fi

cd ./bdk-ffi/bdk-ffi/

echo "Generating native binaries..."
cargo build --profile release-smaller
cargo build --locked --profile release-smaller

echo "Generating bdk.py..."
cargo run --bin uniffi-bindgen generate --library ./target/release-smaller/libbdkffi.so --language python --out-dir ../../src/bdkpython/ --no-format
Expand Down
11 changes: 8 additions & 3 deletions scripts/generate-macos-arm64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,20 @@
set -euo pipefail

printf "\nSubmodule check...\n"
git submodule update --init
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
if [[ "${1:-}" != "--skip-submodule-update" ]]; then
git submodule update --init
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
else
printf "Skipping submodule update, using local changes.\n"
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
fi

cd ./bdk-ffi/bdk-ffi/

rustup target add aarch64-apple-darwin

echo "Generating native binaries..."
cargo build --profile release-smaller --target aarch64-apple-darwin
cargo build --locked --profile release-smaller --target aarch64-apple-darwin

echo "Generating bdk.py..."
cargo run --bin uniffi-bindgen generate --library ./target/aarch64-apple-darwin/release-smaller/libbdkffi.dylib --language python --out-dir ../../src/bdkpython/ --no-format
Expand Down
11 changes: 8 additions & 3 deletions scripts/generate-macos-x86_64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,20 @@
set -euo pipefail

printf "\nSubmodule check...\n"
git submodule update --init
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
if [[ "${1:-}" != "--skip-submodule-update" ]]; then
git submodule update --init
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
else
printf "Skipping submodule update, using local changes.\n"
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
fi

cd ./bdk-ffi/bdk-ffi/

rustup target add x86_64-apple-darwin

echo "Generating native binaries..."
cargo build --profile release-smaller --target x86_64-apple-darwin
cargo build --locked --profile release-smaller --target x86_64-apple-darwin

echo "Generating bdk.py..."
cargo run --bin uniffi-bindgen generate --library ./target/x86_64-apple-darwin/release-smaller/libbdkffi.dylib --language python --out-dir ../../src/bdkpython/ --no-format
Expand Down
11 changes: 8 additions & 3 deletions scripts/generate-windows.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,20 @@
set -euo pipefail

printf "\nSubmodule check...\n"
git submodule update --init
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
if [[ "${1:-}" != "--skip-submodule-update" ]]; then
git submodule update --init
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
else
printf "Skipping submodule update, using local changes.\n"
printf "Submodule is checked out at commit: $(git submodule status)\n\n"
fi

cd ./bdk-ffi/bdk-ffi/

rustup target add x86_64-pc-windows-msvc

echo "Generating native binaries..."
cargo build --profile release-smaller --target x86_64-pc-windows-msvc
cargo build --locked --profile release-smaller --target x86_64-pc-windows-msvc

echo "Generating bdk.py..."
cargo run --bin uniffi-bindgen generate --library ./target/x86_64-pc-windows-msvc/release-smaller/bdkffi.dll --language python --out-dir ../../src/bdkpython/ --no-format
Expand Down
Loading
Loading