From ed469357e8be4f126c5b3c922e82553f6f4faa7d Mon Sep 17 00:00:00 2001 From: Ukpai Ugochi <62933980+hannydevelop@users.noreply.github.com> Date: Mon, 31 May 2021 14:38:39 +0100 Subject: [PATCH] Update sign.rs (#304) * Update sign.rs The absence of `use ethers_core::rand::thread_rng;` throws an error. Also, I decided to comment on examples since it's targeted at beginners. * chore: improve language on signing docs Co-authored-by: Georgios Konstantopoulos --- ethers/examples/sign.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/ethers/examples/sign.rs b/ethers/examples/sign.rs index a25a7a41..1ad1a649 100644 --- a/ethers/examples/sign.rs +++ b/ethers/examples/sign.rs @@ -1,18 +1,25 @@ +// use the anyhow crate for easy idiomatic error handling use anyhow::Result; -use ethers::prelude::*; +// use the ethers_core rand for rng +use ethers_core::rand::thread_rng; +// use the ethers_signers crate to manage LocalWallet and Signer +use ethers_signers::{LocalWallet, Signer}; +// Use the `tokio::main` macro for using async on the main function #[tokio::main] async fn main() -> Result<()> { + // Generate a random wallet + let wallet = LocalWallet::new(&mut thread_rng()); + + // Declare the message you want to sign. let message = "Some data"; - let wallet = LocalWallet::new(&mut rand::thread_rng()); - // sign a message + // sign message from your wallet and print out signature produced. let signature = wallet.sign_message(message).await?; println!("Produced signature {}", signature); - // verify the signature + // verify the signature produced from your wallet. signature.verify(message, wallet.address()).unwrap(); - println!("Verified signature produced by {:?}!", wallet.address()); Ok(())