processor

package
v0.73.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Oct 20, 2023 License: AGPL-3.0 Imports: 56 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")
	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")
)
View Source
var (
	ErrInvalidSignature                       = errors.New("invalid signature")
	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,
	evtfwd EvtForwarder,
	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,
	blockchainClient BlockchainClient,
	erc20MultiSigTopology ERC20MultiSigTopology,
	version string,
	protocolUpgradeService ProtocolUpgradeService,
	codec abci.Codec,
	gastimator *Gastimator,
	ethCallEngine EthCallEngine,
	balanceChecker BalanceChecker,
) *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) 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) 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) 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) 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) 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) 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) Info

func (*App) ListSnapshots

func (*App) OfferSnapshot

func (*App) OnBeginBlock

func (app *App) OnBeginBlock(
	req tmtypes.RequestBeginBlock,
) (ctx context.Context, resp tmtypes.ResponseBeginBlock)

OnBeginBlock updates the internal lastBlockTime value with each new block.

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() (resp tmtypes.ResponseCommit)

func (*App) OnDeliverTXSpam

func (app *App) OnDeliverTXSpam(ctx context.Context, tx abci.Tx) tmtypes.ResponseDeliverTx

OnDeliverTXSpam checks spam and replay.

func (*App) OnDeliverTx

OnDeliverTx increments the internal tx counter and decorates the context with tracing information.

func (*App) OnEndBlock

func (app *App) OnEndBlock(req tmtypes.RequestEndBlock) (ctx context.Context, resp tmtypes.ResponseEndBlock)

func (*App) OnInitChain

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

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) 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
	// contains filtered or unexported fields
}

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) 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) error
	UpdateERC20(context.Context, *types.ERC20AssetLimitsUpdated, string, uint64, uint64, string) error
	DepositERC20(context.Context, *types.ERC20Deposit, string, uint64, uint64, string) error
	WithdrawERC20(context.Context, string, string, string, *num.Uint, *types.Erc20WithdrawExt) error
	ERC20WithdrawalEvent(context.Context, *types.ERC20Withdrawal, uint64, uint64, string) error
	TransferFunds(context.Context, *types.TransferFunds) error
	CancelTransferFunds(context.Context, *types.CancelTransferFunds) error
	BridgeStopped(context.Context, bool, string, uint64, uint64, string) error
	BridgeResumed(context.Context, bool, string, uint64, uint64, 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
}

Banking ..

type BlockchainClient

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

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 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"`
	Ratelimit           ratelimit.Config  `group:"Ratelimit"             namespace:"ratelimit"`
	KeepCheckpointsMax  uint              `long:"keep-checkpoints-max"`
}

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 ExecEngine added in v0.63.0

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

type ExecutionEngine

type ExecutionEngine interface {
	// 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)
}

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)
	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
	Hash() []byte
}

type HasVegaAssetID

type HasVegaAssetID interface {
	GetVegaAssetID() string
}

type Limits

type Limits interface {
	CanProposeMarket() bool
	CanProposeAsset() bool
	CanProposeSpotMarket() bool
	CanProposePerpsMarket() 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)
}

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
}

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 PoWEngine

type PoWEngine interface {
	api.ProofOfWorkParams
	BeginBlock(blockHeight uint64, blockHash string)
	EndOfBlock()
	CheckTx(tx abci.Tx) error
	DeliverTx(tx abci.Tx) error
	Commit()
	GetSpamStatistics(partyID string) *protoapi.PoWStatistic
}

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)
	SetExists(types.ReferralSetID) bool
	CreateReferralSet(context.Context, types.PartyID, types.ReferralSetID) error
	ApplyReferralCode(context.Context, types.PartyID, types.ReferralSetID) error
	CheckSufficientBalanceForApplyReferralCode(types.PartyID, *num.Uint) error
}

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
}

type SpamEngine

type SpamEngine interface {
	EndOfBlock(blockHeight uint64, now time.Time)
	PreBlockAccept(tx abci.Tx) (bool, error)
	PostBlockAccept(tx abci.Tx) (bool, 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) 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 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 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

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
}

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, req abcitypes.RequestBeginBlock)
	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 string, kind types.NodeSignatureKind) error
}

type VolumeDiscountProgram added in v0.73.0

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

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