diff --git a/abci/client/socket_client.go b/abci/client/socket_client.go index b41e53ead..dcf5fa519 100644 --- a/abci/client/socket_client.go +++ b/abci/client/socket_client.go @@ -387,6 +387,8 @@ func resMatchesReq(req *types.Request, res *types.Response) (ok bool) { _, ok = res.Value.(*types.Response_Query) case *types.Request_InitChain: _, ok = res.Value.(*types.Response_InitChain) + case *types.Request_ProcessProposal: + _, ok = res.Value.(*types.Response_ProcessProposal) case *types.Request_PrepareProposal: _, ok = res.Value.(*types.Response_PrepareProposal) case *types.Request_ExtendVote: diff --git a/abci/example/kvstore/kvstore.go b/abci/example/kvstore/kvstore.go index 9d4f61887..f295243bd 100644 --- a/abci/example/kvstore/kvstore.go +++ b/abci/example/kvstore/kvstore.go @@ -290,10 +290,10 @@ func (app *Application) PrepareProposal(req types.RequestPrepareProposal) types. func (*Application) ProcessProposal(req types.RequestProcessProposal) types.ResponseProcessProposal { for _, tx := range req.Txs { if len(tx) == 0 { - return types.ResponseProcessProposal{Result: types.ResponseProcessProposal_REJECT} + return types.ResponseProcessProposal{Accept: false} } } - return types.ResponseProcessProposal{Result: types.ResponseProcessProposal_ACCEPT} + return types.ResponseProcessProposal{Accept: true} } //--------------------------------------------- diff --git a/abci/types/application.go b/abci/types/application.go index b3ebf707f..389de354e 100644 --- a/abci/types/application.go +++ b/abci/types/application.go @@ -4,6 +4,7 @@ import ( "context" ) +//go:generate ../../scripts/mockery_generate.sh Application // Application is an interface that enables any finite, deterministic state machine // to be driven by a blockchain-based replication engine via the ABCI. // All methods take a RequestXxx argument and return a ResponseXxx argument, diff --git a/abci/types/mocks/application.go b/abci/types/mocks/application.go new file mode 100644 index 000000000..30bf0f84c --- /dev/null +++ b/abci/types/mocks/application.go @@ -0,0 +1,209 @@ +// Code generated by mockery. DO NOT EDIT. + +package mocks + +import ( + mock "github.com/stretchr/testify/mock" + types "github.com/tendermint/tendermint/abci/types" +) + +// Application is an autogenerated mock type for the Application type +type Application struct { + mock.Mock +} + +// ApplySnapshotChunk provides a mock function with given fields: _a0 +func (_m *Application) ApplySnapshotChunk(_a0 types.RequestApplySnapshotChunk) types.ResponseApplySnapshotChunk { + ret := _m.Called(_a0) + + var r0 types.ResponseApplySnapshotChunk + if rf, ok := ret.Get(0).(func(types.RequestApplySnapshotChunk) types.ResponseApplySnapshotChunk); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseApplySnapshotChunk) + } + + return r0 +} + +// CheckTx provides a mock function with given fields: _a0 +func (_m *Application) CheckTx(_a0 types.RequestCheckTx) types.ResponseCheckTx { + ret := _m.Called(_a0) + + var r0 types.ResponseCheckTx + if rf, ok := ret.Get(0).(func(types.RequestCheckTx) types.ResponseCheckTx); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseCheckTx) + } + + return r0 +} + +// Commit provides a mock function with given fields: +func (_m *Application) Commit() types.ResponseCommit { + ret := _m.Called() + + var r0 types.ResponseCommit + if rf, ok := ret.Get(0).(func() types.ResponseCommit); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(types.ResponseCommit) + } + + return r0 +} + +// ExtendVote provides a mock function with given fields: _a0 +func (_m *Application) ExtendVote(_a0 types.RequestExtendVote) types.ResponseExtendVote { + ret := _m.Called(_a0) + + var r0 types.ResponseExtendVote + if rf, ok := ret.Get(0).(func(types.RequestExtendVote) types.ResponseExtendVote); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseExtendVote) + } + + return r0 +} + +// FinalizeBlock provides a mock function with given fields: _a0 +func (_m *Application) FinalizeBlock(_a0 types.RequestFinalizeBlock) types.ResponseFinalizeBlock { + ret := _m.Called(_a0) + + var r0 types.ResponseFinalizeBlock + if rf, ok := ret.Get(0).(func(types.RequestFinalizeBlock) types.ResponseFinalizeBlock); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseFinalizeBlock) + } + + return r0 +} + +// Info provides a mock function with given fields: _a0 +func (_m *Application) Info(_a0 types.RequestInfo) types.ResponseInfo { + ret := _m.Called(_a0) + + var r0 types.ResponseInfo + if rf, ok := ret.Get(0).(func(types.RequestInfo) types.ResponseInfo); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseInfo) + } + + return r0 +} + +// InitChain provides a mock function with given fields: _a0 +func (_m *Application) InitChain(_a0 types.RequestInitChain) types.ResponseInitChain { + ret := _m.Called(_a0) + + var r0 types.ResponseInitChain + if rf, ok := ret.Get(0).(func(types.RequestInitChain) types.ResponseInitChain); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseInitChain) + } + + return r0 +} + +// ListSnapshots provides a mock function with given fields: _a0 +func (_m *Application) ListSnapshots(_a0 types.RequestListSnapshots) types.ResponseListSnapshots { + ret := _m.Called(_a0) + + var r0 types.ResponseListSnapshots + if rf, ok := ret.Get(0).(func(types.RequestListSnapshots) types.ResponseListSnapshots); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseListSnapshots) + } + + return r0 +} + +// LoadSnapshotChunk provides a mock function with given fields: _a0 +func (_m *Application) LoadSnapshotChunk(_a0 types.RequestLoadSnapshotChunk) types.ResponseLoadSnapshotChunk { + ret := _m.Called(_a0) + + var r0 types.ResponseLoadSnapshotChunk + if rf, ok := ret.Get(0).(func(types.RequestLoadSnapshotChunk) types.ResponseLoadSnapshotChunk); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseLoadSnapshotChunk) + } + + return r0 +} + +// OfferSnapshot provides a mock function with given fields: _a0 +func (_m *Application) OfferSnapshot(_a0 types.RequestOfferSnapshot) types.ResponseOfferSnapshot { + ret := _m.Called(_a0) + + var r0 types.ResponseOfferSnapshot + if rf, ok := ret.Get(0).(func(types.RequestOfferSnapshot) types.ResponseOfferSnapshot); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseOfferSnapshot) + } + + return r0 +} + +// PrepareProposal provides a mock function with given fields: _a0 +func (_m *Application) PrepareProposal(_a0 types.RequestPrepareProposal) types.ResponsePrepareProposal { + ret := _m.Called(_a0) + + var r0 types.ResponsePrepareProposal + if rf, ok := ret.Get(0).(func(types.RequestPrepareProposal) types.ResponsePrepareProposal); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponsePrepareProposal) + } + + return r0 +} + +// ProcessProposal provides a mock function with given fields: _a0 +func (_m *Application) ProcessProposal(_a0 types.RequestProcessProposal) types.ResponseProcessProposal { + ret := _m.Called(_a0) + + var r0 types.ResponseProcessProposal + if rf, ok := ret.Get(0).(func(types.RequestProcessProposal) types.ResponseProcessProposal); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseProcessProposal) + } + + return r0 +} + +// Query provides a mock function with given fields: _a0 +func (_m *Application) Query(_a0 types.RequestQuery) types.ResponseQuery { + ret := _m.Called(_a0) + + var r0 types.ResponseQuery + if rf, ok := ret.Get(0).(func(types.RequestQuery) types.ResponseQuery); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseQuery) + } + + return r0 +} + +// VerifyVoteExtension provides a mock function with given fields: _a0 +func (_m *Application) VerifyVoteExtension(_a0 types.RequestVerifyVoteExtension) types.ResponseVerifyVoteExtension { + ret := _m.Called(_a0) + + var r0 types.ResponseVerifyVoteExtension + if rf, ok := ret.Get(0).(func(types.RequestVerifyVoteExtension) types.ResponseVerifyVoteExtension); ok { + r0 = rf(_a0) + } else { + r0 = ret.Get(0).(types.ResponseVerifyVoteExtension) + } + + return r0 +} diff --git a/abci/types/mocks/base.go b/abci/types/mocks/base.go new file mode 100644 index 000000000..f9d84b858 --- /dev/null +++ b/abci/types/mocks/base.go @@ -0,0 +1,189 @@ +package mocks + +import ( + types "github.com/tendermint/tendermint/abci/types" +) + +// BaseMock provides a wrapper around the generated Application mock and a BaseApplication. +// BaseMock first tries to use the mock's implementation of the method. +// If no functionality was provided for the mock by the user, BaseMock dispatches +// to the BaseApplication and uses its functionality. +// BaseMock allows users to provide mocked functionality for only the methods that matter +// for their test while avoiding a panic if the code calls Application methods that are +// not relevant to the test. +type BaseMock struct { + base *types.BaseApplication + *Application +} + +func NewBaseMock() BaseMock { + return BaseMock{ + base: types.NewBaseApplication(), + Application: new(Application), + } +} + +// Info/Query Connection +// Return application info +func (m BaseMock) Info(input types.RequestInfo) types.ResponseInfo { + var ret types.ResponseInfo + defer func() { + if r := recover(); r != nil { + ret = m.base.Info(input) + } + }() + ret = m.Application.Info(input) + return ret +} + +func (m BaseMock) Query(input types.RequestQuery) types.ResponseQuery { + var ret types.ResponseQuery + defer func() { + if r := recover(); r != nil { + ret = m.base.Query(input) + } + }() + ret = m.Application.Query(input) + return ret +} + +// Mempool Connection +// Validate a tx for the mempool +func (m BaseMock) CheckTx(input types.RequestCheckTx) types.ResponseCheckTx { + var ret types.ResponseCheckTx + defer func() { + if r := recover(); r != nil { + ret = m.base.CheckTx(input) + } + }() + ret = m.Application.CheckTx(input) + return ret +} + +// Consensus Connection +// Initialize blockchain w validators/other info from TendermintCore +func (m BaseMock) InitChain(input types.RequestInitChain) types.ResponseInitChain { + var ret types.ResponseInitChain + defer func() { + if r := recover(); r != nil { + ret = m.base.InitChain(input) + } + }() + ret = m.Application.InitChain(input) + return ret +} + +func (m BaseMock) PrepareProposal(input types.RequestPrepareProposal) types.ResponsePrepareProposal { + var ret types.ResponsePrepareProposal + defer func() { + if r := recover(); r != nil { + ret = m.base.PrepareProposal(input) + } + }() + ret = m.Application.PrepareProposal(input) + return ret +} + +func (m BaseMock) ProcessProposal(input types.RequestProcessProposal) types.ResponseProcessProposal { + var ret types.ResponseProcessProposal + defer func() { + if r := recover(); r != nil { + ret = m.base.ProcessProposal(input) + } + }() + ret = m.Application.ProcessProposal(input) + return ret +} + +// Commit the state and return the application Merkle root hash +func (m BaseMock) Commit() types.ResponseCommit { + var ret types.ResponseCommit + defer func() { + if r := recover(); r != nil { + ret = m.base.Commit() + } + }() + ret = m.Application.Commit() + return ret +} + +// Create application specific vote extension +func (m BaseMock) ExtendVote(input types.RequestExtendVote) types.ResponseExtendVote { + var ret types.ResponseExtendVote + defer func() { + if r := recover(); r != nil { + ret = m.base.ExtendVote(input) + } + }() + ret = m.Application.ExtendVote(input) + return ret +} + +// Verify application's vote extension data +func (m BaseMock) VerifyVoteExtension(input types.RequestVerifyVoteExtension) types.ResponseVerifyVoteExtension { + var ret types.ResponseVerifyVoteExtension + defer func() { + if r := recover(); r != nil { + ret = m.base.VerifyVoteExtension(input) + } + }() + ret = m.Application.VerifyVoteExtension(input) + return ret +} + +// State Sync Connection +// List available snapshots +func (m BaseMock) ListSnapshots(input types.RequestListSnapshots) types.ResponseListSnapshots { + var ret types.ResponseListSnapshots + defer func() { + if r := recover(); r != nil { + ret = m.base.ListSnapshots(input) + } + }() + ret = m.Application.ListSnapshots(input) + return ret +} + +func (m BaseMock) OfferSnapshot(input types.RequestOfferSnapshot) types.ResponseOfferSnapshot { + var ret types.ResponseOfferSnapshot + defer func() { + if r := recover(); r != nil { + ret = m.base.OfferSnapshot(input) + } + }() + ret = m.Application.OfferSnapshot(input) + return ret +} + +func (m BaseMock) LoadSnapshotChunk(input types.RequestLoadSnapshotChunk) types.ResponseLoadSnapshotChunk { + var ret types.ResponseLoadSnapshotChunk + defer func() { + if r := recover(); r != nil { + ret = m.base.LoadSnapshotChunk(input) + } + }() + ret = m.Application.LoadSnapshotChunk(input) + return ret +} + +func (m BaseMock) ApplySnapshotChunk(input types.RequestApplySnapshotChunk) types.ResponseApplySnapshotChunk { + var ret types.ResponseApplySnapshotChunk + defer func() { + if r := recover(); r != nil { + ret = m.base.ApplySnapshotChunk(input) + } + }() + ret = m.Application.ApplySnapshotChunk(input) + return ret +} + +func (m BaseMock) FinalizeBlock(input types.RequestFinalizeBlock) types.ResponseFinalizeBlock { + var ret types.ResponseFinalizeBlock + defer func() { + if r := recover(); r != nil { + ret = m.base.FinalizeBlock(input) + } + }() + ret = m.Application.FinalizeBlock(input) + return ret +} diff --git a/abci/types/result.go b/abci/types/result.go index fb76e01d0..d899b771a 100644 --- a/abci/types/result.go +++ b/abci/types/result.go @@ -58,11 +58,6 @@ func (r ResponseVerifyVoteExtension) IsErr() bool { return r.Result != ResponseVerifyVoteExtension_ACCEPT } -// IsOK returns true if Code is OK -func (r ResponseProcessProposal) IsOK() bool { - return r.Result == ResponseProcessProposal_ACCEPT -} - //--------------------------------------------------------------------------- // override JSON marshaling so we emit defaults (ie. disable omitempty) diff --git a/abci/types/types.pb.go b/abci/types/types.pb.go index 5f98a6ce5..095f8c00d 100644 --- a/abci/types/types.pb.go +++ b/abci/types/types.pb.go @@ -11,7 +11,7 @@ import ( _ "github.com/gogo/protobuf/types" github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" crypto "github.com/tendermint/tendermint/proto/tendermint/crypto" - types1 "github.com/tendermint/tendermint/proto/tendermint/types" + types "github.com/tendermint/tendermint/proto/tendermint/types" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -120,7 +120,7 @@ func (x ResponseOfferSnapshot_Result) String() string { } func (ResponseOfferSnapshot_Result) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{28, 0} + return fileDescriptor_252557cfdd89a31a, []int{33, 0} } type ResponseApplySnapshotChunk_Result int32 @@ -157,7 +157,7 @@ func (x ResponseApplySnapshotChunk_Result) String() string { } func (ResponseApplySnapshotChunk_Result) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{30, 0} + return fileDescriptor_252557cfdd89a31a, []int{35, 0} } type ResponseVerifyVoteExtension_Result int32 @@ -188,35 +188,7 @@ func (x ResponseVerifyVoteExtension_Result) String() string { } func (ResponseVerifyVoteExtension_Result) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{33, 0} -} - -type ResponseProcessProposal_Result int32 - -const ( - ResponseProcessProposal_UNKNOWN ResponseProcessProposal_Result = 0 - ResponseProcessProposal_ACCEPT ResponseProcessProposal_Result = 1 - ResponseProcessProposal_REJECT ResponseProcessProposal_Result = 2 -) - -var ResponseProcessProposal_Result_name = map[int32]string{ - 0: "UNKNOWN", - 1: "ACCEPT", - 2: "REJECT", -} - -var ResponseProcessProposal_Result_value = map[string]int32{ - "UNKNOWN": 0, - "ACCEPT": 1, - "REJECT": 2, -} - -func (x ResponseProcessProposal_Result) String() string { - return proto.EnumName(ResponseProcessProposal_Result_name, int32(x)) -} - -func (ResponseProcessProposal_Result) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{34, 0} + return fileDescriptor_252557cfdd89a31a, []int{38, 0} } type Request struct { @@ -226,7 +198,10 @@ type Request struct { // *Request_Info // *Request_InitChain // *Request_Query + // *Request_BeginBlock // *Request_CheckTx + // *Request_DeliverTx + // *Request_EndBlock // *Request_Commit // *Request_ListSnapshots // *Request_OfferSnapshot @@ -294,9 +269,18 @@ type Request_InitChain struct { type Request_Query struct { Query *RequestQuery `protobuf:"bytes,5,opt,name=query,proto3,oneof" json:"query,omitempty"` } +type Request_BeginBlock struct { + BeginBlock *RequestBeginBlock `protobuf:"bytes,6,opt,name=begin_block,json=beginBlock,proto3,oneof" json:"begin_block,omitempty"` +} type Request_CheckTx struct { CheckTx *RequestCheckTx `protobuf:"bytes,7,opt,name=check_tx,json=checkTx,proto3,oneof" json:"check_tx,omitempty"` } +type Request_DeliverTx struct { + DeliverTx *RequestDeliverTx `protobuf:"bytes,8,opt,name=deliver_tx,json=deliverTx,proto3,oneof" json:"deliver_tx,omitempty"` +} +type Request_EndBlock struct { + EndBlock *RequestEndBlock `protobuf:"bytes,9,opt,name=end_block,json=endBlock,proto3,oneof" json:"end_block,omitempty"` +} type Request_Commit struct { Commit *RequestCommit `protobuf:"bytes,10,opt,name=commit,proto3,oneof" json:"commit,omitempty"` } @@ -333,7 +317,10 @@ func (*Request_Flush) isRequest_Value() {} func (*Request_Info) isRequest_Value() {} func (*Request_InitChain) isRequest_Value() {} func (*Request_Query) isRequest_Value() {} +func (*Request_BeginBlock) isRequest_Value() {} func (*Request_CheckTx) isRequest_Value() {} +func (*Request_DeliverTx) isRequest_Value() {} +func (*Request_EndBlock) isRequest_Value() {} func (*Request_Commit) isRequest_Value() {} func (*Request_ListSnapshots) isRequest_Value() {} func (*Request_OfferSnapshot) isRequest_Value() {} @@ -387,6 +374,13 @@ func (m *Request) GetQuery() *RequestQuery { return nil } +func (m *Request) GetBeginBlock() *RequestBeginBlock { + if x, ok := m.GetValue().(*Request_BeginBlock); ok { + return x.BeginBlock + } + return nil +} + func (m *Request) GetCheckTx() *RequestCheckTx { if x, ok := m.GetValue().(*Request_CheckTx); ok { return x.CheckTx @@ -394,6 +388,20 @@ func (m *Request) GetCheckTx() *RequestCheckTx { return nil } +func (m *Request) GetDeliverTx() *RequestDeliverTx { + if x, ok := m.GetValue().(*Request_DeliverTx); ok { + return x.DeliverTx + } + return nil +} + +func (m *Request) GetEndBlock() *RequestEndBlock { + if x, ok := m.GetValue().(*Request_EndBlock); ok { + return x.EndBlock + } + return nil +} + func (m *Request) GetCommit() *RequestCommit { if x, ok := m.GetValue().(*Request_Commit); ok { return x.Commit @@ -472,7 +480,10 @@ func (*Request) XXX_OneofWrappers() []interface{} { (*Request_Info)(nil), (*Request_InitChain)(nil), (*Request_Query)(nil), + (*Request_BeginBlock)(nil), (*Request_CheckTx)(nil), + (*Request_DeliverTx)(nil), + (*Request_EndBlock)(nil), (*Request_Commit)(nil), (*Request_ListSnapshots)(nil), (*Request_OfferSnapshot)(nil), @@ -530,6 +541,74 @@ func (m *RequestEcho) GetMessage() string { return "" } +type RequestBeginBlock struct { + Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + Header types.Header `protobuf:"bytes,2,opt,name=header,proto3" json:"header"` + LastCommitInfo LastCommitInfo `protobuf:"bytes,3,opt,name=last_commit_info,json=lastCommitInfo,proto3" json:"last_commit_info"` + ByzantineValidators []Evidence `protobuf:"bytes,4,rep,name=byzantine_validators,json=byzantineValidators,proto3" json:"byzantine_validators"` +} + +func (m *RequestBeginBlock) Reset() { *m = RequestBeginBlock{} } +func (m *RequestBeginBlock) String() string { return proto.CompactTextString(m) } +func (*RequestBeginBlock) ProtoMessage() {} +func (*RequestBeginBlock) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{2} +} +func (m *RequestBeginBlock) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestBeginBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestBeginBlock.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 *RequestBeginBlock) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestBeginBlock.Merge(m, src) +} +func (m *RequestBeginBlock) XXX_Size() int { + return m.Size() +} +func (m *RequestBeginBlock) XXX_DiscardUnknown() { + xxx_messageInfo_RequestBeginBlock.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestBeginBlock proto.InternalMessageInfo + +func (m *RequestBeginBlock) GetHash() []byte { + if m != nil { + return m.Hash + } + return nil +} + +func (m *RequestBeginBlock) GetHeader() types.Header { + if m != nil { + return m.Header + } + return types.Header{} +} + +func (m *RequestBeginBlock) GetLastCommitInfo() LastCommitInfo { + if m != nil { + return m.LastCommitInfo + } + return LastCommitInfo{} +} + +func (m *RequestBeginBlock) GetByzantineValidators() []Evidence { + if m != nil { + return m.ByzantineValidators + } + return nil +} + type RequestFlush struct { } @@ -537,7 +616,7 @@ func (m *RequestFlush) Reset() { *m = RequestFlush{} } func (m *RequestFlush) String() string { return proto.CompactTextString(m) } func (*RequestFlush) ProtoMessage() {} func (*RequestFlush) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{2} + return fileDescriptor_252557cfdd89a31a, []int{3} } func (m *RequestFlush) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -577,7 +656,7 @@ func (m *RequestInfo) Reset() { *m = RequestInfo{} } func (m *RequestInfo) String() string { return proto.CompactTextString(m) } func (*RequestInfo) ProtoMessage() {} func (*RequestInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{3} + return fileDescriptor_252557cfdd89a31a, []int{4} } func (m *RequestInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -635,19 +714,19 @@ func (m *RequestInfo) GetAbciVersion() string { } type RequestInitChain struct { - Time time.Time `protobuf:"bytes,1,opt,name=time,proto3,stdtime" json:"time"` - ChainId string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` - ConsensusParams *types1.ConsensusParams `protobuf:"bytes,3,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"` - Validators []ValidatorUpdate `protobuf:"bytes,4,rep,name=validators,proto3" json:"validators"` - AppStateBytes []byte `protobuf:"bytes,5,opt,name=app_state_bytes,json=appStateBytes,proto3" json:"app_state_bytes,omitempty"` - InitialHeight int64 `protobuf:"varint,6,opt,name=initial_height,json=initialHeight,proto3" json:"initial_height,omitempty"` + Time time.Time `protobuf:"bytes,1,opt,name=time,proto3,stdtime" json:"time"` + ChainId string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + ConsensusParams *types.ConsensusParams `protobuf:"bytes,3,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"` + Validators []ValidatorUpdate `protobuf:"bytes,4,rep,name=validators,proto3" json:"validators"` + AppStateBytes []byte `protobuf:"bytes,5,opt,name=app_state_bytes,json=appStateBytes,proto3" json:"app_state_bytes,omitempty"` + InitialHeight int64 `protobuf:"varint,6,opt,name=initial_height,json=initialHeight,proto3" json:"initial_height,omitempty"` } func (m *RequestInitChain) Reset() { *m = RequestInitChain{} } func (m *RequestInitChain) String() string { return proto.CompactTextString(m) } func (*RequestInitChain) ProtoMessage() {} func (*RequestInitChain) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{4} + return fileDescriptor_252557cfdd89a31a, []int{5} } func (m *RequestInitChain) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -690,7 +769,7 @@ func (m *RequestInitChain) GetChainId() string { return "" } -func (m *RequestInitChain) GetConsensusParams() *types1.ConsensusParams { +func (m *RequestInitChain) GetConsensusParams() *types.ConsensusParams { if m != nil { return m.ConsensusParams } @@ -729,7 +808,7 @@ func (m *RequestQuery) Reset() { *m = RequestQuery{} } func (m *RequestQuery) String() string { return proto.CompactTextString(m) } func (*RequestQuery) ProtoMessage() {} func (*RequestQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{5} + return fileDescriptor_252557cfdd89a31a, []int{6} } func (m *RequestQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -786,6 +865,94 @@ func (m *RequestQuery) GetProve() bool { return false } +type RequestDeliverTx struct { + Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` +} + +func (m *RequestDeliverTx) Reset() { *m = RequestDeliverTx{} } +func (m *RequestDeliverTx) String() string { return proto.CompactTextString(m) } +func (*RequestDeliverTx) ProtoMessage() {} +func (*RequestDeliverTx) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{7} +} +func (m *RequestDeliverTx) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestDeliverTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestDeliverTx.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 *RequestDeliverTx) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestDeliverTx.Merge(m, src) +} +func (m *RequestDeliverTx) XXX_Size() int { + return m.Size() +} +func (m *RequestDeliverTx) XXX_DiscardUnknown() { + xxx_messageInfo_RequestDeliverTx.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestDeliverTx proto.InternalMessageInfo + +func (m *RequestDeliverTx) GetTx() []byte { + if m != nil { + return m.Tx + } + return nil +} + +type RequestEndBlock struct { + Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` +} + +func (m *RequestEndBlock) Reset() { *m = RequestEndBlock{} } +func (m *RequestEndBlock) String() string { return proto.CompactTextString(m) } +func (*RequestEndBlock) ProtoMessage() {} +func (*RequestEndBlock) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{8} +} +func (m *RequestEndBlock) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequestEndBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RequestEndBlock.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 *RequestEndBlock) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestEndBlock.Merge(m, src) +} +func (m *RequestEndBlock) XXX_Size() int { + return m.Size() +} +func (m *RequestEndBlock) XXX_DiscardUnknown() { + xxx_messageInfo_RequestEndBlock.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestEndBlock proto.InternalMessageInfo + +func (m *RequestEndBlock) GetHeight() int64 { + if m != nil { + return m.Height + } + return 0 +} + type RequestCheckTx struct { Tx []byte `protobuf:"bytes,1,opt,name=tx,proto3" json:"tx,omitempty"` Type CheckTxType `protobuf:"varint,2,opt,name=type,proto3,enum=tendermint.abci.CheckTxType" json:"type,omitempty"` @@ -795,7 +962,7 @@ func (m *RequestCheckTx) Reset() { *m = RequestCheckTx{} } func (m *RequestCheckTx) String() string { return proto.CompactTextString(m) } func (*RequestCheckTx) ProtoMessage() {} func (*RequestCheckTx) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{6} + return fileDescriptor_252557cfdd89a31a, []int{9} } func (m *RequestCheckTx) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -845,7 +1012,7 @@ func (m *RequestCommit) Reset() { *m = RequestCommit{} } func (m *RequestCommit) String() string { return proto.CompactTextString(m) } func (*RequestCommit) ProtoMessage() {} func (*RequestCommit) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{7} + return fileDescriptor_252557cfdd89a31a, []int{10} } func (m *RequestCommit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -882,7 +1049,7 @@ func (m *RequestListSnapshots) Reset() { *m = RequestListSnapshots{} } func (m *RequestListSnapshots) String() string { return proto.CompactTextString(m) } func (*RequestListSnapshots) ProtoMessage() {} func (*RequestListSnapshots) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{8} + return fileDescriptor_252557cfdd89a31a, []int{11} } func (m *RequestListSnapshots) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -921,7 +1088,7 @@ func (m *RequestOfferSnapshot) Reset() { *m = RequestOfferSnapshot{} } func (m *RequestOfferSnapshot) String() string { return proto.CompactTextString(m) } func (*RequestOfferSnapshot) ProtoMessage() {} func (*RequestOfferSnapshot) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{9} + return fileDescriptor_252557cfdd89a31a, []int{12} } func (m *RequestOfferSnapshot) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -975,7 +1142,7 @@ func (m *RequestLoadSnapshotChunk) Reset() { *m = RequestLoadSnapshotChu func (m *RequestLoadSnapshotChunk) String() string { return proto.CompactTextString(m) } func (*RequestLoadSnapshotChunk) ProtoMessage() {} func (*RequestLoadSnapshotChunk) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{10} + return fileDescriptor_252557cfdd89a31a, []int{13} } func (m *RequestLoadSnapshotChunk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1036,7 +1203,7 @@ func (m *RequestApplySnapshotChunk) Reset() { *m = RequestApplySnapshotC func (m *RequestApplySnapshotChunk) String() string { return proto.CompactTextString(m) } func (*RequestApplySnapshotChunk) ProtoMessage() {} func (*RequestApplySnapshotChunk) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{11} + return fileDescriptor_252557cfdd89a31a, []int{14} } func (m *RequestApplySnapshotChunk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1095,14 +1262,14 @@ type RequestPrepareProposal struct { BlockDataSize int64 `protobuf:"varint,2,opt,name=block_data_size,json=blockDataSize,proto3" json:"block_data_size,omitempty"` // votes includes all votes from the previous block. This contains vote extension data that can be used in proposal // preparation. The votes here will then form the last commit that gets sent in the proposed block. - Votes []*types1.Vote `protobuf:"bytes,3,rep,name=votes,proto3" json:"votes,omitempty"` + Votes []*types.Vote `protobuf:"bytes,3,rep,name=votes,proto3" json:"votes,omitempty"` } func (m *RequestPrepareProposal) Reset() { *m = RequestPrepareProposal{} } func (m *RequestPrepareProposal) String() string { return proto.CompactTextString(m) } func (*RequestPrepareProposal) ProtoMessage() {} func (*RequestPrepareProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{12} + return fileDescriptor_252557cfdd89a31a, []int{15} } func (m *RequestPrepareProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1145,7 +1312,7 @@ func (m *RequestPrepareProposal) GetBlockDataSize() int64 { return 0 } -func (m *RequestPrepareProposal) GetVotes() []*types1.Vote { +func (m *RequestPrepareProposal) GetVotes() []*types.Vote { if m != nil { return m.Votes } @@ -1154,14 +1321,14 @@ func (m *RequestPrepareProposal) GetVotes() []*types1.Vote { // Extends a vote with application-side injection type RequestExtendVote struct { - Vote *types1.Vote `protobuf:"bytes,1,opt,name=vote,proto3" json:"vote,omitempty"` + Vote *types.Vote `protobuf:"bytes,1,opt,name=vote,proto3" json:"vote,omitempty"` } func (m *RequestExtendVote) Reset() { *m = RequestExtendVote{} } func (m *RequestExtendVote) String() string { return proto.CompactTextString(m) } func (*RequestExtendVote) ProtoMessage() {} func (*RequestExtendVote) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{13} + return fileDescriptor_252557cfdd89a31a, []int{16} } func (m *RequestExtendVote) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1190,7 +1357,7 @@ func (m *RequestExtendVote) XXX_DiscardUnknown() { var xxx_messageInfo_RequestExtendVote proto.InternalMessageInfo -func (m *RequestExtendVote) GetVote() *types1.Vote { +func (m *RequestExtendVote) GetVote() *types.Vote { if m != nil { return m.Vote } @@ -1199,14 +1366,14 @@ func (m *RequestExtendVote) GetVote() *types1.Vote { // Verify the vote extension type RequestVerifyVoteExtension struct { - Vote *types1.Vote `protobuf:"bytes,1,opt,name=vote,proto3" json:"vote,omitempty"` + Vote *types.Vote `protobuf:"bytes,1,opt,name=vote,proto3" json:"vote,omitempty"` } func (m *RequestVerifyVoteExtension) Reset() { *m = RequestVerifyVoteExtension{} } func (m *RequestVerifyVoteExtension) String() string { return proto.CompactTextString(m) } func (*RequestVerifyVoteExtension) ProtoMessage() {} func (*RequestVerifyVoteExtension) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{14} + return fileDescriptor_252557cfdd89a31a, []int{17} } func (m *RequestVerifyVoteExtension) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1235,7 +1402,7 @@ func (m *RequestVerifyVoteExtension) XXX_DiscardUnknown() { var xxx_messageInfo_RequestVerifyVoteExtension proto.InternalMessageInfo -func (m *RequestVerifyVoteExtension) GetVote() *types1.Vote { +func (m *RequestVerifyVoteExtension) GetVote() *types.Vote { if m != nil { return m.Vote } @@ -1243,15 +1410,18 @@ func (m *RequestVerifyVoteExtension) GetVote() *types1.Vote { } type RequestProcessProposal struct { - Header types1.Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header"` - Txs [][]byte `protobuf:"bytes,2,rep,name=txs,proto3" json:"txs,omitempty"` + Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + Header types.Header `protobuf:"bytes,2,opt,name=header,proto3" json:"header"` + Txs [][]byte `protobuf:"bytes,3,rep,name=txs,proto3" json:"txs,omitempty"` + LastCommitInfo LastCommitInfo `protobuf:"bytes,4,opt,name=last_commit_info,json=lastCommitInfo,proto3" json:"last_commit_info"` + ByzantineValidators []Evidence `protobuf:"bytes,5,rep,name=byzantine_validators,json=byzantineValidators,proto3" json:"byzantine_validators"` } func (m *RequestProcessProposal) Reset() { *m = RequestProcessProposal{} } func (m *RequestProcessProposal) String() string { return proto.CompactTextString(m) } func (*RequestProcessProposal) ProtoMessage() {} func (*RequestProcessProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{15} + return fileDescriptor_252557cfdd89a31a, []int{18} } func (m *RequestProcessProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1280,11 +1450,18 @@ func (m *RequestProcessProposal) XXX_DiscardUnknown() { var xxx_messageInfo_RequestProcessProposal proto.InternalMessageInfo -func (m *RequestProcessProposal) GetHeader() types1.Header { +func (m *RequestProcessProposal) GetHash() []byte { + if m != nil { + return m.Hash + } + return nil +} + +func (m *RequestProcessProposal) GetHeader() types.Header { if m != nil { return m.Header } - return types1.Header{} + return types.Header{} } func (m *RequestProcessProposal) GetTxs() [][]byte { @@ -1294,11 +1471,25 @@ func (m *RequestProcessProposal) GetTxs() [][]byte { return nil } +func (m *RequestProcessProposal) GetLastCommitInfo() LastCommitInfo { + if m != nil { + return m.LastCommitInfo + } + return LastCommitInfo{} +} + +func (m *RequestProcessProposal) GetByzantineValidators() []Evidence { + if m != nil { + return m.ByzantineValidators + } + return nil +} + type RequestFinalizeBlock struct { Txs [][]byte `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"` Hash []byte `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"` Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` - Header types1.Header `protobuf:"bytes,4,opt,name=header,proto3" json:"header"` + Header types.Header `protobuf:"bytes,4,opt,name=header,proto3" json:"header"` LastCommitInfo LastCommitInfo `protobuf:"bytes,5,opt,name=last_commit_info,json=lastCommitInfo,proto3" json:"last_commit_info"` ByzantineValidators []Evidence `protobuf:"bytes,6,rep,name=byzantine_validators,json=byzantineValidators,proto3" json:"byzantine_validators"` } @@ -1307,7 +1498,7 @@ func (m *RequestFinalizeBlock) Reset() { *m = RequestFinalizeBlock{} } func (m *RequestFinalizeBlock) String() string { return proto.CompactTextString(m) } func (*RequestFinalizeBlock) ProtoMessage() {} func (*RequestFinalizeBlock) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{16} + return fileDescriptor_252557cfdd89a31a, []int{19} } func (m *RequestFinalizeBlock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1357,11 +1548,11 @@ func (m *RequestFinalizeBlock) GetHeight() int64 { return 0 } -func (m *RequestFinalizeBlock) GetHeader() types1.Header { +func (m *RequestFinalizeBlock) GetHeader() types.Header { if m != nil { return m.Header } - return types1.Header{} + return types.Header{} } func (m *RequestFinalizeBlock) GetLastCommitInfo() LastCommitInfo { @@ -1386,7 +1577,10 @@ type Response struct { // *Response_Info // *Response_InitChain // *Response_Query + // *Response_BeginBlock // *Response_CheckTx + // *Response_DeliverTx + // *Response_EndBlock // *Response_Commit // *Response_ListSnapshots // *Response_OfferSnapshot @@ -1404,7 +1598,7 @@ func (m *Response) Reset() { *m = Response{} } func (m *Response) String() string { return proto.CompactTextString(m) } func (*Response) ProtoMessage() {} func (*Response) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{17} + return fileDescriptor_252557cfdd89a31a, []int{20} } func (m *Response) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1457,9 +1651,18 @@ type Response_InitChain struct { type Response_Query struct { Query *ResponseQuery `protobuf:"bytes,6,opt,name=query,proto3,oneof" json:"query,omitempty"` } +type Response_BeginBlock struct { + BeginBlock *ResponseBeginBlock `protobuf:"bytes,7,opt,name=begin_block,json=beginBlock,proto3,oneof" json:"begin_block,omitempty"` +} type Response_CheckTx struct { CheckTx *ResponseCheckTx `protobuf:"bytes,8,opt,name=check_tx,json=checkTx,proto3,oneof" json:"check_tx,omitempty"` } +type Response_DeliverTx struct { + DeliverTx *ResponseDeliverTx `protobuf:"bytes,9,opt,name=deliver_tx,json=deliverTx,proto3,oneof" json:"deliver_tx,omitempty"` +} +type Response_EndBlock struct { + EndBlock *ResponseEndBlock `protobuf:"bytes,10,opt,name=end_block,json=endBlock,proto3,oneof" json:"end_block,omitempty"` +} type Response_Commit struct { Commit *ResponseCommit `protobuf:"bytes,11,opt,name=commit,proto3,oneof" json:"commit,omitempty"` } @@ -1497,7 +1700,10 @@ func (*Response_Flush) isResponse_Value() {} func (*Response_Info) isResponse_Value() {} func (*Response_InitChain) isResponse_Value() {} func (*Response_Query) isResponse_Value() {} +func (*Response_BeginBlock) isResponse_Value() {} func (*Response_CheckTx) isResponse_Value() {} +func (*Response_DeliverTx) isResponse_Value() {} +func (*Response_EndBlock) isResponse_Value() {} func (*Response_Commit) isResponse_Value() {} func (*Response_ListSnapshots) isResponse_Value() {} func (*Response_OfferSnapshot) isResponse_Value() {} @@ -1558,6 +1764,13 @@ func (m *Response) GetQuery() *ResponseQuery { return nil } +func (m *Response) GetBeginBlock() *ResponseBeginBlock { + if x, ok := m.GetValue().(*Response_BeginBlock); ok { + return x.BeginBlock + } + return nil +} + func (m *Response) GetCheckTx() *ResponseCheckTx { if x, ok := m.GetValue().(*Response_CheckTx); ok { return x.CheckTx @@ -1565,6 +1778,20 @@ func (m *Response) GetCheckTx() *ResponseCheckTx { return nil } +func (m *Response) GetDeliverTx() *ResponseDeliverTx { + if x, ok := m.GetValue().(*Response_DeliverTx); ok { + return x.DeliverTx + } + return nil +} + +func (m *Response) GetEndBlock() *ResponseEndBlock { + if x, ok := m.GetValue().(*Response_EndBlock); ok { + return x.EndBlock + } + return nil +} + func (m *Response) GetCommit() *ResponseCommit { if x, ok := m.GetValue().(*Response_Commit); ok { return x.Commit @@ -1644,7 +1871,10 @@ func (*Response) XXX_OneofWrappers() []interface{} { (*Response_Info)(nil), (*Response_InitChain)(nil), (*Response_Query)(nil), + (*Response_BeginBlock)(nil), (*Response_CheckTx)(nil), + (*Response_DeliverTx)(nil), + (*Response_EndBlock)(nil), (*Response_Commit)(nil), (*Response_ListSnapshots)(nil), (*Response_OfferSnapshot)(nil), @@ -1667,7 +1897,7 @@ func (m *ResponseException) Reset() { *m = ResponseException{} } func (m *ResponseException) String() string { return proto.CompactTextString(m) } func (*ResponseException) ProtoMessage() {} func (*ResponseException) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{18} + return fileDescriptor_252557cfdd89a31a, []int{21} } func (m *ResponseException) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1711,7 +1941,7 @@ func (m *ResponseEcho) Reset() { *m = ResponseEcho{} } func (m *ResponseEcho) String() string { return proto.CompactTextString(m) } func (*ResponseEcho) ProtoMessage() {} func (*ResponseEcho) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{19} + return fileDescriptor_252557cfdd89a31a, []int{22} } func (m *ResponseEcho) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1754,7 +1984,7 @@ func (m *ResponseFlush) Reset() { *m = ResponseFlush{} } func (m *ResponseFlush) String() string { return proto.CompactTextString(m) } func (*ResponseFlush) ProtoMessage() {} func (*ResponseFlush) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{20} + return fileDescriptor_252557cfdd89a31a, []int{23} } func (m *ResponseFlush) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1796,7 +2026,7 @@ func (m *ResponseInfo) Reset() { *m = ResponseInfo{} } func (m *ResponseInfo) String() string { return proto.CompactTextString(m) } func (*ResponseInfo) ProtoMessage() {} func (*ResponseInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{21} + return fileDescriptor_252557cfdd89a31a, []int{24} } func (m *ResponseInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1861,16 +2091,16 @@ func (m *ResponseInfo) GetLastBlockAppHash() []byte { } type ResponseInitChain struct { - ConsensusParams *types1.ConsensusParams `protobuf:"bytes,1,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"` - Validators []ValidatorUpdate `protobuf:"bytes,2,rep,name=validators,proto3" json:"validators"` - AppHash []byte `protobuf:"bytes,3,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` + ConsensusParams *types.ConsensusParams `protobuf:"bytes,1,opt,name=consensus_params,json=consensusParams,proto3" json:"consensus_params,omitempty"` + Validators []ValidatorUpdate `protobuf:"bytes,2,rep,name=validators,proto3" json:"validators"` + AppHash []byte `protobuf:"bytes,3,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` } func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} } func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) } func (*ResponseInitChain) ProtoMessage() {} func (*ResponseInitChain) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{22} + return fileDescriptor_252557cfdd89a31a, []int{25} } func (m *ResponseInitChain) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1899,7 +2129,7 @@ func (m *ResponseInitChain) XXX_DiscardUnknown() { var xxx_messageInfo_ResponseInitChain proto.InternalMessageInfo -func (m *ResponseInitChain) GetConsensusParams() *types1.ConsensusParams { +func (m *ResponseInitChain) GetConsensusParams() *types.ConsensusParams { if m != nil { return m.ConsensusParams } @@ -1937,7 +2167,7 @@ func (m *ResponseQuery) Reset() { *m = ResponseQuery{} } func (m *ResponseQuery) String() string { return proto.CompactTextString(m) } func (*ResponseQuery) ProtoMessage() {} func (*ResponseQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{23} + return fileDescriptor_252557cfdd89a31a, []int{26} } func (m *ResponseQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2029,6 +2259,50 @@ func (m *ResponseQuery) GetCodespace() string { return "" } +type ResponseBeginBlock struct { + Events []Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` +} + +func (m *ResponseBeginBlock) Reset() { *m = ResponseBeginBlock{} } +func (m *ResponseBeginBlock) String() string { return proto.CompactTextString(m) } +func (*ResponseBeginBlock) ProtoMessage() {} +func (*ResponseBeginBlock) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{27} +} +func (m *ResponseBeginBlock) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseBeginBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseBeginBlock.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 *ResponseBeginBlock) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseBeginBlock.Merge(m, src) +} +func (m *ResponseBeginBlock) XXX_Size() int { + return m.Size() +} +func (m *ResponseBeginBlock) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseBeginBlock.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseBeginBlock proto.InternalMessageInfo + +func (m *ResponseBeginBlock) GetEvents() []Event { + if m != nil { + return m.Events + } + return nil +} + type ResponseCheckTx struct { Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` @@ -2049,7 +2323,7 @@ func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} } func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) } func (*ResponseCheckTx) ProtoMessage() {} func (*ResponseCheckTx) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{24} + return fileDescriptor_252557cfdd89a31a, []int{28} } func (m *ResponseCheckTx) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2170,7 +2444,7 @@ func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} } func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) } func (*ResponseDeliverTx) ProtoMessage() {} func (*ResponseDeliverTx) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{25} + return fileDescriptor_252557cfdd89a31a, []int{29} } func (m *ResponseDeliverTx) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2255,24 +2529,84 @@ func (m *ResponseDeliverTx) GetCodespace() string { return "" } -type ResponseCommit struct { - // reserve 1 - Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` - RetainHeight int64 `protobuf:"varint,3,opt,name=retain_height,json=retainHeight,proto3" json:"retain_height,omitempty"` +type ResponseEndBlock struct { + ValidatorUpdates []ValidatorUpdate `protobuf:"bytes,1,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates"` + ConsensusParamUpdates *types.ConsensusParams `protobuf:"bytes,2,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"` + Events []Event `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"` } -func (m *ResponseCommit) Reset() { *m = ResponseCommit{} } -func (m *ResponseCommit) String() string { return proto.CompactTextString(m) } -func (*ResponseCommit) ProtoMessage() {} -func (*ResponseCommit) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{26} +func (m *ResponseEndBlock) Reset() { *m = ResponseEndBlock{} } +func (m *ResponseEndBlock) String() string { return proto.CompactTextString(m) } +func (*ResponseEndBlock) ProtoMessage() {} +func (*ResponseEndBlock) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{30} } -func (m *ResponseCommit) XXX_Unmarshal(b []byte) error { +func (m *ResponseEndBlock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *ResponseCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *ResponseEndBlock) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_ResponseCommit.Marshal(b, m, deterministic) + return xxx_messageInfo_ResponseEndBlock.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 *ResponseEndBlock) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponseEndBlock.Merge(m, src) +} +func (m *ResponseEndBlock) XXX_Size() int { + return m.Size() +} +func (m *ResponseEndBlock) XXX_DiscardUnknown() { + xxx_messageInfo_ResponseEndBlock.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponseEndBlock proto.InternalMessageInfo + +func (m *ResponseEndBlock) GetValidatorUpdates() []ValidatorUpdate { + if m != nil { + return m.ValidatorUpdates + } + return nil +} + +func (m *ResponseEndBlock) GetConsensusParamUpdates() *types.ConsensusParams { + if m != nil { + return m.ConsensusParamUpdates + } + return nil +} + +func (m *ResponseEndBlock) GetEvents() []Event { + if m != nil { + return m.Events + } + return nil +} + +type ResponseCommit struct { + // reserve 1 + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + RetainHeight int64 `protobuf:"varint,3,opt,name=retain_height,json=retainHeight,proto3" json:"retain_height,omitempty"` +} + +func (m *ResponseCommit) Reset() { *m = ResponseCommit{} } +func (m *ResponseCommit) String() string { return proto.CompactTextString(m) } +func (*ResponseCommit) ProtoMessage() {} +func (*ResponseCommit) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{31} +} +func (m *ResponseCommit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResponseCommit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResponseCommit.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2316,7 +2650,7 @@ func (m *ResponseListSnapshots) Reset() { *m = ResponseListSnapshots{} } func (m *ResponseListSnapshots) String() string { return proto.CompactTextString(m) } func (*ResponseListSnapshots) ProtoMessage() {} func (*ResponseListSnapshots) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{27} + return fileDescriptor_252557cfdd89a31a, []int{32} } func (m *ResponseListSnapshots) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2360,7 +2694,7 @@ func (m *ResponseOfferSnapshot) Reset() { *m = ResponseOfferSnapshot{} } func (m *ResponseOfferSnapshot) String() string { return proto.CompactTextString(m) } func (*ResponseOfferSnapshot) ProtoMessage() {} func (*ResponseOfferSnapshot) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{28} + return fileDescriptor_252557cfdd89a31a, []int{33} } func (m *ResponseOfferSnapshot) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2404,7 +2738,7 @@ func (m *ResponseLoadSnapshotChunk) Reset() { *m = ResponseLoadSnapshotC func (m *ResponseLoadSnapshotChunk) String() string { return proto.CompactTextString(m) } func (*ResponseLoadSnapshotChunk) ProtoMessage() {} func (*ResponseLoadSnapshotChunk) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{29} + return fileDescriptor_252557cfdd89a31a, []int{34} } func (m *ResponseLoadSnapshotChunk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2450,7 +2784,7 @@ func (m *ResponseApplySnapshotChunk) Reset() { *m = ResponseApplySnapsho func (m *ResponseApplySnapshotChunk) String() string { return proto.CompactTextString(m) } func (*ResponseApplySnapshotChunk) ProtoMessage() {} func (*ResponseApplySnapshotChunk) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{30} + return fileDescriptor_252557cfdd89a31a, []int{35} } func (m *ResponseApplySnapshotChunk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2508,7 +2842,7 @@ func (m *ResponsePrepareProposal) Reset() { *m = ResponsePrepareProposal func (m *ResponsePrepareProposal) String() string { return proto.CompactTextString(m) } func (*ResponsePrepareProposal) ProtoMessage() {} func (*ResponsePrepareProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{31} + return fileDescriptor_252557cfdd89a31a, []int{36} } func (m *ResponsePrepareProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2545,14 +2879,14 @@ func (m *ResponsePrepareProposal) GetBlockData() [][]byte { } type ResponseExtendVote struct { - VoteExtension *types1.VoteExtension `protobuf:"bytes,1,opt,name=vote_extension,json=voteExtension,proto3" json:"vote_extension,omitempty"` + VoteExtension *types.VoteExtension `protobuf:"bytes,1,opt,name=vote_extension,json=voteExtension,proto3" json:"vote_extension,omitempty"` } func (m *ResponseExtendVote) Reset() { *m = ResponseExtendVote{} } func (m *ResponseExtendVote) String() string { return proto.CompactTextString(m) } func (*ResponseExtendVote) ProtoMessage() {} func (*ResponseExtendVote) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{32} + return fileDescriptor_252557cfdd89a31a, []int{37} } func (m *ResponseExtendVote) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2581,7 +2915,7 @@ func (m *ResponseExtendVote) XXX_DiscardUnknown() { var xxx_messageInfo_ResponseExtendVote proto.InternalMessageInfo -func (m *ResponseExtendVote) GetVoteExtension() *types1.VoteExtension { +func (m *ResponseExtendVote) GetVoteExtension() *types.VoteExtension { if m != nil { return m.VoteExtension } @@ -2596,7 +2930,7 @@ func (m *ResponseVerifyVoteExtension) Reset() { *m = ResponseVerifyVoteE func (m *ResponseVerifyVoteExtension) String() string { return proto.CompactTextString(m) } func (*ResponseVerifyVoteExtension) ProtoMessage() {} func (*ResponseVerifyVoteExtension) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{33} + return fileDescriptor_252557cfdd89a31a, []int{38} } func (m *ResponseVerifyVoteExtension) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2633,15 +2967,18 @@ func (m *ResponseVerifyVoteExtension) GetResult() ResponseVerifyVoteExtension_Re } type ResponseProcessProposal struct { - Result ResponseProcessProposal_Result `protobuf:"varint,1,opt,name=result,proto3,enum=tendermint.abci.ResponseProcessProposal_Result" json:"result,omitempty"` - Evidence [][]byte `protobuf:"bytes,2,rep,name=evidence,proto3" json:"evidence,omitempty"` + Accept bool `protobuf:"varint,1,opt,name=accept,proto3" json:"accept,omitempty"` + AppHash []byte `protobuf:"bytes,2,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` + TxResults []*ExecTxResult `protobuf:"bytes,3,rep,name=tx_results,json=txResults,proto3" json:"tx_results,omitempty"` + ValidatorUpdates []*ValidatorUpdate `protobuf:"bytes,4,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates,omitempty"` + ConsensusParamUpdates *types.ConsensusParams `protobuf:"bytes,5,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"` } func (m *ResponseProcessProposal) Reset() { *m = ResponseProcessProposal{} } func (m *ResponseProcessProposal) String() string { return proto.CompactTextString(m) } func (*ResponseProcessProposal) ProtoMessage() {} func (*ResponseProcessProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{34} + return fileDescriptor_252557cfdd89a31a, []int{39} } func (m *ResponseProcessProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2670,32 +3007,53 @@ func (m *ResponseProcessProposal) XXX_DiscardUnknown() { var xxx_messageInfo_ResponseProcessProposal proto.InternalMessageInfo -func (m *ResponseProcessProposal) GetResult() ResponseProcessProposal_Result { +func (m *ResponseProcessProposal) GetAccept() bool { if m != nil { - return m.Result + return m.Accept + } + return false +} + +func (m *ResponseProcessProposal) GetAppHash() []byte { + if m != nil { + return m.AppHash + } + return nil +} + +func (m *ResponseProcessProposal) GetTxResults() []*ExecTxResult { + if m != nil { + return m.TxResults + } + return nil +} + +func (m *ResponseProcessProposal) GetValidatorUpdates() []*ValidatorUpdate { + if m != nil { + return m.ValidatorUpdates } - return ResponseProcessProposal_UNKNOWN + return nil } -func (m *ResponseProcessProposal) GetEvidence() [][]byte { +func (m *ResponseProcessProposal) GetConsensusParamUpdates() *types.ConsensusParams { if m != nil { - return m.Evidence + return m.ConsensusParamUpdates } return nil } type ResponseFinalizeBlock struct { - Txs []*ResponseDeliverTx `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"` - ValidatorUpdates []ValidatorUpdate `protobuf:"bytes,2,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates"` - ConsensusParamUpdates *types1.ConsensusParams `protobuf:"bytes,3,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"` - Events []Event `protobuf:"bytes,4,rep,name=events,proto3" json:"events,omitempty"` + Txs []*ResponseDeliverTx `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"` + ValidatorUpdates []ValidatorUpdate `protobuf:"bytes,2,rep,name=validator_updates,json=validatorUpdates,proto3" json:"validator_updates"` + ConsensusParamUpdates *types.ConsensusParams `protobuf:"bytes,3,opt,name=consensus_param_updates,json=consensusParamUpdates,proto3" json:"consensus_param_updates,omitempty"` + Events []Event `protobuf:"bytes,4,rep,name=events,proto3" json:"events,omitempty"` } func (m *ResponseFinalizeBlock) Reset() { *m = ResponseFinalizeBlock{} } func (m *ResponseFinalizeBlock) String() string { return proto.CompactTextString(m) } func (*ResponseFinalizeBlock) ProtoMessage() {} func (*ResponseFinalizeBlock) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{35} + return fileDescriptor_252557cfdd89a31a, []int{40} } func (m *ResponseFinalizeBlock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2738,7 +3096,7 @@ func (m *ResponseFinalizeBlock) GetValidatorUpdates() []ValidatorUpdate { return nil } -func (m *ResponseFinalizeBlock) GetConsensusParamUpdates() *types1.ConsensusParams { +func (m *ResponseFinalizeBlock) GetConsensusParamUpdates() *types.ConsensusParams { if m != nil { return m.ConsensusParamUpdates } @@ -2761,7 +3119,7 @@ func (m *LastCommitInfo) Reset() { *m = LastCommitInfo{} } func (m *LastCommitInfo) String() string { return proto.CompactTextString(m) } func (*LastCommitInfo) ProtoMessage() {} func (*LastCommitInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{36} + return fileDescriptor_252557cfdd89a31a, []int{41} } func (m *LastCommitInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2816,7 +3174,7 @@ func (m *Event) Reset() { *m = Event{} } func (m *Event) String() string { return proto.CompactTextString(m) } func (*Event) ProtoMessage() {} func (*Event) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{37} + return fileDescriptor_252557cfdd89a31a, []int{42} } func (m *Event) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2870,7 +3228,7 @@ func (m *EventAttribute) Reset() { *m = EventAttribute{} } func (m *EventAttribute) String() string { return proto.CompactTextString(m) } func (*EventAttribute) ProtoMessage() {} func (*EventAttribute) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{38} + return fileDescriptor_252557cfdd89a31a, []int{43} } func (m *EventAttribute) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2920,6 +3278,109 @@ func (m *EventAttribute) GetIndex() bool { return false } +// ExecTxResult contains results of executing one individual transaction. +// +// * Its structure is equivalent to #ResponseDeliverTx which will be deprecated/deleted +type ExecTxResult struct { + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` + Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` + GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"` + GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"` + TxEvents []Event `protobuf:"bytes,7,rep,name=tx_events,json=txEvents,proto3" json:"events,omitempty"` + Codespace string `protobuf:"bytes,8,opt,name=codespace,proto3" json:"codespace,omitempty"` +} + +func (m *ExecTxResult) Reset() { *m = ExecTxResult{} } +func (m *ExecTxResult) String() string { return proto.CompactTextString(m) } +func (*ExecTxResult) ProtoMessage() {} +func (*ExecTxResult) Descriptor() ([]byte, []int) { + return fileDescriptor_252557cfdd89a31a, []int{44} +} +func (m *ExecTxResult) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExecTxResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ExecTxResult.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 *ExecTxResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExecTxResult.Merge(m, src) +} +func (m *ExecTxResult) XXX_Size() int { + return m.Size() +} +func (m *ExecTxResult) XXX_DiscardUnknown() { + xxx_messageInfo_ExecTxResult.DiscardUnknown(m) +} + +var xxx_messageInfo_ExecTxResult proto.InternalMessageInfo + +func (m *ExecTxResult) GetCode() uint32 { + if m != nil { + return m.Code + } + return 0 +} + +func (m *ExecTxResult) GetData() []byte { + if m != nil { + return m.Data + } + return nil +} + +func (m *ExecTxResult) GetLog() string { + if m != nil { + return m.Log + } + return "" +} + +func (m *ExecTxResult) GetInfo() string { + if m != nil { + return m.Info + } + return "" +} + +func (m *ExecTxResult) GetGasWanted() int64 { + if m != nil { + return m.GasWanted + } + return 0 +} + +func (m *ExecTxResult) GetGasUsed() int64 { + if m != nil { + return m.GasUsed + } + return 0 +} + +func (m *ExecTxResult) GetTxEvents() []Event { + if m != nil { + return m.TxEvents + } + return nil +} + +func (m *ExecTxResult) GetCodespace() string { + if m != nil { + return m.Codespace + } + return "" +} + // TxResult contains results of executing the transaction. // // One usage is indexing transaction results. @@ -2934,7 +3395,7 @@ func (m *TxResult) Reset() { *m = TxResult{} } func (m *TxResult) String() string { return proto.CompactTextString(m) } func (*TxResult) ProtoMessage() {} func (*TxResult) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{39} + return fileDescriptor_252557cfdd89a31a, []int{45} } func (m *TxResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3002,7 +3463,7 @@ func (m *Validator) Reset() { *m = Validator{} } func (m *Validator) String() string { return proto.CompactTextString(m) } func (*Validator) ProtoMessage() {} func (*Validator) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{40} + return fileDescriptor_252557cfdd89a31a, []int{46} } func (m *Validator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3055,7 +3516,7 @@ func (m *ValidatorUpdate) Reset() { *m = ValidatorUpdate{} } func (m *ValidatorUpdate) String() string { return proto.CompactTextString(m) } func (*ValidatorUpdate) ProtoMessage() {} func (*ValidatorUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{41} + return fileDescriptor_252557cfdd89a31a, []int{47} } func (m *ValidatorUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3108,7 +3569,7 @@ func (m *VoteInfo) Reset() { *m = VoteInfo{} } func (m *VoteInfo) String() string { return proto.CompactTextString(m) } func (*VoteInfo) ProtoMessage() {} func (*VoteInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{42} + return fileDescriptor_252557cfdd89a31a, []int{48} } func (m *VoteInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3169,7 +3630,7 @@ func (m *Evidence) Reset() { *m = Evidence{} } func (m *Evidence) String() string { return proto.CompactTextString(m) } func (*Evidence) ProtoMessage() {} func (*Evidence) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{43} + return fileDescriptor_252557cfdd89a31a, []int{49} } func (m *Evidence) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3245,7 +3706,7 @@ func (m *Snapshot) Reset() { *m = Snapshot{} } func (m *Snapshot) String() string { return proto.CompactTextString(m) } func (*Snapshot) ProtoMessage() {} func (*Snapshot) Descriptor() ([]byte, []int) { - return fileDescriptor_252557cfdd89a31a, []int{44} + return fileDescriptor_252557cfdd89a31a, []int{50} } func (m *Snapshot) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3315,13 +3776,15 @@ func init() { proto.RegisterEnum("tendermint.abci.ResponseOfferSnapshot_Result", ResponseOfferSnapshot_Result_name, ResponseOfferSnapshot_Result_value) proto.RegisterEnum("tendermint.abci.ResponseApplySnapshotChunk_Result", ResponseApplySnapshotChunk_Result_name, ResponseApplySnapshotChunk_Result_value) proto.RegisterEnum("tendermint.abci.ResponseVerifyVoteExtension_Result", ResponseVerifyVoteExtension_Result_name, ResponseVerifyVoteExtension_Result_value) - proto.RegisterEnum("tendermint.abci.ResponseProcessProposal_Result", ResponseProcessProposal_Result_name, ResponseProcessProposal_Result_value) proto.RegisterType((*Request)(nil), "tendermint.abci.Request") proto.RegisterType((*RequestEcho)(nil), "tendermint.abci.RequestEcho") + proto.RegisterType((*RequestBeginBlock)(nil), "tendermint.abci.RequestBeginBlock") proto.RegisterType((*RequestFlush)(nil), "tendermint.abci.RequestFlush") proto.RegisterType((*RequestInfo)(nil), "tendermint.abci.RequestInfo") proto.RegisterType((*RequestInitChain)(nil), "tendermint.abci.RequestInitChain") proto.RegisterType((*RequestQuery)(nil), "tendermint.abci.RequestQuery") + proto.RegisterType((*RequestDeliverTx)(nil), "tendermint.abci.RequestDeliverTx") + proto.RegisterType((*RequestEndBlock)(nil), "tendermint.abci.RequestEndBlock") proto.RegisterType((*RequestCheckTx)(nil), "tendermint.abci.RequestCheckTx") proto.RegisterType((*RequestCommit)(nil), "tendermint.abci.RequestCommit") proto.RegisterType((*RequestListSnapshots)(nil), "tendermint.abci.RequestListSnapshots") @@ -3340,8 +3803,10 @@ func init() { proto.RegisterType((*ResponseInfo)(nil), "tendermint.abci.ResponseInfo") proto.RegisterType((*ResponseInitChain)(nil), "tendermint.abci.ResponseInitChain") proto.RegisterType((*ResponseQuery)(nil), "tendermint.abci.ResponseQuery") + proto.RegisterType((*ResponseBeginBlock)(nil), "tendermint.abci.ResponseBeginBlock") proto.RegisterType((*ResponseCheckTx)(nil), "tendermint.abci.ResponseCheckTx") proto.RegisterType((*ResponseDeliverTx)(nil), "tendermint.abci.ResponseDeliverTx") + proto.RegisterType((*ResponseEndBlock)(nil), "tendermint.abci.ResponseEndBlock") proto.RegisterType((*ResponseCommit)(nil), "tendermint.abci.ResponseCommit") proto.RegisterType((*ResponseListSnapshots)(nil), "tendermint.abci.ResponseListSnapshots") proto.RegisterType((*ResponseOfferSnapshot)(nil), "tendermint.abci.ResponseOfferSnapshot") @@ -3355,6 +3820,7 @@ func init() { proto.RegisterType((*LastCommitInfo)(nil), "tendermint.abci.LastCommitInfo") proto.RegisterType((*Event)(nil), "tendermint.abci.Event") proto.RegisterType((*EventAttribute)(nil), "tendermint.abci.EventAttribute") + proto.RegisterType((*ExecTxResult)(nil), "tendermint.abci.ExecTxResult") proto.RegisterType((*TxResult)(nil), "tendermint.abci.TxResult") proto.RegisterType((*Validator)(nil), "tendermint.abci.Validator") proto.RegisterType((*ValidatorUpdate)(nil), "tendermint.abci.ValidatorUpdate") @@ -3366,192 +3832,208 @@ func init() { func init() { proto.RegisterFile("tendermint/abci/types.proto", fileDescriptor_252557cfdd89a31a) } var fileDescriptor_252557cfdd89a31a = []byte{ - // 2958 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x9a, 0xcb, 0x73, 0xe3, 0xc6, - 0xd1, 0xc0, 0x09, 0xbe, 0x44, 0x36, 0x9f, 0x1a, 0xc9, 0x6b, 0x1a, 0xde, 0x95, 0x64, 0xb8, 0x6c, - 0xaf, 0xd7, 0x6b, 0xe9, 0xb3, 0xf6, 0xb3, 0xb3, 0x2e, 0xe7, 0x25, 0x71, 0x29, 0x53, 0x5e, 0x45, - 0x52, 0x46, 0xdc, 0x75, 0x39, 0xb1, 0x0d, 0x83, 0xe4, 0x48, 0x84, 0x97, 0x04, 0x60, 0x00, 0xa4, - 0xa5, 0x3d, 0xa6, 0x2a, 0x17, 0x57, 0xa5, 0xca, 0xc7, 0x5c, 0x7c, 0x4b, 0x55, 0x72, 0xc9, 0x21, - 0xb7, 0x9c, 0x72, 0x4a, 0x55, 0x7c, 0xc8, 0xc1, 0xc7, 0x1c, 0x52, 0x4e, 0xca, 0x7b, 0xcb, 0x3f, - 0x90, 0x4b, 0x52, 0x95, 0x9a, 0x07, 0x5e, 0x24, 0xc1, 0x47, 0x92, 0x5b, 0x6e, 0x98, 0x46, 0x77, - 0x63, 0x30, 0x98, 0xe9, 0xf9, 0x75, 0x63, 0xe0, 0x59, 0x97, 0x18, 0x5d, 0x62, 0x0f, 0x74, 0xc3, - 0xdd, 0xd1, 0xda, 0x1d, 0x7d, 0xc7, 0xbd, 0xb2, 0x88, 0xb3, 0x6d, 0xd9, 0xa6, 0x6b, 0xa2, 0x4a, - 0x70, 0x73, 0x9b, 0xde, 0x94, 0x6f, 0x84, 0xb4, 0x3b, 0xf6, 0x95, 0xe5, 0x9a, 0x3b, 0x96, 0x6d, - 0x9a, 0xe7, 0x5c, 0x5f, 0xbe, 0x1e, 0xba, 0xcd, 0xfc, 0x84, 0xbd, 0x45, 0xee, 0x0a, 0xe3, 0x47, - 0xe4, 0xca, 0xbb, 0x7b, 0x63, 0xc2, 0xd6, 0xd2, 0x6c, 0x6d, 0xe0, 0xdd, 0xde, 0xbc, 0x30, 0xcd, - 0x8b, 0x3e, 0xd9, 0x61, 0xad, 0xf6, 0xf0, 0x7c, 0xc7, 0xd5, 0x07, 0xc4, 0x71, 0xb5, 0x81, 0x25, - 0x14, 0xd6, 0x2f, 0xcc, 0x0b, 0x93, 0x5d, 0xee, 0xd0, 0x2b, 0x2e, 0x55, 0x7e, 0x99, 0x87, 0x15, - 0x4c, 0x3e, 0x19, 0x12, 0xc7, 0x45, 0xbb, 0x90, 0x26, 0x9d, 0x9e, 0x59, 0x93, 0xb6, 0xa4, 0x9b, - 0x85, 0xdd, 0xeb, 0xdb, 0x63, 0x2f, 0xb7, 0x2d, 0xf4, 0x1a, 0x9d, 0x9e, 0xd9, 0x4c, 0x60, 0xa6, - 0x8b, 0x5e, 0x87, 0xcc, 0x79, 0x7f, 0xe8, 0xf4, 0x6a, 0x49, 0x66, 0x74, 0x23, 0xce, 0xe8, 0x80, - 0x2a, 0x35, 0x13, 0x98, 0x6b, 0xd3, 0x47, 0xe9, 0xc6, 0xb9, 0x59, 0x4b, 0xcd, 0x7e, 0xd4, 0xa1, - 0x71, 0xce, 0x1e, 0x45, 0x75, 0xd1, 0x3e, 0x80, 0x6e, 0xe8, 0xae, 0xda, 0xe9, 0x69, 0xba, 0x51, - 0x4b, 0x33, 0xcb, 0xe7, 0xe2, 0x2d, 0x75, 0xb7, 0x4e, 0x15, 0x9b, 0x09, 0x9c, 0xd7, 0xbd, 0x06, - 0xed, 0xee, 0x27, 0x43, 0x62, 0x5f, 0xd5, 0x32, 0xb3, 0xbb, 0xfb, 0x43, 0xaa, 0x44, 0xbb, 0xcb, - 0xb4, 0xd1, 0xb7, 0x21, 0xd7, 0xe9, 0x91, 0xce, 0x23, 0xd5, 0xbd, 0xac, 0xad, 0x30, 0xcb, 0xcd, - 0x38, 0xcb, 0x3a, 0xd5, 0x6b, 0x5d, 0x36, 0x13, 0x78, 0xa5, 0xc3, 0x2f, 0xd1, 0x5d, 0xc8, 0x76, - 0xcc, 0xc1, 0x40, 0x77, 0x6b, 0xc0, 0x6c, 0x37, 0x62, 0x6d, 0x99, 0x56, 0x33, 0x81, 0x85, 0x3e, - 0x3a, 0x86, 0x72, 0x5f, 0x77, 0x5c, 0xd5, 0x31, 0x34, 0xcb, 0xe9, 0x99, 0xae, 0x53, 0x2b, 0x30, - 0x0f, 0x2f, 0xc4, 0x79, 0x38, 0xd2, 0x1d, 0xf7, 0xcc, 0x53, 0x6e, 0x26, 0x70, 0xa9, 0x1f, 0x16, - 0x50, 0x7f, 0xe6, 0xf9, 0x39, 0xb1, 0x7d, 0x87, 0xb5, 0xe2, 0x6c, 0x7f, 0x27, 0x54, 0xdb, 0xb3, - 0xa7, 0xfe, 0xcc, 0xb0, 0x00, 0xfd, 0x18, 0xd6, 0xfa, 0xa6, 0xd6, 0xf5, 0xdd, 0xa9, 0x9d, 0xde, - 0xd0, 0x78, 0x54, 0x2b, 0x31, 0xa7, 0x2f, 0xc7, 0x76, 0xd2, 0xd4, 0xba, 0x9e, 0x8b, 0x3a, 0x35, - 0x68, 0x26, 0xf0, 0x6a, 0x7f, 0x5c, 0x88, 0x3e, 0x84, 0x75, 0xcd, 0xb2, 0xfa, 0x57, 0xe3, 0xde, - 0xcb, 0xcc, 0xfb, 0xad, 0x38, 0xef, 0x7b, 0xd4, 0x66, 0xdc, 0x3d, 0xd2, 0x26, 0xa4, 0xa8, 0x05, - 0x55, 0xcb, 0x26, 0x96, 0x66, 0x13, 0xd5, 0xb2, 0x4d, 0xcb, 0x74, 0xb4, 0x7e, 0xad, 0xc2, 0x7c, - 0xbf, 0x14, 0xe7, 0xfb, 0x94, 0xeb, 0x9f, 0x0a, 0xf5, 0x66, 0x02, 0x57, 0xac, 0xa8, 0x88, 0x7b, - 0x35, 0x3b, 0xc4, 0x71, 0x02, 0xaf, 0xd5, 0x79, 0x5e, 0x99, 0x7e, 0xd4, 0x6b, 0x44, 0x84, 0x1a, - 0x50, 0x20, 0x97, 0xd4, 0x5c, 0x1d, 0x99, 0x2e, 0xa9, 0xad, 0x32, 0x87, 0x4a, 0xec, 0x0a, 0x65, - 0xaa, 0x0f, 0x4d, 0x97, 0x34, 0x13, 0x18, 0x88, 0xdf, 0x42, 0x1a, 0x3c, 0x35, 0x22, 0xb6, 0x7e, - 0x7e, 0xc5, 0xdc, 0xa8, 0xec, 0x8e, 0xa3, 0x9b, 0x46, 0x0d, 0x31, 0x87, 0xaf, 0xc4, 0x39, 0x7c, - 0xc8, 0x8c, 0xa8, 0x8b, 0x86, 0x67, 0xd2, 0x4c, 0xe0, 0xb5, 0xd1, 0xa4, 0x98, 0x4e, 0xb1, 0x73, - 0xdd, 0xd0, 0xfa, 0xfa, 0x63, 0xa2, 0xb6, 0xfb, 0x66, 0xe7, 0x51, 0x6d, 0x6d, 0xf6, 0x14, 0x3b, - 0x10, 0xda, 0xfb, 0x54, 0x99, 0x4e, 0xb1, 0xf3, 0xb0, 0x60, 0x7f, 0x05, 0x32, 0x23, 0xad, 0x3f, - 0x24, 0xca, 0x4b, 0x50, 0x08, 0x05, 0x20, 0x54, 0x83, 0x95, 0x01, 0x71, 0x1c, 0xed, 0x82, 0xb0, - 0x78, 0x95, 0xc7, 0x5e, 0x53, 0x29, 0x43, 0x31, 0x1c, 0x74, 0x94, 0xcf, 0x25, 0xdf, 0x92, 0xc6, - 0x13, 0x6a, 0x39, 0x22, 0x36, 0x7b, 0x6d, 0x61, 0x29, 0x9a, 0xe8, 0x79, 0x28, 0xb1, 0x2e, 0xab, - 0xde, 0x7d, 0x1a, 0xd4, 0xd2, 0xb8, 0xc8, 0x84, 0x0f, 0x85, 0xd2, 0x26, 0x14, 0xac, 0x5d, 0xcb, - 0x57, 0x49, 0x31, 0x15, 0xb0, 0x76, 0x2d, 0x4f, 0xe1, 0x39, 0x28, 0xd2, 0xf7, 0xf3, 0x35, 0xd2, - 0xec, 0x21, 0x05, 0x2a, 0x13, 0x2a, 0xca, 0x1f, 0x93, 0x50, 0x1d, 0x0f, 0x54, 0xe8, 0x2e, 0xa4, - 0x69, 0xcc, 0x16, 0xe1, 0x57, 0xde, 0xe6, 0x01, 0x7d, 0xdb, 0x0b, 0xe8, 0xdb, 0x2d, 0x2f, 0xa0, - 0xef, 0xe7, 0xbe, 0xfc, 0x7a, 0x33, 0xf1, 0xf9, 0x5f, 0x36, 0x25, 0xcc, 0x2c, 0xd0, 0x33, 0x34, - 0x3c, 0x69, 0xba, 0xa1, 0xea, 0x5d, 0xd6, 0xe5, 0x3c, 0x8d, 0x3d, 0x9a, 0x6e, 0x1c, 0x76, 0xd1, - 0x11, 0x54, 0x3b, 0xa6, 0xe1, 0x10, 0xc3, 0x19, 0x3a, 0x2a, 0xdf, 0x30, 0x44, 0xd0, 0x8d, 0x84, - 0x4e, 0xbe, 0x0d, 0xd5, 0x3d, 0xcd, 0x53, 0xa6, 0x88, 0x2b, 0x9d, 0xa8, 0x00, 0x1d, 0x00, 0x8c, - 0xb4, 0xbe, 0xde, 0xd5, 0x5c, 0xd3, 0x76, 0x6a, 0xe9, 0xad, 0xd4, 0xcd, 0xc2, 0xee, 0xd6, 0xc4, - 0x87, 0x7d, 0xe8, 0xa9, 0x3c, 0xb0, 0xba, 0x9a, 0x4b, 0xf6, 0xd3, 0xb4, 0xbb, 0x38, 0x64, 0x89, - 0x5e, 0x84, 0x8a, 0x66, 0x59, 0xaa, 0xe3, 0x6a, 0x2e, 0x51, 0xdb, 0x57, 0x2e, 0x71, 0x58, 0x40, - 0x2e, 0xe2, 0x92, 0x66, 0x59, 0x67, 0x54, 0xba, 0x4f, 0x85, 0xe8, 0x05, 0x28, 0xd3, 0xd8, 0xad, - 0x6b, 0x7d, 0xb5, 0x47, 0xf4, 0x8b, 0x9e, 0x5b, 0xcb, 0x6e, 0x49, 0x37, 0x53, 0xb8, 0x24, 0xa4, - 0x4d, 0x26, 0x54, 0xba, 0xfe, 0x17, 0x67, 0x71, 0x1b, 0x21, 0x48, 0x77, 0x35, 0x57, 0x63, 0x23, - 0x59, 0xc4, 0xec, 0x9a, 0xca, 0x2c, 0xcd, 0xed, 0x89, 0xf1, 0x61, 0xd7, 0xe8, 0x1a, 0x64, 0x85, - 0xdb, 0x14, 0x73, 0x2b, 0x5a, 0x68, 0x1d, 0x32, 0x96, 0x6d, 0x8e, 0x08, 0xfb, 0x74, 0x39, 0xcc, - 0x1b, 0x0a, 0x86, 0x72, 0x34, 0xc6, 0xa3, 0x32, 0x24, 0xdd, 0x4b, 0xf1, 0x94, 0xa4, 0x7b, 0x89, - 0xfe, 0x0f, 0xd2, 0x74, 0x20, 0xd9, 0x33, 0xca, 0x53, 0x76, 0x35, 0x61, 0xd7, 0xba, 0xb2, 0x08, - 0x66, 0x9a, 0x4a, 0x05, 0x4a, 0x91, 0xd8, 0xaf, 0x5c, 0x83, 0xf5, 0x69, 0xa1, 0x5c, 0xe9, 0xf9, - 0xf2, 0x48, 0x48, 0x46, 0xaf, 0x43, 0xce, 0x8f, 0xe5, 0x7c, 0xe2, 0x3c, 0x33, 0xf1, 0x58, 0x4f, - 0x19, 0xfb, 0xaa, 0x74, 0xc6, 0xd0, 0x0f, 0xd0, 0xd3, 0xc4, 0xce, 0x5d, 0xc4, 0x2b, 0x9a, 0x65, - 0x35, 0x35, 0xa7, 0xa7, 0x7c, 0x04, 0xb5, 0xb8, 0x38, 0x1d, 0x1a, 0x30, 0x89, 0x4d, 0x7b, 0x6f, - 0xc0, 0xae, 0x41, 0xf6, 0xdc, 0xb4, 0x07, 0x9a, 0xcb, 0x9c, 0x95, 0xb0, 0x68, 0xd1, 0x81, 0xe4, - 0x31, 0x3b, 0xc5, 0xc4, 0xbc, 0xa1, 0xa8, 0xf0, 0x4c, 0x6c, 0xac, 0xa6, 0x26, 0xba, 0xd1, 0x25, - 0x7c, 0x58, 0x4b, 0x98, 0x37, 0x02, 0x47, 0xbc, 0xb3, 0xbc, 0x41, 0x1f, 0xeb, 0xb0, 0x77, 0x65, - 0xfe, 0xf3, 0x58, 0xb4, 0x94, 0x9f, 0x49, 0x70, 0x6d, 0x7a, 0xc4, 0x46, 0x37, 0x00, 0xf8, 0x12, - 0x17, 0x13, 0x24, 0x75, 0xb3, 0x88, 0xf3, 0x4c, 0x72, 0x8f, 0xce, 0x92, 0x17, 0xa1, 0x12, 0xdc, - 0x56, 0x1d, 0xfd, 0x31, 0xff, 0x98, 0x29, 0x5c, 0xf2, 0x75, 0xce, 0xf4, 0xc7, 0x04, 0xdd, 0x86, - 0x0c, 0x8d, 0xa0, 0x74, 0x2d, 0xd1, 0x35, 0x70, 0x6d, 0x72, 0x2d, 0xd1, 0xa8, 0x88, 0xb9, 0x92, - 0xf2, 0x3d, 0x58, 0x9d, 0x88, 0xcc, 0xe8, 0x16, 0xa4, 0x59, 0x2c, 0xe7, 0x5f, 0x2d, 0xce, 0x03, - 0xd3, 0x51, 0x9a, 0x20, 0xc7, 0x47, 0xe2, 0xa5, 0x3c, 0xb5, 0x43, 0x23, 0x13, 0xdd, 0x62, 0xde, - 0xa0, 0xdf, 0x56, 0xa3, 0x83, 0xc9, 0xfd, 0xd4, 0x26, 0xfd, 0x34, 0xd9, 0x7d, 0xb1, 0x9e, 0x85, - 0x36, 0xaa, 0x42, 0xca, 0xbd, 0x74, 0x6a, 0x49, 0x36, 0x94, 0xf4, 0x52, 0xf9, 0x4d, 0xd2, 0x9f, - 0xac, 0x91, 0xe0, 0xee, 0xa9, 0x4a, 0xbe, 0x2a, 0x5d, 0x95, 0xa1, 0x39, 0xc8, 0xae, 0x63, 0x57, - 0x65, 0xd0, 0xc1, 0xf4, 0x52, 0x1d, 0x3c, 0x81, 0x6a, 0x5f, 0x73, 0x5c, 0x95, 0x33, 0x95, 0xca, - 0xb8, 0x33, 0x13, 0x03, 0x71, 0x47, 0x9a, 0xb7, 0x12, 0xe9, 0x56, 0x21, 0x1c, 0x95, 0xfb, 0x11, - 0x29, 0xc2, 0xb0, 0xde, 0xbe, 0x7a, 0xac, 0x19, 0xae, 0x6e, 0x10, 0x35, 0x14, 0x0f, 0xb3, 0x6c, - 0x2e, 0x4c, 0xae, 0xbf, 0xc6, 0x48, 0xef, 0x12, 0xa3, 0xe3, 0x05, 0xc2, 0x35, 0xdf, 0xd8, 0x0f, - 0x94, 0x8e, 0xf2, 0x8f, 0x3c, 0xe4, 0x30, 0x71, 0x2c, 0x1a, 0x70, 0xd1, 0x3e, 0xe4, 0xc9, 0x65, - 0x87, 0x58, 0xae, 0xb7, 0x47, 0x4d, 0xdf, 0xeb, 0xb9, 0x76, 0xc3, 0xd3, 0xa4, 0xa4, 0xeb, 0x9b, - 0xa1, 0x3b, 0x02, 0xe6, 0xe3, 0xb9, 0x5c, 0x98, 0x87, 0x69, 0xfe, 0x0d, 0x8f, 0xe6, 0x53, 0xb1, - 0xa0, 0xca, 0xad, 0xc6, 0x70, 0xfe, 0x8e, 0xc0, 0xf9, 0xf4, 0x9c, 0x87, 0x45, 0x78, 0xbe, 0x1e, - 0xe1, 0xf9, 0xcc, 0x9c, 0xd7, 0x8c, 0x01, 0xfa, 0x37, 0x3c, 0xa0, 0xcf, 0xce, 0xe9, 0xf1, 0x18, - 0xd1, 0x7f, 0x27, 0x44, 0xf4, 0x39, 0x66, 0xba, 0x15, 0x6b, 0x3a, 0x05, 0xe9, 0xdf, 0xf4, 0x91, - 0xbe, 0x10, 0x9b, 0x0e, 0x08, 0xe3, 0x71, 0xa6, 0x3f, 0x99, 0x60, 0x7a, 0xce, 0xe0, 0x2f, 0xc6, - 0xba, 0x98, 0x03, 0xf5, 0x27, 0x13, 0x50, 0x5f, 0x9a, 0xe3, 0x70, 0x0e, 0xd5, 0xbf, 0x3f, 0x9d, - 0xea, 0xe3, 0xb9, 0x5b, 0x74, 0x73, 0x31, 0xac, 0x57, 0x63, 0xb0, 0xbe, 0x12, 0x8b, 0xa0, 0xdc, - 0xfd, 0xc2, 0x5c, 0xff, 0x60, 0x0a, 0xd7, 0x73, 0x02, 0xbf, 0x19, 0xeb, 0x7c, 0x01, 0xb0, 0x7f, - 0x30, 0x05, 0xec, 0x57, 0xe7, 0xba, 0x9d, 0x4b, 0xf6, 0x07, 0x51, 0xb2, 0xe7, 0x20, 0xfe, 0xfc, - 0x8c, 0xd5, 0x1e, 0x83, 0xf6, 0xed, 0x38, 0xb4, 0xe7, 0xf8, 0x7d, 0x3b, 0xd6, 0xe3, 0x12, 0x6c, - 0x7f, 0x32, 0xc1, 0xf6, 0xeb, 0x73, 0x66, 0xda, 0xa2, 0x70, 0xff, 0x32, 0xdd, 0x21, 0xc7, 0xe2, - 0x19, 0xdd, 0xf4, 0x89, 0x6d, 0x9b, 0xb6, 0xc0, 0x74, 0xde, 0x50, 0x6e, 0x52, 0xd8, 0x0b, 0x62, - 0xd7, 0x8c, 0x44, 0x80, 0xc1, 0x55, 0x28, 0x5e, 0x29, 0xbf, 0x95, 0x02, 0x5b, 0x16, 0xc9, 0xc3, - 0xa0, 0x98, 0x17, 0xa0, 0x18, 0x4a, 0x0f, 0x92, 0xd1, 0xf4, 0x60, 0x13, 0x0a, 0x14, 0x9a, 0xc6, - 0xc8, 0x5f, 0xb3, 0x7c, 0xf2, 0xbf, 0x05, 0xab, 0x6c, 0xa7, 0xe1, 0x08, 0x21, 0x36, 0xb1, 0x34, - 0xdb, 0xc4, 0x2a, 0xf4, 0x06, 0x1f, 0x05, 0xbe, 0x9b, 0xbd, 0x0a, 0x6b, 0x21, 0x5d, 0x1f, 0xc6, - 0x38, 0x06, 0x57, 0x7d, 0xed, 0x3d, 0x41, 0x65, 0xbf, 0x97, 0x82, 0x11, 0x0a, 0x52, 0x86, 0x69, - 0x74, 0x2f, 0xfd, 0x97, 0xe8, 0x3e, 0xf9, 0x6f, 0xd3, 0x7d, 0x18, 0x2e, 0x53, 0x51, 0xb8, 0xfc, - 0xbb, 0x14, 0x7c, 0x13, 0x9f, 0xd5, 0x3b, 0x66, 0x97, 0x08, 0xdc, 0x63, 0xd7, 0x94, 0x13, 0xfa, - 0xe6, 0x85, 0x80, 0x3a, 0x7a, 0x49, 0xb5, 0xfc, 0x0d, 0x26, 0x2f, 0xf6, 0x0f, 0x9f, 0x14, 0x33, - 0x6c, 0x84, 0x05, 0x29, 0x56, 0x21, 0xf5, 0x88, 0xf0, 0xed, 0xa0, 0x88, 0xe9, 0x25, 0xd5, 0x63, - 0x93, 0x8c, 0x55, 0x6e, 0x8a, 0x98, 0x37, 0xd0, 0x5d, 0xc8, 0xb3, 0xca, 0x9c, 0x6a, 0x5a, 0x8e, - 0xd8, 0x01, 0x9e, 0x0d, 0xbf, 0x2b, 0x2f, 0xc0, 0x6d, 0x9f, 0x52, 0x9d, 0x13, 0xcb, 0xc1, 0x39, - 0x4b, 0x5c, 0x85, 0xf8, 0x24, 0x1f, 0xe1, 0x93, 0xeb, 0x90, 0xa7, 0xbd, 0x77, 0x2c, 0xad, 0x43, - 0x58, 0xa5, 0x27, 0x8f, 0x03, 0x81, 0xf2, 0xe7, 0x24, 0x54, 0xc6, 0x36, 0x94, 0xa9, 0xef, 0xee, - 0x4d, 0xc9, 0x64, 0x28, 0x77, 0x59, 0x6c, 0x3c, 0x36, 0x00, 0x2e, 0x34, 0x47, 0xfd, 0x54, 0x33, - 0x5c, 0xd2, 0x15, 0x83, 0x12, 0x92, 0x20, 0x19, 0x72, 0xb4, 0x35, 0x74, 0x48, 0x57, 0xa4, 0x51, - 0x7e, 0x1b, 0x35, 0x21, 0x4b, 0x46, 0xc4, 0x70, 0x9d, 0xda, 0xca, 0x24, 0xd0, 0x0a, 0x88, 0x21, - 0x86, 0xbb, 0x5f, 0xa3, 0x1f, 0xfb, 0x6f, 0x5f, 0x6f, 0x56, 0xb9, 0xf6, 0x6d, 0x73, 0xa0, 0xbb, - 0x64, 0x60, 0xb9, 0x57, 0x58, 0xd8, 0x47, 0x47, 0x21, 0x37, 0x36, 0x0a, 0x21, 0x62, 0xcf, 0x87, - 0x89, 0x9d, 0xf6, 0xcd, 0xb2, 0x75, 0xd3, 0xd6, 0xdd, 0x2b, 0x36, 0x74, 0x29, 0xec, 0xb7, 0x69, - 0x56, 0x3e, 0x20, 0x03, 0xcb, 0x34, 0xfb, 0x2a, 0x0f, 0x07, 0x05, 0x66, 0x5a, 0x14, 0xc2, 0x06, - 0x8b, 0x0a, 0x3f, 0x4d, 0x06, 0xeb, 0xe3, 0x1e, 0xe9, 0xeb, 0x23, 0x62, 0xff, 0x2f, 0x0e, 0xb0, - 0x72, 0x48, 0x93, 0xd4, 0x30, 0x79, 0x4c, 0x7d, 0xdf, 0xe7, 0xa1, 0x64, 0x13, 0x57, 0xd3, 0x0d, - 0x35, 0x42, 0xda, 0x45, 0x2e, 0x14, 0x59, 0xf5, 0x29, 0x3c, 0x35, 0x95, 0x40, 0xd0, 0xb7, 0x20, - 0x1f, 0xc0, 0x8b, 0x14, 0x03, 0xbd, 0x7e, 0xd2, 0x19, 0xe8, 0x2a, 0xbf, 0x93, 0x02, 0x97, 0xd1, - 0x34, 0xb6, 0x01, 0x59, 0x9b, 0x38, 0xc3, 0x3e, 0x4f, 0x2c, 0xcb, 0xbb, 0xaf, 0x2e, 0xc6, 0x2e, - 0x54, 0x3a, 0xec, 0xbb, 0x58, 0x18, 0x2b, 0x1f, 0x42, 0x96, 0x4b, 0x50, 0x01, 0x56, 0x1e, 0x1c, - 0xdf, 0x3f, 0x3e, 0x79, 0xf7, 0xb8, 0x9a, 0x40, 0x00, 0xd9, 0xbd, 0x7a, 0xbd, 0x71, 0xda, 0xaa, - 0x4a, 0x28, 0x0f, 0x99, 0xbd, 0xfd, 0x13, 0xdc, 0xaa, 0x26, 0xa9, 0x18, 0x37, 0xde, 0x69, 0xd4, - 0x5b, 0xd5, 0x14, 0x5a, 0x85, 0x12, 0xbf, 0x56, 0x0f, 0x4e, 0xf0, 0x0f, 0xf6, 0x5a, 0xd5, 0x74, - 0x48, 0x74, 0xd6, 0x38, 0xbe, 0xd7, 0xc0, 0xd5, 0x8c, 0xf2, 0x1a, 0xcd, 0x5c, 0x63, 0x68, 0x27, - 0xc8, 0x51, 0xa5, 0x50, 0x8e, 0xaa, 0xfc, 0x3c, 0x49, 0x73, 0xb7, 0x38, 0x84, 0x41, 0xef, 0x8c, - 0xbd, 0xf8, 0xee, 0x12, 0xfc, 0x33, 0xf6, 0xf6, 0xe8, 0x05, 0x28, 0xdb, 0xe4, 0x9c, 0xb8, 0x9d, - 0x1e, 0x47, 0x2a, 0x1e, 0xc3, 0x4b, 0xb8, 0x24, 0xa4, 0xcc, 0xc8, 0xe1, 0x6a, 0x1f, 0x93, 0x8e, - 0xab, 0xf2, 0xc5, 0xc7, 0x93, 0xd8, 0x3c, 0x55, 0xa3, 0xd2, 0x33, 0x2e, 0x54, 0x3e, 0x5a, 0x6a, - 0x2c, 0xf3, 0x90, 0xc1, 0x8d, 0x16, 0x7e, 0xaf, 0x9a, 0x42, 0x08, 0xca, 0xec, 0x52, 0x3d, 0x3b, - 0xde, 0x3b, 0x3d, 0x6b, 0x9e, 0xd0, 0xb1, 0x5c, 0x83, 0x8a, 0x37, 0x96, 0x9e, 0x30, 0xa3, 0xdc, - 0x85, 0xa7, 0x63, 0xf8, 0x6b, 0x4e, 0x9a, 0xae, 0xbc, 0x0f, 0x68, 0x12, 0x88, 0xd0, 0x01, 0x94, - 0xc7, 0xd8, 0x47, 0x9a, 0x84, 0xf3, 0x20, 0x23, 0xf6, 0xb9, 0x06, 0x97, 0x46, 0xe1, 0xa6, 0xf2, - 0x0b, 0x09, 0x9e, 0x9d, 0x41, 0x47, 0xe8, 0xfe, 0xd8, 0x37, 0xbb, 0xb3, 0x0c, 0x5b, 0x8d, 0x4f, - 0xd9, 0xbb, 0x0b, 0x0d, 0xf3, 0xd9, 0xd1, 0xde, 0x59, 0x33, 0x3a, 0x65, 0x95, 0x5f, 0x4b, 0xe1, - 0xf1, 0x8b, 0x52, 0xe5, 0xdb, 0x63, 0x5d, 0xdc, 0x59, 0x14, 0x51, 0xc7, 0xe7, 0x94, 0x0c, 0x39, - 0x22, 0xd2, 0x57, 0x91, 0xe2, 0xfb, 0x6d, 0xe5, 0xd5, 0xf9, 0x5d, 0x0f, 0xfa, 0x9b, 0x54, 0xfe, - 0x90, 0x0c, 0x56, 0x7f, 0xb4, 0x2e, 0xf0, 0xff, 0x41, 0x5d, 0x60, 0x56, 0x0a, 0xe8, 0xc7, 0x75, - 0x5e, 0x3b, 0x38, 0x83, 0x55, 0x1f, 0x3a, 0xd4, 0x21, 0x83, 0x91, 0x65, 0xa9, 0xa5, 0x3a, 0x8a, - 0x8a, 0x1d, 0xf4, 0x1e, 0x3c, 0x3d, 0x46, 0x54, 0xbe, 0xeb, 0x85, 0xcb, 0xa6, 0x4f, 0x45, 0xc1, - 0xca, 0x73, 0x1d, 0x6c, 0x01, 0xe9, 0xff, 0x6c, 0x0b, 0x50, 0x3e, 0x80, 0x72, 0xb4, 0x50, 0x41, - 0x63, 0x8f, 0x6d, 0x0e, 0x8d, 0x2e, 0xfb, 0xdc, 0x19, 0xcc, 0x1b, 0xe8, 0x75, 0xaf, 0x4a, 0x95, - 0x8c, 0x09, 0xd2, 0x74, 0x66, 0x86, 0x0a, 0x1d, 0xa2, 0x5c, 0xf5, 0x18, 0x32, 0xac, 0x27, 0x74, - 0xeb, 0x60, 0xf5, 0x4c, 0x81, 0xc7, 0xf4, 0x1a, 0x7d, 0x00, 0xa0, 0xb9, 0xae, 0xad, 0xb7, 0x87, - 0x81, 0xe3, 0xcd, 0xe9, 0x6f, 0xb2, 0xe7, 0xe9, 0xed, 0x5f, 0x17, 0xaf, 0xb4, 0x1e, 0x98, 0x86, - 0x5e, 0x2b, 0xe4, 0x50, 0x39, 0x86, 0x72, 0xd4, 0xd6, 0x03, 0x3a, 0xde, 0x87, 0x28, 0xd0, 0x71, - 0x3e, 0x17, 0x40, 0xe7, 0xe3, 0x60, 0x8a, 0x17, 0x6d, 0x59, 0x43, 0xf9, 0x4c, 0x82, 0x5c, 0xeb, - 0x52, 0x4c, 0xd3, 0x68, 0xf9, 0x32, 0x52, 0xef, 0xe5, 0xa6, 0xc9, 0x70, 0xcd, 0x91, 0x57, 0x77, - 0x53, 0x7e, 0x75, 0xf7, 0xfb, 0xfe, 0x9a, 0x4a, 0xcf, 0xa9, 0x55, 0xf8, 0x13, 0xd5, 0xab, 0x44, - 0x89, 0xb5, 0xfe, 0x16, 0xe4, 0xfd, 0x79, 0x48, 0xf3, 0x0c, 0xad, 0xdb, 0xb5, 0x89, 0xe3, 0x88, - 0x0d, 0xc3, 0x6b, 0xb2, 0xf2, 0xb3, 0xf9, 0xa9, 0xa8, 0x6a, 0xa6, 0x30, 0x6f, 0x28, 0x5d, 0xa8, - 0x8c, 0x4d, 0x62, 0xf4, 0x16, 0xac, 0x58, 0xc3, 0xb6, 0xea, 0x0d, 0xcf, 0xd8, 0x8f, 0x54, 0x8f, - 0x60, 0x87, 0xed, 0xbe, 0xde, 0xb9, 0x4f, 0xae, 0xbc, 0xce, 0x58, 0xc3, 0xf6, 0x7d, 0x3e, 0x8a, - 0xfc, 0x29, 0xc9, 0xf0, 0x53, 0x46, 0x90, 0xf3, 0x26, 0x05, 0xfa, 0x2e, 0xe4, 0xfd, 0xf5, 0xe1, - 0xff, 0x95, 0x88, 0x5d, 0x58, 0xc2, 0x7d, 0x60, 0x42, 0xd3, 0x21, 0x47, 0xbf, 0x30, 0x48, 0x57, - 0x0d, 0x32, 0x1d, 0xf6, 0xb4, 0x1c, 0xae, 0xf0, 0x1b, 0x47, 0x5e, 0x9a, 0xa3, 0xfc, 0x53, 0x82, - 0x9c, 0x57, 0x27, 0x43, 0xaf, 0x85, 0xe6, 0x5d, 0x79, 0x4a, 0x39, 0xc9, 0x53, 0x0c, 0x0a, 0xe9, - 0xd1, 0xbe, 0x26, 0x97, 0xef, 0x6b, 0x5c, 0xd1, 0xd1, 0xfb, 0x29, 0x93, 0x5e, 0xfa, 0xa7, 0xcc, - 0x6d, 0x40, 0xae, 0xe9, 0x6a, 0x7d, 0x9a, 0x8f, 0xeb, 0xc6, 0x85, 0xca, 0x07, 0x9b, 0x53, 0x63, - 0x95, 0xdd, 0x79, 0xc8, 0x6e, 0x9c, 0xb2, 0x71, 0xff, 0x89, 0x04, 0x39, 0x9f, 0x86, 0x96, 0x2d, - 0xb3, 0x5f, 0x83, 0xac, 0xd8, 0xf0, 0x79, 0x9d, 0x5d, 0xb4, 0xfc, 0xea, 0x6a, 0x3a, 0x54, 0x5d, - 0x95, 0x21, 0x37, 0x20, 0xae, 0xc6, 0xf6, 0x55, 0x9e, 0x6c, 0xfa, 0xed, 0x5b, 0x6f, 0x42, 0x21, - 0xf4, 0x8b, 0x82, 0xae, 0xbc, 0xe3, 0xc6, 0xbb, 0xd5, 0x84, 0xbc, 0xf2, 0xd9, 0x17, 0x5b, 0xa9, - 0x63, 0xf2, 0x29, 0x9d, 0xb3, 0xb8, 0x51, 0x6f, 0x36, 0xea, 0xf7, 0xab, 0x92, 0x5c, 0xf8, 0xec, - 0x8b, 0xad, 0x15, 0x4c, 0x58, 0x49, 0xec, 0x56, 0x13, 0x8a, 0xe1, 0xaf, 0x12, 0xdd, 0x11, 0x10, - 0x94, 0xef, 0x3d, 0x38, 0x3d, 0x3a, 0xac, 0xef, 0xb5, 0x1a, 0xea, 0xc3, 0x93, 0x56, 0xa3, 0x2a, - 0xa1, 0xa7, 0x61, 0xed, 0xe8, 0xf0, 0xed, 0x66, 0x4b, 0xad, 0x1f, 0x1d, 0x36, 0x8e, 0x5b, 0xea, - 0x5e, 0xab, 0xb5, 0x57, 0xbf, 0x5f, 0x4d, 0xee, 0xfe, 0xaa, 0x00, 0x95, 0xbd, 0xfd, 0xfa, 0x21, - 0xe5, 0x1d, 0xbd, 0xa3, 0xb1, 0x4a, 0x40, 0x1d, 0xd2, 0x2c, 0xd7, 0x9f, 0x79, 0x26, 0x41, 0x9e, - 0x5d, 0xe4, 0x44, 0x07, 0x90, 0x61, 0x65, 0x00, 0x34, 0xfb, 0x90, 0x82, 0x3c, 0xa7, 0xea, 0x49, - 0x3b, 0xc3, 0x96, 0xc7, 0xcc, 0x53, 0x0b, 0xf2, 0xec, 0x22, 0x28, 0x3a, 0x82, 0x15, 0x2f, 0x0b, - 0x9c, 0x77, 0x94, 0x40, 0x9e, 0x5b, 0x99, 0xa4, 0xaf, 0xc6, 0xb3, 0xe9, 0xd9, 0x07, 0x1a, 0xe4, - 0x39, 0xe5, 0x51, 0x74, 0x08, 0x59, 0x91, 0x35, 0xcc, 0x39, 0xa3, 0x20, 0xcf, 0x2b, 0x78, 0x22, - 0x0c, 0xf9, 0xa0, 0x4e, 0x31, 0xff, 0x98, 0x86, 0xbc, 0x40, 0xe5, 0x17, 0x7d, 0x08, 0xa5, 0x68, - 0x26, 0xb2, 0xd8, 0x39, 0x08, 0x79, 0xc1, 0xd2, 0x2a, 0xf5, 0x1f, 0x4d, 0x4b, 0x16, 0x3b, 0x17, - 0x21, 0x2f, 0x58, 0x69, 0x45, 0x1f, 0xc3, 0xea, 0x64, 0xda, 0xb0, 0xf8, 0x31, 0x09, 0x79, 0x89, - 0xda, 0x2b, 0x1a, 0x00, 0x9a, 0x92, 0x6e, 0x2c, 0x71, 0x6a, 0x42, 0x5e, 0xa6, 0x14, 0x8b, 0xba, - 0x50, 0x19, 0x67, 0xf8, 0x45, 0x4f, 0x51, 0xc8, 0x0b, 0x97, 0x65, 0xf9, 0x53, 0xa2, 0xa4, 0xbb, - 0xe8, 0xa9, 0x0a, 0x79, 0xe1, 0x2a, 0x2d, 0x7a, 0x00, 0x10, 0xca, 0x2a, 0x16, 0x38, 0x65, 0x21, - 0x2f, 0x52, 0xaf, 0x45, 0x16, 0xac, 0x4d, 0xcb, 0x26, 0x96, 0x39, 0x74, 0x21, 0x2f, 0x55, 0xc6, - 0xa5, 0xf3, 0x39, 0x0a, 0xda, 0x8b, 0x1d, 0xc2, 0x90, 0x17, 0xac, 0xe7, 0xee, 0x37, 0xbe, 0xfc, - 0x66, 0x43, 0xfa, 0xea, 0x9b, 0x0d, 0xe9, 0xaf, 0xdf, 0x6c, 0x48, 0x9f, 0x3f, 0xd9, 0x48, 0x7c, - 0xf5, 0x64, 0x23, 0xf1, 0xa7, 0x27, 0x1b, 0x89, 0x1f, 0xbd, 0x72, 0xa1, 0xbb, 0xbd, 0x61, 0x7b, - 0xbb, 0x63, 0x0e, 0x76, 0xc2, 0xe7, 0xd6, 0xa6, 0x9d, 0xa5, 0x6b, 0x67, 0xd9, 0x6e, 0x7a, 0xe7, - 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x59, 0x1d, 0x83, 0x17, 0x6b, 0x27, 0x00, 0x00, + // 3208 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0x4d, 0x6c, 0x1b, 0xc7, + 0x15, 0xe6, 0xff, 0xcf, 0xe3, 0xaf, 0x46, 0x8e, 0x43, 0x33, 0xb6, 0xe4, 0xac, 0x91, 0xc4, 0x71, + 0x1c, 0xb9, 0x91, 0x9b, 0xd4, 0x41, 0xd2, 0x26, 0x12, 0x4d, 0x95, 0x8a, 0x15, 0x49, 0x1d, 0x51, + 0x0e, 0xd2, 0x26, 0xde, 0x2c, 0xc9, 0x11, 0xb9, 0x31, 0xb9, 0xbb, 0xd9, 0x5d, 0x32, 0x92, 0x8f, + 0xfd, 0xb9, 0x04, 0x2d, 0x90, 0x63, 0x81, 0x22, 0xb7, 0x1e, 0x7a, 0x2d, 0xd0, 0x43, 0x4f, 0x3d, + 0x15, 0x68, 0x80, 0xf6, 0x90, 0x63, 0x0f, 0x45, 0x5a, 0x24, 0xb7, 0x5e, 0x7b, 0xe8, 0xa9, 0x40, + 0x31, 0x3f, 0xfb, 0x47, 0x72, 0xf9, 0x53, 0x39, 0xa7, 0xde, 0x66, 0xde, 0xbe, 0xf7, 0x76, 0xe6, + 0xcd, 0xcf, 0x7b, 0xdf, 0x7b, 0x03, 0x4f, 0xd9, 0x44, 0xeb, 0x10, 0x73, 0xa0, 0x6a, 0xf6, 0x2d, + 0xa5, 0xd5, 0x56, 0x6f, 0xd9, 0x67, 0x06, 0xb1, 0x36, 0x0c, 0x53, 0xb7, 0x75, 0x54, 0xf2, 0x3e, + 0x6e, 0xd0, 0x8f, 0xd5, 0x2b, 0x3e, 0xee, 0xb6, 0x79, 0x66, 0xd8, 0xfa, 0x2d, 0xc3, 0xd4, 0xf5, + 0x13, 0xce, 0x5f, 0xbd, 0xec, 0xfb, 0xcc, 0xf4, 0xf8, 0xb5, 0x05, 0xbe, 0x0a, 0xe1, 0x87, 0xe4, + 0xcc, 0xf9, 0x7a, 0x65, 0x42, 0xd6, 0x50, 0x4c, 0x65, 0xe0, 0x7c, 0x5e, 0xef, 0xea, 0x7a, 0xb7, + 0x4f, 0x6e, 0xb1, 0x5e, 0x6b, 0x78, 0x72, 0xcb, 0x56, 0x07, 0xc4, 0xb2, 0x95, 0x81, 0x21, 0x18, + 0x2e, 0x74, 0xf5, 0xae, 0xce, 0x9a, 0xb7, 0x68, 0x8b, 0x53, 0xa5, 0x7f, 0x01, 0xa4, 0x31, 0xf9, + 0x68, 0x48, 0x2c, 0x1b, 0x6d, 0x42, 0x82, 0xb4, 0x7b, 0x7a, 0x25, 0x7a, 0x35, 0x7a, 0x3d, 0xb7, + 0x79, 0x79, 0x63, 0x6c, 0x72, 0x1b, 0x82, 0xaf, 0xde, 0xee, 0xe9, 0x8d, 0x08, 0x66, 0xbc, 0xe8, + 0x65, 0x48, 0x9e, 0xf4, 0x87, 0x56, 0xaf, 0x12, 0x63, 0x42, 0x57, 0xc2, 0x84, 0x76, 0x28, 0x53, + 0x23, 0x82, 0x39, 0x37, 0xfd, 0x95, 0xaa, 0x9d, 0xe8, 0x95, 0xf8, 0xec, 0x5f, 0xed, 0x6a, 0x27, + 0xec, 0x57, 0x94, 0x17, 0x6d, 0x03, 0xa8, 0x9a, 0x6a, 0xcb, 0xed, 0x9e, 0xa2, 0x6a, 0x95, 0x04, + 0x93, 0x7c, 0x3a, 0x5c, 0x52, 0xb5, 0x6b, 0x94, 0xb1, 0x11, 0xc1, 0x59, 0xd5, 0xe9, 0xd0, 0xe1, + 0x7e, 0x34, 0x24, 0xe6, 0x59, 0x25, 0x39, 0x7b, 0xb8, 0x3f, 0xa0, 0x4c, 0x74, 0xb8, 0x8c, 0x1b, + 0xd5, 0x21, 0xd7, 0x22, 0x5d, 0x55, 0x93, 0x5b, 0x7d, 0xbd, 0xfd, 0xb0, 0x92, 0x62, 0xc2, 0x52, + 0x98, 0xf0, 0x36, 0x65, 0xdd, 0xa6, 0x9c, 0x8d, 0x08, 0x86, 0x96, 0xdb, 0x43, 0xaf, 0x43, 0xa6, + 0xdd, 0x23, 0xed, 0x87, 0xb2, 0x7d, 0x5a, 0x49, 0x33, 0x1d, 0xeb, 0x61, 0x3a, 0x6a, 0x94, 0xaf, + 0x79, 0xda, 0x88, 0xe0, 0x74, 0x9b, 0x37, 0xe9, 0xfc, 0x3b, 0xa4, 0xaf, 0x8e, 0x88, 0x49, 0xe5, + 0x33, 0xb3, 0xe7, 0x7f, 0x97, 0x73, 0x32, 0x0d, 0xd9, 0x8e, 0xd3, 0x41, 0x6f, 0x40, 0x96, 0x68, + 0x1d, 0x31, 0x8d, 0x2c, 0x53, 0x71, 0x35, 0x74, 0x9d, 0xb5, 0x8e, 0x33, 0x89, 0x0c, 0x11, 0x6d, + 0x74, 0x07, 0x52, 0x6d, 0x7d, 0x30, 0x50, 0xed, 0x0a, 0x30, 0xe9, 0xb5, 0xd0, 0x09, 0x30, 0xae, + 0x46, 0x04, 0x0b, 0x7e, 0xb4, 0x0f, 0xc5, 0xbe, 0x6a, 0xd9, 0xb2, 0xa5, 0x29, 0x86, 0xd5, 0xd3, + 0x6d, 0xab, 0x92, 0x63, 0x1a, 0x9e, 0x09, 0xd3, 0xb0, 0xa7, 0x5a, 0xf6, 0x91, 0xc3, 0xdc, 0x88, + 0xe0, 0x42, 0xdf, 0x4f, 0xa0, 0xfa, 0xf4, 0x93, 0x13, 0x62, 0xba, 0x0a, 0x2b, 0xf9, 0xd9, 0xfa, + 0x0e, 0x28, 0xb7, 0x23, 0x4f, 0xf5, 0xe9, 0x7e, 0x02, 0xfa, 0x11, 0xac, 0xf6, 0x75, 0xa5, 0xe3, + 0xaa, 0x93, 0xdb, 0xbd, 0xa1, 0xf6, 0xb0, 0x52, 0x60, 0x4a, 0x9f, 0x0f, 0x1d, 0xa4, 0xae, 0x74, + 0x1c, 0x15, 0x35, 0x2a, 0xd0, 0x88, 0xe0, 0x95, 0xfe, 0x38, 0x11, 0x3d, 0x80, 0x0b, 0x8a, 0x61, + 0xf4, 0xcf, 0xc6, 0xb5, 0x17, 0x99, 0xf6, 0x1b, 0x61, 0xda, 0xb7, 0xa8, 0xcc, 0xb8, 0x7a, 0xa4, + 0x4c, 0x50, 0x51, 0x13, 0xca, 0x86, 0x49, 0x0c, 0xc5, 0x24, 0xb2, 0x61, 0xea, 0x86, 0x6e, 0x29, + 0xfd, 0x4a, 0x89, 0xe9, 0x7e, 0x2e, 0x4c, 0xf7, 0x21, 0xe7, 0x3f, 0x14, 0xec, 0x8d, 0x08, 0x2e, + 0x19, 0x41, 0x12, 0xd7, 0xaa, 0xb7, 0x89, 0x65, 0x79, 0x5a, 0xcb, 0xf3, 0xb4, 0x32, 0xfe, 0xa0, + 0xd6, 0x00, 0x89, 0x1e, 0x26, 0x72, 0x4a, 0xc5, 0xe5, 0x91, 0x6e, 0x93, 0xca, 0xca, 0xec, 0xc3, + 0x54, 0x67, 0xac, 0xf7, 0x75, 0x9b, 0xd0, 0xc3, 0x44, 0xdc, 0x1e, 0x52, 0xe0, 0x89, 0x11, 0x31, + 0xd5, 0x93, 0x33, 0xa6, 0x46, 0x66, 0x5f, 0x2c, 0x55, 0xd7, 0x2a, 0x88, 0x29, 0x7c, 0x21, 0x4c, + 0xe1, 0x7d, 0x26, 0x44, 0x55, 0xd4, 0x1d, 0x91, 0x46, 0x04, 0xaf, 0x8e, 0x26, 0xc9, 0x74, 0x8b, + 0x9d, 0xa8, 0x9a, 0xd2, 0x57, 0x1f, 0x11, 0x71, 0x64, 0x56, 0x67, 0x6f, 0xb1, 0x1d, 0xc1, 0xed, + 0x9c, 0x9b, 0xc2, 0x89, 0x9f, 0xb0, 0x9d, 0x86, 0xe4, 0x48, 0xe9, 0x0f, 0x89, 0xf4, 0x1c, 0xe4, + 0x7c, 0x97, 0x29, 0xaa, 0x40, 0x7a, 0x40, 0x2c, 0x4b, 0xe9, 0x12, 0x76, 0xf7, 0x66, 0xb1, 0xd3, + 0x95, 0x7e, 0x1a, 0x83, 0x95, 0x89, 0x5b, 0x05, 0x21, 0x48, 0xf4, 0x14, 0xab, 0xc7, 0x98, 0xf3, + 0x98, 0xb5, 0xd1, 0x2b, 0x90, 0xea, 0x11, 0xa5, 0x43, 0x4c, 0x71, 0x13, 0x57, 0xfc, 0x63, 0xe4, + 0x5e, 0xa6, 0xc1, 0xbe, 0x6f, 0x27, 0x3e, 0xff, 0x72, 0x3d, 0x82, 0x05, 0x37, 0x3a, 0x80, 0x72, + 0x5f, 0xb1, 0x6c, 0x99, 0x9f, 0x52, 0xd9, 0x77, 0x2b, 0x4f, 0xde, 0x4d, 0x7b, 0x8a, 0x73, 0xae, + 0xe9, 0xc5, 0x2c, 0x14, 0x15, 0xfb, 0x01, 0x2a, 0xc2, 0x70, 0xa1, 0x75, 0xf6, 0x48, 0xd1, 0x6c, + 0x55, 0x23, 0xf2, 0x48, 0xe9, 0xab, 0x1d, 0xc5, 0xd6, 0x4d, 0xab, 0x92, 0xb8, 0x1a, 0xbf, 0x9e, + 0xdb, 0xbc, 0x34, 0xa1, 0xb4, 0x3e, 0x52, 0x3b, 0x44, 0x6b, 0x13, 0xa1, 0x6e, 0xd5, 0x15, 0xbe, + 0xef, 0xca, 0x4a, 0x45, 0xc8, 0xfb, 0xfd, 0x88, 0xf4, 0x69, 0xd4, 0x35, 0x20, 0xfb, 0x67, 0x05, + 0xd2, 0x23, 0x62, 0xb2, 0xd5, 0x17, 0x06, 0x14, 0x5d, 0x74, 0x0d, 0x0a, 0x6c, 0xe5, 0x64, 0xe7, + 0x3b, 0xb5, 0x4e, 0x02, 0xe7, 0x19, 0xf1, 0xbe, 0x60, 0x5a, 0x87, 0x9c, 0xb1, 0x69, 0xb8, 0x2c, + 0x71, 0xc6, 0x02, 0xc6, 0xa6, 0xe1, 0x30, 0x3c, 0x0d, 0x79, 0x3a, 0x56, 0x97, 0x23, 0xc1, 0x7e, + 0x92, 0xa3, 0x34, 0xc1, 0x22, 0xfd, 0x25, 0x06, 0xe5, 0x71, 0xdf, 0x83, 0xee, 0x40, 0x82, 0xba, + 0x61, 0xe1, 0x51, 0xab, 0x1b, 0xdc, 0x47, 0x6f, 0x38, 0x3e, 0x7a, 0xa3, 0xe9, 0xf8, 0xe8, 0xed, + 0x0c, 0x9d, 0xfc, 0xa7, 0x7f, 0x5f, 0x8f, 0x62, 0x26, 0x81, 0x2e, 0x51, 0x57, 0xa1, 0xa8, 0x9a, + 0xac, 0x76, 0xd8, 0x90, 0xb3, 0xd4, 0x0f, 0x28, 0xaa, 0xb6, 0xdb, 0x41, 0x7b, 0x50, 0x6e, 0xeb, + 0x9a, 0x45, 0x34, 0x6b, 0x68, 0xc9, 0x3c, 0x06, 0x10, 0x2b, 0xf6, 0xf4, 0xe4, 0x9a, 0xd7, 0x1c, + 0xce, 0x43, 0xc6, 0x88, 0x4b, 0xed, 0x20, 0x01, 0xed, 0x00, 0x4c, 0x2c, 0xd2, 0xa4, 0x4b, 0x70, + 0xd7, 0xe2, 0xd8, 0xe8, 0x28, 0xb6, 0xb3, 0x56, 0x3e, 0x49, 0xf4, 0x2c, 0x94, 0x14, 0xc3, 0x90, + 0x2d, 0x5b, 0xb1, 0x89, 0xdc, 0x3a, 0xb3, 0x89, 0xc5, 0x7c, 0x6c, 0x1e, 0x17, 0x14, 0xc3, 0x38, + 0xa2, 0xd4, 0x6d, 0x4a, 0x44, 0xcf, 0x40, 0x91, 0xba, 0x63, 0x55, 0xe9, 0xcb, 0x3d, 0xa2, 0x76, + 0x7b, 0x36, 0xf3, 0xa6, 0x71, 0x5c, 0x10, 0xd4, 0x06, 0x23, 0x4a, 0x1d, 0x77, 0xc5, 0x99, 0x2b, + 0xa6, 0x5b, 0xbe, 0xa3, 0xd8, 0x8a, 0xb3, 0xe5, 0x69, 0x9b, 0xd2, 0x0c, 0xc5, 0xee, 0x09, 0xfb, + 0xb0, 0x36, 0xba, 0x48, 0x8f, 0x01, 0x53, 0x1b, 0x67, 0x6a, 0x45, 0x0f, 0x5d, 0x80, 0xa4, 0x61, + 0xea, 0x23, 0xc2, 0x96, 0x2e, 0x83, 0x79, 0x47, 0x92, 0xdc, 0x35, 0x73, 0xfd, 0x25, 0x2a, 0x42, + 0xcc, 0x3e, 0x15, 0xff, 0x89, 0xd9, 0xa7, 0xd2, 0xf3, 0x50, 0x1a, 0x73, 0x88, 0xbe, 0x9f, 0x44, + 0xfd, 0x3f, 0x91, 0x30, 0x14, 0x83, 0xee, 0x7b, 0x5c, 0x19, 0xfa, 0x16, 0x24, 0xe8, 0xba, 0xb0, + 0x21, 0x17, 0xa7, 0xc4, 0x3d, 0x42, 0xae, 0x79, 0x66, 0x10, 0xcc, 0x38, 0xa5, 0x12, 0x14, 0x02, + 0x1e, 0x55, 0xba, 0x08, 0x17, 0xa6, 0x39, 0x48, 0xa9, 0xe7, 0xd2, 0x03, 0x8e, 0x0e, 0xbd, 0x0c, + 0x19, 0xd7, 0x43, 0xf2, 0x7d, 0x38, 0x79, 0x06, 0x1d, 0x66, 0xec, 0xb2, 0xd2, 0x0d, 0x48, 0xd7, + 0x93, 0xdd, 0x33, 0x31, 0x36, 0xfe, 0xb4, 0x62, 0x18, 0x0d, 0xc5, 0xea, 0x49, 0x1f, 0x40, 0x25, + 0xcc, 0xfb, 0x8d, 0x99, 0x26, 0xe1, 0xda, 0xff, 0x22, 0xa4, 0x4e, 0x74, 0x73, 0xa0, 0xd8, 0x4c, + 0x59, 0x01, 0x8b, 0x1e, 0x5d, 0x17, 0xee, 0x09, 0xe3, 0x8c, 0xcc, 0x3b, 0x92, 0x0c, 0x97, 0x42, + 0x3d, 0x20, 0x15, 0x51, 0xb5, 0x0e, 0xe1, 0x66, 0x2d, 0x60, 0xde, 0xf1, 0x14, 0xf1, 0xc1, 0xf2, + 0x0e, 0xfd, 0xad, 0xc5, 0xe6, 0xca, 0xf4, 0x67, 0xb1, 0xe8, 0x49, 0xbf, 0x88, 0xc2, 0xc5, 0xe9, + 0x7e, 0x10, 0x5d, 0x01, 0xe0, 0x37, 0x86, 0xd8, 0x6f, 0xf1, 0xeb, 0x79, 0x9c, 0x65, 0x94, 0xbb, + 0x74, 0xd3, 0x3d, 0x0b, 0x25, 0xef, 0xb3, 0x6c, 0xa9, 0x8f, 0xf8, 0x62, 0xc6, 0x71, 0xc1, 0xe5, + 0x39, 0x52, 0x1f, 0x11, 0x74, 0x13, 0x92, 0xd4, 0x2f, 0xd1, 0xa3, 0x49, 0x8f, 0xd4, 0xc5, 0xc9, + 0xa3, 0x49, 0x7d, 0x0d, 0xe6, 0x4c, 0xd2, 0x1b, 0xee, 0x35, 0xef, 0xf9, 0x3b, 0x74, 0x03, 0x12, + 0xcc, 0x43, 0xf2, 0x55, 0x0b, 0xd3, 0xc0, 0x78, 0xa4, 0x06, 0x54, 0xc3, 0xfd, 0xdb, 0x52, 0x9a, + 0x7e, 0x15, 0xf3, 0x99, 0x26, 0xe8, 0xb9, 0x1f, 0xa7, 0xdf, 0x29, 0x43, 0xdc, 0x3e, 0xe5, 0xd6, + 0xc9, 0x63, 0xda, 0x9c, 0xea, 0x89, 0x12, 0xdf, 0x84, 0x27, 0x4a, 0x9e, 0xc3, 0x13, 0xfd, 0x36, + 0xe6, 0x1e, 0xb3, 0x80, 0xb3, 0x77, 0xe6, 0x13, 0xf5, 0xe6, 0xe3, 0x58, 0x2b, 0xe6, 0xb3, 0x56, + 0xd8, 0xf5, 0xe4, 0x59, 0x31, 0x71, 0x6e, 0xef, 0x9d, 0xfc, 0x26, 0x6c, 0x96, 0x3a, 0x87, 0xcd, + 0xfe, 0x9c, 0x83, 0x0c, 0x26, 0x96, 0x41, 0x3d, 0x0f, 0xda, 0x86, 0x2c, 0x39, 0x6d, 0x13, 0xc3, + 0x76, 0x9c, 0xf5, 0xf4, 0xd8, 0x8f, 0x73, 0xd7, 0x1d, 0x4e, 0x8a, 0x62, 0x5c, 0x31, 0x74, 0x5b, + 0x00, 0xd5, 0x70, 0xcc, 0x29, 0xc4, 0xfd, 0x48, 0xf5, 0x15, 0x07, 0xa9, 0xc6, 0x43, 0x81, 0x0b, + 0x97, 0x1a, 0x83, 0xaa, 0xb7, 0x05, 0x54, 0x4d, 0xcc, 0xf9, 0x59, 0x00, 0xab, 0xd6, 0x02, 0x58, + 0x35, 0x39, 0x67, 0x9a, 0x21, 0x60, 0xf5, 0x15, 0x07, 0xac, 0xa6, 0xe6, 0x8c, 0x78, 0x0c, 0xad, + 0xee, 0x04, 0xd1, 0x2a, 0x47, 0x9a, 0xd7, 0x42, 0xa5, 0x43, 0xe1, 0xea, 0x77, 0x7d, 0x70, 0x35, + 0x13, 0x8a, 0x15, 0xb9, 0x92, 0x29, 0x78, 0xb5, 0x16, 0xc0, 0xab, 0xd9, 0x39, 0x36, 0x08, 0x01, + 0xac, 0x6f, 0xfa, 0x01, 0x2b, 0x84, 0x62, 0x5e, 0xb1, 0xde, 0xd3, 0x10, 0xeb, 0xab, 0x2e, 0x62, + 0xcd, 0x85, 0x42, 0x6e, 0x31, 0x87, 0x71, 0xc8, 0x7a, 0x30, 0x01, 0x59, 0x39, 0xc4, 0x7c, 0x36, + 0x54, 0xc5, 0x1c, 0xcc, 0x7a, 0x30, 0x81, 0x59, 0x0b, 0x73, 0x14, 0xce, 0x01, 0xad, 0xef, 0x4d, + 0x07, 0xad, 0xe1, 0xb0, 0x52, 0x0c, 0x73, 0x31, 0xd4, 0x2a, 0x87, 0xa0, 0xd6, 0x52, 0x28, 0xc2, + 0xe2, 0xea, 0x17, 0x86, 0xad, 0xc7, 0x53, 0x60, 0x2b, 0x07, 0x98, 0xd7, 0x43, 0x95, 0x2f, 0x80, + 0x5b, 0x8f, 0xa7, 0xe0, 0xd6, 0x95, 0xb9, 0x6a, 0xe7, 0x02, 0xd7, 0x9d, 0x20, 0x70, 0x45, 0x73, + 0xce, 0x55, 0x28, 0x72, 0x6d, 0x85, 0x21, 0x57, 0x8e, 0x2e, 0x6f, 0x86, 0x6a, 0x5c, 0x02, 0xba, + 0x1e, 0x4c, 0x40, 0xd7, 0x0b, 0x73, 0x76, 0xda, 0xa2, 0xd8, 0xf5, 0x79, 0x1a, 0xaa, 0x8c, 0x5d, + 0xcf, 0x34, 0xfa, 0x22, 0xa6, 0xa9, 0x9b, 0x02, 0x7e, 0xf1, 0x8e, 0x74, 0x9d, 0x06, 0xf1, 0xde, + 0x55, 0x3c, 0x03, 0xe7, 0xb2, 0x28, 0xd7, 0x77, 0xfd, 0x4a, 0xbf, 0x8f, 0x7a, 0xb2, 0xcc, 0x31, + 0xf9, 0x01, 0x40, 0x56, 0x00, 0x00, 0x1f, 0xec, 0x8b, 0x05, 0x61, 0xdf, 0x3a, 0xe4, 0x68, 0xf4, + 0x3a, 0x86, 0xe8, 0x14, 0xc3, 0x45, 0x74, 0x37, 0x60, 0x85, 0x39, 0x4e, 0x1e, 0xcb, 0x09, 0x9f, + 0x9c, 0x60, 0x3e, 0xb9, 0x44, 0x3f, 0x70, 0x2b, 0x70, 0xe7, 0xfc, 0x22, 0xac, 0xfa, 0x78, 0xdd, + 0xa8, 0x98, 0xc3, 0x9b, 0xb2, 0xcb, 0xbd, 0x25, 0xc2, 0xe3, 0x3f, 0x46, 0x3d, 0x0b, 0x79, 0x50, + 0x70, 0x1a, 0x6a, 0x8b, 0x3e, 0x26, 0xd4, 0x16, 0xfb, 0x9f, 0x51, 0x9b, 0x3f, 0xca, 0x8f, 0x07, + 0xa3, 0xfc, 0x7f, 0x47, 0xbd, 0x35, 0x71, 0x31, 0x58, 0x5b, 0xef, 0x10, 0x11, 0x77, 0xb3, 0x36, + 0x0d, 0x7b, 0xfa, 0x7a, 0x57, 0x44, 0xd7, 0xb4, 0x49, 0xb9, 0x5c, 0x7f, 0x99, 0x15, 0xee, 0xd0, + 0x0d, 0xd9, 0x93, 0xcc, 0xc2, 0x22, 0x64, 0x2f, 0x43, 0xfc, 0x21, 0xe1, 0xde, 0x2d, 0x8f, 0x69, + 0x93, 0xf2, 0xb1, 0x4d, 0xc6, 0x7c, 0x56, 0x1e, 0xf3, 0x0e, 0xba, 0x03, 0x59, 0x96, 0x44, 0x97, + 0x75, 0xc3, 0x12, 0x8e, 0xe8, 0x29, 0xff, 0x5c, 0x79, 0xae, 0x7c, 0xe3, 0x90, 0xf2, 0x1c, 0x18, + 0x16, 0xce, 0x18, 0xa2, 0xe5, 0x0b, 0xb7, 0xb2, 0x81, 0x70, 0xeb, 0x32, 0x64, 0xe9, 0xe8, 0x2d, + 0x43, 0x69, 0x13, 0xe6, 0x55, 0xb2, 0xd8, 0x23, 0x48, 0x0f, 0x00, 0x4d, 0xfa, 0x46, 0xd4, 0x80, + 0x14, 0x19, 0x11, 0xcd, 0xe6, 0x31, 0xde, 0x58, 0x14, 0x2d, 0x62, 0x21, 0xa2, 0xd9, 0xdb, 0x15, + 0x6a, 0xe4, 0x7f, 0x7e, 0xb9, 0x5e, 0xe6, 0xdc, 0x37, 0xf5, 0x81, 0x6a, 0x93, 0x81, 0x61, 0x9f, + 0x61, 0x21, 0x2f, 0xfd, 0x2d, 0x46, 0x21, 0x65, 0xc0, 0x6f, 0x4e, 0xb5, 0xad, 0xb3, 0xe5, 0x63, + 0x3e, 0xcc, 0xbb, 0x98, 0xbd, 0xd7, 0x00, 0xba, 0x8a, 0x25, 0x7f, 0xac, 0x68, 0x36, 0xe9, 0x08, + 0xa3, 0xfb, 0x28, 0xa8, 0x0a, 0x19, 0xda, 0x1b, 0x5a, 0xa4, 0x23, 0xe0, 0xb7, 0xdb, 0xf7, 0xcd, + 0x33, 0x7d, 0xbe, 0x79, 0x06, 0xad, 0x9c, 0x19, 0xb3, 0xb2, 0x0f, 0x9a, 0x65, 0xfd, 0xd0, 0x8c, + 0x8e, 0xcd, 0x30, 0x55, 0xdd, 0x54, 0xed, 0x33, 0xb6, 0x34, 0x71, 0xec, 0xf6, 0xd1, 0x35, 0x28, + 0x0c, 0xc8, 0xc0, 0xd0, 0xf5, 0xbe, 0xcc, 0xaf, 0x9b, 0x1c, 0x13, 0xcd, 0x0b, 0x62, 0x9d, 0xdd, + 0x3a, 0x3f, 0x8b, 0x79, 0xe7, 0xcf, 0x83, 0xf5, 0xff, 0x77, 0x06, 0x96, 0x7e, 0xce, 0x32, 0x52, + 0xc1, 0xc8, 0x08, 0x1d, 0xc1, 0x8a, 0x7b, 0xfc, 0xe5, 0x21, 0xbb, 0x16, 0x9c, 0x0d, 0xbd, 0xe8, + 0xfd, 0x51, 0x1e, 0x05, 0xc9, 0x16, 0x7a, 0x17, 0x9e, 0x1c, 0xbb, 0xdb, 0x5c, 0xd5, 0xb1, 0x45, + 0xaf, 0xb8, 0x27, 0x82, 0x57, 0x9c, 0xa3, 0xda, 0x33, 0x56, 0xfc, 0x9c, 0xa7, 0x6e, 0x17, 0x8a, + 0xc1, 0x40, 0x6f, 0xea, 0xf2, 0x5f, 0x83, 0x82, 0x49, 0x6c, 0x45, 0xd5, 0xe4, 0x00, 0x4e, 0xcb, + 0x73, 0xa2, 0x48, 0x4e, 0x1d, 0xc2, 0x13, 0x53, 0x03, 0x3e, 0xf4, 0x1d, 0xc8, 0x7a, 0xb1, 0x62, + 0x34, 0x04, 0x32, 0xb9, 0xc9, 0x16, 0x8f, 0x57, 0xfa, 0x43, 0xd4, 0x53, 0x19, 0x4c, 0xdf, 0xd4, + 0x21, 0x65, 0x12, 0x6b, 0xd8, 0xe7, 0x09, 0x95, 0xe2, 0xe6, 0x8b, 0x8b, 0x85, 0x8a, 0x94, 0x3a, + 0xec, 0xdb, 0x58, 0x08, 0x4b, 0x0f, 0x20, 0xc5, 0x29, 0x28, 0x07, 0xe9, 0xe3, 0xfd, 0x7b, 0xfb, + 0x07, 0xef, 0xec, 0x97, 0x23, 0x08, 0x20, 0xb5, 0x55, 0xab, 0xd5, 0x0f, 0x9b, 0xe5, 0x28, 0xca, + 0x42, 0x72, 0x6b, 0xfb, 0x00, 0x37, 0xcb, 0x31, 0x4a, 0xc6, 0xf5, 0xb7, 0xea, 0xb5, 0x66, 0x39, + 0x8e, 0x56, 0xa0, 0xc0, 0xdb, 0xf2, 0xce, 0x01, 0x7e, 0x7b, 0xab, 0x59, 0x4e, 0xf8, 0x48, 0x47, + 0xf5, 0xfd, 0xbb, 0x75, 0x5c, 0x4e, 0x4a, 0x2f, 0xc1, 0xa5, 0xd0, 0xe0, 0xd2, 0xcb, 0xcd, 0x44, + 0x7d, 0xb9, 0x19, 0xe9, 0x97, 0x31, 0xa8, 0x86, 0x47, 0x8c, 0xe8, 0xad, 0xb1, 0x89, 0x6f, 0x2e, + 0x11, 0x6e, 0x8e, 0xcd, 0x1e, 0x3d, 0x03, 0x45, 0x93, 0x9c, 0x10, 0xbb, 0xdd, 0xe3, 0x11, 0x2c, + 0x77, 0x99, 0x05, 0x5c, 0x10, 0x54, 0x26, 0x64, 0x71, 0xb6, 0x0f, 0x49, 0xdb, 0x96, 0xf9, 0x5d, + 0xc4, 0x37, 0x5d, 0x96, 0xb2, 0x51, 0xea, 0x11, 0x27, 0x4a, 0x1f, 0x2c, 0x65, 0xcb, 0x2c, 0x24, + 0x71, 0xbd, 0x89, 0xdf, 0x2d, 0xc7, 0x11, 0x82, 0x22, 0x6b, 0xca, 0x47, 0xfb, 0x5b, 0x87, 0x47, + 0x8d, 0x03, 0x6a, 0xcb, 0x55, 0x28, 0x39, 0xb6, 0x74, 0x88, 0x49, 0xe9, 0x0e, 0x3c, 0x19, 0x12, + 0xee, 0xce, 0x49, 0x4f, 0x49, 0xef, 0x79, 0xbe, 0xcb, 0x97, 0x49, 0xda, 0x81, 0xe2, 0x58, 0xa8, + 0x19, 0x9d, 0xc4, 0x42, 0x5e, 0x26, 0xc8, 0x0d, 0x23, 0x71, 0x61, 0xe4, 0xef, 0x4a, 0xbf, 0x8e, + 0xc2, 0x53, 0x33, 0x82, 0x51, 0x74, 0x6f, 0x6c, 0xcd, 0x6e, 0x2f, 0x13, 0xca, 0x8e, 0x6f, 0xd9, + 0x3b, 0x0b, 0x99, 0xf9, 0x68, 0x6f, 0xeb, 0xa8, 0x11, 0xdc, 0xb2, 0xd2, 0xef, 0x62, 0x7e, 0xfb, + 0x05, 0x83, 0xf8, 0x8b, 0x90, 0x52, 0xda, 0x34, 0x6c, 0x65, 0x43, 0xcc, 0x60, 0xd1, 0x9b, 0x91, + 0xef, 0x44, 0xaf, 0x03, 0xd8, 0xa7, 0x32, 0x1f, 0x95, 0x73, 0x0f, 0x4d, 0xe6, 0x01, 0xea, 0xa7, + 0xa4, 0xdd, 0x3c, 0x15, 0x73, 0xc8, 0xda, 0xa2, 0x65, 0xa1, 0xb7, 0xa7, 0xdd, 0xb8, 0x0b, 0xe6, + 0xd9, 0x97, 0xbb, 0x6b, 0x93, 0xe7, 0xbb, 0x6b, 0xa5, 0x3f, 0xc5, 0xbc, 0x4b, 0x28, 0x98, 0xdc, + 0xfa, 0xb6, 0x97, 0xdc, 0x5a, 0x08, 0xc3, 0xf3, 0x04, 0xd8, 0x54, 0x5f, 0x13, 0xfb, 0xe6, 0x7c, + 0x4d, 0xfc, 0xb1, 0xf9, 0x9a, 0xc4, 0x39, 0x7d, 0xcd, 0xfb, 0x50, 0x0c, 0x66, 0xdb, 0xe8, 0x15, + 0x68, 0xea, 0x43, 0xad, 0xc3, 0x76, 0x5d, 0x12, 0xf3, 0x0e, 0x7a, 0xd9, 0x49, 0x12, 0xc7, 0x42, + 0x7c, 0x05, 0x3d, 0x20, 0xbe, 0x6c, 0x9d, 0xc8, 0x16, 0x3f, 0x82, 0x24, 0x1b, 0x09, 0xf5, 0x60, + 0xac, 0x9c, 0x20, 0x40, 0x11, 0x6d, 0xa3, 0xf7, 0x01, 0x14, 0xdb, 0x36, 0xd5, 0xd6, 0xd0, 0x53, + 0xbc, 0x3e, 0x7d, 0x26, 0x5b, 0x0e, 0xdf, 0xf6, 0x65, 0x31, 0xa5, 0x0b, 0x9e, 0xa8, 0x6f, 0x5a, + 0x3e, 0x85, 0xd2, 0x3e, 0x14, 0x83, 0xb2, 0x4e, 0x18, 0xcf, 0xc7, 0x10, 0x0c, 0xe3, 0x39, 0x2a, + 0x13, 0x61, 0xbc, 0x0b, 0x02, 0xe2, 0xbc, 0x04, 0xc3, 0x3a, 0xd2, 0x4f, 0x62, 0x90, 0xf7, 0x1f, + 0x9d, 0xc7, 0x1c, 0xa8, 0x5d, 0x99, 0x12, 0xa8, 0x65, 0xbb, 0x8a, 0xf5, 0x0e, 0x8f, 0xd3, 0x2e, + 0x4d, 0xc4, 0x69, 0xe9, 0xae, 0x62, 0x1d, 0xd3, 0x30, 0xed, 0x6d, 0xc8, 0xda, 0xa7, 0xf2, 0x39, + 0x23, 0xb5, 0x8c, 0x7d, 0x5a, 0x5f, 0x24, 0x56, 0xfb, 0x24, 0x0a, 0x19, 0xd7, 0x02, 0x21, 0xe5, + 0x25, 0xcf, 0x80, 0x31, 0x7f, 0xe1, 0x83, 0x97, 0x98, 0xe2, 0x6e, 0x89, 0xe9, 0x4d, 0xf7, 0x0e, + 0x4e, 0x2c, 0x9a, 0x72, 0x73, 0x92, 0xca, 0xe2, 0xe2, 0x7d, 0x0d, 0xb2, 0xee, 0x69, 0xa4, 0x18, + 0x5b, 0xe9, 0x74, 0x4c, 0x62, 0x59, 0xc2, 0x7b, 0x3b, 0x5d, 0x56, 0x52, 0xd3, 0x3f, 0x16, 0xa5, + 0x95, 0x38, 0xe6, 0x1d, 0xa9, 0x03, 0xa5, 0xb1, 0xa3, 0x8c, 0x5e, 0x83, 0xb4, 0x31, 0x6c, 0xc9, + 0xce, 0x26, 0x19, 0x7b, 0xef, 0xe3, 0xa0, 0xb7, 0x61, 0xab, 0xaf, 0xb6, 0xef, 0x91, 0x33, 0x67, + 0x30, 0xc6, 0xb0, 0x75, 0x8f, 0xef, 0x25, 0xfe, 0x97, 0x98, 0xff, 0x2f, 0x23, 0xc8, 0x38, 0x47, + 0x03, 0x7d, 0x0f, 0xb2, 0xee, 0x2d, 0xe1, 0x56, 0x5a, 0x43, 0xaf, 0x17, 0xa1, 0xde, 0x13, 0x41, + 0x37, 0x60, 0xc5, 0x52, 0xbb, 0x1a, 0xe9, 0xc8, 0x1e, 0xca, 0x67, 0x7f, 0xcb, 0xe0, 0x12, 0xff, + 0xb0, 0xe7, 0x40, 0x7c, 0xe9, 0x3f, 0x51, 0xc8, 0x38, 0x29, 0x6f, 0xf4, 0x92, 0xef, 0xf4, 0x15, + 0xa7, 0x79, 0x04, 0xc1, 0xe8, 0x55, 0xf3, 0x82, 0x63, 0x8d, 0x2d, 0x3f, 0xd6, 0xb0, 0xfa, 0x81, + 0x53, 0x68, 0x4e, 0x2c, 0x5d, 0x68, 0xbe, 0x09, 0xc8, 0xd6, 0x6d, 0xa5, 0x2f, 0x8f, 0x74, 0x5b, + 0xd5, 0xba, 0x32, 0x37, 0x36, 0x3f, 0x28, 0x65, 0xf6, 0xe5, 0x3e, 0xfb, 0x70, 0xc8, 0xec, 0xfe, + 0xe3, 0x28, 0x64, 0xdc, 0xd0, 0x74, 0xd9, 0x5a, 0xdf, 0x45, 0x48, 0x89, 0xe8, 0x8b, 0x17, 0xfb, + 0x44, 0xcf, 0x2d, 0x94, 0x24, 0x7c, 0x85, 0x92, 0x2a, 0x64, 0x06, 0xc4, 0x56, 0xd8, 0xa9, 0xe7, + 0x89, 0x16, 0xb7, 0x7f, 0xe3, 0x55, 0xc8, 0xf9, 0xea, 0xa4, 0xf4, 0x22, 0xd8, 0xaf, 0xbf, 0x53, + 0x8e, 0x54, 0xd3, 0x9f, 0x7c, 0x76, 0x35, 0xbe, 0x4f, 0x3e, 0xa6, 0x7b, 0x16, 0xd7, 0x6b, 0x8d, + 0x7a, 0xed, 0x5e, 0x39, 0x5a, 0xcd, 0x7d, 0xf2, 0xd9, 0xd5, 0x34, 0x26, 0x2c, 0x2b, 0x7d, 0xa3, + 0x01, 0x79, 0xff, 0xaa, 0x04, 0x23, 0x0b, 0x04, 0xc5, 0xbb, 0xc7, 0x87, 0x7b, 0xbb, 0xb5, 0xad, + 0x66, 0x5d, 0xbe, 0x7f, 0xd0, 0xac, 0x97, 0xa3, 0xe8, 0x49, 0x58, 0xdd, 0xdb, 0xfd, 0x7e, 0xa3, + 0x29, 0xd7, 0xf6, 0x76, 0xeb, 0xfb, 0x4d, 0x79, 0xab, 0xd9, 0xdc, 0xaa, 0xdd, 0x2b, 0xc7, 0x36, + 0x7f, 0x93, 0x83, 0xd2, 0xd6, 0x76, 0x6d, 0x97, 0x06, 0x9f, 0x6a, 0x5b, 0x61, 0x59, 0xb0, 0x1a, + 0x24, 0x58, 0x9e, 0x6b, 0xe6, 0xd3, 0xb9, 0xea, 0xec, 0x7a, 0x05, 0xda, 0x81, 0x24, 0x4b, 0x81, + 0xa1, 0xd9, 0x6f, 0xe9, 0xaa, 0x73, 0x0a, 0x18, 0x74, 0x30, 0xec, 0x78, 0xcc, 0x7c, 0x5c, 0x57, + 0x9d, 0x5d, 0xcf, 0x40, 0x7b, 0x90, 0x76, 0x32, 0x14, 0xf3, 0x9e, 0xaa, 0x55, 0xe7, 0x16, 0x07, + 0xe8, 0xd4, 0x78, 0x26, 0x69, 0xf6, 0xbb, 0xbb, 0xea, 0x9c, 0x4a, 0x07, 0xda, 0x85, 0x94, 0x80, + 0x70, 0x73, 0x9e, 0x9f, 0x55, 0xe7, 0x25, 0xfb, 0x11, 0x86, 0xac, 0x97, 0xa3, 0x9b, 0xff, 0x9a, + 0xb0, 0xba, 0x40, 0x11, 0x07, 0x3d, 0x80, 0x42, 0x10, 0x16, 0x2e, 0xf6, 0xc4, 0xad, 0xba, 0x60, + 0x59, 0x81, 0xea, 0x0f, 0x62, 0xc4, 0xc5, 0x9e, 0xbc, 0x55, 0x17, 0xac, 0x32, 0xa0, 0x0f, 0x61, + 0x65, 0x12, 0xc3, 0x2d, 0xfe, 0x02, 0xae, 0xba, 0x44, 0xdd, 0x01, 0x0d, 0x00, 0x4d, 0xc1, 0x7e, + 0x4b, 0x3c, 0x88, 0xab, 0x2e, 0x53, 0x86, 0x40, 0x1d, 0x28, 0x8d, 0x03, 0xaa, 0x45, 0x1f, 0xc8, + 0x55, 0x17, 0x2e, 0x49, 0xf0, 0xbf, 0x04, 0x61, 0xc7, 0xa2, 0x0f, 0xe6, 0xaa, 0x0b, 0x57, 0x28, + 0xe8, 0x36, 0x08, 0x46, 0xe9, 0x8b, 0x3d, 0x4b, 0xab, 0x2e, 0x58, 0x02, 0x40, 0xc7, 0x00, 0x3e, + 0x08, 0xb9, 0xc0, 0x03, 0xbd, 0xea, 0x22, 0xb5, 0x10, 0x64, 0xc0, 0xea, 0x34, 0xe8, 0xb8, 0xcc, + 0x7b, 0xbd, 0xea, 0x52, 0x25, 0x92, 0xed, 0xfa, 0xe7, 0x5f, 0xad, 0x45, 0xbf, 0xf8, 0x6a, 0x2d, + 0xfa, 0x8f, 0xaf, 0xd6, 0xa2, 0x9f, 0x7e, 0xbd, 0x16, 0xf9, 0xe2, 0xeb, 0xb5, 0xc8, 0x5f, 0xbf, + 0x5e, 0x8b, 0xfc, 0xf0, 0x85, 0xae, 0x6a, 0xf7, 0x86, 0xad, 0x8d, 0xb6, 0x3e, 0xb8, 0xe5, 0x7f, + 0x5e, 0x3d, 0xed, 0xc9, 0x77, 0x2b, 0xc5, 0xbc, 0xe9, 0xed, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, + 0x5c, 0xd7, 0x22, 0x06, 0x12, 0x2e, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3569,22 +4051,19 @@ type ABCIApplicationClient interface { Echo(ctx context.Context, in *RequestEcho, opts ...grpc.CallOption) (*ResponseEcho, error) Flush(ctx context.Context, in *RequestFlush, opts ...grpc.CallOption) (*ResponseFlush, error) Info(ctx context.Context, in *RequestInfo, opts ...grpc.CallOption) (*ResponseInfo, error) - // rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx); CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error) Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error) Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error) - // rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock); - // rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock); ListSnapshots(ctx context.Context, in *RequestListSnapshots, opts ...grpc.CallOption) (*ResponseListSnapshots, error) OfferSnapshot(ctx context.Context, in *RequestOfferSnapshot, opts ...grpc.CallOption) (*ResponseOfferSnapshot, error) LoadSnapshotChunk(ctx context.Context, in *RequestLoadSnapshotChunk, opts ...grpc.CallOption) (*ResponseLoadSnapshotChunk, error) ApplySnapshotChunk(ctx context.Context, in *RequestApplySnapshotChunk, opts ...grpc.CallOption) (*ResponseApplySnapshotChunk, error) PrepareProposal(ctx context.Context, in *RequestPrepareProposal, opts ...grpc.CallOption) (*ResponsePrepareProposal, error) ProcessProposal(ctx context.Context, in *RequestProcessProposal, opts ...grpc.CallOption) (*ResponseProcessProposal, error) + FinalizeBlock(ctx context.Context, in *RequestFinalizeBlock, opts ...grpc.CallOption) (*ResponseFinalizeBlock, error) ExtendVote(ctx context.Context, in *RequestExtendVote, opts ...grpc.CallOption) (*ResponseExtendVote, error) VerifyVoteExtension(ctx context.Context, in *RequestVerifyVoteExtension, opts ...grpc.CallOption) (*ResponseVerifyVoteExtension, error) - FinalizeBlock(ctx context.Context, in *RequestFinalizeBlock, opts ...grpc.CallOption) (*ResponseFinalizeBlock, error) } type aBCIApplicationClient struct { @@ -3712,27 +4191,27 @@ func (c *aBCIApplicationClient) ProcessProposal(ctx context.Context, in *Request return out, nil } -func (c *aBCIApplicationClient) ExtendVote(ctx context.Context, in *RequestExtendVote, opts ...grpc.CallOption) (*ResponseExtendVote, error) { - out := new(ResponseExtendVote) - err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/ExtendVote", in, out, opts...) +func (c *aBCIApplicationClient) FinalizeBlock(ctx context.Context, in *RequestFinalizeBlock, opts ...grpc.CallOption) (*ResponseFinalizeBlock, error) { + out := new(ResponseFinalizeBlock) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/FinalizeBlock", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *aBCIApplicationClient) VerifyVoteExtension(ctx context.Context, in *RequestVerifyVoteExtension, opts ...grpc.CallOption) (*ResponseVerifyVoteExtension, error) { - out := new(ResponseVerifyVoteExtension) - err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/VerifyVoteExtension", in, out, opts...) +func (c *aBCIApplicationClient) ExtendVote(ctx context.Context, in *RequestExtendVote, opts ...grpc.CallOption) (*ResponseExtendVote, error) { + out := new(ResponseExtendVote) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/ExtendVote", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *aBCIApplicationClient) FinalizeBlock(ctx context.Context, in *RequestFinalizeBlock, opts ...grpc.CallOption) (*ResponseFinalizeBlock, error) { - out := new(ResponseFinalizeBlock) - err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/FinalizeBlock", in, out, opts...) +func (c *aBCIApplicationClient) VerifyVoteExtension(ctx context.Context, in *RequestVerifyVoteExtension, opts ...grpc.CallOption) (*ResponseVerifyVoteExtension, error) { + out := new(ResponseVerifyVoteExtension) + err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/VerifyVoteExtension", in, out, opts...) if err != nil { return nil, err } @@ -3744,22 +4223,19 @@ type ABCIApplicationServer interface { Echo(context.Context, *RequestEcho) (*ResponseEcho, error) Flush(context.Context, *RequestFlush) (*ResponseFlush, error) Info(context.Context, *RequestInfo) (*ResponseInfo, error) - // rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx); CheckTx(context.Context, *RequestCheckTx) (*ResponseCheckTx, error) Query(context.Context, *RequestQuery) (*ResponseQuery, error) Commit(context.Context, *RequestCommit) (*ResponseCommit, error) InitChain(context.Context, *RequestInitChain) (*ResponseInitChain, error) - // rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock); - // rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock); ListSnapshots(context.Context, *RequestListSnapshots) (*ResponseListSnapshots, error) OfferSnapshot(context.Context, *RequestOfferSnapshot) (*ResponseOfferSnapshot, error) LoadSnapshotChunk(context.Context, *RequestLoadSnapshotChunk) (*ResponseLoadSnapshotChunk, error) ApplySnapshotChunk(context.Context, *RequestApplySnapshotChunk) (*ResponseApplySnapshotChunk, error) PrepareProposal(context.Context, *RequestPrepareProposal) (*ResponsePrepareProposal, error) ProcessProposal(context.Context, *RequestProcessProposal) (*ResponseProcessProposal, error) + FinalizeBlock(context.Context, *RequestFinalizeBlock) (*ResponseFinalizeBlock, error) ExtendVote(context.Context, *RequestExtendVote) (*ResponseExtendVote, error) VerifyVoteExtension(context.Context, *RequestVerifyVoteExtension) (*ResponseVerifyVoteExtension, error) - FinalizeBlock(context.Context, *RequestFinalizeBlock) (*ResponseFinalizeBlock, error) } // UnimplementedABCIApplicationServer can be embedded to have forward compatible implementations. @@ -3805,15 +4281,15 @@ func (*UnimplementedABCIApplicationServer) PrepareProposal(ctx context.Context, func (*UnimplementedABCIApplicationServer) ProcessProposal(ctx context.Context, req *RequestProcessProposal) (*ResponseProcessProposal, error) { return nil, status.Errorf(codes.Unimplemented, "method ProcessProposal not implemented") } +func (*UnimplementedABCIApplicationServer) FinalizeBlock(ctx context.Context, req *RequestFinalizeBlock) (*ResponseFinalizeBlock, error) { + return nil, status.Errorf(codes.Unimplemented, "method FinalizeBlock not implemented") +} func (*UnimplementedABCIApplicationServer) ExtendVote(ctx context.Context, req *RequestExtendVote) (*ResponseExtendVote, error) { return nil, status.Errorf(codes.Unimplemented, "method ExtendVote not implemented") } func (*UnimplementedABCIApplicationServer) VerifyVoteExtension(ctx context.Context, req *RequestVerifyVoteExtension) (*ResponseVerifyVoteExtension, error) { return nil, status.Errorf(codes.Unimplemented, "method VerifyVoteExtension not implemented") } -func (*UnimplementedABCIApplicationServer) FinalizeBlock(ctx context.Context, req *RequestFinalizeBlock) (*ResponseFinalizeBlock, error) { - return nil, status.Errorf(codes.Unimplemented, "method FinalizeBlock not implemented") -} func RegisterABCIApplicationServer(s *grpc.Server, srv ABCIApplicationServer) { s.RegisterService(&_ABCIApplication_serviceDesc, srv) @@ -4053,56 +4529,56 @@ func _ABCIApplication_ProcessProposal_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } -func _ABCIApplication_ExtendVote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RequestExtendVote) +func _ABCIApplication_FinalizeBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestFinalizeBlock) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ABCIApplicationServer).ExtendVote(ctx, in) + return srv.(ABCIApplicationServer).FinalizeBlock(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tendermint.abci.ABCIApplication/ExtendVote", + FullMethod: "/tendermint.abci.ABCIApplication/FinalizeBlock", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ABCIApplicationServer).ExtendVote(ctx, req.(*RequestExtendVote)) + return srv.(ABCIApplicationServer).FinalizeBlock(ctx, req.(*RequestFinalizeBlock)) } return interceptor(ctx, in, info, handler) } -func _ABCIApplication_VerifyVoteExtension_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RequestVerifyVoteExtension) +func _ABCIApplication_ExtendVote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestExtendVote) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ABCIApplicationServer).VerifyVoteExtension(ctx, in) + return srv.(ABCIApplicationServer).ExtendVote(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tendermint.abci.ABCIApplication/VerifyVoteExtension", + FullMethod: "/tendermint.abci.ABCIApplication/ExtendVote", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ABCIApplicationServer).VerifyVoteExtension(ctx, req.(*RequestVerifyVoteExtension)) + return srv.(ABCIApplicationServer).ExtendVote(ctx, req.(*RequestExtendVote)) } return interceptor(ctx, in, info, handler) } -func _ABCIApplication_FinalizeBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RequestFinalizeBlock) +func _ABCIApplication_VerifyVoteExtension_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestVerifyVoteExtension) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ABCIApplicationServer).FinalizeBlock(ctx, in) + return srv.(ABCIApplicationServer).VerifyVoteExtension(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/tendermint.abci.ABCIApplication/FinalizeBlock", + FullMethod: "/tendermint.abci.ABCIApplication/VerifyVoteExtension", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ABCIApplicationServer).FinalizeBlock(ctx, req.(*RequestFinalizeBlock)) + return srv.(ABCIApplicationServer).VerifyVoteExtension(ctx, req.(*RequestVerifyVoteExtension)) } return interceptor(ctx, in, info, handler) } @@ -4163,6 +4639,10 @@ var _ABCIApplication_serviceDesc = grpc.ServiceDesc{ MethodName: "ProcessProposal", Handler: _ABCIApplication_ProcessProposal_Handler, }, + { + MethodName: "FinalizeBlock", + Handler: _ABCIApplication_FinalizeBlock_Handler, + }, { MethodName: "ExtendVote", Handler: _ABCIApplication_ExtendVote_Handler, @@ -4171,10 +4651,6 @@ var _ABCIApplication_serviceDesc = grpc.ServiceDesc{ MethodName: "VerifyVoteExtension", Handler: _ABCIApplication_VerifyVoteExtension_Handler, }, - { - MethodName: "FinalizeBlock", - Handler: _ABCIApplication_FinalizeBlock_Handler, - }, }, Streams: []grpc.StreamDesc{}, Metadata: "tendermint/abci/types.proto", @@ -4317,16 +4793,16 @@ func (m *Request_Query) MarshalToSizedBuffer(dAtA []byte) (int, error) { } return len(dAtA) - i, nil } -func (m *Request_CheckTx) MarshalTo(dAtA []byte) (int, error) { +func (m *Request_BeginBlock) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Request_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *Request_BeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) - if m.CheckTx != nil { + if m.BeginBlock != nil { { - size, err := m.CheckTx.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.BeginBlock.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -4334,20 +4810,83 @@ func (m *Request_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintTypes(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x3a + dAtA[i] = 0x32 } return len(dAtA) - i, nil } -func (m *Request_Commit) MarshalTo(dAtA []byte) (int, error) { +func (m *Request_CheckTx) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Request_Commit) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *Request_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) - if m.Commit != nil { + if m.CheckTx != nil { { - size, err := m.Commit.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.CheckTx.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} +func (m *Request_DeliverTx) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_DeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DeliverTx != nil { + { + size, err := m.DeliverTx.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + return len(dAtA) - i, nil +} +func (m *Request_EndBlock) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_EndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.EndBlock != nil { + { + size, err := m.EndBlock.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + return len(dAtA) - i, nil +} +func (m *Request_Commit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Request_Commit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Commit != nil { + { + size, err := m.Commit.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -4586,6 +5125,70 @@ func (m *RequestEcho) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *RequestBeginBlock) 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 *RequestBeginBlock) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestBeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ByzantineValidators) > 0 { + for iNdEx := len(m.ByzantineValidators) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ByzantineValidators[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + { + size, err := m.LastCommitInfo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Header.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Hash) > 0 { + i -= len(m.Hash) + copy(dAtA[i:], m.Hash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *RequestFlush) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4721,12 +5324,12 @@ func (m *RequestInitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - n18, err18 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) - if err18 != nil { - return 0, err18 + n23, err23 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) + if err23 != nil { + return 0, err23 } - i -= n18 - i = encodeVarintTypes(dAtA, i, uint64(n18)) + i -= n23 + i = encodeVarintTypes(dAtA, i, uint64(n23)) i-- dAtA[i] = 0xa return len(dAtA) - i, nil @@ -4784,6 +5387,64 @@ func (m *RequestQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *RequestDeliverTx) 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 *RequestDeliverTx) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestDeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Tx) > 0 { + i -= len(m.Tx) + copy(dAtA[i:], m.Tx) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Tx))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RequestEndBlock) 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 *RequestEndBlock) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequestEndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Height != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Height)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *RequestCheckTx) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5128,13 +5789,37 @@ func (m *RequestProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if len(m.ByzantineValidators) > 0 { + for iNdEx := len(m.ByzantineValidators) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ByzantineValidators[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + { + size, err := m.LastCommitInfo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 if len(m.Txs) > 0 { for iNdEx := len(m.Txs) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.Txs[iNdEx]) copy(dAtA[i:], m.Txs[iNdEx]) i = encodeVarintTypes(dAtA, i, uint64(len(m.Txs[iNdEx]))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a } } { @@ -5146,7 +5831,14 @@ func (m *RequestProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) i = encodeVarintTypes(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0xa + dAtA[i] = 0x12 + if len(m.Hash) > 0 { + i -= len(m.Hash) + copy(dAtA[i:], m.Hash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash))) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } @@ -5386,6 +6078,27 @@ func (m *Response_Query) MarshalToSizedBuffer(dAtA []byte) (int, error) { } return len(dAtA) - i, nil } +func (m *Response_BeginBlock) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_BeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.BeginBlock != nil { + { + size, err := m.BeginBlock.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} func (m *Response_CheckTx) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) @@ -5407,6 +6120,48 @@ func (m *Response_CheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { } return len(dAtA) - i, nil } +func (m *Response_DeliverTx) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_DeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DeliverTx != nil { + { + size, err := m.DeliverTx.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + return len(dAtA) - i, nil +} +func (m *Response_EndBlock) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Response_EndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.EndBlock != nil { + { + size, err := m.EndBlock.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + } + return len(dAtA) - i, nil +} func (m *Response_Commit) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) @@ -5905,7 +6660,7 @@ func (m *ResponseQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *ResponseCheckTx) Marshal() (dAtA []byte, err error) { +func (m *ResponseBeginBlock) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -5915,17 +6670,54 @@ func (m *ResponseCheckTx) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ResponseCheckTx) MarshalTo(dAtA []byte) (int, error) { +func (m *ResponseBeginBlock) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *ResponseCheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ResponseBeginBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.MempoolError) > 0 { + if len(m.Events) > 0 { + for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ResponseCheckTx) 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 *ResponseCheckTx) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseCheckTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.MempoolError) > 0 { i -= len(m.MempoolError) copy(dAtA[i:], m.MempoolError) i = encodeVarintTypes(dAtA, i, uint64(len(m.MempoolError))) @@ -6084,6 +6876,69 @@ func (m *ResponseDeliverTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ResponseEndBlock) 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 *ResponseEndBlock) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResponseEndBlock) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Events) > 0 { + for iNdEx := len(m.Events) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Events[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if m.ConsensusParamUpdates != nil { + { + size, err := m.ConsensusParamUpdates.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.ValidatorUpdates) > 0 { + for iNdEx := len(m.ValidatorUpdates) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ValidatorUpdates[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func (m *ResponseCommit) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6244,20 +7099,20 @@ func (m *ResponseApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, err } } if len(m.RefetchChunks) > 0 { - dAtA45 := make([]byte, len(m.RefetchChunks)*10) - var j44 int + dAtA55 := make([]byte, len(m.RefetchChunks)*10) + var j54 int for _, num := range m.RefetchChunks { for num >= 1<<7 { - dAtA45[j44] = uint8(uint64(num)&0x7f | 0x80) + dAtA55[j54] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j44++ + j54++ } - dAtA45[j44] = uint8(num) - j44++ + dAtA55[j54] = uint8(num) + j54++ } - i -= j44 - copy(dAtA[i:], dAtA45[:j44]) - i = encodeVarintTypes(dAtA, i, uint64(j44)) + i -= j54 + copy(dAtA[i:], dAtA55[:j54]) + i = encodeVarintTypes(dAtA, i, uint64(j54)) i-- dAtA[i] = 0x12 } @@ -6384,17 +7239,60 @@ func (m *ResponseProcessProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l - if len(m.Evidence) > 0 { - for iNdEx := len(m.Evidence) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Evidence[iNdEx]) - copy(dAtA[i:], m.Evidence[iNdEx]) - i = encodeVarintTypes(dAtA, i, uint64(len(m.Evidence[iNdEx]))) + if m.ConsensusParamUpdates != nil { + { + size, err := m.ConsensusParamUpdates.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if len(m.ValidatorUpdates) > 0 { + for iNdEx := len(m.ValidatorUpdates) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ValidatorUpdates[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x22 } } - if m.Result != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Result)) + if len(m.TxResults) > 0 { + for iNdEx := len(m.TxResults) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TxResults[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.AppHash) > 0 { + i -= len(m.AppHash) + copy(dAtA[i:], m.AppHash) + i = encodeVarintTypes(dAtA, i, uint64(len(m.AppHash))) + i-- + dAtA[i] = 0x12 + } + if m.Accept { + i-- + if m.Accept { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } i-- dAtA[i] = 0x8 } @@ -6611,6 +7509,86 @@ func (m *EventAttribute) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ExecTxResult) 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 *ExecTxResult) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExecTxResult) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Codespace) > 0 { + i -= len(m.Codespace) + copy(dAtA[i:], m.Codespace) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Codespace))) + i-- + dAtA[i] = 0x42 + } + if len(m.TxEvents) > 0 { + for iNdEx := len(m.TxEvents) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TxEvents[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } + if m.GasUsed != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.GasUsed)) + i-- + dAtA[i] = 0x30 + } + if m.GasWanted != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.GasWanted)) + i-- + dAtA[i] = 0x28 + } + if len(m.Info) > 0 { + i -= len(m.Info) + copy(dAtA[i:], m.Info) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Info))) + i-- + dAtA[i] = 0x22 + } + if len(m.Log) > 0 { + i -= len(m.Log) + copy(dAtA[i:], m.Log) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Log))) + i-- + dAtA[i] = 0x1a + } + if len(m.Data) > 0 { + i -= len(m.Data) + copy(dAtA[i:], m.Data) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Data))) + i-- + dAtA[i] = 0x12 + } + if m.Code != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Code)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *TxResult) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6802,12 +7780,12 @@ func (m *Evidence) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x28 } - n51, err51 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) - if err51 != nil { - return 0, err51 + n62, err62 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) + if err62 != nil { + return 0, err62 } - i -= n51 - i = encodeVarintTypes(dAtA, i, uint64(n51)) + i -= n62 + i = encodeVarintTypes(dAtA, i, uint64(n62)) i-- dAtA[i] = 0x22 if m.Height != 0 { @@ -6968,6 +7946,18 @@ func (m *Request_Query) Size() (n int) { } return n } +func (m *Request_BeginBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BeginBlock != nil { + l = m.BeginBlock.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} func (m *Request_CheckTx) Size() (n int) { if m == nil { return 0 @@ -6980,6 +7970,30 @@ func (m *Request_CheckTx) Size() (n int) { } return n } +func (m *Request_DeliverTx) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DeliverTx != nil { + l = m.DeliverTx.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Request_EndBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.EndBlock != nil { + l = m.EndBlock.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} func (m *Request_Commit) Size() (n int) { if m == nil { return 0 @@ -7113,19 +8127,42 @@ func (m *RequestEcho) Size() (n int) { return n } -func (m *RequestFlush) Size() (n int) { +func (m *RequestBeginBlock) Size() (n int) { if m == nil { return 0 } var l int _ = l - return n -} - -func (m *RequestInfo) Size() (n int) { - if m == nil { - return 0 - } + l = len(m.Hash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = m.Header.Size() + n += 1 + l + sovTypes(uint64(l)) + l = m.LastCommitInfo.Size() + n += 1 + l + sovTypes(uint64(l)) + if len(m.ByzantineValidators) > 0 { + for _, e := range m.ByzantineValidators { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *RequestFlush) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *RequestInfo) Size() (n int) { + if m == nil { + return 0 + } var l int _ = l l = len(m.Version) @@ -7200,6 +8237,31 @@ func (m *RequestQuery) Size() (n int) { return n } +func (m *RequestDeliverTx) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Tx) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + +func (m *RequestEndBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Height != 0 { + n += 1 + sovTypes(uint64(m.Height)) + } + return n +} + func (m *RequestCheckTx) Size() (n int) { if m == nil { return 0 @@ -7345,6 +8407,10 @@ func (m *RequestProcessProposal) Size() (n int) { } var l int _ = l + l = len(m.Hash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } l = m.Header.Size() n += 1 + l + sovTypes(uint64(l)) if len(m.Txs) > 0 { @@ -7353,6 +8419,14 @@ func (m *RequestProcessProposal) Size() (n int) { n += 1 + l + sovTypes(uint64(l)) } } + l = m.LastCommitInfo.Size() + n += 1 + l + sovTypes(uint64(l)) + if len(m.ByzantineValidators) > 0 { + for _, e := range m.ByzantineValidators { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } return n } @@ -7472,6 +8546,18 @@ func (m *Response_Query) Size() (n int) { } return n } +func (m *Response_BeginBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BeginBlock != nil { + l = m.BeginBlock.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} func (m *Response_CheckTx) Size() (n int) { if m == nil { return 0 @@ -7484,6 +8570,30 @@ func (m *Response_CheckTx) Size() (n int) { } return n } +func (m *Response_DeliverTx) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.DeliverTx != nil { + l = m.DeliverTx.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} +func (m *Response_EndBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.EndBlock != nil { + l = m.EndBlock.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} func (m *Response_Commit) Size() (n int) { if m == nil { return 0 @@ -7731,6 +8841,21 @@ func (m *ResponseQuery) Size() (n int) { return n } +func (m *ResponseBeginBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Events) > 0 { + for _, e := range m.Events { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + func (m *ResponseCheckTx) Size() (n int) { if m == nil { return 0 @@ -7822,6 +8947,31 @@ func (m *ResponseDeliverTx) Size() (n int) { return n } +func (m *ResponseEndBlock) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ValidatorUpdates) > 0 { + for _, e := range m.ValidatorUpdates { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if m.ConsensusParamUpdates != nil { + l = m.ConsensusParamUpdates.Size() + n += 1 + l + sovTypes(uint64(l)) + } + if len(m.Events) > 0 { + for _, e := range m.Events { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + func (m *ResponseCommit) Size() (n int) { if m == nil { return 0 @@ -7949,15 +9099,29 @@ func (m *ResponseProcessProposal) Size() (n int) { } var l int _ = l - if m.Result != 0 { - n += 1 + sovTypes(uint64(m.Result)) + if m.Accept { + n += 2 } - if len(m.Evidence) > 0 { - for _, b := range m.Evidence { - l = len(b) + l = len(m.AppHash) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if len(m.TxResults) > 0 { + for _, e := range m.TxResults { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if len(m.ValidatorUpdates) > 0 { + for _, e := range m.ValidatorUpdates { + l = e.Size() n += 1 + l + sovTypes(uint64(l)) } } + if m.ConsensusParamUpdates != nil { + l = m.ConsensusParamUpdates.Size() + n += 1 + l + sovTypes(uint64(l)) + } return n } @@ -8049,6 +9213,46 @@ func (m *EventAttribute) Size() (n int) { return n } +func (m *ExecTxResult) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Code != 0 { + n += 1 + sovTypes(uint64(m.Code)) + } + l = len(m.Data) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Log) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Info) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.GasWanted != 0 { + n += 1 + sovTypes(uint64(m.GasWanted)) + } + if m.GasUsed != 0 { + n += 1 + sovTypes(uint64(m.GasUsed)) + } + if len(m.TxEvents) > 0 { + for _, e := range m.TxEvents { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + l = len(m.Codespace) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + return n +} + func (m *TxResult) Size() (n int) { if m == nil { return 0 @@ -8372,9 +9576,9 @@ func (m *Request) Unmarshal(dAtA []byte) error { } m.Value = &Request_Query{v} iNdEx = postIndex - case 7: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8401,15 +9605,15 @@ func (m *Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &RequestCheckTx{} + v := &RequestBeginBlock{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Request_CheckTx{v} + m.Value = &Request_BeginBlock{v} iNdEx = postIndex - case 10: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8436,15 +9640,15 @@ func (m *Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &RequestCommit{} + v := &RequestCheckTx{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Request_Commit{v} + m.Value = &Request_CheckTx{v} iNdEx = postIndex - case 11: + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListSnapshots", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DeliverTx", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8471,15 +9675,15 @@ func (m *Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &RequestListSnapshots{} + v := &RequestDeliverTx{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Request_ListSnapshots{v} + m.Value = &Request_DeliverTx{v} iNdEx = postIndex - case 12: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OfferSnapshot", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8506,15 +9710,15 @@ func (m *Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &RequestOfferSnapshot{} + v := &RequestEndBlock{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Request_OfferSnapshot{v} + m.Value = &Request_EndBlock{v} iNdEx = postIndex - case 13: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LoadSnapshotChunk", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Commit", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8541,15 +9745,15 @@ func (m *Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &RequestLoadSnapshotChunk{} + v := &RequestCommit{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Request_LoadSnapshotChunk{v} + m.Value = &Request_Commit{v} iNdEx = postIndex - case 14: + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ApplySnapshotChunk", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ListSnapshots", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8576,15 +9780,15 @@ func (m *Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &RequestApplySnapshotChunk{} + v := &RequestListSnapshots{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Request_ApplySnapshotChunk{v} + m.Value = &Request_ListSnapshots{v} iNdEx = postIndex - case 15: + case 12: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PrepareProposal", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OfferSnapshot", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8611,15 +9815,15 @@ func (m *Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &RequestPrepareProposal{} + v := &RequestOfferSnapshot{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Request_PrepareProposal{v} + m.Value = &Request_OfferSnapshot{v} iNdEx = postIndex - case 16: + case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ProcessProposal", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LoadSnapshotChunk", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8646,15 +9850,15 @@ func (m *Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &RequestProcessProposal{} + v := &RequestLoadSnapshotChunk{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Request_ProcessProposal{v} + m.Value = &Request_LoadSnapshotChunk{v} iNdEx = postIndex - case 17: + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExtendVote", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ApplySnapshotChunk", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8681,15 +9885,15 @@ func (m *Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &RequestExtendVote{} + v := &RequestApplySnapshotChunk{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Request_ExtendVote{v} + m.Value = &Request_ApplySnapshotChunk{v} iNdEx = postIndex - case 18: + case 15: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field VerifyVoteExtension", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PrepareProposal", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8716,11 +9920,116 @@ func (m *Request) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &RequestVerifyVoteExtension{} + v := &RequestPrepareProposal{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Request_VerifyVoteExtension{v} + m.Value = &Request_PrepareProposal{v} + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProcessProposal", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestProcessProposal{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_ProcessProposal{v} + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtendVote", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestExtendVote{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_ExtendVote{v} + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VerifyVoteExtension", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &RequestVerifyVoteExtension{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Request_VerifyVoteExtension{v} iNdEx = postIndex case 19: if wireType != 2 { @@ -8860,6 +10169,190 @@ func (m *RequestEcho) Unmarshal(dAtA []byte) error { } return nil } +func (m *RequestBeginBlock) 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 ErrIntOverflowTypes + } + 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: RequestBeginBlock: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestBeginBlock: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...) + if m.Hash == nil { + m.Hash = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastCommitInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastCommitInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ByzantineValidators = append(m.ByzantineValidators, Evidence{}) + if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RequestFlush) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -9186,7 +10679,7 @@ func (m *RequestInitChain) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.ConsensusParams == nil { - m.ConsensusParams = &types1.ConsensusParams{} + m.ConsensusParams = &types.ConsensusParams{} } if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -9390,12 +10883,185 @@ func (m *RequestQuery) Unmarshal(dAtA []byte) error { if postIndex < 0 { return ErrInvalidLengthTypes } - if postIndex > l { + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Path = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + m.Height = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Height |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Prove", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Prove = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestDeliverTx) 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 ErrIntOverflowTypes + } + 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: RequestDeliverTx: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestDeliverTx: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tx", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Tx = append(m.Tx[:0], dAtA[iNdEx:postIndex]...) + if m.Tx == nil { + m.Tx = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequestEndBlock) 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 ErrIntOverflowTypes + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - m.Path = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: + 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: RequestEndBlock: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequestEndBlock: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) } @@ -9414,26 +11080,6 @@ func (m *RequestQuery) Unmarshal(dAtA []byte) error { break } } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Prove", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Prove = bool(v != 0) default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) @@ -10129,7 +11775,7 @@ func (m *RequestPrepareProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Votes = append(m.Votes, &types1.Vote{}) + m.Votes = append(m.Votes, &types.Vote{}) if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -10214,7 +11860,7 @@ func (m *RequestExtendVote) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Vote == nil { - m.Vote = &types1.Vote{} + m.Vote = &types.Vote{} } if err := m.Vote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -10300,7 +11946,7 @@ func (m *RequestVerifyVoteExtension) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Vote == nil { - m.Vote = &types1.Vote{} + m.Vote = &types.Vote{} } if err := m.Vote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -10357,6 +12003,40 @@ func (m *RequestProcessProposal) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...) + if m.Hash == nil { + m.Hash = []byte{} + } + iNdEx = postIndex + case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType) } @@ -10389,7 +12069,7 @@ func (m *RequestProcessProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 2: + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Txs", wireType) } @@ -10421,6 +12101,73 @@ func (m *RequestProcessProposal) Unmarshal(dAtA []byte) error { m.Txs = append(m.Txs, make([]byte, postIndex-iNdEx)) copy(m.Txs[len(m.Txs)-1], dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastCommitInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastCommitInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ByzantineValidators", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ByzantineValidators = append(m.ByzantineValidators, Evidence{}) + if err := m.ByzantineValidators[len(m.ByzantineValidators)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) @@ -10708,7 +12455,112 @@ func (m *Response) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Exception", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Exception", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseException{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_Exception{v} + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseEcho{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_Echo{v} + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &ResponseFlush{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Value = &Response_Flush{v} + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10735,15 +12587,15 @@ func (m *Response) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &ResponseException{} + v := &ResponseInfo{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Response_Exception{v} + m.Value = &Response_Info{v} iNdEx = postIndex - case 2: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Echo", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10770,15 +12622,15 @@ func (m *Response) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &ResponseEcho{} + v := &ResponseInitChain{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Response_Echo{v} + m.Value = &Response_InitChain{v} iNdEx = postIndex - case 3: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Flush", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10805,15 +12657,15 @@ func (m *Response) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &ResponseFlush{} + v := &ResponseQuery{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Response_Flush{v} + m.Value = &Response_Query{v} iNdEx = postIndex - case 4: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BeginBlock", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10840,15 +12692,15 @@ func (m *Response) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &ResponseInfo{} + v := &ResponseBeginBlock{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Response_Info{v} + m.Value = &Response_BeginBlock{v} iNdEx = postIndex - case 5: + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field InitChain", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10875,15 +12727,15 @@ func (m *Response) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &ResponseInitChain{} + v := &ResponseCheckTx{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Response_InitChain{v} + m.Value = &Response_CheckTx{v} iNdEx = postIndex - case 6: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DeliverTx", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10910,15 +12762,15 @@ func (m *Response) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &ResponseQuery{} + v := &ResponseDeliverTx{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Response_Query{v} + m.Value = &Response_DeliverTx{v} iNdEx = postIndex - case 8: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CheckTx", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field EndBlock", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10945,11 +12797,11 @@ func (m *Response) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - v := &ResponseCheckTx{} + v := &ResponseEndBlock{} if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - m.Value = &Response_CheckTx{v} + m.Value = &Response_EndBlock{v} iNdEx = postIndex case 11: if wireType != 2 { @@ -11781,7 +13633,7 @@ func (m *ResponseInitChain) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.ConsensusParams == nil { - m.ConsensusParams = &types1.ConsensusParams{} + m.ConsensusParams = &types.ConsensusParams{} } if err := m.ConsensusParams.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -12183,6 +14035,90 @@ func (m *ResponseQuery) Unmarshal(dAtA []byte) error { } return nil } +func (m *ResponseBeginBlock) 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 ErrIntOverflowTypes + } + 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: ResponseBeginBlock: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseBeginBlock: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Events = append(m.Events, Event{}) + if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ResponseCheckTx) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -12706,7 +14642,142 @@ func (m *ResponseDeliverTx) Unmarshal(dAtA []byte) error { if wireType != 0 { return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType) } - m.GasUsed = 0 + m.GasUsed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.GasUsed |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Events = append(m.Events, Event{}) + if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + 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 ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Codespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResponseEndBlock) 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 ErrIntOverflowTypes + } + 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: ResponseEndBlock: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResponseEndBlock: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorUpdates", wireType) + } + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -12716,14 +14787,29 @@ func (m *ResponseDeliverTx) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.GasUsed |= int64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - case 7: + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ValidatorUpdates = append(m.ValidatorUpdates, ValidatorUpdate{}) + if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-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 Events", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParamUpdates", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12750,16 +14836,18 @@ func (m *ResponseDeliverTx) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Events = append(m.Events, Event{}) - if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.ConsensusParamUpdates == nil { + m.ConsensusParamUpdates = &types.ConsensusParams{} + } + if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 8: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -12769,23 +14857,25 @@ func (m *ResponseDeliverTx) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTypes } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTypes } if postIndex > l { return io.ErrUnexpectedEOF } - m.Codespace = string(dAtA[iNdEx:postIndex]) + m.Events = append(m.Events, Event{}) + if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -13466,7 +15556,7 @@ func (m *ResponseExtendVote) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.VoteExtension == nil { - m.VoteExtension = &types1.VoteExtension{} + m.VoteExtension = &types.VoteExtension{} } if err := m.VoteExtension.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -13593,9 +15683,9 @@ func (m *ResponseProcessProposal) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Result", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Accept", wireType) } - m.Result = 0 + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -13605,14 +15695,15 @@ func (m *ResponseProcessProposal) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Result |= ResponseProcessProposal_Result(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } + m.Accept = bool(v != 0) case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Evidence", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AppHash", wireType) } var byteLen int for shift := uint(0); ; shift += 7 { @@ -13639,8 +15730,114 @@ func (m *ResponseProcessProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Evidence = append(m.Evidence, make([]byte, postIndex-iNdEx)) - copy(m.Evidence[len(m.Evidence)-1], dAtA[iNdEx:postIndex]) + m.AppHash = append(m.AppHash[:0], dAtA[iNdEx:postIndex]...) + if m.AppHash == nil { + m.AppHash = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxResults", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxResults = append(m.TxResults, &ExecTxResult{}) + if err := m.TxResults[len(m.TxResults)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorUpdates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ValidatorUpdates = append(m.ValidatorUpdates, &ValidatorUpdate{}) + if err := m.ValidatorUpdates[len(m.ValidatorUpdates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsensusParamUpdates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConsensusParamUpdates == nil { + m.ConsensusParamUpdates = &types.ConsensusParams{} + } + if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -13790,15 +15987,118 @@ func (m *ResponseFinalizeBlock) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.ConsensusParamUpdates == nil { - m.ConsensusParamUpdates = &types1.ConsensusParams{} + m.ConsensusParamUpdates = &types.ConsensusParams{} } if err := m.ConsensusParamUpdates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - iNdEx = postIndex - case 4: + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Events = append(m.Events, Event{}) + if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *LastCommitInfo) 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 ErrIntOverflowTypes + } + 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: LastCommitInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LastCommitInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Round", wireType) + } + m.Round = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Round |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Events", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13825,8 +16125,8 @@ func (m *ResponseFinalizeBlock) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Events = append(m.Events, Event{}) - if err := m.Events[len(m.Events)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Votes = append(m.Votes, VoteInfo{}) + if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -13851,7 +16151,7 @@ func (m *ResponseFinalizeBlock) Unmarshal(dAtA []byte) error { } return nil } -func (m *LastCommitInfo) Unmarshal(dAtA []byte) error { +func (m *Event) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13874,17 +16174,17 @@ func (m *LastCommitInfo) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: LastCommitInfo: wiretype end group for non-group") + return fmt.Errorf("proto: Event: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: LastCommitInfo: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Round", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) } - m.Round = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -13894,14 +16194,27 @@ func (m *LastCommitInfo) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Round |= int32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13928,8 +16241,8 @@ func (m *LastCommitInfo) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Votes = append(m.Votes, VoteInfo{}) - if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Attributes = append(m.Attributes, EventAttribute{}) + if err := m.Attributes[len(m.Attributes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -13954,7 +16267,7 @@ func (m *LastCommitInfo) Unmarshal(dAtA []byte) error { } return nil } -func (m *Event) Unmarshal(dAtA []byte) error { +func (m *EventAttribute) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13977,15 +16290,15 @@ func (m *Event) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Event: wiretype end group for non-group") + return fmt.Errorf("proto: EventAttribute: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Event: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: EventAttribute: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14013,13 +16326,13 @@ func (m *Event) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Type = string(dAtA[iNdEx:postIndex]) + m.Key = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -14029,26 +16342,44 @@ func (m *Event) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTypes } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTypes } if postIndex > l { return io.ErrUnexpectedEOF } - m.Attributes = append(m.Attributes, EventAttribute{}) - if err := m.Attributes[len(m.Attributes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Value = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Index = bool(v != 0) default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) @@ -14070,7 +16401,7 @@ func (m *Event) Unmarshal(dAtA []byte) error { } return nil } -func (m *EventAttribute) Unmarshal(dAtA []byte) error { +func (m *ExecTxResult) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14093,15 +16424,68 @@ func (m *EventAttribute) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: EventAttribute: wiretype end group for non-group") + return fmt.Errorf("proto: ExecTxResult: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: EventAttribute: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ExecTxResult: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Code", wireType) + } + m.Code = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Code |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Log", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14129,11 +16513,11 @@ func (m *EventAttribute) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Key = string(dAtA[iNdEx:postIndex]) + m.Log = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Info", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14161,13 +16545,13 @@ func (m *EventAttribute) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Value = string(dAtA[iNdEx:postIndex]) + m.Info = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 5: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field GasWanted", wireType) } - var v int + m.GasWanted = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -14177,12 +16561,96 @@ func (m *EventAttribute) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + m.GasWanted |= int64(b&0x7F) << shift if b < 0x80 { break } } - m.Index = bool(v != 0) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType) + } + m.GasUsed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.GasUsed |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxEvents", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxEvents = append(m.TxEvents, Event{}) + if err := m.TxEvents[len(m.TxEvents)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Codespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + 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 ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Codespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) diff --git a/internal/consensus/common_test.go b/internal/consensus/common_test.go index fd9780a15..10955fc8c 100644 --- a/internal/consensus/common_test.go +++ b/internal/consensus/common_test.go @@ -506,18 +506,41 @@ func loadPrivValidator(t *testing.T, cfg *config.Config) *privval.FilePV { return privValidator } -func makeState(ctx context.Context, t *testing.T, cfg *config.Config, logger log.Logger, nValidators int) (*State, []*validatorStub) { +type makeStateArgs struct { + config *config.Config + logger log.Logger + validators int + application abci.Application +} + +func makeState(ctx context.Context, t *testing.T, args makeStateArgs) (*State, []*validatorStub) { t.Helper() // Get State - state, privVals := makeGenesisState(ctx, t, cfg, genesisStateArgs{ - Validators: nValidators, + validators := 4 + if args.validators != 0 { + validators = args.validators + } + var app abci.Application + app = kvstore.NewApplication() + if args.application != nil { + app = args.application + } + if args.config == nil { + args.config = configSetup(t) + } + if args.logger == nil { + args.logger = log.NewNopLogger() + } + + state, privVals := makeGenesisState(ctx, t, args.config, genesisStateArgs{ + Validators: validators, }) - vss := make([]*validatorStub, nValidators) + vss := make([]*validatorStub, validators) - cs := newState(ctx, t, logger, state, privVals[0], kvstore.NewApplication()) + cs := newState(ctx, t, args.logger, state, privVals[0], app) - for i := 0; i < nValidators; i++ { + for i := 0; i < validators; i++ { vss[i] = newValidatorStub(privVals[i], int32(i)) } // since cs1 starts at 1 diff --git a/internal/consensus/mempool_test.go b/internal/consensus/mempool_test.go index 7f846161e..f0bd18958 100644 --- a/internal/consensus/mempool_test.go +++ b/internal/consensus/mempool_test.go @@ -312,3 +312,8 @@ func (app *CounterApplication) PrepareProposal( req abci.RequestPrepareProposal) abci.ResponsePrepareProposal { return abci.ResponsePrepareProposal{BlockData: req.BlockData} } + +func (app *CounterApplication) ProcessProposal( + req abci.RequestProcessProposal) abci.ResponseProcessProposal { + return abci.ResponseProcessProposal{Accept: true} +} diff --git a/internal/consensus/state.go b/internal/consensus/state.go index 5e54a0720..7f2045dcd 100644 --- a/internal/consensus/state.go +++ b/internal/consensus/state.go @@ -1452,6 +1452,29 @@ func (cs *State) defaultDoPrevote(ctx context.Context, height int64, round int32 return } + /* + The block has now passed Tendermint's validation rules. + Before prevoting the block received from the proposer for the current round and height, + we request the Application, via the ProcessProposal, ABCI call to confirm that the block is + valid. If the Application does not accept the block, Tendermint prevotes nil. + + WARNING: misuse of block rejection by the Application can seriously compromise Tendermint's + liveness properties. Please see PrepareProposal-ProcessProposal coherence and determinism + properties in the ABCI++ specification. + */ + isAppValid, err := cs.blockExec.ProcessProposal(ctx, cs.ProposalBlock, cs.state) + if err != nil { + panic(fmt.Sprintf("ProcessProposal: %v", err)) + } + + // Vote nil if the Application rejected the block + if !isAppValid { + logger.Error("prevote step: state machine rejected a proposed block; this should not happen:"+ + "the proposer may be misbehaving; prevoting nil", "err", err) + cs.signAddVote(ctx, tmproto.PrevoteType, nil, types.PartSetHeader{}) + return + } + /* 22: upon from proposer(h_p, round_p) while step_p = propose do 23: if valid(v) && (lockedRound_p = −1 || lockedValue_p = v) then @@ -1510,30 +1533,6 @@ func (cs *State) defaultDoPrevote(ctx context.Context, height int64, round int32 } } - /* - Before prevoting on the block received from the proposer for the current round and height, - we request the Application, via `ProcessProposal` ABCI call, to confirm that the block is - valid. If the Application does not accept the block, Tendermint prevotes `nil`. - - WARNING: misuse of block rejection by the Application can seriously compromise Tendermint's - liveness properties. Please see `PrepareProosal`-`ProcessProposal` coherence and determinism - properties in the ABCI++ specification. - */ - stateMachineValidBlock, err := cs.blockExec.ProcessProposal(ctx, cs.ProposalBlock) - if err != nil { - panic(fmt.Sprintf( - "state machine returned an error (%v) when calling ProcessProposal", err, - )) - } - - // Vote nil if the Application rejected the block - if !stateMachineValidBlock { - logger.Error("prevote step: state machine rejected a proposed block; this should not happen:"+ - "the proposer may be misbehaving; prevoting nil", "err", err) - cs.signAddVote(ctx, tmproto.PrevoteType, nil, types.PartSetHeader{}) - return - } - logger.Debug("prevote step: ProposalBlock is valid but was not our locked block or " + "did not receive a more recent majority; prevoting nil") cs.signAddVote(ctx, tmproto.PrevoteType, nil, types.PartSetHeader{}) diff --git a/internal/consensus/state_test.go b/internal/consensus/state_test.go index 77573a484..f1cfc225c 100644 --- a/internal/consensus/state_test.go +++ b/internal/consensus/state_test.go @@ -8,14 +8,18 @@ import ( "time" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "github.com/tendermint/tendermint/abci/example/kvstore" + abcitypes "github.com/tendermint/tendermint/abci/types" + abcimocks "github.com/tendermint/tendermint/abci/types/mocks" "github.com/tendermint/tendermint/crypto/tmhash" cstypes "github.com/tendermint/tendermint/internal/consensus/types" "github.com/tendermint/tendermint/internal/eventbus" tmpubsub "github.com/tendermint/tendermint/internal/pubsub" tmquery "github.com/tendermint/tendermint/internal/pubsub/query" + tmbytes "github.com/tendermint/tendermint/libs/bytes" "github.com/tendermint/tendermint/libs/log" tmrand "github.com/tendermint/tendermint/libs/rand" tmtime "github.com/tendermint/tendermint/libs/time" @@ -68,9 +72,8 @@ func TestStateProposerSelection0(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() config := configSetup(t) - logger := log.NewNopLogger() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) height, round := cs1.Height, cs1.Round newRoundCh := subscribe(ctx, t, cs1.eventBus, types.EventQueryNewRound) @@ -110,11 +113,10 @@ func TestStateProposerSelection0(t *testing.T) { // Now let's do it all again, but starting from round 2 instead of 0 func TestStateProposerSelection2(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) // test needs more work for more than 3 validators + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) // test needs more work for more than 3 validators height := cs1.Height newRoundCh := subscribe(ctx, t, cs1.eventBus, types.EventQueryNewRound) @@ -149,11 +151,10 @@ func TestStateProposerSelection2(t *testing.T) { // a non-validator should timeout into the prevote round func TestStateEnterProposeNoPrivValidator(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs, _ := makeState(ctx, t, config, logger, 1) + cs, _ := makeState(ctx, t, makeStateArgs{config: config, validators: 1}) cs.SetPrivValidator(ctx, nil) height, round := cs.Height, cs.Round @@ -173,11 +174,10 @@ func TestStateEnterProposeNoPrivValidator(t *testing.T) { // a validator should not timeout of the prevote round (TODO: unless the block is really big!) func TestStateEnterProposeYesPrivValidator(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs, _ := makeState(ctx, t, config, logger, 1) + cs, _ := makeState(ctx, t, makeStateArgs{config: config, validators: 1}) height, round := cs.Height, cs.Round // Listen for propose timeout event @@ -208,11 +208,10 @@ func TestStateEnterProposeYesPrivValidator(t *testing.T) { func TestStateBadProposal(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 2) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config, validators: 2}) height, round := cs1.Height, cs1.Round vs2 := vss[1] @@ -270,11 +269,10 @@ func TestStateBadProposal(t *testing.T) { func TestStateOversizedBlock(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 2) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config, validators: 2}) cs1.state.ConsensusParams.Block.MaxBytes = 2000 height, round := cs1.Height, cs1.Round vs2 := vss[1] @@ -336,11 +334,10 @@ func TestStateOversizedBlock(t *testing.T) { // propose, prevote, and precommit a block func TestStateFullRound1(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs, vss := makeState(ctx, t, config, logger, 1) + cs, vss := makeState(ctx, t, makeStateArgs{config: config, validators: 1}) height, round := cs.Height, cs.Round voteCh := subscribe(ctx, t, cs.eventBus, types.EventQueryVote) @@ -367,11 +364,10 @@ func TestStateFullRound1(t *testing.T) { // nil is proposed, so prevote and precommit nil func TestStateFullRoundNil(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs, _ := makeState(ctx, t, config, logger, 1) + cs, _ := makeState(ctx, t, makeStateArgs{config: config, validators: 1}) height, round := cs.Height, cs.Round voteCh := subscribe(ctx, t, cs.eventBus, types.EventQueryVote) @@ -387,11 +383,10 @@ func TestStateFullRoundNil(t *testing.T) { // where the first validator has to wait for votes from the second func TestStateFullRound2(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 2) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config, validators: 2}) vs2 := vss[1] height, round := cs1.Height, cs1.Round @@ -432,11 +427,10 @@ func TestStateFullRound2(t *testing.T) { // two vals take turns proposing. val1 locks on first one, precommits nil on everything else func TestStateLock_NoPOL(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 2) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config, validators: 2}) vs2 := vss[1] height, round := cs1.Height, cs1.Round @@ -580,7 +574,9 @@ func TestStateLock_NoPOL(t *testing.T) { ensureNewTimeout(t, timeoutWaitCh, height, round, cs1.config.Precommit(round).Nanoseconds()) - cs2, _ := makeState(ctx, t, config, logger, 2) // needed so generated block is different than locked block + // cs1 is locked on a block at this point, so we must generate a new consensus + // state to force a new proposal block to be generated. + cs2, _ := makeState(ctx, t, makeStateArgs{config: config, validators: 2}) // before we time out into new round, set next proposal block prop, propBlock := decideProposal(ctx, t, cs2, vs2, vs2.Height, vs2.Round+1) require.NotNil(t, propBlock, "Failed to create proposal block with vs2") @@ -643,7 +639,7 @@ func TestStateLock_POLUpdateLock(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config, logger: logger}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -751,9 +747,8 @@ func TestStateLock_POLRelock(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() config := configSetup(t) - logger := log.NewNopLogger() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -851,9 +846,8 @@ func TestStateLock_PrevoteNilWhenLockedAndMissProposal(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() config := configSetup(t) - logger := log.NewNopLogger() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -942,7 +936,7 @@ func TestStateLock_PrevoteNilWhenLockedAndDifferentProposal(t *testing.T) { state. */ - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config, logger: logger}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1044,7 +1038,7 @@ func TestStateLock_POLDoesNotUnlock(t *testing.T) { state. */ - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config, logger: logger}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1178,7 +1172,7 @@ func TestStateLock_MissingProposalWhenPOLSeenDoesNotUpdateLock(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config, logger: logger}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1267,9 +1261,8 @@ func TestStateLock_DoesNotLockOnOldProposal(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() config := configSetup(t) - logger := log.NewNopLogger() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1347,7 +1340,7 @@ func TestStateLock_POLSafety1(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config, logger: logger}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1464,11 +1457,10 @@ func TestStateLock_POLSafety1(t *testing.T) { // dont see P0, lock on P1 at R1, dont unlock using P0 at R2 func TestStateLock_POLSafety2(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1564,7 +1556,7 @@ func TestState_PrevotePOLFromPreviousRound(t *testing.T) { config := configSetup(t) logger := log.NewNopLogger() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config, logger: logger}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1702,12 +1694,11 @@ func TestState_PrevotePOLFromPreviousRound(t *testing.T) { // What we want: // P0 proposes B0 at R3. func TestProposeValidBlock(t *testing.T) { - cfg := configSetup(t) - logger := log.NewNopLogger() + config := configSetup(t) ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, cfg, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1739,14 +1730,14 @@ func TestProposeValidBlock(t *testing.T) { ensurePrevoteMatch(t, voteCh, height, round, blockID.Hash) // the others sign a polka - signAddVotes(ctx, t, cs1, tmproto.PrevoteType, cfg.ChainID(), blockID, vs2, vs3, vs4) + signAddVotes(ctx, t, cs1, tmproto.PrevoteType, config.ChainID(), blockID, vs2, vs3, vs4) ensurePrecommit(t, voteCh, height, round) // we should have precommitted the proposed block in this round. validatePrecommit(ctx, t, cs1, round, round, vss[0], blockID.Hash, blockID.Hash) - signAddVotes(ctx, t, cs1, tmproto.PrecommitType, cfg.ChainID(), types.BlockID{}, vs2, vs3, vs4) + signAddVotes(ctx, t, cs1, tmproto.PrecommitType, config.ChainID(), types.BlockID{}, vs2, vs3, vs4) ensureNewTimeout(t, timeoutWaitCh, height, round, cs1.config.Precommit(round).Nanoseconds()) @@ -1762,7 +1753,7 @@ func TestProposeValidBlock(t *testing.T) { // We did not see a valid proposal within this round, so prevote nil. ensurePrevoteMatch(t, voteCh, height, round, nil) - signAddVotes(ctx, t, cs1, tmproto.PrecommitType, cfg.ChainID(), types.BlockID{}, vs2, vs3, vs4) + signAddVotes(ctx, t, cs1, tmproto.PrecommitType, config.ChainID(), types.BlockID{}, vs2, vs3, vs4) ensurePrecommit(t, voteCh, height, round) // we should have precommitted nil during this round because we received @@ -1772,7 +1763,7 @@ func TestProposeValidBlock(t *testing.T) { incrementRound(vs2, vs3, vs4) incrementRound(vs2, vs3, vs4) - signAddVotes(ctx, t, cs1, tmproto.PrecommitType, cfg.ChainID(), types.BlockID{}, vs2, vs3, vs4) + signAddVotes(ctx, t, cs1, tmproto.PrecommitType, config.ChainID(), types.BlockID{}, vs2, vs3, vs4) round += 2 // increment by multiple rounds @@ -1798,11 +1789,10 @@ func TestProposeValidBlock(t *testing.T) { // P0 miss to lock B but set valid block to B after receiving delayed prevote. func TestSetValidBlockOnDelayedPrevote(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1868,11 +1858,10 @@ func TestSetValidBlockOnDelayedPrevote(t *testing.T) { // receiving delayed Block Proposal. func TestSetValidBlockOnDelayedProposal(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1928,6 +1917,54 @@ func TestSetValidBlockOnDelayedProposal(t *testing.T) { assert.True(t, rs.ValidRound == round) } +func TestProcessProposalAccept(t *testing.T) { + for _, testCase := range []struct { + name string + accept bool + expectedNilPrevote bool + }{ + { + name: "accepted block is prevoted", + accept: true, + expectedNilPrevote: false, + }, + { + name: "rejected block is not prevoted", + accept: false, + expectedNilPrevote: true, + }, + } { + t.Run(testCase.name, func(t *testing.T) { + config := configSetup(t) + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + m := abcimocks.NewBaseMock() + m.On("ProcessProposal", mock.Anything).Return(abcitypes.ResponseProcessProposal{Accept: testCase.accept}) + cs1, _ := makeState(ctx, t, makeStateArgs{config: config, application: m}) + height, round := cs1.Height, cs1.Round + + proposalCh := subscribe(ctx, t, cs1.eventBus, types.EventQueryCompleteProposal) + newRoundCh := subscribe(ctx, t, cs1.eventBus, types.EventQueryNewRound) + pv1, err := cs1.privValidator.GetPubKey(ctx) + require.NoError(t, err) + addr := pv1.Address() + voteCh := subscribeToVoter(ctx, t, cs1, addr) + + startTestRound(ctx, cs1, cs1.Height, round) + ensureNewRound(t, newRoundCh, height, round) + + ensureNewProposal(t, proposalCh, height, round) + rs := cs1.GetRoundState() + var prevoteHash tmbytes.HexBytes + if !testCase.expectedNilPrevote { + prevoteHash = rs.ProposalBlock.Hash() + } + ensurePrevoteMatch(t, voteCh, height, round, prevoteHash) + }) + } +} + // 4 vals, 3 Nil Precommits at P0 // What we want: // P0 waits for timeoutPrecommit before starting next round @@ -1935,9 +1972,8 @@ func TestWaitingTimeoutOnNilPolka(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() config := configSetup(t) - logger := log.NewNopLogger() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1959,11 +1995,10 @@ func TestWaitingTimeoutOnNilPolka(t *testing.T) { // P0 waits for timeoutPropose in the next round before entering prevote func TestWaitingTimeoutProposeOnNewRound(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -1999,11 +2034,10 @@ func TestWaitingTimeoutProposeOnNewRound(t *testing.T) { // P0 jump to higher round, precommit and start precommit wait func TestRoundSkipOnNilPolkaFromHigherRound(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -2040,11 +2074,10 @@ func TestRoundSkipOnNilPolkaFromHigherRound(t *testing.T) { // P0 wait for timeoutPropose to expire before sending prevote. func TestWaitTimeoutProposeOnNilPolkaForTheCurrentRound(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, int32(1) @@ -2071,11 +2104,10 @@ func TestWaitTimeoutProposeOnNilPolkaForTheCurrentRound(t *testing.T) { // P0 emit NewValidBlock event upon receiving 2/3+ Precommit for B but hasn't received block B yet func TestEmitNewValidBlockEventOnCommitWithoutBlock(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, int32(1) @@ -2114,11 +2146,10 @@ func TestEmitNewValidBlockEventOnCommitWithoutBlock(t *testing.T) { // After receiving block, it executes block and moves to the next height. func TestCommitFromPreviousRound(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, int32(1) @@ -2176,12 +2207,11 @@ func (n *fakeTxNotifier) Notify() { // start of the next round func TestStartNextHeightCorrectlyAfterTimeout(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() config.Consensus.SkipTimeoutCommit = false - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) cs1.txNotifier = &fakeTxNotifier{ch: make(chan struct{})} vs2, vs3, vs4 := vss[1], vss[2], vss[3] @@ -2243,12 +2273,11 @@ func TestStartNextHeightCorrectlyAfterTimeout(t *testing.T) { func TestResetTimeoutPrecommitUponNewHeight(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() config.Consensus.SkipTimeoutCommit = false - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round @@ -2313,12 +2342,11 @@ func TestResetTimeoutPrecommitUponNewHeight(t *testing.T) { // 4 vals. // we receive a final precommit after going into next round, but others might have gone to commit already! func TestStateHalt1(t *testing.T) { - cfg := configSetup(t) - logger := log.NewNopLogger() + config := configSetup(t) ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, cfg, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) vs2, vs3, vs4 := vss[1], vss[2], vss[3] height, round := cs1.Height, cs1.Round partSize := types.BlockPartSizeBytes @@ -2348,17 +2376,17 @@ func TestStateHalt1(t *testing.T) { ensurePrevote(t, voteCh, height, round) - signAddVotes(ctx, t, cs1, tmproto.PrevoteType, cfg.ChainID(), blockID, vs2, vs3, vs4) + signAddVotes(ctx, t, cs1, tmproto.PrevoteType, config.ChainID(), blockID, vs2, vs3, vs4) ensurePrecommit(t, voteCh, height, round) // the proposed block should now be locked and our precommit added validatePrecommit(ctx, t, cs1, round, round, vss[0], propBlock.Hash(), propBlock.Hash()) // add precommits from the rest - signAddVotes(ctx, t, cs1, tmproto.PrecommitType, cfg.ChainID(), types.BlockID{}, vs2) // didnt receive proposal - signAddVotes(ctx, t, cs1, tmproto.PrecommitType, cfg.ChainID(), blockID, vs3) + signAddVotes(ctx, t, cs1, tmproto.PrecommitType, config.ChainID(), types.BlockID{}, vs2) // didnt receive proposal + signAddVotes(ctx, t, cs1, tmproto.PrecommitType, config.ChainID(), blockID, vs3) // we receive this later, but vs3 might receive it earlier and with ours will go to commit! - precommit4 := signVote(ctx, t, vs4, tmproto.PrecommitType, cfg.ChainID(), blockID) + precommit4 := signVote(ctx, t, vs4, tmproto.PrecommitType, config.ChainID(), blockID) incrementRound(vs2, vs3, vs4) @@ -2389,12 +2417,11 @@ func TestStateHalt1(t *testing.T) { func TestStateOutputsBlockPartsStats(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() // create dummy peer - cs, _ := makeState(ctx, t, config, logger, 1) + cs, _ := makeState(ctx, t, makeStateArgs{config: config, validators: 1}) peerID, err := types.NewNodeID("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") require.NoError(t, err) @@ -2438,11 +2465,10 @@ func TestStateOutputsBlockPartsStats(t *testing.T) { func TestStateOutputVoteStats(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs, vss := makeState(ctx, t, config, logger, 2) + cs, vss := makeState(ctx, t, makeStateArgs{config: config, validators: 2}) // create dummy peer peerID, err := types.NewNodeID("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA") require.NoError(t, err) @@ -2480,11 +2506,10 @@ func TestStateOutputVoteStats(t *testing.T) { func TestSignSameVoteTwice(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - _, vss := makeState(ctx, t, config, logger, 2) + _, vss := makeState(ctx, t, makeStateArgs{config: config, validators: 2}) randBytes := tmrand.Bytes(tmhash.Size) @@ -2521,11 +2546,10 @@ func TestSignSameVoteTwice(t *testing.T) { // corresponding proposal message. func TestStateTimestamp_ProposalNotMatch(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) height, round := cs1.Height, cs1.Round vs2, vs3, vs4 := vss[1], vss[2], vss[3] @@ -2570,11 +2594,10 @@ func TestStateTimestamp_ProposalNotMatch(t *testing.T) { // corresponding proposal message. func TestStateTimestamp_ProposalMatch(t *testing.T) { config := configSetup(t) - logger := log.NewNopLogger() ctx, cancel := context.WithCancel(context.Background()) defer cancel() - cs1, vss := makeState(ctx, t, config, logger, 4) + cs1, vss := makeState(ctx, t, makeStateArgs{config: config}) height, round := cs1.Height, cs1.Round vs2, vs3, vs4 := vss[1], vss[2], vss[3] diff --git a/internal/state/execution.go b/internal/state/execution.go index edda788d2..cdd6e009b 100644 --- a/internal/state/execution.go +++ b/internal/state/execution.go @@ -156,10 +156,14 @@ func (blockExec *BlockExecutor) CreateProposalBlock( func (blockExec *BlockExecutor) ProcessProposal( ctx context.Context, block *types.Block, + state State, ) (bool, error) { req := abci.RequestProcessProposal{ - Txs: block.Data.Txs.ToSliceOfBytes(), - Header: *block.Header.ToProto(), + Hash: block.Header.Hash(), + Header: *block.Header.ToProto(), + Txs: block.Data.Txs.ToSliceOfBytes(), + LastCommitInfo: buildLastCommitInfo(block, blockExec.store, state.InitialHeight), + ByzantineValidators: block.Evidence.ToABCI(), } resp, err := blockExec.proxyApp.ProcessProposal(ctx, req) @@ -167,7 +171,7 @@ func (blockExec *BlockExecutor) ProcessProposal( return false, ErrInvalidBlock(err) } - return resp.IsOK(), nil + return resp.Accept, nil } // ValidateBlock validates the given block against the given state. @@ -381,13 +385,6 @@ func execBlockOnProxyApp( dtxs := make([]*abci.ResponseDeliverTx, len(block.Txs)) abciResponses.FinalizeBlock.Txs = dtxs - commitInfo := getBeginBlockValidatorInfo(block, store, initialHeight) - - byzVals := make([]abci.Evidence, 0) - for _, evidence := range block.Evidence { - byzVals = append(byzVals, evidence.ABCI()...) - } - // Begin block var err error pbh := block.Header.ToProto() @@ -398,12 +395,12 @@ func execBlockOnProxyApp( abciResponses.FinalizeBlock, err = proxyAppConn.FinalizeBlock( ctx, abci.RequestFinalizeBlock{ + Txs: block.Txs.ToSliceOfBytes(), Hash: block.Hash(), Header: *pbh, Height: block.Height, - LastCommitInfo: commitInfo, - ByzantineValidators: byzVals, - Txs: block.Txs.ToSliceOfBytes(), + LastCommitInfo: buildLastCommitInfo(block, store, initialHeight), + ByzantineValidators: block.Evidence.ToABCI(), }, ) if err != nil { @@ -414,43 +411,44 @@ func execBlockOnProxyApp( return abciResponses, nil } -func getBeginBlockValidatorInfo(block *types.Block, store Store, - initialHeight int64) abci.LastCommitInfo { - voteInfos := make([]abci.VoteInfo, block.LastCommit.Size()) - // Initial block -> LastCommitInfo.Votes are empty. - // Remember that the first LastCommit is intentionally empty, so it makes - // sense for LastCommitInfo.Votes to also be empty. - if block.Height > initialHeight { - lastValSet, err := store.LoadValidators(block.Height - 1) - if err != nil { - panic(err) - } +func buildLastCommitInfo(block *types.Block, store Store, initialHeight int64) abci.LastCommitInfo { + if block.Height == initialHeight { + // there is no last commmit for the initial height. + // return an empty value. + return abci.LastCommitInfo{} + } - // Sanity check that commit size matches validator set size - only applies - // after first block. - var ( - commitSize = block.LastCommit.Size() - valSetLen = len(lastValSet.Validators) - ) - if commitSize != valSetLen { - panic(fmt.Sprintf( - "commit size (%d) doesn't match valset length (%d) at height %d\n\n%v\n\n%v", - commitSize, valSetLen, block.Height, block.LastCommit.Signatures, lastValSet.Validators, - )) - } + lastValSet, err := store.LoadValidators(block.Height - 1) + if err != nil { + panic(err) + } - for i, val := range lastValSet.Validators { - commitSig := block.LastCommit.Signatures[i] - voteInfos[i] = abci.VoteInfo{ - Validator: types.TM2PB.Validator(val), - SignedLastBlock: !commitSig.Absent(), - } + var ( + commitSize = block.LastCommit.Size() + valSetLen = len(lastValSet.Validators) + ) + + // ensure that the size of the validator set in the last commit matches + // the size of the validator set in the state store. + if commitSize != valSetLen { + panic(fmt.Sprintf( + "commit size (%d) doesn't match validator set length (%d) at height %d\n\n%v\n\n%v", + commitSize, valSetLen, block.Height, block.LastCommit.Signatures, lastValSet.Validators, + )) + } + + votes := make([]abci.VoteInfo, block.LastCommit.Size()) + for i, val := range lastValSet.Validators { + commitSig := block.LastCommit.Signatures[i] + votes[i] = abci.VoteInfo{ + Validator: types.TM2PB.Validator(val), + SignedLastBlock: !commitSig.Absent(), } } return abci.LastCommitInfo{ Round: block.LastCommit.Round, - Votes: voteInfos, + Votes: votes, } } diff --git a/internal/state/execution_test.go b/internal/state/execution_test.go index 56351eba6..636e654e7 100644 --- a/internal/state/execution_test.go +++ b/internal/state/execution_test.go @@ -12,6 +12,7 @@ import ( abciclient "github.com/tendermint/tendermint/abci/client" abci "github.com/tendermint/tendermint/abci/types" + abcimocks "github.com/tendermint/tendermint/abci/types/mocks" "github.com/tendermint/tendermint/crypto" "github.com/tendermint/tendermint/crypto/ed25519" "github.com/tendermint/tendermint/crypto/encoding" @@ -241,44 +242,77 @@ func TestBeginBlockByzantineValidators(t *testing.T) { } func TestProcessProposal(t *testing.T) { - height := 1 - runTest := func(txs types.Txs, expectAccept bool) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - app := &testApp{} - cc := abciclient.NewLocalCreator(app) - logger := log.TestingLogger() - proxyApp := proxy.NewAppConns(cc, logger, proxy.NopMetrics()) - err := proxyApp.Start(ctx) - require.NoError(t, err) + const height = 2 + txs := factory.MakeTenTxs(height) + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() - state, stateDB, _ := makeState(t, 1, height) - stateStore := sm.NewStore(stateDB) - blockStore := store.NewBlockStore(dbm.NewMemDB()) - - blockExec := sm.NewBlockExecutor( - stateStore, - logger, - proxyApp.Consensus(), - mmock.Mempool{}, - sm.EmptyEvidencePool{}, - blockStore, - ) + app := abcimocks.NewBaseMock() + cc := abciclient.NewLocalCreator(app) + logger := log.TestingLogger() + proxyApp := proxy.NewAppConns(cc, logger, proxy.NopMetrics()) + err := proxyApp.Start(ctx) + require.NoError(t, err) + + state, stateDB, privVals := makeState(t, 1, height) + stateStore := sm.NewStore(stateDB) + blockStore := store.NewBlockStore(dbm.NewMemDB()) - block, err := sf.MakeBlock(state, int64(height), new(types.Commit)) + blockExec := sm.NewBlockExecutor( + stateStore, + logger, + proxyApp.Consensus(), + mmock.Mempool{}, + sm.EmptyEvidencePool{}, + blockStore, + ) + + block0, err := sf.MakeBlock(state, height-1, new(types.Commit)) + require.NoError(t, err) + lastCommitSig := []types.CommitSig{} + partSet, err := block0.MakePartSet(types.BlockPartSizeBytes) + require.NoError(t, err) + blockID := types.BlockID{Hash: block0.Hash(), PartSetHeader: partSet.Header()} + voteInfos := []abci.VoteInfo{} + for _, privVal := range privVals { + vote, err := factory.MakeVote(ctx, privVal, block0.Header.ChainID, 0, 0, 0, 2, blockID, time.Now()) require.NoError(t, err) - block.Txs = txs - acceptBlock, err := blockExec.ProcessProposal(ctx, block) + pk, err := privVal.GetPubKey(ctx) require.NoError(t, err) - require.Equal(t, expectAccept, acceptBlock) + addr := pk.Address() + voteInfos = append(voteInfos, + abci.VoteInfo{ + SignedLastBlock: true, + Validator: abci.Validator{ + Address: addr, + Power: 1000, + }, + }) + lastCommitSig = append(lastCommitSig, vote.CommitSig()) } - goodTxs := factory.MakeTenTxs(int64(height)) - runTest(goodTxs, true) - // testApp has process proposal fail if any tx is 0-len - badTxs := factory.MakeTenTxs(int64(height)) - badTxs[0] = types.Tx{} - runTest(badTxs, false) + + lastCommit := types.NewCommit(height-1, 0, types.BlockID{}, lastCommitSig) + block1, err := sf.MakeBlock(state, height, lastCommit) + require.NoError(t, err) + block1.Txs = txs + + expectedRpp := abci.RequestProcessProposal{ + Hash: block1.Hash(), + Header: *block1.Header.ToProto(), + Txs: block1.Txs.ToSliceOfBytes(), + ByzantineValidators: block1.Evidence.ToABCI(), + LastCommitInfo: abci.LastCommitInfo{ + Round: 0, + Votes: voteInfos, + }, + } + + app.On("ProcessProposal", mock.Anything).Return(abci.ResponseProcessProposal{Accept: true}) + acceptBlock, err := blockExec.ProcessProposal(ctx, block1, state) + require.NoError(t, err) + require.True(t, acceptBlock) + app.AssertExpectations(t) + app.AssertCalled(t, "ProcessProposal", expectedRpp) } func TestValidateValidatorUpdates(t *testing.T) { diff --git a/internal/state/helpers_test.go b/internal/state/helpers_test.go index ca384ffb9..a5720f183 100644 --- a/internal/state/helpers_test.go +++ b/internal/state/helpers_test.go @@ -335,8 +335,8 @@ func (app *testApp) Query(reqQuery abci.RequestQuery) (resQuery abci.ResponseQue func (app *testApp) ProcessProposal(req abci.RequestProcessProposal) abci.ResponseProcessProposal { for _, tx := range req.Txs { if len(tx) == 0 { - return abci.ResponseProcessProposal{Result: abci.ResponseProcessProposal_REJECT} + return abci.ResponseProcessProposal{Accept: false} } } - return abci.ResponseProcessProposal{Result: abci.ResponseProcessProposal_ACCEPT} + return abci.ResponseProcessProposal{Accept: true} } diff --git a/test/e2e/app/app.go b/test/e2e/app/app.go index 26a511718..c5e328053 100644 --- a/test/e2e/app/app.go +++ b/test/e2e/app/app.go @@ -303,6 +303,18 @@ func (app *Application) PrepareProposal(req abci.RequestPrepareProposal) abci.Re return abci.ResponsePrepareProposal{BlockData: req.BlockData} } +// ProcessProposal implements part of the Application interface. +// It accepts any proposal that does not contain a malformed transaction. +func (app *Application) ProcessProposal(req abci.RequestProcessProposal) abci.ResponseProcessProposal { + for _, tx := range req.Txs { + _, _, err := parseTx(tx) + if err != nil { + return abci.ResponseProcessProposal{Accept: false} + } + } + return abci.ResponseProcessProposal{Accept: true} +} + func (app *Application) Rollback() error { app.mu.Lock() defer app.mu.Unlock() diff --git a/types/evidence.go b/types/evidence.go index 264e0957b..1ea53d9b5 100644 --- a/types/evidence.go +++ b/types/evidence.go @@ -681,6 +681,16 @@ func (evl EvidenceList) Has(evidence Evidence) bool { return false } +// ToABCI converts the evidence list to a slice of the ABCI protobuf messages +// for use when communicating the evidence to an application. +func (evl EvidenceList) ToABCI() []abci.Evidence { + var el []abci.Evidence + for _, e := range evl { + el = append(el, e.ABCI()...) + } + return el +} + //------------------------------------------ PROTO -------------------------------------- // EvidenceToProto is a generalized function for encoding evidence that conforms to the