corepc-types 0.9.0

Bitcoin Core JSON-RPC API types
Documentation

Bitcoin Core JSON-RPC types

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.

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.

The crate supports all documented Core RPC methods.

(Note there are a bunch of undocumented methods that are not yet supported, coming soon.)

Known issues

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

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.

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)

This library should always compile with any combination of features on Rust 1.63.0.

Licensing

The code in this project is licensed under the Creative Commons CC0 1.0 Universal license. We use the SPDX license list and SPDX IDs.