Alekos Filini
7a42c5e095
Switch to "mainline" rust-miniscript
2020-11-17 23:57:28 +01:00
LLFourn
35579cb216
[wallet] Build output lookup inside complete transaction
...
To avoid the caller having to do it.
2020-11-17 15:11:47 +11:00
LLFourn
fcc408f346
[wallet] Add test that shwpkh populates witness_utxo
2020-11-17 15:11:47 +11:00
LLFourn
004f81b0a8
[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
2020-11-17 15:11:47 +11:00
Steve Myers
13c1170304
[ci] Remove actions-rs, cleanup names
2020-11-16 18:46:16 -08:00
Alekos Filini
a30ad49f63
[wallet] Use the branch-and-bound cs by default
...
Keep the `LargestFirst` coin selection for the tests, to make them more
predictable.
2020-11-16 14:08:04 +01:00
Alekos Filini
ac18fb119f
[keys] Add a shortcut to generate keys with the default options
2020-11-13 17:43:57 +01:00
Alekos Filini
f2edee0e2e
[keys] impl ToDescriptorKey
for GeneratedKey
2020-11-13 17:29:01 +01:00
Alekos Filini
f4affbd039
[keys] impl GeneratableKey
for bitcoin::PrivateKey
2020-11-13 17:27:19 +01:00
Alekos Filini
d269c9e0b2
[cli] Split the internal and external policy paths
2020-11-13 15:00:22 +01:00
Alekos Filini
7c80aec454
[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.
2020-11-13 12:55:42 +01:00
Daniela Brozzoni
9f31ad1bc8
[wallet] Replace must_use
with required
in coin selection
2020-11-13 12:42:07 +01:00
Daniela Brozzoni
c43f201e35
[wallet] Add tests for BranchAndBoundCoinSelection::single_random_draw
2020-11-13 12:42:06 +01:00
Daniela Brozzoni
23824321ba
[wallet] Add tests for BranchAndBoundCoinSelection::bnb
2020-11-13 12:42:06 +01:00
Daniela Brozzoni
be91997d84
[wallet] Add tests for BranchAndBoundCoinSelection::coin_select
2020-11-13 12:42:06 +01:00
Daniela Brozzoni
99060c5627
[wallet] Add Branch and Bound coin selection
2020-11-13 12:42:06 +01:00
Daniela Brozzoni
a86706d1a6
[wallet] Use TXIN_DEFAULT_WEIGHT constant in coin selection
...
Replace all the occurences of `serialize(&txin)`
with TXIN_DEFAULT_WEIGHT.
2020-11-13 12:42:06 +01:00
Alekos Filini
36c5a4dc0c
[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 .
2020-11-05 12:06:43 +01:00
Alekos Filini
f67bfe7bfc
Merge commit 'refs/pull/156/head' of github.com:bitcoindevkit/bdk
2020-11-05 11:44:29 +01:00
LLFourn
796f9f5a70
Make Signer and AddressValidator Send and Sync
2020-11-03 16:16:32 +11:00
LLFourn
3b3659fc0c
Remove redundant Box around signers
2020-11-03 16:06:43 +11:00
LLFourn
5784a95e48
Remove redundant Box around address validators
2020-11-03 16:06:43 +11:00
Steve Myers
f7499cb65d
[ci] test with all features enabled in single run
2020-11-02 19:06:41 -08:00
Steve Myers
40bf9f8b79
[ci] Add code coverage github actions workflow
2020-11-02 13:18:52 -08:00
Riccardo Casatta
30f1ff5ab5
[repl] add max_addresses param in sync
2020-10-30 15:04:09 +01:00
Alekos Filini
e6c2823a36
Merge commit 'refs/pull/146/head' of github.com:bitcoindevkit/bdk
2020-10-29 11:53:22 +01:00
Steve Myers
4a75f96d35
[ci] Enable clippy for stable and tests by default
2020-10-28 21:48:40 -07:00
Steve Myers
4f7355ec82
[ci] Fix all-keys and cli-utils tests
2020-10-28 21:34:04 -07:00
Steve Myers
7b9df5bbe5
[ci] Enable clippy and test for optional features
2020-10-28 17:51:03 -07:00
Steve Myers
8d04128c74
[ci] Fix or ignore clippy warnings for all optional features except compact_filters
2020-10-28 17:50:12 -07:00
Murch
457e70e70f
Rename get_must_may_use_utxos to preselect_utxos
2020-10-27 23:24:03 -04:00
Murch
84aee3baab
Rename may_use_utxos to optional_uxtos
2020-10-27 23:24:03 -04:00
Alekos Filini
297e92a829
Merge commit 'refs/pull/115/head' of github.com:bitcoindevkit/bdk
2020-10-27 11:04:00 +01:00
Steve Myers
8927d68a69
[descriptor] Comment out incomplete ExtractPolicy trait tests
2020-10-26 12:48:31 -07:00
Steve Myers
3a80e87ccb
[descriptor] Fix compile errors after rebase
2020-10-26 12:48:27 -07:00
Steve Myers
e31f5306d2
[descriptor] Add descriptor macro tests
2020-10-26 12:48:23 -07:00
Steve Myers
9fa9a304b9
[descriptor] Add get_checksum tests, cleanup tests
2020-10-26 12:48:19 -07:00
Steve Myers
bc0e9c9831
[descriptor] Add ExtractPolicy trait tests
2020-10-26 12:48:15 -07:00
Murch
43a51a1ec3
Rename must_use_utxos to required_utxos
2020-10-26 14:40:44 -04:00
Murch
b2ec6e3683
Rename DumbCS to LargestFirstCoinSelection
2020-10-26 14:20:44 -04:00
LLFourn
8d65581825
Incorporate RBF rules into utxo selection function
2020-10-23 13:54:59 +11:00
LLFourn
a6b70af2fb
[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`.
2020-10-23 13:54:59 +11:00
LLFourn
b87c7c5dc7
[wallet] Make 'unspendable' into a HashSet
...
to avoid awkwardly later on.
2020-10-23 13:54:59 +11:00
LLFourn
c549281ace
[wallet] Replace ChangeSpendPolicy::filter_utxos with a predicate
...
To make composing it with other filtering conditions easier.
2020-10-23 13:54:59 +11:00
Richard Ulrich
365a91f805
Merging two match expressions for fee calculation
2020-10-22 13:41:26 +02:00
Richard Ulrich
49894ffa6d
Implementing review suggestions from afilini
2020-10-22 09:11:58 +02:00
Richard Ulrich
759f6eac43
complying with clippy from the github CI
2020-10-20 18:22:37 +02:00
Richard Ulrich
27890cfcff
allow to definie static fees for transactions Fixes #137
2020-10-20 18:10:59 +02:00
Alekos Filini
872d55cb4c
[wallet] Default to SIGHASH_ALL if not specified
...
Closes #133
2020-10-16 15:40:30 +02:00
Alekos Filini
12635e603f
[wallet] Refactor Wallet::bump_fee()
2020-10-16 14:49:05 +02:00