Documentation ¶
Index ¶
- Variables
- type LiquidityMonitor
- type Market
- func (m *Market) AmendLiquidityProvision(ctx context.Context, lpa *types.LiquidityProvisionAmendment, party string, ...) (err error)
- func (m *Market) AmendOrder(ctx context.Context, orderAmendment *types.OrderAmendment, party string, ...) (oc *types.OrderConfirmation, _ error)
- func (m *Market) AmendOrderWithIDGenerator(ctx context.Context, orderAmendment *types.OrderAmendment, party string, ...) (oc *types.OrderConfirmation, _ error)
- func (m *Market) BlockEnd(ctx context.Context)
- func (m *Market) BondPenaltyFactorUpdate(_ context.Context, d num.Decimal)
- func (m *Market) CanLeaveOpeningAuction() bool
- func (m *Market) CancelAllOrders(ctx context.Context, partyID string) ([]*types.OrderCancellationConfirmation, error)
- func (m *Market) CancelAllStopOrders(ctx context.Context, partyID string) error
- func (m *Market) CancelLiquidityProvision(ctx context.Context, cancel *types.LiquidityProvisionCancellation, ...) (err error)
- func (m *Market) CancelOrder(ctx context.Context, partyID, orderID string, deterministicID string) (oc *types.OrderCancellationConfirmation, _ error)
- func (m *Market) CancelOrderWithIDGenerator(ctx context.Context, partyID, orderID string, idgen common.IDGenerator) (oc *types.OrderCancellationConfirmation, _ error)
- func (m *Market) CancelStopOrder(ctx context.Context, partyID, orderID string) error
- func (m *Market) GetAssetForProposerBonus() string
- func (m *Market) GetCPState() *types.CPMarketState
- func (m *Market) GetEquityShares() *common.EquityShares
- func (m *Market) GetID() string
- func (m *Market) GetInsurancePoolFraction() num.Decimal
- func (m *Market) GetMarketCounters() *types.MarketCounters
- func (m *Market) GetMarketData() types.MarketData
- func (m *Market) GetMarketState() types.MarketState
- func (m *Market) GetNewStateProviders() []types.StateProvider
- func (m *Market) GetNextMTM() time.Time
- func (m *Market) GetParentMarketID() string
- func (m *Market) GetSettlementAsset() string
- func (m *Market) GetState() *types.ExecMarket
- func (m *Market) GetTotalLPShapeCount() uint64
- func (m *Market) GetTotalOpenPositionCount() uint64
- func (m *Market) GetTotalOrderBookLevelCount() uint64
- func (m *Market) GetTotalPeggedOrderCount() uint64
- func (m *Market) GetTotalStopOrderCount() uint64
- func (m *Market) Hash() []byte
- func (m *Market) InheritParent(ctx context.Context, pstate *types.CPMarketState)
- func (m *Market) IntoType() types.Market
- func (m *Market) IsSucceeded() bool
- func (m *Market) LoadCPState(state *types.CPMarketState)
- func (m *Market) Mkt() *types.Market
- func (m *Market) OnAuctionEnded()
- func (m *Market) OnEpochEvent(ctx context.Context, epoch types.Epoch)
- func (m *Market) OnEpochRestore(ctx context.Context, epoch types.Epoch)
- func (m *Market) OnFeeFactorsInfrastructureFeeUpdate(ctx context.Context, d num.Decimal)
- func (m *Market) OnFeeFactorsMakerFeeUpdate(ctx context.Context, d num.Decimal)
- func (m *Market) OnMarginScalingFactorsUpdate(ctx context.Context, sf *types.ScalingFactors) error
- func (m *Market) OnMarkPriceUpdateMaximumFrequency(ctx context.Context, d time.Duration)
- func (m *Market) OnMarketAuctionMinimumDurationUpdate(ctx context.Context, d time.Duration)
- func (m *Market) OnMarketLiquidityMaximumLiquidityFeeFactorLevelUpdate(d num.Decimal)
- func (m *Market) OnMarketLiquidityProvidersFeeDistribitionTimeStep(d time.Duration)
- func (m *Market) OnMarketLiquidityProvisionShapesMaxSizeUpdate(v int64) error
- func (m *Market) OnMarketLiquidityTargetStakeTriggeringRatio(ctx context.Context, d num.Decimal)
- func (m *Market) OnMarketMinLpStakeQuantumMultipleUpdate(_ context.Context, d num.Decimal)
- func (m *Market) OnMarketMinProbabilityOfTradingLPOrdersUpdate(_ context.Context, d num.Decimal)
- func (m *Market) OnMarketPartiesMaximumStopOrdersUpdate(ctx context.Context, u *num.Uint)
- func (m *Market) OnMarketProbabilityOfTradingTauScalingUpdate(_ context.Context, d num.Decimal)
- func (m *Market) OnMarketTargetStakeScalingFactorUpdate(d num.Decimal) error
- func (m *Market) OnMarketTargetStakeTimeWindowUpdate(d time.Duration)
- func (m *Market) OnMarketValueWindowLengthUpdate(d time.Duration)
- func (m *Market) OnOpeningAuctionFirstUncrossingPrice()
- func (m *Market) OnSuppliedStakeToObligationFactorUpdate(d num.Decimal)
- func (m *Market) OnTick(ctx context.Context, t time.Time) bool
- func (m *Market) PostRestore(ctx context.Context) error
- func (m *Market) Reject(ctx context.Context) error
- func (m *Market) ReloadConf(matchingConfig matching.Config, riskConfig risk.Config, ...)
- func (m *Market) ResetParentIDAndInsurancePoolFraction()
- func (m *Market) RestoreELS(ctx context.Context, pstate *types.CPMarketState)
- func (m *Market) RollbackInherit(ctx context.Context)
- func (m *Market) SetNextMTM(tm time.Time)
- func (m *Market) SetSucceeded()
- func (m *Market) SetSuccessorELS(state *types.CPMarketState)
- func (m *Market) StartOpeningAuction(ctx context.Context) error
- func (m *Market) StopSnapshots()
- func (m *Market) SubmitLiquidityProvision(ctx context.Context, sub *types.LiquidityProvisionSubmission, ...) (err error)
- func (m *Market) SubmitOrder(ctx context.Context, orderSubmission *types.OrderSubmission, party string, ...) (oc *types.OrderConfirmation, _ error)
- func (m *Market) SubmitOrderWithIDGeneratorAndOrderID(ctx context.Context, orderSubmission *types.OrderSubmission, party string, ...) (oc *types.OrderConfirmation, _ error)
- func (m *Market) SubmitStopOrdersWithIDGeneratorAndOrderIDs(ctx context.Context, submission *types.StopOrdersSubmission, party string, ...) (*types.OrderConfirmation, error)
- func (m *Market) Update(ctx context.Context, config *types.Market, oracleEngine products.OracleEngine) error
- func (m *Market) UpdateMarketState(ctx context.Context, changes *types.MarketStateUpdateConfiguration) error
- type TargetStakeCalculator
Constants ¶
This section is empty.
Variables ¶
var ErrBondSlashing = errors.New("bond slashing")
ErrBondSlashing - just indicates that we had to penalize the party due to insufficient funds, and as such, we have to cancel their LP.
var ErrCommitmentAmountTooLow = errors.New("commitment amount is too low")
Functions ¶
This section is empty.
Types ¶
type LiquidityMonitor ¶
type LiquidityMonitor interface { CheckLiquidity(as lmon.AuctionState, t time.Time, currentStake *num.Uint, trades []*types.Trade, rf types.RiskFactor, markPrice *num.Uint, bestStaticBidVolume, bestStaticAskVolume uint64, persistent bool) bool SetMinDuration(d time.Duration) UpdateTargetStakeTriggerRatio(ctx context.Context, ratio num.Decimal) UpdateParameters(*types.LiquidityMonitoringParameters) }
LiquidityMonitor.
type Market ¶
type Market struct {
// contains filtered or unexported fields
}
Market represents an instance of a market in vega and is in charge of calling the engines in order to process all transactions.
func NewMarket ¶
func NewMarket( ctx context.Context, log *logging.Logger, riskConfig risk.Config, positionConfig positions.Config, settlementConfig settlement.Config, matchingConfig matching.Config, feeConfig fee.Config, liquidityConfig liquidity.Config, collateralEngine common.Collateral, oracleEngine products.OracleEngine, mkt *types.Market, timeService common.TimeService, broker common.Broker, as *monitor.AuctionState, stateVarEngine common.StateVarEngine, marketActivityTracker *common.MarketActivityTracker, assetDetails *assets.Asset, peggedOrderNotify func(int64), ) (*Market, error)
NewMarket creates a new market using the market framework configuration and creates underlying engines.
func NewMarketFromSnapshot ¶
func NewMarketFromSnapshot( ctx context.Context, log *logging.Logger, em *types.ExecMarket, riskConfig risk.Config, positionConfig positions.Config, settlementConfig settlement.Config, matchingConfig matching.Config, feeConfig fee.Config, liquidityConfig liquidity.Config, collateralEngine common.Collateral, oracleEngine products.OracleEngine, timeService common.TimeService, broker common.Broker, stateVarEngine common.StateVarEngine, assetDetails *assets.Asset, marketActivityTracker *common.MarketActivityTracker, peggedOrderNotify func(int64), ) (*Market, error)
func (*Market) AmendLiquidityProvision ¶
func (m *Market) AmendLiquidityProvision(ctx context.Context, lpa *types.LiquidityProvisionAmendment, party string, deterministicID string) (err error)
AmendLiquidityProvision forwards a LiquidityProvisionAmendment to the Liquidity Engine.
func (*Market) AmendOrder ¶
func (m *Market) AmendOrder( ctx context.Context, orderAmendment *types.OrderAmendment, party string, deterministicID string, ) (oc *types.OrderConfirmation, _ error, )
AmendOrder amend an existing order from the order book.
func (*Market) AmendOrderWithIDGenerator ¶
func (m *Market) AmendOrderWithIDGenerator( ctx context.Context, orderAmendment *types.OrderAmendment, party string, idgen common.IDGenerator, ) (oc *types.OrderConfirmation, _ error, )
func (*Market) BondPenaltyFactorUpdate ¶
func (*Market) CanLeaveOpeningAuction ¶
CanLeaveOpeningAuction checks if the market can leave the opening auction based on whether floating point consensus has been reached on all 3 vars.
func (*Market) CancelAllOrders ¶
func (*Market) CancelAllStopOrders ¶
func (*Market) CancelLiquidityProvision ¶
func (m *Market) CancelLiquidityProvision(ctx context.Context, cancel *types.LiquidityProvisionCancellation, party string) (err error)
CancelLiquidityProvision forwards a LiquidityProvisionCancel to the Liquidity Engine.
func (*Market) CancelOrder ¶
func (*Market) CancelOrderWithIDGenerator ¶
func (m *Market) CancelOrderWithIDGenerator( ctx context.Context, partyID, orderID string, idgen common.IDGenerator, ) (oc *types.OrderCancellationConfirmation, _ error)
func (*Market) CancelStopOrder ¶
func (*Market) GetAssetForProposerBonus ¶ added in v0.73.0
func (*Market) GetCPState ¶
func (m *Market) GetCPState() *types.CPMarketState
func (*Market) GetEquityShares ¶
func (m *Market) GetEquityShares() *common.EquityShares
func (*Market) GetInsurancePoolFraction ¶
func (*Market) GetMarketCounters ¶ added in v0.73.0
func (m *Market) GetMarketCounters() *types.MarketCounters
func (*Market) GetMarketData ¶
func (m *Market) GetMarketData() types.MarketData
func (*Market) GetMarketState ¶
func (m *Market) GetMarketState() types.MarketState
func (*Market) GetNewStateProviders ¶
func (m *Market) GetNewStateProviders() []types.StateProvider
func (*Market) GetNextMTM ¶
func (*Market) GetParentMarketID ¶
func (*Market) GetSettlementAsset ¶
func (*Market) GetState ¶
func (m *Market) GetState() *types.ExecMarket
func (*Market) GetTotalLPShapeCount ¶
GetTotalLPShapeCount returns the total number of LP shapes.
func (*Market) GetTotalOpenPositionCount ¶
GetTotalOpenPositionCount returns the total number of open positions.
func (*Market) GetTotalOrderBookLevelCount ¶
GetTotalOrderBookLevelCount returns the total number of levels in the order book.
func (*Market) GetTotalPeggedOrderCount ¶
GetTotalPeggedOrderCount returns the total number of pegged orders.
func (*Market) GetTotalStopOrderCount ¶
GetTotalStopOrderCount returns the total number of stop orders.
func (*Market) InheritParent ¶
func (m *Market) InheritParent(ctx context.Context, pstate *types.CPMarketState)
func (*Market) IsSucceeded ¶
func (*Market) LoadCPState ¶
func (m *Market) LoadCPState(state *types.CPMarketState)
func (*Market) OnAuctionEnded ¶
func (m *Market) OnAuctionEnded()
OnAuctionEnded is called whenever an auction is ended and emits an event to the state var engine.
func (*Market) OnEpochEvent ¶ added in v0.73.0
func (*Market) OnEpochRestore ¶ added in v0.73.0
func (*Market) OnFeeFactorsInfrastructureFeeUpdate ¶
func (*Market) OnFeeFactorsMakerFeeUpdate ¶
func (*Market) OnMarginScalingFactorsUpdate ¶
func (*Market) OnMarkPriceUpdateMaximumFrequency ¶
func (*Market) OnMarketAuctionMinimumDurationUpdate ¶
func (*Market) OnMarketLiquidityMaximumLiquidityFeeFactorLevelUpdate ¶
func (*Market) OnMarketLiquidityProvidersFeeDistribitionTimeStep ¶
func (*Market) OnMarketLiquidityProvisionShapesMaxSizeUpdate ¶
func (*Market) OnMarketLiquidityTargetStakeTriggeringRatio ¶
func (*Market) OnMarketMinLpStakeQuantumMultipleUpdate ¶
func (*Market) OnMarketMinProbabilityOfTradingLPOrdersUpdate ¶
func (*Market) OnMarketPartiesMaximumStopOrdersUpdate ¶
func (*Market) OnMarketProbabilityOfTradingTauScalingUpdate ¶
func (*Market) OnMarketTargetStakeScalingFactorUpdate ¶
func (*Market) OnMarketTargetStakeTimeWindowUpdate ¶
func (*Market) OnMarketValueWindowLengthUpdate ¶
func (*Market) OnOpeningAuctionFirstUncrossingPrice ¶
func (m *Market) OnOpeningAuctionFirstUncrossingPrice()
OnOpeningAuctionFirstUncrossingPrice is triggered when the opening auction sees an uncrossing price for the first time and emits an event to the state variable engine.
func (*Market) OnSuppliedStakeToObligationFactorUpdate ¶
func (*Market) OnTick ¶
OnTick notifies the market of a new time event/update. todo: make this a more generic function name e.g. OnTimeUpdateEvent
func (*Market) ReloadConf ¶
func (m *Market) ReloadConf( matchingConfig matching.Config, riskConfig risk.Config, positionConfig positions.Config, settlementConfig settlement.Config, feeConfig fee.Config, )
ReloadConf will trigger a reload of all the config settings in the market and all underlying engines this is required when hot-reloading any config changes, eg. logger level.
func (*Market) ResetParentIDAndInsurancePoolFraction ¶
func (m *Market) ResetParentIDAndInsurancePoolFraction()
func (*Market) RestoreELS ¶
func (m *Market) RestoreELS(ctx context.Context, pstate *types.CPMarketState)
func (*Market) RollbackInherit ¶
func (*Market) SetNextMTM ¶
func (*Market) SetSucceeded ¶
func (m *Market) SetSucceeded()
func (*Market) SetSuccessorELS ¶
func (m *Market) SetSuccessorELS(state *types.CPMarketState)
func (*Market) StartOpeningAuction ¶
func (*Market) StopSnapshots ¶
func (m *Market) StopSnapshots()
func (*Market) SubmitLiquidityProvision ¶
func (m *Market) SubmitLiquidityProvision( ctx context.Context, sub *types.LiquidityProvisionSubmission, party, deterministicID string, ) (err error, )
SubmitLiquidityProvision forwards a LiquidityProvisionSubmission to the Liquidity Engine.
func (*Market) SubmitOrder ¶
func (m *Market) SubmitOrder( ctx context.Context, orderSubmission *types.OrderSubmission, party string, deterministicID string, ) (oc *types.OrderConfirmation, _ error)
SubmitOrder submits the given order.
func (*Market) SubmitOrderWithIDGeneratorAndOrderID ¶
func (m *Market) SubmitOrderWithIDGeneratorAndOrderID( ctx context.Context, orderSubmission *types.OrderSubmission, party string, idgen common.IDGenerator, orderID string, checkForTriggers bool, ) (oc *types.OrderConfirmation, _ error)
SubmitOrder submits the given order.
func (*Market) SubmitStopOrdersWithIDGeneratorAndOrderIDs ¶
func (m *Market) SubmitStopOrdersWithIDGeneratorAndOrderIDs( ctx context.Context, submission *types.StopOrdersSubmission, party string, idgen common.IDGenerator, fallsBelowID, risesAboveID *string, ) (*types.OrderConfirmation, error)
func (*Market) UpdateMarketState ¶ added in v0.73.0
type TargetStakeCalculator ¶
type TargetStakeCalculator interface { types.StateProvider RecordOpenInterest(oi uint64, now time.Time) error GetTargetStake(rf types.RiskFactor, now time.Time, markPrice *num.Uint) *num.Uint GetTheoreticalTargetStake(rf types.RiskFactor, now time.Time, markPrice *num.Uint, trades []*types.Trade) *num.Uint UpdateScalingFactor(sFactor num.Decimal) error UpdateTimeWindow(tWindow time.Duration) StopSnapshots() UpdateParameters(types.TargetStakeParameters) }
TargetStakeCalculator interface.