forge_wallet
implement by Rust
. Based on forgecrypter, forgehasher, forgesigner, forgedid.
The crate provides some help functions to help user create wallet.
rust
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
```rust let wallettype = WalletType { roletype: Some(RoleType::Application), keytype: Some(KeyType::Ed25519), hashtype: Some(HashType::Sha3), }; let wallet = fromwallettype(&wallettype)?; asserteq!(wallet, fromsk(&wallet.sk, &wallettype)?);
let message = b"hello rust";
let signature = wallet.sign(message)?;
assert!(wallet.verify(message, &signature))?;
```