diff --git a/baseapp/abci_utils_test.go b/baseapp/abci_utils_test.go index e2c88c2431..5d56f977fd 100644 --- a/baseapp/abci_utils_test.go +++ b/baseapp/abci_utils_test.go @@ -4,6 +4,7 @@ import ( "bytes" "sort" "testing" + "time" abci "github.com/cometbft/cometbft/api/cometbft/abci/v1" cmtprotocrypto "github.com/cometbft/cometbft/api/cometbft/crypto/v1" @@ -499,10 +500,10 @@ func (s *ABCIUtilsTestSuite) TestDefaultProposalHandler_NoOpMempoolTxSelection() tx := builder.GetTx() txBz, err := txConfig.TxEncoder()(tx) s.Require().NoError(err) - s.Require().Len(txBz, 165) + s.Require().Len(txBz, 152) txDataSize := int(cmttypes.ComputeProtoSizeForTxs([]cmttypes.Tx{txBz})) - s.Require().Equal(txDataSize, 168) + s.Require().Equal(155, txDataSize) testCases := map[string]struct { ctx sdk.Context @@ -533,7 +534,7 @@ func (s *ABCIUtilsTestSuite) TestDefaultProposalHandler_NoOpMempoolTxSelection() ctx: s.ctx, req: &abci.PrepareProposalRequest{ Txs: [][]byte{txBz, txBz, txBz, txBz, txBz}, - MaxTxBytes: 465, + MaxTxBytes: 464, }, expectedTxs: 2, }, @@ -595,24 +596,24 @@ func (s *ABCIUtilsTestSuite) TestDefaultProposalHandler_PriorityNonceMempoolTxSe testTxs := []testTx{ // test 1 - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`0`), [][]byte{secret1}, []uint64{1}), priority: 10}, - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`12345678910`), [][]byte{secret1}, []uint64{2}), priority: 10}, - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`22`), [][]byte{secret1}, []uint64{3}), priority: 10}, - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`32`), [][]byte{secret2}, []uint64{1}), priority: 8}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`0`), [][]byte{secret1}, []uint64{1}, false), priority: 10}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`12345678910`), [][]byte{secret1}, []uint64{2}, false), priority: 10}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`22`), [][]byte{secret1}, []uint64{3}, false), priority: 10}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`32`), [][]byte{secret2}, []uint64{1}, false), priority: 8}, // test 2 - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`4`), [][]byte{secret1, secret2}, []uint64{3, 3}), priority: 10}, - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`52345678910`), [][]byte{secret1, secret3}, []uint64{4, 3}), priority: 10}, - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`62`), [][]byte{secret1, secret4}, []uint64{5, 3}), priority: 8}, - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`72`), [][]byte{secret3, secret5}, []uint64{4, 3}), priority: 8}, - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`82`), [][]byte{secret2, secret6}, []uint64{4, 3}), priority: 8}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`4`), [][]byte{secret1, secret2}, []uint64{3, 3}, false), priority: 10}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`52345678910`), [][]byte{secret1, secret3}, []uint64{4, 3}, false), priority: 10}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`62`), [][]byte{secret1, secret4}, []uint64{5, 3}, false), priority: 8}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`72`), [][]byte{secret3, secret5}, []uint64{4, 3}, false), priority: 8}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`82`), [][]byte{secret2, secret6}, []uint64{4, 3}, false), priority: 8}, // test 3 - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`9`), [][]byte{secret3, secret4}, []uint64{3, 3}), priority: 10}, - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`1052345678910`), [][]byte{secret1, secret2}, []uint64{4, 4}), priority: 8}, - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`11`), [][]byte{secret1, secret2}, []uint64{5, 5}), priority: 8}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`9`), [][]byte{secret3, secret4}, []uint64{3, 3}, false), priority: 10}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`1052345678910`), [][]byte{secret1, secret2}, []uint64{4, 4}, false), priority: 8}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`11`), [][]byte{secret1, secret2}, []uint64{5, 5}, false), priority: 8}, // test 4 - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`1252345678910`), [][]byte{secret1}, []uint64{3}), priority: 10}, - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`13`), [][]byte{secret1}, []uint64{5}), priority: 10}, - {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`14`), [][]byte{secret1}, []uint64{6}), priority: 8}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`1252345678910`), [][]byte{secret1}, []uint64{3}, false), priority: 10}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`13`), [][]byte{secret1}, []uint64{5}, false), priority: 10}, + {tx: buildMsg(s.T(), txConfig, signingCtx.AddressCodec(), []byte(`14`), [][]byte{secret1}, []uint64{6}, false), priority: 8}, } for i := range testTxs { @@ -622,15 +623,15 @@ func (s *ABCIUtilsTestSuite) TestDefaultProposalHandler_PriorityNonceMempoolTxSe testTxs[i].size = int(cmttypes.ComputeProtoSizeForTxs([]cmttypes.Tx{bz})) } - s.Require().Equal(193, testTxs[0].size) - s.Require().Equal(203, testTxs[1].size) - s.Require().Equal(194, testTxs[2].size) - s.Require().Equal(194, testTxs[3].size) - s.Require().Equal(276, testTxs[4].size) - s.Require().Equal(286, testTxs[5].size) - s.Require().Equal(277, testTxs[6].size) - s.Require().Equal(277, testTxs[7].size) - s.Require().Equal(277, testTxs[8].size) + s.Require().Equal(180, testTxs[0].size) + s.Require().Equal(190, testTxs[1].size) + s.Require().Equal(181, testTxs[2].size) + s.Require().Equal(181, testTxs[3].size) + s.Require().Equal(263, testTxs[4].size) + s.Require().Equal(273, testTxs[5].size) + s.Require().Equal(264, testTxs[6].size) + s.Require().Equal(264, testTxs[7].size) + s.Require().Equal(264, testTxs[8].size) testCases := map[string]struct { ctx sdk.Context @@ -643,7 +644,7 @@ func (s *ABCIUtilsTestSuite) TestDefaultProposalHandler_PriorityNonceMempoolTxSe ctx: s.ctx, txInputs: []testTx{testTxs[0], testTxs[1], testTxs[2], testTxs[3]}, req: &abci.PrepareProposalRequest{ - MaxTxBytes: 193 + 194, + MaxTxBytes: 180 + 181, }, expectedTxs: []int{0, 3}, }, @@ -651,7 +652,7 @@ func (s *ABCIUtilsTestSuite) TestDefaultProposalHandler_PriorityNonceMempoolTxSe ctx: s.ctx, txInputs: []testTx{testTxs[4], testTxs[5], testTxs[6], testTxs[7], testTxs[8]}, req: &abci.PrepareProposalRequest{ - MaxTxBytes: 276 + 277, + MaxTxBytes: 263 + 264, }, expectedTxs: []int{4, 8}, }, @@ -660,7 +661,7 @@ func (s *ABCIUtilsTestSuite) TestDefaultProposalHandler_PriorityNonceMempoolTxSe ctx: s.ctx, txInputs: []testTx{testTxs[9], testTxs[10], testTxs[11]}, req: &abci.PrepareProposalRequest{ - MaxTxBytes: 276 + 277, + MaxTxBytes: 263 + 264, }, expectedTxs: []int{9}, }, @@ -722,7 +723,7 @@ func marshalDelimitedFn(msg proto.Message) ([]byte, error) { return buf.Bytes(), nil } -func buildMsg(t *testing.T, txConfig client.TxConfig, ac address.Codec, value []byte, secrets [][]byte, nonces []uint64) sdk.Tx { +func buildMsg(t *testing.T, txConfig client.TxConfig, ac address.Codec, value []byte, secrets [][]byte, nonces []uint64, unordered bool) sdk.Tx { t.Helper() builder := txConfig.NewTxBuilder() @@ -742,6 +743,11 @@ func buildMsg(t *testing.T, txConfig client.TxConfig, ac address.Codec, value [] addr, err := ac.BytesToString(signatures[0].PubKey.Bytes()) require.NoError(t, err) + builder.SetUnordered(unordered) + if unordered { + builder.SetTimeoutTimestamp(time.Now().Add(time.Hour)) + } + _ = builder.SetMsgs( &baseapptestutil.MsgKeyValue{ Signer: addr, diff --git a/codec/proto_codec.go b/codec/proto_codec.go index 2c0c081896..89629b3625 100644 --- a/codec/proto_codec.go +++ b/codec/proto_codec.go @@ -21,13 +21,6 @@ import ( "github.com/cosmos/cosmos-sdk/codec/types" ) -// ProtoCodecMarshaler defines an interface for codecs that utilize Protobuf for both -// binary and JSON encoding. -// Deprecated: Use Codec instead. -type ProtoCodecMarshaler interface { - Codec -} - // ProtoCodec defines a codec that utilizes Protobuf for both binary and JSON // encoding. type ProtoCodec struct { diff --git a/go.mod b/go.mod index 47e3c5e3d3..8449bd9658 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ module github.com/cosmos/cosmos-sdk require ( buf.build/gen/go/cometbft/cometbft/protocolbuffers/go v1.36.1-20241120201313-68e42a58b301.1 // indirect - cosmossdk.io/api v0.8.0 // main + cosmossdk.io/api v0.8.1 // main cosmossdk.io/collections v1.0.0 // main cosmossdk.io/core v1.0.0 cosmossdk.io/core/testing v0.0.1 // main @@ -59,7 +59,7 @@ require ( golang.org/x/sync v0.10.0 google.golang.org/genproto/googleapis/api v0.0.0-20241015192408-796eee8c2d53 google.golang.org/grpc v1.69.2 - google.golang.org/protobuf v1.36.1 + google.golang.org/protobuf v1.36.2 gotest.tools/v3 v3.5.1 pgregory.net/rapid v1.1.0 sigs.k8s.io/yaml v1.4.0 diff --git a/go.sum b/go.sum index 414f3919f5..1d96ca193d 100644 --- a/go.sum +++ b/go.sum @@ -4,8 +4,8 @@ buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.36.1-20240130113600-88e buf.build/gen/go/cosmos/gogo-proto/protocolbuffers/go v1.36.1-20240130113600-88ef6483f90f.1/go.mod h1:GB5hdNJd6cahKmHcLArJo5wnV9TeZGMSz7ysK4YLvag= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cosmossdk.io/api v0.8.0 h1:E5Xifxu/3mPTLF79si9fyq4rR0wagubeVNmOz5duTUo= -cosmossdk.io/api v0.8.0/go.mod h1:hgJ83P0ZUu0rS1SZoVM6abk6ADOkiM259BVVlYtAPP0= +cosmossdk.io/api v0.8.1 h1:jQxx7CgUZDfgbPhPak41hW8TZzqfj06YxNI1WOulOo4= +cosmossdk.io/api v0.8.1/go.mod h1:8Q+Je1bFwsNTCMe6qigVDDyrNmFYa7ttvG96tN/oKGw= cosmossdk.io/collections v1.0.0 h1:YCYIe/pIMtc1iLDD0OrVdfWCnIkpwdy7k9NSQpaR5mg= cosmossdk.io/collections v1.0.0/go.mod h1:mFfLxnYT1fV+B3Lx9GLap1qxmffIPqQCND4xBExerps= cosmossdk.io/core v1.0.0 h1:e7XBbISOytLBOXMVwpRPixThXqEkeLGlg8no/qpgS8U= @@ -694,8 +694,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= -google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/proto/cosmos/tx/v1beta1/tx.proto b/proto/cosmos/tx/v1beta1/tx.proto index 7b78cd6d07..322d7ac614 100644 --- a/proto/cosmos/tx/v1beta1/tx.proto +++ b/proto/cosmos/tx/v1beta1/tx.proto @@ -143,6 +143,41 @@ message TxBody { repeated google.protobuf.Any non_critical_extension_options = 2047; } +// TxBodyCompat is the body of a transaction that all signers sign over. +// This message is used to represent the transaction body before the unordered +// features was added. It is used to support backwards compatibility when user a newer +// client with an older chain. +message TxBodyCompat { + // messages is a list of messages to be executed. The required signers of + // those messages define the number and order of elements in AuthInfo's + // signer_infos and Tx's signatures. Each required signer address is added to + // the list only the first time it occurs. + // By convention, the first required signer (usually from the first message) + // is referred to as the primary signer and pays the fee for the whole + // transaction. + repeated google.protobuf.Any messages = 1; + + // memo is any arbitrary note/comment to be added to the transaction. + // WARNING: in clients, any publicly exposed text should not be called memo, + // but should be called `note` instead (see + // https://github.com/cosmos/cosmos-sdk/issues/9122). + string memo = 2; + + // timeout_height is the block height after which this transaction will not + // be processed by the chain. + uint64 timeout_height = 3; + + // extension_options are arbitrary options that can be added by chains + // when the default options are not sufficient. If any of these are present + // and can't be handled, the transaction will be rejected + repeated google.protobuf.Any extension_options = 1023; + + // extension_options are arbitrary options that can be added by chains + // when the default options are not sufficient. If any of these are present + // and can't be handled, they will be ignored + repeated google.protobuf.Any non_critical_extension_options = 2047; +} + // AuthInfo describes the fee and signer modes that are used to sign a // transaction. message AuthInfo { diff --git a/scripts/build/protobuf.mk b/scripts/build/protobuf.mk index 25d98b3f95..7bcd7f60db 100644 --- a/scripts/build/protobuf.mk +++ b/scripts/build/protobuf.mk @@ -1,4 +1,4 @@ -protoVer=0.15.2 +protoVer=0.15.3 protoImageName=ghcr.io/cosmos/proto-builder:$(protoVer) protoImage=$(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace $(protoImageName) diff --git a/simapp/go.mod b/simapp/go.mod index 3269958e1a..1ad4902e99 100644 --- a/simapp/go.mod +++ b/simapp/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/simapp go 1.23.4 require ( - cosmossdk.io/api v0.8.0 // main + cosmossdk.io/api v0.8.1 // main cosmossdk.io/client/v2 v2.10.0-beta.1 cosmossdk.io/collections v1.0.0 // main cosmossdk.io/core v1.0.0 // main @@ -49,7 +49,7 @@ require ( github.com/spf13/viper v1.19.0 github.com/stretchr/testify v1.10.0 google.golang.org/grpc v1.69.2 - google.golang.org/protobuf v1.36.1 + google.golang.org/protobuf v1.36.2 ) require ( diff --git a/simapp/go.sum b/simapp/go.sum index 5576d81869..db7c46b1c7 100644 --- a/simapp/go.sum +++ b/simapp/go.sum @@ -192,8 +192,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.8.0 h1:E5Xifxu/3mPTLF79si9fyq4rR0wagubeVNmOz5duTUo= -cosmossdk.io/api v0.8.0/go.mod h1:hgJ83P0ZUu0rS1SZoVM6abk6ADOkiM259BVVlYtAPP0= +cosmossdk.io/api v0.8.1 h1:jQxx7CgUZDfgbPhPak41hW8TZzqfj06YxNI1WOulOo4= +cosmossdk.io/api v0.8.1/go.mod h1:8Q+Je1bFwsNTCMe6qigVDDyrNmFYa7ttvG96tN/oKGw= cosmossdk.io/client/v2 v2.10.0-beta.1 h1:uMF5PUt6cy6QeXRnBf1tuig5Haw3dUaTqtSIYZWf/Cc= cosmossdk.io/client/v2 v2.10.0-beta.1/go.mod h1:EqHIw/tLdCK1vSAg+8ovNEBq3PeBenP+nQ1WhPMGq94= cosmossdk.io/collections v1.0.0 h1:YCYIe/pIMtc1iLDD0OrVdfWCnIkpwdy7k9NSQpaR5mg= @@ -1470,8 +1470,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= -google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/simapp/sim_test.go b/simapp/sim_test.go index a4fa3cd02d..50c304a0d2 100644 --- a/simapp/sim_test.go +++ b/simapp/sim_test.go @@ -147,7 +147,7 @@ func TestAppSimulationAfterImport(t *testing.T) { BalanceSource: app.BankKeeper, } } - ti.Cfg.InitialBlockHeight = int(exported.Height) + ti.Cfg.InitialBlockHeight = uint64(exported.Height) simsx.RunWithSeed(t, ti.Cfg, NewSimApp, importGenesisStateFactory, ti.Cfg.Seed, ti.Cfg.FuzzSeed) }) } diff --git a/simapp/v2/go.mod b/simapp/v2/go.mod index f982f4cd63..29bf2b6f83 100644 --- a/simapp/v2/go.mod +++ b/simapp/v2/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/simapp/v2 go 1.23.4 require ( - cosmossdk.io/api v0.8.0 // main + cosmossdk.io/api v0.8.1 // main cosmossdk.io/client/v2 v2.10.0-beta.1 cosmossdk.io/core v1.0.0 // main cosmossdk.io/core/testing v0.0.1 // indirect; main @@ -258,10 +258,7 @@ require ( // replace ( // // ) -replace ( - cosmossdk.io/server/v2/cometbft => ../../server/v2/cometbft - cosmossdk.io/x/staking => cosmossdk.io/x/staking v0.2.0-rc.1.0.20250109101855-4c6e34be28c1 -) +replace cosmossdk.io/server/v2/cometbft => ../../server/v2/cometbft // Below are the long-lived replace of the SimApp replace ( diff --git a/simapp/v2/go.sum b/simapp/v2/go.sum index 697673a744..1e60e109c5 100644 --- a/simapp/v2/go.sum +++ b/simapp/v2/go.sum @@ -192,8 +192,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.8.0 h1:E5Xifxu/3mPTLF79si9fyq4rR0wagubeVNmOz5duTUo= -cosmossdk.io/api v0.8.0/go.mod h1:hgJ83P0ZUu0rS1SZoVM6abk6ADOkiM259BVVlYtAPP0= +cosmossdk.io/api v0.8.1 h1:jQxx7CgUZDfgbPhPak41hW8TZzqfj06YxNI1WOulOo4= +cosmossdk.io/api v0.8.1/go.mod h1:8Q+Je1bFwsNTCMe6qigVDDyrNmFYa7ttvG96tN/oKGw= cosmossdk.io/client/v2 v2.10.0-beta.1 h1:uMF5PUt6cy6QeXRnBf1tuig5Haw3dUaTqtSIYZWf/Cc= cosmossdk.io/client/v2 v2.10.0-beta.1/go.mod h1:EqHIw/tLdCK1vSAg+8ovNEBq3PeBenP+nQ1WhPMGq94= cosmossdk.io/collections v1.0.0 h1:YCYIe/pIMtc1iLDD0OrVdfWCnIkpwdy7k9NSQpaR5mg= @@ -268,8 +268,8 @@ cosmossdk.io/x/protocolpool v0.2.0-rc.1 h1:BNtRCp/TStXYSW0uc5KJTtJoTVOCaF7/P6Smx cosmossdk.io/x/protocolpool v0.2.0-rc.1/go.mod h1:asoCc7jX1kMqaJ9sI1U67P2evXjVKXSngTgGinAXTZo= cosmossdk.io/x/slashing v0.2.0-rc.1 h1:RNAV5JN7nIuyDtGclPoN1iFl92Edu71ERl/OtFSS06I= cosmossdk.io/x/slashing v0.2.0-rc.1/go.mod h1:uICi76DI/iwfgPbETb8sVio6dEA4Q4sv4Vqj9cxn2zI= -cosmossdk.io/x/staking v0.2.0-rc.1.0.20250109101855-4c6e34be28c1 h1:/IEkm90NCAatqdKITvVumjsbnMRldOimcslNiQ0gJlg= -cosmossdk.io/x/staking v0.2.0-rc.1.0.20250109101855-4c6e34be28c1/go.mod h1:eb4WWz3WB8lryUutt5pPuevwgqMSGsh0iPgr0VZr2kc= +cosmossdk.io/x/staking v0.2.0-rc.1 h1:AZRGddRuuTaLxxpBvC7/TR7Dmt0pjziXWk13dC1beIo= +cosmossdk.io/x/staking v0.2.0-rc.1/go.mod h1:7K4hgQ6tn0XLFb2BJ9oe8nEc4RkfQ4qHqgQy2b0kVNc= cosmossdk.io/x/tx v1.0.0 h1:pUUKRvHiMUZC/MnO8v747k1lUEA1DfAq0j0y0Mqrz/o= cosmossdk.io/x/tx v1.0.0/go.mod h1:AXYJ47btzkcWuT1OtA3M44dv1iiYbKomtopHEbQGgH4= cosmossdk.io/x/upgrade v0.2.0-rc.1 h1:YO865mCFIsFyjzl1fOsOr7Hw2iVGJhTGwecUC3u0YBY= diff --git a/tests/go.mod b/tests/go.mod index 845f1506d0..e2bb6d8feb 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -3,7 +3,7 @@ module github.com/cosmos/cosmos-sdk/tests go 1.23.4 require ( - cosmossdk.io/api v0.8.0 // main + cosmossdk.io/api v0.8.1 // main cosmossdk.io/collections v1.0.0 // main cosmossdk.io/core v1.0.0 // main cosmossdk.io/core/testing v0.0.1 // main @@ -28,7 +28,7 @@ require ( github.com/spf13/cobra v1.8.1 // indirect github.com/stretchr/testify v1.10.0 google.golang.org/grpc v1.69.2 - google.golang.org/protobuf v1.36.1 + google.golang.org/protobuf v1.36.2 gotest.tools/v3 v3.5.1 pgregory.net/rapid v1.1.0 ) diff --git a/tests/go.sum b/tests/go.sum index 83fd7bc530..d9bd85f0f8 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -192,8 +192,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.8.0 h1:E5Xifxu/3mPTLF79si9fyq4rR0wagubeVNmOz5duTUo= -cosmossdk.io/api v0.8.0/go.mod h1:hgJ83P0ZUu0rS1SZoVM6abk6ADOkiM259BVVlYtAPP0= +cosmossdk.io/api v0.8.1 h1:jQxx7CgUZDfgbPhPak41hW8TZzqfj06YxNI1WOulOo4= +cosmossdk.io/api v0.8.1/go.mod h1:8Q+Je1bFwsNTCMe6qigVDDyrNmFYa7ttvG96tN/oKGw= cosmossdk.io/collections v1.0.0 h1:YCYIe/pIMtc1iLDD0OrVdfWCnIkpwdy7k9NSQpaR5mg= cosmossdk.io/collections v1.0.0/go.mod h1:mFfLxnYT1fV+B3Lx9GLap1qxmffIPqQCND4xBExerps= cosmossdk.io/core v1.0.0 h1:e7XBbISOytLBOXMVwpRPixThXqEkeLGlg8no/qpgS8U= @@ -1426,8 +1426,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk= -google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/tests/integration/baseapp/block_gas_test.go b/tests/integration/baseapp/block_gas_test.go index 97086e20db..73b3057897 100644 --- a/tests/integration/baseapp/block_gas_test.go +++ b/tests/integration/baseapp/block_gas_test.go @@ -172,7 +172,7 @@ func TestBaseApp_BlockGas(t *testing.T) { require.Equal(t, []byte("ok"), okValue) } // check block gas is always consumed - baseGas := uint64(39205) // baseGas is the gas consumed before tx msg + baseGas := uint64(39075) // baseGas is the gas consumed before tx msg expGasConsumed := addUint64Saturating(tc.gasToConsume, baseGas) if expGasConsumed > uint64(simtestutil.DefaultConsensusParams.Block.MaxGas) { // capped by gasLimit diff --git a/types/tx/tx.pb.go b/types/tx/tx.pb.go index 5037f2c605..dd948ddaaf 100644 --- a/types/tx/tx.pb.go +++ b/types/tx/tx.pb.go @@ -473,6 +473,105 @@ func (m *TxBody) GetNonCriticalExtensionOptions() []*any.Any { return nil } +// TxBodyCompat is the body of a transaction that all signers sign over. +// This message is used to represent the transaction body before the unordered +// features was added. It is used to support backwards compatibility when user a newer +// client with an older chain. +type TxBodyCompat struct { + // messages is a list of messages to be executed. The required signers of + // those messages define the number and order of elements in AuthInfo's + // signer_infos and Tx's signatures. Each required signer address is added to + // the list only the first time it occurs. + // By convention, the first required signer (usually from the first message) + // is referred to as the primary signer and pays the fee for the whole + // transaction. + Messages []*any.Any `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"` + // memo is any arbitrary note/comment to be added to the transaction. + // WARNING: in clients, any publicly exposed text should not be called memo, + // but should be called `note` instead (see + // https://github.com/cosmos/cosmos-sdk/issues/9122). + Memo string `protobuf:"bytes,2,opt,name=memo,proto3" json:"memo,omitempty"` + // timeout_height is the block height after which this transaction will not + // be processed by the chain. + TimeoutHeight uint64 `protobuf:"varint,3,opt,name=timeout_height,json=timeoutHeight,proto3" json:"timeout_height,omitempty"` + // extension_options are arbitrary options that can be added by chains + // when the default options are not sufficient. If any of these are present + // and can't be handled, the transaction will be rejected + ExtensionOptions []*any.Any `protobuf:"bytes,1023,rep,name=extension_options,json=extensionOptions,proto3" json:"extension_options,omitempty"` + // extension_options are arbitrary options that can be added by chains + // when the default options are not sufficient. If any of these are present + // and can't be handled, they will be ignored + NonCriticalExtensionOptions []*any.Any `protobuf:"bytes,2047,rep,name=non_critical_extension_options,json=nonCriticalExtensionOptions,proto3" json:"non_critical_extension_options,omitempty"` +} + +func (m *TxBodyCompat) Reset() { *m = TxBodyCompat{} } +func (m *TxBodyCompat) String() string { return proto.CompactTextString(m) } +func (*TxBodyCompat) ProtoMessage() {} +func (*TxBodyCompat) Descriptor() ([]byte, []int) { + return fileDescriptor_96d1575ffde80842, []int{5} +} +func (m *TxBodyCompat) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TxBodyCompat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TxBodyCompat.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TxBodyCompat) XXX_Merge(src proto.Message) { + xxx_messageInfo_TxBodyCompat.Merge(m, src) +} +func (m *TxBodyCompat) XXX_Size() int { + return m.Size() +} +func (m *TxBodyCompat) XXX_DiscardUnknown() { + xxx_messageInfo_TxBodyCompat.DiscardUnknown(m) +} + +var xxx_messageInfo_TxBodyCompat proto.InternalMessageInfo + +func (m *TxBodyCompat) GetMessages() []*any.Any { + if m != nil { + return m.Messages + } + return nil +} + +func (m *TxBodyCompat) GetMemo() string { + if m != nil { + return m.Memo + } + return "" +} + +func (m *TxBodyCompat) GetTimeoutHeight() uint64 { + if m != nil { + return m.TimeoutHeight + } + return 0 +} + +func (m *TxBodyCompat) GetExtensionOptions() []*any.Any { + if m != nil { + return m.ExtensionOptions + } + return nil +} + +func (m *TxBodyCompat) GetNonCriticalExtensionOptions() []*any.Any { + if m != nil { + return m.NonCriticalExtensionOptions + } + return nil +} + // AuthInfo describes the fee and signer modes that are used to sign a // transaction. type AuthInfo struct { @@ -497,7 +596,7 @@ func (m *AuthInfo) Reset() { *m = AuthInfo{} } func (m *AuthInfo) String() string { return proto.CompactTextString(m) } func (*AuthInfo) ProtoMessage() {} func (*AuthInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{5} + return fileDescriptor_96d1575ffde80842, []int{6} } func (m *AuthInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -568,7 +667,7 @@ func (m *SignerInfo) Reset() { *m = SignerInfo{} } func (m *SignerInfo) String() string { return proto.CompactTextString(m) } func (*SignerInfo) ProtoMessage() {} func (*SignerInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{6} + return fileDescriptor_96d1575ffde80842, []int{7} } func (m *SignerInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -634,7 +733,7 @@ func (m *ModeInfo) Reset() { *m = ModeInfo{} } func (m *ModeInfo) String() string { return proto.CompactTextString(m) } func (*ModeInfo) ProtoMessage() {} func (*ModeInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{7} + return fileDescriptor_96d1575ffde80842, []int{8} } func (m *ModeInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -720,7 +819,7 @@ func (m *ModeInfo_Single) Reset() { *m = ModeInfo_Single{} } func (m *ModeInfo_Single) String() string { return proto.CompactTextString(m) } func (*ModeInfo_Single) ProtoMessage() {} func (*ModeInfo_Single) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{7, 0} + return fileDescriptor_96d1575ffde80842, []int{8, 0} } func (m *ModeInfo_Single) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -769,7 +868,7 @@ func (m *ModeInfo_Multi) Reset() { *m = ModeInfo_Multi{} } func (m *ModeInfo_Multi) String() string { return proto.CompactTextString(m) } func (*ModeInfo_Multi) ProtoMessage() {} func (*ModeInfo_Multi) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{7, 1} + return fileDescriptor_96d1575ffde80842, []int{8, 1} } func (m *ModeInfo_Multi) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -837,7 +936,7 @@ func (m *Fee) Reset() { *m = Fee{} } func (m *Fee) String() string { return proto.CompactTextString(m) } func (*Fee) ProtoMessage() {} func (*Fee) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{8} + return fileDescriptor_96d1575ffde80842, []int{9} } func (m *Fee) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -908,7 +1007,7 @@ func (m *Tip) Reset() { *m = Tip{} } func (m *Tip) String() string { return proto.CompactTextString(m) } func (*Tip) ProtoMessage() {} func (*Tip) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{9} + return fileDescriptor_96d1575ffde80842, []int{10} } func (m *Tip) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -974,7 +1073,7 @@ func (m *AuxSignerData) Reset() { *m = AuxSignerData{} } func (m *AuxSignerData) String() string { return proto.CompactTextString(m) } func (*AuxSignerData) ProtoMessage() {} func (*AuxSignerData) Descriptor() ([]byte, []int) { - return fileDescriptor_96d1575ffde80842, []int{10} + return fileDescriptor_96d1575ffde80842, []int{11} } func (m *AuxSignerData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1037,6 +1136,7 @@ func init() { proto.RegisterType((*SignDoc)(nil), "cosmos.tx.v1beta1.SignDoc") proto.RegisterType((*SignDocDirectAux)(nil), "cosmos.tx.v1beta1.SignDocDirectAux") proto.RegisterType((*TxBody)(nil), "cosmos.tx.v1beta1.TxBody") + proto.RegisterType((*TxBodyCompat)(nil), "cosmos.tx.v1beta1.TxBodyCompat") proto.RegisterType((*AuthInfo)(nil), "cosmos.tx.v1beta1.AuthInfo") proto.RegisterType((*SignerInfo)(nil), "cosmos.tx.v1beta1.SignerInfo") proto.RegisterType((*ModeInfo)(nil), "cosmos.tx.v1beta1.ModeInfo") @@ -1050,79 +1150,81 @@ func init() { func init() { proto.RegisterFile("cosmos/tx/v1beta1/tx.proto", fileDescriptor_96d1575ffde80842) } var fileDescriptor_96d1575ffde80842 = []byte{ - // 1147 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0x4f, 0x8f, 0xdb, 0x44, - 0x14, 0x8f, 0xe3, 0x24, 0x9b, 0xbc, 0xee, 0xb6, 0xbb, 0x43, 0x8b, 0xb2, 0x29, 0xcd, 0x2e, 0xa9, - 0x0a, 0x51, 0xc5, 0xda, 0xed, 0x16, 0x41, 0xa9, 0x10, 0x25, 0x69, 0xa9, 0x5a, 0x95, 0x82, 0xf0, - 0xee, 0xa9, 0x17, 0x6b, 0x62, 0xcf, 0x3a, 0xa3, 0xc6, 0x33, 0xc6, 0x33, 0x86, 0xf8, 0xc8, 0x05, - 0x4e, 0x48, 0x15, 0x17, 0x24, 0x3e, 0x01, 0xe2, 0xd4, 0x43, 0x25, 0xbe, 0x42, 0xb9, 0x55, 0x3d, - 0x21, 0x0e, 0x6d, 0xd5, 0x3d, 0xf4, 0x63, 0x80, 0x3c, 0x1e, 0x7b, 0xb7, 0xdd, 0x34, 0x0b, 0x02, - 0x89, 0x4b, 0xe4, 0x79, 0xf3, 0x7b, 0x6f, 0x7e, 0xef, 0x7f, 0xa0, 0xe3, 0x71, 0x11, 0x72, 0x61, - 0xcb, 0xa9, 0xfd, 0xd5, 0xf9, 0x11, 0x91, 0xf8, 0xbc, 0x2d, 0xa7, 0x56, 0x14, 0x73, 0xc9, 0xd1, - 0x4a, 0x7e, 0x67, 0xc9, 0xa9, 0xa5, 0xef, 0x3a, 0xab, 0xb9, 0xc8, 0x55, 0x00, 0x5b, 0xdf, 0xab, - 0x43, 0x67, 0x05, 0x87, 0x94, 0x71, 0x5b, 0xfd, 0x6a, 0xd1, 0xf1, 0x80, 0x07, 0x3c, 0x87, 0x66, - 0x5f, 0x5a, 0xba, 0xa1, 0x9f, 0xf4, 0xe2, 0x34, 0x92, 0xdc, 0x0e, 0x93, 0x89, 0xa4, 0x82, 0x06, - 0xe5, 0xfb, 0x85, 0x40, 0xc3, 0xbb, 0x1a, 0x3e, 0xc2, 0x82, 0x94, 0x18, 0x8f, 0x53, 0xa6, 0xef, - 0xdf, 0xde, 0xf3, 0x40, 0xd0, 0x80, 0x51, 0xb6, 0x67, 0x49, 0x9f, 0x35, 0x70, 0x35, 0xe0, 0x3c, - 0x98, 0x10, 0x5b, 0x9d, 0x46, 0xc9, 0x8e, 0x8d, 0x59, 0xaa, 0xaf, 0xd6, 0x5e, 0xbe, 0x92, 0x34, - 0x24, 0x42, 0xe2, 0x30, 0xca, 0x01, 0xbd, 0xef, 0x0d, 0xa8, 0x6e, 0x4f, 0xd1, 0x06, 0xd4, 0x46, - 0xdc, 0x4f, 0xdb, 0xc6, 0xba, 0xd1, 0x3f, 0xb2, 0xb9, 0x6a, 0x1d, 0x08, 0x90, 0xb5, 0x3d, 0x1d, - 0x72, 0x3f, 0x75, 0x14, 0x0c, 0x5d, 0x84, 0x16, 0x4e, 0xe4, 0xd8, 0xa5, 0x6c, 0x87, 0xb7, 0xab, - 0x4a, 0xe7, 0xe4, 0x0c, 0x9d, 0x41, 0x22, 0xc7, 0x37, 0xd8, 0x0e, 0x77, 0x9a, 0x58, 0x7f, 0xa1, - 0x2e, 0x40, 0x46, 0x1e, 0xcb, 0x24, 0x26, 0xa2, 0x6d, 0xae, 0x9b, 0xfd, 0x45, 0x67, 0x9f, 0xa4, - 0xc7, 0xa0, 0xbe, 0x3d, 0x75, 0xf0, 0xd7, 0xe8, 0x14, 0x40, 0xf6, 0x94, 0x3b, 0x4a, 0x25, 0x11, - 0x8a, 0xd7, 0xa2, 0xd3, 0xca, 0x24, 0xc3, 0x4c, 0x80, 0xde, 0x82, 0x63, 0x25, 0x03, 0x8d, 0xa9, - 0x2a, 0xcc, 0x52, 0xf1, 0x54, 0x8e, 0x3b, 0xec, 0xbd, 0x1f, 0x0c, 0x58, 0xd8, 0xa2, 0x01, 0xbb, - 0xca, 0xbd, 0xff, 0xea, 0xc9, 0x55, 0x68, 0x7a, 0x63, 0x4c, 0x99, 0x4b, 0xfd, 0xb6, 0xb9, 0x6e, - 0xf4, 0x5b, 0xce, 0x82, 0x3a, 0xdf, 0xf0, 0xd1, 0x19, 0x38, 0x8a, 0x3d, 0x8f, 0x27, 0x4c, 0xba, - 0x2c, 0x09, 0x47, 0x24, 0x6e, 0xd7, 0xd6, 0x8d, 0x7e, 0xcd, 0x59, 0xd2, 0xd2, 0xcf, 0x94, 0xb0, - 0xf7, 0x5d, 0x15, 0x96, 0x35, 0xa9, 0xab, 0x34, 0x26, 0x9e, 0x1c, 0x24, 0xd3, 0xc3, 0xd8, 0x5d, - 0x00, 0x88, 0x92, 0xd1, 0x84, 0x7a, 0xee, 0x1d, 0x92, 0xea, 0x9c, 0x1c, 0xb7, 0xf2, 0xf4, 0x5b, - 0x45, 0xfa, 0xad, 0x01, 0x4b, 0x9d, 0x56, 0x8e, 0xbb, 0x49, 0xd2, 0x7f, 0x4f, 0x15, 0x75, 0xa0, - 0x29, 0xc8, 0x97, 0x09, 0x61, 0x1e, 0x69, 0xd7, 0x15, 0xa0, 0x3c, 0xa3, 0x77, 0xc0, 0x94, 0x34, - 0x6a, 0x37, 0x14, 0x97, 0xd7, 0x67, 0xd5, 0x14, 0x8d, 0x86, 0xd5, 0xb6, 0xe1, 0x64, 0xb0, 0x4b, - 0xaf, 0x3d, 0xba, 0xbf, 0x71, 0x2c, 0xc7, 0x6c, 0x08, 0xff, 0xce, 0xfa, 0x39, 0xeb, 0xdd, 0xf7, - 0x7a, 0xdf, 0x9a, 0xd0, 0xc8, 0x2b, 0x0f, 0x9d, 0x83, 0x66, 0x48, 0x84, 0xc0, 0x81, 0xf2, 0xde, - 0x7c, 0xa5, 0x7b, 0x25, 0x0a, 0x21, 0xa8, 0x85, 0x24, 0xcc, 0x0b, 0xb4, 0xe5, 0xa8, 0xef, 0xcc, - 0xad, 0xac, 0x05, 0x78, 0x22, 0xdd, 0x31, 0xa1, 0xc1, 0x58, 0x2a, 0xbf, 0x6b, 0xce, 0x92, 0x96, - 0x5e, 0x57, 0x42, 0xf4, 0x06, 0xb4, 0x12, 0xc6, 0x63, 0x9f, 0xc4, 0xc4, 0x57, 0x8e, 0x37, 0x9d, - 0x3d, 0x01, 0xfa, 0x02, 0x56, 0x0a, 0x23, 0x65, 0x3f, 0x29, 0xef, 0x8f, 0x6c, 0x76, 0x0e, 0x70, - 0xda, 0x2e, 0x10, 0xc3, 0xe6, 0x83, 0xc7, 0x6b, 0xc6, 0xdd, 0x27, 0x6b, 0x86, 0xb3, 0xac, 0xd5, - 0xcb, 0x3b, 0x34, 0x84, 0x15, 0x32, 0x95, 0x84, 0x09, 0xca, 0x99, 0xcb, 0x23, 0x49, 0x39, 0x13, - 0xed, 0x3f, 0x17, 0xe6, 0xf8, 0xb9, 0x5c, 0xe2, 0x3f, 0xcf, 0xe1, 0xe8, 0x36, 0x74, 0x19, 0x67, - 0xae, 0x17, 0x53, 0x49, 0x3d, 0x3c, 0x71, 0x67, 0x18, 0x3c, 0x36, 0xc7, 0xe0, 0x49, 0xc6, 0xd9, - 0x15, 0xad, 0xfb, 0xc9, 0x4b, 0xb6, 0x7b, 0xbf, 0x1a, 0xd0, 0x2c, 0xda, 0x19, 0x7d, 0x0c, 0x8b, - 0x59, 0x0b, 0x91, 0x58, 0xf5, 0x42, 0x91, 0x8e, 0x53, 0x33, 0x32, 0xbc, 0xa5, 0x60, 0x6a, 0x06, - 0x1c, 0x11, 0xe5, 0xb7, 0x40, 0x7d, 0x30, 0x77, 0x08, 0xd1, 0x65, 0x3a, 0xab, 0x34, 0xae, 0x11, - 0xe2, 0x64, 0x10, 0x74, 0x39, 0x2f, 0x22, 0x73, 0x6e, 0x11, 0x9d, 0xf8, 0xe3, 0x60, 0xed, 0xe8, - 0xba, 0xea, 0xfd, 0x68, 0x00, 0xec, 0xd1, 0x78, 0xa9, 0x4f, 0x8c, 0xbf, 0xd7, 0x27, 0x17, 0xa1, - 0x15, 0x72, 0x9f, 0x1c, 0x36, 0xef, 0x6e, 0x71, 0x9f, 0xe4, 0xf3, 0x2e, 0xd4, 0x5f, 0x2f, 0xf4, - 0x87, 0xf9, 0x62, 0x7f, 0xf4, 0x9e, 0x56, 0xa1, 0x59, 0xa8, 0xa0, 0x0f, 0xa1, 0x21, 0x28, 0x0b, - 0x26, 0x44, 0x73, 0xea, 0xcd, 0xb1, 0x6f, 0x6d, 0x29, 0xe4, 0xf5, 0x8a, 0xa3, 0x75, 0xd0, 0x07, - 0x50, 0x57, 0xdb, 0x45, 0x93, 0x7b, 0x73, 0x9e, 0xf2, 0xad, 0x0c, 0x78, 0xbd, 0xe2, 0xe4, 0x1a, - 0x9d, 0x01, 0x34, 0x72, 0x73, 0xe8, 0x7d, 0xa8, 0x65, 0xbc, 0x15, 0x81, 0xa3, 0x9b, 0xa7, 0xf7, - 0xd9, 0x28, 0xf6, 0xcd, 0xfe, 0xb4, 0x66, 0xf6, 0x1c, 0xa5, 0xd0, 0xb9, 0x6b, 0x40, 0x5d, 0x59, - 0x45, 0x37, 0xa1, 0x39, 0xa2, 0x12, 0xc7, 0x31, 0x2e, 0x62, 0x6b, 0x17, 0x66, 0xf2, 0xad, 0x68, - 0x95, 0x4b, 0xb0, 0xb0, 0x75, 0x85, 0x87, 0x11, 0xf6, 0xe4, 0x90, 0xca, 0x41, 0xa6, 0xe6, 0x94, - 0x06, 0xd0, 0x25, 0x80, 0x32, 0xea, 0xd9, 0xac, 0x35, 0x0f, 0x0b, 0x7b, 0xab, 0x08, 0xbb, 0x18, - 0xd6, 0xc1, 0x14, 0x49, 0xd8, 0xfb, 0xa6, 0x0a, 0xe6, 0x35, 0x42, 0x50, 0x0a, 0x0d, 0x1c, 0x66, - 0x63, 0x4b, 0xd7, 0x6a, 0xb9, 0xe1, 0xb2, 0xe5, 0xbb, 0x8f, 0x0a, 0x65, 0xc3, 0x6b, 0x0f, 0x1e, - 0xaf, 0x55, 0x7e, 0x79, 0xb2, 0xd6, 0x0f, 0xa8, 0x1c, 0x27, 0x23, 0xcb, 0xe3, 0xa1, 0x5d, 0x2c, - 0xf6, 0xb2, 0xc2, 0x6c, 0x99, 0x46, 0x44, 0x28, 0x05, 0xf1, 0xd3, 0xf3, 0x7b, 0x67, 0x17, 0x27, - 0x24, 0xc0, 0x5e, 0xea, 0x66, 0xeb, 0x5b, 0xfc, 0xfc, 0xfc, 0xde, 0x59, 0xc3, 0xd1, 0x0f, 0xa2, - 0x93, 0xd0, 0x0a, 0xb0, 0x70, 0x27, 0x34, 0xa4, 0x52, 0xa5, 0xa7, 0xe6, 0x34, 0x03, 0x2c, 0x3e, - 0xcd, 0xce, 0xc8, 0x82, 0x7a, 0x84, 0x53, 0x12, 0xe7, 0xd3, 0x77, 0xd8, 0x7e, 0x74, 0x7f, 0xe3, - 0xb8, 0x66, 0x36, 0xf0, 0xfd, 0x98, 0x08, 0xb1, 0x25, 0x63, 0xca, 0x02, 0x27, 0x87, 0xa1, 0x4d, - 0x58, 0x08, 0x62, 0xcc, 0xa4, 0x1e, 0xc7, 0xf3, 0x34, 0x0a, 0x60, 0xef, 0x37, 0x03, 0xcc, 0x6d, - 0x1a, 0xfd, 0x9f, 0x31, 0x38, 0x07, 0x0d, 0x49, 0xa3, 0x88, 0xc4, 0xf9, 0x2c, 0x9e, 0xc3, 0x5a, - 0xe3, 0x2e, 0x9d, 0x78, 0x34, 0xab, 0xa3, 0x7b, 0xbb, 0x06, 0x2c, 0x0d, 0x92, 0x69, 0xde, 0xcf, - 0x57, 0xb1, 0xc4, 0x59, 0x44, 0x70, 0x6e, 0x41, 0x15, 0xdc, 0xdc, 0x88, 0x68, 0x20, 0xfa, 0x08, - 0x9a, 0x59, 0x45, 0xbb, 0x3e, 0xf7, 0x74, 0xc3, 0x9c, 0x7e, 0xc5, 0xec, 0xda, 0xbf, 0x81, 0x9d, - 0x05, 0xa1, 0xff, 0x28, 0x14, 0x8d, 0x62, 0xfe, 0xc3, 0x46, 0x41, 0xcb, 0x60, 0x0a, 0x1a, 0xa8, - 0xd4, 0x2d, 0x3a, 0xd9, 0xe7, 0xcc, 0xad, 0x37, 0xbc, 0xfc, 0xe0, 0x59, 0xd7, 0x78, 0xf8, 0xac, - 0x6b, 0x3c, 0x7d, 0xd6, 0x35, 0xee, 0xee, 0x76, 0x2b, 0x0f, 0x77, 0xbb, 0x95, 0xdf, 0x77, 0xbb, - 0x95, 0xdb, 0x67, 0x0e, 0x4f, 0x88, 0x2d, 0xa7, 0xa3, 0x86, 0x1a, 0x64, 0x17, 0xfe, 0x0a, 0x00, - 0x00, 0xff, 0xff, 0x72, 0x63, 0x4f, 0x0e, 0x05, 0x0b, 0x00, 0x00, + // 1170 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcf, 0x8f, 0x14, 0xc5, + 0x17, 0xdf, 0x9e, 0x9e, 0x99, 0x9d, 0x79, 0xcc, 0xc2, 0x6e, 0x7d, 0xe1, 0x9b, 0xd9, 0x41, 0x66, + 0xd7, 0x21, 0xe8, 0x84, 0xb8, 0xdd, 0xb0, 0x18, 0x45, 0x62, 0xc4, 0x19, 0x90, 0x40, 0x10, 0x8d, + 0xbd, 0x7b, 0xe2, 0xd2, 0xa9, 0xe9, 0xae, 0xed, 0xa9, 0x30, 0x5d, 0xd5, 0x76, 0x55, 0xeb, 0xf4, + 0xd1, 0x8b, 0x9e, 0x4c, 0x88, 0x17, 0x13, 0xfd, 0x07, 0x8c, 0x27, 0x0e, 0x24, 0xfe, 0x0b, 0x78, + 0x23, 0x9c, 0x8c, 0x07, 0x20, 0xec, 0x81, 0x3f, 0x43, 0xd3, 0xd5, 0xd5, 0xbd, 0x0b, 0x0c, 0xb3, + 0x1a, 0x8d, 0x7a, 0xe9, 0x74, 0xbd, 0xfa, 0xbc, 0x57, 0x9f, 0x7a, 0xaf, 0xde, 0x0f, 0xe8, 0x78, + 0x5c, 0x84, 0x5c, 0xd8, 0x72, 0x6a, 0x7f, 0x76, 0x76, 0x44, 0x24, 0x3e, 0x6b, 0xcb, 0xa9, 0x15, + 0xc5, 0x5c, 0x72, 0xb4, 0x92, 0xef, 0x59, 0x72, 0x6a, 0xe9, 0xbd, 0xce, 0x6a, 0x2e, 0x72, 0x15, + 0xc0, 0xd6, 0xfb, 0x6a, 0xd1, 0x59, 0xc1, 0x21, 0x65, 0xdc, 0x56, 0x5f, 0x2d, 0x3a, 0x1a, 0xf0, + 0x80, 0xe7, 0xd0, 0xec, 0x4f, 0x4b, 0x37, 0xf4, 0x91, 0x5e, 0x9c, 0x46, 0x92, 0xdb, 0x61, 0x32, + 0x91, 0x54, 0xd0, 0xa0, 0x3c, 0xbf, 0x10, 0x68, 0x78, 0x57, 0xc3, 0x47, 0x58, 0x90, 0x12, 0xe3, + 0x71, 0xca, 0xf4, 0xfe, 0xeb, 0x7b, 0x37, 0x10, 0x34, 0x60, 0x94, 0xed, 0x59, 0xd2, 0x6b, 0x0d, + 0x5c, 0x0d, 0x38, 0x0f, 0x26, 0xc4, 0x56, 0xab, 0x51, 0xb2, 0x63, 0x63, 0x96, 0xea, 0xad, 0xb5, + 0xe7, 0xb7, 0x24, 0x0d, 0x89, 0x90, 0x38, 0x8c, 0x72, 0x40, 0xef, 0x6b, 0x03, 0x2a, 0xdb, 0x53, + 0xb4, 0x01, 0xd5, 0x11, 0xf7, 0xd3, 0xb6, 0xb1, 0x6e, 0xf4, 0x0f, 0x6d, 0xae, 0x5a, 0x2f, 0x38, + 0xc8, 0xda, 0x9e, 0x0e, 0xb9, 0x9f, 0x3a, 0x0a, 0x86, 0xce, 0x43, 0x13, 0x27, 0x72, 0xec, 0x52, + 0xb6, 0xc3, 0xdb, 0x15, 0xa5, 0x73, 0x7c, 0x86, 0xce, 0x20, 0x91, 0xe3, 0x6b, 0x6c, 0x87, 0x3b, + 0x0d, 0xac, 0xff, 0x50, 0x17, 0x20, 0x23, 0x8f, 0x65, 0x12, 0x13, 0xd1, 0x36, 0xd7, 0xcd, 0x7e, + 0xcb, 0xd9, 0x27, 0xe9, 0x31, 0xa8, 0x6d, 0x4f, 0x1d, 0xfc, 0x39, 0x3a, 0x01, 0x90, 0x1d, 0xe5, + 0x8e, 0x52, 0x49, 0x84, 0xe2, 0xd5, 0x72, 0x9a, 0x99, 0x64, 0x98, 0x09, 0xd0, 0x6b, 0x70, 0xa4, + 0x64, 0xa0, 0x31, 0x15, 0x85, 0x59, 0x2a, 0x8e, 0xca, 0x71, 0x07, 0x9d, 0xf7, 0x8d, 0x01, 0x8b, + 0x5b, 0x34, 0x60, 0x97, 0xb9, 0xf7, 0x77, 0x1d, 0xb9, 0x0a, 0x0d, 0x6f, 0x8c, 0x29, 0x73, 0xa9, + 0xdf, 0x36, 0xd7, 0x8d, 0x7e, 0xd3, 0x59, 0x54, 0xeb, 0x6b, 0x3e, 0x3a, 0x05, 0x87, 0xb1, 0xe7, + 0xf1, 0x84, 0x49, 0x97, 0x25, 0xe1, 0x88, 0xc4, 0xed, 0xea, 0xba, 0xd1, 0xaf, 0x3a, 0x4b, 0x5a, + 0xfa, 0x91, 0x12, 0xf6, 0xbe, 0xaa, 0xc0, 0xb2, 0x26, 0x75, 0x99, 0xc6, 0xc4, 0x93, 0x83, 0x64, + 0x7a, 0x10, 0xbb, 0x73, 0x00, 0x51, 0x32, 0x9a, 0x50, 0xcf, 0xbd, 0x45, 0x52, 0x1d, 0x93, 0xa3, + 0x56, 0x1e, 0x7e, 0xab, 0x08, 0xbf, 0x35, 0x60, 0xa9, 0xd3, 0xcc, 0x71, 0xd7, 0x49, 0xfa, 0xd7, + 0xa9, 0xa2, 0x0e, 0x34, 0x04, 0xf9, 0x34, 0x21, 0xcc, 0x23, 0xed, 0x9a, 0x02, 0x94, 0x6b, 0xf4, + 0x06, 0x98, 0x92, 0x46, 0xed, 0xba, 0xe2, 0xf2, 0xff, 0x59, 0x6f, 0x8a, 0x46, 0xc3, 0x4a, 0xdb, + 0x70, 0x32, 0xd8, 0x85, 0xff, 0x3d, 0xb8, 0xbb, 0x71, 0x24, 0xc7, 0x6c, 0x08, 0xff, 0xd6, 0xfa, + 0x19, 0xeb, 0xcd, 0xb7, 0x7a, 0x5f, 0x9a, 0x50, 0xcf, 0x5f, 0x1e, 0x3a, 0x03, 0x8d, 0x90, 0x08, + 0x81, 0x03, 0x75, 0x7b, 0xf3, 0xa5, 0xd7, 0x2b, 0x51, 0x08, 0x41, 0x35, 0x24, 0x61, 0xfe, 0x40, + 0x9b, 0x8e, 0xfa, 0xcf, 0xae, 0x95, 0xa5, 0x00, 0x4f, 0xa4, 0x3b, 0x26, 0x34, 0x18, 0x4b, 0x75, + 0xef, 0xaa, 0xb3, 0xa4, 0xa5, 0x57, 0x95, 0x10, 0xbd, 0x02, 0xcd, 0x84, 0xf1, 0xd8, 0x27, 0x31, + 0xf1, 0xd5, 0xc5, 0x1b, 0xce, 0x9e, 0x00, 0x7d, 0x02, 0x2b, 0x85, 0x91, 0x32, 0x9f, 0xd4, 0xed, + 0x0f, 0x6d, 0x76, 0x5e, 0xe0, 0xb4, 0x5d, 0x20, 0x86, 0x8d, 0x7b, 0x0f, 0xd7, 0x8c, 0xdb, 0x8f, + 0xd6, 0x0c, 0x67, 0x59, 0xab, 0x97, 0x7b, 0x68, 0x08, 0x2b, 0x64, 0x2a, 0x09, 0x13, 0x94, 0x33, + 0x97, 0x47, 0x92, 0x72, 0x26, 0xda, 0xbf, 0x2d, 0xce, 0xb9, 0xe7, 0x72, 0x89, 0xff, 0x38, 0x87, + 0xa3, 0x9b, 0xd0, 0x65, 0x9c, 0xb9, 0x5e, 0x4c, 0x25, 0xf5, 0xf0, 0xc4, 0x9d, 0x61, 0xf0, 0xc8, + 0x1c, 0x83, 0xc7, 0x19, 0x67, 0x97, 0xb4, 0xee, 0x07, 0xcf, 0xd9, 0xee, 0x7d, 0x5f, 0x81, 0x56, + 0x1e, 0x88, 0x4b, 0x3c, 0x8c, 0xb0, 0xfc, 0x67, 0xc3, 0xf1, 0x5f, 0xf7, 0xce, 0x4f, 0x06, 0x34, + 0x8a, 0x62, 0x87, 0xde, 0x87, 0x56, 0x56, 0x60, 0x48, 0xac, 0x2a, 0x45, 0xe1, 0x9d, 0x13, 0x33, + 0xde, 0xff, 0x96, 0x82, 0xa9, 0x0a, 0x79, 0x48, 0x94, 0xff, 0x02, 0xf5, 0xc1, 0xdc, 0x21, 0x44, + 0x27, 0xf1, 0xac, 0xc4, 0xb9, 0x42, 0x88, 0x93, 0x41, 0xd0, 0xc5, 0x3c, 0xc5, 0xcc, 0xb9, 0x29, + 0x76, 0xec, 0xd7, 0x17, 0x33, 0x4b, 0x67, 0x5d, 0xef, 0x5b, 0x03, 0x60, 0x8f, 0xc6, 0x73, 0x55, + 0xc4, 0xf8, 0x63, 0x55, 0xe4, 0x3c, 0x34, 0x43, 0xee, 0x93, 0x83, 0xba, 0xc1, 0x0d, 0xee, 0x93, + 0xbc, 0x1b, 0x84, 0xfa, 0xef, 0x99, 0xea, 0x61, 0x3e, 0x5b, 0x3d, 0x7a, 0x8f, 0x2b, 0xd0, 0x28, + 0x54, 0xd0, 0xbb, 0x50, 0x17, 0x94, 0x05, 0x13, 0xa2, 0x39, 0xf5, 0xe6, 0xd8, 0xb7, 0xb6, 0x14, + 0xf2, 0xea, 0x82, 0xa3, 0x75, 0xd0, 0x3b, 0x50, 0x53, 0xbd, 0x57, 0x93, 0x7b, 0x75, 0x9e, 0xf2, + 0x8d, 0x0c, 0x78, 0x75, 0xc1, 0xc9, 0x35, 0x3a, 0x03, 0xa8, 0xe7, 0xe6, 0xd0, 0xdb, 0x50, 0xcd, + 0x78, 0x2b, 0x02, 0x87, 0x37, 0x4f, 0xee, 0xb3, 0x51, 0x74, 0xe3, 0xfd, 0x61, 0xcd, 0xec, 0x39, + 0x4a, 0xa1, 0x73, 0xdb, 0x80, 0x9a, 0xb2, 0x8a, 0xae, 0x43, 0x63, 0x44, 0x25, 0x8e, 0x63, 0x5c, + 0xf8, 0xd6, 0x2e, 0xcc, 0xe4, 0x33, 0x83, 0x55, 0x8e, 0x08, 0x85, 0x2d, 0x95, 0x6d, 0x9e, 0x1c, + 0x52, 0x39, 0xc8, 0xd4, 0x9c, 0xd2, 0x00, 0xba, 0x00, 0x50, 0x7a, 0x3d, 0xeb, 0x44, 0xe6, 0x41, + 0x6e, 0x6f, 0x16, 0x6e, 0x17, 0xc3, 0x1a, 0x98, 0x22, 0x09, 0x7b, 0x5f, 0x54, 0xc0, 0xbc, 0x42, + 0x08, 0x4a, 0xa1, 0x8e, 0xc3, 0xac, 0xa8, 0xeb, 0xb7, 0x5a, 0xf6, 0xff, 0x6c, 0x34, 0xd9, 0x47, + 0x85, 0xb2, 0xe1, 0x95, 0x7b, 0x0f, 0xd7, 0x16, 0x7e, 0x7c, 0xb4, 0xd6, 0x0f, 0xa8, 0x1c, 0x27, + 0x23, 0xcb, 0xe3, 0xa1, 0x5d, 0x8c, 0x3d, 0xe5, 0x0b, 0xb3, 0x65, 0x1a, 0x11, 0xa1, 0x14, 0xc4, + 0x77, 0x4f, 0xef, 0x9c, 0x6e, 0x4d, 0x48, 0x80, 0xbd, 0xd4, 0xcd, 0x86, 0x1b, 0xf1, 0xc3, 0xd3, + 0x3b, 0xa7, 0x0d, 0x47, 0x1f, 0x88, 0x8e, 0x43, 0x33, 0xc0, 0xc2, 0x9d, 0xd0, 0x90, 0x4a, 0x15, + 0x9e, 0xaa, 0xd3, 0x08, 0xb0, 0xf8, 0x30, 0x5b, 0x23, 0x0b, 0x6a, 0x11, 0x4e, 0x49, 0x9c, 0xf7, + 0xa6, 0x61, 0xfb, 0xc1, 0xdd, 0x8d, 0xa3, 0x9a, 0xd9, 0xc0, 0xf7, 0x63, 0x22, 0xc4, 0x96, 0x8c, + 0x29, 0x0b, 0x9c, 0x1c, 0x86, 0x36, 0x61, 0x31, 0x88, 0x31, 0x93, 0xba, 0x59, 0xcd, 0xd3, 0x28, + 0x80, 0xbd, 0x9f, 0x0d, 0x30, 0xb7, 0x69, 0xf4, 0x6f, 0xfa, 0xe0, 0x0c, 0xd4, 0x25, 0x8d, 0x22, + 0x12, 0xe7, 0xa5, 0x71, 0x0e, 0x6b, 0x8d, 0xbb, 0x70, 0xec, 0xc1, 0xac, 0x8c, 0xee, 0xed, 0x1a, + 0xb0, 0x34, 0x48, 0xa6, 0x79, 0x3e, 0x5f, 0xc6, 0x12, 0x67, 0x1e, 0xc1, 0xb9, 0x05, 0xf5, 0xe0, + 0xe6, 0x7a, 0x44, 0x03, 0xd1, 0x7b, 0xd0, 0xc8, 0x5e, 0xb4, 0xeb, 0x73, 0x4f, 0x27, 0xcc, 0xc9, + 0x97, 0xd4, 0xae, 0xfd, 0xf3, 0x89, 0xb3, 0x28, 0xf4, 0x18, 0x55, 0x24, 0x8a, 0xf9, 0x27, 0x13, + 0x05, 0x2d, 0x83, 0x29, 0x68, 0xa0, 0x42, 0xd7, 0x72, 0xb2, 0xdf, 0x99, 0x33, 0xc1, 0xf0, 0xe2, + 0xbd, 0x27, 0x5d, 0xe3, 0xfe, 0x93, 0xae, 0xf1, 0xf8, 0x49, 0xd7, 0xb8, 0xbd, 0xdb, 0x5d, 0xb8, + 0xbf, 0xdb, 0x5d, 0xf8, 0x65, 0xb7, 0xbb, 0x70, 0xf3, 0xd4, 0xc1, 0x01, 0xb1, 0xe5, 0x74, 0x54, + 0x57, 0x85, 0xec, 0xdc, 0xef, 0x01, 0x00, 0x00, 0xff, 0xff, 0xdc, 0x58, 0xe5, 0xd5, 0x23, 0x0c, + 0x00, 0x00, } func (m *Tx) Marshal() (dAtA []byte, err error) { @@ -1448,6 +1550,87 @@ func (m *TxBody) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *TxBodyCompat) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TxBodyCompat) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TxBodyCompat) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.NonCriticalExtensionOptions) > 0 { + for iNdEx := len(m.NonCriticalExtensionOptions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.NonCriticalExtensionOptions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7f + i-- + dAtA[i] = 0xfa + } + } + if len(m.ExtensionOptions) > 0 { + for iNdEx := len(m.ExtensionOptions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ExtensionOptions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3f + i-- + dAtA[i] = 0xfa + } + } + if m.TimeoutHeight != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.TimeoutHeight)) + i-- + dAtA[i] = 0x18 + } + if len(m.Memo) > 0 { + i -= len(m.Memo) + copy(dAtA[i:], m.Memo) + i = encodeVarintTx(dAtA, i, uint64(len(m.Memo))) + i-- + dAtA[i] = 0x12 + } + if len(m.Messages) > 0 { + for iNdEx := len(m.Messages) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Messages[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func (m *AuthInfo) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2019,6 +2202,40 @@ func (m *TxBody) Size() (n int) { return n } +func (m *TxBodyCompat) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Messages) > 0 { + for _, e := range m.Messages { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } + l = len(m.Memo) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.TimeoutHeight != 0 { + n += 1 + sovTx(uint64(m.TimeoutHeight)) + } + if len(m.ExtensionOptions) > 0 { + for _, e := range m.ExtensionOptions { + l = e.Size() + n += 2 + l + sovTx(uint64(l)) + } + } + if len(m.NonCriticalExtensionOptions) > 0 { + for _, e := range m.NonCriticalExtensionOptions { + l = e.Size() + n += 2 + l + sovTx(uint64(l)) + } + } + return n +} + func (m *AuthInfo) Size() (n int) { if m == nil { return 0 @@ -3162,6 +3379,209 @@ func (m *TxBody) Unmarshal(dAtA []byte) error { } return nil } +func (m *TxBodyCompat) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return 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 fmt.Errorf("proto: TxBodyCompat: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TxBodyCompat: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Messages = append(m.Messages, &any.Any{}) + if err := m.Messages[len(m.Messages)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Memo", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Memo = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TimeoutHeight", wireType) + } + m.TimeoutHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TimeoutHeight |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 1023: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtensionOptions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ExtensionOptions = append(m.ExtensionOptions, &any.Any{}) + if err := m.ExtensionOptions[len(m.ExtensionOptions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2047: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NonCriticalExtensionOptions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NonCriticalExtensionOptions = append(m.NonCriticalExtensionOptions, &any.Any{}) + if err := m.NonCriticalExtensionOptions[len(m.NonCriticalExtensionOptions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *AuthInfo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/auth/tx/builder.go b/x/auth/tx/builder.go index f4e403b4f8..d8dcc5edb3 100644 --- a/x/auth/tx/builder.go +++ b/x/auth/tx/builder.go @@ -114,14 +114,26 @@ func (w *builder) getTx() (*gogoTxWrapper, error) { if err != nil { return nil, fmt.Errorf("unable to convert messages: %w", err) } - body := &txv1beta1.TxBody{ - Messages: anyMsgs, - Memo: w.memo, - TimeoutHeight: w.timeoutHeight, - TimeoutTimestamp: timestamppb.New(w.timeoutTimestamp), - Unordered: w.unordered, - ExtensionOptions: intoAnyV2(w.extensionOptions), - NonCriticalExtensionOptions: intoAnyV2(w.nonCriticalExtensionOptions), + + var body proto.Message + if !w.unordered && (w.timeoutTimestamp.IsZero() || w.timeoutTimestamp.Unix() == 0) { + body = &txv1beta1.TxBodyCompat{ + Messages: anyMsgs, + Memo: w.memo, + TimeoutHeight: w.timeoutHeight, + ExtensionOptions: intoAnyV2(w.extensionOptions), + NonCriticalExtensionOptions: intoAnyV2(w.nonCriticalExtensionOptions), + } + } else { + body = &txv1beta1.TxBody{ + Messages: anyMsgs, + Memo: w.memo, + TimeoutHeight: w.timeoutHeight, + TimeoutTimestamp: timestamppb.New(w.timeoutTimestamp), + Unordered: w.unordered, + ExtensionOptions: intoAnyV2(w.extensionOptions), + NonCriticalExtensionOptions: intoAnyV2(w.nonCriticalExtensionOptions), + } } fee, err := w.getFee()