24 lines
938 B
Go
24 lines
938 B
Go
|
package bidutil
|
||
|
|
||
|
import (
|
||
|
"time"
|
||
|
|
||
|
"github.com/ethereum/go-ethereum/core/types"
|
||
|
)
|
||
|
|
||
|
// BidBetterBefore returns the time when the next bid better be received, considering the delay and bid simulation.
|
||
|
// BidBetterBefore is earlier than BidMustBefore.
|
||
|
func BidBetterBefore(parentHeader *types.Header, blockPeriod uint64, delayLeftOver, simulationLeftOver time.Duration) time.Time {
|
||
|
nextHeaderTime := BidMustBefore(parentHeader, blockPeriod, delayLeftOver)
|
||
|
nextHeaderTime = nextHeaderTime.Add(-simulationLeftOver)
|
||
|
return nextHeaderTime
|
||
|
}
|
||
|
|
||
|
// BidMustBefore returns the time when the next bid must be received,
|
||
|
// only considering the consensus delay but not bid simulation duration.
|
||
|
func BidMustBefore(parentHeader *types.Header, blockPeriod uint64, delayLeftOver time.Duration) time.Time {
|
||
|
nextHeaderTime := time.Unix(int64(parentHeader.Time+blockPeriod), 0)
|
||
|
nextHeaderTime = nextHeaderTime.Add(-delayLeftOver)
|
||
|
return nextHeaderTime
|
||
|
}
|