From 57f18c19fc03ed2ce1a6082aa8c72b9a077e296c Mon Sep 17 00:00:00 2001 From: Marius van der Wijden Date: Fri, 13 Dec 2019 14:17:05 +0100 Subject: [PATCH] accounts/abi/bind: properly unsubscribe after errors --- accounts/abi/bind/template.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/accounts/abi/bind/template.go b/accounts/abi/bind/template.go index c96dd1b995..ce1fc342ac 100644 --- a/accounts/abi/bind/template.go +++ b/accounts/abi/bind/template.go @@ -434,6 +434,7 @@ var ( logs, sub, err := _{{$contract.Type}}.contract.FilterLogs(opts, "{{.Original.Name}}"{{range .Normalized.Inputs}}{{if .Indexed}}, {{.Name}}Rule{{end}}{{end}}) if err != nil { + sub.Unsubscribe() return nil, err } return &{{$contract.Type}}{{.Normalized.Name}}Iterator{contract: _{{$contract.Type}}.contract, event: "{{.Original.Name}}", logs: logs, sub: sub}, nil @@ -451,6 +452,7 @@ var ( logs, sub, err := _{{$contract.Type}}.contract.WatchLogs(opts, "{{.Original.Name}}"{{range .Normalized.Inputs}}{{if .Indexed}}, {{.Name}}Rule{{end}}{{end}}) if err != nil { + sub.Unsubscribe() return nil, err } return event.NewSubscription(func(quit <-chan struct{}) error {