feat: add simple contract

This commit is contained in:
2021-01-01 18:35:28 +08:00
parent 6386371a69
commit 54856504a2
6 changed files with 684 additions and 0 deletions

View 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(())
}