Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]


## [0.2.0]

### Added

- Added methods `is_block_timelocked` and `is_time_timelocked` for `Input` and `InputGroup` [#36](https://github.com/bitcoindevkit/bdk-tx/pull/36)
- `enable_anti_fee_sniping` field is added to `PsbtParams` for BIP326 anti-fee-sniping protection [#5](https://github.com/bitcoindevkit/bdk-tx/pull/5)
- Added error variants `InvalidLockTime` and `UnsupportedVersion` to `CreatePsbtError` [#5](https://github.com/bitcoindevkit/bdk-tx/pull/5)
- Added `Selection::create_psbt_with_rng` method for custom RNG [#5](https://github.com/bitcoindevkit/bdk-tx/pull/5)
- Added `FeeStrategy` enum which defines the fee target as either a feerate or fee amount [#32](https://github.com/bitcoindevkit/bdk-tx/pull/32)
- Added optional `sighash_type` member field to `PsbtParams` [#25](https://github.com/bitcoindevkit/bdk-tx/pull/25)
- feat: Update signer impl for `XOnlyPublicKey` [#20](https://github.com/bitcoindevkit/bdk-tx/pull/20)
- feat(selector): allow multiple change sources on `SelectorParams` [#18](https://github.com/bitcoindevkit/bdk-tx/pull/18)

### Changed

- `is_timelocked` is changed for `Input` and `InputGroup` to take an optional `absolute::Time` and returns `Option<bool>` [#36](https://github.com/bitcoindevkit/bdk-tx/pull/36)
- `TxStatus` is renamed to `ConfirmationStatus` [#36](https://github.com/bitcoindevkit/bdk-tx/pull/36)
- `filter_unspendable_now` is renamed to `filter_unspendable` [#36](https://github.com/bitcoindevkit/bdk-tx/pull/36)
- `CreatePsbtError::MissingFullTxForLegacyInput` and `CreatePsbtError::MissingFullTxForSegwitV0Input` now wraps `Input` in `Box` [#5](https://github.com/bitcoindevkit/bdk-tx/pull/5)
- docs: Improve documentation of `Finalizer` [#34](https://github.com/bitcoindevkit/bdk-tx/pull/34)
- chore: Bump MSRV to 1.85.0 [#23](https://github.com/bitcoindevkit/bdk-tx/pull/23)
- `SelectorParams::target_feerate` field is renamed to `fee_strategy`. [#32](https://github.com/bitcoindevkit/bdk-tx/pull/32)
- `SelectorParams::change_policy` field is changed to have type `bdk_coin_select::ChangePolicy`. [#32](https://github.com/bitcoindevkit/bdk-tx/pull/32)
- `SelectorParams::new` is changed to accept the `FeeStrategy` and `ChangePolicy` as inputs. [#32](https://github.com/bitcoindevkit/bdk-tx/pull/32)
- deps: Bump `miniscript` to 12.3.5
- deps: Bump `bdk_coin_select` to 0.4.1

### Fixed

- Fix locktime calculations and improve API [#36](https://github.com/bitcoindevkit/bdk-tx/pull/36)
- fix: Include `fallback_locktime` in locktime accumulation [#24](https://github.com/bitcoindevkit/bdk-tx/pull/24)

### Removed

- `SelectorParams::change_weight` field is removed now that the change weights are represented in the actual change policy. [#32](https://github.com/bitcoindevkit/bdk-tx/pull/32)
- Removed `SelectorParams::to_cs_change_policy` as the conversion is no longer necessary. [#32](https://github.com/bitcoindevkit/bdk-tx/pull/32)
- Removed `ChangePolicyType` enum to allow the user to construct the intended `ChangePolicy`. [#32](https://github.com/bitcoindevkit/bdk-tx/pull/32)

## [0.1.0]

### Added

- The new "Tx builder" [#1](https://github.com/bitcoindevkit/bdk-tx/pull/1)

[unreleased]: https://github.com/bitcoindevkit/bdk-tx/compare/0.2.0...HEAD
[0.2.0]: https://github.com/bitcoindevkit/bdk-tx/compare/0.1.0...0.2.0
[0.1.0]: https://github.com/bitcoindevkit/bdk-tx/releases/tag/0.1.0
17 changes: 11 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "bdk_tx"
version = "0.1.0"
version = "0.2.0"
edition = "2021"
rust-version = "1.85.0"
homepage = "https://bitcoindevkit.org"
Expand All @@ -12,21 +12,26 @@ readme = "README.md"

[dependencies]
miniscript = { version = "12.3.5", default-features = false }
bdk_coin_select = "0.4.0"
rand_core = { version = "0.6.4", default-features = false }
rand = { version = "0.8", optional = true }

[dependencies.bdk_coin_select]
version = "0.4.1"
default-features = false
git = "https://github.com/bitcoindevkit/coin-select"
rev = "89f55687059df15e3c0800ab5c0962bcb0c10e72"

[dev-dependencies]
anyhow = "1"
bdk_tx = { path = "." }
bitcoin = { version = "0.32", default-features = false, features = ["rand-std"] }
bitcoin = { version = "0.32.8", default-features = false, features = ["rand-std"] }
bdk_testenv = "0.13.0"
bdk_bitcoind_rpc = "0.20.0"
bdk_chain = { version = "0.23.0" }
bdk_bitcoind_rpc = "0.22.0"
bdk_chain = { version = "0.23.2" }

[features]
default = ["std"]
std = ["miniscript/std", "rand/std"]
std = ["miniscript/std", "rand/std", "bdk_coin_select/std"]

[[example]]
name = "synopsis"
Expand Down
8 changes: 4 additions & 4 deletions examples/common.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use std::sync::Arc;

use bdk_bitcoind_rpc::{Emitter, NO_EXPECTED_MEMPOOL_TXIDS};
use bdk_bitcoind_rpc::{Emitter, NO_EXPECTED_MEMPOOL_TXS};
use bdk_chain::{
bdk_core, Anchor, Balance, CanonicalizationParams, ChainPosition, ConfirmationBlockTime,
};
Expand Down Expand Up @@ -43,17 +43,17 @@ impl Wallet {
pub fn sync(&mut self, env: &TestEnv) -> anyhow::Result<()> {
let client = env.rpc_client();
let last_cp = self.chain.tip();
let mut emitter = Emitter::new(client, last_cp, 0, NO_EXPECTED_MEMPOOL_TXIDS);
let mut emitter = Emitter::new(client, last_cp, 0, NO_EXPECTED_MEMPOOL_TXS);
while let Some(event) = emitter.next_block()? {
let _ = self
.graph
.apply_block_relevant(&event.block, event.block_height());
let _ = self.chain.apply_update(event.checkpoint);
}
let mempool = emitter.mempool()?;
let mempool_event = emitter.mempool()?;
let _ = self
.graph
.batch_insert_relevant_unconfirmed(mempool.new_txs);
.batch_insert_relevant_unconfirmed(mempool_event.update);
Ok(())
}

Expand Down
2 changes: 2 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ extern crate alloc;
#[cfg(feature = "std")]
extern crate std;

pub extern crate bdk_coin_select;

mod canonical_unspents;
mod finalizer;
mod input;
Expand Down