#integration-tests #environment #process #elements #rpc #bitcoind #liquidregtest

elementsd

Utility to run a liquidregtest elements process, useful in integration testing environment

9 releases (breaking)

0.9.1 Apr 4, 2024
0.9.0 Jan 3, 2024
0.8.0 Apr 7, 2023
0.6.0 Sep 23, 2022
0.3.0 Dec 3, 2021

#3 in #bitcoind

Download history 4/week @ 2024-02-15 28/week @ 2024-02-22 18/week @ 2024-02-29 23/week @ 2024-03-07 17/week @ 2024-03-14 3/week @ 2024-03-21 12/week @ 2024-03-28 163/week @ 2024-04-04 29/week @ 2024-04-11 26/week @ 2024-04-18 33/week @ 2024-04-25 21/week @ 2024-05-02 31/week @ 2024-05-09 57/week @ 2024-05-16 28/week @ 2024-05-23

139 downloads per month

MIT license

18KB
287 lines

MIT license Crates

ElementsD

Utility to run a liquidregtest elementsd process, useful in integration testing environment.

use elementsd::bitcoincore_rpc::RpcApi;
let exe = elementsd::exe_path().expect("elementsd executable must be provided in ELEMENTSD_EXE, or with a feature like '0_21_0', or be in PATH");
let elementsd = elementsd::ElementsD::new(exe).unwrap();
let info = elementsd
    .client()
    .call::<bitcoind::bitcoincore_rpc::jsonrpc::serde_json::Value>("getblockchaininfo", &[])
    .unwrap();
assert_eq!(info.get("chain").unwrap(), "liquidregtest");

Validate pegin

You can also start elementsd with validate pegin capability by connecting an instance of bitcoind. See test test_elementsd_with_validatepegin

See the similar BitcoinD for details

Nix

For determinisim, in nix you cannot hit the internet within the build.rs. Moreover, some downstream crates cannot remove the auto-download feature from their dev-deps. In this case you can set the ELEMENTSD_SKIP_DOWNLOAD env var and provide the elementsd executable in the PATH (or skip the test execution).

Doc

To build docs:

RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --features download,doc --open

MSRV

  • 1.57.0 with one of the auto download features
  • 1.56.1 without features

MSRV 1.56.1 may require downgrading dependencies. See our .github/workflows/test.yml file for a complete list.

Dependencies

~10–20MB
~245K SLoC