mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-25 14:52:17 +00:00
test that showcases panic when PubKeyMultisigThreshold are used in sdk:
- deserialization will fail in `readInfo` which tries to read a `crypto.PubKey` into a `localInfo` (called by cosmos-sdk/client/keys.GetKeyInfo)
This commit is contained in:
parent
616c3a4bae
commit
8eef647bfb
@ -95,6 +95,22 @@ func TestMultiSigPubKeyEquality(t *testing.T) {
|
|||||||
require.False(t, multisigKey.Equals(multisigKey2))
|
require.False(t, multisigKey.Equals(multisigKey2))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPubKeyMultisigThresholdAminoToIface(t *testing.T) {
|
||||||
|
msg := []byte{1, 2, 3, 4}
|
||||||
|
pubkeys, _ := generatePubKeysAndSignatures(5, msg)
|
||||||
|
multisigKey := NewPubKeyMultisigThreshold(2, pubkeys)
|
||||||
|
|
||||||
|
ab, err := cdc.MarshalBinaryLengthPrefixed(multisigKey)
|
||||||
|
require.NoError(t, err)
|
||||||
|
// like other crypto.Pubkey implementations (e.g. ed25519.PubKeyEd25519),
|
||||||
|
// PubKeyMultisigThreshold should be deserializable into a crypto.PubKey:
|
||||||
|
var pubKey crypto.PubKey
|
||||||
|
err = cdc.UnmarshalBinaryLengthPrefixed(ab, &pubKey)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
require.Equal(t, multisigKey, pubKey)
|
||||||
|
}
|
||||||
|
|
||||||
func generatePubKeysAndSignatures(n int, msg []byte) (pubkeys []crypto.PubKey, signatures [][]byte) {
|
func generatePubKeysAndSignatures(n int, msg []byte) (pubkeys []crypto.PubKey, signatures [][]byte) {
|
||||||
pubkeys = make([]crypto.PubKey, n)
|
pubkeys = make([]crypto.PubKey, n)
|
||||||
signatures = make([][]byte, n)
|
signatures = make([][]byte, n)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user