github.com/Finschia/finschia-sdk@v0.49.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 t.Helper() 29 bldr.SetFeeAmount(coins) 30 bldr.SetGasLimit(gas) 31 bldr.SetMemo(memo) 32 bldr.SetTimeoutHeight(timeout) 33 require.NoError(t, bldr.SetMsgs(msg)) 34 } 35 36 func TestLegacyAminoJSONHandler_GetSignBytes(t *testing.T) { 37 bldr := newBuilder() 38 buildTx(t, bldr) 39 tx := bldr.GetTx() 40 41 var ( 42 chainId = "test-chain" 43 accNum uint64 = 7 44 seqNum uint64 = 7 45 ) 46 47 handler := signModeLegacyAminoJSONHandler{} 48 signingData := signing.SignerData{ 49 ChainID: chainId, 50 AccountNumber: accNum, 51 Sequence: seqNum, 52 } 53 signBz, err := handler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, signingData, tx) 54 require.NoError(t, err) 55 56 expectedSignBz := legacytx.StdSignBytes(chainId, accNum, seqNum, timeout, legacytx.StdFee{ 57 Amount: coins, 58 Gas: gas, 59 }, []sdk.Msg{msg}, memo) 60 61 require.Equal(t, expectedSignBz, signBz) 62 63 // expect error with wrong sign mode 64 _, err = handler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_DIRECT, signingData, tx) 65 require.Error(t, err) 66 67 // expect error with extension options 68 bldr = newBuilder() 69 buildTx(t, bldr) 70 any, err := cdctypes.NewAnyWithValue(testdata.NewTestMsg()) 71 require.NoError(t, err) 72 bldr.tx.Body.ExtensionOptions = []*cdctypes.Any{any} 73 tx = bldr.GetTx() 74 _, err = handler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, signingData, tx) 75 require.Error(t, err) 76 77 // expect error with non-critical extension options 78 bldr = newBuilder() 79 buildTx(t, bldr) 80 bldr.tx.Body.NonCriticalExtensionOptions = []*cdctypes.Any{any} 81 tx = bldr.GetTx() 82 _, err = handler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, signingData, tx) 83 require.Error(t, err) 84 } 85 86 func TestLegacyAminoJSONHandler_DefaultMode(t *testing.T) { 87 handler := signModeLegacyAminoJSONHandler{} 88 require.Equal(t, signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, handler.DefaultMode()) 89 } 90 91 func TestLegacyAminoJSONHandler_Modes(t *testing.T) { 92 handler := signModeLegacyAminoJSONHandler{} 93 require.Equal(t, []signingtypes.SignMode{signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON}, handler.Modes()) 94 }