github.com/Finschia/finschia-sdk@v0.48.1/x/auth/signing/handler_map_test.go (about) 1 package signing_test 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/Finschia/finschia-sdk/crypto/keys/secp256k1" 9 sdk "github.com/Finschia/finschia-sdk/types" 10 signingtypes "github.com/Finschia/finschia-sdk/types/tx/signing" 11 "github.com/Finschia/finschia-sdk/x/auth/legacy/legacytx" 12 "github.com/Finschia/finschia-sdk/x/auth/signing" 13 banktypes "github.com/Finschia/finschia-sdk/x/bank/types" 14 ) 15 16 func MakeTestHandlerMap() signing.SignModeHandler { 17 return signing.NewSignModeHandlerMap( 18 signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, 19 []signing.SignModeHandler{ 20 legacytx.NewStdTxSignModeHandler(), 21 }, 22 ) 23 } 24 25 func TestHandlerMap_GetSignBytes(t *testing.T) { 26 priv1 := secp256k1.GenPrivKey() 27 addr1 := sdk.AccAddress(priv1.PubKey().Address()) 28 priv2 := secp256k1.GenPrivKey() 29 addr2 := sdk.AccAddress(priv2.PubKey().Address()) 30 31 coins := sdk.Coins{sdk.NewInt64Coin("foocoin", 10)} 32 33 fee := legacytx.StdFee{ 34 Amount: coins, 35 Gas: 10000, 36 } 37 memo := "foo" 38 msgs := []sdk.Msg{ 39 &banktypes.MsgSend{ 40 FromAddress: addr1.String(), 41 ToAddress: addr2.String(), 42 Amount: coins, 43 }, 44 } 45 46 tx := legacytx.StdTx{ 47 Msgs: msgs, 48 Fee: fee, 49 Signatures: nil, 50 Memo: memo, 51 } 52 53 var ( 54 chainId = "test-chain" 55 accNum uint64 = 7 56 seqNum uint64 = 7 57 ) 58 59 handler := MakeTestHandlerMap() 60 aminoJSONHandler := legacytx.NewStdTxSignModeHandler() 61 62 signingData := signing.SignerData{ 63 ChainID: chainId, 64 AccountNumber: accNum, 65 Sequence: seqNum, 66 } 67 signBz, err := handler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, signingData, tx) 68 require.NoError(t, err) 69 70 expectedSignBz, err := aminoJSONHandler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, signingData, tx) 71 require.NoError(t, err) 72 73 require.Equal(t, expectedSignBz, signBz) 74 75 // expect error with wrong sign mode 76 _, err = aminoJSONHandler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_DIRECT, signingData, tx) 77 require.Error(t, err) 78 } 79 80 func TestHandlerMap_DefaultMode(t *testing.T) { 81 handler := MakeTestHandlerMap() 82 require.Equal(t, signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, handler.DefaultMode()) 83 } 84 85 func TestHandlerMap_Modes(t *testing.T) { 86 handler := MakeTestHandlerMap() 87 modes := handler.Modes() 88 require.Contains(t, modes, signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON) 89 require.Len(t, modes, 1) 90 }