From 90c3a469ff22b3b2f5b29a72e1023b8d002e1f53 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Thu, 31 May 2018 21:45:14 -0400 Subject: [PATCH] Revert "Merge pull request #247 from tendermint/bucky/no-gogo" This reverts commit ef79007433878cec815a2a704ec5fcfa2686412f, reversing changes made to bcfdd6dbaf10c947392e2b0a097b65b5fb247baf. --- Gopkg.lock | 40 +- Gopkg.toml | 11 +- Makefile | 9 +- client/local_client.go | 48 +-- example/counter/counter.go | 42 +-- example/kvstore/helpers.go | 2 +- example/kvstore/kvstore.go | 18 +- example/kvstore/kvstore_test.go | 18 +- example/kvstore/persistent_kvstore.go | 42 +-- server/socket_server.go | 30 +- tests/server/client.go | 5 +- types/application.go | 95 +++-- types/codetype.go | 67 ---- types/json.go | 87 ----- types/messages.go | 16 +- types/messages_test.go | 8 +- types/params.go | 111 ------ types/protoreplace/protoreplace.go | 55 +++ types/pubkey.go | 16 + types/result.go | 207 ++++------ types/types.pb.go | 521 +++++++++++++------------- types/types.proto | 31 +- types/{validator.go => util.go} | 15 - 23 files changed, 620 insertions(+), 874 deletions(-) delete mode 100644 types/codetype.go delete mode 100644 types/json.go delete mode 100644 types/params.go create mode 100644 types/protoreplace/protoreplace.go create mode 100644 types/pubkey.go rename types/{validator.go => util.go} (85%) diff --git a/Gopkg.lock b/Gopkg.lock index 13fe0e5e4..6bc40c0bb 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -30,14 +30,25 @@ version = "v1.7.0" [[projects]] - name = "github.com/golang/protobuf" + name = "github.com/gogo/protobuf" packages = [ + "gogoproto", "jsonpb", + "proto", + "protoc-gen-gogo/descriptor", + "sortkeys", + "types" + ] + revision = "1adfc126b41513cc696b209667c8656ea7aac67c" + version = "v1.0.0" + +[[projects]] + name = "github.com/golang/protobuf" + packages = [ "proto", "ptypes", "ptypes/any", "ptypes/duration", - "ptypes/struct", "ptypes/timestamp" ] revision = "925541529c1fa6821df4e44ce2723319eb2be768" @@ -47,7 +58,7 @@ branch = "master" name = "github.com/golang/snappy" packages = ["."] - revision = "2e65f85255dbc3072edf28d6b5b8efc472979f5a" + revision = "553a641470496b2327abcac10b36396bd98e45c9" [[projects]] name = "github.com/inconshreveable/mousetrap" @@ -82,14 +93,14 @@ [[projects]] name = "github.com/spf13/cobra" packages = ["."] - revision = "ef82de70bb3f60c65fb8eebacbb2d122ef517385" - version = "v0.0.3" + revision = "a1f051bc3eba734da4772d60e2d677f47cf93ef4" + version = "v0.0.2" [[projects]] name = "github.com/spf13/pflag" packages = ["."] - revision = "583c0c0531f06d5278b7d917446061adc344b5cd" - version = "v1.0.1" + revision = "e57e3eeb33f795204c1ca35f56c44f83227c6e66" + version = "v1.0.0" [[projects]] name = "github.com/stretchr/testify" @@ -117,31 +128,31 @@ "leveldb/table", "leveldb/util" ] - revision = "5d6fca44a948d2be89a9702de7717f0168403d3d" + revision = "714f901b98fdb3aa954b4193d8cbd64a28d80cad" [[projects]] - branch = "develop" name = "github.com/tendermint/tmlibs" packages = [ "common", "db", "log" ] - revision = "e0acf357bb8832faebdb79f07490d0f530afc7b1" + revision = "2e24b64fc121dcdf1cabceab8dc2f7257675483c" + version = "v0.8.1" [[projects]] branch = "master" name = "golang.org/x/net" packages = [ "context", - "http/httpguts", "http2", "http2/hpack", "idna", "internal/timeseries", + "lex/httplex", "trace" ] - revision = "89e543239a64caf31d3a6865872ea120b41446df" + revision = "61147c48b25b599e5b561d2e9c4f3e1ef489ca41" [[projects]] name = "golang.org/x/text" @@ -165,9 +176,10 @@ version = "v0.3.0" [[projects]] + branch = "master" name = "google.golang.org/genproto" packages = ["googleapis/rpc/status"] - revision = "7fd901a49ba6a7f87732eb344f6e3c5b19d1b200" + revision = "ce84044298496ef4b54b4a0a0909ba593cc60e30" [[projects]] name = "google.golang.org/grpc" @@ -196,6 +208,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "5a730a9d84b37f95b1b10260a91bcd26a143a50b3301ec6dfb7483e89c44eabd" + inputs-digest = "e42d4a691fb0d0db9c717394e580dd00b36ba9e185541f99fc56689338470123" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index 235b071d7..3f9a207df 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -32,7 +32,7 @@ # Use `~` for only minor version bumps. [[constraint]] - name = "github.com/golang/protobuf" + name = "github.com/gogo/protobuf" version = "~1.0.0" [[constraint]] @@ -45,19 +45,12 @@ [[constraint]] name = "github.com/tendermint/tmlibs" - branch = "develop" - # version = "0.8.1" + version = "0.8.1" [[constraint]] name = "google.golang.org/grpc" version = "~1.7.3" -# this got updated and broke, so locked to an old working commit ... -[[override]] - name = "google.golang.org/genproto" - revision = "7fd901a49ba6a7f87732eb344f6e3c5b19d1b200" - - [prune] go-tests = true unused-packages = true diff --git a/Makefile b/Makefile index 29a3172df..1823812ea 100644 --- a/Makefile +++ b/Makefile @@ -2,10 +2,11 @@ GOTOOLS = \ github.com/mitchellh/gox \ github.com/golang/dep/cmd/dep \ gopkg.in/alecthomas/gometalinter.v2 \ - github.com/golang/protobuf/protoc-gen-go -GOTOOLS_CHECK = gox dep gometalinter.v2 protoc protoc-gen-go + github.com/gogo/protobuf/protoc-gen-gogo \ + github.com/gogo/protobuf/gogoproto +GOTOOLS_CHECK = gox dep gometalinter.v2 protoc protoc-gen-gogo PACKAGES=$(shell go list ./... | grep -v '/vendor/') -INCLUDE = -I=. -I=${GOPATH}/src +INCLUDE = -I=. -I=${GOPATH}/src -I=${GOPATH}/src/github.com/gogo/protobuf/protobuf all: check get_vendor_deps protoc build test install metalinter @@ -19,7 +20,7 @@ protoc: ## If you get the following error, ## "error while loading shared libraries: libprotobuf.so.14: cannot open shared object file: No such file or directory" ## See https://stackoverflow.com/a/25518702 - protoc $(INCLUDE) --go_out=plugins=grpc:. types/*.proto + protoc $(INCLUDE) --gogo_out=plugins=grpc:. types/*.proto @echo "--> adding nolint declarations to protobuf generated files" @awk '/package types/ { print "//nolint: gas"; print; next }1' types/types.pb.go > types/types.pb.go.new @mv types/types.pb.go.new types/types.pb.go diff --git a/client/local_client.go b/client/local_client.go index 804c558f3..64bf5fe08 100644 --- a/client/local_client.go +++ b/client/local_client.go @@ -53,21 +53,21 @@ func (app *localClient) EchoAsync(msg string) *ReqRes { func (app *localClient) InfoAsync(req types.RequestInfo) *ReqRes { app.mtx.Lock() - res := app.Application.Info(types.ToParamsInfo(req)) + res := app.Application.Info(req) app.mtx.Unlock() return app.callback( types.ToRequestInfo(req), - types.ToResponseInfo(types.FromResultInfo(res)), + types.ToResponseInfo(res), ) } func (app *localClient) SetOptionAsync(req types.RequestSetOption) *ReqRes { app.mtx.Lock() - res := app.Application.SetOption(types.ToParamsSetOption(req)) + res := app.Application.SetOption(req) app.mtx.Unlock() return app.callback( types.ToRequestSetOption(req), - types.ToResponseSetOption(types.FromResultSetOption(res)), + types.ToResponseSetOption(res), ) } @@ -77,7 +77,7 @@ func (app *localClient) DeliverTxAsync(tx []byte) *ReqRes { app.mtx.Unlock() return app.callback( types.ToRequestDeliverTx(tx), - types.ToResponseDeliverTx(types.FromResultDeliverTx(res)), + types.ToResponseDeliverTx(res), ) } @@ -87,17 +87,17 @@ func (app *localClient) CheckTxAsync(tx []byte) *ReqRes { app.mtx.Unlock() return app.callback( types.ToRequestCheckTx(tx), - types.ToResponseCheckTx(types.FromResultCheckTx(res)), + types.ToResponseCheckTx(res), ) } func (app *localClient) QueryAsync(req types.RequestQuery) *ReqRes { app.mtx.Lock() - res := app.Application.Query(types.ToParamsQuery(req)) + res := app.Application.Query(req) app.mtx.Unlock() return app.callback( types.ToRequestQuery(req), - types.ToResponseQuery(types.FromResultQuery(res)), + types.ToResponseQuery(res), ) } @@ -107,16 +107,16 @@ func (app *localClient) CommitAsync() *ReqRes { app.mtx.Unlock() return app.callback( types.ToRequestCommit(), - types.ToResponseCommit(types.FromResultCommit(res)), + types.ToResponseCommit(res), ) } func (app *localClient) InitChainAsync(req types.RequestInitChain) *ReqRes { app.mtx.Lock() - res := app.Application.InitChain(types.ToParamsInitChain(req)) + res := app.Application.InitChain(req) reqRes := app.callback( types.ToRequestInitChain(req), - types.ToResponseInitChain(types.FromResultInitChain(res)), + types.ToResponseInitChain(res), ) app.mtx.Unlock() return reqRes @@ -124,21 +124,21 @@ func (app *localClient) InitChainAsync(req types.RequestInitChain) *ReqRes { func (app *localClient) BeginBlockAsync(req types.RequestBeginBlock) *ReqRes { app.mtx.Lock() - res := app.Application.BeginBlock(types.ToParamsBeginBlock(req)) + res := app.Application.BeginBlock(req) app.mtx.Unlock() return app.callback( types.ToRequestBeginBlock(req), - types.ToResponseBeginBlock(types.FromResultBeginBlock(res)), + types.ToResponseBeginBlock(res), ) } func (app *localClient) EndBlockAsync(req types.RequestEndBlock) *ReqRes { app.mtx.Lock() - res := app.Application.EndBlock(types.ToParamsEndBlock(req)) + res := app.Application.EndBlock(req) app.mtx.Unlock() return app.callback( types.ToRequestEndBlock(req), - types.ToResponseEndBlock(types.FromResultEndBlock(res)), + types.ToResponseEndBlock(res), ) } @@ -154,63 +154,63 @@ func (app *localClient) EchoSync(msg string) (*types.ResponseEcho, error) { func (app *localClient) InfoSync(req types.RequestInfo) (*types.ResponseInfo, error) { app.mtx.Lock() - res := types.FromResultInfo(app.Application.Info(types.ToParamsInfo(req))) + res := app.Application.Info(req) app.mtx.Unlock() return &res, nil } func (app *localClient) SetOptionSync(req types.RequestSetOption) (*types.ResponseSetOption, error) { app.mtx.Lock() - res := types.FromResultSetOption(app.Application.SetOption(types.ToParamsSetOption(req))) + res := app.Application.SetOption(req) app.mtx.Unlock() return &res, nil } func (app *localClient) DeliverTxSync(tx []byte) (*types.ResponseDeliverTx, error) { app.mtx.Lock() - res := types.FromResultDeliverTx(app.Application.DeliverTx(tx)) + res := app.Application.DeliverTx(tx) app.mtx.Unlock() return &res, nil } func (app *localClient) CheckTxSync(tx []byte) (*types.ResponseCheckTx, error) { app.mtx.Lock() - res := types.FromResultCheckTx(app.Application.CheckTx(tx)) + res := app.Application.CheckTx(tx) app.mtx.Unlock() return &res, nil } func (app *localClient) QuerySync(req types.RequestQuery) (*types.ResponseQuery, error) { app.mtx.Lock() - res := types.FromResultQuery(app.Application.Query(types.ToParamsQuery(req))) + res := app.Application.Query(req) app.mtx.Unlock() return &res, nil } func (app *localClient) CommitSync() (*types.ResponseCommit, error) { app.mtx.Lock() - res := types.FromResultCommit(app.Application.Commit()) + res := app.Application.Commit() app.mtx.Unlock() return &res, nil } func (app *localClient) InitChainSync(req types.RequestInitChain) (*types.ResponseInitChain, error) { app.mtx.Lock() - res := types.FromResultInitChain(app.Application.InitChain(types.ToParamsInitChain(req))) + res := app.Application.InitChain(req) app.mtx.Unlock() return &res, nil } func (app *localClient) BeginBlockSync(req types.RequestBeginBlock) (*types.ResponseBeginBlock, error) { app.mtx.Lock() - res := types.FromResultBeginBlock(app.Application.BeginBlock(types.ToParamsBeginBlock(req))) + res := app.Application.BeginBlock(req) app.mtx.Unlock() return &res, nil } func (app *localClient) EndBlockSync(req types.RequestEndBlock) (*types.ResponseEndBlock, error) { app.mtx.Lock() - res := types.FromResultEndBlock(app.Application.EndBlock(types.ToParamsEndBlock(req))) + res := app.Application.EndBlock(req) app.mtx.Unlock() return &res, nil } diff --git a/example/counter/counter.go b/example/counter/counter.go index 3437da670..a6d5df6ab 100644 --- a/example/counter/counter.go +++ b/example/counter/counter.go @@ -21,11 +21,11 @@ func NewCounterApplication(serial bool) *CounterApplication { return &CounterApplication{serial: serial} } -func (app *CounterApplication) Info(req types.ParamsInfo) types.ResultInfo { - return types.ResultInfo{Data: cmn.Fmt("{\"hashes\":%v,\"txs\":%v}", app.hashCount, app.txCount)} +func (app *CounterApplication) Info(req types.RequestInfo) types.ResponseInfo { + return types.ResponseInfo{Data: cmn.Fmt("{\"hashes\":%v,\"txs\":%v}", app.hashCount, app.txCount)} } -func (app *CounterApplication) SetOption(req types.ParamsSetOption) types.ResultSetOption { +func (app *CounterApplication) SetOption(req types.RequestSetOption) types.ResponseSetOption { key, value := req.Key, req.Value if key == "serial" && value == "on" { app.serial = true @@ -33,20 +33,20 @@ func (app *CounterApplication) SetOption(req types.ParamsSetOption) types.Result /* TODO Panic and have the ABCI server pass an exception. The client can call SetOptionSync() and get an `error`. - return types.ResultSetOption{ + return types.ResponseSetOption{ Error: cmn.Fmt("Unknown key (%s) or value (%s)", key, value), } */ - return types.ResultSetOption{} + return types.ResponseSetOption{} } - return types.ResultSetOption{} + return types.ResponseSetOption{} } -func (app *CounterApplication) DeliverTx(tx []byte) types.ResultDeliverTx { +func (app *CounterApplication) DeliverTx(tx []byte) types.ResponseDeliverTx { if app.serial { if len(tx) > 8 { - return types.ResultDeliverTx{ + return types.ResponseDeliverTx{ Code: code.CodeTypeEncodingError, Log: fmt.Sprintf("Max tx size is 8 bytes, got %d", len(tx))} } @@ -54,19 +54,19 @@ func (app *CounterApplication) DeliverTx(tx []byte) types.ResultDeliverTx { copy(tx8[len(tx8)-len(tx):], tx) txValue := binary.BigEndian.Uint64(tx8) if txValue != uint64(app.txCount) { - return types.ResultDeliverTx{ + return types.ResponseDeliverTx{ Code: code.CodeTypeBadNonce, Log: fmt.Sprintf("Invalid nonce. Expected %v, got %v", app.txCount, txValue)} } } app.txCount++ - return types.ResultDeliverTx{Code: code.CodeTypeOK} + return types.ResponseDeliverTx{Code: code.CodeTypeOK} } -func (app *CounterApplication) CheckTx(tx []byte) types.ResultCheckTx { +func (app *CounterApplication) CheckTx(tx []byte) types.ResponseCheckTx { if app.serial { if len(tx) > 8 { - return types.ResultCheckTx{ + return types.ResponseCheckTx{ Code: code.CodeTypeEncodingError, Log: fmt.Sprintf("Max tx size is 8 bytes, got %d", len(tx))} } @@ -74,31 +74,31 @@ func (app *CounterApplication) CheckTx(tx []byte) types.ResultCheckTx { copy(tx8[len(tx8)-len(tx):], tx) txValue := binary.BigEndian.Uint64(tx8) if txValue < uint64(app.txCount) { - return types.ResultCheckTx{ + return types.ResponseCheckTx{ Code: code.CodeTypeBadNonce, Log: fmt.Sprintf("Invalid nonce. Expected >= %v, got %v", app.txCount, txValue)} } } - return types.ResultCheckTx{Code: code.CodeTypeOK} + return types.ResponseCheckTx{Code: code.CodeTypeOK} } -func (app *CounterApplication) Commit() (resp types.ResultCommit) { +func (app *CounterApplication) Commit() (resp types.ResponseCommit) { app.hashCount++ if app.txCount == 0 { - return types.ResultCommit{} + return types.ResponseCommit{} } hash := make([]byte, 8) binary.BigEndian.PutUint64(hash, uint64(app.txCount)) - return types.ResultCommit{Data: hash} + return types.ResponseCommit{Data: hash} } -func (app *CounterApplication) Query(reqQuery types.ParamsQuery) types.ResultQuery { +func (app *CounterApplication) Query(reqQuery types.RequestQuery) types.ResponseQuery { switch reqQuery.Path { case "hash": - return types.ResultQuery{Value: []byte(cmn.Fmt("%v", app.hashCount))} + return types.ResponseQuery{Value: []byte(cmn.Fmt("%v", app.hashCount))} case "tx": - return types.ResultQuery{Value: []byte(cmn.Fmt("%v", app.txCount))} + return types.ResponseQuery{Value: []byte(cmn.Fmt("%v", app.txCount))} default: - return types.ResultQuery{Log: cmn.Fmt("Invalid query path. Expected hash or tx, got %v", reqQuery.Path)} + return types.ResponseQuery{Log: cmn.Fmt("Invalid query path. Expected hash or tx, got %v", reqQuery.Path)} } } diff --git a/example/kvstore/helpers.go b/example/kvstore/helpers.go index e302a6d17..da826fe65 100644 --- a/example/kvstore/helpers.go +++ b/example/kvstore/helpers.go @@ -32,7 +32,7 @@ func RandVals(cnt int) []types.Validator { // which allows tests to pass and is fine as long as you // don't make any tx that modify the validator state func InitKVStore(app *PersistentKVStoreApplication) { - app.InitChain(types.ParamsInitChain{ + app.InitChain(types.RequestInitChain{ Validators: RandVals(1), GenesisBytes: []byte("[]"), }) diff --git a/example/kvstore/kvstore.go b/example/kvstore/kvstore.go index 573168df1..4ccbc56b0 100644 --- a/example/kvstore/kvstore.go +++ b/example/kvstore/kvstore.go @@ -64,12 +64,12 @@ func NewKVStoreApplication() *KVStoreApplication { return &KVStoreApplication{state: state} } -func (app *KVStoreApplication) Info(req types.ParamsInfo) (resInfo types.ResultInfo) { - return types.ResultInfo{Data: fmt.Sprintf("{\"size\":%v}", app.state.Size)} +func (app *KVStoreApplication) Info(req types.RequestInfo) (resInfo types.ResponseInfo) { + return types.ResponseInfo{Data: fmt.Sprintf("{\"size\":%v}", app.state.Size)} } // tx is either "key=value" or just arbitrary bytes -func (app *KVStoreApplication) DeliverTx(tx []byte) types.ResultDeliverTx { +func (app *KVStoreApplication) DeliverTx(tx []byte) types.ResponseDeliverTx { var key, value []byte parts := bytes.Split(tx, []byte("=")) if len(parts) == 2 { @@ -84,24 +84,24 @@ func (app *KVStoreApplication) DeliverTx(tx []byte) types.ResultDeliverTx { {[]byte("app.creator"), []byte("jae")}, {[]byte("app.key"), key}, } - return types.ResultDeliverTx{Code: code.CodeTypeOK, Tags: tags} + return types.ResponseDeliverTx{Code: code.CodeTypeOK, Tags: tags} } -func (app *KVStoreApplication) CheckTx(tx []byte) types.ResultCheckTx { - return types.ResultCheckTx{Code: code.CodeTypeOK} +func (app *KVStoreApplication) CheckTx(tx []byte) types.ResponseCheckTx { + return types.ResponseCheckTx{Code: code.CodeTypeOK} } -func (app *KVStoreApplication) Commit() types.ResultCommit { +func (app *KVStoreApplication) Commit() types.ResponseCommit { // Using a memdb - just return the big endian size of the db appHash := make([]byte, 8) binary.PutVarint(appHash, app.state.Size) app.state.AppHash = appHash app.state.Height += 1 saveState(app.state) - return types.ResultCommit{Data: appHash} + return types.ResponseCommit{Data: appHash} } -func (app *KVStoreApplication) Query(reqQuery types.ParamsQuery) (resQuery types.ResultQuery) { +func (app *KVStoreApplication) Query(reqQuery types.RequestQuery) (resQuery types.ResponseQuery) { if reqQuery.Prove { value := app.state.db.Get(prefixKey(reqQuery.Data)) resQuery.Index = -1 // TODO make Proof return index diff --git a/example/kvstore/kvstore_test.go b/example/kvstore/kvstore_test.go index 32c667979..ff3e49208 100644 --- a/example/kvstore/kvstore_test.go +++ b/example/kvstore/kvstore_test.go @@ -25,7 +25,7 @@ func testKVStore(t *testing.T, app types.Application, tx []byte, key, value stri require.False(t, ar.IsErr(), ar) // make sure query is fine - resQuery := app.Query(types.ParamsQuery{ + resQuery := app.Query(types.RequestQuery{ Path: "/store", Data: []byte(key), }) @@ -33,7 +33,7 @@ func testKVStore(t *testing.T, app types.Application, tx []byte, key, value stri require.Equal(t, value, string(resQuery.Value)) // make sure proof is fine - resQuery = app.Query(types.ParamsQuery{ + resQuery = app.Query(types.RequestQuery{ Path: "/store", Data: []byte(key), Prove: true, @@ -79,7 +79,7 @@ func TestPersistentKVStoreInfo(t *testing.T) { InitKVStore(kvstore) height := int64(0) - resInfo := kvstore.Info(types.ParamsInfo{}) + resInfo := kvstore.Info(types.RequestInfo{}) if resInfo.LastBlockHeight != height { t.Fatalf("expected height of %d, got %d", height, resInfo.LastBlockHeight) } @@ -90,11 +90,11 @@ func TestPersistentKVStoreInfo(t *testing.T) { header := types.Header{ Height: int64(height), } - kvstore.BeginBlock(types.ParamsBeginBlock{hash, header, nil, nil}) - kvstore.EndBlock(types.ParamsEndBlock{header.Height}) + kvstore.BeginBlock(types.RequestBeginBlock{hash, header, nil, nil}) + kvstore.EndBlock(types.RequestEndBlock{header.Height}) kvstore.Commit() - resInfo = kvstore.Info(types.ParamsInfo{}) + resInfo = kvstore.Info(types.RequestInfo{}) if resInfo.LastBlockHeight != height { t.Fatalf("expected height of %d, got %d", height, resInfo.LastBlockHeight) } @@ -114,7 +114,7 @@ func TestValUpdates(t *testing.T) { nInit := 5 vals := RandVals(total) // iniitalize with the first nInit - kvstore.InitChain(types.ParamsInitChain{ + kvstore.InitChain(types.RequestInitChain{ Validators: vals[:nInit], }) @@ -176,13 +176,13 @@ func makeApplyBlock(t *testing.T, kvstore types.Application, heightInt int, diff Height: height, } - kvstore.BeginBlock(types.ParamsBeginBlock{hash, header, nil, nil}) + kvstore.BeginBlock(types.RequestBeginBlock{hash, header, nil, nil}) for _, tx := range txs { if r := kvstore.DeliverTx(tx); r.IsErr() { t.Fatal(r) } } - resEndBlock := kvstore.EndBlock(types.ParamsEndBlock{header.Height}) + resEndBlock := kvstore.EndBlock(types.RequestEndBlock{header.Height}) kvstore.Commit() valsEqual(t, diff, resEndBlock.ValidatorUpdates) diff --git a/example/kvstore/persistent_kvstore.go b/example/kvstore/persistent_kvstore.go index fda7a7a1b..02f7ce74a 100644 --- a/example/kvstore/persistent_kvstore.go +++ b/example/kvstore/persistent_kvstore.go @@ -50,19 +50,19 @@ func (app *PersistentKVStoreApplication) SetLogger(l log.Logger) { app.logger = l } -func (app *PersistentKVStoreApplication) Info(req types.ParamsInfo) types.ResultInfo { +func (app *PersistentKVStoreApplication) Info(req types.RequestInfo) types.ResponseInfo { res := app.app.Info(req) res.LastBlockHeight = app.app.state.Height res.LastBlockAppHash = app.app.state.AppHash return res } -func (app *PersistentKVStoreApplication) SetOption(req types.ParamsSetOption) types.ResultSetOption { +func (app *PersistentKVStoreApplication) SetOption(req types.RequestSetOption) types.ResponseSetOption { return app.app.SetOption(req) } // tx is either "val:pubkey/power" or "key=value" or just arbitrary bytes -func (app *PersistentKVStoreApplication) DeliverTx(tx []byte) types.ResultDeliverTx { +func (app *PersistentKVStoreApplication) DeliverTx(tx []byte) types.ResponseDeliverTx { // if it starts with "val:", update the validator set // format is "val:pubkey/power" if isValidatorTx(tx) { @@ -75,40 +75,40 @@ func (app *PersistentKVStoreApplication) DeliverTx(tx []byte) types.ResultDelive return app.app.DeliverTx(tx) } -func (app *PersistentKVStoreApplication) CheckTx(tx []byte) types.ResultCheckTx { +func (app *PersistentKVStoreApplication) CheckTx(tx []byte) types.ResponseCheckTx { return app.app.CheckTx(tx) } // Commit will panic if InitChain was not called -func (app *PersistentKVStoreApplication) Commit() types.ResultCommit { +func (app *PersistentKVStoreApplication) Commit() types.ResponseCommit { return app.app.Commit() } -func (app *PersistentKVStoreApplication) Query(reqQuery types.ParamsQuery) types.ResultQuery { +func (app *PersistentKVStoreApplication) Query(reqQuery types.RequestQuery) types.ResponseQuery { return app.app.Query(reqQuery) } // Save the validators in the merkle tree -func (app *PersistentKVStoreApplication) InitChain(req types.ParamsInitChain) types.ResultInitChain { +func (app *PersistentKVStoreApplication) InitChain(req types.RequestInitChain) types.ResponseInitChain { for _, v := range req.Validators { r := app.updateValidator(v) if r.IsErr() { app.logger.Error("Error updating validators", "r", r) } } - return types.ResultInitChain{} + return types.ResponseInitChain{} } // Track the block hash and header information -func (app *PersistentKVStoreApplication) BeginBlock(req types.ParamsBeginBlock) types.ResultBeginBlock { +func (app *PersistentKVStoreApplication) BeginBlock(req types.RequestBeginBlock) types.ResponseBeginBlock { // reset valset changes app.ValUpdates = make([]types.Validator, 0) - return types.ResultBeginBlock{} + return types.ResponseBeginBlock{} } // Update the validator set -func (app *PersistentKVStoreApplication) EndBlock(req types.ParamsEndBlock) types.ResultEndBlock { - return types.ResultEndBlock{ValidatorUpdates: app.ValUpdates} +func (app *PersistentKVStoreApplication) EndBlock(req types.RequestEndBlock) types.ResponseEndBlock { + return types.ResponseEndBlock{ValidatorUpdates: app.ValUpdates} } //--------------------------------------------- @@ -129,7 +129,7 @@ func (app *PersistentKVStoreApplication) Validators() (validators []types.Valida return } -func MakeValSetChangeTx(pubkey *types.PubKey, power int64) []byte { +func MakeValSetChangeTx(pubkey types.PubKey, power int64) []byte { return []byte(cmn.Fmt("val:%X/%d", pubkey.Data, power)) } @@ -139,13 +139,13 @@ func isValidatorTx(tx []byte) bool { // format is "val:pubkey/power" // pubkey is raw 32-byte ed25519 key -func (app *PersistentKVStoreApplication) execValidatorTx(tx []byte) types.ResultDeliverTx { +func (app *PersistentKVStoreApplication) execValidatorTx(tx []byte) types.ResponseDeliverTx { tx = tx[len(ValidatorSetChangePrefix):] //get the pubkey and power pubKeyAndPower := strings.Split(string(tx), "/") if len(pubKeyAndPower) != 2 { - return types.ResultDeliverTx{ + return types.ResponseDeliverTx{ Code: code.CodeTypeEncodingError, Log: fmt.Sprintf("Expected 'pubkey/power'. Got %v", pubKeyAndPower)} } @@ -154,7 +154,7 @@ func (app *PersistentKVStoreApplication) execValidatorTx(tx []byte) types.Result // decode the pubkey pubkey, err := hex.DecodeString(pubkeyS) if err != nil { - return types.ResultDeliverTx{ + return types.ResponseDeliverTx{ Code: code.CodeTypeEncodingError, Log: fmt.Sprintf("Pubkey (%s) is invalid hex", pubkeyS)} } @@ -162,7 +162,7 @@ func (app *PersistentKVStoreApplication) execValidatorTx(tx []byte) types.Result // decode the power power, err := strconv.ParseInt(powerS, 10, 64) if err != nil { - return types.ResultDeliverTx{ + return types.ResponseDeliverTx{ Code: code.CodeTypeEncodingError, Log: fmt.Sprintf("Power (%s) is not an int", powerS)} } @@ -172,12 +172,12 @@ func (app *PersistentKVStoreApplication) execValidatorTx(tx []byte) types.Result } // add, update, or remove a validator -func (app *PersistentKVStoreApplication) updateValidator(v types.Validator) types.ResultDeliverTx { +func (app *PersistentKVStoreApplication) updateValidator(v types.Validator) types.ResponseDeliverTx { key := []byte("val:" + string(v.PubKey.Data)) if v.Power == 0 { // remove validator if !app.app.state.db.Has(key) { - return types.ResultDeliverTx{ + return types.ResponseDeliverTx{ Code: code.CodeTypeUnauthorized, Log: fmt.Sprintf("Cannot remove non-existent validator %X", key)} } @@ -186,7 +186,7 @@ func (app *PersistentKVStoreApplication) updateValidator(v types.Validator) type // add or update validator value := bytes.NewBuffer(make([]byte, 0)) if err := types.WriteMessage(&v, value); err != nil { - return types.ResultDeliverTx{ + return types.ResponseDeliverTx{ Code: code.CodeTypeEncodingError, Log: fmt.Sprintf("Error encoding validator: %v", err)} } @@ -196,5 +196,5 @@ func (app *PersistentKVStoreApplication) updateValidator(v types.Validator) type // we only update the changes array if we successfully updated the tree app.ValUpdates = append(app.ValUpdates, v) - return types.ResultDeliverTx{Code: code.CodeTypeOK} + return types.ResponseDeliverTx{Code: code.CodeTypeOK} } diff --git a/server/socket_server.go b/server/socket_server.go index d9aa97402..eb26dc353 100644 --- a/server/socket_server.go +++ b/server/socket_server.go @@ -172,32 +172,32 @@ func (s *SocketServer) handleRequest(req *types.Request, responses chan<- *types case *types.Request_Flush: responses <- types.ToResponseFlush() case *types.Request_Info: - res := s.app.Info(types.ToParamsInfo(*r.Info)) - responses <- types.ToResponseInfo(types.FromResultInfo(res)) + res := s.app.Info(*r.Info) + responses <- types.ToResponseInfo(res) case *types.Request_SetOption: - res := s.app.SetOption(types.ToParamsSetOption(*r.SetOption)) - responses <- types.ToResponseSetOption(types.FromResultSetOption(res)) + res := s.app.SetOption(*r.SetOption) + responses <- types.ToResponseSetOption(res) case *types.Request_DeliverTx: res := s.app.DeliverTx(r.DeliverTx.Tx) - responses <- types.ToResponseDeliverTx(types.FromResultDeliverTx(res)) + responses <- types.ToResponseDeliverTx(res) case *types.Request_CheckTx: res := s.app.CheckTx(r.CheckTx.Tx) - responses <- types.ToResponseCheckTx(types.FromResultCheckTx(res)) + responses <- types.ToResponseCheckTx(res) case *types.Request_Commit: res := s.app.Commit() - responses <- types.ToResponseCommit(types.FromResultCommit(res)) + responses <- types.ToResponseCommit(res) case *types.Request_Query: - res := s.app.Query(types.ToParamsQuery(*r.Query)) - responses <- types.ToResponseQuery(types.FromResultQuery(res)) + res := s.app.Query(*r.Query) + responses <- types.ToResponseQuery(res) case *types.Request_InitChain: - res := s.app.InitChain(types.ToParamsInitChain(*r.InitChain)) - responses <- types.ToResponseInitChain(types.FromResultInitChain(res)) + res := s.app.InitChain(*r.InitChain) + responses <- types.ToResponseInitChain(res) case *types.Request_BeginBlock: - res := s.app.BeginBlock(types.ToParamsBeginBlock(*r.BeginBlock)) - responses <- types.ToResponseBeginBlock(types.FromResultBeginBlock(res)) + res := s.app.BeginBlock(*r.BeginBlock) + responses <- types.ToResponseBeginBlock(res) case *types.Request_EndBlock: - res := s.app.EndBlock(types.ToParamsEndBlock(*r.EndBlock)) - responses <- types.ToResponseEndBlock(types.FromResultEndBlock(res)) + res := s.app.EndBlock(*r.EndBlock) + responses <- types.ToResponseEndBlock(res) default: responses <- types.ToResponseException("Unknown request") } diff --git a/tests/server/client.go b/tests/server/client.go index e1d028507..14b4007a1 100644 --- a/tests/server/client.go +++ b/tests/server/client.go @@ -12,12 +12,11 @@ import ( func InitChain(client abcicli.Client) error { total := 10 - vals := make([]*types.Validator, total) + vals := make([]types.Validator, total) for i := 0; i < total; i++ { pubkey := cmn.RandBytes(33) power := cmn.RandInt() - v := types.Ed25519Validator(pubkey, int64(power)) - vals[i] = &v + vals[i] = types.Ed25519Validator(pubkey, int64(power)) } _, err := client.InitChainSync(types.RequestInitChain{ Validators: vals, diff --git a/types/application.go b/types/application.go index 03d0c8fb0..ef1bc92e5 100644 --- a/types/application.go +++ b/types/application.go @@ -6,23 +6,23 @@ import ( // Application is an interface that enables any finite, deterministic state machine // to be driven by a blockchain-based replication engine via the ABCI. -// All methods take a ParamsXxx argument and return a ResultXxx argument, +// All methods take a RequestXxx argument and return a ResponseXxx argument, // except CheckTx/DeliverTx, which take `tx []byte`, and `Commit`, which takes nothing. type Application interface { // Info/Query Connection - Info(ParamsInfo) ResultInfo // Return application info - SetOption(ParamsSetOption) ResultSetOption // Set application option - Query(ParamsQuery) ResultQuery // Query for state + Info(RequestInfo) ResponseInfo // Return application info + SetOption(RequestSetOption) ResponseSetOption // Set application option + Query(RequestQuery) ResponseQuery // Query for state // Mempool Connection - CheckTx(tx []byte) ResultCheckTx // Validate a tx for the mempool + CheckTx(tx []byte) ResponseCheckTx // Validate a tx for the mempool // Consensus Connection - InitChain(ParamsInitChain) ResultInitChain // Initialize blockchain with validators and other info from TendermintCore - BeginBlock(ParamsBeginBlock) ResultBeginBlock // Signals the beginning of a block - DeliverTx(tx []byte) ResultDeliverTx // Deliver a tx for full processing - EndBlock(ParamsEndBlock) ResultEndBlock // Signals the end of a block, returns changes to the validator set - Commit() ResultCommit // Commit the state and return the application Merkle root hash + InitChain(RequestInitChain) ResponseInitChain // Initialize blockchain with validators and other info from TendermintCore + BeginBlock(RequestBeginBlock) ResponseBeginBlock // Signals the beginning of a block + DeliverTx(tx []byte) 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 } //------------------------------------------------------- @@ -37,40 +37,40 @@ func NewBaseApplication() *BaseApplication { return &BaseApplication{} } -func (BaseApplication) Info(req ParamsInfo) ResultInfo { - return ResultInfo{} +func (BaseApplication) Info(req RequestInfo) ResponseInfo { + return ResponseInfo{} } -func (BaseApplication) SetOption(req ParamsSetOption) ResultSetOption { - return ResultSetOption{} +func (BaseApplication) SetOption(req RequestSetOption) ResponseSetOption { + return ResponseSetOption{} } -func (BaseApplication) DeliverTx(tx []byte) ResultDeliverTx { - return ResultDeliverTx{Code: CodeTypeOK} +func (BaseApplication) DeliverTx(tx []byte) ResponseDeliverTx { + return ResponseDeliverTx{Code: CodeTypeOK} } -func (BaseApplication) CheckTx(tx []byte) ResultCheckTx { - return ResultCheckTx{Code: CodeTypeOK} +func (BaseApplication) CheckTx(tx []byte) ResponseCheckTx { + return ResponseCheckTx{Code: CodeTypeOK} } -func (BaseApplication) Commit() ResultCommit { - return ResultCommit{} +func (BaseApplication) Commit() ResponseCommit { + return ResponseCommit{} } -func (BaseApplication) Query(req ParamsQuery) ResultQuery { - return ResultQuery{Code: CodeTypeOK} +func (BaseApplication) Query(req RequestQuery) ResponseQuery { + return ResponseQuery{Code: CodeTypeOK} } -func (BaseApplication) InitChain(req ParamsInitChain) ResultInitChain { - return ResultInitChain{} +func (BaseApplication) InitChain(req RequestInitChain) ResponseInitChain { + return ResponseInitChain{} } -func (BaseApplication) BeginBlock(req ParamsBeginBlock) ResultBeginBlock { - return ResultBeginBlock{} +func (BaseApplication) BeginBlock(req RequestBeginBlock) ResponseBeginBlock { + return ResponseBeginBlock{} } -func (BaseApplication) EndBlock(req ParamsEndBlock) ResultEndBlock { - return ResultEndBlock{} +func (BaseApplication) EndBlock(req RequestEndBlock) ResponseEndBlock { + return ResponseEndBlock{} } //------------------------------------------------------- @@ -93,55 +93,46 @@ func (app *GRPCApplication) Flush(ctx context.Context, req *RequestFlush) (*Resp } func (app *GRPCApplication) Info(ctx context.Context, req *RequestInfo) (*ResponseInfo, error) { - res := app.app.Info(ToParamsInfo(*req)) - r := FromResultInfo(res) - return &r, nil + res := app.app.Info(*req) + return &res, nil } func (app *GRPCApplication) SetOption(ctx context.Context, req *RequestSetOption) (*ResponseSetOption, error) { - res := app.app.SetOption(ToParamsSetOption(*req)) - r := FromResultSetOption(res) - return &r, nil + res := app.app.SetOption(*req) + return &res, nil } func (app *GRPCApplication) DeliverTx(ctx context.Context, req *RequestDeliverTx) (*ResponseDeliverTx, error) { res := app.app.DeliverTx(req.Tx) - r := FromResultDeliverTx(res) - return &r, nil + return &res, nil } func (app *GRPCApplication) CheckTx(ctx context.Context, req *RequestCheckTx) (*ResponseCheckTx, error) { res := app.app.CheckTx(req.Tx) - r := FromResultCheckTx(res) - return &r, nil + return &res, nil } func (app *GRPCApplication) Query(ctx context.Context, req *RequestQuery) (*ResponseQuery, error) { - res := app.app.Query(ToParamsQuery(*req)) - r := FromResultQuery(res) - return &r, nil + res := app.app.Query(*req) + return &res, nil } func (app *GRPCApplication) Commit(ctx context.Context, req *RequestCommit) (*ResponseCommit, error) { res := app.app.Commit() - r := FromResultCommit(res) - return &r, nil + return &res, nil } func (app *GRPCApplication) InitChain(ctx context.Context, req *RequestInitChain) (*ResponseInitChain, error) { - res := app.app.InitChain(ToParamsInitChain(*req)) - r := FromResultInitChain(res) - return &r, nil + res := app.app.InitChain(*req) + return &res, nil } func (app *GRPCApplication) BeginBlock(ctx context.Context, req *RequestBeginBlock) (*ResponseBeginBlock, error) { - res := app.app.BeginBlock(ToParamsBeginBlock(*req)) - r := FromResultBeginBlock(res) - return &r, nil + res := app.app.BeginBlock(*req) + return &res, nil } func (app *GRPCApplication) EndBlock(ctx context.Context, req *RequestEndBlock) (*ResponseEndBlock, error) { - res := app.app.EndBlock(ToParamsEndBlock(*req)) - r := FromResultEndBlock(res) - return &r, nil + res := app.app.EndBlock(*req) + return &res, nil } diff --git a/types/codetype.go b/types/codetype.go deleted file mode 100644 index 287f9e814..000000000 --- a/types/codetype.go +++ /dev/null @@ -1,67 +0,0 @@ -package types - -const ( - CodeTypeOK uint32 = 0 -) - -// IsOK returns true if Code is OK. -func (r ResponseCheckTx) IsOK() bool { - return r.Code == CodeTypeOK -} - -// IsErr returns true if Code is something other than OK. -func (r ResponseCheckTx) IsErr() bool { - return r.Code != CodeTypeOK -} - -// IsOK returns true if Code is OK. -func (r ResponseDeliverTx) IsOK() bool { - return r.Code == CodeTypeOK -} - -// IsErr returns true if Code is something other than OK. -func (r ResponseDeliverTx) IsErr() bool { - return r.Code != CodeTypeOK -} - -// IsOK returns true if Code is OK. -func (r ResponseQuery) IsOK() bool { - return r.Code == CodeTypeOK -} - -// IsErr returns true if Code is something other than OK. -func (r ResponseQuery) IsErr() bool { - return r.Code != CodeTypeOK -} - -//---------------------------------------------------- - -// IsOK returns true if Code is OK. -func (r ResultCheckTx) IsOK() bool { - return r.Code == CodeTypeOK -} - -// IsErr returns true if Code is something other than OK. -func (r ResultCheckTx) IsErr() bool { - return r.Code != CodeTypeOK -} - -// IsOK returns true if Code is OK. -func (r ResultDeliverTx) IsOK() bool { - return r.Code == CodeTypeOK -} - -// IsErr returns true if Code is something other than OK. -func (r ResultDeliverTx) IsErr() bool { - return r.Code != CodeTypeOK -} - -// IsOK returns true if Code is OK. -func (r ResultQuery) IsOK() bool { - return r.Code == CodeTypeOK -} - -// IsErr returns true if Code is something other than OK. -func (r ResultQuery) IsErr() bool { - return r.Code != CodeTypeOK -} diff --git a/types/json.go b/types/json.go deleted file mode 100644 index 9bbf01a03..000000000 --- a/types/json.go +++ /dev/null @@ -1,87 +0,0 @@ -package types - -import ( - "bytes" - "encoding/json" - - "github.com/golang/protobuf/jsonpb" -) - -//--------------------------------------------------------------------------- -// override JSON marshalling so we dont emit defaults (ie. disable omitempty) -// note we need Unmarshal functions too because protobuf had the bright idea -// to marshal int64->string. cool. cool, cool, cool: https://developers.google.com/protocol-buffers/docs/proto3#json - -var ( - jsonpbMarshaller = jsonpb.Marshaler{ - EnumsAsInts: true, - EmitDefaults: false, - } - jsonpbUnmarshaller = jsonpb.Unmarshaler{} -) - -func (r *ResponseSetOption) MarshalJSON() ([]byte, error) { - s, err := jsonpbMarshaller.MarshalToString(r) - return []byte(s), err -} - -func (r *ResponseSetOption) UnmarshalJSON(b []byte) error { - reader := bytes.NewBuffer(b) - return jsonpbUnmarshaller.Unmarshal(reader, r) -} - -func (r *ResponseCheckTx) MarshalJSON() ([]byte, error) { - s, err := jsonpbMarshaller.MarshalToString(r) - return []byte(s), err -} - -func (r *ResponseCheckTx) UnmarshalJSON(b []byte) error { - reader := bytes.NewBuffer(b) - return jsonpbUnmarshaller.Unmarshal(reader, r) -} - -func (r *ResponseDeliverTx) MarshalJSON() ([]byte, error) { - s, err := jsonpbMarshaller.MarshalToString(r) - return []byte(s), err -} - -func (r *ResponseDeliverTx) UnmarshalJSON(b []byte) error { - reader := bytes.NewBuffer(b) - return jsonpbUnmarshaller.Unmarshal(reader, r) -} - -func (r *ResponseQuery) MarshalJSON() ([]byte, error) { - s, err := jsonpbMarshaller.MarshalToString(r) - return []byte(s), err -} - -func (r *ResponseQuery) UnmarshalJSON(b []byte) error { - reader := bytes.NewBuffer(b) - return jsonpbUnmarshaller.Unmarshal(reader, r) -} - -func (r *ResponseCommit) MarshalJSON() ([]byte, error) { - s, err := jsonpbMarshaller.MarshalToString(r) - return []byte(s), err -} - -func (r *ResponseCommit) UnmarshalJSON(b []byte) error { - reader := bytes.NewBuffer(b) - return jsonpbUnmarshaller.Unmarshal(reader, r) -} - -// Some compile time assertions to ensure we don't -// have accidental runtime surprises later on. - -// jsonEncodingRoundTripper ensures that asserted -// interfaces implement both MarshalJSON and UnmarshalJSON -type jsonRoundTripper interface { - json.Marshaler - json.Unmarshaler -} - -var _ jsonRoundTripper = (*ResponseCommit)(nil) -var _ jsonRoundTripper = (*ResponseQuery)(nil) -var _ jsonRoundTripper = (*ResponseDeliverTx)(nil) -var _ jsonRoundTripper = (*ResponseCheckTx)(nil) -var _ jsonRoundTripper = (*ResponseSetOption)(nil) diff --git a/types/messages.go b/types/messages.go index e4d1c68f9..52e4b6758 100644 --- a/types/messages.go +++ b/types/messages.go @@ -5,7 +5,7 @@ import ( "encoding/binary" "io" - "github.com/golang/protobuf/proto" + "github.com/gogo/protobuf/proto" ) const ( @@ -27,12 +27,12 @@ func ReadMessage(r io.Reader, msg proto.Message) error { } func readProtoMsg(r io.Reader, msg proto.Message, maxSize int) error { - // binary.ReadUvarint takes an io.ByteReader, eg. a bufio.Reader + // binary.ReadVarint takes an io.ByteReader, eg. a bufio.Reader reader, ok := r.(*bufio.Reader) if !ok { reader = bufio.NewReader(r) } - length64, err := binary.ReadUvarint(reader) + length64, err := binary.ReadVarint(reader) if err != nil { return err } @@ -48,11 +48,11 @@ func readProtoMsg(r io.Reader, msg proto.Message, maxSize int) error { } //----------------------------------------------------------------------- -// NOTE: we copied wire.EncodeByteSlice from go-amino rather than keep -// go-amino as a dep +// NOTE: we copied wire.EncodeByteSlice from go-wire rather than keep +// go-wire as a dep func encodeByteSlice(w io.Writer, bz []byte) (err error) { - err = encodeUvarint(w, uint64(len(bz))) + err = encodeVarint(w, int64(len(bz))) if err != nil { return } @@ -60,9 +60,9 @@ func encodeByteSlice(w io.Writer, bz []byte) (err error) { return } -func encodeUvarint(w io.Writer, u uint64) (err error) { +func encodeVarint(w io.Writer, i int64) (err error) { var buf [10]byte - n := binary.PutUvarint(buf[:], u) + n := binary.PutVarint(buf[:], i) _, err = w.Write(buf[0:n]) return } diff --git a/types/messages_test.go b/types/messages_test.go index fb93a0ab8..21d3595f0 100644 --- a/types/messages_test.go +++ b/types/messages_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/golang/protobuf/proto" + "github.com/gogo/protobuf/proto" "github.com/stretchr/testify/assert" cmn "github.com/tendermint/tmlibs/common" ) @@ -21,7 +21,7 @@ func TestMarshalJSON(t *testing.T) { Code: 1, Data: []byte("hello"), GasWanted: 43, - Tags: []*cmn.KVPair{ + Tags: []cmn.KVPair{ {[]byte("pho"), []byte("bo")}, }, } @@ -82,8 +82,8 @@ func TestWriteReadMessage2(t *testing.T) { Data: []byte(phrase), Log: phrase, GasWanted: 10, - Tags: []*cmn.KVPair{ - {[]byte("abc"), []byte("def")}, + Tags: []cmn.KVPair{ + cmn.KVPair{[]byte("abc"), []byte("def")}, }, // Fee: cmn.KI64Pair{ }, diff --git a/types/params.go b/types/params.go deleted file mode 100644 index dbf5021e4..000000000 --- a/types/params.go +++ /dev/null @@ -1,111 +0,0 @@ -package types - -type ParamsEcho struct { - Message string `json:"message,omitempty"` -} - -type ParamsFlush struct { -} - -type ParamsInfo struct { - Version string `json:"version,omitempty"` -} - -func ToParamsInfo(req RequestInfo) ParamsInfo { - return ParamsInfo{ - Version: req.Version, - } -} - -type ParamsSetOption struct { - Key string `json:"key,omitempty"` - Value string `json:"value,omitempty"` -} - -func ToParamsSetOption(req RequestSetOption) ParamsSetOption { - return ParamsSetOption{ - Key: req.Key, - Value: req.Value, - } -} - -type ParamsInitChain struct { - Validators []Validator `json:"validators"` - GenesisBytes []byte `json:"genesis_bytes,omitempty"` -} - -func ToParamsInitChain(req RequestInitChain) ParamsInitChain { - vals := make([]Validator, len(req.Validators)) - for i := 0; i < len(vals); i++ { - v := req.Validators[i] - vals[i] = *v - } - return ParamsInitChain{ - Validators: vals, - GenesisBytes: req.GenesisBytes, - } -} - -type ParamsQuery struct { - Data []byte `json:"data,omitempty"` - Path string `json:"path,omitempty"` - Height int64 `json:"height,omitempty"` - Prove bool `json:"prove,omitempty"` -} - -func ToParamsQuery(req RequestQuery) ParamsQuery { - return ParamsQuery{ - Data: req.Data, - Path: req.Path, - Height: req.Height, - Prove: req.Prove, - } -} - -type ParamsBeginBlock struct { - Hash []byte `json:"hash,omitempty"` - Header Header `json:"header"` - Validators []SigningValidator `json:"validators,omitempty"` - ByzantineValidators []Evidence `json:"byzantine_validators"` -} - -func ToParamsBeginBlock(req RequestBeginBlock) ParamsBeginBlock { - vals := make([]SigningValidator, len(req.Validators)) - for i := 0; i < len(vals); i++ { - v := req.Validators[i] - vals[i] = *v - } - - evidence := make([]Evidence, len(req.ByzantineValidators)) - for i := 0; i < len(evidence); i++ { - ev := req.ByzantineValidators[i] - evidence[i] = *ev - } - return ParamsBeginBlock{ - Hash: req.Hash, - Header: *req.Header, - Validators: vals, - ByzantineValidators: evidence, - } -} - -type ParamsCheckTx struct { - Tx []byte `json:"tx,omitempty"` -} - -type ParamsDeliverTx struct { - Tx []byte `json:"tx,omitempty"` -} - -type ParamsEndBlock struct { - Height int64 `json:"height,omitempty"` -} - -func ToParamsEndBlock(req RequestEndBlock) ParamsEndBlock { - return ParamsEndBlock{ - Height: req.Height, - } -} - -type ParamsCommit struct { -} diff --git a/types/protoreplace/protoreplace.go b/types/protoreplace/protoreplace.go new file mode 100644 index 000000000..3ea0c73da --- /dev/null +++ b/types/protoreplace/protoreplace.go @@ -0,0 +1,55 @@ +// +build ignore + +package main + +import ( + "bytes" + "fmt" + "io/ioutil" + "os" + "os/exec" + "regexp" + "strings" +) + +// This script replaces most `[]byte` with `data.Bytes` in a `.pb.go` file. +// It was written before we realized we could use `gogo/protobuf` to achieve +// this more natively. So it's here for safe keeping in case we ever need to +// abandon `gogo/protobuf`. + +func main() { + bytePattern := regexp.MustCompile("[[][]]byte") + const oldPath = "types/types.pb.go" + const tmpPath = "types/types.pb.new" + content, err := ioutil.ReadFile(oldPath) + if err != nil { + panic("cannot read " + oldPath) + os.Exit(1) + } + lines := bytes.Split(content, []byte("\n")) + outFile, _ := os.Create(tmpPath) + wroteImport := false + for _, line_bytes := range lines { + line := string(line_bytes) + gotPackageLine := strings.HasPrefix(line, "package ") + writeImportTime := strings.HasPrefix(line, "import ") + containsDescriptor := strings.Contains(line, "Descriptor") + containsByteArray := strings.Contains(line, "[]byte") + if containsByteArray && !containsDescriptor { + line = string(bytePattern.ReplaceAll([]byte(line), []byte("data.Bytes"))) + } + if writeImportTime && !wroteImport { + wroteImport = true + fmt.Fprintf(outFile, "import \"github.com/tendermint/go-wire/data\"\n") + + } + if gotPackageLine { + fmt.Fprintf(outFile, "%s\n", "//nolint: gas") + } + fmt.Fprintf(outFile, "%s\n", line) + } + outFile.Close() + os.Remove(oldPath) + os.Rename(tmpPath, oldPath) + exec.Command("goimports", "-w", oldPath) +} diff --git a/types/pubkey.go b/types/pubkey.go new file mode 100644 index 000000000..e5cd5fbf3 --- /dev/null +++ b/types/pubkey.go @@ -0,0 +1,16 @@ +package types + +const ( + PubKeyEd25519 = "ed25519" +) + +func Ed25519Validator(pubkey []byte, power int64) Validator { + return Validator{ + // Address: + PubKey: PubKey{ + Type: PubKeyEd25519, + Data: pubkey, + }, + Power: power, + } +} diff --git a/types/result.go b/types/result.go index 63cea4496..dbf409f4c 100644 --- a/types/result.go +++ b/types/result.go @@ -1,170 +1,121 @@ package types -import cmn "github.com/tendermint/tmlibs/common" +import ( + "bytes" + "encoding/json" -// nondeterministic -type ResultException struct { - Error string `json:"error,omitempty"` -} + "github.com/gogo/protobuf/jsonpb" +) -type ResultEcho struct { - Message string `json:"message,omitempty"` -} +const ( + CodeTypeOK uint32 = 0 +) -type ResultFlush struct { +// IsOK returns true if Code is OK. +func (r ResponseCheckTx) IsOK() bool { + return r.Code == CodeTypeOK } -type ResultInfo struct { - Data string `json:"data,omitempty"` - Version string `json:"version,omitempty"` - LastBlockHeight int64 `json:"last_block_height,omitempty"` - LastBlockAppHash []byte `json:"last_block_app_hash,omitempty"` +// IsErr returns true if Code is something other than OK. +func (r ResponseCheckTx) IsErr() bool { + return r.Code != CodeTypeOK } -func FromResultInfo(res ResultInfo) ResponseInfo { - return ResponseInfo(res) +// IsOK returns true if Code is OK. +func (r ResponseDeliverTx) IsOK() bool { + return r.Code == CodeTypeOK } -type ResultSetOption struct { - Code uint32 `json:"code,omitempty"` - // bytes data = 2; - Log string `json:"log,omitempty"` - Info string `json:"info,omitempty"` +// IsErr returns true if Code is something other than OK. +func (r ResponseDeliverTx) IsErr() bool { + return r.Code != CodeTypeOK } -func FromResultSetOption(res ResultSetOption) ResponseSetOption { - return ResponseSetOption(res) +// IsOK returns true if Code is OK. +func (r ResponseQuery) IsOK() bool { + return r.Code == CodeTypeOK } -type ResultInitChain struct { - Validators []Validator `json:"validators"` +// IsErr returns true if Code is something other than OK. +func (r ResponseQuery) IsErr() bool { + return r.Code != CodeTypeOK } -func FromResultInitChain(res ResultInitChain) ResponseInitChain { - vals := valsToPointers(res.Validators) - return ResponseInitChain{ - Validators: vals, +//--------------------------------------------------------------------------- +// override JSON marshalling so we dont emit defaults (ie. disable omitempty) +// note we need Unmarshal functions too because protobuf had the bright idea +// to marshal int64->string. cool. cool, cool, cool: https://developers.google.com/protocol-buffers/docs/proto3#json + +var ( + jsonpbMarshaller = jsonpb.Marshaler{ + EnumsAsInts: true, + EmitDefaults: false, } -} + jsonpbUnmarshaller = jsonpb.Unmarshaler{} +) -type ResultQuery struct { - Code uint32 `json:"code,omitempty"` - // bytes data = 2; // use "value" instead. - Log string `json:"log,omitempty"` - Info string `json:"info,omitempty"` - Index int64 `json:"index,omitempty"` - Key []byte `json:"key,omitempty"` - Value []byte `json:"value,omitempty"` - Proof []byte `json:"proof,omitempty"` - Height int64 `json:"height,omitempty"` +func (r *ResponseSetOption) MarshalJSON() ([]byte, error) { + s, err := jsonpbMarshaller.MarshalToString(r) + return []byte(s), err } -func FromResultQuery(res ResultQuery) ResponseQuery { - return ResponseQuery(res) +func (r *ResponseSetOption) UnmarshalJSON(b []byte) error { + reader := bytes.NewBuffer(b) + return jsonpbUnmarshaller.Unmarshal(reader, r) } -type ResultBeginBlock struct { - Tags []cmn.KVPair `json:"tags,omitempty"` +func (r *ResponseCheckTx) MarshalJSON() ([]byte, error) { + s, err := jsonpbMarshaller.MarshalToString(r) + return []byte(s), err } -func FromResultBeginBlock(res ResultBeginBlock) ResponseBeginBlock { - tags := tagsToPointers(res.Tags) - return ResponseBeginBlock{ - Tags: tags, - } +func (r *ResponseCheckTx) UnmarshalJSON(b []byte) error { + reader := bytes.NewBuffer(b) + return jsonpbUnmarshaller.Unmarshal(reader, r) } -type ResultCheckTx struct { - Code uint32 `json:"code,omitempty"` - Data []byte `json:"data,omitempty"` - Log string `json:"log,omitempty"` - Info string `json:"info,omitempty"` - GasWanted int64 `json:"gas_wanted,omitempty"` - GasUsed int64 `json:"gas_used,omitempty"` - Tags []cmn.KVPair `json:"tags,omitempty"` - Fee cmn.KI64Pair `json:"fee"` -} - -func FromResultCheckTx(res ResultCheckTx) ResponseCheckTx { - tags := tagsToPointers(res.Tags) - return ResponseCheckTx{ - Code: res.Code, - Data: res.Data, - Log: res.Log, - Info: res.Info, - GasWanted: res.GasWanted, - GasUsed: res.GasUsed, - Tags: tags, - Fee: &res.Fee, - } +func (r *ResponseDeliverTx) MarshalJSON() ([]byte, error) { + s, err := jsonpbMarshaller.MarshalToString(r) + return []byte(s), err } -type ResultDeliverTx struct { - Code uint32 `json:"code,omitempty"` - Data []byte `json:"data,omitempty"` - Log string `json:"log,omitempty"` - Info string `json:"info,omitempty"` - GasWanted int64 `json:"gas_wanted,omitempty"` - GasUsed int64 `json:"gas_used,omitempty"` - Tags []cmn.KVPair `json:"tags,omitempty"` - Fee cmn.KI64Pair `json:"fee"` -} - -func FromResultDeliverTx(res ResultDeliverTx) ResponseDeliverTx { - tags := tagsToPointers(res.Tags) - return ResponseDeliverTx{ - Code: res.Code, - Data: res.Data, - Log: res.Log, - Info: res.Info, - GasWanted: res.GasWanted, - GasUsed: res.GasUsed, - Tags: tags, - Fee: &res.Fee, - } +func (r *ResponseDeliverTx) UnmarshalJSON(b []byte) error { + reader := bytes.NewBuffer(b) + return jsonpbUnmarshaller.Unmarshal(reader, r) } -type ResultEndBlock struct { - ValidatorUpdates []Validator `json:"validator_updates"` - ConsensusParamUpdates *ConsensusParams `json:"consensus_param_updates,omitempty"` - Tags []cmn.KVPair `json:"tags,omitempty"` +func (r *ResponseQuery) MarshalJSON() ([]byte, error) { + s, err := jsonpbMarshaller.MarshalToString(r) + return []byte(s), err } -func FromResultEndBlock(res ResultEndBlock) ResponseEndBlock { - tags := tagsToPointers(res.Tags) - vals := valsToPointers(res.ValidatorUpdates) - return ResponseEndBlock{ - ValidatorUpdates: vals, - ConsensusParamUpdates: res.ConsensusParamUpdates, - Tags: tags, - } +func (r *ResponseQuery) UnmarshalJSON(b []byte) error { + reader := bytes.NewBuffer(b) + return jsonpbUnmarshaller.Unmarshal(reader, r) } -type ResultCommit struct { - // reserve 1 - Data []byte `json:"data,omitempty"` +func (r *ResponseCommit) MarshalJSON() ([]byte, error) { + s, err := jsonpbMarshaller.MarshalToString(r) + return []byte(s), err } -func FromResultCommit(res ResultCommit) ResponseCommit { - return ResponseCommit(res) +func (r *ResponseCommit) UnmarshalJSON(b []byte) error { + reader := bytes.NewBuffer(b) + return jsonpbUnmarshaller.Unmarshal(reader, r) } -//------------------------------------------------------- +// Some compile time assertions to ensure we don't +// have accidental runtime surprises later on. -func tagsToPointers(tags []cmn.KVPair) []*cmn.KVPair { - tagPtrs := make([]*cmn.KVPair, len(tags)) - for i := 0; i < len(tags); i++ { - t := tags[i] - tagPtrs[i] = &t - } - return tagPtrs +// jsonEncodingRoundTripper ensures that asserted +// interfaces implement both MarshalJSON and UnmarshalJSON +type jsonRoundTripper interface { + json.Marshaler + json.Unmarshaler } -func valsToPointers(vals []Validator) []*Validator { - valPtrs := make([]*Validator, len(vals)) - for i := 0; i < len(vals); i++ { - v := vals[i] - valPtrs[i] = &v - } - return valPtrs -} +var _ jsonRoundTripper = (*ResponseCommit)(nil) +var _ jsonRoundTripper = (*ResponseQuery)(nil) +var _ jsonRoundTripper = (*ResponseDeliverTx)(nil) +var _ jsonRoundTripper = (*ResponseCheckTx)(nil) +var _ jsonRoundTripper = (*ResponseSetOption)(nil) diff --git a/types/types.pb.go b/types/types.pb.go index 6f6a8874b..e04a4f4bf 100644 --- a/types/types.pb.go +++ b/types/types.pb.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. +// Code generated by protoc-gen-gogo. DO NOT EDIT. // source: types/types.proto /* @@ -46,15 +46,14 @@ It has these top-level messages: //nolint: gas package types -import proto "github.com/golang/protobuf/proto" +import proto "github.com/gogo/protobuf/proto" import fmt "fmt" import math "math" +import _ "github.com/gogo/protobuf/gogoproto" import common "github.com/tendermint/tmlibs/common" -import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" -) +import context "golang.org/x/net/context" +import grpc "google.golang.org/grpc" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -65,7 +64,7 @@ var _ = math.Inf // is compatible with the proto package it is being compiled against. // A compilation error at this line likely means your copy of the // proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package type Request struct { // Types that are valid to be assigned to Value: @@ -86,7 +85,7 @@ type Request struct { func (m *Request) Reset() { *m = Request{} } func (m *Request) String() string { return proto.CompactTextString(m) } func (*Request) ProtoMessage() {} -func (*Request) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (*Request) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{0} } type isRequest_Value interface { isRequest_Value() @@ -244,57 +243,57 @@ func _Request_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { // value switch x := m.Value.(type) { case *Request_Echo: - b.EncodeVarint(2<<3 | proto.WireBytes) + _ = b.EncodeVarint(2<<3 | proto.WireBytes) if err := b.EncodeMessage(x.Echo); err != nil { return err } case *Request_Flush: - b.EncodeVarint(3<<3 | proto.WireBytes) + _ = b.EncodeVarint(3<<3 | proto.WireBytes) if err := b.EncodeMessage(x.Flush); err != nil { return err } case *Request_Info: - b.EncodeVarint(4<<3 | proto.WireBytes) + _ = b.EncodeVarint(4<<3 | proto.WireBytes) if err := b.EncodeMessage(x.Info); err != nil { return err } case *Request_SetOption: - b.EncodeVarint(5<<3 | proto.WireBytes) + _ = b.EncodeVarint(5<<3 | proto.WireBytes) if err := b.EncodeMessage(x.SetOption); err != nil { return err } case *Request_InitChain: - b.EncodeVarint(6<<3 | proto.WireBytes) + _ = b.EncodeVarint(6<<3 | proto.WireBytes) if err := b.EncodeMessage(x.InitChain); err != nil { return err } case *Request_Query: - b.EncodeVarint(7<<3 | proto.WireBytes) + _ = b.EncodeVarint(7<<3 | proto.WireBytes) if err := b.EncodeMessage(x.Query); err != nil { return err } case *Request_BeginBlock: - b.EncodeVarint(8<<3 | proto.WireBytes) + _ = b.EncodeVarint(8<<3 | proto.WireBytes) if err := b.EncodeMessage(x.BeginBlock); err != nil { return err } case *Request_CheckTx: - b.EncodeVarint(9<<3 | proto.WireBytes) + _ = b.EncodeVarint(9<<3 | proto.WireBytes) if err := b.EncodeMessage(x.CheckTx); err != nil { return err } case *Request_DeliverTx: - b.EncodeVarint(19<<3 | proto.WireBytes) + _ = b.EncodeVarint(19<<3 | proto.WireBytes) if err := b.EncodeMessage(x.DeliverTx); err != nil { return err } case *Request_EndBlock: - b.EncodeVarint(11<<3 | proto.WireBytes) + _ = b.EncodeVarint(11<<3 | proto.WireBytes) if err := b.EncodeMessage(x.EndBlock); err != nil { return err } case *Request_Commit: - b.EncodeVarint(12<<3 | proto.WireBytes) + _ = b.EncodeVarint(12<<3 | proto.WireBytes) if err := b.EncodeMessage(x.Commit); err != nil { return err } @@ -468,13 +467,13 @@ func _Request_OneofSizer(msg proto.Message) (n int) { } type RequestEcho struct { - Message string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` } func (m *RequestEcho) Reset() { *m = RequestEcho{} } func (m *RequestEcho) String() string { return proto.CompactTextString(m) } func (*RequestEcho) ProtoMessage() {} -func (*RequestEcho) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } +func (*RequestEcho) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{1} } func (m *RequestEcho) GetMessage() string { if m != nil { @@ -489,16 +488,16 @@ type RequestFlush struct { func (m *RequestFlush) Reset() { *m = RequestFlush{} } func (m *RequestFlush) String() string { return proto.CompactTextString(m) } func (*RequestFlush) ProtoMessage() {} -func (*RequestFlush) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } +func (*RequestFlush) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{2} } type RequestInfo struct { - Version string `protobuf:"bytes,1,opt,name=version" json:"version,omitempty"` + Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` } func (m *RequestInfo) Reset() { *m = RequestInfo{} } func (m *RequestInfo) String() string { return proto.CompactTextString(m) } func (*RequestInfo) ProtoMessage() {} -func (*RequestInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } +func (*RequestInfo) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{3} } func (m *RequestInfo) GetVersion() string { if m != nil { @@ -509,14 +508,14 @@ func (m *RequestInfo) GetVersion() string { // nondeterministic type RequestSetOption struct { - Key string `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } func (m *RequestSetOption) Reset() { *m = RequestSetOption{} } func (m *RequestSetOption) String() string { return proto.CompactTextString(m) } func (*RequestSetOption) ProtoMessage() {} -func (*RequestSetOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } +func (*RequestSetOption) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{4} } func (m *RequestSetOption) GetKey() string { if m != nil { @@ -533,16 +532,16 @@ func (m *RequestSetOption) GetValue() string { } type RequestInitChain struct { - Validators []*Validator `protobuf:"bytes,1,rep,name=validators" json:"validators,omitempty"` - GenesisBytes []byte `protobuf:"bytes,2,opt,name=genesis_bytes,json=genesisBytes,proto3" json:"genesis_bytes,omitempty"` + Validators []Validator `protobuf:"bytes,1,rep,name=validators" json:"validators"` + GenesisBytes []byte `protobuf:"bytes,2,opt,name=genesis_bytes,json=genesisBytes,proto3" json:"genesis_bytes,omitempty"` } func (m *RequestInitChain) Reset() { *m = RequestInitChain{} } func (m *RequestInitChain) String() string { return proto.CompactTextString(m) } func (*RequestInitChain) ProtoMessage() {} -func (*RequestInitChain) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } +func (*RequestInitChain) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{5} } -func (m *RequestInitChain) GetValidators() []*Validator { +func (m *RequestInitChain) GetValidators() []Validator { if m != nil { return m.Validators } @@ -558,15 +557,15 @@ func (m *RequestInitChain) GetGenesisBytes() []byte { type RequestQuery struct { Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` - Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"` - Height int64 `protobuf:"varint,3,opt,name=height" json:"height,omitempty"` - Prove bool `protobuf:"varint,4,opt,name=prove" json:"prove,omitempty"` + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` + Prove bool `protobuf:"varint,4,opt,name=prove,proto3" json:"prove,omitempty"` } func (m *RequestQuery) Reset() { *m = RequestQuery{} } func (m *RequestQuery) String() string { return proto.CompactTextString(m) } func (*RequestQuery) ProtoMessage() {} -func (*RequestQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } +func (*RequestQuery) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{6} } func (m *RequestQuery) GetData() []byte { if m != nil { @@ -598,15 +597,15 @@ func (m *RequestQuery) GetProve() bool { type RequestBeginBlock struct { Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` - Header *Header `protobuf:"bytes,2,opt,name=header" json:"header,omitempty"` + Header Header `protobuf:"bytes,2,opt,name=header" json:"header"` Validators []*SigningValidator `protobuf:"bytes,3,rep,name=validators" json:"validators,omitempty"` - ByzantineValidators []*Evidence `protobuf:"bytes,4,rep,name=byzantine_validators,json=byzantineValidators" json:"byzantine_validators,omitempty"` + ByzantineValidators []Evidence `protobuf:"bytes,4,rep,name=byzantine_validators,json=byzantineValidators" json:"byzantine_validators"` } func (m *RequestBeginBlock) Reset() { *m = RequestBeginBlock{} } func (m *RequestBeginBlock) String() string { return proto.CompactTextString(m) } func (*RequestBeginBlock) ProtoMessage() {} -func (*RequestBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } +func (*RequestBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{7} } func (m *RequestBeginBlock) GetHash() []byte { if m != nil { @@ -615,11 +614,11 @@ func (m *RequestBeginBlock) GetHash() []byte { return nil } -func (m *RequestBeginBlock) GetHeader() *Header { +func (m *RequestBeginBlock) GetHeader() Header { if m != nil { return m.Header } - return nil + return Header{} } func (m *RequestBeginBlock) GetValidators() []*SigningValidator { @@ -629,7 +628,7 @@ func (m *RequestBeginBlock) GetValidators() []*SigningValidator { return nil } -func (m *RequestBeginBlock) GetByzantineValidators() []*Evidence { +func (m *RequestBeginBlock) GetByzantineValidators() []Evidence { if m != nil { return m.ByzantineValidators } @@ -643,7 +642,7 @@ type RequestCheckTx struct { func (m *RequestCheckTx) Reset() { *m = RequestCheckTx{} } func (m *RequestCheckTx) String() string { return proto.CompactTextString(m) } func (*RequestCheckTx) ProtoMessage() {} -func (*RequestCheckTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } +func (*RequestCheckTx) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{8} } func (m *RequestCheckTx) GetTx() []byte { if m != nil { @@ -659,7 +658,7 @@ type RequestDeliverTx struct { func (m *RequestDeliverTx) Reset() { *m = RequestDeliverTx{} } func (m *RequestDeliverTx) String() string { return proto.CompactTextString(m) } func (*RequestDeliverTx) ProtoMessage() {} -func (*RequestDeliverTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } +func (*RequestDeliverTx) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{9} } func (m *RequestDeliverTx) GetTx() []byte { if m != nil { @@ -669,13 +668,13 @@ func (m *RequestDeliverTx) GetTx() []byte { } type RequestEndBlock struct { - Height int64 `protobuf:"varint,1,opt,name=height" json:"height,omitempty"` + Height int64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` } func (m *RequestEndBlock) Reset() { *m = RequestEndBlock{} } func (m *RequestEndBlock) String() string { return proto.CompactTextString(m) } func (*RequestEndBlock) ProtoMessage() {} -func (*RequestEndBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } +func (*RequestEndBlock) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{10} } func (m *RequestEndBlock) GetHeight() int64 { if m != nil { @@ -690,7 +689,7 @@ type RequestCommit struct { func (m *RequestCommit) Reset() { *m = RequestCommit{} } func (m *RequestCommit) String() string { return proto.CompactTextString(m) } func (*RequestCommit) ProtoMessage() {} -func (*RequestCommit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } +func (*RequestCommit) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{11} } type Response struct { // Types that are valid to be assigned to Value: @@ -712,7 +711,7 @@ type Response struct { func (m *Response) Reset() { *m = Response{} } func (m *Response) String() string { return proto.CompactTextString(m) } func (*Response) ProtoMessage() {} -func (*Response) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } +func (*Response) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{12} } type isResponse_Value interface { isResponse_Value() @@ -882,62 +881,62 @@ func _Response_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { // value switch x := m.Value.(type) { case *Response_Exception: - b.EncodeVarint(1<<3 | proto.WireBytes) + _ = b.EncodeVarint(1<<3 | proto.WireBytes) if err := b.EncodeMessage(x.Exception); err != nil { return err } case *Response_Echo: - b.EncodeVarint(2<<3 | proto.WireBytes) + _ = b.EncodeVarint(2<<3 | proto.WireBytes) if err := b.EncodeMessage(x.Echo); err != nil { return err } case *Response_Flush: - b.EncodeVarint(3<<3 | proto.WireBytes) + _ = b.EncodeVarint(3<<3 | proto.WireBytes) if err := b.EncodeMessage(x.Flush); err != nil { return err } case *Response_Info: - b.EncodeVarint(4<<3 | proto.WireBytes) + _ = b.EncodeVarint(4<<3 | proto.WireBytes) if err := b.EncodeMessage(x.Info); err != nil { return err } case *Response_SetOption: - b.EncodeVarint(5<<3 | proto.WireBytes) + _ = b.EncodeVarint(5<<3 | proto.WireBytes) if err := b.EncodeMessage(x.SetOption); err != nil { return err } case *Response_InitChain: - b.EncodeVarint(6<<3 | proto.WireBytes) + _ = b.EncodeVarint(6<<3 | proto.WireBytes) if err := b.EncodeMessage(x.InitChain); err != nil { return err } case *Response_Query: - b.EncodeVarint(7<<3 | proto.WireBytes) + _ = b.EncodeVarint(7<<3 | proto.WireBytes) if err := b.EncodeMessage(x.Query); err != nil { return err } case *Response_BeginBlock: - b.EncodeVarint(8<<3 | proto.WireBytes) + _ = b.EncodeVarint(8<<3 | proto.WireBytes) if err := b.EncodeMessage(x.BeginBlock); err != nil { return err } case *Response_CheckTx: - b.EncodeVarint(9<<3 | proto.WireBytes) + _ = b.EncodeVarint(9<<3 | proto.WireBytes) if err := b.EncodeMessage(x.CheckTx); err != nil { return err } case *Response_DeliverTx: - b.EncodeVarint(10<<3 | proto.WireBytes) + _ = b.EncodeVarint(10<<3 | proto.WireBytes) if err := b.EncodeMessage(x.DeliverTx); err != nil { return err } case *Response_EndBlock: - b.EncodeVarint(11<<3 | proto.WireBytes) + _ = b.EncodeVarint(11<<3 | proto.WireBytes) if err := b.EncodeMessage(x.EndBlock); err != nil { return err } case *Response_Commit: - b.EncodeVarint(12<<3 | proto.WireBytes) + _ = b.EncodeVarint(12<<3 | proto.WireBytes) if err := b.EncodeMessage(x.Commit); err != nil { return err } @@ -1125,13 +1124,13 @@ func _Response_OneofSizer(msg proto.Message) (n int) { // nondeterministic type ResponseException struct { - Error string `protobuf:"bytes,1,opt,name=error" json:"error,omitempty"` + Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` } func (m *ResponseException) Reset() { *m = ResponseException{} } func (m *ResponseException) String() string { return proto.CompactTextString(m) } func (*ResponseException) ProtoMessage() {} -func (*ResponseException) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } +func (*ResponseException) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{13} } func (m *ResponseException) GetError() string { if m != nil { @@ -1141,13 +1140,13 @@ func (m *ResponseException) GetError() string { } type ResponseEcho struct { - Message string `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` } func (m *ResponseEcho) Reset() { *m = ResponseEcho{} } func (m *ResponseEcho) String() string { return proto.CompactTextString(m) } func (*ResponseEcho) ProtoMessage() {} -func (*ResponseEcho) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } +func (*ResponseEcho) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{14} } func (m *ResponseEcho) GetMessage() string { if m != nil { @@ -1162,19 +1161,19 @@ type ResponseFlush struct { func (m *ResponseFlush) Reset() { *m = ResponseFlush{} } func (m *ResponseFlush) String() string { return proto.CompactTextString(m) } func (*ResponseFlush) ProtoMessage() {} -func (*ResponseFlush) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } +func (*ResponseFlush) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{15} } type ResponseInfo struct { - Data string `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"` - Version string `protobuf:"bytes,2,opt,name=version" json:"version,omitempty"` - LastBlockHeight int64 `protobuf:"varint,3,opt,name=last_block_height,json=lastBlockHeight" json:"last_block_height,omitempty"` + Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + LastBlockHeight int64 `protobuf:"varint,3,opt,name=last_block_height,json=lastBlockHeight,proto3" json:"last_block_height,omitempty"` LastBlockAppHash []byte `protobuf:"bytes,4,opt,name=last_block_app_hash,json=lastBlockAppHash,proto3" json:"last_block_app_hash,omitempty"` } func (m *ResponseInfo) Reset() { *m = ResponseInfo{} } func (m *ResponseInfo) String() string { return proto.CompactTextString(m) } func (*ResponseInfo) ProtoMessage() {} -func (*ResponseInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } +func (*ResponseInfo) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{16} } func (m *ResponseInfo) GetData() string { if m != nil { @@ -1206,16 +1205,16 @@ func (m *ResponseInfo) GetLastBlockAppHash() []byte { // nondeterministic type ResponseSetOption struct { - Code uint32 `protobuf:"varint,1,opt,name=code" json:"code,omitempty"` + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // bytes data = 2; - Log string `protobuf:"bytes,3,opt,name=log" json:"log,omitempty"` - Info string `protobuf:"bytes,4,opt,name=info" json:"info,omitempty"` + Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` + Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` } func (m *ResponseSetOption) Reset() { *m = ResponseSetOption{} } func (m *ResponseSetOption) String() string { return proto.CompactTextString(m) } func (*ResponseSetOption) ProtoMessage() {} -func (*ResponseSetOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } +func (*ResponseSetOption) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{17} } func (m *ResponseSetOption) GetCode() uint32 { if m != nil { @@ -1239,15 +1238,15 @@ func (m *ResponseSetOption) GetInfo() string { } type ResponseInitChain struct { - Validators []*Validator `protobuf:"bytes,1,rep,name=validators" json:"validators,omitempty"` + Validators []Validator `protobuf:"bytes,1,rep,name=validators" json:"validators"` } func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} } func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) } func (*ResponseInitChain) ProtoMessage() {} -func (*ResponseInitChain) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } +func (*ResponseInitChain) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{18} } -func (m *ResponseInitChain) GetValidators() []*Validator { +func (m *ResponseInitChain) GetValidators() []Validator { if m != nil { return m.Validators } @@ -1255,21 +1254,21 @@ func (m *ResponseInitChain) GetValidators() []*Validator { } type ResponseQuery struct { - Code uint32 `protobuf:"varint,1,opt,name=code" json:"code,omitempty"` + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // bytes data = 2; // use "value" instead. - Log string `protobuf:"bytes,3,opt,name=log" json:"log,omitempty"` - Info string `protobuf:"bytes,4,opt,name=info" json:"info,omitempty"` - Index int64 `protobuf:"varint,5,opt,name=index" json:"index,omitempty"` + Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` + Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` + Index int64 `protobuf:"varint,5,opt,name=index,proto3" json:"index,omitempty"` Key []byte `protobuf:"bytes,6,opt,name=key,proto3" json:"key,omitempty"` Value []byte `protobuf:"bytes,7,opt,name=value,proto3" json:"value,omitempty"` Proof []byte `protobuf:"bytes,8,opt,name=proof,proto3" json:"proof,omitempty"` - Height int64 `protobuf:"varint,9,opt,name=height" json:"height,omitempty"` + Height int64 `protobuf:"varint,9,opt,name=height,proto3" json:"height,omitempty"` } func (m *ResponseQuery) Reset() { *m = ResponseQuery{} } func (m *ResponseQuery) String() string { return proto.CompactTextString(m) } func (*ResponseQuery) ProtoMessage() {} -func (*ResponseQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } +func (*ResponseQuery) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{19} } func (m *ResponseQuery) GetCode() uint32 { if m != nil { @@ -1328,15 +1327,15 @@ func (m *ResponseQuery) GetHeight() int64 { } type ResponseBeginBlock struct { - Tags []*common.KVPair `protobuf:"bytes,1,rep,name=tags" json:"tags,omitempty"` + Tags []common.KVPair `protobuf:"bytes,1,rep,name=tags" json:"tags,omitempty"` } func (m *ResponseBeginBlock) Reset() { *m = ResponseBeginBlock{} } func (m *ResponseBeginBlock) String() string { return proto.CompactTextString(m) } func (*ResponseBeginBlock) ProtoMessage() {} -func (*ResponseBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } +func (*ResponseBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{20} } -func (m *ResponseBeginBlock) GetTags() []*common.KVPair { +func (m *ResponseBeginBlock) GetTags() []common.KVPair { if m != nil { return m.Tags } @@ -1344,20 +1343,20 @@ func (m *ResponseBeginBlock) GetTags() []*common.KVPair { } type ResponseCheckTx struct { - Code uint32 `protobuf:"varint,1,opt,name=code" json:"code,omitempty"` - Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` - Log string `protobuf:"bytes,3,opt,name=log" json:"log,omitempty"` - Info string `protobuf:"bytes,4,opt,name=info" json:"info,omitempty"` - GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted" json:"gas_wanted,omitempty"` - GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed" json:"gas_used,omitempty"` - Tags []*common.KVPair `protobuf:"bytes,7,rep,name=tags" json:"tags,omitempty"` - Fee *common.KI64Pair `protobuf:"bytes,8,opt,name=fee" json:"fee,omitempty"` + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` + Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` + GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"` + GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"` + Tags []common.KVPair `protobuf:"bytes,7,rep,name=tags" json:"tags,omitempty"` + Fee common.KI64Pair `protobuf:"bytes,8,opt,name=fee" json:"fee"` } func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} } func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) } func (*ResponseCheckTx) ProtoMessage() {} -func (*ResponseCheckTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } +func (*ResponseCheckTx) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{21} } func (m *ResponseCheckTx) GetCode() uint32 { if m != nil { @@ -1401,35 +1400,35 @@ func (m *ResponseCheckTx) GetGasUsed() int64 { return 0 } -func (m *ResponseCheckTx) GetTags() []*common.KVPair { +func (m *ResponseCheckTx) GetTags() []common.KVPair { if m != nil { return m.Tags } return nil } -func (m *ResponseCheckTx) GetFee() *common.KI64Pair { +func (m *ResponseCheckTx) GetFee() common.KI64Pair { if m != nil { return m.Fee } - return nil + return common.KI64Pair{} } type ResponseDeliverTx struct { - Code uint32 `protobuf:"varint,1,opt,name=code" json:"code,omitempty"` - Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` - Log string `protobuf:"bytes,3,opt,name=log" json:"log,omitempty"` - Info string `protobuf:"bytes,4,opt,name=info" json:"info,omitempty"` - GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted" json:"gas_wanted,omitempty"` - GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed" json:"gas_used,omitempty"` - Tags []*common.KVPair `protobuf:"bytes,7,rep,name=tags" json:"tags,omitempty"` - Fee *common.KI64Pair `protobuf:"bytes,8,opt,name=fee" json:"fee,omitempty"` + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Log string `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` + Info string `protobuf:"bytes,4,opt,name=info,proto3" json:"info,omitempty"` + GasWanted int64 `protobuf:"varint,5,opt,name=gas_wanted,json=gasWanted,proto3" json:"gas_wanted,omitempty"` + GasUsed int64 `protobuf:"varint,6,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"` + Tags []common.KVPair `protobuf:"bytes,7,rep,name=tags" json:"tags,omitempty"` + Fee common.KI64Pair `protobuf:"bytes,8,opt,name=fee" json:"fee"` } func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} } func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) } func (*ResponseDeliverTx) ProtoMessage() {} -func (*ResponseDeliverTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } +func (*ResponseDeliverTx) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{22} } func (m *ResponseDeliverTx) GetCode() uint32 { if m != nil { @@ -1473,32 +1472,32 @@ func (m *ResponseDeliverTx) GetGasUsed() int64 { return 0 } -func (m *ResponseDeliverTx) GetTags() []*common.KVPair { +func (m *ResponseDeliverTx) GetTags() []common.KVPair { if m != nil { return m.Tags } return nil } -func (m *ResponseDeliverTx) GetFee() *common.KI64Pair { +func (m *ResponseDeliverTx) GetFee() common.KI64Pair { if m != nil { return m.Fee } - return nil + return common.KI64Pair{} } type ResponseEndBlock struct { - ValidatorUpdates []*Validator `protobuf:"bytes,1,rep,name=validator_updates,json=validatorUpdates" json:"validator_updates,omitempty"` + ValidatorUpdates []Validator `protobuf:"bytes,1,rep,name=validator_updates,json=validatorUpdates" json:"validator_updates"` ConsensusParamUpdates *ConsensusParams `protobuf:"bytes,2,opt,name=consensus_param_updates,json=consensusParamUpdates" json:"consensus_param_updates,omitempty"` - Tags []*common.KVPair `protobuf:"bytes,3,rep,name=tags" json:"tags,omitempty"` + Tags []common.KVPair `protobuf:"bytes,3,rep,name=tags" json:"tags,omitempty"` } func (m *ResponseEndBlock) Reset() { *m = ResponseEndBlock{} } func (m *ResponseEndBlock) String() string { return proto.CompactTextString(m) } func (*ResponseEndBlock) ProtoMessage() {} -func (*ResponseEndBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } +func (*ResponseEndBlock) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{23} } -func (m *ResponseEndBlock) GetValidatorUpdates() []*Validator { +func (m *ResponseEndBlock) GetValidatorUpdates() []Validator { if m != nil { return m.ValidatorUpdates } @@ -1512,7 +1511,7 @@ func (m *ResponseEndBlock) GetConsensusParamUpdates() *ConsensusParams { return nil } -func (m *ResponseEndBlock) GetTags() []*common.KVPair { +func (m *ResponseEndBlock) GetTags() []common.KVPair { if m != nil { return m.Tags } @@ -1527,7 +1526,7 @@ type ResponseCommit struct { func (m *ResponseCommit) Reset() { *m = ResponseCommit{} } func (m *ResponseCommit) String() string { return proto.CompactTextString(m) } func (*ResponseCommit) ProtoMessage() {} -func (*ResponseCommit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } +func (*ResponseCommit) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{24} } func (m *ResponseCommit) GetData() []byte { if m != nil { @@ -1547,7 +1546,7 @@ type ConsensusParams struct { func (m *ConsensusParams) Reset() { *m = ConsensusParams{} } func (m *ConsensusParams) String() string { return proto.CompactTextString(m) } func (*ConsensusParams) ProtoMessage() {} -func (*ConsensusParams) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } +func (*ConsensusParams) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{25} } func (m *ConsensusParams) GetBlockSize() *BlockSize { if m != nil { @@ -1572,15 +1571,15 @@ func (m *ConsensusParams) GetBlockGossip() *BlockGossip { // BlockSize contain limits on the block size. type BlockSize struct { - MaxBytes int32 `protobuf:"varint,1,opt,name=max_bytes,json=maxBytes" json:"max_bytes,omitempty"` - MaxTxs int32 `protobuf:"varint,2,opt,name=max_txs,json=maxTxs" json:"max_txs,omitempty"` - MaxGas int64 `protobuf:"varint,3,opt,name=max_gas,json=maxGas" json:"max_gas,omitempty"` + MaxBytes int32 `protobuf:"varint,1,opt,name=max_bytes,json=maxBytes,proto3" json:"max_bytes,omitempty"` + MaxTxs int32 `protobuf:"varint,2,opt,name=max_txs,json=maxTxs,proto3" json:"max_txs,omitempty"` + MaxGas int64 `protobuf:"varint,3,opt,name=max_gas,json=maxGas,proto3" json:"max_gas,omitempty"` } func (m *BlockSize) Reset() { *m = BlockSize{} } func (m *BlockSize) String() string { return proto.CompactTextString(m) } func (*BlockSize) ProtoMessage() {} -func (*BlockSize) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } +func (*BlockSize) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{26} } func (m *BlockSize) GetMaxBytes() int32 { if m != nil { @@ -1605,14 +1604,14 @@ func (m *BlockSize) GetMaxGas() int64 { // TxSize contain limits on the tx size. type TxSize struct { - MaxBytes int32 `protobuf:"varint,1,opt,name=max_bytes,json=maxBytes" json:"max_bytes,omitempty"` - MaxGas int64 `protobuf:"varint,2,opt,name=max_gas,json=maxGas" json:"max_gas,omitempty"` + MaxBytes int32 `protobuf:"varint,1,opt,name=max_bytes,json=maxBytes,proto3" json:"max_bytes,omitempty"` + MaxGas int64 `protobuf:"varint,2,opt,name=max_gas,json=maxGas,proto3" json:"max_gas,omitempty"` } func (m *TxSize) Reset() { *m = TxSize{} } func (m *TxSize) String() string { return proto.CompactTextString(m) } func (*TxSize) ProtoMessage() {} -func (*TxSize) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } +func (*TxSize) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{27} } func (m *TxSize) GetMaxBytes() int32 { if m != nil { @@ -1632,13 +1631,13 @@ func (m *TxSize) GetMaxGas() int64 { // elements of how blocks are gossiped type BlockGossip struct { // Note: must not be 0 - BlockPartSizeBytes int32 `protobuf:"varint,1,opt,name=block_part_size_bytes,json=blockPartSizeBytes" json:"block_part_size_bytes,omitempty"` + BlockPartSizeBytes int32 `protobuf:"varint,1,opt,name=block_part_size_bytes,json=blockPartSizeBytes,proto3" json:"block_part_size_bytes,omitempty"` } func (m *BlockGossip) Reset() { *m = BlockGossip{} } func (m *BlockGossip) String() string { return proto.CompactTextString(m) } func (*BlockGossip) ProtoMessage() {} -func (*BlockGossip) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } +func (*BlockGossip) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{28} } func (m *BlockGossip) GetBlockPartSizeBytes() int32 { if m != nil { @@ -1650,12 +1649,12 @@ func (m *BlockGossip) GetBlockPartSizeBytes() int32 { // just the minimum the app might need type Header struct { // basics - ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId" json:"chain_id,omitempty"` - Height int64 `protobuf:"varint,2,opt,name=height" json:"height,omitempty"` - Time int64 `protobuf:"varint,3,opt,name=time" json:"time,omitempty"` + ChainID string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` + Height int64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + Time int64 `protobuf:"varint,3,opt,name=time,proto3" json:"time,omitempty"` // txs - NumTxs int32 `protobuf:"varint,4,opt,name=num_txs,json=numTxs" json:"num_txs,omitempty"` - TotalTxs int64 `protobuf:"varint,5,opt,name=total_txs,json=totalTxs" json:"total_txs,omitempty"` + NumTxs int32 `protobuf:"varint,4,opt,name=num_txs,json=numTxs,proto3" json:"num_txs,omitempty"` + TotalTxs int64 `protobuf:"varint,5,opt,name=total_txs,json=totalTxs,proto3" json:"total_txs,omitempty"` // hashes LastBlockHash []byte `protobuf:"bytes,6,opt,name=last_block_hash,json=lastBlockHash,proto3" json:"last_block_hash,omitempty"` AppHash []byte `protobuf:"bytes,7,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` @@ -1666,11 +1665,11 @@ type Header struct { func (m *Header) Reset() { *m = Header{} } func (m *Header) String() string { return proto.CompactTextString(m) } func (*Header) ProtoMessage() {} -func (*Header) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } +func (*Header) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{29} } -func (m *Header) GetChainId() string { +func (m *Header) GetChainID() string { if m != nil { - return m.ChainId + return m.ChainID } return "" } @@ -1726,15 +1725,15 @@ func (m *Header) GetProposer() *Validator { // Validator type Validator struct { - Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - PubKey *PubKey `protobuf:"bytes,2,opt,name=pub_key,json=pubKey" json:"pub_key,omitempty"` - Power int64 `protobuf:"varint,3,opt,name=power" json:"power,omitempty"` + Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + PubKey PubKey `protobuf:"bytes,2,opt,name=pub_key,json=pubKey" json:"pub_key"` + Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"` } func (m *Validator) Reset() { *m = Validator{} } func (m *Validator) String() string { return proto.CompactTextString(m) } func (*Validator) ProtoMessage() {} -func (*Validator) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } +func (*Validator) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{30} } func (m *Validator) GetAddress() []byte { if m != nil { @@ -1743,11 +1742,11 @@ func (m *Validator) GetAddress() []byte { return nil } -func (m *Validator) GetPubKey() *PubKey { +func (m *Validator) GetPubKey() PubKey { if m != nil { return m.PubKey } - return nil + return PubKey{} } func (m *Validator) GetPower() int64 { @@ -1760,13 +1759,13 @@ func (m *Validator) GetPower() int64 { // Validator with an extra bool type SigningValidator struct { Validator *Validator `protobuf:"bytes,1,opt,name=validator" json:"validator,omitempty"` - SignedLastBlock bool `protobuf:"varint,2,opt,name=signed_last_block,json=signedLastBlock" json:"signed_last_block,omitempty"` + SignedLastBlock bool `protobuf:"varint,2,opt,name=signed_last_block,json=signedLastBlock,proto3" json:"signed_last_block,omitempty"` } func (m *SigningValidator) Reset() { *m = SigningValidator{} } func (m *SigningValidator) String() string { return proto.CompactTextString(m) } func (*SigningValidator) ProtoMessage() {} -func (*SigningValidator) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } +func (*SigningValidator) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{31} } func (m *SigningValidator) GetValidator() *Validator { if m != nil { @@ -1783,14 +1782,14 @@ func (m *SigningValidator) GetSignedLastBlock() bool { } type PubKey struct { - Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` } func (m *PubKey) Reset() { *m = PubKey{} } func (m *PubKey) String() string { return proto.CompactTextString(m) } func (*PubKey) ProtoMessage() {} -func (*PubKey) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} } +func (*PubKey) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{32} } func (m *PubKey) GetType() string { if m != nil { @@ -1807,17 +1806,17 @@ func (m *PubKey) GetData() []byte { } type Evidence struct { - Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Validator *Validator `protobuf:"bytes,2,opt,name=validator" json:"validator,omitempty"` - Height int64 `protobuf:"varint,3,opt,name=height" json:"height,omitempty"` - Time int64 `protobuf:"varint,4,opt,name=time" json:"time,omitempty"` - TotalVotingPower int64 `protobuf:"varint,5,opt,name=total_voting_power,json=totalVotingPower" json:"total_voting_power,omitempty"` + Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` + Time int64 `protobuf:"varint,4,opt,name=time,proto3" json:"time,omitempty"` + TotalVotingPower int64 `protobuf:"varint,5,opt,name=total_voting_power,json=totalVotingPower,proto3" json:"total_voting_power,omitempty"` } func (m *Evidence) Reset() { *m = Evidence{} } func (m *Evidence) String() string { return proto.CompactTextString(m) } func (*Evidence) ProtoMessage() {} -func (*Evidence) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} } +func (*Evidence) Descriptor() ([]byte, []int) { return fileDescriptorTypes, []int{33} } func (m *Evidence) GetType() string { if m != nil { @@ -2293,116 +2292,120 @@ var _ABCIApplication_serviceDesc = grpc.ServiceDesc{ Metadata: "types/types.proto", } -func init() { proto.RegisterFile("types/types.proto", fileDescriptor0) } - -var fileDescriptor0 = []byte{ - // 1716 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x4b, 0x73, 0x1b, 0xc7, - 0x11, 0x26, 0xde, 0xd8, 0xe6, 0x03, 0xe0, 0x90, 0x14, 0x21, 0xa8, 0x52, 0xc5, 0xda, 0x24, 0x0a, - 0x99, 0x30, 0x84, 0x42, 0x45, 0x0a, 0x15, 0x25, 0xaa, 0x90, 0x0c, 0x23, 0xb0, 0x94, 0x07, 0xb3, - 0x7a, 0xb8, 0xca, 0x17, 0xd4, 0x60, 0x77, 0xb8, 0xd8, 0x12, 0xb0, 0xbb, 0xda, 0x19, 0x50, 0xa0, - 0x7e, 0x83, 0xee, 0x3e, 0xfb, 0xe6, 0x3f, 0xe0, 0x9f, 0x60, 0x5f, 0xfc, 0x2b, 0x5c, 0xfe, 0x0f, - 0x3e, 0xbb, 0xa6, 0x67, 0xdf, 0xdc, 0x95, 0x55, 0xf6, 0xcd, 0x17, 0x60, 0x66, 0xfa, 0xb1, 0xdd, - 0xbd, 0xdd, 0x5f, 0xf7, 0x0e, 0xac, 0x8b, 0x6b, 0x9f, 0xf1, 0x01, 0xfe, 0x1e, 0xf8, 0x81, 0x27, - 0x3c, 0xd2, 0xc0, 0x4d, 0x7f, 0x60, 0x3b, 0x62, 0x32, 0x1f, 0x1f, 0x98, 0xde, 0x6c, 0x20, 0x98, - 0x6b, 0xb1, 0x60, 0xe6, 0xb8, 0x62, 0x20, 0x66, 0x53, 0x67, 0xcc, 0x07, 0xa6, 0x37, 0x9b, 0x79, - 0x6e, 0x5a, 0x4e, 0xff, 0xba, 0x0e, 0x2d, 0x83, 0xbd, 0x99, 0x33, 0x2e, 0xc8, 0x2e, 0xd4, 0x99, - 0x39, 0xf1, 0x7a, 0xd5, 0x9d, 0xca, 0xee, 0xf2, 0x21, 0x39, 0x50, 0x7c, 0x21, 0xf5, 0xcc, 0x9c, - 0x78, 0xc3, 0x25, 0x03, 0x39, 0xc8, 0x1f, 0xa0, 0x71, 0x39, 0x9d, 0xf3, 0x49, 0xaf, 0x86, 0xac, - 0x1b, 0x59, 0xd6, 0x7f, 0x49, 0xd2, 0x70, 0xc9, 0x50, 0x3c, 0x52, 0xad, 0xe3, 0x5e, 0x7a, 0xbd, - 0x7a, 0x91, 0xda, 0x73, 0xf7, 0x12, 0xd5, 0x4a, 0x0e, 0x72, 0x04, 0xc0, 0x99, 0x18, 0x79, 0xbe, - 0x70, 0x3c, 0xb7, 0xd7, 0x40, 0xfe, 0xed, 0x2c, 0xff, 0x73, 0x26, 0xfe, 0x87, 0xe4, 0xe1, 0x92, - 0xa1, 0xf1, 0x68, 0x23, 0x25, 0x1d, 0xd7, 0x11, 0x23, 0x73, 0x42, 0x1d, 0xb7, 0xd7, 0x2c, 0x92, - 0x3c, 0x77, 0x1d, 0x71, 0x2a, 0xc9, 0x52, 0xd2, 0x89, 0x36, 0xd2, 0x95, 0x37, 0x73, 0x16, 0x5c, - 0xf7, 0x5a, 0x45, 0xae, 0xfc, 0x5f, 0x92, 0xa4, 0x2b, 0xc8, 0x43, 0x1e, 0xc3, 0xf2, 0x98, 0xd9, - 0x8e, 0x3b, 0x1a, 0x4f, 0x3d, 0xf3, 0x75, 0xaf, 0x8d, 0x22, 0xbd, 0xac, 0xc8, 0x89, 0x64, 0x38, - 0x91, 0xf4, 0xe1, 0x92, 0x01, 0xe3, 0x78, 0x47, 0x0e, 0xa1, 0x6d, 0x4e, 0x98, 0xf9, 0x7a, 0x24, - 0x16, 0x3d, 0x0d, 0x25, 0xb7, 0xb2, 0x92, 0xa7, 0x92, 0xfa, 0x62, 0x31, 0x5c, 0x32, 0x5a, 0xa6, - 0x5a, 0x4a, 0xbf, 0x2c, 0x36, 0x75, 0xae, 0x58, 0x20, 0xa5, 0x36, 0x8a, 0xfc, 0xfa, 0xa7, 0xa2, - 0xa3, 0x9c, 0x66, 0x45, 0x1b, 0xf2, 0x00, 0x34, 0xe6, 0x5a, 0xa1, 0xa1, 0xcb, 0x28, 0x78, 0x2b, - 0xf7, 0x46, 0x5d, 0x2b, 0x32, 0xb3, 0xcd, 0xc2, 0x35, 0x39, 0x80, 0xa6, 0xcc, 0x12, 0x47, 0xf4, - 0x56, 0x50, 0x66, 0x33, 0x67, 0x22, 0xd2, 0x86, 0x4b, 0x46, 0xc8, 0x75, 0xd2, 0x82, 0xc6, 0x15, - 0x9d, 0xce, 0x99, 0xfe, 0x3b, 0x58, 0x4e, 0x65, 0x0a, 0xe9, 0x41, 0x6b, 0xc6, 0x38, 0xa7, 0x36, - 0xeb, 0x55, 0x76, 0x2a, 0xbb, 0x9a, 0x11, 0x6d, 0xf5, 0x35, 0x58, 0x49, 0xe7, 0x49, 0x4a, 0x50, - 0xe6, 0x82, 0x14, 0xbc, 0x62, 0x01, 0x97, 0x09, 0x10, 0x0a, 0x86, 0x5b, 0xfd, 0xaf, 0xd0, 0xcd, - 0x27, 0x01, 0xe9, 0x42, 0xed, 0x35, 0xbb, 0x0e, 0x39, 0xe5, 0x92, 0x6c, 0x86, 0x06, 0x61, 0x16, - 0x6b, 0x46, 0x68, 0x9d, 0x13, 0xcb, 0xc6, 0x69, 0x40, 0xee, 0x01, 0x5c, 0xd1, 0xa9, 0x63, 0x51, - 0xe1, 0x05, 0xbc, 0x57, 0xd9, 0xa9, 0xed, 0x2e, 0x1f, 0x76, 0x43, 0x77, 0x5f, 0x45, 0x04, 0x23, - 0xc5, 0x43, 0x7e, 0x0d, 0xab, 0x36, 0x73, 0x19, 0x77, 0xf8, 0x68, 0x7c, 0x2d, 0x18, 0xc7, 0x67, - 0xac, 0x18, 0x2b, 0xe1, 0xe1, 0x89, 0x3c, 0xd3, 0xad, 0xd8, 0x3f, 0x4c, 0x1e, 0x42, 0xa0, 0x6e, - 0x51, 0x41, 0xd1, 0xc6, 0x15, 0x03, 0xd7, 0xf2, 0xcc, 0xa7, 0x62, 0x12, 0xda, 0x88, 0x6b, 0x72, - 0x0b, 0x9a, 0x13, 0xe6, 0xd8, 0x13, 0x81, 0x45, 0x55, 0x33, 0xc2, 0x9d, 0x74, 0xc8, 0x0f, 0xbc, - 0x2b, 0x86, 0xf5, 0xd3, 0x36, 0xd4, 0x46, 0xff, 0xa6, 0x02, 0xeb, 0x37, 0x12, 0x4e, 0xea, 0x9d, - 0x50, 0x3e, 0x89, 0x9e, 0x25, 0xd7, 0xe4, 0xb7, 0x52, 0x2f, 0xb5, 0x58, 0x10, 0xd6, 0xf5, 0x6a, - 0xe8, 0xe2, 0x10, 0x0f, 0x8d, 0x90, 0x48, 0xfe, 0x92, 0x89, 0x46, 0x0d, 0xa3, 0x11, 0x65, 0xda, - 0x73, 0xc7, 0x76, 0x1d, 0xd7, 0x2e, 0x0e, 0xca, 0x09, 0x6c, 0x8e, 0xaf, 0xdf, 0x51, 0x57, 0x38, - 0x2e, 0x1b, 0xa5, 0x54, 0xd4, 0x51, 0x45, 0x27, 0x54, 0x71, 0x76, 0xe5, 0x58, 0xcc, 0x35, 0x99, - 0xb1, 0x11, 0x33, 0xc7, 0xea, 0xb8, 0xbe, 0x03, 0x6b, 0xd9, 0x1a, 0x20, 0x6b, 0x50, 0x15, 0x8b, - 0xd0, 0x8f, 0xaa, 0x58, 0xe8, 0x7a, 0xfc, 0x02, 0xe3, 0x7c, 0xbf, 0xc1, 0xb3, 0x07, 0x9d, 0x5c, - 0x6a, 0xa7, 0x82, 0x5a, 0x49, 0x07, 0x55, 0xef, 0xc0, 0x6a, 0x26, 0xa3, 0xf5, 0xf7, 0x0d, 0x68, - 0x1b, 0x8c, 0xfb, 0x9e, 0xcb, 0x19, 0x39, 0x02, 0x8d, 0x2d, 0x4c, 0xa6, 0x60, 0xa8, 0x92, 0x2b, - 0x72, 0xc5, 0x73, 0x16, 0xd1, 0x65, 0xd5, 0xc5, 0xcc, 0x64, 0x2f, 0x03, 0xa1, 0x1b, 0x79, 0xa1, - 0x34, 0x86, 0xee, 0x67, 0x31, 0x74, 0x33, 0xc7, 0x9b, 0x03, 0xd1, 0xbd, 0x0c, 0x88, 0xe6, 0x15, - 0x67, 0x50, 0xf4, 0x51, 0x01, 0x8a, 0xe6, 0xcd, 0x2f, 0x81, 0xd1, 0x47, 0x05, 0x30, 0xda, 0xbb, - 0xf1, 0xac, 0x42, 0x1c, 0xdd, 0xcf, 0xe2, 0x68, 0xde, 0x9d, 0x1c, 0x90, 0xfe, 0xad, 0x08, 0x48, - 0x6f, 0xe7, 0x64, 0x4a, 0x91, 0xf4, 0xfe, 0x0d, 0x24, 0xbd, 0x95, 0x13, 0x2d, 0x80, 0xd2, 0x47, - 0x19, 0x28, 0x85, 0x42, 0xdf, 0x4a, 0xb0, 0xf4, 0xe1, 0x4d, 0x2c, 0xdd, 0xce, 0xbf, 0xda, 0x22, - 0x30, 0x1d, 0xe4, 0xc0, 0x74, 0x2b, 0x6f, 0x65, 0x29, 0x9a, 0xee, 0xc9, 0xea, 0xce, 0x65, 0x9a, - 0x44, 0x02, 0x16, 0x04, 0x5e, 0x10, 0xc2, 0x9d, 0xda, 0xe8, 0xbb, 0x12, 0x6f, 0x92, 0xfc, 0xfa, - 0x00, 0xf2, 0x62, 0xd2, 0xa7, 0xb2, 0x4b, 0xff, 0xac, 0x92, 0xc8, 0x22, 0xf8, 0xa6, 0xb1, 0x4a, - 0x0b, 0xb1, 0x2a, 0x05, 0xc8, 0xd5, 0x0c, 0x20, 0x93, 0xdf, 0xc3, 0xfa, 0x94, 0x72, 0xa1, 0xe2, - 0x32, 0xca, 0x80, 0x57, 0x47, 0x12, 0x54, 0x40, 0x14, 0x8a, 0xfd, 0x11, 0x36, 0x52, 0xbc, 0xd4, - 0xf7, 0x47, 0x08, 0x54, 0x75, 0x2c, 0xde, 0x6e, 0xcc, 0x7d, 0xec, 0xfb, 0x43, 0xca, 0x27, 0xfa, - 0x7f, 0x12, 0xff, 0x13, 0xb0, 0x27, 0x50, 0x37, 0x3d, 0x4b, 0xb9, 0xb5, 0x6a, 0xe0, 0x5a, 0x36, - 0x80, 0xa9, 0x67, 0xe3, 0x53, 0x35, 0x43, 0x2e, 0x25, 0x57, 0x5c, 0x29, 0x9a, 0x2a, 0x09, 0xfd, - 0x2c, 0x51, 0xf7, 0x33, 0xf0, 0x5f, 0xff, 0xb2, 0x92, 0x44, 0x30, 0x06, 0xf7, 0x9f, 0x66, 0x92, - 0x7c, 0x99, 0x8e, 0x6b, 0xb1, 0x05, 0x16, 0x68, 0xcd, 0x50, 0x9b, 0xa8, 0x9f, 0x35, 0x31, 0x2c, - 0xd9, 0x7e, 0xd6, 0xc2, 0x33, 0xb5, 0x09, 0x9b, 0x82, 0x77, 0x89, 0x95, 0xb3, 0x62, 0xa8, 0x4d, - 0x0a, 0xed, 0xb4, 0x0c, 0xda, 0x1d, 0x01, 0xb9, 0x59, 0x53, 0x44, 0x87, 0xba, 0xa0, 0x76, 0xe4, - 0xf9, 0xda, 0x81, 0x9a, 0x0e, 0x0f, 0x9e, 0xbd, 0xba, 0xa0, 0x4e, 0x60, 0x20, 0x4d, 0xff, 0xb6, - 0x22, 0x31, 0x35, 0x53, 0x53, 0x85, 0x3e, 0x47, 0x89, 0x53, 0x4d, 0x35, 0xb9, 0x8f, 0x8b, 0xc3, - 0xaf, 0x00, 0x6c, 0xca, 0x47, 0x6f, 0xa9, 0x2b, 0x98, 0x15, 0x06, 0x43, 0xb3, 0x29, 0xff, 0x04, - 0x0f, 0xc8, 0x6d, 0x68, 0x4b, 0xf2, 0x9c, 0x33, 0x0b, 0xa3, 0x52, 0x33, 0x5a, 0x36, 0xe5, 0x2f, - 0x39, 0xb3, 0x62, 0xfb, 0x5b, 0xe5, 0xf6, 0x13, 0x1d, 0x6a, 0x97, 0x8c, 0x85, 0xf8, 0xd2, 0x8d, - 0x59, 0xce, 0x1f, 0xfe, 0x19, 0x99, 0x24, 0x51, 0xff, 0xae, 0x92, 0x64, 0x47, 0xd2, 0x5c, 0x7e, - 0x69, 0x5e, 0x7e, 0x55, 0x91, 0x1d, 0x34, 0x0b, 0x56, 0xe4, 0xef, 0xb0, 0x1e, 0xa7, 0xf7, 0x68, - 0xee, 0x5b, 0x54, 0x0e, 0x35, 0x65, 0x95, 0xd0, 0x8d, 0x59, 0x5f, 0x2a, 0x4e, 0xf2, 0x5f, 0xd8, - 0x36, 0xa5, 0x3e, 0x97, 0xcf, 0xf9, 0xc8, 0xa7, 0x01, 0x9d, 0xc5, 0x4a, 0xaa, 0x19, 0x58, 0x3e, - 0x8d, 0xb8, 0x2e, 0x24, 0x13, 0x37, 0xb6, 0xcc, 0xcc, 0x41, 0xa4, 0x2f, 0xf2, 0xb5, 0xf6, 0x81, - 0x8c, 0xfc, 0x8d, 0x1c, 0x15, 0xd2, 0xf0, 0x59, 0xf4, 0x56, 0xf4, 0xcf, 0x2b, 0xd0, 0xc9, 0x3d, - 0x94, 0x0c, 0x00, 0x14, 0xfa, 0x70, 0xe7, 0x1d, 0x0b, 0xdb, 0x7a, 0xe4, 0x25, 0x86, 0xe3, 0xb9, - 0xf3, 0x8e, 0x19, 0xda, 0x38, 0x5a, 0x92, 0xbb, 0xd0, 0x12, 0x0b, 0xc5, 0x9d, 0x1d, 0x9d, 0x5e, - 0x2c, 0x90, 0xb5, 0x29, 0xf0, 0x9f, 0x3c, 0x80, 0x15, 0xa5, 0xd8, 0xf6, 0x38, 0x77, 0xfc, 0xb0, - 0xa1, 0x93, 0xb4, 0xea, 0xa7, 0x48, 0x31, 0x96, 0xc7, 0xc9, 0x46, 0xff, 0x14, 0xb4, 0xf8, 0xb1, - 0xe4, 0x0e, 0x68, 0x33, 0xba, 0x08, 0xc7, 0x4a, 0x69, 0x5b, 0xc3, 0x68, 0xcf, 0xe8, 0x02, 0x47, - 0x4a, 0xb2, 0x0d, 0x2d, 0x49, 0x14, 0x0b, 0x15, 0xd7, 0x86, 0xd1, 0x9c, 0xd1, 0xc5, 0x8b, 0x45, - 0x4c, 0xb0, 0x29, 0x8f, 0x86, 0xc6, 0x19, 0x5d, 0x3c, 0xa5, 0x5c, 0x7f, 0x02, 0x4d, 0x65, 0xe4, - 0x47, 0x29, 0x96, 0xf2, 0xd5, 0x8c, 0xfc, 0x3f, 0x60, 0x39, 0x65, 0x37, 0xf9, 0x13, 0x6c, 0x29, - 0x0f, 0x7d, 0x1a, 0x08, 0x8c, 0x48, 0x46, 0x21, 0x41, 0xe2, 0x05, 0x0d, 0x84, 0x7c, 0xa4, 0x1a, - 0x83, 0xbf, 0xaf, 0x40, 0x53, 0x8d, 0x98, 0x32, 0xbb, 0x71, 0xa0, 0x18, 0x39, 0x56, 0xd4, 0x92, - 0x70, 0x7f, 0x6e, 0xa5, 0x10, 0xab, 0x9a, 0x19, 0x7a, 0x09, 0xd4, 0x85, 0x33, 0x63, 0xa1, 0x57, - 0xb8, 0x96, 0xc6, 0xba, 0xf3, 0x19, 0x46, 0xa1, 0xae, 0xa2, 0xe0, 0xce, 0x67, 0x32, 0x0a, 0x77, - 0x40, 0x13, 0x9e, 0xa0, 0x53, 0x24, 0xa9, 0xda, 0x6a, 0xe3, 0x81, 0x24, 0xde, 0x85, 0x4e, 0xba, - 0x49, 0xc9, 0xa6, 0xa3, 0xd0, 0x75, 0x35, 0x69, 0x51, 0x72, 0x4c, 0xbe, 0x0d, 0xed, 0xb8, 0x2b, - 0x29, 0xa8, 0x6d, 0x51, 0xd5, 0x8c, 0xc8, 0x3e, 0xb4, 0xfd, 0xc0, 0xf3, 0x3d, 0xce, 0x82, 0xb8, - 0xc6, 0xf2, 0xc5, 0x11, 0x73, 0xe8, 0x26, 0x68, 0xf1, 0xb1, 0x6c, 0x9e, 0xd4, 0xb2, 0x02, 0xc6, - 0x79, 0x38, 0xa7, 0x46, 0x5b, 0x99, 0x5c, 0xfe, 0x7c, 0x3c, 0x92, 0x68, 0x9f, 0x4d, 0xae, 0x8b, - 0xf9, 0xf8, 0x19, 0xbb, 0x36, 0x9a, 0x3e, 0xfe, 0x23, 0xd2, 0x7b, 0x6f, 0x59, 0x10, 0x86, 0x42, - 0x6d, 0x74, 0x17, 0xba, 0xf9, 0xa1, 0x9c, 0x1c, 0x80, 0x16, 0x57, 0x68, 0x2e, 0xbd, 0x13, 0x3b, - 0x13, 0x16, 0xd9, 0xbe, 0xb9, 0x63, 0xbb, 0xcc, 0x1a, 0x25, 0x01, 0x42, 0x5b, 0xda, 0x46, 0x47, - 0x11, 0xfe, 0x1d, 0x45, 0x48, 0xbf, 0x07, 0x4d, 0x65, 0x17, 0xbe, 0x99, 0x6b, 0x3f, 0x9a, 0x2d, - 0x70, 0x5d, 0x58, 0x81, 0x5f, 0x54, 0xa0, 0x1d, 0x0d, 0xfd, 0x85, 0x42, 0x19, 0x73, 0xab, 0x3f, - 0x6e, 0x6e, 0xd9, 0xf7, 0x51, 0x94, 0x2a, 0xf5, 0x54, 0xaa, 0xec, 0x03, 0x51, 0x19, 0x71, 0xe5, - 0x09, 0xc7, 0xb5, 0x47, 0x2a, 0x82, 0x2a, 0x35, 0xba, 0x48, 0x79, 0x85, 0x84, 0x0b, 0x79, 0x7e, - 0xf8, 0xbe, 0x01, 0x9d, 0xe3, 0x93, 0xd3, 0xf3, 0x63, 0xdf, 0x9f, 0x3a, 0x26, 0xc5, 0x59, 0x63, - 0x00, 0x75, 0x9c, 0xa6, 0x0a, 0x6e, 0x41, 0xfa, 0x45, 0x63, 0x3d, 0x39, 0x84, 0x06, 0x0e, 0x55, - 0xa4, 0xe8, 0x32, 0xa4, 0x5f, 0x38, 0xdd, 0xcb, 0x87, 0xa8, 0xb1, 0xeb, 0xe6, 0x9d, 0x48, 0xbf, - 0x68, 0xc4, 0x27, 0x4f, 0x40, 0x4b, 0xc6, 0xa1, 0xb2, 0x9b, 0x91, 0x7e, 0xe9, 0xb0, 0x2f, 0xe5, - 0x93, 0x0e, 0x57, 0x76, 0x8f, 0xd0, 0x2f, 0x9d, 0x8a, 0xc9, 0x11, 0xb4, 0xa2, 0x29, 0xa0, 0xf8, - 0xee, 0xa2, 0x5f, 0x32, 0x88, 0xcb, 0xf0, 0xa8, 0x89, 0xa9, 0xe8, 0x82, 0xa5, 0x5f, 0xf8, 0xb5, - 0x40, 0x1e, 0x40, 0x33, 0x84, 0xf8, 0xc2, 0x5b, 0x88, 0x7e, 0xf1, 0x38, 0x2d, 0x9d, 0x4c, 0x86, - 0xbc, 0xb2, 0x4b, 0xa0, 0x7e, 0xe9, 0x67, 0x0d, 0x39, 0x06, 0x48, 0x4d, 0x49, 0xa5, 0xb7, 0x3b, - 0xfd, 0xf2, 0xcf, 0x15, 0xf2, 0x18, 0xda, 0xc9, 0x27, 0x68, 0xf1, 0xad, 0x4b, 0xbf, 0xec, 0x0b, - 0x62, 0xdc, 0xc4, 0x9b, 0xb9, 0xfb, 0x3f, 0x04, 0x00, 0x00, 0xff, 0xff, 0x4c, 0x76, 0x50, 0x7d, - 0xe6, 0x13, 0x00, 0x00, +func init() { proto.RegisterFile("types/types.proto", fileDescriptorTypes) } + +var fileDescriptorTypes = []byte{ + // 1789 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4b, 0x73, 0x1c, 0x49, + 0x11, 0xd6, 0xbc, 0xa7, 0x53, 0x4f, 0x97, 0xfc, 0x18, 0xcf, 0x06, 0x61, 0x47, 0x43, 0x18, 0x99, + 0xd5, 0x6a, 0x40, 0x8b, 0x8d, 0xbd, 0x4b, 0x6c, 0x20, 0x69, 0xcd, 0x8e, 0xc2, 0x3c, 0x44, 0xdb, + 0x6b, 0x22, 0xb8, 0x4c, 0xd4, 0x4c, 0x97, 0x7a, 0x2a, 0x3c, 0xd3, 0xdd, 0xdb, 0x55, 0xa3, 0x9d, + 0xf1, 0x8d, 0xe0, 0xba, 0x77, 0xce, 0xdc, 0xf8, 0x03, 0xfc, 0x05, 0x82, 0x7f, 0xc0, 0xcd, 0x07, + 0xb8, 0xf1, 0x27, 0x20, 0x32, 0xab, 0xdf, 0xea, 0x59, 0x16, 0x73, 0xdc, 0x8b, 0x54, 0x59, 0x99, + 0x59, 0x9d, 0x99, 0x93, 0xf9, 0x65, 0x56, 0xc1, 0x0d, 0xbd, 0x0a, 0x85, 0x1a, 0xd0, 0xdf, 0xa3, + 0x30, 0x0a, 0x74, 0xc0, 0x5a, 0x44, 0xf4, 0x3f, 0xf0, 0xa4, 0x9e, 0x2e, 0xc6, 0x47, 0x93, 0x60, + 0x3e, 0xf0, 0x02, 0x2f, 0x18, 0x10, 0x77, 0xbc, 0xb8, 0x24, 0x8a, 0x08, 0x5a, 0x19, 0xad, 0xfe, + 0x20, 0x27, 0xae, 0x85, 0xef, 0x8a, 0x68, 0x2e, 0x7d, 0x3d, 0xd0, 0xf3, 0x99, 0x1c, 0xab, 0xc1, + 0x24, 0x98, 0xcf, 0x03, 0x3f, 0xff, 0x19, 0xfb, 0xaf, 0x4d, 0xe8, 0x38, 0xe2, 0x8b, 0x85, 0x50, + 0x9a, 0x1d, 0x40, 0x53, 0x4c, 0xa6, 0x41, 0xaf, 0x7e, 0xbf, 0x76, 0xb0, 0x79, 0xcc, 0x8e, 0x8c, + 0x5c, 0xcc, 0x7d, 0x36, 0x99, 0x06, 0xc3, 0x0d, 0x87, 0x24, 0xd8, 0xfb, 0xd0, 0xba, 0x9c, 0x2d, + 0xd4, 0xb4, 0xd7, 0x20, 0xd1, 0xfd, 0xa2, 0xe8, 0xcf, 0x91, 0x35, 0xdc, 0x70, 0x8c, 0x0c, 0x1e, + 0x2b, 0xfd, 0xcb, 0xa0, 0xd7, 0xac, 0x3a, 0xf6, 0xdc, 0xbf, 0xa4, 0x63, 0x51, 0x82, 0x3d, 0x01, + 0x50, 0x42, 0x8f, 0x82, 0x50, 0xcb, 0xc0, 0xef, 0xb5, 0x48, 0xfe, 0x4e, 0x51, 0xfe, 0x85, 0xd0, + 0xbf, 0x26, 0xf6, 0x70, 0xc3, 0xb1, 0x54, 0x42, 0xa0, 0xa6, 0xf4, 0xa5, 0x1e, 0x4d, 0xa6, 0x5c, + 0xfa, 0xbd, 0x76, 0x95, 0xe6, 0xb9, 0x2f, 0xf5, 0x19, 0xb2, 0x51, 0x53, 0x26, 0x04, 0xba, 0xf2, + 0xc5, 0x42, 0x44, 0xab, 0x5e, 0xa7, 0xca, 0x95, 0xdf, 0x20, 0x0b, 0x5d, 0x21, 0x19, 0xf6, 0x31, + 0x6c, 0x8e, 0x85, 0x27, 0xfd, 0xd1, 0x78, 0x16, 0x4c, 0x5e, 0xf7, 0xba, 0xa4, 0xd2, 0x2b, 0xaa, + 0x9c, 0xa2, 0xc0, 0x29, 0xf2, 0x87, 0x1b, 0x0e, 0x8c, 0x53, 0x8a, 0x1d, 0x43, 0x77, 0x32, 0x15, + 0x93, 0xd7, 0x23, 0xbd, 0xec, 0x59, 0xa4, 0x79, 0xab, 0xa8, 0x79, 0x86, 0xdc, 0x97, 0xcb, 0xe1, + 0x86, 0xd3, 0x99, 0x98, 0x25, 0xfa, 0xe5, 0x8a, 0x99, 0xbc, 0x12, 0x11, 0x6a, 0xed, 0x57, 0xf9, + 0xf5, 0xa9, 0xe1, 0x93, 0x9e, 0xe5, 0x26, 0x04, 0x7b, 0x04, 0x96, 0xf0, 0xdd, 0xd8, 0xd0, 0x4d, + 0x52, 0xbc, 0x5d, 0xfa, 0x45, 0x7d, 0x37, 0x31, 0xb3, 0x2b, 0xe2, 0x35, 0x3b, 0x82, 0x36, 0x66, + 0x89, 0xd4, 0xbd, 0x2d, 0xd2, 0xb9, 0x59, 0x32, 0x91, 0x78, 0xc3, 0x0d, 0x27, 0x96, 0x3a, 0xed, + 0x40, 0xeb, 0x8a, 0xcf, 0x16, 0xc2, 0xfe, 0x3e, 0x6c, 0xe6, 0x32, 0x85, 0xf5, 0xa0, 0x33, 0x17, + 0x4a, 0x71, 0x4f, 0xf4, 0x6a, 0xf7, 0x6b, 0x07, 0x96, 0x93, 0x90, 0xf6, 0x0e, 0x6c, 0xe5, 0xf3, + 0x24, 0xa7, 0x88, 0xb9, 0x80, 0x8a, 0x57, 0x22, 0x52, 0x98, 0x00, 0xb1, 0x62, 0x4c, 0xda, 0x1f, + 0xc1, 0x5e, 0x39, 0x09, 0xd8, 0x1e, 0x34, 0x5e, 0x8b, 0x55, 0x2c, 0x89, 0x4b, 0x76, 0x33, 0x36, + 0x88, 0xb2, 0xd8, 0x72, 0x62, 0xeb, 0x82, 0x54, 0x37, 0x4d, 0x03, 0xf6, 0x18, 0xe0, 0x8a, 0xcf, + 0xa4, 0xcb, 0x75, 0x10, 0xa9, 0x5e, 0xed, 0x7e, 0xe3, 0x60, 0xf3, 0x78, 0x2f, 0x76, 0xf7, 0x55, + 0xc2, 0x38, 0x6d, 0xfe, 0xed, 0xed, 0xbd, 0x0d, 0x27, 0x27, 0xc9, 0xbe, 0x0b, 0xdb, 0x9e, 0xf0, + 0x85, 0x92, 0x6a, 0x34, 0x5e, 0x69, 0xa1, 0xe8, 0x4b, 0x5b, 0xce, 0x56, 0xbc, 0x79, 0x8a, 0x7b, + 0xb6, 0x9b, 0x7a, 0x49, 0x29, 0xc4, 0x18, 0x34, 0x5d, 0xae, 0x39, 0x59, 0xba, 0xe5, 0xd0, 0x1a, + 0xf7, 0x42, 0xae, 0xa7, 0xb1, 0xa5, 0xb4, 0x66, 0xb7, 0xa1, 0x3d, 0x15, 0xd2, 0x9b, 0x6a, 0x2a, + 0xad, 0x86, 0x13, 0x53, 0xe8, 0x56, 0x18, 0x05, 0x57, 0x82, 0xaa, 0xa8, 0xeb, 0x18, 0xc2, 0xfe, + 0x7b, 0x0d, 0x6e, 0x5c, 0x4b, 0x3b, 0x3c, 0x77, 0xca, 0xd5, 0x34, 0xf9, 0x16, 0xae, 0xd9, 0xfb, + 0x78, 0x2e, 0x77, 0x45, 0x14, 0x57, 0xf7, 0x76, 0xec, 0xe8, 0x90, 0x36, 0x63, 0x2f, 0x63, 0x11, + 0xf6, 0x93, 0x42, 0x64, 0x1a, 0x14, 0x99, 0x24, 0xeb, 0x5e, 0x48, 0xcf, 0x97, 0xbe, 0x97, 0x06, + 0xa8, 0x10, 0x9a, 0x21, 0xdc, 0x1c, 0xaf, 0xde, 0x70, 0x5f, 0x4b, 0x5f, 0x8c, 0x72, 0x47, 0x34, + 0xe9, 0x88, 0xdd, 0xf8, 0x88, 0x67, 0x57, 0xd2, 0x15, 0xfe, 0x44, 0xc4, 0x5f, 0xdd, 0x4f, 0x55, + 0xd2, 0x43, 0x95, 0x7d, 0x1f, 0x76, 0x8a, 0x55, 0xc1, 0x76, 0xa0, 0xae, 0x97, 0xb1, 0x4f, 0x75, + 0xbd, 0xb4, 0xed, 0xf4, 0x27, 0x4d, 0x2b, 0xe0, 0x9a, 0xcc, 0x43, 0xd8, 0x2d, 0x25, 0x7b, 0x2e, + 0xc0, 0xb5, 0x7c, 0x80, 0xed, 0x5d, 0xd8, 0x2e, 0xe4, 0xb8, 0xfd, 0x55, 0x0b, 0xba, 0x8e, 0x50, + 0x61, 0xe0, 0x2b, 0xc1, 0x9e, 0x80, 0x25, 0x96, 0x13, 0x61, 0x80, 0xa9, 0x56, 0x2a, 0x7b, 0x23, + 0xf3, 0x2c, 0xe1, 0x63, 0x1d, 0xa6, 0xc2, 0xec, 0x61, 0x01, 0x54, 0xf7, 0xcb, 0x4a, 0x79, 0x54, + 0x3d, 0x2c, 0xa2, 0xea, 0xcd, 0x92, 0x6c, 0x09, 0x56, 0x1f, 0x16, 0x60, 0xb5, 0x7c, 0x70, 0x01, + 0x57, 0x9f, 0x56, 0xe0, 0x6a, 0xd9, 0xfc, 0x35, 0xc0, 0xfa, 0xb4, 0x02, 0x58, 0x7b, 0xd7, 0xbe, + 0x55, 0x89, 0xac, 0x87, 0x45, 0x64, 0x2d, 0xbb, 0x53, 0x82, 0xd6, 0x9f, 0x56, 0x41, 0xeb, 0xdd, + 0x92, 0xce, 0x5a, 0x6c, 0xfd, 0xf0, 0x1a, 0xb6, 0xde, 0x2e, 0xa9, 0x56, 0x80, 0xeb, 0xd3, 0x02, + 0xb8, 0x42, 0xa5, 0x6f, 0x6b, 0xd0, 0xf5, 0xf1, 0x75, 0x74, 0xbd, 0x53, 0xfe, 0x69, 0xab, 0xe0, + 0x75, 0x50, 0x82, 0xd7, 0x5b, 0x65, 0x2b, 0xd7, 0xe2, 0xeb, 0x43, 0xac, 0xf4, 0x52, 0xa6, 0x21, + 0x2a, 0x88, 0x28, 0x0a, 0xa2, 0x18, 0x00, 0x0d, 0x61, 0x1f, 0x20, 0xf6, 0x64, 0xf9, 0xf5, 0x35, + 0x58, 0x4c, 0x49, 0x9f, 0xcb, 0x2e, 0xfb, 0x8f, 0xb5, 0x4c, 0x97, 0xe0, 0x38, 0x8f, 0x5b, 0x56, + 0x8c, 0x5b, 0x39, 0x88, 0xae, 0x17, 0x20, 0x9a, 0xfd, 0x00, 0x6e, 0xcc, 0xb8, 0xd2, 0x26, 0x2e, + 0xa3, 0x02, 0x90, 0xed, 0x22, 0xc3, 0x04, 0xc4, 0x20, 0xda, 0x07, 0xb0, 0x9f, 0x93, 0xe5, 0x61, + 0x38, 0x22, 0xd0, 0x6a, 0x52, 0xf1, 0xee, 0xa5, 0xd2, 0x27, 0x61, 0x38, 0xe4, 0x6a, 0x6a, 0xff, + 0x32, 0xf3, 0x3f, 0x83, 0x7f, 0x06, 0xcd, 0x49, 0xe0, 0x1a, 0xb7, 0xb6, 0x1d, 0x5a, 0x63, 0x4b, + 0x98, 0x05, 0x1e, 0x7d, 0xd5, 0x72, 0x70, 0x89, 0x52, 0x69, 0xa5, 0x58, 0xa6, 0x24, 0xec, 0xe7, + 0xd9, 0x71, 0xff, 0x77, 0x47, 0xb0, 0xff, 0x52, 0xcb, 0xe2, 0x98, 0xc2, 0xfd, 0xbb, 0x19, 0x86, + 0x3f, 0xa9, 0xf4, 0x5d, 0xb1, 0xa4, 0x32, 0x6d, 0x38, 0x86, 0x48, 0xfa, 0x5c, 0x9b, 0x82, 0x53, + 0xec, 0x73, 0x1d, 0xda, 0x33, 0x44, 0xdc, 0x26, 0x82, 0x4b, 0xaa, 0x9f, 0x2d, 0xc7, 0x10, 0x39, + 0xcc, 0xb3, 0x0a, 0x98, 0x77, 0x01, 0xec, 0x7a, 0x65, 0xb1, 0x8f, 0xa0, 0xa9, 0xb9, 0x97, 0xf8, + 0xbf, 0x73, 0x64, 0xa6, 0xc6, 0xa3, 0xe7, 0xaf, 0x2e, 0xb8, 0x8c, 0x4e, 0x6f, 0xa3, 0xf7, 0xff, + 0x7a, 0x7b, 0x6f, 0x07, 0x65, 0x0e, 0x83, 0xb9, 0xd4, 0x62, 0x1e, 0xea, 0x95, 0x43, 0x3a, 0xf6, + 0xbf, 0x6b, 0x88, 0xb8, 0x85, 0x8a, 0xab, 0x8c, 0x45, 0x92, 0x56, 0xf5, 0x5c, 0x3b, 0xfc, 0x66, + 0xf1, 0xf9, 0x0e, 0x80, 0xc7, 0xd5, 0xe8, 0x4b, 0xee, 0x6b, 0xe1, 0xc6, 0x41, 0xb2, 0x3c, 0xae, + 0x7e, 0x4b, 0x1b, 0xec, 0x2e, 0x74, 0x91, 0xbd, 0x50, 0xc2, 0xa5, 0x68, 0x35, 0x9c, 0x8e, 0xc7, + 0xd5, 0xe7, 0x4a, 0xb8, 0xa9, 0x5f, 0x9d, 0xff, 0xdd, 0x2f, 0x76, 0x00, 0x8d, 0x4b, 0x21, 0x62, + 0x54, 0xda, 0x4b, 0x55, 0xcf, 0x1f, 0xff, 0x98, 0x94, 0x4d, 0x4a, 0xa0, 0x88, 0xfd, 0xfb, 0x7a, + 0x96, 0x59, 0x59, 0x63, 0xfa, 0x76, 0xc5, 0xe0, 0x9f, 0x35, 0xec, 0xcd, 0x45, 0x18, 0x64, 0x67, + 0x70, 0x23, 0x2d, 0x99, 0xd1, 0x22, 0x74, 0x39, 0x8e, 0x4e, 0x5f, 0x5f, 0x63, 0x7b, 0xa9, 0xc2, + 0xe7, 0x46, 0x9e, 0xfd, 0x0a, 0xee, 0x4c, 0xf0, 0x54, 0x5f, 0x2d, 0xd4, 0x28, 0xe4, 0x11, 0x9f, + 0xa7, 0x47, 0xd5, 0x0b, 0xb0, 0x7f, 0x96, 0x48, 0x5d, 0xa0, 0x90, 0x72, 0x6e, 0x4d, 0x0a, 0x1b, + 0xc9, 0x79, 0x49, 0x3c, 0x1a, 0xef, 0x90, 0xeb, 0xdf, 0xc3, 0x11, 0x25, 0x0f, 0xdb, 0x55, 0xbf, + 0xa8, 0xfd, 0xa7, 0x1a, 0xec, 0x96, 0x8c, 0x61, 0x03, 0x00, 0x83, 0x7a, 0x4a, 0xbe, 0x11, 0xf1, + 0x38, 0x91, 0xc4, 0x80, 0x82, 0xf5, 0x42, 0xbe, 0x11, 0x8e, 0x35, 0x4e, 0x96, 0xec, 0x01, 0x74, + 0xf4, 0xd2, 0x48, 0x17, 0xc7, 0xb7, 0x97, 0x4b, 0x12, 0x6d, 0x6b, 0xfa, 0xcf, 0x1e, 0xc1, 0x96, + 0x39, 0xd8, 0x0b, 0x94, 0x92, 0x61, 0x3c, 0x48, 0xb0, 0xfc, 0xd1, 0x9f, 0x11, 0xc7, 0xd9, 0x1c, + 0x67, 0x84, 0xfd, 0x3b, 0xb0, 0xd2, 0xcf, 0xb2, 0xf7, 0xc0, 0x9a, 0xf3, 0x65, 0x3c, 0xda, 0xa2, + 0x6d, 0x2d, 0xa7, 0x3b, 0xe7, 0x4b, 0x1a, 0x6b, 0xd9, 0x1d, 0xe8, 0x20, 0x53, 0x2f, 0x4d, 0xbc, + 0x5b, 0x4e, 0x7b, 0xce, 0x97, 0x2f, 0x97, 0x29, 0xc3, 0xe3, 0x2a, 0x19, 0x5c, 0xe7, 0x7c, 0xf9, + 0x19, 0x57, 0xf6, 0x27, 0xd0, 0x36, 0x46, 0x7e, 0xa3, 0x83, 0x51, 0xbf, 0x5e, 0xd0, 0xff, 0x19, + 0x6c, 0xe6, 0xec, 0x66, 0x3f, 0x82, 0x5b, 0xc6, 0xc3, 0x90, 0x47, 0x9a, 0x22, 0x52, 0x38, 0x90, + 0x11, 0xf3, 0x82, 0x47, 0x1a, 0x3f, 0x69, 0x46, 0xf1, 0x3f, 0xd4, 0xa1, 0x6d, 0xc6, 0x5c, 0xf6, + 0x00, 0xc7, 0x04, 0x2e, 0xfd, 0x91, 0x74, 0x4d, 0x47, 0x3b, 0xdd, 0xfc, 0xc7, 0xdb, 0x7b, 0x1d, + 0x42, 0xff, 0xf3, 0x4f, 0x71, 0x32, 0xc0, 0x85, 0x9b, 0x03, 0xcc, 0x7a, 0x61, 0x0a, 0x67, 0xd0, + 0xd4, 0x72, 0x2e, 0x62, 0x17, 0x69, 0x8d, 0x96, 0xfb, 0x8b, 0x39, 0x85, 0xa4, 0x69, 0x42, 0xe2, + 0x2f, 0xe6, 0x18, 0x92, 0xf7, 0xc0, 0xd2, 0x81, 0xe6, 0x33, 0x62, 0x99, 0x22, 0xed, 0xd2, 0x06, + 0x32, 0x1f, 0xc0, 0x6e, 0xbe, 0x53, 0x62, 0xe7, 0x33, 0xe0, 0xbe, 0x9d, 0xf5, 0x49, 0x9c, 0xdb, + 0xef, 0x42, 0x37, 0x6d, 0x8d, 0x06, 0xe9, 0x3b, 0xdc, 0x74, 0x44, 0x76, 0x08, 0xdd, 0x30, 0x0a, + 0xc2, 0x40, 0x89, 0x28, 0x2d, 0xca, 0x52, 0x1d, 0x39, 0xa9, 0x84, 0x2d, 0xc1, 0x4a, 0xb7, 0xb1, + 0x83, 0x73, 0xd7, 0x8d, 0x84, 0x52, 0xf1, 0xb0, 0x9c, 0x90, 0xec, 0x10, 0x3a, 0xe1, 0x62, 0x3c, + 0xc2, 0x66, 0x53, 0xcc, 0xb4, 0x8b, 0xc5, 0xf8, 0xb9, 0x58, 0x25, 0x17, 0x85, 0x90, 0x28, 0x6a, + 0x37, 0xc1, 0x97, 0x22, 0x8a, 0x03, 0x62, 0x08, 0xdb, 0x87, 0xbd, 0xf2, 0x2d, 0x81, 0x1d, 0x81, + 0x95, 0x16, 0x73, 0x29, 0xe3, 0x33, 0x6b, 0x33, 0x11, 0x9c, 0x24, 0x94, 0xf4, 0x7c, 0xe1, 0x8e, + 0xb2, 0x30, 0x91, 0x45, 0x5d, 0x67, 0xd7, 0x30, 0x7e, 0x91, 0xc4, 0xc9, 0xfe, 0x21, 0xb4, 0x8d, + 0x75, 0xf4, 0xfb, 0xac, 0xc2, 0x64, 0xcc, 0xa1, 0x75, 0x65, 0x51, 0xfe, 0xb9, 0x06, 0xdd, 0xe4, + 0x16, 0x52, 0xa9, 0x54, 0x30, 0xb7, 0xfe, 0xdf, 0xcd, 0x5d, 0x77, 0x6d, 0x4b, 0x12, 0xa6, 0x99, + 0x4b, 0x98, 0x43, 0x60, 0x26, 0x2f, 0xae, 0x02, 0x2d, 0x7d, 0x6f, 0x64, 0x22, 0x68, 0x12, 0x64, + 0x8f, 0x38, 0xaf, 0x88, 0x71, 0x81, 0xfb, 0xc7, 0x5f, 0xb5, 0x60, 0xf7, 0xe4, 0xf4, 0xec, 0xfc, + 0x24, 0x0c, 0x67, 0x72, 0xc2, 0x69, 0xec, 0x19, 0x40, 0x93, 0x06, 0xbb, 0x8a, 0x27, 0x9a, 0x7e, + 0xd5, 0x0d, 0x83, 0x1d, 0x43, 0x8b, 0xe6, 0x3b, 0x56, 0xf5, 0x52, 0xd3, 0xaf, 0xbc, 0x68, 0xe0, + 0x47, 0xcc, 0x04, 0x78, 0xfd, 0xc1, 0xa6, 0x5f, 0x75, 0xdb, 0x60, 0x9f, 0x80, 0x95, 0x4d, 0x66, + 0xeb, 0x9e, 0x6d, 0xfa, 0x6b, 0xef, 0x1d, 0xa8, 0x9f, 0x35, 0xcc, 0x75, 0x8f, 0x1c, 0xfd, 0xb5, + 0x03, 0x3a, 0x7b, 0x02, 0x9d, 0x64, 0xe4, 0xa8, 0x7e, 0x58, 0xe9, 0xaf, 0xb9, 0x13, 0x60, 0x78, + 0xcc, 0xd8, 0x56, 0xf5, 0xfa, 0xd3, 0xaf, 0xbc, 0xb8, 0xb0, 0x47, 0xd0, 0x8e, 0x51, 0xbf, 0xf2, + 0x89, 0xa4, 0x5f, 0x3d, 0xd9, 0xa3, 0x93, 0xd9, 0xbc, 0xb9, 0xee, 0x85, 0xaa, 0xbf, 0xf6, 0x86, + 0xc5, 0x4e, 0x00, 0x72, 0xa3, 0xda, 0xda, 0xa7, 0xa7, 0xfe, 0xfa, 0x9b, 0x13, 0xfb, 0x18, 0xba, + 0xd9, 0x6d, 0xb8, 0xfa, 0x49, 0xa8, 0xbf, 0xee, 0x32, 0x33, 0x6e, 0xd3, 0xb3, 0xe1, 0x87, 0xff, + 0x09, 0x00, 0x00, 0xff, 0xff, 0x39, 0xa6, 0xae, 0x4d, 0xb2, 0x14, 0x00, 0x00, } diff --git a/types/types.proto b/types/types.proto index c97b73811..2cea82d0d 100644 --- a/types/types.proto +++ b/types/types.proto @@ -1,9 +1,14 @@ syntax = "proto3"; package types; +// For more information on gogo.proto, see: +// https://github.com/gogo/protobuf/blob/master/extensions.md +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; import "github.com/tendermint/tmlibs/common/types.proto"; // This file is copied from http://github.com/tendermint/abci +// NOTE: When using custom types, mind the warnings. +// https://github.com/gogo/protobuf/blob/master/custom_types.md#warnings-and-issues //---------------------------------------- // Request types @@ -42,7 +47,7 @@ message RequestSetOption { } message RequestInitChain { - repeated Validator validators = 1; + repeated Validator validators = 1 [(gogoproto.nullable)=false]; bytes genesis_bytes = 2; } @@ -55,9 +60,9 @@ message RequestQuery { message RequestBeginBlock { bytes hash = 1; - Header header = 2; + Header header = 2 [(gogoproto.nullable)=false]; repeated SigningValidator validators = 3; - repeated Evidence byzantine_validators = 4; + repeated Evidence byzantine_validators = 4 [(gogoproto.nullable)=false]; } message RequestCheckTx { @@ -123,7 +128,7 @@ message ResponseSetOption { } message ResponseInitChain { - repeated Validator validators = 1; + repeated Validator validators = 1 [(gogoproto.nullable)=false]; } message ResponseQuery { @@ -139,7 +144,7 @@ message ResponseQuery { } message ResponseBeginBlock { - repeated common.KVPair tags = 1; + repeated common.KVPair tags = 1 [(gogoproto.nullable)=false, (gogoproto.jsontag)="tags,omitempty"]; } message ResponseCheckTx { @@ -149,8 +154,8 @@ message ResponseCheckTx { string info = 4; // nondeterministic int64 gas_wanted = 5; int64 gas_used = 6; - repeated common.KVPair tags = 7; - common.KI64Pair fee = 8; + repeated common.KVPair tags = 7 [(gogoproto.nullable)=false, (gogoproto.jsontag)="tags,omitempty"]; + common.KI64Pair fee = 8 [(gogoproto.nullable)=false]; } message ResponseDeliverTx { @@ -160,14 +165,14 @@ message ResponseDeliverTx { string info = 4; // nondeterministic int64 gas_wanted = 5; int64 gas_used = 6; - repeated common.KVPair tags = 7; - common.KI64Pair fee = 8; + repeated common.KVPair tags = 7 [(gogoproto.nullable)=false, (gogoproto.jsontag)="tags,omitempty"]; + common.KI64Pair fee = 8 [(gogoproto.nullable)=false]; } message ResponseEndBlock { - repeated Validator validator_updates = 1; + repeated Validator validator_updates = 1 [(gogoproto.nullable)=false]; ConsensusParams consensus_param_updates = 2; - repeated common.KVPair tags = 3; + repeated common.KVPair tags = 3 [(gogoproto.nullable)=false, (gogoproto.jsontag)="tags,omitempty"]; } message ResponseCommit { @@ -212,7 +217,7 @@ message BlockGossip { // just the minimum the app might need message Header { // basics - string chain_id = 1; + string chain_id = 1 [(gogoproto.customname)="ChainID"]; int64 height = 2; int64 time = 3; @@ -231,7 +236,7 @@ message Header { // Validator message Validator { bytes address = 1; - PubKey pub_key = 2; + PubKey pub_key = 2 [(gogoproto.nullable)=false]; int64 power = 3; } diff --git a/types/validator.go b/types/util.go similarity index 85% rename from types/validator.go rename to types/util.go index f73c978b2..0924ab5ff 100644 --- a/types/validator.go +++ b/types/util.go @@ -8,21 +8,6 @@ import ( cmn "github.com/tendermint/tmlibs/common" ) -const ( - PubKeyEd25519 = "ed25519" -) - -func Ed25519Validator(pubkey []byte, power int64) Validator { - return Validator{ - // Address: - PubKey: &PubKey{ - Type: PubKeyEd25519, - Data: pubkey, - }, - Power: power, - } -} - //------------------------------------------------------------------------------ // Validators is a list of validators that implements the Sort interface