Documentation ¶
Index ¶
- Variables
- type Broker
- type Config
- type Engine
- func (e *Engine) ADtoID(ad *types.AccountDetails) string
- func (e *Engine) AssetExists(assetID string) bool
- func (e *Engine) BeginBlock(ctx context.Context)
- func (e *Engine) BondSpotUpdate(ctx context.Context, market string, transfer *types.Transfer) (*types.LedgerMovement, error)
- func (e *Engine) BondUpdate(ctx context.Context, market string, transfer *types.Transfer) (*types.LedgerMovement, error)
- func (e *Engine) CanCoverBond(market, party, asset string, amount *num.Uint) bool
- func (e *Engine) CheckLeftOverBalance(ctx context.Context, settle *types.Account, transfers []*types.Transfer, ...) (*types.LedgerMovement, error)
- func (e *Engine) CheckOrderSpam(party, market string, assets []string) error
- func (e *Engine) CheckOrderSpamAllMarkets(party string) error
- func (e *Engine) Checkpoint() ([]byte, error)
- func (e *Engine) ClearInsurancepool(ctx context.Context, mktID, asset string, clearFees bool) ([]*types.LedgerMovement, error)
- func (e *Engine) ClearMarket(ctx context.Context, mktID, asset string, parties []string, keepInsurance bool) ([]*types.LedgerMovement, error)
- func (e *Engine) ClearPartyMarginAccount(ctx context.Context, party, market, asset string) (*types.LedgerMovement, error)
- func (e *Engine) ClearPartyOrderMarginAccount(ctx context.Context, party, market, asset string) (*types.LedgerMovement, error)
- func (e *Engine) ClearSpotMarket(ctx context.Context, mktID, quoteAsset string, parties []string) ([]*types.LedgerMovement, error)
- func (e *Engine) CreateMarketAccounts(ctx context.Context, marketID, asset string) (insuranceID, settleID string, err error)
- func (e *Engine) CreatePartyAMMsSubAccounts(ctx context.Context, party, ammKey, asset, market string) (general *types.Account, margin *types.Account, err error)
- func (e *Engine) CreatePartyBondAccount(ctx context.Context, partyID, marketID, asset string) (string, error)
- func (e *Engine) CreatePartyGeneralAccount(ctx context.Context, partyID, asset string) (string, error)
- func (e *Engine) CreatePartyHoldingAccount(ctx context.Context, partyID, asset string) (string, error)
- func (e *Engine) CreatePartyLiquidityFeeAccount(ctx context.Context, partyID, marketID, asset string) (string, error)
- func (e *Engine) CreatePartyMarginAccount(ctx context.Context, partyID, marketID, asset string) (string, error)
- func (e *Engine) CreateSpotMarketAccounts(ctx context.Context, marketID, quoteAsset string) error
- func (e *Engine) Deposit(ctx context.Context, partyID, asset string, amount *num.Uint) (*types.LedgerMovement, error)
- func (e *Engine) EarmarkForAutomatedPurchase(asset string, accountType types.AccountType, min, max *num.Uint) (*num.Uint, error)
- func (e *Engine) EnableAsset(ctx context.Context, asset types.Asset) error
- func (e *Engine) FinalSettlement(ctx context.Context, marketID string, transfers []*types.Transfer, ...) ([]*types.LedgerMovement, error)
- func (e *Engine) GetAccountByID(id string) (*types.Account, error)
- func (e *Engine) GetAllParties() []string
- func (e *Engine) GetAllVestingQuantumBalance(party string) num.Decimal
- func (e *Engine) GetAssetQuantum(asset string) (num.Decimal, error)
- func (e *Engine) GetEnabledAssets() []string
- func (e *Engine) GetGlobalInsuranceAccount(asset string) (*types.Account, error)
- func (e *Engine) GetGlobalRewardAccount(asset string) (*types.Account, error)
- func (e *Engine) GetInfraFeeAccountIDs() []string
- func (e *Engine) GetInsurancePoolBalance(marketID, asset string) (*num.Uint, bool)
- func (e *Engine) GetLiquidityFeesBonusDistributionAccount(marketID, asset string) (*types.Account, error)
- func (e *Engine) GetMarketInsurancePoolAccount(market, asset string) (*types.Account, error)
- func (e *Engine) GetMarketLiquidityFeeAccount(market, asset string) (*types.Account, error)
- func (e *Engine) GetMarketMakerFeeAccount(market, asset string) (*types.Account, error)
- func (e *Engine) GetNetworkTreasuryAccount(asset string) (*types.Account, error)
- func (e *Engine) GetOrCreateBuyBackFeesAccountID(ctx context.Context, asset string) string
- func (e *Engine) GetOrCreateGlobalInsuranceAccount(ctx context.Context, asset string) *types.Account
- func (e *Engine) GetOrCreateLiquidityFeesBonusDistributionAccount(ctx context.Context, marketID, asset string) (*types.Account, error)
- func (e *Engine) GetOrCreateMarketInsurancePoolAccount(ctx context.Context, market, asset string) *types.Account
- func (e *Engine) GetOrCreateNetworkTreasuryAccount(ctx context.Context, asset string) *types.Account
- func (e *Engine) GetOrCreatePartyBondAccount(ctx context.Context, partyID, marketID, asset string) (*types.Account, error)
- func (e *Engine) GetOrCreatePartyLiquidityFeeAccount(ctx context.Context, partyID, marketID, asset string) (*types.Account, error)
- func (e *Engine) GetOrCreatePartyOrderMarginAccount(ctx context.Context, partyID, marketID, asset string) (string, error)
- func (e *Engine) GetOrCreatePartyVestedRewardAccount(ctx context.Context, partyID, asset string) *types.Account
- func (e *Engine) GetOrCreatePartyVestingRewardAccount(ctx context.Context, partyID, asset string) *types.Account
- func (e *Engine) GetOrCreateRewardAccount(ctx context.Context, asset string, market string, ...) (*types.Account, error)
- func (e *Engine) GetPartyBalance(party string) *num.Uint
- func (e *Engine) GetPartyBondAccount(market, partyID, asset string) (*types.Account, error)
- func (e *Engine) GetPartyGeneralAccount(partyID, asset string) (*types.Account, error)
- func (e *Engine) GetPartyHoldingAccount(party, asset string) (*types.Account, error)
- func (e *Engine) GetPartyLiquidityFeeAccount(market, partyID, asset string) (*types.Account, error)
- func (e *Engine) GetPartyMargin(pos events.MarketPosition, asset, marketID string) (events.Margin, error)
- func (e *Engine) GetPartyMarginAccount(market, party, asset string) (*types.Account, error)
- func (e *Engine) GetPartyOrderMarginAccount(market, party, asset string) (*types.Account, error)
- func (e *Engine) GetPartyVestedRewardAccount(partyID, asset string) (*types.Account, error)
- func (e *Engine) GetPendingTransfersAccount(asset string) *types.Account
- func (e *Engine) GetRewardAccountsByType(rewardAcccountType types.AccountType) []*types.Account
- func (e *Engine) GetState(k string) ([]byte, []types.StateProvider, error)
- func (e *Engine) GetSystemAccountBalance(asset, market string, accountType types.AccountType) (*num.Uint, error)
- func (e *Engine) GetVestingAccounts() []*types.Account
- func (e *Engine) GetVestingRecovery() map[string]map[string]*num.Uint
- func (e *Engine) GovernanceTransferFunds(ctx context.Context, transfers []*types.Transfer, ...) ([]*types.LedgerMovement, error)
- func (e *Engine) HasGeneralAccount(party, asset string) bool
- func (e *Engine) Hash() []byte
- func (e *Engine) IncrementBalance(ctx context.Context, id string, inc *num.Uint) error
- func (e *Engine) IsolatedMarginUpdate(updates []events.Risk) []events.Margin
- func (e *Engine) Keys() []string
- func (e *Engine) Load(ctx context.Context, data []byte) error
- func (e *Engine) LoadState(ctx context.Context, p *types.Payload) ([]types.StateProvider, error)
- func (e *Engine) MarginUpdate(ctx context.Context, marketID string, updates []events.Risk) ([]*types.LedgerMovement, []events.Margin, []events.Margin, error)
- func (e *Engine) MarginUpdateOnOrder(ctx context.Context, marketID string, update events.Risk) (*types.LedgerMovement, events.Margin, error)
- func (e *Engine) MarkToMarket(ctx context.Context, marketID string, transfers []events.Transfer, ...) ([]events.Margin, []*types.LedgerMovement, error)
- func (e *Engine) Name() types.CheckpointName
- func (e *Engine) Namespace() types.SnapshotNamespace
- func (e *Engine) OnBalanceSnapshotFrequencyUpdated(ctx context.Context, d time.Duration) error
- func (e *Engine) OnEpochEvent(ctx context.Context, epoch types.Epoch)
- func (e *Engine) OnEpochRestore(ctx context.Context, epoch types.Epoch)
- func (e *Engine) PartyCanCoverFees(asset, mktID, partyID string, amount *num.Uint) error
- func (e *Engine) PartyHasSufficientBalance(asset, partyID string, amount *num.Uint, fromAccountType types.AccountType) error
- func (e *Engine) PerpsFundingSettlement(ctx context.Context, marketID string, transfers []events.Transfer, ...) ([]events.Margin, []*types.LedgerMovement, error)
- func (e *Engine) PropagateAssetUpdate(ctx context.Context, asset types.Asset) error
- func (e *Engine) ReleaseFromHoldingAccount(ctx context.Context, transfer *types.Transfer, toAccountType types.AccountType) (*types.LedgerMovement, error)
- func (e *Engine) ReloadConf(cfg Config)
- func (e *Engine) RemoveBondAccount(partyID, marketID, asset string) error
- func (e *Engine) RemoveDistressed(ctx context.Context, parties []events.MarketPosition, marketID, asset string, ...) (*types.LedgerMovement, error)
- func (e *Engine) RemoveLiquidityFeesBonusDistributionAccount(partyID, marketID, asset string) error
- func (e *Engine) RestoreCheckpointBalance(ctx context.Context, market, party, asset string, typ types.AccountType, ...) (*types.LedgerMovement, error)
- func (e *Engine) RollbackMarginUpdateOnOrder(ctx context.Context, marketID string, assetID string, transfer *types.Transfer) (*types.LedgerMovement, error)
- func (e *Engine) Stopped() bool
- func (e *Engine) SubAccountClosed(ctx context.Context, party, subAccount, asset, market string) ([]*types.LedgerMovement, error)
- func (e *Engine) SubAccountRelease(ctx context.Context, party, subAccount, asset, market string, ...) ([]*types.LedgerMovement, events.Margin, error)
- func (e *Engine) SubAccountUpdate(ctx context.Context, party, subAccount, asset, market string, ...) (*types.LedgerMovement, error)
- func (e *Engine) SuccessorInsuranceFraction(ctx context.Context, successor, parent, asset string, fraction num.Decimal) *types.LedgerMovement
- func (e *Engine) TransferFees(ctx context.Context, marketID string, assetID string, ft events.FeesTransfer) ([]*types.LedgerMovement, error)
- func (e *Engine) TransferFeesContinuousTrading(ctx context.Context, marketID string, assetID string, ft events.FeesTransfer) ([]*types.LedgerMovement, error)
- func (e *Engine) TransferFunds(ctx context.Context, transfers []*types.Transfer, ...) ([]*types.LedgerMovement, error)
- func (e *Engine) TransferRewards(ctx context.Context, rewardAccountID string, transfers []*types.Transfer, ...) ([]*types.LedgerMovement, error)
- func (e *Engine) TransferSpot(ctx context.Context, party, toParty, asset string, quantity *num.Uint, ...) (*types.LedgerMovement, error)
- func (e *Engine) TransferSpotFees(ctx context.Context, marketID string, assetID string, ft events.FeesTransfer, ...) ([]*types.LedgerMovement, error)
- func (e *Engine) TransferSpotFeesContinuousTrading(ctx context.Context, marketID string, assetID string, ft events.FeesTransfer) ([]*types.LedgerMovement, error)
- func (e *Engine) TransferToHoldingAccount(ctx context.Context, transfer *types.Transfer, ...) (*types.LedgerMovement, error)
- func (e *Engine) TransferVestedRewards(ctx context.Context, transfers []*types.Transfer) ([]*types.LedgerMovement, error)
- func (e *Engine) UnearmarkForAutomatedPurchase(asset string, accountType types.AccountType, releaseRequest *num.Uint) error
- func (e *Engine) UpdateBalance(ctx context.Context, id string, balance *num.Uint) error
- func (e *Engine) Withdraw(ctx context.Context, partyID, asset string, amount *num.Uint) (*types.LedgerMovement, error)
- type TimeService
Constants ¶
This section is empty.
Variables ¶
var ( // ErrSystemAccountsMissing signals that a system account is missing, which may means that the // collateral engine have not been initialised properly. ErrSystemAccountsMissing = errors.New("system accounts missing for collateral engine to work") // ErrFeeAccountsMissing signals that a fee account is missing, which may means that the // collateral engine have not been initialised properly. ErrFeeAccountsMissing = errors.New("fee accounts missing for collateral engine to work") // ErrPartyAccountsMissing signals that the accounts for this party do not exists. ErrPartyAccountsMissing = errors.New("party accounts missing, cannot collect") // ErrAccountDoesNotExist signals that an account par of a transfer do not exists. ErrAccountDoesNotExist = errors.New("account does not exists") ErrNoGeneralAccountWhenCreateMarginAccount = errors.New("party general account missing when trying to create a margin account") ErrNoGeneralAccountWhenCreateBondAccount = errors.New("party general account missing when trying to create a bond account") ErrMinAmountNotReached = errors.New("unable to reach minimum amount transfer") ErrSettlementBalanceNotZero = errors.New("settlement balance should be zero") // E991 YOU HAVE TOO MUCH ROPE TO HANG YOURSELF // ErrAssetAlreadyEnabled signals the given asset has already been enabled in this engine. ErrAssetAlreadyEnabled = errors.New("asset already enabled") ErrAssetHasNotBeenEnabled = errors.New("asset has not been enabled") // ErrInvalidAssetID signals that an asset id does not exists. ErrInvalidAssetID = errors.New("invalid asset ID") // ErrInsufficientFundsToPayFees the party do not have enough funds to pay the feeds. ErrInsufficientFundsToPayFees = errors.New("insufficient funds to pay fees") // ErrInvalidTransferTypeForFeeRequest an invalid transfer type was send to build a fee transfer request. ErrInvalidTransferTypeForFeeRequest = errors.New("an invalid transfer type was send to build a fee transfer request") // ErrNotEnoughFundsToWithdraw a party requested to withdraw more than on its general account. ErrNotEnoughFundsToWithdraw = errors.New("not enough funds to withdraw") // ErrInsufficientFundsInAsset is returned if the party doesn't have sufficient funds to cover their order quantity. ErrInsufficientFundsInAsset = errors.New("insufficient funds for order") )
var ( ErrInvalidSnapshotNamespace = errors.New("invalid snapshot namespace") ErrUnknownSnapshotType = errors.New("snapshot data type not known") )
Functions ¶
This section is empty.
Types ¶
type Broker ¶
Broker send events we no longer need to generate this mock here, we can use the broker/mocks package instead.
type Config ¶
Config represent the configuration of the collateral 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 { Config // contains filtered or unexported fields }
Engine is handling the power of the collateral.
func (*Engine) AssetExists ¶
AssetExists no errors if the asset exists.
func (*Engine) BeginBlock ¶ added in v0.73.0
func (*Engine) BondSpotUpdate ¶ added in v0.72.0
func (e *Engine) BondSpotUpdate(ctx context.Context, market string, transfer *types.Transfer) (*types.LedgerMovement, error)
BondUpdate is to be used for any bond account transfers in a spot market. Update on new orders, updates on commitment changes, or on slashing.
func (*Engine) BondUpdate ¶
func (e *Engine) BondUpdate(ctx context.Context, market string, transfer *types.Transfer) (*types.LedgerMovement, error)
BondUpdate is to be used for any bond account transfers. Update on new orders, updates on commitment changes, or on slashing.
func (*Engine) CanCoverBond ¶
func (*Engine) CheckLeftOverBalance ¶ added in v0.58.0
func (*Engine) CheckOrderSpam ¶ added in v0.77.0
func (*Engine) CheckOrderSpamAllMarkets ¶ added in v0.77.0
func (*Engine) Checkpoint ¶
func (*Engine) ClearInsurancepool ¶ added in v0.72.0
func (*Engine) ClearMarket ¶
func (e *Engine) ClearMarket(ctx context.Context, mktID, asset string, parties []string, keepInsurance bool) ([]*types.LedgerMovement, error)
ClearMarket will remove all monies or accounts for parties allocated for a market (margin accounts) when the market reach end of life (maturity).
func (*Engine) ClearPartyMarginAccount ¶
func (*Engine) ClearPartyOrderMarginAccount ¶ added in v0.74.0
func (*Engine) ClearSpotMarket ¶ added in v0.72.0
func (e *Engine) ClearSpotMarket(ctx context.Context, mktID, quoteAsset string, parties []string) ([]*types.LedgerMovement, error)
ClearSpotMarket moves remaining LP fees to the global reward account and removes market accounts.
func (*Engine) CreateMarketAccounts ¶
func (e *Engine) CreateMarketAccounts(ctx context.Context, marketID, asset string) (insuranceID, settleID string, err error)
CreateMarketAccounts will create all required accounts for a market once a new market is accepted through the network.
func (*Engine) CreatePartyAMMsSubAccounts ¶ added in v0.77.0
func (e *Engine) CreatePartyAMMsSubAccounts( ctx context.Context, party, ammKey, asset, market string, ) (general *types.Account, margin *types.Account, err error)
CreatePartyAMMSubAccounts ...
func (*Engine) CreatePartyBondAccount ¶
func (e *Engine) CreatePartyBondAccount(ctx context.Context, partyID, marketID, asset string) (string, error)
CreatePartyBondAccount creates a bond account if it does not exist, will return an error if no general account exist for the party for the given asset.
func (*Engine) CreatePartyGeneralAccount ¶
func (e *Engine) CreatePartyGeneralAccount(ctx context.Context, partyID, asset string) (string, error)
CreatePartyGeneralAccount create the general account for a party.
func (*Engine) CreatePartyHoldingAccount ¶ added in v0.72.0
func (e *Engine) CreatePartyHoldingAccount(ctx context.Context, partyID, asset string) (string, error)
CreatePartyHoldingAccount creates a holding account for a party.
func (*Engine) CreatePartyLiquidityFeeAccount ¶ added in v0.72.0
func (e *Engine) CreatePartyLiquidityFeeAccount(ctx context.Context, partyID, marketID, asset string) (string, error)
CreatePartyLiquidityFeeAccount creates a bond account if it does not exist, will return an error if no general account exist for the party for the given asset.
func (*Engine) CreatePartyMarginAccount ¶
func (e *Engine) CreatePartyMarginAccount(ctx context.Context, partyID, marketID, asset string) (string, error)
CreatePartyMarginAccount creates a margin account if it does not exist, will return an error if no general account exist for the party for the given asset.
func (*Engine) CreateSpotMarketAccounts ¶ added in v0.72.0
CreateSpotMarketAccounts creates the required accounts for a market.
func (*Engine) Deposit ¶
func (e *Engine) Deposit(ctx context.Context, partyID, asset string, amount *num.Uint) (*types.LedgerMovement, error)
Deposit will deposit the given amount into the party account.
func (*Engine) EarmarkForAutomatedPurchase ¶ added in v0.79.0
func (*Engine) EnableAsset ¶
EnableAsset adds a new asset in the collateral engine this enable the asset to be used by new markets or parties to deposit funds.
func (*Engine) FinalSettlement ¶
func (e *Engine) FinalSettlement(ctx context.Context, marketID string, transfers []*types.Transfer, factor *num.Uint, useGeneralAccountForMarginSearch func(string) bool) ([]*types.LedgerMovement, error)
FinalSettlement will process the list of transfers instructed by other engines This func currently only expects TransferType_{LOSS,WIN} transfers other transfer types have dedicated funcs (MarkToMarket, MarginUpdate).
func (*Engine) GetAccountByID ¶
GetAccountByID will return an account using the given id.
func (*Engine) GetAllParties ¶ added in v0.78.0
func (*Engine) GetAllVestingQuantumBalance ¶ added in v0.73.0
func (*Engine) GetAssetQuantum ¶
func (*Engine) GetEnabledAssets ¶
GetEnabledAssets returns the asset IDs of all enabled assets.
func (*Engine) GetGlobalInsuranceAccount ¶ added in v0.73.0
func (*Engine) GetGlobalRewardAccount ¶
func (*Engine) GetInfraFeeAccountIDs ¶
GetInfraFeeAccountIDs returns the account IDs of the infrastructure fee accounts for all enabled assets.
func (*Engine) GetInsurancePoolBalance ¶ added in v0.72.0
func (*Engine) GetLiquidityFeesBonusDistributionAccount ¶ added in v0.72.0
func (*Engine) GetMarketInsurancePoolAccount ¶
func (*Engine) GetMarketLiquidityFeeAccount ¶
func (*Engine) GetMarketMakerFeeAccount ¶ added in v0.72.0
func (*Engine) GetNetworkTreasuryAccount ¶ added in v0.73.0
func (*Engine) GetOrCreateBuyBackFeesAccountID ¶ added in v0.79.0
func (*Engine) GetOrCreateGlobalInsuranceAccount ¶ added in v0.73.0
func (*Engine) GetOrCreateLiquidityFeesBonusDistributionAccount ¶ added in v0.72.0
func (e *Engine) GetOrCreateLiquidityFeesBonusDistributionAccount( ctx context.Context, marketID, asset string, ) (*types.Account, error)
GetOrCreateLiquidityFeesBonusDistributionAccount returns a liquidity fees bonus distribution account given a set of parameters. crates it if not exists.
func (*Engine) GetOrCreateMarketInsurancePoolAccount ¶ added in v0.71.0
func (*Engine) GetOrCreateNetworkTreasuryAccount ¶ added in v0.73.0
func (*Engine) GetOrCreatePartyBondAccount ¶
func (e *Engine) GetOrCreatePartyBondAccount(ctx context.Context, partyID, marketID, asset string) (*types.Account, error)
GetOrCreatePartyBondAccount returns a bond account given a set of parameters. crates it if not exists.
func (*Engine) GetOrCreatePartyLiquidityFeeAccount ¶ added in v0.72.0
func (e *Engine) GetOrCreatePartyLiquidityFeeAccount(ctx context.Context, partyID, marketID, asset string) (*types.Account, error)
GetOrCreatePartyLiquidityFeeAccount returns a party liquidity fee account given a set of parameters. Crates it if not exists.
func (*Engine) GetOrCreatePartyOrderMarginAccount ¶ added in v0.74.0
func (*Engine) GetOrCreatePartyVestedRewardAccount ¶ added in v0.73.0
func (e *Engine) GetOrCreatePartyVestedRewardAccount(ctx context.Context, partyID, asset string) *types.Account
GetOrCreatePartyVestedRewardAccount create the general account for a party.
func (*Engine) GetOrCreatePartyVestingRewardAccount ¶ added in v0.73.0
func (e *Engine) GetOrCreatePartyVestingRewardAccount(ctx context.Context, partyID, asset string) *types.Account
GetOrCreatePartyVestingRewardAccount create the general account for a party.
func (*Engine) GetOrCreateRewardAccount ¶
func (e *Engine) GetOrCreateRewardAccount(ctx context.Context, asset string, market string, rewardAcccountType types.AccountType) (*types.Account, error)
GetRewardAccount returns a reward accound by asset and type.
func (*Engine) GetPartyBalance ¶ added in v0.73.0
func (*Engine) GetPartyBondAccount ¶
GetPartyBondAccount returns a general account given the partyID.
func (*Engine) GetPartyGeneralAccount ¶
GetPartyGeneralAccount returns a general account given the partyID.
func (*Engine) GetPartyHoldingAccount ¶ added in v0.73.0
GetPartyHoldingAccount returns a holding account given the partyID and market.
func (*Engine) GetPartyLiquidityFeeAccount ¶ added in v0.72.0
GetPartyLiquidityFeeAccount returns a liquidity fee account account given the partyID.
func (*Engine) GetPartyMargin ¶
func (e *Engine) GetPartyMargin(pos events.MarketPosition, asset, marketID string) (events.Margin, error)
GetPartyMargin will return the current margin for a given party.
func (*Engine) GetPartyMarginAccount ¶
GetPartyMarginAccount returns a margin account given the partyID and market.
func (*Engine) GetPartyOrderMarginAccount ¶ added in v0.74.0
GetPartyOrderMarginAccount returns a margin account given the partyID and market.
func (*Engine) GetPartyVestedRewardAccount ¶ added in v0.73.0
func (*Engine) GetPendingTransfersAccount ¶
GetPendingTransferAccount return the pending transfers account for the asset.
func (*Engine) GetRewardAccountsByType ¶
func (e *Engine) GetRewardAccountsByType(rewardAcccountType types.AccountType) []*types.Account
func (*Engine) GetSystemAccountBalance ¶ added in v0.72.0
func (*Engine) GetVestingAccounts ¶ added in v0.73.8
func (*Engine) GetVestingRecovery ¶ added in v0.73.0
func (*Engine) GovernanceTransferFunds ¶ added in v0.72.0
func (*Engine) HasGeneralAccount ¶
func (*Engine) IncrementBalance ¶
IncrementBalance will increment the balance of a given account using the given value.
func (*Engine) IsolatedMarginUpdate ¶ added in v0.74.0
IsolatedMarginUpdate returns margin events for parties that don't meet their margin requirement (i.e. margin balance < maintenance).
func (*Engine) MarginUpdate ¶
func (e *Engine) MarginUpdate(ctx context.Context, marketID string, updates []events.Risk) ([]*types.LedgerMovement, []events.Margin, []events.Margin, error)
MarginUpdate will run the margin updates over a set of risk events (margin updates).
func (*Engine) MarginUpdateOnOrder ¶
func (e *Engine) MarginUpdateOnOrder(ctx context.Context, marketID string, update events.Risk) (*types.LedgerMovement, events.Margin, error)
MarginUpdateOnOrder will run the margin updates over a set of risk events (margin updates).
func (*Engine) MarkToMarket ¶
func (e *Engine) MarkToMarket(ctx context.Context, marketID string, transfers []events.Transfer, asset string, useGeneralAccountForMarginSearch func(string) bool) ([]events.Margin, []*types.LedgerMovement, error)
MarkToMarket will run the mark to market settlement over a given set of positions return ledger move stuff here, too (separate return value, because we need to stream those).
func (*Engine) Name ¶
func (e *Engine) Name() types.CheckpointName
func (*Engine) Namespace ¶
func (e *Engine) Namespace() types.SnapshotNamespace
func (*Engine) OnBalanceSnapshotFrequencyUpdated ¶ added in v0.73.0
func (*Engine) OnEpochEvent ¶ added in v0.78.0
func (*Engine) OnEpochRestore ¶ added in v0.78.0
func (*Engine) PartyCanCoverFees ¶ added in v0.75.0
func (*Engine) PartyHasSufficientBalance ¶ added in v0.72.0
func (e *Engine) PartyHasSufficientBalance(asset, partyID string, amount *num.Uint, fromAccountType types.AccountType) error
PartyHasSufficientBalance checks if the party has sufficient amount in the <fromAccountType> account.
func (*Engine) PerpsFundingSettlement ¶ added in v0.73.0
func (e *Engine) PerpsFundingSettlement(ctx context.Context, marketID string, transfers []events.Transfer, asset string, round *num.Uint, useGeneralAccountForMarginSearch func(string) bool) ([]events.Margin, []*types.LedgerMovement, error)
PerpsFundingSettlement will run a funding settlement over given positions. This works exactly the same as a MTM settlement, but uses different transfer types.
func (*Engine) PropagateAssetUpdate ¶
func (*Engine) ReleaseFromHoldingAccount ¶ added in v0.72.0
func (e *Engine) ReleaseFromHoldingAccount(ctx context.Context, transfer *types.Transfer, toAccountType types.AccountType) (*types.LedgerMovement, error)
ReleaseFromHoldingAccount releases locked funds from holding account back to the toAccount of the party.
func (*Engine) ReloadConf ¶
ReloadConf updates the internal configuration of the collateral engine.
func (*Engine) RemoveBondAccount ¶ added in v0.69.0
func (*Engine) RemoveDistressed ¶
func (e *Engine) RemoveDistressed(ctx context.Context, parties []events.MarketPosition, marketID, asset string, useGeneralAccount func(string) bool) (*types.LedgerMovement, error)
RemoveDistressed will remove all distressed party in the event positions for a given market and asset.
func (*Engine) RemoveLiquidityFeesBonusDistributionAccount ¶ added in v0.72.0
func (*Engine) RestoreCheckpointBalance ¶ added in v0.56.0
func (e *Engine) RestoreCheckpointBalance( ctx context.Context, market, party, asset string, typ types.AccountType, amount *num.Uint, ) (*types.LedgerMovement, error)
RestoreCheckpointBalance will credit account with a balance from a checkpoint. This function assume the accounts have been created before.
func (*Engine) RollbackMarginUpdateOnOrder ¶
func (e *Engine) RollbackMarginUpdateOnOrder(ctx context.Context, marketID string, assetID string, transfer *types.Transfer) (*types.LedgerMovement, error)
RollbackMarginUpdateOnOrder moves funds from the margin to the general account.
func (*Engine) SubAccountClosed ¶ added in v0.77.0
func (*Engine) SubAccountRelease ¶ added in v0.77.0
func (*Engine) SubAccountUpdate ¶ added in v0.77.0
func (*Engine) SuccessorInsuranceFraction ¶ added in v0.72.0
func (*Engine) TransferFees ¶
func (e *Engine) TransferFees(ctx context.Context, marketID string, assetID string, ft events.FeesTransfer) ([]*types.LedgerMovement, error)
func (*Engine) TransferFeesContinuousTrading ¶
func (e *Engine) TransferFeesContinuousTrading(ctx context.Context, marketID string, assetID string, ft events.FeesTransfer) ([]*types.LedgerMovement, error)
func (*Engine) TransferFunds ¶
func (e *Engine) TransferFunds( ctx context.Context, transfers []*types.Transfer, accountTypes []types.AccountType, references []string, feeTransfers []*types.Transfer, feeTransfersAccountType []types.AccountType, ) ([]*types.LedgerMovement, error)
func (*Engine) TransferRewards ¶
func (e *Engine) TransferRewards(ctx context.Context, rewardAccountID string, transfers []*types.Transfer, rewardType types.AccountType) ([]*types.LedgerMovement, error)
TransferRewards takes a slice of transfers and serves them to transfer rewards from the reward account to parties general account.
func (*Engine) TransferSpot ¶ added in v0.72.0
func (e *Engine) TransferSpot(ctx context.Context, party, toParty, asset string, quantity *num.Uint, fromAccountType types.AccountType, toAccountType types.AccountType) (*types.LedgerMovement, error)
TransferSpot transfers the given asset/quantity from partyID to partyID. The source partyID fromAccountType account must exist in the asset, the target partyID account in the asset is created if it doesn't yet exist.
func (*Engine) TransferSpotFees ¶ added in v0.72.0
func (e *Engine) TransferSpotFees(ctx context.Context, marketID string, assetID string, ft events.FeesTransfer, fromAccountType types.AccountType) ([]*types.LedgerMovement, error)
func (*Engine) TransferSpotFeesContinuousTrading ¶ added in v0.72.0
func (e *Engine) TransferSpotFeesContinuousTrading(ctx context.Context, marketID string, assetID string, ft events.FeesTransfer) ([]*types.LedgerMovement, error)
func (*Engine) TransferToHoldingAccount ¶ added in v0.72.0
func (e *Engine) TransferToHoldingAccount(ctx context.Context, transfer *types.Transfer, accountTypeFrom types.AccountType) (*types.LedgerMovement, error)
TransferToHoldingAccount locks funds from accountTypeFrom into holding account account of the party.
func (*Engine) TransferVestedRewards ¶ added in v0.73.0
func (*Engine) UnearmarkForAutomatedPurchase ¶ added in v0.79.0
func (*Engine) UpdateBalance ¶
UpdateBalance will update the balance of a given account.
type TimeService ¶
TimeService provide the time of the vega node.