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 <me@gakonst.com>
This commit is contained in:
Ukpai Ugochi 2021-05-31 14:38:39 +01:00 committed by GitHub
parent 4690f8effc
commit ed469357e8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 5 deletions

View File

@ -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(())