processor

package
v0.78.0 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2024 License: AGPL-3.0 Imports: 57 Imported by: 0

Documentation

Index

Constants

View Source
const AppVersion = 1

Variables

View Source
var (
	ErrUnexpectedTxPubKey          = errors.New("no one listens to the public keys that signed this oracle data")
	ErrTradingDisabled             = errors.New("trading disabled")
	ErrMarketProposalDisabled      = errors.New("market proposal disabled")
	ErrAssetProposalDisabled       = errors.New("asset proposal disabled")
	ErrEthOraclesDisabled          = errors.New("ethereum oracles disabled")
	ErrOracleNoSubscribers         = errors.New("there are no subscribes to the oracle data")
	ErrSpotMarketProposalDisabled  = errors.New("spot market proposal disabled")
	ErrPerpsMarketProposalDisabled = errors.New("perps market proposal disabled")
	ErrAMMPoolDisabled             = errors.New("amm pool disabled")
	ErrOracleDataNormalization     = func(err error) error {
		return fmt.Errorf("error normalizing incoming oracle data: %w", err)
	}
)
View Source
var (
	ErrNotAnERC20Event                                = errors.New("not an erc20 event")
	ErrNotABuiltinAssetEvent                          = errors.New("not an builtin asset event")
	ErrUnsupportedEventAction                         = errors.New("unsupported event action")
	ErrChainEventAssetListERC20WithoutEnoughSignature = errors.New("chain event for erc20 asset list received with missing node signatures")
	ErrNotBridgeChainID                               = errors.New("not the chainID of any bridge")
)
View Source
var (
	ErrChainEventFromNonValidator             = errors.New("chain event emitted from a non-validator node")
	ErrUnsupportedChainEvent                  = errors.New("unsupported chain event")
	ErrNodeSignatureFromNonValidator          = errors.New("node signature not sent by validator")
	ErrNodeSignatureWithNonValidatorMasterKey = errors.New("node signature not signed with validator master key")
	ErrMarketBatchInstructionTooBig           = func(got, expected uint64) error {
		return fmt.Errorf("market batch instructions too big, got(%d), expected(%d)", got, expected)
	}
	ErrParentMarketAlreadySucceeded = errors.New("parent market already was already succeeded")
)
View Source
var ErrMissingWithdrawERC20Ext = errors.New("missing withdraw submission erc20 ext")

Functions

This section is empty.

Types

type App

type App struct {
	// contains filtered or unexported fields
}

func NewApp

func NewApp(log *logging.Logger,
	vegaPaths paths.Paths,
	config Config,
	cancelFn func(),
	stopBlockchain func() error,
	assets Assets,
	banking Banking,
	broker Broker,
	witness Witness,
	evtForwarder EvtForwarder,
	evtHeartbeat EvtForwarderHeartbeat,
	exec ExecutionEngine,
	ghandler *genesis.Handler,
	gov GovernanceEngine,
	notary Notary,
	stats Stats,
	time TimeService,
	epoch EpochService,
	top ValidatorTopology,
	netp NetworkParameters,
	oracles *Oracle,
	delegation DelegationEngine,
	limits Limits,
	stake StakeVerifier,
	checkpoint Checkpoint,
	spam SpamEngine,
	pow PoWEngine,
	stakingAccounts StakingAccounts,
	snapshot SnapshotEngine,
	stateVarEngine StateVarEngine,
	teamsEngine TeamsEngine,
	referralProgram ReferralProgram,
	volumeDiscountProgram VolumeDiscountProgram,
	volumeRebateProgram VolumeRebateProgram,
	blockchainClient BlockchainClient,
	primaryMultisig ERC20MultiSigTopology,
	secondaryMultisig ERC20MultiSigTopology,
	version string,
	protocolUpgradeService ProtocolUpgradeService,
	codec abci.Codec,
	gastimator *Gastimator,
	ethCallEngine EthCallEngine,
	balanceChecker BalanceChecker,
	partiesEngine PartiesEngine,
	txCache TxCache,
) *App

func (*App) Abci

func (app *App) Abci() *abci.App

func (*App) ApplyReferralCode added in v0.73.0

func (app *App) ApplyReferralCode(ctx context.Context, tx abci.Tx) error

func (*App) CheckAmendAmmForSpam added in v0.77.0

func (app *App) CheckAmendAmmForSpam(_ context.Context, tx abci.Tx) error

func (*App) CheckAmendOrderForSpam added in v0.77.0

func (app *App) CheckAmendOrderForSpam(_ context.Context, tx abci.Tx) error

func (*App) CheckApplyReferralCode added in v0.73.0

func (app *App) CheckApplyReferralCode(_ context.Context, tx abci.Tx) error

func (*App) CheckBatchMarketInstructions added in v0.55.0

func (app *App) CheckBatchMarketInstructions(_ context.Context, tx abci.Tx) error

func (*App) CheckBatchMarketInstructionsW added in v0.55.0

func (app *App) CheckBatchMarketInstructionsW(
	f func(context.Context, abci.Tx) error,
) func(context.Context, abci.Tx) error

func (*App) CheckBatchPropose added in v0.74.0

func (app *App) CheckBatchPropose(_ context.Context, tx abci.Tx, deterministicBatchID string) error

func (*App) CheckBatchProposeW added in v0.74.0

func (app *App) CheckBatchProposeW(
	f func(context.Context, abci.Tx) error,
) func(context.Context, abci.Tx) error

func (*App) CheckCancelAmmForSpam added in v0.77.0

func (app *App) CheckCancelAmmForSpam(_ context.Context, tx abci.Tx) error

func (*App) CheckCancelLPForSpam added in v0.77.0

func (app *App) CheckCancelLPForSpam(_ context.Context, tx abci.Tx) error

func (*App) CheckCancelOrderForSpam added in v0.77.0

func (app *App) CheckCancelOrderForSpam(_ context.Context, tx abci.Tx) error

func (*App) CheckCreateOrUpdateReferralSet added in v0.74.0

func (app *App) CheckCreateOrUpdateReferralSet(_ context.Context, tx abci.Tx) error

func (*App) CheckLPAmendForSpam added in v0.77.0

func (app *App) CheckLPAmendForSpam(_ context.Context, tx abci.Tx) error

func (*App) CheckLPSubmissionForSpam added in v0.77.0

func (app *App) CheckLPSubmissionForSpam(_ context.Context, tx abci.Tx) error

func (*App) CheckOrderSubmissionForSpam added in v0.77.0

func (app *App) CheckOrderSubmissionForSpam(_ context.Context, tx abci.Tx) error

func (*App) CheckPropose added in v0.56.0

func (app *App) CheckPropose(_ context.Context, tx abci.Tx) error

func (*App) CheckProposeW added in v0.56.0

func (app *App) CheckProposeW(
	f func(context.Context, abci.Tx) error,
) func(context.Context, abci.Tx) error

func (*App) CheckProtocolUpgradeProposal added in v0.55.0

func (app *App) CheckProtocolUpgradeProposal(ctx context.Context, tx abci.Tx) error

func (*App) CheckSubmitAmmForSpam added in v0.77.0

func (app *App) CheckSubmitAmmForSpam(_ context.Context, tx abci.Tx) error

func (*App) CheckSubmitOracleData

func (app *App) CheckSubmitOracleData(_ context.Context, tx abci.Tx) error

func (*App) CheckTransferCommand added in v0.68.0

func (app *App) CheckTransferCommand(_ context.Context, tx abci.Tx) error

func (*App) CreateReferralSet added in v0.73.0

func (app *App) CreateReferralSet(ctx context.Context, tx abci.Tx, deterministicID string) error

func (*App) DeliverAmendAMM added in v0.77.0

func (app *App) DeliverAmendAMM(ctx context.Context, tx abci.Tx, deterministicID string) error

func (*App) DeliverAmendLiquidityProvision

func (app *App) DeliverAmendLiquidityProvision(ctx context.Context, tx abci.Tx, deterministicID string) error

func (*App) DeliverAmendOrder

func (app *App) DeliverAmendOrder(
	ctx context.Context,
	tx abci.Tx,
	deterministicID string,
) (errl error)

func (*App) DeliverAnnounceNode

func (app *App) DeliverAnnounceNode(ctx context.Context, tx abci.Tx) error

func (*App) DeliverBatchMarketInstructions added in v0.55.0

func (app *App) DeliverBatchMarketInstructions(
	ctx context.Context,
	tx abci.Tx,
	deterministicID string,
) error

func (*App) DeliverBatchPropose added in v0.74.0

func (app *App) DeliverBatchPropose(ctx context.Context, tx abci.Tx, deterministicBatchID string) (err error)

func (*App) DeliverCancelAMM added in v0.77.0

func (app *App) DeliverCancelAMM(ctx context.Context, tx abci.Tx, deterministicID string) error

func (*App) DeliverCancelLiquidityProvision

func (app *App) DeliverCancelLiquidityProvision(ctx context.Context, tx abci.Tx) error

func (*App) DeliverCancelOrder

func (app *App) DeliverCancelOrder(ctx context.Context, tx abci.Tx, deterministicID string) error

func (*App) DeliverCancelTransferFunds

func (app *App) DeliverCancelTransferFunds(ctx context.Context, tx abci.Tx) error

func (*App) DeliverChainEvent

func (app *App) DeliverChainEvent(ctx context.Context, tx abci.Tx, id string) error

func (*App) DeliverDelegate

func (app *App) DeliverDelegate(ctx context.Context, tx abci.Tx) (err error)

func (*App) DeliverEthereumKeyRotateSubmission

func (app *App) DeliverEthereumKeyRotateSubmission(ctx context.Context, tx abci.Tx) error

func (*App) DeliverIssueSignatures added in v0.55.0

func (app *App) DeliverIssueSignatures(ctx context.Context, tx abci.Tx) error

func (*App) DeliverKeyRotateSubmission

func (app *App) DeliverKeyRotateSubmission(ctx context.Context, tx abci.Tx) error

func (*App) DeliverLiquidityProvision

func (app *App) DeliverLiquidityProvision(ctx context.Context, tx abci.Tx, deterministicID string) error

func (*App) DeliverNodeSignature

func (app *App) DeliverNodeSignature(ctx context.Context, tx abci.Tx) error

func (*App) DeliverNodeVote

func (app *App) DeliverNodeVote(ctx context.Context, tx abci.Tx) error

func (*App) DeliverPropose

func (app *App) DeliverPropose(ctx context.Context, tx abci.Tx, deterministicID string) error

func (*App) DeliverProtocolUpgradeCommand

func (app *App) DeliverProtocolUpgradeCommand(ctx context.Context, tx abci.Tx) error

func (*App) DeliverStateVarProposal

func (app *App) DeliverStateVarProposal(ctx context.Context, tx abci.Tx) error

func (*App) DeliverStopOrdersCancellation added in v0.72.0

func (app *App) DeliverStopOrdersCancellation(ctx context.Context, tx abci.Tx, deterministicID string) error

func (*App) DeliverStopOrdersSubmission added in v0.72.0

func (app *App) DeliverStopOrdersSubmission(ctx context.Context, tx abci.Tx, deterministicID string) error

func (*App) DeliverSubmitAMM added in v0.77.0

func (app *App) DeliverSubmitAMM(ctx context.Context, tx abci.Tx, deterministicID string) error

func (*App) DeliverSubmitOracleData

func (app *App) DeliverSubmitOracleData(ctx context.Context, tx abci.Tx) error

func (*App) DeliverSubmitOrder

func (app *App) DeliverSubmitOrder(ctx context.Context, tx abci.Tx, deterministicID string) error

func (*App) DeliverTransferFunds

func (app *App) DeliverTransferFunds(ctx context.Context, tx abci.Tx, id string) error

func (*App) DeliverUndelegate

func (app *App) DeliverUndelegate(ctx context.Context, tx abci.Tx) (err error)

func (*App) DeliverValidatorHeartbeat

func (app *App) DeliverValidatorHeartbeat(ctx context.Context, tx abci.Tx) error

func (*App) DeliverVote

func (app *App) DeliverVote(ctx context.Context, tx abci.Tx) error

func (*App) DeliverWithdraw

func (app *App) DeliverWithdraw(ctx context.Context, tx abci.Tx, id string) error

func (*App) Finalize added in v0.74.0

func (app *App) Finalize() []byte

Finalize calculates the app hash for the block ending.

func (*App) Info

func (*App) JoinTeam added in v0.74.0

func (app *App) JoinTeam(ctx context.Context, tx abci.Tx) error

func (*App) OfferSnapshot

func (*App) OnBeginBlock

func (app *App) OnBeginBlock(blockHeight uint64, blockHash string, blockTime time.Time, proposer string, txs []abci.Tx) context.Context

OnBeginBlock updates the internal lastBlockTime value with each new block.

func (*App) OnBlockchainEVMChainConfigUpdate added in v0.76.0

func (app *App) OnBlockchainEVMChainConfigUpdate(_ context.Context, conf any) error

func (*App) OnBlockchainPrimaryEthereumConfigUpdate added in v0.76.0

func (app *App) OnBlockchainPrimaryEthereumConfigUpdate(_ context.Context, conf any) error

func (*App) OnCheckTx

OnCheckTx performs soft validations.

func (*App) OnCheckTxSpam

func (app *App) OnCheckTxSpam(tx abci.Tx) tmtypes.ResponseCheckTx

OnCheckTxSpam checks for spam and replay.

func (*App) OnCommit

func (app *App) OnCommit() (*tmtypes.ResponseCommit, error)

func (*App) OnEndBlock

func (app *App) OnEndBlock(blockHeight uint64) (tmtypes.ValidatorUpdates, types1.ConsensusParams)

func (*App) OnInitChain

func (app *App) OnInitChain(req *tmtypes.RequestInitChain) (*tmtypes.ResponseInitChain, error)

func (*App) OnSpamProtectionMaxBatchSizeUpdate added in v0.55.0

func (app *App) OnSpamProtectionMaxBatchSizeUpdate(_ context.Context, u *num.Uint) error

func (*App) ReloadConf

func (app *App) ReloadConf(cfg Config)

ReloadConf updates the internal configuration.

func (*App) RequireValidatorMasterPubKey

func (app *App) RequireValidatorMasterPubKey(_ context.Context, tx abci.Tx) error

func (*App) RequireValidatorMasterPubKeyW

func (app *App) RequireValidatorMasterPubKeyW(
	f func(context.Context, abci.Tx) error,
) func(context.Context, abci.Tx) error

func (*App) RequireValidatorPubKey

func (app *App) RequireValidatorPubKey(_ context.Context, tx abci.Tx) error

func (*App) RequireValidatorPubKeyW

func (app *App) RequireValidatorPubKeyW(
	f func(context.Context, abci.Tx) error,
) func(context.Context, abci.Tx) error

func (*App) SendTransactionResult added in v0.58.0

func (app *App) SendTransactionResult(
	f func(context.Context, abci.Tx) error,
) func(context.Context, abci.Tx) error

func (*App) UpdateMarginMode added in v0.74.0

func (app *App) UpdateMarginMode(ctx context.Context, tx abci.Tx) error

func (*App) UpdatePartyProfile added in v0.74.0

func (app *App) UpdatePartyProfile(ctx context.Context, tx abci.Tx) error

func (*App) UpdateReferralSet added in v0.73.0

func (app *App) UpdateReferralSet(ctx context.Context, tx abci.Tx) error

UpdateReferralSet this is effectively Update team, but also served to create a team for an existing referral set...

type Assets

type Assets interface {
	NewAsset(ctx context.Context, ref string, assetSrc *types.AssetDetails) (string, error)
	StageAssetUpdate(*types.Asset) error
	Get(assetID string) (*assets.Asset, error)
	IsEnabled(string) bool
	EnactPendingAsset(assetID string)
}

type BMIError added in v0.71.0

type BMIError struct {
	commands.Errors
	Partial bool
}

BMIError implements blockchain/abci.MaybePartialError.

func (*BMIError) Error added in v0.71.0

func (e *BMIError) Error() string

func (*BMIError) ErrorOrNil added in v0.71.0

func (e *BMIError) ErrorOrNil() error

func (*BMIError) GetRawErrors added in v0.77.8

func (e *BMIError) GetRawErrors() map[string][]error

func (*BMIError) IsPartial added in v0.71.0

func (e *BMIError) IsPartial() bool

type BMIProcessor added in v0.55.0

type BMIProcessor struct {
	// contains filtered or unexported fields
}

func NewBMIProcessor added in v0.55.0

func NewBMIProcessor(
	log *logging.Logger,
	exec ExecutionEngine,
	validator Validator,
) *BMIProcessor

func (*BMIProcessor) ProcessBatch added in v0.55.0

func (p *BMIProcessor) ProcessBatch(
	ctx context.Context,
	batch *commandspb.BatchMarketInstructions,
	party, determinitisticID string,
	stats Stats,
) error

ProcessBatch will process a batch of market transaction. Transaction are always executed in the following order: cancellation, amendment then submissions. All errors are returned as a single error.

type BalanceChecker added in v0.73.0

type BalanceChecker interface {
	GetPartyBalance(party string) *num.Uint
	BeginBlock(context.Context)
}

type Banking

type Banking interface {
	EnableBuiltinAsset(context.Context, string) error
	DepositBuiltinAsset(context.Context, *types.BuiltinAssetDeposit, string, uint64) error
	WithdrawBuiltinAsset(context.Context, string, string, string, *num.Uint) error
	EnableERC20(context.Context, *types.ERC20AssetList, string, uint64, uint64, string, string) error
	UpdateERC20(context.Context, *types.ERC20AssetLimitsUpdated, string, uint64, uint64, string, string) error
	DepositERC20(context.Context, *types.ERC20Deposit, string, uint64, uint64, string, string) error
	WithdrawERC20(context.Context, string, string, string, *num.Uint, *types.Erc20WithdrawExt) error
	ERC20WithdrawalEvent(context.Context, *types.ERC20Withdrawal, uint64, string, string) error
	TransferFunds(context.Context, *types.TransferFunds) error
	CancelTransferFunds(context.Context, *types.CancelTransferFunds) error
	BridgeStopped(context.Context, bool, string, uint64, uint64, string, string) error
	BridgeResumed(context.Context, bool, string, uint64, uint64, string, string) error
	CheckTransfer(t *types.TransferBase) error
	NewGovernanceTransfer(ctx context.Context, ID, reference string, transferConfig *types.NewTransferConfiguration) error
	VerifyGovernanceTransfer(transfer *types.NewTransferConfiguration) error
	VerifyCancelGovernanceTransfer(transferID string) error
	CancelGovTransfer(ctx context.Context, ID string) error
	OnBlockEnd(ctx context.Context, now time.Time)
}

Banking ..

type BlockchainClient

type BlockchainClient interface {
	Validators(height *int64) ([]*tmtypesint.Validator, error)
	MaxMempoolSize() int64
}

type Broker

type Broker interface {
	Send(e events.Event)
	SetStreaming(on bool) bool
	StreamingEnabled() bool
	SocketClient() broker.SocketClient
}

Broker - the event bus.

type Checkpoint

type Checkpoint interface {
	BalanceCheckpoint(ctx context.Context) (*types.CheckpointState, error)
	Checkpoint(ctx context.Context, now time.Time) (*types.CheckpointState, error)
}

type Codec added in v0.77.3

type Codec interface {
	abci.Codec
}

Codec interface is here for mocking/testing.

type Config

type Config struct {
	Level               encoding.LogLevel `long:"log-level"`
	LogOrderSubmitDebug encoding.Bool     `long:"log-order-submit-debug"`
	LogOrderAmendDebug  encoding.Bool     `long:"log-order-amend-debug"`
	LogOrderCancelDebug encoding.Bool     `long:"log-order-cancel-debug"`
	KeepCheckpointsMax  uint              `long:"keep-checkpoints-max"`
	SnapshotDebug       Snapshot          `group:"SnapshotDebug"         namespace:"snapshotdebug"`
}

Config represent the configuration of the processor package.

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 DelegationEngine

type DelegationEngine interface {
	Delegate(ctx context.Context, party string, nodeID string, amount *num.Uint) error
	UndelegateAtEndOfEpoch(ctx context.Context, party string, nodeID string, amount *num.Uint) error
	UndelegateNow(ctx context.Context, party string, nodeID string, amount *num.Uint) error
	ProcessEpochDelegations(ctx context.Context, epoch types.Epoch) []*types.ValidatorData
	Hash() []byte
}

type ERC20MultiSigTopology

type ERC20MultiSigTopology interface {
	ProcessSignerEvent(event *types.SignerEvent) error
	ProcessThresholdEvent(event *types.SignerThresholdSetEvent) error
}

type EpochService

type EpochService interface {
	NotifyOnEpoch(f func(context.Context, types.Epoch), r func(context.Context, types.Epoch))
	OnBlockEnd(ctx context.Context)
}

type EthCallEngine added in v0.73.0

type EthCallEngine interface {
	Start()
}

type EthereumOracleVerifier added in v0.73.0

type EthereumOracleVerifier interface {
	ProcessEthereumContractCallResult(callEvent ethcall.ContractCallEvent) error
}

type EvtForwarder

type EvtForwarder interface {
	Ack(*commandspb.ChainEvent) bool
}

EvtForwarder ...

type EvtForwarderHeartbeat added in v0.77.0

type EvtForwarderHeartbeat interface {
	ProcessHeartbeat(string, string, uint64, uint64) error
}

EvtForwarderHeartbeat ...

type ExecEngine added in v0.63.0

type ExecEngine interface {
	GetMarketCounters() map[string]*types.MarketCounters
}

type ExecutionEngine

type ExecutionEngine interface {
	CheckCanSubmitOrderOrLiquidityCommitment(party, market string) error
	CheckOrderSubmissionForSpam(orderSubmission *types.OrderSubmission, party string) error

	// orders stuff
	SubmitOrder(ctx context.Context, orderSubmission *types.OrderSubmission, party string, idgen common.IDGenerator, orderID string) (*types.OrderConfirmation, error)
	CancelOrder(ctx context.Context, order *types.OrderCancellation, party string, idgen common.IDGenerator) ([]*types.OrderCancellationConfirmation, error)
	AmendOrder(ctx context.Context, order *types.OrderAmendment, party string, idgen common.IDGenerator) (*types.OrderConfirmation, error)

	// stop orders stuff
	SubmitStopOrders(ctx context.Context, stopOrdersSubmission *types.StopOrdersSubmission, party string, idgen common.IDGenerator, stopOrderID1, stopOrderID2 *string) (*types.OrderConfirmation, error)
	CancelStopOrders(ctx context.Context, stopOrdersCancellation *types.StopOrdersCancellation, party string, idgen common.IDGenerator) error

	// Future stuff
	SubmitMarket(ctx context.Context, marketConfig *types.Market, proposer string, oos time.Time) error
	UpdateMarket(ctx context.Context, marketConfig *types.Market) error
	RejectMarket(ctx context.Context, marketid string) error
	StartOpeningAuction(ctx context.Context, marketid string) error
	SucceedMarket(ctx context.Context, successor, parent string) error

	// Spot stuff
	SubmitSpotMarket(ctx context.Context, marketConfig *types.Market, proposer string, oos time.Time) error
	UpdateSpotMarket(ctx context.Context, marketConfig *types.Market) error

	// LP stuff
	SubmitLiquidityProvision(ctx context.Context, sub *types.LiquidityProvisionSubmission, party, deterministicID string) error
	CancelLiquidityProvision(ctx context.Context, order *types.LiquidityProvisionCancellation, party string) error
	AmendLiquidityProvision(ctx context.Context, order *types.LiquidityProvisionAmendment, party string, deterministicID string) error
	VerifyUpdateMarketState(changes *types.MarketStateUpdateConfiguration) error
	UpdateMarketState(ctx context.Context, changes *types.MarketStateUpdateConfiguration) error
	Hash() []byte

	// End of block
	BlockEnd(ctx context.Context)
	BeginBlock(ctx context.Context, duration time.Duration)

	// Margin mode
	UpdateMarginMode(ctx context.Context, party, marketID string, marginMode types.MarginMode, marginFactor num.Decimal) error
	// default chain ID, can be removed once we've upgraded to v0.74
	OnChainIDUpdate(uint64) error

	SubmitAMM(ctx context.Context, sub *types.SubmitAMM, deterministicID string) error
	AmendAMM(ctx context.Context, sub *types.AmendAMM, deterministicID string) error
	CancelAMM(ctx context.Context, sub *types.CancelAMM, deterministicID string) error

	// add this method here for testing, this is the exec engine interface used by the gastimator.
	GetMarketCounters() map[string]*types.MarketCounters
}

type Gastimator added in v0.63.0

type Gastimator struct {
	// contains filtered or unexported fields
}

func NewGastimator added in v0.63.0

func NewGastimator(exec ExecEngine) *Gastimator

func (*Gastimator) CalcGasWantedForTx added in v0.63.0

func (g *Gastimator) CalcGasWantedForTx(tx abci.Tx) (uint64, error)

func (*Gastimator) GetMaxGas added in v0.63.0

func (g *Gastimator) GetMaxGas() uint64

GetMaxGas returns the current value of max gas.

func (*Gastimator) GetPriority added in v0.63.0

func (g *Gastimator) GetPriority(tx abci.Tx) uint64

func (*Gastimator) OnBlockEnd added in v0.63.0

func (g *Gastimator) OnBlockEnd() uint64

OnBlockEnd is called at the end of the block to update the per market counters and return the max gas as defined by the network parameter.

func (*Gastimator) OnDefaultGasUpdate added in v0.63.0

func (g *Gastimator) OnDefaultGasUpdate(ctx context.Context, def *num.Uint) error

OnDefaultGasUpdate updates the default gas wanted per transaction.

func (*Gastimator) OnMaxGasUpdate added in v0.63.0

func (g *Gastimator) OnMaxGasUpdate(ctx context.Context, max *num.Uint) error

OnMaxGasUpdate updates the max gas from the network parameter.

func (*Gastimator) OnMinBlockCapacityUpdate added in v0.63.0

func (g *Gastimator) OnMinBlockCapacityUpdate(ctx context.Context, minBlockCapacity *num.Uint) error

OnMaxGasUpdate updates the max gas from the network parameter.

type GovernanceEngine

type GovernanceEngine interface {
	SubmitProposal(context.Context, types.ProposalSubmission, string, string) (*governance.ToSubmit, error)
	SubmitBatchProposal(context.Context, types.BatchProposalSubmission, string, string) ([]*governance.ToSubmit, error)
	FinaliseEnactment(ctx context.Context, prop *types.Proposal)
	AddVote(context.Context, types.VoteSubmission, string) error
	OnTick(context.Context, time.Time) ([]*governance.ToEnact, []*governance.VoteClosed)
	RejectProposal(context.Context, *types.Proposal, types.ProposalError, error) error
	RejectBatchProposal(context.Context, string, types.ProposalError, error) error
	Hash() []byte
	OnChainIDUpdate(uint64) error
}

type HasVegaAssetID

type HasVegaAssetID interface {
	GetVegaAssetID() string
}

type Limits

type Limits interface {
	CanProposeMarket() bool
	CanProposeAsset() bool
	CanProposeSpotMarket() bool
	CanProposePerpsMarket() bool
	CanUseAMMPool() bool
	CanTrade() bool
}

type NetworkParameters

type NetworkParameters interface {
	Update(ctx context.Context, key, value string) error
	DispatchChanges(ctx context.Context)
	IsUpdateAllowed(key string) error
	GetInt(key string) (int64, error)
	GetJSONStruct(key string, v netparams.Reset) error
}

NetworkParameters ...

type Notary

type Notary interface {
	StartAggregate(resID string, kind commandspb.NodeSignatureKind, signature []byte)
	RegisterSignature(ctx context.Context, pubKey string, ns commandspb.NodeSignature) error
	IsSigned(context.Context, string, commandspb.NodeSignatureKind) ([]commandspb.NodeSignature, bool)
}

Notary.

type NullBlockchainTxCodec

type NullBlockchainTxCodec struct{}

func (*NullBlockchainTxCodec) Decode

func (c *NullBlockchainTxCodec) Decode(payload []byte, _ string) (abci.Tx, error)

type Oracle

type Oracle struct {
	Engine                    OraclesEngine
	Adaptors                  OracleAdaptors
	EthereumOraclesVerifier   EthereumOracleVerifier
	EthereumL2OraclesVerifier EthereumOracleVerifier
}

type OracleAdaptors

type OracleAdaptors interface {
	Normalise(crypto.PublicKey, commandspb.OracleDataSubmission) (*dscommon.Data, error)
}

type OraclesEngine

type OraclesEngine interface {
	BroadcastData(context.Context, dscommon.Data) error
	ListensToSigners(dscommon.Data) bool
	HasMatch(data dscommon.Data) (bool, error)
}

type PartiesEngine added in v0.74.0

type PartiesEngine interface {
	UpdateProfile(context.Context, types.PartyID, *commandspb.UpdatePartyProfile) error
	CheckSufficientBalanceToUpdateProfile(party types.PartyID, balance *num.Uint) error
}

type PoWEngine

type PoWEngine interface {
	api.ProofOfWorkParams
	BeginBlock(blockHeight uint64, blockHash string, txs []abci.Tx)
	CheckBlockTx(tx abci.Tx) (pow.ValidationResult, *uint)
	ProcessProposal(txs []abci.Tx) bool
	EndPrepareProposal([]pow.ValidationEntry)
	CheckTx(tx abci.Tx) error
	GetSpamStatistics(partyID string) *protoapi.PoWStatistic
	OnCommit()
}

type ProtocolUpgradeService

type ProtocolUpgradeService interface {
	BeginBlock(ctx context.Context, blockHeight uint64)
	UpgradeProposal(ctx context.Context, pk string, upgradeBlockHeight uint64, vegaReleaseTag string) error
	TimeForUpgrade() bool
	GetUpgradeStatus() types.UpgradeStatus
	SetReadyForUpgrade()
	CoreReadyForUpgrade() bool
	SetCoreReadyForUpgrade()
	Cleanup(ctx context.Context)
	IsValidProposal(ctx context.Context, pk string, upgradeBlockHeight uint64, vegaReleaseTag string) error
}

type ReferralProgram added in v0.73.0

type ReferralProgram interface {
	UpdateProgram(program *types.ReferralProgram)
	PartyOwnsReferralSet(types.PartyID, types.ReferralSetID) error
	CreateReferralSet(context.Context, types.PartyID, types.ReferralSetID) error
	ApplyReferralCode(context.Context, types.PartyID, types.ReferralSetID) error
	CheckSufficientBalanceForApplyReferralCode(types.PartyID, *num.Uint) error
	CheckSufficientBalanceForCreateOrUpdateReferralSet(types.PartyID, *num.Uint) error
}

type Snapshot

type Snapshot struct {
	DevEnabled     encoding.Bool
	CrashAtHeight  uint64 `long:"crash-with-snapshot-at"`
	DebugCrashFile string `long:"snapshot-dump-path"`
}

type SnapshotEngine added in v0.73.0

type SnapshotEngine interface {
	Info() ([]byte, int64, string)
	Snapshot(context.Context) ([]byte, snapshot.DoneCh, error)
	SnapshotNow(context.Context) ([]byte, error)
	AddProviders(...types.StateProvider)
	HasSnapshots() (bool, error)

	ListLatestSnapshots() ([]*tmtypes.Snapshot, error)
	ReceiveSnapshot(*types.Snapshot) tmtypes.ResponseOfferSnapshot
	ReceiveSnapshotChunk(context.Context, *types.RawChunk, string) tmtypes.ResponseApplySnapshotChunk
	RetrieveSnapshotChunk(uint64, uint32, uint32) (*types.RawChunk, error)
	HasRestoredStateAlready() bool

	// debug snapshot issues/hash mismatch problems
	SnapshotDump(ctx context.Context, path string) ([]byte, error)
}

type SpamEngine

type SpamEngine interface {
	BeginBlock(txs []abci.Tx)
	EndPrepareProposal()
	PreBlockAccept(tx abci.Tx) error
	ProcessProposal(txs []abci.Tx) bool
	CheckBlockTx(tx abci.Tx) error
}

type StakeVerifier

type StakeVerifier interface {
	ProcessStakeRemoved(ctx context.Context, event *types.StakeRemoved) error
	ProcessStakeDeposited(ctx context.Context, event *types.StakeDeposited) error
}

type StakingAccounts

type StakingAccounts interface {
	Hash() []byte
	ProcessStakeTotalSupply(ctx context.Context, event *types.StakeTotalSupply) error
}

type StateVarEngine

type StateVarEngine interface {
	ProposedValueReceived(ctx context.Context, ID, nodeID, eventID string, bundle *statevar.KeyValueBundle) error
	OnBlockEnd(ctx context.Context)
}

type Stats

type Stats interface {
	IncTotalCreateOrder()
	AddCurrentTradesInBatch(i uint64)
	AddTotalTrades(i uint64) uint64
	IncTotalOrders()
	IncCurrentOrdersInBatch()
	IncTotalCancelOrder()
	IncTotalAmendOrder()
	// batch stats
	IncTotalBatches()
	NewBatch()
	TotalOrders() uint64
	TotalBatches() uint64
	SetAverageOrdersPerBatch(i uint64)
	SetBlockDuration(uint64)
	CurrentOrdersInBatch() uint64
	CurrentTradesInBatch() uint64
	SetOrdersPerSecond(i uint64)
	SetTradesPerSecond(i uint64)
	CurrentEventsInBatch() uint64
	SetEventsPerSecond(uint64)
	// blockchain stats
	IncTotalTxCurrentBatch()
	IncHeight()
	Height() uint64
	SetAverageTxPerBatch(i uint64)
	SetAverageTxSizeBytes(i uint64)
	SetTotalTxLastBatch(i uint64)
	SetTotalTxCurrentBatch(i uint64)
	TotalTxCurrentBatch() uint64
	TotalTxLastBatch() uint64
	SetHash(string)
	SetHeight(uint64)
}

type TimeService

type TimeService interface {
	GetTimeNow() time.Time
	GetTimeLastBatch() time.Time
	NotifyOnTick(...func(context.Context, time.Time))
	SetTimeNow(context.Context, time.Time)
}

type Tx

type Tx struct {
	// contains filtered or unexported fields
}

func DecodeTx

func DecodeTx(payload []byte, chainID string) (*Tx, error)

func DecodeTxNoValidation

func DecodeTxNoValidation(payload []byte) (*Tx, error)

func (Tx) BlockHeight

func (t Tx) BlockHeight() uint64

func (Tx) Command

func (t Tx) Command() txn.Command

func (Tx) GetCmd

func (t Tx) GetCmd() interface{}

func (Tx) GetLength added in v0.74.0

func (t Tx) GetLength() int

func (Tx) GetNonce added in v0.73.0

func (t Tx) GetNonce() uint64

func (Tx) GetPoWNonce

func (t Tx) GetPoWNonce() uint64

func (Tx) GetPoWTID

func (t Tx) GetPoWTID() string

func (Tx) GetVersion

func (t Tx) GetVersion() uint32

func (Tx) Hash

func (t Tx) Hash() []byte

func (Tx) Party

func (t Tx) Party() string

func (Tx) PubKey

func (t Tx) PubKey() []byte

func (Tx) PubKeyHex

func (t Tx) PubKeyHex() string

func (Tx) Signature

func (t Tx) Signature() []byte

func (Tx) Unmarshal

func (t Tx) Unmarshal(i interface{}) error

type TxCache added in v0.77.0

type TxCache interface {
	SetRawTxs(rtx [][]byte, height uint64)
	GetRawTxs(height uint64) [][]byte
	NewDelayedTransaction(ctx context.Context, delayed [][]byte, height uint64) []byte
	IsDelayRequired(marketID string) bool
	IsDelayRequiredAnyMarket() bool
	IsTxInCache(tx []byte) bool
}

type TxCodec

type TxCodec struct{}

func (*TxCodec) Decode

func (c *TxCodec) Decode(payload []byte, chainID string) (abci.Tx, error)

Decode takes a raw input from a Tendermint Tx and decodes into a vega Tx, the decoding process involves a signature verification.

type TxWrapper added in v0.74.0

type TxWrapper struct {
	// contains filtered or unexported fields
}

type Validate added in v0.72.0

type Validate struct{}

func (Validate) CheckOrderAmendment added in v0.72.0

func (v Validate) CheckOrderAmendment(amend *commandspb.OrderAmendment) error

func (Validate) CheckOrderCancellation added in v0.72.0

func (v Validate) CheckOrderCancellation(cancel *commandspb.OrderCancellation) error

func (Validate) CheckOrderSubmission added in v0.72.0

func (v Validate) CheckOrderSubmission(order *commandspb.OrderSubmission) error

func (Validate) CheckStopOrdersCancellation added in v0.72.0

func (v Validate) CheckStopOrdersCancellation(cancel *commandspb.StopOrdersCancellation) error

func (Validate) CheckStopOrdersSubmission added in v0.72.0

func (v Validate) CheckStopOrdersSubmission(order *commandspb.StopOrdersSubmission) error

func (Validate) CheckUpdateMarginMode added in v0.74.0

func (v Validate) CheckUpdateMarginMode(order *commandspb.UpdateMarginMode) error

type Validator added in v0.72.0

type Validator interface {
	CheckOrderCancellation(cancel *commandspb.OrderCancellation) error
	CheckOrderAmendment(amend *commandspb.OrderAmendment) error
	CheckOrderSubmission(order *commandspb.OrderSubmission) error
	CheckStopOrdersCancellation(cancel *commandspb.StopOrdersCancellation) error
	CheckStopOrdersSubmission(order *commandspb.StopOrdersSubmission) error
	CheckUpdateMarginMode(update *commandspb.UpdateMarginMode) error
}

type ValidatorTopology

type ValidatorTopology interface {
	Len() int
	IsValidatorVegaPubKey(pk string) bool
	IsValidatorNodeID(nodeID string) bool
	AllVegaPubKeys() []string
	IsValidator() bool
	AddKeyRotate(ctx context.Context, nodeID string, currentBlockHeight uint64, kr *commandspb.KeyRotateSubmission) error
	ProcessEthereumKeyRotation(ctx context.Context, nodeID string, kr *commandspb.EthereumKeyRotateSubmission, verify func(message, signature []byte, hexAddress string) error) error
	BeginBlock(ctx context.Context, blockHeight uint64, proposer string)
	GetValidatorPowerUpdates() []abcitypes.ValidatorUpdate
	ProcessAnnounceNode(ctx context.Context, nr *commandspb.AnnounceNode) error
	ProcessValidatorHeartbeat(context.Context, *commandspb.ValidatorHeartbeat, func(message, signature, pubkey []byte) error, func(message, signature []byte, hexAddress string) error) error
	AddForwarder(ID string)
	IssueSignatures(ctx context.Context, submitter, nodeID, chainID string, kind types.NodeSignatureKind) error
}

type VolumeDiscountProgram added in v0.73.0

type VolumeDiscountProgram interface {
	UpdateProgram(program *types.VolumeDiscountProgram)
}

type VolumeRebateProgram added in v0.77.8

type VolumeRebateProgram interface {
	UpdateProgram(program *types.VolumeRebateProgram)
}

type Witness

type Witness interface {
	AddNodeCheck(ctx context.Context, nv *commandspb.NodeVote, key crypto.PublicKey) error
}

Witness ...

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL