5个版本 (3个重大变更)

0.7.0 2022年7月6日
0.6.0 2021年12月20日
0.3.0 2021年7月6日
0.2.2 2021年4月4日
0.2.0 2021年4月4日

#15 in #polling

MIT/Apache

200KB
4K SLoC

bitcoins-provider

此crate为比特币应用程序提供通用的链数据API。它旨在提供简单一致的链数据接口,以便钱包能够轻松支持广泛的底层服务。

泛型于BtcProvider的应用程序可以无缝接受不同的来源。我们已经实现了调用Blockstream Esplora API的BtcProvider,并且更多选项正在开发中。

PollingBtcProvider特质可以扩展BtcProvider,添加有用的功能,如轮询链尾流、流式传输确认的待处理交易以及流式传输花费通知的UXTO监视器。

使用示例

use futures_core::stream::StreamExt;
use tokio::runtime;

use bitcoins_provider::{
  BtcProvider,
  PollingBtcProvider,
  esplora::EsploraProvider
};

let fut = async move {
    // Defaults to blockstream.info/api/
    let provider = EsploraProvider::default();

    // Get a stream that emits the next 10 chain tips, polling every 10 seconds
    let mut tips = provider.tips(10).interval(Duration::from_secs(10));

    // Print each header as it comes in
    while let Some(next) = tips.next().await {
        dbg!(next.serialize_hex().unwrap());
    }
};

runtime::Runtime::new().unwrap().block_on(fut);

依赖项

~7–12MB
~227K SLoC