Files
mev-beta/pkg/arbitrage/types.go
2025-10-04 09:31:02 -05:00

51 lines
1.5 KiB
Go

package arbitrage
import (
"math/big"
"time"
"github.com/ethereum/go-ethereum/common"
"github.com/fraktal/mev-beta/pkg/math"
"github.com/fraktal/mev-beta/pkg/mev"
"github.com/fraktal/mev-beta/pkg/types"
)
// ExecutionResult represents the result of an arbitrage execution
type ExecutionResult struct {
TransactionHash common.Hash
GasUsed uint64
GasPrice *big.Int
GasCost *math.UniversalDecimal // Changed to UniversalDecimal for consistency with other components
ProfitRealized *big.Int
Success bool
Error error
ExecutionTime time.Duration
Path *ArbitragePath
ErrorMessage string // Added for compatibility
Status string // Added for compatibility
}
// ExecutionTask represents a task for execution
type ExecutionTask struct {
Opportunity *types.ArbitrageOpportunity
Priority int
Deadline time.Time
SubmissionTime time.Time // Added for tracking when the task was submitted
CompetitionAnalysis *mev.CompetitionData // Changed to match what the analyzer returns
ResultChan chan *ExecutionResult // Channel to send execution result back
}
// DetectionParams represents parameters for arbitrage opportunity detection
type DetectionParams struct {
TokenA common.Address
TokenB common.Address
MinProfit *big.Int
MaxSlippage float64
}
// TokenPair represents a trading pair
type TokenPair struct {
TokenA common.Address
TokenB common.Address
}