Crates.io | forge_wallet |
lib.rs | forge_wallet |
version | 0.1.3 |
source | src |
created_at | 2019-10-12 02:33:40.93981 |
updated_at | 2019-10-21 00:23:06.239131 |
description | The rust language implementation of forge_wallet |
homepage | https://github.com/ArcBlock/forge-rust-sdk |
repository | https://github.com/ArcBlock/forge-rust-sdk |
max_upload_size | |
id | 171823 |
size | 11,654 |
forge_wallet
implement by Rust
. Based on forge_crypter, forge_hasher, forge_signer, forge_did.
The crate provides some help functions to help user create wallet.
pub struct Wallet {
pub w_type: WalletType,
pub sk: Vec<u8>,
pub pk: Vec<u8>,
pub address: String,
}
create_default_wallet() -> Result<Wallet>
from_wallet_type(w_type: &WalletType) -> Result<Wallet>
from_address(addr: &str) -> Result<Wallet>
from_pk(pk: &[u8], w_type: &WalletType) -> Result<Wallet>
from_sk(sk: &[u8], w_type: &WalletType) -> Result<Wallet>
from_json(j: Value) -> Result<Wallet>
to_json(&self) -> Result<Value>
verify(&self, message: &[u8], signature: &[u8]) -> Result<bool>
hash(&self, message: &[u8]) -> Result<Vec<u8>>
sign(&self, message: &[u8]) -> Result<Vec<u8>>
format_wallet(&mut self) -> Result<()>
is_valid(wallet: &Wallet) -> bool
let wallet_type = WalletType {
role_type: Some(RoleType::Application),
key_type: Some(KeyType::Ed25519),
hash_type: Some(HashType::Sha3),
};
let wallet = from_wallet_type(&wallet_type)?;
assert_eq!(wallet, from_sk(&wallet.sk, &wallet_type)?);
let message = b"hello rust";
let signature = wallet.sign(message)?;
assert!(wallet.verify(message, &signature))?;