use core::{iter, num::NonZeroU32};
fn main() {
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")).init();
let mut client = smoldot_light::Client::new(
smoldot_light::platform::async_std::AsyncStdTcpWebSocket::new(
env!("CARGO_PKG_NAME").into(),
env!("CARGO_PKG_VERSION").into(),
),
);
let smoldot_light::AddChainSuccess {
chain_id,
json_rpc_responses,
} = client
.add_chain(smoldot_light::AddChainConfig {
specification: include_str!("../../demo-chain-specs/polkadot.json"),
json_rpc: smoldot_light::AddChainConfigJsonRpc::Enabled {
max_pending_requests: NonZeroU32::new(128).unwrap(),
max_subscriptions: 1024,
},
potential_relay_chains: iter::empty(),
database_content: "",
user_data: (),
})
.unwrap();
let mut json_rpc_responses = json_rpc_responses.unwrap();
client
.json_rpc_request(
r#"{"id":1,"jsonrpc":"2.0","method":"chain_subscribeNewHeads","params":[]}"#,
chain_id,
)
.unwrap();
async_std::task::block_on(async move {
loop {
let response = json_rpc_responses.next().await.unwrap();
println!("JSON-RPC response: {response}");
}
})
}