5 unstable releases
Uses old Rust 2015
0.10.1 | Jul 27, 2017 |
---|---|
0.10.0 | Jul 21, 2017 |
0.9.1 | Jul 4, 2017 |
0.9.0 | Jun 27, 2017 |
0.1.0 | Jun 20, 2017 |
#2 in #crypto-wallet
165KB
4.5K
SLoC
Emerald Vault - Key Storage for Emerald Wallet
Rust library to store, access and operate cryptocurrency Private Keys, part of Emerald Wallet.
Architecture and Features
Features
- Supports Ethereum-based keys
- JSON-based WEB3 keys (Import/Export)
- Raw private keys (Generate/Import/Export, Export as WEB3 JSON)
- HDPath on a Seed
- Mnemonic based seed (Generate/Import)
- Ledger Nano based seed
- Sign transaction
Architecture
- File based storage, with random UUID identifiers
b6923a7f-033f-4370-8861-2621871aeeec.wallet
130d0800-462c-4c48-8b4a-94cef23351a2.key
7dc9347a-5ef0-4dc3-bae1-d75d20b1259c.seed
- Data is encoded with protobuf (see
proto/
) .wallet
is general container for different types of addresses (entries). Vault can have multiple wallets..key
is an encrypted Private Key used by a wallet entry. Can have multiple..seed
is a reference to a Hardware Key, or encrypted Seed bytes. Can have multiple.addressbook.csv
is an Address Book of recipient addresses (DEPRECATED).png
a custom image for the wallet or other entry.
.Storage directory:
- Windows:
%APPDATA%\.emerald\vault
- OSX:
~/Library/Emerald/vault
- Linux:
~/.emerald/vault
Development
Ensure you have these dependencies installed:
[source]
openssl pkgconfig rustc cargo clang
cargo
and rustc
should be at least versions 0.31 and 1.31 respectively.
Should your distribution or operating system not have a recent cargo
and rustc
binaries, you can install them from http://doc.crates.io/
Install Protobuf codegen for Rust: https://github.com/stepancheg/rust-protobuf/tree/master/protobuf-codegen
.Generate Rust code from Protobuf
protoc --rust_out=src/proto --proto_path=./proto address.proto
protoc --rust_out=src/proto --proto_path=./proto book.proto
protoc --rust_out=src/proto --proto_path=./proto common.proto
protoc --rust_out=src/proto --proto_path=./proto crypto.proto
protoc --rust_out=src/proto --proto_path=./proto pk.proto
protoc --rust_out=src/proto --proto_path=./proto seed.proto
protoc --rust_out=src/proto --proto_path=./proto wallet.proto
[source]
cargo build
Contact
Chat with us via Gitter
License
Copyright 2024 EmeraldPay, Ltd
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Dependencies
~17–26MB
~394K SLoC