remove unecessary abi parameter from WatchEvents. simplify event tests
This commit is contained in:
parent
b50593e702
commit
4872d7fde5
|
@ -237,9 +237,9 @@ func FilterEvents[T any](instance *ContractInstance, opts *bind.FilterOpts, even
|
||||||
// contract to be intercepted, unpacked, and forwarded to sink. If
|
// contract to be intercepted, unpacked, and forwarded to sink. If
|
||||||
// unpack returns an error, the returned subscription is closed with the
|
// unpack returns an error, the returned subscription is closed with the
|
||||||
// error.
|
// 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
|
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...)
|
logs, sub, err := c.WatchLogsForId(opts, eventID, topics...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
@ -295,11 +295,6 @@ func TestEvents(t *testing.T) {
|
||||||
t.Fatalf("error instantiating contract instance: %v", err)
|
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{
|
boundContract := ContractInstance{
|
||||||
res.Addrs[events.CMetaData.Pattern],
|
res.Addrs[events.CMetaData.Pattern],
|
||||||
backend,
|
backend,
|
||||||
|
@ -311,8 +306,8 @@ func TestEvents(t *testing.T) {
|
||||||
Start: nil,
|
Start: nil,
|
||||||
Context: context.Background(),
|
Context: context.Background(),
|
||||||
}
|
}
|
||||||
sub1, err := WatchEvents(&boundContract, *abi, watchOpts, events.CBasic1EventID(), ctrct.UnpackBasic1Event, newCBasic1Ch)
|
sub1, err := WatchEvents(&boundContract, watchOpts, events.CBasic1EventID(), ctrct.UnpackBasic1Event, newCBasic1Ch)
|
||||||
sub2, err := WatchEvents(&boundContract, *abi, watchOpts, events.CBasic2EventID(), ctrct.UnpackBasic2Event, newCBasic2Ch)
|
sub2, err := WatchEvents(&boundContract, watchOpts, events.CBasic2EventID(), ctrct.UnpackBasic2Event, newCBasic2Ch)
|
||||||
defer sub1.Unsubscribe()
|
defer sub1.Unsubscribe()
|
||||||
defer sub2.Unsubscribe()
|
defer sub2.Unsubscribe()
|
||||||
|
|
||||||
|
@ -360,23 +355,11 @@ done:
|
||||||
Start: 0,
|
Start: 0,
|
||||||
Context: context.Background(),
|
Context: context.Background(),
|
||||||
}
|
}
|
||||||
unpackBasic := func(raw *types.Log) (*events.CBasic1, error) {
|
it, err := FilterEvents[events.CBasic1](crtctInstance, filterOpts, events.CBasic1EventID(), ctrct.UnpackBasic1Event)
|
||||||
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)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("error filtering logs %v\n", err)
|
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 {
|
if err != nil {
|
||||||
t.Fatalf("error filtering logs %v\n", err)
|
t.Fatalf("error filtering logs %v\n", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue