model

package
v0.0.0-...-c8ab65e Latest Latest
Warning

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

Go to latest
Published: Jul 10, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const MAX_APR_CAP = 10.0
View Source
const MIN_NUMERIC_STABLE_FLOW = 1000

Variables

This section is empty.

Functions

This section is empty.

Types

type APRCalcResult

type APRCalcResult struct {
	Duration       float64 `json:"aprDuration"`
	PostLiqPos     float64 `json:"aprPostLiq"`
	ContributedLiq float64 `json:"aprContributedLiq"`
	Apr            float64 `json:"aprEst"`
}

type AccumPoolStats

type AccumPoolStats struct {
	LatestTime     int     `json:"latestTime"`
	BaseTvl        float64 `json:"baseTvl"`
	QuoteTvl       float64 `json:"quoteTvl"`
	BaseVolume     float64 `json:"baseVolume"`
	QuoteVolume    float64 `json:"quoteVolume"`
	BaseFees       float64 `json:"baseFees"`
	QuoteFees      float64 `json:"quoteFees"`
	LastPriceSwap  float64 `json:"lastPriceSwap"`
	LastPriceLiq   float64 `json:"lastPriceLiq"`
	LastPriceIndic float64 `json:"lastPriceIndic"`
	FeeRate        float64 `json:"feeRate"`
}

func (*AccumPoolStats) Accumulate

func (a *AccumPoolStats) Accumulate(e tables.AggEvent)

type Candle

type Candle struct {
	PriceOpen    float64 `json:"priceOpen"`
	PriceClose   float64 `json:"priceClose"`
	MinPrice     float64 `json:"minPrice"`
	MaxPrice     float64 `json:"maxPrice"`
	VolumeBase   float64 `json:"volumeBase"`
	VolumeQuote  float64 `json:"volumeQuote"`
	TvlBase      float64 `json:"tvlBase"`
	TvlQuote     float64 `json:"tvlQuote"`
	FeeRateOpen  float64 `json:"feeRateOpen"`
	FeeRateClose float64 `json:"feeRateClose"`
	Period       int     `json:"period"`
	Time         int     `json:"time"`
}

type CandleBuilder

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

func NewCandleBuilder

func NewCandleBuilder(startTime int, period int, open AccumPoolStats) *CandleBuilder

func (*CandleBuilder) Close

func (c *CandleBuilder) Close(endTime int) []Candle

func (*CandleBuilder) Increment

func (c *CandleBuilder) Increment(accum AccumPoolStats)

type HistoryWriter

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

func NewHistoryWriter

func NewHistoryWriter(netCfg loader.NetworkConfig, commitFn func(types.PoolTxEvent)) *HistoryWriter

func (*HistoryWriter) CommitLiqChange

func (h *HistoryWriter) CommitLiqChange(s tables.LiqChange)

func (*HistoryWriter) CommitSwap

func (h *HistoryWriter) CommitSwap(s tables.Swap)

type KnockoutLiquiditySeries

type KnockoutLiquiditySeries struct {
	Active        PositionLiquidity
	KnockedOut    map[int]*PositionLiquidity
	TimeFirstMint int
}

func (*KnockoutLiquiditySeries) UpdateActiveLiq

func (k *KnockoutLiquiditySeries) UpdateActiveLiq(liqQty big.Int)

func (*KnockoutLiquiditySeries) UpdatePostKOLiq

func (k *KnockoutLiquiditySeries) UpdatePostKOLiq(pivotTime int, liqQty big.Int)

type KnockoutPivotCands

type KnockoutPivotCands struct {
	PivotTime int
	User      types.EthAddress
}

type KnockoutSaga

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

func NewKnockoutSaga

func NewKnockoutSaga() *KnockoutSaga

func (*KnockoutSaga) ForUser

func (k *KnockoutSaga) ForUser(user types.EthAddress) *KnockoutSubplot

func (*KnockoutSaga) UpdateCross

type KnockoutSagaCross

type KnockoutSagaCross struct {
	CrossTime int
	PivotTime int
}

type KnockoutSagaTx

type KnockoutSagaTx struct {
	TxTime int
	TxHash string
}

type KnockoutSubplot

type KnockoutSubplot struct {
	Liq        KnockoutLiquiditySeries
	LatestTime int
	// contains filtered or unexported fields
}

func (*KnockoutSubplot) GetCrossForPivotTime

func (k *KnockoutSubplot) GetCrossForPivotTime(pivotTime int) (int, bool)

func (*KnockoutSubplot) IsActiveEmpty

func (k *KnockoutSubplot) IsActiveEmpty() bool

func (*KnockoutSubplot) UpdateLiqChange

func (k *KnockoutSubplot) UpdateLiqChange(l tables.LiqChange) ([]KnockoutPivotCands, bool)

type LiquidityBump

type LiquidityBump struct {
	Tick             int     `json:"bumpTick"`
	LiquidityDelta   float64 `json:"liquidityDelta"`
	KnockoutBidLiq   float64 `json:"knockoutBidLiq"`
	KnockoutAskLiq   float64 `json:"knockoutAskLiq"`
	KnockoutBidWidth int     `json:"knockoutBidWidth"`
	KnockoutAskWidth int     `json:"knockoutAskWidth"`
	LatestUpdateTime int     `json:"latestUpdateTime"`
}

func (*LiquidityBump) IncrKOAsk

func (b *LiquidityBump) IncrKOAsk(liqDelta float64, joinTick int)

func (*LiquidityBump) IncrKOBid

func (b *LiquidityBump) IncrKOBid(liqDelta float64, joinTick int)

func (*LiquidityBump) IncrLiquidity

func (b *LiquidityBump) IncrLiquidity(liqDelta float64, time int)

func (*LiquidityBump) KnockoutAsk

func (b *LiquidityBump) KnockoutAsk(time int) (float64, int)

func (*LiquidityBump) KnockoutBid

func (b *LiquidityBump) KnockoutBid(time int) (float64, int)

type LiquidityCurve

type LiquidityCurve struct {
	AmbientLiq float64
	Bumps      map[int]*LiquidityBump
}

func NewLiquidityCurve

func NewLiquidityCurve() *LiquidityCurve

func (*LiquidityCurve) UpdateLiqChange

func (c *LiquidityCurve) UpdateLiqChange(l tables.LiqChange)

type LiquidityDelta

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

type LiquidityDeltaHist

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

type PoolTradingHistory

type PoolTradingHistory struct {
	StatsCounter AccumPoolStats
	TimeSnaps    []AccumPoolStats
}

func NewPoolTradingHistory

func NewPoolTradingHistory() *PoolTradingHistory

func (*PoolTradingHistory) NextEvent

func (h *PoolTradingHistory) NextEvent(r tables.AggEvent)

type PositionLiquidity

type PositionLiquidity struct {
	AmbientLiq  big.Int `json:"ambientLiq"`
	ConcLiq     big.Int `json:"concLiq"`
	RewardLiq   big.Int `json:"rewardLiq"`
	RefreshTime int64   `json:"liqRefreshTime"`
}

func (*PositionLiquidity) IsConcentrated

func (p *PositionLiquidity) IsConcentrated() bool

func (*PositionLiquidity) IsEmpty

func (p *PositionLiquidity) IsEmpty() bool

type PositionTracker

type PositionTracker struct {
	TimeFirstMint    int    `json:"timeFirstMint"`
	LatestUpdateTime int    `json:"latestUpdateTime"`
	LastMintTx       string `json:"lastMintTx"`
	FirstMintTx      string `json:"firstMintTx"`
	PositionType     string `json:"positionType"`
	PositionLiquidity
	// contains filtered or unexported fields
}

func (*PositionTracker) CalcAPR

func (*PositionTracker) UpdateAmbient

func (p *PositionTracker) UpdateAmbient(liq big.Int)

func (*PositionTracker) UpdatePosition

func (p *PositionTracker) UpdatePosition(l tables.LiqChange)

func (*PositionTracker) UpdateRange

func (p *PositionTracker) UpdateRange(liq big.Int, rewardsLiq big.Int)

type RunningCandle

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

Jump to

Keyboard shortcuts

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