Documentation
¶
Index ¶
- Constants
- Variables
- func IsConflictError(err error) bool
- func IsInsufficientFundError(err error) bool
- func IsLockError(err error) bool
- func IsScriptError(err error) bool
- func IsTransactionCommitError(err error) bool
- func IsValidationError(err error) bool
- func MemoryLockModule() fx.Option
- func NoLockModule() fx.Option
- func ProvideResolverOption(provider interface{}) fx.Option
- func ResolveModule() fx.Option
- type ConflictError
- type InMemoryLocker
- type InsufficientFundError
- type Ledger
- func (l *Ledger) Close(ctx context.Context) error
- func (l *Ledger) Commit(ctx context.Context, ts []core.TransactionData) (core.AggregatedVolumes, []core.Transaction, error)
- func (l *Ledger) CommitPreview(ctx context.Context, ts []core.TransactionData) (core.AggregatedVolumes, []core.Transaction, error)
- func (l *Ledger) CountAccounts(ctx context.Context, m ...query.Modifier) (uint64, error)
- func (l *Ledger) CountTransactions(ctx context.Context, m ...query.Modifier) (uint64, error)
- func (l *Ledger) Execute(ctx context.Context, script core.Script) (*core.Transaction, error)
- func (l *Ledger) ExecutePreview(ctx context.Context, script core.Script) (*core.Transaction, error)
- func (l *Ledger) FindAccounts(ctx context.Context, m ...query.Modifier) (sharedapi.Cursor, error)
- func (l *Ledger) FindTransactions(ctx context.Context, m ...query.Modifier) (sharedapi.Cursor, error)
- func (l *Ledger) GetAccount(ctx context.Context, address string) (core.Account, error)
- func (l *Ledger) GetLastTransaction(ctx context.Context) (core.Transaction, error)
- func (l *Ledger) GetTransaction(ctx context.Context, id uint64) (core.Transaction, error)
- func (l *Ledger) LoadMapping(ctx context.Context) (*core.Mapping, error)
- func (l *Ledger) RevertTransaction(ctx context.Context, id uint64) (*core.Transaction, error)
- func (l *Ledger) SaveMapping(ctx context.Context, mapping core.Mapping) error
- func (l *Ledger) SaveMeta(ctx context.Context, targetType string, targetID interface{}, m core.Metadata) error
- func (l *Ledger) Stats(ctx context.Context) (Stats, error)
- func (l *Ledger) Verify() error
- type LockError
- type Locker
- type LockerFn
- type Monitor
- type ResolveOptionFn
- type Resolver
- type ResolverOption
- type ScriptError
- type Stats
- type TransactionCommitError
- type Unlock
- type ValidationError
Constants ¶
View Source
const ( ScriptErrorInsufficientFund = "INSUFFICIENT_FUND" ScriptErrorCompilationFailed = "COMPILATION_FAILED" ScriptErrorNoScript = "NO_SCRIPT" )
View Source
const ResolverOptionsKey = `group:"_ledgerResolverOptions"`
Variables ¶
View Source
var DefaultContracts = []core.Contract{ { Expr: &core.ExprGte{ Op1: core.VariableExpr{ Name: "balance", }, Op2: core.ConstantExpr{ Value: float64(0), }, }, Account: "*", }, }
View Source
var DefaultResolverOptions = []ResolverOption{ WithLocker(NewInMemoryLocker()), WithMonitor(&noOpMonitor{}), }
Functions ¶
func IsConflictError ¶ added in v1.0.4
func IsInsufficientFundError ¶ added in v1.0.4
func IsLockError ¶ added in v1.3.0
func IsScriptError ¶ added in v1.0.5
func IsTransactionCommitError ¶ added in v1.0.4
func IsValidationError ¶ added in v1.0.4
func MemoryLockModule ¶ added in v1.3.0
func NoLockModule ¶ added in v1.3.0
func ProvideResolverOption ¶
func ResolveModule ¶
Types ¶
type ConflictError ¶
type ConflictError struct{}
func NewConflictError ¶
func NewConflictError() *ConflictError
func (ConflictError) Error ¶
func (e ConflictError) Error() string
func (ConflictError) Is ¶ added in v1.0.4
func (e ConflictError) Is(err error) bool
type InMemoryLocker ¶
type InMemoryLocker struct {
// contains filtered or unexported fields
}
func NewInMemoryLocker ¶
func NewInMemoryLocker() *InMemoryLocker
type InsufficientFundError ¶
type InsufficientFundError struct {
Asset string
}
func NewInsufficientFundError ¶
func NewInsufficientFundError(asset string) *InsufficientFundError
func (InsufficientFundError) Error ¶
func (e InsufficientFundError) Error() string
func (InsufficientFundError) Is ¶ added in v1.0.4
func (e InsufficientFundError) Is(err error) bool
type Ledger ¶
type Ledger struct {
// contains filtered or unexported fields
}
func (*Ledger) Commit ¶
func (l *Ledger) Commit(ctx context.Context, ts []core.TransactionData) (core.AggregatedVolumes, []core.Transaction, error)
func (*Ledger) CommitPreview ¶ added in v1.1.0
func (l *Ledger) CommitPreview(ctx context.Context, ts []core.TransactionData) (core.AggregatedVolumes, []core.Transaction, error)
func (*Ledger) CountAccounts ¶ added in v1.3.2
func (*Ledger) CountTransactions ¶ added in v1.3.2
func (*Ledger) ExecutePreview ¶ added in v1.1.0
func (*Ledger) FindAccounts ¶
func (*Ledger) FindTransactions ¶
func (*Ledger) GetAccount ¶
func (*Ledger) GetLastTransaction ¶
TODO: This is only used for testing I think we should remove this and all related code We don't need any testing logic in the business code.
func (*Ledger) GetTransaction ¶
func (*Ledger) LoadMapping ¶
func (*Ledger) RevertTransaction ¶
func (*Ledger) SaveMapping ¶
type LockError ¶ added in v1.3.0
type LockError struct {
Err error
}
func NewLockError ¶ added in v1.3.0
type Monitor ¶ added in v1.3.0
type Monitor interface {
CommittedTransactions(context.Context, string, []core.Transaction, core.AggregatedVolumes)
SavedMetadata(ctx context.Context, ledger string, targetType string, id string, metadata core.Metadata)
UpdatedMapping(context.Context, string, core.Mapping)
RevertedTransaction(ctx context.Context, ledger string, reverted core.Transaction, revert core.Transaction)
}
type ResolveOptionFn ¶
func WithLocker ¶
func WithLocker(locker Locker) ResolveOptionFn
func WithMonitor ¶ added in v1.3.0
func WithMonitor(monitor Monitor) ResolveOptionFn
func WithStorageDriver ¶ added in v1.3.2
func WithStorageDriver(factory storage.Driver) ResolveOptionFn
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
func NewResolver ¶
func NewResolver(storageFactory storage.Driver, options ...ResolverOption) *Resolver
type ResolverOption ¶
type ResolverOption interface {
// contains filtered or unexported methods
}
type ScriptError ¶ added in v1.0.5
func NewScriptError ¶ added in v1.0.5
func NewScriptError(code string, message string) *ScriptError
func (ScriptError) Error ¶ added in v1.0.5
func (e ScriptError) Error() string
func (ScriptError) Is ¶ added in v1.0.5
func (e ScriptError) Is(err error) bool
type TransactionCommitError ¶
func NewTransactionCommitError ¶
func NewTransactionCommitError(txIndex int, err error) *TransactionCommitError
func (TransactionCommitError) Error ¶
func (e TransactionCommitError) Error() string
func (TransactionCommitError) Is ¶ added in v1.0.4
func (e TransactionCommitError) Is(err error) bool
func (TransactionCommitError) Unwrap ¶ added in v1.0.4
func (e TransactionCommitError) Unwrap() error
type ValidationError ¶
type ValidationError struct {
Msg string
}
func NewValidationError ¶
func NewValidationError(msg string) *ValidationError
func (ValidationError) Error ¶
func (v ValidationError) Error() string
func (ValidationError) Is ¶ added in v1.0.4
func (v ValidationError) Is(err error) bool
Source Files
¶
Click to show internal directories.
Click to hide internal directories.