github.com/Finschia/finschia-sdk@v0.49.1/x/fbridge/types/msgs_test.go (about)

     1  package types_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	sdk "github.com/Finschia/finschia-sdk/types"
     9  	"github.com/Finschia/finschia-sdk/x/auth/legacy/legacytx"
    10  	fbridgetypes "github.com/Finschia/finschia-sdk/x/fbridge/types"
    11  )
    12  
    13  func TestAminoJSON(t *testing.T) {
    14  	tx := legacytx.StdTx{}
    15  
    16  	addrs := []string{
    17  		"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze",
    18  		"link1aydj7vdxljxq7cn2dlkrhrcwf5py8dnuqp32qd",
    19  	}
    20  	toAddr := "0xf7bAc63fc7CEaCf0589F25454Ecf5C2ce904997c"
    21  
    22  	testCase := map[string]struct {
    23  		msg          legacytx.LegacyMsg
    24  		expectedType string
    25  		expected     string
    26  	}{
    27  		"MsgUpdateParam": {
    28  			&fbridgetypes.MsgUpdateParams{
    29  				Authority: addrs[0],
    30  				Params: fbridgetypes.Params{
    31  					OperatorTrustLevel: fbridgetypes.Fraction{
    32  						Numerator:   uint64(2),
    33  						Denominator: uint64(3),
    34  					},
    35  					GuardianTrustLevel: fbridgetypes.Fraction{
    36  						Numerator:   uint64(2),
    37  						Denominator: uint64(3),
    38  					},
    39  					JudgeTrustLevel: fbridgetypes.Fraction{
    40  						Numerator:   uint64(2),
    41  						Denominator: uint64(3),
    42  					},
    43  					TimelockPeriod: uint64(86400000000000),
    44  					ProposalPeriod: uint64(3600000000000),
    45  					TargetDenom:    "kaia",
    46  				},
    47  			},
    48  			"/lbm.fbridge.v1.MsgUpdateParams",
    49  			"{\"account_number\":\"1\",\"chain_id\":\"foo\",\"fee\":{\"amount\":[],\"gas\":\"0\"},\"memo\":\"memo\",\"msgs\":[{\"type\":\"lbm-sdk/fbridge/MsgUpdateParams\",\"value\":{\"authority\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\",\"params\":{\"guardian_trust_level\":{\"denominator\":\"3\",\"numerator\":\"2\"},\"judge_trust_level\":{\"denominator\":\"3\",\"numerator\":\"2\"},\"operator_trust_level\":{\"denominator\":\"3\",\"numerator\":\"2\"},\"proposal_period\":\"3600000000000\",\"target_denom\":\"kaia\",\"timelock_period\":\"86400000000000\"}}}],\"sequence\":\"1\",\"timeout_height\":\"1\"}",
    50  		},
    51  		"MsgTransfer": {
    52  			&fbridgetypes.MsgTransfer{
    53  				Sender:   addrs[0],
    54  				Receiver: toAddr,
    55  				Amount:   sdk.NewInt(1000000),
    56  			},
    57  			"/lbm.fbridge.v1.MsgTransfer",
    58  			"{\"account_number\":\"1\",\"chain_id\":\"foo\",\"fee\":{\"amount\":[],\"gas\":\"0\"},\"memo\":\"memo\",\"msgs\":[{\"type\":\"lbm-sdk/MsgTransfer\",\"value\":{\"amount\":\"1000000\",\"receiver\":\"0xf7bAc63fc7CEaCf0589F25454Ecf5C2ce904997c\",\"sender\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\"}}],\"sequence\":\"1\",\"timeout_height\":\"1\"}",
    59  		},
    60  		"MsgProvision": {
    61  			&fbridgetypes.MsgProvision{
    62  				From:     addrs[0],
    63  				Seq:      uint64(1),
    64  				Sender:   addrs[0],
    65  				Receiver: addrs[1],
    66  				Amount:   sdk.NewInt(1000000),
    67  			},
    68  			"/lbm.fbridge.v1.MsgProvision",
    69  			"{\"account_number\":\"1\",\"chain_id\":\"foo\",\"fee\":{\"amount\":[],\"gas\":\"0\"},\"memo\":\"memo\",\"msgs\":[{\"type\":\"lbm-sdk/MsgProvision\",\"value\":{\"amount\":\"1000000\",\"from\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\",\"receiver\":\"link1aydj7vdxljxq7cn2dlkrhrcwf5py8dnuqp32qd\",\"sender\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\",\"seq\":\"1\"}}],\"sequence\":\"1\",\"timeout_height\":\"1\"}",
    70  		},
    71  		"MsgHoldTransfer": {
    72  			&fbridgetypes.MsgHoldTransfer{
    73  				From: addrs[0],
    74  				Seq:  100,
    75  			},
    76  			"/lbm.fbridge.v1.MsgHoldTransfer",
    77  			"{\"account_number\":\"1\",\"chain_id\":\"foo\",\"fee\":{\"amount\":[],\"gas\":\"0\"},\"memo\":\"memo\",\"msgs\":[{\"type\":\"lbm-sdk/MsgHoldTransfer\",\"value\":{\"from\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\",\"seq\":\"100\"}}],\"sequence\":\"1\",\"timeout_height\":\"1\"}",
    78  		},
    79  		"MsgReleaseTransfer": {
    80  			&fbridgetypes.MsgReleaseTransfer{
    81  				From: addrs[0],
    82  				Seq:  200,
    83  			},
    84  			"/lbm.fbridge.v1.MsgReleaseTransfer",
    85  			"{\"account_number\":\"1\",\"chain_id\":\"foo\",\"fee\":{\"amount\":[],\"gas\":\"0\"},\"memo\":\"memo\",\"msgs\":[{\"type\":\"lbm-sdk/MsgReleaseTransfer\",\"value\":{\"from\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\",\"seq\":\"200\"}}],\"sequence\":\"1\",\"timeout_height\":\"1\"}",
    86  		},
    87  		"MsgRemoveProvision": {
    88  			&fbridgetypes.MsgRemoveProvision{
    89  				From: addrs[0],
    90  				Seq:  300,
    91  			},
    92  			"/lbm.fbridge.v1.MsgRemoveProvision",
    93  			"{\"account_number\":\"1\",\"chain_id\":\"foo\",\"fee\":{\"amount\":[],\"gas\":\"0\"},\"memo\":\"memo\",\"msgs\":[{\"type\":\"lbm-sdk/MsgRemoveProvision\",\"value\":{\"from\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\",\"seq\":\"300\"}}],\"sequence\":\"1\",\"timeout_height\":\"1\"}",
    94  		},
    95  		"MsgClaimBatch": {
    96  			&fbridgetypes.MsgClaimBatch{
    97  				From:      addrs[0],
    98  				MaxClaims: 50,
    99  			},
   100  			"/lbm.fbridge.v1.MsgClaimBatch",
   101  			"{\"account_number\":\"1\",\"chain_id\":\"foo\",\"fee\":{\"amount\":[],\"gas\":\"0\"},\"memo\":\"memo\",\"msgs\":[{\"type\":\"lbm-sdk/MsgClaimBatch\",\"value\":{\"from\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\",\"max_claims\":\"50\"}}],\"sequence\":\"1\",\"timeout_height\":\"1\"}",
   102  		},
   103  		"MsgClaim": {
   104  			&fbridgetypes.MsgClaim{
   105  				From: addrs[0],
   106  				Seq:  400,
   107  			},
   108  			"/lbm.fbridge.v1.MsgClaim",
   109  			"{\"account_number\":\"1\",\"chain_id\":\"foo\",\"fee\":{\"amount\":[],\"gas\":\"0\"},\"memo\":\"memo\",\"msgs\":[{\"type\":\"lbm-sdk/MsgClaim\",\"value\":{\"from\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\",\"seq\":\"400\"}}],\"sequence\":\"1\",\"timeout_height\":\"1\"}",
   110  		},
   111  		"MsgSuggestRole": {
   112  			&fbridgetypes.MsgSuggestRole{
   113  				From:   addrs[0],
   114  				Target: addrs[1],
   115  				Role:   fbridgetypes.RoleGuardian,
   116  			},
   117  			"/lbm.fbridge.v1.MsgSuggestRole",
   118  			"{\"account_number\":\"1\",\"chain_id\":\"foo\",\"fee\":{\"amount\":[],\"gas\":\"0\"},\"memo\":\"memo\",\"msgs\":[{\"type\":\"lbm-sdk/MsgSuggestRole\",\"value\":{\"from\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\",\"role\":1,\"target\":\"link1aydj7vdxljxq7cn2dlkrhrcwf5py8dnuqp32qd\"}}],\"sequence\":\"1\",\"timeout_height\":\"1\"}",
   119  		},
   120  		"MsgAddVoteForRole": {
   121  			&fbridgetypes.MsgAddVoteForRole{
   122  				From:       addrs[0],
   123  				ProposalId: 0,
   124  				Option:     fbridgetypes.OptionYes,
   125  			},
   126  			"/lbm.fbridge.v1.MsgAddVoteForRole",
   127  			"{\"account_number\":\"1\",\"chain_id\":\"foo\",\"fee\":{\"amount\":[],\"gas\":\"0\"},\"memo\":\"memo\",\"msgs\":[{\"type\":\"lbm-sdk/MsgAddVoteForRole\",\"value\":{\"from\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\",\"option\":1}}],\"sequence\":\"1\",\"timeout_height\":\"1\"}",
   128  		},
   129  		"MsgSetBridgeStatus": {
   130  			&fbridgetypes.MsgSetBridgeStatus{
   131  				Guardian: addrs[0],
   132  				Status:   fbridgetypes.StatusActive,
   133  			},
   134  			"/lbm.fbridge.v1.MsgSetBridgeStatus",
   135  			"{\"account_number\":\"1\",\"chain_id\":\"foo\",\"fee\":{\"amount\":[],\"gas\":\"0\"},\"memo\":\"memo\",\"msgs\":[{\"type\":\"lbm-sdk/MsgSetBridgeStatus\",\"value\":{\"guardian\":\"link1zf469e6y5zvsvkjz8vpr27j6txseyfnsh3ydze\",\"status\":1}}],\"sequence\":\"1\",\"timeout_height\":\"1\"}",
   136  		},
   137  	}
   138  
   139  	for name, tc := range testCase {
   140  		t.Run(name, func(t *testing.T) {
   141  			tx.Msgs = []sdk.Msg{tc.msg}
   142  			require.Equal(t, fbridgetypes.RouterKey, tc.msg.Route())
   143  			require.Equal(t, tc.expectedType, tc.msg.Type())
   144  			require.Equal(t, tc.expected, string(legacytx.StdSignBytes("foo", 1, 1, 1, legacytx.StdFee{}, []sdk.Msg{tc.msg}, "memo")))
   145  		})
   146  	}
   147  }