]> Untitled Git - bdk/log
bdk
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 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()`

5 years ago[wallet] Support signing the whole tx instead of individual inputs
Alekos Filini [Mon, 17 Aug 2020 21:50:50 +0000 (23:50 +0200)]
[wallet] Support signing the whole tx instead of individual inputs

5 years ago[wallet] Add explicit ordering for the signers
Alekos Filini [Mon, 17 Aug 2020 10:10:51 +0000 (12:10 +0200)]
[wallet] Add explicit ordering for the signers

5 years ago[error] implement std::error::Error
Alekos Filini [Mon, 17 Aug 2020 08:58:45 +0000 (10:58 +0200)]
[error] implement std::error::Error

5 years ago[blockchain] impl OnlineBlockchain for types wrapped in Arc
Alekos Filini [Mon, 17 Aug 2020 08:53:38 +0000 (10:53 +0200)]
[blockchain] impl OnlineBlockchain for types wrapped in Arc

5 years ago[wallet] Add AddressValidators
Alekos Filini [Sat, 15 Aug 2020 21:21:13 +0000 (23:21 +0200)]
[wallet] Add AddressValidators

5 years ago[descriptor] Tests for `DescriptorMeta::derive_from_psbt_input()`
Alekos Filini [Sat, 15 Aug 2020 19:24:13 +0000 (21:24 +0200)]
[descriptor] Tests for `DescriptorMeta::derive_from_psbt_input()`

5 years ago[cli] Make the REPL return JSON
Alekos Filini [Sat, 15 Aug 2020 18:16:34 +0000 (20:16 +0200)]
[cli] Make the REPL return JSON

5 years agoUse `miniscript::DescriptorPublicKey`
Alekos Filini [Wed, 12 Aug 2020 10:51:50 +0000 (12:51 +0200)]
Use `miniscript::DescriptorPublicKey`

This allows us to remove all our custom "ExtendedDescriptor" implementation since that is
now built directly in miniscript.

5 years ago[compact_filters] Add support for Tor
Alekos Filini [Sat, 29 Aug 2020 17:40:45 +0000 (19:40 +0200)]
[compact_filters] Add support for Tor

5 years agoCompact Filters blockchain implementation
Alekos Filini [Tue, 25 Aug 2020 14:07:26 +0000 (16:07 +0200)]
Compact Filters blockchain implementation

5 years agoImplement RBF and add a few tests
Alekos Filini [Thu, 13 Aug 2020 14:51:27 +0000 (16:51 +0200)]
Implement RBF and add a few tests

5 years ago[tests] Run Bitcoin Core and Electrs on Travis
Alekos Filini [Mon, 10 Aug 2020 21:00:32 +0000 (23:00 +0200)]
[tests] Run Bitcoin Core and Electrs on Travis

5 years ago[tests] Add tests for `Wallet::create_tx()`
Alekos Filini [Mon, 10 Aug 2020 15:16:47 +0000 (17:16 +0200)]
[tests] Add tests for `Wallet::create_tx()`

5 years ago[tests] Add a proc macro to generate tests for `OnlineBlockchain` types
Alekos Filini [Mon, 10 Aug 2020 08:49:34 +0000 (10:49 +0200)]
[tests] Add a proc macro to generate tests for `OnlineBlockchain` types

5 years ago[wallet] Add `force_non_witness_utxo()` to TxBuilder
Alekos Filini [Sat, 8 Aug 2020 10:06:40 +0000 (12:06 +0200)]
[wallet] Add `force_non_witness_utxo()` to TxBuilder

5 years ago[wallet] Allow limiting the use of internal utxos in TxBuilder
Alekos Filini [Fri, 7 Aug 2020 17:40:13 +0000 (19:40 +0200)]
[wallet] Allow limiting the use of internal utxos in TxBuilder

5 years ago[wallet] Add RBF and custom versions in TxBuilder
Alekos Filini [Fri, 7 Aug 2020 14:30:19 +0000 (16:30 +0200)]
[wallet] Add RBF and custom versions in TxBuilder

5 years ago[wallet] TxOrdering, shuffle/bip69 support
Alekos Filini [Fri, 7 Aug 2020 13:35:14 +0000 (15:35 +0200)]
[wallet] TxOrdering, shuffle/bip69 support

5 years ago[wallet] Nicer interface for WalletExport
Alekos Filini [Mon, 10 Aug 2020 11:20:48 +0000 (13:20 +0200)]
[wallet] Nicer interface for WalletExport

5 years agoAdd a feature to enable the async interface on non-wasm32 platforms
Alekos Filini [Mon, 10 Aug 2020 09:41:19 +0000 (11:41 +0200)]
Add a feature to enable the async interface on non-wasm32 platforms

Follow-up to: #28

5 years ago[examples] Use `MemoryDatabase` in the compiler example
Alekos Filini [Sat, 8 Aug 2020 07:37:25 +0000 (09:37 +0200)]
[examples] Use `MemoryDatabase` in the compiler example

5 years agoUpdate .travis.ci to test the `miniscriptc` example
Alekos Filini [Sat, 8 Aug 2020 07:25:35 +0000 (09:25 +0200)]
Update .travis.ci to test the `miniscriptc` example

5 years ago[examples] Fix Miniscript variants issue in compiler example
Dominik Spicher [Fri, 7 Aug 2020 14:08:23 +0000 (16:08 +0200)]
[examples] Fix Miniscript variants issue in compiler example

miniscript has extended the `Miniscript` struct to be generic
over a `ScriptContext`. This context is different for the `Sh`
variant (`Legacy`) than for the `Wsh` and `ShWsh` variants
(`Segwitv0`). Therefore, Rust is not happy with the single
`compiled` variable if it is used as an argument for all three
variants.

5 years ago[examples] Add missing dependency for compiler example
Dominik Spicher [Fri, 7 Aug 2020 14:02:32 +0000 (16:02 +0200)]
[examples] Add missing dependency for compiler example

5 years ago[examples] Fix renamed thresh_m descriptor
Dominik Spicher [Fri, 7 Aug 2020 13:17:59 +0000 (15:17 +0200)]
[examples] Fix renamed thresh_m descriptor

In miniscript 1.0, `thresh_m` has been renamed to `multi`

5 years ago[wallet] Add a type convert fee units, add `Wallet::estimate_fee()`
Alekos Filini [Fri, 7 Aug 2020 09:23:01 +0000 (11:23 +0200)]
[wallet] Add a type convert fee units, add `Wallet::estimate_fee()`

5 years ago[export] Implement the wallet import/export format from FullyNoded
Alekos Filini [Fri, 7 Aug 2020 08:19:06 +0000 (10:19 +0200)]
[export] Implement the wallet import/export format from FullyNoded

This commit closes #31

5 years agoImprove .travis.ci
Alekos Filini [Thu, 6 Aug 2020 16:46:20 +0000 (18:46 +0200)]
Improve .travis.ci

5 years ago[wallet] Refill the address pool whenever necessary
Alekos Filini [Thu, 6 Aug 2020 16:11:07 +0000 (18:11 +0200)]
[wallet] Refill the address pool whenever necessary

5 years ago[wallet] Abstract coin selection in a separate trait
Alekos Filini [Thu, 6 Aug 2020 14:56:41 +0000 (16:56 +0200)]
[wallet] Abstract coin selection in a separate trait

5 years ago[wallet] Add a `TxBuilder` struct to simplify `create_tx()`'s interface
Alekos Filini [Thu, 6 Aug 2020 11:09:39 +0000 (13:09 +0200)]
[wallet] Add a `TxBuilder` struct to simplify `create_tx()`'s interface

5 years ago[wallet] Abstract, multi-platform datetime utils
Alekos Filini [Thu, 6 Aug 2020 09:12:15 +0000 (11:12 +0200)]
[wallet] Abstract, multi-platform datetime utils

5 years ago[wallet] Cleanup, remove unnecessary mutable references
Alekos Filini [Thu, 6 Aug 2020 08:44:40 +0000 (10:44 +0200)]
[wallet] Cleanup, remove unnecessary mutable references

5 years ago[repl] Expose list_transactions() in the REPL
Alekos Filini [Tue, 21 Jul 2020 16:37:15 +0000 (18:37 +0200)]
[repl] Expose list_transactions() in the REPL

5 years agoMake the blockchain interface async again on wasm32-unknown-unknown
Alekos Filini [Mon, 20 Jul 2020 13:51:57 +0000 (15:51 +0200)]
Make the blockchain interface async again on wasm32-unknown-unknown

The procedural macro `#[maybe_async]` makes a method or every method of a trait
"async" whenever the target_arch is `wasm32`, and leaves them untouched on
every other platform.

The macro `maybe_await!($e:expr)` can be used to call `maybe_async` methods on
multi-platform code: it expands to `$e` on non-wasm32 platforms and to
`$e.await` on wasm32.

The macro `await_or_block!($e:expr)` can be used to contain async code as much
as possible: it expands to `tokio::runtime::Runtime::new().unwrap().block_on($e)`
on non-wasm32 platforms, and to `$e.await` on wasm32.

5 years agoUpdate miniscript to version 1.0
Alekos Filini [Sun, 19 Jul 2020 17:24:05 +0000 (19:24 +0200)]
Update miniscript to version 1.0

5 years agoRemove async, upgrade electrum-client
Alekos Filini [Wed, 15 Jul 2020 16:49:24 +0000 (18:49 +0200)]
Remove async, upgrade electrum-client