From 0f1ceb073e4cd2a1a39b377ca01def9f8a43b0e5 Mon Sep 17 00:00:00 2001 From: Liamsi Date: Fri, 6 Jul 2018 00:23:12 +0100 Subject: [PATCH] sort all relevant GetSignBytes: - call SortJSON before return JSON bytes to guarantee alphabetic ordering --- x/auth/stdtx.go | 5 +++++ x/bank/msgs.go | 17 +++++++++++++++++ x/bank/msgs_test.go | 4 ++-- x/gov/msgs.go | 13 +++++++++++++ x/stake/types/msg.go | 29 +++++++++++++++++++++++++++++ 5 files changed, 66 insertions(+), 2 deletions(-) diff --git a/x/auth/stdtx.go b/x/auth/stdtx.go index fd55eebb95..566940db7c 100644 --- a/x/auth/stdtx.go +++ b/x/auth/stdtx.go @@ -3,6 +3,7 @@ package auth import ( "encoding/json" + "github.com/cosmos/cosmos-sdk/server" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/tendermint/tendermint/crypto" ) @@ -141,6 +142,10 @@ func StdSignBytes(chainID string, accnum int64, sequence int64, fee StdFee, msgs if err != nil { panic(err) } + bz, err = server.SortJSON(bz) + if err != nil { + panic(err) + } return bz } diff --git a/x/bank/msgs.go b/x/bank/msgs.go index 1a871979e2..069ace9cea 100644 --- a/x/bank/msgs.go +++ b/x/bank/msgs.go @@ -3,6 +3,7 @@ package bank import ( "encoding/json" + "github.com/cosmos/cosmos-sdk/server" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -72,6 +73,10 @@ func (msg MsgSend) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b } @@ -133,6 +138,10 @@ func (msg MsgIssue) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b } @@ -162,6 +171,10 @@ func (in Input) GetSignBytes() []byte { if err != nil { panic(err) } + bin, err = server.SortJSON(bin) + if err != nil { + panic(err) + } return bin } @@ -209,6 +222,10 @@ func (out Output) GetSignBytes() []byte { if err != nil { panic(err) } + bin, err = server.SortJSON(bin) + if err != nil { + panic(err) + } return bin } diff --git a/x/bank/msgs_test.go b/x/bank/msgs_test.go index 3754858ec7..f4e7363d3b 100644 --- a/x/bank/msgs_test.go +++ b/x/bank/msgs_test.go @@ -187,7 +187,7 @@ func TestMsgSendGetSignBytes(t *testing.T) { } res := msg.GetSignBytes() - expected := `{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"denom":"atom","amount":"10"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"denom":"atom","amount":"10"}]}]}` + expected := `{"inputs":[{"address":"cosmosaccaddr1d9h8qat5e4ehc5","coins":[{"amount":"10","denom":"atom"}]}],"outputs":[{"address":"cosmosaccaddr1da6hgur4wse3jx32","coins":[{"amount":"10","denom":"atom"}]}]}` require.Equal(t, expected, string(res)) } @@ -257,7 +257,7 @@ func TestMsgIssueGetSignBytes(t *testing.T) { } res := msg.GetSignBytes() - expected := `{"banker":"cosmosaccaddr1d9h8qat5e4ehc5","outputs":[{"address":"cosmosaccaddr1d3hkzm3dveex7mfdvfsku6cwsauqd","coins":[{"denom":"atom","amount":"10"}]}]}` + expected := `{"banker":"cosmosaccaddr1d9h8qat5e4ehc5","outputs":[{"address":"cosmosaccaddr1d3hkzm3dveex7mfdvfsku6cwsauqd","coins":[{"amount":"10","denom":"atom"}]}]}` require.Equal(t, expected, string(res)) } diff --git a/x/gov/msgs.go b/x/gov/msgs.go index f436d024b1..afe7084c48 100644 --- a/x/gov/msgs.go +++ b/x/gov/msgs.go @@ -3,6 +3,7 @@ package gov import ( "fmt" + "github.com/cosmos/cosmos-sdk/server" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -82,6 +83,10 @@ func (msg MsgSubmitProposal) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b } @@ -149,6 +154,10 @@ func (msg MsgDeposit) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b } @@ -213,6 +222,10 @@ func (msg MsgVote) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b } diff --git a/x/stake/types/msg.go b/x/stake/types/msg.go index 878c1ba17b..609935fb0f 100644 --- a/x/stake/types/msg.go +++ b/x/stake/types/msg.go @@ -3,6 +3,7 @@ package types import ( "math" + "github.com/cosmos/cosmos-sdk/server" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/tendermint/tendermint/crypto" ) @@ -63,6 +64,10 @@ func (msg MsgCreateValidator) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b } @@ -114,6 +119,10 @@ func (msg MsgEditValidator) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b } @@ -166,6 +175,10 @@ func (msg MsgDelegate) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b } @@ -226,6 +239,10 @@ func (msg MsgBeginRedelegate) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b } @@ -286,6 +303,10 @@ func (msg MsgCompleteRedelegate) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b } @@ -338,6 +359,10 @@ func (msg MsgBeginUnbonding) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b } @@ -387,6 +412,10 @@ func (msg MsgCompleteUnbonding) GetSignBytes() []byte { if err != nil { panic(err) } + b, err = server.SortJSON(b) + if err != nil { + panic(err) + } return b }