# Wallet Library For CryptoNote Based Crypto Currencies
[![](https://travis-ci.com/cryptonote-rust/wallet.svg?branch=master)](https://travis-ci.com/cryptonote-rust/wallet)
[![](https://img.shields.io/crates/v/cryptonote-wallet.svg)](https://crates.io/crates/cryptonote-wallet)
[![codecov](https://codecov.io/gh/cryptonote-rust/wallet/branch/master/graph/badge.svg)](https://codecov.io/gh/cryptonote-rust/wallet)
# Pure Wallet without cache
## Usage
### Wallet creation methods
1. from secret keys
```rust
let spend = b"f644de91c7defae58ff9136dcc8b03a2059fda3294865065f86554d3aaeb310c";
let view = b"3dd9d71a6fe2b909e1603c9ac325f13f2c6ac965e7e1ec98e5e666ed84b4d40c";
let wallet = Wallet::from_secret_keys(spend, view);
```
2. from secret strings
```rust
let spend_str = "f644de91c7defae58ff9136dcc8b03a2059fda3294865065f86554d3aaeb310c";
let view_str = "3dd9d71a6fe2b909e1603c9ac325f13f2c6ac965e7e1ec98e5e666ed84b4d40c";
let wallet = Wallet::from_secret_string(String::from(spend_str), String::from(view_str));
```
### Wallet File processing
1. load and save wallet
```rust
// Create a wallet object
let mut wallet = Wallet::new();
// Load wallet from a wallet file with a password.
wallet.load(String::from("tests/vig.wallet"), String::from(""));
// Save current wallet to a new file with a new password.
wallet.save(String::from("tests/vig-new.wallet"), String::from("abcd"));
```
### Wallet instance functions
#### Wallet Address generation
1. to Address
```rust
let prefix: u64 = 0x3d;
let mut wallet = Wallet::new();
wallet.load(String::from("tests/vig.wallet"), String::from(""));
// Get an Address object
let address = wallet.to_address(prefix);
let addressStr = address.get();
println!("{}" , addressStr);
```
2. update secret keys
```rust
let prefix: u64 = 0x3d;
let mut wallet = Wallet::new();
let spend_str = "f644de91c7defae58ff9136dcc8b03a2059fda3294865065f86554d3aaeb310c";
let view_str = "3dd9d71a6fe2b909e1603c9ac325f13f2c6ac965e7e1ec98e5e666ed84b4d40c";
wallet.update_secret_keys(String::from(spend_str), String::from(view_str));
// Get an Address object
let address = wallet.to_address(prefix);
let addressStr = address.get();
println!("{}" , addressStr);
```