use smoldot::json_rpc;
use std::sync::Arc;
#[test]
#[ignore] fn basic_block_generated() {
smol::block_on(async move {
let client = smoldot_full_node::start(smoldot_full_node::Config {
chain: smoldot_full_node::ChainConfig {
chain_spec: (&include_bytes!("./substrate-node-template.json")[..]).into(),
additional_bootnodes: Vec::new(),
keystore_memory: vec![smoldot::identity::seed_phrase::decode_sr25519_private_key(
"//Alice",
)
.unwrap()],
sqlite_database_path: None,
sqlite_cache_size: 256 * 1024 * 1024,
keystore_path: None,
json_rpc_listen: None,
},
relay_chain: None,
libp2p_key: Box::new([0; 32]),
listen_addresses: Vec::new(),
tasks_executor: Arc::new(|task| smol::spawn(task).detach()),
log_callback: Arc::new(move |_, _| {}),
jaeger_agent: None,
})
.await
.unwrap();
loop {
client.send_json_rpc_request(
r#"{"jsonrpc":"2.0","id":1,"method":"chainHead_v1_follow","params":[false]}"#
.to_owned(),
);
let _ = json_rpc::parse::parse_response(&client.next_json_rpc_response().await)
.unwrap()
.into_success()
.unwrap();
loop {
match json_rpc::methods::parse_notification(&client.next_json_rpc_response().await)
.unwrap()
{
json_rpc::methods::ServerToClient::chainHead_v1_followEvent {
result: json_rpc::methods::FollowEvent::NewBlock { .. },
..
} => return, json_rpc::methods::ServerToClient::chainHead_v1_followEvent {
result: json_rpc::methods::FollowEvent::Stop { .. },
..
} => break,
_ => {}
}
}
}
});
}