diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9addad2 --- /dev/null +++ b/CHANGELOG.md @@ -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` [#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 diff --git a/Cargo.toml b/Cargo.toml index 6016fde..5d751d6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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" @@ -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" diff --git a/examples/common.rs b/examples/common.rs index e639906..bd818e0 100644 --- a/examples/common.rs +++ b/examples/common.rs @@ -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, }; @@ -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(()) } diff --git a/src/lib.rs b/src/lib.rs index ebfa713..8741a40 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -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;