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
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