8e54ada436f84fb5bbcd5f448b7fccc186387bb4 Add Transaction struct, update PSBT and Blockchain to use it (Steve Myers)
Pull request description:
### Description
Add new `Transaction` structure that can be created from transaction consensus encoded bytes. Update `PartiallySignedTransaction.extract_tx()` to return a `Transaction` instead of a the transaction bytes. Update `Blockchain.broadcast()` to take a `Transaction` parameter.
### Notes to the reviewers
Fixes#157.
### Changelog notice
#### Added
- New `Transaction` structure that can be created from or serialized to consensus encoded bytes.
#### Changed
- `PartiallySignedTransaction.extract_tx()` returns a `Transaction` instead of a the transaction bytes.
- `Blockchain.broadcast()` takes a `Transaction` instead of a `PartiallySignedTransaction`.
### Checklists
#### All Submissions:
* [x] I've signed all my commits
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
* [x] I ran `cargo fmt` and `cargo clippy` before committing
#### New Features:
* [ ] I've added tests for the new feature
* [x] I've added docs for the new feature
#### Bugfixes:
* [ ] This pull request breaks the existing API
* [ ] I've added tests to reproduce the issue which are now passing
* [ ] I'm linking the issue being fixed by this PR
ACKs for top commit:
thunderbiscuit:
Tested ACK 8e54ada436f84fb5bbcd5f448b7fccc186387bb4. I ran a script using bdk-jvm and your test vector. Looks good! Another win for the LDK/BDK integration.
Tree-SHA512: f5bfdafad93f0b4ada0756a8e68bdb12f2de680d8ae8a5083dbbeded6fc314bd79c8913f0b7f01e2eb807676092777ad8bf9466996cd51fa9587b8bb53170ca8
bdk::blockchain::Blockchain contains an `estimate_fee` api. This commit adds the bindings for estimate_fee.
This will fix https://github.com/bitcoindevkit/bdk-ffi/issues/287
Tested this by adding a unit test in lib.rs. Also generated the python code and verified that it is able to invoke estimate_fee and get the fee rate