]> Untitled Git - bdk/log
bdk
5 years ago[wallet] Make coin_select return UTXOs instead of TxIns
LLFourn [Fri, 30 Oct 2020 03:09:59 +0000 (14:09 +1100)]
[wallet] Make coin_select return UTXOs instead of TxIns

- We want to keep the metadata in the UTXO around for things later
- It is easier to turn a UTXO into a TxIn outside

5 years ago[ci] Remove actions-rs, cleanup names
Steve Myers [Mon, 16 Nov 2020 23:37:26 +0000 (15:37 -0800)]
[ci] Remove actions-rs, cleanup names

5 years ago[wallet] Use the branch-and-bound cs by default
Alekos Filini [Fri, 13 Nov 2020 14:55:10 +0000 (15:55 +0100)]
[wallet] Use the branch-and-bound cs by default

Keep the `LargestFirst` coin selection for the tests, to make them more
predictable.

5 years agoremove unneeded pub modifier
Riccardo Casatta [Mon, 16 Nov 2020 11:11:37 +0000 (12:11 +0100)]
remove unneeded pub modifier

5 years agoignore .idea
Riccardo Casatta [Mon, 16 Nov 2020 11:09:14 +0000 (12:09 +0100)]
ignore .idea

5 years ago[sync] check last derivation in cache to avoid recomputation
Riccardo Casatta [Mon, 16 Nov 2020 11:06:48 +0000 (12:06 +0100)]
[sync] check last derivation in cache to avoid recomputation

5 years ago[keys] Add a shortcut to generate keys with the default options
Alekos Filini [Fri, 13 Nov 2020 16:43:57 +0000 (17:43 +0100)]
[keys] Add a shortcut to generate keys with the default options

5 years ago[keys] impl `ToDescriptorKey` for `GeneratedKey`
Alekos Filini [Fri, 13 Nov 2020 16:27:36 +0000 (17:27 +0100)]
[keys] impl `ToDescriptorKey` for `GeneratedKey`

5 years ago[keys] impl `GeneratableKey` for `bitcoin::PrivateKey`
Alekos Filini [Fri, 13 Nov 2020 15:43:04 +0000 (16:43 +0100)]
[keys] impl `GeneratableKey` for `bitcoin::PrivateKey`

5 years ago[cli] Split the internal and external policy paths
Alekos Filini [Fri, 13 Nov 2020 11:53:42 +0000 (12:53 +0100)]
[cli] Split the internal and external policy paths

5 years ago[wallet] Take both spending policies into account in create_tx
Alekos Filini [Tue, 10 Nov 2020 14:06:14 +0000 (15:06 +0100)]
[wallet] Take both spending policies into account in create_tx

This allows specifying different "policy paths" for the internal and external
descriptors, and adds additional checks to make sure they are compatibile (i.e.
the timelocks are expressed in the same unit).

It's still suboptimal, since the `n_sequence`s are per-input and not per-transaction,
so it should be possibile to spend different inputs with different, otherwise
incompatible, `CSV` timelocks, but that requires a larger refactor that
can be done in a future patch.

This commit also tries to clarify how the "policy path" should be used by adding
a fairly detailed example to the docs.

5 years ago[wallet] Replace `must_use` with `required` in coin selection
Daniela Brozzoni [Sat, 31 Oct 2020 15:28:30 +0000 (16:28 +0100)]
[wallet] Replace `must_use` with `required` in coin selection

5 years ago[wallet] Add tests for BranchAndBoundCoinSelection::single_random_draw
Daniela Brozzoni [Sat, 31 Oct 2020 15:28:21 +0000 (16:28 +0100)]
[wallet] Add tests for BranchAndBoundCoinSelection::single_random_draw

5 years ago[wallet] Add tests for BranchAndBoundCoinSelection::bnb
Daniela Brozzoni [Sat, 31 Oct 2020 15:28:12 +0000 (16:28 +0100)]
[wallet] Add tests for BranchAndBoundCoinSelection::bnb

5 years ago[wallet] Add tests for BranchAndBoundCoinSelection::coin_select
Daniela Brozzoni [Sat, 31 Oct 2020 15:27:33 +0000 (16:27 +0100)]
[wallet] Add tests for BranchAndBoundCoinSelection::coin_select

5 years ago[wallet] Add Branch and Bound coin selection
Daniela Brozzoni [Sat, 31 Oct 2020 15:24:59 +0000 (16:24 +0100)]
[wallet] Add Branch and Bound coin selection

5 years ago[wallet] Use TXIN_DEFAULT_WEIGHT constant in coin selection
Daniela Brozzoni [Sun, 8 Nov 2020 14:46:27 +0000 (15:46 +0100)]
[wallet] Use TXIN_DEFAULT_WEIGHT constant in coin selection

Replace all the occurences of `serialize(&txin)`
with TXIN_DEFAULT_WEIGHT.

5 years ago[wallet] Split `send_all` into `set_single_recipient` and `drain_wallet`
Alekos Filini [Wed, 28 Oct 2020 09:37:47 +0000 (10:37 +0100)]
[wallet] Split `send_all` into `set_single_recipient` and `drain_wallet`

Previously `send_all` was particularly confusing, because when used on a
`create_tx` it implied two things:
- spend everything that's in the wallet (if no utxos are specified)
- don't create a change output

But when used on a `bump_fee` it only meant to not add a change output
and instead reduce the only existing output to increase the fee.

This has now been split into two separate options that should hopefully
make it more clear to use, as described in #142.

Additionally, `TxBuilder` now has a "context", that basically allows to
make some flags available only when they are actually meaningful, either
for `create_tx` or `bump_fee`.

Closes #142.

5 years agoMerge commit 'refs/pull/156/head' of github.com:bitcoindevkit/bdk
Alekos Filini [Thu, 5 Nov 2020 10:44:29 +0000 (11:44 +0100)]
Merge commit 'refs/pull/156/head' of github.com:bitcoindevkit/bdk

5 years agoMake Signer and AddressValidator Send and Sync
LLFourn [Tue, 3 Nov 2020 05:06:03 +0000 (16:06 +1100)]
Make Signer and AddressValidator Send and Sync

5 years agoRemove redundant Box around signers
LLFourn [Tue, 3 Nov 2020 05:03:44 +0000 (16:03 +1100)]
Remove redundant Box around signers

5 years agoRemove redundant Box around address validators
LLFourn [Tue, 3 Nov 2020 05:03:04 +0000 (16:03 +1100)]
Remove redundant Box around address validators

5 years ago[ci] test with all features enabled in single run
Steve Myers [Mon, 2 Nov 2020 22:01:58 +0000 (14:01 -0800)]
[ci] test with all features enabled in single run

5 years ago[ci] Add code coverage github actions workflow
Steve Myers [Tue, 27 Oct 2020 22:13:51 +0000 (15:13 -0700)]
[ci] Add code coverage github actions workflow

5 years ago[repl] add max_addresses param in sync
Riccardo Casatta [Fri, 30 Oct 2020 13:43:36 +0000 (14:43 +0100)]
[repl] add max_addresses param in sync

5 years agoMerge commit 'refs/pull/146/head' of github.com:bitcoindevkit/bdk
Alekos Filini [Thu, 29 Oct 2020 10:53:22 +0000 (11:53 +0100)]
Merge commit 'refs/pull/146/head' of github.com:bitcoindevkit/bdk

5 years ago[ci] Enable clippy for stable and tests by default
Steve Myers [Thu, 29 Oct 2020 04:35:15 +0000 (21:35 -0700)]
[ci] Enable clippy for stable and tests by default

5 years ago[ci] Fix all-keys and cli-utils tests
Steve Myers [Thu, 29 Oct 2020 04:34:04 +0000 (21:34 -0700)]
[ci] Fix all-keys and cli-utils tests

5 years ago[ci] Enable clippy and test for optional features
Steve Myers [Thu, 29 Oct 2020 00:47:43 +0000 (17:47 -0700)]
[ci] Enable clippy and test for optional features

5 years ago[ci] Fix or ignore clippy warnings for all optional features except compact_filters
Steve Myers [Wed, 28 Oct 2020 22:34:46 +0000 (15:34 -0700)]
[ci] Fix or ignore clippy warnings for all optional features except compact_filters

5 years agoRename get_must_may_use_utxos to preselect_utxos
Murch [Mon, 26 Oct 2020 18:23:46 +0000 (14:23 -0400)]
Rename get_must_may_use_utxos to preselect_utxos

5 years agoRename may_use_utxos to optional_uxtos
Murch [Mon, 26 Oct 2020 18:12:46 +0000 (14:12 -0400)]
Rename may_use_utxos to optional_uxtos

5 years agoMerge commit 'refs/pull/115/head' of github.com:bitcoindevkit/bdk
Alekos Filini [Tue, 27 Oct 2020 10:04:00 +0000 (11:04 +0100)]
Merge commit 'refs/pull/115/head' of github.com:bitcoindevkit/bdk

5 years ago[descriptor] Comment out incomplete ExtractPolicy trait tests
Steve Myers [Mon, 26 Oct 2020 19:41:22 +0000 (12:41 -0700)]
[descriptor] Comment out incomplete ExtractPolicy trait tests

5 years ago[descriptor] Fix compile errors after rebase
Steve Myers [Mon, 19 Oct 2020 23:58:55 +0000 (16:58 -0700)]
[descriptor] Fix compile errors after rebase

5 years ago[descriptor] Add descriptor macro tests
Steve Myers [Mon, 12 Oct 2020 16:09:25 +0000 (09:09 -0700)]
[descriptor] Add descriptor macro tests

5 years ago[descriptor] Add get_checksum tests, cleanup tests
Steve Myers [Sat, 3 Oct 2020 21:48:13 +0000 (14:48 -0700)]
[descriptor] Add get_checksum tests, cleanup tests

5 years ago[descriptor] Add ExtractPolicy trait tests
Steve Myers [Thu, 1 Oct 2020 22:54:59 +0000 (15:54 -0700)]
[descriptor] Add ExtractPolicy trait tests

5 years agoRename must_use_utxos to required_utxos
Murch [Mon, 26 Oct 2020 18:08:57 +0000 (14:08 -0400)]
Rename must_use_utxos to required_utxos

5 years agoRename DumbCS to LargestFirstCoinSelection
Murch [Mon, 26 Oct 2020 18:16:25 +0000 (14:16 -0400)]
Rename DumbCS to LargestFirstCoinSelection

5 years agoIncorporate RBF rules into utxo selection function
LLFourn [Fri, 23 Oct 2020 01:13:05 +0000 (12:13 +1100)]
Incorporate RBF rules into utxo selection function

5 years ago[wallet] Stop implicitly enforcing manaul selection by .add_utxo
LLFourn [Thu, 22 Oct 2020 01:07:51 +0000 (12:07 +1100)]
[wallet] Stop implicitly enforcing manaul selection by .add_utxo

This makes it possible to choose a UTXO manually without having to
choose them *all* manually. I introduced the `manually_selected_only`
option to enforce that only manually selected utxos can be used.

To stop the cli semantics changing I made the `utxos` keep the old
behaviour by calling `manually_selected_only`.

5 years ago[wallet] Make 'unspendable' into a HashSet
LLFourn [Wed, 21 Oct 2020 04:53:55 +0000 (15:53 +1100)]
[wallet] Make 'unspendable' into a HashSet

to avoid awkwardly later on.

5 years ago[wallet] Replace ChangeSpendPolicy::filter_utxos with a predicate
LLFourn [Wed, 21 Oct 2020 04:53:00 +0000 (15:53 +1100)]
[wallet] Replace ChangeSpendPolicy::filter_utxos with a predicate

To make composing it with other filtering conditions easier.

5 years agoMerging two match expressions for fee calculation
Richard Ulrich [Thu, 22 Oct 2020 11:41:26 +0000 (13:41 +0200)]
Merging two match expressions for fee calculation

5 years agoImplementing review suggestions from afilini
Richard Ulrich [Thu, 22 Oct 2020 07:11:58 +0000 (09:11 +0200)]
Implementing review suggestions from afilini

5 years agocomplying with clippy from the github CI
Richard Ulrich [Tue, 20 Oct 2020 16:22:37 +0000 (18:22 +0200)]
complying with clippy from the github CI

5 years agoallow to definie static fees for transactions Fixes #137
Richard Ulrich [Tue, 20 Oct 2020 16:10:59 +0000 (18:10 +0200)]
allow to definie static fees for transactions Fixes #137

5 years ago[wallet] Default to SIGHASH_ALL if not specified
Alekos Filini [Fri, 16 Oct 2020 13:40:30 +0000 (15:40 +0200)]
[wallet] Default to SIGHASH_ALL if not specified

Closes #133

5 years ago[wallet] Refactor `Wallet::bump_fee()`
Alekos Filini [Fri, 16 Oct 2020 12:27:50 +0000 (14:27 +0200)]
[wallet] Refactor `Wallet::bump_fee()`

5 years ago[wallet] Improve `CoinSelectionAlgorithm`
Alekos Filini [Wed, 14 Oct 2020 13:21:22 +0000 (15:21 +0200)]
[wallet] Improve `CoinSelectionAlgorithm`

Implement the improvements described in issue #121.

Closes #121, closes #131.

5 years ago[wallet] Make coin_select take may/must use utxo lists
LLFourn [Wed, 14 Oct 2020 03:03:12 +0000 (14:03 +1100)]
[wallet] Make coin_select take may/must use utxo lists

so that in the future you can add a UTXO that you *must* spend and let
the coin selection fill in the rest.

This partially addresses #121

5 years agoUse collect to avoid iter unwrapping Options
LLFourn [Wed, 14 Oct 2020 02:55:33 +0000 (13:55 +1100)]
Use collect to avoid iter unwrapping Options

5 years ago[blockchain] Fix receiving a coinbase using Electrum/Esplora
Alekos Filini [Tue, 13 Oct 2020 09:56:59 +0000 (11:56 +0200)]
[blockchain] Fix receiving a coinbase using Electrum/Esplora

Closes #107

5 years ago[keys]: Re-export tiny-bip39
Alekos Filini [Tue, 13 Oct 2020 08:57:40 +0000 (10:57 +0200)]
[keys]: Re-export tiny-bip39

Closes #104

5 years agoBump rust-bitcoin to 0.25, fix Cargo dependencies
Alekos Filini [Fri, 9 Oct 2020 10:03:47 +0000 (12:03 +0200)]
Bump rust-bitcoin to 0.25, fix Cargo dependencies

Closes #112, closes #113, closes #124

5 years ago[ci] Remove travis.yml
Steve Myers [Mon, 12 Oct 2020 16:30:20 +0000 (09:30 -0700)]
[ci] Remove travis.yml

5 years ago[ci] Fix clippy warnings for 1.47.0
Steve Myers [Thu, 8 Oct 2020 23:55:49 +0000 (16:55 -0700)]
[ci] Fix clippy warnings for 1.47.0

5 years ago[ci] Use bitcoindevkit/electrs base image for electrum tests
Steve Myers [Thu, 8 Oct 2020 23:35:00 +0000 (16:35 -0700)]
[ci] Use bitcoindevkit/electrs base image for electrum tests

5 years ago[ci] Fix clippy warnings, enable clippy checks
Steve Myers [Wed, 7 Oct 2020 21:18:50 +0000 (14:18 -0700)]
[ci] Fix clippy warnings, enable clippy checks

5 years ago[ci] Consolidate build, test, clippy jobs
Steve Myers [Wed, 7 Oct 2020 05:38:26 +0000 (22:38 -0700)]
[ci] Consolidate build, test, clippy jobs

5 years agoAdd a Discord badge to the README
Alekos Filini [Wed, 7 Oct 2020 08:00:06 +0000 (10:00 +0200)]
Add a Discord badge to the README

5 years ago[ci] add CI github actions
Steve Myers [Sun, 4 Oct 2020 17:30:13 +0000 (10:30 -0700)]
[ci] add CI github actions

5 years agoFix the recovery of a descriptor given a PSBT
Alekos Filini [Tue, 29 Sep 2020 16:18:50 +0000 (18:18 +0200)]
Fix the recovery of a descriptor given a PSBT

This commit upgrades `rust-miniscript` with a fix to only return the prefix that
matches a `hd_keypath` instead of the full derivation path, and then adapts the
signer code accordingly.

This commit closes #108 and #109.

5 years ago[keys] Less convoluted entropy generation
LLFourn [Tue, 29 Sep 2020 22:17:49 +0000 (08:17 +1000)]
[keys] Less convoluted entropy generation

Since const generics aren't in rust yet you have to find some awkward
workarounds. This improves the workaround for specifying entropy length.

5 years ago[descriptor] add ToWalletDescriptor trait tests
Steve Myers [Sat, 26 Sep 2020 05:21:11 +0000 (22:21 -0700)]
[descriptor] add ToWalletDescriptor trait tests

5 years ago[keys] Fix entropy generation
Alekos Filini [Thu, 24 Sep 2020 13:59:46 +0000 (15:59 +0200)]
[keys] Fix entropy generation

5 years ago[keys] Add a trait for keys that can be generated
Alekos Filini [Thu, 24 Sep 2020 07:52:59 +0000 (09:52 +0200)]
[keys] Add a trait for keys that can be generated

5 years ago[descriptor] Add descriptor templates, add `DerivableKey`
Alekos Filini [Tue, 22 Sep 2020 14:12:09 +0000 (16:12 +0200)]
[descriptor] Add descriptor templates, add `DerivableKey`

5 years ago[keys] Add a way to restrict the networks in which keys are valid
Alekos Filini [Mon, 21 Sep 2020 13:44:07 +0000 (15:44 +0200)]
[keys] Add a way to restrict the networks in which keys are valid

Thanks to the `ToWalletDescriptor` trait we can also very easily validate the checksum
for descriptors that are loaded from strings, if they contain one. Fixes #20.

5 years ago[keys] Take `ScriptContext` into account when converting keys
Alekos Filini [Sat, 19 Sep 2020 10:08:30 +0000 (12:08 +0200)]
[keys] Take `ScriptContext` into account when converting keys

5 years ago[keys] Add BIP39 support
Alekos Filini [Fri, 18 Sep 2020 15:26:58 +0000 (17:26 +0200)]
[keys] Add BIP39 support

5 years ago[descriptor] Improve the descriptor macro, add traits for key and descriptor types
Alekos Filini [Fri, 18 Sep 2020 14:31:03 +0000 (16:31 +0200)]
[descriptor] Improve the descriptor macro, add traits for key and descriptor types

5 years ago[descriptor] Add a macro to write descriptors from code
Alekos Filini [Wed, 16 Sep 2020 12:32:55 +0000 (14:32 +0200)]
[descriptor] Add a macro to write descriptors from code

5 years agoAdd CONTRIBUTING.md
willcl-ark [Wed, 23 Sep 2020 08:25:02 +0000 (09:25 +0100)]
Add CONTRIBUTING.md

Add a CONTRIBUTING.md file based on a template taken from the
rust-lightning project.

5 years agoPrettify README examples on github
willcl-ark [Mon, 21 Sep 2020 14:32:38 +0000 (15:32 +0100)]
Prettify README examples on github

5 years ago[signer] Fix signing for `ShWpkh` inputs
Alekos Filini [Wed, 16 Sep 2020 15:31:43 +0000 (17:31 +0200)]
[signer] Fix signing for `ShWpkh` inputs

5 years ago[cargo] Add the required `rand` features for `wasm32`
Alekos Filini [Wed, 16 Sep 2020 15:30:11 +0000 (17:30 +0200)]
[cargo] Add the required `rand` features for `wasm32`

5 years ago[database] Add `AnyDatabase` and `ConfigurableDatabase`
Alekos Filini [Tue, 15 Sep 2020 09:25:59 +0000 (11:25 +0200)]
[database] Add `AnyDatabase` and `ConfigurableDatabase`

This is related to #43

5 years ago[blockchain] Document `AnyBlockchain` and `ConfigurableBlockchain`
Alekos Filini [Tue, 15 Sep 2020 13:19:57 +0000 (15:19 +0200)]
[blockchain] Document `AnyBlockchain` and `ConfigurableBlockchain`

5 years ago[blockchain] Add an `AnyBlockchain` enum to allow switching at runtime
Alekos Filini [Thu, 10 Sep 2020 16:11:24 +0000 (18:11 +0200)]
[blockchain] Add an `AnyBlockchain` enum to allow switching at runtime

This is related to #43

5 years ago[blockchain] Add a trait to create `Blockchain`s from a configuration
Alekos Filini [Thu, 10 Sep 2020 16:08:37 +0000 (18:08 +0200)]
[blockchain] Add a trait to create `Blockchain`s from a configuration

This is the first set of changes for #42

5 years agoUpdate the README
Alekos Filini [Mon, 14 Sep 2020 12:30:00 +0000 (14:30 +0200)]
Update the README

5 years ago[cargo] Remove the `magic` alias for `repl`
Alekos Filini [Mon, 14 Sep 2020 12:26:19 +0000 (14:26 +0200)]
[cargo] Remove the `magic` alias for `repl`

5 years agoRename the library to `bdk`
Alekos Filini [Mon, 14 Sep 2020 12:25:38 +0000 (14:25 +0200)]
Rename the library to `bdk`

5 years ago[blockchain] Simplify the architecture of blockchain traits
Alekos Filini [Wed, 9 Sep 2020 16:17:49 +0000 (18:17 +0200)]
[blockchain] Simplify the architecture of blockchain traits

Instead of having two traits, `Blockchain` and `OnlineBlockchain` that need
to be implemented by the user, only the relevant one (`OnlineBlockchain`, here
renamed to `Blockchain`) will need to be implemented, since we provide a
blanket implementation for the "marker" trait (previously `Blockchain`, here
renamed to `BlockchainMarker`).

Users of the library will probably never need to implement `BlockchainMarker`
by itself, since we expose the `OfflineBlockchain` type that already does
that and should be good for any "offline" wallet. Still, it's exposed since
they might need to import it to define types with generics.

5 years ago[repl] Revert back the repl example to use Electrum
Alekos Filini [Wed, 9 Sep 2020 15:04:40 +0000 (17:04 +0200)]
[repl] Revert back the repl example to use Electrum

5 years agoBump version to 0.1.0-beta.1 0.1.0-beta.1
Alekos Filini [Mon, 7 Sep 2020 15:13:54 +0000 (17:13 +0200)]
Bump version to 0.1.0-beta.1

5 years agoChange docs link while we can't publish the crate
Alekos Filini [Tue, 8 Sep 2020 13:24:44 +0000 (15:24 +0200)]
Change docs link while we can't publish the crate

5 years agoImprove the README, add examples
Alekos Filini [Mon, 7 Sep 2020 09:16:41 +0000 (11:16 +0200)]
Improve the README, add examples

5 years agoRemove assumed "/api" prefix from esplora
LLFourn [Sat, 5 Sep 2020 04:00:50 +0000 (14:00 +1000)]
Remove assumed "/api" prefix from esplora

It is not necessary that esplora is hosted with a /api prefix

5 years agoFix the `last_derivation_index` calculation
Alekos Filini [Fri, 4 Sep 2020 19:28:35 +0000 (21:28 +0200)]
Fix the `last_derivation_index` calculation

It should be set to `0` if not transactions are found during sync.

Closes #44

5 years agoRename the crate to just "magical"
Alekos Filini [Fri, 4 Sep 2020 15:01:33 +0000 (17:01 +0200)]
Rename the crate to just "magical"

5 years agoAdd docs for `Wallet`
Alekos Filini [Fri, 4 Sep 2020 14:29:25 +0000 (16:29 +0200)]
Add docs for `Wallet`

5 years agoWrite more docs, make `TxBuilder::with_recipients` take Scripts
Alekos Filini [Fri, 4 Sep 2020 13:45:11 +0000 (15:45 +0200)]
Write more docs, make `TxBuilder::with_recipients` take Scripts

5 years agoWrite more docs
Alekos Filini [Fri, 4 Sep 2020 09:44:49 +0000 (11:44 +0200)]
Write more docs

5 years agoWrite the docs for `blockchain::*`
Alekos Filini [Thu, 3 Sep 2020 09:36:07 +0000 (11:36 +0200)]
Write the docs for `blockchain::*`

5 years agoGeneral cleanup for the docs
Alekos Filini [Mon, 31 Aug 2020 08:49:44 +0000 (10:49 +0200)]
General cleanup for the docs

5 years agoAdd the license to every file
Alekos Filini [Mon, 31 Aug 2020 09:26:36 +0000 (11:26 +0200)]
Add the license to every file

5 years ago[wallet] Add tests for `Wallet::sign()`
Alekos Filini [Sun, 30 Aug 2020 18:34:51 +0000 (20:34 +0200)]
[wallet] Add tests for `Wallet::sign()`