{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":235668568,"defaultBranch":"master","name":"bdk","ownerLogin":"bitcoindevkit","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-01-22T21:16:35.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/62867074?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1721661336.0","currentOid":""},"activityList":{"items":[{"before":"18626c66acfc5c0b858cec58d0924c0dabfa7f3b","after":"785371e0a113f1be40a9350f2393846a28971f95","ref":"refs/heads/master","pushedAt":"2024-08-01T04:11:44.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1530: chore: fix clippy lints\n\n8bf8c7d080194872188e1ab7a6f14c06b121e371 chore: fix clippy lints (Jose Storopoli)\n\nPull request description:\n\n ### Description\n\n Fix some clippy CI lints\n\n ### Notes to the reviewers\n\n More caught by the Nix CI in #1320.\n\n ### Changelog notice\n\n chore: clippy lints\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### New Features:\n\n * [ ] I've added tests for the new feature\n * [ ] I've added docs for the new feature\n\n #### Bugfixes:\n\n * [ ] This pull request breaks the existing API\n * [ ] I've added tests to reproduce the issue which are now passing\n * [ ] I'm linking the issue being fixed by this PR\n\nACKs for top commit:\n notmandatory:\n ACK 8bf8c7d080194872188e1ab7a6f14c06b121e371\n\nTree-SHA512: 6b53cb739e506d79106a2f42aa2b8fa28ef226543fbbf100225f10ed82257f6fd0218f09c0f1291803fbc9c1c88e32ba1c7e02fe3f601ccc9dc5be8a6efea6e1","shortMessageHtmlLink":"Merge #1530: chore: fix clippy lints"}},{"before":"82141a820123fcf48cb1b49702f59d7fe14ee8b2","after":"18626c66acfc5c0b858cec58d0924c0dabfa7f3b","ref":"refs/heads/master","pushedAt":"2024-08-01T03:55:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1529: fix: typos\n\na8efeaa0fb83848a04e7324311ccaca4e2c4ab71 fix: typos (Jose Storopoli)\n\nPull request description:\n\n ### Description\n\n Needed for the typos nix check in #1320.\n\n ### Notes to the reviewers\n\n More typos that the Nix CI caught.\n\n ### Changelog notice\n\n - fix: typos\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### New Features:\n\n * [ ] I've added tests for the new feature\n * [ ] I've added docs for the new feature\n\n #### Bugfixes:\n\n * [ ] This pull request breaks the existing API\n * [ ] I've added tests to reproduce the issue which are now passing\n * [ ] I'm linking the issue being fixed by this PR\n\nACKs for top commit:\n notmandatory:\n ACK a8efeaa0fb83848a04e7324311ccaca4e2c4ab71\n\nTree-SHA512: 44a625bcf538acb7a766316f1d512ef3fd7cc14aae03f09b129229946ef156be35dff73dab3dc24fbc21137764b5707a2bd632bfb84b38dc9fe4d061659ac766","shortMessageHtmlLink":"Merge #1529: fix: typos"}},{"before":"17a9850cba06db837b82cef1dbaf2ef1e342f7ec","after":"82141a820123fcf48cb1b49702f59d7fe14ee8b2","ref":"refs/heads/master","pushedAt":"2024-07-27T13:17:44.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1524: ci: pin tokio to 1.38.1 to support MSRV 1.63\n\n28d75304e1319f49ab72c582f03a916ee40463dd ci: pin tokio to 1.38.1 to support MSRV 1.63 (Steve Myers)\n\nPull request description:\n\n ### Description\n\n The latest tokio minor version update from 1.38.1 to 1.39.1 changed it's MSRV from 1.63.0 to 1.70.0, breaking our CI MSRV 1.63 testing. This PR pins `tokio` back to 1.38.1 for our CI MSRV testing.\n\n ### Notes to the reviewers\n\n https://github.com/tokio-rs/tokio/pull/6645\n\n https://crates.io/crates/tokio/versions\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\nACKs for top commit:\n LagginTimes:\n ACK 28d75304e1319f49ab72c582f03a916ee40463dd\n ValuedMammal:\n ACK 28d75304e1319f49ab72c582f03a916ee40463dd\n oleonardolima:\n ACK 28d75304e1319f49ab72c582f03a916ee40463dd\n\nTree-SHA512: 9eef750422cb8c3faa15771438e790afae44362d7c77e1d36cf70816ac7dabdd2e408e14502836ec86f845a2f1fe82905000c681fb6b4e873b036a41a280abd9","shortMessageHtmlLink":"Merge #1524: ci: pin tokio to 1.38.1 to support MSRV 1.63"}},{"before":"5478bb1ebb22f6e33498baf9b25c634d85eef0e6","after":"17a9850cba06db837b82cef1dbaf2ef1e342f7ec","ref":"refs/heads/master","pushedAt":"2024-07-22T14:13:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1522: Bump bdk version to 1.0.0-beta.1\n\n53bea0d902f49f8f01f164bddcbc21327e2c7032 Bump bdk version to 1.0.0-beta.1 (Steve Myers)\n\nPull request description:\n\n ### Description\n\n Bump bdk version to 1.0.0-beta.1\n\n bdk_chain to 0.17.0\n bdk_bitcoind_rpc to 0.13.0\n bdk_electrum to 0.16.0\n bdk_esplora to 0.16.0\n bdk_file_store to 0.14.0\n bdk_testenv to 0.7.0\n bdk_hwi to 0.4.0\n\n ### Notes to the reviewers\n\n This release completes the 1.0.0-alpha milestone and starts our new 1.0.0-beta milestone series of releases.\n\n The beta releases will maintain a stable `bdk_wallet` API and be focused on improving testing, docs, CI, and fixing any newly discovered bugs.\n\nACKs for top commit:\n LLFourn:\n ACK 53bea0d902f49f8f01f164bddcbc21327e2c7032\n LagginTimes:\n ACK 53bea0d902f49f8f01f164bddcbc21327e2c7032\n storopoli:\n ACK 53bea0d902f49f8f01f164bddcbc21327e2c7032\n\nTree-SHA512: cc2adbdeb7c2786659198da64e96fcb374833666e8d98c3f255e2de5f7283573efe3e3c53fd0c7b0e475fe3ac30d3c88169075e079d4d0b67496fc9a962b39db","shortMessageHtmlLink":"Merge #1522: Bump bdk version to 1.0.0-beta.1"}},{"before":"0c8ee1dfe294f3a2b6f0fcda0584e768c39ea713","after":"5478bb1ebb22f6e33498baf9b25c634d85eef0e6","ref":"refs/heads/master","pushedAt":"2024-07-22T02:37:18.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1506: Standardize API ownership in `KeychainTxOutIndex`\n\n79262185d556009c3d3e918f886ba4a51a262351 refactor(chain)!: update KeychainTxOutIndex methods to use owned ScriptBuf (Steve Myers)\n7c07b9de02edf9f2c2b8a153f7bc4c0ca0823b02 refactor(chain)!: update KeychainTxOutIndex methods to use owned K (Rob N)\n\nPull request description:\n\n ### Description\n\n Make all method signatures of `KeychainTxOutIndex` take owned `K` and use `ScriptBuf` instead of its borrowed counterpart `&Script`. Fixes #1482\n\n ### Notes to the reviewers\n\n Steve also added a CI fix as well\n\n ### Changelog notice\n\n - Make all method signatures of `KeychainTxOutIndex` take owned `K`\n - Update `KeychainTxOutIndex` methods to use `ScriptBuf`\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### New Features:\n\n * [ ] I've added tests for the new feature\n * [ ] I've added docs for the new feature\n\n #### Bugfixes:\n\n * [x] This pull request breaks the existing API\n * [ ] I've added tests to reproduce the issue which are now passing\n * [x] I'm linking the issue being fixed by this PR\n\nTop commit has no ACKs.\n\nTree-SHA512: 3cb7d627ef6f38e1eaf6b88174f143c42dfc4d34e3d3d56cc843c256b2f32360fd00fa9ee328d0a41dac1f46771ccae797a96d9e3cee6f5ac4ef63e27cf6b7b7","shortMessageHtmlLink":"Merge #1506: Standardize API ownership in KeychainTxOutIndex"}},{"before":"d99b3ef4b449a5c7b8facf04db3cb9be829a0ac1","after":"0c8ee1dfe294f3a2b6f0fcda0584e768c39ea713","ref":"refs/heads/master","pushedAt":"2024-07-22T01:26:48.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1514: refactor(wallet)!: rework persistence, changeset, and construction\n\n64eb5763487df3c6cbb626e51f96ab6e47c5de22 chore(wallet): Fix ChangeSet::merge (LLFourn)\n8875c92ec114ba9ca0ea8402d65d7a236566b618 chore(wallet): Fix descriptor mismatch error keychain (LLFourn)\n2cf07d686b19787b5e97e0d5ed0b4cce7f56549f refactor(chain,wallet)!: move rusqlite things into it's own file (志宇)\n93f9b83e275e8ab67630c925a39de6c01611a01b chore(chain): rm unused `sqlite` types (志宇)\n892b97d4416d9d38ebf3d7e0c52636f110042302 feat(chain,wallet)!: Change persist-traits to be \"safer\" (志宇)\n3aed4cf1798d7bd0189de315f5d7eacf212edb40 test(wallet): ensure checks work when loading wallet (志宇)\naf4ee0fa4b82ddafa10c6b7fc35a2532351cd003 refactor(wallet)!: Make `bdk_wallet::ChangeSet` non-exhaustive (志宇)\n22d02ed3d19e763d1ff54e3ec3657ed39c4ad66c feat!: improve wallet building methods (志宇)\neb73f0659e0046f39f5bf6a07d4145a19f865794 refactor!: move `WalletChangeSet` to `bdk_wallet` and fix import paths (志宇)\n6b43001951db7738f788bcdbb46c8c1cd3e24a66 feat!: Rework sqlite, changesets, persistence and wallet-construction (志宇)\n\nPull request description:\n\n Closes #1496\n Closes #1498\n Closes #1500\n\n ### Description\n\n Rework sqlite: Instead of only supported one schema (defined in `bdk_sqlite`), we have a schema per changeset type for more flexiblity.\n\n * rm `bdk_sqlite` crate (as we don't need `bdk_sqlite::Store` anymore).\n * add `sqlite` feature on `bdk_chain` which adds methods on each changeset type for initializing tables, loading the changeset and writing.\n\n Rework changesets: Some callers may want to use `KeychainTxOutIndex` where `K` may change per descriptor on every run. So we only want to persist the last revealed indices by `DescriptorId` (which uniquely-ish identifies the descriptor).\n\n * rm `keychain_added` field from `keychain_txout`'s changeset.\n * Add `keychain_added` to `CombinedChangeSet` (which is renamed to `WalletChangeSet`).\n\n Rework persistence: add back some safety and convenience when persisting our types. Working with changeset directly (as we were doing before) can be cumbersome.\n\n * Intoduce `struct Persisted` which wraps a type `T` which stores staged changes to it. This adds safety when creating and or loading `T` from db.\n * `struct Persisted` methods, `create`, `load` and `persist`, are available if `trait PersistWith` is implemented for `T`. `Db` represents the database connection and `PersistWith` should be implemented per database-type.\n * For async, we have `trait PersistedAsyncWith`.\n * `Wallet` has impls of `PersistedWith`, `PersistedWith` and `PersistedWith` by default.\n\n Rework wallet-construction: Before, we had multiple methods for loading and creating with different input-counts so it would be unwieldly to add more parameters in the future. This also makes it difficult to impl `PersistWith` (which has a single method for `load` that takes in `PersistWith::LoadParams` and a single method for `create` that takes in `PersistWith::CreateParams`).\n\n * Introduce a builder pattern when constructing a `Wallet`. For loading from persistence or `ChangeSet`, we have `LoadParams`. For creating a new wallet, we have `CreateParams`.\n\n ### Notes to the reviewers\n\n TODO\n\n ### Changelog notice\n\n ```\n ### Added\n\n - Add `sqlite` feature to `bdk_chain` which introduces methods on changeset types that encode/decode changesets to SQLite database.\n * Introduce `PersistWith` and `PersistAsyncWith` traits and a `Persisted` wrapper. This ergonomically makes sure user inits the db before reading/writing to it.\n\n ### Changed\n\n - Moved `bdk_chain::CombinedChangeSet` to `bdk_wallet::ChangeSet` and added `keychain_added` field.\n - `bdk_wallet::Wallet` construction now uses a builder API using the newly introduced `CreateParams` and `LoadParams`.\n\n ### Removed\n\n - Remove `keychains_added` field from `bdk_chain::keychain_txout::ChangeSet`.\n\n ```\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### New Features:\n\n * [ ] I've added tests for the new feature\n * [x] I've added docs for the new feature\n\nACKs for top commit:\n LLFourn:\n ACK: 64eb5763487df3c6cbb626e51f96ab6e47c5de22\n notmandatory:\n Re ACK 64eb5763487df3c6cbb626e51f96ab6e47c5de22\n\nTree-SHA512: b8a1d48aea26d9fa293a8387a3533cd16c8ddae890f94d61fb91efa492fb05ac5e0a66200d64d7c857774368d5f0f8991a98684307029c25f50a1d8fceee8e67","shortMessageHtmlLink":"Merge #1514: refactor(wallet)!: rework persistence, changeset, and co…"}},{"before":"c313a9f5593b5bdcbaedfe0982241040c03d360f","after":null,"ref":"refs/heads/owned-k","pushedAt":"2024-07-11T19:23:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"}},{"before":null,"after":"c313a9f5593b5bdcbaedfe0982241040c03d360f","ref":"refs/heads/owned-k","pushedAt":"2024-07-09T21:57:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"refactor(chain)!: update KeychainTxOutIndex to return owned ScriptBuf","shortMessageHtmlLink":"refactor(chain)!: update KeychainTxOutIndex to return owned ScriptBuf"}},{"before":"1a39821b8860bdce6db88ad11cf7e331c5b59dd0","after":"d99b3ef4b449a5c7b8facf04db3cb9be829a0ac1","ref":"refs/heads/master","pushedAt":"2024-07-09T19:29:28.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1489: feat(electrum)!: Update `bdk_electrum` to use merkle proofs\n\n1a62488abfd6213c2780c1465aebe01dfbb6b20a feat(chain)!: Implement `ConfirmationBlockTime` (Wei Chen)\ne761adf48178e2688a817a2b7466b0ebf7902eeb test(electrum): Imported `bdk_esplora` tests into `bdk_electrum` (Wei Chen)\nd7f4ab71e22ca3e8868dae22add8839fc25aa7f3 feat(electrum)!: Update `bdk_electrum` to use merkle proofs (Wei Chen)\n\nPull request description:\n\n \n Fixes #980.\n\n ### Description\n\n 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.\n\n 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`.\n\n ### Notes to the reviewers\n\n \n\n ### Changelog notice\n\n \n \n * `ConfirmationTimeHeightAnchor` and `ConfirmationHeightAnchor` have been removed.\n * `ConfirmationBlockTime` has been introduced as a new anchor type.\n * `bdk_electrum`'s `full_scan` and `sync` now return `graph_update`s with `ConfirmationBlockTime`.\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### New Features:\n\n * [ ] I've added tests for the new feature\n * [x] I've added docs for the new feature\n\nACKs for top commit:\n ValuedMammal:\n ACK 1a62488abfd6213c2780c1465aebe01dfbb6b20a\n notmandatory:\n ACK 1a62488abfd6213c2780c1465aebe01dfbb6b20a\n\nTree-SHA512: 77af05bffcb9668ecb99b41abacc6b6aa503dc559226fa88c4cab6863e3af431b937706696ec765bb802c9c152333cd430c284d17a6cd190520e10b13d89e02f","shortMessageHtmlLink":"Merge #1489: feat(electrum)!: Update bdk_electrum to use merkle proofs"}},{"before":"8714e9d806a980076893e8a181d7c5370d490ed5","after":"1a39821b8860bdce6db88ad11cf7e331c5b59dd0","ref":"refs/heads/master","pushedAt":"2024-07-08T15:49:58.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1505: ci: pin cc dependency version to build with rust 1.63\n\n3f9ed95e2e84ea1d938ecab406740d23cf25db1b ci: pin cc dependency version to build with rust 1.63 (Wei Chen)\n\nPull request description:\n\n \n\n ### Description\n\n \n `cc` version 1.0.106 raised `msrv` to 1.67.\n The previous working version 1.0.105 was pinned for CI to continue working.\n\n ### Notes to the reviewers\n\n \n\n ### Changelog notice\n\n \n \n * Pinned cc dependency version to build with rust 1.63.\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\nACKs for top commit:\n storopoli:\n ACK 3f9ed95e2e84ea1d938ecab406740d23cf25db1b\n notmandatory:\n ACK 3f9ed95e2e84ea1d938ecab406740d23cf25db1b\n\nTree-SHA512: 995786f214c06db278daa07643489cdae557c14ffda4b873d2951ca6b52de64630e39dafcbc43cecaede0911fd6d137b992a868478d4bae674e73b4ecc18650b","shortMessageHtmlLink":"Merge #1505: ci: pin cc dependency version to build with rust 1.63"}},{"before":"43f093d9182ccd599ecdddc2a1c49701795c1ccd","after":"8714e9d806a980076893e8a181d7c5370d490ed5","ref":"refs/heads/master","pushedAt":"2024-07-08T14:22:06.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1503: feat(wallet): simplify `public_descriptor` fn and remove `get_descriptor_for_keych…\n\ne7ec5a873328c9b68836306086bd9b021e9c952a refactor(wallet)!: remove redundant get_descriptor_for_keychain (Giovanni Napoli)\n\nPull request description:\n\n Fixes #1501\n\n ### Description\n\n Simplifies `public_descriptor` function by using `get_descriptor` and removes `get_descriptor_for_keychain`.\n\n ### Notes to the reviewers\n\n Tested with `cargo test --all-features`.\n\n ### Changelog notice\n\n - Simplifies `public_descriptor` function and removes `get_descriptor_for_keychain`\n\n ### Checklists\n\n #### All Submissions:\n\n * [X] I've signed all my commits\n * [X] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [X] I ran `cargo fmt` and `cargo clippy` before committing\n\nACKs for top commit:\n notmandatory:\n ACK e7ec5a873328c9b68836306086bd9b021e9c952a\n storopoli:\n ACK https://github.com/bitcoindevkit/bdk/commit/e7ec5a873328c9b68836306086bd9b021e9c952a\n\nTree-SHA512: 5981190ac882e08e42b1be53c55afb70c4ba7e7a99a8ae2a4e05f0618d0eb23849ce544024bb406e6a6918d9e9757d9ff6ad5a701cd9814b686e36f1ea16b44a","shortMessageHtmlLink":"Merge #1503: feat(wallet): simplify public_descriptor fn and remove…"}},{"before":"db8fbd729d7bbdea4e05fe742bcf80eab7b11ba6","after":"43f093d9182ccd599ecdddc2a1c49701795c1ccd","ref":"refs/heads/master","pushedAt":"2024-07-08T02:02:44.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1502: chore(chain)!: Rename `Append` to `Merge`\n\n962305f41546613b5b41b4131d4a5594f01a2de0 chore(chain)!: Rename `Append` to `Merge` (Wei Chen)\n\nPull request description:\n\n \n Fixes #1467.\n\n ### Description\n\n \n Renames the `Append` trait to `Merge`.\n\n ### Notes to the reviewers\n\n \n\n ### Changelog notice\n\n \n \n * Rename `bdk_chain::Append` to `bdk_chain::Merge`.\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\nACKs for top commit:\n notmandatory:\n ACK 962305f41546613b5b41b4131d4a5594f01a2de0\n\nTree-SHA512: 2019d9ed631776850cda39c9a53bdd3660c7f4715d8c418824d8ad13718f2b2fd160159e03fd63743dbf0b9e91cfdfed7e4cd4a591636f67d2aaec419486d136","shortMessageHtmlLink":"Merge #1502: chore(chain)!: Rename Append to Merge"}},{"before":"139eec7da06284224f414295909d8b34c06c723c","after":"db8fbd729d7bbdea4e05fe742bcf80eab7b11ba6","ref":"refs/heads/master","pushedAt":"2024-07-06T12:37:02.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"LLFourn","name":"Lloyd Fournier","path":"/LLFourn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3734083?s=80&v=4"},"commit":{"message":"Merge pull request #1493 from ValuedMammal/refactor/keychain-balance\n\n[chain] Create module `indexer`","shortMessageHtmlLink":"Merge pull request #1493 from ValuedMammal/refactor/keychain-balance"}},{"before":"a112b4d97c02c3acb9728c55c6c150560b5cc0b7","after":"139eec7da06284224f414295909d8b34c06c723c","ref":"refs/heads/master","pushedAt":"2024-07-05T20:31:20.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1487: Add support for custom sorting and deprecate BIP69\n\n3bee563c810ace941e0e80ee8e410d843a05f5d8 refactor(wallet)!: remove TxOrdering::Bip69Lexicographic (nymius)\ne5cb7b206619f5f3437e5ee95ed3e53885b745e6 feat(wallet): add TxOrdering::Custom (FadedCoder)\n\nPull request description:\n\n \n\n ### Description\n\n Resolves https://github.com/bitcoindevkit/bdk/issues/534.\n\n Resumes from the work in https://github.com/bitcoindevkit/bdk/pull/556.\n\n Add custom sorting function for inputs and outputs through `TxOrdering::Custom` and deprecates `TxOrdering::Bip69Lexicographic`.\n\n \n\n ### Notes to the reviewers\n\n I tried consider all discussions in https://github.com/bitcoindevkit/bdk/issues/534 while implementing some changes to the original PR. I created a summary of the considerations I had while implementing this:\n\n ##### Why use smart pointers?\n The size of enums and structs should be known at compilation time. A struct whose fields implements some kind of trait cannot be specified without using a smart pointer because the size of the implementations of the trait cannot be known beforehand.\n\n ##### Why `Arc` or `Rc` instead of `Box`?\n The majority of the useful smart pointers that I know (`Arc`, `Box`, `Rc`) for this case implement `Drop` which rules out the implementation of `Copy`, making harder to manipulate a simple enum like `TxOrdering`. `Clone` can be used instead, implemented by `Arc` and `Rc`, but not implemented by `Box`.\n\n ##### Why `Arc` instead of `Rc`?\n Multi threading I guess.\n\n ##### Why using a type alias like `TxVecSort`?\n cargo-clippy was accusing a too complex type if using the whole type inlined in the struct inside the enum.\n\n ##### Why `Fn` and not `FnMut`?\n `FnMut` is not allowed inside `Arc`. I think this is due to the `&mut self` ocupies the first parameter of the `call` method when desugared (https://rustyyato.github.io/rust/syntactic/sugar/2019/01/17/Closures-Magic-Functions.html), which doesn't respects `Arc` limitation of not having mutable references to data stored inside `Arc`:\n Quoting the [docs](https://doc.rust-lang.org/std/sync/struct.Arc.html):\n > you cannot generally obtain a mutable reference to something inside an `Arc`.\n\n `FnOnce` > `FnMut` > `Fn`, where `>` stands for \"is supertrait of\", so, `Fn` can be used everywhere `FnMut` is expected.\n\n ##### Why not `&'a dyn FnMut`?\n It needs to include a lifetime parameter in `TxOrdering`, which will force the addition of a lifetime parameter in `TxParams`, which will require the addition of a lifetime parameter in a lot of places more. **Which one is preferable?**\n\n \n\n ### Changelog notice\n\n - Adds new `TxOrdering` variant: `TxOrdering::Custom`. A structure that stores the ordering functions to sort the inputs and outputs of a transaction.\n - Deprecates `TxOrdering::Bip69Lexicographic`.\n\n \n \n\n ### Checklists\n\n #### All Submissions:\n\n * [ ] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### New Features:\n\n * [x] I've added tests for the new feature\n * [ ] I've added docs for the new feature\n\nTop commit has no ACKs.\n\nTree-SHA512: 0d3e3ea9aee3a6c9e9d5e1ae93215be84bd1bd99907a319976517819aeda768a7166860a48a8d24abb30c516e0129decb6a6aebd8f24783ea2230143e6dcd72a","shortMessageHtmlLink":"Merge #1487: Add support for custom sorting and deprecate BIP69"}},{"before":"22368ab7b08582614f58a1cd19d6df1996d308e6","after":"a112b4d97c02c3acb9728c55c6c150560b5cc0b7","ref":"refs/heads/master","pushedAt":"2024-07-02T21:50:32.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1416: [chain] Change tx_last_seen to `Option`\n\naf75817d4bedbb5e148812d1073fd0729a23358b ref(tx_graph): Change last_seen to `HashMap` (valued mammal)\n6204d2c766f968af6b63c664dda61fa8fc897e85 feat(tx_graph): Add method `txs_with_no_anchor_or_last_seen` (valued mammal)\n496601b8b148afd2199a530d40edeafcb7967d46 test(tx_graph): Add test for `list_canonical_txs` (valued mammal)\nc4057297a96ccbd49d984b7139994b801c2120dc wallet: delete method `insert_anchor` (valued mammal)\nb34790c6b6d612661a4595bf10910294af862323 ref(tx_graph)!: Rename `list_chain_txs` to `list_canonical_txs` (valued mammal)\n2ce4bb4dfc4f7b779a815eca45a3f6cee3d6c4e0 test(indexed_tx_graph): Add test_get_chain_position (valued mammal)\n36f58870cb6eb24fe8c50ba4cf3ede910dd11fe8 test(wallet): Add test_insert_tx_balance_and_utxos (valued mammal)\nbbc19c3536b25c78be8b5f3fe0cd9810aa679742 fix(tx_graph)!: Change tx_last_seen to `Option` (valued mammal)\n324eeb3eb4e5231c6a81e6d197df788ad08b23a8 fix(wallet)!: Rework `Wallet::insert_tx` to no longer insert anchors (valued mammal)\n\nPull request description:\n\n The PR changes the type of last_seen to `Option` for `txs` member of `TxGraph`.\n\n This fixes an issue where unbroadcast and otherwise non-canonical transactions were returned from methods `list_chain_txs` and `Wallet::transactions` because every new tx inserted had a last_seen of 0 making it appear unconfirmed.\n\n fixes #1446\n fixes #1396\n\n ### Notes to the reviewers\n\n ### Changelog notice\n\n Changed\n - Member `last_seen_unconfirmed` of `TxNode` is changed to `Option`\n - Renamed `TxGraph` method `list_chain_txs` to `list_canonical_txs`\n - Changed `Wallet::insert_tx` to take a single `tx: Transaction` as parameter\n\n Added\n - Add method `txs_with_no_anchor_or_last_seen` for `TxGraph`\n - Add method `unbroadcast_transactions` for `Wallet`\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### Bugfixes:\n\n * [x] This pull request breaks the existing API\n * [x] I've added tests to reproduce the issue which are now passing\n * [x] I'm linking the issue being fixed by this PR\n\nACKs for top commit:\n notmandatory:\n Re ACK af75817d4bedbb5e148812d1073fd0729a23358b\n\nTree-SHA512: e664b3b49e2f547873923f15dffbbc7fa032b6240e5b856b180e9e26123ca141864d10448912dc4a31bbb200c75bef4251a910a4330dac17ee6841b564612d13","shortMessageHtmlLink":"Merge #1416: [chain] Change tx_last_seen to Option<u64>"}},{"before":"d75d9f94ce9b2be8688894c799e92448831bf6cd","after":"22368ab7b08582614f58a1cd19d6df1996d308e6","ref":"refs/heads/master","pushedAt":"2024-06-28T22:38:17.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1486: refactor(chain): calculate DescriptorId as the sha256 hash of the spk at index 0\n\n8f5b172e59b4d5e199b98777855b0d9b46742f66 test(wallet): verify wallet panics in dev mode if using keychains with duplicate spks (Steve Myers)\n46c6f18cc3ff71efda2b8547aa32854f9b88762e refactor(chain): calculate DescriptorId as sha256 hash of spk at index 0 (Steve Myers)\n\nPull request description:\n\n ### Description\n\n Rename `DescriptorId` to `KeychainId` and `descriptor_id()` to `keychain_id()`.\n\n Calculate keychain ids as the hash of the spk derived from its descriptor as index 0.\n\n Added docs to `Wallet` and `KeychainTxOutIndex::insert_descriptor()` explaining that it's the users responsibility not to use wildcard and non-wildcard descriptors that can derive the same script pubkey. I also recommended for `Wallet` that legacy non-wildcard descriptors be added to a temporary `Wallet` and swept into a modern wildcard descriptor.\n\n ### Notes to the reviewers\n\n fixes #1483\n\n ### Changelog notice\n\n changed\n\n - Renamed DescriptorId to KeychainId, DescriptorExt::descriptor_id() to keychain_id().\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### Bugfixes:\n\n * [ ] This pull request breaks the existing API\n * [ ] I've added tests to reproduce the issue which are now passing\n * [x] I'm linking the issue being fixed by this PR\n\nACKs for top commit:\n LLFourn:\n ACK 8f5b172e59b4d5e199b98777855b0d9b46742f66\n oleonardolima:\n Concept ACK 8f5b172e59b4d5e199b98777855b0d9b46742f66\n\nTree-SHA512: 07defa208d9cfcd61bc6e31ded06a287c392c51bcc4949f601ecfac635c3443e7d08c62d92618ed894dc5ef13cdcf784771a6bf8904a5397110bedb1563f52d4","shortMessageHtmlLink":"Merge #1486: refactor(chain): calculate DescriptorId as the sha256 ha…"}},{"before":"5c7cc30978d793b028d00ae65567540d7770ecec","after":"d75d9f94ce9b2be8688894c799e92448831bf6cd","ref":"refs/heads/master","pushedAt":"2024-06-28T21:41:18.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1490: Remove usage of `blockdata::` from bitcoin paths\n\ncf7aca84d113e639441350651112e9e701364497 Remove usage of blockdata:: from bitcoin paths (Tobin C. Harding)\n\nPull request description:\n\n ### Description\n\n In `rust-bitcoin` the `blockdata` module is a code organisation thing, it should never have been public. One day those guys would like to remove it, so as not to be a PITA for `bdk` when they do lets remove all usage of `blockdata::` now.\n\n ### Changelog notice\n\n Internal change only, no externally visible changes.\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\nTop commit has no ACKs.\n\nTree-SHA512: 4c5e54a2ac3f71835c25ce97ad0acd1859e5ae8d45ebfde087e19e9494754e0aa70a47ca5f3d6a3b509f27e28ef9d4a5269573c686250f43834d09378155681c","shortMessageHtmlLink":"Merge #1490: Remove usage of blockdata:: from bitcoin paths"}},{"before":"275e069cf45ec13a59225043ecac399986f6ca26","after":"5c7cc30978d793b028d00ae65567540d7770ecec","ref":"refs/heads/master","pushedAt":"2024-06-26T22:51:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1468: feat: use `Weight` type instead of `usize`\n\n438cd4682d14b5f4c6c9c653c9f05ccaaecb815d refactor(wallet)!: change WeightedUtxo to use Weight type (Leonardo Lima)\n\nPull request description:\n\n fixes #1466\n depends on #1448\n \n\n ### Description\n\n This PR is a follow-up on top of #1448, and should be rebased and merged after it, it uses the rust-bitcoin `Weight` type instead of the current `usize` usage.\n\n NOTE: ~~It also adds a new `MiniscriptError` variant, and remove the `.unwrap()` usage.~~ As suggested I'll address this on another issue #1485, trying to reproduce the error first.\n\n \n\n ### Notes to the reviewers\n It should be ready to review after #1448 gets merged.\n \n\n ### Changelog notice\n - Change `WeightedUtxo` `satisfaction_weight` has been changed to use `Weight` type.\n - Change `TxBuilder` methods `add_foreign_utxo` and `add_foreign_utxo_with_sequence` to expect `Weight` as `satisfaction_weight` type.\n\n \n \n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\nACKs for top commit:\n storopoli:\n Anyways, ACK 438cd4682d14b5f4c6c9c653c9f05ccaaecb815d\n notmandatory:\n ACK 438cd4682d14b5f4c6c9c653c9f05ccaaecb815d\n\nTree-SHA512: 1998fe659833da890ce07aa746572ae24d035e636732c1a11b7828ffed48e753adb4108f42d00b7cd05e6f45831a7a9840faa26f94058fc13760497837af002f","shortMessageHtmlLink":"Merge #1468: feat: use Weight type instead of usize"}},{"before":"6dab68d35b60713448c17a9784adaf660057c53f","after":"275e069cf45ec13a59225043ecac399986f6ca26","ref":"refs/heads/master","pushedAt":"2024-06-25T19:23:23.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1424: Remove trait ComputeSighash\n\n55a17293a455435c868f60f0c9f06ba80f2f0e4c ref(signer): Use `Psbt::sighash_ecdsa` for computing sighashes (valued mammal)\nf2a2dae84cd04df4301f91745efa137975eeb8e4 refactor(signer): Remove trait ComputeSighash (valued mammal)\n\nPull request description:\n\n This PR does some cleanup of the `bdk_wallet` signer module most notably by removing the internal trait `ComputeSighash` and replacing old code for computing the sighash (for legacy and segwit context) with a single method [`Psbt::sighash_ecdsa`](https://docs.rs/bitcoin/0.31.2/bitcoin/psbt/struct.Psbt.html#method.sighash_ecdsa). The logic for computing the taproot sighash is unchanged and extracted to a new helper function `compute_tap_sighash`.\n\n - [x] Unimplement `ComputeSighash`\n - [x] Try de-duplicating code by using `Psbt::sighash_ecdsa`. see https://github.com/bitcoindevkit/bdk/pull/1023#discussion_r1263140218\n - Not done in this PR: Consider removing unused `SignerError` variants\n\n fixes #1038\n\n ### Notes to the reviewers\n\n ### Changelog notice\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\nTop commit has no ACKs.\n\nTree-SHA512: 56af3c9c463513ca3bae5480aa5b90d78de119c3c09c824a7220eb6832d5f403b172afc8168228918ea1adabb4bf8fca858790adfebf84fc334b4fc1cc99d3cd","shortMessageHtmlLink":"Merge #1424: Remove trait ComputeSighash"}},{"before":"e406675f43422da14267a16326d429a53369fb52","after":"6dab68d35b60713448c17a9784adaf660057c53f","ref":"refs/heads/master","pushedAt":"2024-06-23T02:28:43.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1395: Remove `rand` dependency from `bdk`\n\n4bddb0de6262fb4014d51baf8c9453eb45a3d0ef feat(wallet): add back TxBuilder finish() and sort_tx() with thread_rng() (Steve Myers)\n45c0cae0a461232bf746375083e2005c5df5f913 fix(bdk): remove rand dependency (rustaceanrob)\n\nPull request description:\n\n ### Description\n\n WIP towards removing `rand` fixes #871\n\n The `rand` dependency was imported explicitly, but `rand` is also implicitly used through the `rand-std` feature flag on `bitcoin`.\n\n ### Notes to he reviewers\n\n **Updated:**\n\n `rand` was used primarily in two parts of `bdk`. Particularly in signing and in building a transaction.\n\n Signing:\n - Used implicitly in [`sign_schnorr`](https://docs.rs/bitcoin/latest/bitcoin/key/struct.Secp256k1.html#method.sign_schnorr), but nowhere else within `signer`.\n\n Transaction ordering:\n - Used to shuffle the inputs and outputs of a transaction, the default\n - Used in the single random draw __as a fallback__ to branch and bound during coin selection. Branch and bound is the default coin selection option.\n\n See conversation for proposed solutions.\n\n ### Changelog notice\n\n - Remove the `rand` dependency from `bdk`\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### New Features:\n\n * [x] I've added tests for the new feature\n * [x] I've added docs for the new feature\n\n #### Bugfixes:\n\n * [x] This pull request breaks the existing API\n * [x] I've added tests to reproduce the issue which are now passing\n * [x] I'm linking the issue being fixed by this PR\n\nACKs for top commit:\n ValuedMammal:\n ACK 4bddb0de6262fb4014d51baf8c9453eb45a3d0ef\n notmandatory:\n ACK 4bddb0de6262fb4014d51baf8c9453eb45a3d0ef\n\nTree-SHA512: 662d9bcb1e02f8195d73df16789b8c2aba8ccd7b37ba713ebb0bfd19c66163acbcb6f266b64f88347cbb1f96b88c8a150581012cbf818d1dc8b4437b3e53fc62","shortMessageHtmlLink":"Merge #1395: Remove rand dependency from bdk"}},{"before":"05438017876c3338d091ca85e52242b455e2193a","after":"e406675f43422da14267a16326d429a53369fb52","ref":"refs/heads/master","pushedAt":"2024-06-20T04:41:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"evanlinjin","name":"志宇","path":"/evanlinjin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14065705?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1476: fix(wallet)!: Simplify `SignOptions` and improve finalization logic\n\n996605f2bf9440dd42647123a127c038253f0247 fix(wallet)!: Simplify `SignOptions` and improve finalization logic (valued mammal)\n\nPull request description:\n\n Rather than comingle various `SignOptions` with the finalization step, we simply clear all fields when finalizing as per the PSBT spec in BIPs 174 and 371 which is more in line with user expectations.\n\n ### Notes to the reviewers\n\n I chose to re-implement some parts of [`finalize_input`](https://docs.rs/miniscript/latest/src/miniscript/psbt/finalizer.rs.html#434) since it's fairly straightforward, see also https://github.com/bitcoindevkit/bdk/issues/1461#issuecomment-2171983426. I had to refactor some wallet tests but didn't go out of my way to add additional tests.\n\n closes #1461\n\n ### Changelog notice\n\n - Removed field `remove_partial_sigs` from `SignOptions`\n - Removed field `remove_taproot_extras` from `SignOptions`\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### Bugfixes:\n\n * [x] This pull request breaks the existing API\n * [ ] I've added tests to reproduce the issue which are now passing\n * [x] I'm linking the issue being fixed by this PR\n\nACKs for top commit:\n evanlinjin:\n re-ACK 996605f2bf9440dd42647123a127c038253f0247\n\nTree-SHA512: 63e78e75c22031424e87fcc26cd6b0015c626cd57c02680256bad9d1783cef71f4048b2d7ce5d0425cd4239351e37dd0e2a626dda7e8417af7fc52cb0afe6933","shortMessageHtmlLink":"Merge #1476: fix(wallet)!: Simplify SignOptions and improve finaliz…"}},{"before":"410ba173e455edefd1c374d43f8cb2313f4bee43","after":"05438017876c3338d091ca85e52242b455e2193a","ref":"refs/heads/master","pushedAt":"2024-06-15T02:44:08.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1472: Bump bdk version to 1.0.0-alpha.13\n\ne21affdbbb9308bd6be38218ae5a26d9c800efe2 Bump bdk version to 1.0.0-alpha.13 (Steve Myers)\n\nPull request description:\n\n ### Description\n\n Bump bdk version to 1.0.0-alpha.13\n\n bdk_chain to 0.16.0\n bdk_bitcoind_rpc to 0.12.0\n bdk_electrum to 0.15.0\n bdk_esplora to 0.15.0\n bdk_file_store to 0.13.0\n bdk_sqlite keep at 0.2.0\n bdk_testenv to 0.6.0\n bdk_hwi to 0.3.0\n\n fixes #1471\n\nTop commit has no ACKs.\n\nTree-SHA512: 987adf5084dc84261fb3767d8b1f8ebe3dd94a8a4eb30b8529b70c055e4f122cb48063d205e90831169c2d7b2a1509aef1966857bd6b67e78cfb0d52144822d9","shortMessageHtmlLink":"Merge #1472: Bump bdk version to 1.0.0-alpha.13"}},{"before":"bc420923c2c68a97240e32debcc71814832d0a3f","after":"410ba173e455edefd1c374d43f8cb2313f4bee43","ref":"refs/heads/master","pushedAt":"2024-06-15T02:14:41.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1473: Remove `persist` submodule\n\na0bf45bef1b53f8aec273f7fe89915f3d41974c0 docs: remove PersistBackend from docs, Cargo.toml and wallet README.md (Steve Myers)\nfeb27df180938759670afd2c9cd15529a22c4772 feat(chain)!: add `take` convenience method to `Append` trait (志宇)\n1eca568be5bb0c234fa1cea2eb7f9424f60974eb feat!: rm `persist` submodule (志宇)\n\nPull request description:\n\n ### Description\n\n @LLFourn suggested these changes which greatly simplifies the amount of code we have to maintain and removes the `async-trait` dependency. We remove `PersistBackend`, `PersistBackendAsync`, `StageExt` and `StageExtAsync` completely. Instead, we introduce `Wallet::take_staged(&mut self) -> Option`.\n\n The original intention to keep a staging area (`StageExt`, `StageExtAsync`) is to enforce:\n 1. The caller will not persist an empty changeset.\n 2. The caller does not take the staged changeset if the database (`PersistBackend`) fails.\n\n We achieve `1.` by returning `None` if the staged changeset is empty.\n\n `2.` is not too important. The caller can try figure out what to do with the changeset if persisting to db fails.\n\n ### Notes to the reviewers\n\n I added a `take` convenience method to the `Append` trait. I thought it would be handy for the caller to do a staging area with this.\n\n ### Changelog notice\n\n * Remove `persist` submodule from `bdk_chain`.\n * Change `Wallet` to outsource it's persistence logic by introducing `Wallet::take_staged`.\n * Add `take` convenience method to `Append` trait.\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### New Features:\n\n ~* [ ] I've added tests for the new feature~\n * [x] I've added docs for the new feature\n\nACKs for top commit:\n notmandatory:\n ACK a0bf45bef1b53f8aec273f7fe89915f3d41974c0\n evanlinjin:\n self-ACK a0bf45bef1b53f8aec273f7fe89915f3d41974c0\n\nTree-SHA512: 38939ab446c84d9baecd4cd36a7b66add5a121212ad5e06ade04a60f7903133dd9a20219e230ab8a40404c47e07b946ccd43085572d71c3a2a80240a2223a500","shortMessageHtmlLink":"Merge #1473: Remove persist submodule"}},{"before":"782eb56bd4c936d889565358caf0d9079e3ae82f","after":"bc420923c2c68a97240e32debcc71814832d0a3f","ref":"refs/heads/master","pushedAt":"2024-06-14T15:38:35.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1458: fix: typo on `SignedAmount` instead of `Amount`\n\n20341a3ca1ab85ad77e022b5028136a635c3f42c fix: typo on `SignedAmount` instead of `Amount` (Leonardo Lima)\n\nPull request description:\n\n \n\n ### Description\n\n It fixes the typo on the `expect()` message introduced on #1426, noticed at https://github.com/bitcoindevkit/bdk/pull/1426#discussion_r1626761825\n\n \n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\nACKs for top commit:\n storopoli:\n ACK 20341a3ca1ab85ad77e022b5028136a635c3f42c\n notmandatory:\n ACK 20341a3ca1ab85ad77e022b5028136a635c3f42c\n\nTree-SHA512: 62deb7308b2a6891eeb4598ebdf3c5ee1541fc52fd454bca2816b819bd7f6ab25c18e10c4166c80c4e553bcb3ce2207323376d260484a956837ac857854cbd6b","shortMessageHtmlLink":"Merge #1458: fix: typo on SignedAmount instead of Amount"}},{"before":"1c593a34eeed98c580c993a06495d5a1be61f7af","after":"782eb56bd4c936d889565358caf0d9079e3ae82f","ref":"refs/heads/master","pushedAt":"2024-06-13T22:53:01.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1454: Refactor wallet and persist mod, remove bdk_persist crate\n\nec36c7eccacc8347568b77ed1dfc0c50a2524906 feat(example): use changeset staging with rpc polling example (志宇)\n19328d4999c19557778b7b108f88f42b1258957e feat(wallet)!: change persist API to use `StageExt` and `StageExtAsync` (志宇)\n2e40b0118cc88539f38420e347eb4d562b1be0b1 feat(chain): reintroduce a way to stage changesets before persisting (志宇)\n36e82ec6869c5c5c5669d4d049636225f9a8e986 chore(chain): relax `miniscript` feature flag scope (志宇)\n9e97ac03307f3194e043ef430e4bde2e5c25254c refactor(persist): update file_store, sqlite, wallet to use bdk_chain::persist (Steve Myers)\n54b0c11cbe1d08eb955e50f0ac719a0b19e3032a feat(persist): add PersistAsync trait and StagedPersistAsync struct (Steve Myers)\naa640ab2770bea19259eedea6882b202a5845f35 refactor(persist): rename PersistBackend to Persist, move to chain crate (Steve Myers)\n\nPull request description:\n\n ### Description\n\n Sorry to submit another refactor PR for the persist related stuff, but I think it's worth revisiting. My primary motivations are:\n\n 1. remove `db` from `Wallet` so users have the ability to use `async` storage crates, for example using `sqlx`. I updated docs and examples to let users know they are responsible for persisting changes.\n 2. remove the `anyhow` dependency everywhere (except as a dev test dependency). It really doesn't belong in a lib and by removing persistence from `Wallet` it isn't needed.\n 3. remove the `bdk_persist` crate and revert back to the original design with generic error types. I kept the `Debug` and `Display` constrains on persist errors so they could still be used with the `anyhow!` macro.\n\n ### Notes to the reviewers\n\n I also replaced/renamed old `Persist` with `StagedPersist` struct inspired by #1453, it is only used in examples. The `Wallet` handles it's own staging.\n\n ### Changelog notice\n\n Changed\n\n - Removed `db` from `Wallet`, users are now responsible for persisting changes, see docs and examples.\n - Removed the `bdk_persist` crate and moved logic back to `bdk_chain::persist` module.\n - Renamed `PersistBackend` trait to `Persist`\n - Replaced `Persist` struct with `StagedPersist`\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\nACKs for top commit:\n ValuedMammal:\n ACK ec36c7eccacc8347568b77ed1dfc0c50a2524906\n\nTree-SHA512: 380b94ae42411ea174720b7c185493c640425f551742f25576a6259a51c1037b441a238c6043f4fdfbf1490aa15f948a34139f1850d0c18d285110f6a9f36018","shortMessageHtmlLink":"Merge #1454: Refactor wallet and persist mod, remove bdk_persist crate"}},{"before":"3b040a7ee69c7fefac6c3ab57c17b220e0beb9fb","after":"1c593a34eeed98c580c993a06495d5a1be61f7af","ref":"refs/heads/master","pushedAt":"2024-06-13T15:11:36.000Z","pushType":"push","commitsCount":15,"pusher":{"login":"evanlinjin","name":"志宇","path":"/evanlinjin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14065705?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1463: No descriptor ids in spk txout index\n\n8dd174479f9719309663ed979a5b4b86aca0a6e9 refactor(chain): compute txid once for `KeychainTxOutIndex::index_tx` (志宇)\n639d735ca0ae54d8b2c3bc28241032154b94d45e refactor(chain): change field names to be more sane (志宇)\n5a02f40122f1bfa06c80bac93f68f5799225d133 docs(chain): fix docs (志宇)\nc77e12bae7f465ec7fb08b8be16d99793c757cf0 refactor(chain): `KeychainTxOutIndex` use `HashMap` for fields (志宇)\n4d3846abf4f59b4a97bb825281655a6b67275603 chore(chain): s/replenish_lookahead/replenish_inner_index/ (LLFourn)\n8779afdb0bf4e9b1004f47f86a770d25938d206d chore(chain): document insert_descriptor invariants better (LLFourn)\n69f2a695f7dc25478489080598fea0813ea7d93d refactor(chain): improve replenish lookeahd internals (LLFourn)\n5a584d0fd8c138757a10c7af93ec9e09523317e1 chore(chain): Fix Indexed and KeychainIndexed documentaion (Lloyd Fournier)\nb8ba5a02066fad7ab2ce276ba071385cd1dbbe3a chore(chain): Improve documentation of keychain::ChangeSet (LLFourn)\n101a09a97fa5e8d675c13396b9a800665b1b6c22 chore(chain): Standardise KeychainTxOutIndex return types (LLFourn)\nbce070b1d662db7ac120e1d236fdda51842ad738 chore(chain): add type IndexSpk, fix clippy type complexity warning (Steve Myers)\n4d2442c37f5c1bd822795271a79676d1ffbe7916 chore(chain): misc docs and insert_descriptor fixes (LLFourn)\nbc2a8be97919f0d09b61438527bda24796bcec94 refactor(keychain): Fix KeychainTxOutIndex range queries (LLFourn)\n3b2ff0cc953204c9925ace8e2f0bbef409c63ad5 Write failing test for keychain range querying (LLFourn)\n\nPull request description:\n\n Fixes #1459\n\n This reverts part of the changes in #1203. There the `SpkTxOutIndex<(K,u32)>` was changed to `SpkTxOutIndex<(DescriptorId, u32>)`. This led to a complicated translation logic in `KeychainTxOutIndex` (where the API is based on `K`) to transform calls to it to calls to the underlying `SpkTxOutIndex` (which now indexes by `DescriptorId`). The translation layer was broken when it came to translating range queries from the `KeychainTxOutIndex`. My solution was just to revert this part of the change and remove the need for a translation layer (almost) altogether. A thin translation layer remains to ensure that un-revealed spks are filtered out before being returned from the `KeychainTxOutIndex` methods.\n\n I feel like this PR could be extended to include a bunch of ergonomics improvements that are easier to implement now. But I think that's the point of https://github.com/bitcoindevkit/bdk/pull/1451 so I held off and should probably go and scope creep that one instead.\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### Bugfixes:\n\n * [x] This pull request breaks the existing API\n * [x] I've added tests to reproduce the issue which are now passing\n * [x] I'm linking the issue being fixed by this PR\n\nACKs for top commit:\n evanlinjin:\n ACK 8dd174479f9719309663ed979a5b4b86aca0a6e9\n\nTree-SHA512: 283e6b6d4218902298e2e848fe847a6c85e27af4eee3e4337e3dad6eacf9beaa08ac99b1dce7b6fb199ca53931e543ea365728a81c41567a2e510cce77b12ac0","shortMessageHtmlLink":"Merge #1463: No descriptor ids in spk txout index"}},{"before":"473ef9714f642ee2ad393541763881cf69132262","after":"3b040a7ee69c7fefac6c3ab57c17b220e0beb9fb","ref":"refs/heads/master","pushedAt":"2024-06-13T04:12:41.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1448: bump(deps): upgrade rust `bitcoin` to `0.32.0`, `miniscript` to `0.12.0` and others\n\n11200810d048abb8deb3c7961ca93c68011d41fd chore(wallet): rm dup code (志宇)\n2a4564097bd70905ed9fa21b92cdf074a72f878e deps(bdk): bump `bitcoin` to `0.32.0`, miniscript to `12.0.0` (Leonardo Lima)\n\nPull request description:\n\n fixes #1422\n \n\n ### Description\n\n This PR focuses on upgrading the `rust-bitcoin` and `miniscript` versions, to `0.32.0` and `0.12.0`, respectively. It also bumps the versions of other BDK ecosystem crates that also rely on both `rust-bitcoin` and `miniscript`, being:\n\n - electrum-client https://github.com/bitcoindevkit/rust-electrum-client/pull/133\n - esplora-client https://github.com/bitcoindevkit/rust-esplora-client/pull/85\n - hwi https://github.com/bitcoindevkit/rust-hwi/pull/99\n\n I structured the PR in multiple commits, with closed scope, being one for each BDK crate being upgraded, and one for each kind of fix and upgrade required, it seems like a lot of commits (**that should be squashed before merging**), but I think it'll make it easier during review phase.\n\n In summary I can already mention some of the main changes:\n - using `compute_txid()` instead of deprecated `txid()`\n - using `minimal_non_dust()` instead of `dust_value()`\n - using the renamed `signature` and `sighash_type` fields\n - using proper `sighash::P2wpkhError`, `sighash::TaprootError` instead of older `sighash::Error`\n - conversion from `Network` to new expected `NetworkKind` #1465\n - conversion from the new `Weight` type to current expected `usize` #1466\n - using `.into()` to convert from AbsLockTime and `RelLockTime` to `absolute::LockTime` and `relative::LockTime`\n - using Message::from_digest() instead of relying on deprecated `ThirtyTwoByteHash` trait.\n - updating the miniscript policy and dsl to proper expect and handle new `Threshold` type, instead of the previous two parameters.\n\n \n\n ### Notes to the reviewers\n Again, I structured the PR in multiple commits, with closed scope, being one for each BDK crate being upgraded, and one for each kind of fix and upgrade required, it seems like a lot of commits (**that should be squashed before merging**), but I think it'll make it easier during review phase.\n\n It should definitely be carefully reviewed, especially the last commits for the wallet crate scope, the ones with the semantic `fix(wallet)`.\n\n I would also appreciate if @tcharding reviewed it, as he gave a try in the past (#1400 ), and I relied on some of it for the policy part of it, other rust-bitcoin maintainers reviews are a definitely welcome 😁\n\n \n\n ### Changelog notice\n > // TODO(@oleonardolima): Do another pass and double check the changes\n - Use `compute_txid()` instead of deprecated `txid()`\n - Use `minimal_non_dust()` instead of `dust_value()`\n - Use `signature` and `sighash_type` fields, instead of previous `sig` and `hash_type`\n - Use `sighash::P2wpkhError`, and `sighash::TaprootError` instead of older `sighash::Error`\n - Converts from `Network` to `NetworkKind`, where expected\n - Converts from `Weight` type to current used `usize`\n - Use `.into()` to convert from `AbsLockTime` and `RelLockTime` to `absolute::LockTime` and `relative::LockTime`\n - Remove use of deprecated `ThirtyTwoByteHash` trait, use `Message::from_digest()`\n - Update the miniscript policy and dsl macros to proper expect and handle new `Threshold` type, instead of the previous two parameters.\n\n \n \n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\n #### New Features:\n\n * [ ] I've added tests for the new feature\n * [ ] I've added docs for the new feature\n\n #### Bugfixes:\n\n * [ ] This pull request breaks the existing API\n * [ ] I've added tests to reproduce the issue which are now passing\n * [ ] I'm linking the issue being fixed by this PR\n\nACKs for top commit:\n notmandatory:\n ACK 11200810d048abb8deb3c7961ca93c68011d41fd\n\nTree-SHA512: ba1ab64603b41014d3f0866d846167f77d31959ca6f1d9c3181d5e543964f5d772e05651d63935ba7bbffeba41a66868d27de4c32129739b9ca50f3bbaf9f2a1","shortMessageHtmlLink":"Merge #1448: bump(deps): upgrade rust bitcoin to 0.32.0, `miniscr…"}},{"before":"b4a847f801ee824336026fed29ec620be3d30f51","after":"473ef9714f642ee2ad393541763881cf69132262","ref":"refs/heads/master","pushedAt":"2024-06-12T00:36:54.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"LLFourn","name":"Lloyd Fournier","path":"/LLFourn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3734083?s=80&v=4"},"commit":{"message":"Merge pull request #1470 from notmandatory/ci/pin_url_dep\n\nci: pin url dependency version to build with rust 1.63","shortMessageHtmlLink":"Merge pull request #1470 from notmandatory/ci/pin_url_dep"}},{"before":"c5a3b62d633fc1fa0ebda144237de96dbe1636d6","after":"b4a847f801ee824336026fed29ec620be3d30f51","ref":"refs/heads/master","pushedAt":"2024-06-06T04:17:54.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"evanlinjin","name":"志宇","path":"/evanlinjin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14065705?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1441: Remove duplicated InsufficientFunds error member\n\n29c8a00b435bdf2fa1d7c707ad09c1a47edc07b3 chore(wallet): remove duplicated InsufficientFunds error member from CreateTxError (e1a0a0ea)\n\nPull request description:\n\n closes #1440\n\n ### Description\n\n - Replace `CreateTxError::InsufficientFunds` use by `coin_selection::Error::InsufficientFunds`\n - Remove `InsufficientFunds` member from `CreateTxError` enum\n - Rename `coin_selection::Error` to `coin_selection::CoinSelectionError`\n\n ### Notes to the reviewers\n\n - We could also keep both members but rename one of them to avoid confusion\n\n ### Checklists\n\n #### All Submissions:\n\n * [X] I've signed all my commits\n * [X] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [X] I ran `cargo fmt` and `cargo clippy` before committing\n\nACKs for top commit:\n evanlinjin:\n ACK 29c8a00b435bdf2fa1d7c707ad09c1a47edc07b3\n notmandatory:\n ACK 29c8a00b435bdf2fa1d7c707ad09c1a47edc07b3\n\nTree-SHA512: a1132d09929f99f0a5e82d3ccfaa85695ae50d7d4d5d9e8fd9ef847313918ed8c7a01005f45483fef6aeae36730a0da2fed9a9f10c3ce2f0a679527caf798bfe","shortMessageHtmlLink":"Merge #1441: Remove duplicated InsufficientFunds error member"}},{"before":"8eef350bd08057acc39b6fc50b1217db5e29b968","after":"c5a3b62d633fc1fa0ebda144237de96dbe1636d6","ref":"refs/heads/master","pushedAt":"2024-06-06T04:11:09.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"notmandatory","name":"Steve Myers","path":"/notmandatory","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4724730?s=80&v=4"},"commit":{"message":"Merge bitcoindevkit/bdk#1390: Make Wallet require a change descriptor\n\n8bc3d35f6c83d078551c4bc57f72f13324865486 fix(wallet): `LoadError::MissingDescriptor` includes the missing KeychainKind (valued mammal)\n412dee1f5b027af7800ee155717d47f4ab4b60e0 ref(wallet)!: Make `Wallet::public_descriptor` infallible (valued mammal)\nc2513e1090374d7871a8623845bd10757e6ab0b3 test(wallet): Clarify docs for get_funded_wallet (valued mammal)\n9d954cf7d25d43c77115cd931407005a09365389 refactor(wallet)!: Make Wallet require a change descriptor (valued mammal)\n\nPull request description:\n\n All `Wallet` constructors are modified to require a change descriptor, where previously it was optional. Additionally we enforce uniqueness of the change descriptor to avoid ambiguity when deriving scripts and ensure the wallet will always have two distinct keystores.\n\n Notable changes\n\n * Add error `DescriptorError::ExternalAndInternalAreTheSame`\n * Remove error `CreateTxError::ChangePolicyDescriptor`\n * No longer rely on `map_keychain`\n\n fixes #1383\n\n ### Notes to the reviewers\n\n ### Changelog notice\n\n Changed:\n\n Constructing a Wallet now requires two distinct descriptors.\n\n ### Checklists\n\n #### All Submissions:\n\n * [x] I've signed all my commits\n * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)\n * [x] I ran `cargo fmt` and `cargo clippy` before committing\n\nACKs for top commit:\n notmandatory:\n re-ACK 8bc3d35f6c83d078551c4bc57f72f13324865486\n\nTree-SHA512: f0621deb75d8e1e484b18b40d850f64e26314e39c4778f56c627763ddbffd376288bf6f0f37b61ba2ba744c7083683497d2dfef42bc4ef7d3ed7b374a54d813a","shortMessageHtmlLink":"Merge #1390: Make Wallet require a change descriptor"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEjrTQUgA","startCursor":null,"endCursor":null}},"title":"Activity · bitcoindevkit/bdk"}