Skip to content
This repository has been archived by the owner on Apr 4, 2024. It is now read-only.

Problem: empty topics shouldn't be encoded as nil #840

Merged
merged 4 commits into from
Dec 14, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ Ref: https://keepachangelog.com/en/1.0.0/

## Unreleased

### State Machine Breaking

- (evm) [tharsis#840](https://github.com/tharsis/ethermint/pull/840) Store empty topics as empty array rather than nil.

### Improvements

* (evm) [tharsis#826](https://github.com/tharsis/ethermint/issues/826) Improve allocation of bytes of `tx.To` address.
Expand Down
4 changes: 4 additions & 0 deletions x/evm/keeper/statedb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -592,6 +592,7 @@ func (suite *KeeperTestSuite) TestAddLog() {
&ethtypes.Log{
Address: addr,
TxHash: txHash,
Topics: make([]common.Hash, 0),
},
func() {},
},
Expand All @@ -606,6 +607,7 @@ func (suite *KeeperTestSuite) TestAddLog() {
TxHash: txHash2,
TxIndex: 1,
Index: 1,
Topics: make([]common.Hash, 0),
},
func() {
suite.app.EvmKeeper.SetTxHashTransient(txHash)
Expand All @@ -624,6 +626,7 @@ func (suite *KeeperTestSuite) TestAddLog() {
&ethtypes.Log{
Address: addr,
TxHash: txHash3,
Topics: make([]common.Hash, 0),
},
func() {},
},
Expand All @@ -638,6 +641,7 @@ func (suite *KeeperTestSuite) TestAddLog() {
TxHash: txHash4,
TxIndex: 1,
Index: 1,
Topics: make([]common.Hash, 0),
},
func() {
suite.app.EvmKeeper.SetTxHashTransient(txHash)
Expand Down
12 changes: 6 additions & 6 deletions x/evm/types/logs.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,9 @@ func (log *Log) Validate() error {

// ToEthereum returns the Ethereum type Log from a Ethermint proto compatible Log.
func (log *Log) ToEthereum() *ethtypes.Log {
var topics []common.Hash // nolint: prealloc
for i := range log.Topics {
topics = append(topics, common.HexToHash(log.Topics[i]))
topics := make([]common.Hash, len(log.Topics))
for i, topic := range log.Topics {
topics[i] = common.HexToHash(topic)
}

return &ethtypes.Log{
Expand Down Expand Up @@ -108,9 +108,9 @@ func LogsToEthereum(logs []*Log) []*ethtypes.Log {

// NewLogFromEth creates a new Log instance from a Ethereum type Log.
func NewLogFromEth(log *ethtypes.Log) *Log {
var topics []string // nolint: prealloc
for _, topic := range log.Topics {
topics = append(topics, topic.String())
topics := make([]string, len(log.Topics))
for i, topic := range log.Topics {
topics[i] = topic.String()
}

return &Log{
Expand Down