51 lines
1.5 KiB
Go
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
|
|
}
|