Skip to content

Commit

Permalink
Merge pull request #573 from okex/michael.w/evm-resultdata-string
Browse files Browse the repository at this point in the history
FIX: pointer in ResultData.String()
  • Loading branch information
KamiD authored Jan 21, 2021
2 parents 8f2e3b5 + 1508603 commit da02e95
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 3 deletions.
12 changes: 9 additions & 3 deletions x/evm/types/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,19 @@ type ResultData struct {

// String implements fmt.Stringer interface.
func (rd ResultData) String() string {
var logsStr string
logsLen := len(rd.Logs)
for i := 0; i < logsLen; i++ {
logsStr = fmt.Sprintf("%s\t\t%v\n ", logsStr, *rd.Logs[i])
}

return strings.TrimSpace(fmt.Sprintf(`ResultData:
ContractAddress: %s
Bloom: %s
Logs: %v
Ret: %v
TxHash: %s
`, rd.ContractAddress.String(), rd.Bloom.Big().String(), rd.Logs, rd.Ret, rd.TxHash.String()))
TxHash: %s
Logs:
%s`, rd.ContractAddress.String(), rd.Bloom.Big().String(), rd.Ret, rd.TxHash.String(), logsStr))
}

// EncodeResultData takes all of the necessary data from the EVM execution
Expand Down
32 changes: 32 additions & 0 deletions x/evm/types/utils_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package types

import (
"strings"
"testing"

"github.com/stretchr/testify/require"
Expand Down Expand Up @@ -34,3 +35,34 @@ func TestEvmDataEncoding(t *testing.T) {
require.Equal(t, data.Logs, res.Logs)
require.Equal(t, ret, res.Ret)
}

func TestResultData_String(t *testing.T) {
const expectedResultDataStr = `ResultData:
ContractAddress: 0x5dE8a020088a2D6d0a23c204FFbeD02790466B49
Bloom: 259
Ret: [5 8]
TxHash: 0x0000000000000000000000000000000000000000000000000000000000000000
Logs:
{0x0000000000000000000000000000000000000000 [] [1 2 3 4] 17 0x0000000000000000000000000000000000000000000000000000000000000000 0 0x0000000000000000000000000000000000000000000000000000000000000000 0 false}
{0x0000000000000000000000000000000000000000 [] [5 6 7 8] 18 0x0000000000000000000000000000000000000000000000000000000000000000 0 0x0000000000000000000000000000000000000000000000000000000000000000 0 false}`
addr := ethcmn.HexToAddress("0x5dE8a020088a2D6d0a23c204FFbeD02790466B49")
bloom := ethtypes.BytesToBloom([]byte{0x1, 0x3})
ret := []byte{0x5, 0x8}

data := ResultData{
ContractAddress: addr,
Bloom: bloom,
Logs: []*ethtypes.Log{
{
Data: []byte{1, 2, 3, 4},
BlockNumber: 17,
},
{
Data: []byte{5, 6, 7, 8},
BlockNumber: 18,
}},
Ret: ret,
}

require.True(t, strings.EqualFold(expectedResultDataStr, data.String()))
}

0 comments on commit da02e95

Please sign in to comment.