diff --git a/statediff/builder.go b/statediff/builder.go index a89ec2773..165e53b85 100644 --- a/statediff/builder.go +++ b/statediff/builder.go @@ -202,7 +202,7 @@ func (sdb *builder) buildStateDiffWithIntermediateStateNodes(args types2.StateRo // a map of their leafkey to all the accounts that were touched and exist at A diffAccountsAtA, err := sdb.deletedOrUpdatedState( oldTrie.NodeIterator([]byte{}), newTrie.NodeIterator([]byte{}), - diffAccountsAtB, diffPathsAtB, params.watchedAddressesLeafKeys, + diffAccountsAtB, diffPathsAtB, params.WatchedAddressesLeafKeys, params.IntermediateStorageNodes, output) if err != nil { return fmt.Errorf("error collecting deletedOrUpdatedNodes: %v", err) @@ -248,7 +248,7 @@ func (sdb *builder) buildStateDiffWithoutIntermediateStateNodes(args types2.Stat // and a slice of all the paths for the nodes in both of the above sets diffAccountsAtB, diffPathsAtB, err := sdb.createdAndUpdatedState( oldTrie.NodeIterator([]byte{}), newTrie.NodeIterator([]byte{}), - params.watchedAddressesLeafKeys) + params.WatchedAddressesLeafKeys) if err != nil { return fmt.Errorf("error collecting createdAndUpdatedNodes: %v", err) } @@ -257,7 +257,7 @@ func (sdb *builder) buildStateDiffWithoutIntermediateStateNodes(args types2.Stat // a map of their leafkey to all the accounts that were touched and exist at A diffAccountsAtA, err := sdb.deletedOrUpdatedState( oldTrie.NodeIterator([]byte{}), newTrie.NodeIterator([]byte{}), - diffAccountsAtB, diffPathsAtB, params.watchedAddressesLeafKeys, + diffAccountsAtB, diffPathsAtB, params.WatchedAddressesLeafKeys, params.IntermediateStorageNodes, output) if err != nil { return fmt.Errorf("error collecting deletedOrUpdatedNodes: %v", err) diff --git a/statediff/config.go b/statediff/config.go index b4905ab5a..77dc8b097 100644 --- a/statediff/config.go +++ b/statediff/config.go @@ -55,14 +55,14 @@ type Params struct { IncludeTD bool IncludeCode bool WatchedAddresses []common.Address - watchedAddressesLeafKeys map[common.Hash]struct{} + WatchedAddressesLeafKeys map[common.Hash]struct{} } // ComputeWatchedAddressesLeafKeys populates a map with keys (Keccak256Hash) of each of the WatchedAddresses func (p *Params) ComputeWatchedAddressesLeafKeys() { - p.watchedAddressesLeafKeys = make(map[common.Hash]struct{}, len(p.WatchedAddresses)) + p.WatchedAddressesLeafKeys = make(map[common.Hash]struct{}, len(p.WatchedAddresses)) for _, address := range p.WatchedAddresses { - p.watchedAddressesLeafKeys[crypto.Keccak256Hash(address.Bytes())] = struct{}{} + p.WatchedAddressesLeafKeys[crypto.Keccak256Hash(address.Bytes())] = struct{}{} } } diff --git a/statediff/service.go b/statediff/service.go index 4bdb9bf50..eb19ea8cc 100644 --- a/statediff/service.go +++ b/statediff/service.go @@ -903,7 +903,7 @@ func (sds *Service) WatchAddress(operation types2.OperationType, args []types2.W // update in-memory params writeLoopParams.WatchedAddresses = append(writeLoopParams.WatchedAddresses, filteredAddresses...) funk.ForEach(filteredAddresses, func(address common.Address) { - writeLoopParams.watchedAddressesLeafKeys[crypto.Keccak256Hash(address.Bytes())] = struct{}{} + writeLoopParams.WatchedAddressesLeafKeys[crypto.Keccak256Hash(address.Bytes())] = struct{}{} }) case types2.Remove: // get addresses from args @@ -927,7 +927,7 @@ func (sds *Service) WatchAddress(operation types2.OperationType, args []types2.W // update in-memory params writeLoopParams.WatchedAddresses = addresses funk.ForEach(argAddresses, func(address common.Address) { - delete(writeLoopParams.watchedAddressesLeafKeys, crypto.Keccak256Hash(address.Bytes())) + delete(writeLoopParams.WatchedAddressesLeafKeys, crypto.Keccak256Hash(address.Bytes())) }) case types2.Set: // get addresses from args