From 3462992960b2d82654303e8c3cede32ce45e0a21 Mon Sep 17 00:00:00 2001 From: Steve Myers Date: Wed, 6 Nov 2024 16:08:36 -0600 Subject: [PATCH] chore: bump kotlin and ndk versions, default rust for python --- .github/workflows/publish-android.yaml | 12 +---- .github/workflows/publish-python.yaml | 32 ++++++++----- .github/workflows/test-android.yaml | 14 +----- .github/workflows/test-python.yaml | 46 +++++++------------ bdk-android/README.md | 12 ++--- bdk-android/gradle.properties | 2 +- bdk-android/lib/build.gradle.kts | 2 +- .../plugins/UniFfiAndroidPlugin.kt | 18 ++++---- bdk-ffi/src/wallet.rs | 14 ++---- bdk-jvm/README.md | 6 +-- bdk-jvm/gradle.properties | 2 +- bdk-jvm/lib/build.gradle.kts | 2 +- bdk-python/scripts/generate-linux.sh | 9 ++-- bdk-python/scripts/generate-macos-arm64.sh | 15 +++--- bdk-python/scripts/generate-macos-x86_64.sh | 12 +++-- bdk-python/scripts/generate-windows.sh | 13 +++--- bdk-python/setup.py | 14 +++--- bdk-python/tests/test_bdk.py | 12 ++--- clippy.toml | 1 + 19 files changed, 108 insertions(+), 130 deletions(-) create mode 100644 clippy.toml diff --git a/.github/workflows/publish-android.yaml b/.github/workflows/publish-android.yaml index a7a22e76..33a7a26d 100644 --- a/.github/workflows/publish-android.yaml +++ b/.github/workflows/publish-android.yaml @@ -2,23 +2,13 @@ name: Publish bdk-android to Maven Central on: [workflow_dispatch] # The default Android NDK on the ubuntu-22.04 image is 25.2.9519653 -# We replace the default environment variable ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/25.2.9519653 -# with an older version of the NDK (21.4.7075529) using the fix proposed here: https://github.com/actions/runner-images/issues/5930 -# For information on why this is needed at the moment see issues #242 and #243, and PR #282 env: - ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/21.4.7075529 + ANDROID_NDK_HOME: /usr/local/lib/android/sdk/ndk/25.2.9519653 jobs: build: runs-on: ubuntu-20.04 steps: - - name: "Install Android NDK 21.4.7075529" - run: | - ANDROID_ROOT=/usr/local/lib/android - ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk - SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager - echo "y" | $SDKMANAGER "ndk;21.4.7075529" - - name: "Check out PR branch" uses: actions/checkout@v3 diff --git a/.github/workflows/publish-python.yaml b/.github/workflows/publish-python.yaml index 35348b32..b56db30b 100644 --- a/.github/workflows/publish-python.yaml +++ b/.github/workflows/publish-python.yaml @@ -7,16 +7,16 @@ on: [workflow_dispatch] # tries to load glibc and fails because it requires a more recent version. jobs: - build-manylinux2014-x86_64-wheels: - name: "Build Manylinux 2014 x86_64 wheel" - runs-on: ubuntu-22.04 + build-manylinux_2_28-x86_64-wheels: + name: "Build Manylinux 2.28 x86_64 wheel" + runs-on: ubuntu-20.04 defaults: run: working-directory: bdk-python container: - image: quay.io/pypa/manylinux2014_x86_64 + image: quay.io/pypa/manylinux_2_28_x86_64 env: - PLAT: manylinux2014_x86_64 + PLAT: manylinux_2_28_x86_64 PYBIN: "/opt/python/${{ matrix.python }}/bin" strategy: matrix: @@ -24,14 +24,18 @@ jobs: - cp38-cp38 - cp39-cp39 - cp310-cp310 + - cp311-cp311 + - cp312-cp312 steps: - name: "Checkout" uses: actions/checkout@v3 with: submodules: true - - uses: actions-rs/toolchain@v1 + + - name: "Install Rust 1.77.1" + uses: actions-rs/toolchain@v1 with: - toolchain: stable + toolchain: 1.77.1 - name: "Generate bdk.py and binaries" run: bash ./scripts/generate-linux.sh @@ -39,11 +43,11 @@ jobs: - name: "Build wheel" # Specifying the plat-name argument is necessary to build a wheel with the correct name, # see issue #350 for more information - run: ${PYBIN}/python setup.py bdist_wheel --plat-name manylinux_2_17_x86_64 --verbose + run: ${PYBIN}/python setup.py bdist_wheel --plat-name manylinux_2_28_x86_64 --verbose - uses: actions/upload-artifact@v3 with: - name: bdkpython-manylinux2014-x86_64-${{ matrix.python }} + name: bdkpython-manylinux_2_28_x86_64-${{ matrix.python }} path: /home/runner/work/bdk-ffi/bdk-ffi/bdk-python/dist/*.whl build-macos-arm64-wheels: @@ -58,6 +62,8 @@ jobs: - "3.8" - "3.9" - "3.10" + - "3.11" + - "3.12" steps: - name: "Checkout" uses: actions/checkout@v3 @@ -95,6 +101,8 @@ jobs: - "3.8" - "3.9" - "3.10" + - "3.11" + - "3.12" steps: - name: "Checkout" uses: actions/checkout@v3 @@ -131,6 +139,8 @@ jobs: - "3.8" - "3.9" - "3.10" + - "3.11" + - "3.12" steps: - name: "Checkout" uses: actions/checkout@v3 @@ -154,11 +164,11 @@ jobs: publish-pypi: name: "Publish on PyPI" - runs-on: ubuntu-22.04 + runs-on: ubuntu-20.04 defaults: run: working-directory: bdk-python - needs: [build-manylinux2014-x86_64-wheels, build-macos-arm64-wheels, build-macos-x86_64-wheels, build-windows-wheels] + needs: [build-manylinux_2_28-x86_64-wheels, build-macos-arm64-wheels, build-macos-x86_64-wheels, build-windows-wheels] steps: - name: "Checkout" uses: actions/checkout@v3 diff --git a/.github/workflows/test-android.yaml b/.github/workflows/test-android.yaml index d15ff9db..1a613546 100644 --- a/.github/workflows/test-android.yaml +++ b/.github/workflows/test-android.yaml @@ -10,24 +10,12 @@ on: - "bdk-ffi/**" - "bdk-android/**" -# The default Android NDK on the ubuntu-22.04 image is 25.2.9519653 -# We replace the default environment variable ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/25.2.9519653 -# with an older version of the NDK (21.4.7075529) using the fix proposed here: https://github.com/actions/runner-images/issues/5930 -# For information on why this is needed at the moment see issues #242 and #243, and PR #282 -env: - ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/21.4.7075529 +# Use the default ANDROID_NDK_ROOT on the ubuntu-20.04 image jobs: build: runs-on: ubuntu-20.04 steps: - - name: "Install Android NDK 21.4.7075529" - run: | - ANDROID_ROOT=/usr/local/lib/android - ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk - SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager - echo "y" | $SDKMANAGER "ndk;21.4.7075529" - - name: "Check out PR branch" uses: actions/checkout@v3 diff --git a/.github/workflows/test-python.yaml b/.github/workflows/test-python.yaml index 51ad9dd4..2e8305bb 100644 --- a/.github/workflows/test-python.yaml +++ b/.github/workflows/test-python.yaml @@ -9,23 +9,17 @@ on: paths: - "bdk-ffi/**" - "bdk-python/**" - -# We use manylinux2014 because older CentOS versions used by 2010 and 1 have a very old glibc version, which -# makes it very hard to use GitHub's javascript actions (checkout, upload-artifact, etc). -# They mount their own nodejs interpreter inside your container, but since that's not statically linked it -# tries to load glibc and fails because it requires a more recent version. - jobs: - build-manylinux2014-x86_64-wheels: - name: "Build and test Manylinux 2014 x86_64 wheels" - runs-on: ubuntu-22.04 + build-manylinux_2_28-x86_64-wheels: + name: "Build and test Manylinux 2.28 x86_64 wheels" + runs-on: ubuntu-20.04 defaults: run: working-directory: bdk-python container: image: quay.io/pypa/manylinux_2_28_x86_64 env: - PLAT: manylinux2014_x86_64 + PLAT: manylinux_2_28_x86_64 PYBIN: "/opt/python/${{ matrix.python }}/bin" strategy: matrix: @@ -33,18 +27,16 @@ jobs: - cp38-cp38 - cp39-cp39 - cp310-cp310 + - cp311-cp311 + - cp312-cp312 steps: - - name: "Setup Node.js" - uses: actions/setup-node@v3 - with: - node-version: '18' - name: "Checkout" uses: actions/checkout@v3 with: submodules: true - uses: actions-rs/toolchain@v1 with: - toolchain: stable + toolchain: 1.77.1 - name: "Generate bdk.py and binaries" run: bash ./scripts/generate-linux.sh @@ -52,7 +44,9 @@ jobs: - name: "Build wheel" # Specifying the plat-name argument is necessary to build a wheel with the correct name, # see issue #350 for more information - run: ${PYBIN}/python setup.py bdist_wheel --plat-name manylinux_2_17_x86_64 --verbose + run: | + ls -la ./src/bdkpython + ${PYBIN}/python setup.py bdist_wheel --plat-name manylinux_2_28_x86_64 --verbose - name: "Install wheel" run: ${PYBIN}/pip install ./dist/*.whl @@ -63,7 +57,7 @@ jobs: - name: "Upload artifact test" uses: actions/upload-artifact@v3 with: - name: bdkpython-manylinux2014-x86_64-${{ matrix.python }} + name: bdkpython-manylinux_2_28_x86_64-${{ matrix.python }} path: /home/runner/work/bdk-ffi/bdk-ffi/bdk-python/dist/*.whl build-macos-arm64-wheels: @@ -78,11 +72,9 @@ jobs: - "3.8" - "3.9" - "3.10" + - "3.11" + - "3.12" steps: - - name: "Setup Node.js" - uses: actions/setup-node@v3 - with: - node-version: '18' - name: "Checkout" uses: actions/checkout@v3 with: @@ -125,11 +117,9 @@ jobs: - "3.8" - "3.9" - "3.10" + - "3.11" + - "3.12" steps: - - name: "Setup Node.js" - uses: actions/setup-node@v3 - with: - node-version: '18' - name: "Checkout" uses: actions/checkout@v3 with: @@ -170,11 +160,9 @@ jobs: - "3.8" - "3.9" - "3.10" + - "3.11" + - "3.12" steps: - - name: "Setup Node.js" - uses: actions/setup-node@v3 - with: - node-version: '18' - name: "Checkout" uses: actions/checkout@v3 with: diff --git a/bdk-android/README.md b/bdk-android/README.md index d8c304a9..726f7d5f 100644 --- a/bdk-android/README.md +++ b/bdk-android/README.md @@ -48,17 +48,17 @@ dependencies { * [Padawan Wallet](https://github.com/thunderbiscuit/padawan-wallet) ### How to build -_Note that Kotlin version `1.6.10` or later is required to build the library._ +_Note that Kotlin version `1.9.23` or later is required to build the library._ 1. Clone this repository. ```shell git clone https://github.com/bitcoindevkit/bdk-ffi ``` 2. Follow the "General" bdk-ffi ["Getting Started (Developer)"] instructions. -3. Install Rust (note that we are currently building using Rust 1.67.0): +3. Install Rust (note that we are currently building using Rust stable): ```shell curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -rustup default 1.67.0 +rustup default stable ``` 4. Install required targets ```sh @@ -66,10 +66,10 @@ rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-android ``` 5. Install Android SDK and Build-Tools for API level 30+ 6. Setup `$ANDROID_SDK_ROOT` and `$ANDROID_NDK_ROOT` path variables (which are required by the - build tool), for example (note that currently, NDK version 21.4.7075529 is required): + build tool), for example (note that currently, NDK version 25.2.9519653 is required): ```shell -export ANDROID_SDK_ROOT=~/Android/Sdk -export ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/21.4.7075529 +export ANDROID_SDK_ROOT=/usr/local/lib/android/sdk +export ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/25.2.9519653 ``` 7. Build kotlin bindings ```sh diff --git a/bdk-android/gradle.properties b/bdk-android/gradle.properties index eb792a10..7c7cf8eb 100644 --- a/bdk-android/gradle.properties +++ b/bdk-android/gradle.properties @@ -2,4 +2,4 @@ org.gradle.jvmargs=-Xmx1536m android.useAndroidX=true android.enableJetifier=true kotlin.code.style=official -libraryVersion=0.31.2 +libraryVersion=0.32.0 diff --git a/bdk-android/lib/build.gradle.kts b/bdk-android/lib/build.gradle.kts index 534930be..f194df7e 100644 --- a/bdk-android/lib/build.gradle.kts +++ b/bdk-android/lib/build.gradle.kts @@ -5,7 +5,7 @@ val libraryVersion: String by project plugins { id("com.android.library") - id("org.jetbrains.kotlin.android") version "1.6.10" + id("org.jetbrains.kotlin.android") version "1.9.23" id("maven-publish") id("signing") diff --git a/bdk-android/plugins/src/main/kotlin/org/bitcoindevkit/plugins/UniFfiAndroidPlugin.kt b/bdk-android/plugins/src/main/kotlin/org/bitcoindevkit/plugins/UniFfiAndroidPlugin.kt index 20200864..cd8085d6 100644 --- a/bdk-android/plugins/src/main/kotlin/org/bitcoindevkit/plugins/UniFfiAndroidPlugin.kt +++ b/bdk-android/plugins/src/main/kotlin/org/bitcoindevkit/plugins/UniFfiAndroidPlugin.kt @@ -36,10 +36,10 @@ internal class UniFfiAndroidPlugin : Plugin { environment( // add build toolchain to PATH Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"), - Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=21"), + Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=24"), Pair("AR", "llvm-ar"), - Pair("CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER", "aarch64-linux-android21-clang"), - Pair("CC", "aarch64-linux-android21-clang") + Pair("CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER", "aarch64-linux-android24-clang"), + Pair("CC", "aarch64-linux-android24-clang") ) doLast { @@ -66,10 +66,10 @@ internal class UniFfiAndroidPlugin : Plugin { environment( // add build toolchain to PATH Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"), - Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=21"), + Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=24"), Pair("AR", "llvm-ar"), - Pair("CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER", "x86_64-linux-android21-clang"), - Pair("CC", "x86_64-linux-android21-clang") + Pair("CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER", "x86_64-linux-android24-clang"), + Pair("CC", "x86_64-linux-android24-clang") ) doLast { @@ -96,10 +96,10 @@ internal class UniFfiAndroidPlugin : Plugin { environment( // add build toolchain to PATH Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"), - Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=21"), + Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=24"), Pair("AR", "llvm-ar"), - Pair("CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER", "armv7a-linux-androideabi21-clang"), - Pair("CC", "armv7a-linux-androideabi21-clang") + Pair("CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER", "armv7a-linux-androideabi24-clang"), + Pair("CC", "armv7a-linux-androideabi24-clang") ) doLast { diff --git a/bdk-ffi/src/wallet.rs b/bdk-ffi/src/wallet.rs index 3019bcbc..ec472ff8 100644 --- a/bdk-ffi/src/wallet.rs +++ b/bdk-ffi/src/wallet.rs @@ -606,13 +606,13 @@ mod test { assert_eq!(psbt.inputs.len(), 1); let input_value = psbt .inputs - .get(0) + .first() .cloned() .unwrap() .non_witness_utxo .unwrap() .output - .get(0) + .first() .unwrap() .value; assert_eq!(input_value, 50_000_u64); @@ -620,13 +620,7 @@ mod test { // confirm one output to correct address with all sats - fee assert_eq!(psbt.outputs.len(), 1); let output_address = Address::from_script( - &psbt - .unsigned_tx - .output - .get(0) - .cloned() - .unwrap() - .script_pubkey, + &psbt.unsigned_tx.output.first().unwrap().script_pubkey, Network::Testnet.into(), ) .unwrap(); @@ -636,7 +630,7 @@ mod test { .unwrap() .assume_checked() ); - let output_value = psbt.unsigned_tx.output.get(0).cloned().unwrap().value; + let output_value = psbt.unsigned_tx.output.first().cloned().unwrap().value; assert_eq!(output_value, 49_890_u64); // input - fee assert_eq!( diff --git a/bdk-jvm/README.md b/bdk-jvm/README.md index 8a282475..8d2720d2 100644 --- a/bdk-jvm/README.md +++ b/bdk-jvm/README.md @@ -47,17 +47,17 @@ dependencies { * [Tatooine Faucet](https://github.com/thunderbiscuit/tatooine) ## How to build -_Note that Kotlin version `1.6.10` or later is required to build the library._ +_Note that Kotlin version `1.9.23` or later is required to build the library._ 1. Install JDK 11. It must be version 11 (not 17), otherwise it won't build. For example, with SDKMAN!: ```shell curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install java 11.0.19-tem ``` -2. Install Rust (note that we are currently building using Rust 1.67.0): +2. Install Rust (note that we are currently building using Rust stable): ```shell curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -rustup default 1.67.0 +rustup default stable ``` 3. Clone this repository. ```shell diff --git a/bdk-jvm/gradle.properties b/bdk-jvm/gradle.properties index fc6762f8..39208910 100644 --- a/bdk-jvm/gradle.properties +++ b/bdk-jvm/gradle.properties @@ -1,4 +1,4 @@ org.gradle.jvmargs=-Xmx1536m android.enableJetifier=true kotlin.code.style=official -libraryVersion=0.31.2 +libraryVersion=0.32.0 diff --git a/bdk-jvm/lib/build.gradle.kts b/bdk-jvm/lib/build.gradle.kts index 31534ab6..9feaf365 100644 --- a/bdk-jvm/lib/build.gradle.kts +++ b/bdk-jvm/lib/build.gradle.kts @@ -6,7 +6,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile val libraryVersion: String by project plugins { - id("org.jetbrains.kotlin.jvm") version "1.6.10" + id("org.jetbrains.kotlin.jvm") version "1.9.23" id("java-library") id("maven-publish") id("signing") diff --git a/bdk-python/scripts/generate-linux.sh b/bdk-python/scripts/generate-linux.sh index 1e4eebe6..a09b77d3 100644 --- a/bdk-python/scripts/generate-linux.sh +++ b/bdk-python/scripts/generate-linux.sh @@ -4,15 +4,16 @@ set -euo pipefail ${PYBIN}/python --version ${PYBIN}/pip install -r requirements.txt -echo "Generating bdk.py..." cd ../bdk-ffi/ -cargo run --bin uniffi-bindgen generate src/bdk.udl --language python --out-dir ../bdk-python/src/bdkpython/ --no-format +rustup default 1.77.1 echo "Generating native binaries..." -rustup default 1.67.0 cargo build --profile release-smaller +echo "Generating bdk.py..." +cargo run --bin uniffi-bindgen generate --library ../target/release-smaller/libbdkffi.so --language python --out-dir ../bdk-python/src/bdkpython/ --no-format + echo "Copying linux libbdkffi.so..." cp ../target/release-smaller/libbdkffi.so ../bdk-python/src/bdkpython/libbdkffi.so -echo "All done!" +echo "All done!" \ No newline at end of file diff --git a/bdk-python/scripts/generate-macos-arm64.sh b/bdk-python/scripts/generate-macos-arm64.sh index 87a8c356..829f131e 100644 --- a/bdk-python/scripts/generate-macos-arm64.sh +++ b/bdk-python/scripts/generate-macos-arm64.sh @@ -2,18 +2,21 @@ set -euo pipefail python3 --version -pip install --user -r requirements.txt +pip install -r requirements.txt -echo "Generating bdk.py..." cd ../bdk-ffi/ -cargo run --bin uniffi-bindgen generate src/bdk.udl --language python --out-dir ../bdk-python/src/bdkpython/ --no-format +rustup default 1.77.1 +rustup target add aarch64-apple-darwin echo "Generating native binaries..." -rustup default 1.67.0 -rustup target add aarch64-apple-darwin cargo build --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 ../bdk-python/src/bdkpython/ --no-format + +ls -la ../bdk-python/src/bdkpython/ + echo "Copying libraries libbdkffi.dylib..." cp ../target/aarch64-apple-darwin/release-smaller/libbdkffi.dylib ../bdk-python/src/bdkpython/libbdkffi.dylib -echo "All done!" +echo "All done!" \ No newline at end of file diff --git a/bdk-python/scripts/generate-macos-x86_64.sh b/bdk-python/scripts/generate-macos-x86_64.sh index 07788daf..23461c66 100644 --- a/bdk-python/scripts/generate-macos-x86_64.sh +++ b/bdk-python/scripts/generate-macos-x86_64.sh @@ -2,17 +2,19 @@ set -euo pipefail python3 --version -pip install --user -r requirements.txt +pip install -r requirements.txt -echo "Generating bdk.py..." cd ../bdk-ffi/ -cargo run --bin uniffi-bindgen generate src/bdk.udl --language python --out-dir ../bdk-python/src/bdkpython/ --no-format +rustup default 1.77.1 +rustup target add x86_64-apple-darwin echo "Generating native binaries..." -rustup target add x86_64-apple-darwin cargo build --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 ../bdk-python/src/bdkpython/ --no-format + echo "Copying libraries libbdkffi.dylib..." cp ../target/x86_64-apple-darwin/release-smaller/libbdkffi.dylib ../bdk-python/src/bdkpython/libbdkffi.dylib -echo "All done!" +echo "All done!" \ No newline at end of file diff --git a/bdk-python/scripts/generate-windows.sh b/bdk-python/scripts/generate-windows.sh index 16ec0aba..e803362d 100644 --- a/bdk-python/scripts/generate-windows.sh +++ b/bdk-python/scripts/generate-windows.sh @@ -2,18 +2,19 @@ set -euo pipefail python3 --version -pip install --user -r requirements.txt +pip install -r requirements.txt -echo "Generating bdk.py..." cd ../bdk-ffi/ -cargo run --bin uniffi-bindgen generate src/bdk.udl --language python --out-dir ../bdk-python/src/bdkpython/ --no-format +rustup default 1.77.1 +rustup target add x86_64-pc-windows-msvc echo "Generating native binaries..." -rustup default 1.67.0 -rustup target add x86_64-pc-windows-msvc cargo build --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 ../bdk-python/src/bdkpython/ --no-format + echo "Copying libraries bdkffi.dll..." cp ../target/x86_64-pc-windows-msvc/release-smaller/bdkffi.dll ../bdk-python/src/bdkpython/bdkffi.dll -echo "All done!" +echo "All done!" \ No newline at end of file diff --git a/bdk-python/setup.py b/bdk-python/setup.py index ceb1e670..6113b369 100644 --- a/bdk-python/setup.py +++ b/bdk-python/setup.py @@ -19,12 +19,12 @@ db_config = bdk.DatabaseConfig.MEMORY() blockchain_config = bdk.BlockchainConfig.ELECTRUM( bdk.ElectrumConfig( - "ssl://electrum.blockstream.info:60002", - None, - 5, - None, - 100, - True, + url = "ssl://electrum.blockstream.info:60002", + socks5 = None, + retry = 5, + timeout = None, + stop_gap = 100, + validate_domain = True, ) ) blockchain = bdk.Blockchain(blockchain_config) @@ -51,7 +51,7 @@ setup( name="bdkpython", - version="0.31.2", + version="0.32.0", description="The Python language bindings for the Bitcoin Development Kit", long_description=LONG_DESCRIPTION, long_description_content_type="text/markdown", diff --git a/bdk-python/tests/test_bdk.py b/bdk-python/tests/test_bdk.py index a5d2edd2..6078e908 100644 --- a/bdk-python/tests/test_bdk.py +++ b/bdk-python/tests/test_bdk.py @@ -6,12 +6,12 @@ db_config = bdk.DatabaseConfig.MEMORY() blockchain_config = bdk.BlockchainConfig.ELECTRUM( bdk.ElectrumConfig( - "ssl://electrum.blockstream.info:60002", - None, - 5, - None, - 100, - True, + url = "ssl://electrum.blockstream.info:60002", + socks5 = None, + retry = 5, + timeout = None, + stop_gap = 100, + validate_domain = True, ) ) blockchain = bdk.Blockchain(blockchain_config) diff --git a/clippy.toml b/clippy.toml new file mode 100644 index 00000000..7369b4e4 --- /dev/null +++ b/clippy.toml @@ -0,0 +1 @@ +msrv="1.77.1"