use catenis_api_client::{ CatenisClient, ClientOptions, Environment, Result, }; fn main() -> Result<()> { let device_credentials = ( "dnN3Ea43bhMTHtTvpytS", concat!( "000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f", "202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f", ), ).into(); let mut ctn_client = CatenisClient::new_with_options( Some(device_credentials), &[ ClientOptions::Environment(Environment::Sandbox), ], )?; let message_id = "oDWPuD5kjCsEiNEEWwrW"; let result = ctn_client.retrieve_message_container( message_id, )?; if let Some(off_chain) = result.off_chain { println!("IPFS CID of Catenis off-chain message envelope: {}", off_chain.cid); } if let Some(blockchain) = result.blockchain { println!("ID of blockchain transaction containing the message: {}", blockchain.txid); } if let Some(external_storage) = result.external_storage { println!("IPFS reference to message: {}", external_storage.ipfs); } Ok(()) }