Documentation ¶
Index ¶
- Variables
- func NewCachedTWAP(log *logging.Logger, t int64, auctions *auctionIntervals) *cachedTWAP
- func NewCachedTWAPFromSnapshot(log *logging.Logger, t int64, auctions *auctionIntervals, ...) *cachedTWAP
- type Broker
- type CompositePriceOracle
- type Future
- func (f *Future) GetAsset() string
- func (_ Future) GetCurrentPeriod() uint64
- func (f *Future) GetData(t int64) *types.ProductData
- func (f *Future) GetMarginIncrease(_ int64) num.Decimal
- func (f *Future) IsTradingTerminated() bool
- func (f *Future) NotifyOnSettlementData(listener func(context.Context, *num.Numeric))
- func (f *Future) NotifyOnTradingTerminated(listener func(context.Context, bool))
- func (f *Future) RestoreSettlementData(settleData *num.Numeric)
- func (f *Future) ScaleSettlementDataToDecimalPlaces(price *num.Numeric, dp uint32) (*num.Uint, error)
- func (f *Future) Serialize() *snapshotpb.Product
- func (f *Future) Settle(entryPriceInAsset, settlementData *num.Uint, netFractionalPosition num.Decimal) (amt *types.FinancialAmount, neg bool, rounding num.Decimal, err error)
- func (f *Future) SubmitDataPoint(_ context.Context, _ *num.Uint, _ int64) error
- func (f *Future) Unsubscribe(ctx context.Context)
- func (f *Future) UnsubscribeSettlementData(ctx context.Context)
- func (f *Future) UnsubscribeTradingTerminated(ctx context.Context)
- func (f *Future) Update(ctx context.Context, pp interface{}, oe OracleEngine) error
- func (f *Future) UpdateAuctionState(_ context.Context, _ bool)
- func (f *Future) Value(markPrice *num.Uint) (*num.Uint, error)
- type OracleEngine
- type Perpetual
- func (p *Perpetual) GetAsset() string
- func (p Perpetual) GetCurrentPeriod() uint64
- func (p *Perpetual) GetData(t int64) *types.ProductData
- func (p *Perpetual) GetMarginIncrease(t int64) num.Decimal
- func (p *Perpetual) IsTradingTerminated() bool
- func (p *Perpetual) NotifyOnSettlementData(listener func(context.Context, *num.Numeric))
- func (p *Perpetual) NotifyOnTradingTerminated(listener func(context.Context, bool))
- func (p *Perpetual) RestoreSettlementData(settleData *num.Numeric)
- func (p *Perpetual) ScaleSettlementDataToDecimalPlaces(price *num.Numeric, dp uint32) (*num.Uint, error)
- func (p *Perpetual) Serialize() *snapshotpb.Product
- func (p *Perpetual) Settle(entryPriceInAsset, settlementData *num.Uint, netFractionalPosition num.Decimal) (amt *types.FinancialAmount, neg bool, rounding num.Decimal, err error)
- func (p *Perpetual) SubmitDataPoint(ctx context.Context, price *num.Uint, t int64) error
- func (p *Perpetual) UnsubscribeSettlementData(ctx context.Context)
- func (p *Perpetual) UnsubscribeTradingTerminated(ctx context.Context)
- func (p *Perpetual) Update(ctx context.Context, pp interface{}, oe OracleEngine) error
- func (p *Perpetual) UpdateAuctionState(ctx context.Context, enter bool)
- func (p *Perpetual) Value(markPrice *num.Uint) (*num.Uint, error)
- type Product
- type TimeService
Constants ¶
This section is empty.
Variables ¶
var ( // ErrDataSourceSpecAndBindingAreRequired is returned when the definition of the // data source spec or its binding is missing from the future definition. ErrDataSourceSpecAndBindingAreRequired = errors.New("a data source spec and spec binding are required") // ErrDataSourceSettlementDataNotSet is returned when the data source has not set the settlement data. ErrDataSourceSettlementDataNotSet = errors.New("settlement data is not set") // ErrSettlementDataDecimalsNotSupportedByAsset is returned when the decimal data decimal places // are more than the asset decimals. ErrSettlementDataDecimalsNotSupportedByAsset = errors.New("settlement data decimals not suported by market asset") )
var ( ErrDataPointAlreadyExistsAtTime = errors.New("data-point already exists at timestamp") ErrDataPointIsTooOld = errors.New("data-point is too old") )
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") )
var ErrNoStateProvidedForPerpsWithSnapshot = errors.New("no state provided to restore perps from a snapshot")
Functions ¶
func NewCachedTWAP ¶ added in v0.73.0
func NewCachedTWAPFromSnapshot ¶ added in v0.74.0
func NewCachedTWAPFromSnapshot( log *logging.Logger, t int64, auctions *auctionIntervals, state *snapshotpb.TWAPData, points []*snapshotpb.DataPoint, ) *cachedTWAP
Types ¶
type CompositePriceOracle ¶ added in v0.74.0
type CompositePriceOracle struct {
// contains filtered or unexported fields
}
func NewCompositePriceOracle ¶ added in v0.74.0
func NewCompositePriceOracle(ctx context.Context, oracleEngine OracleEngine, oracleSpec *datasource.Spec, binding *datasource.SpecBindingForCompositePrice, cb spec.OnMatchedData) (*CompositePriceOracle, error)
func (*CompositePriceOracle) GetDecimals ¶ added in v0.74.0
func (cpo *CompositePriceOracle) GetDecimals() int64
func (*CompositePriceOracle) UnsubAll ¶ added in v0.74.0
func (cpo *CompositePriceOracle) UnsubAll(ctx context.Context)
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 (Future) GetCurrentPeriod ¶ added in v0.73.0
func (*Future) GetMarginIncrease ¶ added in v0.73.0
func (*Future) IsTradingTerminated ¶
IsTradingTerminated - returns true when the oracle has signalled terminated market.
func (*Future) NotifyOnSettlementData ¶ added in v0.58.0
func (*Future) NotifyOnTradingTerminated ¶
func (*Future) RestoreSettlementData ¶ added in v0.68.0
func (*Future) ScaleSettlementDataToDecimalPlaces ¶ added in v0.58.0
func (*Future) Serialize ¶ added in v0.73.0
func (f *Future) Serialize() *snapshotpb.Product
func (*Future) Settle ¶
func (f *Future) Settle(entryPriceInAsset, settlementData *num.Uint, netFractionalPosition num.Decimal) (amt *types.FinancialAmount, neg bool, rounding num.Decimal, err error)
Settle a position against the future.
func (*Future) SubmitDataPoint ¶ added in v0.73.0
func (*Future) Unsubscribe ¶
func (*Future) UnsubscribeSettlementData ¶ added in v0.58.0
func (*Future) UnsubscribeTradingTerminated ¶ added in v0.55.0
func (*Future) Update ¶ added in v0.73.0
func (f *Future) Update(ctx context.Context, pp interface{}, oe OracleEngine) error
func (*Future) UpdateAuctionState ¶ added in v0.74.0
type OracleEngine ¶
type OracleEngine interface { ListensToSigners(dscommon.Data) bool Subscribe(context.Context, spec.Spec, spec.OnMatchedData) (spec.SubscriptionID, spec.Unsubscriber, error) Unsubscribe(context.Context, spec.SubscriptionID) }
OracleEngine ...
type Perpetual ¶ added in v0.73.0
type Perpetual struct {
// contains filtered or unexported fields
}
Perpetual represents a Perpetual as describe by the market framework.
func NewPerpetual ¶ added in v0.73.0
func NewPerpetualFromSnapshot ¶ added in v0.73.0
func NewPerpetualFromSnapshot( ctx context.Context, log *logging.Logger, p *types.Perps, marketID string, ts TimeService, oe OracleEngine, broker Broker, state *snapshotpb.Perps, assetDP uint32, ) (*Perpetual, error)
func (Perpetual) GetCurrentPeriod ¶ added in v0.73.0
func (*Perpetual) GetData ¶ added in v0.73.0
func (p *Perpetual) GetData(t int64) *types.ProductData
func (*Perpetual) GetMarginIncrease ¶ added in v0.73.0
GetMarginIncrease returns the estimated extra margin required to account for the next funding payment for a party with a position of +1.
func (*Perpetual) IsTradingTerminated ¶ added in v0.73.0
IsTradingTerminated - returns true when the oracle has signalled terminated market.
func (*Perpetual) NotifyOnSettlementData ¶ added in v0.73.0
NotifyOnSettlementData for a perpetual this will be the funding payment being sent to the listener.
func (*Perpetual) NotifyOnTradingTerminated ¶ added in v0.73.0
func (*Perpetual) RestoreSettlementData ¶ added in v0.73.0
func (*Perpetual) ScaleSettlementDataToDecimalPlaces ¶ added in v0.73.0
func (*Perpetual) Serialize ¶ added in v0.73.0
func (p *Perpetual) Serialize() *snapshotpb.Product
func (*Perpetual) Settle ¶ added in v0.73.0
func (p *Perpetual) Settle(entryPriceInAsset, settlementData *num.Uint, netFractionalPosition num.Decimal) (amt *types.FinancialAmount, neg bool, rounding num.Decimal, err error)
Settle a position against the perpetual.
func (*Perpetual) SubmitDataPoint ¶ added in v0.73.0
SubmitDataPoint this will add a data point produced internally by the core node.
func (*Perpetual) UnsubscribeSettlementData ¶ added in v0.73.0
func (*Perpetual) UnsubscribeTradingTerminated ¶ added in v0.73.0
func (*Perpetual) Update ¶ added in v0.73.0
func (p *Perpetual) Update(ctx context.Context, pp interface{}, oe OracleEngine) error
func (*Perpetual) UpdateAuctionState ¶ added in v0.74.0
type Product ¶
type Product interface { Settle(*num.Uint, *num.Uint, num.Decimal) (amt *types.FinancialAmount, neg bool, rounding num.Decimal, err error) Value(markPrice *num.Uint) (*num.Uint, error) GetAsset() string IsTradingTerminated() bool ScaleSettlementDataToDecimalPlaces(price *num.Numeric, dp uint32) (*num.Uint, error) NotifyOnTradingTerminated(listener func(context.Context, bool)) NotifyOnSettlementData(listener func(context.Context, *num.Numeric)) Update(ctx context.Context, pp interface{}, oe OracleEngine) error UnsubscribeTradingTerminated(ctx context.Context) UnsubscribeSettlementData(ctx context.Context) RestoreSettlementData(*num.Numeric) UpdateAuctionState(context.Context, bool) // tell the product about an internal data-point such as a the current mark-price SubmitDataPoint(context.Context, *num.Uint, int64) error // snapshot specific Serialize() *snapshotpb.Product GetMarginIncrease(int64) num.Decimal GetData(t int64) *types.ProductData GetCurrentPeriod() uint64 }
Product is the interface provided by all product in vega.
func New ¶
func New(ctx context.Context, log *logging.Logger, pp interface{}, marketID string, ts TimeService, oe OracleEngine, broker Broker, assetDP uint32) (Product, error)
New instance a new product from a Market framework product configuration.
func NewFromSnapshot ¶ added in v0.73.0
func NewFromSnapshot( ctx context.Context, log *logging.Logger, pp interface{}, marketID string, ts TimeService, oe OracleEngine, broker Broker, state *snapshotpb.Product, assetDP uint32, ) (Product, error)
New instance a new product from a Market framework product configuration.
type TimeService ¶ added in v0.74.2
TimeService ...