From abe3f60e174898a2ccbebd48b81fa4099332ea45 Mon Sep 17 00:00:00 2001 From: Jeremy Letang Date: Thu, 2 May 2024 17:05:27 +0100 Subject: [PATCH 1/2] feat: allow market proposals to override risk factors Signed-off-by: Jeremy Letang --- CHANGELOG.md | 5 +- commands/proposal_submission.go | 54 + .../proposal_submission_new_market_test.go | 125 ++ .../proposal_submission_update_market_test.go | 124 ++ core/risk/models/lognormal.go | 27 +- core/types/governance_new_market.go | 8 + core/types/governance_update_market.go | 9 + core/types/risk.go | 44 + protos/sources/vega/markets.proto | 10 + protos/vega/markets.pb.go | 1025 +++++++++-------- 10 files changed, 962 insertions(+), 469 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ba617a2a60..32c3c7c82ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,11 +14,13 @@ - [11209](https://github.com/vegaprotocol/vega/issues/11209) - Publish ongoing games data. - [11196](https://github.com/vegaprotocol/vega/issues/11196) - Add an active field in the price monitoring bounds payload. +- [11211](https://github.com/vegaprotocol/vega/issues/11211) - Liquidation engine includes `vAMM` shapes as available volume. +- [11217](https://github.com/vegaprotocol/vega/issues/11217) - Allow market proposals to override risk factors. ### 🐛 Fixes - [11066](https://github.com/vegaprotocol/vega/issues/11066) - Ensure vesting statistics match vesting accounts numbers. -- [11279](https://github.com/vegaprotocol/vega/issues/11279) - Handle properly the case of multiple transfers for the same game id. +- [11279](https://github.com/vegaprotocol/vega/issues/11279) - Handle properly the case of multiple transfers for the same game id. ## 0.76.1 @@ -67,7 +69,6 @@ - [11143](https://github.com/vegaprotocol/vega/issues/11143) - Add support for new asset proposal in batch governance proposal - [11182](https://github.com/vegaprotocol/vega/issues/11182) - Remove reduce only restriction on spot markets stop orders. - [11153](https://github.com/vegaprotocol/vega/issues/11153) - Add check on start-up that bridge `RPC-endpoints` are functional. -- [11211](https://github.com/vegaprotocol/vega/issues/11211) - Liquidation engine includes `vAMM` shapes as available volume. ### 🐛 Fixes diff --git a/commands/proposal_submission.go b/commands/proposal_submission.go index 917ca2d934e..197c53e938c 100644 --- a/commands/proposal_submission.go +++ b/commands/proposal_submission.go @@ -2276,6 +2276,33 @@ func checkNewLogNormalRiskParameters(params *protoTypes.NewMarketConfiguration_L return errs.FinalAddForProperty("new_market.changes.risk_parameters.log_normal.params.r", errors.New("must be between [-1,1]")) } + // if not nil, both short and long must be specified and correct + if params.LogNormal.RiskFactorOverride != nil { + short := params.LogNormal.RiskFactorOverride.Short + long := params.LogNormal.RiskFactorOverride.Long + if len(short) <= 0 { + return errs.FinalAddForProperty("new_market.changes.risk_parameters.log_normal.risk_factor_override.short", ErrIsRequired) + } + + d, err := num.DecimalFromString(short) + if err != nil { + errs.AddForProperty("new_market.changes.risk_parameters.log_normal.risk_factor_override.short", ErrIsNotValidNumber) + } else if d.LessThanOrEqual(num.DecimalZero()) { + errs.AddForProperty("new_market.changes.risk_parameters.log_normal.risk_factor_override.short", ErrMustBePositive) + } + + if len(long) <= 0 { + return errs.FinalAddForProperty("new_market.changes.risk_parameters.log_normal.risk_factor_override.long", ErrIsRequired) + } + + d, err = num.DecimalFromString(long) + if err != nil { + errs.AddForProperty("new_market.changes.risk_parameters.log_normal.risk_factor_override.long", ErrIsNotValidNumber) + } else if d.LessThanOrEqual(num.DecimalZero()) { + errs.AddForProperty("new_market.changes.risk_parameters.log_normal.risk_factor_override.long", ErrMustBePositive) + } + } + return errs } @@ -2314,6 +2341,33 @@ func checkUpdateLogNormalRiskParameters(params *protoTypes.UpdateMarketConfigura return errs.FinalAddForProperty("update_market.changes.risk_parameters.log_normal.params.r", ErrIsNotValidNumber) } + // if not nil, both short and long must be specified and correct + if params.LogNormal.RiskFactorOverride != nil { + short := params.LogNormal.RiskFactorOverride.Short + long := params.LogNormal.RiskFactorOverride.Long + if len(short) <= 0 { + errs.AddForProperty("update_market.changes.risk_parameters.log_normal.risk_factor_override.short", ErrIsRequired) + } + + d, err := num.DecimalFromString(short) + if err != nil { + errs.AddForProperty("update_market.changes.risk_parameters.log_normal.risk_factor_override.short", ErrIsNotValidNumber) + } else if d.LessThanOrEqual(num.DecimalZero()) { + errs.AddForProperty("update_market.changes.risk_parameters.log_normal.risk_factor_override.short", ErrMustBePositive) + } + + if len(long) <= 0 { + errs.AddForProperty("update_market.changes.risk_parameters.log_normal.risk_factor_override.long", ErrIsRequired) + } + + d, err = num.DecimalFromString(long) + if err != nil { + errs.AddForProperty("update_market.changes.risk_parameters.log_normal.risk_factor_override.long", ErrIsNotValidNumber) + } else if d.LessThanOrEqual(num.DecimalZero()) { + errs.AddForProperty("update_market.changes.risk_parameters.log_normal.risk_factor_override.long", ErrMustBePositive) + } + } + return errs } diff --git a/commands/proposal_submission_new_market_test.go b/commands/proposal_submission_new_market_test.go index 461e5e9a102..8e0cdd31516 100644 --- a/commands/proposal_submission_new_market_test.go +++ b/commands/proposal_submission_new_market_test.go @@ -189,6 +189,8 @@ func TestCheckProposalSubmissionForNewMarket(t *testing.T) { t.Run("Submitting a new spot market with invalid liquidity fee settings", testLiquidityFeeSettingsSpot) t.Run("Submitting a new market with invalid mark price configuration ", testCompositePriceConfiguration) t.Run("Submitting a new market with invalid tick size fails and with valid tick size succeeds", testNewMarketTickSize) + + t.Run("Log Normal risk factor overrides", testNewLogNormalRiskParametersChangeSubmissionWithOverrides) } type tickSizeCase struct { @@ -2497,6 +2499,129 @@ func testNewLogNormalRiskParametersChangeSubmissionWithLogNormalRiskParametersSu assert.NotContains(t, err.Get("proposal_submission.terms.change.new_market.changes.risk_parameters.log_normal"), commands.ErrIsRequired) } +func testNewLogNormalRiskParametersChangeSubmissionWithOverrides(t *testing.T) { + cases := []struct { + desc string + get string + override *vegapb.RiskFactorOverride + err string + }{ + { + desc: "no override is valid", + get: "proposal_submission.terms.change.new_market.changes.risk_parameters.log_normal.risk_factor_override", + override: nil, + err: "", + }, + { + desc: "non nil, but with empty short", + get: "proposal_submission.terms.change.new_market.changes.risk_parameters.log_normal.risk_factor_override.short", + override: &vegapb.RiskFactorOverride{}, + err: "is required", + }, + { + desc: "non nil, but with bad value short", + get: "proposal_submission.terms.change.new_market.changes.risk_parameters.log_normal.risk_factor_override.short", + override: &vegapb.RiskFactorOverride{ + Short: "asd", + }, + err: "is not a valid number", + }, + { + desc: "non nil, but with negative short", + get: "proposal_submission.terms.change.new_market.changes.risk_parameters.log_normal.risk_factor_override.short", + override: &vegapb.RiskFactorOverride{ + Short: "-1", + }, + err: "must be positive", + }, + { + desc: "non nil, but with 0 short", + get: "proposal_submission.terms.change.new_market.changes.risk_parameters.log_normal.risk_factor_override.short", + override: &vegapb.RiskFactorOverride{ + Short: "0", + }, + err: "must be positive", + }, + { + desc: "non nil, but with empty long", + get: "proposal_submission.terms.change.new_market.changes.risk_parameters.log_normal.risk_factor_override.long", + override: &vegapb.RiskFactorOverride{ + Short: "0.1", + }, + err: "is required", + }, + { + desc: "non nil, but with bad value long", + get: "proposal_submission.terms.change.new_market.changes.risk_parameters.log_normal.risk_factor_override.long", + override: &vegapb.RiskFactorOverride{ + Short: "0.1", + Long: "asd", + }, + err: "is not a valid number", + }, + { + desc: "non nil, but with negative long", + get: "proposal_submission.terms.change.new_market.changes.risk_parameters.log_normal.risk_factor_override.long", + override: &vegapb.RiskFactorOverride{ + Short: "0.1", + Long: "-1", + }, + err: "must be positive", + }, + { + desc: "non nil, but with 0 long", + get: "proposal_submission.terms.change.new_market.changes.risk_parameters.log_normal.risk_factor_override.long", + override: &vegapb.RiskFactorOverride{ + Short: "0.1", + Long: "0", + }, + err: "must be positive", + }, + { + desc: "both valid", + get: "proposal_submission.terms.change.new_market.changes.risk_parameters.log_normal.risk_factor_override", + override: &vegapb.RiskFactorOverride{ + Short: "0.1", + Long: "0.1", + }, + err: "", + }, + } + + for _, c := range cases { + err := checkProposalSubmission(&commandspb.ProposalSubmission{ + Terms: &vegapb.ProposalTerms{ + Change: &vegapb.ProposalTerms_NewMarket{ + NewMarket: &vegapb.NewMarket{ + Changes: &vegapb.NewMarketConfiguration{ + RiskParameters: &vegapb.NewMarketConfiguration_LogNormal{ + LogNormal: &vegapb.LogNormalRiskModel{ + RiskAversionParameter: 0.1, + Tau: 1, + Params: &vegapb.LogNormalModelParams{ + Mu: 0, + Sigma: 0.1, + R: 0, + }, + RiskFactorOverride: c.override, + }, + }, + }, + }, + }, + }, + }) + + if len(c.err) <= 0 { + // no error + assert.Len(t, err.Get(c.get), 0, c.desc) + continue + } + + assert.Contains(t, err.Get(c.get), errors.New(c.err), "test: %v, err: %v", c.desc, err) + } +} + func testNewLogNormalRiskParametersChangeSubmissionWithoutParamsFails(t *testing.T) { err := checkProposalSubmission(&commandspb.ProposalSubmission{ Terms: &vegapb.ProposalTerms{ diff --git a/commands/proposal_submission_update_market_test.go b/commands/proposal_submission_update_market_test.go index 2539561c0ab..e3fa5b44aa2 100644 --- a/commands/proposal_submission_update_market_test.go +++ b/commands/proposal_submission_update_market_test.go @@ -139,6 +139,7 @@ func TestCheckProposalSubmissionForUpdateMarket(t *testing.T) { t.Run("Submitting a market update with invalid intenal composite price configuration", testUpdatePerpsMarketChangeSubmissionWithInternalCompositePriceConfig) t.Run("Submitting a market update with invalid tick size fails and valid tick size succeeds", testUpdateMarketTickSize) t.Run("Submitting a spot market update with invalid liquifity fee settings", testUpdateLiquidityFeeSettingsSpot) + t.Run("Update Log Normal with overrides", testUpdateLogNormalRiskParametersChangeSubmissionWithOverrides) } func testUpdateMarketTickSize(t *testing.T) { @@ -2184,6 +2185,129 @@ func testUpdateSimpleRiskParametersChangeSubmissionWithRightProbabilityOfTrading } } +func testUpdateLogNormalRiskParametersChangeSubmissionWithOverrides(t *testing.T) { + cases := []struct { + desc string + get string + override *vegapb.RiskFactorOverride + err string + }{ + { + desc: "no override is valid", + get: "proposal_submission.terms.change.update_market.changes.risk_parameters.log_normal.risk_factor_override", + override: nil, + err: "", + }, + { + desc: "non nil, but with empty short", + get: "proposal_submission.terms.change.update_market.changes.risk_parameters.log_normal.risk_factor_override.short", + override: &vegapb.RiskFactorOverride{}, + err: "is required", + }, + { + desc: "non nil, but with bad value short", + get: "proposal_submission.terms.change.update_market.changes.risk_parameters.log_normal.risk_factor_override.short", + override: &vegapb.RiskFactorOverride{ + Short: "asd", + }, + err: "is not a valid number", + }, + { + desc: "non nil, but with negative short", + get: "proposal_submission.terms.change.update_market.changes.risk_parameters.log_normal.risk_factor_override.short", + override: &vegapb.RiskFactorOverride{ + Short: "-1", + }, + err: "must be positive", + }, + { + desc: "non nil, but with 0 short", + get: "proposal_submission.terms.change.update_market.changes.risk_parameters.log_normal.risk_factor_override.short", + override: &vegapb.RiskFactorOverride{ + Short: "0", + }, + err: "must be positive", + }, + { + desc: "non nil, but with empty long", + get: "proposal_submission.terms.change.update_market.changes.risk_parameters.log_normal.risk_factor_override.long", + override: &vegapb.RiskFactorOverride{ + Short: "0.1", + }, + err: "is required", + }, + { + desc: "non nil, but with bad value long", + get: "proposal_submission.terms.change.update_market.changes.risk_parameters.log_normal.risk_factor_override.long", + override: &vegapb.RiskFactorOverride{ + Short: "0.1", + Long: "asd", + }, + err: "is not a valid number", + }, + { + desc: "non nil, but with negative long", + get: "proposal_submission.terms.change.update_market.changes.risk_parameters.log_normal.risk_factor_override.long", + override: &vegapb.RiskFactorOverride{ + Short: "0.1", + Long: "-1", + }, + err: "must be positive", + }, + { + desc: "non nil, but with 0 long", + get: "proposal_submission.terms.change.update_market.changes.risk_parameters.log_normal.risk_factor_override.long", + override: &vegapb.RiskFactorOverride{ + Short: "0.1", + Long: "0", + }, + err: "must be positive", + }, + { + desc: "both valid", + get: "proposal_submission.terms.change.update_market.changes.risk_parameters.log_normal.risk_factor_override", + override: &vegapb.RiskFactorOverride{ + Short: "0.1", + Long: "0.1", + }, + err: "", + }, + } + + for _, c := range cases { + err := checkProposalSubmission(&commandspb.ProposalSubmission{ + Terms: &vegapb.ProposalTerms{ + Change: &vegapb.ProposalTerms_UpdateMarket{ + UpdateMarket: &vegapb.UpdateMarket{ + Changes: &vegapb.UpdateMarketConfiguration{ + RiskParameters: &vegapb.UpdateMarketConfiguration_LogNormal{ + LogNormal: &vegapb.LogNormalRiskModel{ + RiskAversionParameter: 0.1, + Tau: 1, + Params: &vegapb.LogNormalModelParams{ + Mu: 0, + Sigma: 0.1, + R: 0, + }, + RiskFactorOverride: c.override, + }, + }, + }, + }, + }, + }, + }) + + if len(c.err) <= 0 { + // no error + assert.Len(t, err.Get(c.get), 0, c.desc) + continue + } + + assert.Contains(t, err.Get(c.get), errors.New(c.err), "test: %v, err: %v", c.desc, err) + } +} + func testUpdateLogNormalRiskParametersChangeSubmissionWithoutLogNormalRiskParametersFails(t *testing.T) { err := checkProposalSubmission(&commandspb.ProposalSubmission{ Terms: &protoTypes.ProposalTerms{ diff --git a/core/risk/models/lognormal.go b/core/risk/models/lognormal.go index 1c91bdaaf38..6d1a213c0fc 100644 --- a/core/risk/models/lognormal.go +++ b/core/risk/models/lognormal.go @@ -34,6 +34,7 @@ type LogNormal struct { riskAversionParameter, tau num.Decimal params riskmodelbs.ModelParamsBS asset string + RiskFactorOverride *types.RiskFactorOverride distCache interfaces.AnalyticalDistribution cachePrice num.Decimal @@ -49,6 +50,15 @@ func NewBuiltinFutures(pf *types.LogNormalRiskModel, asset string) (*LogNormal, mu, _ := pf.Params.Mu.Float64() r, _ := pf.Params.R.Float64() sigma, _ := pf.Params.Sigma.Float64() + + var override *types.RiskFactorOverride + if pf.RiskFactorOverride != nil { + override = &types.RiskFactorOverride{ + Short: pf.RiskFactorOverride.Short, + Long: pf.RiskFactorOverride.Long, + } + } + return &LogNormal{ riskAversionParameter: pf.RiskAversionParameter, tau: pf.Tau, @@ -58,13 +68,21 @@ func NewBuiltinFutures(pf *types.LogNormalRiskModel, asset string) (*LogNormal, R: r, Sigma: sigma, }, - asset: asset, + RiskFactorOverride: override, + asset: asset, }, nil } // CalculateRiskFactors calls the risk model in order to get // the new risk models. func (f *LogNormal) CalculateRiskFactors() *types.RiskFactor { + if f.RiskFactorOverride != nil { + return &types.RiskFactor{ + Long: f.RiskFactorOverride.Long, + Short: f.RiskFactorOverride.Short, + } + } + rav, _ := f.riskAversionParameter.Float64() tau, _ := f.tau.Float64() rawrf := riskmodelbs.RiskFactorsForward(rav, tau, f.params) @@ -112,6 +130,13 @@ func (f *LogNormal) GetProjectionHorizon() num.Decimal { } func (f *LogNormal) DefaultRiskFactors() *types.RiskFactor { + if f.RiskFactorOverride != nil { + return &types.RiskFactor{ + Long: f.RiskFactorOverride.Long, + Short: f.RiskFactorOverride.Short, + } + } + return &types.RiskFactor{ Short: num.DecimalFromFloat(1), Long: num.DecimalFromFloat(1), diff --git a/core/types/governance_new_market.go b/core/types/governance_new_market.go index 7443bceaf64..ddb553369eb 100644 --- a/core/types/governance_new_market.go +++ b/core/types/governance_new_market.go @@ -741,11 +741,19 @@ func (n NewMarketConfigurationLogNormal) String() string { } func NewMarketConfigurationLogNormalFromProto(p *vegapb.NewMarketConfiguration_LogNormal) *NewMarketConfigurationLogNormal { + var override *RiskFactorOverride + if p.LogNormal.RiskFactorOverride != nil { + override = &RiskFactorOverride{ + Short: num.MustDecimalFromString(p.LogNormal.RiskFactorOverride.Short), + Long: num.MustDecimalFromString(p.LogNormal.RiskFactorOverride.Long), + } + } return &NewMarketConfigurationLogNormal{ LogNormal: &LogNormalRiskModel{ RiskAversionParameter: num.DecimalFromFloat(p.LogNormal.RiskAversionParameter), Tau: num.DecimalFromFloat(p.LogNormal.Tau), Params: LogNormalParamsFromProto(p.LogNormal.Params), + RiskFactorOverride: override, }, } } diff --git a/core/types/governance_update_market.go b/core/types/governance_update_market.go index ecb13a7f146..748591ca072 100644 --- a/core/types/governance_update_market.go +++ b/core/types/governance_update_market.go @@ -738,11 +738,20 @@ func (n UpdateMarketConfigurationLogNormal) IntoProto() *vegapb.UpdateMarketConf } func UpdateMarketConfigurationLogNormalFromProto(p *vegapb.UpdateMarketConfiguration_LogNormal) *UpdateMarketConfigurationLogNormal { + // ignore validation as it's been validated down the line + var override *RiskFactorOverride + if p.LogNormal.RiskFactorOverride != nil { + override = &RiskFactorOverride{ + Short: num.MustDecimalFromString(p.LogNormal.RiskFactorOverride.Short), + Long: num.MustDecimalFromString(p.LogNormal.RiskFactorOverride.Long), + } + } return &UpdateMarketConfigurationLogNormal{ LogNormal: &LogNormalRiskModel{ RiskAversionParameter: num.DecimalFromFloat(p.LogNormal.RiskAversionParameter), Tau: num.DecimalFromFloat(p.LogNormal.Tau), Params: LogNormalParamsFromProto(p.LogNormal.Params), + RiskFactorOverride: override, }, } } diff --git a/core/types/risk.go b/core/types/risk.go index f8475c31868..76dd700804f 100644 --- a/core/types/risk.go +++ b/core/types/risk.go @@ -23,6 +23,11 @@ import ( proto "code.vegaprotocol.io/vega/protos/vega" ) +type RiskFactorOverride struct { + Short num.Decimal + Long num.Decimal +} + type LogNormalModelParams struct { Mu num.Decimal R num.Decimal @@ -33,6 +38,8 @@ type LogNormalRiskModel struct { RiskAversionParameter num.Decimal Tau num.Decimal Params *LogNormalModelParams + // nil if no override + RiskFactorOverride *RiskFactorOverride } func (l LogNormalModelParams) IntoProto() *proto.LogNormalModelParams { @@ -70,10 +77,18 @@ func (l LogNormalRiskModel) IntoProto() *proto.LogNormalRiskModel { if l.Params != nil { params = l.Params.IntoProto() } + var riskFactorOverride *proto.RiskFactorOverride + if l.RiskFactorOverride != nil { + riskFactorOverride = &proto.RiskFactorOverride{ + Short: l.RiskFactorOverride.Short.String(), + Long: l.RiskFactorOverride.Long.String(), + } + } return &proto.LogNormalRiskModel{ RiskAversionParameter: ra, Tau: t, Params: params, + RiskFactorOverride: riskFactorOverride, } } @@ -85,6 +100,12 @@ func (l LogNormalRiskModel) DeepClone() *LogNormalRiskModel { if l.Params != nil { cpy.Params = l.Params.DeepClone() } + if l.RiskFactorOverride != nil { + cpy.RiskFactorOverride = &RiskFactorOverride{ + Short: l.RiskFactorOverride.Short, + Long: l.RiskFactorOverride.Long, + } + } return &cpy } @@ -138,6 +159,20 @@ func (t TradableInstrumentLogNormalRiskModel) Equal(trm isTRM) bool { if !t.LogNormalRiskModel.Tau.Equal(ct.LogNormalRiskModel.Tau) || !t.LogNormalRiskModel.RiskAversionParameter.Equal(ct.LogNormalRiskModel.RiskAversionParameter) { return false } + + if t.LogNormalRiskModel.RiskFactorOverride != nil { + if ct.LogNormalRiskModel.RiskFactorOverride == nil { + return false + } + + if !t.LogNormalRiskModel.RiskFactorOverride.Short.Equal(ct.LogNormalRiskModel.RiskFactorOverride.Short) || + !t.LogNormalRiskModel.RiskFactorOverride.Long.Equal(ct.LogNormalRiskModel.RiskFactorOverride.Long) { + return false + } + } else if ct.LogNormalRiskModel.RiskFactorOverride != nil { + return false + } + // check params p, cp := t.LogNormalRiskModel.Params, ct.LogNormalRiskModel.Params // check if all params match @@ -326,11 +361,20 @@ func TradableInstrumentLogNormalFromProto(p *proto.TradableInstrument_LogNormalR if p == nil { return nil } + var override *RiskFactorOverride + if p.LogNormalRiskModel.RiskFactorOverride != nil { + override = &RiskFactorOverride{ + Short: num.MustDecimalFromString(p.LogNormalRiskModel.RiskFactorOverride.Short), + Long: num.MustDecimalFromString(p.LogNormalRiskModel.RiskFactorOverride.Long), + } + } + return &TradableInstrumentLogNormalRiskModel{ LogNormalRiskModel: &LogNormalRiskModel{ RiskAversionParameter: num.DecimalFromFloat(p.LogNormalRiskModel.RiskAversionParameter), Tau: num.DecimalFromFloat(p.LogNormalRiskModel.Tau), Params: LogNormalParamsFromProto(p.LogNormalRiskModel.Params), + RiskFactorOverride: override, }, } } diff --git a/protos/sources/vega/markets.proto b/protos/sources/vega/markets.proto index 686a0c68c48..ee529d28fab 100644 --- a/protos/sources/vega/markets.proto +++ b/protos/sources/vega/markets.proto @@ -132,6 +132,16 @@ message LogNormalRiskModel { double tau = 2; // Risk model parameters for log normal. LogNormalModelParams params = 3; + // And optional override for the risk factor calculated by the risk model. + optional RiskFactorOverride risk_factor_override = 4; +} + +// Risk factor override to control stable leverage +message RiskFactorOverride { + // Short Risk factor value. + string short = 1; + // Long Risk factor value. + string long = 2; } // Risk model parameters for log normal diff --git a/protos/vega/markets.pb.go b/protos/vega/markets.pb.go index 880f8d2fd6b..9dffbde984a 100644 --- a/protos/vega/markets.pb.go +++ b/protos/vega/markets.pb.go @@ -127,7 +127,7 @@ func (x LiquidityFeeSettings_Method) Number() protoreflect.EnumNumber { // Deprecated: Use LiquidityFeeSettings_Method.Descriptor instead. func (LiquidityFeeSettings_Method) EnumDescriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{22, 0} + return file_vega_markets_proto_rawDescGZIP(), []int{23, 0} } // Current state of the market @@ -214,7 +214,7 @@ func (x Market_State) Number() protoreflect.EnumNumber { // Deprecated: Use Market_State.Descriptor instead. func (Market_State) EnumDescriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{24, 0} + return file_vega_markets_proto_rawDescGZIP(), []int{25, 0} } // Trading mode the market is currently running, also referred to as 'market state' @@ -283,7 +283,7 @@ func (x Market_TradingMode) Number() protoreflect.EnumNumber { // Deprecated: Use Market_TradingMode.Descriptor instead. func (Market_TradingMode) EnumDescriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{24, 1} + return file_vega_markets_proto_rawDescGZIP(), []int{25, 1} } // Auction duration is used to configure 3 auction periods: @@ -971,6 +971,8 @@ type LogNormalRiskModel struct { Tau float64 `protobuf:"fixed64,2,opt,name=tau,proto3" json:"tau,omitempty"` // Risk model parameters for log normal. Params *LogNormalModelParams `protobuf:"bytes,3,opt,name=params,proto3" json:"params,omitempty"` + // And optional override for the risk factor calculated by the risk model. + RiskFactorOverride *RiskFactorOverride `protobuf:"bytes,4,opt,name=risk_factor_override,json=riskFactorOverride,proto3,oneof" json:"risk_factor_override,omitempty"` } func (x *LogNormalRiskModel) Reset() { @@ -1026,6 +1028,71 @@ func (x *LogNormalRiskModel) GetParams() *LogNormalModelParams { return nil } +func (x *LogNormalRiskModel) GetRiskFactorOverride() *RiskFactorOverride { + if x != nil { + return x.RiskFactorOverride + } + return nil +} + +// Risk factor override to control stable leverage +type RiskFactorOverride struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Short Risk factor value. + Short string `protobuf:"bytes,1,opt,name=short,proto3" json:"short,omitempty"` + // Long Risk factor value. + Long string `protobuf:"bytes,2,opt,name=long,proto3" json:"long,omitempty"` +} + +func (x *RiskFactorOverride) Reset() { + *x = RiskFactorOverride{} + if protoimpl.UnsafeEnabled { + mi := &file_vega_markets_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RiskFactorOverride) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RiskFactorOverride) ProtoMessage() {} + +func (x *RiskFactorOverride) ProtoReflect() protoreflect.Message { + mi := &file_vega_markets_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RiskFactorOverride.ProtoReflect.Descriptor instead. +func (*RiskFactorOverride) Descriptor() ([]byte, []int) { + return file_vega_markets_proto_rawDescGZIP(), []int{9} +} + +func (x *RiskFactorOverride) GetShort() string { + if x != nil { + return x.Short + } + return "" +} + +func (x *RiskFactorOverride) GetLong() string { + if x != nil { + return x.Long + } + return "" +} + // Risk model parameters for log normal type LogNormalModelParams struct { state protoimpl.MessageState @@ -1043,7 +1110,7 @@ type LogNormalModelParams struct { func (x *LogNormalModelParams) Reset() { *x = LogNormalModelParams{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[9] + mi := &file_vega_markets_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1056,7 +1123,7 @@ func (x *LogNormalModelParams) String() string { func (*LogNormalModelParams) ProtoMessage() {} func (x *LogNormalModelParams) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[9] + mi := &file_vega_markets_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1069,7 +1136,7 @@ func (x *LogNormalModelParams) ProtoReflect() protoreflect.Message { // Deprecated: Use LogNormalModelParams.ProtoReflect.Descriptor instead. func (*LogNormalModelParams) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{9} + return file_vega_markets_proto_rawDescGZIP(), []int{10} } func (x *LogNormalModelParams) GetMu() float64 { @@ -1106,7 +1173,7 @@ type SimpleRiskModel struct { func (x *SimpleRiskModel) Reset() { *x = SimpleRiskModel{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[10] + mi := &file_vega_markets_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1119,7 +1186,7 @@ func (x *SimpleRiskModel) String() string { func (*SimpleRiskModel) ProtoMessage() {} func (x *SimpleRiskModel) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[10] + mi := &file_vega_markets_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1132,7 +1199,7 @@ func (x *SimpleRiskModel) ProtoReflect() protoreflect.Message { // Deprecated: Use SimpleRiskModel.ProtoReflect.Descriptor instead. func (*SimpleRiskModel) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{10} + return file_vega_markets_proto_rawDescGZIP(), []int{11} } func (x *SimpleRiskModel) GetParams() *SimpleModelParams { @@ -1163,7 +1230,7 @@ type SimpleModelParams struct { func (x *SimpleModelParams) Reset() { *x = SimpleModelParams{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[11] + mi := &file_vega_markets_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1176,7 +1243,7 @@ func (x *SimpleModelParams) String() string { func (*SimpleModelParams) ProtoMessage() {} func (x *SimpleModelParams) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[11] + mi := &file_vega_markets_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1189,7 +1256,7 @@ func (x *SimpleModelParams) ProtoReflect() protoreflect.Message { // Deprecated: Use SimpleModelParams.ProtoReflect.Descriptor instead. func (*SimpleModelParams) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{11} + return file_vega_markets_proto_rawDescGZIP(), []int{12} } func (x *SimpleModelParams) GetFactorLong() float64 { @@ -1248,7 +1315,7 @@ type ScalingFactors struct { func (x *ScalingFactors) Reset() { *x = ScalingFactors{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[12] + mi := &file_vega_markets_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1261,7 +1328,7 @@ func (x *ScalingFactors) String() string { func (*ScalingFactors) ProtoMessage() {} func (x *ScalingFactors) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[12] + mi := &file_vega_markets_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1274,7 +1341,7 @@ func (x *ScalingFactors) ProtoReflect() protoreflect.Message { // Deprecated: Use ScalingFactors.ProtoReflect.Descriptor instead. func (*ScalingFactors) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{12} + return file_vega_markets_proto_rawDescGZIP(), []int{13} } func (x *ScalingFactors) GetSearchLevel() float64 { @@ -1311,7 +1378,7 @@ type MarginCalculator struct { func (x *MarginCalculator) Reset() { *x = MarginCalculator{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[13] + mi := &file_vega_markets_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1324,7 +1391,7 @@ func (x *MarginCalculator) String() string { func (*MarginCalculator) ProtoMessage() {} func (x *MarginCalculator) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[13] + mi := &file_vega_markets_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1337,7 +1404,7 @@ func (x *MarginCalculator) ProtoReflect() protoreflect.Message { // Deprecated: Use MarginCalculator.ProtoReflect.Descriptor instead. func (*MarginCalculator) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{13} + return file_vega_markets_proto_rawDescGZIP(), []int{14} } func (x *MarginCalculator) GetScalingFactors() *ScalingFactors { @@ -1369,7 +1436,7 @@ type TradableInstrument struct { func (x *TradableInstrument) Reset() { *x = TradableInstrument{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[14] + mi := &file_vega_markets_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1382,7 +1449,7 @@ func (x *TradableInstrument) String() string { func (*TradableInstrument) ProtoMessage() {} func (x *TradableInstrument) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[14] + mi := &file_vega_markets_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1395,7 +1462,7 @@ func (x *TradableInstrument) ProtoReflect() protoreflect.Message { // Deprecated: Use TradableInstrument.ProtoReflect.Descriptor instead. func (*TradableInstrument) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{14} + return file_vega_markets_proto_rawDescGZIP(), []int{15} } func (x *TradableInstrument) GetInstrument() *Instrument { @@ -1468,7 +1535,7 @@ type FeeFactors struct { func (x *FeeFactors) Reset() { *x = FeeFactors{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[15] + mi := &file_vega_markets_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1481,7 +1548,7 @@ func (x *FeeFactors) String() string { func (*FeeFactors) ProtoMessage() {} func (x *FeeFactors) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[15] + mi := &file_vega_markets_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1494,7 +1561,7 @@ func (x *FeeFactors) ProtoReflect() protoreflect.Message { // Deprecated: Use FeeFactors.ProtoReflect.Descriptor instead. func (*FeeFactors) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{15} + return file_vega_markets_proto_rawDescGZIP(), []int{16} } func (x *FeeFactors) GetMakerFee() string { @@ -1533,7 +1600,7 @@ type Fees struct { func (x *Fees) Reset() { *x = Fees{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[16] + mi := &file_vega_markets_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1546,7 +1613,7 @@ func (x *Fees) String() string { func (*Fees) ProtoMessage() {} func (x *Fees) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[16] + mi := &file_vega_markets_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1559,7 +1626,7 @@ func (x *Fees) ProtoReflect() protoreflect.Message { // Deprecated: Use Fees.ProtoReflect.Descriptor instead. func (*Fees) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{16} + return file_vega_markets_proto_rawDescGZIP(), []int{17} } func (x *Fees) GetFactors() *FeeFactors { @@ -1595,7 +1662,7 @@ type PriceMonitoringTrigger struct { func (x *PriceMonitoringTrigger) Reset() { *x = PriceMonitoringTrigger{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[17] + mi := &file_vega_markets_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1608,7 +1675,7 @@ func (x *PriceMonitoringTrigger) String() string { func (*PriceMonitoringTrigger) ProtoMessage() {} func (x *PriceMonitoringTrigger) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[17] + mi := &file_vega_markets_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1621,7 +1688,7 @@ func (x *PriceMonitoringTrigger) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceMonitoringTrigger.ProtoReflect.Descriptor instead. func (*PriceMonitoringTrigger) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{17} + return file_vega_markets_proto_rawDescGZIP(), []int{18} } func (x *PriceMonitoringTrigger) GetHorizon() int64 { @@ -1657,7 +1724,7 @@ type PriceMonitoringParameters struct { func (x *PriceMonitoringParameters) Reset() { *x = PriceMonitoringParameters{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[18] + mi := &file_vega_markets_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1670,7 +1737,7 @@ func (x *PriceMonitoringParameters) String() string { func (*PriceMonitoringParameters) ProtoMessage() {} func (x *PriceMonitoringParameters) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[18] + mi := &file_vega_markets_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1683,7 +1750,7 @@ func (x *PriceMonitoringParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceMonitoringParameters.ProtoReflect.Descriptor instead. func (*PriceMonitoringParameters) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{18} + return file_vega_markets_proto_rawDescGZIP(), []int{19} } func (x *PriceMonitoringParameters) GetTriggers() []*PriceMonitoringTrigger { @@ -1706,7 +1773,7 @@ type PriceMonitoringSettings struct { func (x *PriceMonitoringSettings) Reset() { *x = PriceMonitoringSettings{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[19] + mi := &file_vega_markets_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1719,7 +1786,7 @@ func (x *PriceMonitoringSettings) String() string { func (*PriceMonitoringSettings) ProtoMessage() {} func (x *PriceMonitoringSettings) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[19] + mi := &file_vega_markets_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1732,7 +1799,7 @@ func (x *PriceMonitoringSettings) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceMonitoringSettings.ProtoReflect.Descriptor instead. func (*PriceMonitoringSettings) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{19} + return file_vega_markets_proto_rawDescGZIP(), []int{20} } func (x *PriceMonitoringSettings) GetParameters() *PriceMonitoringParameters { @@ -1759,7 +1826,7 @@ type LiquidityMonitoringParameters struct { func (x *LiquidityMonitoringParameters) Reset() { *x = LiquidityMonitoringParameters{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[20] + mi := &file_vega_markets_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1772,7 +1839,7 @@ func (x *LiquidityMonitoringParameters) String() string { func (*LiquidityMonitoringParameters) ProtoMessage() {} func (x *LiquidityMonitoringParameters) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[20] + mi := &file_vega_markets_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1785,7 +1852,7 @@ func (x *LiquidityMonitoringParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use LiquidityMonitoringParameters.ProtoReflect.Descriptor instead. func (*LiquidityMonitoringParameters) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{20} + return file_vega_markets_proto_rawDescGZIP(), []int{21} } func (x *LiquidityMonitoringParameters) GetTargetStakeParameters() *TargetStakeParameters { @@ -1827,7 +1894,7 @@ type LiquiditySLAParameters struct { func (x *LiquiditySLAParameters) Reset() { *x = LiquiditySLAParameters{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[21] + mi := &file_vega_markets_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1840,7 +1907,7 @@ func (x *LiquiditySLAParameters) String() string { func (*LiquiditySLAParameters) ProtoMessage() {} func (x *LiquiditySLAParameters) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[21] + mi := &file_vega_markets_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1853,7 +1920,7 @@ func (x *LiquiditySLAParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use LiquiditySLAParameters.ProtoReflect.Descriptor instead. func (*LiquiditySLAParameters) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{21} + return file_vega_markets_proto_rawDescGZIP(), []int{22} } func (x *LiquiditySLAParameters) GetPriceRange() string { @@ -1899,7 +1966,7 @@ type LiquidityFeeSettings struct { func (x *LiquidityFeeSettings) Reset() { *x = LiquidityFeeSettings{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[22] + mi := &file_vega_markets_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1912,7 +1979,7 @@ func (x *LiquidityFeeSettings) String() string { func (*LiquidityFeeSettings) ProtoMessage() {} func (x *LiquidityFeeSettings) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[22] + mi := &file_vega_markets_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1925,7 +1992,7 @@ func (x *LiquidityFeeSettings) ProtoReflect() protoreflect.Message { // Deprecated: Use LiquidityFeeSettings.ProtoReflect.Descriptor instead. func (*LiquidityFeeSettings) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{22} + return file_vega_markets_proto_rawDescGZIP(), []int{23} } func (x *LiquidityFeeSettings) GetMethod() LiquidityFeeSettings_Method { @@ -1957,7 +2024,7 @@ type TargetStakeParameters struct { func (x *TargetStakeParameters) Reset() { *x = TargetStakeParameters{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[23] + mi := &file_vega_markets_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1970,7 +2037,7 @@ func (x *TargetStakeParameters) String() string { func (*TargetStakeParameters) ProtoMessage() {} func (x *TargetStakeParameters) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[23] + mi := &file_vega_markets_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1983,7 +2050,7 @@ func (x *TargetStakeParameters) ProtoReflect() protoreflect.Message { // Deprecated: Use TargetStakeParameters.ProtoReflect.Descriptor instead. func (*TargetStakeParameters) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{23} + return file_vega_markets_proto_rawDescGZIP(), []int{24} } func (x *TargetStakeParameters) GetTimeWindow() int64 { @@ -2058,7 +2125,7 @@ type Market struct { func (x *Market) Reset() { *x = Market{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[24] + mi := &file_vega_markets_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2071,7 +2138,7 @@ func (x *Market) String() string { func (*Market) ProtoMessage() {} func (x *Market) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[24] + mi := &file_vega_markets_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2084,7 +2151,7 @@ func (x *Market) ProtoReflect() protoreflect.Message { // Deprecated: Use Market.ProtoReflect.Descriptor instead. func (*Market) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{24} + return file_vega_markets_proto_rawDescGZIP(), []int{25} } func (x *Market) GetId() string { @@ -2253,7 +2320,7 @@ type MarketTimestamps struct { func (x *MarketTimestamps) Reset() { *x = MarketTimestamps{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[25] + mi := &file_vega_markets_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2266,7 +2333,7 @@ func (x *MarketTimestamps) String() string { func (*MarketTimestamps) ProtoMessage() {} func (x *MarketTimestamps) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[25] + mi := &file_vega_markets_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2279,7 +2346,7 @@ func (x *MarketTimestamps) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketTimestamps.ProtoReflect.Descriptor instead. func (*MarketTimestamps) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{25} + return file_vega_markets_proto_rawDescGZIP(), []int{26} } func (x *MarketTimestamps) GetProposed() int64 { @@ -2332,7 +2399,7 @@ type LiquidationStrategy struct { func (x *LiquidationStrategy) Reset() { *x = LiquidationStrategy{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[26] + mi := &file_vega_markets_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2345,7 +2412,7 @@ func (x *LiquidationStrategy) String() string { func (*LiquidationStrategy) ProtoMessage() {} func (x *LiquidationStrategy) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[26] + mi := &file_vega_markets_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2358,7 +2425,7 @@ func (x *LiquidationStrategy) ProtoReflect() protoreflect.Message { // Deprecated: Use LiquidationStrategy.ProtoReflect.Descriptor instead. func (*LiquidationStrategy) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{26} + return file_vega_markets_proto_rawDescGZIP(), []int{27} } func (x *LiquidationStrategy) GetDisposalTimeStep() int64 { @@ -2425,7 +2492,7 @@ type CompositePriceConfiguration struct { func (x *CompositePriceConfiguration) Reset() { *x = CompositePriceConfiguration{} if protoimpl.UnsafeEnabled { - mi := &file_vega_markets_proto_msgTypes[27] + mi := &file_vega_markets_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2438,7 +2505,7 @@ func (x *CompositePriceConfiguration) String() string { func (*CompositePriceConfiguration) ProtoMessage() {} func (x *CompositePriceConfiguration) ProtoReflect() protoreflect.Message { - mi := &file_vega_markets_proto_msgTypes[27] + mi := &file_vega_markets_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2451,7 +2518,7 @@ func (x *CompositePriceConfiguration) ProtoReflect() protoreflect.Message { // Deprecated: Use CompositePriceConfiguration.ProtoReflect.Descriptor instead. func (*CompositePriceConfiguration) Descriptor() ([]byte, []int) { - return file_vega_markets_proto_rawDescGZIP(), []int{27} + return file_vega_markets_proto_rawDescGZIP(), []int{28} } func (x *CompositePriceConfiguration) GetDecayWeight() string { @@ -2650,7 +2717,7 @@ var file_vega_markets_proto_rawDesc = []byte{ 0x2f, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x50, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x09, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, - 0x42, 0x09, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x12, + 0x42, 0x09, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x22, 0xfc, 0x01, 0x0a, 0x12, 0x4c, 0x6f, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, @@ -2660,332 +2727,343 @@ var file_vega_markets_proto_rawDesc = []byte{ 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4c, 0x6f, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x22, 0x4a, 0x0a, 0x14, 0x4c, 0x6f, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x6d, 0x75, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, 0x6d, 0x75, 0x12, 0x0c, 0x0a, 0x01, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x01, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x22, 0x42, 0x0a, 0x0f, - 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, - 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x22, 0xd1, 0x01, 0x0a, 0x11, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x5f, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x66, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x61, - 0x78, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x09, 0x6d, 0x61, 0x78, 0x4d, 0x6f, 0x76, 0x65, 0x55, 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x69, - 0x6e, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x4d, 0x6f, 0x76, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x34, - 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x66, - 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, - 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4f, 0x66, 0x54, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x22, 0x89, 0x01, 0x0a, 0x0e, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, - 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x0d, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, - 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, - 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x63, - 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x22, 0x51, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x3d, 0x0a, 0x0f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, - 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x76, 0x65, 0x67, 0x61, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x52, 0x0e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x73, 0x22, 0xad, 0x02, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x0a, 0x69, 0x6e, - 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x11, - 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x10, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x4d, 0x0a, 0x15, 0x6c, 0x6f, 0x67, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, - 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4c, 0x6f, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x61, - 0x6c, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x6f, - 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x12, 0x43, 0x0a, 0x11, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x69, 0x73, 0x6b, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x65, - 0x67, 0x61, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x6f, 0x64, - 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x69, 0x73, 0x6b, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x0c, 0x0a, 0x0a, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x22, 0x7d, 0x0a, 0x0a, 0x46, 0x65, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65, 0x12, 0x2d, - 0x0a, 0x12, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x5f, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x66, 0x72, - 0x61, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x46, 0x65, 0x65, 0x12, 0x23, 0x0a, - 0x0d, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x46, - 0x65, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x04, 0x46, 0x65, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x66, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, - 0x65, 0x67, 0x61, 0x2e, 0x46, 0x65, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x07, - 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x50, 0x0a, 0x16, 0x6c, 0x69, 0x71, 0x75, 0x69, - 0x64, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4c, + 0x12, 0x4f, 0x0a, 0x14, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, + 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x52, 0x69, 0x73, 0x6b, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x48, 0x00, 0x52, 0x12, 0x72, 0x69, 0x73, 0x6b, + 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x3e, 0x0a, 0x12, 0x52, 0x69, + 0x73, 0x6b, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x6e, 0x67, 0x22, 0x4a, 0x0a, 0x14, 0x4c, 0x6f, + 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x6d, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x02, + 0x6d, 0x75, 0x12, 0x0c, 0x0a, 0x01, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x72, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x05, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x22, 0x42, 0x0a, 0x0f, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x65, 0x67, 0x61, + 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xd1, 0x01, 0x0a, 0x11, 0x53, + 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x6e, + 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x68, 0x6f, 0x72, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x53, + 0x68, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x6f, 0x76, 0x65, + 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x4d, 0x6f, + 0x76, 0x65, 0x55, 0x70, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x6f, 0x76, 0x65, + 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x6d, 0x69, 0x6e, + 0x4d, 0x6f, 0x76, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x62, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x66, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4f, 0x66, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x89, + 0x01, 0x0a, 0x0e, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, + 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x63, + 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x10, 0x4d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x3d, + 0x0a, 0x0f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x53, + 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x0e, 0x73, + 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xad, 0x02, + 0x0a, 0x12, 0x54, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, + 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x11, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x5f, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x43, + 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x6d, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x43, 0x61, 0x6c, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x4d, 0x0a, 0x15, 0x6c, + 0x6f, 0x67, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x76, 0x65, 0x67, + 0x61, 0x2e, 0x4c, 0x6f, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x52, 0x69, 0x73, 0x6b, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x6f, 0x67, 0x4e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x43, 0x0a, 0x11, 0x73, 0x69, + 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, + 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x53, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x0f, + 0x73, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x69, 0x73, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, + 0x0c, 0x0a, 0x0a, 0x72, 0x69, 0x73, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x22, 0x7d, 0x0a, + 0x0a, 0x46, 0x65, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x65, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x69, 0x71, 0x75, 0x69, + 0x64, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x22, 0x84, 0x01, 0x0a, + 0x04, 0x46, 0x65, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x46, 0x65, + 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x07, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x73, 0x12, 0x50, 0x0a, 0x16, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x66, + 0x65, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, + 0x74, 0x79, 0x46, 0x65, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x14, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x52, 0x14, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x46, 0x65, - 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x16, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x12, 0x20, - 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x61, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x0a, - 0x19, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, - 0x65, 0x67, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x69, 0x6e, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, - 0x67, 0x65, 0x72, 0x73, 0x22, 0x5a, 0x0a, 0x17, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x6e, - 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, - 0x3f, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x6e, 0x67, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x07, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x62, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, + 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x55, 0x0a, 0x19, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x22, 0xcc, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x53, 0x0a, 0x17, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x52, 0x15, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, 0x69, 0x67, 0x67, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, - 0x69, 0x6f, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x61, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0xfa, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x53, 0x4c, 0x41, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x70, 0x72, 0x69, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x19, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x1d, - 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x68, 0x79, 0x73, 0x74, - 0x65, 0x72, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x1b, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, - 0x48, 0x79, 0x73, 0x74, 0x65, 0x72, 0x65, 0x73, 0x69, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x73, - 0x12, 0x34, 0x0a, 0x16, 0x73, 0x6c, 0x61, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x14, 0x73, 0x6c, 0x61, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xf8, 0x01, 0x0a, - 0x14, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4c, 0x69, 0x71, - 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x12, 0x26, 0x0a, 0x0c, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x43, 0x6f, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x22, 0x6c, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x45, - 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4d, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x41, 0x4c, 0x5f, 0x43, 0x4f, - 0x53, 0x54, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x57, - 0x45, 0x49, 0x47, 0x48, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x56, 0x45, 0x52, 0x41, 0x47, 0x45, 0x10, - 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, - 0x54, 0x41, 0x4e, 0x54, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x22, 0x5f, 0x0a, 0x15, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6c, 0x69, - 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xc7, 0x0e, 0x0a, 0x06, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, - 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, - 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x50, - 0x6c, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x46, 0x65, 0x65, 0x73, 0x52, - 0x04, 0x66, 0x65, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, - 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x19, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x6d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x17, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, - 0x12, 0x6b, 0x0a, 0x1f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x6f, - 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x76, 0x65, 0x67, 0x61, - 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, - 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x1d, - 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, - 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x74, - 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x76, 0x65, 0x67, 0x61, - 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x11, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x52, 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x5f, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x50, 0x6c, 0x61, 0x63, 0x65, - 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x70, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x69, 0x6e, 0x65, 0x61, - 0x72, 0x5f, 0x73, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x53, - 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x3a, 0x0a, - 0x19, 0x71, 0x75, 0x61, 0x64, 0x72, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x73, 0x6c, 0x69, 0x70, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x17, 0x71, 0x75, 0x61, 0x64, 0x72, 0x61, 0x74, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x70, 0x70, - 0x61, 0x67, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x6e, 0x73, 0x75, - 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x15, 0x69, 0x6e, 0x73, - 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x14, 0x6c, 0x69, - 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x6c, 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, - 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x53, 0x4c, 0x41, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x48, 0x03, 0x52, 0x12, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, - 0x69, 0x74, 0x79, 0x53, 0x6c, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x4c, 0x0a, 0x14, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x13, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x5b, 0x0a, - 0x18, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x16, 0x6d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, - 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, - 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, - 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, - 0x47, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, - 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x06, 0x12, - 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, - 0x07, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x49, - 0x4e, 0x47, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, - 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x4c, 0x45, 0x44, - 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, - 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x56, 0x49, 0x41, 0x5f, 0x47, 0x4f, 0x56, 0x45, 0x52, 0x4e, - 0x41, 0x4e, 0x43, 0x45, 0x10, 0x0a, 0x22, 0xf7, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x69, - 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, - 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x55, 0x4f, 0x55, 0x53, 0x10, - 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x42, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x41, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, - 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x55, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x41, - 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x41, 0x44, - 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x54, 0x52, 0x41, 0x44, - 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, - 0x56, 0x49, 0x41, 0x5f, 0x47, 0x4f, 0x56, 0x45, 0x52, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x06, - 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, - 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x69, - 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x6c, 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0x72, 0x0a, 0x10, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x22, 0x8a, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x71, 0x75, 0x69, - 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x2c, - 0x0a, 0x12, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x64, 0x69, 0x73, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x65, 0x70, 0x12, 0x2b, 0x0a, 0x11, - 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x75, 0x6c, - 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x44, 0x69, 0x73, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x66, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x64, - 0x69, 0x73, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x64, 0x69, - 0x73, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x22, 0xda, 0x03, 0x0a, 0x1b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x77, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x61, 0x79, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, - 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x65, 0x63, - 0x61, 0x79, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x73, 0x68, 0x5f, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, - 0x73, 0x68, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, - 0x3c, 0x0a, 0x1a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x6e, - 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x18, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x6c, 0x65, - 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, - 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x65, - 0x67, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x5d, 0x0a, 0x19, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x53, 0x70, 0x65, 0x63, - 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x16, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x2a, 0xa3, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4d, 0x50, 0x4f, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x22, 0x5a, + 0x0a, 0x17, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, + 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3f, 0x0a, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x76, 0x65, 0x67, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xcc, 0x01, 0x0a, 0x1d, 0x4c, + 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x53, 0x0a, 0x17, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x76, 0x65, 0x67, 0x61, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x15, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x2b, 0x0a, 0x11, + 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xfa, 0x01, 0x0a, 0x16, 0x4c, 0x69, + 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x53, 0x4c, 0x41, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x1d, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x68, 0x79, 0x73, 0x74, 0x65, 0x72, 0x65, 0x73, 0x69, 0x73, + 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1b, 0x70, + 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x79, 0x73, 0x74, 0x65, 0x72, + 0x65, 0x73, 0x69, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x6c, + 0x61, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x6c, 0x61, 0x43, + 0x6f, 0x6d, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xf8, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x71, 0x75, 0x69, + 0x64, 0x69, 0x74, 0x79, 0x46, 0x65, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x39, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x21, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, + 0x46, 0x65, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x66, 0x65, + 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x22, 0x6c, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x12, + 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4d, + 0x41, 0x52, 0x47, 0x49, 0x4e, 0x41, 0x4c, 0x5f, 0x43, 0x4f, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1b, + 0x0a, 0x17, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x57, 0x45, 0x49, 0x47, 0x48, 0x54, 0x45, + 0x44, 0x5f, 0x41, 0x56, 0x45, 0x52, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4d, + 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x54, 0x10, 0x03, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x22, 0x5f, 0x0a, 0x15, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x25, 0x0a, 0x0e, 0x73, + 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0d, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x22, 0xc7, 0x0e, 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x49, 0x0a, + 0x13, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x76, 0x65, 0x67, + 0x61, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x72, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x12, 0x74, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x6e, + 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x69, + 0x6d, 0x61, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0d, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x12, + 0x1e, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, + 0x76, 0x65, 0x67, 0x61, 0x2e, 0x46, 0x65, 0x65, 0x73, 0x52, 0x04, 0x66, 0x65, 0x65, 0x73, 0x12, + 0x3e, 0x0a, 0x0f, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, + 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x59, 0x0a, 0x19, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4d, + 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x52, 0x17, 0x70, 0x72, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x6b, 0x0a, 0x1f, 0x6c, 0x69, + 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, + 0x64, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x1d, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, + 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, + 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x64, + 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x43, + 0x0a, 0x11, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x65, 0x67, 0x61, + 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x73, 0x52, 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6c, + 0x70, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x70, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x6c, 0x69, 0x70, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x14, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x53, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, + 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x3a, 0x0a, 0x19, 0x71, 0x75, 0x61, 0x64, 0x72, + 0x61, 0x74, 0x69, 0x63, 0x5f, 0x73, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x71, 0x75, 0x61, 0x64, + 0x72, 0x61, 0x74, 0x69, 0x63, 0x53, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x46, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x15, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, + 0x50, 0x6f, 0x6f, 0x6c, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x33, 0x0a, 0x13, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x14, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, + 0x79, 0x5f, 0x73, 0x6c, 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, + 0x69, 0x74, 0x79, 0x53, 0x4c, 0x41, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x48, 0x03, 0x52, 0x12, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, 0x79, 0x53, 0x6c, 0x61, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x14, 0x6c, 0x69, 0x71, + 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x4c, + 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x79, 0x52, 0x13, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x5b, 0x0a, 0x18, 0x6d, 0x61, 0x72, 0x6b, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x65, 0x67, 0x61, + 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x6d, 0x61, + 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, + 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x50, + 0x4f, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x13, 0x0a, + 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, + 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x56, 0x45, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, + 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x07, 0x12, 0x1c, 0x0a, 0x18, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x45, 0x52, + 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x4c, 0x45, 0x44, 0x10, 0x09, 0x12, 0x22, 0x0a, 0x1e, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, + 0x56, 0x49, 0x41, 0x5f, 0x47, 0x4f, 0x56, 0x45, 0x52, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x0a, + 0x22, 0xf7, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, + 0x0a, 0x17, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, + 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x55, 0x4f, 0x55, 0x53, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x54, + 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x42, 0x41, 0x54, 0x43, + 0x48, 0x5f, 0x41, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x54, + 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4f, 0x50, 0x45, 0x4e, + 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x23, 0x0a, + 0x1f, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x4d, 0x4f, + 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, + 0x44, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, + 0x29, 0x0a, 0x25, 0x54, 0x52, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x56, 0x49, 0x41, 0x5f, 0x47, 0x4f, + 0x56, 0x45, 0x52, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x06, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x70, 0x6f, + 0x6f, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x69, 0x74, + 0x79, 0x5f, 0x73, 0x6c, 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x72, 0x0a, 0x10, + 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x73, 0x65, + 0x22, 0x8a, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x65, 0x70, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x46, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x13, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x53, 0x6c, 0x69, 0x70, 0x70, 0x61, 0x67, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xda, 0x03, + 0x0a, 0x1b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, + 0x0c, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x61, 0x79, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x65, 0x63, 0x61, 0x79, 0x50, 0x6f, 0x77, 0x65, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x73, 0x68, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, + 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x6c, 0x65, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, + 0x6c, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x43, 0x6f, 0x6d, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5d, 0x0a, 0x19, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x76, 0x65, 0x67, 0x61, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x46, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x52, 0x16, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x53, + 0x70, 0x65, 0x63, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x2a, 0xa3, 0x01, 0x0a, 0x12, 0x43, + 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x45, 0x5f, 0x50, + 0x52, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, - 0x1d, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x43, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x45, 0x49, 0x47, 0x48, 0x54, 0x45, 0x44, 0x10, 0x01, - 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x45, 0x5f, 0x50, 0x52, - 0x49, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x4e, 0x10, - 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x45, 0x5f, 0x50, - 0x52, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x54, - 0x52, 0x41, 0x44, 0x45, 0x10, 0x03, 0x42, 0x27, 0x5a, 0x25, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x76, - 0x65, 0x67, 0x61, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x69, 0x6f, 0x2f, 0x76, - 0x65, 0x67, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x67, 0x61, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x57, 0x45, 0x49, 0x47, 0x48, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x4f, + 0x4d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x4e, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x43, + 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x49, 0x43, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x44, 0x45, 0x10, 0x03, + 0x42, 0x27, 0x5a, 0x25, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x76, 0x65, 0x67, 0x61, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x65, 0x67, 0x61, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x67, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -3001,7 +3079,7 @@ func file_vega_markets_proto_rawDescGZIP() []byte { } var file_vega_markets_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_vega_markets_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_vega_markets_proto_msgTypes = make([]protoimpl.MessageInfo, 29) var file_vega_markets_proto_goTypes = []interface{}{ (CompositePriceType)(0), // 0: vega.CompositePriceType (LiquidityFeeSettings_Method)(0), // 1: vega.LiquidityFeeSettings.Method @@ -3016,73 +3094,75 @@ var file_vega_markets_proto_goTypes = []interface{}{ (*InstrumentMetadata)(nil), // 10: vega.InstrumentMetadata (*Instrument)(nil), // 11: vega.Instrument (*LogNormalRiskModel)(nil), // 12: vega.LogNormalRiskModel - (*LogNormalModelParams)(nil), // 13: vega.LogNormalModelParams - (*SimpleRiskModel)(nil), // 14: vega.SimpleRiskModel - (*SimpleModelParams)(nil), // 15: vega.SimpleModelParams - (*ScalingFactors)(nil), // 16: vega.ScalingFactors - (*MarginCalculator)(nil), // 17: vega.MarginCalculator - (*TradableInstrument)(nil), // 18: vega.TradableInstrument - (*FeeFactors)(nil), // 19: vega.FeeFactors - (*Fees)(nil), // 20: vega.Fees - (*PriceMonitoringTrigger)(nil), // 21: vega.PriceMonitoringTrigger - (*PriceMonitoringParameters)(nil), // 22: vega.PriceMonitoringParameters - (*PriceMonitoringSettings)(nil), // 23: vega.PriceMonitoringSettings - (*LiquidityMonitoringParameters)(nil), // 24: vega.LiquidityMonitoringParameters - (*LiquiditySLAParameters)(nil), // 25: vega.LiquiditySLAParameters - (*LiquidityFeeSettings)(nil), // 26: vega.LiquidityFeeSettings - (*TargetStakeParameters)(nil), // 27: vega.TargetStakeParameters - (*Market)(nil), // 28: vega.Market - (*MarketTimestamps)(nil), // 29: vega.MarketTimestamps - (*LiquidationStrategy)(nil), // 30: vega.LiquidationStrategy - (*CompositePriceConfiguration)(nil), // 31: vega.CompositePriceConfiguration - (*DataSourceSpec)(nil), // 32: vega.DataSourceSpec - (*DataSourceDefinition)(nil), // 33: vega.DataSourceDefinition - (*SpecBindingForCompositePrice)(nil), // 34: vega.SpecBindingForCompositePrice + (*RiskFactorOverride)(nil), // 13: vega.RiskFactorOverride + (*LogNormalModelParams)(nil), // 14: vega.LogNormalModelParams + (*SimpleRiskModel)(nil), // 15: vega.SimpleRiskModel + (*SimpleModelParams)(nil), // 16: vega.SimpleModelParams + (*ScalingFactors)(nil), // 17: vega.ScalingFactors + (*MarginCalculator)(nil), // 18: vega.MarginCalculator + (*TradableInstrument)(nil), // 19: vega.TradableInstrument + (*FeeFactors)(nil), // 20: vega.FeeFactors + (*Fees)(nil), // 21: vega.Fees + (*PriceMonitoringTrigger)(nil), // 22: vega.PriceMonitoringTrigger + (*PriceMonitoringParameters)(nil), // 23: vega.PriceMonitoringParameters + (*PriceMonitoringSettings)(nil), // 24: vega.PriceMonitoringSettings + (*LiquidityMonitoringParameters)(nil), // 25: vega.LiquidityMonitoringParameters + (*LiquiditySLAParameters)(nil), // 26: vega.LiquiditySLAParameters + (*LiquidityFeeSettings)(nil), // 27: vega.LiquidityFeeSettings + (*TargetStakeParameters)(nil), // 28: vega.TargetStakeParameters + (*Market)(nil), // 29: vega.Market + (*MarketTimestamps)(nil), // 30: vega.MarketTimestamps + (*LiquidationStrategy)(nil), // 31: vega.LiquidationStrategy + (*CompositePriceConfiguration)(nil), // 32: vega.CompositePriceConfiguration + (*DataSourceSpec)(nil), // 33: vega.DataSourceSpec + (*DataSourceDefinition)(nil), // 34: vega.DataSourceDefinition + (*SpecBindingForCompositePrice)(nil), // 35: vega.SpecBindingForCompositePrice } var file_vega_markets_proto_depIdxs = []int32{ - 32, // 0: vega.Future.data_source_spec_for_settlement_data:type_name -> vega.DataSourceSpec - 32, // 1: vega.Future.data_source_spec_for_trading_termination:type_name -> vega.DataSourceSpec + 33, // 0: vega.Future.data_source_spec_for_settlement_data:type_name -> vega.DataSourceSpec + 33, // 1: vega.Future.data_source_spec_for_trading_termination:type_name -> vega.DataSourceSpec 8, // 2: vega.Future.data_source_spec_binding:type_name -> vega.DataSourceSpecToFutureBinding - 32, // 3: vega.Perpetual.data_source_spec_for_settlement_schedule:type_name -> vega.DataSourceSpec - 32, // 4: vega.Perpetual.data_source_spec_for_settlement_data:type_name -> vega.DataSourceSpec + 33, // 3: vega.Perpetual.data_source_spec_for_settlement_schedule:type_name -> vega.DataSourceSpec + 33, // 4: vega.Perpetual.data_source_spec_for_settlement_data:type_name -> vega.DataSourceSpec 9, // 5: vega.Perpetual.data_source_spec_binding:type_name -> vega.DataSourceSpecToPerpetualBinding - 31, // 6: vega.Perpetual.internal_composite_price_config:type_name -> vega.CompositePriceConfiguration + 32, // 6: vega.Perpetual.internal_composite_price_config:type_name -> vega.CompositePriceConfiguration 10, // 7: vega.Instrument.metadata:type_name -> vega.InstrumentMetadata 6, // 8: vega.Instrument.future:type_name -> vega.Future 5, // 9: vega.Instrument.spot:type_name -> vega.Spot 7, // 10: vega.Instrument.perpetual:type_name -> vega.Perpetual - 13, // 11: vega.LogNormalRiskModel.params:type_name -> vega.LogNormalModelParams - 15, // 12: vega.SimpleRiskModel.params:type_name -> vega.SimpleModelParams - 16, // 13: vega.MarginCalculator.scaling_factors:type_name -> vega.ScalingFactors - 11, // 14: vega.TradableInstrument.instrument:type_name -> vega.Instrument - 17, // 15: vega.TradableInstrument.margin_calculator:type_name -> vega.MarginCalculator - 12, // 16: vega.TradableInstrument.log_normal_risk_model:type_name -> vega.LogNormalRiskModel - 14, // 17: vega.TradableInstrument.simple_risk_model:type_name -> vega.SimpleRiskModel - 19, // 18: vega.Fees.factors:type_name -> vega.FeeFactors - 26, // 19: vega.Fees.liquidity_fee_settings:type_name -> vega.LiquidityFeeSettings - 21, // 20: vega.PriceMonitoringParameters.triggers:type_name -> vega.PriceMonitoringTrigger - 22, // 21: vega.PriceMonitoringSettings.parameters:type_name -> vega.PriceMonitoringParameters - 27, // 22: vega.LiquidityMonitoringParameters.target_stake_parameters:type_name -> vega.TargetStakeParameters - 1, // 23: vega.LiquidityFeeSettings.method:type_name -> vega.LiquidityFeeSettings.Method - 18, // 24: vega.Market.tradable_instrument:type_name -> vega.TradableInstrument - 20, // 25: vega.Market.fees:type_name -> vega.Fees - 4, // 26: vega.Market.opening_auction:type_name -> vega.AuctionDuration - 23, // 27: vega.Market.price_monitoring_settings:type_name -> vega.PriceMonitoringSettings - 24, // 28: vega.Market.liquidity_monitoring_parameters:type_name -> vega.LiquidityMonitoringParameters - 3, // 29: vega.Market.trading_mode:type_name -> vega.Market.TradingMode - 2, // 30: vega.Market.state:type_name -> vega.Market.State - 29, // 31: vega.Market.market_timestamps:type_name -> vega.MarketTimestamps - 25, // 32: vega.Market.liquidity_sla_params:type_name -> vega.LiquiditySLAParameters - 30, // 33: vega.Market.liquidation_strategy:type_name -> vega.LiquidationStrategy - 31, // 34: vega.Market.mark_price_configuration:type_name -> vega.CompositePriceConfiguration - 0, // 35: vega.CompositePriceConfiguration.composite_price_type:type_name -> vega.CompositePriceType - 33, // 36: vega.CompositePriceConfiguration.data_sources_spec:type_name -> vega.DataSourceDefinition - 34, // 37: vega.CompositePriceConfiguration.data_sources_spec_binding:type_name -> vega.SpecBindingForCompositePrice - 38, // [38:38] is the sub-list for method output_type - 38, // [38:38] is the sub-list for method input_type - 38, // [38:38] is the sub-list for extension type_name - 38, // [38:38] is the sub-list for extension extendee - 0, // [0:38] is the sub-list for field type_name + 14, // 11: vega.LogNormalRiskModel.params:type_name -> vega.LogNormalModelParams + 13, // 12: vega.LogNormalRiskModel.risk_factor_override:type_name -> vega.RiskFactorOverride + 16, // 13: vega.SimpleRiskModel.params:type_name -> vega.SimpleModelParams + 17, // 14: vega.MarginCalculator.scaling_factors:type_name -> vega.ScalingFactors + 11, // 15: vega.TradableInstrument.instrument:type_name -> vega.Instrument + 18, // 16: vega.TradableInstrument.margin_calculator:type_name -> vega.MarginCalculator + 12, // 17: vega.TradableInstrument.log_normal_risk_model:type_name -> vega.LogNormalRiskModel + 15, // 18: vega.TradableInstrument.simple_risk_model:type_name -> vega.SimpleRiskModel + 20, // 19: vega.Fees.factors:type_name -> vega.FeeFactors + 27, // 20: vega.Fees.liquidity_fee_settings:type_name -> vega.LiquidityFeeSettings + 22, // 21: vega.PriceMonitoringParameters.triggers:type_name -> vega.PriceMonitoringTrigger + 23, // 22: vega.PriceMonitoringSettings.parameters:type_name -> vega.PriceMonitoringParameters + 28, // 23: vega.LiquidityMonitoringParameters.target_stake_parameters:type_name -> vega.TargetStakeParameters + 1, // 24: vega.LiquidityFeeSettings.method:type_name -> vega.LiquidityFeeSettings.Method + 19, // 25: vega.Market.tradable_instrument:type_name -> vega.TradableInstrument + 21, // 26: vega.Market.fees:type_name -> vega.Fees + 4, // 27: vega.Market.opening_auction:type_name -> vega.AuctionDuration + 24, // 28: vega.Market.price_monitoring_settings:type_name -> vega.PriceMonitoringSettings + 25, // 29: vega.Market.liquidity_monitoring_parameters:type_name -> vega.LiquidityMonitoringParameters + 3, // 30: vega.Market.trading_mode:type_name -> vega.Market.TradingMode + 2, // 31: vega.Market.state:type_name -> vega.Market.State + 30, // 32: vega.Market.market_timestamps:type_name -> vega.MarketTimestamps + 26, // 33: vega.Market.liquidity_sla_params:type_name -> vega.LiquiditySLAParameters + 31, // 34: vega.Market.liquidation_strategy:type_name -> vega.LiquidationStrategy + 32, // 35: vega.Market.mark_price_configuration:type_name -> vega.CompositePriceConfiguration + 0, // 36: vega.CompositePriceConfiguration.composite_price_type:type_name -> vega.CompositePriceType + 34, // 37: vega.CompositePriceConfiguration.data_sources_spec:type_name -> vega.DataSourceDefinition + 35, // 38: vega.CompositePriceConfiguration.data_sources_spec_binding:type_name -> vega.SpecBindingForCompositePrice + 39, // [39:39] is the sub-list for method output_type + 39, // [39:39] is the sub-list for method input_type + 39, // [39:39] is the sub-list for extension type_name + 39, // [39:39] is the sub-list for extension extendee + 0, // [0:39] is the sub-list for field type_name } func init() { file_vega_markets_proto_init() } @@ -3201,7 +3281,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogNormalModelParams); i { + switch v := v.(*RiskFactorOverride); i { case 0: return &v.state case 1: @@ -3213,7 +3293,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SimpleRiskModel); i { + switch v := v.(*LogNormalModelParams); i { case 0: return &v.state case 1: @@ -3225,7 +3305,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SimpleModelParams); i { + switch v := v.(*SimpleRiskModel); i { case 0: return &v.state case 1: @@ -3237,7 +3317,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScalingFactors); i { + switch v := v.(*SimpleModelParams); i { case 0: return &v.state case 1: @@ -3249,7 +3329,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MarginCalculator); i { + switch v := v.(*ScalingFactors); i { case 0: return &v.state case 1: @@ -3261,7 +3341,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TradableInstrument); i { + switch v := v.(*MarginCalculator); i { case 0: return &v.state case 1: @@ -3273,7 +3353,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FeeFactors); i { + switch v := v.(*TradableInstrument); i { case 0: return &v.state case 1: @@ -3285,7 +3365,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Fees); i { + switch v := v.(*FeeFactors); i { case 0: return &v.state case 1: @@ -3297,7 +3377,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PriceMonitoringTrigger); i { + switch v := v.(*Fees); i { case 0: return &v.state case 1: @@ -3309,7 +3389,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PriceMonitoringParameters); i { + switch v := v.(*PriceMonitoringTrigger); i { case 0: return &v.state case 1: @@ -3321,7 +3401,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PriceMonitoringSettings); i { + switch v := v.(*PriceMonitoringParameters); i { case 0: return &v.state case 1: @@ -3333,7 +3413,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LiquidityMonitoringParameters); i { + switch v := v.(*PriceMonitoringSettings); i { case 0: return &v.state case 1: @@ -3345,7 +3425,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LiquiditySLAParameters); i { + switch v := v.(*LiquidityMonitoringParameters); i { case 0: return &v.state case 1: @@ -3357,7 +3437,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LiquidityFeeSettings); i { + switch v := v.(*LiquiditySLAParameters); i { case 0: return &v.state case 1: @@ -3369,7 +3449,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TargetStakeParameters); i { + switch v := v.(*LiquidityFeeSettings); i { case 0: return &v.state case 1: @@ -3381,7 +3461,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Market); i { + switch v := v.(*TargetStakeParameters); i { case 0: return &v.state case 1: @@ -3393,7 +3473,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MarketTimestamps); i { + switch v := v.(*Market); i { case 0: return &v.state case 1: @@ -3405,7 +3485,7 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LiquidationStrategy); i { + switch v := v.(*MarketTimestamps); i { case 0: return &v.state case 1: @@ -3417,6 +3497,18 @@ func file_vega_markets_proto_init() { } } file_vega_markets_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LiquidationStrategy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_vega_markets_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CompositePriceConfiguration); i { case 0: return &v.state @@ -3435,19 +3527,20 @@ func file_vega_markets_proto_init() { (*Instrument_Spot)(nil), (*Instrument_Perpetual)(nil), } - file_vega_markets_proto_msgTypes[14].OneofWrappers = []interface{}{ + file_vega_markets_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_vega_markets_proto_msgTypes[15].OneofWrappers = []interface{}{ (*TradableInstrument_LogNormalRiskModel)(nil), (*TradableInstrument_SimpleRiskModel)(nil), } - file_vega_markets_proto_msgTypes[22].OneofWrappers = []interface{}{} - file_vega_markets_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_vega_markets_proto_msgTypes[23].OneofWrappers = []interface{}{} + file_vega_markets_proto_msgTypes[25].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_vega_markets_proto_rawDesc, NumEnums: 4, - NumMessages: 28, + NumMessages: 29, NumExtensions: 0, NumServices: 0, }, From 3da87552395e4651b170ec50892adae8a848d499 Mon Sep 17 00:00:00 2001 From: Jeremy Letang Date: Thu, 2 May 2024 17:40:20 +0100 Subject: [PATCH 2/2] feat: add graphql binding Signed-off-by: Jeremy Letang --- datanode/gateway/graphql/generated.go | 217 ++++++++++++++++++++++++ datanode/gateway/graphql/gqlgen.yml | 2 + datanode/gateway/graphql/schema.graphql | 11 ++ 3 files changed, 230 insertions(+) diff --git a/datanode/gateway/graphql/generated.go b/datanode/gateway/graphql/generated.go index 90b52344d3c..a2d98bc93a7 100644 --- a/datanode/gateway/graphql/generated.go +++ b/datanode/gateway/graphql/generated.go @@ -1229,6 +1229,7 @@ type ComplexityRoot struct { LogNormalRiskModel struct { Params func(childComplexity int) int RiskAversionParameter func(childComplexity int) int + RiskFactorOverride func(childComplexity int) int Tau func(childComplexity int) int } @@ -2418,6 +2419,11 @@ type ComplexityRoot struct { Short func(childComplexity int) int } + RiskFactorOverride struct { + Long func(childComplexity int) int + Short func(childComplexity int) int + } + ScalingFactors struct { CollateralRelease func(childComplexity int) int InitialMargin func(childComplexity int) int @@ -8108,6 +8114,13 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.LogNormalRiskModel.RiskAversionParameter(childComplexity), true + case "LogNormalRiskModel.riskFactorOverride": + if e.complexity.LogNormalRiskModel.RiskFactorOverride == nil { + break + } + + return e.complexity.LogNormalRiskModel.RiskFactorOverride(childComplexity), true + case "LogNormalRiskModel.tau": if e.complexity.LogNormalRiskModel.Tau == nil { break @@ -14018,6 +14031,20 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.RiskFactor.Short(childComplexity), true + case "RiskFactorOverride.long": + if e.complexity.RiskFactorOverride.Long == nil { + break + } + + return e.complexity.RiskFactorOverride.Long(childComplexity), true + + case "RiskFactorOverride.short": + if e.complexity.RiskFactorOverride.Short == nil { + break + } + + return e.complexity.RiskFactorOverride.Short(childComplexity), true + case "ScalingFactors.collateralRelease": if e.complexity.ScalingFactors.CollateralRelease == nil { break @@ -48486,6 +48513,53 @@ func (ec *executionContext) fieldContext_LogNormalRiskModel_params(ctx context.C return fc, nil } +func (ec *executionContext) _LogNormalRiskModel_riskFactorOverride(ctx context.Context, field graphql.CollectedField, obj *vega.LogNormalRiskModel) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogNormalRiskModel_riskFactorOverride(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.RiskFactorOverride, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*vega.RiskFactorOverride) + fc.Result = res + return ec.marshalORiskFactorOverride2ᚖcodeᚗvegaprotocolᚗioᚋvegaᚋprotosᚋvegaᚐRiskFactorOverride(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogNormalRiskModel_riskFactorOverride(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogNormalRiskModel", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "short": + return ec.fieldContext_RiskFactorOverride_short(ctx, field) + case "long": + return ec.fieldContext_RiskFactorOverride_long(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type RiskFactorOverride", field.Name) + }, + } + return fc, nil +} + func (ec *executionContext) _LossSocialization_marketId(ctx context.Context, field graphql.CollectedField, obj *LossSocialization) (ret graphql.Marshaler) { fc, err := ec.fieldContext_LossSocialization_marketId(ctx, field) if err != nil { @@ -86901,6 +86975,94 @@ func (ec *executionContext) fieldContext_RiskFactor_long(ctx context.Context, fi return fc, nil } +func (ec *executionContext) _RiskFactorOverride_short(ctx context.Context, field graphql.CollectedField, obj *vega.RiskFactorOverride) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_RiskFactorOverride_short(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.Short, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_RiskFactorOverride_short(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "RiskFactorOverride", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _RiskFactorOverride_long(ctx context.Context, field graphql.CollectedField, obj *vega.RiskFactorOverride) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_RiskFactorOverride_long(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.Long, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_RiskFactorOverride_long(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "RiskFactorOverride", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + func (ec *executionContext) _ScalingFactors_searchLevel(ctx context.Context, field graphql.CollectedField, obj *vega.ScalingFactors) (ret graphql.Marshaler) { fc, err := ec.fieldContext_ScalingFactors_searchLevel(ctx, field) if err != nil { @@ -101234,6 +101396,8 @@ func (ec *executionContext) fieldContext_UpdateMarketLogNormalRiskModel_logNorma return ec.fieldContext_LogNormalRiskModel_tau(ctx, field) case "params": return ec.fieldContext_LogNormalRiskModel_params(ctx, field) + case "riskFactorOverride": + return ec.fieldContext_LogNormalRiskModel_riskFactorOverride(ctx, field) } return nil, fmt.Errorf("no field named %q was found under type LogNormalRiskModel", field.Name) }, @@ -119211,6 +119375,8 @@ func (ec *executionContext) _LogNormalRiskModel(ctx context.Context, sel ast.Sel if out.Values[i] == graphql.Null { out.Invalids++ } + case "riskFactorOverride": + out.Values[i] = ec._LogNormalRiskModel_riskFactorOverride(ctx, field, obj) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -135588,6 +135754,50 @@ func (ec *executionContext) _RiskFactor(ctx context.Context, sel ast.SelectionSe return out } +var riskFactorOverrideImplementors = []string{"RiskFactorOverride"} + +func (ec *executionContext) _RiskFactorOverride(ctx context.Context, sel ast.SelectionSet, obj *vega.RiskFactorOverride) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, riskFactorOverrideImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("RiskFactorOverride") + case "short": + out.Values[i] = ec._RiskFactorOverride_short(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "long": + out.Values[i] = ec._RiskFactorOverride_long(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + var scalingFactorsImplementors = []string{"ScalingFactors"} func (ec *executionContext) _ScalingFactors(ctx context.Context, sel ast.SelectionSet, obj *vega.ScalingFactors) graphql.Marshaler { @@ -154504,6 +154714,13 @@ func (ec *executionContext) marshalORiskFactor2ᚖcodeᚗvegaprotocolᚗioᚋveg return ec._RiskFactor(ctx, sel, v) } +func (ec *executionContext) marshalORiskFactorOverride2ᚖcodeᚗvegaprotocolᚗioᚋvegaᚋprotosᚋvegaᚐRiskFactorOverride(ctx context.Context, sel ast.SelectionSet, v *vega.RiskFactorOverride) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._RiskFactorOverride(ctx, sel, v) +} + func (ec *executionContext) marshalORiskModel2codeᚗvegaprotocolᚗioᚋvegaᚋdatanodeᚋgatewayᚋgraphqlᚐRiskModel(ctx context.Context, sel ast.SelectionSet, v RiskModel) graphql.Marshaler { if v == nil { return graphql.Null diff --git a/datanode/gateway/graphql/gqlgen.yml b/datanode/gateway/graphql/gqlgen.yml index 642744f78fa..dfce9d545a9 100644 --- a/datanode/gateway/graphql/gqlgen.yml +++ b/datanode/gateway/graphql/gqlgen.yml @@ -827,3 +827,5 @@ models: model: code.vegaprotocol.io/vega/protos/data-node/api/v2.AMMEdge AMMConnection: model: code.vegaprotocol.io/vega/protos/data-node/api/v2.AMMConnection + RiskFactorOverride: + model: code.vegaprotocol.io/vega/protos/vega.RiskFactorOverride diff --git a/datanode/gateway/graphql/schema.graphql b/datanode/gateway/graphql/schema.graphql index e4ce2917e27..646d963111a 100644 --- a/datanode/gateway/graphql/schema.graphql +++ b/datanode/gateway/graphql/schema.graphql @@ -2079,6 +2079,17 @@ type LogNormalRiskModel { tau: Float! "Parameters for the log normal risk model" params: LogNormalModelParams! + "An optional override for the risk factor calculated by the risk model." + riskFactorOverride: RiskFactorOverride +} + + +"Risk factor override to control stable leverage" +type RiskFactorOverride { + "Short Risk factor value" + short: String! + "Long Risk factor value" + long: String! } "A type of simple/dummy risk model where you can specify the risk factor long and short in params"