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