Skip to content
Open
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
6 changes: 3 additions & 3 deletions Cargo-minimal.lock
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"

[[package]]
name = "corepc-client"
version = "0.8.0"
version = "0.9.0"
dependencies = [
"bitcoin",
"corepc-types",
Expand All @@ -165,7 +165,7 @@ dependencies = [

[[package]]
name = "corepc-node"
version = "0.8.0"
version = "0.9.0"
dependencies = [
"anyhow",
"bitcoin_hashes",
Expand All @@ -183,7 +183,7 @@ dependencies = [

[[package]]
name = "corepc-types"
version = "0.8.0"
version = "0.9.0"
dependencies = [
"bitcoin",
"serde",
Expand Down
6 changes: 3 additions & 3 deletions Cargo-recent.lock
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"

[[package]]
name = "corepc-client"
version = "0.8.0"
version = "0.9.0"
dependencies = [
"bitcoin",
"corepc-types",
Expand All @@ -165,7 +165,7 @@ dependencies = [

[[package]]
name = "corepc-node"
version = "0.8.0"
version = "0.9.0"
dependencies = [
"anyhow",
"bitcoin_hashes",
Expand All @@ -183,7 +183,7 @@ dependencies = [

[[package]]
name = "corepc-types"
version = "0.8.0"
version = "0.9.0"
dependencies = [
"bitcoin",
"serde",
Expand Down
9 changes: 9 additions & 0 deletions client/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# 0.9.0 2025-09-11

Add support for all the new methods added as part of the `types v0.9.0`
release - that means **all** of the documented Core RPC methods.

- Implement all remaining non-hidden RPC methods.
- Integration test all methods (excl. two that have open issues).
- Add support for Core `v28.2` [#279](https://github.com/rust-bitcoin/corepc/pull/279)

# 0.8.0 2025-05-21

- Add support for Bitcoin Core 29.0 [#131](https://github.com/rust-bitcoin/corepc/pull/131)
Expand Down
4 changes: 2 additions & 2 deletions client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "corepc-client"
version = "0.8.0"
version = "0.9.0"
authors = ["Tobin C. Harding <[email protected]>", "Jamil Lambert <[email protected]>"]
license = "CC0-1.0"
repository = "https://github.com/rust-bitcoin/corepc"
Expand All @@ -22,7 +22,7 @@ client-sync = ["jsonrpc"]

[dependencies]
bitcoin = { version = "0.32.0", default-features = false, features = ["std", "serde"] }
types = { package = "corepc-types", version = "0.8.0", default-features = false, features = ["std"] }
types = { package = "corepc-types", version = "0.9.0", default-features = false, features = ["std"] }
log = "0.4"
serde = { version = "1.0.103", default-features = false, features = [ "derive", "alloc" ] }
serde_json = { version = "1.0.117" }
Expand Down
2 changes: 1 addition & 1 deletion integration_test/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ TODO = [] # This is a dirty hack while writing the tests.

[dependencies]
bitcoin = { version = "0.32.0", default-features = false, features = ["std", "serde"] }
node = { package = "corepc-node", version = "0.8.0", default-features = false }
node = { package = "corepc-node", version = "0.9.0", default-features = false }
rand = "0.8.5"
env_logger = "0.9.0"

Expand Down
10 changes: 10 additions & 0 deletions node/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# 0.9.0 2025-09-11

The `types v0.9.0` release adds support for **all** remaining documented
Core RPC methods. These are then pickup up in the update of `client`.

- Update to use the new `client v0.9.0`.
- Fix race condition in node start up [#213](https://github.com/rust-bitcoin/corepc/pull/213)
- Fix build on macOS. Only codesign bitcoind if necessary [#309](https://github.com/rust-bitcoin/corepc/pull/309)
- Add support for Core `v28.2` [#279](https://github.com/rust-bitcoin/corepc/pull/279)

# 0.8.0 2025-05-21

- Add support for Bitcoin Core 29.0 [#131](https://github.com/rust-bitcoin/corepc/pull/131)
Expand Down
4 changes: 2 additions & 2 deletions node/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "corepc-node"
version = "0.8.0"
version = "0.9.0"
authors = ["Riccardo Casatta <[email protected]>", "Tobin C. Harding <[email protected]>"]
license = "MIT"
repository = "https://github.com/rust-bitcoin/corepc"
Expand All @@ -13,7 +13,7 @@ rust-version = "1.63.0"
exclude = ["tests", "contrib"]

[dependencies]
corepc-client = { version = "0.8.0", features = ["client-sync"] }
corepc-client = { version = "0.9.0", features = ["client-sync"] }
log = { version = "0.4", default-features = false }
which = { version = "3.1.1", default-features = false }
anyhow = { version = "1.0.66", default-features = false, features = ["std"] }
Expand Down
15 changes: 15 additions & 0 deletions types/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
# 0.9.0 2025-09-11

This release is massive, it delivers support for **all** documented Core RPC
methods. It also adds integration testing for all the new ones and many that
were previously untested.

Props to Jamil Lambert for grinding this out.

There are a set of undocumented methods that we will be adding support
for also shortly, stay tuned.

- Implement all remaining non-hidden RPC methods.
- Integration test all methods (excl. two that have open issues).
- Add support for Core `v28.2` [#279](https://github.com/rust-bitcoin/corepc/pull/279)

# 0.8.0 2025-05-21

- doc: update docs for now explicit download feature flag [#177](https://github.com/rust-bitcoin/corepc/pull/177)
Expand Down
2 changes: 1 addition & 1 deletion types/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "corepc-types"
version = "0.8.0"
version = "0.9.0"
authors = ["Tobin C. Harding <[email protected]>", "Jamil Lambert <[email protected]>"]
license = "CC0-1.0"
repository = "https://github.com/rust-bitcoin/corepc"
Expand Down
34 changes: 16 additions & 18 deletions types/README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,33 @@
# Bitcoin Core JSON-RPC types

This crate provides data types return by Bitcoin Core's JSON-RPC API. Each type is specific to the
This crate provides data types returned by Bitcoin Core's JSON-RPC API. Each type is specific to the
version of Core e.g., if you run the `getblockchaininfo` method against a Bitcoin Core v28 instance
you will get back the data described by `types::v28::GetBlockChainInfo`. In a similar fashion any
method `corerpcmethod` will return type `CoreRpcMethod` - snake-case as is conventional in Rust.

## Status
The version specific structs _do not_ use types from `rust-bitcoin`. For any type that can be
represented using types from `rust-bitcoin` we provide a version non-specific type in
`model::CoreRpcMethod` and an `into_model()` method on the version specific type.

This crate is Work In Progress - not all methods for all Core versions are done yet. The single
source of truth (SSOT) for a methods status can be found in the version specific module e.g.,
`types/src/v17/mod.rs`. The HTML version can be found online and has nice drop down menus.
The crate supports **all** documented Core RPC methods.

See for example: https://docs.rs/corepc-types/0.5.0/corepc_types/v18/index.html
(Note there are a bunch of undocumented methods that are not yet supported, coming soon.)

### As of `v0.5.0`
## Known issues

- All types to support `rust-miniscript` exist for Core versions 17-28 inclusive.
- Support for Core Versions v17 and v18 is more fully fleshed out.
- Nice docs and `verify` tool for v17 and v18 only.
The types include docs from Core however the docs used are from the _first_ Core version in which
the method appeared. As an example, this means if you look at docs for v29 `createwallet` you will
see docs that originate in Core v17 so may or may not be stale. We hope to fix this at some stage.
For accurate documentation of the method you are best to run `bitcoin-cli help createwallet` against
a Core node of the desired version.

### Testing and Verification

In order to prove the data structures we do integration testing in `integration_test`. The tests are
version specific e.g., `cargo test --features=0_18_1`. In CI we test against all supported versions.
If you are using this crate in CI you may want to imitate the job structure. See the `Integration`
job in `.github/workflows/rust.yaml`.
Each type is integration tested, however only typically with a single test. We hope to improve
test coverage by using test vectors taken from Core source code ... at some stage.

In order to back up method status our claims we provide the `verify` tool that parses the SSOT and
checks the claims. Run it using `verify v17` (also `verify all`).

The tool only currently verifies the `v17` and `v18` modules.
If you experience any issues please let us know, we have done our best but this crate needs battle
testing in the wild.

## Minimum Supported Rust Version (MSRV)

Expand Down