Ran
|
Jobs
1
|
Files
44
|
Run time
1min
|
Badge
README BADGES
|
push
github
Merge bitcoindevkit/bdk#1489: feat(electrum)!: Update `bdk_electrum` to use merkle proofs 1a62488ab feat(chain)!: Implement `ConfirmationBlockTime` (Wei Chen) e761adf48 test(electrum): Imported `bdk_esplora` tests into `bdk_electrum` (Wei Chen) d7f4ab71e feat(electrum)!: Update `bdk_electrum` to use merkle proofs (Wei Chen) Pull request description: <!-- You can erase any parts of this template not applicable to your Pull Request. --> Fixes #980. ### Description This PR is the first step in reworking `bdk_electrum` to use merkle proofs. When we fetch a transaction, we now also obtain the merkle proof and block header for verification. We then insert an anchor only after validation that the transaction exists in a confirmed block. The loop logic that previously existed in `full_scan` to account for re-orgs has also been removed as part of this rework. This is a breaking change because `graph_update`s now provide the full `ConfirmationTimeHeightAnchor` type. This removes the need for the `ElectrumFullScanResult` and `ElectrumSyncResult` structs that existed only to provide the option for converting the anchor type from `ConfirmationHeightAnchor` into `ConfirmationTimeHeightAnchor`. ### Notes to the reviewers <!-- In this section you can include notes directed to the reviewers, like explaining why some parts of the PR were done in a specific way --> ### Changelog notice <!-- Notice the release manager should include in the release tag message changelog --> <!-- See https://keepachangelog.com/en/1.0.0/ for examples --> * `ConfirmationTimeHeightAnchor` and `ConfirmationHeightAnchor` have been removed. * `ConfirmationBlockTime` has been introduced as a new anchor type. * `bdk_electrum`'s `full_scan` and `sync` now return `graph_update`s with `ConfirmationBlockTime`. ### Checklists #### All Submissions: * [x] I've signed... (continued)
176 of 197 new or added lines in 8 files covered. (89.34%)
11060 of 13256 relevant lines covered (83.43%)
17375.64 hits per line
Lines | Coverage | ∆ | File |
---|---|---|---|
1 |
78.33 |
2.96% | crates/chain/src/chain_data.rs |
3 |
83.99 |
-0.01% | crates/wallet/src/wallet/mod.rs |
17 |
77.48 |
4.52% | crates/electrum/src/bdk_electrum_client.rs |
ID | Job ID | Ran | Files | Coverage | |
---|---|---|---|---|---|
1 | 9863054187.1 | 44 |
83.43 |
GitHub Action Run |
Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line |
---|---|---|---|---|---|---|---|
0.0 | crates/sqlite/src/lib.rs | 35 | 9 | 0 | 9 | 0.0 | |
0.0 | crates/wallet/src/lib.rs | 48 | 3 | 0 | 3 | 0.0 | |
0.0 | crates/hwi/src/signer.rs | 95 | 25 | 0 | 25 | 0.0 | |
6.38 | crates/wallet/src/descriptor/error.rs | 128 | 47 | 3 | 44 | 2.0 | |
12.79 | crates/wallet/src/wallet/error.rs | 261 | 86 | 11 | 75 | 8.0 | |
13.64 | crates/chain/src/balance.rs | 58 | 22 | 3 | 19 | 66.0 | |
30.77 | crates/chain/src/example_utils.rs | 31 | 13 | 4 | 9 | 110.0 | |
32.14 | crates/chain/src/spk_client.rs | 389 | 196 | 63 | 133 | 49.0 + 4 | |
36.36 | crates/chain/src/descriptor_ext.rs | 39 | 11 | 4 | 7 | 10936.0 - 132 | |
40.0 | crates/file_store/src/lib.rs | 43 | 15 | 6 | 9 | 461.0 |