netparams

package
v0.74.0-preview.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 9, 2024 License: AGPL-3.0 Imports: 22 Imported by: 6

Documentation

Index

Constants

View Source
const (
	SpotMarketTradingEnabled  = "limits.markets.proposeSpotEnabled"
	PerpsMarketTradingEnabled = "limits.markets.proposePerpetualEnabled"
	EthereumOraclesEnabled    = "ethereum.oracles.enabled"

	MarketMarginScalingFactors        = "market.margin.scalingFactors"
	MarketFeeFactorsMakerFee          = "market.fee.factors.makerFee"
	MarketFeeFactorsInfrastructureFee = "market.fee.factors.infrastructureFee"
	MarketAuctionMinimumDuration      = "market.auction.minimumDuration"
	MarketAuctionMaximumDuration      = "market.auction.maximumDuration"

	MarketTargetStakeTimeWindow               = "market.stake.target.timeWindow"
	MarketTargetStakeScalingFactor            = "market.stake.target.scalingFactor"
	MarketLiquidityTargetStakeTriggeringRatio = "market.liquidity.targetstake.triggering.ratio"
	MarketValueWindowLength                   = "market.value.windowLength"
	MarketPriceMonitoringDefaultParameters    = "market.monitor.price.defaultParameters"

	MarketMinLpStakeQuantumMultiple          = "market.liquidityProvision.minLpStakeQuantumMultiple"
	MarketProbabilityOfTradingTauScaling     = "market.liquidity.probabilityOfTrading.tau.scaling"
	MarketMinProbabilityOfTradingForLPOrders = "market.liquidity.minimum.probabilityOfTrading.lpOrders"
	MarketSuccessorLaunchWindow              = "market.liquidity.successorLaunchWindowLength"

	MarketLiquidityProvisionShapesMaxSize            = "market.liquidityProvision.shapes.maxSize"
	MarketLiquidityTargetStakeTriggeringRatioXXX     = "market.liquidity.targetstake.triggering.ratio"
	MarketLiquidityBondPenaltyParameter              = "market.liquidity.bondPenaltyParameter"
	MarketLiquidityEarlyExitPenalty                  = "market.liquidity.earlyExitPenalty"
	MarketLiquidityMaximumLiquidityFeeFactorLevel    = "market.liquidity.maximumLiquidityFeeFactorLevel"
	MarketLiquiditySLANonPerformanceBondPenaltyMax   = "market.liquidity.sla.nonPerformanceBondPenaltyMax"
	MarketLiquiditySLANonPerformanceBondPenaltySlope = "market.liquidity.sla.nonPerformanceBondPenaltySlope"
	MarketLiquidityStakeToCCYVolume                  = "market.liquidity.stakeToCcyVolume"
	MarketLiquidityProvidersFeeCalculationTimeStep   = "market.liquidity.providersFeeCalculationTimeStep"

	RewardAsset = "reward.asset"

	// market proposal parameters.
	GovernanceProposalMarketMinClose              = "governance.proposal.market.minClose"
	GovernanceProposalMarketMaxClose              = "governance.proposal.market.maxClose"
	GovernanceProposalMarketMinEnact              = "governance.proposal.market.minEnact"
	GovernanceProposalMarketMaxEnact              = "governance.proposal.market.maxEnact"
	GovernanceProposalMarketRequiredParticipation = "governance.proposal.market.requiredParticipation"
	GovernanceProposalMarketRequiredMajority      = "governance.proposal.market.requiredMajority"
	GovernanceProposalMarketMinProposerBalance    = "governance.proposal.market.minProposerBalance"
	GovernanceProposalMarketMinVoterBalance       = "governance.proposal.market.minVoterBalance"

	// asset proposal parameters.
	GovernanceProposalAssetMinClose              = "governance.proposal.asset.minClose"
	GovernanceProposalAssetMaxClose              = "governance.proposal.asset.maxClose"
	GovernanceProposalAssetMinEnact              = "governance.proposal.asset.minEnact"
	GovernanceProposalAssetMaxEnact              = "governance.proposal.asset.maxEnact"
	GovernanceProposalAssetRequiredParticipation = "governance.proposal.asset.requiredParticipation"
	GovernanceProposalAssetRequiredMajority      = "governance.proposal.asset.requiredMajority"
	GovernanceProposalAssetMinProposerBalance    = "governance.proposal.asset.minProposerBalance"
	GovernanceProposalAssetMinVoterBalance       = "governance.proposal.asset.minVoterBalance"

	// update asset proposal parameters.
	GovernanceProposalUpdateAssetMinClose              = "governance.proposal.updateAsset.minClose"
	GovernanceProposalUpdateAssetMaxClose              = "governance.proposal.updateAsset.maxClose"
	GovernanceProposalUpdateAssetMinEnact              = "governance.proposal.updateAsset.minEnact"
	GovernanceProposalUpdateAssetMaxEnact              = "governance.proposal.updateAsset.maxEnact"
	GovernanceProposalUpdateAssetRequiredParticipation = "governance.proposal.updateAsset.requiredParticipation"
	GovernanceProposalUpdateAssetRequiredMajority      = "governance.proposal.updateAsset.requiredMajority"
	GovernanceProposalUpdateAssetMinProposerBalance    = "governance.proposal.updateAsset.minProposerBalance"
	GovernanceProposalUpdateAssetMinVoterBalance       = "governance.proposal.updateAsset.minVoterBalance"

	// updateMarket proposal parameters.
	GovernanceProposalUpdateMarketMinClose                   = "governance.proposal.updateMarket.minClose"
	GovernanceProposalUpdateMarketMaxClose                   = "governance.proposal.updateMarket.maxClose"
	GovernanceProposalUpdateMarketMinEnact                   = "governance.proposal.updateMarket.minEnact"
	GovernanceProposalUpdateMarketMaxEnact                   = "governance.proposal.updateMarket.maxEnact"
	GovernanceProposalUpdateMarketRequiredParticipation      = "governance.proposal.updateMarket.requiredParticipation"
	GovernanceProposalUpdateMarketRequiredMajority           = "governance.proposal.updateMarket.requiredMajority"
	GovernanceProposalUpdateMarketMinProposerBalance         = "governance.proposal.updateMarket.minProposerBalance"
	GovernanceProposalUpdateMarketMinVoterBalance            = "governance.proposal.updateMarket.minVoterBalance"
	GovernanceProposalUpdateMarketMinProposerEquityLikeShare = "governance.proposal.updateMarket.minProposerEquityLikeShare"
	GovernanceProposalUpdateMarketRequiredParticipationLP    = "governance.proposal.updateMarket.requiredParticipationLP"
	GovernanceProposalUpdateMarketRequiredMajorityLP         = "governance.proposal.updateMarket.requiredMajorityLP"

	// updateNetParam proposal parameters.
	GovernanceProposalUpdateNetParamMinClose              = "governance.proposal.updateNetParam.minClose"
	GovernanceProposalUpdateNetParamMaxClose              = "governance.proposal.updateNetParam.maxClose"
	GovernanceProposalUpdateNetParamMinEnact              = "governance.proposal.updateNetParam.minEnact"
	GovernanceProposalUpdateNetParamMaxEnact              = "governance.proposal.updateNetParam.maxEnact"
	GovernanceProposalUpdateNetParamRequiredParticipation = "governance.proposal.updateNetParam.requiredParticipation"
	GovernanceProposalUpdateNetParamRequiredMajority      = "governance.proposal.updateNetParam.requiredMajority"
	GovernanceProposalUpdateNetParamMinProposerBalance    = "governance.proposal.updateNetParam.minProposerBalance"
	GovernanceProposalUpdateNetParamMinVoterBalance       = "governance.proposal.updateNetParam.minVoterBalance"

	// freeform proposal parameters.
	GovernanceProposalFreeformMinClose              = "governance.proposal.freeform.minClose"
	GovernanceProposalFreeformMaxClose              = "governance.proposal.freeform.maxClose"
	GovernanceProposalFreeformRequiredParticipation = "governance.proposal.freeform.requiredParticipation"
	GovernanceProposalFreeformRequiredMajority      = "governance.proposal.freeform.requiredMajority"
	GovernanceProposalFreeformMinProposerBalance    = "governance.proposal.freeform.minProposerBalance"
	GovernanceProposalFreeformMinVoterBalance       = "governance.proposal.freeform.minVoterBalance"

	// governance transfer proposal parameters.
	GovernanceProposalTransferMinClose              = "governance.proposal.transfer.minClose"
	GovernanceProposalTransferMaxClose              = "governance.proposal.transfer.maxClose"
	GovernanceProposalTransferMinEnact              = "governance.proposal.transfer.minEnact"
	GovernanceProposalTransferMaxEnact              = "governance.proposal.transfer.maxEnact"
	GovernanceProposalTransferRequiredParticipation = "governance.proposal.transfer.requiredParticipation"
	GovernanceProposalTransferRequiredMajority      = "governance.proposal.transfer.requiredMajority"
	GovernanceProposalTransferMinProposerBalance    = "governance.proposal.transfer.minProposerBalance"
	GovernanceProposalTransferMinVoterBalance       = "governance.proposal.transfer.minVoterBalance"
	GovernanceTransferMaxAmount                     = "governance.proposal.transfer.maxAmount"
	GovernanceTransferMaxFraction                   = "governance.proposal.transfer.maxFraction"

	// Network parameters for referral program update.
	GovernanceProposalReferralProgramMinClose              = "governance.proposal.referralProgram.minClose"
	GovernanceProposalReferralProgramMaxClose              = "governance.proposal.referralProgram.maxClose"
	GovernanceProposalReferralProgramMinEnact              = "governance.proposal.referralProgram.minEnact"
	GovernanceProposalReferralProgramMaxEnact              = "governance.proposal.referralProgram.maxEnact"
	GovernanceProposalReferralProgramRequiredParticipation = "governance.proposal.referralProgram.requiredParticipation"
	GovernanceProposalReferralProgramRequiredMajority      = "governance.proposal.referralProgram.requiredMajority"
	GovernanceProposalReferralProgramMinProposerBalance    = "governance.proposal.referralProgram.minProposerBalance"
	GovernanceProposalReferralProgramMinVoterBalance       = "governance.proposal.referralProgram.minVoterBalance"

	// Network parameters for referral program update.
	GovernanceProposalVolumeDiscountProgramMinClose              = "governance.proposal.VolumeDiscountProgram.minClose"
	GovernanceProposalVolumeDiscountProgramMaxClose              = "governance.proposal.VolumeDiscountProgram.maxClose"
	GovernanceProposalVolumeDiscountProgramMinEnact              = "governance.proposal.VolumeDiscountProgram.minEnact"
	GovernanceProposalVolumeDiscountProgramMaxEnact              = "governance.proposal.VolumeDiscountProgram.maxEnact"
	GovernanceProposalVolumeDiscountProgramRequiredParticipation = "governance.proposal.VolumeDiscountProgram.requiredParticipation"
	GovernanceProposalVolumeDiscountProgramRequiredMajority      = "governance.proposal.VolumeDiscountProgram.requiredMajority"
	GovernanceProposalVolumeDiscountProgramMinProposerBalance    = "governance.proposal.VolumeDiscountProgram.minProposerBalance"
	GovernanceProposalVolumeDiscountProgramMinVoterBalance       = "governance.proposal.VolumeDiscountProgram.minVoterBalance"

	// staking and delegation reward network params.
	StakingAndDelegationRewardPayoutFraction          = "reward.staking.delegation.payoutFraction"
	StakingAndDelegationRewardMaxPayoutPerParticipant = "reward.staking.delegation.maxPayoutPerParticipant"
	StakingAndDelegationRewardPayoutDelay             = "reward.staking.delegation.payoutDelay"
	StakingAndDelegationRewardDelegatorShare          = "reward.staking.delegation.delegatorShare"
	StakingAndDelegationRewardMinimumValidatorStake   = "reward.staking.delegation.minimumValidatorStake"
	StakingAndDelegationRewardCompetitionLevel        = "reward.staking.delegation.competitionLevel"
	StakingAndDelegationRewardMaxPayoutPerEpoch       = "reward.staking.delegation.maxPayoutPerEpoch"
	StakingAndDelegationRewardsMinValidators          = "reward.staking.delegation.minValidators"
	StakingAndDelegationRewardOptimalStakeMultiplier  = "reward.staking.delegation.optimalStakeMultiplier"

	RewardMarketCreationQuantumMultiple       = "rewards.marketCreationQuantumMultiple"
	MinEpochsInTeamForMetricRewardEligibility = "rewards.team.minEpochsInTeam"

	// spam policies params.
	SpamProtectionMaxVotes                         = "spam.protection.max.votes"
	SpamProtectionMinTokensForVoting               = "spam.protection.voting.min.tokens"
	SpamProtectionMaxProposals                     = "spam.protection.max.proposals"
	SpamProtectionMinTokensForProposal             = "spam.protection.proposal.min.tokens"
	SpamProtectionMaxDelegations                   = "spam.protection.max.delegations"
	SpamProtectionMinTokensForDelegation           = "spam.protection.delegation.min.tokens"
	SpamProtectionMaxBatchSize                     = "spam.protection.max.batchSize"
	SpamProtectionMinimumWithdrawalQuantumMultiple = "spam.protection.minimumWithdrawalQuantumMultiple"
	SpamProtectionMinMultisigUpdates               = "spam.protection.minMultisigUpdates"
	SpamProtectionMaxStopOrdersPerMarket           = "spam.protection.max.stopOrdersPerMarket"

	SpamProtectionMaxCreateReferralSet     = "spam.protection.max.createReferralSet"
	SpamProtectionMaxUpdateReferralSet     = "spam.protection.max.updateReferralSet"
	SpamProtectionMaxApplyReferralCode     = "spam.protection.max.applyReferralCode"
	SpamProtectionBalanceSnapshotFrequency = "spam.protection.balanceSnapshotFrequency"
	SpamProtectionApplyReferralMinFunds    = "spam.protection.applyReferral.min.funds"
	SpamProtectionReferralSetMinFunds      = "spam.protection.referralSet.min.funds"

	SpamProtectionMaxUpdatePartyProfile = "spam.protection.max.updatePartyProfile"
	SpamProtectionUpdateProfileMinFunds = "spam.protection.updatePartyProfile.min.funds"

	// blockchain specifics?
	BlockchainsEthereumConfig    = "blockchains.ethereumConfig"
	BlockchainsEthereumL2Configs = "blockchains.ethereumRpcAndEvmCompatDataSourcesConfig"

	// length of epoch in seconds.
	ValidatorsEpochLength = "validators.epoch.length"
	// delegation params.
	DelegationMinAmount = "validators.delegation.minAmount"

	ValidatorsVoteRequired = "validators.vote.required"

	// network related parameters.
	NetworkCheckpointTimeElapsedBetweenCheckpoints = "network.checkpoint.timeElapsedBetweenCheckpoints"

	// snapshot parameters.
	SnapshotIntervalLength = "snapshot.interval.length"

	FloatingPointUpdatesDuration = "network.floatingPointUpdates.delay"

	// validators by stake.
	NumberOfTendermintValidators               = "network.validators.tendermint.number"
	ValidatorIncumbentBonus                    = "network.validators.incumbentBonus"
	NumberEthMultisigSigners                   = "network.validators.multisig.numberOfSigners"
	ErsatzvalidatorsRewardFactor               = "network.validators.ersatz.rewardFactor"
	MultipleOfTendermintValidatorsForEtsatzSet = "network.validators.ersatz.multipleOfTendermintValidators"
	MinimumEthereumEventsForNewValidator       = "network.validators.minimumEthereumEventsForNewValidator"

	TransferFeeFactor                       = "transfer.fee.factor"
	TransferMinTransferQuantumMultiple      = "transfer.minTransferQuantumMultiple"
	TransferMaxCommandsPerEpoch             = "spam.protection.maxUserTransfersPerEpoch"
	TransferFeeMaxQuantumAmount             = "transfer.fee.maxQuantumAmount"
	TransferFeeDiscountDecayFraction        = "transfer.feeDiscountDecayFraction"
	TransferFeeDiscountMinimumTrackedAmount = "transfer.feeDiscountMinimumTrackedAmount"

	// proof of work.
	SpamPoWNumberOfPastBlocks   = "spam.pow.numberOfPastBlocks"
	SpamPoWDifficulty           = "spam.pow.difficulty"
	SpamPoWHashFunction         = "spam.pow.hashFunction"
	SpamPoWNumberOfTxPerBlock   = "spam.pow.numberOfTxPerBlock"
	SpamPoWIncreasingDifficulty = "spam.pow.increaseDifficulty"

	// limits.
	LimitsProposeMarketEnabledFrom = "limits.markets.proposeEnabledFrom"
	LimitsProposeAssetEnabledFrom  = "limits.assets.proposeEnabledFrom"

	MaxGasPerBlock   = "network.transactions.maxgasperblock"
	DefaultGas       = "network.transaction.defaultgas"
	MinBlockCapacity = "network.transactions.minBlockCapacity"

	// network wide limits.
	MaxPeggedOrders = "limits.markets.maxPeggedOrders"
	// MTM interval.
	MarkPriceUpdateMaximumFrequency = "network.markPriceUpdateMaximumFrequency"
	// interval for updating internal composite price for funding payment in perps.
	InternalCompositePriceUpdateFrequency = "network.internalCompositePriceUpdateFrequency"

	// how much to scale the number of proposed blocks used for performance calculation.
	ValidatorPerformanceScalingFactor = "validator.performance.scaling.factor"

	RewardsVestingBaseRate        = "rewards.vesting.baseRate"
	RewardsVestingMinimumTransfer = "rewards.vesting.minimumTransfer"
	RewardsVestingBenefitTiers    = "rewards.vesting.benefitTiers"

	// Referral program.
	ReferralProgramMaxReferralTiers                        = "referralProgram.maxReferralTiers"
	ReferralProgramMaxReferralRewardFactor                 = "referralProgram.maxReferralRewardFactor"
	ReferralProgramMaxReferralDiscountFactor               = "referralProgram.maxReferralDiscountFactor"
	ReferralProgramMaxPartyNotionalVolumeByQuantumPerEpoch = "referralProgram.maxPartyNotionalVolumeByQuantumPerEpoch"
	ReferralProgramMinStakedVegaTokens                     = "referralProgram.minStakedVegaTokens"
	ReferralProgramMaxReferralRewardProportion             = "referralProgram.maxReferralRewardProportion"

	// volume discount program.
	VolumeDiscountProgramMaxBenefitTiers         = "volumeDiscountProgram.maxBenefitTiers"
	VolumeDiscountProgramMaxVolumeDiscountFactor = "volumeDiscountProgram.maxVolumeDiscountFactor"

	RewardsActivityStreakBenefitTiers          = "rewards.activityStreak.benefitTiers"
	RewardsActivityStreakInactivityLimit       = "rewards.activityStreak.inactivityLimit"
	RewardsActivityStreakMinQuantumOpenVolume  = "rewards.activityStreak.minQuantumOpenVolume"
	RewardsActivityStreakMinQuantumTradeVolume = "rewards.activityStreak.minQuantumTradeVolume"
)

Variables

View Source
var (
	ErrUnknownKey                        = errors.New("unknown key")
	ErrNetworkParameterUpdateDisabledFor = func(key string) error {
		return fmt.Errorf("network parameter update disabled for %v", key)
	}
	ErrNetworkParameterDeprecated = func(key string) error {
		return fmt.Errorf("network parameter has been deprecated: %v", key)
	}
)
View Source
var AllKeys = map[string]struct{}{}/* 179 elements not displayed */
View Source
var ErrNoNetParamsGenesisState = errors.New("no network parameters genesis state")

Functions

func DecimalDependentLT added in v0.61.0

func DecimalDependentLT(otherName string, other *Decimal) func(num.Decimal) error

func DecimalDependentLTE added in v0.61.0

func DecimalDependentLTE(otherName string, other *Decimal) func(num.Decimal) error

func DecimalGT

func DecimalGT(f num.Decimal) func(num.Decimal) error

func DecimalGTE

func DecimalGTE(f num.Decimal) func(num.Decimal) error

func DecimalLT

func DecimalLT(f num.Decimal) func(num.Decimal) error

func DecimalLTE

func DecimalLTE(f num.Decimal) func(num.Decimal) error

func DurationGT

func DurationGT(i time.Duration) func(time.Duration) error

func DurationGTE

func DurationGTE(i time.Duration) func(time.Duration) error

func DurationLT

func DurationLT(i time.Duration) func(time.Duration) error

func DurationLTE

func DurationLTE(i time.Duration) func(time.Duration) error

func IntGT

func IntGT(i int64) func(int64) error

func IntGTE

func IntGTE(i int64) func(int64) error

func IntLT

func IntLT(i int64) func(int64) error

func IntLTE

func IntLTE(i int64) func(int64) error

func PriceMonitoringParametersValidation added in v0.55.0

func PriceMonitoringParametersValidation(i interface{}, _ interface{}) error

func TimeNonZero

func TimeNonZero() func(time.Time) error

func UintGT

func UintGT(i *num.Uint) func(*num.Uint) error

func UintGTE

func UintGTE(i *num.Uint) func(*num.Uint) error

func UintLT

func UintLT(i *num.Uint) func(*num.Uint) error

func UintLTE

func UintLTE(i *num.Uint) func(*num.Uint) error

Types

type AddParamRules

type AddParamRules struct {
	Param string
	Rules []interface{}
}

func ParamDurationRules

func ParamDurationRules(key string, rules ...DurationRule) AddParamRules