Skip to main content

af_iperps/graphql/
registry.rs

1// use af_move_type::MoveInstance;
2// use af_sui_types::{Address, TypeTag, Version};
3// use futures::{Stream, StreamExt};
4// use sui_gql_client::GraphQlClient;
5// use sui_gql_client::queries::GraphQlClientExt as _;
6// use sui_gql_client::queries::outputs::DynamicField;
7
8// use super::Result as QResult;
9
10// pub(super) async fn query<C>(
11//     client: &C,
12//     registry_address: Address,
13//     version: Option<Version>,
14// ) -> Result<impl Stream<Item = QResult<Address, C>> + '_, C::Error>
15// where
16//     C: GraphQlClient,
17// {
18//     let dfs = std::pin::pin!(client.object_dfs(registry_address, version, None).await);
19//     let res = vec
20
21//     while let Some(df) = dfs.next().await {
22//         let (name, raw) = df?;
23
24//         let DynamicField::Field(_raw) = raw else {
25//             continue;
26//         };
27//         let TypeTag::Struct(name_type) = name.type_ else {
28//             continue;
29//         };
30//         if let Ok(key) =
31//             MoveInstance::<crate::keys::RegistryMarketInfo>::from_raw_struct(*name_type, &name.bcs)
32//         {
33//             yield key.value.ch_id.bytes;
34//         }
35//     }
36//     // async_stream::try_stream! {
37//     //     let mut has_next_page = true;
38//     //     let mut cursor = None;
39//     //     while has_next_page {
40//     //         let (dfs, cursor_) = client
41//     //             .owner_df_contents(registry_address, version, None, cursor)
42//     //             .await?;
43//     //         cursor = cursor_;
44//     //         has_next_page = cursor.is_some();
45
46//     //         for (name, raw) in dfs {
47//     //             let DynamicField::Field(_raw) = raw else {
48//     //                 continue;
49//     //             };
50//     //             let TypeTag::Struct(name_type) = name.type_ else {
51//     //                 continue;
52//     //             };
53//     //             if let Ok(key) =
54//     //                 MoveInstance::<crate::keys::RegistryMarketInfo>::from_raw_struct(*name_type, &name.bcs)
55//     //             {
56//     //                 yield key.value.ch_id.bytes;
57//     //             }
58//     //         }
59//     //     }
60//     // }
61// }