forked from cerc-io/laconicd-deprecated
stargate: migrate types (#670)
* changelog v0.4.0 * stargate: types changes * msg and handler changes * validation * fixes * more fixes * more test fixes * changelog * changelog * lint * rm comment * lint * redundant if condition
This commit is contained in:
@@ -1,23 +0,0 @@
|
||||
syntax = "proto3";
|
||||
package ethermint.v1;
|
||||
|
||||
import "third_party/proto/gogoproto/gogo.proto";
|
||||
import "third_party/proto/cosmos-sdk/x/auth/types/types.proto";
|
||||
|
||||
option go_package = "github.com/cosmos/ethermint/types";
|
||||
|
||||
|
||||
// EthAccount implements the auth.Account interface and embeds an
|
||||
// auth.BaseAccount type. It is compatible with the auth.AccountKeeper.
|
||||
message EthAccount {
|
||||
option (gogoproto.goproto_getters) = false;
|
||||
option (gogoproto.goproto_stringer) = false;
|
||||
|
||||
cosmos_sdk.x.auth.v1.BaseAccount base_account = 1 [
|
||||
(gogoproto.embed) = true,
|
||||
(gogoproto.moretags) = "yaml:\"base_account\""
|
||||
];
|
||||
bytes code_hash = 2 [
|
||||
(gogoproto.moretags) = "yaml:\"code_hash\""
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
ethcmn "github.com/ethereum/go-ethereum/common"
|
||||
)
|
||||
|
||||
// IsEmptyHash returns true if the hash corresponds to an empty ethereum hex hash.
|
||||
func IsEmptyHash(hash string) bool {
|
||||
return bytes.Equal(ethcmn.HexToHash(hash).Bytes(), ethcmn.Hash{}.Bytes())
|
||||
}
|
||||
|
||||
// IsZeroAddress returns true if the address corresponds to an empty ethereum hex address.
|
||||
func IsZeroAddress(address string) bool {
|
||||
return bytes.Equal(ethcmn.HexToAddress(address).Bytes(), ethcmn.Address{}.Bytes())
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package types
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
ethcmn "github.com/ethereum/go-ethereum/common"
|
||||
)
|
||||
|
||||
func TestIsEmptyHash(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
hash string
|
||||
expEmpty bool
|
||||
}{
|
||||
{
|
||||
"empty string", "", true,
|
||||
},
|
||||
{
|
||||
"zero hash", ethcmn.Hash{}.String(), true,
|
||||
},
|
||||
|
||||
{
|
||||
"non-empty hash", ethcmn.BytesToHash([]byte{1, 2, 3, 4}).String(), false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
require.Equal(t, tc.expEmpty, IsEmptyHash(tc.hash), tc.name)
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsZeroAddress(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
address string
|
||||
expEmpty bool
|
||||
}{
|
||||
{
|
||||
"empty string", "", true,
|
||||
},
|
||||
{
|
||||
"zero address", ethcmn.Address{}.String(), true,
|
||||
},
|
||||
|
||||
{
|
||||
"non-empty address", ethcmn.BytesToAddress([]byte{1, 2, 3, 4}).String(), false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
require.Equal(t, tc.expEmpty, IsZeroAddress(tc.address), tc.name)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user