diff --git a/scripts/protocgen-pulsar.sh b/scripts/protocgen-pulsar.sh index 05d1e8532d..c859c71fc8 100755 --- a/scripts/protocgen-pulsar.sh +++ b/scripts/protocgen-pulsar.sh @@ -17,3 +17,6 @@ echo "Generating API module" echo "Generate Pulsar Test Data" (cd testutil/testdata; buf generate --template buf.gen.pulsar.yaml) + +echo "Generate x/tx" +(cd x/tx; make codegen) \ No newline at end of file diff --git a/tests/go.mod b/tests/go.mod index 295ce60794..9547056f76 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -195,6 +195,7 @@ replace ( cosmossdk.io/x/evidence => ../x/evidence cosmossdk.io/x/feegrant => ../x/feegrant cosmossdk.io/x/nft => ../x/nft + cosmossdk.io/x/tx => ../x/tx cosmossdk.io/x/upgrade => ../x/upgrade ) diff --git a/tests/go.sum b/tests/go.sum index e57f3664d7..dd413bc418 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -204,8 +204,6 @@ cosmossdk.io/log v1.0.0 h1:NGKZ/A5rd4PduDfoscgABklX557PWjQINbosZy/m3Jk= cosmossdk.io/log v1.0.0/go.mod h1:CwX9BLiBruZb7lzLlRr3R231d/fVPUXk8gAdV4LQap0= cosmossdk.io/math v1.0.0 h1:ro9w7eKx23om2tZz/VM2Pf+z2WAbGX1yDQQOJ6iGeJw= cosmossdk.io/math v1.0.0/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= -cosmossdk.io/x/tx v0.5.0 h1:01wPSoiYDHlfudV0fn867SBXI3uI/8tpatBgVVSnFzI= -cosmossdk.io/x/tx v0.5.0/go.mod h1:kDcwrN6QbCj+9NXVHL8qipMzA9YlMr9NpZa08SHCdLA= 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/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 403775d4ff..0bdb983073 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,6 +1,7 @@ package aminojson import ( + "context" "fmt" "reflect" "testing" @@ -38,6 +39,7 @@ import ( paramsapi "cosmossdk.io/api/cosmos/params/v1beta1" slashingapi "cosmossdk.io/api/cosmos/slashing/v1beta1" stakingapi "cosmossdk.io/api/cosmos/staking/v1beta1" + txv1beta1 "cosmossdk.io/api/cosmos/tx/v1beta1" upgradeapi "cosmossdk.io/api/cosmos/upgrade/v1beta1" vestingapi "cosmossdk.io/api/cosmos/vesting/v1beta1" "cosmossdk.io/x/evidence" @@ -45,6 +47,7 @@ import ( feegranttypes "cosmossdk.io/x/feegrant" feegrantmodule "cosmossdk.io/x/feegrant/module" "cosmossdk.io/x/tx/signing/aminojson" + signing_testutil "cosmossdk.io/x/tx/signing/testutil" "cosmossdk.io/x/upgrade" upgradetypes "cosmossdk.io/x/upgrade/types" codectypes "github.com/cosmos/cosmos-sdk/codec/types" @@ -57,7 +60,10 @@ import ( "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/bech32" "github.com/cosmos/cosmos-sdk/types/module/testutil" + signingtypes "github.com/cosmos/cosmos-sdk/types/tx/signing" "github.com/cosmos/cosmos-sdk/x/auth" + "github.com/cosmos/cosmos-sdk/x/auth/signing" + "github.com/cosmos/cosmos-sdk/x/auth/tx" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/cosmos/cosmos-sdk/x/auth/vesting" vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" @@ -367,6 +373,50 @@ func TestAminoJSON_Equivalence(t *testing.T) { aminoJSON, err := aj.Marshal(msg) require.NoError(t, err) require.Equal(t, string(legacyAminoJSON), string(aminoJSON)) + + // test amino json signer handler equivalence + gogoMsg, ok := gogo.(types.Msg) + if !ok { + // not signable + return + } + + handlerOptions := signing_testutil.HandlerArgumentOptions{ + ChainId: "test-chain", + Memo: "sometestmemo", + Msg: tt.pulsar, + AccNum: 1, + AccSeq: 2, + SignerAddress: "signerAddress", + Fee: &txv1beta1.Fee{ + Amount: []*v1beta1.Coin{{Denom: "uatom", Amount: "1000"}}, + }, + } + + signerData, txData, err := signing_testutil.MakeHandlerArguments(handlerOptions) + require.NoError(t, err) + + handler := aminojson.NewSignModeHandler(aminojson.SignModeHandlerOptions{}) + signBz, err := handler.GetSignBytes(context.Background(), signerData, txData) + require.NoError(t, err) + + legacyHandler := tx.NewSignModeLegacyAminoJSONHandler() + txBuilder := encCfg.TxConfig.NewTxBuilder() + require.NoError(t, txBuilder.SetMsgs([]types.Msg{gogoMsg}...)) + txBuilder.SetMemo(handlerOptions.Memo) + txBuilder.SetFeeAmount(types.Coins{types.NewInt64Coin("uatom", 1000)}) + theTx := txBuilder.GetTx() + + legacySigningData := signing.SignerData{ + ChainID: handlerOptions.ChainId, + Address: handlerOptions.SignerAddress, + AccountNumber: handlerOptions.AccNum, + Sequence: handlerOptions.AccSeq, + } + legacySignBz, err := legacyHandler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, + legacySigningData, theTx) + require.NoError(t, err) + require.Equal(t, string(legacySignBz), string(signBz)) }) }) } @@ -624,6 +674,50 @@ func TestAminoJSON_LegacyParity(t *testing.T) { return } require.Equal(t, string(gogoBytes), string(newGogoBytes)) + + // test amino json signer handler equivalence + msg, ok := tc.gogo.(types.Msg) + if !ok { + // not signable + return + } + + handlerOptions := signing_testutil.HandlerArgumentOptions{ + ChainId: "test-chain", + Memo: "sometestmemo", + Msg: tc.pulsar, + AccNum: 1, + AccSeq: 2, + SignerAddress: "signerAddress", + Fee: &txv1beta1.Fee{ + Amount: []*v1beta1.Coin{{Denom: "uatom", Amount: "1000"}}, + }, + } + + signerData, txData, err := signing_testutil.MakeHandlerArguments(handlerOptions) + require.NoError(t, err) + + handler := aminojson.NewSignModeHandler(aminojson.SignModeHandlerOptions{}) + signBz, err := handler.GetSignBytes(context.Background(), signerData, txData) + require.NoError(t, err) + + legacyHandler := tx.NewSignModeLegacyAminoJSONHandler() + txBuilder := encCfg.TxConfig.NewTxBuilder() + require.NoError(t, txBuilder.SetMsgs([]types.Msg{msg}...)) + txBuilder.SetMemo(handlerOptions.Memo) + txBuilder.SetFeeAmount(types.Coins{types.NewInt64Coin("uatom", 1000)}) + theTx := txBuilder.GetTx() + + legacySigningData := signing.SignerData{ + ChainID: handlerOptions.ChainId, + Address: handlerOptions.SignerAddress, + AccountNumber: handlerOptions.AccNum, + Sequence: handlerOptions.AccSeq, + } + legacySignBz, err := legacyHandler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, + legacySigningData, theTx) + require.NoError(t, err) + require.Equal(t, string(legacySignBz), string(signBz)) }) } } @@ -687,14 +781,14 @@ func TestDecimalMutation(t *testing.T) { require.NoError(t, err) rateBz, _ = encCfg.Amino.MarshalJSON(rates) - // these assertions show behavior prior to the merge of https://github.com/cosmos/cosmos-sdk/pull/15506 - // and should be updated to reflect the new behavior once a release of math is made and updated in ./tests/go.mod - // require.NotEqual(t, `{"rate":"0","max_rate":"0","max_change_rate":"0"}`, string(rateBz)) - // require.Equal(t, - // `{"rate":"0.000000000000000000","max_rate":"0.000000000000000000","max_change_rate":"0.000000000000000000"}`, - // string(rateBz)) + // prior to the merge of https://github.com/cosmos/cosmos-sdk/pull/15506 + // gogoproto.Marshal would mutate Decimal fields changing JSON output as shown in the assertions below + //require.NotEqual(t, `{"rate":"0","max_rate":"0","max_change_rate":"0"}`, string(rateBz)) + //require.Equal(t, + // `{"rate":"0.000000000000000000","max_rate":"0.000000000000000000","max_change_rate":"0.000000000000000000"}`, + // string(rateBz)) - // new behavior + // This is no longer the case, new behavior: require.Equal(t, `{"rate":"0","max_rate":"0","max_change_rate":"0"}`, string(rateBz)) } diff --git a/x/auth/tx/legacy_amino_json.go b/x/auth/tx/legacy_amino_json.go index c920c96bd7..1be6ce542f 100644 --- a/x/auth/tx/legacy_amino_json.go +++ b/x/auth/tx/legacy_amino_json.go @@ -20,6 +20,12 @@ var _ signing.SignModeHandler = signModeLegacyAminoJSONHandler{} // SignModeHandler. type signModeLegacyAminoJSONHandler struct{} +// NewSignModeLegacyAminoJSONHandler returns a new signModeLegacyAminoJSONHandler. +// Note: The public constructor is only used for testing. +func NewSignModeLegacyAminoJSONHandler() signing.SignModeHandler { + return signModeLegacyAminoJSONHandler{} +} + func (s signModeLegacyAminoJSONHandler) DefaultMode() signingtypes.SignMode { return signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON } diff --git a/x/tx/CHANGELOG.md b/x/tx/CHANGELOG.md index 34b23bda8a..3734cb7508 100644 --- a/x/tx/CHANGELOG.md +++ b/x/tx/CHANGELOG.md @@ -48,3 +48,4 @@ require a `signing.ProtoFileResolver` interface instead of `protodesc.Resolver`. * [#15302](https://github.com/cosmos/cosmos-sdk/pull/15302) Add support for a custom registry (e.g. gogo's MergedRegistry) to be plugged into SIGN_MODE_TEXTUAL. * [#15557](https://github.com/cosmos/cosmos-sdk/pull/15557) Implement unknown field filtering. +* [#15515](https://github.com/cosmos/cosmos-sdk/pull/15515) Implement SIGN_MODE_LEGACY_AMINO_JSON handler. \ No newline at end of file diff --git a/x/tx/Makefile b/x/tx/Makefile index 9ca0b82898..7fd7077787 100644 --- a/x/tx/Makefile +++ b/x/tx/Makefile @@ -1,2 +1,3 @@ codegen: @(cd internal/testpb; buf generate) + @(cd signing/aminojson/internal; make codegen) \ No newline at end of file diff --git a/x/tx/internal/testpb/unknonwnproto.proto b/x/tx/internal/testpb/unknownproto.proto similarity index 93% rename from x/tx/internal/testpb/unknonwnproto.proto rename to x/tx/internal/testpb/unknownproto.proto index fa177fcef5..5b8fadcb5f 100644 --- a/x/tx/internal/testpb/unknonwnproto.proto +++ b/x/tx/internal/testpb/unknownproto.proto @@ -1,7 +1,6 @@ syntax = "proto3"; package testpb; -import "gogoproto/gogo.proto"; import "google/protobuf/any.proto"; import "cosmos/tx/v1beta1/tx.proto"; @@ -103,7 +102,7 @@ message TestVersion1 { TestVersion1 a = 2; TestVersion1 b = 3; // [(gogoproto.nullable) = false] generates invalid recursive structs; repeated TestVersion1 c = 4; - repeated TestVersion1 d = 5 [(gogoproto.nullable) = false]; + repeated TestVersion1 d = 5; oneof sum { int32 e = 6; TestVersion1 f = 7; @@ -112,7 +111,7 @@ message TestVersion1 { repeated TestVersion1 h = 9; // [(gogoproto.castrepeated) = "TestVersion1"]; // google.protobuf.Timestamp i = 10; // google.protobuf.Timestamp j = 11; // [(gogoproto.stdtime) = true]; - Customer1 k = 12 [(gogoproto.embed) = true]; + Customer1 k = 12; } message TestVersion2 { int64 x = 1; @@ -128,7 +127,7 @@ message TestVersion2 { repeated TestVersion1 h = 9; // [(gogoproto.castrepeated) = "TestVersion1"]; // google.protobuf.Timestamp i = 10; // google.protobuf.Timestamp j = 11; // [(gogoproto.stdtime) = true]; - Customer1 k = 12 [(gogoproto.embed) = true]; + Customer1 k = 12; uint64 new_field = 25; } message TestVersion3 { @@ -145,7 +144,7 @@ message TestVersion3 { repeated TestVersion1 h = 9; //[(gogoproto.castrepeated) = "TestVersion1"]; // google.protobuf.Timestamp i = 10; // google.protobuf.Timestamp j = 11; // [(gogoproto.stdtime) = true]; - Customer1 k = 12 [(gogoproto.embed) = true]; + Customer1 k = 12; string non_critical_field = 1031; } @@ -162,7 +161,7 @@ message TestVersion3LoneOneOfValue { repeated TestVersion1 h = 9; //[(gogoproto.castrepeated) = "TestVersion1"]; // google.protobuf.Timestamp i = 10; // google.protobuf.Timestamp j = 11; // [(gogoproto.stdtime) = true]; - Customer1 k = 12 [(gogoproto.embed) = true]; + Customer1 k = 12; string non_critical_field = 1031; } @@ -179,7 +178,7 @@ message TestVersion3LoneNesting { repeated TestVersion1 h = 9; //[(gogoproto.castrepeated) = "TestVersion1"]; // google.protobuf.Timestamp i = 10; // google.protobuf.Timestamp j = 11; // [(gogoproto.stdtime) = true]; - Customer1 k = 12 [(gogoproto.embed) = true]; + Customer1 k = 12; string non_critical_field = 1031; message Inner1 { @@ -220,7 +219,7 @@ message TestVersion4LoneNesting { repeated TestVersion1 h = 9; //[(gogoproto.castrepeated) = "TestVersion1"]; // google.protobuf.Timestamp i = 10; // google.protobuf.Timestamp j = 11; // [(gogoproto.stdtime) = true]; - Customer1 k = 12 [(gogoproto.embed) = true]; + Customer1 k = 12; string non_critical_field = 1031; message Inner1 { @@ -271,7 +270,7 @@ message TestVersionFD1WithExtraAny { } message AnyWithExtra { - google.protobuf.Any a = 1 [(gogoproto.embed) = true]; + google.protobuf.Any a = 1; int64 b = 3; int64 c = 4; } diff --git a/x/tx/internal/testpb/unknonwnproto.pulsar.go b/x/tx/internal/testpb/unknownproto.pulsar.go similarity index 95% rename from x/tx/internal/testpb/unknonwnproto.pulsar.go rename to x/tx/internal/testpb/unknownproto.pulsar.go index 6ffc0245df..cb0c8aa883 100644 --- a/x/tx/internal/testpb/unknonwnproto.pulsar.go +++ b/x/tx/internal/testpb/unknownproto.pulsar.go @@ -6,7 +6,6 @@ import ( binary "encoding/binary" fmt "fmt" runtime "github.com/cosmos/cosmos-proto/runtime" - _ "github.com/cosmos/gogoproto/gogoproto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoiface "google.golang.org/protobuf/runtime/protoiface" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -27,8 +26,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_Customer1 = File_unknonwnproto_proto.Messages().ByName("Customer1") + file_unknownproto_proto_init() + md_Customer1 = File_unknownproto_proto.Messages().ByName("Customer1") fd_Customer1_id = md_Customer1.Fields().ByName("id") fd_Customer1_name = md_Customer1.Fields().ByName("name") fd_Customer1_subscription_fee = md_Customer1.Fields().ByName("subscription_fee") @@ -44,7 +43,7 @@ func (x *Customer1) ProtoReflect() protoreflect.Message { } func (x *Customer1) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[0] + mi := &file_unknownproto_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -603,8 +602,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_Customer2 = File_unknonwnproto_proto.Messages().ByName("Customer2") + file_unknownproto_proto_init() + md_Customer2 = File_unknownproto_proto.Messages().ByName("Customer2") fd_Customer2_id = md_Customer2.Fields().ByName("id") fd_Customer2_industry = md_Customer2.Fields().ByName("industry") fd_Customer2_name = md_Customer2.Fields().ByName("name") @@ -623,7 +622,7 @@ func (x *Customer2) ProtoReflect() protoreflect.Message { } func (x *Customer2) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[1] + mi := &file_unknownproto_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1332,8 +1331,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_Nested4A = File_unknonwnproto_proto.Messages().ByName("Nested4A") + file_unknownproto_proto_init() + md_Nested4A = File_unknownproto_proto.Messages().ByName("Nested4A") fd_Nested4A_id = md_Nested4A.Fields().ByName("id") fd_Nested4A_name = md_Nested4A.Fields().ByName("name") } @@ -1347,7 +1346,7 @@ func (x *Nested4A) ProtoReflect() protoreflect.Message { } func (x *Nested4A) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[2] + mi := &file_unknownproto_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1943,8 +1942,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_Nested3A = File_unknonwnproto_proto.Messages().ByName("Nested3A") + file_unknownproto_proto_init() + md_Nested3A = File_unknownproto_proto.Messages().ByName("Nested3A") fd_Nested3A_id = md_Nested3A.Fields().ByName("id") fd_Nested3A_name = md_Nested3A.Fields().ByName("name") fd_Nested3A_a4 = md_Nested3A.Fields().ByName("a4") @@ -1960,7 +1959,7 @@ func (x *Nested3A) ProtoReflect() protoreflect.Message { } func (x *Nested3A) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[3] + mi := &file_unknownproto_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2719,8 +2718,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_Nested2A = File_unknonwnproto_proto.Messages().ByName("Nested2A") + file_unknownproto_proto_init() + md_Nested2A = File_unknownproto_proto.Messages().ByName("Nested2A") fd_Nested2A_id = md_Nested2A.Fields().ByName("id") fd_Nested2A_name = md_Nested2A.Fields().ByName("name") fd_Nested2A_nested = md_Nested2A.Fields().ByName("nested") @@ -2735,7 +2734,7 @@ func (x *Nested2A) ProtoReflect() protoreflect.Message { } func (x *Nested2A) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[4] + mi := &file_unknownproto_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3265,8 +3264,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_Nested1A = File_unknonwnproto_proto.Messages().ByName("Nested1A") + file_unknownproto_proto_init() + md_Nested1A = File_unknownproto_proto.Messages().ByName("Nested1A") fd_Nested1A_id = md_Nested1A.Fields().ByName("id") fd_Nested1A_nested = md_Nested1A.Fields().ByName("nested") } @@ -3280,7 +3279,7 @@ func (x *Nested1A) ProtoReflect() protoreflect.Message { } func (x *Nested1A) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[5] + mi := &file_unknownproto_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3749,8 +3748,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_Nested4B = File_unknonwnproto_proto.Messages().ByName("Nested4B") + file_unknownproto_proto_init() + md_Nested4B = File_unknownproto_proto.Messages().ByName("Nested4B") fd_Nested4B_id = md_Nested4B.Fields().ByName("id") fd_Nested4B_age = md_Nested4B.Fields().ByName("age") fd_Nested4B_name = md_Nested4B.Fields().ByName("name") @@ -3765,7 +3764,7 @@ func (x *Nested4B) ProtoReflect() protoreflect.Message { } func (x *Nested4B) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[6] + mi := &file_unknownproto_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4317,8 +4316,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_Nested3B = File_unknonwnproto_proto.Messages().ByName("Nested3B") + file_unknownproto_proto_init() + md_Nested3B = File_unknownproto_proto.Messages().ByName("Nested3B") fd_Nested3B_id = md_Nested3B.Fields().ByName("id") fd_Nested3B_age = md_Nested3B.Fields().ByName("age") fd_Nested3B_name = md_Nested3B.Fields().ByName("name") @@ -4334,7 +4333,7 @@ func (x *Nested3B) ProtoReflect() protoreflect.Message { } func (x *Nested3B) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[7] + mi := &file_unknownproto_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4920,8 +4919,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_Nested2B = File_unknonwnproto_proto.Messages().ByName("Nested2B") + file_unknownproto_proto_init() + md_Nested2B = File_unknownproto_proto.Messages().ByName("Nested2B") fd_Nested2B_id = md_Nested2B.Fields().ByName("id") fd_Nested2B_fee = md_Nested2B.Fields().ByName("fee") fd_Nested2B_nested = md_Nested2B.Fields().ByName("nested") @@ -4937,7 +4936,7 @@ func (x *Nested2B) ProtoReflect() protoreflect.Message { } func (x *Nested2B) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[8] + mi := &file_unknownproto_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5507,8 +5506,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_Nested1B = File_unknonwnproto_proto.Messages().ByName("Nested1B") + file_unknownproto_proto_init() + md_Nested1B = File_unknownproto_proto.Messages().ByName("Nested1B") fd_Nested1B_id = md_Nested1B.Fields().ByName("id") fd_Nested1B_nested = md_Nested1B.Fields().ByName("nested") fd_Nested1B_age = md_Nested1B.Fields().ByName("age") @@ -5523,7 +5522,7 @@ func (x *Nested1B) ProtoReflect() protoreflect.Message { } func (x *Nested1B) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[9] + mi := &file_unknownproto_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6043,8 +6042,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_Customer3 = File_unknonwnproto_proto.Messages().ByName("Customer3") + file_unknownproto_proto_init() + md_Customer3 = File_unknownproto_proto.Messages().ByName("Customer3") fd_Customer3_id = md_Customer3.Fields().ByName("id") fd_Customer3_name = md_Customer3.Fields().ByName("name") fd_Customer3_sf = md_Customer3.Fields().ByName("sf") @@ -6064,7 +6063,7 @@ func (x *Customer3) ProtoReflect() protoreflect.Message { } func (x *Customer3) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[10] + mi := &file_unknownproto_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7063,8 +7062,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion1 = File_unknonwnproto_proto.Messages().ByName("TestVersion1") + file_unknownproto_proto_init() + md_TestVersion1 = File_unknownproto_proto.Messages().ByName("TestVersion1") fd_TestVersion1_x = md_TestVersion1.Fields().ByName("x") fd_TestVersion1_a = md_TestVersion1.Fields().ByName("a") fd_TestVersion1_b = md_TestVersion1.Fields().ByName("b") @@ -7086,7 +7085,7 @@ func (x *TestVersion1) ProtoReflect() protoreflect.Message { } func (x *TestVersion1) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[11] + mi := &file_unknownproto_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8380,8 +8379,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion2 = File_unknonwnproto_proto.Messages().ByName("TestVersion2") + file_unknownproto_proto_init() + md_TestVersion2 = File_unknownproto_proto.Messages().ByName("TestVersion2") fd_TestVersion2_x = md_TestVersion2.Fields().ByName("x") fd_TestVersion2_a = md_TestVersion2.Fields().ByName("a") fd_TestVersion2_b = md_TestVersion2.Fields().ByName("b") @@ -8404,7 +8403,7 @@ func (x *TestVersion2) ProtoReflect() protoreflect.Message { } func (x *TestVersion2) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[12] + mi := &file_unknownproto_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9746,8 +9745,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion3 = File_unknonwnproto_proto.Messages().ByName("TestVersion3") + file_unknownproto_proto_init() + md_TestVersion3 = File_unknownproto_proto.Messages().ByName("TestVersion3") fd_TestVersion3_x = md_TestVersion3.Fields().ByName("x") fd_TestVersion3_a = md_TestVersion3.Fields().ByName("a") fd_TestVersion3_b = md_TestVersion3.Fields().ByName("b") @@ -9770,7 +9769,7 @@ func (x *TestVersion3) ProtoReflect() protoreflect.Message { } func (x *TestVersion3) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[13] + mi := &file_unknownproto_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11127,8 +11126,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion3LoneOneOfValue = File_unknonwnproto_proto.Messages().ByName("TestVersion3LoneOneOfValue") + file_unknownproto_proto_init() + md_TestVersion3LoneOneOfValue = File_unknownproto_proto.Messages().ByName("TestVersion3LoneOneOfValue") fd_TestVersion3LoneOneOfValue_x = md_TestVersion3LoneOneOfValue.Fields().ByName("x") fd_TestVersion3LoneOneOfValue_a = md_TestVersion3LoneOneOfValue.Fields().ByName("a") fd_TestVersion3LoneOneOfValue_b = md_TestVersion3LoneOneOfValue.Fields().ByName("b") @@ -11150,7 +11149,7 @@ func (x *TestVersion3LoneOneOfValue) ProtoReflect() protoreflect.Message { } func (x *TestVersion3LoneOneOfValue) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[14] + mi := &file_unknownproto_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12407,8 +12406,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion3LoneNesting = File_unknonwnproto_proto.Messages().ByName("TestVersion3LoneNesting") + file_unknownproto_proto_init() + md_TestVersion3LoneNesting = File_unknownproto_proto.Messages().ByName("TestVersion3LoneNesting") fd_TestVersion3LoneNesting_x = md_TestVersion3LoneNesting.Fields().ByName("x") fd_TestVersion3LoneNesting_a = md_TestVersion3LoneNesting.Fields().ByName("a") fd_TestVersion3LoneNesting_b = md_TestVersion3LoneNesting.Fields().ByName("b") @@ -12432,7 +12431,7 @@ func (x *TestVersion3LoneNesting) ProtoReflect() protoreflect.Message { } func (x *TestVersion3LoneNesting) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[15] + mi := &file_unknownproto_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13721,8 +13720,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion3LoneNesting_Inner1 = File_unknonwnproto_proto.Messages().ByName("TestVersion3LoneNesting").Messages().ByName("Inner1") + file_unknownproto_proto_init() + md_TestVersion3LoneNesting_Inner1 = File_unknownproto_proto.Messages().ByName("TestVersion3LoneNesting").Messages().ByName("Inner1") fd_TestVersion3LoneNesting_Inner1_id = md_TestVersion3LoneNesting_Inner1.Fields().ByName("id") fd_TestVersion3LoneNesting_Inner1_name = md_TestVersion3LoneNesting_Inner1.Fields().ByName("name") fd_TestVersion3LoneNesting_Inner1_inner = md_TestVersion3LoneNesting_Inner1.Fields().ByName("inner") @@ -13737,7 +13736,7 @@ func (x *TestVersion3LoneNesting_Inner1) ProtoReflect() protoreflect.Message { } func (x *TestVersion3LoneNesting_Inner1) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[25] + mi := &file_unknownproto_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14267,8 +14266,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion3LoneNesting_Inner1_InnerInner = File_unknonwnproto_proto.Messages().ByName("TestVersion3LoneNesting").Messages().ByName("Inner1").Messages().ByName("InnerInner") + file_unknownproto_proto_init() + md_TestVersion3LoneNesting_Inner1_InnerInner = File_unknownproto_proto.Messages().ByName("TestVersion3LoneNesting").Messages().ByName("Inner1").Messages().ByName("InnerInner") fd_TestVersion3LoneNesting_Inner1_InnerInner_id = md_TestVersion3LoneNesting_Inner1_InnerInner.Fields().ByName("id") fd_TestVersion3LoneNesting_Inner1_InnerInner_city = md_TestVersion3LoneNesting_Inner1_InnerInner.Fields().ByName("city") } @@ -14282,7 +14281,7 @@ func (x *TestVersion3LoneNesting_Inner1_InnerInner) ProtoReflect() protoreflect. } func (x *TestVersion3LoneNesting_Inner1_InnerInner) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[27] + mi := &file_unknownproto_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14752,8 +14751,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion3LoneNesting_Inner2 = File_unknonwnproto_proto.Messages().ByName("TestVersion3LoneNesting").Messages().ByName("Inner2") + file_unknownproto_proto_init() + md_TestVersion3LoneNesting_Inner2 = File_unknownproto_proto.Messages().ByName("TestVersion3LoneNesting").Messages().ByName("Inner2") fd_TestVersion3LoneNesting_Inner2_id = md_TestVersion3LoneNesting_Inner2.Fields().ByName("id") fd_TestVersion3LoneNesting_Inner2_country = md_TestVersion3LoneNesting_Inner2.Fields().ByName("country") fd_TestVersion3LoneNesting_Inner2_inner = md_TestVersion3LoneNesting_Inner2.Fields().ByName("inner") @@ -14768,7 +14767,7 @@ func (x *TestVersion3LoneNesting_Inner2) ProtoReflect() protoreflect.Message { } func (x *TestVersion3LoneNesting_Inner2) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[26] + mi := &file_unknownproto_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15314,8 +15313,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion3LoneNesting_Inner2_InnerInner = File_unknonwnproto_proto.Messages().ByName("TestVersion3LoneNesting").Messages().ByName("Inner2").Messages().ByName("InnerInner") + file_unknownproto_proto_init() + md_TestVersion3LoneNesting_Inner2_InnerInner = File_unknownproto_proto.Messages().ByName("TestVersion3LoneNesting").Messages().ByName("Inner2").Messages().ByName("InnerInner") fd_TestVersion3LoneNesting_Inner2_InnerInner_id = md_TestVersion3LoneNesting_Inner2_InnerInner.Fields().ByName("id") fd_TestVersion3LoneNesting_Inner2_InnerInner_city = md_TestVersion3LoneNesting_Inner2_InnerInner.Fields().ByName("city") } @@ -15329,7 +15328,7 @@ func (x *TestVersion3LoneNesting_Inner2_InnerInner) ProtoReflect() protoreflect. } func (x *TestVersion3LoneNesting_Inner2_InnerInner) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[28] + mi := &file_unknownproto_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15961,8 +15960,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion4LoneNesting = File_unknonwnproto_proto.Messages().ByName("TestVersion4LoneNesting") + file_unknownproto_proto_init() + md_TestVersion4LoneNesting = File_unknownproto_proto.Messages().ByName("TestVersion4LoneNesting") fd_TestVersion4LoneNesting_x = md_TestVersion4LoneNesting.Fields().ByName("x") fd_TestVersion4LoneNesting_a = md_TestVersion4LoneNesting.Fields().ByName("a") fd_TestVersion4LoneNesting_b = md_TestVersion4LoneNesting.Fields().ByName("b") @@ -15986,7 +15985,7 @@ func (x *TestVersion4LoneNesting) ProtoReflect() protoreflect.Message { } func (x *TestVersion4LoneNesting) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[16] + mi := &file_unknownproto_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17275,8 +17274,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion4LoneNesting_Inner1 = File_unknonwnproto_proto.Messages().ByName("TestVersion4LoneNesting").Messages().ByName("Inner1") + file_unknownproto_proto_init() + md_TestVersion4LoneNesting_Inner1 = File_unknownproto_proto.Messages().ByName("TestVersion4LoneNesting").Messages().ByName("Inner1") fd_TestVersion4LoneNesting_Inner1_id = md_TestVersion4LoneNesting_Inner1.Fields().ByName("id") fd_TestVersion4LoneNesting_Inner1_name = md_TestVersion4LoneNesting_Inner1.Fields().ByName("name") fd_TestVersion4LoneNesting_Inner1_inner = md_TestVersion4LoneNesting_Inner1.Fields().ByName("inner") @@ -17291,7 +17290,7 @@ func (x *TestVersion4LoneNesting_Inner1) ProtoReflect() protoreflect.Message { } func (x *TestVersion4LoneNesting_Inner1) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[29] + mi := &file_unknownproto_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17821,8 +17820,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion4LoneNesting_Inner1_InnerInner = File_unknonwnproto_proto.Messages().ByName("TestVersion4LoneNesting").Messages().ByName("Inner1").Messages().ByName("InnerInner") + file_unknownproto_proto_init() + md_TestVersion4LoneNesting_Inner1_InnerInner = File_unknownproto_proto.Messages().ByName("TestVersion4LoneNesting").Messages().ByName("Inner1").Messages().ByName("InnerInner") fd_TestVersion4LoneNesting_Inner1_InnerInner_id = md_TestVersion4LoneNesting_Inner1_InnerInner.Fields().ByName("id") fd_TestVersion4LoneNesting_Inner1_InnerInner_city = md_TestVersion4LoneNesting_Inner1_InnerInner.Fields().ByName("city") } @@ -17836,7 +17835,7 @@ func (x *TestVersion4LoneNesting_Inner1_InnerInner) ProtoReflect() protoreflect. } func (x *TestVersion4LoneNesting_Inner1_InnerInner) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[31] + mi := &file_unknownproto_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18290,8 +18289,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion4LoneNesting_Inner2 = File_unknonwnproto_proto.Messages().ByName("TestVersion4LoneNesting").Messages().ByName("Inner2") + file_unknownproto_proto_init() + md_TestVersion4LoneNesting_Inner2 = File_unknownproto_proto.Messages().ByName("TestVersion4LoneNesting").Messages().ByName("Inner2") fd_TestVersion4LoneNesting_Inner2_id = md_TestVersion4LoneNesting_Inner2.Fields().ByName("id") fd_TestVersion4LoneNesting_Inner2_country = md_TestVersion4LoneNesting_Inner2.Fields().ByName("country") fd_TestVersion4LoneNesting_Inner2_inner = md_TestVersion4LoneNesting_Inner2.Fields().ByName("inner") @@ -18306,7 +18305,7 @@ func (x *TestVersion4LoneNesting_Inner2) ProtoReflect() protoreflect.Message { } func (x *TestVersion4LoneNesting_Inner2) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[30] + mi := &file_unknownproto_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18852,8 +18851,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersion4LoneNesting_Inner2_InnerInner = File_unknonwnproto_proto.Messages().ByName("TestVersion4LoneNesting").Messages().ByName("Inner2").Messages().ByName("InnerInner") + file_unknownproto_proto_init() + md_TestVersion4LoneNesting_Inner2_InnerInner = File_unknownproto_proto.Messages().ByName("TestVersion4LoneNesting").Messages().ByName("Inner2").Messages().ByName("InnerInner") fd_TestVersion4LoneNesting_Inner2_InnerInner_id = md_TestVersion4LoneNesting_Inner2_InnerInner.Fields().ByName("id") fd_TestVersion4LoneNesting_Inner2_InnerInner_value = md_TestVersion4LoneNesting_Inner2_InnerInner.Fields().ByName("value") } @@ -18867,7 +18866,7 @@ func (x *TestVersion4LoneNesting_Inner2_InnerInner) ProtoReflect() protoreflect. } func (x *TestVersion4LoneNesting_Inner2_InnerInner) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[32] + mi := &file_unknownproto_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19375,8 +19374,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersionFD1 = File_unknonwnproto_proto.Messages().ByName("TestVersionFD1") + file_unknownproto_proto_init() + md_TestVersionFD1 = File_unknownproto_proto.Messages().ByName("TestVersionFD1") fd_TestVersionFD1_x = md_TestVersionFD1.Fields().ByName("x") fd_TestVersionFD1_a = md_TestVersionFD1.Fields().ByName("a") fd_TestVersionFD1_e = md_TestVersionFD1.Fields().ByName("e") @@ -19394,7 +19393,7 @@ func (x *TestVersionFD1) ProtoReflect() protoreflect.Message { } func (x *TestVersionFD1) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[17] + mi := &file_unknownproto_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20257,8 +20256,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestVersionFD1WithExtraAny = File_unknonwnproto_proto.Messages().ByName("TestVersionFD1WithExtraAny") + file_unknownproto_proto_init() + md_TestVersionFD1WithExtraAny = File_unknownproto_proto.Messages().ByName("TestVersionFD1WithExtraAny") fd_TestVersionFD1WithExtraAny_x = md_TestVersionFD1WithExtraAny.Fields().ByName("x") fd_TestVersionFD1WithExtraAny_a = md_TestVersionFD1WithExtraAny.Fields().ByName("a") fd_TestVersionFD1WithExtraAny_e = md_TestVersionFD1WithExtraAny.Fields().ByName("e") @@ -20276,7 +20275,7 @@ func (x *TestVersionFD1WithExtraAny) ProtoReflect() protoreflect.Message { } func (x *TestVersionFD1WithExtraAny) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[18] + mi := &file_unknownproto_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21085,8 +21084,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_AnyWithExtra = File_unknonwnproto_proto.Messages().ByName("AnyWithExtra") + file_unknownproto_proto_init() + md_AnyWithExtra = File_unknownproto_proto.Messages().ByName("AnyWithExtra") fd_AnyWithExtra_a = md_AnyWithExtra.Fields().ByName("a") fd_AnyWithExtra_b = md_AnyWithExtra.Fields().ByName("b") fd_AnyWithExtra_c = md_AnyWithExtra.Fields().ByName("c") @@ -21101,7 +21100,7 @@ func (x *AnyWithExtra) ProtoReflect() protoreflect.Message { } func (x *AnyWithExtra) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[19] + mi := &file_unknownproto_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21664,8 +21663,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestUpdatedTxRaw = File_unknonwnproto_proto.Messages().ByName("TestUpdatedTxRaw") + file_unknownproto_proto_init() + md_TestUpdatedTxRaw = File_unknownproto_proto.Messages().ByName("TestUpdatedTxRaw") fd_TestUpdatedTxRaw_body_bytes = md_TestUpdatedTxRaw.Fields().ByName("body_bytes") fd_TestUpdatedTxRaw_auth_info_bytes = md_TestUpdatedTxRaw.Fields().ByName("auth_info_bytes") fd_TestUpdatedTxRaw_signatures = md_TestUpdatedTxRaw.Fields().ByName("signatures") @@ -21682,7 +21681,7 @@ func (x *TestUpdatedTxRaw) ProtoReflect() protoreflect.Message { } func (x *TestUpdatedTxRaw) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[20] + mi := &file_unknownproto_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22519,8 +22518,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestUpdatedTxBody = File_unknonwnproto_proto.Messages().ByName("TestUpdatedTxBody") + file_unknownproto_proto_init() + md_TestUpdatedTxBody = File_unknownproto_proto.Messages().ByName("TestUpdatedTxBody") fd_TestUpdatedTxBody_messages = md_TestUpdatedTxBody.Fields().ByName("messages") fd_TestUpdatedTxBody_memo = md_TestUpdatedTxBody.Fields().ByName("memo") fd_TestUpdatedTxBody_timeout_height = md_TestUpdatedTxBody.Fields().ByName("timeout_height") @@ -22539,7 +22538,7 @@ func (x *TestUpdatedTxBody) ProtoReflect() protoreflect.Message { } func (x *TestUpdatedTxBody) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[21] + mi := &file_unknownproto_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23414,8 +23413,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestUpdatedAuthInfo = File_unknonwnproto_proto.Messages().ByName("TestUpdatedAuthInfo") + file_unknownproto_proto_init() + md_TestUpdatedAuthInfo = File_unknownproto_proto.Messages().ByName("TestUpdatedAuthInfo") fd_TestUpdatedAuthInfo_signer_infos = md_TestUpdatedAuthInfo.Fields().ByName("signer_infos") fd_TestUpdatedAuthInfo_fee = md_TestUpdatedAuthInfo.Fields().ByName("fee") fd_TestUpdatedAuthInfo_new_field_3 = md_TestUpdatedAuthInfo.Fields().ByName("new_field_3") @@ -23431,7 +23430,7 @@ func (x *TestUpdatedAuthInfo) ProtoReflect() protoreflect.Message { } func (x *TestUpdatedAuthInfo) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[22] + mi := &file_unknownproto_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24113,8 +24112,8 @@ var ( ) func init() { - file_unknonwnproto_proto_init() - md_TestRepeatedUints = File_unknonwnproto_proto.Messages().ByName("TestRepeatedUints") + file_unknownproto_proto_init() + md_TestRepeatedUints = File_unknownproto_proto.Messages().ByName("TestRepeatedUints") fd_TestRepeatedUints_nums = md_TestRepeatedUints.Fields().ByName("nums") } @@ -24127,7 +24126,7 @@ func (x *TestRepeatedUints) ProtoReflect() protoreflect.Message { } func (x *TestRepeatedUints) slowProtoReflect() protoreflect.Message { - mi := &file_unknonwnproto_proto_msgTypes[23] + mi := &file_unknownproto_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24601,7 +24600,7 @@ func (x *fastReflection_TestRepeatedUints) ProtoMethods() *protoiface.Methods { // versions: // protoc-gen-go v1.27.0 // protoc (unknown) -// source: unknonwnproto.proto +// source: unknownproto.proto const ( // Verify that this generated code is sufficiently up-to-date. @@ -24649,11 +24648,11 @@ func (x Customer2_City) String() string { } func (Customer2_City) Descriptor() protoreflect.EnumDescriptor { - return file_unknonwnproto_proto_enumTypes[0].Descriptor() + return file_unknownproto_proto_enumTypes[0].Descriptor() } func (Customer2_City) Type() protoreflect.EnumType { - return &file_unknonwnproto_proto_enumTypes[0] + return &file_unknownproto_proto_enumTypes[0] } func (x Customer2_City) Number() protoreflect.EnumNumber { @@ -24662,7 +24661,7 @@ func (x Customer2_City) Number() protoreflect.EnumNumber { // Deprecated: Use Customer2_City.Descriptor instead. func (Customer2_City) EnumDescriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{1, 0} + return file_unknownproto_proto_rawDescGZIP(), []int{1, 0} } type Customer1 struct { @@ -24679,7 +24678,7 @@ type Customer1 struct { func (x *Customer1) Reset() { *x = Customer1{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[0] + mi := &file_unknownproto_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24693,7 +24692,7 @@ func (*Customer1) ProtoMessage() {} // Deprecated: Use Customer1.ProtoReflect.Descriptor instead. func (*Customer1) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{0} + return file_unknownproto_proto_rawDescGZIP(), []int{0} } func (x *Customer1) GetId() int32 { @@ -24741,7 +24740,7 @@ type Customer2 struct { func (x *Customer2) Reset() { *x = Customer2{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[1] + mi := &file_unknownproto_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24755,7 +24754,7 @@ func (*Customer2) ProtoMessage() {} // Deprecated: Use Customer2.ProtoReflect.Descriptor instead. func (*Customer2) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{1} + return file_unknownproto_proto_rawDescGZIP(), []int{1} } func (x *Customer2) GetId() int32 { @@ -24819,7 +24818,7 @@ type Nested4A struct { func (x *Nested4A) Reset() { *x = Nested4A{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[2] + mi := &file_unknownproto_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24833,7 +24832,7 @@ func (*Nested4A) ProtoMessage() {} // Deprecated: Use Nested4A.ProtoReflect.Descriptor instead. func (*Nested4A) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{2} + return file_unknownproto_proto_rawDescGZIP(), []int{2} } func (x *Nested4A) GetId() int32 { @@ -24864,7 +24863,7 @@ type Nested3A struct { func (x *Nested3A) Reset() { *x = Nested3A{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[3] + mi := &file_unknownproto_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24878,7 +24877,7 @@ func (*Nested3A) ProtoMessage() {} // Deprecated: Use Nested3A.ProtoReflect.Descriptor instead. func (*Nested3A) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{3} + return file_unknownproto_proto_rawDescGZIP(), []int{3} } func (x *Nested3A) GetId() int32 { @@ -24922,7 +24921,7 @@ type Nested2A struct { func (x *Nested2A) Reset() { *x = Nested2A{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[4] + mi := &file_unknownproto_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24936,7 +24935,7 @@ func (*Nested2A) ProtoMessage() {} // Deprecated: Use Nested2A.ProtoReflect.Descriptor instead. func (*Nested2A) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{4} + return file_unknownproto_proto_rawDescGZIP(), []int{4} } func (x *Nested2A) GetId() int32 { @@ -24972,7 +24971,7 @@ type Nested1A struct { func (x *Nested1A) Reset() { *x = Nested1A{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[5] + mi := &file_unknownproto_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -24986,7 +24985,7 @@ func (*Nested1A) ProtoMessage() {} // Deprecated: Use Nested1A.ProtoReflect.Descriptor instead. func (*Nested1A) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{5} + return file_unknownproto_proto_rawDescGZIP(), []int{5} } func (x *Nested1A) GetId() int32 { @@ -25016,7 +25015,7 @@ type Nested4B struct { func (x *Nested4B) Reset() { *x = Nested4B{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[6] + mi := &file_unknownproto_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25030,7 +25029,7 @@ func (*Nested4B) ProtoMessage() {} // Deprecated: Use Nested4B.ProtoReflect.Descriptor instead. func (*Nested4B) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{6} + return file_unknownproto_proto_rawDescGZIP(), []int{6} } func (x *Nested4B) GetId() int32 { @@ -25068,7 +25067,7 @@ type Nested3B struct { func (x *Nested3B) Reset() { *x = Nested3B{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[7] + mi := &file_unknownproto_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25082,7 +25081,7 @@ func (*Nested3B) ProtoMessage() {} // Deprecated: Use Nested3B.ProtoReflect.Descriptor instead. func (*Nested3B) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{7} + return file_unknownproto_proto_rawDescGZIP(), []int{7} } func (x *Nested3B) GetId() int32 { @@ -25127,7 +25126,7 @@ type Nested2B struct { func (x *Nested2B) Reset() { *x = Nested2B{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[8] + mi := &file_unknownproto_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25141,7 +25140,7 @@ func (*Nested2B) ProtoMessage() {} // Deprecated: Use Nested2B.ProtoReflect.Descriptor instead. func (*Nested2B) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{8} + return file_unknownproto_proto_rawDescGZIP(), []int{8} } func (x *Nested2B) GetId() int32 { @@ -25185,7 +25184,7 @@ type Nested1B struct { func (x *Nested1B) Reset() { *x = Nested1B{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[9] + mi := &file_unknownproto_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25199,7 +25198,7 @@ func (*Nested1B) ProtoMessage() {} // Deprecated: Use Nested1B.ProtoReflect.Descriptor instead. func (*Nested1B) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{9} + return file_unknownproto_proto_rawDescGZIP(), []int{9} } func (x *Nested1B) GetId() int32 { @@ -25244,7 +25243,7 @@ type Customer3 struct { func (x *Customer3) Reset() { *x = Customer3{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[10] + mi := &file_unknownproto_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25258,7 +25257,7 @@ func (*Customer3) ProtoMessage() {} // Deprecated: Use Customer3.ProtoReflect.Descriptor instead. func (*Customer3) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{10} + return file_unknownproto_proto_rawDescGZIP(), []int{10} } func (x *Customer3) GetId() int32 { @@ -25365,7 +25364,7 @@ type TestVersion1 struct { func (x *TestVersion1) Reset() { *x = TestVersion1{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[11] + mi := &file_unknownproto_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25379,7 +25378,7 @@ func (*TestVersion1) ProtoMessage() {} // Deprecated: Use TestVersion1.ProtoReflect.Descriptor instead. func (*TestVersion1) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{11} + return file_unknownproto_proto_rawDescGZIP(), []int{11} } func (x *TestVersion1) GetX() int64 { @@ -25501,7 +25500,7 @@ type TestVersion2 struct { func (x *TestVersion2) Reset() { *x = TestVersion2{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[12] + mi := &file_unknownproto_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25515,7 +25514,7 @@ func (*TestVersion2) ProtoMessage() {} // Deprecated: Use TestVersion2.ProtoReflect.Descriptor instead. func (*TestVersion2) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{12} + return file_unknownproto_proto_rawDescGZIP(), []int{12} } func (x *TestVersion2) GetX() int64 { @@ -25644,7 +25643,7 @@ type TestVersion3 struct { func (x *TestVersion3) Reset() { *x = TestVersion3{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[13] + mi := &file_unknownproto_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25658,7 +25657,7 @@ func (*TestVersion3) ProtoMessage() {} // Deprecated: Use TestVersion3.ProtoReflect.Descriptor instead. func (*TestVersion3) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{13} + return file_unknownproto_proto_rawDescGZIP(), []int{13} } func (x *TestVersion3) GetX() int64 { @@ -25786,7 +25785,7 @@ type TestVersion3LoneOneOfValue struct { func (x *TestVersion3LoneOneOfValue) Reset() { *x = TestVersion3LoneOneOfValue{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[14] + mi := &file_unknownproto_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25800,7 +25799,7 @@ func (*TestVersion3LoneOneOfValue) ProtoMessage() {} // Deprecated: Use TestVersion3LoneOneOfValue.ProtoReflect.Descriptor instead. func (*TestVersion3LoneOneOfValue) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{14} + return file_unknownproto_proto_rawDescGZIP(), []int{14} } func (x *TestVersion3LoneOneOfValue) GetX() int64 { @@ -25917,7 +25916,7 @@ type TestVersion3LoneNesting struct { func (x *TestVersion3LoneNesting) Reset() { *x = TestVersion3LoneNesting{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[15] + mi := &file_unknownproto_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -25931,7 +25930,7 @@ func (*TestVersion3LoneNesting) ProtoMessage() {} // Deprecated: Use TestVersion3LoneNesting.ProtoReflect.Descriptor instead. func (*TestVersion3LoneNesting) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{15} + return file_unknownproto_proto_rawDescGZIP(), []int{15} } func (x *TestVersion3LoneNesting) GetX() int64 { @@ -26062,7 +26061,7 @@ type TestVersion4LoneNesting struct { func (x *TestVersion4LoneNesting) Reset() { *x = TestVersion4LoneNesting{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[16] + mi := &file_unknownproto_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26076,7 +26075,7 @@ func (*TestVersion4LoneNesting) ProtoMessage() {} // Deprecated: Use TestVersion4LoneNesting.ProtoReflect.Descriptor instead. func (*TestVersion4LoneNesting) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{16} + return file_unknownproto_proto_rawDescGZIP(), []int{16} } func (x *TestVersion4LoneNesting) GetX() int64 { @@ -26199,7 +26198,7 @@ type TestVersionFD1 struct { func (x *TestVersionFD1) Reset() { *x = TestVersionFD1{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[17] + mi := &file_unknownproto_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26213,7 +26212,7 @@ func (*TestVersionFD1) ProtoMessage() {} // Deprecated: Use TestVersionFD1.ProtoReflect.Descriptor instead. func (*TestVersionFD1) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{17} + return file_unknownproto_proto_rawDescGZIP(), []int{17} } func (x *TestVersionFD1) GetX() int64 { @@ -26300,7 +26299,7 @@ type TestVersionFD1WithExtraAny struct { func (x *TestVersionFD1WithExtraAny) Reset() { *x = TestVersionFD1WithExtraAny{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[18] + mi := &file_unknownproto_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26314,7 +26313,7 @@ func (*TestVersionFD1WithExtraAny) ProtoMessage() {} // Deprecated: Use TestVersionFD1WithExtraAny.ProtoReflect.Descriptor instead. func (*TestVersionFD1WithExtraAny) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{18} + return file_unknownproto_proto_rawDescGZIP(), []int{18} } func (x *TestVersionFD1WithExtraAny) GetX() int64 { @@ -26395,7 +26394,7 @@ type AnyWithExtra struct { func (x *AnyWithExtra) Reset() { *x = AnyWithExtra{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[19] + mi := &file_unknownproto_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26409,7 +26408,7 @@ func (*AnyWithExtra) ProtoMessage() {} // Deprecated: Use AnyWithExtra.ProtoReflect.Descriptor instead. func (*AnyWithExtra) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{19} + return file_unknownproto_proto_rawDescGZIP(), []int{19} } func (x *AnyWithExtra) GetA() *anypb.Any { @@ -26448,7 +26447,7 @@ type TestUpdatedTxRaw struct { func (x *TestUpdatedTxRaw) Reset() { *x = TestUpdatedTxRaw{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[20] + mi := &file_unknownproto_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26462,7 +26461,7 @@ func (*TestUpdatedTxRaw) ProtoMessage() {} // Deprecated: Use TestUpdatedTxRaw.ProtoReflect.Descriptor instead. func (*TestUpdatedTxRaw) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{20} + return file_unknownproto_proto_rawDescGZIP(), []int{20} } func (x *TestUpdatedTxRaw) GetBodyBytes() []byte { @@ -26517,7 +26516,7 @@ type TestUpdatedTxBody struct { func (x *TestUpdatedTxBody) Reset() { *x = TestUpdatedTxBody{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[21] + mi := &file_unknownproto_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26531,7 +26530,7 @@ func (*TestUpdatedTxBody) ProtoMessage() {} // Deprecated: Use TestUpdatedTxBody.ProtoReflect.Descriptor instead. func (*TestUpdatedTxBody) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{21} + return file_unknownproto_proto_rawDescGZIP(), []int{21} } func (x *TestUpdatedTxBody) GetMessages() []*anypb.Any { @@ -26597,7 +26596,7 @@ type TestUpdatedAuthInfo struct { func (x *TestUpdatedAuthInfo) Reset() { *x = TestUpdatedAuthInfo{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[22] + mi := &file_unknownproto_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26611,7 +26610,7 @@ func (*TestUpdatedAuthInfo) ProtoMessage() {} // Deprecated: Use TestUpdatedAuthInfo.ProtoReflect.Descriptor instead. func (*TestUpdatedAuthInfo) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{22} + return file_unknownproto_proto_rawDescGZIP(), []int{22} } func (x *TestUpdatedAuthInfo) GetSignerInfos() []*v1beta1.SignerInfo { @@ -26653,7 +26652,7 @@ type TestRepeatedUints struct { func (x *TestRepeatedUints) Reset() { *x = TestRepeatedUints{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[23] + mi := &file_unknownproto_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26667,7 +26666,7 @@ func (*TestRepeatedUints) ProtoMessage() {} // Deprecated: Use TestRepeatedUints.ProtoReflect.Descriptor instead. func (*TestRepeatedUints) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{23} + return file_unknownproto_proto_rawDescGZIP(), []int{23} } func (x *TestRepeatedUints) GetNums() []uint64 { @@ -26690,7 +26689,7 @@ type TestVersion3LoneNesting_Inner1 struct { func (x *TestVersion3LoneNesting_Inner1) Reset() { *x = TestVersion3LoneNesting_Inner1{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[25] + mi := &file_unknownproto_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26704,7 +26703,7 @@ func (*TestVersion3LoneNesting_Inner1) ProtoMessage() {} // Deprecated: Use TestVersion3LoneNesting_Inner1.ProtoReflect.Descriptor instead. func (*TestVersion3LoneNesting_Inner1) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{15, 0} + return file_unknownproto_proto_rawDescGZIP(), []int{15, 0} } func (x *TestVersion3LoneNesting_Inner1) GetId() int64 { @@ -26741,7 +26740,7 @@ type TestVersion3LoneNesting_Inner2 struct { func (x *TestVersion3LoneNesting_Inner2) Reset() { *x = TestVersion3LoneNesting_Inner2{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[26] + mi := &file_unknownproto_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26755,7 +26754,7 @@ func (*TestVersion3LoneNesting_Inner2) ProtoMessage() {} // Deprecated: Use TestVersion3LoneNesting_Inner2.ProtoReflect.Descriptor instead. func (*TestVersion3LoneNesting_Inner2) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{15, 1} + return file_unknownproto_proto_rawDescGZIP(), []int{15, 1} } func (x *TestVersion3LoneNesting_Inner2) GetId() string { @@ -26791,7 +26790,7 @@ type TestVersion3LoneNesting_Inner1_InnerInner struct { func (x *TestVersion3LoneNesting_Inner1_InnerInner) Reset() { *x = TestVersion3LoneNesting_Inner1_InnerInner{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[27] + mi := &file_unknownproto_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26805,7 +26804,7 @@ func (*TestVersion3LoneNesting_Inner1_InnerInner) ProtoMessage() {} // Deprecated: Use TestVersion3LoneNesting_Inner1_InnerInner.ProtoReflect.Descriptor instead. func (*TestVersion3LoneNesting_Inner1_InnerInner) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{15, 0, 0} + return file_unknownproto_proto_rawDescGZIP(), []int{15, 0, 0} } func (x *TestVersion3LoneNesting_Inner1_InnerInner) GetId() string { @@ -26834,7 +26833,7 @@ type TestVersion3LoneNesting_Inner2_InnerInner struct { func (x *TestVersion3LoneNesting_Inner2_InnerInner) Reset() { *x = TestVersion3LoneNesting_Inner2_InnerInner{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[28] + mi := &file_unknownproto_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26848,7 +26847,7 @@ func (*TestVersion3LoneNesting_Inner2_InnerInner) ProtoMessage() {} // Deprecated: Use TestVersion3LoneNesting_Inner2_InnerInner.ProtoReflect.Descriptor instead. func (*TestVersion3LoneNesting_Inner2_InnerInner) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{15, 1, 0} + return file_unknownproto_proto_rawDescGZIP(), []int{15, 1, 0} } func (x *TestVersion3LoneNesting_Inner2_InnerInner) GetId() string { @@ -26878,7 +26877,7 @@ type TestVersion4LoneNesting_Inner1 struct { func (x *TestVersion4LoneNesting_Inner1) Reset() { *x = TestVersion4LoneNesting_Inner1{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[29] + mi := &file_unknownproto_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26892,7 +26891,7 @@ func (*TestVersion4LoneNesting_Inner1) ProtoMessage() {} // Deprecated: Use TestVersion4LoneNesting_Inner1.ProtoReflect.Descriptor instead. func (*TestVersion4LoneNesting_Inner1) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{16, 0} + return file_unknownproto_proto_rawDescGZIP(), []int{16, 0} } func (x *TestVersion4LoneNesting_Inner1) GetId() int64 { @@ -26929,7 +26928,7 @@ type TestVersion4LoneNesting_Inner2 struct { func (x *TestVersion4LoneNesting_Inner2) Reset() { *x = TestVersion4LoneNesting_Inner2{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[30] + mi := &file_unknownproto_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26943,7 +26942,7 @@ func (*TestVersion4LoneNesting_Inner2) ProtoMessage() {} // Deprecated: Use TestVersion4LoneNesting_Inner2.ProtoReflect.Descriptor instead. func (*TestVersion4LoneNesting_Inner2) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{16, 1} + return file_unknownproto_proto_rawDescGZIP(), []int{16, 1} } func (x *TestVersion4LoneNesting_Inner2) GetId() string { @@ -26979,7 +26978,7 @@ type TestVersion4LoneNesting_Inner1_InnerInner struct { func (x *TestVersion4LoneNesting_Inner1_InnerInner) Reset() { *x = TestVersion4LoneNesting_Inner1_InnerInner{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[31] + mi := &file_unknownproto_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26993,7 +26992,7 @@ func (*TestVersion4LoneNesting_Inner1_InnerInner) ProtoMessage() {} // Deprecated: Use TestVersion4LoneNesting_Inner1_InnerInner.ProtoReflect.Descriptor instead. func (*TestVersion4LoneNesting_Inner1_InnerInner) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{16, 0, 0} + return file_unknownproto_proto_rawDescGZIP(), []int{16, 0, 0} } func (x *TestVersion4LoneNesting_Inner1_InnerInner) GetId() int64 { @@ -27022,7 +27021,7 @@ type TestVersion4LoneNesting_Inner2_InnerInner struct { func (x *TestVersion4LoneNesting_Inner2_InnerInner) Reset() { *x = TestVersion4LoneNesting_Inner2_InnerInner{} if protoimpl.UnsafeEnabled { - mi := &file_unknonwnproto_proto_msgTypes[32] + mi := &file_unknownproto_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27036,7 +27035,7 @@ func (*TestVersion4LoneNesting_Inner2_InnerInner) ProtoMessage() {} // Deprecated: Use TestVersion4LoneNesting_Inner2_InnerInner.ProtoReflect.Descriptor instead. func (*TestVersion4LoneNesting_Inner2_InnerInner) Descriptor() ([]byte, []int) { - return file_unknonwnproto_proto_rawDescGZIP(), []int{16, 1, 0} + return file_unknownproto_proto_rawDescGZIP(), []int{16, 1, 0} } func (x *TestVersion4LoneNesting_Inner2_InnerInner) GetId() string { @@ -27053,203 +27052,152 @@ func (x *TestVersion4LoneNesting_Inner2_InnerInner) GetValue() int64 { return 0 } -var File_unknonwnproto_proto protoreflect.FileDescriptor +var File_unknownproto_proto protoreflect.FileDescriptor -var file_unknonwnproto_proto_rawDesc = []byte{ - 0x0a, 0x13, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x6e, 0x77, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x1a, 0x14, 0x67, - 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x74, 0x78, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2f, 0x74, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x74, 0x0a, 0x09, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0xaf, 0x02, 0x0a, 0x09, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x32, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x66, 0x65, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x66, - 0x65, 0x77, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x18, 0x97, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x16, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, - 0x72, 0x32, 0x2e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, - 0x0d, 0x6d, 0x69, 0x73, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0d, 0x6d, 0x69, 0x73, 0x63, - 0x65, 0x6c, 0x6c, 0x61, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x22, 0x47, 0x0a, 0x04, 0x43, 0x69, 0x74, - 0x79, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x61, 0x6f, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, - 0x6f, 0x73, 0x41, 0x6e, 0x67, 0x65, 0x6c, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x50, - 0x61, 0x6c, 0x6f, 0x41, 0x6c, 0x74, 0x6f, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x6f, 0x73, - 0x63, 0x6f, 0x77, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x61, 0x69, 0x72, 0x6f, 0x62, 0x69, - 0x10, 0x04, 0x22, 0x2e, 0x0a, 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x34, 0x41, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x33, 0x41, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x02, 0x61, 0x34, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x34, - 0x41, 0x52, 0x02, 0x61, 0x34, 0x12, 0x31, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x33, 0x41, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x4a, 0x0a, 0x0a, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, - 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x34, 0x41, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x22, 0x58, 0x0a, 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x32, 0x41, +var file_unknownproto_proto_rawDesc = []byte{ + 0x0a, 0x12, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x1a, 0x19, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, + 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x74, 0x78, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x78, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x74, 0x0a, 0x09, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x33, 0x41, 0x52, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x44, - 0x0a, 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x31, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x6e, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x32, 0x41, 0x52, 0x06, 0x6e, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x22, 0x40, 0x0a, 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x34, 0x42, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, - 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x62, 0x0a, 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x33, 0x42, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x02, 0x62, 0x34, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x34, 0x42, 0x52, 0x02, 0x62, 0x34, 0x22, 0x6c, 0x0a, 0x08, 0x4e, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x32, 0x42, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x28, 0x0a, 0x06, 0x6e, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, - 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x33, 0x42, 0x52, 0x06, 0x6e, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x56, 0x0a, 0x08, 0x4e, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x31, 0x42, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x32, 0x42, 0x52, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, - 0x22, 0x80, 0x02, 0x0a, 0x09, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x33, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x73, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, - 0x73, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x72, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x73, 0x75, 0x72, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, - 0x64, 0x5f, 0x6e, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x12, 0x1d, 0x0a, 0x09, 0x63, 0x68, - 0x65, 0x71, 0x75, 0x65, 0x5f, 0x6e, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x08, 0x63, 0x68, 0x65, 0x71, 0x75, 0x65, 0x4e, 0x6f, 0x12, 0x2d, 0x0a, 0x08, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, - 0x73, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x52, 0x08, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0xde, 0x02, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x31, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x01, 0x78, 0x12, 0x22, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x61, 0x12, 0x22, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x62, 0x12, 0x22, 0x0a, 0x01, 0x63, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, - 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x63, 0x12, 0x28, - 0x0a, 0x01, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, - 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x42, - 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x01, 0x64, 0x12, 0x0e, 0x0a, 0x01, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x01, 0x65, 0x12, 0x24, 0x0a, 0x01, 0x66, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x22, - 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, - 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, 0x12, 0x25, 0x0a, 0x01, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x65, 0x72, 0x31, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x01, 0x6b, 0x42, 0x05, 0x0a, - 0x03, 0x73, 0x75, 0x6d, 0x22, 0xf5, 0x02, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x01, 0x78, 0x12, 0x22, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x32, 0x52, 0x01, 0x61, 0x12, 0x22, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x52, 0x01, 0x62, 0x12, 0x22, 0x0a, 0x01, 0x63, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, - 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x52, 0x01, 0x63, 0x12, - 0x22, 0x0a, 0x01, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, - 0x52, 0x01, 0x64, 0x12, 0x0e, 0x0a, 0x01, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x01, 0x65, 0x12, 0x24, 0x0a, 0x01, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x32, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x22, 0x0a, 0x01, 0x67, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x01, 0x67, 0x12, 0x22, 0x0a, - 0x01, 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, - 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, - 0x68, 0x12, 0x25, 0x0a, 0x01, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, - 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x42, - 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x01, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6e, 0x65, 0x77, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0x87, 0x03, 0x0a, - 0x0c, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x12, 0x0c, 0x0a, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, + 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xaf, 0x02, 0x0a, 0x09, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x64, 0x75, 0x73, + 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x64, 0x75, 0x73, + 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x65, 0x77, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x66, 0x65, 0x77, 0x65, 0x72, 0x12, 0x1b, 0x0a, + 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x97, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x04, 0x63, 0x69, + 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x32, 0x2e, 0x43, 0x69, 0x74, 0x79, + 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x0d, 0x6d, 0x69, 0x73, 0x63, 0x65, 0x6c, + 0x6c, 0x61, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x41, 0x6e, 0x79, 0x52, 0x0d, 0x6d, 0x69, 0x73, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x6e, 0x65, 0x6f, + 0x75, 0x73, 0x22, 0x47, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x61, + 0x6f, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x6f, 0x73, 0x41, 0x6e, 0x67, 0x65, 0x6c, + 0x65, 0x73, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x61, 0x6c, 0x6f, 0x41, 0x6c, 0x74, 0x6f, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x6f, 0x73, 0x63, 0x6f, 0x77, 0x10, 0x03, 0x12, 0x0b, + 0x0a, 0x07, 0x4e, 0x61, 0x69, 0x72, 0x6f, 0x62, 0x69, 0x10, 0x04, 0x22, 0x2e, 0x0a, 0x08, 0x4e, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x34, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x08, + 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x33, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x02, + 0x61, 0x34, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x34, 0x41, 0x52, 0x02, 0x61, 0x34, 0x12, 0x31, + 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x33, 0x41, 0x2e, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x1a, 0x4a, 0x0a, 0x0a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x34, 0x41, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x58, 0x0a, + 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x32, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, + 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x33, 0x41, 0x52, + 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x44, 0x0a, 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x31, 0x41, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x32, 0x41, 0x52, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x40, 0x0a, + 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x34, 0x42, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x62, 0x0a, 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x33, 0x42, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x02, 0x62, 0x34, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x34, 0x42, 0x52, + 0x02, 0x62, 0x34, 0x22, 0x6c, 0x0a, 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x32, 0x42, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x66, 0x65, + 0x65, 0x12, 0x28, 0x0a, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x33, 0x42, 0x52, 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x22, 0x56, 0x0a, 0x08, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x31, 0x42, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x28, 0x0a, + 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x32, 0x42, 0x52, + 0x06, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x61, 0x67, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x09, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x33, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x73, + 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x02, 0x73, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x75, 0x72, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, + 0x73, 0x75, 0x72, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6e, 0x6f, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, + 0x64, 0x4e, 0x6f, 0x12, 0x1d, 0x0a, 0x09, 0x63, 0x68, 0x65, 0x71, 0x75, 0x65, 0x5f, 0x6e, 0x6f, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x63, 0x68, 0x65, 0x71, 0x75, 0x65, + 0x4e, 0x6f, 0x12, 0x2d, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xd2, 0x02, 0x0a, + 0x0c, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x01, 0x78, 0x12, 0x22, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, - 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x61, 0x12, + 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x61, 0x12, 0x22, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, + 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x62, 0x12, 0x22, 0x0a, 0x01, 0x63, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x63, 0x12, 0x22, 0x0a, 0x01, 0x64, 0x18, 0x05, 0x20, 0x03, + 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x63, 0x12, 0x22, 0x0a, 0x01, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x64, 0x12, 0x0e, 0x0a, 0x01, 0x65, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x64, 0x12, 0x0e, 0x0a, 0x01, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x01, 0x65, 0x12, 0x24, 0x0a, 0x01, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, - 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x48, 0x00, 0x52, 0x01, + 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x22, 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, 0x12, 0x25, 0x0a, 0x01, 0x6b, 0x18, 0x0c, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, 0x12, 0x1f, 0x0a, 0x01, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x01, 0x6b, - 0x12, 0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, - 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x87, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e, - 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, - 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0xef, 0x02, 0x0a, 0x1a, 0x54, 0x65, 0x73, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x65, 0x4f, 0x66, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x01, 0x78, 0x12, 0x22, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x61, 0x12, 0x22, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x62, 0x12, 0x22, 0x0a, 0x01, 0x63, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, - 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x63, 0x12, - 0x22, 0x0a, 0x01, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, - 0x52, 0x01, 0x64, 0x12, 0x0e, 0x0a, 0x01, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x01, 0x65, 0x12, 0x22, 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, 0x68, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, 0x12, 0x25, 0x0a, 0x01, 0x6b, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, - 0x01, 0x6b, 0x12, 0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x87, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x6e, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0xe7, 0x06, 0x0a, 0x17, 0x54, 0x65, 0x73, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x52, 0x01, 0x6b, 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, + 0x6d, 0x22, 0xef, 0x02, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x32, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x01, 0x78, + 0x12, 0x22, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, + 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x32, 0x52, 0x01, 0x61, 0x12, 0x22, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x52, 0x01, 0x62, 0x12, 0x22, 0x0a, 0x01, 0x63, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x52, 0x01, 0x63, 0x12, 0x22, 0x0a, 0x01, + 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x52, 0x01, 0x64, + 0x12, 0x0e, 0x0a, 0x01, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x01, 0x65, + 0x12, 0x24, 0x0a, 0x01, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, + 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x32, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x22, 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, 0x68, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, 0x12, 0x1f, + 0x0a, 0x01, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, + 0x70, 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x52, 0x01, 0x6b, 0x12, + 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x19, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x05, 0x0a, 0x03, + 0x73, 0x75, 0x6d, 0x22, 0x81, 0x03, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x33, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x01, 0x78, 0x12, 0x22, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x61, 0x12, 0x22, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, @@ -27259,214 +27207,261 @@ var file_unknonwnproto_proto_rawDesc = []byte{ 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x63, 0x12, 0x22, 0x0a, 0x01, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, - 0x01, 0x64, 0x12, 0x2f, 0x0a, 0x01, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x01, 0x64, 0x12, 0x0e, 0x0a, 0x01, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, + 0x01, 0x65, 0x12, 0x24, 0x0a, 0x01, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, - 0x52, 0x01, 0x66, 0x12, 0x22, 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, 0x68, 0x18, 0x09, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, 0x12, 0x25, 0x0a, 0x01, 0x6b, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, - 0x01, 0x6b, 0x12, 0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x87, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x6e, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x52, 0x06, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x31, 0x12, 0x3e, 0x0a, 0x06, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x52, 0x06, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x32, 0x1a, 0xa7, 0x01, 0x0a, 0x06, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x47, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, - 0x65, 0x72, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x1a, 0x30, 0x0a, 0x0a, 0x49, 0x6e, 0x6e, - 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x1a, 0xad, 0x01, 0x0a, 0x06, - 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x47, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, - 0x65, 0x72, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x1a, 0x30, 0x0a, 0x0a, 0x49, 0x6e, 0x6e, - 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x42, 0x05, 0x0a, 0x03, 0x73, - 0x75, 0x6d, 0x22, 0xe9, 0x06, 0x0a, 0x17, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x34, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x0c, - 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x01, 0x78, 0x12, 0x22, 0x0a, 0x01, - 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, - 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x61, - 0x12, 0x22, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, - 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x33, 0x52, 0x01, 0x62, 0x12, 0x22, 0x0a, 0x01, 0x63, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x6f, 0x6e, 0x33, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x22, 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, + 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, + 0x12, 0x1f, 0x0a, 0x01, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, + 0x73, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x52, 0x01, + 0x6b, 0x12, 0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x87, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x6e, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0xe9, 0x02, 0x0a, 0x1a, 0x54, 0x65, 0x73, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x65, 0x4f, + 0x66, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x01, 0x78, 0x12, 0x22, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x63, 0x12, 0x22, 0x0a, 0x01, 0x64, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x64, 0x12, 0x2f, 0x0a, 0x01, - 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, - 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, - 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x22, 0x0a, - 0x01, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x01, - 0x67, 0x12, 0x22, 0x0a, 0x01, 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, - 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x31, 0x52, 0x01, 0x68, 0x12, 0x25, 0x0a, 0x01, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x65, 0x72, 0x31, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x01, 0x6b, 0x12, 0x2d, 0x0a, 0x12, - 0x6e, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x18, 0x87, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x6f, 0x6e, 0x43, 0x72, - 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x69, - 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, + 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x61, 0x12, 0x22, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x62, 0x12, 0x22, 0x0a, 0x01, + 0x63, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x63, + 0x12, 0x22, 0x0a, 0x01, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x34, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, - 0x65, 0x72, 0x31, 0x52, 0x06, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x12, 0x3e, 0x0a, 0x06, 0x69, - 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, - 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x34, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, - 0x65, 0x72, 0x32, 0x52, 0x06, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x1a, 0xa7, 0x01, 0x0a, 0x06, - 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x05, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x65, 0x73, 0x74, - 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x34, 0x4c, - 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, - 0x31, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x05, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x1a, 0x30, 0x0a, 0x0a, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, - 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x63, 0x69, 0x74, 0x79, 0x1a, 0xaf, 0x01, 0x0a, 0x06, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x32, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x47, 0x0a, 0x05, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x65, 0x73, 0x74, - 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x34, 0x4c, - 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, - 0x32, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x05, 0x69, 0x6e, - 0x6e, 0x65, 0x72, 0x1a, 0x32, 0x0a, 0x0a, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, - 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0xc7, - 0x01, 0x0a, 0x0e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x44, - 0x31, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x01, 0x78, 0x12, - 0x22, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, - 0x52, 0x01, 0x61, 0x12, 0x0e, 0x0a, 0x01, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x01, 0x65, 0x12, 0x24, 0x0a, 0x01, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x31, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x22, 0x0a, 0x01, 0x67, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x01, 0x67, 0x12, 0x22, 0x0a, - 0x01, 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, - 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, - 0x68, 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0xd3, 0x01, 0x0a, 0x1a, 0x54, 0x65, 0x73, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x44, 0x31, 0x57, 0x69, 0x74, 0x68, 0x45, - 0x78, 0x74, 0x72, 0x61, 0x41, 0x6e, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x01, 0x78, 0x12, 0x22, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x61, 0x12, 0x0e, 0x0a, 0x01, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x01, 0x65, 0x12, 0x24, 0x0a, 0x01, 0x66, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, - 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, - 0x22, 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0x2e, 0x41, 0x6e, 0x79, 0x57, 0x69, 0x74, 0x68, 0x45, 0x78, 0x74, 0x72, 0x61, - 0x52, 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0x54, - 0x0a, 0x0c, 0x41, 0x6e, 0x79, 0x57, 0x69, 0x74, 0x68, 0x45, 0x78, 0x74, 0x72, 0x61, 0x12, 0x28, - 0x0a, 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, - 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x01, 0x61, 0x12, 0x0c, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x01, 0x62, 0x12, 0x0c, 0x0a, 0x01, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x01, 0x63, 0x22, 0xc0, 0x01, 0x0a, 0x10, 0x54, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x54, 0x78, 0x52, 0x61, 0x77, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x64, - 0x79, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x62, - 0x6f, 0x64, 0x79, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x68, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, - 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x35, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x35, - 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x31, 0x30, - 0x32, 0x34, 0x18, 0x80, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x22, 0x90, 0x03, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x78, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x30, 0x0a, - 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x33, 0x52, 0x01, 0x64, 0x12, 0x0e, 0x0a, 0x01, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x01, 0x65, 0x12, 0x22, 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, - 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6f, - 0x6d, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x73, 0x6f, 0x6d, 0x65, 0x4e, 0x65, 0x77, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x12, 0x48, 0x0a, 0x21, 0x73, 0x6f, 0x6d, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x9a, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x73, 0x6f, - 0x6d, 0x65, 0x4e, 0x65, 0x77, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x6f, 0x6e, 0x43, 0x72, 0x69, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x42, 0x0a, 0x11, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0xff, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x10, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5a, - 0x0a, 0x1e, 0x6e, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0xff, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x1b, 0x6e, - 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x13, 0x54, - 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, - 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x74, 0x78, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x69, 0x67, - 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x28, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x78, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1e, - 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x33, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x12, 0x25, - 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x31, 0x30, 0x32, 0x34, - 0x18, 0x80, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x31, 0x30, 0x32, 0x34, 0x22, 0x27, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x75, - 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x04, 0x6e, 0x75, 0x6d, 0x73, 0x42, 0x83, - 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x12, 0x55, - 0x6e, 0x6b, 0x6e, 0x6f, 0x6e, 0x77, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x29, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, - 0x6f, 0x2f, 0x78, 0x2f, 0x74, 0x78, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x2f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, - 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, - 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, - 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, 0x68, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, 0x12, 0x1f, 0x0a, 0x01, + 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, + 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x52, 0x01, 0x6b, 0x12, 0x2d, 0x0a, + 0x12, 0x6e, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x18, 0x87, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x6f, 0x6e, 0x43, + 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x05, 0x0a, 0x03, + 0x73, 0x75, 0x6d, 0x22, 0xe1, 0x06, 0x0a, 0x17, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x01, 0x78, 0x12, 0x22, 0x0a, + 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, + 0x61, 0x12, 0x22, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x33, 0x52, 0x01, 0x62, 0x12, 0x22, 0x0a, 0x01, 0x63, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x63, 0x12, 0x22, 0x0a, 0x01, 0x64, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x64, 0x12, 0x2f, 0x0a, + 0x01, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, + 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x22, + 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, + 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, 0x12, 0x1f, 0x0a, 0x01, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x65, 0x72, 0x31, 0x52, 0x01, 0x6b, 0x12, 0x2d, 0x0a, 0x12, 0x6e, 0x6f, 0x6e, 0x5f, 0x63, + 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x87, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x31, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, + 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x52, 0x06, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x12, 0x3e, 0x0a, 0x06, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x32, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, + 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x52, 0x06, + 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x1a, 0xa7, 0x01, 0x0a, 0x06, 0x49, 0x6e, 0x6e, 0x65, 0x72, + 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x2e, 0x49, 0x6e, 0x6e, + 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x1a, 0x30, + 0x0a, 0x0a, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, + 0x1a, 0xad, 0x01, 0x0a, 0x06, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x47, 0x0a, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x2e, 0x49, 0x6e, 0x6e, + 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x05, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x1a, 0x30, + 0x0a, 0x0a, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, + 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0xe3, 0x06, 0x0a, 0x17, 0x54, 0x65, 0x73, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x34, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x01, + 0x78, 0x12, 0x22, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x33, 0x52, 0x01, 0x61, 0x12, 0x22, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x62, 0x12, 0x22, 0x0a, 0x01, 0x63, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, 0x63, 0x12, 0x22, 0x0a, + 0x01, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x33, 0x52, 0x01, + 0x64, 0x12, 0x2f, 0x0a, 0x01, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x33, 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, + 0x01, 0x66, 0x12, 0x22, 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x41, 0x6e, 0x79, 0x52, 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, 0x12, 0x1f, 0x0a, 0x01, 0x6b, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x31, 0x52, 0x01, 0x6b, 0x12, 0x2d, 0x0a, 0x12, 0x6e, + 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x18, 0x87, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x6f, 0x6e, 0x43, 0x72, 0x69, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x31, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x73, + 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x34, + 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, + 0x72, 0x31, 0x52, 0x06, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x12, 0x3e, 0x0a, 0x06, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x65, 0x73, + 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x34, + 0x4c, 0x6f, 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, + 0x72, 0x32, 0x52, 0x06, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x1a, 0xa7, 0x01, 0x0a, 0x06, 0x49, + 0x6e, 0x6e, 0x65, 0x72, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x05, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x34, 0x4c, 0x6f, + 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x31, + 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x05, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x1a, 0x30, 0x0a, 0x0a, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x63, 0x69, 0x74, 0x79, 0x1a, 0xaf, 0x01, 0x0a, 0x06, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x32, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x47, 0x0a, 0x05, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x34, 0x4c, 0x6f, + 0x6e, 0x65, 0x4e, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x32, + 0x2e, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x52, 0x05, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x1a, 0x32, 0x0a, 0x0a, 0x49, 0x6e, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x6e, 0x65, 0x72, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0xc7, 0x01, + 0x0a, 0x0e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x44, 0x31, + 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x01, 0x78, 0x12, 0x22, + 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, + 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, + 0x01, 0x61, 0x12, 0x0e, 0x0a, 0x01, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, + 0x01, 0x65, 0x12, 0x24, 0x0a, 0x01, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x31, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x22, 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, + 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, + 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0xd3, 0x01, 0x0a, 0x1a, 0x54, 0x65, 0x73, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x44, 0x31, 0x57, 0x69, 0x74, 0x68, 0x45, 0x78, + 0x74, 0x72, 0x61, 0x41, 0x6e, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x01, 0x78, 0x12, 0x22, 0x0a, 0x01, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x61, 0x12, 0x0e, 0x0a, 0x01, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x01, 0x65, 0x12, 0x24, 0x0a, 0x01, 0x66, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x22, + 0x0a, 0x01, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, + 0x70, 0x62, 0x2e, 0x41, 0x6e, 0x79, 0x57, 0x69, 0x74, 0x68, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, + 0x01, 0x67, 0x12, 0x22, 0x0a, 0x01, 0x68, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x31, 0x52, 0x01, 0x68, 0x42, 0x05, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x22, 0x4e, 0x0a, + 0x0c, 0x41, 0x6e, 0x79, 0x57, 0x69, 0x74, 0x68, 0x45, 0x78, 0x74, 0x72, 0x61, 0x12, 0x22, 0x0a, + 0x01, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x01, + 0x61, 0x12, 0x0c, 0x0a, 0x01, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x01, 0x62, 0x12, + 0x0c, 0x0a, 0x01, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x01, 0x63, 0x22, 0xc0, 0x01, + 0x0a, 0x10, 0x54, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x78, 0x52, + 0x61, 0x77, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x62, 0x6f, 0x64, 0x79, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x68, + 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x77, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x6e, 0x65, 0x77, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x35, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x65, 0x77, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x31, 0x30, 0x32, 0x34, 0x18, 0x80, 0x08, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, + 0x22, 0x90, 0x03, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x54, 0x78, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x30, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6f, 0x6d, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x6f, 0x6d, + 0x65, 0x4e, 0x65, 0x77, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x48, 0x0a, 0x21, 0x73, 0x6f, 0x6d, + 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, + 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x9a, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x73, 0x6f, 0x6d, 0x65, 0x4e, 0x65, 0x77, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x4e, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x12, 0x42, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xff, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5a, 0x0a, 0x1e, 0x6e, 0x6f, 0x6e, 0x5f, 0x63, + 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xff, 0x0f, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x1b, 0x6e, 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x13, 0x54, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x75, 0x74, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x78, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x28, 0x0a, + 0x03, 0x66, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x78, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, + 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x6e, 0x65, 0x77, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x65, + 0x77, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x33, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x31, 0x30, 0x32, 0x34, 0x18, 0x80, 0x08, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x31, 0x30, 0x32, 0x34, 0x22, 0x27, + 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, + 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x75, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x04, 0x52, 0x04, 0x6e, 0x75, 0x6d, 0x73, 0x42, 0x82, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x11, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x29, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x78, 0x2f, 0x74, 0x78, 0x2f, 0x74, + 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, + 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, + 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( - file_unknonwnproto_proto_rawDescOnce sync.Once - file_unknonwnproto_proto_rawDescData = file_unknonwnproto_proto_rawDesc + file_unknownproto_proto_rawDescOnce sync.Once + file_unknownproto_proto_rawDescData = file_unknownproto_proto_rawDesc ) -func file_unknonwnproto_proto_rawDescGZIP() []byte { - file_unknonwnproto_proto_rawDescOnce.Do(func() { - file_unknonwnproto_proto_rawDescData = protoimpl.X.CompressGZIP(file_unknonwnproto_proto_rawDescData) +func file_unknownproto_proto_rawDescGZIP() []byte { + file_unknownproto_proto_rawDescOnce.Do(func() { + file_unknownproto_proto_rawDescData = protoimpl.X.CompressGZIP(file_unknownproto_proto_rawDescData) }) - return file_unknonwnproto_proto_rawDescData + return file_unknownproto_proto_rawDescData } -var file_unknonwnproto_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_unknonwnproto_proto_msgTypes = make([]protoimpl.MessageInfo, 33) -var file_unknonwnproto_proto_goTypes = []interface{}{ +var file_unknownproto_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_unknownproto_proto_msgTypes = make([]protoimpl.MessageInfo, 33) +var file_unknownproto_proto_goTypes = []interface{}{ (Customer2_City)(0), // 0: testpb.Customer2.City (*Customer1)(nil), // 1: testpb.Customer1 (*Customer2)(nil), // 2: testpb.Customer2 @@ -27505,7 +27500,7 @@ var file_unknonwnproto_proto_goTypes = []interface{}{ (*v1beta1.SignerInfo)(nil), // 35: cosmos.tx.v1beta1.SignerInfo (*v1beta1.Fee)(nil), // 36: cosmos.tx.v1beta1.Fee } -var file_unknonwnproto_proto_depIdxs = []int32{ +var file_unknownproto_proto_depIdxs = []int32{ 0, // 0: testpb.Customer2.city:type_name -> testpb.Customer2.City 34, // 1: testpb.Customer2.miscellaneous:type_name -> google.protobuf.Any 3, // 2: testpb.Nested3A.a4:type_name -> testpb.Nested4A @@ -27593,13 +27588,13 @@ var file_unknonwnproto_proto_depIdxs = []int32{ 0, // [0:80] is the sub-list for field type_name } -func init() { file_unknonwnproto_proto_init() } -func file_unknonwnproto_proto_init() { - if File_unknonwnproto_proto != nil { +func init() { file_unknownproto_proto_init() } +func file_unknownproto_proto_init() { + if File_unknownproto_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_unknonwnproto_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Customer1); i { case 0: return &v.state @@ -27611,7 +27606,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Customer2); i { case 0: return &v.state @@ -27623,7 +27618,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nested4A); i { case 0: return &v.state @@ -27635,7 +27630,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nested3A); i { case 0: return &v.state @@ -27647,7 +27642,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nested2A); i { case 0: return &v.state @@ -27659,7 +27654,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nested1A); i { case 0: return &v.state @@ -27671,7 +27666,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nested4B); i { case 0: return &v.state @@ -27683,7 +27678,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nested3B); i { case 0: return &v.state @@ -27695,7 +27690,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nested2B); i { case 0: return &v.state @@ -27707,7 +27702,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Nested1B); i { case 0: return &v.state @@ -27719,7 +27714,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Customer3); i { case 0: return &v.state @@ -27731,7 +27726,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion1); i { case 0: return &v.state @@ -27743,7 +27738,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion2); i { case 0: return &v.state @@ -27755,7 +27750,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion3); i { case 0: return &v.state @@ -27767,7 +27762,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion3LoneOneOfValue); i { case 0: return &v.state @@ -27779,7 +27774,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion3LoneNesting); i { case 0: return &v.state @@ -27791,7 +27786,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion4LoneNesting); i { case 0: return &v.state @@ -27803,7 +27798,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersionFD1); i { case 0: return &v.state @@ -27815,7 +27810,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersionFD1WithExtraAny); i { case 0: return &v.state @@ -27827,7 +27822,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnyWithExtra); i { case 0: return &v.state @@ -27839,7 +27834,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestUpdatedTxRaw); i { case 0: return &v.state @@ -27851,7 +27846,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestUpdatedTxBody); i { case 0: return &v.state @@ -27863,7 +27858,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestUpdatedAuthInfo); i { case 0: return &v.state @@ -27875,7 +27870,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestRepeatedUints); i { case 0: return &v.state @@ -27887,7 +27882,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion3LoneNesting_Inner1); i { case 0: return &v.state @@ -27899,7 +27894,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion3LoneNesting_Inner2); i { case 0: return &v.state @@ -27911,7 +27906,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion3LoneNesting_Inner1_InnerInner); i { case 0: return &v.state @@ -27923,7 +27918,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion3LoneNesting_Inner2_InnerInner); i { case 0: return &v.state @@ -27935,7 +27930,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion4LoneNesting_Inner1); i { case 0: return &v.state @@ -27947,7 +27942,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion4LoneNesting_Inner2); i { case 0: return &v.state @@ -27959,7 +27954,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion4LoneNesting_Inner1_InnerInner); i { case 0: return &v.state @@ -27971,7 +27966,7 @@ func file_unknonwnproto_proto_init() { return nil } } - file_unknonwnproto_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_unknownproto_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TestVersion4LoneNesting_Inner2_InnerInner); i { case 0: return &v.state @@ -27984,36 +27979,36 @@ func file_unknonwnproto_proto_init() { } } } - file_unknonwnproto_proto_msgTypes[10].OneofWrappers = []interface{}{ + file_unknownproto_proto_msgTypes[10].OneofWrappers = []interface{}{ (*Customer3_CreditCardNo)(nil), (*Customer3_ChequeNo)(nil), } - file_unknonwnproto_proto_msgTypes[11].OneofWrappers = []interface{}{ + file_unknownproto_proto_msgTypes[11].OneofWrappers = []interface{}{ (*TestVersion1_E)(nil), (*TestVersion1_F)(nil), } - file_unknonwnproto_proto_msgTypes[12].OneofWrappers = []interface{}{ + file_unknownproto_proto_msgTypes[12].OneofWrappers = []interface{}{ (*TestVersion2_E)(nil), (*TestVersion2_F)(nil), } - file_unknonwnproto_proto_msgTypes[13].OneofWrappers = []interface{}{ + file_unknownproto_proto_msgTypes[13].OneofWrappers = []interface{}{ (*TestVersion3_E)(nil), (*TestVersion3_F)(nil), } - file_unknonwnproto_proto_msgTypes[14].OneofWrappers = []interface{}{ + file_unknownproto_proto_msgTypes[14].OneofWrappers = []interface{}{ (*TestVersion3LoneOneOfValue_E)(nil), } - file_unknonwnproto_proto_msgTypes[15].OneofWrappers = []interface{}{ + file_unknownproto_proto_msgTypes[15].OneofWrappers = []interface{}{ (*TestVersion3LoneNesting_F)(nil), } - file_unknonwnproto_proto_msgTypes[16].OneofWrappers = []interface{}{ + file_unknownproto_proto_msgTypes[16].OneofWrappers = []interface{}{ (*TestVersion4LoneNesting_F)(nil), } - file_unknonwnproto_proto_msgTypes[17].OneofWrappers = []interface{}{ + file_unknownproto_proto_msgTypes[17].OneofWrappers = []interface{}{ (*TestVersionFD1_E)(nil), (*TestVersionFD1_F)(nil), } - file_unknonwnproto_proto_msgTypes[18].OneofWrappers = []interface{}{ + file_unknownproto_proto_msgTypes[18].OneofWrappers = []interface{}{ (*TestVersionFD1WithExtraAny_E)(nil), (*TestVersionFD1WithExtraAny_F)(nil), } @@ -28021,19 +28016,19 @@ func file_unknonwnproto_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_unknonwnproto_proto_rawDesc, + RawDescriptor: file_unknownproto_proto_rawDesc, NumEnums: 1, NumMessages: 33, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_unknonwnproto_proto_goTypes, - DependencyIndexes: file_unknonwnproto_proto_depIdxs, - EnumInfos: file_unknonwnproto_proto_enumTypes, - MessageInfos: file_unknonwnproto_proto_msgTypes, + GoTypes: file_unknownproto_proto_goTypes, + DependencyIndexes: file_unknownproto_proto_depIdxs, + EnumInfos: file_unknownproto_proto_enumTypes, + MessageInfos: file_unknownproto_proto_msgTypes, }.Build() - File_unknonwnproto_proto = out.File - file_unknonwnproto_proto_rawDesc = nil - file_unknonwnproto_proto_goTypes = nil - file_unknonwnproto_proto_depIdxs = nil + File_unknownproto_proto = out.File + file_unknownproto_proto_rawDesc = nil + file_unknownproto_proto_goTypes = nil + file_unknownproto_proto_depIdxs = nil } diff --git a/x/tx/signing/aminojson/aminojson.go b/x/tx/signing/aminojson/aminojson.go new file mode 100644 index 0000000000..7b1625f33c --- /dev/null +++ b/x/tx/signing/aminojson/aminojson.go @@ -0,0 +1,132 @@ +package aminojson + +import ( + "context" + "encoding/json" + "fmt" + + "google.golang.org/protobuf/reflect/protodesc" + "google.golang.org/protobuf/reflect/protoregistry" + + signingv1beta1 "cosmossdk.io/api/cosmos/tx/signing/v1beta1" + "cosmossdk.io/x/tx/decode" + "cosmossdk.io/x/tx/signing" + "cosmossdk.io/x/tx/signing/aminojson/internal/aminojsonpb" +) + +// SignModeHandler implements the SIGN_MODE_LEGACY_AMINO_JSON signing mode. +type SignModeHandler struct { + fileResolver protodesc.Resolver + typeResolver protoregistry.MessageTypeResolver + encoder Encoder +} + +// SignModeHandlerOptions are the options for the SignModeHandler. +type SignModeHandlerOptions struct { + FileResolver protodesc.Resolver + TypeResolver protoregistry.MessageTypeResolver + Encoder *Encoder +} + +// NewSignModeHandler returns a new SignModeHandler. +func NewSignModeHandler(options SignModeHandlerOptions) *SignModeHandler { + h := &SignModeHandler{} + if options.FileResolver == nil { + h.fileResolver = protoregistry.GlobalFiles + } else { + h.fileResolver = options.FileResolver + } + if options.TypeResolver == nil { + h.typeResolver = protoregistry.GlobalTypes + } else { + h.typeResolver = options.TypeResolver + } + if options.Encoder == nil { + h.encoder = NewAminoJSON() + } else { + h.encoder = *options.Encoder + } + return h +} + +// Mode implements the Mode method of the SignModeHandler interface. +func (h SignModeHandler) Mode() signingv1beta1.SignMode { + return signingv1beta1.SignMode_SIGN_MODE_LEGACY_AMINO_JSON +} + +// GetSignBytes implements the GetSignBytes method of the SignModeHandler interface. +func (h SignModeHandler) GetSignBytes(_ context.Context, signerData signing.SignerData, txData signing.TxData) ([]byte, error) { + body := txData.Body + _, err := decode.RejectUnknownFields( + txData.BodyBytes, body.ProtoReflect().Descriptor(), false, h.fileResolver) + if err != nil { + return nil, err + } + + if (len(body.ExtensionOptions) > 0) || (len(body.NonCriticalExtensionOptions) > 0) { + return nil, fmt.Errorf("%s does not support protobuf extension options: invalid request", h.Mode()) + } + + if signerData.Address == "" { + return nil, fmt.Errorf("got empty address in %s handler: invalid request", h.Mode()) + } + + tip := txData.AuthInfo.Tip + if tip != nil && tip.Tipper == "" { + return nil, fmt.Errorf("tipper cannot be empty") + } + isTipper := tip != nil && tip.Tipper == signerData.Address + + // We set a convention that if the tipper signs with LEGACY_AMINO_JSON, then + // they sign over empty fees and 0 gas. + var fee *aminojsonpb.AminoSignFee + if isTipper { + fee = &aminojsonpb.AminoSignFee{ + Amount: nil, + Gas: 0, + } + } else { + f := txData.AuthInfo.Fee + if f == nil { + return nil, fmt.Errorf("fee cannot be nil when tipper is not signer") + } + fee = &aminojsonpb.AminoSignFee{ + Amount: f.Amount, + Gas: f.GasLimit, + Payer: f.Payer, + Granter: f.Granter, + } + } + + signDoc := &aminojsonpb.AminoSignDoc{ + AccountNumber: signerData.AccountNumber, + TimeoutHeight: body.TimeoutHeight, + ChainId: signerData.ChainId, + Sequence: signerData.Sequence, + Memo: body.Memo, + Msgs: txData.Body.Messages, + Fee: fee, + } + + bz, err := h.encoder.Marshal(signDoc) + if err != nil { + return nil, err + } + return sortJSON(bz) +} + +// sortJSON sorts the JSON keys of the given JSON encoded byte slice. +func sortJSON(toSortJSON []byte) ([]byte, error) { + var c interface{} + err := json.Unmarshal(toSortJSON, &c) + if err != nil { + return nil, err + } + js, err := json.Marshal(c) + if err != nil { + return nil, err + } + return js, nil +} + +var _ signing.SignModeHandler = (*SignModeHandler)(nil) diff --git a/x/tx/signing/aminojson/aminojson_test.go b/x/tx/signing/aminojson/aminojson_test.go new file mode 100644 index 0000000000..723657d9e4 --- /dev/null +++ b/x/tx/signing/aminojson/aminojson_test.go @@ -0,0 +1,117 @@ +package aminojson_test + +import ( + "context" + "testing" + + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/reflect/protoregistry" + + bankv1beta1 "cosmossdk.io/api/cosmos/bank/v1beta1" + basev1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" + txv1beta1 "cosmossdk.io/api/cosmos/tx/v1beta1" + "cosmossdk.io/x/tx/signing/aminojson" + "cosmossdk.io/x/tx/signing/testutil" +) + +func TestAminoJsonSignMode(t *testing.T) { + fee := &txv1beta1.Fee{ + Amount: []*basev1beta1.Coin{{Denom: "uatom", Amount: "1000"}}, + } + handlerOptions := testutil.HandlerArgumentOptions{ + ChainId: "test-chain", + Memo: "sometestmemo", + Tip: &txv1beta1.Tip{Tipper: "tipper", Amount: []*basev1beta1.Coin{{Denom: "Tip-token", Amount: "10"}}}, + Msg: &bankv1beta1.MsgSend{ + FromAddress: "foo", + ToAddress: "bar", + Amount: []*basev1beta1.Coin{{Denom: "demon", Amount: "100"}}, + }, + AccNum: 1, + AccSeq: 2, + SignerAddress: "signerAddress", + Fee: fee, + } + + testCases := []struct { + name string + malleate func(opts testutil.HandlerArgumentOptions) testutil.HandlerArgumentOptions + error string + }{ + { + name: "happy path", + malleate: func(opts testutil.HandlerArgumentOptions) testutil.HandlerArgumentOptions { + return opts + }, + }, + { + name: "empty signer", + malleate: func(opts testutil.HandlerArgumentOptions) testutil.HandlerArgumentOptions { + opts.SignerAddress = "" + return opts + }, + error: "got empty address in SIGN_MODE_LEGACY_AMINO_JSON handler: invalid request", + }, + { + name: "nil tip", + malleate: func(opts testutil.HandlerArgumentOptions) testutil.HandlerArgumentOptions { + opts.Tip = nil + return opts + }, + }, + { + name: "empty tipper", + malleate: func(opts testutil.HandlerArgumentOptions) testutil.HandlerArgumentOptions { + opts.Tip.Tipper = "" + return opts + }, + error: "tipper cannot be empty", + }, + { + name: "nil fee", + malleate: func(opts testutil.HandlerArgumentOptions) testutil.HandlerArgumentOptions { + opts.Tip.Tipper = "tipper" + opts.Fee = nil + return opts + }, + error: "fee cannot be nil", + }, + { + name: "tipper is signer", + malleate: func(opts testutil.HandlerArgumentOptions) testutil.HandlerArgumentOptions { + opts.Tip.Tipper = opts.SignerAddress + return opts + }, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + opts := tc.malleate(handlerOptions) + signerData, txData, err := testutil.MakeHandlerArguments(opts) + require.NoError(t, err) + + handler := aminojson.NewSignModeHandler(aminojson.SignModeHandlerOptions{}) + _, err = handler.GetSignBytes(context.Background(), signerData, txData) + if tc.error != "" { + require.Error(t, err) + require.Contains(t, err.Error(), tc.error) + return + } + require.NoError(t, err) + }) + } + +} + +func TestNewSignModeHandler(t *testing.T) { + handler := aminojson.NewSignModeHandler(aminojson.SignModeHandlerOptions{}) + require.NotNil(t, handler) + aj := aminojson.NewAminoJSON() + handler = aminojson.NewSignModeHandler(aminojson.SignModeHandlerOptions{ + FileResolver: protoregistry.GlobalFiles, + TypeResolver: protoregistry.GlobalTypes, + Encoder: &aj, + }) + require.NotNil(t, handler) +} diff --git a/x/tx/signing/aminojson/internal/Makefile b/x/tx/signing/aminojson/internal/Makefile index cb1280a5c1..6eb4420b60 100644 --- a/x/tx/signing/aminojson/internal/Makefile +++ b/x/tx/signing/aminojson/internal/Makefile @@ -1,3 +1,3 @@ codegen: @echo "Generating proto files" - buf generate \ No newline at end of file + @buf generate \ No newline at end of file diff --git a/x/tx/signing/aminojson/internal/aminojsonpb/aminojson.proto b/x/tx/signing/aminojson/internal/aminojsonpb/aminojson.proto new file mode 100644 index 0000000000..f65dab93f0 --- /dev/null +++ b/x/tx/signing/aminojson/internal/aminojsonpb/aminojson.proto @@ -0,0 +1,30 @@ +syntax = "proto3"; + +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "google/protobuf/any.proto"; +import "cosmos/tx/v1beta1/tx.proto"; + +// AminoSignFee is the legacy amino json sign mode compatible version of txv1beta1.Fee, and differs from that message +// by the name of the Gas field (GasLimit in txv1beta.Fee). +// Note: this is only used for signing, see x/tx/signing/aminojson.go for more details. +message AminoSignFee { + repeated cosmos.base.v1beta1.Coin amount = 1 [(amino.dont_omitempty) = true, (amino.encoding) = "legacy_coins"]; + uint64 gas = 2 [(amino.dont_omitempty) = true]; + string payer = 3; + string granter = 4; +} + +// AminoSignDoc is a message container used to generate the SIGN_MODE_LEGACY_AMINO_JSON sign bytes with proto3 API. +// Note: This is only used for generated JSON in signing, see x/tx/signing/aminojson.go for more details. +message AminoSignDoc { + uint64 account_number = 1; + uint64 sequence = 2; + uint64 timeout_height = 3; + string chain_id = 4; + string memo = 5; + AminoSignFee fee = 6; + repeated google.protobuf.Any msgs = 7; + cosmos.tx.v1beta1.Tip tip = 8; +} \ No newline at end of file diff --git a/x/tx/signing/aminojson/internal/aminojsonpb/aminojson.pulsar.go b/x/tx/signing/aminojson/internal/aminojsonpb/aminojson.pulsar.go new file mode 100644 index 0000000000..370dc738b3 --- /dev/null +++ b/x/tx/signing/aminojson/internal/aminojsonpb/aminojson.pulsar.go @@ -0,0 +1,1912 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package aminojsonpb + +import ( + _ "cosmossdk.io/api/amino" + v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" + v1beta11 "cosmossdk.io/api/cosmos/tx/v1beta1" + fmt "fmt" + _ "github.com/cosmos/cosmos-proto" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_AminoSignFee_1_list)(nil) + +type _AminoSignFee_1_list struct { + list *[]*v1beta1.Coin +} + +func (x *_AminoSignFee_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_AminoSignFee_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_AminoSignFee_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin) + (*x.list)[i] = concreteValue +} + +func (x *_AminoSignFee_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*v1beta1.Coin) + *x.list = append(*x.list, concreteValue) +} + +func (x *_AminoSignFee_1_list) AppendMutable() protoreflect.Value { + v := new(v1beta1.Coin) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_AminoSignFee_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_AminoSignFee_1_list) NewElement() protoreflect.Value { + v := new(v1beta1.Coin) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_AminoSignFee_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_AminoSignFee protoreflect.MessageDescriptor + fd_AminoSignFee_amount protoreflect.FieldDescriptor + fd_AminoSignFee_gas protoreflect.FieldDescriptor + fd_AminoSignFee_payer protoreflect.FieldDescriptor + fd_AminoSignFee_granter protoreflect.FieldDescriptor +) + +func init() { + file_aminojsonpb_aminojson_proto_init() + md_AminoSignFee = File_aminojsonpb_aminojson_proto.Messages().ByName("AminoSignFee") + fd_AminoSignFee_amount = md_AminoSignFee.Fields().ByName("amount") + fd_AminoSignFee_gas = md_AminoSignFee.Fields().ByName("gas") + fd_AminoSignFee_payer = md_AminoSignFee.Fields().ByName("payer") + fd_AminoSignFee_granter = md_AminoSignFee.Fields().ByName("granter") +} + +var _ protoreflect.Message = (*fastReflection_AminoSignFee)(nil) + +type fastReflection_AminoSignFee AminoSignFee + +func (x *AminoSignFee) ProtoReflect() protoreflect.Message { + return (*fastReflection_AminoSignFee)(x) +} + +func (x *AminoSignFee) slowProtoReflect() protoreflect.Message { + mi := &file_aminojsonpb_aminojson_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_AminoSignFee_messageType fastReflection_AminoSignFee_messageType +var _ protoreflect.MessageType = fastReflection_AminoSignFee_messageType{} + +type fastReflection_AminoSignFee_messageType struct{} + +func (x fastReflection_AminoSignFee_messageType) Zero() protoreflect.Message { + return (*fastReflection_AminoSignFee)(nil) +} +func (x fastReflection_AminoSignFee_messageType) New() protoreflect.Message { + return new(fastReflection_AminoSignFee) +} +func (x fastReflection_AminoSignFee_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_AminoSignFee +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_AminoSignFee) Descriptor() protoreflect.MessageDescriptor { + return md_AminoSignFee +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_AminoSignFee) Type() protoreflect.MessageType { + return _fastReflection_AminoSignFee_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_AminoSignFee) New() protoreflect.Message { + return new(fastReflection_AminoSignFee) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_AminoSignFee) Interface() protoreflect.ProtoMessage { + return (*AminoSignFee)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_AminoSignFee) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Amount) != 0 { + value := protoreflect.ValueOfList(&_AminoSignFee_1_list{list: &x.Amount}) + if !f(fd_AminoSignFee_amount, value) { + return + } + } + if x.Gas != uint64(0) { + value := protoreflect.ValueOfUint64(x.Gas) + if !f(fd_AminoSignFee_gas, value) { + return + } + } + if x.Payer != "" { + value := protoreflect.ValueOfString(x.Payer) + if !f(fd_AminoSignFee_payer, value) { + return + } + } + if x.Granter != "" { + value := protoreflect.ValueOfString(x.Granter) + if !f(fd_AminoSignFee_granter, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_AminoSignFee) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "AminoSignFee.amount": + return len(x.Amount) != 0 + case "AminoSignFee.gas": + return x.Gas != uint64(0) + case "AminoSignFee.payer": + return x.Payer != "" + case "AminoSignFee.granter": + return x.Granter != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignFee")) + } + panic(fmt.Errorf("message AminoSignFee does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AminoSignFee) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "AminoSignFee.amount": + x.Amount = nil + case "AminoSignFee.gas": + x.Gas = uint64(0) + case "AminoSignFee.payer": + x.Payer = "" + case "AminoSignFee.granter": + x.Granter = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignFee")) + } + panic(fmt.Errorf("message AminoSignFee does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_AminoSignFee) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "AminoSignFee.amount": + if len(x.Amount) == 0 { + return protoreflect.ValueOfList(&_AminoSignFee_1_list{}) + } + listValue := &_AminoSignFee_1_list{list: &x.Amount} + return protoreflect.ValueOfList(listValue) + case "AminoSignFee.gas": + value := x.Gas + return protoreflect.ValueOfUint64(value) + case "AminoSignFee.payer": + value := x.Payer + return protoreflect.ValueOfString(value) + case "AminoSignFee.granter": + value := x.Granter + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignFee")) + } + panic(fmt.Errorf("message AminoSignFee does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AminoSignFee) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "AminoSignFee.amount": + lv := value.List() + clv := lv.(*_AminoSignFee_1_list) + x.Amount = *clv.list + case "AminoSignFee.gas": + x.Gas = value.Uint() + case "AminoSignFee.payer": + x.Payer = value.Interface().(string) + case "AminoSignFee.granter": + x.Granter = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignFee")) + } + panic(fmt.Errorf("message AminoSignFee does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AminoSignFee) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "AminoSignFee.amount": + if x.Amount == nil { + x.Amount = []*v1beta1.Coin{} + } + value := &_AminoSignFee_1_list{list: &x.Amount} + return protoreflect.ValueOfList(value) + case "AminoSignFee.gas": + panic(fmt.Errorf("field gas of message AminoSignFee is not mutable")) + case "AminoSignFee.payer": + panic(fmt.Errorf("field payer of message AminoSignFee is not mutable")) + case "AminoSignFee.granter": + panic(fmt.Errorf("field granter of message AminoSignFee is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignFee")) + } + panic(fmt.Errorf("message AminoSignFee does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_AminoSignFee) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "AminoSignFee.amount": + list := []*v1beta1.Coin{} + return protoreflect.ValueOfList(&_AminoSignFee_1_list{list: &list}) + case "AminoSignFee.gas": + return protoreflect.ValueOfUint64(uint64(0)) + case "AminoSignFee.payer": + return protoreflect.ValueOfString("") + case "AminoSignFee.granter": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignFee")) + } + panic(fmt.Errorf("message AminoSignFee does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_AminoSignFee) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in AminoSignFee", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_AminoSignFee) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AminoSignFee) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_AminoSignFee) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_AminoSignFee) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*AminoSignFee) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.Amount) > 0 { + for _, e := range x.Amount { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.Gas != 0 { + n += 1 + runtime.Sov(uint64(x.Gas)) + } + l = len(x.Payer) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Granter) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*AminoSignFee) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Granter) > 0 { + i -= len(x.Granter) + copy(dAtA[i:], x.Granter) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Granter))) + i-- + dAtA[i] = 0x22 + } + if len(x.Payer) > 0 { + i -= len(x.Payer) + copy(dAtA[i:], x.Payer) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Payer))) + i-- + dAtA[i] = 0x1a + } + if x.Gas != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Gas)) + i-- + dAtA[i] = 0x10 + } + if len(x.Amount) > 0 { + for iNdEx := len(x.Amount) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Amount[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*AminoSignFee) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AminoSignFee: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AminoSignFee: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Amount = append(x.Amount, &v1beta1.Coin{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Amount[len(x.Amount)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Gas", wireType) + } + x.Gas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Gas |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Payer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Payer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Granter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_AminoSignDoc_7_list)(nil) + +type _AminoSignDoc_7_list struct { + list *[]*anypb.Any +} + +func (x *_AminoSignDoc_7_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_AminoSignDoc_7_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_AminoSignDoc_7_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*anypb.Any) + (*x.list)[i] = concreteValue +} + +func (x *_AminoSignDoc_7_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*anypb.Any) + *x.list = append(*x.list, concreteValue) +} + +func (x *_AminoSignDoc_7_list) AppendMutable() protoreflect.Value { + v := new(anypb.Any) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_AminoSignDoc_7_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_AminoSignDoc_7_list) NewElement() protoreflect.Value { + v := new(anypb.Any) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_AminoSignDoc_7_list) IsValid() bool { + return x.list != nil +} + +var ( + md_AminoSignDoc protoreflect.MessageDescriptor + fd_AminoSignDoc_account_number protoreflect.FieldDescriptor + fd_AminoSignDoc_sequence protoreflect.FieldDescriptor + fd_AminoSignDoc_timeout_height protoreflect.FieldDescriptor + fd_AminoSignDoc_chain_id protoreflect.FieldDescriptor + fd_AminoSignDoc_memo protoreflect.FieldDescriptor + fd_AminoSignDoc_fee protoreflect.FieldDescriptor + fd_AminoSignDoc_msgs protoreflect.FieldDescriptor + fd_AminoSignDoc_tip protoreflect.FieldDescriptor +) + +func init() { + file_aminojsonpb_aminojson_proto_init() + md_AminoSignDoc = File_aminojsonpb_aminojson_proto.Messages().ByName("AminoSignDoc") + fd_AminoSignDoc_account_number = md_AminoSignDoc.Fields().ByName("account_number") + fd_AminoSignDoc_sequence = md_AminoSignDoc.Fields().ByName("sequence") + fd_AminoSignDoc_timeout_height = md_AminoSignDoc.Fields().ByName("timeout_height") + fd_AminoSignDoc_chain_id = md_AminoSignDoc.Fields().ByName("chain_id") + fd_AminoSignDoc_memo = md_AminoSignDoc.Fields().ByName("memo") + fd_AminoSignDoc_fee = md_AminoSignDoc.Fields().ByName("fee") + fd_AminoSignDoc_msgs = md_AminoSignDoc.Fields().ByName("msgs") + fd_AminoSignDoc_tip = md_AminoSignDoc.Fields().ByName("tip") +} + +var _ protoreflect.Message = (*fastReflection_AminoSignDoc)(nil) + +type fastReflection_AminoSignDoc AminoSignDoc + +func (x *AminoSignDoc) ProtoReflect() protoreflect.Message { + return (*fastReflection_AminoSignDoc)(x) +} + +func (x *AminoSignDoc) slowProtoReflect() protoreflect.Message { + mi := &file_aminojsonpb_aminojson_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_AminoSignDoc_messageType fastReflection_AminoSignDoc_messageType +var _ protoreflect.MessageType = fastReflection_AminoSignDoc_messageType{} + +type fastReflection_AminoSignDoc_messageType struct{} + +func (x fastReflection_AminoSignDoc_messageType) Zero() protoreflect.Message { + return (*fastReflection_AminoSignDoc)(nil) +} +func (x fastReflection_AminoSignDoc_messageType) New() protoreflect.Message { + return new(fastReflection_AminoSignDoc) +} +func (x fastReflection_AminoSignDoc_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_AminoSignDoc +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_AminoSignDoc) Descriptor() protoreflect.MessageDescriptor { + return md_AminoSignDoc +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_AminoSignDoc) Type() protoreflect.MessageType { + return _fastReflection_AminoSignDoc_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_AminoSignDoc) New() protoreflect.Message { + return new(fastReflection_AminoSignDoc) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_AminoSignDoc) Interface() protoreflect.ProtoMessage { + return (*AminoSignDoc)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_AminoSignDoc) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.AccountNumber != uint64(0) { + value := protoreflect.ValueOfUint64(x.AccountNumber) + if !f(fd_AminoSignDoc_account_number, value) { + return + } + } + if x.Sequence != uint64(0) { + value := protoreflect.ValueOfUint64(x.Sequence) + if !f(fd_AminoSignDoc_sequence, value) { + return + } + } + if x.TimeoutHeight != uint64(0) { + value := protoreflect.ValueOfUint64(x.TimeoutHeight) + if !f(fd_AminoSignDoc_timeout_height, value) { + return + } + } + if x.ChainId != "" { + value := protoreflect.ValueOfString(x.ChainId) + if !f(fd_AminoSignDoc_chain_id, value) { + return + } + } + if x.Memo != "" { + value := protoreflect.ValueOfString(x.Memo) + if !f(fd_AminoSignDoc_memo, value) { + return + } + } + if x.Fee != nil { + value := protoreflect.ValueOfMessage(x.Fee.ProtoReflect()) + if !f(fd_AminoSignDoc_fee, value) { + return + } + } + if len(x.Msgs) != 0 { + value := protoreflect.ValueOfList(&_AminoSignDoc_7_list{list: &x.Msgs}) + if !f(fd_AminoSignDoc_msgs, value) { + return + } + } + if x.Tip != nil { + value := protoreflect.ValueOfMessage(x.Tip.ProtoReflect()) + if !f(fd_AminoSignDoc_tip, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_AminoSignDoc) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "AminoSignDoc.account_number": + return x.AccountNumber != uint64(0) + case "AminoSignDoc.sequence": + return x.Sequence != uint64(0) + case "AminoSignDoc.timeout_height": + return x.TimeoutHeight != uint64(0) + case "AminoSignDoc.chain_id": + return x.ChainId != "" + case "AminoSignDoc.memo": + return x.Memo != "" + case "AminoSignDoc.fee": + return x.Fee != nil + case "AminoSignDoc.msgs": + return len(x.Msgs) != 0 + case "AminoSignDoc.tip": + return x.Tip != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignDoc")) + } + panic(fmt.Errorf("message AminoSignDoc does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AminoSignDoc) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "AminoSignDoc.account_number": + x.AccountNumber = uint64(0) + case "AminoSignDoc.sequence": + x.Sequence = uint64(0) + case "AminoSignDoc.timeout_height": + x.TimeoutHeight = uint64(0) + case "AminoSignDoc.chain_id": + x.ChainId = "" + case "AminoSignDoc.memo": + x.Memo = "" + case "AminoSignDoc.fee": + x.Fee = nil + case "AminoSignDoc.msgs": + x.Msgs = nil + case "AminoSignDoc.tip": + x.Tip = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignDoc")) + } + panic(fmt.Errorf("message AminoSignDoc does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_AminoSignDoc) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "AminoSignDoc.account_number": + value := x.AccountNumber + return protoreflect.ValueOfUint64(value) + case "AminoSignDoc.sequence": + value := x.Sequence + return protoreflect.ValueOfUint64(value) + case "AminoSignDoc.timeout_height": + value := x.TimeoutHeight + return protoreflect.ValueOfUint64(value) + case "AminoSignDoc.chain_id": + value := x.ChainId + return protoreflect.ValueOfString(value) + case "AminoSignDoc.memo": + value := x.Memo + return protoreflect.ValueOfString(value) + case "AminoSignDoc.fee": + value := x.Fee + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "AminoSignDoc.msgs": + if len(x.Msgs) == 0 { + return protoreflect.ValueOfList(&_AminoSignDoc_7_list{}) + } + listValue := &_AminoSignDoc_7_list{list: &x.Msgs} + return protoreflect.ValueOfList(listValue) + case "AminoSignDoc.tip": + value := x.Tip + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignDoc")) + } + panic(fmt.Errorf("message AminoSignDoc does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AminoSignDoc) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "AminoSignDoc.account_number": + x.AccountNumber = value.Uint() + case "AminoSignDoc.sequence": + x.Sequence = value.Uint() + case "AminoSignDoc.timeout_height": + x.TimeoutHeight = value.Uint() + case "AminoSignDoc.chain_id": + x.ChainId = value.Interface().(string) + case "AminoSignDoc.memo": + x.Memo = value.Interface().(string) + case "AminoSignDoc.fee": + x.Fee = value.Message().Interface().(*AminoSignFee) + case "AminoSignDoc.msgs": + lv := value.List() + clv := lv.(*_AminoSignDoc_7_list) + x.Msgs = *clv.list + case "AminoSignDoc.tip": + x.Tip = value.Message().Interface().(*v1beta11.Tip) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignDoc")) + } + panic(fmt.Errorf("message AminoSignDoc does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AminoSignDoc) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "AminoSignDoc.fee": + if x.Fee == nil { + x.Fee = new(AminoSignFee) + } + return protoreflect.ValueOfMessage(x.Fee.ProtoReflect()) + case "AminoSignDoc.msgs": + if x.Msgs == nil { + x.Msgs = []*anypb.Any{} + } + value := &_AminoSignDoc_7_list{list: &x.Msgs} + return protoreflect.ValueOfList(value) + case "AminoSignDoc.tip": + if x.Tip == nil { + x.Tip = new(v1beta11.Tip) + } + return protoreflect.ValueOfMessage(x.Tip.ProtoReflect()) + case "AminoSignDoc.account_number": + panic(fmt.Errorf("field account_number of message AminoSignDoc is not mutable")) + case "AminoSignDoc.sequence": + panic(fmt.Errorf("field sequence of message AminoSignDoc is not mutable")) + case "AminoSignDoc.timeout_height": + panic(fmt.Errorf("field timeout_height of message AminoSignDoc is not mutable")) + case "AminoSignDoc.chain_id": + panic(fmt.Errorf("field chain_id of message AminoSignDoc is not mutable")) + case "AminoSignDoc.memo": + panic(fmt.Errorf("field memo of message AminoSignDoc is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignDoc")) + } + panic(fmt.Errorf("message AminoSignDoc does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_AminoSignDoc) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "AminoSignDoc.account_number": + return protoreflect.ValueOfUint64(uint64(0)) + case "AminoSignDoc.sequence": + return protoreflect.ValueOfUint64(uint64(0)) + case "AminoSignDoc.timeout_height": + return protoreflect.ValueOfUint64(uint64(0)) + case "AminoSignDoc.chain_id": + return protoreflect.ValueOfString("") + case "AminoSignDoc.memo": + return protoreflect.ValueOfString("") + case "AminoSignDoc.fee": + m := new(AminoSignFee) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "AminoSignDoc.msgs": + list := []*anypb.Any{} + return protoreflect.ValueOfList(&_AminoSignDoc_7_list{list: &list}) + case "AminoSignDoc.tip": + m := new(v1beta11.Tip) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: AminoSignDoc")) + } + panic(fmt.Errorf("message AminoSignDoc does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_AminoSignDoc) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in AminoSignDoc", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_AminoSignDoc) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_AminoSignDoc) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_AminoSignDoc) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_AminoSignDoc) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*AminoSignDoc) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.AccountNumber != 0 { + n += 1 + runtime.Sov(uint64(x.AccountNumber)) + } + if x.Sequence != 0 { + n += 1 + runtime.Sov(uint64(x.Sequence)) + } + if x.TimeoutHeight != 0 { + n += 1 + runtime.Sov(uint64(x.TimeoutHeight)) + } + l = len(x.ChainId) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Memo) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Fee != nil { + l = options.Size(x.Fee) + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.Msgs) > 0 { + for _, e := range x.Msgs { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.Tip != nil { + l = options.Size(x.Tip) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*AminoSignDoc) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Tip != nil { + encoded, err := options.Marshal(x.Tip) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x42 + } + if len(x.Msgs) > 0 { + for iNdEx := len(x.Msgs) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Msgs[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x3a + } + } + if x.Fee != nil { + encoded, err := options.Marshal(x.Fee) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x32 + } + if len(x.Memo) > 0 { + i -= len(x.Memo) + copy(dAtA[i:], x.Memo) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Memo))) + i-- + dAtA[i] = 0x2a + } + if len(x.ChainId) > 0 { + i -= len(x.ChainId) + copy(dAtA[i:], x.ChainId) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ChainId))) + i-- + dAtA[i] = 0x22 + } + if x.TimeoutHeight != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.TimeoutHeight)) + i-- + dAtA[i] = 0x18 + } + if x.Sequence != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Sequence)) + i-- + dAtA[i] = 0x10 + } + if x.AccountNumber != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.AccountNumber)) + i-- + dAtA[i] = 0x8 + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*AminoSignDoc) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AminoSignDoc: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: AminoSignDoc: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AccountNumber", wireType) + } + x.AccountNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.AccountNumber |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sequence", wireType) + } + x.Sequence = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Sequence |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TimeoutHeight", wireType) + } + x.TimeoutHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.TimeoutHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ChainId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ChainId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Memo", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Memo = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Fee == nil { + x.Fee = &AminoSignFee{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Fee); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Msgs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Msgs = append(x.Msgs, &anypb.Any{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Msgs[len(x.Msgs)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Tip", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Tip == nil { + x.Tip = &v1beta11.Tip{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Tip); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: aminojsonpb/aminojson.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// AminoSignFee is the legacy amino json sign mode compatible version of txv1beta1.Fee, and differs from that message +// by the name of the Gas field (GasLimit in txv1beta.Fee). +// Note: this is only used for signing, see x/tx/signing/aminojson.go for more details. +type AminoSignFee struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount []*v1beta1.Coin `protobuf:"bytes,1,rep,name=amount,proto3" json:"amount,omitempty"` + Gas uint64 `protobuf:"varint,2,opt,name=gas,proto3" json:"gas,omitempty"` + Payer string `protobuf:"bytes,3,opt,name=payer,proto3" json:"payer,omitempty"` + Granter string `protobuf:"bytes,4,opt,name=granter,proto3" json:"granter,omitempty"` +} + +func (x *AminoSignFee) Reset() { + *x = AminoSignFee{} + if protoimpl.UnsafeEnabled { + mi := &file_aminojsonpb_aminojson_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AminoSignFee) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AminoSignFee) ProtoMessage() {} + +// Deprecated: Use AminoSignFee.ProtoReflect.Descriptor instead. +func (*AminoSignFee) Descriptor() ([]byte, []int) { + return file_aminojsonpb_aminojson_proto_rawDescGZIP(), []int{0} +} + +func (x *AminoSignFee) GetAmount() []*v1beta1.Coin { + if x != nil { + return x.Amount + } + return nil +} + +func (x *AminoSignFee) GetGas() uint64 { + if x != nil { + return x.Gas + } + return 0 +} + +func (x *AminoSignFee) GetPayer() string { + if x != nil { + return x.Payer + } + return "" +} + +func (x *AminoSignFee) GetGranter() string { + if x != nil { + return x.Granter + } + return "" +} + +// AminoSignDoc is a message container used to generate the SIGN_MODE_LEGACY_AMINO_JSON sign bytes with proto3 API. +// Note: This is only used for generated JSON in signing, see x/tx/signing/aminojson.go for more details. +type AminoSignDoc struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountNumber uint64 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + Sequence uint64 `protobuf:"varint,2,opt,name=sequence,proto3" json:"sequence,omitempty"` + TimeoutHeight uint64 `protobuf:"varint,3,opt,name=timeout_height,json=timeoutHeight,proto3" json:"timeout_height,omitempty"` + ChainId string `protobuf:"bytes,4,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + Memo string `protobuf:"bytes,5,opt,name=memo,proto3" json:"memo,omitempty"` + Fee *AminoSignFee `protobuf:"bytes,6,opt,name=fee,proto3" json:"fee,omitempty"` + Msgs []*anypb.Any `protobuf:"bytes,7,rep,name=msgs,proto3" json:"msgs,omitempty"` + Tip *v1beta11.Tip `protobuf:"bytes,8,opt,name=tip,proto3" json:"tip,omitempty"` +} + +func (x *AminoSignDoc) Reset() { + *x = AminoSignDoc{} + if protoimpl.UnsafeEnabled { + mi := &file_aminojsonpb_aminojson_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AminoSignDoc) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AminoSignDoc) ProtoMessage() {} + +// Deprecated: Use AminoSignDoc.ProtoReflect.Descriptor instead. +func (*AminoSignDoc) Descriptor() ([]byte, []int) { + return file_aminojsonpb_aminojson_proto_rawDescGZIP(), []int{1} +} + +func (x *AminoSignDoc) GetAccountNumber() uint64 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *AminoSignDoc) GetSequence() uint64 { + if x != nil { + return x.Sequence + } + return 0 +} + +func (x *AminoSignDoc) GetTimeoutHeight() uint64 { + if x != nil { + return x.TimeoutHeight + } + return 0 +} + +func (x *AminoSignDoc) GetChainId() string { + if x != nil { + return x.ChainId + } + return "" +} + +func (x *AminoSignDoc) GetMemo() string { + if x != nil { + return x.Memo + } + return "" +} + +func (x *AminoSignDoc) GetFee() *AminoSignFee { + if x != nil { + return x.Fee + } + return nil +} + +func (x *AminoSignDoc) GetMsgs() []*anypb.Any { + if x != nil { + return x.Msgs + } + return nil +} + +func (x *AminoSignDoc) GetTip() *v1beta11.Tip { + if x != nil { + return x.Tip + } + return nil +} + +var File_aminojsonpb_aminojson_proto protoreflect.FileDescriptor + +var file_aminojsonpb_aminojson_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x6a, 0x73, 0x6f, 0x6e, 0x70, 0x62, 0x2f, 0x61, 0x6d, + 0x69, 0x6e, 0x6f, 0x6a, 0x73, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, + 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x74, + 0x78, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x74, 0x78, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x53, 0x69, 0x67, 0x6e, + 0x46, 0x65, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x16, + 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, + 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, + 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x05, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x79, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x9c, 0x02, 0x0a, 0x0c, 0x41, 0x6d, 0x69, 0x6e, + 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x44, 0x6f, 0x63, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x65, 0x6d, + 0x6f, 0x12, 0x1f, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x53, 0x69, 0x67, 0x6e, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, + 0x65, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x03, + 0x74, 0x69, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x74, 0x78, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x69, + 0x70, 0x52, 0x03, 0x74, 0x69, 0x70, 0x42, 0x4b, 0x42, 0x0e, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x6a, + 0x73, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x78, 0x2f, 0x74, 0x78, 0x2f, 0x61, 0x6d, + 0x69, 0x6e, 0x6f, 0x6a, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x6a, 0x73, 0x6f, + 0x6e, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_aminojsonpb_aminojson_proto_rawDescOnce sync.Once + file_aminojsonpb_aminojson_proto_rawDescData = file_aminojsonpb_aminojson_proto_rawDesc +) + +func file_aminojsonpb_aminojson_proto_rawDescGZIP() []byte { + file_aminojsonpb_aminojson_proto_rawDescOnce.Do(func() { + file_aminojsonpb_aminojson_proto_rawDescData = protoimpl.X.CompressGZIP(file_aminojsonpb_aminojson_proto_rawDescData) + }) + return file_aminojsonpb_aminojson_proto_rawDescData +} + +var file_aminojsonpb_aminojson_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_aminojsonpb_aminojson_proto_goTypes = []interface{}{ + (*AminoSignFee)(nil), // 0: AminoSignFee + (*AminoSignDoc)(nil), // 1: AminoSignDoc + (*v1beta1.Coin)(nil), // 2: cosmos.base.v1beta1.Coin + (*anypb.Any)(nil), // 3: google.protobuf.Any + (*v1beta11.Tip)(nil), // 4: cosmos.tx.v1beta1.Tip +} +var file_aminojsonpb_aminojson_proto_depIdxs = []int32{ + 2, // 0: AminoSignFee.amount:type_name -> cosmos.base.v1beta1.Coin + 0, // 1: AminoSignDoc.fee:type_name -> AminoSignFee + 3, // 2: AminoSignDoc.msgs:type_name -> google.protobuf.Any + 4, // 3: AminoSignDoc.tip:type_name -> cosmos.tx.v1beta1.Tip + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_aminojsonpb_aminojson_proto_init() } +func file_aminojsonpb_aminojson_proto_init() { + if File_aminojsonpb_aminojson_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_aminojsonpb_aminojson_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AminoSignFee); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_aminojsonpb_aminojson_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AminoSignDoc); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_aminojsonpb_aminojson_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_aminojsonpb_aminojson_proto_goTypes, + DependencyIndexes: file_aminojsonpb_aminojson_proto_depIdxs, + MessageInfos: file_aminojsonpb_aminojson_proto_msgTypes, + }.Build() + File_aminojsonpb_aminojson_proto = out.File + file_aminojsonpb_aminojson_proto_rawDesc = nil + file_aminojsonpb_aminojson_proto_goTypes = nil + file_aminojsonpb_aminojson_proto_depIdxs = nil +} diff --git a/x/tx/signing/aminojson/internal/buf.lock b/x/tx/signing/aminojson/internal/buf.lock index 4dd297e431..88709c98ef 100644 --- a/x/tx/signing/aminojson/internal/buf.lock +++ b/x/tx/signing/aminojson/internal/buf.lock @@ -5,3 +5,7 @@ deps: owner: cosmos repository: cosmos-proto commit: 1935555c206d4afb9e94615dfd0fad31 + - remote: buf.build + owner: cosmos + repository: gogo-proto + commit: 34d970b699f84aa382f3c29773a60836 diff --git a/x/tx/signing/aminojson/internal/buf.yaml b/x/tx/signing/aminojson/internal/buf.yaml index 2016baa2a8..ab3dff3940 100644 --- a/x/tx/signing/aminojson/internal/buf.yaml +++ b/x/tx/signing/aminojson/internal/buf.yaml @@ -1,5 +1,6 @@ version: v1 deps: + - buf.build/cosmos/gogo-proto - buf.build/cosmos/cosmos-proto lint: use: diff --git a/x/tx/signing/std/handler_map.go b/x/tx/signing/std/handler_map.go index db889be2de..04447c9ccb 100644 --- a/x/tx/signing/std/handler_map.go +++ b/x/tx/signing/std/handler_map.go @@ -2,7 +2,9 @@ package std import ( "cosmossdk.io/x/tx/signing" + "cosmossdk.io/x/tx/signing/aminojson" "cosmossdk.io/x/tx/signing/direct" + "cosmossdk.io/x/tx/signing/direct_aux" "cosmossdk.io/x/tx/signing/textual" ) @@ -10,6 +12,10 @@ import ( type SignModeOptions struct { // Textual are options for SIGN_MODE_TEXTUAL Textual textual.SignModeOptions + // DirectAux are options for SIGN_MODE_DIRECT_AUX + DirectAux direct_aux.SignModeHandlerOptions + // AminoJSON are options for SIGN_MODE_LEGACY_AMINO_JSON + AminoJSON aminojson.SignModeHandlerOptions } // HandlerMap returns a sign mode handler map that Cosmos SDK apps can use out @@ -20,8 +26,17 @@ func (s SignModeOptions) HandlerMap() (*signing.HandlerMap, error) { return nil, err } + directAux, err := direct_aux.NewSignModeHandler(s.DirectAux) + if err != nil { + return nil, err + } + + aminoJSON := aminojson.NewSignModeHandler(s.AminoJSON) + return signing.NewHandlerMap( direct.SignModeHandler{}, txt, + directAux, + aminoJSON, ), nil } diff --git a/x/tx/signing/testutil/util.go b/x/tx/signing/testutil/util.go new file mode 100644 index 0000000000..5d9a0ffd60 --- /dev/null +++ b/x/tx/signing/testutil/util.go @@ -0,0 +1,90 @@ +package testutil + +import ( + "github.com/cosmos/cosmos-proto/anyutil" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/anypb" + + "cosmossdk.io/api/cosmos/crypto/secp256k1" + signingv1beta1 "cosmossdk.io/api/cosmos/tx/signing/v1beta1" + txv1beta1 "cosmossdk.io/api/cosmos/tx/v1beta1" + "cosmossdk.io/x/tx/signing" +) + +type HandlerArgumentOptions struct { + ChainId string + Memo string + Msg proto.Message + AccNum uint64 + AccSeq uint64 + Tip *txv1beta1.Tip + Fee *txv1beta1.Fee + SignerAddress string +} + +func MakeHandlerArguments(options HandlerArgumentOptions) (signing.SignerData, signing.TxData, error) { + pk := &secp256k1.PubKey{ + Key: make([]byte, 256), + } + anyPk, err := anyutil.New(pk) + if err != nil { + return signing.SignerData{}, signing.TxData{}, err + } + + signerInfo := []*txv1beta1.SignerInfo{ + { + PublicKey: anyPk, + ModeInfo: &txv1beta1.ModeInfo{ + Sum: &txv1beta1.ModeInfo_Single_{ + Single: &txv1beta1.ModeInfo_Single{ + Mode: signingv1beta1.SignMode_SIGN_MODE_DIRECT_AUX, + }, + }, + }, + Sequence: options.AccSeq, + }, + } + + anyMsg, err := anyutil.New(options.Msg) + if err != nil { + return signing.SignerData{}, signing.TxData{}, err + } + + txBody := &txv1beta1.TxBody{ + Messages: []*anypb.Any{anyMsg}, + Memo: options.Memo, + } + + authInfo := &txv1beta1.AuthInfo{ + Fee: options.Fee, + Tip: options.Tip, + SignerInfos: signerInfo, + } + + bodyBz, err := proto.Marshal(txBody) + if err != nil { + return signing.SignerData{}, signing.TxData{}, err + } + authInfoBz, err := proto.Marshal(authInfo) + if err != nil { + return signing.SignerData{}, signing.TxData{}, err + } + + txData := signing.TxData{ + Body: txBody, + AuthInfo: authInfo, + AuthInfoBytes: authInfoBz, + BodyBytes: bodyBz, + } + + signerAddress := options.SignerAddress + signerData := signing.SignerData{ + ChainId: options.ChainId, + AccountNumber: options.AccNum, + Sequence: options.AccSeq, + Address: signerAddress, + PubKey: anyPk, + } + + return signerData, txData, nil +}