85 lines
1.8 KiB
Go
85 lines
1.8 KiB
Go
package app
|
|
|
|
import (
|
|
"testing"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/tendermint/tendermint/crypto/ed25519"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
// Test encoding of app2Tx is correct with both msg types
|
|
func TestEncoding(t *testing.T) {
|
|
// Create privkeys and addresses
|
|
priv1 := ed25519.GenPrivKey()
|
|
priv2 := ed25519.GenPrivKey()
|
|
addr1 := priv1.PubKey().Address().Bytes()
|
|
addr2 := priv2.PubKey().Address().Bytes()
|
|
|
|
sendMsg := MsgSend{
|
|
From: addr1,
|
|
To: addr2,
|
|
Amount: sdk.Coins{{"testCoins", sdk.NewInt(100)}},
|
|
}
|
|
|
|
// Construct transaction
|
|
signBytes := sendMsg.GetSignBytes()
|
|
sig, err := priv1.Sign(signBytes)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
sendTxBefore := app2Tx{
|
|
Msg: sendMsg,
|
|
PubKey: priv1.PubKey(),
|
|
Signature: sig,
|
|
}
|
|
|
|
cdc := NewCodec()
|
|
testTxDecoder := tx2Decoder(cdc)
|
|
|
|
encodedSendTx, err := cdc.MarshalBinary(sendTxBefore)
|
|
|
|
require.Nil(t, err, "Error encoding sendTx")
|
|
|
|
var tx1 sdk.Tx
|
|
tx1, err = testTxDecoder(encodedSendTx)
|
|
require.Nil(t, err, "Error decoding sendTx")
|
|
|
|
sendTxAfter := tx1.(app2Tx)
|
|
|
|
require.Equal(t, sendTxBefore, sendTxAfter, "Transaction changed after encoding/decoding")
|
|
|
|
issueMsg := MsgIssue{
|
|
Issuer: addr1,
|
|
Receiver: addr2,
|
|
Coin: sdk.Coin{"testCoin", sdk.NewInt(100)},
|
|
}
|
|
|
|
signBytes = issueMsg.GetSignBytes()
|
|
sig, err = priv1.Sign(signBytes)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
issueTxBefore := app2Tx{
|
|
Msg: issueMsg,
|
|
PubKey: priv1.PubKey(),
|
|
Signature: sig,
|
|
}
|
|
|
|
encodedIssueTx, err2 := cdc.MarshalBinary(issueTxBefore)
|
|
|
|
require.Nil(t, err2, "Error encoding issueTx")
|
|
|
|
var tx2 sdk.Tx
|
|
tx2, err2 = testTxDecoder(encodedIssueTx)
|
|
require.Nil(t, err2, "Error decoding issue Tx")
|
|
|
|
issueTxAfter := tx2.(app2Tx)
|
|
|
|
require.Equal(t, issueTxBefore, issueTxAfter, "Transaction changed after encoding/decoding")
|
|
|
|
}
|