Documentation ¶
Index ¶
- func New(opts ...Option) (wtypes.Store, error)
- func TestDecryptIfRequired(t *testing.T)
- func TestEncryptIfRequired(t *testing.T)
- type Option
- type Store
- func (s *Store) Location() string
- func (s *Store) Name() string
- func (s *Store) RetrieveAccount(walletID uuid.UUID, accountID uuid.UUID) ([]byte, error)
- func (s *Store) RetrieveAccounts(walletID uuid.UUID) <-chan []byte
- func (s *Store) RetrieveAccountsIndex(walletID uuid.UUID) ([]byte, error)
- func (s *Store) RetrieveBatch(_ context.Context, walletID uuid.UUID) ([]byte, error)
- func (s *Store) RetrieveWallet(walletName string) ([]byte, error)
- func (s *Store) RetrieveWalletByID(walletID uuid.UUID) ([]byte, error)
- func (s *Store) RetrieveWallets() <-chan []byte
- func (s *Store) StoreAccount(walletID uuid.UUID, accountID uuid.UUID, data []byte) error
- func (s *Store) StoreAccountsIndex(walletID uuid.UUID, data []byte) error
- func (s *Store) StoreBatch(_ context.Context, walletID uuid.UUID, _ string, data []byte) error
- func (s *Store) StoreWallet(id uuid.UUID, _ string, data []byte) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func New ¶
New creates a new Amazon S3-compatible store. This takes the following options:
- region: a string specifying the Amazon S3 region, defaults to "us-east-1", set with WithRegion()
- id: a byte array specifying an identifying key for the store, defaults to nil, set with WithID()
- passphrase: a key used to encrypt all data written to the store, defaults to blank and no additional encryption
- bucket: the name of a bucket to create, defaults to one generated using the credentials and ID
- path: a path inside the bucket in which to place wallets, defaults to the root of the bucket
- endpoint: a URL for an S3-compatible service to use in place of S3 itself
- credentials ID: AWS access credentials ID
- credentials secret: AWS access credentials secret
If credentials are not supplied, the access credentials should be in a standard place, e.g. ~/.aws/credentials .
func TestDecryptIfRequired ¶
func TestEncryptIfRequired ¶
Types ¶
type Option ¶
type Option interface {
// contains filtered or unexported methods
}
Option gives options to New.
func WithCredentialsID ¶
WithCredentialsID sets the credentials ID.
func WithCredentialsSecret ¶
WithCredentialsSecret sets the credentials secret.
func WithEndpoint ¶
WithEndpoint sets the endpoint for the store.
func WithPassphrase ¶
WithPassphrase sets the passphrase for the store.
func WithPath ¶
WithPath sets the path for the store. If not supplied this will default to an accout-specific path.
func WithRegion ¶
WithRegion sets the AWS region for the store. This defaults to "us-east-1", and cannot be overridden by an empty string.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store is the store for the wallet held encrypted on Amazon S3.
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) RetrieveAccountsIndex ¶
RetrieveAccountsIndex retrieves the account index.
func (*Store) RetrieveBatch ¶
RetrieveBatch retrieves the batch of accounts for a given wallet.
func (*Store) RetrieveWallet ¶
RetrieveWallet retrieves wallet-level data. It will fail if it cannot retrieve the data.
func (*Store) RetrieveWalletByID ¶
RetrieveWalletByID 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) StoreAccountsIndex ¶
StoreAccountsIndex stores the account index.
func (*Store) StoreBatch ¶
StoreBatch stores wallet batch data. It will fail if it cannot store the data.
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.