github.com/Finschia/finschia-sdk@v0.48.1/x/auth/tx/legacy_amino_json_test.go (about) 1 package tx 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 cdctypes "github.com/Finschia/finschia-sdk/codec/types" 9 "github.com/Finschia/finschia-sdk/testutil/testdata" 10 sdk "github.com/Finschia/finschia-sdk/types" 11 signingtypes "github.com/Finschia/finschia-sdk/types/tx/signing" 12 "github.com/Finschia/finschia-sdk/x/auth/legacy/legacytx" 13 "github.com/Finschia/finschia-sdk/x/auth/signing" 14 ) 15 16 var ( 17 _, _, addr1 = testdata.KeyTestPubAddr() 18 _, _, addr2 = testdata.KeyTestPubAddr() 19 20 coins = sdk.Coins{sdk.NewInt64Coin("foocoin", 10)} 21 gas = uint64(10000) 22 msg = testdata.NewTestMsg(addr1, addr2) 23 memo = "foo" 24 timeout = uint64(10) 25 ) 26 27 func buildTx(t *testing.T, bldr *wrapper) { 28 bldr.SetFeeAmount(coins) 29 bldr.SetGasLimit(gas) 30 bldr.SetMemo(memo) 31 bldr.SetTimeoutHeight(timeout) 32 require.NoError(t, bldr.SetMsgs(msg)) 33 } 34 35 func TestLegacyAminoJSONHandler_GetSignBytes(t *testing.T) { 36 bldr := newBuilder() 37 buildTx(t, bldr) 38 tx := bldr.GetTx() 39 40 var ( 41 chainId = "test-chain" 42 accNum uint64 = 7 43 seqNum uint64 = 7 44 ) 45 46 handler := signModeLegacyAminoJSONHandler{} 47 signingData := signing.SignerData{ 48 ChainID: chainId, 49 AccountNumber: accNum, 50 Sequence: seqNum, 51 } 52 signBz, err := handler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, signingData, tx) 53 require.NoError(t, err) 54 55 expectedSignBz := legacytx.StdSignBytes(chainId, accNum, seqNum, timeout, legacytx.StdFee{ 56 Amount: coins, 57 Gas: gas, 58 }, []sdk.Msg{msg}, memo) 59 60 require.Equal(t, expectedSignBz, signBz) 61 62 // expect error with wrong sign mode 63 _, err = handler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_DIRECT, signingData, tx) 64 require.Error(t, err) 65 66 // expect error with extension options 67 bldr = newBuilder() 68 buildTx(t, bldr) 69 any, err := cdctypes.NewAnyWithValue(testdata.NewTestMsg()) 70 require.NoError(t, err) 71 bldr.tx.Body.ExtensionOptions = []*cdctypes.Any{any} 72 tx = bldr.GetTx() 73 signBz, err = handler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, signingData, tx) 74 require.Error(t, err) 75 76 // expect error with non-critical extension options 77 bldr = newBuilder() 78 buildTx(t, bldr) 79 bldr.tx.Body.NonCriticalExtensionOptions = []*cdctypes.Any{any} 80 tx = bldr.GetTx() 81 signBz, err = handler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, signingData, tx) 82 require.Error(t, err) 83 } 84 85 func TestLegacyAminoJSONHandler_DefaultMode(t *testing.T) { 86 handler := signModeLegacyAminoJSONHandler{} 87 require.Equal(t, signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, handler.DefaultMode()) 88 } 89 90 func TestLegacyAminoJSONHandler_Modes(t *testing.T) { 91 handler := signModeLegacyAminoJSONHandler{} 92 require.Equal(t, []signingtypes.SignMode{signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON}, handler.Modes()) 93 }