Repository navigation
Conversation
…lScan - Adds an isolated CI job using the infinity-pro Regtest container. - Uses dart:io HttpClient to implement deterministic Bitcoin Core Regtest funding. - Adds local funded fullScan() integration tests for Electrum and Esplora. - Updates dart_test.yaml and test tags to isolate regtest execution.
|
@Ugarba202 @Johnosezele what’s the goal here? I tried chasing down reasoning all I could see was was about flaky public testnet servers, but CI doesn’t use them right? And the funded fullScan check seems to test BDK/electrs more than the Dart bindings, which bdk-ffi already covers. What does this catch that we don’t catch today? |
Thanks for pointing this out, @reez You're right, CI wasn't using the public testnet servers, so my initial reasoning wasn't accurate. My goal was to test funded |
|
@reez my direction was in #133 The gap is in our generated bindings, not in BDK. bdk-android covers the Kotlin bindings, but lib/bdk.dart comes from a separate generator. The Dart code that converts transaction results (TxUnconfirmedWalletEvent, TxConfirmedWalletEvent, ConfirmationBlockTime, confirmed ChainPosition) only runs when a transaction comes back, and nothing in our CI does that today. A bug there, or in a bindings regeneration, would ship unnoticed. That's why the plan on #133 was a sync_ foundation asserting those exact values, with funded fullScan as a follow up for @Ugarba202 . This PR jumped ahead of that, and balance > 0 doesn't check any of those values, so it doesn't close the gap either. |
Thanks for clarifying, @reez and @Johnosezele. I misunderstood the CI setup when I opened the original issue. |
|
Hi @Johnosezele and @reez, Thanks for the earlier feedback. I've updated the tests in |
Removed empty packages entry for Android SDK setup.
Thanks for the direction, @Johnosezele!
This PR moves the integration coverage to a local Regtest environment and replaces the existing
sync_()coverage with fundedfullScan()coverage for both Electrum and Esplora.What changed
bdk-ffi.HttpClient-based helper to fund test wallet addresses through Bitcoin Core RPC and mine two blocks.fullScan()integration tests for both Electrum and Esplora usingNetwork.regtest.Verification
Tested locally against the same Regtest image used by CI.
dart test --tags regtest✅just format✅just analyze✅just test✅Happy to make any adjustments based on reviews!