code.vegaprotocol.io/vega@v0.79.0/core/execution/config.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 execution
    17  
    18  import (
    19  	"code.vegaprotocol.io/vega/core/fee"
    20  	"code.vegaprotocol.io/vega/core/liquidity/v2"
    21  	"code.vegaprotocol.io/vega/core/matching"
    22  	"code.vegaprotocol.io/vega/core/positions"
    23  	"code.vegaprotocol.io/vega/core/risk"
    24  	"code.vegaprotocol.io/vega/core/settlement"
    25  	"code.vegaprotocol.io/vega/libs/config/encoding"
    26  	"code.vegaprotocol.io/vega/logging"
    27  )
    28  
    29  const (
    30  	// namedLogger is the identifier for package and should ideally match the package name
    31  	// this is simply emitted as a hierarchical label e.g. 'api.grpc'.
    32  	namedLogger = "execution"
    33  )
    34  
    35  // Config is the configuration of the execution package.
    36  type Config struct {
    37  	Level encoding.LogLevel `long:"log-level"`
    38  
    39  	Matching   matching.Config   `group:"Matching"    namespace:"matching"`
    40  	Risk       risk.Config       `group:"Risk"        namespace:"risk"`
    41  	Position   positions.Config  `group:"Position"    namespace:"position"`
    42  	Settlement settlement.Config `group:"Settlement"  namespace:"settlement"`
    43  	Fee        fee.Config        `group:"Fee"         namespace:"fee"`
    44  	Liquidity  liquidity.Config  `group:"LiquidityV2" namespace:"liquidityV2"`
    45  }
    46  
    47  // NewDefaultConfig creates an instance of the package specific configuration, given a
    48  // pointer to a logger instance to be used for logging within the package.
    49  func NewDefaultConfig() Config {
    50  	c := Config{
    51  		Level:      encoding.LogLevel{Level: logging.InfoLevel},
    52  		Matching:   matching.NewDefaultConfig(),
    53  		Risk:       risk.NewDefaultConfig(),
    54  		Position:   positions.NewDefaultConfig(),
    55  		Settlement: settlement.NewDefaultConfig(),
    56  		Fee:        fee.NewDefaultConfig(),
    57  		Liquidity:  liquidity.NewDefaultConfig(),
    58  	}
    59  	return c
    60  }