|
@ -0,0 +1,60 @@ |
|
|
|
|
|
package types |
|
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
|
"encoding/hex" |
|
|
|
|
|
"encoding/json" |
|
|
|
|
|
"fmt" |
|
|
|
|
|
"testing" |
|
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert" |
|
|
|
|
|
"github.com/stretchr/testify/require" |
|
|
|
|
|
crypto "github.com/tendermint/go-crypto" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
func TestLoadValidator(t *testing.T) { |
|
|
|
|
|
assert, require := assert.New(t), require.New(t) |
|
|
|
|
|
|
|
|
|
|
|
// create some fixed values
|
|
|
|
|
|
addrStr := "D028C9981F7A87F3093672BF0D5B0E2A1B3ED456" |
|
|
|
|
|
pubStr := "3B3069C422E19688B45CBFAE7BB009FC0FA1B1EA86593519318B7214853803C8" |
|
|
|
|
|
privStr := "27F82582AEFAE7AB151CFB01C48BB6C1A0DA78F9BDDA979A9F70A84D074EB07D3B3069C422E19688B45CBFAE7BB009FC0FA1B1EA86593519318B7214853803C8" |
|
|
|
|
|
addrBytes, _ := hex.DecodeString(addrStr) |
|
|
|
|
|
pubBytes, _ := hex.DecodeString(pubStr) |
|
|
|
|
|
privBytes, _ := hex.DecodeString(privStr) |
|
|
|
|
|
|
|
|
|
|
|
// prepend type byte
|
|
|
|
|
|
pubKey, err := crypto.PubKeyFromBytes(append([]byte{1}, pubBytes...)) |
|
|
|
|
|
require.Nil(err, "%+v", err) |
|
|
|
|
|
privKey, err := crypto.PrivKeyFromBytes(append([]byte{1}, privBytes...)) |
|
|
|
|
|
require.Nil(err, "%+v", err) |
|
|
|
|
|
|
|
|
|
|
|
serialized := fmt.Sprintf(`{ |
|
|
|
|
|
"address": "%s", |
|
|
|
|
|
"pub_key": { |
|
|
|
|
|
"type": "ed25519", |
|
|
|
|
|
"data": "%s" |
|
|
|
|
|
}, |
|
|
|
|
|
"priv_key": { |
|
|
|
|
|
"type": "ed25519", |
|
|
|
|
|
"data": "%s" |
|
|
|
|
|
}, |
|
|
|
|
|
"last_height": 0, |
|
|
|
|
|
"last_round": 0, |
|
|
|
|
|
"last_step": 0, |
|
|
|
|
|
"last_signature": null |
|
|
|
|
|
}`, addrStr, pubStr, privStr) |
|
|
|
|
|
|
|
|
|
|
|
val := PrivValidator{} |
|
|
|
|
|
err = json.Unmarshal([]byte(serialized), &val) |
|
|
|
|
|
require.Nil(err, "%+v", err) |
|
|
|
|
|
|
|
|
|
|
|
// make sure the values match
|
|
|
|
|
|
assert.EqualValues(addrBytes, val.Address) |
|
|
|
|
|
assert.EqualValues(pubKey, val.PubKey) |
|
|
|
|
|
assert.EqualValues(privKey, val.PrivKey) |
|
|
|
|
|
|
|
|
|
|
|
// export it and make sure it is the same
|
|
|
|
|
|
out, err := json.Marshal(val) |
|
|
|
|
|
require.Nil(err, "%+v", err) |
|
|
|
|
|
assert.JSONEq(serialized, string(out)) |
|
|
|
|
|
} |