From 4872d7fde55476ac617ac4b98888e72d11b5b76a Mon Sep 17 00:00:00 2001 From: Jared Wasinger Date: Tue, 3 Dec 2024 15:18:24 +0700 Subject: [PATCH] remove unecessary abi parameter from WatchEvents. simplify event tests --- accounts/abi/bind/v2/lib.go | 4 ++-- accounts/abi/bind/v2/lib_test.go | 25 ++++--------------------- 2 files changed, 6 insertions(+), 23 deletions(-) diff --git a/accounts/abi/bind/v2/lib.go b/accounts/abi/bind/v2/lib.go index 3ae5b4283e..3557818dec 100644 --- a/accounts/abi/bind/v2/lib.go +++ b/accounts/abi/bind/v2/lib.go @@ -237,9 +237,9 @@ func FilterEvents[T any](instance *ContractInstance, opts *bind.FilterOpts, even // contract to be intercepted, unpacked, and forwarded to sink. If // unpack returns an error, the returned subscription is closed with the // error. -func WatchEvents[T any](instance *ContractInstance, abi abi.ABI, opts *bind.WatchOpts, eventID common.Hash, unpack func(*types.Log) (*T, error), sink chan<- *T, topics ...[]any) (event.Subscription, error) { +func WatchEvents[T any](instance *ContractInstance, opts *bind.WatchOpts, eventID common.Hash, unpack func(*types.Log) (*T, error), sink chan<- *T, topics ...[]any) (event.Subscription, error) { backend := instance.Backend - c := bind.NewBoundContract(instance.Address, abi, backend, backend, backend) + c := bind.NewBoundContract(instance.Address, abi.ABI{}, backend, backend, backend) logs, sub, err := c.WatchLogsForId(opts, eventID, topics...) if err != nil { return nil, err diff --git a/accounts/abi/bind/v2/lib_test.go b/accounts/abi/bind/v2/lib_test.go index a7e548e5b9..86101e3a64 100644 --- a/accounts/abi/bind/v2/lib_test.go +++ b/accounts/abi/bind/v2/lib_test.go @@ -295,11 +295,6 @@ func TestEvents(t *testing.T) { t.Fatalf("error instantiating contract instance: %v", err) } - abi, err := events.CMetaData.GetAbi() - if err != nil { - t.Fatalf("error getting contract abi: %v", err) - } - boundContract := ContractInstance{ res.Addrs[events.CMetaData.Pattern], backend, @@ -311,8 +306,8 @@ func TestEvents(t *testing.T) { Start: nil, Context: context.Background(), } - sub1, err := WatchEvents(&boundContract, *abi, watchOpts, events.CBasic1EventID(), ctrct.UnpackBasic1Event, newCBasic1Ch) - sub2, err := WatchEvents(&boundContract, *abi, watchOpts, events.CBasic2EventID(), ctrct.UnpackBasic2Event, newCBasic2Ch) + sub1, err := WatchEvents(&boundContract, watchOpts, events.CBasic1EventID(), ctrct.UnpackBasic1Event, newCBasic1Ch) + sub2, err := WatchEvents(&boundContract, watchOpts, events.CBasic2EventID(), ctrct.UnpackBasic2Event, newCBasic2Ch) defer sub1.Unsubscribe() defer sub2.Unsubscribe() @@ -360,23 +355,11 @@ done: Start: 0, Context: context.Background(), } - unpackBasic := func(raw *types.Log) (*events.CBasic1, error) { - return &events.CBasic1{ - Id: (new(big.Int)).SetBytes(raw.Topics[0].Bytes()), - Data: (new(big.Int)).SetBytes(raw.Data), - }, nil - } - unpackBasic2 := func(raw *types.Log) (*events.CBasic2, error) { - return &events.CBasic2{ - Flag: false, // TODO: how to unpack different types to go types? this should be exposed via abi package. - Data: (new(big.Int)).SetBytes(raw.Data), - }, nil - } - it, err := FilterEvents[events.CBasic1](crtctInstance, filterOpts, events.CBasic1EventID(), unpackBasic) + it, err := FilterEvents[events.CBasic1](crtctInstance, filterOpts, events.CBasic1EventID(), ctrct.UnpackBasic1Event) if err != nil { t.Fatalf("error filtering logs %v\n", err) } - it2, err := FilterEvents[events.CBasic2](crtctInstance, filterOpts, events.CBasic2EventID(), unpackBasic2) + it2, err := FilterEvents[events.CBasic2](crtctInstance, filterOpts, events.CBasic2EventID(), ctrct.UnpackBasic2Event) if err != nil { t.Fatalf("error filtering logs %v\n", err) }