Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
facundomedica committed Jul 29, 2024
1 parent 8f8322d commit 4f31098
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 7 deletions.
10 changes: 3 additions & 7 deletions x/tx/signing/context.go
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ func (c *Context) Validate() error {
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()))
continue
}
_, err := c.getGetSignersFn(md, true)
_, err := c.getGetSignersFn(md)
if err != nil {
errs = append(errs, err)
}
Expand Down Expand Up @@ -333,17 +333,13 @@ func (c *Context) getAddressCodec(field protoreflect.FieldDescriptor) address.Co
return addrCdc
}

func (c *Context) getGetSignersFn(messageDescriptor protoreflect.MessageDescriptor, add bool) (GetSignersFunc, error) {
func (c *Context) getGetSignersFn(messageDescriptor protoreflect.MessageDescriptor) (GetSignersFunc, error) {
f, ok := c.customGetSignerFuncs[messageDescriptor.FullName()]
if ok {
return f, nil
}
f, ok = c.getSignersFuncs[messageDescriptor.FullName()]
if !ok {
if !add {
return nil, fmt.Errorf("no GetSignersFunc found for message %s; have you called Validate()?", messageDescriptor.FullName())
}

var err error
f, err = c.makeGetSignersFunc(messageDescriptor)
if err != nil {
Expand All @@ -357,7 +353,7 @@ func (c *Context) getGetSignersFn(messageDescriptor protoreflect.MessageDescript

// GetSigners returns the signers for a given message.
func (c *Context) GetSigners(msg proto.Message) ([][]byte, error) {
f, err := c.getGetSignersFn(msg.ProtoReflect().Descriptor(), false)
f, err := c.getGetSignersFn(msg.ProtoReflect().Descriptor())
if err != nil {
return nil, err
}
Expand Down
27 changes: 27 additions & 0 deletions x/tx/signing/context_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,33 @@ var deeplyNestedRepeatedSigner = &testpb.DeeplyNestedRepeatedSigner{
},
}

func TestGetGetSignersFnConcurrent(t *testing.T) {
ctx, err := NewContext(Options{
AddressCodec: dummyAddressCodec{},
ValidatorAddressCodec: dummyValidatorAddressCodec{},
})
require.NoError(t, err)

msg := &bankv1beta1.MsgSend{
FromAddress: hex.EncodeToString([]byte("foo")),
}

desc := msg.ProtoReflect().Descriptor()

// err = ctx.Validate()
// require.NoError(t, err)

for i := 0; i < 100; i++ {
go func() {
_, _ = ctx.getGetSignersFn(desc)
}()
}

// signers, err := fn(msg)
// require.NoError(t, err)
// require.Equal(t, [][]byte{[]byte("foo")}, signers)
}

func TestGetSigners(t *testing.T) {
ctx, err := NewContext(Options{
AddressCodec: dummyAddressCodec{},
Expand Down

0 comments on commit 4f31098

Please sign in to comment.