use walletconnect_sdk::{
connection::Connection, pairing::Topic, types::Metadata,
};
#[tokio::main]
async fn main() {
env_logger::init();
let project_id = "35d44d49c2dee217a3eb24bb4410acc7";
let client_seed = [123u8; 32];
let conn = Connection::new(
"https://relay.walletconnect.org/rpc",
"https://relay.walletconnect.org",
project_id,
client_seed, Metadata {
name: "WalletConnect Rust SDK".to_string(),
description: "WalletConnect Rust SDK enables to connect to relay and interact with dapp".to_string(),
url: "https://github.com/zemse/walletconnect-sdk".to_string(),
icons: vec![],
},
);
let uri_from_dapp = "wc:e4b9eb7a1372bf88abc46c37acac3687301afdfd0d2a4c2355945d66a1164464@2?relay-protocol=irn&symKey=d7430284e1b70853829a010518a088cde0e163bcad5f24425e3b17578b2b402d&expiryTimestamp=1749783095&methods=wc_sessionAuthenticate";
let (mut pairing, _) = conn
.init_pairing(uri_from_dapp)
.await
.expect("pairing failed");
pairing
.approve_with_session_settle(
"0x0000000000000000000000000000000000000123"
.parse()
.unwrap(),
)
.await
.expect("approve failed");
loop {
let result =
pairing.watch_messages(Topic::Derived, None).await.unwrap();
println!("result: {result:?}");
}
}