feat: add simple contract
This commit is contained in:
31
__crypto/simple_contract/src/main.rs
Normal file
31
__crypto/simple_contract/src/main.rs
Normal file
@@ -0,0 +1,31 @@
|
||||
pub mod util;
|
||||
pub mod tx;
|
||||
pub mod credit;
|
||||
|
||||
use std::str::FromStr;
|
||||
use secp256k1::{Message, Secp256k1, Signature};
|
||||
use util::*;
|
||||
|
||||
fn main() -> XResult<()> {
|
||||
let (pri_key, pub_key) = make_key_pair();
|
||||
println!("{:?}", pri_key);
|
||||
println!("{:?}", pub_key);
|
||||
println!("{:?}", JsonKeyPair::from(pri_key, pub_key).to_json());
|
||||
println!("{:?}", JsonKeyPair::from(pri_key, pub_key).to_key_pair());
|
||||
println!("{}", make_btc_address(&pub_key));
|
||||
|
||||
let p256k1 = Secp256k1::new();
|
||||
let s =calc_sha256("hello".as_bytes());
|
||||
let message = Message::from_slice(&s)?;
|
||||
|
||||
let sign = p256k1.sign(&message, &pri_key);
|
||||
let sign_hex = format!("{}", sign);
|
||||
println!("{}", sign_hex);
|
||||
|
||||
let sig = Signature::from_str(&sign_hex)?;
|
||||
|
||||
let result = p256k1.verify(&message, &sig, &pub_key);
|
||||
println!("{:?}", result);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user