Bitcoindevkit Language Bindings Dev Calls 2022
This post is the collection of all dev calls agendas for the Bitcoin Development Kit language bindings in 2022. I host the call every second week on the BDK Discord voice channel. The live pages for these calls lives here on HackMD, but this page is a way to archive them and keep these call agendas public without relying on my keeping an active HackMD subscription.
May 3, 2022
📅 May 3, 2022 20:00 UTC
📍 Discord General Voice Channel
Discussion Items
- JVM and Android API docs added to bitcoindevkit.org :book:
- Tests in bdk-ffi and tests in language bindings libraries :male-scientist:
- Summer of Bitcoin students (Peter and Drhuv) and projects :sunny:
- Docs: let’s get these moving (#97) :book:
- Useful pages for devs and maintainers :nerd_face:
- bdk-android dropped support fo
i686
(x86) (issue) - WASM
- Java interop tips page
- New release schedule :calendar:
- Any review begs? :pray:
- Blockers? 🪨
- Time (potential new time 2pm UTC) :watch:
Dependent Projects and Support
- Potential Python project (custom coin selection) @notmandatory
- Caravan @notmandatory
- bdk-rn BitcoinZavior
- Java server AlexSeverin
Top Issues and PRs
FFI -> #149: Upgrade to BDK 0.18.0 FFI -> #150 Add new BumpFeeTxBuilder interface FFI -> #137: Expose address index Kotlin -> #37: Add Gradle Plugins Kotlin -> #54: Upgrade to bdk-ffi 0.6.0 Kotlin -> #47: Determine best approach for Java interop Docs -> #96 Add API docs to website
Boards
FFI project board
Kotlin project board
Swift project board
Python project board
May 17, 2022
📅 May 17, 2022 14:00 UTC
📍 Discord General Voice Channel
Discussion Items
- bdk-ffi
0.6.0
released! 🎉 - bdk-kotlin
0.6.0
released 🎉 - bdk-swift
0.3.0
released 🎉 - BDK/LDK iOS wallet @danielnordh
- Support for
x86
on bdk-android - How can we help the React Native library?
- “Live docs/office hours” idea
- Can we clean up and keep alive the iOS version of Devkit Wallet? Should we try and bring it as an official example?
- Any review begs? :pray:
- Blockers? 🪨
Dependent Projects and Support
- Lava Wallet @MarediaShehzan and @lava_xyz
- DailyWallet (GitHub)
Top Issues and PRs
- Add child key pair generation api (bdk-ffi #154)
- Update library to new bdk-ffi API version 0.6.0 (bdk-python #18)
- BDKSwiftExample PR #5
- Add address index to return type of
get_address
(bdk-ffi #137) - Add OP_RETURN (bdk-ffi issue #132)
- Add functions to get current block height and hash (bdk-ffi issue #151)
May 31, 2022
📅 May 31, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- Next bdk-ffi,kotlin,swift releases
- Any review begs? :pray:
- Blockers? 🪨
Dependent Projects and Support
- Lava Wallet @MarediaShehzan and @lava_xyz
- bdk-rn @BitcoinZavior
- Requested features: coin selection, BIP157/158 CBF blockchain
- Investigating: direct ffi interface for JS/TS for flutter, how to keep packaging small
Top Issues and PRs
- Add api to generate child keys from master key, bdk-ffi #87
- Consider adding some of the code samples from BDKSwiftExample in the readme, bdk-swift #17
- Building with bdk-swift for “Any Mac” target fails, bdk-swift #18
June 14, 2022
📅 June 14, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- “Following” the LDK announcement Discord channel
-
0.5.1
to0.7.0
migration guide - Following the BDK release schedule (should we start with
0.20.0
?) - Version
0.7.0
of bdk-ffi should be ready this week - @thunderbiscuit working on indentifying APIs required in the bindings to fully interoperate with ldk-java (ldk-swift uses different bindings and so might have slightly different requirements)
- Type-safe descriptor builder?
- Any review begs? :pray:
- Blockers? 🪨
Dependent Projects and Support
- Hardware project
- Kldk Node (Kotlin Lightning node built with LDK)
- RGB
- React-native/Flutter
- Bull Bitcoin
Top Issues and PRs
- MERGED: #162 Update BDK to version 0.19.0
- MERGED: #161 Match bdk API and return a boolean when signing a PSBT
- OPEN: #148 Add Wallet and TxBuilder tests using test funded wallet
- OPEN: #154 Add child key pair generation api
- OPEN: #158 Add list_unspent method
- OPEN: #164 Add coin selection methods
June 28, 2022
📅 June 28, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- bdk-kotlin
0.7.0
and bdk-swift0.4.0
are out! :tada: - FFI
0.7.0
brings in a ton of new stuff:- Send to multiple recipients
- “Send all” functionality with
drain_wallet()
anddrain_to()
- Replace-by-Fee
- Partial signatures on PSBTs
- Separate blockchain from wallet
- Taproot!!
- Uniffi-rs moving to macros to build bindings (see ya UDL file!)
- Supporting tests and examples for Kotlin (looking for a Swift version)
- Suspending API docs for bdk-kotlin and bdk-jvm, writing migration guides
- We’ll try and follow bdk releases for the next FFI release (
0.20.0
released on 13th of July, FFI coming out on the week of the 20th) - I’d like to organize a hacking session for bdk-rn and bdk-flutter (maybe separate sessions?)
- WASM
- Any review begs? :pray:
- Blockers? 🪨
Dependent Projects and Support
Top Issues and PRs
(ffi) MERGED: Add OP_RETURN to TxBuilder (ffi) OPEN: Add sign / verify for arbitrary messages (consider closing in favour of upstream bdk #601) (ffi) OPEN: Add child key pair generation api (ffi) OPEN: Add Wallet list_unspent method (kotlin) MERGED: Add armeabi-v7a support (python) OPEN: Update library to FFI version 0.7.0
July 12, 2022
📅 July 12, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- @BitcoinZavior blog post about the internals of bdk-rn and bdk-flutter (live demo)
- bdk-python 0.1.0 is out! :tada:
- Calculating the final size of our iOS library when deployed
- Using bdk-jvm on GraalVM (issue here)
- Summer of Bitcoin
- Any review begs? :pray:
- Blockers? 🪨
Top Issues and PRs
(ffi) OPEN: Add child key pair generation api (ffi) OPEN: Add Wallet list_unspent method (ffi) OPEN: Add coin selection methods (ffi) OPEN: No way of getting block hash and block height
July 26
📅 July 26, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- Compact Block Filters (Neutrino) group
- RBF size of fee bump (#172)
- Latest merges add coin control, bdk
0.20.0
, and the latest uniffi-rs - Size of the iOS libraries update
- LDK compatibility (3 issues)
- bdk-rn hacking session
- Releasing this week or waiting for key derivation API to settle?
- Any review begs? :pray:
- Blockers? 🪨
Dependent Projects and Support
- Francis/Bull Bitcoin with bdk-rn?
Top Issues and PRs
(ffi) OPEN: Add child key pair generation api (bdk) OPEN: Add DescriptorKey derive, extend, to_public and to_string functions (ffi) OPEN: Add inline documentation (ffi) OPEN: Add github workflows for audit, test and fmt (ffi) MERGED: Bump uniffi-rs to 0.19.3 (ffi) MERGED: Add Wallet list_unspent method (ffi) MERGED: Add coin selection methods (python) OPEN: Fix tox build and tests
August 9, 2022
📅 August 9, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- bdk-jvm
0.8.2
is out :tada: - bdk-android
0.8.2
is out :tada: - bdk-python
0.2.0
is out :tada: - @BitcoinZavior episode on the Bitcoin Developers Show
- Potential new temporary Kotlin API docs (website, repository)
- Updates on the child key derivation feature
- Adding inline docs to Rust bindings file? Draft PR
- Work on the BDK-LDK compatibility (Project Board)
- Any review begs? :pray:
- Blockers? 🪨
Dependent Projects and Support
- SpotBit by BlockchainCommons (GitHub, Website) — SpotBit is a portable Flask API for Bitcoin price data and candles.
Top Issues and PRs
Python Merged: Fix Tox build and tests Open Issue: Looking to solve our path issues with loading the native libraries (uniffi-rs) Kotlin Open PR: Convert Gradle script plugin for generating UniFFI bindings into a composite build FFI Open Issue: Consider returning TransactionDetails from TxBuilder finish() method
August 23, 2022
📅 August 23, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- BDK/LDK interop overview
- Language bindings live (Thursdays @13:00 UTC)
- Next release (
0.9.0
) week of Sept. 14 - Any review begs? :pray:
- Blockers? 🪨
Dependent Projects and Support
Page for projects that use BDK (let us know if you know of more!)
Top Issues and PRs
FFI
Open Issue: Consider returning TransactionDetails from TxBuilder finish()
method
Open PR: Add fee_amount()
and fee_rate()
functions to PsbtUtils
trait
Merged PR: Add get_height
and get_block_hash
methods on blockchain
Merged PR: Fix method names to mirror Rust bdk API
Merged PR: Add child key pair generation api
Open PR: Add Rust inline documentation
Open Issue: Retrieve BIP32 Root Key from descriptor
Open Issue: Enable building transaction for any given output script
Kotlin Merged PR: Fix CI test workflow by using Android NDK 21 Open PR: Convert Gradle script plugin for generating UniFFI bindings into a composite build Open PR: Add workflow to publish bdk-jvm
September 6, 2022
📅 September 6, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- Release calendar :spiral_calendar_pad:
- Using GitHub Actions to publish the bdk-jvm and bdk-android libraries (example). Do we have Swift experts?
- bdk-jvm and bdk-android coupling
- Integrating the BDK uniffi bindings with other uniffi projects (megazords?) 🦖
- A custom
Signer
interface ✍️ -
0.9.0
breaking changes - Temporary API docs (actual file) and Rust inline documentation
- Any review begs? :pray:
- Blockers? 🪨
Top Issues and PRs
FFI
Merged PR: Refactor TransactionDetails to include confirmation_time
Open PR: Add fee_amount() and fee_rate() functions to PsbtUtils trait
Open PR: Expose Balance Struct
Merged PR: Add the set_recipients()
method to TxBuilder
Open Issue: Enable building transaction from any given ScriptPubKey
Merged PR: Update uniffi-bindgen to latest (0.19.6
)
Kotlin Open PR: Publish bdk-jvm and bdk-android to staging
September 20, 2022
📅 September 20, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- bdk-android and bdk-jvm
0.9.0
are out! :tada: - API Docs for JVM/Android
0.9.0
are live here but will eventually appear on the bitcoindevkit.org page :book: - Next release is on October 10
- Language bindings libraries are signed with these PGP keys :key:
- bdk-rn and bdk-flutter
- Raj doing a BDK workshop in November using bdk-python :nerd_face:
- Any review begs? :pray:
- Blockers? 🪨
Top Issues and PRs
FFI
Open PR: Make TxBuilder.add_recipient()
take any ScriptPubKey
Kotlin
Open PR: Split libraries into independent Gradle projects
Open PR: Add API Docs
Python
Open PR: Bump bdk-ffi submodule to v0.9.0 tag
October 4, 2022
📅 October 4, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- bdk-swift 0.5.0 is out! :tada:
- Steve got a PR merged upstream into uniffi-rs :tada:
- bdk-python 0.3.0 is out! :tada:
- Discussion around ffi repositories and overall structure
- New blog post by Alekos on bdk_core
- Structs and Tuple Structs
- Coin selection event/discussion Oct. 5 @ 10:00 UTC
- Async calls
- Any review begs? :pray:
- Blockers? 🪨
Top Issues and PRs
FFI
[Merged PR] Add release templates and dev cycle docs, update changelog process
[Closed PR] Rename KeychainKind variants to ExternalKeys and InternalKeys
[Merged PR] Add Swift bindings generation support for reserved words
[Open PR] Make add_recipient() take any ScriptPubKey
[Merged PR] Add ability to retrieve private keys as bytes
[Merged PR] Add combine()
method on PSBT
[Merged PR] Add fee_amount()
and fee_rate()
functions to PsbtUtils trait
Kotlin [Merged PR] Add bindings PGP public key and documentation on how to verify signatures [Merged PR] Add temporary API docs [Merged PR] Split libraries into independent Gradle projects
Swift [Merged PR] Update to bdk-ffi 0.9.0 (bdk 0.22) and create release 0.5.0
October 18, 2022
📅 October 18, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- TabConf 2022
- Preparing the next release of bdk-ffi
- Concurrency issues
- The great FFI migration
- Compact Block Filters
- Flutter library released on pub.dev
- bdk_core (blog post)
- Daniel wrote a wallet in 1 hour for a workshop
- API docs
0.9.0
for JVM/Android are up - Kotlin Multiplatform has reached Beta this past week
- Any review begs? :pray:
- Blockers? 🪨
Top Issues and PRs
FFI Draft PR: Add compact block filters blockchain feature using the Nakamoto client Open Issue: A few concurrency-related issues Block has faced while using bdk-ffi Kotlin Open Issue: Unit tests cannot use bdk-android with current native targets Python Open Issue: Add Compact Block Filters Blockchain Client React Native Merged PR: Building React Native Apps with BDK Flutter Open PR: Building Flutter Apps with BDK
November 1, 2022
📅 November 1, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- bdk-android, bdk-jvm, and bdk-swift released :tada:
- New releases' page on GitHub
- Sorting and querying transactions
- Creating templates for building descriptors
- Swift API docs
- Continuing the concurency discussion
- React Native & Flutter updates @BitcoinZavior
- LDK-BDK interop PRs paying off (uMlando Wallet)
- Any review begs? :pray:
- Blockers? 🪨
Dependent Projects and Support
Top Issues and PRs
FFI Merged PR: Add simple kotlin, swift and python integration tests Open PR: Add FeeRate struct and PSBT fee_amount and fee_rate functions Open PR: Add API for generating master keys directly (Related issue: bdk #786) Open PR: Add Mnemonic Struct Open PR: Add build profile ‘release-smaller’ Flutter Align API to bdk-ffi
November 15, 2022
📅 November 15, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- All new bindings libraries have been released (bdk
0.24.0
) - building a uniffi-rs template for quick start w/ Rust language bindings
- rust-bip39
- New bdk-flutter API and blog post
- Reducing the library sizes! :tada:
- iOS sample app
- Any review begs? :pray:
- Blockers? 🪨
Top Issues and PRs
FFI Merged PR: Merge python ffi Open PR: bdk-kotlin ffi merge Open Issue: Currently rust-bip39 only supports bip39 word counts divisible by 6
November 29, 2022
📅 November 29, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- New bdk-ffi structure :tada:
- Sunsetting the individual languages' project boards
- Libraries providing syntactic sugar, helpers, wrappers, defaults on top of the bindings API (#265)
- Flutter API
- 1.0 release
- uniffi-bindings-template
- Rename repository to something more intuitive
-
jna.Pointer
exception #258 - Publishing our first snapshot version (
0.12.0-SNAPSHOT
) of bdk-android - Any review begs? :pray:
- Blockers? 🪨
- Project board :clipboard:
Top Issues and PRs
Open PR: Add from_string() methods to DescriptorPrivateKey
and DescriptorPublicKey
Open PR: Add descriptor templates
Merged PR: Add bdk-swift
Open Issue: Add custom signer
Open Issue: Explore KMP as viable library
December 13, 2022
📅 December 13, 2022 13:00 UTC
📍 Discord General Voice Channel
Discussion Items
- bdk-flutter
0.2.0
is out :tada: - Bindings
0.25.0
are all out :tada: - Descriptor templates!
- Africa Bitcoin Conference
- Snapshot versions now available (see docs on how to use them)
- Sugar library
- BDK workshow in Nashville Feb 11
- Any review begs? :pray:
- Blockers? 🪨
- Project board :clipboard:
Dependent Projects and Support
- Secret wallet using bdk-flutter
Top Issues and PRs
Merged PR: Change TxBuilder.drain_to argument to Script instead of address String Open PR: Add descriptor templates