skip unpack method when no return args

This commit is contained in:
Sina Mahmoodi 2023-03-01 13:32:34 +03:30 committed by Jared Wasinger
parent 724f77e3ec
commit dcf1318a24
2 changed files with 23 additions and 20 deletions

View File

@ -129,7 +129,7 @@ func BindV2(types []string, abis []string, bytecodes []string, fsigs []map[strin
if call.Structured { if call.Structured {
continue continue
} }
if len(call.Normalized.Outputs) == 1 { if len(call.Normalized.Outputs) < 2 {
continue continue
} }
// Build up dictionary of existing arg names. // Build up dictionary of existing arg names.

View File

@ -89,6 +89,8 @@ var (
return _{{$contract.Type}}.abi.Pack("{{.Original.Name}}" {{range .Normalized.Inputs}}, {{.Name}}{{end}}) return _{{$contract.Type}}.abi.Pack("{{.Original.Name}}" {{range .Normalized.Inputs}}, {{.Name}}{{end}})
} }
{{/* Unpack method is needed only when there are return args */}}
{{if .Normalized.Outputs }}
func (_{{$contract.Type}} *{{$contract.Type}}) Unpack{{.Normalized.Name}}(data []byte) ({{if .Structured}}struct{ {{range .Normalized.Outputs}}{{.Name}} {{bindtype .Type $structs}};{{end}} },{{else}}{{range .Normalized.Outputs}}{{bindtype .Type $structs}},{{end}}{{end}} error) { func (_{{$contract.Type}} *{{$contract.Type}}) Unpack{{.Normalized.Name}}(data []byte) ({{if .Structured}}struct{ {{range .Normalized.Outputs}}{{.Name}} {{bindtype .Type $structs}};{{end}} },{{else}}{{range .Normalized.Outputs}}{{bindtype .Type $structs}},{{end}}{{end}} error) {
out, err := _{{$contract.Type}}.abi.Unpack("{{.Original.Name}}", data) out, err := _{{$contract.Type}}.abi.Unpack("{{.Original.Name}}", data)
{{if .Structured}} {{if .Structured}}
@ -111,6 +113,7 @@ var (
{{end}} {{end}}
} }
{{end}} {{end}}
{{end}}
{{range .Events}} {{range .Events}}
// {{$contract.Type}}{{.Normalized.Name}} represents a {{.Normalized.Name}} event raised by the {{$contract.Type}} contract. // {{$contract.Type}}{{.Normalized.Name}} represents a {{.Normalized.Name}} event raised by the {{$contract.Type}} contract.