28 Commits

Author SHA1 Message Date
LLFourn
410a51355b
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.
2022-02-24 20:39:00 +11:00
LLFourn
326bfe82a8
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.
2022-02-24 20:39:00 +11:00
Alekos Filini
77bce06caf
Update logo 2021-12-18 15:17:45 +01:00
Riccardo Casatta
7109f7d9b4
fix readme 2021-06-29 11:35:02 +02:00
Riccardo Casatta
a6be470fe4
use electrsd with feature to download the binary 2021-06-29 11:34:58 +02:00
Alekos Filini
b5e9589803
[signer] Adjust signing behavior with SignOptions 2021-05-06 08:58:38 +02:00
LLFourn
5a0c150ff9
Make wallet methods take &mut psbt
Rather than consuming it because that is unergonomic.
2021-04-28 15:34:25 +10:00
Steve Myers
b226658977
[ci] update MSRV to 1.46.0 2021-03-29 11:17:50 -07:00
Steve Myers
f3b475ff0e
[wallet] Refactor get_*_address() into get_address(AddressIndex), update CHANGELOG 2021-03-15 08:58:11 -07:00
Steve Myers
e33a6a12c1
Update README license badge 2021-03-05 16:48:57 -08:00
Steve Myers
12ae1c3479
Update license to Apache 2.0 or MIT, copyright to Bitcoin Dev Kit Developers 2021-03-03 13:23:25 -08:00
LLFourn
35a61f5759
Fix whitespace and curse emacs 2021-01-30 13:05:23 +11:00
LLFourn
890d6191a1
Remove Option trickery from TxBuilder API
see: https://github.com/bitcoindevkit/bdk/pull/258#issuecomment-754685962
2021-01-22 15:08:30 +11:00
LLFourn
7553b905c4
[wallet] Overhaul TxBuilder internals and externals
Fixes #251

TxBuilders are now not created directly but are created through the
wallet with `build_tx` and `build_fee_bump`.
The advantages of this realised in this commit are:

1. Normal tx creation and fee bumping use the code internally. The only
difference between normal tx and fee bump is how the builder is created.
2. The TxBuilder now has a refernce to the wallet and can therefore
lookup things as methods are called on it. `add_utxo` now uses this to
look up UTXO deta when it is called (rather than having to do it and
possibly error later on).

To support these changes `get_utxo` and `get_descriptor_for_keychain`
public methods have been added to Wallet. I could have kept them
pub(crate) but they seem like fine APIs to have publicly.
2021-01-22 14:33:37 +11:00
LLFourn
656c9c9da8
Use () to indicate a missing blockchain
So that:
1. There are no runtime errors
2. There less type annotations needed
3. Less traits and stuff to document
2020-12-23 14:52:29 +11:00
Steve Myers
2e222c7ad9
[docs] Add badges for crates.io, mit license. Fix docs.rs badge and link 2020-12-21 20:14:25 +01:00
Steve Myers
3491bfbf30
Fix README.md examples 2020-12-07 18:19:54 -08:00
Steve Myers
13c1170304
[ci] Remove actions-rs, cleanup names 2020-11-16 18:46:16 -08:00
Steve Myers
40bf9f8b79
[ci] Add code coverage github actions workflow 2020-11-02 13:18:52 -08:00
Alekos Filini
8e7b195e93
Add a Discord badge to the README 2020-10-07 10:00:06 +02:00
Steve Myers
56bcbc4aff
[ci] add CI github actions 2020-10-05 09:35:54 -07:00
willcl-ark
844820dcfa
Prettify README examples on github 2020-09-21 15:32:38 +01:00
Alekos Filini
6094656a54 Update the README 2020-09-14 15:13:43 -07:00
Alekos Filini
d7ee38cc52 Rename the library to bdk 2020-09-14 15:13:43 -07:00
Alekos Filini
cc07c61b47
Change docs link while we can't publish the crate 2020-09-08 15:24:44 +02:00
Alekos Filini
c4f4f20d8b
Improve the README, add examples 2020-09-07 16:33:08 +02:00
Alekos Filini
de4a6a47e6
[readme] link to docs 2020-05-06 17:27:40 +02:00
Alekos Filini
96c87ea5ed
Initial commit 2020-01-22 23:13:11 +01:00