ae1ea99ed3f26f33ead92d4a91588ae32d9e110b Add FeeRate struct and fee_amount() and fee_rate() functions on PartiallySignedTransaction (Steve Myers)
9a381f6d32321f2a726092bd2b54ab10d105e9c6 Rename PartiallySignedBitcoinTransaction to PartiallySignedTransaction (Steve Myers)
Pull request description:
<!-- You can erase any parts of this template not applicable to your Pull Request. -->
### Description
Add FeeRate struct and fee_amount() and fee_rate() functions on PartiallySignedTransaction.
### Notes to the reviewers
This PR is dependent on https://github.com/bitcoindevkit/bdk/pull/782.
### Changelog notice
- Breaking Changes
- Renamed PartiallySignedBitcoinTransaction to PartiallySignedTransaction to be consistent with `rust-bitcoin`
- APIs Added
- Add FeeRate struct
- Add fee_amount() and fee_rate() functions on 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:
* [x] I've added tests for the new feature
* [x] I've added docs for the new feature
ACKs for top commit:
thunderbiscuit:
Re-ACK [ae1ea99](ae1ea99ed3).
Tree-SHA512: 2c3f792e9ef092cd3ba233601122f4960c496d132caad54ef2f7f41d7113dd16600a863bb8fd78d2e5b978adebdb7ddd9529c21b3d46cd0b16e0db4eb90de01d
29de6f2d060461da34333ea8b52aeaf531434ca2 Bump bdk version to 0.24.0 (thunderbiscuit)
Pull request description:
## Description
This PR updates BDK to the latest version, `0.24.0`.
### Notes to the reviewers
This PR is currently open only for CI testing and review. Only merge once bdk 0.24.0 is out and the PR has been updated.
### Changelog notice
```txt
- Update BDK to latest version 0.24.0 [#221]
[#221](https://github.com/bitcoindevkit/bdk-ffi/pull/221)
```
#### 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
ACKs for top commit:
notmandatory:
ACK 29de6f2d060461da34333ea8b52aeaf531434ca2
Tree-SHA512: 256eb4387728467704f732ce1151de9569b6121916bb1d814bb48c75faf20026846e6170a384ca7e5e9ac3652bd9dfe5511e019f13c972ae755f0b37f9db8b83
9866649fdc5ffe0203f5a76082d789a22e5214bf Added Mnemonic Interface (dhruvbaliyan)
Pull request description:
### Description
This PR adds `interface Mnemonic` which will make the API to generate new DescriptorSecretKey have type-safe arguments.
<!-- Describe the purpose of this PR, what's being adding and/or fixed -->
### Notes to the reviewers
This PR doesn't have any issue linked to it, as it was discusses on a call during the implementation of `DescriptorSecretKey` (PR #154). It was discussed to make `Mnemonic` an interface and use that instead of string `Mnemonic` so that the API to generate `DescriptorSecretKey` doesn't have any potential failure (like in case it's provided with incorrect Mnemonic words).
APIs added
```
// generates and returns Mnemonic with random entropy
Mnemonic::new(word_count: WordCount) -> Self { ... }
// converts string Mnemonic to Mnemonic type with error (in case of incorrect string Mnemonic)
Mnemonic::from_str(mnemonic: String) -> Result<Self, BdkError> { ... }
// generates and returns Mnemonic with given entropy
Mnemonic::from_entropy(entropy: Vec<u8>) -> Result<Self, BdkError> {...}
// view mnemonic as string
Mnemonic::as_string(&self) -> String { ... }
```
Along with some changes to `DescriptorSecretKey::new()` to fit these new APIs
### Changelog notice
```
- Added Struct Mnemonic with following methods [#219]
- new(word_count: WordCount) generates and returns Mnemonic with random entropy
- from_str(mnemonic: String) converts string Mnemonic to Mnemonic type with error
- from_entropy(entropy: Vec<u8>) generates and returns Mnemonic with given entropy
- as_string() view Mnemonic as string
- API removed [#219]
- generate_mnemonic(word_count: WordCount)
[#219](https://github.com/bitcoindevkit/bdk-ffi/pull/219)
```
### 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:
* [x] I've added docs for the new feature
#### Bugfixes:
* [x] This pull request breaks the existing API
* Top level function `generate_mnemonic(...)` was removed
ACKs for top commit:
thunderbiscuit:
ACK 9866649fdc5ffe0203f5a76082d789a22e5214bf.
notmandatory:
ACK 9866649fdc5ffe0203f5a76082d789a22e5214bf
Tree-SHA512: 45f9158beb6fe7bfe2a901c3f17126db855fe0b4b479ecb2a16381e06a415eed295fe6be3c840bd1d1fc8cffaf58bd97dc27bdc1e82699367a827d700e8fd09b
ba71a7a27c06c4db094b1ce01d0e2f846b0f8def Add build profile 'release-smaller' (Steve Myers)
Pull request description:
### Description
New profile turns on all the non-experimental rust build size optimizations.
### Notes to the reviewers
This PR is the first step to fixing bitcoindevkit/bdk-swift#25.
### Changelog notice
None.
### 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
ACKs for top commit:
thunderbiscuit:
ACK [ba71a7a](ba71a7a27c).
Tree-SHA512: b12cf3a3ad3683dccbb89f611e98246db4a604b674077a45b78e30e9e20021f443dfec68e8ab511e0bb64d84c5c7064b4078b578fc3b4c1fb2e1119680a656a6
ee6ee8139afd74c858216ed99ffdec92dc101787 Add simple kotlin,swift, and python integration tests (Steve Myers)
Pull request description:
### Description
Add simple kotlin, swift and python integration tests. These tests confirm fixes in #216 and #214.
### Notes to the reviewers
To skip integration tests use:
`cargo test --lib`.
Otherwise java, kotlin, swift, and python need to be installed, and you must run tests with:
`CLASSPATH=./tests/jna/jna-5.8.0.jar cargo test`
### Changelog notice
- Integration tests added, see tests/README.md for updated instructions for running tests. #215
### 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:
* [x] I've added tests for the new feature
* [x] I've added docs for the new feature
#### Bugfixes:
* [x] I've added tests to reproduce the issue which are now passing
ACKs for top commit:
thunderbiscuit:
ACK [ee6ee81](ee6ee8139a).
waterst0ne:
> ACK [ee6ee81](ee6ee8139a).
Tree-SHA512: 06ab14da1185de431c16b767f187bc8e7792106df54314242b26f225e3a8ddada28317b7cb8bec47b8b248d3088d0305ab777770525540c72d2815349a73728b
b9aa0a2cf16c3f8fb037d01015d9eccfee82e9e3 Update uniffi dependencies to 0.21.0 (Steve Myers)
Pull request description:
### Description
Update uniffi dependencies to 0.21.0
### Notes to the reviewers
This is required to pickup my PR to handle swift keywords. https://github.com/mozilla/uniffi-rs/compare/v0.20.0...v0.21.0
### Changelog notice
Update uniffi-rs to latest version 0.20.0 #216
### 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
ACKs for top commit:
thunderbiscuit:
ACK [b9aa0a2](b9aa0a2cf1).
Tree-SHA512: 8bd585a22e6df2186d3985cc4d41a86dc35644b1e8dc06c1153de04a85df2cb6b345e15c0eb26e1b87c41cb00f15acf29f1b6a5b23736ead397fa6ee0fe0af0e
fadb316451af080bf22774a164278cef04acd9cc Change TxBuilder.finish() to return new TxBuilderResult (Steve Myers)
Pull request description:
### Description
Change TxBuilder.finish() to return new TxBuilderResult.
### Notes to the reviewers
This fixes#179 in that it return both PartiallySignedBitcoinTransaction and TransactionDetails encapsulated in a new TxBuilderResult structure. It does not calculate the fee rate which requires #208.
### Changelog notice
- Breaking Changes
- Changed `TxBuilder.finish()` to return new `TxBuilderResult`.
- APIs Added
- Added `TxBuilderResult` with PSBT and TransactionDetails.
### 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:
* [x] I've added tests for the new feature
* [x] I've added docs for the new feature
ACKs for top commit:
thunderbiscuit:
ACK [fadb316](fadb316451).
Tree-SHA512: b8aafc53ba86bf7ab12ae3d5bb251d1ec5cb54e4b7d6bfc342155d5cd3726d9a6d114591dc740a7467afb8ef402f3d77ad51e273a27865d6e47192291b570af9