Commit Graph

1031 Commits

Author SHA1 Message Date
Steve Myers
3a07b4838a Merge bitcoindevkit/bdk-ffi#221: Bump bdk version to 0.24.0
29de6f2d06 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 29de6f2d06

Tree-SHA512: 256eb4387728467704f732ce1151de9569b6121916bb1d814bb48c75faf20026846e6170a384ca7e5e9ac3652bd9dfe5511e019f13c972ae755f0b37f9db8b83
2022-11-07 11:47:45 -06:00
thunderbiscuit
29de6f2d06 Bump bdk version to 0.24.0 2022-11-07 12:33:00 -05:00
Steve Myers
73ba73fd03 Merge bitcoindevkit/bdk-ffi#219: Added Mnemonic Interface
9866649fdc 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 9866649fdc.
  notmandatory:
    ACK 9866649fdc

Tree-SHA512: 45f9158beb6fe7bfe2a901c3f17126db855fe0b4b479ecb2a16381e06a415eed295fe6be3c840bd1d1fc8cffaf58bd97dc27bdc1e82699367a827d700e8fd09b
2022-11-07 11:27:41 -06:00
thunderbiscuit
82126ece78 Add publishing CI workflow 2022-11-03 15:22:25 -04:00
dhruvbaliyan
9866649fdc Added Mnemonic Interface 2022-11-03 22:33:38 +05:30
thunderbiscuit
4ff3f71cb8 Bump bdk-ffi submodule to v0.10.0 (bdk version 0.23.0) 2022-11-03 11:32:32 -04:00
Steve Myers
4abda332de Use the release-smaller profile in publish-spm workflow 2022-11-01 19:03:16 -05:00
Steve Myers
c2aecb0597 Merge bitcoindevkit/bdk-ffi#220: Add build profile 'release-smaller'
ba71a7a27c 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
2022-11-01 18:57:52 -05:00
Steve Myers
ba71a7a27c Add build profile 'release-smaller' 2022-10-29 22:02:59 -05:00
Steve Myers
c8436f519c Update README publishing steps 2022-10-29 19:58:33 -05:00
Steve Myers
beca56ba3c Add publish-spm github actions workflow 2022-10-29 17:43:14 -05:00
Steve Myers
036e790a75 Merge bitcoindevkit/bdk-ffi#215: Add simple kotlin, swift and python integration tests
ee6ee8139a 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
2022-10-27 13:38:29 -05:00
thunderbiscuit
5991b07385 Add group and version properties for nexus publishing plugin 2022-10-24 13:06:29 -04:00
Steve Myers
7ba5f3757d Updated bdk-ffi to v0.10.0 (bdk 0.23) 2022-10-21 17:18:30 -05:00
Steve Myers
ee6ee8139a Add simple kotlin,swift, and python integration tests 2022-10-21 15:14:15 -05:00
thunderbiscuit
f820b4fd6f Bump uniffi-rs dependency to 0.21.0 through latest bdk-ffi tag
Signed-off-by: thunderbiscuit <thunderbiscuit@protonmail.com>
2022-10-21 15:02:46 -04:00
Steve Myers
3bec5d2cab Merge bitcoindevkit/bdk-ffi#216: Update uniffi dependencies to 0.21.0
b9aa0a2cf1 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
2022-10-21 13:26:36 -05:00
Steve Myers
b9aa0a2cf1 Update uniffi dependencies to 0.21.0 2022-10-21 13:18:38 -05:00
thunderbiscuit
65f2c0fcf1 Bump bdk-ffi submodule to v0.10.0 tag 2022-10-21 12:30:33 -04:00
thunderbiscuit
c7d0803000 Fix use of Error as name for error enum in UDL 2022-10-21 09:30:28 -04:00
Steve Myers
1a4b9b440d Bump version to 0.10.0 2022-10-19 12:47:16 -05:00
Steve Myers
1f914c2b4d Merge bitcoindevkit/bdk-ffi#209: Change TxBuilder.finish() to return new TxBuilderResult
fadb316451 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
2022-10-19 12:30:06 -05:00
Steve Myers
fadb316451 Change TxBuilder.finish() to return new TxBuilderResult 2022-10-19 12:27:00 -05:00
thunderbiscuit
3fefd3c1fb Allow TxBuilder.add_recipient() to take Script 2022-10-17 17:42:36 -04:00
thunderbiscuit
2cbb314d0b Remove BdkError type alias 2022-10-17 16:43:37 -04:00
thunderbiscuit
535fc70433 Upgrade bdk dependency to v0.23 2022-10-17 16:19:35 -04:00
thunderbiscuit
10fa276bec Update uniffi-rs to 0.20.0 2022-10-17 16:03:27 -04:00
thunderbiscuit
e5e38d7f77 Fix missing comma in API docs for TransactionDetails 2022-10-05 10:26:57 -04:00
thunderbiscuit
20134bb96a Add option to build API docs into bdk-jvm website 2022-10-05 10:10:16 -04:00
thunderbiscuit
1cc9afaeb3 Rename DescriptorSecretKey.secret_bytes() to mirror upstream API 2022-10-03 14:54:01 -04:00
thunderbiscuit
6f5e621561 Remove changelog entry to follow workflow defined in #202 2022-10-03 14:54:00 -04:00
thunderbiscuit
1dd6f2d9f8 Add test for DescriptorSecretKey.secret_key_bytes() 2022-10-03 14:53:58 -04:00
thunderbiscuit
f92b45db6a Add ability to retrieve private keys as bytes
This feature is needed for compatibility with LDKLite, where the
initial entropy given to LDK is the private key of the root of
the BIP32 derivation tree.

Closes #188
2022-10-03 14:53:25 -04:00
thunderbiscuit
3a0fe79dd8 Add bindings PGP public key and documentation on how to verify signatures 2022-10-03 14:46:11 -04:00
thunderbiscuit
6598df9ed9 Add bindings PGP public key and documentation on how to verify signatures 2022-10-03 14:45:57 -04:00
thunderbiscuit
c971d54aea Fix warnings 2022-09-30 19:37:19 -04:00
thunderbiscuit
2abccafb8f Add combine() method on PSBT
Closes #198
2022-09-30 19:37:12 -04:00
Steve Myers
75d0415bec Add release templates and dev cycle docs, update changelog process 2022-09-29 11:18:27 -05:00
thunderbiscuit
4ff428a9a6 Update simple example in setup.py 2022-09-22 11:18:35 -04:00
thunderbiscuit
d539d8eaf8 Update tests for bdk-ffi v0.9.0 2022-09-22 11:02:41 -04:00
thunderbiscuit
96889b43a8 Add documentation on local testing 2022-09-22 11:02:05 -04:00
thunderbiscuit
02a572cbc6 Remove changelog
This is in line with the bdk-jvm, bdk-android, and bdk-swift libraries, who all rely on the bdk-ffi changelog.
2022-09-22 10:25:33 -04:00
thunderbiscuit
3f35a18d41 Add API docs samples for Network, BlockchainConfig, and Blockchain 2022-09-22 09:56:41 -04:00
thunderbiscuit
b9c283c89b Add samples for AddressIndex and AddressInfo 2022-09-22 09:40:39 -04:00
thunderbiscuit
3e96aad10e Use idiomatic Kotlin/Java documentation and KDoc structure 2022-09-21 09:12:50 -04:00
thunderbiscuit
a671c4f86b Move samples into tests 2022-09-21 08:01:12 -04:00
thunderbiscuit
157b1875c5 Remove unused docs patch 2022-09-21 08:01:11 -04:00
thunderbiscuit
af89ebaeea Update API docs to v0.9.0 2022-09-21 08:01:08 -04:00
thunderbiscuit
4259f260a9 Add samples for BlockchainConfig 2022-09-21 08:00:17 -04:00
thunderbiscuit
4d973e7ab6 Add temporary API docs 2022-09-21 08:00:10 -04:00