Skip to content

Commit 4f31098

Browse files
committed
test
1 parent 8f8322d commit 4f31098

File tree

2 files changed

+30
-7
lines changed

2 files changed

+30
-7
lines changed

x/tx/signing/context.go

+3-7
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ func (c *Context) Validate() error {
165165
errs = append(errs, fmt.Errorf("a custom signer function as been defined for message %s which already has a signer field defined with (cosmos.msg.v1.signer)", md.FullName()))
166166
continue
167167
}
168-
_, err := c.getGetSignersFn(md, true)
168+
_, err := c.getGetSignersFn(md)
169169
if err != nil {
170170
errs = append(errs, err)
171171
}
@@ -333,17 +333,13 @@ func (c *Context) getAddressCodec(field protoreflect.FieldDescriptor) address.Co
333333
return addrCdc
334334
}
335335

336-
func (c *Context) getGetSignersFn(messageDescriptor protoreflect.MessageDescriptor, add bool) (GetSignersFunc, error) {
336+
func (c *Context) getGetSignersFn(messageDescriptor protoreflect.MessageDescriptor) (GetSignersFunc, error) {
337337
f, ok := c.customGetSignerFuncs[messageDescriptor.FullName()]
338338
if ok {
339339
return f, nil
340340
}
341341
f, ok = c.getSignersFuncs[messageDescriptor.FullName()]
342342
if !ok {
343-
if !add {
344-
return nil, fmt.Errorf("no GetSignersFunc found for message %s; have you called Validate()?", messageDescriptor.FullName())
345-
}
346-
347343
var err error
348344
f, err = c.makeGetSignersFunc(messageDescriptor)
349345
if err != nil {
@@ -357,7 +353,7 @@ func (c *Context) getGetSignersFn(messageDescriptor protoreflect.MessageDescript
357353

358354
// GetSigners returns the signers for a given message.
359355
func (c *Context) GetSigners(msg proto.Message) ([][]byte, error) {
360-
f, err := c.getGetSignersFn(msg.ProtoReflect().Descriptor(), false)
356+
f, err := c.getGetSignersFn(msg.ProtoReflect().Descriptor())
361357
if err != nil {
362358
return nil, err
363359
}

x/tx/signing/context_test.go

+27
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,33 @@ var deeplyNestedRepeatedSigner = &testpb.DeeplyNestedRepeatedSigner{
5151
},
5252
}
5353

54+
func TestGetGetSignersFnConcurrent(t *testing.T) {
55+
ctx, err := NewContext(Options{
56+
AddressCodec: dummyAddressCodec{},
57+
ValidatorAddressCodec: dummyValidatorAddressCodec{},
58+
})
59+
require.NoError(t, err)
60+
61+
msg := &bankv1beta1.MsgSend{
62+
FromAddress: hex.EncodeToString([]byte("foo")),
63+
}
64+
65+
desc := msg.ProtoReflect().Descriptor()
66+
67+
// err = ctx.Validate()
68+
// require.NoError(t, err)
69+
70+
for i := 0; i < 100; i++ {
71+
go func() {
72+
_, _ = ctx.getGetSignersFn(desc)
73+
}()
74+
}
75+
76+
// signers, err := fn(msg)
77+
// require.NoError(t, err)
78+
// require.Equal(t, [][]byte{[]byte("foo")}, signers)
79+
}
80+
5481
func TestGetSigners(t *testing.T) {
5582
ctx, err := NewContext(Options{
5683
AddressCodec: dummyAddressCodec{},

0 commit comments

Comments
 (0)