#stream #nft #opensea

opensea-stream

客户端,用于通过Websocket从OpenSea Stream API接收更新

4个版本 (2个破坏性版本)

0.3.0 2022年9月12日
0.2.0 2022年7月29日
0.1.1 2022年7月11日
0.1.0 2022年7月8日

#109 in #nft

Download history

每月91次下载

MIT/Apache

31KB
533 代码行

opensea-stream

用于接收从OpenSea Stream API更新的crate。此crate是对phyllo的轻量级封装,包含一些方便的函数和事件架构的结构定义。建议您也阅读phyllo的文档,以了解提供这些消息的Phoenix协议。

示例

以下示例将打印出在创建时所有wandernauts收藏夹中的条目。

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let mut client = client(Network::Mainnet, "YOUR_API_KEY_HERE").await;

    // Subscribe to a collection. Note that you must all subscribe to all events
    // in the collection; filtering is your responsibility (see below).
    let (handler, mut subscription) = subscribe_to(
        &mut client,
        Collection::Collection("wandernauts".to_string()),
    )
    .await?;

    // To unsubscribe:
    // handler.close().await?;

    loop {
        // The message received from the channel is a raw message of the Phoenix protocol.
        // It may or may not contain a payload.
        let event = match subscription.recv().await?.into_custom_payload() {
            Some(v) => v,
            None => {
                eprintln!("unexpected message");
                continue;
            }
        };

        // Only print item listing events.
        if let schema::Payload::ItemListed(listing) = event.payload {
            println!("{:?}", listing);
        }
    }
}

功能

rustls-tls-native-roots(使用rustls-native-certs进行根证书)默认启用。要使用rustls-tls-webpki-rootswebpki-roots)代替,请将以下内容包含在您的Cargo.toml

opensea-stream = { version = "0.1", default-features = false, features = ["rustls-tls-webpki-roots"] }

依赖项

~15–27MB
~431K SLoC