Эх сурвалжийг харах

ethapi: prevent creating contract if no data is provided (#16108)

* ethapi: prevent creating contract if no data is provided

* internal/ethapi: downcase error for no data on contract creation
Martin Holst Swende 7 жил өмнө
parent
commit
b585f76128
1 өөрчлөгдсөн 12 нэмэгдсэн , 0 устгасан
  1. 12 0
      internal/ethapi/api.go

+ 12 - 0
internal/ethapi/api.go

@@ -1135,6 +1135,18 @@ func (args *SendTxArgs) setDefaults(ctx context.Context, b Backend) error {
 	if args.Data != nil && args.Input != nil && !bytes.Equal(*args.Data, *args.Input) {
 		return errors.New(`Both "data" and "input" are set and not equal. Please use "input" to pass transaction call data.`)
 	}
+	if args.To == nil {
+		// Contract creation
+		var input []byte
+		if args.Data != nil {
+			input = *args.Data
+		} else if args.Input != nil {
+			input = *args.Input
+		}
+		if len(input) == 0 {
+			return errors.New(`contract creation without any data provided`)
+		}
+	}
 	return nil
 }