105 lines
2.8 KiB
Go
105 lines
2.8 KiB
Go
package v039_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
"github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"
|
|
"github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
v038auth "github.com/cosmos/cosmos-sdk/x/auth/legacy/v038"
|
|
v039auth "github.com/cosmos/cosmos-sdk/x/auth/legacy/v039"
|
|
)
|
|
|
|
func TestMigrate(t *testing.T) {
|
|
aminoCdc := codec.NewLegacyAmino()
|
|
v039auth.RegisterLegacyAminoCodec(aminoCdc)
|
|
|
|
pub1 := ed25519.GenPrivKeyFromSecret([]byte("acc1")).PubKey()
|
|
pub2 := secp256k1.GenPrivKeyFromSecret([]byte("acc2")).PubKey()
|
|
|
|
acc1 := v038auth.BaseAccount{
|
|
Address: sdk.AccAddress(pub1.Address()),
|
|
Coins: sdk.NewCoins(sdk.NewInt64Coin("stake", 400000)),
|
|
Sequence: 1,
|
|
AccountNumber: 1,
|
|
PubKey: pub1,
|
|
}
|
|
acc2 := v038auth.BaseAccount{
|
|
Address: sdk.AccAddress(pub2.Address()),
|
|
Coins: sdk.NewCoins(sdk.NewInt64Coin("stake", 400000)),
|
|
Sequence: 2,
|
|
AccountNumber: 2,
|
|
PubKey: pub2,
|
|
}
|
|
|
|
migrated := v039auth.Migrate(
|
|
v038auth.GenesisState{
|
|
Accounts: v038auth.GenesisAccounts{&acc1, &acc2},
|
|
},
|
|
)
|
|
|
|
expectedAcc1 := v039auth.NewBaseAccount(acc1.Address, acc1.Coins, acc1.PubKey, acc1.AccountNumber, acc1.Sequence)
|
|
expectedAcc2 := v039auth.NewBaseAccount(acc2.Address, acc2.Coins, acc2.PubKey, acc2.AccountNumber, acc2.Sequence)
|
|
|
|
require.Equal(
|
|
t, migrated, v039auth.GenesisState{
|
|
Accounts: v038auth.GenesisAccounts{expectedAcc1, expectedAcc2},
|
|
},
|
|
)
|
|
|
|
json, err := aminoCdc.MarshalJSONIndent(migrated, "", " ")
|
|
require.NoError(t, err)
|
|
|
|
expectedJSON := `{
|
|
"params": {
|
|
"max_memo_characters": "0",
|
|
"tx_sig_limit": "0",
|
|
"tx_size_cost_per_byte": "0",
|
|
"sig_verify_cost_ed25519": "0",
|
|
"sig_verify_cost_secp256k1": "0"
|
|
},
|
|
"accounts": [
|
|
{
|
|
"type": "cosmos-sdk/Account",
|
|
"value": {
|
|
"address": "cosmos1j7skdhh9raxdmfhmcy2gxz8hgn0jnhfmujjsfe",
|
|
"coins": [
|
|
{
|
|
"denom": "stake",
|
|
"amount": "400000"
|
|
}
|
|
],
|
|
"public_key": {
|
|
"type": "tendermint/PubKeyEd25519",
|
|
"value": "eB0AcLMLKFRNFfh4XAAMstexfAIUQQCDnfjLZ2KJg+A="
|
|
},
|
|
"account_number": "1",
|
|
"sequence": "1"
|
|
}
|
|
},
|
|
{
|
|
"type": "cosmos-sdk/Account",
|
|
"value": {
|
|
"address": "cosmos1v57fx2l2rt6ehujuu99u2fw05779m5e2ux4z2h",
|
|
"coins": [
|
|
{
|
|
"denom": "stake",
|
|
"amount": "400000"
|
|
}
|
|
],
|
|
"public_key": {
|
|
"type": "tendermint/PubKeySecp256k1",
|
|
"value": "AruDygh5HprMOpHOEato85dLgAsybMJVyxBGUa3KuWCr"
|
|
},
|
|
"account_number": "2",
|
|
"sequence": "2"
|
|
}
|
|
}
|
|
]
|
|
}`
|
|
require.Equal(t, expectedJSON, string(json))
|
|
}
|