diff --git a/client/v2/autocli/app.go b/client/v2/autocli/app.go index 052b660e1573..2daa2e4ae151 100644 --- a/client/v2/autocli/app.go +++ b/client/v2/autocli/app.go @@ -1,7 +1,6 @@ package autocli import ( - "github.com/cosmos/gogoproto/proto" "github.com/spf13/cobra" "google.golang.org/grpc" "google.golang.org/protobuf/reflect/protoregistry" @@ -66,7 +65,7 @@ func (appOptions AppOptions) EnhanceRootCommand(rootCmd *cobra.Command) error { builder := &Builder{ Builder: flag.Builder{ TypeResolver: protoregistry.GlobalTypes, - FileResolver: proto.HybridResolver, + FileResolver: appOptions.ClientCtx.InterfaceRegistry, Keyring: appOptions.Keyring, AddressCodec: appOptions.ClientCtx.AddressCodec, ValidatorAddressCodec: appOptions.ClientCtx.ValidatorAddressCodec, diff --git a/client/v2/go.mod b/client/v2/go.mod index baf68515850e..941ad1bc2f8f 100644 --- a/client/v2/go.mod +++ b/client/v2/go.mod @@ -11,7 +11,6 @@ require ( github.com/cockroachdb/errors v1.11.1 github.com/cosmos/cosmos-proto v1.0.0-beta.3 github.com/cosmos/cosmos-sdk v0.51.0 - github.com/cosmos/gogoproto v1.4.11 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 google.golang.org/grpc v1.59.0 @@ -48,6 +47,7 @@ require ( github.com/cosmos/cosmos-db v1.0.0 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect + github.com/cosmos/gogoproto v1.4.11 // indirect github.com/cosmos/iavl v1.0.0-rc.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.13.2 // indirect diff --git a/simapp/go.mod b/simapp/go.mod index 30e08346b3ee..fd89ba8b0f42 100644 --- a/simapp/go.mod +++ b/simapp/go.mod @@ -210,10 +210,13 @@ require ( // replace ( // // ) +replace ( + cosmossdk.io/api => ../api + cosmossdk.io/x/tx => ../x/tx +) // SimApp on main always tests the latest extracted SDK modules importing the sdk replace ( - cosmossdk.io/api => ../api cosmossdk.io/client/v2 => ../client/v2 cosmossdk.io/tools/confix => ../tools/confix cosmossdk.io/x/authz => ../x/authz diff --git a/simapp/go.sum b/simapp/go.sum index 16354abe7ce6..d3942a9e9d62 100644 --- a/simapp/go.sum +++ b/simapp/go.sum @@ -201,8 +201,6 @@ cosmossdk.io/math v1.1.3-rc.1 h1:NebCNWDqb1MJRNfvxr4YY7d8FSYgkuB3L75K6xvM+Zo= cosmossdk.io/math v1.1.3-rc.1/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/store v1.0.0-rc.0 h1:9DwOjuUYxDtYxn/REkTxGQAmxlIGfRroB35MQ8TrxF4= cosmossdk.io/store v1.0.0-rc.0/go.mod h1:FtBDOJmwtOZfmKKF65bKZbTYgS3bDNjjo3nP76dAegk= -cosmossdk.io/x/tx v0.11.0 h1:Ak2LIC06bXqPbpMIEorkQbwVddRvRys1sL3Cjm+KPfs= -cosmossdk.io/x/tx v0.11.0/go.mod h1:tzuC7JlfGivYuIO32JbvvY3Ft9s6FK1+r0/nGHiHwtM= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= diff --git a/simapp/gomod2nix.toml b/simapp/gomod2nix.toml index 2cded1b22002..c848b177f8ac 100644 --- a/simapp/gomod2nix.toml +++ b/simapp/gomod2nix.toml @@ -37,9 +37,6 @@ schema = 3 [mod."cosmossdk.io/store"] version = "v1.0.0-rc.0" hash = "sha256-DgW4ZrDwmgsPtEXajPyAsrQuPjXekw5PfsYFvA5yuiE=" - [mod."cosmossdk.io/x/tx"] - version = "v0.11.0" - hash = "sha256-8CYRI51ChKRonaK1lWWGGe/pvH1zEmrPzheTdE0C9hc=" [mod."filippo.io/edwards25519"] version = "v1.0.0" hash = "sha256-APnPAcmItvtJ5Zsy863lzR2TjEBF9Y66TY1e4M1ap98=" diff --git a/x/tx/CHANGELOG.md b/x/tx/CHANGELOG.md index 44157179e329..6524ff0ba059 100644 --- a/x/tx/CHANGELOG.md +++ b/x/tx/CHANGELOG.md @@ -31,6 +31,12 @@ Ref: https://keepachangelog.com/en/1.0.0/ ## [Unreleased] +## v0.12.0 + +### Improvements + +* []() Update encoder so that amino types defauls to msg type url. + ## v0.11.0 ### Improvements diff --git a/x/tx/go.mod b/x/tx/go.mod index db308f3ccf16..e1b0240908cd 100644 --- a/x/tx/go.mod +++ b/x/tx/go.mod @@ -8,6 +8,7 @@ require ( cosmossdk.io/errors v1.0.0 cosmossdk.io/math v1.1.3-rc.1 github.com/cosmos/cosmos-proto v1.0.0-beta.3 + github.com/cosmos/gogoproto v1.4.11 github.com/google/go-cmp v0.6.0 github.com/google/gofuzz v1.2.0 github.com/iancoleman/strcase v0.3.0 @@ -20,7 +21,6 @@ require ( ) require ( - github.com/cosmos/gogoproto v1.4.11 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect diff --git a/x/tx/signing/aminojson/any.go b/x/tx/signing/aminojson/any.go index 4e0e46954bcb..6c3f83ed83f5 100644 --- a/x/tx/signing/aminojson/any.go +++ b/x/tx/signing/aminojson/any.go @@ -50,12 +50,6 @@ func marshalAny(enc *Encoder, message protoreflect.Message, writer io.Writer) er protoMessage = valueMsg.ProtoReflect() } - _, named := getMessageAminoName(protoMessage.Descriptor().Options()) - if !named { - return fmt.Errorf("message %s is packed into an any field, so requires an amino.name annotation", - anyMsg.TypeUrl) - } - return enc.beginMarshal(protoMessage, writer) } @@ -73,12 +67,6 @@ func marshalDynamic(enc *Encoder, message protoreflect.Message, writer io.Writer return errors.Wrapf(err, "can't resolve type URL %s", msgName) } - _, named := getMessageAminoName(desc.Options()) - if !named { - return fmt.Errorf("message %s is packed into an any field, so requires an amino.name annotation", - msgName) - } - valueMsg := dynamicpb.NewMessageType(desc.(protoreflect.MessageDescriptor)).New().Interface() err = proto.Unmarshal(msgBytes, valueMsg) if err != nil { diff --git a/x/tx/signing/aminojson/json_marshal.go b/x/tx/signing/aminojson/json_marshal.go index d3ca5822b54d..04f33e2e824f 100644 --- a/x/tx/signing/aminojson/json_marshal.go +++ b/x/tx/signing/aminojson/json_marshal.go @@ -171,7 +171,7 @@ func (enc Encoder) Marshal(message proto.Message) ([]byte, error) { } func (enc Encoder) beginMarshal(msg protoreflect.Message, writer io.Writer) error { - name, named := getMessageAminoName(msg.Descriptor().Options()) + name, named := getMessageAminoName(msg) if named { _, err := fmt.Fprintf(writer, `{"type":"%s","value":`, name) if err != nil { diff --git a/x/tx/signing/aminojson/options.go b/x/tx/signing/aminojson/options.go index 4e17060c78f3..b37558535280 100644 --- a/x/tx/signing/aminojson/options.go +++ b/x/tx/signing/aminojson/options.go @@ -2,6 +2,7 @@ package aminojson import ( cosmos_proto "github.com/cosmos/cosmos-proto" + gogoproto "github.com/cosmos/gogoproto/proto" "github.com/iancoleman/strcase" "github.com/pkg/errors" "google.golang.org/protobuf/proto" @@ -11,12 +12,24 @@ import ( ) // getMessageAminoName returns the amino name of a message if it has been set by the `amino.name` option. -// If the message does not have an amino name, then the function returns false. -func getMessageAminoName(messageOptions proto.Message) (string, bool) { +// If the message does not have an amino name, then it returns the msg url. +// If it cannot get the msg url, then it returns false. +func getMessageAminoName(msg protoreflect.Message) (string, bool) { + messageOptions := msg.Descriptor().Options() if proto.HasExtension(messageOptions, amino.E_Name) { name := proto.GetExtension(messageOptions, amino.E_Name) return name.(string), true } + + msgURL := "/" + string(msg.Descriptor().FullName()) + if msgURL != "/" { + return msgURL, true + } + + if m, ok := msg.(gogoproto.Message); ok { + return "/" + gogoproto.MessageName(m), true + } + return "", false }