code.vegaprotocol.io/vega@v0.79.0/datanode/gateway/graphql/spot_resolver.go (about) 1 // Copyright (C) 2023 Gobalsky Labs Limited 2 // 3 // This program is free software: you can redistribute it and/or modify 4 // it under the terms of the GNU Affero General Public License as 5 // published by the Free Software Foundation, either version 3 of the 6 // License, or (at your option) any later version. 7 // 8 // This program is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU Affero General Public License for more details. 12 // 13 // You should have received a copy of the GNU Affero General Public License 14 // along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16 package gql 17 18 import ( 19 "context" 20 "errors" 21 22 "code.vegaprotocol.io/vega/protos/vega" 23 types "code.vegaprotocol.io/vega/protos/vega" 24 ) 25 26 type spotResolver VegaResolverRoot 27 28 func (r *spotResolver) BaseAsset(ctx context.Context, obj *vega.Spot) (*vega.Asset, error) { 29 return r.r.getAssetByID(ctx, obj.BaseAsset) 30 } 31 32 func (r *spotResolver) QuoteAsset(ctx context.Context, obj *vega.Spot) (*vega.Asset, error) { 33 return r.r.getAssetByID(ctx, obj.QuoteAsset) 34 } 35 36 type spotProductResolver VegaResolverRoot 37 38 func (r spotProductResolver) BaseAsset(ctx context.Context, obj *vega.SpotProduct) (*vega.Asset, error) { 39 return r.r.getAssetByID(ctx, obj.BaseAsset) 40 } 41 42 func (r spotProductResolver) QuoteAsset(ctx context.Context, obj *vega.SpotProduct) (*vega.Asset, error) { 43 return r.r.getAssetByID(ctx, obj.QuoteAsset) 44 } 45 46 type updateSpotMarketResolver VegaResolverRoot 47 48 func (r updateSpotMarketResolver) UpdateSpotMarketConfiguration(ctx context.Context, obj *vega.UpdateSpotMarket) (*vega.UpdateSpotMarketConfiguration, error) { 49 return obj.Changes, nil 50 } 51 52 type updateSpotMarketConfigurationResolver VegaResolverRoot 53 54 func (r *updateSpotMarketConfigurationResolver) EnableTxReordering(ctx context.Context, obj *types.UpdateSpotMarketConfiguration) (bool, error) { 55 return obj.EnableTransactionReordering, nil 56 } 57 58 // Instrument implements UpdateSpotMarketConfigurationResolver. 59 func (r *updateSpotMarketConfigurationResolver) Instrument(ctx context.Context, obj *types.UpdateSpotMarketConfiguration) (*UpdateSpotInstrumentConfiguration, error) { 60 return &UpdateSpotInstrumentConfiguration{ 61 Name: obj.Instrument.Name, 62 Code: obj.Instrument.Code, 63 }, nil 64 } 65 66 func (r updateSpotMarketConfigurationResolver) PriceMonitoringParameters(ctx context.Context, obj *vega.UpdateSpotMarketConfiguration) (*PriceMonitoringParameters, error) { 67 return PriceMonitoringParametersFromProto(obj.PriceMonitoringParameters) 68 } 69 70 func (r updateSpotMarketConfigurationResolver) TargetStakeParameters(ctx context.Context, obj *vega.UpdateSpotMarketConfiguration) (*TargetStakeParameters, error) { 71 return &TargetStakeParameters{ 72 TimeWindow: int(obj.TargetStakeParameters.TimeWindow), 73 ScalingFactor: obj.TargetStakeParameters.ScalingFactor, 74 }, nil 75 } 76 77 func (r updateSpotMarketConfigurationResolver) RiskParameters(ctx context.Context, obj *vega.UpdateSpotMarketConfiguration) (RiskModel, error) { 78 switch model := obj.RiskParameters.(type) { 79 case *vega.UpdateSpotMarketConfiguration_Simple: 80 return model.Simple, nil 81 case *vega.UpdateSpotMarketConfiguration_LogNormal: 82 return model.LogNormal, nil 83 default: 84 return nil, errors.New("unknown risk model") 85 } 86 } 87 88 func (r updateSpotMarketConfigurationResolver) LiquiditySLAParams(ctx context.Context, obj *vega.UpdateSpotMarketConfiguration) (*vega.LiquiditySLAParameters, error) { 89 return obj.SlaParams, nil 90 } 91 92 type newSpotMarketResolver VegaResolverRoot 93 94 func (r *newSpotMarketResolver) EnableTxReordering(ctx context.Context, obj *types.NewSpotMarket) (bool, error) { 95 return obj.Changes.EnableTransactionReordering, nil 96 } 97 98 func (r *newSpotMarketResolver) AllowedSellers(ctx context.Context, obj *types.NewSpotMarket) ([]string, error) { 99 return obj.Changes.AllowedSellers, nil 100 } 101 102 func (r *newSpotMarketResolver) TickSize(_ context.Context, obj *types.NewSpotMarket) (string, error) { 103 return obj.Changes.TickSize, nil 104 } 105 106 func (r newSpotMarketResolver) Instrument(ctx context.Context, obj *vega.NewSpotMarket) (*vega.InstrumentConfiguration, error) { 107 return obj.Changes.Instrument, nil 108 } 109 110 func (r newSpotMarketResolver) PriceDecimalPlaces(ctx context.Context, obj *vega.NewSpotMarket) (int, error) { 111 return int(obj.Changes.PriceDecimalPlaces), nil 112 } 113 114 func (r newSpotMarketResolver) Metadata(ctx context.Context, obj *vega.NewSpotMarket) ([]string, error) { 115 return obj.Changes.Metadata, nil 116 } 117 118 func (r newSpotMarketResolver) PriceMonitoringParameters(ctx context.Context, obj *vega.NewSpotMarket) (*PriceMonitoringParameters, error) { 119 return PriceMonitoringParametersFromProto(obj.Changes.PriceMonitoringParameters) 120 } 121 122 func (r newSpotMarketResolver) TargetStakeParameters(ctx context.Context, obj *vega.NewSpotMarket) (*TargetStakeParameters, error) { 123 return &TargetStakeParameters{ 124 TimeWindow: int(obj.Changes.TargetStakeParameters.TimeWindow), 125 ScalingFactor: obj.Changes.TargetStakeParameters.ScalingFactor, 126 }, nil 127 } 128 129 func (r newSpotMarketResolver) RiskParameters(ctx context.Context, obj *vega.NewSpotMarket) (RiskModel, error) { 130 switch model := obj.Changes.RiskParameters.(type) { 131 case *vega.NewSpotMarketConfiguration_Simple: 132 return model.Simple, nil 133 case *vega.NewSpotMarketConfiguration_LogNormal: 134 return model.LogNormal, nil 135 default: 136 return nil, errors.New("unknown risk model") 137 } 138 } 139 140 func (r newSpotMarketResolver) SizeDecimalPlaces(ctx context.Context, obj *vega.NewSpotMarket) (int, error) { 141 return int(obj.Changes.SizeDecimalPlaces), nil 142 } 143 144 func (r newSpotMarketResolver) LiquiditySLAParams(ctx context.Context, obj *vega.NewSpotMarket) (*vega.LiquiditySLAParameters, error) { 145 return obj.Changes.SlaParams, nil 146 } 147 148 func (r newSpotMarketResolver) LiquidityFeeSettings(ctx context.Context, obj *vega.NewSpotMarket) (*vega.LiquidityFeeSettings, error) { 149 return obj.Changes.LiquidityFeeSettings, nil 150 }