laconicd/x/evm/types/utils_test.go

73 lines
2.1 KiB
Go
Raw Normal View History

package types
import (
"strings"
"testing"
"github.com/stretchr/testify/require"
ethcmn "github.com/ethereum/go-ethereum/common"
ethtypes "github.com/ethereum/go-ethereum/core/types"
)
func TestEvmDataEncoding(t *testing.T) {
2021-04-17 10:00:07 +00:00
addr := "0x5dE8a020088a2D6d0a23c204FFbeD02790466B49"
bloom := ethtypes.BytesToBloom([]byte{0x1, 0x3})
ret := []byte{0x5, 0x8}
2021-04-17 10:00:07 +00:00
data := &MsgEthereumTxResponse{
ContractAddress: addr,
2021-04-17 10:00:07 +00:00
Bloom: bloom.Bytes(),
TxLogs: TransactionLogs{
Hash: ethcmn.BytesToHash([]byte{1, 2, 3, 4}).String(),
Logs: []*Log{{
Data: []byte{1, 2, 3, 4},
BlockNumber: 17,
}},
},
Ret: ret,
}
2021-04-17 10:00:07 +00:00
enc, err := EncodeTxResponse(data)
require.NoError(t, err)
2021-04-17 10:00:07 +00:00
res, err := DecodeTxResponse(enc)
require.NoError(t, err)
2021-04-17 10:00:07 +00:00
require.NotNil(t, res)
require.Equal(t, addr, res.ContractAddress)
2021-04-17 10:00:07 +00:00
require.Equal(t, bloom.Bytes(), res.Bloom)
require.Equal(t, data.TxLogs, res.TxLogs)
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()))
}