README
¶
go-eth2-wallet-store-filesystem
Filesystem-based store for the Ethereum 2 wallet.
Table of Contents
Install
go-eth2-wallet-store-filesystem
is a standard Go module which can be installed with:
go get github.com/wealdtech/go-eth2-wallet-store-filesystem
Usage
In normal operation this module should not be used directly. Instead, it should be configured to be used as part of go-eth2-wallet.
The filesystem store has the following options:
location
: the base directory in which to store wallets. If this is not configured it defaults to a sensible operating system-specific values:- for Linux: $HOME/.config/ethereum2/wallets
- for OSX: $HOME/Library/Application Support/ethereum2/wallets
- for Windows: %APPDATA%\ethereum2\wallets
passphrase
: a key used to encrypt all data written to the store. If this is not configured data is written to the store unencrypted (although wallet- and account-specific private information may be protected by their own passphrases)
Example
package main
import (
e2wallet "github.com/wealdtech/go-eth2-wallet"
filesystem "github.com/wealdtech/go-eth2-wallet-store-filesystem"
)
func main() {
// Set up and use a simple store
store := filesystem.New()
e2wallet.UseStore(store)
// Set up and use an encrypted store
store := filesystem.New(filesystem.WithPassphrase([]byte("my secret")))
e2wallet.UseStore(store)
// Set up and use an encrypted store at a custom location
store := filesystem.New(filesystem.WithPassphrase([]byte("my secret")), filesystem.WithLocation("/home/user/wallets"))
e2wallet.UseStore(store)
// Use e2wallet operations as normal.
}
Maintainers
Jim McDonald: @mcdee.
Contribute
Contributions welcome. Please check out the issues.
License
Apache-2.0 © 2019 Weald Technology Trading Ltd
Documentation
¶
Index ¶
- func New(opts ...Option) types.Store
- type Option
- type Store
- func (s *Store) Name() string
- func (s *Store) RetrieveAccount(wallet types.Wallet, name string) ([]byte, error)
- func (s *Store) RetrieveAccounts(wallet types.Wallet) <-chan []byte
- func (s *Store) RetrieveWallet(walletName string) ([]byte, error)
- func (s *Store) RetrieveWallets() <-chan []byte
- func (s *Store) StoreAccount(wallet types.Wallet, account types.Account, data []byte) error
- func (s *Store) StoreWallet(wallet types.Wallet, data []byte) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Option ¶
type Option interface {
// contains filtered or unexported methods
}
Option gives options to New
func WithLocation ¶
WithLocation sets the on-filesystem location for the store.
func WithPassphrase ¶
WithPassphrase sets the encryption for the store.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store is the store for the wallet.
func (*Store) RetrieveAccount ¶
RetrieveAccount retrieves account-level data. It will fail if it cannot retrieve the data.
func (*Store) RetrieveAccounts ¶
RetrieveAccounts retrieves all account-level data for a wallet.
func (*Store) RetrieveWallet ¶
RetrieveWallet retrieves wallet-level data. It will fail if it cannot retrieve the data.
func (*Store) RetrieveWallets ¶
RetrieveWallets retrieves wallet-level data for all wallets.
func (*Store) StoreAccount ¶
StoreAccount stores an account. It will fail if it cannot store the data. Note this will overwrite an existing account with the same ID. It will not, however, allow multiple accounts with the same name to co-exist in the same wallet.
func (*Store) StoreWallet ¶
StoreWallet stores wallet-level data. It will fail if it cannot store the data. Note that this will overwrite any existing data; it is up to higher-level functions to check for the presence of a wallet with the wallet name and handle clashes accordingly.