Documentation ¶
Index ¶
- Variables
- type Config
- type Engine
- func (e *Engine) BuildLiquidityFeeDistributionTransfer(shares map[string]num.Decimal, acc *types.Account) events.FeesTransfer
- func (e *Engine) CalculateFeeForPositionResolution(trades []*types.Trade, closedMPs []events.MarketPosition) (events.FeesTransfer, map[string]*types.Fee)
- func (e *Engine) CalculateForAuctionMode(trades []*types.Trade) (events.FeesTransfer, error)
- func (e *Engine) CalculateForContinuousMode(trades []*types.Trade) (events.FeesTransfer, error)
- func (e *Engine) CalculateForFrequentBatchesAuctionMode(trades []*types.Trade) (events.FeesTransfer, error)
- func (e *Engine) GetLiquidityFee() num.Decimal
- func (e *Engine) OnFeeFactorsInfrastructureFeeUpdate(f num.Decimal)
- func (e *Engine) OnFeeFactorsMakerFeeUpdate(f num.Decimal)
- func (e *Engine) ReloadConf(cfg Config)
- func (e *Engine) SetLiquidityFee(v num.Decimal)
- func (e *Engine) UpdateFeeFactors(fees types.Fees) error
Constants ¶
This section is empty.
Variables ¶
var ( ErrEmptyTrades = errors.New("empty trades slice sent to fees") ErrInvalidFeeFactor = errors.New("fee factors must be positive") )
Functions ¶
This section is empty.
Types ¶
type Config ¶
Config represent the configuration of the fee engine.
func NewDefaultConfig ¶
func NewDefaultConfig() Config
NewDefaultConfig creates an instance of the package specific configuration, given a pointer to a logger instance to be used for logging within the package.
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
func (*Engine) BuildLiquidityFeeDistributionTransfer ¶
func (e *Engine) BuildLiquidityFeeDistributionTransfer(shares map[string]num.Decimal, acc *types.Account) events.FeesTransfer
BuildLiquidityFeeDistributionTransfer returns the set of transfers that will be used by the collateral engine to distribute the fees. As shares are represented in float64 and fees are uint64, shares are floored and the remainder is assigned to the last party on the share map. Note that the map is sorted lexicographically to keep determinism.
func (*Engine) CalculateFeeForPositionResolution ¶
func (e *Engine) CalculateFeeForPositionResolution( trades []*types.Trade, closedMPs []events.MarketPosition, ) (events.FeesTransfer, map[string]*types.Fee)
func (*Engine) CalculateForAuctionMode ¶
CalculateForAuctionMode calculate the fee for trades which were produced from a market running in in auction trading mode. A list FeesTransfer is produced each containing fees transfer from a single party.
func (*Engine) CalculateForContinuousMode ¶
CalculateForContinuousMode calculate the fee for trades which were produced from a market running in in continuous trading mode. A single FeesTransfer is produced here as all fees are paid by the aggressive order.
func (*Engine) CalculateForFrequentBatchesAuctionMode ¶
func (e *Engine) CalculateForFrequentBatchesAuctionMode( trades []*types.Trade, ) (events.FeesTransfer, error)
CalculateForFrequentBatchesAuctionMode calculate the fee for trades which were produced from a market running in in auction trading mode. A list FeesTransfer is produced each containing fees transfer from a single party.
func (*Engine) GetLiquidityFee ¶
func (*Engine) OnFeeFactorsInfrastructureFeeUpdate ¶
func (*Engine) OnFeeFactorsMakerFeeUpdate ¶
func (*Engine) ReloadConf ¶
ReloadConf is used in order to reload the internal configuration of the fee engine.