| Crates.io | forge_wallet |
| lib.rs | forge_wallet |
| version | 0.1.3 |
| created_at | 2019-10-12 02:33:40.93981+00 |
| updated_at | 2019-10-21 00:23:06.239131+00 |
| 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))?;