diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 5e5e75e256..fba5a9913d 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -23,6 +23,9 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
+ - uses: actions/setup-go@v2
+ with:
+ go-version: "1.15"
- uses: actions/checkout@v2
- uses: technote-space/get-diff-action@v4
with:
@@ -30,13 +33,10 @@ jobs:
**/**.go
go.mod
go.sum
- - name: Set GOBIN
- run: |
- echo "::add-path::$(go env GOPATH)/bin"
- name: install
run: make install install_abci
if: "env.GIT_DIFF != ''"
- - uses: actions/cache@v2.1.2
+ - uses: actions/cache@v2.1.3
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
@@ -44,7 +44,7 @@ jobs:
${{ runner.os }}-go-
if: env.GIT_DIFF
# Cache binaries for use by other jobs
- - uses: actions/cache@v2.1.2
+ - uses: actions/cache@v2.1.3
with:
path: ~/go/bin
key: ${{ runner.os }}-${{ github.sha }}-tm-binary
@@ -52,9 +52,12 @@ jobs:
test_abci_apps:
runs-on: ubuntu-latest
- needs: Build
+ needs: build
timeout-minutes: 5
steps:
+ - uses: actions/setup-go@v2
+ with:
+ go-version: "1.15"
- uses: actions/checkout@v2
- uses: technote-space/get-diff-action@v4
with:
@@ -62,17 +65,14 @@ jobs:
**/**.go
go.mod
go.sum
- - name: Set GOBIN
- run: |
- echo "::add-path::$(go env GOPATH)/bin"
- - uses: actions/cache@v2.1.2
+ - uses: actions/cache@v2.1.3
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
if: env.GIT_DIFF
- - uses: actions/cache@v2.1.2
+ - uses: actions/cache@v2.1.3
with:
path: ~/go/bin
key: ${{ runner.os }}-${{ github.sha }}-tm-binary
@@ -84,9 +84,12 @@ jobs:
test_abci_cli:
runs-on: ubuntu-latest
- needs: Build
+ needs: build
timeout-minutes: 5
steps:
+ - uses: actions/setup-go@v2
+ with:
+ go-version: "1.15"
- uses: actions/checkout@v2
- uses: technote-space/get-diff-action@v4
with:
@@ -94,17 +97,14 @@ jobs:
**/**.go
go.mod
go.sum
- - name: Set GOBIN
- run: |
- echo "::add-path::$(go env GOPATH)/bin"
- - uses: actions/cache@v2.1.2
+ - uses: actions/cache@v2.1.3
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
if: env.GIT_DIFF
- - uses: actions/cache@v2.1.2
+ - uses: actions/cache@v2.1.3
with:
path: ~/go/bin
key: ${{ runner.os }}-${{ github.sha }}-tm-binary
@@ -115,9 +115,12 @@ jobs:
test_apps:
runs-on: ubuntu-latest
- needs: Build
+ needs: build
timeout-minutes: 5
steps:
+ - uses: actions/setup-go@v2
+ with:
+ go-version: "1.15"
- uses: actions/checkout@v2
- uses: technote-space/get-diff-action@v4
with:
@@ -125,17 +128,14 @@ jobs:
**/**.go
go.mod
go.sum
- - name: Set GOBIN
- run: |
- echo "::add-path::$(go env GOPATH)/bin"
- - uses: actions/cache@v2.1.2
+ - uses: actions/cache@v2.1.3
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
if: env.GIT_DIFF
- - uses: actions/cache@v2.1.2
+ - uses: actions/cache@v2.1.3
with:
path: ~/go/bin
key: ${{ runner.os }}-${{ github.sha }}-tm-binary
diff --git a/abci/client/client.go b/abci/client/client.go
index a1654e4fb6..4f63d97607 100644
--- a/abci/client/client.go
+++ b/abci/client/client.go
@@ -21,6 +21,7 @@ const (
// All `Sync` methods return the appropriate protobuf ResponseXxx struct and an error.
// Note these are client errors, eg. ABCI socket connectivity issues.
// Application-related errors are reflected in response via ABCI error codes and logs.
+//go:generate mockery --case underscore --name Client
type Client interface {
service.Service
@@ -41,6 +42,7 @@ type Client interface {
OfferSnapshotAsync(types.RequestOfferSnapshot) *ReqRes
LoadSnapshotChunkAsync(types.RequestLoadSnapshotChunk) *ReqRes
ApplySnapshotChunkAsync(types.RequestApplySnapshotChunk) *ReqRes
+ PreprocessTxsAsync(types.RequestPreprocessTxs) *ReqRes
FlushSync() error
EchoSync(msg string) (*types.ResponseEcho, error)
@@ -56,6 +58,7 @@ type Client interface {
OfferSnapshotSync(types.RequestOfferSnapshot) (*types.ResponseOfferSnapshot, error)
LoadSnapshotChunkSync(types.RequestLoadSnapshotChunk) (*types.ResponseLoadSnapshotChunk, error)
ApplySnapshotChunkSync(types.RequestApplySnapshotChunk) (*types.ResponseApplySnapshotChunk, error)
+ PreprocessTxsSync(types.RequestPreprocessTxs) (*types.ResponsePreprocessTxs, error)
}
//----------------------------------------
diff --git a/abci/client/grpc_client.go b/abci/client/grpc_client.go
index 6b8aa88d0d..1db181ad74 100644
--- a/abci/client/grpc_client.go
+++ b/abci/client/grpc_client.go
@@ -252,6 +252,15 @@ func (cli *grpcClient) ApplySnapshotChunkAsync(params types.RequestApplySnapshot
return cli.finishAsyncCall(req, &types.Response{Value: &types.Response_ApplySnapshotChunk{ApplySnapshotChunk: res}})
}
+func (cli *grpcClient) PreprocessTxsAsync(params types.RequestPreprocessTxs) *ReqRes {
+ req := types.ToRequestPreprocessTxs(params)
+ res, err := cli.client.PreprocessTxs(context.Background(), req.GetPreprocessTxs(), grpc.WaitForReady(true))
+ if err != nil {
+ cli.StopForError(err)
+ }
+ return cli.finishAsyncCall(req, &types.Response{Value: &types.Response_PreprocessTxs{PreprocessTxs: res}})
+}
+
func (cli *grpcClient) finishAsyncCall(req *types.Request, res *types.Response) *ReqRes {
reqres := NewReqRes(req)
reqres.Response = res // Set response
@@ -350,3 +359,9 @@ func (cli *grpcClient) ApplySnapshotChunkSync(
reqres := cli.ApplySnapshotChunkAsync(params)
return reqres.Response.GetApplySnapshotChunk(), cli.Error()
}
+
+func (cli *grpcClient) PreprocessTxsSync(
+ params types.RequestPreprocessTxs) (*types.ResponsePreprocessTxs, error) {
+ reqres := cli.PreprocessTxsAsync(params)
+ return reqres.Response.GetPreprocessTxs(), cli.Error()
+}
diff --git a/abci/client/local_client.go b/abci/client/local_client.go
index 01c78c0a17..4321d11ccb 100644
--- a/abci/client/local_client.go
+++ b/abci/client/local_client.go
@@ -190,6 +190,17 @@ func (app *localClient) ApplySnapshotChunkAsync(req types.RequestApplySnapshotCh
)
}
+func (app *localClient) PreprocessTxsAsync(req types.RequestPreprocessTxs) *ReqRes {
+ app.mtx.Lock()
+ defer app.mtx.Unlock()
+
+ res := app.Application.PreprocessTxs(req)
+ return app.callback(
+ types.ToRequestPreprocessTxs(req),
+ types.ToResponsePreprocessTx(res),
+ )
+}
+
//-------------------------------------------------------
func (app *localClient) FlushSync() error {
@@ -298,6 +309,15 @@ func (app *localClient) ApplySnapshotChunkSync(
return &res, nil
}
+func (app *localClient) PreprocessTxsSync(
+ req types.RequestPreprocessTxs) (*types.ResponsePreprocessTxs, error) {
+ app.mtx.Lock()
+ defer app.mtx.Unlock()
+
+ res := app.Application.PreprocessTxs(req)
+ return &res, nil
+}
+
//-------------------------------------------------------
func (app *localClient) callback(req *types.Request, res *types.Response) *ReqRes {
diff --git a/abci/client/mocks/client.go b/abci/client/mocks/client.go
index 20223df444..4392853009 100644
--- a/abci/client/mocks/client.go
+++ b/abci/client/mocks/client.go
@@ -575,6 +575,45 @@ func (_m *Client) OnStop() {
_m.Called()
}
+// PreprocessTxsAsync provides a mock function with given fields: _a0
+func (_m *Client) PreprocessTxsAsync(_a0 types.RequestPreprocessTxs) *abcicli.ReqRes {
+ ret := _m.Called(_a0)
+
+ var r0 *abcicli.ReqRes
+ if rf, ok := ret.Get(0).(func(types.RequestPreprocessTxs) *abcicli.ReqRes); ok {
+ r0 = rf(_a0)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*abcicli.ReqRes)
+ }
+ }
+
+ return r0
+}
+
+// PreprocessTxsSync provides a mock function with given fields: _a0
+func (_m *Client) PreprocessTxsSync(_a0 types.RequestPreprocessTxs) (*types.ResponsePreprocessTxs, error) {
+ ret := _m.Called(_a0)
+
+ var r0 *types.ResponsePreprocessTxs
+ if rf, ok := ret.Get(0).(func(types.RequestPreprocessTxs) *types.ResponsePreprocessTxs); ok {
+ r0 = rf(_a0)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*types.ResponsePreprocessTxs)
+ }
+ }
+
+ var r1 error
+ if rf, ok := ret.Get(1).(func(types.RequestPreprocessTxs) error); ok {
+ r1 = rf(_a0)
+ } else {
+ r1 = ret.Error(1)
+ }
+
+ return r0, r1
+}
+
// QueryAsync provides a mock function with given fields: _a0
func (_m *Client) QueryAsync(_a0 types.RequestQuery) *abcicli.ReqRes {
ret := _m.Called(_a0)
diff --git a/abci/client/socket_client.go b/abci/client/socket_client.go
index 70ba788135..364be0f1be 100644
--- a/abci/client/socket_client.go
+++ b/abci/client/socket_client.go
@@ -277,6 +277,10 @@ func (cli *socketClient) ApplySnapshotChunkAsync(req types.RequestApplySnapshotC
return cli.queueRequest(types.ToRequestApplySnapshotChunk(req))
}
+func (cli *socketClient) PreprocessTxsAsync(req types.RequestPreprocessTxs) *ReqRes {
+ return cli.queueRequest(types.ToRequestPreprocessTxs(req))
+}
+
//----------------------------------------
func (cli *socketClient) FlushSync() error {
@@ -406,6 +410,15 @@ func (cli *socketClient) ApplySnapshotChunkSync(
return reqres.Response.GetApplySnapshotChunk(), cli.Error()
}
+func (cli *socketClient) PreprocessTxsSync(
+ req types.RequestPreprocessTxs) (*types.ResponsePreprocessTxs, error) {
+ reqres := cli.queueRequest(types.ToRequestPreprocessTxs(req))
+ if err := cli.FlushSync(); err != nil {
+ return nil, err
+ }
+ return reqres.Response.GetPreprocessTxs(), cli.Error()
+}
+
//----------------------------------------
func (cli *socketClient) queueRequest(req *types.Request) *ReqRes {
@@ -479,6 +492,8 @@ func resMatchesReq(req *types.Request, res *types.Response) (ok bool) {
_, ok = res.Value.(*types.Response_ListSnapshots)
case *types.Request_OfferSnapshot:
_, ok = res.Value.(*types.Response_OfferSnapshot)
+ case *types.Request_PreprocessTxs:
+ _, ok = res.Value.(*types.Response_PreprocessTxs)
}
return ok
}
diff --git a/abci/example/counter/counter.go b/abci/example/counter/counter.go
index c212a990d6..a3a03c075b 100644
--- a/abci/example/counter/counter.go
+++ b/abci/example/counter/counter.go
@@ -84,3 +84,8 @@ func (app *Application) Query(reqQuery types.RequestQuery) types.ResponseQuery {
return types.ResponseQuery{Log: fmt.Sprintf("Invalid query path. Expected hash or tx, got %v", reqQuery.Path)}
}
}
+
+func (app *Application) PreprocessTxs(
+ req types.RequestPreprocessTxs) types.ResponsePreprocessTxs {
+ return types.ResponsePreprocessTxs{Txs: req.Txs}
+}
diff --git a/abci/example/kvstore/kvstore.go b/abci/example/kvstore/kvstore.go
index e23d41dc7c..80f11f6e6f 100644
--- a/abci/example/kvstore/kvstore.go
+++ b/abci/example/kvstore/kvstore.go
@@ -170,3 +170,8 @@ func (app *Application) Query(reqQuery types.RequestQuery) (resQuery types.Respo
return resQuery
}
+
+func (app *Application) PreprocessTxs(
+ req types.RequestPreprocessTxs) types.ResponsePreprocessTxs {
+ return types.ResponsePreprocessTxs{Txs: req.Txs}
+}
diff --git a/abci/example/kvstore/persistent_kvstore.go b/abci/example/kvstore/persistent_kvstore.go
index a3183f15a4..e06efb4c37 100644
--- a/abci/example/kvstore/persistent_kvstore.go
+++ b/abci/example/kvstore/persistent_kvstore.go
@@ -166,6 +166,11 @@ func (app *PersistentKVStoreApplication) ApplySnapshotChunk(
return types.ResponseApplySnapshotChunk{Result: types.ResponseApplySnapshotChunk_ABORT}
}
+func (app *PersistentKVStoreApplication) PreprocessTxs(
+ req types.RequestPreprocessTxs) types.ResponsePreprocessTxs {
+ return types.ResponsePreprocessTxs{Txs: req.Txs}
+}
+
//---------------------------------------------
// update validators
diff --git a/abci/server/socket_server.go b/abci/server/socket_server.go
index 71548deffe..2272c4f191 100644
--- a/abci/server/socket_server.go
+++ b/abci/server/socket_server.go
@@ -233,6 +233,9 @@ func (s *SocketServer) handleRequest(req *types.Request, responses chan<- *types
case *types.Request_ApplySnapshotChunk:
res := s.app.ApplySnapshotChunk(*r.ApplySnapshotChunk)
responses <- types.ToResponseApplySnapshotChunk(res)
+ case *types.Request_PreprocessTxs:
+ res := s.app.PreprocessTxs(*r.PreprocessTxs)
+ responses <- types.ToResponsePreprocessTx(res)
default:
responses <- types.ToResponseException("Unknown request")
}
diff --git a/abci/types/application.go b/abci/types/application.go
index 5b8270ba64..04dd5dd9b9 100644
--- a/abci/types/application.go
+++ b/abci/types/application.go
@@ -8,6 +8,7 @@ import (
// to be driven by a blockchain-based replication engine via the ABCI.
// All methods take a RequestXxx argument and return a ResponseXxx argument,
// except CheckTx/DeliverTx, which take `tx []byte`, and `Commit`, which takes nothing.
+// nolint:lll // ignore for interface
type Application interface {
// Info/Query Connection
Info(RequestInfo) ResponseInfo // Return application info
@@ -17,11 +18,12 @@ type Application interface {
CheckTx(RequestCheckTx) ResponseCheckTx // Validate a tx for the mempool
// Consensus Connection
- InitChain(RequestInitChain) ResponseInitChain // Initialize blockchain w validators/other info from TendermintCore
- BeginBlock(RequestBeginBlock) ResponseBeginBlock // Signals the beginning of a block
- DeliverTx(RequestDeliverTx) ResponseDeliverTx // Deliver a tx for full processing
- EndBlock(RequestEndBlock) ResponseEndBlock // Signals the end of a block, returns changes to the validator set
- Commit() ResponseCommit // Commit the state and return the application Merkle root hash
+ InitChain(RequestInitChain) ResponseInitChain // Initialize blockchain w validators/other info from TendermintCore
+ BeginBlock(RequestBeginBlock) ResponseBeginBlock // Signals the beginning of a block
+ DeliverTx(RequestDeliverTx) ResponseDeliverTx // Deliver a tx for full processing
+ EndBlock(RequestEndBlock) ResponseEndBlock // Signals the end of a block, returns changes to the validator set
+ Commit() ResponseCommit // Commit the state and return the application Merkle root hash
+ PreprocessTxs(RequestPreprocessTxs) ResponsePreprocessTxs // State machine preprocessing of txs
// State Sync Connection
ListSnapshots(RequestListSnapshots) ResponseListSnapshots // List available snapshots
@@ -90,6 +92,10 @@ func (BaseApplication) ApplySnapshotChunk(req RequestApplySnapshotChunk) Respons
return ResponseApplySnapshotChunk{}
}
+func (BaseApplication) PreprocessTxs(req RequestPreprocessTxs) ResponsePreprocessTxs {
+ return ResponsePreprocessTxs{}
+}
+
//-------------------------------------------------------
// GRPCApplication is a GRPC wrapper for Application
@@ -172,3 +178,9 @@ func (app *GRPCApplication) ApplySnapshotChunk(
res := app.app.ApplySnapshotChunk(*req)
return &res, nil
}
+
+func (app *GRPCApplication) PreprocessTxs(
+ ctx context.Context, req *RequestPreprocessTxs) (*ResponsePreprocessTxs, error) {
+ res := app.app.PreprocessTxs(*req)
+ return &res, nil
+}
diff --git a/abci/types/messages.go b/abci/types/messages.go
index eaf1721dd9..b7cca6d936 100644
--- a/abci/types/messages.go
+++ b/abci/types/messages.go
@@ -153,6 +153,12 @@ func ToRequestApplySnapshotChunk(req RequestApplySnapshotChunk) *Request {
}
}
+func ToRequestPreprocessTxs(res RequestPreprocessTxs) *Request {
+ return &Request{
+ Value: &Request_PreprocessTxs{&res},
+ }
+}
+
//----------------------------------------
func ToResponseException(errStr string) *Response {
@@ -243,3 +249,9 @@ func ToResponseApplySnapshotChunk(res ResponseApplySnapshotChunk) *Response {
Value: &Response_ApplySnapshotChunk{&res},
}
}
+
+func ToResponsePreprocessTx(res ResponsePreprocessTxs) *Response {
+ return &Response{
+ Value: &Response_PreprocessTxs{&res},
+ }
+}
diff --git a/abci/types/types.pb.go b/abci/types/types.pb.go
index 60d7ffbe1e..4a48f1ca6a 100644
--- a/abci/types/types.pb.go
+++ b/abci/types/types.pb.go
@@ -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{29, 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{31, 0}
}
type Request struct {
@@ -176,6 +176,7 @@ type Request struct {
// *Request_OfferSnapshot
// *Request_LoadSnapshotChunk
// *Request_ApplySnapshotChunk
+ // *Request_PreprocessTxs
Value isRequest_Value `protobuf_oneof:"value"`
}
@@ -260,6 +261,9 @@ type Request_LoadSnapshotChunk struct {
type Request_ApplySnapshotChunk struct {
ApplySnapshotChunk *RequestApplySnapshotChunk `protobuf:"bytes,14,opt,name=apply_snapshot_chunk,json=applySnapshotChunk,proto3,oneof" json:"apply_snapshot_chunk,omitempty"`
}
+type Request_PreprocessTxs struct {
+ PreprocessTxs *RequestPreprocessTxs `protobuf:"bytes,15,opt,name=preprocess_txs,json=preprocessTxs,proto3,oneof" json:"preprocess_txs,omitempty"`
+}
func (*Request_Echo) isRequest_Value() {}
func (*Request_Flush) isRequest_Value() {}
@@ -275,6 +279,7 @@ func (*Request_ListSnapshots) isRequest_Value() {}
func (*Request_OfferSnapshot) isRequest_Value() {}
func (*Request_LoadSnapshotChunk) isRequest_Value() {}
func (*Request_ApplySnapshotChunk) isRequest_Value() {}
+func (*Request_PreprocessTxs) isRequest_Value() {}
func (m *Request) GetValue() isRequest_Value {
if m != nil {
@@ -381,6 +386,13 @@ func (m *Request) GetApplySnapshotChunk() *RequestApplySnapshotChunk {
return nil
}
+func (m *Request) GetPreprocessTxs() *RequestPreprocessTxs {
+ if x, ok := m.GetValue().(*Request_PreprocessTxs); ok {
+ return x.PreprocessTxs
+ }
+ return nil
+}
+
// XXX_OneofWrappers is for the internal use of the proto package.
func (*Request) XXX_OneofWrappers() []interface{} {
return []interface{}{
@@ -398,6 +410,7 @@ func (*Request) XXX_OneofWrappers() []interface{} {
(*Request_OfferSnapshot)(nil),
(*Request_LoadSnapshotChunk)(nil),
(*Request_ApplySnapshotChunk)(nil),
+ (*Request_PreprocessTxs)(nil),
}
}
@@ -1149,6 +1162,50 @@ func (m *RequestApplySnapshotChunk) GetSender() string {
return ""
}
+type RequestPreprocessTxs struct {
+ Txs [][]byte `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"`
+}
+
+func (m *RequestPreprocessTxs) Reset() { *m = RequestPreprocessTxs{} }
+func (m *RequestPreprocessTxs) String() string { return proto.CompactTextString(m) }
+func (*RequestPreprocessTxs) ProtoMessage() {}
+func (*RequestPreprocessTxs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_252557cfdd89a31a, []int{15}
+}
+func (m *RequestPreprocessTxs) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *RequestPreprocessTxs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_RequestPreprocessTxs.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 *RequestPreprocessTxs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_RequestPreprocessTxs.Merge(m, src)
+}
+func (m *RequestPreprocessTxs) XXX_Size() int {
+ return m.Size()
+}
+func (m *RequestPreprocessTxs) XXX_DiscardUnknown() {
+ xxx_messageInfo_RequestPreprocessTxs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_RequestPreprocessTxs proto.InternalMessageInfo
+
+func (m *RequestPreprocessTxs) GetTxs() [][]byte {
+ if m != nil {
+ return m.Txs
+ }
+ return nil
+}
+
type Response struct {
// Types that are valid to be assigned to Value:
// *Response_Exception
@@ -1166,6 +1223,7 @@ type Response struct {
// *Response_OfferSnapshot
// *Response_LoadSnapshotChunk
// *Response_ApplySnapshotChunk
+ // *Response_PreprocessTxs
Value isResponse_Value `protobuf_oneof:"value"`
}
@@ -1173,7 +1231,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{15}
+ return fileDescriptor_252557cfdd89a31a, []int{16}
}
func (m *Response) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1253,6 +1311,9 @@ type Response_LoadSnapshotChunk struct {
type Response_ApplySnapshotChunk struct {
ApplySnapshotChunk *ResponseApplySnapshotChunk `protobuf:"bytes,15,opt,name=apply_snapshot_chunk,json=applySnapshotChunk,proto3,oneof" json:"apply_snapshot_chunk,omitempty"`
}
+type Response_PreprocessTxs struct {
+ PreprocessTxs *ResponsePreprocessTxs `protobuf:"bytes,16,opt,name=preprocess_txs,json=preprocessTxs,proto3,oneof" json:"preprocess_txs,omitempty"`
+}
func (*Response_Exception) isResponse_Value() {}
func (*Response_Echo) isResponse_Value() {}
@@ -1269,6 +1330,7 @@ func (*Response_ListSnapshots) isResponse_Value() {}
func (*Response_OfferSnapshot) isResponse_Value() {}
func (*Response_LoadSnapshotChunk) isResponse_Value() {}
func (*Response_ApplySnapshotChunk) isResponse_Value() {}
+func (*Response_PreprocessTxs) isResponse_Value() {}
func (m *Response) GetValue() isResponse_Value {
if m != nil {
@@ -1382,6 +1444,13 @@ func (m *Response) GetApplySnapshotChunk() *ResponseApplySnapshotChunk {
return nil
}
+func (m *Response) GetPreprocessTxs() *ResponsePreprocessTxs {
+ if x, ok := m.GetValue().(*Response_PreprocessTxs); ok {
+ return x.PreprocessTxs
+ }
+ return nil
+}
+
// XXX_OneofWrappers is for the internal use of the proto package.
func (*Response) XXX_OneofWrappers() []interface{} {
return []interface{}{
@@ -1400,6 +1469,7 @@ func (*Response) XXX_OneofWrappers() []interface{} {
(*Response_OfferSnapshot)(nil),
(*Response_LoadSnapshotChunk)(nil),
(*Response_ApplySnapshotChunk)(nil),
+ (*Response_PreprocessTxs)(nil),
}
}
@@ -1412,7 +1482,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{16}
+ return fileDescriptor_252557cfdd89a31a, []int{17}
}
func (m *ResponseException) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1456,7 +1526,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{17}
+ return fileDescriptor_252557cfdd89a31a, []int{18}
}
func (m *ResponseEcho) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1499,7 +1569,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{18}
+ return fileDescriptor_252557cfdd89a31a, []int{19}
}
func (m *ResponseFlush) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1540,7 +1610,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{19}
+ return fileDescriptor_252557cfdd89a31a, []int{20}
}
func (m *ResponseInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1614,7 +1684,7 @@ 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{20}
+ return fileDescriptor_252557cfdd89a31a, []int{21}
}
func (m *ResponseInitChain) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1681,7 +1751,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{21}
+ return fileDescriptor_252557cfdd89a31a, []int{22}
}
func (m *ResponseQuery) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1781,7 +1851,7 @@ 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{22}
+ return fileDescriptor_252557cfdd89a31a, []int{23}
}
func (m *ResponseBeginBlock) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1832,7 +1902,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{23}
+ return fileDescriptor_252557cfdd89a31a, []int{24}
}
func (m *ResponseCheckTx) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1932,7 +2002,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{24}
+ return fileDescriptor_252557cfdd89a31a, []int{25}
}
func (m *ResponseDeliverTx) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2027,7 +2097,7 @@ 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{25}
+ return fileDescriptor_252557cfdd89a31a, []int{26}
}
func (m *ResponseEndBlock) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2087,7 +2157,7 @@ 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}
+ return fileDescriptor_252557cfdd89a31a, []int{27}
}
func (m *ResponseCommit) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2138,7 +2208,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{28}
}
func (m *ResponseListSnapshots) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2182,7 +2252,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{29}
}
func (m *ResponseOfferSnapshot) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2226,7 +2296,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{30}
}
func (m *ResponseLoadSnapshotChunk) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2272,7 +2342,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{31}
}
func (m *ResponseApplySnapshotChunk) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2322,6 +2392,58 @@ func (m *ResponseApplySnapshotChunk) GetRejectSenders() []string {
return nil
}
+type ResponsePreprocessTxs struct {
+ Txs [][]byte `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"`
+ Messages *types1.Messages `protobuf:"bytes,2,opt,name=messages,proto3" json:"messages,omitempty"`
+}
+
+func (m *ResponsePreprocessTxs) Reset() { *m = ResponsePreprocessTxs{} }
+func (m *ResponsePreprocessTxs) String() string { return proto.CompactTextString(m) }
+func (*ResponsePreprocessTxs) ProtoMessage() {}
+func (*ResponsePreprocessTxs) Descriptor() ([]byte, []int) {
+ return fileDescriptor_252557cfdd89a31a, []int{32}
+}
+func (m *ResponsePreprocessTxs) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *ResponsePreprocessTxs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_ResponsePreprocessTxs.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 *ResponsePreprocessTxs) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_ResponsePreprocessTxs.Merge(m, src)
+}
+func (m *ResponsePreprocessTxs) XXX_Size() int {
+ return m.Size()
+}
+func (m *ResponsePreprocessTxs) XXX_DiscardUnknown() {
+ xxx_messageInfo_ResponsePreprocessTxs.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ResponsePreprocessTxs proto.InternalMessageInfo
+
+func (m *ResponsePreprocessTxs) GetTxs() [][]byte {
+ if m != nil {
+ return m.Txs
+ }
+ return nil
+}
+
+func (m *ResponsePreprocessTxs) GetMessages() *types1.Messages {
+ if m != nil {
+ return m.Messages
+ }
+ return nil
+}
+
// ConsensusParams contains all consensus-relevant parameters
// that can be adjusted by the abci app
type ConsensusParams struct {
@@ -2335,7 +2457,7 @@ func (m *ConsensusParams) Reset() { *m = ConsensusParams{} }
func (m *ConsensusParams) String() string { return proto.CompactTextString(m) }
func (*ConsensusParams) ProtoMessage() {}
func (*ConsensusParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{31}
+ return fileDescriptor_252557cfdd89a31a, []int{33}
}
func (m *ConsensusParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2404,7 +2526,7 @@ func (m *BlockParams) Reset() { *m = BlockParams{} }
func (m *BlockParams) String() string { return proto.CompactTextString(m) }
func (*BlockParams) ProtoMessage() {}
func (*BlockParams) Descriptor() ([]byte, []int) {
- return fileDescriptor_252557cfdd89a31a, []int{32}
+ return fileDescriptor_252557cfdd89a31a, []int{34}
}
func (m *BlockParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2456,7 +2578,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{33}
+ return fileDescriptor_252557cfdd89a31a, []int{35}
}
func (m *LastCommitInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2511,7 +2633,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{34}
+ return fileDescriptor_252557cfdd89a31a, []int{36}
}
func (m *Event) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2565,7 +2687,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{35}
+ return fileDescriptor_252557cfdd89a31a, []int{37}
}
func (m *EventAttribute) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2629,7 +2751,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{36}
+ return fileDescriptor_252557cfdd89a31a, []int{38}
}
func (m *TxResult) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2697,7 +2819,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{37}
+ return fileDescriptor_252557cfdd89a31a, []int{39}
}
func (m *Validator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2750,7 +2872,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{38}
+ return fileDescriptor_252557cfdd89a31a, []int{40}
}
func (m *ValidatorUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2803,7 +2925,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{39}
+ return fileDescriptor_252557cfdd89a31a, []int{41}
}
func (m *VoteInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2864,7 +2986,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{40}
+ return fileDescriptor_252557cfdd89a31a, []int{42}
}
func (m *Evidence) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -2940,7 +3062,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{41}
+ return fileDescriptor_252557cfdd89a31a, []int{43}
}
func (m *Snapshot) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -3024,6 +3146,7 @@ func init() {
proto.RegisterType((*RequestOfferSnapshot)(nil), "tendermint.abci.RequestOfferSnapshot")
proto.RegisterType((*RequestLoadSnapshotChunk)(nil), "tendermint.abci.RequestLoadSnapshotChunk")
proto.RegisterType((*RequestApplySnapshotChunk)(nil), "tendermint.abci.RequestApplySnapshotChunk")
+ proto.RegisterType((*RequestPreprocessTxs)(nil), "tendermint.abci.RequestPreprocessTxs")
proto.RegisterType((*Response)(nil), "tendermint.abci.Response")
proto.RegisterType((*ResponseException)(nil), "tendermint.abci.ResponseException")
proto.RegisterType((*ResponseEcho)(nil), "tendermint.abci.ResponseEcho")
@@ -3040,6 +3163,7 @@ func init() {
proto.RegisterType((*ResponseOfferSnapshot)(nil), "tendermint.abci.ResponseOfferSnapshot")
proto.RegisterType((*ResponseLoadSnapshotChunk)(nil), "tendermint.abci.ResponseLoadSnapshotChunk")
proto.RegisterType((*ResponseApplySnapshotChunk)(nil), "tendermint.abci.ResponseApplySnapshotChunk")
+ proto.RegisterType((*ResponsePreprocessTxs)(nil), "tendermint.abci.ResponsePreprocessTxs")
proto.RegisterType((*ConsensusParams)(nil), "tendermint.abci.ConsensusParams")
proto.RegisterType((*BlockParams)(nil), "tendermint.abci.BlockParams")
proto.RegisterType((*LastCommitInfo)(nil), "tendermint.abci.LastCommitInfo")
@@ -3056,175 +3180,181 @@ func init() {
func init() { proto.RegisterFile("tendermint/abci/types.proto", fileDescriptor_252557cfdd89a31a) }
var fileDescriptor_252557cfdd89a31a = []byte{
- // 2688 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0x4b, 0x73, 0x1b, 0xc7,
- 0x11, 0xc6, 0x1b, 0xd8, 0x26, 0xf1, 0xe0, 0x88, 0x96, 0x21, 0x48, 0x22, 0xe5, 0x55, 0xc9, 0xb1,
- 0x14, 0x8b, 0xb4, 0xa9, 0x92, 0x22, 0x95, 0x9d, 0xd8, 0x04, 0x04, 0x19, 0x14, 0x19, 0x92, 0x59,
- 0x42, 0x72, 0x5e, 0xd6, 0x7a, 0x80, 0x1d, 0x02, 0x6b, 0x01, 0xbb, 0xeb, 0xdd, 0x05, 0x45, 0xea,
- 0x98, 0xc7, 0x45, 0xb9, 0xf8, 0x98, 0x8b, 0xab, 0xf2, 0x0f, 0x72, 0xcd, 0x29, 0x97, 0x5c, 0x5c,
- 0x95, 0x4a, 0x95, 0x8f, 0x39, 0x39, 0x29, 0xe9, 0x96, 0x3f, 0x90, 0x53, 0x2a, 0xa9, 0x79, 0xec,
- 0x0b, 0xc0, 0x12, 0x60, 0x9c, 0x5b, 0x6e, 0x33, 0xbd, 0xdd, 0x8d, 0x99, 0xde, 0xe9, 0xaf, 0xbf,
- 0xe9, 0x05, 0x5c, 0x74, 0x89, 0xa1, 0x11, 0x7b, 0xa8, 0x1b, 0xee, 0x3a, 0xee, 0x74, 0xf5, 0x75,
- 0xf7, 0xc4, 0x22, 0xce, 0x9a, 0x65, 0x9b, 0xae, 0x89, 0xca, 0xc1, 0xc3, 0x35, 0xfa, 0xb0, 0x76,
- 0x39, 0xa4, 0xdd, 0xb5, 0x4f, 0x2c, 0xd7, 0x5c, 0xb7, 0x6c, 0xd3, 0x3c, 0xe4, 0xfa, 0xb5, 0x4b,
- 0xa1, 0xc7, 0xcc, 0x4f, 0xd8, 0x5b, 0xe4, 0xa9, 0x30, 0x7e, 0x4a, 0x4e, 0xbc, 0xa7, 0x97, 0x27,
- 0x6c, 0x2d, 0x6c, 0xe3, 0xa1, 0xf7, 0x78, 0xb5, 0x67, 0x9a, 0xbd, 0x01, 0x59, 0x67, 0xb3, 0xce,
- 0xe8, 0x70, 0xdd, 0xd5, 0x87, 0xc4, 0x71, 0xf1, 0xd0, 0x12, 0x0a, 0xcb, 0x3d, 0xb3, 0x67, 0xb2,
- 0xe1, 0x3a, 0x1d, 0x71, 0xa9, 0xfc, 0x97, 0x3c, 0xe4, 0x15, 0xf2, 0xf9, 0x88, 0x38, 0x2e, 0xda,
- 0x80, 0x0c, 0xe9, 0xf6, 0xcd, 0x6a, 0xf2, 0x4a, 0xf2, 0xad, 0x85, 0x8d, 0x4b, 0x6b, 0x63, 0x9b,
- 0x5b, 0x13, 0x7a, 0xcd, 0x6e, 0xdf, 0x6c, 0x25, 0x14, 0xa6, 0x8b, 0x6e, 0x43, 0xf6, 0x70, 0x30,
- 0x72, 0xfa, 0xd5, 0x14, 0x33, 0xba, 0x1c, 0x67, 0xf4, 0x80, 0x2a, 0xb5, 0x12, 0x0a, 0xd7, 0xa6,
- 0x3f, 0xa5, 0x1b, 0x87, 0x66, 0x35, 0x7d, 0xfa, 0x4f, 0x6d, 0x19, 0x87, 0xec, 0xa7, 0xa8, 0x2e,
- 0xaa, 0x03, 0xe8, 0x86, 0xee, 0xaa, 0xdd, 0x3e, 0xd6, 0x8d, 0x6a, 0x86, 0x59, 0xbe, 0x11, 0x6f,
- 0xa9, 0xbb, 0x0d, 0xaa, 0xd8, 0x4a, 0x28, 0x92, 0xee, 0x4d, 0xe8, 0x72, 0x3f, 0x1f, 0x11, 0xfb,
- 0xa4, 0x9a, 0x3d, 0x7d, 0xb9, 0x3f, 0xa2, 0x4a, 0x74, 0xb9, 0x4c, 0x1b, 0x35, 0x61, 0xa1, 0x43,
- 0x7a, 0xba, 0xa1, 0x76, 0x06, 0x66, 0xf7, 0x69, 0x35, 0xc7, 0x8c, 0xe5, 0x38, 0xe3, 0x3a, 0x55,
- 0xad, 0x53, 0xcd, 0x56, 0x42, 0x81, 0x8e, 0x3f, 0x43, 0xef, 0x43, 0xa1, 0xdb, 0x27, 0xdd, 0xa7,
- 0xaa, 0x7b, 0x5c, 0xcd, 0x33, 0x1f, 0xab, 0x71, 0x3e, 0x1a, 0x54, 0xaf, 0x7d, 0xdc, 0x4a, 0x28,
- 0xf9, 0x2e, 0x1f, 0xd2, 0xfd, 0x6b, 0x64, 0xa0, 0x1f, 0x11, 0x9b, 0xda, 0x17, 0x4e, 0xdf, 0xff,
- 0x7d, 0xae, 0xc9, 0x3c, 0x48, 0x9a, 0x37, 0x41, 0x1f, 0x80, 0x44, 0x0c, 0x4d, 0x6c, 0x43, 0x62,
- 0x2e, 0xae, 0xc4, 0xbe, 0x67, 0x43, 0xf3, 0x36, 0x51, 0x20, 0x62, 0x8c, 0xee, 0x42, 0xae, 0x6b,
- 0x0e, 0x87, 0xba, 0x5b, 0x05, 0x66, 0xbd, 0x12, 0xbb, 0x01, 0xa6, 0xd5, 0x4a, 0x28, 0x42, 0x1f,
- 0xed, 0x42, 0x69, 0xa0, 0x3b, 0xae, 0xea, 0x18, 0xd8, 0x72, 0xfa, 0xa6, 0xeb, 0x54, 0x17, 0x98,
- 0x87, 0x6b, 0x71, 0x1e, 0x76, 0x74, 0xc7, 0x3d, 0xf0, 0x94, 0x5b, 0x09, 0xa5, 0x38, 0x08, 0x0b,
- 0xa8, 0x3f, 0xf3, 0xf0, 0x90, 0xd8, 0xbe, 0xc3, 0xea, 0xe2, 0xe9, 0xfe, 0xf6, 0xa8, 0xb6, 0x67,
- 0x4f, 0xfd, 0x99, 0x61, 0x01, 0xfa, 0x19, 0x9c, 0x1b, 0x98, 0x58, 0xf3, 0xdd, 0xa9, 0xdd, 0xfe,
- 0xc8, 0x78, 0x5a, 0x2d, 0x32, 0xa7, 0xd7, 0x63, 0x17, 0x69, 0x62, 0xcd, 0x73, 0xd1, 0xa0, 0x06,
- 0xad, 0x84, 0xb2, 0x34, 0x18, 0x17, 0xa2, 0x27, 0xb0, 0x8c, 0x2d, 0x6b, 0x70, 0x32, 0xee, 0xbd,
- 0xc4, 0xbc, 0xdf, 0x88, 0xf3, 0xbe, 0x49, 0x6d, 0xc6, 0xdd, 0x23, 0x3c, 0x21, 0xad, 0xe7, 0x21,
- 0x7b, 0x84, 0x07, 0x23, 0x22, 0x7f, 0x07, 0x16, 0x42, 0x69, 0x8a, 0xaa, 0x90, 0x1f, 0x12, 0xc7,
- 0xc1, 0x3d, 0xc2, 0xb2, 0x5a, 0x52, 0xbc, 0xa9, 0x5c, 0x82, 0xc5, 0x70, 0x6a, 0xca, 0x43, 0xdf,
- 0x90, 0x26, 0x1d, 0x35, 0x3c, 0x22, 0xb6, 0xa3, 0x9b, 0x86, 0x67, 0x28, 0xa6, 0xe8, 0x2a, 0x14,
- 0xd9, 0xf1, 0x51, 0xbd, 0xe7, 0x34, 0xf3, 0x33, 0xca, 0x22, 0x13, 0x3e, 0x16, 0x4a, 0xab, 0xb0,
- 0x60, 0x6d, 0x58, 0xbe, 0x4a, 0x9a, 0xa9, 0x80, 0xb5, 0x61, 0x09, 0x05, 0xf9, 0xcf, 0x29, 0xa8,
- 0x8c, 0xa7, 0x2a, 0xba, 0x0b, 0x19, 0x8a, 0x5a, 0x02, 0x80, 0x6a, 0x6b, 0x1c, 0xd2, 0xd6, 0x3c,
- 0x48, 0x5b, 0x6b, 0x7b, 0x90, 0x56, 0x2f, 0x7c, 0xf5, 0xcd, 0x6a, 0xe2, 0x8b, 0xbf, 0xad, 0x26,
- 0x15, 0x66, 0x81, 0x2e, 0xd0, 0xcc, 0xc2, 0xba, 0xa1, 0xea, 0x1a, 0x5b, 0x8f, 0x44, 0xd3, 0x06,
- 0xeb, 0xc6, 0x96, 0x86, 0xb6, 0xa1, 0xd2, 0x35, 0x0d, 0x87, 0x18, 0xce, 0xc8, 0x51, 0x39, 0x64,
- 0x0a, 0xd8, 0x99, 0x3c, 0xf9, 0x0d, 0x4f, 0x71, 0x9f, 0xe9, 0x29, 0xe5, 0x6e, 0x54, 0x80, 0x1e,
- 0x00, 0x1c, 0xe1, 0x81, 0xae, 0x61, 0xd7, 0xb4, 0x9d, 0x6a, 0xe6, 0x4a, 0x7a, 0xaa, 0x9b, 0xc7,
- 0x9e, 0xca, 0x23, 0x4b, 0xc3, 0x2e, 0xa9, 0x67, 0xe8, 0x6a, 0x95, 0x90, 0x25, 0x7a, 0x13, 0xca,
- 0xd8, 0xb2, 0x54, 0xc7, 0xc5, 0x2e, 0x51, 0x3b, 0x27, 0x2e, 0x71, 0x18, 0x22, 0x2d, 0x2a, 0x45,
- 0x6c, 0x59, 0x07, 0x54, 0x5a, 0xa7, 0x42, 0x74, 0x0d, 0x4a, 0x14, 0xbc, 0x74, 0x3c, 0x50, 0xfb,
- 0x44, 0xef, 0xf5, 0x5d, 0x86, 0x3d, 0x69, 0xa5, 0x28, 0xa4, 0x2d, 0x26, 0x94, 0x35, 0xff, 0x65,
- 0x32, 0xe0, 0x42, 0x08, 0x32, 0x1a, 0x76, 0x31, 0x0b, 0xe4, 0xa2, 0xc2, 0xc6, 0x54, 0x66, 0x61,
- 0xb7, 0x2f, 0xc2, 0xc3, 0xc6, 0xe8, 0x3c, 0xe4, 0x84, 0xdb, 0x34, 0x73, 0x2b, 0x66, 0x68, 0x19,
- 0xb2, 0x96, 0x6d, 0x1e, 0x11, 0x86, 0xb2, 0x05, 0x85, 0x4f, 0xe4, 0x5f, 0xa5, 0x60, 0x69, 0x02,
- 0xe2, 0xa8, 0xdf, 0x3e, 0x76, 0xfa, 0xde, 0x6f, 0xd1, 0x31, 0xba, 0x43, 0xfd, 0x62, 0x8d, 0xd8,
- 0xa2, 0x2c, 0x54, 0xc3, 0x21, 0xe2, 0x25, 0xaf, 0xc5, 0x9e, 0x8b, 0xd0, 0x08, 0x6d, 0xb4, 0x07,
- 0x95, 0x01, 0x76, 0x5c, 0x95, 0x43, 0x86, 0x1a, 0x2a, 0x11, 0x93, 0x40, 0xb9, 0x83, 0x3d, 0x90,
- 0xa1, 0x07, 0x56, 0x38, 0x2a, 0x0d, 0x22, 0x52, 0xa4, 0xc0, 0x72, 0xe7, 0xe4, 0x39, 0x36, 0x5c,
- 0xdd, 0x20, 0xea, 0xc4, 0x9b, 0xbb, 0x30, 0xe1, 0xb4, 0x79, 0xa4, 0x6b, 0xc4, 0xe8, 0x7a, 0xaf,
- 0xec, 0x9c, 0x6f, 0xec, 0xbf, 0x52, 0x47, 0x56, 0xa0, 0x14, 0x05, 0x69, 0x54, 0x82, 0x94, 0x7b,
- 0x2c, 0x02, 0x90, 0x72, 0x8f, 0xd1, 0x3b, 0x90, 0xa1, 0x9b, 0x64, 0x9b, 0x2f, 0x4d, 0xa9, 0x6e,
- 0xc2, 0xae, 0x7d, 0x62, 0x11, 0x85, 0x69, 0xca, 0xb2, 0x9f, 0x0d, 0x3e, 0x70, 0x8f, 0x7b, 0x95,
- 0xaf, 0x43, 0x79, 0x0c, 0x99, 0x43, 0xef, 0x2f, 0x19, 0x7e, 0x7f, 0x72, 0x19, 0x8a, 0x11, 0x18,
- 0x96, 0xcf, 0xc3, 0xf2, 0x34, 0x54, 0x95, 0xfb, 0xbe, 0x3c, 0x82, 0x8e, 0xe8, 0x36, 0x14, 0x7c,
- 0x58, 0xe5, 0xd9, 0x38, 0x19, 0x2b, 0x4f, 0x59, 0xf1, 0x55, 0x69, 0x1a, 0xd2, 0x63, 0xcd, 0xce,
- 0x43, 0x8a, 0x2d, 0x3c, 0x8f, 0x2d, 0xab, 0x85, 0x9d, 0xbe, 0xfc, 0x29, 0x54, 0xe3, 0x20, 0x73,
- 0x6c, 0x1b, 0x19, 0xff, 0x18, 0x9e, 0x87, 0xdc, 0xa1, 0x69, 0x0f, 0xb1, 0xcb, 0x9c, 0x15, 0x15,
- 0x31, 0xa3, 0xc7, 0x93, 0xc3, 0x67, 0x9a, 0x89, 0xf9, 0x44, 0x56, 0xe1, 0x42, 0x2c, 0x6c, 0x52,
- 0x13, 0xdd, 0xd0, 0x08, 0x8f, 0x67, 0x51, 0xe1, 0x93, 0xc0, 0x11, 0x5f, 0x2c, 0x9f, 0xd0, 0x9f,
- 0x75, 0xd8, 0x5e, 0x99, 0x7f, 0x49, 0x11, 0x33, 0xf9, 0x77, 0x05, 0x28, 0x28, 0xc4, 0xb1, 0x28,
- 0x26, 0xa0, 0x3a, 0x48, 0xe4, 0xb8, 0x4b, 0x2c, 0xd7, 0x83, 0xc8, 0xe9, 0x84, 0x80, 0x6b, 0x37,
- 0x3d, 0x4d, 0x5a, 0x8d, 0x7d, 0x33, 0x74, 0x4b, 0x10, 0xae, 0x78, 0xee, 0x24, 0xcc, 0xc3, 0x8c,
- 0xeb, 0x8e, 0xc7, 0xb8, 0xd2, 0xb1, 0x05, 0x98, 0x5b, 0x8d, 0x51, 0xae, 0x5b, 0x82, 0x72, 0x65,
- 0x66, 0xfc, 0x58, 0x84, 0x73, 0x35, 0x22, 0x9c, 0x2b, 0x3b, 0x63, 0x9b, 0x31, 0xa4, 0xeb, 0x8e,
- 0x47, 0xba, 0x72, 0x33, 0x56, 0x3c, 0xc6, 0xba, 0x1e, 0x44, 0x59, 0x17, 0x67, 0x4c, 0x57, 0x63,
- 0xad, 0x63, 0x69, 0xd7, 0xf7, 0x43, 0xb4, 0xab, 0x10, 0xcb, 0x79, 0xb8, 0x93, 0x29, 0xbc, 0xab,
- 0x11, 0xe1, 0x5d, 0xd2, 0x8c, 0x18, 0xc4, 0x10, 0xaf, 0x0f, 0xc3, 0xc4, 0x0b, 0x62, 0xb9, 0x9b,
- 0x78, 0xdf, 0xd3, 0x98, 0xd7, 0x3d, 0x9f, 0x79, 0x2d, 0xc4, 0x52, 0x47, 0xb1, 0x87, 0x71, 0xea,
- 0xb5, 0x37, 0x41, 0xbd, 0x38, 0x55, 0x7a, 0x33, 0xd6, 0xc5, 0x0c, 0xee, 0xb5, 0x37, 0xc1, 0xbd,
- 0x8a, 0x33, 0x1c, 0xce, 0x20, 0x5f, 0x3f, 0x9f, 0x4e, 0xbe, 0xe2, 0xe9, 0x91, 0x58, 0xe6, 0x7c,
- 0xec, 0x4b, 0x8d, 0x61, 0x5f, 0x65, 0xe6, 0xfe, 0xbb, 0xb1, 0xee, 0xcf, 0x4e, 0xbf, 0xae, 0xd3,
- 0x0a, 0x39, 0x96, 0xf3, 0x14, 0x65, 0x88, 0x6d, 0x9b, 0xb6, 0x60, 0x52, 0x7c, 0x22, 0xbf, 0x45,
- 0x6b, 0x76, 0x90, 0xdf, 0xa7, 0x50, 0x35, 0x86, 0xe6, 0xa1, 0x9c, 0x96, 0xff, 0x90, 0x0c, 0x6c,
- 0x59, 0x99, 0x0b, 0xd7, 0x7b, 0x49, 0xd4, 0xfb, 0x10, 0x83, 0x4b, 0x45, 0x19, 0xdc, 0x2a, 0x2c,
- 0x50, 0x94, 0x1e, 0x23, 0x67, 0xd8, 0xf2, 0xc8, 0x19, 0xba, 0x01, 0x4b, 0xac, 0x0c, 0x73, 0x9e,
- 0x27, 0xa0, 0x39, 0xc3, 0x2a, 0x4c, 0x99, 0x3e, 0xe0, 0x87, 0x93, 0x63, 0xf4, 0x4d, 0x38, 0x17,
- 0xd2, 0xf5, 0xd1, 0x9f, 0xb3, 0x99, 0x8a, 0xaf, 0xbd, 0x29, 0xca, 0xc0, 0x9f, 0x92, 0x41, 0x84,
- 0x02, 0xe2, 0x37, 0x8d, 0xa3, 0x25, 0xff, 0x37, 0x1c, 0x2d, 0xf5, 0x5f, 0x73, 0xb4, 0x70, 0x31,
- 0x4b, 0x47, 0x8b, 0xd9, 0x3f, 0x93, 0xc1, 0x2b, 0xf1, 0x19, 0x57, 0xd7, 0xd4, 0x88, 0x28, 0x2f,
- 0x6c, 0x8c, 0x2a, 0x90, 0x1e, 0x98, 0x3d, 0x51, 0x44, 0xe8, 0x90, 0x6a, 0xf9, 0x18, 0x2c, 0x09,
- 0x88, 0xf5, 0x2b, 0x53, 0x96, 0x05, 0x58, 0x54, 0xa6, 0x0a, 0xa4, 0x9f, 0x12, 0x8e, 0x98, 0x8b,
- 0x0a, 0x1d, 0x52, 0x3d, 0x76, 0xc6, 0x18, 0x0e, 0x2e, 0x2a, 0x7c, 0x82, 0xee, 0x82, 0xc4, 0x1a,
- 0x0c, 0xaa, 0x69, 0x39, 0x02, 0xdc, 0x2e, 0x86, 0xf7, 0xca, 0xfb, 0x08, 0x6b, 0xfb, 0x54, 0x67,
- 0xcf, 0x72, 0x94, 0x82, 0x25, 0x46, 0xa1, 0xa2, 0x2b, 0x45, 0xb8, 0xdf, 0x25, 0x90, 0xe8, 0xea,
- 0x1d, 0x0b, 0x77, 0x09, 0x43, 0x2a, 0x49, 0x09, 0x04, 0xf2, 0x13, 0x40, 0x93, 0x78, 0x8b, 0x5a,
- 0x90, 0x23, 0x47, 0xc4, 0x70, 0xe9, 0x5b, 0xa3, 0xe1, 0x3e, 0x3f, 0x85, 0x58, 0x11, 0xc3, 0xad,
- 0x57, 0x69, 0x90, 0xff, 0xf1, 0xcd, 0x6a, 0x85, 0x6b, 0xbf, 0x6d, 0x0e, 0x75, 0x97, 0x0c, 0x2d,
- 0xf7, 0x44, 0x11, 0xf6, 0xf2, 0x2f, 0x53, 0x94, 0xe5, 0x44, 0xb0, 0x78, 0x6a, 0x6c, 0xbd, 0x13,
- 0x9f, 0x0a, 0x31, 0xdc, 0xf9, 0xe2, 0xbd, 0x02, 0xd0, 0xc3, 0x8e, 0xfa, 0x0c, 0x1b, 0x2e, 0xd1,
- 0x44, 0xd0, 0x43, 0x12, 0x54, 0x83, 0x02, 0x9d, 0x8d, 0x1c, 0xa2, 0x09, 0xb2, 0xed, 0xcf, 0x43,
- 0xfb, 0xcc, 0x7f, 0xbb, 0x7d, 0x46, 0xa3, 0x5c, 0x18, 0x8f, 0xf2, 0xaf, 0x53, 0x41, 0x96, 0x04,
- 0x84, 0xf0, 0xff, 0x2f, 0x0e, 0xbf, 0x61, 0xb7, 0xc4, 0x68, 0x51, 0x44, 0x07, 0xb0, 0xe4, 0x67,
- 0xa9, 0x3a, 0x62, 0xd9, 0xeb, 0x9d, 0xbb, 0x79, 0xd3, 0xbc, 0x72, 0x14, 0x15, 0x3b, 0xe8, 0xc7,
- 0xf0, 0xfa, 0x18, 0x02, 0xf9, 0xae, 0x53, 0x73, 0x02, 0xd1, 0x6b, 0x51, 0x20, 0xf2, 0x3c, 0x07,
- 0xb1, 0x4a, 0x7f, 0xcb, 0xdc, 0xd8, 0xa2, 0x17, 0x8f, 0x70, 0x89, 0x9f, 0xfa, 0xf6, 0xaf, 0x42,
- 0xd1, 0x26, 0x2e, 0xbd, 0x0b, 0x47, 0xae, 0x76, 0x8b, 0x5c, 0x28, 0x2e, 0x8c, 0xfb, 0xf0, 0xda,
- 0xd4, 0x52, 0x8f, 0xbe, 0x07, 0x52, 0xc0, 0x12, 0x92, 0x31, 0xb7, 0x24, 0x9f, 0xf9, 0x07, 0xba,
- 0xf2, 0x1f, 0x93, 0x81, 0xcb, 0xe8, 0x5d, 0xa2, 0x09, 0x39, 0x9b, 0x38, 0xa3, 0x01, 0x67, 0xf7,
- 0xa5, 0x8d, 0x9b, 0xf3, 0x91, 0x04, 0x2a, 0x1d, 0x0d, 0x5c, 0x45, 0x18, 0xcb, 0x4f, 0x20, 0xc7,
- 0x25, 0x68, 0x01, 0xf2, 0x8f, 0x76, 0xb7, 0x77, 0xf7, 0x3e, 0xde, 0xad, 0x24, 0x10, 0x40, 0x6e,
- 0xb3, 0xd1, 0x68, 0xee, 0xb7, 0x2b, 0x49, 0x24, 0x41, 0x76, 0xb3, 0xbe, 0xa7, 0xb4, 0x2b, 0x29,
- 0x2a, 0x56, 0x9a, 0x0f, 0x9b, 0x8d, 0x76, 0x25, 0x8d, 0x96, 0xa0, 0xc8, 0xc7, 0xea, 0x83, 0x3d,
- 0xe5, 0x87, 0x9b, 0xed, 0x4a, 0x26, 0x24, 0x3a, 0x68, 0xee, 0xde, 0x6f, 0x2a, 0x95, 0xac, 0xfc,
- 0x2e, 0xbd, 0x3e, 0xc4, 0xd0, 0x8a, 0xe0, 0xa2, 0x90, 0x0c, 0x5d, 0x14, 0xe4, 0xdf, 0xa6, 0xa0,
- 0x16, 0xcf, 0x15, 0xd0, 0xc3, 0xb1, 0x8d, 0x6f, 0x9c, 0x81, 0x68, 0x8c, 0xed, 0x1e, 0x5d, 0x83,
- 0x92, 0x4d, 0x0e, 0x89, 0xdb, 0xed, 0x73, 0xee, 0xc2, 0x0b, 0x5b, 0x51, 0x29, 0x0a, 0x29, 0x33,
- 0x72, 0xb8, 0xda, 0x67, 0xa4, 0xeb, 0xaa, 0xfc, 0xce, 0xc2, 0x0f, 0x9d, 0x44, 0xd5, 0xa8, 0xf4,
- 0x80, 0x0b, 0xe5, 0x4f, 0xcf, 0x14, 0x4b, 0x09, 0xb2, 0x4a, 0xb3, 0xad, 0xfc, 0xa4, 0x92, 0x46,
- 0x08, 0x4a, 0x6c, 0xa8, 0x1e, 0xec, 0x6e, 0xee, 0x1f, 0xb4, 0xf6, 0x68, 0x2c, 0xcf, 0x41, 0xd9,
- 0x8b, 0xa5, 0x27, 0xcc, 0xca, 0xff, 0x4e, 0x42, 0x79, 0x2c, 0x41, 0xd0, 0x06, 0x64, 0x39, 0xff,
- 0x8d, 0x6b, 0x30, 0xb3, 0xfc, 0x16, 0xd9, 0xc4, 0x55, 0xd1, 0xfb, 0x50, 0x20, 0xe2, 0x4e, 0x3e,
- 0x2d, 0x11, 0x79, 0x2f, 0xc1, 0xbb, 0xb5, 0x0b, 0x53, 0xdf, 0x02, 0x7d, 0x00, 0x92, 0x9f, 0xe9,
- 0xe2, 0xbe, 0xf4, 0xc6, 0xa4, 0xb9, 0x8f, 0x11, 0xc2, 0x3e, 0xb0, 0x41, 0xf7, 0x02, 0x12, 0x95,
- 0x99, 0x64, 0xdd, 0xc2, 0x9c, 0x2b, 0x08, 0x63, 0x4f, 0x5f, 0x6e, 0xc0, 0x42, 0x68, 0x3f, 0xe8,
- 0x22, 0x48, 0x43, 0x7c, 0x2c, 0x7a, 0x3d, 0xfc, 0xb6, 0x5e, 0x18, 0xe2, 0x63, 0xde, 0xe6, 0x79,
- 0x1d, 0xf2, 0xf4, 0x61, 0x0f, 0x73, 0xb4, 0x49, 0x2b, 0xb9, 0x21, 0x3e, 0xfe, 0x08, 0x3b, 0xf2,
- 0x27, 0x50, 0x8a, 0xf6, 0x39, 0xe8, 0x49, 0xb4, 0xcd, 0x91, 0xa1, 0x31, 0x1f, 0x59, 0x85, 0x4f,
- 0xd0, 0x6d, 0xc8, 0x1e, 0x99, 0x1c, 0xac, 0xa6, 0xa7, 0xec, 0x63, 0xd3, 0x25, 0xa1, 0x3e, 0x09,
- 0xd7, 0x96, 0x9f, 0x43, 0x96, 0x81, 0x0f, 0x05, 0x12, 0xd6, 0xb1, 0x10, 0x04, 0x92, 0x8e, 0xd1,
- 0x27, 0x00, 0xd8, 0x75, 0x6d, 0xbd, 0x33, 0x0a, 0x1c, 0xaf, 0x4e, 0x07, 0xaf, 0x4d, 0x4f, 0xaf,
- 0x7e, 0x49, 0xa0, 0xd8, 0x72, 0x60, 0x1a, 0x42, 0xb2, 0x90, 0x43, 0x79, 0x17, 0x4a, 0x51, 0x5b,
- 0x8f, 0xf3, 0x24, 0xa7, 0x70, 0x9e, 0x54, 0x98, 0xf3, 0xf8, 0x8c, 0x29, 0xcd, 0xbb, 0x53, 0x6c,
- 0x22, 0xbf, 0x48, 0x42, 0xa1, 0x7d, 0x2c, 0x8e, 0x75, 0x4c, 0x63, 0x24, 0x30, 0x4d, 0x85, 0xdb,
- 0x00, 0xbc, 0xd3, 0x92, 0xf6, 0xfb, 0x37, 0x1f, 0xfa, 0x89, 0x9b, 0x99, 0xf7, 0xb6, 0xe7, 0x35,
- 0xb2, 0x04, 0x58, 0xbd, 0x07, 0x92, 0x7f, 0xaa, 0x28, 0x13, 0xc7, 0x9a, 0x66, 0x13, 0xc7, 0x11,
- 0x7b, 0xf3, 0xa6, 0xac, 0xcf, 0x66, 0x3e, 0x13, 0x8d, 0x86, 0xb4, 0xc2, 0x27, 0xb2, 0x06, 0xe5,
- 0xb1, 0xb2, 0x85, 0xde, 0x83, 0xbc, 0x35, 0xea, 0xa8, 0x5e, 0x78, 0xc6, 0x92, 0xc7, 0x23, 0x79,
- 0xa3, 0xce, 0x40, 0xef, 0x6e, 0x93, 0x13, 0x6f, 0x31, 0xd6, 0xa8, 0xb3, 0xcd, 0xa3, 0xc8, 0x7f,
- 0x25, 0x15, 0xfe, 0x95, 0x23, 0x28, 0x78, 0x87, 0x02, 0xfd, 0x20, 0x9c, 0x27, 0x5e, 0xf7, 0x35,
- 0xb6, 0x94, 0x0a, 0xf7, 0xa1, 0x34, 0xb9, 0x01, 0x4b, 0x8e, 0xde, 0x33, 0x88, 0xa6, 0x06, 0x77,
- 0x01, 0xf6, 0x6b, 0x05, 0xa5, 0xcc, 0x1f, 0xec, 0x78, 0x17, 0x01, 0xf9, 0x5f, 0x49, 0x28, 0x78,
- 0x09, 0x8b, 0xde, 0x0d, 0x9d, 0xbb, 0xd2, 0x94, 0xa6, 0x84, 0xa7, 0x18, 0xb4, 0xca, 0xa2, 0x6b,
- 0x4d, 0x9d, 0x7d, 0xad, 0x71, 0x3d, 0x4f, 0xaf, 0xf9, 0x9c, 0x39, 0x73, 0xf3, 0xf9, 0x6d, 0x40,
- 0xae, 0xe9, 0xe2, 0x81, 0x7a, 0x64, 0xba, 0xba, 0xd1, 0x53, 0x79, 0xb0, 0x39, 0xa3, 0xaa, 0xb0,
- 0x27, 0x8f, 0xd9, 0x83, 0x7d, 0x16, 0xf7, 0x5f, 0x24, 0xa1, 0xe0, 0xd7, 0xc6, 0xb3, 0x76, 0xbe,
- 0xce, 0x43, 0x4e, 0xc0, 0x3f, 0x6f, 0x7d, 0x89, 0x99, 0xdf, 0x84, 0xcd, 0x84, 0x9a, 0xb0, 0x35,
- 0x28, 0x0c, 0x89, 0x8b, 0x19, 0x41, 0xe0, 0xd7, 0x31, 0x7f, 0x7e, 0xe3, 0x1e, 0x2c, 0x84, 0x9a,
- 0x90, 0x34, 0xf3, 0x76, 0x9b, 0x1f, 0x57, 0x12, 0xb5, 0xfc, 0x8b, 0x2f, 0xaf, 0xa4, 0x77, 0xc9,
- 0x33, 0x7a, 0x66, 0x95, 0x66, 0xa3, 0xd5, 0x6c, 0x6c, 0x57, 0x92, 0xb5, 0x85, 0x17, 0x5f, 0x5e,
- 0xc9, 0x2b, 0x84, 0x35, 0x44, 0x6e, 0xb4, 0x60, 0x31, 0xfc, 0x56, 0xa2, 0x15, 0x04, 0x41, 0xe9,
- 0xfe, 0xa3, 0xfd, 0x9d, 0xad, 0xc6, 0x66, 0xbb, 0xa9, 0x3e, 0xde, 0x6b, 0x37, 0x2b, 0x49, 0xf4,
- 0x3a, 0x9c, 0xdb, 0xd9, 0xfa, 0xa8, 0xd5, 0x56, 0x1b, 0x3b, 0x5b, 0xcd, 0xdd, 0xb6, 0xba, 0xd9,
- 0x6e, 0x6f, 0x36, 0xb6, 0x2b, 0xa9, 0x8d, 0xdf, 0x4b, 0x50, 0xde, 0xac, 0x37, 0xb6, 0x68, 0xf5,
- 0xd3, 0xbb, 0x98, 0xdd, 0x95, 0x1b, 0x90, 0x61, 0xb7, 0xe1, 0x53, 0xbf, 0x3e, 0xd6, 0x4e, 0x6f,
- 0x95, 0xa1, 0x07, 0x90, 0x65, 0x17, 0x65, 0x74, 0xfa, 0xe7, 0xc8, 0xda, 0x8c, 0xde, 0x19, 0x5d,
- 0x0c, 0x4b, 0x8f, 0x53, 0xbf, 0x4f, 0xd6, 0x4e, 0x6f, 0xa5, 0x21, 0x05, 0xa4, 0x80, 0xc2, 0xcf,
- 0xfe, 0x5e, 0x57, 0x9b, 0x03, 0x6c, 0xd0, 0x0e, 0xe4, 0xbd, 0xcb, 0xd1, 0xac, 0x2f, 0x88, 0xb5,
- 0x99, 0xbd, 0x2e, 0x1a, 0x2e, 0x7e, 0x89, 0x3d, 0xfd, 0x73, 0x68, 0x6d, 0x46, 0xe3, 0x0e, 0x6d,
- 0x41, 0x4e, 0xf0, 0xd2, 0x19, 0x5f, 0x05, 0x6b, 0xb3, 0x7a, 0x57, 0x34, 0x68, 0x41, 0x77, 0x60,
- 0xf6, 0x47, 0xde, 0xda, 0x1c, 0x3d, 0x49, 0xf4, 0x08, 0x20, 0x74, 0x65, 0x9d, 0xe3, 0xeb, 0x6d,
- 0x6d, 0x9e, 0x5e, 0x23, 0xda, 0x83, 0x82, 0x7f, 0x35, 0x99, 0xf9, 0x2d, 0xb5, 0x36, 0xbb, 0xe9,
- 0x87, 0x9e, 0x40, 0x31, 0xca, 0xc9, 0xe7, 0xfb, 0x42, 0x5a, 0x9b, 0xb3, 0x9b, 0x47, 0xfd, 0x47,
- 0x09, 0xfa, 0x7c, 0x5f, 0x4c, 0x6b, 0x73, 0x36, 0xf7, 0xd0, 0x67, 0xb0, 0x34, 0x49, 0xa0, 0xe7,
- 0xff, 0x80, 0x5a, 0x3b, 0x43, 0xbb, 0x0f, 0x0d, 0x01, 0x4d, 0x21, 0xde, 0x67, 0xf8, 0x9e, 0x5a,
- 0x3b, 0x4b, 0xf7, 0xaf, 0xfe, 0xf0, 0xab, 0x97, 0x2b, 0xc9, 0xaf, 0x5f, 0xae, 0x24, 0xff, 0xfe,
- 0x72, 0x25, 0xf9, 0xc5, 0xab, 0x95, 0xc4, 0xd7, 0xaf, 0x56, 0x12, 0x7f, 0x7d, 0xb5, 0x92, 0xf8,
- 0xe9, 0x3b, 0x3d, 0xdd, 0xed, 0x8f, 0x3a, 0x6b, 0x5d, 0x73, 0xb8, 0x3e, 0xc0, 0xcf, 0x4f, 0x06,
- 0x44, 0xeb, 0x11, 0x3b, 0x34, 0xbc, 0xd9, 0x35, 0x6d, 0x12, 0xfa, 0x07, 0x49, 0x27, 0xc7, 0x2a,
- 0xcb, 0xad, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xa7, 0xb1, 0x6f, 0x9a, 0x61, 0x22, 0x00, 0x00,
+ // 2774 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xcd, 0x77, 0x23, 0xc5,
+ 0x11, 0xd7, 0xf7, 0x47, 0xd9, 0x92, 0xe5, 0xde, 0x65, 0x11, 0xc3, 0x62, 0x2f, 0xc3, 0x83, 0x2c,
+ 0x1b, 0xb0, 0xc1, 0x3c, 0x36, 0xf0, 0x20, 0x01, 0x4b, 0x68, 0x91, 0x59, 0x63, 0x3b, 0x6d, 0xed,
+ 0x92, 0x2f, 0x76, 0x68, 0xcd, 0xb4, 0xa5, 0x61, 0xa5, 0x99, 0x61, 0x66, 0x64, 0x6c, 0x8e, 0xf9,
+ 0xb8, 0x90, 0x43, 0x38, 0xe6, 0xc2, 0xff, 0x91, 0x53, 0x2e, 0xb9, 0xf0, 0x5e, 0x2e, 0x1c, 0x73,
+ 0x22, 0x79, 0xec, 0x2d, 0xb7, 0x9c, 0x72, 0xca, 0x4b, 0x5e, 0x7f, 0xcc, 0x97, 0xa4, 0xb1, 0xe4,
+ 0x90, 0x5b, 0x6e, 0xdd, 0x35, 0x55, 0xa5, 0xe9, 0x9a, 0xee, 0x5f, 0xfd, 0xaa, 0x5a, 0xf0, 0xa4,
+ 0x4f, 0x2d, 0x83, 0xba, 0x63, 0xd3, 0xf2, 0xb7, 0x49, 0x5f, 0x37, 0xb7, 0xfd, 0x73, 0x87, 0x7a,
+ 0x5b, 0x8e, 0x6b, 0xfb, 0x36, 0x5a, 0x8b, 0x1e, 0x6e, 0xb1, 0x87, 0xca, 0x53, 0x31, 0x6d, 0xdd,
+ 0x3d, 0x77, 0x7c, 0x7b, 0xdb, 0x71, 0x6d, 0xfb, 0x44, 0xe8, 0x2b, 0xd7, 0x63, 0x8f, 0xb9, 0x9f,
+ 0xb8, 0xb7, 0xc4, 0x53, 0x69, 0xfc, 0x90, 0x9e, 0x07, 0x4f, 0x9f, 0x9a, 0xb1, 0x75, 0x88, 0x4b,
+ 0xc6, 0xc1, 0xe3, 0xcd, 0x81, 0x6d, 0x0f, 0x46, 0x74, 0x9b, 0xcf, 0xfa, 0x93, 0x93, 0x6d, 0xdf,
+ 0x1c, 0x53, 0xcf, 0x27, 0x63, 0x47, 0x2a, 0x5c, 0x1d, 0xd8, 0x03, 0x9b, 0x0f, 0xb7, 0xd9, 0x48,
+ 0x48, 0xd5, 0x2f, 0x2b, 0x50, 0xc6, 0xf4, 0x93, 0x09, 0xf5, 0x7c, 0xb4, 0x03, 0x05, 0xaa, 0x0f,
+ 0xed, 0x66, 0xf6, 0x46, 0xf6, 0xe6, 0xca, 0xce, 0xf5, 0xad, 0xa9, 0xc5, 0x6d, 0x49, 0xbd, 0x8e,
+ 0x3e, 0xb4, 0xbb, 0x19, 0xcc, 0x75, 0xd1, 0xab, 0x50, 0x3c, 0x19, 0x4d, 0xbc, 0x61, 0x33, 0xc7,
+ 0x8d, 0x9e, 0x4a, 0x33, 0xba, 0xc3, 0x94, 0xba, 0x19, 0x2c, 0xb4, 0xd9, 0x4f, 0x99, 0xd6, 0x89,
+ 0xdd, 0xcc, 0x5f, 0xfc, 0x53, 0x7b, 0xd6, 0x09, 0xff, 0x29, 0xa6, 0x8b, 0x5a, 0x00, 0xa6, 0x65,
+ 0xfa, 0x9a, 0x3e, 0x24, 0xa6, 0xd5, 0x2c, 0x70, 0xcb, 0xa7, 0xd3, 0x2d, 0x4d, 0xbf, 0xcd, 0x14,
+ 0xbb, 0x19, 0x5c, 0x35, 0x83, 0x09, 0x7b, 0xdd, 0x4f, 0x26, 0xd4, 0x3d, 0x6f, 0x16, 0x2f, 0x7e,
+ 0xdd, 0x1f, 0x33, 0x25, 0xf6, 0xba, 0x5c, 0x1b, 0x75, 0x60, 0xa5, 0x4f, 0x07, 0xa6, 0xa5, 0xf5,
+ 0x47, 0xb6, 0xfe, 0xb0, 0x59, 0xe2, 0xc6, 0x6a, 0x9a, 0x71, 0x8b, 0xa9, 0xb6, 0x98, 0x66, 0x37,
+ 0x83, 0xa1, 0x1f, 0xce, 0xd0, 0x9b, 0x50, 0xd1, 0x87, 0x54, 0x7f, 0xa8, 0xf9, 0x67, 0xcd, 0x32,
+ 0xf7, 0xb1, 0x99, 0xe6, 0xa3, 0xcd, 0xf4, 0x7a, 0x67, 0xdd, 0x0c, 0x2e, 0xeb, 0x62, 0xc8, 0xd6,
+ 0x6f, 0xd0, 0x91, 0x79, 0x4a, 0x5d, 0x66, 0x5f, 0xb9, 0x78, 0xfd, 0xef, 0x08, 0x4d, 0xee, 0xa1,
+ 0x6a, 0x04, 0x13, 0xf4, 0x16, 0x54, 0xa9, 0x65, 0xc8, 0x65, 0x54, 0xb9, 0x8b, 0x1b, 0xa9, 0xdf,
+ 0xd9, 0x32, 0x82, 0x45, 0x54, 0xa8, 0x1c, 0xa3, 0xd7, 0xa0, 0xa4, 0xdb, 0xe3, 0xb1, 0xe9, 0x37,
+ 0x81, 0x5b, 0x6f, 0xa4, 0x2e, 0x80, 0x6b, 0x75, 0x33, 0x58, 0xea, 0xa3, 0x03, 0xa8, 0x8f, 0x4c,
+ 0xcf, 0xd7, 0x3c, 0x8b, 0x38, 0xde, 0xd0, 0xf6, 0xbd, 0xe6, 0x0a, 0xf7, 0xf0, 0x6c, 0x9a, 0x87,
+ 0x7d, 0xd3, 0xf3, 0x8f, 0x03, 0xe5, 0x6e, 0x06, 0xd7, 0x46, 0x71, 0x01, 0xf3, 0x67, 0x9f, 0x9c,
+ 0x50, 0x37, 0x74, 0xd8, 0x5c, 0xbd, 0xd8, 0xdf, 0x21, 0xd3, 0x0e, 0xec, 0x99, 0x3f, 0x3b, 0x2e,
+ 0x40, 0x3f, 0x87, 0x2b, 0x23, 0x9b, 0x18, 0xa1, 0x3b, 0x4d, 0x1f, 0x4e, 0xac, 0x87, 0xcd, 0x1a,
+ 0x77, 0xfa, 0x7c, 0xea, 0x4b, 0xda, 0xc4, 0x08, 0x5c, 0xb4, 0x99, 0x41, 0x37, 0x83, 0xd7, 0x47,
+ 0xd3, 0x42, 0xf4, 0x00, 0xae, 0x12, 0xc7, 0x19, 0x9d, 0x4f, 0x7b, 0xaf, 0x73, 0xef, 0xb7, 0xd2,
+ 0xbc, 0xef, 0x32, 0x9b, 0x69, 0xf7, 0x88, 0xcc, 0x48, 0x59, 0x30, 0x1c, 0x97, 0x3a, 0xae, 0xad,
+ 0x53, 0xcf, 0xd3, 0xfc, 0x33, 0xaf, 0xb9, 0x76, 0x71, 0x30, 0x8e, 0x42, 0xed, 0xde, 0x19, 0x0f,
+ 0xae, 0x13, 0x17, 0xb4, 0xca, 0x50, 0x3c, 0x25, 0xa3, 0x09, 0x55, 0xbf, 0x07, 0x2b, 0xb1, 0x63,
+ 0x8f, 0x9a, 0x50, 0x1e, 0x53, 0xcf, 0x23, 0x03, 0xca, 0x51, 0xa2, 0x8a, 0x83, 0xa9, 0x5a, 0x87,
+ 0xd5, 0xf8, 0x51, 0x57, 0xc7, 0xa1, 0x21, 0x3b, 0xc4, 0xcc, 0xf0, 0x94, 0xba, 0x9e, 0x69, 0x5b,
+ 0x81, 0xa1, 0x9c, 0xa2, 0x67, 0xa0, 0xc6, 0xb7, 0xa3, 0x16, 0x3c, 0x67, 0x48, 0x52, 0xc0, 0xab,
+ 0x5c, 0x78, 0x5f, 0x2a, 0x6d, 0xc2, 0x8a, 0xb3, 0xe3, 0x84, 0x2a, 0x79, 0xae, 0x02, 0xce, 0x8e,
+ 0x23, 0x15, 0xd4, 0x3f, 0xe7, 0xa0, 0x31, 0x7d, 0xf4, 0xd1, 0x6b, 0x50, 0x60, 0x28, 0x28, 0x01,
+ 0x4d, 0xd9, 0x12, 0x10, 0xb9, 0x15, 0x40, 0xe4, 0x56, 0x2f, 0x80, 0xc8, 0x56, 0xe5, 0xab, 0x6f,
+ 0x36, 0x33, 0x5f, 0xfc, 0x75, 0x33, 0x8b, 0xb9, 0x05, 0x7a, 0x82, 0x9d, 0x54, 0x62, 0x5a, 0x9a,
+ 0x69, 0xf0, 0xf7, 0xa9, 0xb2, 0x63, 0x48, 0x4c, 0x6b, 0xcf, 0x40, 0x77, 0xa1, 0xa1, 0xdb, 0x96,
+ 0x47, 0x2d, 0x6f, 0xe2, 0x69, 0x02, 0x82, 0x25, 0x8c, 0xcd, 0x9e, 0xa4, 0x76, 0xa0, 0x78, 0xc4,
+ 0xf5, 0xf0, 0x9a, 0x9e, 0x14, 0xa0, 0x3b, 0x00, 0xa7, 0x64, 0x64, 0x1a, 0xc4, 0xb7, 0x5d, 0xaf,
+ 0x59, 0xb8, 0x91, 0x9f, 0xeb, 0xe6, 0x7e, 0xa0, 0x72, 0xcf, 0x31, 0x88, 0x4f, 0x5b, 0x05, 0xf6,
+ 0xb6, 0x38, 0x66, 0x89, 0x9e, 0x83, 0x35, 0xe2, 0x38, 0x9a, 0xe7, 0x13, 0x9f, 0x6a, 0xfd, 0x73,
+ 0x9f, 0x7a, 0x1c, 0xe1, 0x56, 0x71, 0x8d, 0x38, 0xce, 0x31, 0x93, 0xb6, 0x98, 0x10, 0x3d, 0x0b,
+ 0x75, 0x06, 0x86, 0x26, 0x19, 0x69, 0x43, 0x6a, 0x0e, 0x86, 0x3e, 0xc7, 0xb2, 0x3c, 0xae, 0x49,
+ 0x69, 0x97, 0x0b, 0x55, 0x23, 0xfc, 0x98, 0x1c, 0x08, 0x11, 0x82, 0x82, 0x41, 0x7c, 0xc2, 0x03,
+ 0xb9, 0x8a, 0xf9, 0x98, 0xc9, 0x1c, 0xe2, 0x0f, 0x65, 0x78, 0xf8, 0x18, 0x5d, 0x83, 0x92, 0x74,
+ 0x9b, 0xe7, 0x6e, 0xe5, 0x0c, 0x5d, 0x85, 0xa2, 0xe3, 0xda, 0xa7, 0x94, 0xa3, 0x76, 0x05, 0x8b,
+ 0x89, 0xfa, 0xeb, 0x1c, 0xac, 0xcf, 0x40, 0x26, 0xf3, 0x3b, 0x24, 0xde, 0x30, 0xf8, 0x2d, 0x36,
+ 0x46, 0xb7, 0x99, 0x5f, 0x62, 0x50, 0x57, 0xa6, 0x99, 0x66, 0x3c, 0x44, 0x22, 0x85, 0x76, 0xf9,
+ 0x73, 0x19, 0x1a, 0xa9, 0x8d, 0x0e, 0xa1, 0x31, 0x22, 0x9e, 0xaf, 0x09, 0x08, 0xd2, 0x62, 0x29,
+ 0x67, 0x16, 0x78, 0xf7, 0x49, 0x00, 0x5a, 0x6c, 0xc3, 0x4a, 0x47, 0xf5, 0x51, 0x42, 0x8a, 0x30,
+ 0x5c, 0xed, 0x9f, 0x7f, 0x46, 0x2c, 0xdf, 0xb4, 0xa8, 0x36, 0xf3, 0xe5, 0x9e, 0x98, 0x71, 0xda,
+ 0x39, 0x35, 0x0d, 0x6a, 0xe9, 0xc1, 0x27, 0xbb, 0x12, 0x1a, 0x87, 0x9f, 0xd4, 0x53, 0x31, 0xd4,
+ 0x93, 0xa0, 0x8f, 0xea, 0x90, 0xf3, 0xcf, 0x64, 0x00, 0x72, 0xfe, 0x19, 0x7a, 0x09, 0x0a, 0x6c,
+ 0x91, 0x7c, 0xf1, 0xf5, 0x39, 0xd9, 0x52, 0xda, 0xf5, 0xce, 0x1d, 0x8a, 0xb9, 0xa6, 0xaa, 0x86,
+ 0xa7, 0x21, 0x4c, 0x04, 0xd3, 0x5e, 0xd5, 0xe7, 0x61, 0x6d, 0x0a, 0xe9, 0x63, 0xdf, 0x2f, 0x1b,
+ 0xff, 0x7e, 0xea, 0x1a, 0xd4, 0x12, 0xb0, 0xae, 0x5e, 0x83, 0xab, 0xf3, 0x50, 0x5a, 0x1d, 0x86,
+ 0xf2, 0x04, 0xda, 0xa2, 0x57, 0xa1, 0x12, 0xc2, 0xb4, 0x38, 0x8d, 0xb3, 0xb1, 0x0a, 0x94, 0x71,
+ 0xa8, 0xca, 0x8e, 0x21, 0xdb, 0xd6, 0x7c, 0x3f, 0xe4, 0xf8, 0x8b, 0x97, 0x89, 0xe3, 0x74, 0x89,
+ 0x37, 0x54, 0x3f, 0x82, 0x66, 0x1a, 0x04, 0x4f, 0x2d, 0xa3, 0x10, 0x6e, 0xc3, 0x6b, 0x50, 0x3a,
+ 0xb1, 0xdd, 0x31, 0xf1, 0xb9, 0xb3, 0x1a, 0x96, 0x33, 0xb6, 0x3d, 0x05, 0x1c, 0xe7, 0xb9, 0x58,
+ 0x4c, 0x54, 0x0d, 0x9e, 0x48, 0x85, 0x61, 0x66, 0x62, 0x5a, 0x06, 0x15, 0xf1, 0xac, 0x61, 0x31,
+ 0x89, 0x1c, 0x89, 0x97, 0x15, 0x13, 0xf6, 0xb3, 0x1e, 0x5f, 0x2b, 0xf7, 0x5f, 0xc5, 0x72, 0xa6,
+ 0xde, 0x0c, 0x83, 0x95, 0x40, 0x63, 0xd4, 0x80, 0x3c, 0x43, 0xf0, 0xec, 0x8d, 0xfc, 0xcd, 0x55,
+ 0xcc, 0x86, 0xea, 0x3f, 0x2a, 0x50, 0xc1, 0xd4, 0x73, 0x18, 0x7a, 0xa0, 0x16, 0x54, 0xe9, 0x99,
+ 0x4e, 0x1d, 0x3f, 0x00, 0xd3, 0xf9, 0x54, 0x44, 0x68, 0x77, 0x02, 0x4d, 0xc6, 0x03, 0x42, 0x33,
+ 0xf4, 0x8a, 0xa4, 0x7a, 0xe9, 0xac, 0x4d, 0x9a, 0xc7, 0xb9, 0xde, 0xed, 0x80, 0xeb, 0xe5, 0x53,
+ 0x53, 0xbf, 0xb0, 0x9a, 0x22, 0x7b, 0xaf, 0x48, 0xb2, 0x57, 0x58, 0xf0, 0x63, 0x09, 0xb6, 0xd7,
+ 0x4e, 0xb0, 0xbd, 0xe2, 0x82, 0x65, 0xa6, 0xd0, 0xbd, 0xdb, 0x01, 0xdd, 0x2b, 0x2d, 0x78, 0xe3,
+ 0x29, 0xbe, 0x77, 0x27, 0xc9, 0xf7, 0x04, 0x57, 0x7b, 0x26, 0xd5, 0x3a, 0x95, 0xf0, 0xfd, 0x30,
+ 0x46, 0xf8, 0x2a, 0xa9, 0x6c, 0x4b, 0x38, 0x99, 0xc3, 0xf8, 0xda, 0x09, 0xc6, 0x57, 0x5d, 0x10,
+ 0x83, 0x14, 0xca, 0xf7, 0x76, 0x9c, 0xf2, 0x41, 0x2a, 0x6b, 0x94, 0xdf, 0x7b, 0x1e, 0xe7, 0x7b,
+ 0x3d, 0xe4, 0x7c, 0x2b, 0xa9, 0xa4, 0x55, 0xae, 0x61, 0x9a, 0xf4, 0x1d, 0xce, 0x90, 0x3e, 0x41,
+ 0xd2, 0x9e, 0x4b, 0x75, 0xb1, 0x80, 0xf5, 0x1d, 0xce, 0xb0, 0xbe, 0xda, 0x02, 0x87, 0x0b, 0x68,
+ 0xdf, 0x2f, 0xe6, 0xd3, 0xbe, 0x74, 0x62, 0x26, 0x5f, 0x73, 0x39, 0xde, 0xa7, 0xa5, 0xf0, 0x3e,
+ 0xc1, 0xce, 0xbe, 0x9f, 0xea, 0x7e, 0x69, 0xe2, 0x77, 0x38, 0x43, 0xfc, 0x1a, 0x0b, 0xe2, 0xb1,
+ 0x2c, 0xf3, 0x7b, 0x9e, 0x25, 0xe7, 0x29, 0x10, 0x61, 0x00, 0x47, 0x5d, 0xd7, 0x76, 0x25, 0x89,
+ 0x13, 0x13, 0xf5, 0x26, 0xa3, 0x0b, 0x11, 0x60, 0x5c, 0xc0, 0x12, 0x79, 0x22, 0x89, 0x81, 0x84,
+ 0xfa, 0x87, 0x6c, 0x64, 0xcb, 0x33, 0x6c, 0x9c, 0x6a, 0x54, 0x25, 0xd5, 0x88, 0x91, 0xc7, 0x5c,
+ 0x92, 0x3c, 0x6e, 0xc2, 0x0a, 0x4b, 0x10, 0x53, 0xbc, 0x90, 0x38, 0x01, 0x2f, 0x44, 0xb7, 0x60,
+ 0x9d, 0x33, 0x00, 0x41, 0x31, 0x65, 0x56, 0x28, 0xf0, 0xe4, 0xb6, 0xc6, 0x1e, 0x88, 0xdd, 0x2e,
+ 0xd2, 0xc3, 0x8b, 0x70, 0x25, 0xa6, 0x1b, 0x26, 0x1e, 0x41, 0xa4, 0x1a, 0xa1, 0xf6, 0xae, 0xcc,
+ 0x40, 0x7f, 0xca, 0x46, 0x11, 0x8a, 0x38, 0xe7, 0x3c, 0x7a, 0x98, 0xfd, 0xdf, 0xd0, 0xc3, 0xdc,
+ 0x7f, 0x4d, 0x0f, 0xe3, 0x79, 0x34, 0x9f, 0xcc, 0xa3, 0xff, 0xcc, 0x46, 0x9f, 0x24, 0x24, 0x7b,
+ 0xba, 0x6d, 0x50, 0x99, 0xd9, 0xf8, 0x98, 0xa5, 0xa4, 0x91, 0x3d, 0x90, 0xf9, 0x8b, 0x0d, 0x99,
+ 0x56, 0x08, 0xea, 0x55, 0x89, 0xd9, 0x61, 0x52, 0x2c, 0xf2, 0x00, 0xcb, 0xa4, 0xd8, 0x80, 0xfc,
+ 0x43, 0x2a, 0x20, 0x78, 0x15, 0xb3, 0x21, 0xd3, 0xe3, 0x7b, 0x8c, 0x03, 0xeb, 0x2a, 0x16, 0x13,
+ 0xf4, 0x1a, 0x54, 0x79, 0xaf, 0x44, 0xb3, 0x1d, 0x4f, 0xa2, 0xe5, 0x93, 0xf1, 0xb5, 0x8a, 0x96,
+ 0xc8, 0xd6, 0x11, 0xd3, 0x39, 0x74, 0x3c, 0x5c, 0x71, 0xe4, 0x28, 0x96, 0xef, 0xab, 0x09, 0xda,
+ 0x79, 0x1d, 0xaa, 0xec, 0xed, 0x3d, 0x87, 0xe8, 0x94, 0x43, 0x5f, 0x15, 0x47, 0x02, 0xf5, 0x01,
+ 0xa0, 0x59, 0x00, 0x47, 0x5d, 0x28, 0xd1, 0x53, 0x6a, 0xf9, 0x22, 0xff, 0xae, 0xec, 0x5c, 0x9b,
+ 0xc3, 0xe9, 0xa8, 0xe5, 0xb7, 0x9a, 0x2c, 0xc8, 0x7f, 0xff, 0x66, 0xb3, 0x21, 0xb4, 0x5f, 0xb0,
+ 0xc7, 0xa6, 0x4f, 0xc7, 0x8e, 0x7f, 0x8e, 0xa5, 0xbd, 0xfa, 0xab, 0x1c, 0x23, 0x58, 0x09, 0x70,
+ 0x9f, 0x1b, 0xdb, 0x60, 0xc7, 0xe7, 0x62, 0xe4, 0x7a, 0xb9, 0x78, 0x6f, 0x00, 0x0c, 0x88, 0xa7,
+ 0x7d, 0x4a, 0x2c, 0x9f, 0x1a, 0x32, 0xe8, 0x31, 0x09, 0x52, 0xa0, 0xc2, 0x66, 0x13, 0x8f, 0x1a,
+ 0x92, 0xe7, 0x87, 0xf3, 0xd8, 0x3a, 0xcb, 0xdf, 0x6d, 0x9d, 0xc9, 0x28, 0x57, 0xa6, 0xa3, 0xfc,
+ 0x9b, 0x5c, 0x74, 0x4a, 0x22, 0x2e, 0xfa, 0xff, 0x17, 0x87, 0xdf, 0xf2, 0x02, 0x35, 0x99, 0x65,
+ 0xd1, 0x31, 0xac, 0x87, 0xa7, 0x54, 0x9b, 0xf0, 0xd3, 0x1b, 0xec, 0xbb, 0x65, 0x8f, 0x79, 0xe3,
+ 0x34, 0x29, 0xf6, 0xd0, 0x4f, 0xe0, 0xf1, 0x29, 0x04, 0x0a, 0x5d, 0xe7, 0x96, 0x04, 0xa2, 0xc7,
+ 0x92, 0x40, 0x14, 0x78, 0x8e, 0x62, 0x95, 0xff, 0x8e, 0x67, 0x63, 0x8f, 0xd5, 0x3c, 0x71, 0xce,
+ 0x30, 0xf7, 0xeb, 0x3f, 0x03, 0x35, 0x97, 0xfa, 0xac, 0x0c, 0x4f, 0x54, 0x95, 0xab, 0x42, 0x28,
+ 0x6b, 0xd5, 0x23, 0x78, 0x6c, 0x2e, 0x77, 0x40, 0x3f, 0x80, 0x6a, 0x44, 0x3b, 0xb2, 0x29, 0x05,
+ 0x5a, 0x58, 0x74, 0x44, 0xba, 0xea, 0x1f, 0xb3, 0x91, 0xcb, 0x64, 0x19, 0xd3, 0x81, 0x92, 0x4b,
+ 0xbd, 0xc9, 0x48, 0x14, 0x16, 0xf5, 0x9d, 0x17, 0x97, 0x63, 0x1d, 0x4c, 0x3a, 0x19, 0xf9, 0x58,
+ 0x1a, 0xab, 0x0f, 0xa0, 0x24, 0x24, 0x68, 0x05, 0xca, 0xf7, 0x0e, 0xee, 0x1e, 0x1c, 0x7e, 0x70,
+ 0xd0, 0xc8, 0x20, 0x80, 0xd2, 0x6e, 0xbb, 0xdd, 0x39, 0xea, 0x35, 0xb2, 0xa8, 0x0a, 0xc5, 0xdd,
+ 0xd6, 0x21, 0xee, 0x35, 0x72, 0x4c, 0x8c, 0x3b, 0xef, 0x75, 0xda, 0xbd, 0x46, 0x1e, 0xad, 0x43,
+ 0x4d, 0x8c, 0xb5, 0x3b, 0x87, 0xf8, 0xfd, 0xdd, 0x5e, 0xa3, 0x10, 0x13, 0x1d, 0x77, 0x0e, 0xde,
+ 0xe9, 0xe0, 0x46, 0x51, 0x7d, 0x99, 0x55, 0x2e, 0x29, 0x3c, 0x25, 0xaa, 0x51, 0xb2, 0xb1, 0x1a,
+ 0x45, 0xfd, 0x7d, 0x0e, 0x94, 0x74, 0xf2, 0x81, 0xde, 0x9b, 0x5a, 0xf8, 0xce, 0x25, 0x98, 0xcb,
+ 0xd4, 0xea, 0xd1, 0xb3, 0x50, 0x77, 0xe9, 0x09, 0xf5, 0xf5, 0xa1, 0x20, 0x43, 0x22, 0xb1, 0xd5,
+ 0x70, 0x4d, 0x4a, 0xb9, 0x91, 0x27, 0xd4, 0x3e, 0xa6, 0xba, 0xaf, 0x89, 0x72, 0x49, 0x6c, 0xba,
+ 0x2a, 0x53, 0x63, 0xd2, 0x63, 0x21, 0x54, 0x3f, 0xba, 0x54, 0x2c, 0xab, 0x50, 0xc4, 0x9d, 0x1e,
+ 0xfe, 0x69, 0x23, 0x8f, 0x10, 0xd4, 0xf9, 0x50, 0x3b, 0x3e, 0xd8, 0x3d, 0x3a, 0xee, 0x1e, 0xb2,
+ 0x58, 0x5e, 0x81, 0xb5, 0x20, 0x96, 0x81, 0xb0, 0xa8, 0x92, 0x68, 0x37, 0x2c, 0xa8, 0xd3, 0xd0,
+ 0x6d, 0xa8, 0x48, 0xa6, 0x13, 0x9c, 0x35, 0x65, 0xb6, 0x53, 0xf1, 0xbe, 0xd4, 0xc0, 0xa1, 0xae,
+ 0xfa, 0xef, 0x2c, 0xac, 0x4d, 0x9d, 0x41, 0xb4, 0x03, 0x45, 0xc1, 0xd9, 0xd3, 0xda, 0xf1, 0x1c,
+ 0x42, 0xe4, 0x81, 0x15, 0xaa, 0xe8, 0x4d, 0xa8, 0x50, 0xd9, 0x71, 0x98, 0x77, 0xd6, 0xc5, 0xef,
+ 0x07, 0x3d, 0x09, 0x69, 0x1a, 0x5a, 0xa0, 0xb7, 0xa0, 0x1a, 0x82, 0x89, 0xac, 0xf1, 0x9e, 0x9e,
+ 0x35, 0x0f, 0x61, 0x48, 0xda, 0x47, 0x36, 0xe8, 0xf5, 0x88, 0xa7, 0x15, 0x66, 0x2b, 0x05, 0x69,
+ 0x2e, 0x14, 0xa4, 0x71, 0xa0, 0xaf, 0xb6, 0x61, 0x25, 0xb6, 0x1e, 0xf4, 0x24, 0x54, 0xc7, 0xe4,
+ 0x4c, 0x76, 0xb2, 0x44, 0x2f, 0xa2, 0x32, 0x26, 0x67, 0xa2, 0x89, 0xf5, 0x38, 0x94, 0xd9, 0xc3,
+ 0x01, 0x11, 0x41, 0xce, 0xe3, 0xd2, 0x98, 0x9c, 0xbd, 0x4b, 0x3c, 0xf5, 0x43, 0xa8, 0x27, 0xbb,
+ 0x38, 0x6c, 0xb3, 0xbb, 0xf6, 0xc4, 0x32, 0xb8, 0x8f, 0x22, 0x16, 0x13, 0xf4, 0x2a, 0x14, 0x4f,
+ 0x6d, 0x81, 0x87, 0xf3, 0x51, 0xe1, 0xbe, 0xed, 0xd3, 0x58, 0x17, 0x48, 0x68, 0xab, 0x9f, 0x41,
+ 0x91, 0xe3, 0x1b, 0xc3, 0x2a, 0xde, 0x8f, 0x91, 0x1c, 0x95, 0x8d, 0xd1, 0x87, 0x00, 0xc4, 0xf7,
+ 0x5d, 0xb3, 0x3f, 0x89, 0x1c, 0x6f, 0xce, 0xc7, 0xc7, 0xdd, 0x40, 0xaf, 0x75, 0x5d, 0x02, 0xe5,
+ 0xd5, 0xc8, 0x34, 0x06, 0x96, 0x31, 0x87, 0xea, 0x01, 0xd4, 0x93, 0xb6, 0x01, 0xad, 0xca, 0xce,
+ 0xa1, 0x55, 0xb9, 0x38, 0xad, 0x0a, 0x49, 0x59, 0x5e, 0xf4, 0xde, 0xf8, 0x44, 0xfd, 0x3c, 0x0b,
+ 0x95, 0xde, 0x99, 0x3c, 0x39, 0x29, 0x6d, 0x9f, 0xc8, 0x34, 0x17, 0x6f, 0x72, 0x88, 0x3e, 0x52,
+ 0x3e, 0xec, 0x4e, 0xbd, 0x1d, 0x62, 0x43, 0x61, 0xd9, 0x0a, 0x35, 0x68, 0xd3, 0x49, 0x3c, 0x7c,
+ 0x03, 0xaa, 0xe1, 0xae, 0x62, 0x64, 0x9f, 0x18, 0x86, 0x4b, 0x3d, 0x4f, 0xae, 0x2d, 0x98, 0xf2,
+ 0x2e, 0xa2, 0xfd, 0xa9, 0x6c, 0xa3, 0xe4, 0xb1, 0x98, 0xa8, 0x06, 0xac, 0x4d, 0x65, 0x46, 0xf4,
+ 0x06, 0x94, 0x9d, 0x49, 0x5f, 0x0b, 0xc2, 0x33, 0x75, 0x78, 0x02, 0x1e, 0x39, 0xe9, 0x8f, 0x4c,
+ 0xfd, 0x2e, 0x3d, 0x0f, 0x5e, 0xc6, 0x99, 0xf4, 0xef, 0x8a, 0x28, 0x8a, 0x5f, 0xc9, 0xc5, 0x7f,
+ 0xe5, 0x14, 0x2a, 0xc1, 0xa6, 0x40, 0x3f, 0x8a, 0x9f, 0x93, 0xec, 0xec, 0x31, 0x4f, 0x66, 0x6b,
+ 0xe9, 0x3e, 0x76, 0x4c, 0x6e, 0xc1, 0xba, 0x67, 0x0e, 0x2c, 0x6a, 0x68, 0x51, 0xb9, 0xc1, 0x7f,
+ 0xad, 0x82, 0xd7, 0xc4, 0x83, 0xfd, 0xa0, 0xd6, 0x50, 0xff, 0x95, 0x85, 0x4a, 0x70, 0x60, 0xd1,
+ 0xcb, 0xb1, 0x7d, 0x57, 0x9f, 0xd3, 0x48, 0x09, 0x14, 0xa3, 0x46, 0x60, 0xf2, 0x5d, 0x73, 0x97,
+ 0x7f, 0xd7, 0xb4, 0x8e, 0x6e, 0xd0, 0x5a, 0x2f, 0x5c, 0xba, 0xb5, 0xfe, 0x02, 0x20, 0xdf, 0xf6,
+ 0xc9, 0x48, 0x3b, 0xb5, 0x7d, 0xd3, 0x1a, 0x68, 0x22, 0xd8, 0x82, 0xb4, 0x35, 0xf8, 0x93, 0xfb,
+ 0xfc, 0xc1, 0x11, 0x8f, 0xfb, 0x2f, 0xb3, 0x50, 0x09, 0xd3, 0xef, 0x65, 0xfb, 0x7a, 0xd7, 0xa0,
+ 0x24, 0x33, 0x8c, 0x68, 0xec, 0xc9, 0x59, 0xd8, 0x62, 0x2e, 0xc4, 0x5a, 0xcc, 0x0a, 0x83, 0x6e,
+ 0x9f, 0x70, 0x0e, 0x22, 0x2a, 0xbe, 0x70, 0x7e, 0xeb, 0x75, 0x58, 0x89, 0xb5, 0x58, 0xd9, 0xc9,
+ 0x3b, 0xe8, 0x7c, 0xd0, 0xc8, 0x28, 0xe5, 0xcf, 0xbf, 0xbc, 0x91, 0x3f, 0xa0, 0x9f, 0xb2, 0x3d,
+ 0x8b, 0x3b, 0xed, 0x6e, 0xa7, 0x7d, 0xb7, 0x91, 0x55, 0x56, 0x3e, 0xff, 0xf2, 0x46, 0x19, 0x53,
+ 0xde, 0xc4, 0xb9, 0xd5, 0x85, 0xd5, 0xf8, 0x57, 0x49, 0x26, 0x29, 0x04, 0xf5, 0x77, 0xee, 0x1d,
+ 0xed, 0xef, 0xb5, 0x77, 0x7b, 0x1d, 0xed, 0xfe, 0x61, 0xaf, 0xd3, 0xc8, 0xa2, 0xc7, 0xe1, 0xca,
+ 0xfe, 0xde, 0xbb, 0xdd, 0x9e, 0xd6, 0xde, 0xdf, 0xeb, 0x1c, 0xf4, 0xb4, 0xdd, 0x5e, 0x6f, 0xb7,
+ 0x7d, 0xb7, 0x91, 0xdb, 0xf9, 0x1d, 0xc0, 0xda, 0x6e, 0xab, 0xbd, 0xc7, 0x12, 0xac, 0xa9, 0x13,
+ 0x5e, 0x8e, 0xb7, 0xa1, 0xc0, 0x0b, 0xee, 0x0b, 0xef, 0x6a, 0x95, 0x8b, 0xdb, 0x7b, 0xe8, 0x0e,
+ 0x14, 0x79, 0x2d, 0x8e, 0x2e, 0xbe, 0xbc, 0x55, 0x16, 0xf4, 0xfb, 0xd8, 0xcb, 0xf0, 0xe3, 0x71,
+ 0xe1, 0x6d, 0xae, 0x72, 0x71, 0xfb, 0x0f, 0x61, 0xa8, 0x46, 0x55, 0xc2, 0xe2, 0xdb, 0x4d, 0x65,
+ 0x09, 0xb0, 0x41, 0xfb, 0x50, 0x0e, 0xea, 0xaf, 0x45, 0xf7, 0xad, 0xca, 0xc2, 0xfe, 0x1c, 0x0b,
+ 0x97, 0xa8, 0x93, 0x2f, 0xbe, 0x3c, 0x56, 0x16, 0x34, 0x1b, 0xd1, 0x1e, 0x94, 0x24, 0xf5, 0x5d,
+ 0x70, 0x87, 0xaa, 0x2c, 0xea, 0xb7, 0xb1, 0xa0, 0x45, 0x0d, 0x88, 0xc5, 0x57, 0xe2, 0xca, 0x12,
+ 0x7d, 0x54, 0x74, 0x0f, 0x20, 0x56, 0x15, 0x2f, 0x71, 0xd7, 0xad, 0x2c, 0xd3, 0x1f, 0x45, 0x87,
+ 0x50, 0x09, 0xab, 0x9f, 0x85, 0x37, 0xcf, 0xca, 0xe2, 0x46, 0x25, 0x7a, 0x00, 0xb5, 0x24, 0xed,
+ 0x5f, 0xee, 0x3e, 0x59, 0x59, 0xb2, 0x03, 0xc9, 0xfc, 0x27, 0x6b, 0x80, 0xe5, 0xee, 0x97, 0x95,
+ 0x25, 0x1b, 0x92, 0xe8, 0x63, 0x58, 0x9f, 0xe5, 0xe8, 0xcb, 0x5f, 0x37, 0x2b, 0x97, 0x68, 0x51,
+ 0xa2, 0x31, 0xa0, 0x39, 0xdc, 0xfe, 0x12, 0xb7, 0xcf, 0xca, 0x65, 0x3a, 0x96, 0x2c, 0x74, 0x49,
+ 0xc2, 0xbc, 0xdc, 0x6d, 0xb4, 0xb2, 0x64, 0xef, 0xb2, 0xf5, 0xde, 0x57, 0xdf, 0x6e, 0x64, 0xbf,
+ 0xfe, 0x76, 0x23, 0xfb, 0xb7, 0x6f, 0x37, 0xb2, 0x5f, 0x3c, 0xda, 0xc8, 0x7c, 0xfd, 0x68, 0x23,
+ 0xf3, 0x97, 0x47, 0x1b, 0x99, 0x9f, 0xbd, 0x34, 0x30, 0xfd, 0xe1, 0xa4, 0xbf, 0xa5, 0xdb, 0xe3,
+ 0xed, 0x11, 0xf9, 0xec, 0x7c, 0x44, 0x8d, 0x01, 0x75, 0x63, 0xc3, 0x17, 0x75, 0xdb, 0xa5, 0xb1,
+ 0xff, 0xf3, 0xf4, 0x4b, 0x3c, 0x73, 0xbd, 0xf2, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x86, 0xa8,
+ 0x11, 0x6f, 0xef, 0x23, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -3253,6 +3383,7 @@ type ABCIApplicationClient interface {
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)
+ PreprocessTxs(ctx context.Context, in *RequestPreprocessTxs, opts ...grpc.CallOption) (*ResponsePreprocessTxs, error)
}
type aBCIApplicationClient struct {
@@ -3389,6 +3520,15 @@ func (c *aBCIApplicationClient) ApplySnapshotChunk(ctx context.Context, in *Requ
return out, nil
}
+func (c *aBCIApplicationClient) PreprocessTxs(ctx context.Context, in *RequestPreprocessTxs, opts ...grpc.CallOption) (*ResponsePreprocessTxs, error) {
+ out := new(ResponsePreprocessTxs)
+ err := c.cc.Invoke(ctx, "/tendermint.abci.ABCIApplication/PreprocessTxs", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
// ABCIApplicationServer is the server API for ABCIApplication service.
type ABCIApplicationServer interface {
Echo(context.Context, *RequestEcho) (*ResponseEcho, error)
@@ -3405,6 +3545,7 @@ type ABCIApplicationServer interface {
OfferSnapshot(context.Context, *RequestOfferSnapshot) (*ResponseOfferSnapshot, error)
LoadSnapshotChunk(context.Context, *RequestLoadSnapshotChunk) (*ResponseLoadSnapshotChunk, error)
ApplySnapshotChunk(context.Context, *RequestApplySnapshotChunk) (*ResponseApplySnapshotChunk, error)
+ PreprocessTxs(context.Context, *RequestPreprocessTxs) (*ResponsePreprocessTxs, error)
}
// UnimplementedABCIApplicationServer can be embedded to have forward compatible implementations.
@@ -3453,6 +3594,9 @@ func (*UnimplementedABCIApplicationServer) LoadSnapshotChunk(ctx context.Context
func (*UnimplementedABCIApplicationServer) ApplySnapshotChunk(ctx context.Context, req *RequestApplySnapshotChunk) (*ResponseApplySnapshotChunk, error) {
return nil, status.Errorf(codes.Unimplemented, "method ApplySnapshotChunk not implemented")
}
+func (*UnimplementedABCIApplicationServer) PreprocessTxs(ctx context.Context, req *RequestPreprocessTxs) (*ResponsePreprocessTxs, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method PreprocessTxs not implemented")
+}
func RegisterABCIApplicationServer(s *grpc.Server, srv ABCIApplicationServer) {
s.RegisterService(&_ABCIApplication_serviceDesc, srv)
@@ -3710,6 +3854,24 @@ func _ABCIApplication_ApplySnapshotChunk_Handler(srv interface{}, ctx context.Co
return interceptor(ctx, in, info, handler)
}
+func _ABCIApplication_PreprocessTxs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(RequestPreprocessTxs)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(ABCIApplicationServer).PreprocessTxs(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/tendermint.abci.ABCIApplication/PreprocessTxs",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(ABCIApplicationServer).PreprocessTxs(ctx, req.(*RequestPreprocessTxs))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
ServiceName: "tendermint.abci.ABCIApplication",
HandlerType: (*ABCIApplicationServer)(nil),
@@ -3770,6 +3932,10 @@ var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
MethodName: "ApplySnapshotChunk",
Handler: _ABCIApplication_ApplySnapshotChunk_Handler,
},
+ {
+ MethodName: "PreprocessTxs",
+ Handler: _ABCIApplication_PreprocessTxs_Handler,
+ },
},
Streams: []grpc.StreamDesc{},
Metadata: "tendermint/abci/types.proto",
@@ -4101,6 +4267,27 @@ func (m *Request_ApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, err
}
return len(dAtA) - i, nil
}
+func (m *Request_PreprocessTxs) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *Request_PreprocessTxs) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.PreprocessTxs != nil {
+ {
+ size, err := m.PreprocessTxs.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintTypes(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x7a
+ }
+ return len(dAtA) - i, nil
+}
func (m *RequestEcho) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -4259,12 +4446,12 @@ func (m *RequestInitChain) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x12
}
- n16, err16 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
- if err16 != nil {
- return 0, err16
+ n17, err17 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
+ if err17 != nil {
+ return 0, err17
}
- i -= n16
- i = encodeVarintTypes(dAtA, i, uint64(n16))
+ i -= n17
+ i = encodeVarintTypes(dAtA, i, uint64(n17))
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil
@@ -4647,6 +4834,38 @@ func (m *RequestApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, erro
return len(dAtA) - i, nil
}
+func (m *RequestPreprocessTxs) 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 *RequestPreprocessTxs) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *RequestPreprocessTxs) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ 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] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *Response) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -4994,6 +5213,29 @@ func (m *Response_ApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, er
}
return len(dAtA) - i, nil
}
+func (m *Response_PreprocessTxs) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *Response_PreprocessTxs) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.PreprocessTxs != nil {
+ {
+ size, err := m.PreprocessTxs.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintTypes(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1
+ i--
+ dAtA[i] = 0x82
+ }
+ return len(dAtA) - i, nil
+}
func (m *ResponseException) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -5692,20 +5934,20 @@ func (m *ResponseApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, err
}
}
if len(m.RefetchChunks) > 0 {
- dAtA39 := make([]byte, len(m.RefetchChunks)*10)
- var j38 int
+ dAtA41 := make([]byte, len(m.RefetchChunks)*10)
+ var j40 int
for _, num := range m.RefetchChunks {
for num >= 1<<7 {
- dAtA39[j38] = uint8(uint64(num)&0x7f | 0x80)
+ dAtA41[j40] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
- j38++
+ j40++
}
- dAtA39[j38] = uint8(num)
- j38++
+ dAtA41[j40] = uint8(num)
+ j40++
}
- i -= j38
- copy(dAtA[i:], dAtA39[:j38])
- i = encodeVarintTypes(dAtA, i, uint64(j38))
+ i -= j40
+ copy(dAtA[i:], dAtA41[:j40])
+ i = encodeVarintTypes(dAtA, i, uint64(j40))
i--
dAtA[i] = 0x12
}
@@ -5717,6 +5959,50 @@ func (m *ResponseApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, err
return len(dAtA) - i, nil
}
+func (m *ResponsePreprocessTxs) 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 *ResponsePreprocessTxs) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *ResponsePreprocessTxs) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.Messages != nil {
+ {
+ size, err := m.Messages.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintTypes(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ }
+ 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] = 0xa
+ }
+ }
+ return len(dAtA) - i, nil
+}
+
func (m *ConsensusParams) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -6145,12 +6431,12 @@ func (m *Evidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x28
}
- n47, err47 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
- if err47 != nil {
- return 0, err47
+ n50, err50 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):])
+ if err50 != nil {
+ return 0, err50
}
- i -= n47
- i = encodeVarintTypes(dAtA, i, uint64(n47))
+ i -= n50
+ i = encodeVarintTypes(dAtA, i, uint64(n50))
i--
dAtA[i] = 0x22
if m.Height != 0 {
@@ -6419,6 +6705,18 @@ func (m *Request_ApplySnapshotChunk) Size() (n int) {
}
return n
}
+func (m *Request_PreprocessTxs) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.PreprocessTxs != nil {
+ l = m.PreprocessTxs.Size()
+ n += 1 + l + sovTypes(uint64(l))
+ }
+ return n
+}
func (m *RequestEcho) Size() (n int) {
if m == nil {
return 0
@@ -6652,6 +6950,21 @@ func (m *RequestApplySnapshotChunk) Size() (n int) {
return n
}
+func (m *RequestPreprocessTxs) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Txs) > 0 {
+ for _, b := range m.Txs {
+ l = len(b)
+ n += 1 + l + sovTypes(uint64(l))
+ }
+ }
+ return n
+}
+
func (m *Response) Size() (n int) {
if m == nil {
return 0
@@ -6844,7 +7157,19 @@ func (m *Response_ApplySnapshotChunk) Size() (n int) {
}
return n
}
-func (m *ResponseException) Size() (n int) {
+func (m *Response_PreprocessTxs) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.PreprocessTxs != nil {
+ l = m.PreprocessTxs.Size()
+ n += 2 + l + sovTypes(uint64(l))
+ }
+ return n
+}
+func (m *ResponseException) Size() (n int) {
if m == nil {
return 0
}
@@ -7172,6 +7497,25 @@ func (m *ResponseApplySnapshotChunk) Size() (n int) {
return n
}
+func (m *ResponsePreprocessTxs) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if len(m.Txs) > 0 {
+ for _, b := range m.Txs {
+ l = len(b)
+ n += 1 + l + sovTypes(uint64(l))
+ }
+ }
+ if m.Messages != nil {
+ l = m.Messages.Size()
+ n += 1 + l + sovTypes(uint64(l))
+ }
+ return n
+}
+
func (m *ConsensusParams) Size() (n int) {
if m == nil {
return 0
@@ -7907,6 +8251,41 @@ func (m *Request) Unmarshal(dAtA []byte) error {
}
m.Value = &Request_ApplySnapshotChunk{v}
iNdEx = postIndex
+ case 15:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PreprocessTxs", 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 := &RequestPreprocessTxs{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Value = &Request_PreprocessTxs{v}
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTypes(dAtA[iNdEx:])
@@ -9520,6 +9899,91 @@ func (m *RequestApplySnapshotChunk) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *RequestPreprocessTxs) 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: RequestPreprocessTxs: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: RequestPreprocessTxs: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Txs", 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.Txs = append(m.Txs, make([]byte, postIndex-iNdEx))
+ copy(m.Txs[len(m.Txs)-1], dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipTypes(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if skippy < 0 {
+ return ErrInvalidLengthTypes
+ }
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *Response) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -10074,6 +10538,41 @@ func (m *Response) Unmarshal(dAtA []byte) error {
}
m.Value = &Response_ApplySnapshotChunk{v}
iNdEx = postIndex
+ case 16:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field PreprocessTxs", 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 := &ResponsePreprocessTxs{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Value = &Response_PreprocessTxs{v}
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTypes(dAtA[iNdEx:])
@@ -12301,6 +12800,127 @@ func (m *ResponseApplySnapshotChunk) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *ResponsePreprocessTxs) 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: ResponsePreprocessTxs: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: ResponsePreprocessTxs: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Txs", 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.Txs = append(m.Txs, make([]byte, postIndex-iNdEx))
+ copy(m.Txs[len(m.Txs)-1], dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
+ case 2:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Messages", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return 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.Messages == nil {
+ m.Messages = &types1.Messages{}
+ }
+ if err := m.Messages.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 {
+ return ErrInvalidLengthTypes
+ }
+ if (iNdEx + skippy) < 0 {
+ return ErrInvalidLengthTypes
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func (m *ConsensusParams) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
diff --git a/blockchain/msgs_test.go b/blockchain/msgs_test.go
index da5de6155e..ccac62c65b 100644
--- a/blockchain/msgs_test.go
+++ b/blockchain/msgs_test.go
@@ -80,7 +80,7 @@ func TestBcStatusResponseMessageValidateBasic(t *testing.T) {
// nolint:lll // ignore line length in tests
func TestBlockchainMessageVectors(t *testing.T) {
- block := types.MakeBlock(int64(3), []types.Tx{types.Tx("Hello World")}, nil, nil, nil, nil)
+ block := types.MakeBlock(int64(3), []types.Tx{types.Tx("Hello World")}, nil, nil, types.Messages{}, nil)
block.Version.Block = 11 // overwrite updated protocol version
bpb, err := block.ToProto()
diff --git a/blockchain/v0/reactor_test.go b/blockchain/v0/reactor_test.go
index 05b5b2df45..7b7be044fd 100644
--- a/blockchain/v0/reactor_test.go
+++ b/blockchain/v0/reactor_test.go
@@ -289,7 +289,8 @@ func makeTxs(height int64) (txs []types.Tx) {
}
func makeBlock(height int64, state sm.State, lastCommit *types.Commit) *types.Block {
- block, _ := state.MakeBlock(height, makeTxs(height), nil, nil, nil, lastCommit, state.Validators.GetProposer().Address)
+ block, _ := state.MakeBlock(height, makeTxs(height), nil,
+ nil, types.Messages{}, lastCommit, state.Validators.GetProposer().Address)
return block
}
diff --git a/blockchain/v2/reactor_test.go b/blockchain/v2/reactor_test.go
index 14036020d0..a1ce2c1416 100644
--- a/blockchain/v2/reactor_test.go
+++ b/blockchain/v2/reactor_test.go
@@ -453,7 +453,8 @@ func makeTxs(height int64) (txs []types.Tx) {
}
func makeBlock(height int64, state sm.State, lastCommit *types.Commit) *types.Block {
- block, _ := state.MakeBlock(height, makeTxs(height), nil, nil, nil, lastCommit, state.Validators.GetProposer().Address)
+ block, _ := state.MakeBlock(height, makeTxs(height), nil,
+ nil, types.Messages{}, lastCommit, state.Validators.GetProposer().Address)
return block
}
diff --git a/consensus/mempool_test.go b/consensus/mempool_test.go
index 439552d598..9785a71ae4 100644
--- a/consensus/mempool_test.go
+++ b/consensus/mempool_test.go
@@ -256,3 +256,8 @@ func (app *CounterApplication) Commit() abci.ResponseCommit {
binary.BigEndian.PutUint64(hash, uint64(app.txCount))
return abci.ResponseCommit{Data: hash}
}
+
+func (app *CounterApplication) PreprocessTxs(
+ req abci.RequestPreprocessTxs) abci.ResponsePreprocessTxs {
+ return abci.ResponsePreprocessTxs{Txs: req.Txs}
+}
diff --git a/consensus/replay_test.go b/consensus/replay_test.go
index 7945dc60cf..db7a04f54b 100644
--- a/consensus/replay_test.go
+++ b/consensus/replay_test.go
@@ -995,7 +995,7 @@ func makeBlock(state sm.State, lastBlock *types.Block, lastBlockMeta *types.Bloc
[]types.Tx{},
nil,
nil,
- nil,
+ types.Messages{},
lastCommit,
state.Validators.GetProposer().Address,
)
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
index 24f1afec1b..c1f17aa941 100644
--- a/docs/.vuepress/config.js
+++ b/docs/.vuepress/config.js
@@ -41,13 +41,13 @@ module.exports = {
},
// TODO: remove once https://github.com/cosmos/vuepress-theme-cosmos/issues/91 is closed
{
- title: 'Version 0.32',
- path: '/v0.32',
+ title: "Version 0.32",
+ path: "/v0.32",
static: true
},
{
- title: 'Version 0.33',
- path: '/v0.33',
+ title: "Version 0.33",
+ path: "/v0.33",
static: true
},
]
@@ -71,7 +71,7 @@ module.exports = {
},
footer: {
question: {
- text: 'Chat with Tendermint developers in Discord or reach out on the Tendermint Forum to learn more.'
+ text: "Chat with Tendermint developers in Discord or reach out on the Tendermint Forum to learn more."
},
logo: '/logo-bw.svg',
textLink: {
@@ -105,7 +105,7 @@ module.exports = {
}
],
smallprint:
- 'The development of the Tendermint project is led primarily by Tendermint Inc., the for-profit entity which also maintains this website. Funding for this development comes primarily from the Interchain Foundation, a Swiss non-profit.',
+ "The development of the Tendermint project is led primarily by Tendermint Inc., the for-profit entity which also maintains this website. Funding for this development comes primarily from the Interchain Foundation, a Swiss non-profit.",
links: [
{
title: 'Documentation',
diff --git a/evidence/pool_test.go b/evidence/pool_test.go
index 8931f8b5ce..1eea24d764 100644
--- a/evidence/pool_test.go
+++ b/evidence/pool_test.go
@@ -172,7 +172,7 @@ func TestEvidencePoolUpdate(t *testing.T) {
require.NoError(t, err)
ev := types.NewMockDuplicateVoteEvidenceWithValidator(height, defaultEvidenceTime, val, evidenceChainID)
lastCommit := makeCommit(height, val.PrivKey.PubKey().Address())
- block := types.MakeBlock(height+1, []types.Tx{}, []types.Evidence{ev}, nil, nil, lastCommit)
+ block := types.MakeBlock(height+1, []types.Tx{}, []types.Evidence{ev}, nil, types.Messages{}, lastCommit)
// update state (partially)
state.LastBlockHeight = height + 1
state.LastBlockTime = defaultEvidenceTime.Add(22 * time.Minute)
@@ -406,7 +406,8 @@ func initializeBlockStore(db dbm.DB, state sm.State, valAddr []byte) *store.Bloc
for i := int64(1); i <= state.LastBlockHeight; i++ {
lastCommit := makeCommit(i-1, valAddr)
- block, _ := state.MakeBlock(i, []types.Tx{}, nil, nil, nil, lastCommit, state.Validators.GetProposer().Address)
+ block, _ := state.MakeBlock(i, []types.Tx{}, nil, nil,
+ types.Messages{}, lastCommit, state.Validators.GetProposer().Address)
block.Header.Time = defaultEvidenceTime.Add(time.Duration(i) * time.Minute)
block.Header.Version = tmversion.Consensus{Block: version.BlockProtocol, App: 1}
const parts = 1
diff --git a/evidence/verify_test.go b/evidence/verify_test.go
index 1731111012..f9f1cd99ed 100644
--- a/evidence/verify_test.go
+++ b/evidence/verify_test.go
@@ -108,7 +108,7 @@ func TestVerifyLightClientAttack_Lunatic(t *testing.T) {
pubKey, err := newPrivVal.GetPubKey()
require.NoError(t, err)
lastCommit := makeCommit(state.LastBlockHeight, pubKey.Address())
- block := types.MakeBlock(state.LastBlockHeight, []types.Tx{}, []types.Evidence{ev}, nil, nil, lastCommit)
+ block := types.MakeBlock(state.LastBlockHeight, []types.Tx{}, []types.Evidence{ev}, nil, types.Messages{}, lastCommit)
abciEv := pool.ABCIEvidence(block.Height, block.Evidence.Evidence)
expectedAbciEv := make([]abci.Evidence, len(commonVals.Validators))
@@ -212,7 +212,7 @@ func TestVerifyLightClientAttack_Equivocation(t *testing.T) {
pubKey, err := conflictingPrivVals[0].GetPubKey()
require.NoError(t, err)
lastCommit := makeCommit(state.LastBlockHeight, pubKey.Address())
- block := types.MakeBlock(state.LastBlockHeight, []types.Tx{}, []types.Evidence{ev}, nil, nil, lastCommit)
+ block := types.MakeBlock(state.LastBlockHeight, []types.Tx{}, []types.Evidence{ev}, nil, types.Messages{}, lastCommit)
abciEv := pool.ABCIEvidence(block.Height, block.Evidence.Evidence)
expectedAbciEv := make([]abci.Evidence, len(conflictingVals.Validators)-1)
@@ -309,12 +309,13 @@ func TestVerifyLightClientAttack_Amnesia(t *testing.T) {
pubKey, err := conflictingPrivVals[0].GetPubKey()
require.NoError(t, err)
lastCommit := makeCommit(state.LastBlockHeight, pubKey.Address())
- block := types.MakeBlock(state.LastBlockHeight, []types.Tx{}, []types.Evidence{ev}, nil, nil, lastCommit)
+ block := types.MakeBlock(state.LastBlockHeight, []types.Tx{}, []types.Evidence{ev}, nil, types.Messages{}, lastCommit)
abciEv := pool.ABCIEvidence(block.Height, block.Evidence.Evidence)
// as we are unable to find out which subset of validators in the commit were malicious, no information
// is sent to the application. We expect the array to be empty
- emptyEvidenceBlock := types.MakeBlock(state.LastBlockHeight, []types.Tx{}, []types.Evidence{}, nil, nil, lastCommit)
+ emptyEvidenceBlock := types.MakeBlock(state.LastBlockHeight, []types.Tx{},
+ []types.Evidence{}, nil, types.Messages{}, lastCommit)
expectedAbciEv := pool.ABCIEvidence(emptyEvidenceBlock.Height, emptyEvidenceBlock.Evidence.Evidence)
assert.Equal(t, expectedAbciEv, abciEv)
diff --git a/proto/tendermint/abci/types.proto b/proto/tendermint/abci/types.proto
index a0795569fd..277aa75521 100644
--- a/proto/tendermint/abci/types.proto
+++ b/proto/tendermint/abci/types.proto
@@ -35,6 +35,7 @@ message Request {
RequestOfferSnapshot offer_snapshot = 12;
RequestLoadSnapshotChunk load_snapshot_chunk = 13;
RequestApplySnapshotChunk apply_snapshot_chunk = 14;
+ RequestPreprocessTxs preprocess_txs = 15;
}
}
@@ -118,6 +119,10 @@ message RequestApplySnapshotChunk {
string sender = 3;
}
+message RequestPreprocessTxs {
+ repeated bytes txs = 1;
+}
+
//----------------------------------------
// Response types
@@ -138,6 +143,7 @@ message Response {
ResponseOfferSnapshot offer_snapshot = 13;
ResponseLoadSnapshotChunk load_snapshot_chunk = 14;
ResponseApplySnapshotChunk apply_snapshot_chunk = 15;
+ ResponsePreprocessTxs preprocess_txs = 16;
}
}
@@ -260,6 +266,11 @@ message ResponseApplySnapshotChunk {
}
}
+message ResponsePreprocessTxs {
+ repeated bytes txs = 1;
+ tendermint.types.Messages messages = 2;
+}
+
//----------------------------------------
// Misc.
@@ -387,4 +398,5 @@ service ABCIApplication {
rpc OfferSnapshot(RequestOfferSnapshot) returns (ResponseOfferSnapshot);
rpc LoadSnapshotChunk(RequestLoadSnapshotChunk) returns (ResponseLoadSnapshotChunk);
rpc ApplySnapshotChunk(RequestApplySnapshotChunk) returns (ResponseApplySnapshotChunk);
+ rpc PreprocessTxs(RequestPreprocessTxs) returns (ResponsePreprocessTxs);
}
diff --git a/proto/tendermint/types/types.proto b/proto/tendermint/types/types.proto
index fa0f87bc53..96fd42a177 100644
--- a/proto/tendermint/types/types.proto
+++ b/proto/tendermint/types/types.proto
@@ -87,9 +87,10 @@ message Data {
// NOTE: not all txs here are valid. We're just agreeing on the order first.
// This means that block.AppHash does not include these txs.
repeated bytes txs = 1;
+
IntermediateStateRoots intermediate_state_roots = 2 [(gogoproto.nullable) = false];
- EvidenceData evidence = 3 [(gogoproto.nullable) = false];
- Messages messages = 4 [(gogoproto.nullable) = false];
+ EvidenceData evidence = 3 [(gogoproto.nullable) = false];
+ Messages messages = 4 [(gogoproto.nullable) = false];
}
// DuplicateVoteEvidence contains evidence a validator signed two conflicting
@@ -126,7 +127,7 @@ message Messages {
message Message {
bytes namespace_id = 1;
- bytes data = 2;
+ bytes data = 2;
}
// DataAvailabilityHeader contains the row and column roots of the erasure
@@ -163,10 +164,10 @@ message Vote {
// Commit contains the evidence that a block was committed by a set of validators.
message Commit {
- int64 height = 1;
- int32 round = 2;
- BlockID block_id = 3 [(gogoproto.nullable) = false, (gogoproto.customname) = "BlockID"];
- repeated CommitSig signatures = 4 [(gogoproto.nullable) = false];
+ int64 height = 1;
+ int32 round = 2;
+ BlockID block_id = 3 [(gogoproto.nullable) = false, (gogoproto.customname) = "BlockID"];
+ repeated CommitSig signatures = 4 [(gogoproto.nullable) = false];
}
// CommitSig is a part of the Vote included in a Commit.
diff --git a/proxy/app_conn.go b/proxy/app_conn.go
index a686ce6712..67c7590c0d 100644
--- a/proxy/app_conn.go
+++ b/proxy/app_conn.go
@@ -20,6 +20,8 @@ type AppConnConsensus interface {
DeliverTxAsync(types.RequestDeliverTx) *abcicli.ReqRes
EndBlockSync(types.RequestEndBlock) (*types.ResponseEndBlock, error)
CommitSync() (*types.ResponseCommit, error)
+
+ PreprocessTxsSync(types.RequestPreprocessTxs) (*types.ResponsePreprocessTxs, error)
}
type AppConnMempool interface {
@@ -91,6 +93,10 @@ func (app *appConnConsensus) CommitSync() (*types.ResponseCommit, error) {
return app.appConn.CommitSync()
}
+func (app *appConnConsensus) PreprocessTxsSync(req types.RequestPreprocessTxs) (*types.ResponsePreprocessTxs, error) {
+ return app.appConn.PreprocessTxsSync(req)
+}
+
//------------------------------------------------
// Implements AppConnMempool (subset of abcicli.Client)
diff --git a/proxy/mocks/app_conn_consensus.go b/proxy/mocks/app_conn_consensus.go
index 9a14b6609e..bc293344b8 100644
--- a/proxy/mocks/app_conn_consensus.go
+++ b/proxy/mocks/app_conn_consensus.go
@@ -136,6 +136,29 @@ func (_m *AppConnConsensus) InitChainSync(_a0 types.RequestInitChain) (*types.Re
return r0, r1
}
+// PreprocessTxsSync provides a mock function with given fields: _a0
+func (_m *AppConnConsensus) PreprocessTxsSync(_a0 types.RequestPreprocessTxs) (*types.ResponsePreprocessTxs, error) {
+ ret := _m.Called(_a0)
+
+ var r0 *types.ResponsePreprocessTxs
+ if rf, ok := ret.Get(0).(func(types.RequestPreprocessTxs) *types.ResponsePreprocessTxs); ok {
+ r0 = rf(_a0)
+ } else {
+ if ret.Get(0) != nil {
+ r0 = ret.Get(0).(*types.ResponsePreprocessTxs)
+ }
+ }
+
+ var r1 error
+ if rf, ok := ret.Get(1).(func(types.RequestPreprocessTxs) error); ok {
+ r1 = rf(_a0)
+ } else {
+ r1 = ret.Error(1)
+ }
+
+ return r0, r1
+}
+
// SetResponseCallback provides a mock function with given fields: _a0
func (_m *AppConnConsensus) SetResponseCallback(_a0 abcicli.Callback) {
_m.Called(_a0)
diff --git a/scripts/protocgen.sh b/scripts/protocgen.sh
index 91dd47056c..16f0ec733d 100755
--- a/scripts/protocgen.sh
+++ b/scripts/protocgen.sh
@@ -4,7 +4,7 @@ set -eo pipefail
proto_dirs=$(find ./proto -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq)
for dir in $proto_dirs; do
- protoc \
+ buf protoc \
-I "proto" \
-I "third_party/proto" \
--gogofaster_out=\
diff --git a/state/execution.go b/state/execution.go
index 6d72288328..60a119acf3 100644
--- a/state/execution.go
+++ b/state/execution.go
@@ -112,6 +112,12 @@ func (blockExec *BlockExecutor) CreateProposalBlock(
// Tx -> Txs, Message
// https://github.com/lazyledger/lazyledger-core/issues/77
txs := blockExec.mempool.ReapMaxBytesMaxGas(maxDataBytes, maxGas)
+ l := len(txs)
+ bzs := make([][]byte, l)
+ for i := 0; i < l; i++ {
+ bzs[i] = txs[i]
+ }
+
// TODO(ismail):
// 1. get those intermediate state roots & messages either from the
// mempool or from the abci-app
@@ -119,7 +125,33 @@ func (blockExec *BlockExecutor) CreateProposalBlock(
// https://github.com/lazyledger/lazyledger-specs/blob/53e5f350838f1e0785ad670704bf91dac2f4f5a3/specs/block_proposer.md#deciding-on-a-block-size
// Here, we instead assume a fixed (max) square size instead.
// 2. feed them into MakeBlock below:
- return state.MakeBlock(height, txs, evidence, nil, nil, commit, proposerAddr)
+ processedBlockTxs, err := blockExec.proxyApp.PreprocessTxsSync(abci.RequestPreprocessTxs{Txs: bzs})
+ if err != nil {
+ // The App MUST ensure that only valid (and hence 'processable')
+ // Tx enter the mempool. Hence, at this point, we can't have any non-processable
+ // transaction causing an error. Also, the App can simply skip any Tx that could cause any
+ // kind of trouble.
+ // Either way, we can not recover in a meaningful way, unless we skip proposing
+ // this block, repair what caused the error and try again.
+ // Hence we panic on purpose for now.
+ panic(err)
+ }
+
+ ppt := processedBlockTxs.GetTxs()
+
+ pbmessages := processedBlockTxs.GetMessages()
+
+ lp := len(ppt)
+ processedTxs := make(types.Txs, lp)
+ if lp > 0 {
+ for i := 0; i < l; i++ {
+ processedTxs[i] = ppt[i]
+ }
+ }
+
+ messages := types.MessagesFromProto(pbmessages)
+
+ return state.MakeBlock(height, processedTxs, evidence, nil, messages, commit, proposerAddr)
}
// ValidateBlock validates the given block against the given state.
diff --git a/state/execution_test.go b/state/execution_test.go
index bf7bd7e20a..9af707d457 100644
--- a/state/execution_test.go
+++ b/state/execution_test.go
@@ -96,7 +96,8 @@ func TestBeginBlockValidators(t *testing.T) {
lastCommit := types.NewCommit(1, 0, prevBlockID, tc.lastCommitSigs)
// block for height 2
- block, _ := state.MakeBlock(2, makeTxs(2), nil, nil, nil, lastCommit, state.Validators.GetProposer().Address)
+ block, _ := state.MakeBlock(2, makeTxs(2), nil, nil,
+ types.Messages{}, lastCommit, state.Validators.GetProposer().Address)
_, err = sm.ExecCommitBlock(proxyApp.Consensus(), block, log.TestingLogger(), stateStore, 1)
require.Nil(t, err, tc.desc)
diff --git a/state/helpers_test.go b/state/helpers_test.go
index 2be5b9a4ec..4f8688122e 100644
--- a/state/helpers_test.go
+++ b/state/helpers_test.go
@@ -59,7 +59,7 @@ func makeAndApplyGoodBlock(state sm.State, height int64, lastCommit *types.Commi
makeTxs(height),
evidence,
nil,
- nil,
+ types.Messages{},
lastCommit,
proposerAddr,
)
@@ -145,7 +145,7 @@ func makeBlock(state sm.State, height int64) *types.Block {
makeTxs(state.LastBlockHeight),
nil,
nil,
- nil,
+ types.Messages{},
new(types.Commit),
state.Validators.GetProposer().Address,
)
diff --git a/state/state.go b/state/state.go
index 804dd31d8b..b3c4858b05 100644
--- a/state/state.go
+++ b/state/state.go
@@ -238,7 +238,7 @@ func (state State) MakeBlock(
txs []types.Tx,
evidence []types.Evidence,
intermediateStateRoots []tmbytes.HexBytes,
- messages []types.Message,
+ messages types.Messages,
commit *types.Commit,
proposerAddress []byte,
) (*types.Block, *types.PartSet) {
diff --git a/state/validation_test.go b/state/validation_test.go
index 87a71b4168..42e3acdfb0 100644
--- a/state/validation_test.go
+++ b/state/validation_test.go
@@ -84,7 +84,7 @@ func TestValidateBlockHeader(t *testing.T) {
Invalid blocks don't pass
*/
for _, tc := range testCases {
- block, _ := state.MakeBlock(height, makeTxs(height), nil, nil, nil, lastCommit, proposerAddr)
+ block, _ := state.MakeBlock(height, makeTxs(height), nil, nil, types.Messages{}, lastCommit, proposerAddr)
tc.malleateBlock(block)
err := blockExec.ValidateBlock(state, block)
t.Logf("%s: %v", tc.name, err)
@@ -102,7 +102,7 @@ func TestValidateBlockHeader(t *testing.T) {
nextHeight := validationTestsStopHeight
block, _ := state.MakeBlock(
nextHeight,
- makeTxs(nextHeight), nil, nil, nil,
+ makeTxs(nextHeight), nil, nil, types.Messages{},
lastCommit,
state.Validators.GetProposer().Address,
)
@@ -152,7 +152,7 @@ func TestValidateBlockCommit(t *testing.T) {
state.LastBlockID,
[]types.CommitSig{wrongHeightVote.CommitSig()},
)
- block, _ := state.MakeBlock(height, makeTxs(height), nil, nil, nil, wrongHeightCommit, proposerAddr)
+ block, _ := state.MakeBlock(height, makeTxs(height), nil, nil, types.Messages{}, wrongHeightCommit, proposerAddr)
err = blockExec.ValidateBlock(state, block)
_, isErrInvalidCommitHeight := err.(types.ErrInvalidCommitHeight)
require.True(t, isErrInvalidCommitHeight, "expected ErrInvalidCommitHeight at height %d but got: %v", height, err)
@@ -160,7 +160,7 @@ func TestValidateBlockCommit(t *testing.T) {
/*
#2589: test len(block.LastCommit.Signatures) == state.LastValidators.Size()
*/
- block, _ = state.MakeBlock(height, makeTxs(height), nil, nil, nil, wrongSigsCommit, proposerAddr)
+ block, _ = state.MakeBlock(height, makeTxs(height), nil, nil, types.Messages{}, wrongSigsCommit, proposerAddr)
err = blockExec.ValidateBlock(state, block)
_, isErrInvalidCommitSignatures := err.(types.ErrInvalidCommitSignatures)
require.True(t, isErrInvalidCommitSignatures,
@@ -267,7 +267,7 @@ func TestValidateBlockEvidence(t *testing.T) {
evidence = append(evidence, newEv)
currentBytes += int64(len(newEv.Bytes()))
}
- block, _ := state.MakeBlock(height, makeTxs(height), evidence, nil, nil, lastCommit, proposerAddr)
+ block, _ := state.MakeBlock(height, makeTxs(height), evidence, nil, types.Messages{}, lastCommit, proposerAddr)
err := blockExec.ValidateBlock(state, block)
if assert.Error(t, err) {
_, ok := err.(*types.ErrEvidenceOverflow)
diff --git a/store/store_test.go b/store/store_test.go
index 98e8aca92e..24b8ccc47e 100644
--- a/store/store_test.go
+++ b/store/store_test.go
@@ -50,7 +50,8 @@ func makeTxs(height int64) (txs []types.Tx) {
}
func makeBlock(height int64, state sm.State, lastCommit *types.Commit) *types.Block {
- block, _ := state.MakeBlock(height, makeTxs(height), nil, nil, nil, lastCommit, state.Validators.GetProposer().Address)
+ block, _ := state.MakeBlock(height, makeTxs(height), nil,
+ nil, types.Messages{}, lastCommit, state.Validators.GetProposer().Address)
return block
}
diff --git a/test/e2e/app/app.go b/test/e2e/app/app.go
index e37cdc31c3..8ae3e13487 100644
--- a/test/e2e/app/app.go
+++ b/test/e2e/app/app.go
@@ -187,6 +187,12 @@ func (app *Application) ApplySnapshotChunk(req abci.RequestApplySnapshotChunk) a
return abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_ACCEPT}
}
+// PreprocessTxs implements ABCI
+func (app *Application) PreprocessTxs(
+ req abci.RequestPreprocessTxs) abci.ResponsePreprocessTxs {
+ return abci.ResponsePreprocessTxs{Txs: req.Txs}
+}
+
// validatorUpdates generates a validator set update.
func (app *Application) validatorUpdates(height uint64) (abci.ValidatorUpdates, error) {
updates := app.cfg.ValidatorUpdates[fmt.Sprintf("%v", height)]
diff --git a/types/block.go b/types/block.go
index f15ba732d5..c515673bc7 100644
--- a/types/block.go
+++ b/types/block.go
@@ -1243,6 +1243,34 @@ type Message struct {
Data []byte
}
+var (
+ MessageEmpty = Message{}
+ MessagesEmpty = Messages{}
+)
+
+func MessageFromProto(p *tmproto.Message) Message {
+ if p == nil {
+ return MessageEmpty
+ }
+ return Message{
+ NamespaceID: p.NamespaceId,
+ Data: p.Data,
+ }
+}
+
+func MessagesFromProto(p *tmproto.Messages) Messages {
+ if p == nil {
+ return MessagesEmpty
+ }
+
+ msgs := make([]Message, 0, len(p.MessagesList))
+
+ for i := 0; i < len(p.MessagesList); i++ {
+ msgs = append(msgs, MessageFromProto(p.MessagesList[i]))
+ }
+ return Messages{MessagesList: msgs}
+}
+
// StringIndented returns an indented string representation of the transactions.
func (data *Data) StringIndented(indent string) string {
if data == nil {
@@ -1273,6 +1301,7 @@ func (data *Data) ToProto() tmproto.Data {
}
tp.Txs = txBzs
}
+
rawRoots := data.IntermediateStateRoots.RawRootsList
if len(rawRoots) > 0 {
roots := make([][]byte, len(rawRoots))
diff --git a/types/block_test.go b/types/block_test.go
index 73059a2dd0..62526f0a7b 100644
--- a/types/block_test.go
+++ b/types/block_test.go
@@ -44,7 +44,7 @@ func TestBlockAddEvidence(t *testing.T) {
ev := NewMockDuplicateVoteEvidenceWithValidator(h, time.Now(), vals[0], "block-test-chain")
evList := []Evidence{ev}
- block := MakeBlock(h, txs, evList, nil, nil, commit)
+ block := MakeBlock(h, txs, evList, nil, Messages{}, commit)
require.NotNil(t, block)
require.Equal(t, 1, len(block.Evidence.Evidence))
require.NotNil(t, block.EvidenceHash)
@@ -105,7 +105,7 @@ func TestBlockValidateBasic(t *testing.T) {
tc := tc
i := i
t.Run(tc.testName, func(t *testing.T) {
- block := MakeBlock(h, txs, evList, nil, nil, commit)
+ block := MakeBlock(h, txs, evList, nil, Messages{}, commit)
block.ProposerAddress = valSet.GetProposer().Address
tc.malleateBlock(block)
err = block.ValidateBasic()
@@ -117,13 +117,13 @@ func TestBlockValidateBasic(t *testing.T) {
func TestBlockHash(t *testing.T) {
assert.Nil(t, (*Block)(nil).Hash())
- assert.Nil(t, MakeBlock(int64(3), []Tx{Tx("Hello World")}, nil, nil, nil, nil).Hash())
+ assert.Nil(t, MakeBlock(int64(3), []Tx{Tx("Hello World")}, nil, nil, Messages{}, nil).Hash())
}
func TestBlockMakePartSet(t *testing.T) {
assert.Nil(t, (*Block)(nil).MakePartSet(2))
- partSet := MakeBlock(int64(3), []Tx{Tx("Hello World")}, nil, nil, nil, nil).MakePartSet(1024)
+ partSet := MakeBlock(int64(3), []Tx{Tx("Hello World")}, nil, nil, Messages{}, nil).MakePartSet(1024)
assert.NotNil(t, partSet)
assert.EqualValues(t, 1, partSet.Total())
}
@@ -141,7 +141,7 @@ func TestBlockMakePartSetWithEvidence(t *testing.T) {
ev := NewMockDuplicateVoteEvidenceWithValidator(h, time.Now(), vals[0], "block-test-chain")
evList := []Evidence{ev}
- partSet := MakeBlock(h, []Tx{Tx("Hello World")}, evList, nil, nil, commit).MakePartSet(512)
+ partSet := MakeBlock(h, []Tx{Tx("Hello World")}, evList, nil, Messages{}, commit).MakePartSet(512)
assert.NotNil(t, partSet)
assert.EqualValues(t, 5, partSet.Total())
}
@@ -158,7 +158,7 @@ func TestBlockHashesTo(t *testing.T) {
ev := NewMockDuplicateVoteEvidenceWithValidator(h, time.Now(), vals[0], "block-test-chain")
evList := []Evidence{ev}
- block := MakeBlock(h, []Tx{Tx("Hello World")}, evList, nil, nil, commit)
+ block := MakeBlock(h, []Tx{Tx("Hello World")}, evList, nil, Messages{}, commit)
block.ValidatorsHash = valSet.Hash()
assert.False(t, block.HashesTo([]byte{}))
assert.False(t, block.HashesTo([]byte("something else")))
@@ -166,7 +166,7 @@ func TestBlockHashesTo(t *testing.T) {
}
func TestBlockSize(t *testing.T) {
- size := MakeBlock(int64(3), []Tx{Tx("Hello World")}, nil, nil, nil, nil).Size()
+ size := MakeBlock(int64(3), []Tx{Tx("Hello World")}, nil, nil, Messages{}, nil).Size()
if size <= 0 {
t.Fatal("Size of the block is zero or negative")
}
@@ -177,7 +177,7 @@ func TestBlockString(t *testing.T) {
assert.Equal(t, "nil-Block", (*Block)(nil).StringIndented(""))
assert.Equal(t, "nil-Block", (*Block)(nil).StringShort())
- block := MakeBlock(int64(3), []Tx{Tx("Hello World")}, nil, nil, nil, nil)
+ block := MakeBlock(int64(3), []Tx{Tx("Hello World")}, nil, nil, Messages{}, nil)
assert.NotEqual(t, "nil-Block", block.String())
assert.NotEqual(t, "nil-Block", block.StringIndented(""))
assert.NotEqual(t, "nil-Block", block.StringShort())
@@ -649,17 +649,17 @@ func TestBlockIDValidateBasic(t *testing.T) {
func TestBlockProtoBuf(t *testing.T) {
h := tmrand.Int63()
c1 := randCommit(time.Now())
- b1 := MakeBlock(h, []Tx{Tx([]byte{1})}, []Evidence{}, nil, nil, &Commit{Signatures: []CommitSig{}})
+ b1 := MakeBlock(h, []Tx{Tx([]byte{1})}, []Evidence{}, nil, Messages{}, &Commit{Signatures: []CommitSig{}})
b1.ProposerAddress = tmrand.Bytes(crypto.AddressSize)
- b2 := MakeBlock(h, []Tx{Tx([]byte{1})}, []Evidence{}, nil, nil, c1)
+ b2 := MakeBlock(h, []Tx{Tx([]byte{1})}, []Evidence{}, nil, Messages{}, c1)
b2.ProposerAddress = tmrand.Bytes(crypto.AddressSize)
evidenceTime := time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC)
evi := NewMockDuplicateVoteEvidence(h, evidenceTime, "block-test-chain")
b2.Evidence = EvidenceData{Evidence: EvidenceList{evi}}
b2.EvidenceHash = b2.Evidence.Hash()
- b3 := MakeBlock(h, []Tx{}, []Evidence{}, nil, nil, c1)
+ b3 := MakeBlock(h, []Tx{}, []Evidence{}, nil, Messages{}, c1)
b3.ProposerAddress = tmrand.Bytes(crypto.AddressSize)
testCases := []struct {
msg string
diff --git a/types/event_bus_test.go b/types/event_bus_test.go
index 43ea8b94bf..499f3e06e4 100644
--- a/types/event_bus_test.go
+++ b/types/event_bus_test.go
@@ -75,7 +75,7 @@ func TestEventBusPublishEventNewBlock(t *testing.T) {
}
})
- block := MakeBlock(0, []Tx{}, []Evidence{}, nil, nil, nil)
+ block := MakeBlock(0, []Tx{}, []Evidence{}, nil, Messages{}, nil)
resultBeginBlock := abci.ResponseBeginBlock{
Events: []abci.Event{
{Type: "testType", Attributes: []abci.EventAttribute{{Key: []byte("baz"), Value: []byte("1")}}},
@@ -234,7 +234,7 @@ func TestEventBusPublishEventNewBlockHeader(t *testing.T) {
}
})
- block := MakeBlock(0, []Tx{}, []Evidence{}, nil, nil, nil)
+ block := MakeBlock(0, []Tx{}, []Evidence{}, nil, Messages{}, nil)
resultBeginBlock := abci.ResponseBeginBlock{
Events: []abci.Event{
{Type: "testType", Attributes: []abci.EventAttribute{{Key: []byte("baz"), Value: []byte("1")}}},
diff --git a/types/test_util.go b/types/test_util.go
index fd16033935..d563730608 100644
--- a/types/test_util.go
+++ b/types/test_util.go
@@ -89,7 +89,7 @@ func MakeVote(
// hence, test_util.go is quite misleading.
func MakeBlock(
height int64,
- txs []Tx, evidence []Evidence, intermediateStateRoots []tmbytes.HexBytes, messages []Message,
+ txs []Tx, evidence []Evidence, intermediateStateRoots []tmbytes.HexBytes, messages Messages,
lastCommit *Commit) *Block {
block := &Block{
Header: Header{
@@ -100,7 +100,7 @@ func MakeBlock(
Txs: txs,
IntermediateStateRoots: IntermediateStateRoots{RawRootsList: intermediateStateRoots},
Evidence: EvidenceData{Evidence: evidence},
- Messages: Messages{MessagesList: messages},
+ Messages: messages,
},
LastCommit: lastCommit,
}