@@ -61,19 +61,68 @@ func TestDecode(t *testing.T) {
61
61
gogoproto .RegisterType (& testpb.A {}, string ((& testpb.A {}).ProtoReflect ().Descriptor ().FullName ()))
62
62
63
63
testCases := []struct {
64
- name string
65
- msg proto.Message
66
- error string
64
+ name string
65
+ msg proto.Message
66
+ authInfo * txv1beta1.AuthInfo
67
+ error string
68
+ numSigners int
67
69
}{
68
70
{
69
71
name : "happy path" ,
70
72
msg : & bankv1beta1.MsgSend {},
73
+ authInfo : & txv1beta1.AuthInfo {
74
+ SignerInfos : signerInfo ,
75
+ Fee : & txv1beta1.Fee {
76
+ Amount : []* basev1beta1.Coin {{Amount : "100" , Denom : "denom" }},
77
+ GasLimit : 100 ,
78
+ Payer : "" ,
79
+ Granter : "" ,
80
+ },
81
+ },
82
+ numSigners : 1 ,
71
83
},
72
84
{
73
- name : "empty signer option" ,
74
- msg : & testpb.A {},
85
+ name : "empty signer option" ,
86
+ msg : & testpb.A {},
87
+ authInfo : & txv1beta1.AuthInfo {
88
+ SignerInfos : signerInfo ,
89
+ Fee : & txv1beta1.Fee {
90
+ Amount : []* basev1beta1.Coin {{Amount : "100" , Denom : "denom" }},
91
+ GasLimit : 100 ,
92
+ Payer : "" ,
93
+ Granter : "" ,
94
+ },
95
+ },
75
96
error : "no cosmos.msg.v1.signer option found for message A; use DefineCustomGetSigners to specify a custom getter: tx parse error" ,
76
97
},
98
+ {
99
+ name : "invalid feePayer" ,
100
+ msg : & bankv1beta1.MsgSend {},
101
+ authInfo : & txv1beta1.AuthInfo {
102
+ SignerInfos : signerInfo ,
103
+ Fee : & txv1beta1.Fee {
104
+ Amount : []* basev1beta1.Coin {{Amount : "100" , Denom : "denom" }},
105
+ GasLimit : 100 ,
106
+ Payer : "payer" ,
107
+ Granter : "" ,
108
+ },
109
+ },
110
+ error : `encoding/hex: invalid byte: U+0070 'p': tx parse error` ,
111
+ },
112
+ {
113
+ name : "valid feePayer" ,
114
+ msg : & bankv1beta1.MsgSend {},
115
+ authInfo : & txv1beta1.AuthInfo {
116
+ SignerInfos : signerInfo ,
117
+ Fee : & txv1beta1.Fee {
118
+ Amount : []* basev1beta1.Coin {{Amount : "100" , Denom : "denom" }},
119
+ GasLimit : 100 ,
120
+ Payer : "636f736d6f733168363935356b3836397a72306770383975717034337a373263393033666d35647a366b75306c" , // hexadecimal to work with dummyAddressCodec
121
+ Granter : "" ,
122
+ },
123
+ },
124
+ numSigners : 2 ,
125
+ },
77
126
}
78
127
79
128
for _ , tc := range testCases {
@@ -89,15 +138,7 @@ func TestDecode(t *testing.T) {
89
138
Memo : "memo" ,
90
139
TimeoutHeight : 0 ,
91
140
},
92
- AuthInfo : & txv1beta1.AuthInfo {
93
- SignerInfos : signerInfo ,
94
- Fee : & txv1beta1.Fee {
95
- Amount : []* basev1beta1.Coin {{Amount : "100" , Denom : "denom" }},
96
- GasLimit : 100 ,
97
- Payer : "" ,
98
- Granter : "" ,
99
- },
100
- },
141
+ AuthInfo : tc .authInfo ,
101
142
Signatures : nil ,
102
143
}
103
144
txBytes , err := proto .Marshal (tx )
@@ -109,6 +150,7 @@ func TestDecode(t *testing.T) {
109
150
return
110
151
}
111
152
require .NoError (t , err )
153
+ require .Equal (t , len (decodeTx .Signers ), tc .numSigners )
112
154
113
155
require .Equal (t ,
114
156
fmt .Sprintf ("/%s" , tc .msg .ProtoReflect ().Descriptor ().FullName ()),
0 commit comments