52261fb814
While the previous version "worked", this version nicely separates out the state for the separate stages. Hopefully, we'll be able to use this to build different pipelines with different configs.
26 lines
556 B
Go
26 lines
556 B
Go
package blockbuilder
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
// ErrOutOfGas is returned from BlockBuilder.PushMessage when the block does not have enough gas to
|
|
// fit the given message.
|
|
type ErrOutOfGas struct {
|
|
Available, Required int64
|
|
}
|
|
|
|
func (e *ErrOutOfGas) Error() string {
|
|
if e.Available == 0 {
|
|
return "out of gas: block full"
|
|
}
|
|
return fmt.Sprintf("out of gas: %d < %d", e.Required, e.Available)
|
|
}
|
|
|
|
// IsOutOfGas returns true if the error is an "out of gas" error.
|
|
func IsOutOfGas(err error) bool {
|
|
var oog *ErrOutOfGas
|
|
return errors.As(err, &oog)
|
|
}
|