]> Untitled Git - bdk/log
bdk
12 months agofeat(chain)!: `O(n)` canonicalization algorithm
志宇 [Sun, 3 Nov 2024 01:51:58 +0000 (12:51 +1100)]
feat(chain)!: `O(n)` canonicalization algorithm

This is an O(n) algorithm to determine the canonical set of txids.

* Run 1: Iterate txs with anchors, starting from highest anchor height
  txs.
* Run 2: Iterate txs with last-seen values, starting from highest
  last-seen values.
* Run 3: Iterate txs that are remaining from run 1 which are not
  anchored in the best chain.

Since all transitively-anchored txs are added to the `canonical` set in
run 1, and anything that conflicts to anchored txs are already added to
`not_canonial`, we can guarantee that run 2 will not traverse anything
that directly or indirectly conflicts anything that is anchored.

Run 3 is needed in case a tx does not have a last-seen value, but is
seen in a conflicting chain.

`TxGraph` is updated to include indexes `txids_by_anchor_height` and
`txids_by_last_seen`. These are populated by the `insert_anchor` and
`insert_seen_at` methods. Generic constaints needed to be tightened as
these methods need to be aware of the anchor height to create
`LastSeenIn`.

12 months agofeat(chain)!: Add `run_until_finished` methods
志宇 [Tue, 26 Nov 2024 01:36:59 +0000 (12:36 +1100)]
feat(chain)!: Add `run_until_finished` methods

Add `run_until_finished` methods for `TxAncestors` and `TxDescendants`.
This is useful for traversing until the internal closure returns `None`.

Signatures of `TxAncestors` and `TxDescendants` are changed to enforce
generic bounds in the type definition.

12 months agofeat(chain)!: `TxGraph` contain anchors in one field
志宇 [Wed, 16 Oct 2024 14:28:23 +0000 (14:28 +0000)]
feat(chain)!: `TxGraph` contain anchors in one field

Previously, the field `TxGraph::anchors` existed because we assumed
there was use in having a partially-chronological order of transactions
there. Turns out it wasn't used at all.

This commit removes anchors from the `txs` field and reworks `anchors`
field to be a map of `txid -> set<anchors>`.

This is a breaking change since the signature of `all_anchors()` is
changed.

Update `TxGraph` field docs for `empty_outspends` and `empty_anchors`.

12 months agoMerge bitcoindevkit/bdk#1752: Remove serde json dependency from chain crate
Steve Myers [Mon, 9 Dec 2024 02:19:39 +0000 (20:19 -0600)]
Merge bitcoindevkit/bdk#1752: Remove serde json dependency from chain crate

1c81cd53fb859f4fa9e416c1a776f5295f7da44b refactor(chain)!: change String by &str for versioned scripts in migrate_schema (nymius)
265b59b6ef1c148875f4d6601e5a7e5f0b01785a test(chain): add compatibility test for v0 to v1 sqlite schema migration (nymius)
4ec7940158e80c0e8d657ffa07f540de81e3cbfa test(wallet): pattern match ChainPosition::Confirmed in anchors persistence check (nymius)
2eb19f5073abd7d5e9c9b4183aa5efac6e76aca9 refactor(chain)!: move schemas to their own methods (nymius)
5603e9f6d1d3ff130317d6fd16332bf8b049b409 test(chain): use ChangeSet<ConfirmationBlockTime> instead of ChangeSet<BlockId> (nymius)
c3ea54d3bc8383148f86800bc60d2469486885a4 test(wallet): check persisted anchors does not lose data (nymius)
d41cb62193973481cb18bb40d61a4b17609a8248 build(chain): remove serde_json dependency (nymius)
7319f510016014a2ce4f9ab6e194e36345829357 refactor(chain)!: remove AnchorImpl wrapper for Anchor implementors (nymius)
b587b0fcadcc61b9f46336ffee5621363e409092 refactor(chain)!: impl sqlite for ConfirmationBlockTime anchored changesets (nymius)

Pull request description:

  ### Description

  As expressed by @LLFourn _We want to not depend on serde_json. If we keep it around for serializing anchors we won't be able to remove it in the future because it will always be needed to do migrations_
  Currently there is only one widely used anchor, `ConfirmationBlockTime`.

  The decision was to constrain support to just be for a single anchor type ConfirmationBlockTime. The anchor table will represent all fields of `ConfirmationBlockTime`, each one in its own column.

  The reasons:

  - No one is using rusqlite with any other anchor type, and if they are, they can do something custom anyway.
  - The anchor representation may change in the future, supporting for multiple Anchor types here will cause more problems for migration later on.

  Resolves #1695

  ### Notes to the reviewers

  <details>
      <summary>Why the type of the confirmation_time column is INTEGER?</summary>

  By [sqlite3 docs](https://www.sqlite.org/datatype3.html):

  > Each value stored in an SQLite database (or manipulated by the database engine) has one of the following storage classes:
  > ...
  > INTEGER. The value is a *signed integer*, stored in 0, 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

  (Remember confirmation time is `u64`)
  > REAL. The value is a floating point value, stored as an 8-byte IEEE floating point number.
  > ...
  > SQLite uses a more general dynamic type system. In SQLite, the datatype of a value is associated with the value itself, not with its container.
  > ...
  > In order to maximize compatibility between SQLite and other database engines, ..., SQLite supports the concept of "type affinity" on columns. The type affinity of a column is the recommended type for data stored in that column. The important idea here is that the type is recommended, not required. Any column can still store any type of data. It is just that some columns, given the choice, will prefer to use one storage class over another. The preferred storage class for a column is called its "affinity".
  > ...
  > A column with NUMERIC affinity may contain values using all five storage classes. When text data is inserted into a NUMERIC column, **the storage class of the text is converted to INTEGER or REAL (in order of preference)** if the text is a well-formed integer or real literal, respectively.
  > A column that uses INTEGER affinity behaves the same as a column with NUMERIC affinity.

  But anchor table was defined using the STRICT keyword, again, by sqlite docs:

  > ... The STRICT keyword causes the following differences:
  > ...
  > SQLite attempts to coerce the data into the appropriate type using the usual affinity rules, as PostgreSQL, MySQL, SQL Server, and Oracle all do. *If the value cannot be losslessly converted* in the specified datatype, then an SQLITE_CONSTRAINT_DATATYPE error is raised.

  So, the *TLDR*, with some help of this [blog post](https://jakegoulding.com/blog/2011/02/06/sqlite-64-bit-integers/) is:
  - SQLite INTEGER supported values range from `-2**63 to (2**63-1)`
  - If the number is bigger it will treat the number as REAL.
  - As the SQLite table is defined with the STRICT keyword, it should enforce a losslessly conversion or fail with SQLITE_CONSTRAINT_DATATYPE.

  </details>

  <details>
      <summary>Why not setting confirmation_time as BLOB or NUMERIC?</summary>

  I don't have a strong opinion on this. INTEGER was the first numeric type I found, then later I found NUMERIC and they seemed to behave in the same way, so I didn't change the type.

  I discarded BLOB and ANY first because they didn't provide a clear idea of what was being stored in the column, but in retrospective they seem to remove all the considerations that I had to do above, so maybe they are better fitted for the type.
  </details>

  <details>
      <summary>Why adding a default value to confirmation_time column if the anchor column constraint is to be NOT NULL so all copied values will be filled?</summary>

   `confirmation_time` should have the same constraint as `anchor`, to be `NOT NULL`, but as UPDATE statements might be executed in already filled tables, you must provide a default value for all the rows you are going to add the new column to. As the `confirmation_time` extraction of the json blob in anchor cannot be performed in the same step, I had to add this default value.

  This is flexibilizing the schema of the tables and extending the bug surface it may have, but I'm assuming the application layer will enforce the addition of a valid `confirmation_time` always.
  </details>

  <details>
      <summary>Why the default value of confirmation_time column is -1?</summary>

  Considering the other alternatives were to use the max value, min value or zero and confirmation time should always be positive, I considered `-1` just to be computer and human readable enough to perceive there must be something wrong if the `ConfirmationBlockTime` retrieved by the load of the wallet has this value set as the confirmation time.
  </details>

  <details>
      <summary>Why to not be STRICT with each statement?</summary>

  It is a constraint only applicable to tables on creation.
  </details>

  <details>
      <summary>Why not creating a whole new table without anchor column and with the confirmation_time column, copy the content from one to the other and drop the former table?</summary>

  Computation cost. I didn't benchmark it, and I don't know how efficient is SQLite engine under the hood, but at first sight it seems copying a single column is better than copying four.
  </details>

  <!-- 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

  - Reduce `rusqlite` implementation only to `ChangeSet<ConfirmationBlockTime>`.
  - Replace `anchor` column in sqlite by `confirmation_time`.
  - Modify `migrate_schema` `versioned_script` parameter's type to `&[&str]`.
  - Transformed existing schemas in methods to allow their individual application.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [x] I've added tests for the new feature
  * [ ] I've added docs for the new feature

  #### Bugfixes:

  * [x] This pull request breaks the existing API
  * [ ] I've added tests to reproduce the issue which are now passing
  * [x] I'm linking the issue being fixed by this PR

ACKs for top commit:
  evanlinjin:
    ACK 1c81cd53fb859f4fa9e416c1a776f5295f7da44b
  notmandatory:
    ACK 1c81cd53fb859f4fa9e416c1a776f5295f7da44b

Tree-SHA512: 96facb59d49c29bb19096b0426c0d0c9a909a17541502b5a6f80b0075a333a354cfe9d0e247f07dd5931793412512ecdd80f22ae8ace85d0bb2cbb1abdfcfa9a

12 months agoMerge bitcoindevkit/bdk#1756: fix(electrum): prevent `fetch_prev_txout` from querying...
志宇 [Fri, 6 Dec 2024 07:24:20 +0000 (18:24 +1100)]
Merge bitcoindevkit/bdk#1756: fix(electrum): prevent `fetch_prev_txout` from querying coinbase transactions

d4ef26611b83baefac65fffc0758c6ac55ade9cb test(electrum): `fetch_prev_txout` does not process coinbase transactions (Wei Chen)
0944b352156fcd797a5c199a462ccaed3761db0a fix(electrum): prevent `fetch_prev_txout` from querying coinbase transactions (Wei Chen)

Pull request description:

  Fixes #1698.

  ### Description

  `fetch_prev_txout` should not try to query the prevouts of coinbase transactions, as it may result in the Electrum server returning an error which would cause the overall `sync`/`full_scan` to fail. Without this critical bug fix,  `bdk_electrum` will crash when someone tracks an address being mined to.

  ### Notes to the reviewers

  ### Changelog notice

  * `fetch_prev_txout` no longer queries coinbase transactions.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [x] I've added tests to reproduce the issue which are now passing
  * [x] I'm linking the issue being fixed by this PR

ACKs for top commit:
  evanlinjin:
    ACK d4ef26611b83baefac65fffc0758c6ac55ade9cb

Tree-SHA512: 6423f9486e84f204cf756117cabff35ce79ee169efa43a059c1669ad0f7193b58299eee7c5672af35ab070ed8011637b0a1904866ce2f2fa4580ddc3f9f2d982

12 months agotest(electrum): `fetch_prev_txout` does not process coinbase transactions
Wei Chen [Wed, 4 Dec 2024 05:45:45 +0000 (13:45 +0800)]
test(electrum): `fetch_prev_txout` does not process coinbase transactions

12 months agofix(electrum): prevent `fetch_prev_txout` from querying coinbase transactions
Wei Chen [Wed, 6 Nov 2024 16:33:51 +0000 (00:33 +0800)]
fix(electrum): prevent `fetch_prev_txout` from querying coinbase transactions

\`fetch_prev_txout\` should not try to query the prevouts of coinbase
transactions, as it may result in the Electrum server returning an error
which would cause the overall `sync` to fail.

12 months agoMerge bitcoindevkit/bdk#1746: deps(esplora): bump `esplora-client` to 0.11.0
Steve Myers [Fri, 6 Dec 2024 04:09:09 +0000 (22:09 -0600)]
Merge bitcoindevkit/bdk#1746: deps(esplora): bump `esplora-client` to 0.11.0

90fd1a2715c08600cb894ee83717cac5522f4334 docs(esplora): update README.md (valued mammal)
f0e6395d7f39346df497c51ef7df645dbe5e9fd3 deps(esplora): bump `esplora-client` to 0.11.0 (valued mammal)

Pull request description:

  Update `bdk_esplora` to depend on esplora-client 0.11.0

  ### Notes to the reviewers

  bitcoindevkit/rust-esplora-client#103 added a generic type parameter to `AsyncClient` representing a user-defined `Sleeper` and that change is reflected here in order to call the underlying API methods. We also add a new build feature "tokio" that enables the corresponding feature in rust-esplora-client.

  closes #1742

  ### Changelog notice

  `bdk_esplora`: Bump `esplora-client` to 0.11.0

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing
  * [x] This pull request breaks the existing API
  * [x] I'm linking the issue being fixed by this PR

ACKs for top commit:
  notmandatory:
    tACK 90fd1a2715c08600cb894ee83717cac5522f4334
  oleonardolima:
    ACK 90fd1a2715c08600cb894ee83717cac5522f4334

Tree-SHA512: 98d529d3bb0dbbf4bbafeea7d30ec5e5816ac9800ba2cb7981fc6189b4b02774956c3ddbb74bf0b3e6e22798bfced36508263e4e89c248b7a6240c5c7109107b

12 months agodocs(esplora): update README.md
valued mammal [Wed, 4 Dec 2024 14:12:54 +0000 (09:12 -0500)]
docs(esplora): update README.md

12 months agodeps(esplora): bump `esplora-client` to 0.11.0
valued mammal [Sat, 23 Nov 2024 21:47:23 +0000 (16:47 -0500)]
deps(esplora): bump `esplora-client` to 0.11.0

12 months agorefactor(chain)!: change String by &str for versioned scripts in migrate_schema
nymius [Wed, 4 Dec 2024 17:08:43 +0000 (14:08 -0300)]
refactor(chain)!: change String by &str for versioned scripts in migrate_schema

`&str` is documenting clearly that `migrate_schema` should only read
`versioned_strings`.

Also, as `schema_vN` methods will return `String`, rust will always
automatically deref `&String` to `&str`.

BREAKING CHANGE: changes parameter versioned_strings from public
function migrate_schema from type &[String] to &[&str].

12 months agotest(chain): add compatibility test for v0 to v1 sqlite schema migration
nymius [Wed, 4 Dec 2024 15:36:57 +0000 (12:36 -0300)]
test(chain): add compatibility test for v0 to v1 sqlite schema migration

Why just v0 to v1 test and not a general backward compatibility test?

Is harder to craft a general compatibility test without prior knowledge
of how future schemas would look like. Also, the creation of a backward
compatibility test for each new schema change will allow the execution
of incremental backward compatibility tests with better granularity.

12 months agotest(wallet): pattern match ChainPosition::Confirmed in anchors persistence check
nymius [Mon, 2 Dec 2024 15:29:14 +0000 (12:29 -0300)]
test(wallet): pattern match ChainPosition::Confirmed in anchors persistence check

12 months agorefactor(chain)!: move schemas to their own methods
nymius [Mon, 2 Dec 2024 15:26:55 +0000 (12:26 -0300)]
refactor(chain)!: move schemas to their own methods

We would like to test backward compatibility of new schemas.
To do so, we should be able to apply schemas independently.

Why to change `rusqlite::execute` by `rusqlite::execute_batch`?
- we are going to need to return the statements of the schemas as
  Strings, because we are now returning them from methods, it seemed
  redundant to keep getting references to something is already
  referencing data, i.e., keep moving around &String instead of String
  (consider `rusqlite::execute_batch` takes multiple statements as a
  single String)
- we were calling `rusqlite::execute` with empty params, so we weren't
  trapped by the method's signature
- `rustqlite::execute_batch` does the same than we were doing applying
  statements secuentially in a loop
- the code doesn't lose error expresivity: `rusqlite::execute_batch` is
  going to fail with the same errors `rusqlite::execute` does

BREAKING CHANGE: changes public method `migrate_schema` signature.

12 months agotest(chain): use ChangeSet<ConfirmationBlockTime> instead of ChangeSet<BlockId>
nymius [Fri, 29 Nov 2024 15:58:40 +0000 (12:58 -0300)]
test(chain): use ChangeSet<ConfirmationBlockTime> instead of ChangeSet<BlockId>

The only struct implementing rustqlite is
ChangeSet<ConfirmationBlockTime> from
c49ea85423a20ebc29e3bf4ae3a6d2acdc78b8a5 on.

12 months agotest(wallet): check persisted anchors does not lose data
nymius [Fri, 29 Nov 2024 00:42:13 +0000 (21:42 -0300)]
test(wallet): check persisted anchors does not lose data

12 months agobuild(chain): remove serde_json dependency
nymius [Fri, 29 Nov 2024 00:10:53 +0000 (21:10 -0300)]
build(chain): remove serde_json dependency

12 months agorefactor(chain)!: remove AnchorImpl wrapper for Anchor implementors
nymius [Thu, 28 Nov 2024 23:58:36 +0000 (20:58 -0300)]
refactor(chain)!: remove AnchorImpl wrapper for Anchor implementors

AnchorImpl was a wrapper created to allow the implementation of foreign
traits, like From/ToJson from serde_json for external unknown structs
implementing the Anchor trait.

As the Anchor generic in the rusqlite implementation for anchored
ChangeSets was the only place where this AnchorImpl was used and it has
been fixed to the anchor ConfirmationBlockTime, there is no more reason
to keep this wrapper around.

12 months agorefactor(chain)!: impl sqlite for ConfirmationBlockTime anchored changesets
nymius [Wed, 27 Nov 2024 01:05:08 +0000 (22:05 -0300)]
refactor(chain)!: impl sqlite for ConfirmationBlockTime anchored changesets

We want to not depend on serde_json. If we keep it around for
serializing anchors we won't be able to remove it in the future because
it will always be needed to do migrations.
Currently there is only one widely used anchor, ConfirmationBlockTime.

The desicion was to constrain support to just be for a single anchor
type ConfirmationBlockTime. The anchor table will represent all fields
of ConfirmationBlockTime, each one in its own column.

The reasons:

- No one is using rusqlite with any other anchor type, and if they are,
  they can do something custom anyway.
- The anchor representation may change in the future, supporting for
  multiple Anchor types here will cause more problems for migration
  later on.

12 months agoMerge bitcoindevkit/bdk#1737: fix(tx_builder)!: make TxBuilder Send safe, remove...
Steve Myers [Tue, 3 Dec 2024 04:22:17 +0000 (22:22 -0600)]
Merge bitcoindevkit/bdk#1737: fix(tx_builder)!: make TxBuilder Send safe, remove Clone trait

663fb133a4aeac7e50f5d32bdba2b316b17a7e2b fix(tx_builder)!: make TxBuilder Send safe, remove Clone trait (Steve Myers)

Pull request description:

  ### Description

  Inspired by discord chat with @stevenroose as a way to make the `TxBuilder` Send safe.

  See his original patch on 1.0.0-beta.5: https://gist.github.com/stevenroose/f7736dfedfaa64bbdbb0da5875df28fc

  ### Notes to the reviewers

  I had to remove the `Clone` trait on `TxBuilder` but it was only being used in tests.

  ### Changelog notice

  - TxBuilder is now Send safe and does not implement the Clone trait

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [x] I've added tests for the new feature
  * [ ] I've added docs for the new feature

ACKs for top commit:
  evanlinjin:
    ACK 663fb133a4aeac7e50f5d32bdba2b316b17a7e2b

Tree-SHA512: 026c0f5f227b5613bbab069b2c5238266aea6f6c2ae184cf77d37777fee2ddd52a99c9e305c107a2edd855dbd182d1b9194de361703995732061649f155cb65f

12 months agoMerge bitcoindevkit/bdk#1751: deps(electrum): bump `electrum-client` to 0.22.0
Steve Myers [Tue, 3 Dec 2024 03:17:43 +0000 (21:17 -0600)]
Merge bitcoindevkit/bdk#1751: deps(electrum): bump `electrum-client` to 0.22.0

2be3b022b995d5af1a0e0fea958cb973d32085b0 deps(electrum): bump `electrum-client` to 0.22.0 (Wei Chen)

Pull request description:

  Partially resolves #1742.

  ### Description

  Updates the `electrum-client` dependency to 0.22.0 for `bdk_electrum`.

  ### Notes to the reviewers

  ### Changelog notice

  * Updated `electrum-client` dependency to 0.22.0.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  notmandatory:
    ACK 2be3b022b995d5af1a0e0fea958cb973d32085b0

Tree-SHA512: 72a893b3939f217823382be815a38e13bef0201ac4b320a6de9c92ff36f2d013f95701e01afba95a5e4fcd874d8f3b0f2c432de608a6d41746b03dc4d03cb6e8

12 months agoMerge bitcoindevkit/bdk#1733: feat(chain,wallet)!: Transitive `ChainPosition`
valued mammal [Sun, 1 Dec 2024 19:12:01 +0000 (14:12 -0500)]
Merge bitcoindevkit/bdk#1733: feat(chain,wallet)!: Transitive `ChainPosition`

29b374e383bc9317b55a2a58019e1948e170fabd feat(chain,wallet)!: Transitive `ChainPosition` (志宇)

Pull request description:

  ### Description

  Change `ChainPosition` to be able to represent transitive anchors and unconfirm-without-last-seen values.

  As mentioned in https://github.com/bitcoindevkit/bdk/pull/1670#issuecomment-2484535021, we want this merged first so that we have minimal changes to the API after 1670 is merged.

  ### Changelog notice

  * Change `ChainPosition` so that it is able to represent transitive anchors and unconfirmed-without-last-seen values.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  ~* [ ] I've added tests for the new feature~
  * [x] I've added docs for the new feature

ACKs for top commit:
  ValuedMammal:
    ACK 29b374e383bc9317b55a2a58019e1948e170fabd

Tree-SHA512: 58f22f38201304611341835f22f2526254009077cde6dfcd1f6051aec906ddae78f45ebd7900c35c0fb5165ed10e48a45a55fca73395edcf9bec2fb1daa1acc6

12 months agofeat(chain,wallet)!: Transitive `ChainPosition`
志宇 [Tue, 19 Nov 2024 07:47:10 +0000 (18:47 +1100)]
feat(chain,wallet)!: Transitive `ChainPosition`

Change `ChainPosition` to be able to represent transitive anchors and
unconfirm-without-last-seen values.

12 months agodeps(electrum): bump `electrum-client` to 0.22.0
Wei Chen [Fri, 29 Nov 2024 10:07:02 +0000 (18:07 +0800)]
deps(electrum): bump `electrum-client` to 0.22.0

12 months agoMerge bitcoindevkit/bdk#1749: chore: Revert `rustls` pin dependency
valued mammal [Fri, 29 Nov 2024 13:51:57 +0000 (08:51 -0500)]
Merge bitcoindevkit/bdk#1749: chore: Revert `rustls` pin dependency

8e5a7c67c0c6be4da259e6015e9a7575df0f1385 chore: Revert `rustls` pin dependency (志宇)

Pull request description:

  ### Description

  The recent release of `rustls` (0.23.19) reverts it's MSRV to 1.63 so the pin is no longer necessary.

  ### Notes to the reviewers

  Some context:
  * https://github.com/bitcoindevkit/rust-electrum-client/pull/158
  * https://github.com/rustls/rustls/pull/2244

  ### Changelog notice

  * Revert MSRV pin of `rustls`.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  LagginTimes:
    ACK 8e5a7c67c0c6be4da259e6015e9a7575df0f1385
  ValuedMammal:
    ACK 8e5a7c67c0c6be4da259e6015e9a7575df0f1385

Tree-SHA512: 355291f93a879effc8aa1d7fe0254d8f879f26d06f0d6b0ad3d7a508a53179f7c5b9ebcd2d450ee042fbd2867119cf9a15c3193af6f36c3e5548634ce689cdca

12 months agochore: Revert `rustls` pin dependency
志宇 [Fri, 29 Nov 2024 01:59:04 +0000 (12:59 +1100)]
chore: Revert `rustls` pin dependency

The recent release of `rustls` (0.23.19) reverts it's MSRV to 1.63 so
the pin is no longer necessary.

12 months agoMerge bitcoindevkit/bdk#1736: Sqlite - allow persisting anchor without tx
志宇 [Thu, 28 Nov 2024 10:49:28 +0000 (21:49 +1100)]
Merge bitcoindevkit/bdk#1736: Sqlite - allow persisting anchor without tx

18f5f3fa21f5e83dab9e30a5f536e5526883d580 test(sqlite): test persisting anchors and txs independently (valued mammal)
297ff3414909ae42d34c31f5c942fc81aa1d60f9 test(chain): add test `insert_anchor_without_tx` (valued mammal)
e69d10e7d387ffc96876b4290131d8fa9d4dd8ff doc(chain): document module `rusqlite_impl` (valued mammal)
8fa899b74619b549e4880c28a0f1d348cb68f755 fix(chain): Sqlite - allow persisting anchor without tx (志宇)

Pull request description:

  ### Description

  Previously, we may error when we insert an anchor where the txid being anchored has no corresponding tx.

  closes #1712
  replaces #961

  ### 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 -->

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [ ] I've added tests for the new feature
  * [ ] I've added docs for the new feature

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [x] I've added tests to reproduce the issue which are now passing
  * [x] I'm linking the issue being fixed by this PR

ACKs for top commit:
  evanlinjin:
    ACK 18f5f3fa21f5e83dab9e30a5f536e5526883d580
  ValuedMammal:
    ACK 18f5f3fa21f5e83dab9e30a5f536e5526883d580

Tree-SHA512: 7343eff857016f684cfb9f7af57f7be56ba36c70c36b8b4303159636f79ad5cc49a6f94354443323c9aa05c31ec7d43c22b038d9e41361596c3a346bd6a94b10

12 months agotest(sqlite): test persisting anchors and txs independently
valued mammal [Mon, 25 Nov 2024 00:51:45 +0000 (19:51 -0500)]
test(sqlite): test persisting anchors and txs independently

12 months agotest(chain): add test `insert_anchor_without_tx`
valued mammal [Sun, 24 Nov 2024 23:34:43 +0000 (18:34 -0500)]
test(chain): add test `insert_anchor_without_tx`

12 months agodoc(chain): document module `rusqlite_impl`
valued mammal [Sun, 24 Nov 2024 23:32:55 +0000 (18:32 -0500)]
doc(chain): document module `rusqlite_impl`

12 months agofix(chain): Sqlite - allow persisting anchor without tx
志宇 [Wed, 20 Nov 2024 22:43:13 +0000 (09:43 +1100)]
fix(chain): Sqlite - allow persisting anchor without tx

Previously, we may error when we insert an anchor where the txid being
anchored has no corresponding tx.

12 months agoMerge bitcoindevkit/bdk#1745: ci: pin `rustls` dependency version to build with rust...
志宇 [Mon, 25 Nov 2024 05:14:48 +0000 (16:14 +1100)]
Merge bitcoindevkit/bdk#1745: ci: pin `rustls` dependency version to build with rust 1.63

3cb5d35e1150ac2f9c0418757ff605fdbf324cee ci: pin `rustls` dependency version to build with rust 1.63 (Wei Chen)

Pull request description:

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description

  <!-- Describe the purpose of this PR, what's being adding and/or fixed -->
  `rustls` version 0.23.18 raised msrv to 1.71.
  Version 0.23.17 was pinned to CI to continue working.

  ### 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 -->
  * Pinned rustls dependency version to build with rust 1.63.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  evanlinjin:
    ACK 3cb5d35e1150ac2f9c0418757ff605fdbf324cee

Tree-SHA512: cd060438fdc55eddf6c3b9fbebf4ba415a9d602a6b433352763d4f351dba3d91ce186cd00844dc5536dfe78ad0d191bb62e8f315c763884d0a57f1da0ce7c55c

12 months agoci: pin `rustls` dependency version to build with rust 1.63
Wei Chen [Sun, 24 Nov 2024 23:45:24 +0000 (07:45 +0800)]
ci: pin `rustls` dependency version to build with rust 1.63

13 months agofix(tx_builder)!: make TxBuilder Send safe, remove Clone trait
Steve Myers [Wed, 20 Nov 2024 17:19:57 +0000 (11:19 -0600)]
fix(tx_builder)!: make TxBuilder Send safe, remove Clone trait

13 months agoMerge bitcoindevkit/bdk#1734: chore(chain)!: use `debug_assert!` on `apply_update`
Steve Myers [Fri, 22 Nov 2024 01:03:41 +0000 (19:03 -0600)]
Merge bitcoindevkit/bdk#1734: chore(chain)!: use `debug_assert!` on `apply_update`

2ec5aa488e9317d027d9625c1a4222e8c384b38e chore(chain)!: use `debug_assert!` on `apply_update` (Leonardo Lima)

Pull request description:

  fixes #1689

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description
  As mentioned in issue #1689 the `debug_assert!` is being used on other `LocalChain` methods, such as: `from_changeset`, and `apply_changeset` but it was missing on `apply_update`.

  <!-- Describe the purpose of this PR, what's being adding and/or fixed -->

  ### 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 -->

  - Add usage of `debug_assert!()` to `LocalChain::apply_update`.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [ ] I've added tests for the new feature
  * [ ] I've added docs for the new feature

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [ ] I've added tests to reproduce the issue which are now passing
  * [ ] I'm linking the issue being fixed by this PR

ACKs for top commit:
  ValuedMammal:
    ACK 2ec5aa488e9317d027d9625c1a4222e8c384b38e Thank you @oleonardolima
  notmandatory:
    ACK 2ec5aa488e9317d027d9625c1a4222e8c384b38e

Tree-SHA512: 31ac1accc825fb2b9ecfde38e43c2a662f933cfc0b8488775276ca770a5cce1d61a20ad8ba689327ed264252ad2f3ae10c9baba462a22f567395df493fb24886

13 months agoMerge bitcoindevkit/bdk#1721: chore(deps): bump hashbrown to v0.14.5
Steve Myers [Thu, 21 Nov 2024 17:39:25 +0000 (11:39 -0600)]
Merge bitcoindevkit/bdk#1721: chore(deps): bump hashbrown to v0.14.5

52fa5404bdecc96939f47f7567e2605f449b4b2a chore(deps): bump hashbrown to v0.14.5, disable default features (Tommy Volk)

Pull request description:

  Bump [`hashbrown`](https://crates.io/crates/hashbrown) to v0.15

  I ran [`cargo build-all-features` and `cargo test-all-features`](https://github.com/frewsxcv/cargo-all-features) locally for the `core` crate with no issues. Here's the output for the former:

  ```
  cargo build-all-features

      Building crate=bdk_core features=[]
      Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.04s
      Building crate=bdk_core features=[hashbrown]
      Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.04s
      Building crate=bdk_core features=[serde]
      Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.05s
      Building crate=bdk_core features=[std]
      Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.04s
      Building crate=bdk_core features=[hashbrown,serde]
      Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.04s
      Building crate=bdk_core features=[hashbrown,std]
      Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.04s
      Building crate=bdk_core features=[serde,std]
      Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.04s
      Building crate=bdk_core features=[hashbrown,serde,std]
      Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.04s
  ```

  The relevant changelog can be found between [here](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md#v0100---2021-01-16) and [here](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md#v0151---2024-11-03)

  The only notable breaking change I found was that the MSRV was bumped to v1.63. However, this is the same MSRV as we already use, so it's not a breaking change for us.

ACKs for top commit:
  notmandatory:
    ACK 52fa5404bdecc96939f47f7567e2605f449b4b2a

Tree-SHA512: 8281148b86c80e7e7dd32c40d1bc5081c0e772876e9db3f0e20a9748e755f541fa923ad596be3de5f1bb2d8e46ab8987196869ca445f46afa696b2c7552d829e

13 months agoMerge bitcoindevkit/bdk#1730: Check time when persisting in `rusqlite` impl
Steve Myers [Thu, 21 Nov 2024 03:23:08 +0000 (21:23 -0600)]
Merge bitcoindevkit/bdk#1730: Check time when persisting in `rusqlite` impl

8ec9c0a7495acc2cdc6f4444d1a1d3aca566b17b fix(chain): check time when persisting (Rob N)

Pull request description:

  Closes #1713

  Any implementation overflowing the `i64` type would be clearly faulty, so I just pass up the error if the conversion fails.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [ ] I've added tests for the new feature
  * [ ] I've added docs for the new feature

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [ ] I've added tests to reproduce the issue which are now passing
  * [ ] I'm linking the issue being fixed by this PR

ACKs for top commit:
  notmandatory:
    ACK 8ec9c0a7495acc2cdc6f4444d1a1d3aca566b17b
  oleonardolima:
    utACK 8ec9c0a7495acc2cdc6f4444d1a1d3aca566b17b

Tree-SHA512: ded7c036f7a082e181e52f0366410f572227d57af37fdfd0fc0909f629a48ad1ed69f5c8549c45fe6c7aadb7e3fa62d2b56990028bc7fd321e43d39b79d77b00

13 months agoMerge bitcoindevkit/bdk#1681: types: Make Utxo::Foreign::sequence not optional
Steve Myers [Thu, 21 Nov 2024 03:19:07 +0000 (21:19 -0600)]
Merge bitcoindevkit/bdk#1681: types: Make Utxo::Foreign::sequence not optional

d96dac426187379890fb84315a51d81f37bbd0dc types: Make Utxo::Foreign::sequence not optional (Steven Roose)

Pull request description:

  It's never kept internally as optional at this point.

ACKs for top commit:
  notmandatory:
    ReACK d96dac426187379890fb84315a51d81f37bbd0dc

Tree-SHA512: 03d72dbdb0b2b05e6e15d235e35d77bb5ed85dfa9f3bedc879a50edcd3cd22277624854c76b270bc4987f5c463bba735d6a10ac97da6aae75d503e5e1f816c6a

13 months agoMerge bitcoindevkit/bdk#1731: fix(core): Fix checkpoint Drop stack overflow
Steve Myers [Thu, 21 Nov 2024 03:15:25 +0000 (21:15 -0600)]
Merge bitcoindevkit/bdk#1731: fix(core): Fix checkpoint Drop stack overflow

2df5861c5e1bf308f1b215b19e00d882aee07e87 test(core): test `Drop` implementation of `CPInner` (valued mammal)
67e1dc37bff195d91f2959f3f4bf5d5d10da597c fix(core): Fix checkpoint Drop stack overflow (LLFourn)

Pull request description:

  Fixes #1634

  This needs a test that demonstrates the issue is fixed. I was hoping @ValuedMammal could do that for me.

ACKs for top commit:
  ValuedMammal:
    self-ACK 2df5861c5e1bf308f1b215b19e00d882aee07e87
  notmandatory:
    ACK 2df5861c5e1bf308f1b215b19e00d882aee07e87

Tree-SHA512: a431cb93505cbde2a9287de09d5faac003b8dfa01342cd22c6ca197d70a73948f94f55dfa365cc06b5be36f78458ed34d4ef5fa8c9e5e2989a21c7ce5b55d9ca

13 months agotypes: Make Utxo::Foreign::sequence not optional
Steven Roose [Tue, 12 Nov 2024 19:24:19 +0000 (16:24 -0300)]
types: Make Utxo::Foreign::sequence not optional

It's never kept internally as optional at this point.

13 months agoMerge bitcoindevkit/bdk#1732: chore(core)!: rename `SyncResult` to `SyncResponse`
Steve Myers [Thu, 21 Nov 2024 03:00:26 +0000 (21:00 -0600)]
Merge bitcoindevkit/bdk#1732: chore(core)!: rename `SyncResult` to `SyncResponse`

3b03c7bed2d132fbcdb027a8445f47f0b85d99fa chore(core)!: rename `FullScanResult` to `FullScanResponse` (Leonardo Lima)
1411cb8d58f669054c10c0dcfe67e6b271368544 chore(core)!: rename `SyncResult` to `SyncResponse` (Leonardo Lima)

Pull request description:

  fixes #1647

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description

  As mentioned in #1647 issue, the usage of `Result` in Rust is conventionally meant to be an enum type with error variant, and it's appropriate here.

  It should be `SyncResponse` instead, as it's the most appropriate alongside the other types `SyncRequest` and `SyncProgress` already being used.

  <!-- Describe the purpose of this PR, what's being adding and/or fixed -->

  ### 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 -->

  - Change `bdk_core::spk_client`'s `SyncResult` to `SyncResponse`.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [ ] I've added tests for the new feature
  * [ ] I've added docs for the new feature

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [ ] I've added tests to reproduce the issue which are now passing
  * [ ] I'm linking the issue being fixed by this PR

ACKs for top commit:
  notmandatory:
    reACK 3b03c7bed2d132fbcdb027a8445f47f0b85d99fa

Tree-SHA512: b18c44b73f21d318f9f5f61417c0244a5b1c3cea9cab6490084edb380495e58d6e078b48b4e106bb2749b08da4f4e260b497ad482342b8fb7ee9b5e5dff2e4aa

13 months agoMerge bitcoindevkit/bdk#1727: Use `bitcoin::constants::COINBASE_MATURITY`
Steve Myers [Thu, 21 Nov 2024 02:56:09 +0000 (20:56 -0600)]
Merge bitcoindevkit/bdk#1727: Use `bitcoin::constants::COINBASE_MATURITY`

309a6077d0fa263c03e5629568ae94844be0c90f fix(wallet, chain)!: use `bitcoin::constants::COINBASE_MATURITY` (Rob N)

Pull request description:

  Closes #1692

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [ ] I've added tests for the new feature
  * [ ] I've added docs for the new feature

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [ ] I've added tests to reproduce the issue which are now passing
  * [ ] I'm linking the issue being fixed by this PR

ACKs for top commit:
  notmandatory:
    ACK 309a6077d0fa263c03e5629568ae94844be0c90f
  oleonardolima:
    ACK 309a6077d0fa263c03e5629568ae94844be0c90f

Tree-SHA512: 2e97ead256a34dff8130568e82b56214be975513a210b498ff8ac2d5fd7242d3f3d911d2ada8ce9ec04db4f5f87f9144ea1728784bd5c1581ee3b92a4c7188b7

13 months agoMerge bitcoindevkit/bdk#1722: fix(testenv): disable downloads (bitcoind and electrsd...
Steve Myers [Thu, 21 Nov 2024 02:14:23 +0000 (20:14 -0600)]
Merge bitcoindevkit/bdk#1722: fix(testenv): disable downloads (bitcoind and electrsd) for docs.rs b…

9b48fd43fe203ee6dc7451264768093d9cc61297 fix(testenv): disable downloads (bitcoind and electrsd) for docs.rs builds of crate testenv (River Kanies)

Pull request description:

  …uilds of crate testenv

  ### Description

  address this issue https://github.com/bitcoindevkit/bdk/issues/1627
  where docs.rs build is failing for bdk_testenv crate

  original PR: https://github.com/bitcoindevkit/bdk/pull/1679

  ### Notes to the reviewers

  I was not able to reproduce the build issue locally, so this will have to be tested live unless someone else can reproduce the build error https://docs.rs/crate/bdk_testenv/0.10.0/builds/1377651

  more details in this thread on discord https://discord.com/channels/753336465005608961/1265333904324427849/1304476756660719668

  #### Bugfixes:

  * [x] I'm linking the issue being fixed by this PR

ACKs for top commit:
  ValuedMammal:
    ACK 9b48fd43fe203ee6dc7451264768093d9cc61297 but I guess we won't know for sure until we publish the crate
  notmandatory:
    ACK 9b48fd43fe203ee6dc7451264768093d9cc61297

Tree-SHA512: fe4ad420f71530a279e1cf86af6e7bd59f381804a5c7c9636fa2aaa5592ff4e6fed668513831d7d63ed0a97152d685b187d50e906b21dbbb2180dedf5d28fad0

13 months agochore(core)!: rename `FullScanResult` to `FullScanResponse`
Leonardo Lima [Wed, 20 Nov 2024 04:33:37 +0000 (01:33 -0300)]
chore(core)!: rename `FullScanResult` to `FullScanResponse`

13 months agochore(deps): bump hashbrown to v0.14.5, disable default features
Tommy Volk [Fri, 15 Nov 2024 14:52:05 +0000 (08:52 -0600)]
chore(deps): bump hashbrown to v0.14.5, disable default features

13 months agochore(chain)!: use `debug_assert!` on `apply_update`
Leonardo Lima [Tue, 19 Nov 2024 16:27:20 +0000 (13:27 -0300)]
chore(chain)!: use `debug_assert!` on `apply_update`

As mentioned in issue #1689 the `debug_assert!` is being used on other
`LocalChain` methods, such as: `from_changeset`, and `apply_changeset`
but it was missing on `apply_update`.

13 months agotest(core): test `Drop` implementation of `CPInner`
valued mammal [Tue, 19 Nov 2024 15:43:15 +0000 (10:43 -0500)]
test(core): test `Drop` implementation of `CPInner`

Check that dropping `CheckPoint` does not cause nasty behavior
by creating a large linked list in memory and then destroying it.

13 months agochore(core)!: rename `SyncResult` to `SyncResponse`
Leonardo Lima [Tue, 19 Nov 2024 03:15:25 +0000 (00:15 -0300)]
chore(core)!: rename `SyncResult` to `SyncResponse`

13 months agofix(wallet, chain)!: use `bitcoin::constants::COINBASE_MATURITY`
Rob N [Sat, 16 Nov 2024 22:34:21 +0000 (12:34 -1000)]
fix(wallet, chain)!: use `bitcoin::constants::COINBASE_MATURITY`

13 months agofix(core): Fix checkpoint Drop stack overflow
LLFourn [Mon, 18 Nov 2024 23:47:40 +0000 (10:47 +1100)]
fix(core): Fix checkpoint Drop stack overflow

Fixes #1634

13 months agofix(chain): check time when persisting
Rob N [Mon, 18 Nov 2024 21:52:38 +0000 (11:52 -1000)]
fix(chain): check time when persisting

13 months agofix(testenv): disable downloads (bitcoind and electrsd) for docs.rs builds of crate...
River Kanies [Mon, 18 Nov 2024 18:46:52 +0000 (12:46 -0600)]
fix(testenv): disable downloads (bitcoind and electrsd) for docs.rs builds of crate testenv

13 months agoMerge bitcoindevkit/bdk#1724: Type constraint on list canonical tx
valued mammal [Mon, 18 Nov 2024 14:58:36 +0000 (09:58 -0500)]
Merge bitcoindevkit/bdk#1724: Type constraint on list canonical tx

2db98bad3962f8f2bb00719fbc9a50dbb9e913e8 fix(chain): type constraint on list canonical tx (Rob N)

Pull request description:

  Closes #1690

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [ ] I've added tests for the new feature
  * [ ] I've added docs for the new feature

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [ ] I've added tests to reproduce the issue which are now passing
  * [ ] I'm linking the issue being fixed by this PR

ACKs for top commit:
  ValuedMammal:
    ACK 2db98bad3962f8f2bb00719fbc9a50dbb9e913e8

Tree-SHA512: 29a6b193dd1e9030541e389a6f4f3154edddf9cb2401c451468d6b0af8b2e00d807770cc8ec587f79f6cb1dabd87598dec9a1b3e63d0bda40ce75948805a3458

13 months agofix(chain): type constraint on list canonical tx
Rob N [Sat, 16 Nov 2024 19:12:14 +0000 (09:12 -1000)]
fix(chain): type constraint on list canonical tx

13 months agoMerge bitcoindevkit/bdk#1719: ci: automated update to rustc 1.82.0
Steve Myers [Fri, 15 Nov 2024 01:43:55 +0000 (19:43 -0600)]
Merge bitcoindevkit/bdk#1719: ci: automated update to rustc 1.82.0

c77789586528768ebfe210c1a65e8ea09c4b923c ci: automated update to rustc 1.82.0 (Github Action)

Pull request description:

  Automated update to Github CI workflow `cont_integration.yml` by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action

ACKs for top commit:
  notmandatory:
    ACK c77789586528768ebfe210c1a65e8ea09c4b923c

Tree-SHA512: 9fddd2a7266ea9334e0d23782ca94b1c9971224d6b444242b9a331f1ed8518c18040148203b9a5c1d1215b9ca4fd0d233e4805d75e7c8ea35f3b5f249425fe40

13 months agoci: automated update to rustc 1.82.0
Github Action [Fri, 15 Nov 2024 01:07:43 +0000 (01:07 +0000)]
ci: automated update to rustc 1.82.0

13 months agoMerge bitcoindevkit/bdk#1658: fix(wallet)!: Improve test utilities
Steve Myers [Tue, 12 Nov 2024 04:36:59 +0000 (22:36 -0600)]
Merge bitcoindevkit/bdk#1658: fix(wallet)!: Improve test utilities

b0dc3ddd3a5f2ff8e5b2fc5654fc2519bc7e728e feat(wallet)!: make `seen_at` mandatory for `Wallet::apply_update_at` (志宇)
00c568d4c5e020439c7f586075d3aa2003cd4b10 revert(wallet)!: rm `Wallet::unbroadcast_transactions` (志宇)
200a16d277f7711a586f46833ab1b2ebf96b73c9 fix(wallet)!: delete method `insert_tx` (valued mammal)
ab278844a9fa2ebaac7da97b23d6a88e5237ab16 test(wallet): improve usage of test utils (valued mammal)
9bdf4cb9829021a868a5e955f5297e632edf5d86 chore: fix imports (valued mammal)
28d806123f4aa1b40ff1eb2a3148e25eb4104d8e test(wallet): fix test descriptor getters (valued mammal)
3135e291d777d474ab4b76de36d43a96ff104a3c test(wallet): add helpers to `test_utils` (valued mammal)
823bb39fc1682b42b0e4a33d6a9030f82668656a feat(wallet): add module `test_utils` (valued mammal)
297bd9a5123f3c901e11eadf33a51351c1e2f6a4 test(wallet): refactor helper `insert_anchor_from_conf` (valued mammal)

Pull request description:

  Follow up to #1643, refactor `insert_anchor_from_conf` to just insert an anchor of type `ConfirmationBlockTime`

  ### Notes to the reviewers

  The PR introduces a public `test_utils` module and "test-utils" cargo feature that exposes common helpers such as `get_funded_wallet`. Credit to #1492 for inspiring that idea. Usage of test utilities is enhanced overall, and tests are less dependent on problematic APIs that may be removed in the future.

  ### Changelog notice

  - `bdk_wallet`: Added "test-utils" feature flag that exposes common helpers for testing and development
  - Removed methods `Wallet::insert_tx`, `Wallet::insert_checkpoint`, `Wallet::unbroadcast_transactions`

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing
  * [x] I've added docs for the new feature
  * [x] This pull request breaks the existing API

Top commit has no ACKs.

Tree-SHA512: 561757595c65b4531dbf8b81f44387af6ac60114ecca493693cd975188741b5ff7b75a0dcf1dafc9d5750566baad81c644e7463c3c412a8331ad73de29601016

13 months agoMerge bitcoindevkit/bdk#1673: chore(deps): bump crazy-max/ghaction-import-gpg from...
Steve Myers [Wed, 6 Nov 2024 15:24:44 +0000 (09:24 -0600)]
Merge bitcoindevkit/bdk#1673: chore(deps): bump crazy-max/ghaction-import-gpg from 5 to 6

b7831678de4ac149b708db39216d66f643f8f9e5 chore(deps): bump crazy-max/ghaction-import-gpg from 5 to 6 (dependabot[bot])

Pull request description:

  Bumps [crazy-max/ghaction-import-gpg](https://github.com/crazy-max/ghaction-import-gpg) from 5 to 6.
  <details>
  <summary>Release notes</summary>
  <p><em>Sourced from <a href="https://github.com/crazy-max/ghaction-import-gpg/releases">crazy-max/ghaction-import-gpg's releases</a>.</em></p>
  <blockquote>
  <h2>v6.0.0</h2>
  <ul>
  <li>Node 20 as default runtime (requires <a href="https://github.com/actions/runner/releases/tag/v2.308.0">Actions Runner v2.308.0</a> or later) by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/183">crazy-max/ghaction-import-gpg#183</a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/crazy-max/ghaction-import-gpg/compare/v5.4.0...v6.0.0">https://github.com/crazy-max/ghaction-import-gpg/compare/v5.4.0...v6.0.0</a></p>
  <h2>v5.4.0</h2>
  <ul>
  <li>Fallback to gpg homedir if <code>HOME</code> not set by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/181">crazy-max/ghaction-import-gpg#181</a></li>
  <li>Bump openpgp from 5.8.0 to 5.10.1 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/177">crazy-max/ghaction-import-gpg#177</a> <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/171">crazy-max/ghaction-import-gpg#171</a></li>
  <li>Bump semver from 6.3.0 to 6.3.1 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/174">crazy-max/ghaction-import-gpg#174</a></li>
  <li>Bump word-wrap from 1.2.3 to 1.2.4 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/175">crazy-max/ghaction-import-gpg#175</a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/crazy-max/ghaction-import-gpg/compare/v5.3.0...v5.4.0">https://github.com/crazy-max/ghaction-import-gpg/compare/v5.3.0...v5.4.0</a></p>
  <h2>v5.3.0</h2>
  <ul>
  <li>Add <code>trust_level</code> input to set private key trust level by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/168">crazy-max/ghaction-import-gpg#168</a></li>
  <li>Missing <code>name</code> output to action metadata by <a href="https://github.com/dtan4"><code>@dtan4</code></a> in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/154">crazy-max/ghaction-import-gpg#154</a></li>
  <li>Update yarn to 3.5.1 by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/165">crazy-max/ghaction-import-gpg#165</a></li>
  <li>Update dev dependencies by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/167">crazy-max/ghaction-import-gpg#167</a></li>
  <li>Bump openpgp from 5.5.0 to 5.8.0 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/164">crazy-max/ghaction-import-gpg#164</a></li>
  <li>Bump minimatch from 3.0.4 to 3.1.2 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/155">crazy-max/ghaction-import-gpg#155</a></li>
  <li>Bump json5 from 2.1.3 to 2.2.3 in <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/pull/157">crazy-max/ghaction-import-gpg#157</a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/crazy-max/ghaction-import-gpg/compare/v5.2.0...v5.3.0">https://github.com/crazy-max/ghaction-import-gpg/compare/v5.2.0...v5.3.0</a></p>
  <h2>v5.2.0</h2>
  <ul>
  <li>Remove <code>setOutput</code> workaround by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> (<a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/152">#152</a>)</li>
  <li>Bump <code>@actions/core</code> from 1.9.0 to 1.10.0 (<a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/147">#147</a> <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/151">#151</a>)</li>
  <li>Bump openpgp from 5.3.1 to 5.5.0 (<a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/149">#149</a>)</li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/crazy-max/ghaction-import-gpg/compare/v5.1.0...v5.2.0">https://github.com/crazy-max/ghaction-import-gpg/compare/v5.1.0...v5.2.0</a></p>
  <h2>v5.1.0</h2>
  <ul>
  <li>Bump openpgp from 5.2.1 to 5.3.1 (<a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/145">#145</a>)</li>
  <li>Bump <code>@actions/core</code> from 1.6.0 to 1.9.0 (<a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/143">#143</a>)</li>
  </ul>
  </blockquote>
  </details>
  <details>
  <summary>Commits</summary>
  <ul>
  <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/cb9bde2e2525e640591a934b1fd28eef1dcaf5e5"><code>cb9bde2</code></a> Merge pull request <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/205">#205</a> from crazy-max/dependabot/npm_and_yarn/openpgp-5.11.2</li>
  <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/652ac619622e28a2740bbf5feda9f1708d9cf36b"><code>652ac61</code></a> chore: update generated content</li>
  <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/0404dfd0fccd601048a26bff779525d5486dd918"><code>0404dfd</code></a> build(deps): bump openpgp from 5.11.0 to 5.11.2</li>
  <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/63a9470ce83044c269d0efa4f71421272f9a1920"><code>63a9470</code></a> Merge pull request <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/209">#209</a> from crazy-max/dependabot/npm_and_yarn/actions/core-1...</li>
  <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/e3a645659442f12f0c394e2cec4e1a9467d51a24"><code>e3a6456</code></a> chore: update generated content</li>
  <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/f0d6155b31e158b176d30acdef924dffcd1b257e"><code>f0d6155</code></a> Merge pull request <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/207">#207</a> from crazy-max/dependabot/npm_and_yarn/micromatch-4.0.8</li>
  <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/88122507705cf6f9c5bf848d285e9cd843e0a015"><code>8812250</code></a> build(deps): bump <code>@actions/core</code> from 1.10.1 to 1.11.1</li>
  <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/35465dfc8d72a365833db2fcc2d5927021379add"><code>35465df</code></a> build(deps): bump micromatch from 4.0.4 to 4.0.8</li>
  <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/ea88154188003ca5aeb616063b2d0dd6a9cf86e2"><code>ea88154</code></a> Merge pull request <a href="https://redirect.github.com/crazy-max/ghaction-import-gpg/issues/204">#204</a> from crazy-max/dependabot/github_actions/docker/bake-...</li>
  <li><a href="https://github.com/crazy-max/ghaction-import-gpg/commit/871d8a5e555b05a336abb46c26b44a727079eada"><code>871d8a5</code></a> build(deps): bump docker/bake-action from 4 to 5</li>
  <li>Additional commits viewable in <a href="https://github.com/crazy-max/ghaction-import-gpg/compare/v5...v6">compare view</a></li>
  </ul>
  </details>
  <br />

  [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=crazy-max/ghaction-import-gpg&package-manager=github_actions&previous-version=5&new-version=6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

  Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

  [//]: # (dependabot-automerge-start)
  [//]: # (dependabot-automerge-end)

  ---

  <details>
  <summary>Dependabot commands and options</summary>
  <br />

  You can trigger Dependabot actions by commenting on this PR:
  - `@dependabot rebase` will rebase this PR
  - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
  - `@dependabot merge` will merge this PR after your CI passes on it
  - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
  - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
  - `@dependabot reopen` will reopen this PR if it is closed
  - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
  - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

  </details>

ACKs for top commit:
  notmandatory:
    ACK b7831678de4ac149b708db39216d66f643f8f9e5

Tree-SHA512: 5f55c5e8558a81c0021e46b89355a1cb7bcfc8049902c00250d8d492b257028a32bd4cd847515ae860dd8af52ab0d666f9fbb16eb71862da1d8b6b4f5ebd91a5

13 months agoMerge bitcoindevkit/bdk#1672: chore(deps): bump peter-evans/create-pull-request from...
Steve Myers [Wed, 6 Nov 2024 15:23:29 +0000 (09:23 -0600)]
Merge bitcoindevkit/bdk#1672: chore(deps): bump peter-evans/create-pull-request from 6 to 7

74e32a404bfe97a4471a4b0f08ce493923e1d90d chore(deps): bump peter-evans/create-pull-request from 6 to 7 (dependabot[bot])

Pull request description:

  Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
  <details>
  <summary>Release notes</summary>
  <p><em>Sourced from <a href="https://github.com/peter-evans/create-pull-request/releases">peter-evans/create-pull-request's releases</a>.</em></p>
  <blockquote>
  <h2>Create Pull Request v7.0.0</h2>
  <p>:sparkles: Now supports commit signing with bot-generated tokens! See &quot;What's new&quot; below. :writing_hand::robot:</p>
  <h3>Behaviour changes</h3>
  <ul>
  <li>Action input <code>git-token</code> has been renamed <code>branch-token</code>, to be more clear about its purpose. The <code>branch-token</code> is the token that the action will use to create and update the branch.</li>
  <li>The action now handles requests that have been rate-limited by GitHub. Requests hitting a primary rate limit will retry twice, for a total of three attempts. Requests hitting a secondary rate limit will not be retried.</li>
  <li>The <code>pull-request-operation</code> output now returns <code>none</code> when no operation was executed.</li>
  <li>Removed deprecated output environment variable <code>PULL_REQUEST_NUMBER</code>. Please use the <code>pull-request-number</code> action output instead.</li>
  </ul>
  <h3>What's new</h3>
  <ul>
  <li>The action can now sign commits as <code>github-actions[bot]</code> when using <code>GITHUB_TOKEN</code>, or your own bot when using <a href="https://github.com/peter-evans/create-pull-request/blob/HEAD/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens">GitHub App tokens</a>. See <a href="https://github.com/peter-evans/create-pull-request/blob/HEAD/docs/concepts-guidelines.md#commit-signature-verification-for-bots">commit signing</a> for details.</li>
  <li>Action input <code>draft</code> now accepts a new value <code>always-true</code>. This will set the pull request to draft status when the pull request is updated, as well as on creation.</li>
  <li>A new action input <code>maintainer-can-modify</code> indicates whether <a href="https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork">maintainers can modify</a> the pull request. The default is <code>true</code>, which retains the existing behaviour of the action.</li>
  <li>A new output <code>pull-request-commits-verified</code> returns <code>true</code> or <code>false</code>, indicating whether GitHub considers the signature of the branch's commits to be verified.</li>
  </ul>
  <h2>What's Changed</h2>
  <ul>
  <li>build(deps-dev): bump <code>@types/node</code> from 18.19.36 to 18.19.39 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3000">peter-evans/create-pull-request#3000</a></li>
  <li>build(deps-dev): bump ts-jest from 29.1.5 to 29.2.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3008">peter-evans/create-pull-request#3008</a></li>
  <li>build(deps-dev): bump prettier from 3.3.2 to 3.3.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3018">peter-evans/create-pull-request#3018</a></li>
  <li>build(deps-dev): bump ts-jest from 29.2.0 to 29.2.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3019">peter-evans/create-pull-request#3019</a></li>
  <li>build(deps-dev): bump eslint-plugin-prettier from 5.1.3 to 5.2.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3035">peter-evans/create-pull-request#3035</a></li>
  <li>build(deps-dev): bump <code>@types/node</code> from 18.19.39 to 18.19.41 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3037">peter-evans/create-pull-request#3037</a></li>
  <li>build(deps): bump undici from 6.19.2 to 6.19.4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3036">peter-evans/create-pull-request#3036</a></li>
  <li>build(deps-dev): bump ts-jest from 29.2.2 to 29.2.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3038">peter-evans/create-pull-request#3038</a></li>
  <li>build(deps-dev): bump <code>@types/node</code> from 18.19.41 to 18.19.42 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3070">peter-evans/create-pull-request#3070</a></li>
  <li>build(deps): bump undici from 6.19.4 to 6.19.5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3086">peter-evans/create-pull-request#3086</a></li>
  <li>build(deps-dev): bump <code>@types/node</code> from 18.19.42 to 18.19.43 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3087">peter-evans/create-pull-request#3087</a></li>
  <li>build(deps-dev): bump ts-jest from 29.2.3 to 29.2.4 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3088">peter-evans/create-pull-request#3088</a></li>
  <li>build(deps): bump undici from 6.19.5 to 6.19.7 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3145">peter-evans/create-pull-request#3145</a></li>
  <li>build(deps-dev): bump <code>@types/node</code> from 18.19.43 to 18.19.44 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3144">peter-evans/create-pull-request#3144</a></li>
  <li>Update distribution by <a href="https://github.com/actions-bot"><code>@actions-bot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3154">peter-evans/create-pull-request#3154</a></li>
  <li>build(deps): bump undici from 6.19.7 to 6.19.8 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3213">peter-evans/create-pull-request#3213</a></li>
  <li>build(deps-dev): bump <code>@types/node</code> from 18.19.44 to 18.19.45 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3214">peter-evans/create-pull-request#3214</a></li>
  <li>Update distribution by <a href="https://github.com/actions-bot"><code>@actions-bot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3221">peter-evans/create-pull-request#3221</a></li>
  <li>build(deps-dev): bump eslint-import-resolver-typescript from 3.6.1 to 3.6.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3255">peter-evans/create-pull-request#3255</a></li>
  <li>build(deps-dev): bump <code>@types/node</code> from 18.19.45 to 18.19.46 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3254">peter-evans/create-pull-request#3254</a></li>
  <li>build(deps-dev): bump ts-jest from 29.2.4 to 29.2.5 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3256">peter-evans/create-pull-request#3256</a></li>
  <li>v7 - signed commits by <a href="https://github.com/peter-evans"><code>@peter-evans</code></a> in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3057">peter-evans/create-pull-request#3057</a></li>
  </ul>
  <h2>New Contributors</h2>
  <ul>
  <li><a href="https://github.com/rustycl0ck"><code>@rustycl0ck</code></a> made their first contribution in <a href="https://redirect.github.com/peter-evans/create-pull-request/pull/3057">peter-evans/create-pull-request#3057</a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/peter-evans/create-pull-request/compare/v6.1.0...v7.0.0">https://github.com/peter-evans/create-pull-request/compare/v6.1.0...v7.0.0</a></p>
  <h2>Create Pull Request v6.1.0</h2>
  <p>✨ Adds <code>pull-request-branch</code> as an action output.</p>
  <h2>What's Changed</h2>
  <!-- raw HTML omitted -->
  </blockquote>
  <p>... (truncated)</p>
  </details>
  <details>
  <summary>Commits</summary>
  <ul>
  <li><a href="https://github.com/peter-evans/create-pull-request/commit/5e914681df9dc83aa4e4905692ca88beb2f9e91f"><code>5e91468</code></a> fix: support symlinks when commit signing (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/3359">#3359</a>)</li>
  <li><a href="https://github.com/peter-evans/create-pull-request/commit/2f38cd26bfebe301a5ee90bdd6550a69dc3ef23f"><code>2f38cd2</code></a> fix: support submodules when commit signing (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/3354">#3354</a>)</li>
  <li><a href="https://github.com/peter-evans/create-pull-request/commit/7a8aeac749996aed943101d8e7dfb0cecc06197e"><code>7a8aeac</code></a> build(deps-dev): bump eslint from 8.57.0 to 8.57.1 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/3344">#3344</a>)</li>
  <li><a href="https://github.com/peter-evans/create-pull-request/commit/d39d596a7720fc2c61c9aa5503097fb553431b5e"><code>d39d596</code></a> build(deps-dev): bump <code>@types/jest</code> from 29.5.12 to 29.5.13 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/3343">#3343</a>)</li>
  <li><a href="https://github.com/peter-evans/create-pull-request/commit/f6f978fd3dc86c443f758f603d22dc554762c832"><code>f6f978f</code></a> docs: correct suggestion for bot setup (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/3342">#3342</a>)</li>
  <li><a href="https://github.com/peter-evans/create-pull-request/commit/6cd32fd93684475c31847837f87bb135d40a2b79"><code>6cd32fd</code></a> fix: disable abbreviated commit shas in diff (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/3337">#3337</a>)</li>
  <li><a href="https://github.com/peter-evans/create-pull-request/commit/d121e62763d8cc35b5fb1710e887d6e69a52d3a4"><code>d121e62</code></a> fix: disable diff detection for renames and copies (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/3330">#3330</a>)</li>
  <li><a href="https://github.com/peter-evans/create-pull-request/commit/f4d66f4d5a5a7e65a185463192800c32d296ac6d"><code>f4d66f4</code></a> build(deps-dev): bump typescript from 5.5.4 to 5.6.2 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/3319">#3319</a>)</li>
  <li><a href="https://github.com/peter-evans/create-pull-request/commit/488c869d17c8a5cb8a2f0a09471ed82c1d2a084f"><code>488c869</code></a> build(deps-dev): bump <code>@types/node</code> from 18.19.48 to 18.19.50 (<a href="https://redirect.github.com/peter-evans/create-pull-request/issues/3320">#3320</a>)</li>
  <li><a href="https://github.com/peter-evans/create-pull-request/commit/5354f85616108575685a73a0ddd2f67c26a441c3"><code>5354f85</code></a> docs: update readme</li>
  <li>Additional commits viewable in <a href="https://github.com/peter-evans/create-pull-request/compare/v6...v7">compare view</a></li>
  </ul>
  </details>
  <br />

  [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=peter-evans/create-pull-request&package-manager=github_actions&previous-version=6&new-version=7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

  Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

  [//]: # (dependabot-automerge-start)
  [//]: # (dependabot-automerge-end)

  ---

  <details>
  <summary>Dependabot commands and options</summary>
  <br />

  You can trigger Dependabot actions by commenting on this PR:
  - `@dependabot rebase` will rebase this PR
  - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
  - `@dependabot merge` will merge this PR after your CI passes on it
  - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
  - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
  - `@dependabot reopen` will reopen this PR if it is closed
  - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
  - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

  </details>

ACKs for top commit:
  notmandatory:
    ACK 74e32a404bfe97a4471a4b0f08ce493923e1d90d

Tree-SHA512: 747fc06aea72262968018150dbba1b5deae844fae4105f1639e168289776853988ebd89df7c596e03fa86afcd557c23dbb7bb571ba8ecd1b45444fd8d9767480

13 months agofeat(wallet)!: make `seen_at` mandatory for `Wallet::apply_update_at`
志宇 [Wed, 9 Oct 2024 14:36:27 +0000 (14:36 +0000)]
feat(wallet)!: make `seen_at` mandatory for `Wallet::apply_update_at`

Not including a `seen_at` alongside the update means the unconfirmed txs
of the update will not be considered to be part of the canonical
history. Therefore, transactions created with this wallet may replace
the update's unconfirmed txs (which is unintuitive behavior).

Also updated the docs.

13 months agorevert(wallet)!: rm `Wallet::unbroadcast_transactions`
志宇 [Wed, 9 Oct 2024 14:19:58 +0000 (14:19 +0000)]
revert(wallet)!: rm `Wallet::unbroadcast_transactions`

This is no longer relevant as we direct callers to only insert tx into
the wallet after a successful broadcast.

13 months agofix(wallet)!: delete method `insert_tx`
valued mammal [Tue, 5 Nov 2024 18:49:50 +0000 (13:49 -0500)]
fix(wallet)!: delete method `insert_tx`

Inserting unconfirmed txs can be done using the existing method
`apply_unconfirmed_txs`. Also removed `insert_checkpoint`, as the
API is unclear regarding where in the local chain the given block
should connect. Analogs for these methods are found in `test_utils`
module and are mainly used to facilitate testing.

13 months agotest(wallet): improve usage of test utils
valued mammal [Tue, 5 Nov 2024 02:15:37 +0000 (21:15 -0500)]
test(wallet): improve usage of test utils

13 months agochore: fix imports
valued mammal [Mon, 4 Nov 2024 23:10:47 +0000 (18:10 -0500)]
chore: fix imports

13 months agotest(wallet): fix test descriptor getters
valued mammal [Mon, 4 Nov 2024 20:59:35 +0000 (15:59 -0500)]
test(wallet): fix test descriptor getters

- `get_funded_wallet` requires two descriptors
- `get_funded_wallet_single` returns a single-descriptor
wallet

13 months agotest(wallet): add helpers to `test_utils`
valued mammal [Mon, 4 Nov 2024 20:02:46 +0000 (15:02 -0500)]
test(wallet): add helpers to `test_utils`

13 months agofeat(wallet): add module `test_utils`
valued mammal [Thu, 31 Oct 2024 20:41:41 +0000 (16:41 -0400)]
feat(wallet): add module `test_utils`

The common test utils are moved to a public `test_utils` module
behind a new test-utils feature flag

13 months agotest(wallet): refactor helper `insert_anchor_from_conf`
valued mammal [Thu, 24 Oct 2024 02:09:14 +0000 (22:09 -0400)]
test(wallet): refactor helper `insert_anchor_from_conf`

13 months agoMerge bitcoindevkit/bdk#1674: ci: pin deps for MSRV
valued mammal [Tue, 5 Nov 2024 18:27:57 +0000 (13:27 -0500)]
Merge bitcoindevkit/bdk#1674: ci: pin deps for MSRV

d2771502cee0179941aec3f11d97d9bc8137fb3d ci: pin deps for MSRV (valued mammal)

Pull request description:

  Pin deps in CI to build on MSRV

  - pin `indexmap` to 2.5.0
  - pin `security-framework-sys` to 2.11.1

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  notmandatory:
    ACK d2771502cee0179941aec3f11d97d9bc8137fb3d

Tree-SHA512: adc15c5487f78a211892c4e6a851e17b04c3d02cc73ef2af25cf97a6e8c5aab9f80b14a4e05c409b76670bf6b35a04d10880ae0f2d3becfc28185e74a6311699

13 months agoci: pin deps for MSRV
valued mammal [Tue, 5 Nov 2024 03:20:21 +0000 (22:20 -0500)]
ci: pin deps for MSRV

- pin `indexmap` to 2.5.0
- pin `security-framework-sys` to 2.11.1

13 months agoMerge bitcoindevkit/bdk#1668: docs: fix incorrect links to wallet examples
valued mammal [Tue, 5 Nov 2024 13:37:19 +0000 (08:37 -0500)]
Merge bitcoindevkit/bdk#1668: docs: fix incorrect links to wallet examples

521b49d2da09e7c14c079970397f7d98f5cfe648 docs: fix incorrect links to wallet examples (Torkel Rogstad)

Pull request description:

  ### Description

  This PR updates the examples found in the wallet crate to use working links to GitHub.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  ValuedMammal:
    ACK 521b49d2da09e7c14c079970397f7d98f5cfe648

Tree-SHA512: a4b214894c5a1453a2fe7b9732508e57c65793604440b7d8892f89cda3065cf850a44926b4c711738c13e13634d480dc75f67424edc4d3d09def328ef3b7042a

13 months agochore(deps): bump crazy-max/ghaction-import-gpg from 5 to 6 github/dependabot/github_actions/crazy-max/ghaction-import-gpg-6
dependabot[bot] [Mon, 4 Nov 2024 05:47:40 +0000 (05:47 +0000)]
chore(deps): bump crazy-max/ghaction-import-gpg from 5 to 6

Bumps [crazy-max/ghaction-import-gpg](https://github.com/crazy-max/ghaction-import-gpg) from 5 to 6.
- [Release notes](https://github.com/crazy-max/ghaction-import-gpg/releases)
- [Commits](https://github.com/crazy-max/ghaction-import-gpg/compare/v5...v6)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-import-gpg
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
13 months agochore(deps): bump peter-evans/create-pull-request from 6 to 7 github/dependabot/github_actions/peter-evans/create-pull-request-7
dependabot[bot] [Mon, 4 Nov 2024 05:47:38 +0000 (05:47 +0000)]
chore(deps): bump peter-evans/create-pull-request from 6 to 7

Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
13 months agoMerge bitcoindevkit/bdk#1645: chore(deps): bump Swatinem/rust-cache from 2.2.1 to...
Steve Myers [Fri, 1 Nov 2024 23:40:15 +0000 (18:40 -0500)]
Merge bitcoindevkit/bdk#1645: chore(deps): bump Swatinem/rust-cache from 2.2.1 to 2.7.5

800f5a5c228f87d0dba13ab479531b1e8850fca4 chore(deps): bump Swatinem/rust-cache from 2.2.1 to 2.7.5 (dependabot[bot])

Pull request description:

  Bumps [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) from 2.2.1 to 2.7.5.
  <details>
  <summary>Release notes</summary>
  <p><em>Sourced from <a href="https://github.com/swatinem/rust-cache/releases">Swatinem/rust-cache's releases</a>.</em></p>
  <blockquote>
  <h2>v2.7.5</h2>
  <h2>What's Changed</h2>
  <ul>
  <li>Upgrade checkout action from version 3 to 4 by <a href="https://github.com/carsten-wenderdel"><code>@carsten-wenderdel</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/190">Swatinem/rust-cache#190</a></li>
  <li>fix: usage of <code>deprecated</code> version of <code>node</code> by <a href="https://github.com/hamirmahal"><code>@hamirmahal</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/197">Swatinem/rust-cache#197</a></li>
  <li>Only run macOsWorkaround() on macOS by <a href="https://github.com/heksesang"><code>@heksesang</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/206">Swatinem/rust-cache#206</a></li>
  <li>Support Cargo.lock format cargo-lock v4 by <a href="https://github.com/NobodyXu"><code>@NobodyXu</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/211">Swatinem/rust-cache#211</a></li>
  </ul>
  <h2>New Contributors</h2>
  <ul>
  <li><a href="https://github.com/carsten-wenderdel"><code>@carsten-wenderdel</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/190">Swatinem/rust-cache#190</a></li>
  <li><a href="https://github.com/hamirmahal"><code>@hamirmahal</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/197">Swatinem/rust-cache#197</a></li>
  <li><a href="https://github.com/heksesang"><code>@heksesang</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/206">Swatinem/rust-cache#206</a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/Swatinem/rust-cache/compare/v2.7.3...v2.7.5">https://github.com/Swatinem/rust-cache/compare/v2.7.3...v2.7.5</a></p>
  <h2>v2.7.3</h2>
  <ul>
  <li>Work around upstream problem that causes cache saving to hang for minutes.</li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/Swatinem/rust-cache/compare/v2.7.2...v2.7.3">https://github.com/Swatinem/rust-cache/compare/v2.7.2...v2.7.3</a></p>
  <h2>v2.7.2</h2>
  <h2>What's Changed</h2>
  <ul>
  <li>Update action runtime to <code>node20</code> by <a href="https://github.com/rhysd"><code>@rhysd</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/175">Swatinem/rust-cache#175</a></li>
  <li>Only key by <code>Cargo.toml</code> and <code>Cargo.lock</code> files of workspace members by <a href="https://github.com/max-heller"><code>@max-heller</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/180">Swatinem/rust-cache#180</a></li>
  </ul>
  <h2>New Contributors</h2>
  <ul>
  <li><a href="https://github.com/rhysd"><code>@rhysd</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/175">Swatinem/rust-cache#175</a></li>
  <li><a href="https://github.com/max-heller"><code>@max-heller</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/180">Swatinem/rust-cache#180</a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/Swatinem/rust-cache/compare/v2.7.1...v2.7.2">https://github.com/Swatinem/rust-cache/compare/v2.7.1...v2.7.2</a></p>
  <h2>v2.7.0</h2>
  <h2>What's Changed</h2>
  <ul>
  <li>Fix save-if documentation in readme by <a href="https://github.com/rukai"><code>@rukai</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/166">Swatinem/rust-cache#166</a></li>
  <li>Support for <code>trybuild</code> and similar macro testing tools by <a href="https://github.com/neysofu"><code>@neysofu</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/168">Swatinem/rust-cache#168</a></li>
  </ul>
  <h2>New Contributors</h2>
  <ul>
  <li><a href="https://github.com/rukai"><code>@rukai</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/166">Swatinem/rust-cache#166</a></li>
  <li><a href="https://github.com/neysofu"><code>@neysofu</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/168">Swatinem/rust-cache#168</a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/Swatinem/rust-cache/compare/v2.6.2...v2.7.0">https://github.com/Swatinem/rust-cache/compare/v2.6.2...v2.7.0</a></p>
  <h2>v2.6.2</h2>
  <h2>What's Changed</h2>
  <ul>
  <li>dep: Use <code>smol-toml</code> instead of <code>toml</code> by <a href="https://github.com/NobodyXu"><code>@NobodyXu</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/164">Swatinem/rust-cache#164</a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/Swatinem/rust-cache/compare/v2...v2.6.2">https://github.com/Swatinem/rust-cache/compare/v2...v2.6.2</a></p>
  <h2>v2.6.1</h2>
  <ul>
  <li>Fix hash contributions of <code>Cargo.lock</code>/<code>Cargo.toml</code> files.</li>
  </ul>
  <!-- raw HTML omitted -->
  </blockquote>
  <p>... (truncated)</p>
  </details>
  <details>
  <summary>Changelog</summary>
  <p><em>Sourced from <a href="https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md">Swatinem/rust-cache's changelog</a>.</em></p>
  <blockquote>
  <h1>Changelog</h1>
  <h2>2.7.3</h2>
  <ul>
  <li>Work around upstream problem that causes cache saving to hang for minutes.</li>
  </ul>
  <h2>2.7.2</h2>
  <ul>
  <li>Only key by <code>Cargo.toml</code> and <code>Cargo.lock</code> files of workspace members.</li>
  </ul>
  <h2>2.7.1</h2>
  <ul>
  <li>Update toml parser to fix parsing errors.</li>
  </ul>
  <h2>2.7.0</h2>
  <ul>
  <li>Properly cache <code>trybuild</code> tests.</li>
  </ul>
  <h2>2.6.2</h2>
  <ul>
  <li>Fix <code>toml</code> parsing.</li>
  </ul>
  <h2>2.6.1</h2>
  <ul>
  <li>Fix hash contributions of <code>Cargo.lock</code>/<code>Cargo.toml</code> files.</li>
  </ul>
  <h2>2.6.0</h2>
  <ul>
  <li>Add &quot;buildjet&quot; as a second <code>cache-provider</code> backend.</li>
  <li>Clean up sparse registry index.</li>
  <li>Do not clean up src of <code>-sys</code> crates.</li>
  <li>Remove <code>.cargo/credentials.toml</code> before saving.</li>
  </ul>
  <h2>2.5.1</h2>
  <ul>
  <li>Fix hash contribution of <code>Cargo.lock</code>.</li>
  </ul>
  <h2>2.5.0</h2>
  <ul>
  <li>feat: Rm workspace crates version before caching.</li>
  <li>feat: Add hash of <code>.cargo/config.toml</code> to key.</li>
  </ul>
  <h2>2.4.0</h2>
  <ul>
  <li>Fix cache key stability.</li>
  <li>Use 8 character hash components to reduce the key length, making it more readable.</li>
  </ul>
  <h2>2.3.0</h2>
  <ul>
  <li>Add <code>cache-all-crates</code> option, which enables caching of crates installed by workflows.</li>
  </ul>
  <!-- raw HTML omitted -->
  </blockquote>
  <p>... (truncated)</p>
  </details>
  <details>
  <summary>Commits</summary>
  <ul>
  <li><a href="https://github.com/Swatinem/rust-cache/commit/82a92a6e8fbeee089604da2575dc567ae9ddeaab"><code>82a92a6</code></a> 2.7.5</li>
  <li><a href="https://github.com/Swatinem/rust-cache/commit/598fe25fa107b2fd526fc6471f6e48de7cd12083"><code>598fe25</code></a> update dependencies, rebuild</li>
  <li><a href="https://github.com/Swatinem/rust-cache/commit/8f842c2d455cfe3d0d5a4b28f53f5389b51b71bf"><code>8f842c2</code></a> Support Cargo.lock format cargo-lock v4 (<a href="https://redirect.github.com/swatinem/rust-cache/issues/211">#211</a>)</li>
  <li><a href="https://github.com/Swatinem/rust-cache/commit/96a8d65dbafbc7d145a9b2b6c3b12ee335738cd2"><code>96a8d65</code></a> Only run macOsWorkaround() on macOS (<a href="https://redirect.github.com/swatinem/rust-cache/issues/206">#206</a>)</li>
  <li><a href="https://github.com/Swatinem/rust-cache/commit/9bdad043e88c75890e36ad3bbc8d27f0090dd609"><code>9bdad04</code></a> fix: usage of <code>deprecated</code> version of <code>node</code> (<a href="https://redirect.github.com/swatinem/rust-cache/issues/197">#197</a>)</li>
  <li><a href="https://github.com/Swatinem/rust-cache/commit/f7a52f691454d93c6ce0dff6666a5cb399b8d06e"><code>f7a52f6</code></a> &quot;add jsonpath test&quot;</li>
  <li><a href="https://github.com/Swatinem/rust-cache/commit/2bceda39122b2cc71e6e26ad729b92b44d101f4b"><code>2bceda3</code></a> &quot;update dependencies&quot;</li>
  <li><a href="https://github.com/Swatinem/rust-cache/commit/640a22190e7a783d4c409684cea558f081f92012"><code>640a221</code></a> Upgrade checkout action from version 3 to 4 (<a href="https://redirect.github.com/swatinem/rust-cache/issues/190">#190</a>)</li>
  <li><a href="https://github.com/Swatinem/rust-cache/commit/158274163087d4d4d49dfcc6a39806493e413240"><code>1582741</code></a> update dependencies</li>
  <li><a href="https://github.com/Swatinem/rust-cache/commit/23bce251a8cd2ffc3c1075eaa2367cf899916d84"><code>23bce25</code></a> 2.7.3</li>
  <li>Additional commits viewable in <a href="https://github.com/swatinem/rust-cache/compare/v2.2.1...v2.7.5">compare view</a></li>
  </ul>
  </details>
  <br />

  [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Swatinem/rust-cache&package-manager=github_actions&previous-version=2.2.1&new-version=2.7.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

  Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

  [//]: # (dependabot-automerge-start)
  [//]: # (dependabot-automerge-end)

  ---

  <details>
  <summary>Dependabot commands and options</summary>
  <br />

  You can trigger Dependabot actions by commenting on this PR:
  - `@dependabot rebase` will rebase this PR
  - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
  - `@dependabot merge` will merge this PR after your CI passes on it
  - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
  - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
  - `@dependabot reopen` will reopen this PR if it is closed
  - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
  - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

  </details>

ACKs for top commit:
  notmandatory:
    ACK 800f5a5c228f87d0dba13ab479531b1e8850fca4

Tree-SHA512: 93a768a7d1183c8dd8166a36891a2f1aa1bcc4db4ea9075d58f3af07c56733205ef0688cd5337a892f16a821877d8ba3ddcf51acfd005986800d93730889ba27

13 months agochore(deps): bump Swatinem/rust-cache from 2.2.1 to 2.7.5 github/dependabot/github_actions/Swatinem/rust-cache-2.7.5
dependabot[bot] [Fri, 1 Nov 2024 23:11:52 +0000 (23:11 +0000)]
chore(deps): bump Swatinem/rust-cache from 2.2.1 to 2.7.5

Bumps [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) from 2.2.1 to 2.7.5.
- [Release notes](https://github.com/swatinem/rust-cache/releases)
- [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md)
- [Commits](https://github.com/swatinem/rust-cache/compare/v2.2.1...v2.7.5)

---
updated-dependencies:
- dependency-name: Swatinem/rust-cache
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
13 months agoMerge bitcoindevkit/bdk#1661: chore(file_store): Document that it's a dev database
valued mammal [Thu, 31 Oct 2024 16:39:49 +0000 (12:39 -0400)]
Merge bitcoindevkit/bdk#1661: chore(file_store): Document that it's a dev database

4b5bd0b14bfba95f0ca4e2c612d6e24832ba5b73 chore(file_store): Document that it's a dev database (LLFourn)

Pull request description:

  Document `bdk_file_store` is a development/testing database

ACKs for top commit:
  LagginTimes:
    ACK 4b5bd0b14bfba95f0ca4e2c612d6e24832ba5b73
  ValuedMammal:
    ACK 4b5bd0b14bfba95f0ca4e2c612d6e24832ba5b73
  oleonardolima:
    ACK 4b5bd0b14bfba95f0ca4e2c612d6e24832ba5b73

Tree-SHA512: a374753fe3d367870afc7b4cb301ef7fd09da1babefb0601191b266123358c2ffd247e4c6c5fb84eaa0e3b2821f8c0b1337cde6d63bbc2dce3fb7d5ff0286cef

13 months agodocs: fix incorrect links to wallet examples
Torkel Rogstad [Thu, 31 Oct 2024 14:13:23 +0000 (15:13 +0100)]
docs: fix incorrect links to wallet examples

13 months agoMerge bitcoindevkit/bdk#1652: refactor(chain)!: remove `inner` method from KeychainTx...
Steve Myers [Wed, 30 Oct 2024 05:20:21 +0000 (00:20 -0500)]
Merge bitcoindevkit/bdk#1652: refactor(chain)!: remove `inner` method from KeychainTxOutIndex

8494c12ed49856b069375bdb036e6036c77f9019 refactor(chain)!: remove `inner` method from KeychainTxOutIndex (valued mammal)

Pull request description:

  Fix #1353 by removing the `inner` method from `keychain_txout` module. See commit message for details.

  ### Changelog notice

  - `bdk_chain`: Removed method `KeychainTxOutIndex::inner`

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing
  * [x] This pull request breaks the existing API
  * [x] I'm linking the issue being fixed by this PR

ACKs for top commit:
  oleonardolima:
    ACK 8494c12ed49856b069375bdb036e6036c77f9019
  notmandatory:
    ACK 8494c12ed49856b069375bdb036e6036c77f9019

Tree-SHA512: f0f6864faa16ffcd49f63c7a38cba11f28ad8f7c7aecc8e7538b7d5862a51d43ee75bea81561236ba7876b5e3d6357a021d17212295c5c9ff9a5525aea586953

13 months agoMerge bitcoindevkit/bdk#1657: chore(deps): bump tibdex/github-app-token from 1 to 2
Steve Myers [Tue, 29 Oct 2024 21:13:29 +0000 (16:13 -0500)]
Merge bitcoindevkit/bdk#1657: chore(deps): bump tibdex/github-app-token from 1 to 2

96c65761e2c0846bbf6788f859454652999f1b2c ci: fix dependabot clippy_check error (Steve Myers)
80b4ecac414a9b248ac5493ef76b7b4a3b0ff8f3 chore(deps): bump tibdex/github-app-token from 1 to 2 (dependabot[bot])

Pull request description:

  Bumps [tibdex/github-app-token](https://github.com/tibdex/github-app-token) from 1 to 2.
  <details>
  <summary>Release notes</summary>
  <p><em>Sourced from <a href="https://github.com/tibdex/github-app-token/releases">tibdex/github-app-token's releases</a>.</em></p>
  <blockquote>
  <h2>v2.0.0</h2>
  <ul>
  <li><strong>BREAKING</strong>: replaces the <code>installation_id</code> and <code>repository</code> inputs with <code>installation_retrieval_mode</code> and <code>installation_retrieval_payload</code> to also support organization and user installation.</li>
  <li>switches to <code>node20</code>.</li>
  <li>adds a <code>repositories</code> input to scope the created token to a subset of repositories.</li>
  <li>revokes the created token at the end of the job with a <a href="https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runspost"><code>post</code> script</a>.</li>
  </ul>
  <h2>v1.9.0</h2>
  <p>No release notes provided.</p>
  <h2>v1.8.2</h2>
  <p>No release notes provided.</p>
  <h2>v1.8.1</h2>
  <p>No release notes provided.</p>
  <h2>v1.8.0</h2>
  <p>No release notes provided.</p>
  <h2>v1.7.0</h2>
  <p>No release notes provided.</p>
  <h2>v1.6.0</h2>
  <p>No release notes provided.</p>
  <h2>v1.5.2</h2>
  <p>No release notes provided.</p>
  <h2>v1.5.1</h2>
  <p>No release notes provided.</p>
  <h2>v1.5.0</h2>
  <p>No release notes provided.</p>
  <h2>v1.4.0</h2>
  <p>No release notes provided.</p>
  <h2>v1.3.0</h2>
  <p>No release notes provided.</p>
  <h2>v1.2.0</h2>
  <p>No release notes provided.</p>
  <h2>v1.1.1</h2>
  <p>No release notes provided.</p>
  <h2>v1.1.0</h2>
  <p>No release notes provided.</p>
  <h2>v1.0.2</h2>
  <p>No release notes provided.</p>
  </blockquote>
  </details>
  <details>
  <summary>Commits</summary>
  <ul>
  <li><a href="https://github.com/tibdex/github-app-token/commit/3beb63f4bd073e61482598c45c71c1019b59b73a"><code>3beb63f</code></a> release v2.1.0</li>
  <li><a href="https://github.com/tibdex/github-app-token/commit/3eb77c7243b85c65e84acfa93fdbac02fb6bd532"><code>3eb77c7</code></a> Add option to not revoke token (<a href="https://redirect.github.com/tibdex/github-app-token/issues/95">#95</a>)</li>
  <li><a href="https://github.com/tibdex/github-app-token/commit/95717386c657bc772ba69db6fafa0e08baf5372e"><code>9571738</code></a> Add support for organization and user installation retrieval and repository s...</li>
  <li>See full diff in <a href="https://github.com/tibdex/github-app-token/compare/v1...v2">compare view</a></li>
  </ul>
  </details>
  <br />

  [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tibdex/github-app-token&package-manager=github_actions&previous-version=1&new-version=2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

  Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

  [//]: # (dependabot-automerge-start)
  [//]: # (dependabot-automerge-end)

  ---

  <details>
  <summary>Dependabot commands and options</summary>
  <br />

  You can trigger Dependabot actions by commenting on this PR:
  - `@dependabot rebase` will rebase this PR
  - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
  - `@dependabot merge` will merge this PR after your CI passes on it
  - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
  - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
  - `@dependabot reopen` will reopen this PR if it is closed
  - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
  - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

  </details>

ACKs for top commit:
  notmandatory:
    ACK 96c65761e2c0846bbf6788f859454652999f1b2c

Tree-SHA512: bdc51d7ed66096737c28025609ad431a315be4a9bf6234365a00a3b2cefd71cdc445ae3c24d7f0353d2e2de5c7cd735b096c82531fcdabd3f01a6d52ce2fe766

13 months agoci: fix dependabot clippy_check error github/dependabot/github_actions/tibdex/github-app-token-2
Steve Myers [Tue, 29 Oct 2024 20:41:53 +0000 (15:41 -0500)]
ci: fix dependabot clippy_check error

13 months agochore(deps): bump tibdex/github-app-token from 1 to 2
dependabot[bot] [Mon, 21 Oct 2024 05:50:32 +0000 (05:50 +0000)]
chore(deps): bump tibdex/github-app-token from 1 to 2

Bumps [tibdex/github-app-token](https://github.com/tibdex/github-app-token) from 1 to 2.
- [Release notes](https://github.com/tibdex/github-app-token/releases)
- [Commits](https://github.com/tibdex/github-app-token/compare/v1...v2)

---
updated-dependencies:
- dependency-name: tibdex/github-app-token
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
13 months agoMerge bitcoindevkit/bdk#1662: fix(wallet): fix building change signers in `load_with_...
志宇 [Tue, 29 Oct 2024 11:46:35 +0000 (22:46 +1100)]
Merge bitcoindevkit/bdk#1662: fix(wallet): fix building change signers in `load_with_params`

b6b767f3fc12062d6787eec8b3e1021458283985 test(wallet): check keymaps can be set when loading wallet (valued mammal)
517fb53760626ada00551716fd35dbd84ed6d48e fix(wallet): fix building change signers in `load_with_params` (valued mammal)

Pull request description:

  This fixes an issue that prevented change signers from being built when using the `keymap` method on `LoadParams`. Now we always build a `SignersContainer` with the internal keymap whenever a change descriptor is loaded. Note, the signer may still be "empty" if neither `keymap` or `extract_keys` is used.

  ### Notes to the reviewers

  Building a `SignersContainer` now happens outside of the [match statement](https://github.com/bitcoindevkit/bdk/blob/b6b767f3fc12062d6787eec8b3e1021458283985/crates/wallet/src/wallet/mod.rs#L557) in `load_with_params` which simplifies the logic such that we can interpret this area of code as "initialize a value for `change_descriptor` and optionally extend the internal keymap, returning a `LoadMismatch` error if the changeset doesn't match the expected params."

  ### Changelog notice

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### Bugfixes:

  * [x] I've added tests to reproduce the issue which are now passing

ACKs for top commit:
  evanlinjin:
    ACK b6b767f3fc12062d6787eec8b3e1021458283985

Tree-SHA512: fef2de691191e84f3e7cbe50c080cafb3b297d41e9bd493b97e45dfc1b3d77f4985c09b8fc3b398d54e22a43cf90501f6df70f8738e9b31a663efc0886f795e3

13 months agotest(wallet): check keymaps can be set when loading wallet
valued mammal [Tue, 22 Oct 2024 14:29:07 +0000 (10:29 -0400)]
test(wallet): check keymaps can be set when loading wallet

13 months agofix(wallet): fix building change signers in `load_with_params`
valued mammal [Tue, 22 Oct 2024 13:12:32 +0000 (09:12 -0400)]
fix(wallet): fix building change signers in `load_with_params`

This fixes an issue that prevented change signers from being built
when using the `keymap` method on `LoadParams`. Now we always
build a `SignersContainer` with the internal keymap whenever a
change descriptor is loaded, although the signer may still be
empty if neither `keymap` nor `extract_keys` is used.

13 months agochore(file_store): Document that it's a dev database
LLFourn [Sun, 27 Oct 2024 23:57:29 +0000 (10:57 +1100)]
chore(file_store): Document that it's a dev database

13 months agoMerge bitcoindevkit/bdk#1643: feat(chain,wallet)!: rm `ConfirmationTime`
valued mammal [Thu, 24 Oct 2024 01:59:34 +0000 (21:59 -0400)]
Merge bitcoindevkit/bdk#1643: feat(chain,wallet)!: rm `ConfirmationTime`

a3d4eef77d427b290e1d0041d3c760b8fe29f6a2 feat(chain,wallet)!: rm `ConfirmationTime` (志宇)

Pull request description:

  ### Description

  This PR removes `ConfirmationTime`, and favors `ChainPosition<ConfirmationBlockTime>` instead. The only difference between these two structures is that `ChainPosition<ConfirmationBlockTime>` contains an additional `BlockHash`. Additionally, `ConfirmationTime` was not used in many places. It was mainly for displaying information in `bdk_wallet::Wallet`.

  We also impl `serde::Deserialize` and `serde::Serialize` for `ChainPosition`.

  ### Notes to the reviewers

  ### Changelog notice

  * Remove `bdk_chain::ConfirmationTime`. Use `ChainPosition<ConfirmationBlockTime>` in place.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  LagginTimes:
    ACK a3d4eef77d427b290e1d0041d3c760b8fe29f6a2
  oleonardolima:
    ACK a3d4eef77d427b290e1d0041d3c760b8fe29f6a2
  ValuedMammal:
    ACK a3d4eef77d427b290e1d0041d3c760b8fe29f6a2

Tree-SHA512: d94db70885e6987774da586b92ee826098a0da4ae808ff9b23632bd68bbb3d6babbba1aac9d79b78bcf4affa48404f5cca3c7c00ad2db02e1f47f78e094a5f76

14 months agorefactor(chain)!: remove `inner` method from KeychainTxOutIndex
valued mammal [Wed, 16 Oct 2024 16:52:03 +0000 (12:52 -0400)]
refactor(chain)!: remove `inner` method from KeychainTxOutIndex

It's desirable to have the inner SPK index internal to the
`keychain_txout` module, which aims to provide views into
the set of revealed SPKs for a given keychain.

The inner index also functions as a cache of unrevealed SPKs,
i.e. the lookahead. We test the functionality of the lookahead
by checking the value returned from
`KeychainTxOutIndex::spk_at_index` matches the SPK derived by
the descriptor at that index for indices ranging from the
last revealed to the expected last stored.

14 months agoMerge bitcoindevkit/bdk#1646: ci: update audit.yml workflow to use actions-rust-lang...
Steve Myers [Thu, 17 Oct 2024 16:51:10 +0000 (11:51 -0500)]
Merge bitcoindevkit/bdk#1646: ci: update audit.yml workflow to use actions-rust-lang/audit

66cf476014e5869c27d54ebf12e554f3ba925283 ci: update audit.yml workflow to use actions-rust-lang/audit (Steve Myers)

Pull request description:

  ### Description

  Update `audit.yml` workflow to use `actions-rust-lang/audit`.

  ### Notes to the reviewers

  The old [`actions-rs/audit-check`](https://github.com/actions-rs/audit-check) is no longer maintained.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

Top commit has no ACKs.

Tree-SHA512: f876d6289ad1a3c87cd1820d2efc931f1284ac4ad7fc3e0400f5fcf7274c41d27c1d3f3fe173e258b7115a724bf424e0b9240358fa79f84cef5144256628951c

14 months agoci: update audit.yml workflow to use actions-rust-lang/audit
Steve Myers [Mon, 14 Oct 2024 20:51:52 +0000 (15:51 -0500)]
ci: update audit.yml workflow to use actions-rust-lang/audit

The old actions-rs/audit-check is no longer maintained.

14 months agoMerge bitcoindevkit/bdk#1211: chore(deps): bump actions/checkout from 1 to 4
Steve Myers [Tue, 15 Oct 2024 01:08:26 +0000 (20:08 -0500)]
Merge bitcoindevkit/bdk#1211: chore(deps): bump actions/checkout from 1 to 4

8615ca07a9d541f21b63e7569099194ea7563435 chore(deps): bump actions/checkout from 1 to 4 (dependabot[bot])

Pull request description:

  Bumps [actions/checkout](https://github.com/actions/checkout) from 1 to 4.
  <details>
  <summary>Release notes</summary>
  <p><em>Sourced from <a href="https://github.com/actions/checkout/releases">actions/checkout's releases</a>.</em></p>
  <blockquote>
  <h2>v4.0.0</h2>
  <h2>What's Changed</h2>
  <ul>
  <li>Update default runtime to node20 by <a href="https://github.com/takost"><code>@takost</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li>
  <li>Support fetching without the --progress option by <a href="https://github.com/simonbaird"><code>@simonbaird</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li>
  <li>Release 4.0.0 by <a href="https://github.com/takost"><code>@takost</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1447">actions/checkout#1447</a></li>
  </ul>
  <h2>New Contributors</h2>
  <ul>
  <li><a href="https://github.com/takost"><code>@takost</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1436">actions/checkout#1436</a></li>
  <li><a href="https://github.com/simonbaird"><code>@simonbaird</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1067">actions/checkout#1067</a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3...v4.0.0">https://github.com/actions/checkout/compare/v3...v4.0.0</a></p>
  <h2>v3.6.0</h2>
  <h2>What's Changed</h2>
  <ul>
  <li>Mark test scripts with Bash'isms to be run via Bash by <a href="https://github.com/dscho"><code>@dscho</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1377">actions/checkout#1377</a></li>
  <li>Add option to fetch tags even if fetch-depth &gt; 0 by <a href="https://github.com/RobertWieczoreck"><code>@RobertWieczoreck</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li>
  <li>Release 3.6.0 by <a href="https://github.com/luketomlinson"><code>@luketomlinson</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li>
  </ul>
  <h2>New Contributors</h2>
  <ul>
  <li><a href="https://github.com/RobertWieczoreck"><code>@RobertWieczoreck</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/579">actions/checkout#579</a></li>
  <li><a href="https://github.com/luketomlinson"><code>@luketomlinson</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1437">actions/checkout#1437</a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3.5.3...v3.6.0">https://github.com/actions/checkout/compare/v3.5.3...v3.6.0</a></p>
  <h2>v3.5.3</h2>
  <h2>What's Changed</h2>
  <ul>
  <li>Fix: Checkout Issue in self hosted runner due to faulty submodule check-ins by <a href="https://github.com/megamanics"><code>@megamanics</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li>
  <li>Fix typos found by codespell by <a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li>
  <li>Add support for sparse checkouts by <a href="https://github.com/dscho"><code>@dscho</code></a> and <a href="https://github.com/dfdez"><code>@dfdez</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li>
  <li>Release v3.5.3 by <a href="https://github.com/TingluoHuang"><code>@TingluoHuang</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1376">actions/checkout#1376</a></li>
  </ul>
  <h2>New Contributors</h2>
  <ul>
  <li><a href="https://github.com/megamanics"><code>@megamanics</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1196">actions/checkout#1196</a></li>
  <li><a href="https://github.com/DimitriPapadopoulos"><code>@DimitriPapadopoulos</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1287">actions/checkout#1287</a></li>
  <li><a href="https://github.com/dfdez"><code>@dfdez</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1369">actions/checkout#1369</a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3...v3.5.3">https://github.com/actions/checkout/compare/v3...v3.5.3</a></p>
  <h2>v3.5.2</h2>
  <h2>What's Changed</h2>
  <ul>
  <li>Fix: Use correct API url / endpoint in GHES by <a href="https://github.com/fhammerl"><code>@fhammerl</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1289">actions/checkout#1289</a> based on <a href="https://redirect.github.com/actions/checkout/issues/1286">#1286</a> by <a href="https://github.com/1newsr"><code>@1newsr</code></a></li>
  </ul>
  <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/checkout/compare/v3.5.1...v3.5.2">https://github.com/actions/checkout/compare/v3.5.1...v3.5.2</a></p>
  <h2>v3.5.1</h2>
  <h2>What's Changed</h2>
  <ul>
  <li>Improve checkout performance on Windows runners by upgrading <code>@actions/github</code> dependency by <a href="https://github.com/BrettDong"><code>@BrettDong</code></a> in <a href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li>
  </ul>
  <h2>New Contributors</h2>
  <ul>
  <li><a href="https://github.com/BrettDong"><code>@BrettDong</code></a> made their first contribution in <a href="https://redirect.github.com/actions/checkout/pull/1246">actions/checkout#1246</a></li>
  </ul>
  <!-- raw HTML omitted -->
  </blockquote>
  <p>... (truncated)</p>
  </details>
  <details>
  <summary>Changelog</summary>
  <p><em>Sourced from <a href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's changelog</a>.</em></p>
  <blockquote>
  <h1>Changelog</h1>
  <h2>v4.1.0</h2>
  <ul>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1396">Add support for partial checkout filters</a></li>
  </ul>
  <h2>v4.0.0</h2>
  <ul>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1067">Support fetching without the --progress option</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1436">Update to node20</a></li>
  </ul>
  <h2>v3.6.0</h2>
  <ul>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1377">Fix: Mark test scripts with Bash'isms to be run via Bash</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/579">Add option to fetch tags even if fetch-depth &gt; 0</a></li>
  </ul>
  <h2>v3.5.3</h2>
  <ul>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1196">Fix: Checkout fail in self-hosted runners when faulty submodule are checked-in</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1287">Fix typos found by codespell</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1369">Add support for sparse checkouts</a></li>
  </ul>
  <h2>v3.5.2</h2>
  <ul>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1289">Fix api endpoint for GHES</a></li>
  </ul>
  <h2>v3.5.1</h2>
  <ul>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1246">Fix slow checkout on Windows</a></li>
  </ul>
  <h2>v3.5.0</h2>
  <ul>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1237">Add new public key for known_hosts</a></li>
  </ul>
  <h2>v3.4.0</h2>
  <ul>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1209">Upgrade codeql actions to v2</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1210">Upgrade dependencies</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1225">Upgrade <code>@actions/io</code></a></li>
  </ul>
  <h2>v3.3.0</h2>
  <ul>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1045">Implement branch list using callbacks from exec function</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1050">Add in explicit reference to private checkout options</a></li>
  <li>[Fix comment typos (that got added in <a href="https://redirect.github.com/actions/checkout/issues/770">#770</a>)](<a href="https://redirect.github.com/actions/checkout/pull/1057">actions/checkout#1057</a>)</li>
  </ul>
  <h2>v3.2.0</h2>
  <ul>
  <li><a href="https://redirect.github.com/actions/checkout/pull/942">Add GitHub Action to perform release</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/967">Fix status badge</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1002">Replace datadog/squid with ubuntu/squid Docker image</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/964">Wrap pipeline commands for submoduleForeach in quotes</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1029">Update <code>@actions/io</code> to 1.1.2</a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/1039">Upgrading version to 3.2.0</a></li>
  </ul>
  <h2>v3.1.0</h2>
  <ul>
  <li><a href="https://redirect.github.com/actions/checkout/pull/939">Use <code>@actions/core</code> <code>saveState</code> and <code>getState</code></a></li>
  <li><a href="https://redirect.github.com/actions/checkout/pull/922">Add <code>github-server-url</code> input</a></li>
  </ul>
  <h2>v3.0.2</h2>
  <!-- raw HTML omitted -->
  </blockquote>
  <p>... (truncated)</p>
  </details>
  <details>
  <summary>Commits</summary>
  <ul>
  <li><a href="https://github.com/actions/checkout/commit/b4ffde65f46336ab88eb53be808477a3936bae11"><code>b4ffde6</code></a> Link to release page from what's new section (<a href="https://redirect.github.com/actions/checkout/issues/1514">#1514</a>)</li>
  <li><a href="https://github.com/actions/checkout/commit/8530928916aaef40f59e6f221989ccb31f5759e7"><code>8530928</code></a> Correct link to GitHub Docs (<a href="https://redirect.github.com/actions/checkout/issues/1511">#1511</a>)</li>
  <li><a href="https://github.com/actions/checkout/commit/7cdaf2fbc075e6f3b9ca94cfd6cec5adc8a75622"><code>7cdaf2f</code></a> Update CODEOWNERS to Launch team (<a href="https://redirect.github.com/actions/checkout/issues/1510">#1510</a>)</li>
  <li><a href="https://github.com/actions/checkout/commit/8ade135a41bc03ea155e62e844d188df1ea18608"><code>8ade135</code></a> Prepare 4.1.0 release (<a href="https://redirect.github.com/actions/checkout/issues/1496">#1496</a>)</li>
  <li><a href="https://github.com/actions/checkout/commit/c533a0a4cfc4962971818edcfac47a2899e69799"><code>c533a0a</code></a> Add support for partial checkout filters (<a href="https://redirect.github.com/actions/checkout/issues/1396">#1396</a>)</li>
  <li><a href="https://github.com/actions/checkout/commit/72f2cec99f417b1a1c5e2e88945068983b7965f9"><code>72f2cec</code></a> Update README.md for V4 (<a href="https://redirect.github.com/actions/checkout/issues/1452">#1452</a>)</li>
  <li><a href="https://github.com/actions/checkout/commit/3df4ab11eba7bda6032a0b82a6bb43b11571feac"><code>3df4ab1</code></a> Release 4.0.0 (<a href="https://redirect.github.com/actions/checkout/issues/1447">#1447</a>)</li>
  <li><a href="https://github.com/actions/checkout/commit/8b5e8b768746b50394015010d25e690bfab9dfbc"><code>8b5e8b7</code></a> Support fetching without the --progress option (<a href="https://redirect.github.com/actions/checkout/issues/1067">#1067</a>)</li>
  <li><a href="https://github.com/actions/checkout/commit/97a652b80035363df47baee5031ec8670b8878ac"><code>97a652b</code></a> Update default runtime to node20 (<a href="https://redirect.github.com/actions/checkout/issues/1436">#1436</a>)</li>
  <li><a href="https://github.com/actions/checkout/commit/f43a0e5ff2bd294095638e18286ca9a3d1956744"><code>f43a0e5</code></a> Release 3.6.0 (<a href="https://redirect.github.com/actions/checkout/issues/1437">#1437</a>)</li>
  <li>Additional commits viewable in <a href="https://github.com/actions/checkout/compare/v1...v4">compare view</a></li>
  </ul>
  </details>
  <br />

  [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=1&new-version=4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

  You can trigger a rebase of this PR by commenting `@dependabot rebase`.

  [//]: # (dependabot-automerge-start)
  [//]: # (dependabot-automerge-end)

  ---

  <details>
  <summary>Dependabot commands and options</summary>
  <br />

  You can trigger Dependabot actions by commenting on this PR:
  - `@dependabot rebase` will rebase this PR
  - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
  - `@dependabot merge` will merge this PR after your CI passes on it
  - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
  - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
  - `@dependabot reopen` will reopen this PR if it is closed
  - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
  - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

  </details>

  > **Note**
  > Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

ACKs for top commit:
  notmandatory:
    ACK 8615ca07a9d541f21b63e7569099194ea7563435

Tree-SHA512: 25f3c3be0948f16cd532002f6b2d50c014dcf64a5d262ab86bdd87da92ad6bd5895d7a67860809c26e114d409ba9e0b821f494d1c1cfb8e882036363d76e392c

14 months agochore(deps): bump actions/checkout from 1 to 4 github/dependabot/github_actions/actions/checkout-4
dependabot[bot] [Mon, 14 Oct 2024 20:46:07 +0000 (20:46 +0000)]
chore(deps): bump actions/checkout from 1 to 4

Bumps [actions/checkout](https://github.com/actions/checkout) from 1 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v1...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
14 months agoMerge bitcoindevkit/bdk#1612: Refactor: Move transaction testing utilities from ...
Steve Myers [Mon, 14 Oct 2024 18:59:06 +0000 (13:59 -0500)]
Merge bitcoindevkit/bdk#1612: Refactor: Move transaction testing utilities from `crates/chain/tests/common` to `testenv` crate

88a8403707038264251b3e7fa18b8f21af8646ff refactor(test): move tx test utils to testenv (Vihiga Tyonum)

Pull request description:

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description

  This change moves all transaction testing utilities (macros and functions) from `crates/chain/tests/common` to `crates/testenv/tx_utils` to minimize duplication.

  Closes #1602

  <!-- Describe the purpose of this PR, what's being adding and/or fixed -->

  ### 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 -->

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [ ] I've added tests for the new feature
  * [ ] I've added docs for the new feature

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [ ] I've added tests to reproduce the issue which are now passing
  * [x] I'm linking the issue being fixed by this PR

ACKs for top commit:
  ValuedMammal:
    ACK 88a8403707038264251b3e7fa18b8f21af8646ff
  notmandatory:
    ACK 88a8403707038264251b3e7fa18b8f21af8646ff

Tree-SHA512: aa85c6683d44463e8858f18840fd628d98f54757edff85fe0489c7954fc56998456ce8069e328eff46e907235d092059975c10e420fe7dfe83e5cdd9b63fc8ed

14 months agofeat(chain,wallet)!: rm `ConfirmationTime`
志宇 [Tue, 8 Oct 2024 09:15:55 +0000 (09:15 +0000)]
feat(chain,wallet)!: rm `ConfirmationTime`

We rm `ConfirmationTime` because it is essentially the same thing as
`ChainPosition<ConfirmationBlockTime>` without the block hash.

We also impl `serde::Deserialize` and `serde::Serialize` for
`ChainPosition`.

14 months agorefactor(test): move tx test utils to testenv
Vihiga Tyonum [Sat, 14 Sep 2024 20:52:50 +0000 (21:52 +0100)]
refactor(test): move tx test utils to testenv

- add `utils` mod to testenv crate to keep all
utilities moved from `crates/chain/test/common`
- replace all test tx macros in `chain` crate with
import from `testenv` crate
    - tests/test_indexed_tx_graph
    - tests/test_keychain_txout_index
    - tests/test_local_chain
    - tests/test_tx_graph
    - tests/test_tx_graph_conflicts
- deleted all moved macros and functions in
`crates/chain/test/common/mod`
- replace `bitcoin` external crate with
`bd_chain::bitcoin`
- move `DESCRIPTORS` sample array to `utils` for
other crates to use
- rename h! macro to hash! for clarity
- rename localchain! macro parameter from
'block_hash' to 'hash'

[Ticket: #1602]

14 months agoMerge bitcoindevkit/bdk#1639: Bump bdk_wallet version to 1.0.0-beta.5 v1.0.0-beta.5
valued mammal [Wed, 2 Oct 2024 16:22:12 +0000 (12:22 -0400)]
Merge bitcoindevkit/bdk#1639: Bump bdk_wallet version to 1.0.0-beta.5

b5e8e6b1ceed316a84bcc2660442cf0ba7bac7eb Bump bdk_wallet version to 1.0.0-beta.5 (valued mammal)

Pull request description:

  Bump bdk_wallet version to 1.0.0-beta.5

  bdk_core to 0.3.0
  bdk_chain to 0.20.0
  bdk_bitcoind_rpc to 0.16.0
  bdk_electrum to 0.19.0
  bdk_esplora to 0.19.0
  bdk_file_store to 0.17.0
  bdk_testenv to 0.10.0

ACKs for top commit:
  notmandatory:
    ACK b5e8e6b1ceed316a84bcc2660442cf0ba7bac7eb

Tree-SHA512: e5e9309a2bfd3f893ec8794ac316b3f2be0c333d8971883619a873a2663d451b267090e36a9d2eb44ce4a3cc4eabf47847f8335fb183a6c72475dcb6c57742a5

14 months agoBump bdk_wallet version to 1.0.0-beta.5
valued mammal [Wed, 2 Oct 2024 14:25:15 +0000 (10:25 -0400)]
Bump bdk_wallet version to 1.0.0-beta.5

bdk_core to 0.3.0
bdk_chain to 0.20.0
bdk_bitcoind_rpc to 0.16.0
bdk_electrum to 0.19.0
bdk_esplora to 0.19.0
bdk_file_store to 0.17.0
bdk_testenv to 0.10.0

14 months agoMerge bitcoindevkit/bdk#1620: feat(bdk_electrum): add `use-openssl` as a feature
Steve Myers [Wed, 2 Oct 2024 02:05:16 +0000 (21:05 -0500)]
Merge bitcoindevkit/bdk#1620: feat(bdk_electrum): add `use-openssl` as a feature

f602d1bfe24783449a88d5e82ab29f305cd2a02c feat(bdk_electrum): add `use-openssl` as a feature (Leonardo Lima)

Pull request description:

  partially addresses #1598

  <!-- You can erase any parts of this template not applicable to your Pull Request. -->

  ### Description

  It's a simple PR to expose the `use-openssl` from `electrum-client` to `bdk_electrum`. It partially addresses #1598, allowing the user to use `openssl` as an alternative to `rustls`, as there are some problems with it when handling some types of TLS certificates.

  Do we need to add some sort of `bdk_electrum` tests using the new exposed `use-openssl` feature ?

  <!-- Describe the purpose of this PR, what's being adding and/or fixed -->

  ### 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

  - Adds `use-openssl` as feature to `bdk_electrum`, exposing `electrum-client` `use-openssl` feature.

  <!-- Notice the release manager should include in the release tag message changelog -->
  <!-- See https://keepachangelog.com/en/1.0.0/ for examples -->

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [x] I ran `cargo fmt` and `cargo clippy` before committing

  #### New Features:

  * [ ] I've added tests for the new feature
  * [ ] I've added docs for the new feature

  #### Bugfixes:

  * [ ] This pull request breaks the existing API
  * [ ] I've added tests to reproduce the issue which are now passing
  * [ ] I'm linking the issue being fixed by this PR

Top commit has no ACKs.

Tree-SHA512: 86e0fdeaa0b6a48e0c7ddde6e3890ce86510b86ad727adf05cde5e8c311a8c6b7614ae57bae0cff9e7b8443478a324e5ce9e5180023d501453a5c1e9e45920e1

14 months agofeat(bdk_electrum): add `use-openssl` as a feature
Leonardo Lima [Fri, 20 Sep 2024 02:06:28 +0000 (23:06 -0300)]
feat(bdk_electrum): add `use-openssl` as a feature

14 months agoMerge bitcoindevkit/bdk#1636: ci: fix build-test job with --no-default-features,...
valued mammal [Tue, 1 Oct 2024 23:17:27 +0000 (19:17 -0400)]
Merge bitcoindevkit/bdk#1636: ci: fix build-test job with --no-default-features, add miniscript/no-std

0e8082437401eccdef30737e739381d295530547 ci: fix build-test job with --no-default-features, add miniscript/no-std (Steve Myers)

Pull request description:

  ### Description

  Fixes the CI `build-test` job with `--no-default-features` by also adding `--features miniscript/no-std`.

  Until `rust-miniscript` removes the `no-std` feature we need to enable it when `--no-default-features` is used to build `bdk_wallet` or the whole workspace. See also the `check-no-std` job which does the same plus enables the `bdk_chain/hashbrown` feature which is also needed to build `bdk_wallet` with `--no-default-features` but is already enabled when building the whole workspace.

  ### Notes to the reviewers

  I think we didn't catch this on #1625 because the CI job names changed and I didn't update the branch merge requirements. Another possibility is it was passing because of cached build artifacts which I removed last night when I was trying to troubleshoot something else. I've updated the required CI jobs that need to pass before allowing a PR to be merged to `master` to include the ones with `--no-default-features --features bdk_chain/hashbrown` in the name.

  ### Checklists

  #### All Submissions:

  * [x] I've signed all my commits
  * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
  * [ ] I ran `cargo fmt` and `cargo clippy` before committing

ACKs for top commit:
  ValuedMammal:
    ACK 0e8082437401eccdef30737e739381d295530547

Tree-SHA512: 5da486b7fd988575b6f9c06eb108a183b47c74d58fd451453d77b53ad26f58890ee605f4a154922688dc348bc5a3c413dcd9128fd4831d8923c64a33aa4a951c

14 months agoci: fix build-test job with --no-default-features, add miniscript/no-std
Steve Myers [Tue, 1 Oct 2024 19:33:27 +0000 (14:33 -0500)]
ci: fix build-test job with --no-default-features, add miniscript/no-std

Until rust-miniscript removes the no-std feature we need to enable it
when --no-default-features is used to build bdk_wallet or the
whole workspace. See also the check-no-std job which does the same plus
enables the bdk_chain/hashbrown feature which is also needed to build
bdk_wallet with --no-default-features but is already enabled when
building the whole workspace.