]> Untitled Git - bdk/log
bdk
3 years agoBump version to 0.19.0-dev github/release/0.18.0
Steve Myers [Wed, 20 Apr 2022 17:31:31 +0000 (10:31 -0700)]
Bump version to 0.19.0-dev

3 years agoBump version to 0.18.0 v0.18.0
Steve Myers [Wed, 20 Apr 2022 16:58:13 +0000 (09:58 -0700)]
Bump version to 0.18.0

3 years agoAdd `n:` wrapper to vulnerable scripts
Alekos Filini [Wed, 20 Apr 2022 16:25:26 +0000 (18:25 +0200)]
Add `n:` wrapper to vulnerable scripts

3 years agoBump 'miniscript' dependency version to '^6.1'
Steve Myers [Wed, 20 Apr 2022 15:16:53 +0000 (08:16 -0700)]
Bump 'miniscript' dependency version to '^6.1'

3 years agoMerge bitcoindevkit/bdk#589: export: Rename `WalletExport` to `FullyNodedExport`
Steve Myers [Wed, 20 Apr 2022 02:19:25 +0000 (19:19 -0700)]
Merge bitcoindevkit/bdk#589: export: Rename `WalletExport` to `FullyNodedExport`

9ed36875f1112d884f6c3c2beab89faf8aa5d2e0 export: Rename `WalletExport` to `FullyNodedExport` (Alekos Filini)

Pull request description:

  ### Description

  The `WalletExport` type can still be used as an alias to `FullyNodedExport` but it has been marked as deprecated and will be removed in the next release.

  ### 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
  * [x] I've updated `CHANGELOG.md`

ACKs for top commit:
  bucko13:
    Concept ACK 9ed3687
  notmandatory:
    ACK 9ed36875f1112d884f6c3c2beab89faf8aa5d2e0

Tree-SHA512: fe07307092d3040b30ae96901d5fc4afecee635412bca4a0d2e78d90f07990e7bbcd6b87ed923bf5804385356f419cacadbfefbaf97ebc9a622e34548438ee00

3 years agoexport: Rename `WalletExport` to `FullyNodedExport`
Alekos Filini [Tue, 19 Apr 2022 09:44:50 +0000 (11:44 +0200)]
export: Rename `WalletExport` to `FullyNodedExport`

The `WalletExport` type can still be used as an alias to
`FullyNodedExport` but it has been marked as deprecated and will be
removed in the next release.

3 years agoMerge branch 'master' into release/0.18.0
Steve Myers [Thu, 14 Apr 2022 17:06:47 +0000 (10:06 -0700)]
Merge branch 'master' into release/0.18.0

3 years agoMerge bitcoindevkit/bdk#583: Improve keys traits, simplify `rpcwallet` example
Steve Myers [Thu, 14 Apr 2022 16:56:46 +0000 (09:56 -0700)]
Merge bitcoindevkit/bdk#583: Improve keys traits, simplify `rpcwallet` example

44758f9483b049acbcd9f8948e29cd6f6add0cc2 Simplify the `rpcwallet` example using the improved keys traits (Alekos Filini)
c350064dae43fd9c892bb7dd272b14ce62f9e82d Update changelog changes in `keys` mod (Alekos Filini)
92746440db964b5e50f4017828516b36eb14e765 [keys] Make `GenerateKey<K>` clonable if K is (Alekos Filini)
e4eb95fb9cfbae3596deb310984fa18462d1b30c [keys] Implement `DerivableKey<Ctx>` for `(GeneratedKey<Mnemonic, Ctx>, Option<String>)` (Alekos Filini)

Pull request description:

  ### Description

  I recently looked at the `rpcwallet` example and immediately thought the key generation part was very confusing. I made a few little changes to our traits and now I believe it's much better.

  I'm copying the next few paragraphs from the first commit in this PR which explains why it's better not to extract the key from the `GeneratedKey` wrapper:

  > This lets us use a tuple of (generated mnemonic, optional passphrase) as a `DerivableKey` directly, without extracting the inner mnemonic from the `GeneratedKey` wrapper. For BIP39 keys specifically it doesn't make much difference because the mnemonic format doesn't encode the network, but in general this is not the case and having a consistent API will make it harder for people to make mistakes.

  > To explain why we should not extract the key: some key formats (like BIP32 extended keys) are network-specific, meaning that if somebody tries to use a Testnet key on a Mainnet BDK wallet, it won't work.

  > However, when we generate a new key we would like to be able to use that key on any network, but we need to set some kind of placeholder for the `network` field in the structure. This is why (or at least one of the reasons why) we wrap the key in the `GeneratedKey` struct: we keep track of the "valid_networks" separately, which means that even if we set our BIP32 xprv to be a "Mainnet" key, once we go try creating a wallet with that key BDK is smart enough to understand that `GeneratedKey`s have  their own separate set of valid networks and it will use that set to validate whether the key can be used in the wallet or not.

  ### Notes to the reviewers

  I'm adding this to the `0.18` milestone even if the feature freeze is today. I don't think we should wait for this PR to start the release branch, but since it's just a minor addition to our traits I believe we could merge this afterwards to the release branch if we manage to get it reviewed and ready within the next week.

  Otherwise it'll just wait for `0.19`, it's not a big deal.

  ### 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
  * [x] I've updated `CHANGELOG.md`

ACKs for top commit:
  notmandatory:
    tACK 44758f9483b049acbcd9f8948e29cd6f6add0cc2

Tree-SHA512: 31a8b5a3cd56c7c39688c4804026a8b6cee950c50ea880efcddc150ef523e2ddcc544831bf996a58b5cf3b7bc4a086c1008dc0728604e5134d331c68855c2d5b

3 years agoUpdate changelog with addition of keychain to AddressInfo
Steve Myers [Wed, 13 Apr 2022 20:51:12 +0000 (13:51 -0700)]
Update changelog with addition of keychain to AddressInfo

3 years agoBump version to 0.18.0-rc.1
Steve Myers [Wed, 13 Apr 2022 20:40:16 +0000 (13:40 -0700)]
Bump version to 0.18.0-rc.1

3 years agoSimplify the `rpcwallet` example using the improved keys traits
Alekos Filini [Wed, 13 Apr 2022 10:56:43 +0000 (12:56 +0200)]
Simplify the `rpcwallet` example using the improved keys traits

3 years agoUpdate changelog changes in `keys` mod
Alekos Filini [Wed, 13 Apr 2022 10:55:58 +0000 (12:55 +0200)]
Update changelog changes in `keys` mod

3 years ago[keys] Make `GenerateKey<K>` clonable if K is
Alekos Filini [Wed, 13 Apr 2022 10:55:23 +0000 (12:55 +0200)]
[keys] Make `GenerateKey<K>` clonable if K is

3 years ago[keys] Implement `DerivableKey<Ctx>` for `(GeneratedKey<Mnemonic, Ctx>, Option<String>)`
Alekos Filini [Wed, 13 Apr 2022 10:37:27 +0000 (12:37 +0200)]
[keys] Implement `DerivableKey<Ctx>` for `(GeneratedKey<Mnemonic, Ctx>, Option<String>)`

This lets us use a tuple of (generated mnemonic, optional passphrase) as
a `DerivableKey` directly, without extracting the inner mnemonic from the
`GeneratedKey` wrapper. For BIP39 keys specifically it doesn't make much
difference because the mnemonic format doesn't encode the network, but in
general this is not the case and having a consistent API will make it
harder for people to make mistakes.

To explain why we should not extract the key: some key formats (like
BIP32 extended keys) are network-specific, meaning that if somebody
tries to use a Testnet key on a Mainnet BDK wallet, it won't work.

However, when we generate a new key we would like to be able to use that
key on any network, but we need to set some kind of placeholder for the
`network` field in the structure. This is why (or at least one of the
reasons why) we wrap the key in the `GeneratedKey` struct: we keep track
of the "valid_networks" separately, which means that even if we set our
BIP32 xprv to be a "Mainnet" key, once we go try creating a wallet with
that key BDK is smart enough to understand that `GeneratedKey`s have
their own separate set of valid networks and it will use that set to
validate whether the key can be used in the wallet or not.

3 years agoMerge bitcoindevkit/bdk#577: Deprecate Database::flush() function
Alekos Filini [Wed, 13 Apr 2022 10:00:23 +0000 (12:00 +0200)]
Merge bitcoindevkit/bdk#577: Deprecate Database::flush() function

a111d254769bfa698043cb9172a3e1cc84329ee4 Deprecate Database::flush() function (Steve Myers)

Pull request description:

  ### Description

  The Database::flush() function is only needed for the sled database on mobile, instead for mobile use the sqlite database.

  ### Notes to the reviewers

  This PR is in preparation for removing the Database::flush() function. See https://github.com/bitcoindevkit/bdk/pull/575#issuecomment-1082916667.

  After the `release/0.18.0` feature freeze branch is created then #575 should be merged.

  ### 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
  * [x] I've updated `CHANGELOG.md`

ACKs for top commit:
  afilini:
    ACK a111d254769bfa698043cb9172a3e1cc84329ee4

Tree-SHA512: 18434dc95dbef47118a0d4fface908bdf920a7ffcef927b36bb740c15f8efcf11dea9198b364648f16f74aaec4aa18e92a3c5e925299b2f3b9d69e566f89e790

3 years agoDeprecate Database::flush() function
Steve Myers [Sat, 2 Apr 2022 16:52:44 +0000 (09:52 -0700)]
Deprecate Database::flush() function

The Database::flush() function is only needed for the sled database on mobile, instead for mobile use the sqlite database.

3 years agoMerge bitcoindevkit/bdk#579: Faster sync by collecting esplora ureq thread handles
Steve Myers [Wed, 6 Apr 2022 19:39:01 +0000 (12:39 -0700)]
Merge bitcoindevkit/bdk#579: Faster sync by collecting esplora ureq thread handles

adef166b22d5c95006df39fd8c57574624071189 Create vector of thread handles to spawn threads (nickfarrow)

Pull request description:

  ### Description
  Speeds up esplora ureq syncing. Taken from https://github.com/bitcoindevkit/bdk/pull/560

  The current sync just creates a map of scripts to joinhandles which doesn't yet spawn the sync threads due to lazy evaluation. In the following `handles.map()`, the thread handles are *sequentially* evaluated and joined. With the fix, the handles are collected so that the threads spawn in parallel, and then joined

  ### Notes to the reviewers

  I had to add a `#[allow(clippy::needless_collect)]` so that it wouldn't complain about collecting and then iterating. (Perhaps clippy is partially responsible for this issue!)

  Tested sync performance by doing a fresh sync on an existing [gun](https://gun.fun) wallet.
  ```
  ---- Before fix ---
  real0m13.121s
  real0m13.367s
  real0m13.211s

  ---- After fix ----
  real0m5.516s
  real0m5.251s
  real0m5.594s
  ```

  ### 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
  * [ ] 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 adef166b22d5c95006df39fd8c57574624071189

Tree-SHA512: 47c617117afde9b4706bfa63759bf06d1ec60ff95d8a80931e5b7e40e3293c855d2f7dac0c681173d43aecf77201a842e739b82291da09ac81909cf526a51c8d

3 years agoCreate vector of thread handles to spawn threads
nickfarrow [Tue, 5 Apr 2022 02:11:52 +0000 (12:11 +1000)]
Create vector of thread handles to spawn threads

Signed-off-by: nickfarrow <nick@nickfarrow.com>
3 years agoMerge bitcoindevkit/bdk#562: Expose more getters in Wallet and other useful descripto...
Steve Myers [Tue, 5 Apr 2022 03:52:26 +0000 (20:52 -0700)]
Merge bitcoindevkit/bdk#562: Expose more getters in Wallet and other useful descriptor traits

1b9014846c5cb690f5c37f70556717b788a0733b Update changelog (Alekos Filini)
86abd8698f34d91f94bfce896affb535cca27146 [descriptor] Expose utilities to deal with derived descriptors (Alekos Filini)
0d9c2f76e00af801668fa2a70fcd13f9e399c0d2 [export] Use the new getters on `Wallet` to generate export JSONs (Alekos Filini)
63d5bcee934febe4d38622b677131bbe2e1a0abe [wallet] Add more getters (Alekos Filini)

Pull request description:

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

  ### Description

  Expose more getters and internal utilities for people who need to work with descriptors.

  A good example of how this can be leveraged is in the second commit, which refactors the wallet export functionality to use the new public APIs rather than using members on `Wallet` directly.

  ### 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
  * [x] I've updated `CHANGELOG.md`

ACKs for top commit:
  notmandatory:
    ACK 8cd055090d75669c67a44467cc0281465ef31270

Tree-SHA512: 3e8833670ebc56316fce01fc572fcc9391d602ef85f0cde8edcb446295570a9012e18f6ba8af0984153e4688f66f7eea6803ef610ceb395867e464e05c01c137

3 years agoMerge branch 'master' into feature/more-getters
Steve Myers [Tue, 5 Apr 2022 02:32:55 +0000 (19:32 -0700)]
Merge branch 'master' into feature/more-getters

3 years agoUpdate changelog
Alekos Filini [Wed, 9 Mar 2022 17:43:42 +0000 (18:43 +0100)]
Update changelog

3 years agoMerge bitcoindevkit/bdk#563: update AddressInfo struct
Steve Myers [Tue, 5 Apr 2022 00:35:31 +0000 (17:35 -0700)]
Merge bitcoindevkit/bdk#563: update AddressInfo struct

2698fc0219eb360e84a89ceabba4793777bf550b update AddressInfo struct (eunoia_1729)

Pull request description:

  ### Description

  Resolves #541.
  - Updates `AddressInfo` struct to include `keychainKind`
  - Updates the related `get_address` functions to pass in this field
  - Updates corresponding tests
  ### 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: b1d22e5f322e1a35390fb06a5185457bd53af7c4a9c4e6e2fd5e93b967fa3f56af5848ac314e63e2b0becd60dbc8a4eeb761a2bdebfe8ba43ce49b13da4190b2

3 years agoupdate AddressInfo struct
eunoia_1729 [Thu, 10 Mar 2022 00:52:02 +0000 (06:22 +0530)]
update AddressInfo struct

3 years agoMerge bitcoindevkit/bdk#554: Fix hierarchy of headers on docs landing page
Steve Myers [Sat, 2 Apr 2022 02:32:23 +0000 (19:32 -0700)]
Merge bitcoindevkit/bdk#554: Fix hierarchy of headers on docs landing page

364ad95e85bd09a01cb4cbf3ceb9e9fcc074c8b4 Fix hierarchy of headers on docs landing page (thunderbiscuit)

Pull request description:

  ### Description

  This PR fixes the hierarchy of headers on the lib.rs docs. I noticed it as I was reading through the docs. The new hierarchy is the following:

  - About (h1)
  - A tour of BDK (h1)
  - Examples (h1)
    - Sync the balance of a descriptor (h2)
    - Generate a few addresses (h2)
    - Create a transaction (h2)
    - Sign a transaction (h2)
  - Feature flags (h1)
  - Internal features (h1)

  ### 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:
  rajarshimaitra:
    tACK https://github.com/bitcoindevkit/bdk/pull/554/commits/364ad95e85bd09a01cb4cbf3ceb9e9fcc074c8b4

Tree-SHA512: b4439a200c320a1815c572ac36b81c4d684209cb5cf1b90d3f761893ad672a270722be7d7b61d77434a7f98c4276d6fc9694d0c86cacf03c72dc35ca17b5e7d3

3 years agoMerge branch 'master', commit 'refs/pull/566/head' of github.com:bitcoindevkit/bdk
Steve Myers [Wed, 30 Mar 2022 16:54:34 +0000 (09:54 -0700)]
Merge branch 'master', commit 'refs/pull/566/head' of github.com:bitcoindevkit/bdk

3 years agoMerge bitcoindevkit/bdk#519: Add wallet creation example using RPC
Steve Myers [Tue, 29 Mar 2022 16:55:26 +0000 (09:55 -0700)]
Merge bitcoindevkit/bdk#519: Add wallet creation example using RPC

8a98e69e788dd79d030798465fbc0dec044d86f1 Add rpc wallet creation example (rajarshimaitra)

Pull request description:

  ### Description

  As mentioned in https://github.com/bitcoindevkit/bitcoindevkit.org/issues/83#issuecomment-1005190174 it would be helpful
  to have wallet creation example code in the `example` directory.

  This is an attempt to create the most simplistic bdk wallet with a RPC backend and demonstrate receiving, creating, signing
  and broadcasting transaction.

  The code is a refinement of the RPC tutorial https://bitcoindevkit.org/blog/bitcoin-core-rpc-demo/ with more elaborate doc comments.

  ### Notes to the reviewers

  To automate the background RPC process `electrsd` is used which is already a `dev-dependency` of bdk.

  ### 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:
    tACK 8a98e69e788dd79d030798465fbc0dec044d86f1

Tree-SHA512: f00c1ce57ef91c3d3ab2ce08af3571c41bbe98f18f705c61ba4217c2f8061196e5eaf6122742293cd6fa16939bbbfacd0f8506cd4151b55f19a05325fd94a74a

3 years ago[descriptor] Expose utilities to deal with derived descriptors
Alekos Filini [Wed, 9 Mar 2022 17:39:58 +0000 (18:39 +0100)]
[descriptor] Expose utilities to deal with derived descriptors

3 years ago[export] Use the new getters on `Wallet` to generate export JSONs
Alekos Filini [Wed, 9 Mar 2022 17:39:28 +0000 (18:39 +0100)]
[export] Use the new getters on `Wallet` to generate export JSONs

3 years ago[wallet] Add more getters
Alekos Filini [Wed, 9 Mar 2022 17:38:11 +0000 (18:38 +0100)]
[wallet] Add more getters

3 years agoAdd rpc wallet creation example
rajarshimaitra [Tue, 22 Mar 2022 06:55:39 +0000 (12:25 +0530)]
Add rpc wallet creation example

This adds an example wallet creation code with sled DB and RPC
Blockchain.

The backend RPC is managed using electrsd::bitcoind

3 years agoAdd sqlite-bundled feature
Steve Myers [Sat, 12 Mar 2022 01:44:31 +0000 (19:44 -0600)]
Add sqlite-bundled feature

3 years agoMerge commit 'refs/pull/564/head' of github.com:bitcoindevkit/bdk
Steve Myers [Mon, 21 Mar 2022 14:58:01 +0000 (09:58 -0500)]
Merge commit 'refs/pull/564/head' of github.com:bitcoindevkit/bdk

3 years agoBump version to 0.17.1-dev github/release/0.17.0
Steve Myers [Fri, 18 Mar 2022 14:35:46 +0000 (09:35 -0500)]
Bump version to 0.17.1-dev

3 years agoBump version to 0.17.0 v0.17.0
Steve Myers [Thu, 17 Mar 2022 16:17:55 +0000 (11:17 -0500)]
Bump version to 0.17.0

3 years agoMerge bitcoindevkit/bdk#545: Update `electrsd` to v0.15
Steve Myers [Thu, 17 Mar 2022 15:49:25 +0000 (10:49 -0500)]
Merge bitcoindevkit/bdk#545: Update `electrsd` to v0.15

1803f5ea8a7a2f8f9ebdfa520baad91f84bd6ba0 Update `electrsd` to v0.15 (Alekos Filini)

Pull request description:

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

  ### Description

  PR RCasatta/electrsd#33 has been merged and the new changes released as part of `v0.15.0`: the PR allows setting an env variable (`ELECTRSD_EXE`) to use a custom electrsd binary, which can be useful when the one that is downloaded automatically doesn't work for whatever reason.

  ### 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
  * [ ] I've updated `CHANGELOG.md`

  #### 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:
  LLFourn:
    ACK 1803f5e
  notmandatory:
    ACK 1803f5ea8a7a2f8f9ebdfa520baad91f84bd6ba0

Tree-SHA512: 01d84763a5acf3aa1686b91ba7cb0c7ec3a0ca6c7b9bac29aa74a72f54ed31c476b7a8b0f8c6c8a8ccf530ad8a19e90e144ac4cacbe436699ef9e319b5732f1c

3 years agoFix pre-segwit inputs with esplora
LLFourn [Tue, 15 Mar 2022 23:11:31 +0000 (10:11 +1100)]
Fix pre-segwit inputs with esplora

3 years agoMerge bitcoindevkit/bdk#571: Fix pre-segwit inputs with esplora
Steve Myers [Thu, 17 Mar 2022 15:05:36 +0000 (10:05 -0500)]
Merge bitcoindevkit/bdk#571: Fix pre-segwit inputs with esplora

52bc63e48f5d16cb03c8a58f7b0bd07cbb058dde Fix pre-segwit inputs with esplora (LLFourn)

Pull request description:

  Unexpectedly pre-segwit inputs have an empty JSON witness field in esplora.

  Fixes #570

  * [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:
  notmandatory:
    ACK 52bc63e48f5d16cb03c8a58f7b0bd07cbb058dde
  afilini:
    ACK 52bc63e48f5d16cb03c8a58f7b0bd07cbb058dde

Tree-SHA512: 1da82aeb2739111e1a516d94c79fe7d7c7879526a8cd780dcd63ff5ae9ccb1bed4eb20e5c575a45e37b6d1818d63ce6d3812e7b9ae34ebb02bc190a47b9750f8

3 years agoFix pre-segwit inputs with esplora
LLFourn [Tue, 15 Mar 2022 23:11:31 +0000 (10:11 +1100)]
Fix pre-segwit inputs with esplora

3 years agoMerge bitcoindevkit/bdk#515: Never delete spent utxos from the database
Alekos Filini [Mon, 14 Mar 2022 15:06:16 +0000 (16:06 +0100)]
Merge bitcoindevkit/bdk#515: Never delete spent utxos from the database

f2f0efc0b3367abf40e33b84fc577fb11f625b04 Never delete spent utxos from the database (Daniela Brozzoni)

Pull request description:

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

  ### Description

  A `is_spent` field is added to LocalUtxo; when a txo is spent we set
  this field to true instead of deleting the entire utxo from the
  database.
  This allows us to create txs double-spending txs already in blockchain.
  Listunspent won't return spent in mempool utxos, effectively excluding them from the coin selection and balance calculation
  Fixes #414

  ### 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
  * [x] I've updated `CHANGELOG.md`
  * [x] I'm linking the issue being fixed by this PR

ACKs for top commit:
  afilini:
    Re-ACK f2f0efc

Tree-SHA512: 7984b69c56b3b12746c2301072d637dea1346730aa132f1ea67c5bd8bf685bd557fc7cbdc2fc1185e63c71db07d36cd979514921b2c83c55737cd4b96102377e

3 years agoBump version to 0.17.0-rc.1
Steve Myers [Thu, 10 Mar 2022 23:01:44 +0000 (17:01 -0600)]
Bump version to 0.17.0-rc.1

3 years agoUpdate `electrsd` to v0.15
Alekos Filini [Wed, 16 Feb 2022 16:08:25 +0000 (17:08 +0100)]
Update `electrsd` to v0.15

3 years agoNever delete spent utxos from the database
Daniela Brozzoni [Wed, 9 Mar 2022 15:15:34 +0000 (16:15 +0100)]
Never delete spent utxos from the database

A `is_spent` field is added to LocalUtxo; when a txo is spent we set
this field to true instead of deleting the entire utxo from the
database.
This allows us to create txs double-spending txs already in blockchain.
Listunspent won't return spent utxos, effectively excluding them from the
coin selection and balance calculation

3 years agoMerge bitcoindevkit/bdk#535: Remove blockchain from wallet
Steve Myers [Wed, 9 Mar 2022 16:44:08 +0000 (10:44 -0600)]
Merge bitcoindevkit/bdk#535: Remove blockchain from wallet

0cc4700bd67be84bb5cb0814bf5c8aa9fc3f3cdc Fix typo in CHANGELOG and doc in wallet/mod.rs (Steve Myers)
660faab1e20defe86a7baf132e52928f538b9cbb Fix typo in CHANGELOG (LLFourn)
45767fcaf7c65d5020f99fdc35c147acd6e8d037 Remove max_addresses sync param (LLFourn)
fbb50ad1c886a9cb716146fa823558d7d655c7b7 apply doc suggestions from @notmandatory (Lloyd Fournier)
035307ef54ebc330b1760bbdd17bdab3b167cfeb [rpc] Filter out unrelated transactions (LLFourn)
c0e75fc1a8560cdacf705ff60ef8833befd8280c Split get_tx into its own trait (LLFourn)
dcd90f8b61287164dae60f039848d3605eab8616 Restore but depreciate new_offline (LLFourn)
410a51355bb47dbf3401cbe6f19546255c6721e0 Add SyncOptions as the second argument to Wallet::sync (LLFourn)
326bfe82a89eaa79acf90c34442234c7e53e1caf Remove Blockchain from wallet (LLFourn)

Pull request description:

  While trying to finish #490 I thought that it'd be better to try the idea of getting rid of a lot of the async macros and just having tow different traits for sync and async stuff. While trying to do that I felt that this needed to be done first.

  The goal of this change is to decouple the wallet from the blockchain trait. A wallet is something that keeps track of UTXOs and transactions (and can sign things). The only reason it should need to talk to the blockchain is if doing a `sync`. So we remove all superfluous calls to the blockchain and precisely define the requirements for the blockchain to be used to sync with two new traits: `WalletSync` and `GetHeight`.

  1. Stop requesting height when wallet is created
  2. `new_offline` is just `new` now.
  3. a `WalletSync + GetHeight` is now the first argument to `sync`.
  4. `SyncOptions` replaces the existing options to `sync` and allows for less friction when making breaking changes in the fuutre (no more noop_progress!).
  5. We `Box` the `Progress` now to avoid type parameters
  6. broadcast has been removed from `Wallet`. You just use the blockchain directly to broadcast now.

  ### Notes to the reviewers

  This needs #502 before it can be merged but can reviewed now.
  Be on the look up for stale documentation from this change.
  Our doc build looks broken because of ureq or something.

  ### 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 updated `CHANGELOG.md`

Top commit has no ACKs.

Tree-SHA512: a8f3e21e45359be642b1f30d4ac1ba74785439e1b770dbeab0a5a4b8aab1eef4bb6b855aea4382e289257bc890fa713ca832a8b6c9655f7a59e96d412b4da3e6

3 years agoFix typo in CHANGELOG and doc in wallet/mod.rs
Steve Myers [Wed, 9 Mar 2022 02:02:47 +0000 (20:02 -0600)]
Fix typo in CHANGELOG and doc in wallet/mod.rs

3 years agoFix typo in CHANGELOG
LLFourn [Tue, 8 Mar 2022 03:00:29 +0000 (14:00 +1100)]
Fix typo in CHANGELOG

3 years agoRemove max_addresses sync param
LLFourn [Sun, 6 Mar 2022 23:44:41 +0000 (10:44 +1100)]
Remove max_addresses sync param

You can do this with ensure_addresses_cached if you really want to.

3 years agoMerge branch 'master' into remove-blockchain-from-wallet
LLFourn [Thu, 3 Mar 2022 02:13:45 +0000 (13:13 +1100)]
Merge branch 'master' into remove-blockchain-from-wallet

3 years agoMerge bitcoindevkit/bdk#537: refactor wallet address caching into its own public...
Steve Myers [Wed, 2 Mar 2022 05:27:44 +0000 (21:27 -0800)]
Merge bitcoindevkit/bdk#537: refactor wallet address caching into its own public method

edf2f0ce06d27a1434202b79306cd1e998b5614c refactor wallet address caching into its own public method for offline wallet use (a5an0)

Pull request description:

  ### Description

  Currently, the only way to ensure that a wallet's internal database has addresses loaded and cached is through `Wallet::sync`: that function generates and caches up to a number of addresses if they aren't already in the database, and then uses the wallet's blockchain client to sync those addresses. If you are using an offline wallet, there is no mechanism to ensure that the database has addresses loaded. This is a problem for usecases like an offline wallet being used as a multisig signer and wanting to validate change addresses as `Wallet::is_mine` will only work properly if the owned-address is loaded in the database.

  This PR takes the address caching functionality out of `Wallet::sync` and puts it in a new public method that is available to offline wallets. `Wallet::sync` uses this method internally.

  ### 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] I've updated `CHANGELOG.md`

Top commit has no ACKs.

Tree-SHA512: 8ddc58d71457163bb20ff663ac508feb4e77000688161b63841a94db30b3f29f60f35fa2467bd99546123148873e3aed11e2f13ae6cbceda6605b83c227d9079

3 years agoMerge branch 'master' into offline-address-cache
Steve Myers [Wed, 2 Mar 2022 05:00:56 +0000 (21:00 -0800)]
Merge branch 'master' into offline-address-cache

3 years agoMerge bitcoindevkit/bdk#522: Add API for internal addresses
Steve Myers [Wed, 2 Mar 2022 04:52:12 +0000 (20:52 -0800)]
Merge bitcoindevkit/bdk#522: Add API for internal addresses

022256c91ac7a4d9324a1a7925394a948feec808 Fix comment on peek_address (Lloyd Fournier)
00f0901bac805360695d0c492df8fa809918863e Add API for internal addresses (LLFourn)

Pull request description:

  There are good reasons for applications to need to get internal
  addresses too. For example creating a transactions that splits an output
  into several smaller ones.

  ### 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
  * [x] I've added docs for the new feature
  * [x] I've updated `CHANGELOG.md`

ACKs for top commit:
  notmandatory:
    ACK 022256c91ac7a4d9324a1a7925394a948feec808

Tree-SHA512: 0ead6669c9974332708ae6cba1a5be69cd4b3b6c7a21896efdce178d4406265ba072e1cf02d1913178d0a551f3b276d99b75676c632833964f87484e262a61b1

3 years agorefactor wallet address caching into its own public method for offline wallet use
a5an0 [Wed, 2 Feb 2022 13:27:53 +0000 (08:27 -0500)]
refactor wallet address caching into its own public method for offline wallet use

3 years agoFix hierarchy of headers on docs landing page
thunderbiscuit [Thu, 24 Feb 2022 15:48:47 +0000 (10:48 -0500)]
Fix hierarchy of headers on docs landing page

3 years agoapply doc suggestions from @notmandatory
Lloyd Fournier [Thu, 24 Feb 2022 09:59:21 +0000 (20:59 +1100)]
apply doc suggestions from @notmandatory

Co-authored-by: Steve Myers <github@notmandatory.org>
3 years ago[rpc] Filter out unrelated transactions
LLFourn [Thu, 24 Feb 2022 09:32:47 +0000 (20:32 +1100)]
[rpc] Filter out unrelated transactions

For some reason while doing the "remove blockchain from wallet PR" I
changed the tests around in what I thought was a benign way. But it
meant (apparently) that both parties "test_sync_double_receive" were
using the same "blockchain". This meant that when the blockchain was RPC
they both imported their addresses to it and got each other's results
when syncing. This bugged out the sync and this commit fixes that.

3 years agoSplit get_tx into its own trait
LLFourn [Tue, 22 Feb 2022 23:38:35 +0000 (10:38 +1100)]
Split get_tx into its own trait

to make supporting verify_tx easier

3 years agoRestore but depreciate new_offline
LLFourn [Tue, 22 Feb 2022 22:52:18 +0000 (09:52 +1100)]
Restore but depreciate new_offline

3 years agoAdd SyncOptions as the second argument to Wallet::sync
LLFourn [Thu, 27 Jan 2022 05:52:53 +0000 (16:52 +1100)]
Add SyncOptions as the second argument to Wallet::sync

The current options are awkward and it would be good if we could
introduce more in the future without breaking changes.

3 years agoRemove Blockchain from wallet
LLFourn [Wed, 26 Jan 2022 04:17:48 +0000 (15:17 +1100)]
Remove Blockchain from wallet

Although somewhat convenient to have, coupling the Wallet with
the blockchain trait causes development friction and complexity.
What if sometimes the wallet is "offline" (no access to the blockchain)
but sometimes its online?
The only thing the Wallet needs the blockchain for is to sync.
But not all applications will even use the sync method and the sync
method doesn't require the full blockchain functionality.
So we instead pass the blockchain in when we want to sync.

- To further reduce the coupling with blockchain I removed the get_height call from `new` and just use the height of the
last sync in the database.
- I split up the blockchain trait a bit into subtraits.

3 years agoMerge commit 'refs/pull/552/head' of github.com:bitcoindevkit/bdk
Steve Myers [Wed, 23 Feb 2022 22:10:28 +0000 (14:10 -0800)]
Merge commit 'refs/pull/552/head' of github.com:bitcoindevkit/bdk

3 years agoFix comment on peek_address github/get_change_address
Lloyd Fournier [Thu, 13 Jan 2022 04:31:52 +0000 (15:31 +1100)]
Fix comment on peek_address

Co-authored-by: Raj <36541669+rajarshimaitra@users.noreply.github.com>
3 years agoAdd API for internal addresses
LLFourn [Thu, 19 Aug 2021 09:57:35 +0000 (19:57 +1000)]
Add API for internal addresses

There are good reasons for applications to need to get internal
addresses too. For example creating a transactions that splits an output
into several smaller ones.

3 years agoMerge bitcoindevkit/bdk#502: Refactor verification logic
Steve Myers [Tue, 22 Feb 2022 03:21:48 +0000 (19:21 -0800)]
Merge bitcoindevkit/bdk#502: Refactor verification logic

1999d97aeb3d97ee24a9b59a2f1453a26943b595 Remove `verify` flag from `TransactionDetails` via new MIGRATIONS (Steve Myers)
0195bc0636d9a58013f0cbc3781d213b0cfc1509 Update CHANGELOG (rajarshimaitra)
1d7ea89d8a792013212b1d269895b02fe3b410bd Refactor sync time verification (rajarshimaitra)
b05ee78c7335f7e3a1593dc4ff7686e6f72ff5c0 Remove verifcation flag from compact_filters (rajarshimaitra)
53c30b0479c74dde17cd27f8eac7f540e492067d Add verification tests in CI (rajarshimaitra)
6a09075d1a87509e9117eab727132efdf8ea6e1d Remove verify flag from sqlite DB (rajarshimaitra)
61a95d0d15b9944e8b5d13db64ef6ffd9a8d6e29 Update changelog (rajarshimaitra)
08f312a82f889f6bf5dfedfaa565ac2cb59683ae Remove `verify` flag from `TransactionDetails` (rajarshimaitra)
acbf0ae08e0732579652aece9bc48169351884cf Add sync verification for `esplora` (rajarshimaitra)
4761155707a819c4db437e71a36621a027d5302a Add sync verification in `electrum` (rajarshimaitra)
98a3b3282a0ff59bbdf900adc765f6912d1975c1 Remove sync verification (rajarshimaitra)

Pull request description:

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

  ### Description

  As discussed in https://github.com/bitcoindevkit/bdk/issues/498 and also in team call,
   - default verification from wallet sync is removed
   - `verify_tx` refactored as an wallet API
   - in `sync` verification added for electrum and esplora backends, gated by `verify` flag.
   - `verify` flag is removed from `TransactionDetails`.

  ### Notes to the reviewers

  I haven't looked into `comapct_filters` to see how verification can fit there, but that will probably be required in future.

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

  #### Wallet API change:

  * [x] I've updated `CHANGELOG.md`

Top commit has no ACKs.

Tree-SHA512: 72e307008a137468d96d5c2a6ec804b18fa52363606f3c978208ae5dc22973a7f0aa37488e9bb98dde88409a12d59cc5f00c675d2d408e57e661bf6210bee67b

3 years agoMerge branch 'master' into verifcation-refactor
Steve Myers [Tue, 22 Feb 2022 01:47:09 +0000 (17:47 -0800)]
Merge branch 'master' into verifcation-refactor

3 years agoRemove `verify` flag from `TransactionDetails` via new MIGRATIONS
Steve Myers [Mon, 21 Feb 2022 22:06:15 +0000 (14:06 -0800)]
Remove `verify` flag from `TransactionDetails` via new MIGRATIONS

3 years agoUpdate CHANGELOG
rajarshimaitra [Fri, 11 Feb 2022 16:38:17 +0000 (22:08 +0530)]
Update CHANGELOG

3 years agoMerge bitcoindevkit/bdk#551: Fix sent calculation in the RPC backend
Alekos Filini [Sun, 20 Feb 2022 10:19:14 +0000 (11:19 +0100)]
Merge bitcoindevkit/bdk#551: Fix sent calculation in the RPC backend

bfd0d13779003f11fa099a0b665052c18ce6e500 [blockchain] Fix `sent` calculation in the RPC backend (Daniela Brozzoni)
128c37595c5cfeacdb8e999da5795a9aa28ad67b [tests] Pass tx inputs to the testutils macro (Daniela Brozzoni)

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

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

  ### 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:
  afilini:
    ACK bfd0d13779003f11fa099a0b665052c18ce6e500

Tree-SHA512: 1c214819c5dc1f1c30b1c6ef18a44a3013d587651890b26aecfc5203d128173fd91497337186bbee6934f77d3cfe1686e67b83ca6fe6e47b4c1d4b1dbcc656ee

3 years agoBump version to 0.16.2-dev github/release/0.16.0
Steve Myers [Sat, 19 Feb 2022 21:10:04 +0000 (13:10 -0800)]
Bump version to 0.16.2-dev

3 years agoBump version to 0.16.1 v0.16.1
Steve Myers [Sat, 19 Feb 2022 20:46:17 +0000 (12:46 -0800)]
Bump version to 0.16.1

3 years agoPin tokio version to ~1.14
Steve Myers [Thu, 17 Feb 2022 19:37:39 +0000 (11:37 -0800)]
Pin tokio version to ~1.14

3 years ago[ci] Pin nightly docs workflow rust version to nightly-2022-01-25
Steve Myers [Fri, 4 Feb 2022 14:55:00 +0000 (08:55 -0600)]
[ci] Pin nightly docs workflow rust version to nightly-2022-01-25

3 years ago[blockchain] Fix `sent` calculation in the RPC backend
Daniela Brozzoni [Thu, 17 Feb 2022 22:39:11 +0000 (23:39 +0100)]
[blockchain] Fix `sent` calculation in the RPC backend

We used to consider a tx input as ours if we had the
tx that creates it in the database.
This commit actually checks if an input is ours before adding
its value to the `sent` field.

3 years ago[tests] Pass tx inputs to the testutils macro
Daniela Brozzoni [Thu, 17 Feb 2022 22:36:40 +0000 (23:36 +0100)]
[tests] Pass tx inputs to the testutils macro

3 years agoMerge bitcoindevkit/bdk#550: Pin tokio version to ~1.14
Steve Myers [Fri, 18 Feb 2022 02:09:03 +0000 (18:09 -0800)]
Merge bitcoindevkit/bdk#550: Pin tokio version to ~1.14

b04bb590f385db349f8dc70cc169674b530c4205 Pin tokio version to ~1.14 (Steve Myers)

Pull request description:

  ### Description

  The `tokio` project recently changed their MSRV to `1.49.0`. This PR will pin the `tokio` dependency version to `~1.14` which is prior to their MSRV increase.

  ### Notes to the reviewers

  The LDK team took this approach for their `tokio` dev-dependency, see https://github.com/lightningdevkit/rust-lightning/pull/1315.

  As long as `tokio` backports bug fixes  to`1.14.x` releases this should be safe. If we need any new features we can revisit this decision.

  ### 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 updated `CHANGELOG.md`

ACKs for top commit:
  LLFourn:
    ACK b04bb590f385db349f8dc70cc169674b530c4205

Tree-SHA512: a44d61e0d644900837b5a99e0f2b9e5706cf9932f7430c3a2c8adbff37c82e4a6a545849fe031da748fcd8c8a70f5266d6974c5b6634b50af5eae148b9a26635

3 years agoPin tokio version to ~1.14
Steve Myers [Thu, 17 Feb 2022 19:37:39 +0000 (11:37 -0800)]
Pin tokio version to ~1.14

3 years agoMerge bitcoindevkit/bdk#542: Implement XKeyUtils on InnerXKey
Alekos Filini [Mon, 14 Feb 2022 19:15:57 +0000 (20:15 +0100)]
Merge bitcoindevkit/bdk#542: Implement XKeyUtils on InnerXKey

b6fe01c4668b1b6737e5e24ae2282f0f55da39cd Implement XKeyUtils on InnerXKey (Gianluca Acerbis)

Pull request description:

  Closes #395

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

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

  ### 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
  * [ ] I've updated `CHANGELOG.md`

  #### 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:
  danielabrozzoni:
    ACK b6fe01c4668b1b6737e5e24ae2282f0f55da39cd - the code looks good to me, I tested locally and all tests pass
  notmandatory:
    ACK b6fe01c4668b1b6737e5e24ae2282f0f55da39cd

Tree-SHA512: 00a3ed9532a0589ac4be55a7d0c6ac5251f03f716adb2086eb934d9a9b04bcb7fd95aaeba38b68c5c90876644ce53ac5e39a912a4096e789887342f8727ae434

3 years agoImplement XKeyUtils on InnerXKey
Gianluca Acerbis [Tue, 14 Sep 2021 12:56:00 +0000 (12:56 +0000)]
Implement XKeyUtils on InnerXKey

Closes #395

3 years agoRefactor sync time verification
rajarshimaitra [Fri, 21 Jan 2022 16:13:05 +0000 (21:43 +0530)]
Refactor sync time verification

Instead of verifying txs at sync time in every backend, its moved to
script_sync to by default be available to any backend.

3 years agoRemove verifcation flag from compact_filters
rajarshimaitra [Sun, 2 Jan 2022 09:44:32 +0000 (15:14 +0530)]
Remove verifcation flag from compact_filters

3 years agoAdd verification tests in CI
rajarshimaitra [Sun, 2 Jan 2022 08:52:39 +0000 (14:22 +0530)]
Add verification tests in CI

3 years agoRemove verify flag from sqlite DB
rajarshimaitra [Sun, 2 Jan 2022 08:52:10 +0000 (14:22 +0530)]
Remove verify flag from sqlite DB

3 years agoUpdate changelog
rajarshimaitra [Thu, 16 Dec 2021 17:16:44 +0000 (22:46 +0530)]
Update changelog

3 years agoRemove `verify` flag from `TransactionDetails`
rajarshimaitra [Thu, 16 Dec 2021 15:36:59 +0000 (21:06 +0530)]
Remove `verify` flag from `TransactionDetails`

3 years agoAdd sync verification for `esplora`
rajarshimaitra [Thu, 16 Dec 2021 15:27:28 +0000 (20:57 +0530)]
Add sync verification for `esplora`

3 years agoAdd sync verification in `electrum`
rajarshimaitra [Thu, 16 Dec 2021 15:23:16 +0000 (20:53 +0530)]
Add sync verification in `electrum`

3 years agoRemove sync verification
rajarshimaitra [Thu, 16 Dec 2021 15:21:18 +0000 (20:51 +0530)]
Remove sync verification

The default sync verification is removed from wallet module.
By default sync time verification only makes sense for `electrum` and
`esplora` backend as they are usually untrusted 3rd party services.

script verification for transaction is costly, so removing default
script verification optimizes performance.

3 years agoMerge bitcoindevkit/bdk#539: [ci] Pin nightly docs workflow rust version to nightly...
Alekos Filini [Mon, 7 Feb 2022 10:01:36 +0000 (11:01 +0100)]
Merge bitcoindevkit/bdk#539: [ci] Pin nightly docs workflow rust version to nightly-2022-01-25

07c270db03bac07604911e6bd253c18713de0ab0 [ci] Pin nightly docs workflow rust version to nightly-2022-01-25 (Steve Myers)

Pull request description:

  ### Description

  Pin nightly docs workflow rust version to `nightly-2022-01-25` to fix #538 .

  ### Notes to the reviewers

  The nightly docs should be changed to the `stable` version once it supports `feature(doc_cfg)`.

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

  #### Bugfixes:

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

ACKs for top commit:
  afilini:
    ACK 07c270db03bac07604911e6bd253c18713de0ab0

Tree-SHA512: a8e5de051e1963c10d686d5cb5d1785e20f6cd322b9bfcf2d2f5c381d9124a9b8518671dfbedb11550bdfa66c8c64ad505c7e1604e2bfe23600de39cb20467dd

3 years ago[ci] Pin nightly docs workflow rust version to nightly-2022-01-25
Steve Myers [Fri, 4 Feb 2022 14:55:00 +0000 (08:55 -0600)]
[ci] Pin nightly docs workflow rust version to nightly-2022-01-25

3 years agoMerge bitcoindevkit/bdk#532: Release/0.16.0
Alekos Filini [Thu, 27 Jan 2022 09:44:42 +0000 (10:44 +0100)]
Merge bitcoindevkit/bdk#532: Release/0.16.0

fcf422752bb440f08aa9b5384297bbb06bca8cb3 Fix 0.16.0 changelog, include WIF fix (Steve Myers)
6fb42fdea10fcff9a45dd07f966ec4f3746c369d Bump version to 0.16.1-dev (Steve Myers)
3f65e8c64bd620685e40d3b54a0893993513441b Bump version to 0.16.0 (Steve Myers)
3f0101d317ec5a1d0df60c274741ee380563d7fe Bump version to 0.16.0-rc.1 (Steve Myers)

Pull request description:

  ### Description

  Merge the 0.16.0 release branch back into the master branch.

  ### 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:
  afilini:
    ACK fcf422752bb440f08aa9b5384297bbb06bca8cb3

Tree-SHA512: 7a1e9297f4e93284e5e57124c7afe37d1fbef1da48375b310aad7fe8556be6bba00c3263e9d15540209fc99ba5e928d3fc751d0df6592c2af871599f00941a7b

3 years agoFix 0.16.0 changelog, include WIF fix
Steve Myers [Fri, 21 Jan 2022 20:27:36 +0000 (14:27 -0600)]
Fix 0.16.0 changelog, include WIF fix

3 years agoBump version to 0.16.1-dev
Steve Myers [Fri, 21 Jan 2022 20:27:02 +0000 (14:27 -0600)]
Bump version to 0.16.1-dev

3 years agoBump version to 0.16.0 v0.16.0
Steve Myers [Fri, 21 Jan 2022 18:35:45 +0000 (12:35 -0600)]
Bump version to 0.16.0

3 years agoBump version to 0.16.0-rc.1
Steve Myers [Wed, 12 Jan 2022 17:01:32 +0000 (18:01 +0100)]
Bump version to 0.16.0-rc.1

3 years agoMerge bitcoindevkit/bdk#505: Using dust value from rust-bitcoin in ``is_dust``
Steve Myers [Wed, 12 Jan 2022 16:47:58 +0000 (17:47 +0100)]
Merge bitcoindevkit/bdk#505: Using dust value from rust-bitcoin in ``is_dust``

5ac51dfe74c51c83fe270570d7ffc50888cf554f fix and test is_dust (James Taylor)
a0c140bb29ab37103e4a24d296ac6fcea91da69e add doc comment for IsDust trait (James Taylor)
bf5994b14ade1fc0c37d3e3cda6946c26ceea631 fixed fee in test, removed unnecessary comment (James Taylor)
ca682819b396c44c9139086b1537d32b212499a1 using dust value from rust-bitcoin (James Taylor)

Pull request description:

  ### Description

  This PR aims to fix #472 . We can retrieve the dust value for a given ``bitcoin::blockdata::script::Script``, so I adjusted the ``is_dust`` function within the ``IsDust`` trait to receive such a ``&Script``. Thus, the ``is_dust`` function can make the proper comparison.
  Let me know if you think that there could be a better interface than this.

  Furthermore, because this new ``is_dust`` function provides a tighter upper bound on Bitcoin Core's ``GetDustThreshold()``, it actually invalidated a test. In the test, the drain output for a transaction was no longer considered dust and no longer included in the fee. Instead, the drain output was kicked back to the sender, invalidating the asserts in line 3436, 3437 and 3441 in ``src/wallet/mod.rs``. I increased the ``FeeRate`` in the test just enough that the drain output would be small enough to considered dust again and included in the total fee.

  ### 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:
  afilini:
    ACK 5ac51dfe74c51c83fe270570d7ffc50888cf554f
  notmandatory:
    re ACK 5ac51dfe74c51c83fe270570d7ffc50888cf554f

Tree-SHA512: addf38fe065de581ddfcd3b4e6db92cd35d5bfa8cac78bd08c01f7a01292724a203ef59b09f3f5cd8e0fa0bb6d89efe72afda36efc11ded0424fc8105326af3f

3 years agoMerge bitcoindevkit/bdk#495: Disable reqwest's default features
Steve Myers [Wed, 12 Jan 2022 08:15:23 +0000 (09:15 +0100)]
Merge bitcoindevkit/bdk#495: Disable reqwest's default features

380a4f2588cf9800bde739eb3ba58ca67b785291 Disable reqwest's default features (Thomas Eizinger)

Pull request description:

  ### Description

  By default, reqwest uses openssl for TLS. Any consumer wanting to use
  rustls will thus pull in unnecessary dependencies.

  ### 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~
  * [x] I've updated `CHANGELOG.md`

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

Tree-SHA512: 17827fdd7656a1e97b4cc302bc3c4907a8493505c798fafd9b15fde12531a32cf60e7d63e878eb2001d6b3e95f7ae3da730e227eb85c73d9de55b56456cfb3a0

3 years agofix and test is_dust
James Taylor [Tue, 11 Jan 2022 23:21:35 +0000 (18:21 -0500)]
fix and test is_dust

3 years agoMerge commit 'refs/pull/508/head' of github.com:bitcoindevkit/bdk
Steve Myers [Tue, 11 Jan 2022 09:08:33 +0000 (10:08 +0100)]
Merge commit 'refs/pull/508/head' of github.com:bitcoindevkit/bdk

3 years agoDisable reqwest's default features
Thomas Eizinger [Tue, 7 Dec 2021 05:34:03 +0000 (16:34 +1100)]
Disable reqwest's default features

By default, reqwest uses openssl for TLS. Any consumer wanting to use
rustls will thus pull in unnecessary dependencies. To make getting started
with bdk and reqwest easier, we add a `reqwest-default-tls` feature
that can be used to activate reqwest's `default-tls` feature. TLS is
necessary for the esplora integration. Adding this feature makes it possible
for people to use bdk with esplora without adding a reqwest dependency to
their manifest.

4 years agoFix CHANGELOG link for v0.15.0 github/release/0.15.0
Steve Myers [Wed, 29 Dec 2021 21:17:11 +0000 (13:17 -0800)]
Fix CHANGELOG link for v0.15.0

4 years agoMerge bitcoindevkit/bdk#511: Fix nightly_docs.yml publish_docs 'Commit' step
Alekos Filini [Wed, 29 Dec 2021 09:59:24 +0000 (10:59 +0100)]
Merge bitcoindevkit/bdk#511: Fix nightly_docs.yml publish_docs 'Commit' step

947a9c29db7c7bb4855c84e70d986b9ab61339d6 Fix nightly_docs.yml publish_docs 'Commit' step (Steve Myers)

Pull request description:

  ### Description

  I forgot to fix in #503 the `nightly_docs.yaml` `publish_docs` `Commit` step to add new files for the path `./docs/.vuepress/public/docs-rs`.

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

ACKs for top commit:
  afilini:
    ACK 947a9c2

Tree-SHA512: d2bdbcb6cea46ec1949eba6f334acd5dbbe9b4b1323bb4713dc5d7f749666260ab05c29247c35f08c587b46d6bfb765c6a612c6522fd15211c84f7590f8c4748

4 years agoBump version to 0.15.1-dev
Steve Myers [Thu, 23 Dec 2021 18:40:42 +0000 (10:40 -0800)]
Bump version to 0.15.1-dev