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)
|
||
|
}
|