removed the fucking vendor files
This commit is contained in:
109
pkg/types/types.go
Normal file
109
pkg/types/types.go
Normal file
@@ -0,0 +1,109 @@
|
||||
// Package types provides shared types used across multiple packages to avoid circular dependencies
|
||||
package types
|
||||
|
||||
import (
|
||||
"math/big"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
)
|
||||
|
||||
// ArbitrageOpportunity represents a potential arbitrage opportunity
|
||||
type ArbitrageOpportunity struct {
|
||||
Path []string // Token path for the arbitrage
|
||||
Pools []string // Pools involved in the arbitrage
|
||||
Profit *big.Int // Estimated profit in wei
|
||||
GasEstimate *big.Int // Estimated gas cost
|
||||
ROI float64 // Return on investment percentage
|
||||
Protocol string // DEX protocol
|
||||
}
|
||||
|
||||
// PriceMovement represents a potential price movement
|
||||
type PriceMovement struct {
|
||||
Token0 string // Token address
|
||||
Token1 string // Token address
|
||||
Pool string // Pool address
|
||||
Protocol string // DEX protocol
|
||||
AmountIn *big.Int // Amount of token being swapped in
|
||||
AmountOut *big.Int // Amount of token being swapped out
|
||||
PriceBefore *big.Float // Price before the swap
|
||||
PriceAfter *big.Float // Price after the swap (to be calculated)
|
||||
PriceImpact float64 // Calculated price impact
|
||||
TickBefore int // Tick before the swap
|
||||
TickAfter int // Tick after the swap (to be calculated)
|
||||
Timestamp int64 // Event timestamp
|
||||
}
|
||||
|
||||
// CachedData represents cached pool data
|
||||
type CachedData struct {
|
||||
Address common.Address
|
||||
Token0 common.Address
|
||||
Token1 common.Address
|
||||
Fee int64
|
||||
Liquidity *big.Int
|
||||
SqrtPriceX96 *big.Int
|
||||
Tick int
|
||||
TickSpacing int
|
||||
LastUpdated int64
|
||||
Protocol string
|
||||
}
|
||||
|
||||
// SwapEvent represents a swap event
|
||||
type SwapEvent struct {
|
||||
Type int
|
||||
Protocol string
|
||||
PoolAddress common.Address
|
||||
Token0 common.Address
|
||||
Token1 common.Address
|
||||
Amount0 *big.Int
|
||||
Amount1 *big.Int
|
||||
SqrtPriceX96 *big.Int
|
||||
Liquidity *big.Int
|
||||
Tick int
|
||||
Timestamp int64
|
||||
TransactionHash common.Hash
|
||||
BlockNumber uint64
|
||||
Fee uint32
|
||||
}
|
||||
|
||||
// LiquidityEvent represents a liquidity event (add/remove)
|
||||
type LiquidityEvent struct {
|
||||
Type int
|
||||
Protocol string
|
||||
PoolAddress common.Address
|
||||
Token0 common.Address
|
||||
Token1 common.Address
|
||||
Amount0 *big.Int
|
||||
Amount1 *big.Int
|
||||
Liquidity *big.Int
|
||||
Tick int
|
||||
Timestamp int64
|
||||
TransactionHash common.Hash
|
||||
BlockNumber uint64
|
||||
Fee uint32
|
||||
Sender common.Address
|
||||
Recipient common.Address
|
||||
EventType string // "add" or "remove"
|
||||
}
|
||||
|
||||
// PoolData represents pool data
|
||||
type PoolData struct {
|
||||
Address common.Address
|
||||
Token0 common.Address
|
||||
Token1 common.Address
|
||||
Fee int64
|
||||
Liquidity *big.Int
|
||||
SqrtPriceX96 *big.Int
|
||||
Tick int64
|
||||
TickSpacing int
|
||||
LastUpdated int64
|
||||
Protocol string
|
||||
}
|
||||
|
||||
// Constants for event types
|
||||
const (
|
||||
Unknown = iota
|
||||
Swap
|
||||
AddLiquidity
|
||||
RemoveLiquidity
|
||||
NewPool
|
||||
)
|
||||
Reference in New Issue
Block a user