@@ -97,7 +97,7 @@ func ethLogFromEvent(entries []types.EventEntry) (data []byte, topics []ethtypes
97
97
func ethFilterResultFromEvents (ctx context.Context , evs []* filter.CollectedEvent , sa StateAPI ) (* ethtypes.EthFilterResult , error ) {
98
98
res := & ethtypes.EthFilterResult {}
99
99
for _ , ev := range evs {
100
- log := ethtypes.EthLog {
100
+ ethlog := ethtypes.EthLog {
101
101
Removed : ev .Reverted ,
102
102
LogIndex : ethtypes .EthUint64 (ev .EventIdx ),
103
103
TransactionIndex : ethtypes .EthUint64 (ev .MsgIdx ),
@@ -108,7 +108,7 @@ func ethFilterResultFromEvents(ctx context.Context, evs []*filter.CollectedEvent
108
108
ok bool
109
109
)
110
110
111
- log .Data , log .Topics , ok = ethLogFromEvent (ev .Entries )
111
+ ethlog .Data , ethlog .Topics , ok = ethLogFromEvent (ev .Entries )
112
112
if ! ok {
113
113
continue
114
114
}
@@ -118,35 +118,43 @@ func ethFilterResultFromEvents(ctx context.Context, evs []*filter.CollectedEvent
118
118
return nil , xerrors .Errorf ("emitter to addr: %w" , err )
119
119
}
120
120
121
- actor , err := sa .StateGetActor (ctx , emitterAddr , ev .TipSetKey )
121
+ ts , err := sa .Chain .GetTipSetFromKey (ctx , ev .TipSetKey )
122
+ if err != nil {
123
+ return nil , xerrors .Errorf ("loading tipset: %w" , err )
124
+ }
125
+ stateRoot , _ , err := sa .StateManager .TipSetState (ctx , ts )
126
+ if err != nil {
127
+ return nil , xerrors .Errorf ("loading tipset state: %w" , err )
128
+ }
129
+ actor , err := sa .StateManager .LoadActorRaw (ctx , emitterAddr , stateRoot )
122
130
if err != nil {
123
131
return nil , xerrors .Errorf ("state get actor: %w" , err )
124
132
}
125
133
if actor == nil && actor .Address == nil {
126
134
return nil , xerrors .New ("state get actor: nil" )
127
135
}
128
- log .Address , err = ethtypes .EthAddressFromFilecoinAddress (* actor .Address )
136
+ ethlog .Address , err = ethtypes .EthAddressFromFilecoinAddress (* actor .Address )
129
137
if err != nil {
130
138
return nil , xerrors .Errorf ("eth addr from fil: %w" , err )
131
139
}
132
- log .TransactionHash , err = ethTxHashFromMessageCid (ctx , ev .MsgCid , sa )
140
+ ethlog .TransactionHash , err = ethTxHashFromMessageCid (ctx , ev .MsgCid , sa )
133
141
if err != nil {
134
142
return nil , err
135
143
}
136
- if log .TransactionHash == ethtypes .EmptyEthHash {
144
+ if ethlog .TransactionHash == ethtypes .EmptyEthHash {
137
145
// We've garbage collected the message, ignore the events and continue.
138
146
continue
139
147
}
140
148
c , err := ev .TipSetKey .Cid ()
141
149
if err != nil {
142
150
return nil , err
143
151
}
144
- log .BlockHash , err = ethtypes .EthHashFromCid (c )
152
+ ethlog .BlockHash , err = ethtypes .EthHashFromCid (c )
145
153
if err != nil {
146
154
return nil , err
147
155
}
148
156
149
- res .Results = append (res .Results , log )
157
+ res .Results = append (res .Results , ethlog )
150
158
}
151
159
152
160
return res , nil
0 commit comments