dbbadger

package
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 8, 2021 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UnspentBadgerholdKeyPrefix       = "bh_Unspent"
	LockedUnspentBadgerholdKeyPrefix = "bh_LockedUnspent"
)
View Source
const (
	TradeBadgerholdKeyPrefix = "bh_Trade"
)

Variables

View Source
var (
	// ErrMarketInvalidRequest ...
	ErrMarketInvalidRequest = errors.New("requested market is null")
	// ErrMarketNotFound ...
	ErrMarketNotFound = errors.New("market not found")
)
View Source
var (
	// ErrTradeNotFound ...
	ErrTradeNotFound = errors.New("trade not found")
)
View Source
var (
	// ErrVaultNotFound ...
	ErrVaultNotFound = errors.New("vault not found")
)

Functions

func EncodeKey

func EncodeKey(key interface{}, typeName string) ([]byte, error)

EncodeKey encodes key values with a type prefix which allows multiple different types to exist in the badger DB

func JSONDecode

func JSONDecode(data []byte, value interface{}) error

JSONDecode is a custom JSON based decoder for badger

func JSONEncode

func JSONEncode(value interface{}) ([]byte, error)

JSONEncode is a custom JSON based encoder for badger

func NewMarketRepositoryImpl

func NewMarketRepositoryImpl(store, priceStore *badgerhold.Store) domain.MarketRepository

NewMarketRepositoryImpl initialize a badger implementation of the domain.MarketRepository

func NewRepoManager added in v0.3.1

func NewRepoManager(baseDbDir string, logger badger.Logger) (ports.RepoManager, error)

NewRepoManager opens (or creates if not exists) the badger store on disk. It expects a base data dir and an optional logger. It creates a dedicated directory for main and prices stores, while the unspent repository lives in memory.

func NewTradeRepositoryImpl

func NewTradeRepositoryImpl(store *badgerhold.Store) domain.TradeRepository

func NewUnspentRepositoryImpl

func NewUnspentRepositoryImpl(store, lockStore *badgerhold.Store) domain.UnspentRepository

func NewVaultRepositoryImpl

func NewVaultRepositoryImpl(store *badgerhold.Store) domain.VaultRepository

Types

type LockedUnspent

type LockedUnspent struct {
	TradeID uuid.UUID
}

type RepoManager added in v0.3.1

type RepoManager struct {
	// contains filtered or unexported fields
}

RepoManager holds all the badgerhold stores in a single data structure.

func (*RepoManager) Close added in v0.3.1

func (d *RepoManager) Close()

func (*RepoManager) MarketRepository added in v0.3.1

func (d *RepoManager) MarketRepository() domain.MarketRepository

func (*RepoManager) NewPricesTransaction added in v0.3.1

func (d *RepoManager) NewPricesTransaction() ports.Transaction

NewPricesTransaction implements the RepoManager interface

func (*RepoManager) NewTransaction added in v0.3.1

func (d *RepoManager) NewTransaction() ports.Transaction

NewTransaction implements the RepoManager interface

func (*RepoManager) NewUnspentsTransaction added in v0.3.1

func (d *RepoManager) NewUnspentsTransaction() ports.Transaction

NewUnspentsTransaction implements the RepoManager interface

func (*RepoManager) RunPricesTransaction added in v0.3.1

func (d *RepoManager) RunPricesTransaction(
	ctx context.Context,
	readOnly bool,
	handler func(ctx context.Context) (interface{}, error),
) (interface{}, error)

RunPricesTransaction invokes the given handler and retries in case the unspents transaction returns a conflict error

func (*RepoManager) RunTransaction added in v0.3.1

func (d *RepoManager) RunTransaction(
	ctx context.Context,
	readOnly bool,
	handler func(ctx context.Context) (interface{}, error),
) (interface{}, error)

RunTransaction invokes the given handler and retries in case the transaction returns a conflict error

func (*RepoManager) RunUnspentsTransaction added in v0.3.1

func (d *RepoManager) RunUnspentsTransaction(
	ctx context.Context,
	readOnly bool,
	handler func(ctx context.Context) (interface{}, error),
) (interface{}, error)

RunUnspentsTransaction invokes the given handler and retries in case the unspents transaction returns a conflict error

func (*RepoManager) TradeRepository added in v0.3.1

func (d *RepoManager) TradeRepository() domain.TradeRepository

func (*RepoManager) UnspentRepository added in v0.3.1

func (d *RepoManager) UnspentRepository() domain.UnspentRepository

func (*RepoManager) VaultRepository added in v0.3.1

func (d *RepoManager) VaultRepository() domain.VaultRepository

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL