products

package
v0.57.0 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2022 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrOracleSpecAndBindingAreRequired is returned when the definition of the
	// oracle spec or its binding is missing from the future definition.
	ErrOracleSpecAndBindingAreRequired = errors.New("an oracle spec and an oracle spec binding are required")

	// ErrOracleSettlementPriceNotSet is returned when the oracle has not set the settlement price.
	ErrOracleSettlementPriceNotSet = errors.New("settlement price is not set")
)
View Source
var (
	// ErrNilProduct signals the product passed in the constructor was nil.
	ErrNilProduct = errors.New("nil product")
	// ErrUnimplementedProduct signal that the product passed to the
	// constructor was not nil, but the code as no knowledge of it.
	ErrUnimplementedProduct = errors.New("unimplemented product")
)

Functions

This section is empty.

Types

type Future

type Future struct {
	SettlementAsset string
	QuoteName       string
	// contains filtered or unexported fields
}

Future represent a Future as describe by the market framework.

func NewFuture

func NewFuture(ctx context.Context, log *logging.Logger, f *types.Future, oe OracleEngine) (*Future, error)

func (*Future) GetAsset

func (f *Future) GetAsset() string

GetAsset return the asset used by the future.

func (*Future) IsTradingTerminated

func (f *Future) IsTradingTerminated() bool

IsTradingTerminated - returns true when the oracle has signalled terminated market.

func (*Future) NotifyOnSettlementPrice

func (f *Future) NotifyOnSettlementPrice(listener func(context.Context, *num.Uint))

func (*Future) NotifyOnTradingTerminated

func (f *Future) NotifyOnTradingTerminated(listener func(context.Context, bool))

func (*Future) ScaleSettlementPriceToDecimalPlaces

func (f *Future) ScaleSettlementPriceToDecimalPlaces(price *num.Uint, dp uint32) (*num.Uint, error)

func (*Future) Settle

func (f *Future) Settle(entryPriceInAsset *num.Uint, assetDecimals uint32, netFractionalPosition num.Decimal) (amt *types.FinancialAmount, neg bool, err error)

Settle a position against the future.

func (*Future) Unsubscribe

func (f *Future) Unsubscribe(ctx context.Context)

func (*Future) UnsubscribeSettlementPrice added in v0.55.0

func (f *Future) UnsubscribeSettlementPrice(ctx context.Context)

func (*Future) UnsubscribeTradingTerminated added in v0.55.0

func (f *Future) UnsubscribeTradingTerminated(ctx context.Context)

func (*Future) Value

func (f *Future) Value(markPrice *num.Uint) (*num.Uint, error)

Value - returns the nominal value of a unit given a current mark price.

type OracleEngine

OracleEngine ...

type Product

type Product interface {
	Settle(*num.Uint, uint32, num.Decimal) (amt *types.FinancialAmount, neg bool, err error)
	Value(markPrice *num.Uint) (*num.Uint, error)
	GetAsset() string
	IsTradingTerminated() bool
	ScaleSettlementPriceToDecimalPlaces(price *num.Uint, dp uint32) (*num.Uint, error)
	NotifyOnTradingTerminated(listener func(context.Context, bool))
	NotifyOnSettlementPrice(listener func(context.Context, *num.Uint))
	UnsubscribeTradingTerminated(ctx context.Context)
	UnsubscribeSettlementPrice(ctx context.Context)
}

Product is the interface provided by all product in vega.

func New

func New(ctx context.Context, log *logging.Logger, pp interface{}, oe OracleEngine) (Product, error)

New instance a new product from a Market framework product configuration.

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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