Remove Proof message, replace with more flexible Query
This commit is contained in:
parent
4bdddf9829
commit
2a4894310d
27
README.md
27
README.md
|
@ -85,27 +85,20 @@ ABCI requests/responses are simple Protobuf messages. Check out the [schema fil
|
||||||
|
|
||||||
#### Query
|
#### Query
|
||||||
* __Arguments__:
|
* __Arguments__:
|
||||||
* `Query ([]byte)`: The query request bytes
|
* `Data ([]byte)`: Raw query bytes. Can be used with or in lieu of Path.
|
||||||
* `Path (string)`: Path of request
|
* `Path (string)`: Path of request, like an HTTP GET path. Can be used with or in liue of Data.
|
||||||
|
* Apps MUST interpret '/store' as a query by key on the underlying store. The key SHOULD be specified in the Data field.
|
||||||
|
* Apps SHOULD allow queries over specific types like '/accounts/...' or '/votes/...'
|
||||||
* `Height (uint64)`: The block height for which you want the query (default=0 returns data for the latest committed block)
|
* `Height (uint64)`: The block height for which you want the query (default=0 returns data for the latest committed block)
|
||||||
* `Prove (bool)`: Return Merkle proof with response
|
* `Prove (bool)`: Return Merkle proof with response if possible
|
||||||
* __Returns__:
|
|
||||||
* `Data ([]byte)`: The query response bytes
|
|
||||||
* `Log (string)`: Debug or error message
|
|
||||||
* `Height (uint64)`: The block height from which data was derived
|
|
||||||
* `Proof ([]byte)`: Proof for the data, if requested
|
|
||||||
|
|
||||||
#### Proof
|
|
||||||
* __Arguments__:
|
|
||||||
* `Key ([]byte)`: The key whose data you want to verifiably query
|
|
||||||
* `Height (uint64)`: The block height for which you want the proof (default=0 returns the proof for last committed block)
|
|
||||||
* __Returns__:
|
* __Returns__:
|
||||||
* `Code (uint32)`: Response code
|
* `Code (uint32)`: Response code
|
||||||
* `Data ([]byte)`: The query response bytes
|
* `Key ([]byte)`: The key of the matching data
|
||||||
|
* `Value ([]byte)`: The value of the matching data
|
||||||
|
* `Proof ([]byte)`: Proof for the data, if requested
|
||||||
|
* `Height (uint64)`: The block height from which data was derived
|
||||||
* `Log (string)`: Debug or error message
|
* `Log (string)`: Debug or error message
|
||||||
* __Usage__:<br/>
|
*Please note* The current implementation of go-merkle doesn't support querying proofs from past blocks, so for the present moment, any height other than 0 will return an error. Hopefully this will be improved soon(ish)
|
||||||
Return a Merkle proof from the key/value pair back to the application hash.<br/>
|
|
||||||
*Please note* The current implementation of go-merkle doesn't support querying proofs from past blocks, so for the present moment, any height other than 0 will return an error. Hopefully this will be improved soon(ish)
|
|
||||||
|
|
||||||
#### Flush
|
#### Flush
|
||||||
* __Usage__:<br/>
|
* __Usage__:<br/>
|
||||||
|
|
|
@ -20,8 +20,7 @@ type Client interface {
|
||||||
SetOptionAsync(key string, value string) *ReqRes
|
SetOptionAsync(key string, value string) *ReqRes
|
||||||
DeliverTxAsync(tx []byte) *ReqRes
|
DeliverTxAsync(tx []byte) *ReqRes
|
||||||
CheckTxAsync(tx []byte) *ReqRes
|
CheckTxAsync(tx []byte) *ReqRes
|
||||||
QueryAsync(tx []byte) *ReqRes
|
QueryAsync(reqQuery types.RequestQuery) *ReqRes
|
||||||
ProofAsync(key []byte, blockHeight uint64) *ReqRes
|
|
||||||
CommitAsync() *ReqRes
|
CommitAsync() *ReqRes
|
||||||
|
|
||||||
FlushSync() error
|
FlushSync() error
|
||||||
|
@ -30,8 +29,7 @@ type Client interface {
|
||||||
SetOptionSync(key string, value string) (res types.Result)
|
SetOptionSync(key string, value string) (res types.Result)
|
||||||
DeliverTxSync(tx []byte) (res types.Result)
|
DeliverTxSync(tx []byte) (res types.Result)
|
||||||
CheckTxSync(tx []byte) (res types.Result)
|
CheckTxSync(tx []byte) (res types.Result)
|
||||||
QuerySync(tx []byte) (res types.Result)
|
QuerySync(reqQuery types.RequestQuery) (resQuery types.ResponseQuery, err error)
|
||||||
ProofSync(key []byte, blockHeight uint64) (res types.Result)
|
|
||||||
CommitSync() (res types.Result)
|
CommitSync() (res types.Result)
|
||||||
|
|
||||||
InitChainAsync(validators []*types.Validator) *ReqRes
|
InitChainAsync(validators []*types.Validator) *ReqRes
|
||||||
|
|
|
@ -173,8 +173,8 @@ func (cli *grpcClient) CheckTxAsync(tx []byte) *ReqRes {
|
||||||
return cli.finishAsyncCall(req, &types.Response{&types.Response_CheckTx{res}})
|
return cli.finishAsyncCall(req, &types.Response{&types.Response_CheckTx{res}})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *grpcClient) QueryAsync(query []byte) *ReqRes {
|
func (cli *grpcClient) QueryAsync(reqQuery types.RequestQuery) *ReqRes {
|
||||||
req := types.ToRequestQuery(query)
|
req := types.ToRequestQuery(reqQuery)
|
||||||
res, err := cli.client.Query(context.Background(), req.GetQuery(), grpc.FailFast(true))
|
res, err := cli.client.Query(context.Background(), req.GetQuery(), grpc.FailFast(true))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cli.StopForError(err)
|
cli.StopForError(err)
|
||||||
|
@ -182,15 +182,6 @@ func (cli *grpcClient) QueryAsync(query []byte) *ReqRes {
|
||||||
return cli.finishAsyncCall(req, &types.Response{&types.Response_Query{res}})
|
return cli.finishAsyncCall(req, &types.Response{&types.Response_Query{res}})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *grpcClient) ProofAsync(key []byte, blockHeight uint64) *ReqRes {
|
|
||||||
req := types.ToRequestProof(key, blockHeight)
|
|
||||||
res, err := cli.client.Proof(context.Background(), req.GetProof(), grpc.FailFast(true))
|
|
||||||
if err != nil {
|
|
||||||
cli.StopForError(err)
|
|
||||||
}
|
|
||||||
return cli.finishAsyncCall(req, &types.Response{&types.Response_Proof{res}})
|
|
||||||
}
|
|
||||||
|
|
||||||
func (cli *grpcClient) CommitAsync() *ReqRes {
|
func (cli *grpcClient) CommitAsync() *ReqRes {
|
||||||
req := types.ToRequestCommit()
|
req := types.ToRequestCommit()
|
||||||
res, err := cli.client.Commit(context.Background(), req.GetCommit(), grpc.FailFast(true))
|
res, err := cli.client.Commit(context.Background(), req.GetCommit(), grpc.FailFast(true))
|
||||||
|
@ -264,7 +255,7 @@ func (cli *grpcClient) EchoSync(msg string) (res types.Result) {
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
resp := reqres.Response.GetEcho()
|
resp := reqres.Response.GetEcho()
|
||||||
return types.NewResultOK([]byte(resp.Message), LOG)
|
return types.NewResultOK([]byte(resp.Message), "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *grpcClient) FlushSync() error {
|
func (cli *grpcClient) FlushSync() error {
|
||||||
|
@ -310,22 +301,15 @@ func (cli *grpcClient) CheckTxSync(tx []byte) (res types.Result) {
|
||||||
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
|
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *grpcClient) ProofSync(key []byte, blockHeight uint64) (res types.Result) {
|
func (cli *grpcClient) QuerySync(reqQuery types.RequestQuery) (resQuery types.ResponseQuery, err error) {
|
||||||
reqres := cli.ProofAsync(key, blockHeight)
|
reqres := cli.QueryAsync(reqQuery)
|
||||||
if res := cli.checkErrGetResult(); res.IsErr() {
|
if err = cli.Error(); err != nil {
|
||||||
return res
|
return resQuery, err
|
||||||
}
|
}
|
||||||
resp := reqres.Response.GetProof()
|
if resQuery_ := reqres.Response.GetQuery(); resQuery_ != nil {
|
||||||
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
|
return *resQuery_, nil
|
||||||
}
|
|
||||||
|
|
||||||
func (cli *grpcClient) QuerySync(query []byte) (res types.Result) {
|
|
||||||
reqres := cli.QueryAsync(query)
|
|
||||||
if res := cli.checkErrGetResult(); res.IsErr() {
|
|
||||||
return res
|
|
||||||
}
|
}
|
||||||
resp := reqres.Response.GetQuery()
|
return resQuery, nil
|
||||||
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *grpcClient) CommitSync() (res types.Result) {
|
func (cli *grpcClient) CommitSync() (res types.Result) {
|
||||||
|
|
|
@ -89,23 +89,13 @@ func (app *localClient) CheckTxAsync(tx []byte) *ReqRes {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *localClient) QueryAsync(tx []byte) *ReqRes {
|
func (app *localClient) QueryAsync(reqQuery types.RequestQuery) *ReqRes {
|
||||||
app.mtx.Lock()
|
app.mtx.Lock()
|
||||||
res := app.Application.Query(tx)
|
resQuery := app.Application.Query(reqQuery)
|
||||||
app.mtx.Unlock()
|
app.mtx.Unlock()
|
||||||
return app.callback(
|
return app.callback(
|
||||||
types.ToRequestQuery(tx),
|
types.ToRequestQuery(reqQuery),
|
||||||
types.ToResponseQuery(res.Code, res.Data, res.Log),
|
types.ToResponseQuery(resQuery),
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (app *localClient) ProofAsync(key []byte, blockHeight uint64) *ReqRes {
|
|
||||||
app.mtx.Lock()
|
|
||||||
res := app.Application.Proof(key, blockHeight)
|
|
||||||
app.mtx.Unlock()
|
|
||||||
return app.callback(
|
|
||||||
types.ToRequestProof(key, blockHeight),
|
|
||||||
types.ToResponseQuery(res.Code, res.Data, res.Log),
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -195,18 +185,11 @@ func (app *localClient) CheckTxSync(tx []byte) (res types.Result) {
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *localClient) QuerySync(query []byte) (res types.Result) {
|
func (app *localClient) QuerySync(reqQuery types.RequestQuery) (resQuery types.ResponseQuery, err error) {
|
||||||
app.mtx.Lock()
|
app.mtx.Lock()
|
||||||
res = app.Application.Query(query)
|
resQuery = app.Application.Query(reqQuery)
|
||||||
app.mtx.Unlock()
|
app.mtx.Unlock()
|
||||||
return res
|
return resQuery, nil
|
||||||
}
|
|
||||||
|
|
||||||
func (app *localClient) ProofSync(key []byte, blockHeight uint64) (res types.Result) {
|
|
||||||
app.mtx.Lock()
|
|
||||||
res = app.Application.Proof(key, blockHeight)
|
|
||||||
app.mtx.Unlock()
|
|
||||||
return res
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *localClient) CommitSync() (res types.Result) {
|
func (app *localClient) CommitSync() (res types.Result) {
|
||||||
|
|
|
@ -251,12 +251,8 @@ func (cli *socketClient) CheckTxAsync(tx []byte) *ReqRes {
|
||||||
return cli.queueRequest(types.ToRequestCheckTx(tx))
|
return cli.queueRequest(types.ToRequestCheckTx(tx))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *socketClient) QueryAsync(query []byte) *ReqRes {
|
func (cli *socketClient) QueryAsync(reqQuery types.RequestQuery) *ReqRes {
|
||||||
return cli.queueRequest(types.ToRequestQuery(query))
|
return cli.queueRequest(types.ToRequestQuery(reqQuery))
|
||||||
}
|
|
||||||
|
|
||||||
func (cli *socketClient) ProofAsync(key []byte, blockHeight uint64) *ReqRes {
|
|
||||||
return cli.queueRequest(types.ToRequestProof(key, blockHeight))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *socketClient) CommitAsync() *ReqRes {
|
func (cli *socketClient) CommitAsync() *ReqRes {
|
||||||
|
@ -284,7 +280,7 @@ func (cli *socketClient) EchoSync(msg string) (res types.Result) {
|
||||||
return types.ErrInternalError.SetLog(err.Error())
|
return types.ErrInternalError.SetLog(err.Error())
|
||||||
}
|
}
|
||||||
resp := reqres.Response.GetEcho()
|
resp := reqres.Response.GetEcho()
|
||||||
return types.Result{Code: OK, Data: []byte(resp.Message), Log: LOG}
|
return types.Result{Code: OK, Data: []byte(resp.Message)}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *socketClient) FlushSync() error {
|
func (cli *socketClient) FlushSync() error {
|
||||||
|
@ -304,9 +300,8 @@ func (cli *socketClient) InfoSync() (resInfo types.ResponseInfo, err error) {
|
||||||
}
|
}
|
||||||
if resInfo_ := reqres.Response.GetInfo(); resInfo_ != nil {
|
if resInfo_ := reqres.Response.GetInfo(); resInfo_ != nil {
|
||||||
return *resInfo_, nil
|
return *resInfo_, nil
|
||||||
} else {
|
|
||||||
return resInfo, nil
|
|
||||||
}
|
}
|
||||||
|
return resInfo, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *socketClient) SetOptionSync(key string, value string) (res types.Result) {
|
func (cli *socketClient) SetOptionSync(key string, value string) (res types.Result) {
|
||||||
|
@ -339,25 +334,18 @@ func (cli *socketClient) CheckTxSync(tx []byte) (res types.Result) {
|
||||||
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
|
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *socketClient) QuerySync(query []byte) (res types.Result) {
|
func (cli *socketClient) QuerySync(reqQuery types.RequestQuery) (resQuery types.ResponseQuery, err error) {
|
||||||
reqres := cli.queueRequest(types.ToRequestQuery(query))
|
reqres := cli.queueRequest(types.ToRequestQuery(reqQuery))
|
||||||
cli.FlushSync()
|
cli.FlushSync()
|
||||||
if err := cli.Error(); err != nil {
|
if err := cli.Error(); err != nil {
|
||||||
return types.ErrInternalError.SetLog(err.Error())
|
return resQuery, err
|
||||||
}
|
}
|
||||||
resp := reqres.Response.GetQuery()
|
if resQuery_ := reqres.Response.GetQuery(); resQuery_ != nil {
|
||||||
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
|
return *resQuery_, nil
|
||||||
|
}
|
||||||
|
return resQuery, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *socketClient) ProofSync(key []byte, blockHeight uint64) (res types.Result) {
|
|
||||||
reqres := cli.queueRequest(types.ToRequestProof(key, blockHeight))
|
|
||||||
cli.FlushSync()
|
|
||||||
if err := cli.Error(); err != nil {
|
|
||||||
return types.ErrInternalError.SetLog(err.Error())
|
|
||||||
}
|
|
||||||
resp := reqres.Response.GetProof()
|
|
||||||
return types.Result{Code: resp.Code, Data: resp.Data, Log: resp.Log}
|
|
||||||
}
|
|
||||||
func (cli *socketClient) CommitSync() (res types.Result) {
|
func (cli *socketClient) CommitSync() (res types.Result) {
|
||||||
reqres := cli.queueRequest(types.ToRequestCommit())
|
reqres := cli.queueRequest(types.ToRequestCommit())
|
||||||
cli.FlushSync()
|
cli.FlushSync()
|
||||||
|
@ -450,8 +438,6 @@ func resMatchesReq(req *types.Request, res *types.Response) (ok bool) {
|
||||||
_, ok = res.Value.(*types.Response_Commit)
|
_, ok = res.Value.(*types.Response_Commit)
|
||||||
case *types.Request_Query:
|
case *types.Request_Query:
|
||||||
_, ok = res.Value.(*types.Response_Query)
|
_, ok = res.Value.(*types.Response_Query)
|
||||||
case *types.Request_Proof:
|
|
||||||
_, ok = res.Value.(*types.Response_Proof)
|
|
||||||
case *types.Request_InitChain:
|
case *types.Request_InitChain:
|
||||||
_, ok = res.Value.(*types.Response_InitChain)
|
_, ok = res.Value.(*types.Response_InitChain)
|
||||||
case *types.Request_BeginBlock:
|
case *types.Request_BeginBlock:
|
||||||
|
|
|
@ -7,7 +7,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/tendermint/abci/client"
|
"github.com/tendermint/abci/client"
|
||||||
|
@ -16,28 +15,15 @@ import (
|
||||||
"github.com/urfave/cli"
|
"github.com/urfave/cli"
|
||||||
)
|
)
|
||||||
|
|
||||||
//structure for data passed to print response
|
// Structure for data passed to print response.
|
||||||
// variables must be exposed for JSON to read
|
|
||||||
type response struct {
|
type response struct {
|
||||||
Res types.Result
|
Data []byte
|
||||||
Data string
|
Code types.CodeType
|
||||||
PrintCode bool
|
Key []byte
|
||||||
Code string
|
Value []byte
|
||||||
}
|
Log string
|
||||||
|
Height string
|
||||||
func newResponse(res types.Result, data string, printCode bool) *response {
|
Proof []byte
|
||||||
rsp := &response{
|
|
||||||
Res: res,
|
|
||||||
Data: data,
|
|
||||||
PrintCode: printCode,
|
|
||||||
Code: "",
|
|
||||||
}
|
|
||||||
|
|
||||||
if printCode {
|
|
||||||
rsp.Code = res.Code.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
return rsp
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// client is a global variable so it can be reused by the console
|
// client is a global variable so it can be reused by the console
|
||||||
|
@ -132,13 +118,6 @@ func main() {
|
||||||
return cmdQuery(c)
|
return cmdQuery(c)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
Name: "proof",
|
|
||||||
Usage: "Get proof for a key",
|
|
||||||
Action: func(c *cli.Context) error {
|
|
||||||
return cmdProof(c)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
app.Before = before
|
app.Before = before
|
||||||
err := app.Run(os.Args)
|
err := app.Run(os.Args)
|
||||||
|
@ -228,9 +207,10 @@ func cmdEcho(c *cli.Context) error {
|
||||||
if len(args) != 1 {
|
if len(args) != 1 {
|
||||||
return errors.New("Command echo takes 1 argument")
|
return errors.New("Command echo takes 1 argument")
|
||||||
}
|
}
|
||||||
res := client.EchoSync(args[0])
|
resEcho := client.EchoSync(args[0])
|
||||||
rsp := newResponse(res, string(res.Data), false)
|
printResponse(c, response{
|
||||||
printResponse(c, rsp)
|
Data: resEcho.Data,
|
||||||
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,8 +220,9 @@ func cmdInfo(c *cli.Context) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
rsp := newResponse(types.Result{}, string(resInfo.Data), false)
|
printResponse(c, response{
|
||||||
printResponse(c, rsp)
|
Data: []byte(resInfo.Data),
|
||||||
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,9 +232,10 @@ func cmdSetOption(c *cli.Context) error {
|
||||||
if len(args) != 2 {
|
if len(args) != 2 {
|
||||||
return errors.New("Command set_option takes 2 arguments (key, value)")
|
return errors.New("Command set_option takes 2 arguments (key, value)")
|
||||||
}
|
}
|
||||||
res := client.SetOptionSync(args[0], args[1])
|
resSetOption := client.SetOptionSync(args[0], args[1])
|
||||||
rsp := newResponse(res, Fmt("%s=%s", args[0], args[1]), false)
|
printResponse(c, response{
|
||||||
printResponse(c, rsp)
|
Log: resSetOption.Log,
|
||||||
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -268,8 +250,11 @@ func cmdDeliverTx(c *cli.Context) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
res := client.DeliverTxSync(txBytes)
|
res := client.DeliverTxSync(txBytes)
|
||||||
rsp := newResponse(res, string(res.Data), true)
|
printResponse(c, response{
|
||||||
printResponse(c, rsp)
|
Code: res.Code,
|
||||||
|
Data: res.Data,
|
||||||
|
Log: res.Log,
|
||||||
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -284,20 +269,26 @@ func cmdCheckTx(c *cli.Context) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
res := client.CheckTxSync(txBytes)
|
res := client.CheckTxSync(txBytes)
|
||||||
rsp := newResponse(res, string(res.Data), true)
|
printResponse(c, response{
|
||||||
printResponse(c, rsp)
|
Code: res.Code,
|
||||||
|
Data: res.Data,
|
||||||
|
Log: res.Log,
|
||||||
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get application Merkle root hash
|
// Get application Merkle root hash
|
||||||
func cmdCommit(c *cli.Context) error {
|
func cmdCommit(c *cli.Context) error {
|
||||||
res := client.CommitSync()
|
res := client.CommitSync()
|
||||||
rsp := newResponse(res, Fmt("0x%X", res.Data), false)
|
printResponse(c, response{
|
||||||
printResponse(c, rsp)
|
Data: res.Data,
|
||||||
|
Log: res.Log,
|
||||||
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Query application state
|
// Query application state
|
||||||
|
// TODO: Make request and response support all fields.
|
||||||
func cmdQuery(c *cli.Context) error {
|
func cmdQuery(c *cli.Context) error {
|
||||||
args := c.Args()
|
args := c.Args()
|
||||||
if len(args) != 1 {
|
if len(args) != 1 {
|
||||||
|
@ -307,36 +298,29 @@ func cmdQuery(c *cli.Context) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
res := client.QuerySync(queryBytes)
|
resQuery, err := client.QuerySync(types.RequestQuery{
|
||||||
rsp := newResponse(res, string(res.Data), true)
|
Data: queryBytes,
|
||||||
printResponse(c, rsp)
|
Path: "/store", // TOOD expose
|
||||||
return nil
|
Height: 0, // TODO expose
|
||||||
}
|
Prove: true, // TODO expose
|
||||||
|
})
|
||||||
// Prove application state
|
|
||||||
func cmdProof(c *cli.Context) error {
|
|
||||||
args := c.Args()
|
|
||||||
if len(args) < 1 {
|
|
||||||
return errors.New("Command proof takes 1 or 2 arguments")
|
|
||||||
}
|
|
||||||
keyBytes, err := stringOrHexToBytes(c.Args()[0])
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
printResponse(c, response{
|
||||||
var height uint64
|
Code: resQuery.Code,
|
||||||
if len(args) == 2 {
|
Key: resQuery.Key,
|
||||||
height, _ = strconv.ParseUint(args[1], 10, 0)
|
Value: resQuery.Value,
|
||||||
}
|
Log: resQuery.Log,
|
||||||
res := client.ProofSync(keyBytes, height)
|
Height: fmt.Sprintf("%v", resQuery.Height),
|
||||||
rsp := newResponse(res, string(res.Data), true)
|
Proof: resQuery.Proof,
|
||||||
printResponse(c, rsp)
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------
|
||||||
|
|
||||||
func printResponse(c *cli.Context, rsp *response) {
|
func printResponse(c *cli.Context, rsp response) {
|
||||||
|
|
||||||
verbose := c.GlobalBool("verbose")
|
verbose := c.GlobalBool("verbose")
|
||||||
|
|
||||||
|
@ -344,19 +328,29 @@ func printResponse(c *cli.Context, rsp *response) {
|
||||||
fmt.Println(">", c.Command.Name, strings.Join(c.Args(), " "))
|
fmt.Println(">", c.Command.Name, strings.Join(c.Args(), " "))
|
||||||
}
|
}
|
||||||
|
|
||||||
if rsp.PrintCode {
|
if rsp.Code != types.CodeType_OK {
|
||||||
fmt.Printf("-> code: %s\n", rsp.Code)
|
fmt.Printf("-> code: %s\n", rsp.Code.String())
|
||||||
}
|
}
|
||||||
|
if len(rsp.Data) != 0 {
|
||||||
//if pr.res.Error != "" {
|
|
||||||
// fmt.Printf("-> error: %s\n", pr.res.Error)
|
|
||||||
//}
|
|
||||||
|
|
||||||
if rsp.Data != "" {
|
|
||||||
fmt.Printf("-> data: %s\n", rsp.Data)
|
fmt.Printf("-> data: %s\n", rsp.Data)
|
||||||
|
fmt.Printf("-> data.hex: %X\n", rsp.Data)
|
||||||
}
|
}
|
||||||
if rsp.Res.Log != "" {
|
if len(rsp.Key) != 0 {
|
||||||
fmt.Printf("-> log: %s\n", rsp.Res.Log)
|
fmt.Printf("-> key: %s\n", rsp.Key)
|
||||||
|
fmt.Printf("-> key.hex: %X\n", rsp.Key)
|
||||||
|
}
|
||||||
|
if len(rsp.Value) != 0 {
|
||||||
|
fmt.Printf("-> value: %s\n", rsp.Value)
|
||||||
|
fmt.Printf("-> value.hex: %X\n", rsp.Value)
|
||||||
|
}
|
||||||
|
if rsp.Log != "" {
|
||||||
|
fmt.Printf("-> log: %s\n", rsp.Log)
|
||||||
|
}
|
||||||
|
if rsp.Height != "" {
|
||||||
|
fmt.Printf("-> height: %s\n", rsp.Height)
|
||||||
|
}
|
||||||
|
if rsp.Proof != nil {
|
||||||
|
fmt.Printf("-> proof: %X\n", rsp.Proof)
|
||||||
}
|
}
|
||||||
|
|
||||||
if verbose {
|
if verbose {
|
|
@ -3,9 +3,9 @@ package main
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
|
|
||||||
. "github.com/tendermint/go-common"
|
|
||||||
"github.com/tendermint/abci/example/counter"
|
"github.com/tendermint/abci/example/counter"
|
||||||
"github.com/tendermint/abci/server"
|
"github.com/tendermint/abci/server"
|
||||||
|
. "github.com/tendermint/go-common"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
|
@ -57,12 +57,10 @@ func (app *ChainAwareApplication) Commit() types.Result {
|
||||||
return types.NewResultOK([]byte("nil"), "")
|
return types.NewResultOK([]byte("nil"), "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *ChainAwareApplication) Query(query []byte) types.Result {
|
func (app *ChainAwareApplication) Query(reqQuery types.RequestQuery) (resQuery types.ResponseQuery) {
|
||||||
return types.NewResultOK([]byte(Fmt("%d,%d", app.beginCount, app.endCount)), "")
|
return types.ResponseQuery{
|
||||||
}
|
Value: []byte(Fmt("%d,%d", app.beginCount, app.endCount)),
|
||||||
|
}
|
||||||
func (app *ChainAwareApplication) Proof(key []byte, blockHeight uint64) types.Result {
|
|
||||||
return types.NewResultOK(nil, Fmt("Proof is not supported"))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *ChainAwareApplication) BeginBlock(hash []byte, header *types.Header) {
|
func (app *ChainAwareApplication) BeginBlock(hash []byte, header *types.Header) {
|
||||||
|
|
|
@ -5,10 +5,10 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
. "github.com/tendermint/go-common"
|
|
||||||
"github.com/tendermint/abci/client"
|
"github.com/tendermint/abci/client"
|
||||||
"github.com/tendermint/abci/server"
|
"github.com/tendermint/abci/server"
|
||||||
"github.com/tendermint/abci/types"
|
"github.com/tendermint/abci/types"
|
||||||
|
. "github.com/tendermint/go-common"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestChainAware(t *testing.T) {
|
func TestChainAware(t *testing.T) {
|
||||||
|
@ -39,10 +39,10 @@ func TestChainAware(t *testing.T) {
|
||||||
client.CommitSync()
|
client.CommitSync()
|
||||||
}
|
}
|
||||||
|
|
||||||
r := app.Query(nil)
|
r := app.Query(types.RequestQuery{})
|
||||||
spl := strings.Split(string(r.Data), ",")
|
spl := strings.Split(string(r.Value), ",")
|
||||||
if len(spl) != 2 {
|
if len(spl) != 2 {
|
||||||
t.Fatal("expected %d,%d ; got %s", n, n, string(r.Data))
|
t.Fatal("expected %d,%d ; got %s", n, n, string(r.Value))
|
||||||
}
|
}
|
||||||
beginCount, _ := strconv.Atoi(spl[0])
|
beginCount, _ := strconv.Atoi(spl[0])
|
||||||
endCount, _ := strconv.Atoi(spl[1])
|
endCount, _ := strconv.Atoi(spl[1])
|
||||||
|
|
|
@ -71,19 +71,14 @@ func (app *CounterApplication) Commit() types.Result {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *CounterApplication) Query(query []byte) types.Result {
|
func (app *CounterApplication) Query(reqQuery types.RequestQuery) types.ResponseQuery {
|
||||||
queryStr := string(query)
|
|
||||||
|
|
||||||
switch queryStr {
|
switch reqQuery.Path {
|
||||||
case "hash":
|
case "hash":
|
||||||
return types.NewResultOK(nil, Fmt("%v", app.hashCount))
|
return types.ResponseQuery{Value: []byte(Fmt("%v", app.hashCount))}
|
||||||
case "tx":
|
case "tx":
|
||||||
return types.NewResultOK(nil, Fmt("%v", app.txCount))
|
return types.ResponseQuery{Value: []byte(Fmt("%v", app.txCount))}
|
||||||
}
|
}
|
||||||
|
|
||||||
return types.ErrUnknownRequest.SetLog(Fmt("Invalid nonce. Expected hash or tx, got %v", queryStr))
|
return types.ResponseQuery{Log: Fmt("Invalid query path. Expected hash or tx, got %v", reqQuery.Path)}
|
||||||
}
|
|
||||||
|
|
||||||
func (app *CounterApplication) Proof(key []byte, blockHeight uint64) types.Result {
|
|
||||||
return types.NewResultOK(nil, Fmt("Proof is not supported"))
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
package dummy
|
package dummy
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/hex"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/tendermint/abci/types"
|
"github.com/tendermint/abci/types"
|
||||||
. "github.com/tendermint/go-common"
|
. "github.com/tendermint/go-common"
|
||||||
"github.com/tendermint/go-merkle"
|
"github.com/tendermint/go-merkle"
|
||||||
"github.com/tendermint/go-wire"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type DummyApplication struct {
|
type DummyApplication struct {
|
||||||
|
@ -47,30 +45,28 @@ func (app *DummyApplication) Commit() types.Result {
|
||||||
return types.NewResultOK(hash, "")
|
return types.NewResultOK(hash, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *DummyApplication) Query(query []byte) types.Result {
|
func (app *DummyApplication) Query(reqQuery types.RequestQuery) (resQuery types.ResponseQuery) {
|
||||||
index, value, exists := app.state.Get(query)
|
if reqQuery.Prove {
|
||||||
|
value, proof, exists := app.state.Proof(reqQuery.Data)
|
||||||
queryResult := QueryResult{index, string(value), hex.EncodeToString(value), exists}
|
resQuery.Index = -1 // TODO make Proof return index
|
||||||
return types.NewResultOK(wire.JSONBytes(queryResult), "")
|
resQuery.Key = reqQuery.Data
|
||||||
}
|
resQuery.Value = value
|
||||||
|
resQuery.Proof = proof
|
||||||
func (app *DummyApplication) Proof(key []byte, blockHeight uint64) types.Result {
|
if exists {
|
||||||
// TODO: when go-merkle supports querying older blocks without possible panics,
|
resQuery.Log = "exists"
|
||||||
// we should store a cache and allow a query. But for now it is impossible.
|
} else {
|
||||||
// And this is just a Dummy application anyway, what do you expect? ;)
|
resQuery.Log = "does not exist"
|
||||||
if blockHeight != 0 {
|
}
|
||||||
return types.ErrUnknownRequest
|
return
|
||||||
|
} else {
|
||||||
|
index, value, exists := app.state.Get(reqQuery.Data)
|
||||||
|
resQuery.Index = int64(index)
|
||||||
|
resQuery.Value = value
|
||||||
|
if exists {
|
||||||
|
resQuery.Log = "exists"
|
||||||
|
} else {
|
||||||
|
resQuery.Log = "does not exist"
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
proof, exists := app.state.Proof(key)
|
|
||||||
if !exists {
|
|
||||||
return types.NewResultOK(nil, Fmt("Cannot find key = %v", key))
|
|
||||||
}
|
|
||||||
return types.NewResultOK(proof, "Found the key")
|
|
||||||
}
|
|
||||||
|
|
||||||
type QueryResult struct {
|
|
||||||
Index int `json:"index"`
|
|
||||||
Value string `json:"value"`
|
|
||||||
ValueHex string `json:"valueHex"`
|
|
||||||
Exists bool `json:"exists"`
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ import (
|
||||||
"sort"
|
"sort"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
abcicli "github.com/tendermint/abci/client"
|
abcicli "github.com/tendermint/abci/client"
|
||||||
"github.com/tendermint/abci/server"
|
"github.com/tendermint/abci/server"
|
||||||
|
@ -14,7 +13,6 @@ import (
|
||||||
. "github.com/tendermint/go-common"
|
. "github.com/tendermint/go-common"
|
||||||
"github.com/tendermint/go-crypto"
|
"github.com/tendermint/go-crypto"
|
||||||
merkle "github.com/tendermint/go-merkle"
|
merkle "github.com/tendermint/go-merkle"
|
||||||
"github.com/tendermint/go-wire"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func testDummy(t *testing.T, app types.Application, tx []byte, key, value string) {
|
func testDummy(t *testing.T, app types.Application, tx []byte, key, value string) {
|
||||||
|
@ -25,21 +23,24 @@ func testDummy(t *testing.T, app types.Application, tx []byte, key, value string
|
||||||
require.False(t, ar.IsErr(), ar)
|
require.False(t, ar.IsErr(), ar)
|
||||||
|
|
||||||
// make sure query is fine
|
// make sure query is fine
|
||||||
r := app.Query([]byte(key))
|
resQuery := app.Query(types.RequestQuery{
|
||||||
require.False(t, r.IsErr(), r)
|
Path: "/store",
|
||||||
q := new(QueryResult)
|
Data: []byte(key),
|
||||||
err := wire.ReadJSONBytes(r.Data, q)
|
})
|
||||||
require.Nil(t, err)
|
require.Equal(t, types.CodeType_OK, resQuery.Code)
|
||||||
require.Equal(t, value, q.Value)
|
require.Equal(t, value, string(resQuery.Value))
|
||||||
|
|
||||||
// make sure proof is fine
|
// make sure proof is fine
|
||||||
rp := app.Proof([]byte(key), 0)
|
resQuery = app.Query(types.RequestQuery{
|
||||||
require.False(t, rp.IsErr(), rp)
|
Path: "/store",
|
||||||
p, err := merkle.LoadProof(rp.Data)
|
Data: []byte(key),
|
||||||
|
Prove: true,
|
||||||
|
})
|
||||||
|
require.Equal(t, types.CodeType_OK, resQuery.Code)
|
||||||
|
require.Equal(t, value, string(resQuery.Value))
|
||||||
|
proof, err := merkle.ReadProof(resQuery.Proof)
|
||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
require.True(t, p.Valid())
|
require.True(t, proof.Verify([]byte(key), resQuery.Value, proof.RootHash)) // NOTE: we have no way to verify the RootHash
|
||||||
assert.Equal(t, []byte(key), p.Key())
|
|
||||||
assert.Equal(t, []byte(value), p.Value())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDummyKV(t *testing.T) {
|
func TestDummyKV(t *testing.T) {
|
||||||
|
@ -285,19 +286,24 @@ func testClient(t *testing.T, app abcicli.Client, tx []byte, key, value string)
|
||||||
require.False(t, ar.IsErr(), ar)
|
require.False(t, ar.IsErr(), ar)
|
||||||
|
|
||||||
// make sure query is fine
|
// make sure query is fine
|
||||||
r := app.QuerySync([]byte(key))
|
resQuery, err := app.QuerySync(types.RequestQuery{
|
||||||
require.False(t, r.IsErr(), r)
|
Path: "/store",
|
||||||
q := new(QueryResult)
|
Data: []byte(key),
|
||||||
err := wire.ReadJSONBytes(r.Data, q)
|
})
|
||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
require.Equal(t, value, q.Value)
|
require.Equal(t, types.CodeType_OK, resQuery.Code)
|
||||||
|
require.Equal(t, value, string(resQuery.Value))
|
||||||
|
|
||||||
// make sure proof is fine
|
// make sure proof is fine
|
||||||
rp := app.ProofSync([]byte(key), 0)
|
resQuery, err = app.QuerySync(types.RequestQuery{
|
||||||
require.False(t, rp.IsErr(), rp)
|
Path: "/store",
|
||||||
p, err := merkle.LoadProof(rp.Data)
|
Data: []byte(key),
|
||||||
|
Prove: true,
|
||||||
|
})
|
||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
require.True(t, p.Valid())
|
require.Equal(t, types.CodeType_OK, resQuery.Code)
|
||||||
assert.Equal(t, []byte(key), p.Key())
|
require.Equal(t, value, string(resQuery.Value))
|
||||||
assert.Equal(t, []byte(value), p.Value())
|
proof, err := merkle.ReadProof(resQuery.Proof)
|
||||||
|
require.Nil(t, err)
|
||||||
|
require.True(t, proof.Verify([]byte(key), resQuery.Value, proof.RootHash)) // NOTE: we have no way to verify the RootHash
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,12 +89,8 @@ func (app *PersistentDummyApplication) Commit() types.Result {
|
||||||
return types.NewResultOK(appHash, "")
|
return types.NewResultOK(appHash, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *PersistentDummyApplication) Query(query []byte) types.Result {
|
func (app *PersistentDummyApplication) Query(reqQuery types.RequestQuery) types.ResponseQuery {
|
||||||
return app.app.Query(query)
|
return app.app.Query(reqQuery)
|
||||||
}
|
|
||||||
|
|
||||||
func (app *PersistentDummyApplication) Proof(key []byte, blockHeight uint64) types.Result {
|
|
||||||
return app.app.Proof(key, blockHeight)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save the validators in the merkle tree
|
// Save the validators in the merkle tree
|
||||||
|
|
|
@ -31,10 +31,6 @@ func (app *NilApplication) Commit() types.Result {
|
||||||
return types.NewResultOK([]byte("nil"), "")
|
return types.NewResultOK([]byte("nil"), "")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *NilApplication) Query(query []byte) types.Result {
|
func (app *NilApplication) Query(reqQuery types.RequestQuery) (resQuery types.ResponseQuery) {
|
||||||
return types.NewResultOK(nil, "")
|
return resQuery
|
||||||
}
|
|
||||||
|
|
||||||
func (app *NilApplication) Proof(key []byte, blockHeight uint64) types.Result {
|
|
||||||
return types.NewResultOK(nil, "")
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ imports:
|
||||||
- name: github.com/tendermint/go-logger
|
- name: github.com/tendermint/go-logger
|
||||||
version: cefb3a45c0bf3c493a04e9bcd9b1540528be59f2
|
version: cefb3a45c0bf3c493a04e9bcd9b1540528be59f2
|
||||||
- name: github.com/tendermint/go-merkle
|
- name: github.com/tendermint/go-merkle
|
||||||
version: 7a86b4486f2cd84ac885c5bbc609fdee2905f5d1
|
version: 653cb1f631528351ddbc359b994eb0c96f0341cd
|
||||||
- name: github.com/tendermint/go-process
|
- name: github.com/tendermint/go-process
|
||||||
version: b27edfd189b1a01a0b099f7e9f8263589cf04909
|
version: b27edfd189b1a01a0b099f7e9f8263589cf04909
|
||||||
- name: github.com/tendermint/go-wire
|
- name: github.com/tendermint/go-wire
|
||||||
|
|
|
@ -8,8 +8,8 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
. "github.com/tendermint/go-common"
|
|
||||||
"github.com/tendermint/abci/types"
|
"github.com/tendermint/abci/types"
|
||||||
|
. "github.com/tendermint/go-common"
|
||||||
)
|
)
|
||||||
|
|
||||||
// var maxNumberConnections = 2
|
// var maxNumberConnections = 2
|
||||||
|
@ -184,11 +184,8 @@ func (s *SocketServer) handleRequest(req *types.Request, responses chan<- *types
|
||||||
res := s.app.Commit()
|
res := s.app.Commit()
|
||||||
responses <- types.ToResponseCommit(res.Code, res.Data, res.Log)
|
responses <- types.ToResponseCommit(res.Code, res.Data, res.Log)
|
||||||
case *types.Request_Query:
|
case *types.Request_Query:
|
||||||
res := s.app.Query(r.Query.Query)
|
resQuery := s.app.Query(*r.Query)
|
||||||
responses <- types.ToResponseQuery(res.Code, res.Data, res.Log)
|
responses <- types.ToResponseQuery(resQuery)
|
||||||
case *types.Request_Proof:
|
|
||||||
res := s.app.Proof(r.Proof.Key, r.Proof.Height)
|
|
||||||
responses <- types.ToResponseProof(res.Code, res.Data, res.Log)
|
|
||||||
case *types.Request_InitChain:
|
case *types.Request_InitChain:
|
||||||
if app, ok := s.app.(types.BlockchainAware); ok {
|
if app, ok := s.app.(types.BlockchainAware); ok {
|
||||||
app.InitChain(r.InitChain.Validators)
|
app.InitChain(r.InitChain.Validators)
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
> echo hello
|
||||||
|
-> data: hello
|
||||||
|
-> data.hex: 68656C6C6F
|
||||||
|
|
||||||
|
> info
|
||||||
|
-> data: {"size":0}
|
||||||
|
-> data.hex: 7B2273697A65223A307D
|
||||||
|
|
||||||
|
> commit
|
||||||
|
|
||||||
|
> deliver_tx "abc"
|
||||||
|
|
||||||
|
> info
|
||||||
|
-> data: {"size":1}
|
||||||
|
-> data.hex: 7B2273697A65223A317D
|
||||||
|
|
||||||
|
> commit
|
||||||
|
-> data: uü~„»×ˆíX–$ðlú‡EÑ
|
||||||
|
-> data.hex: 750502FC7E84BBD788ED589624F06CFA871845D1
|
||||||
|
|
||||||
|
> query "abc"
|
||||||
|
-> key: abc
|
||||||
|
-> key.hex: 616263
|
||||||
|
-> value: abc
|
||||||
|
-> value.hex: 616263
|
||||||
|
-> log: exists
|
||||||
|
-> height: 0
|
||||||
|
-> proof: 010114750502FC7E84BBD788ED589624F06CFA871845D1000114750502FC7E84BBD788ED589624F06CFA871845D1
|
||||||
|
|
||||||
|
> deliver_tx "def=xyz"
|
||||||
|
|
||||||
|
> commit
|
||||||
|
-> data: v9;Š.E†°iLbžËQ²†ïÕ
|
||||||
|
-> data.hex: 76393B8A182E450286B0694C629ECB51B286EFD5
|
||||||
|
|
||||||
|
> query "def"
|
||||||
|
-> key: def
|
||||||
|
-> key.hex: 646566
|
||||||
|
-> value: xyz
|
||||||
|
-> value.hex: 78797A
|
||||||
|
-> log: exists
|
||||||
|
-> height: 0
|
||||||
|
-> proof: 010114C08027141879A7B95E1339565CE60D7DB7A115EB01010101020114750502FC7E84BBD788ED589624F06CFA871845D100011476393B8A182E450286B0694C629ECB51B286EFD5
|
||||||
|
|
|
@ -20,10 +20,7 @@ type Application interface {
|
||||||
CheckTx(tx []byte) Result
|
CheckTx(tx []byte) Result
|
||||||
|
|
||||||
// Query for state
|
// Query for state
|
||||||
Query(query []byte) Result
|
Query(reqQuery RequestQuery) ResponseQuery
|
||||||
|
|
||||||
// Get proof for state
|
|
||||||
Proof(key []byte, blockHeight uint64) Result
|
|
||||||
|
|
||||||
// Return the application Merkle root hash
|
// Return the application Merkle root hash
|
||||||
Commit() Result
|
Commit() Result
|
||||||
|
@ -81,13 +78,8 @@ func (app *GRPCApplication) CheckTx(ctx context.Context, req *RequestCheckTx) (*
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *GRPCApplication) Query(ctx context.Context, req *RequestQuery) (*ResponseQuery, error) {
|
func (app *GRPCApplication) Query(ctx context.Context, req *RequestQuery) (*ResponseQuery, error) {
|
||||||
r := app.app.Query(req.Query)
|
resQuery := app.app.Query(*req)
|
||||||
return &ResponseQuery{r.Code, r.Data, r.Log}, nil
|
return &resQuery, nil
|
||||||
}
|
|
||||||
|
|
||||||
func (app *GRPCApplication) Proof(ctx context.Context, req *RequestProof) (*ResponseProof, error) {
|
|
||||||
r := app.app.Proof(req.Key, req.Height)
|
|
||||||
return &ResponseProof{r.Code, r.Data, r.Log}, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (app *GRPCApplication) Commit(ctx context.Context, req *RequestCommit) (*ResponseCommit, error) {
|
func (app *GRPCApplication) Commit(ctx context.Context, req *RequestCommit) (*ResponseCommit, error) {
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
package types
|
||||||
|
|
||||||
|
func (c CodeType) IsOK() bool { return c == CodeType_OK }
|
|
@ -49,15 +49,9 @@ func ToRequestCommit() *Request {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func ToRequestQuery(queryBytes []byte) *Request {
|
func ToRequestQuery(reqQuery RequestQuery) *Request {
|
||||||
return &Request{
|
return &Request{
|
||||||
Value: &Request_Query{&RequestQuery{queryBytes}},
|
Value: &Request_Query{&reqQuery},
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func ToRequestProof(key []byte, blockHeight uint64) *Request {
|
|
||||||
return &Request{
|
|
||||||
Value: &Request_Proof{&RequestProof{key, blockHeight}},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,15 +123,9 @@ func ToResponseCommit(code CodeType, data []byte, log string) *Response {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func ToResponseQuery(code CodeType, data []byte, log string) *Response {
|
func ToResponseQuery(resQuery ResponseQuery) *Response {
|
||||||
return &Response{
|
return &Response{
|
||||||
Value: &Response_Query{&ResponseQuery{code, data, log}},
|
Value: &Response_Query{&resQuery},
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func ToResponseProof(code CodeType, data []byte, log string) *Response {
|
|
||||||
return &Response{
|
|
||||||
Value: &Response_Proof{&ResponseProof{code, data, log}},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,6 @@ It has these top-level messages:
|
||||||
RequestDeliverTx
|
RequestDeliverTx
|
||||||
RequestCheckTx
|
RequestCheckTx
|
||||||
RequestQuery
|
RequestQuery
|
||||||
RequestProof
|
|
||||||
RequestCommit
|
RequestCommit
|
||||||
RequestInitChain
|
RequestInitChain
|
||||||
RequestBeginBlock
|
RequestBeginBlock
|
||||||
|
@ -31,7 +30,6 @@ It has these top-level messages:
|
||||||
ResponseDeliverTx
|
ResponseDeliverTx
|
||||||
ResponseCheckTx
|
ResponseCheckTx
|
||||||
ResponseQuery
|
ResponseQuery
|
||||||
ResponseProof
|
|
||||||
ResponseCommit
|
ResponseCommit
|
||||||
ResponseInitChain
|
ResponseInitChain
|
||||||
ResponseBeginBlock
|
ResponseBeginBlock
|
||||||
|
@ -83,7 +81,6 @@ const (
|
||||||
MessageType_InitChain MessageType = 21
|
MessageType_InitChain MessageType = 21
|
||||||
MessageType_BeginBlock MessageType = 22
|
MessageType_BeginBlock MessageType = 22
|
||||||
MessageType_EndBlock MessageType = 23
|
MessageType_EndBlock MessageType = 23
|
||||||
MessageType_Proof MessageType = 24
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var MessageType_name = map[int32]string{
|
var MessageType_name = map[int32]string{
|
||||||
|
@ -100,7 +97,6 @@ var MessageType_name = map[int32]string{
|
||||||
21: "InitChain",
|
21: "InitChain",
|
||||||
22: "BeginBlock",
|
22: "BeginBlock",
|
||||||
23: "EndBlock",
|
23: "EndBlock",
|
||||||
24: "Proof",
|
|
||||||
}
|
}
|
||||||
var MessageType_value = map[string]int32{
|
var MessageType_value = map[string]int32{
|
||||||
"NullMessage": 0,
|
"NullMessage": 0,
|
||||||
|
@ -116,7 +112,6 @@ var MessageType_value = map[string]int32{
|
||||||
"InitChain": 21,
|
"InitChain": 21,
|
||||||
"BeginBlock": 22,
|
"BeginBlock": 22,
|
||||||
"EndBlock": 23,
|
"EndBlock": 23,
|
||||||
"Proof": 24,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x MessageType) String() string {
|
func (x MessageType) String() string {
|
||||||
|
@ -245,7 +240,6 @@ type Request struct {
|
||||||
// *Request_InitChain
|
// *Request_InitChain
|
||||||
// *Request_BeginBlock
|
// *Request_BeginBlock
|
||||||
// *Request_EndBlock
|
// *Request_EndBlock
|
||||||
// *Request_Proof
|
|
||||||
Value isRequest_Value `protobuf_oneof:"value"`
|
Value isRequest_Value `protobuf_oneof:"value"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -291,9 +285,6 @@ type Request_BeginBlock struct {
|
||||||
type Request_EndBlock struct {
|
type Request_EndBlock struct {
|
||||||
EndBlock *RequestEndBlock `protobuf:"bytes,11,opt,name=end_block,json=endBlock,oneof"`
|
EndBlock *RequestEndBlock `protobuf:"bytes,11,opt,name=end_block,json=endBlock,oneof"`
|
||||||
}
|
}
|
||||||
type Request_Proof struct {
|
|
||||||
Proof *RequestProof `protobuf:"bytes,12,opt,name=proof,oneof"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*Request_Echo) isRequest_Value() {}
|
func (*Request_Echo) isRequest_Value() {}
|
||||||
func (*Request_Flush) isRequest_Value() {}
|
func (*Request_Flush) isRequest_Value() {}
|
||||||
|
@ -306,7 +297,6 @@ func (*Request_Query) isRequest_Value() {}
|
||||||
func (*Request_InitChain) isRequest_Value() {}
|
func (*Request_InitChain) isRequest_Value() {}
|
||||||
func (*Request_BeginBlock) isRequest_Value() {}
|
func (*Request_BeginBlock) isRequest_Value() {}
|
||||||
func (*Request_EndBlock) isRequest_Value() {}
|
func (*Request_EndBlock) isRequest_Value() {}
|
||||||
func (*Request_Proof) isRequest_Value() {}
|
|
||||||
|
|
||||||
func (m *Request) GetValue() isRequest_Value {
|
func (m *Request) GetValue() isRequest_Value {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -392,13 +382,6 @@ func (m *Request) GetEndBlock() *RequestEndBlock {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Request) GetProof() *RequestProof {
|
|
||||||
if x, ok := m.GetValue().(*Request_Proof); ok {
|
|
||||||
return x.Proof
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// XXX_OneofFuncs is for the internal use of the proto package.
|
// XXX_OneofFuncs is for the internal use of the proto package.
|
||||||
func (*Request) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
|
func (*Request) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
|
||||||
return _Request_OneofMarshaler, _Request_OneofUnmarshaler, _Request_OneofSizer, []interface{}{
|
return _Request_OneofMarshaler, _Request_OneofUnmarshaler, _Request_OneofSizer, []interface{}{
|
||||||
|
@ -413,7 +396,6 @@ func (*Request) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error
|
||||||
(*Request_InitChain)(nil),
|
(*Request_InitChain)(nil),
|
||||||
(*Request_BeginBlock)(nil),
|
(*Request_BeginBlock)(nil),
|
||||||
(*Request_EndBlock)(nil),
|
(*Request_EndBlock)(nil),
|
||||||
(*Request_Proof)(nil),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -476,11 +458,6 @@ func _Request_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
|
||||||
if err := b.EncodeMessage(x.EndBlock); err != nil {
|
if err := b.EncodeMessage(x.EndBlock); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
case *Request_Proof:
|
|
||||||
b.EncodeVarint(12<<3 | proto.WireBytes)
|
|
||||||
if err := b.EncodeMessage(x.Proof); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
case nil:
|
case nil:
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("Request.Value has unexpected type %T", x)
|
return fmt.Errorf("Request.Value has unexpected type %T", x)
|
||||||
|
@ -579,14 +556,6 @@ func _Request_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer
|
||||||
err := b.DecodeMessage(msg)
|
err := b.DecodeMessage(msg)
|
||||||
m.Value = &Request_EndBlock{msg}
|
m.Value = &Request_EndBlock{msg}
|
||||||
return true, err
|
return true, err
|
||||||
case 12: // value.proof
|
|
||||||
if wire != proto.WireBytes {
|
|
||||||
return true, proto.ErrInternalBadWireType
|
|
||||||
}
|
|
||||||
msg := new(RequestProof)
|
|
||||||
err := b.DecodeMessage(msg)
|
|
||||||
m.Value = &Request_Proof{msg}
|
|
||||||
return true, err
|
|
||||||
default:
|
default:
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
|
@ -651,11 +620,6 @@ func _Request_OneofSizer(msg proto.Message) (n int) {
|
||||||
n += proto.SizeVarint(11<<3 | proto.WireBytes)
|
n += proto.SizeVarint(11<<3 | proto.WireBytes)
|
||||||
n += proto.SizeVarint(uint64(s))
|
n += proto.SizeVarint(uint64(s))
|
||||||
n += s
|
n += s
|
||||||
case *Request_Proof:
|
|
||||||
s := proto.Size(x.Proof)
|
|
||||||
n += proto.SizeVarint(12<<3 | proto.WireBytes)
|
|
||||||
n += proto.SizeVarint(uint64(s))
|
|
||||||
n += s
|
|
||||||
case nil:
|
case nil:
|
||||||
default:
|
default:
|
||||||
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
|
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
|
||||||
|
@ -752,7 +716,10 @@ func (m *RequestCheckTx) GetTx() []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
type RequestQuery struct {
|
type RequestQuery struct {
|
||||||
Query []byte `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
|
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
|
||||||
|
Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
|
||||||
|
Height uint64 `protobuf:"varint,3,opt,name=height" json:"height,omitempty"`
|
||||||
|
Prove bool `protobuf:"varint,4,opt,name=prove" json:"prove,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *RequestQuery) Reset() { *m = RequestQuery{} }
|
func (m *RequestQuery) Reset() { *m = RequestQuery{} }
|
||||||
|
@ -760,44 +727,41 @@ func (m *RequestQuery) String() string { return proto.CompactTextStri
|
||||||
func (*RequestQuery) ProtoMessage() {}
|
func (*RequestQuery) ProtoMessage() {}
|
||||||
func (*RequestQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
|
func (*RequestQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
|
||||||
|
|
||||||
func (m *RequestQuery) GetQuery() []byte {
|
func (m *RequestQuery) GetData() []byte {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Query
|
return m.Data
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type RequestProof struct {
|
func (m *RequestQuery) GetPath() string {
|
||||||
Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
|
|
||||||
Height uint64 `protobuf:"varint,2,opt,name=height" json:"height,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *RequestProof) Reset() { *m = RequestProof{} }
|
|
||||||
func (m *RequestProof) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*RequestProof) ProtoMessage() {}
|
|
||||||
func (*RequestProof) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
|
|
||||||
|
|
||||||
func (m *RequestProof) GetKey() []byte {
|
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Key
|
return m.Path
|
||||||
}
|
}
|
||||||
return nil
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *RequestProof) GetHeight() uint64 {
|
func (m *RequestQuery) GetHeight() uint64 {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Height
|
return m.Height
|
||||||
}
|
}
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *RequestQuery) GetProve() bool {
|
||||||
|
if m != nil {
|
||||||
|
return m.Prove
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
type RequestCommit struct {
|
type RequestCommit struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *RequestCommit) Reset() { *m = RequestCommit{} }
|
func (m *RequestCommit) Reset() { *m = RequestCommit{} }
|
||||||
func (m *RequestCommit) String() string { return proto.CompactTextString(m) }
|
func (m *RequestCommit) String() string { return proto.CompactTextString(m) }
|
||||||
func (*RequestCommit) ProtoMessage() {}
|
func (*RequestCommit) ProtoMessage() {}
|
||||||
func (*RequestCommit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
|
func (*RequestCommit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
|
||||||
|
|
||||||
type RequestInitChain struct {
|
type RequestInitChain struct {
|
||||||
Validators []*Validator `protobuf:"bytes,1,rep,name=validators" json:"validators,omitempty"`
|
Validators []*Validator `protobuf:"bytes,1,rep,name=validators" json:"validators,omitempty"`
|
||||||
|
@ -806,7 +770,7 @@ type RequestInitChain struct {
|
||||||
func (m *RequestInitChain) Reset() { *m = RequestInitChain{} }
|
func (m *RequestInitChain) Reset() { *m = RequestInitChain{} }
|
||||||
func (m *RequestInitChain) String() string { return proto.CompactTextString(m) }
|
func (m *RequestInitChain) String() string { return proto.CompactTextString(m) }
|
||||||
func (*RequestInitChain) ProtoMessage() {}
|
func (*RequestInitChain) ProtoMessage() {}
|
||||||
func (*RequestInitChain) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
|
func (*RequestInitChain) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
|
||||||
|
|
||||||
func (m *RequestInitChain) GetValidators() []*Validator {
|
func (m *RequestInitChain) GetValidators() []*Validator {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -823,7 +787,7 @@ type RequestBeginBlock struct {
|
||||||
func (m *RequestBeginBlock) Reset() { *m = RequestBeginBlock{} }
|
func (m *RequestBeginBlock) Reset() { *m = RequestBeginBlock{} }
|
||||||
func (m *RequestBeginBlock) String() string { return proto.CompactTextString(m) }
|
func (m *RequestBeginBlock) String() string { return proto.CompactTextString(m) }
|
||||||
func (*RequestBeginBlock) ProtoMessage() {}
|
func (*RequestBeginBlock) ProtoMessage() {}
|
||||||
func (*RequestBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
|
func (*RequestBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
|
||||||
|
|
||||||
func (m *RequestBeginBlock) GetHash() []byte {
|
func (m *RequestBeginBlock) GetHash() []byte {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -846,7 +810,7 @@ type RequestEndBlock struct {
|
||||||
func (m *RequestEndBlock) Reset() { *m = RequestEndBlock{} }
|
func (m *RequestEndBlock) Reset() { *m = RequestEndBlock{} }
|
||||||
func (m *RequestEndBlock) String() string { return proto.CompactTextString(m) }
|
func (m *RequestEndBlock) String() string { return proto.CompactTextString(m) }
|
||||||
func (*RequestEndBlock) ProtoMessage() {}
|
func (*RequestEndBlock) ProtoMessage() {}
|
||||||
func (*RequestEndBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
|
func (*RequestEndBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
|
||||||
|
|
||||||
func (m *RequestEndBlock) GetHeight() uint64 {
|
func (m *RequestEndBlock) GetHeight() uint64 {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -869,14 +833,13 @@ type Response struct {
|
||||||
// *Response_InitChain
|
// *Response_InitChain
|
||||||
// *Response_BeginBlock
|
// *Response_BeginBlock
|
||||||
// *Response_EndBlock
|
// *Response_EndBlock
|
||||||
// *Response_Proof
|
|
||||||
Value isResponse_Value `protobuf_oneof:"value"`
|
Value isResponse_Value `protobuf_oneof:"value"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Response) Reset() { *m = Response{} }
|
func (m *Response) Reset() { *m = Response{} }
|
||||||
func (m *Response) String() string { return proto.CompactTextString(m) }
|
func (m *Response) String() string { return proto.CompactTextString(m) }
|
||||||
func (*Response) ProtoMessage() {}
|
func (*Response) ProtoMessage() {}
|
||||||
func (*Response) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
|
func (*Response) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
|
||||||
|
|
||||||
type isResponse_Value interface {
|
type isResponse_Value interface {
|
||||||
isResponse_Value()
|
isResponse_Value()
|
||||||
|
@ -918,9 +881,6 @@ type Response_BeginBlock struct {
|
||||||
type Response_EndBlock struct {
|
type Response_EndBlock struct {
|
||||||
EndBlock *ResponseEndBlock `protobuf:"bytes,12,opt,name=end_block,json=endBlock,oneof"`
|
EndBlock *ResponseEndBlock `protobuf:"bytes,12,opt,name=end_block,json=endBlock,oneof"`
|
||||||
}
|
}
|
||||||
type Response_Proof struct {
|
|
||||||
Proof *ResponseProof `protobuf:"bytes,13,opt,name=proof,oneof"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*Response_Exception) isResponse_Value() {}
|
func (*Response_Exception) isResponse_Value() {}
|
||||||
func (*Response_Echo) isResponse_Value() {}
|
func (*Response_Echo) isResponse_Value() {}
|
||||||
|
@ -934,7 +894,6 @@ func (*Response_Query) isResponse_Value() {}
|
||||||
func (*Response_InitChain) isResponse_Value() {}
|
func (*Response_InitChain) isResponse_Value() {}
|
||||||
func (*Response_BeginBlock) isResponse_Value() {}
|
func (*Response_BeginBlock) isResponse_Value() {}
|
||||||
func (*Response_EndBlock) isResponse_Value() {}
|
func (*Response_EndBlock) isResponse_Value() {}
|
||||||
func (*Response_Proof) isResponse_Value() {}
|
|
||||||
|
|
||||||
func (m *Response) GetValue() isResponse_Value {
|
func (m *Response) GetValue() isResponse_Value {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1027,13 +986,6 @@ func (m *Response) GetEndBlock() *ResponseEndBlock {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Response) GetProof() *ResponseProof {
|
|
||||||
if x, ok := m.GetValue().(*Response_Proof); ok {
|
|
||||||
return x.Proof
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// XXX_OneofFuncs is for the internal use of the proto package.
|
// XXX_OneofFuncs is for the internal use of the proto package.
|
||||||
func (*Response) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
|
func (*Response) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
|
||||||
return _Response_OneofMarshaler, _Response_OneofUnmarshaler, _Response_OneofSizer, []interface{}{
|
return _Response_OneofMarshaler, _Response_OneofUnmarshaler, _Response_OneofSizer, []interface{}{
|
||||||
|
@ -1049,7 +1001,6 @@ func (*Response) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) erro
|
||||||
(*Response_InitChain)(nil),
|
(*Response_InitChain)(nil),
|
||||||
(*Response_BeginBlock)(nil),
|
(*Response_BeginBlock)(nil),
|
||||||
(*Response_EndBlock)(nil),
|
(*Response_EndBlock)(nil),
|
||||||
(*Response_Proof)(nil),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1117,11 +1068,6 @@ func _Response_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
|
||||||
if err := b.EncodeMessage(x.EndBlock); err != nil {
|
if err := b.EncodeMessage(x.EndBlock); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
case *Response_Proof:
|
|
||||||
b.EncodeVarint(13<<3 | proto.WireBytes)
|
|
||||||
if err := b.EncodeMessage(x.Proof); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
case nil:
|
case nil:
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("Response.Value has unexpected type %T", x)
|
return fmt.Errorf("Response.Value has unexpected type %T", x)
|
||||||
|
@ -1228,14 +1174,6 @@ func _Response_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffe
|
||||||
err := b.DecodeMessage(msg)
|
err := b.DecodeMessage(msg)
|
||||||
m.Value = &Response_EndBlock{msg}
|
m.Value = &Response_EndBlock{msg}
|
||||||
return true, err
|
return true, err
|
||||||
case 13: // value.proof
|
|
||||||
if wire != proto.WireBytes {
|
|
||||||
return true, proto.ErrInternalBadWireType
|
|
||||||
}
|
|
||||||
msg := new(ResponseProof)
|
|
||||||
err := b.DecodeMessage(msg)
|
|
||||||
m.Value = &Response_Proof{msg}
|
|
||||||
return true, err
|
|
||||||
default:
|
default:
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
|
@ -1305,11 +1243,6 @@ func _Response_OneofSizer(msg proto.Message) (n int) {
|
||||||
n += proto.SizeVarint(12<<3 | proto.WireBytes)
|
n += proto.SizeVarint(12<<3 | proto.WireBytes)
|
||||||
n += proto.SizeVarint(uint64(s))
|
n += proto.SizeVarint(uint64(s))
|
||||||
n += s
|
n += s
|
||||||
case *Response_Proof:
|
|
||||||
s := proto.Size(x.Proof)
|
|
||||||
n += proto.SizeVarint(13<<3 | proto.WireBytes)
|
|
||||||
n += proto.SizeVarint(uint64(s))
|
|
||||||
n += s
|
|
||||||
case nil:
|
case nil:
|
||||||
default:
|
default:
|
||||||
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
|
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
|
||||||
|
@ -1324,7 +1257,7 @@ type ResponseException struct {
|
||||||
func (m *ResponseException) Reset() { *m = ResponseException{} }
|
func (m *ResponseException) Reset() { *m = ResponseException{} }
|
||||||
func (m *ResponseException) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseException) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseException) ProtoMessage() {}
|
func (*ResponseException) ProtoMessage() {}
|
||||||
func (*ResponseException) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
|
func (*ResponseException) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
|
||||||
|
|
||||||
func (m *ResponseException) GetError() string {
|
func (m *ResponseException) GetError() string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1340,7 +1273,7 @@ type ResponseEcho struct {
|
||||||
func (m *ResponseEcho) Reset() { *m = ResponseEcho{} }
|
func (m *ResponseEcho) Reset() { *m = ResponseEcho{} }
|
||||||
func (m *ResponseEcho) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseEcho) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseEcho) ProtoMessage() {}
|
func (*ResponseEcho) ProtoMessage() {}
|
||||||
func (*ResponseEcho) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
|
func (*ResponseEcho) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
|
||||||
|
|
||||||
func (m *ResponseEcho) GetMessage() string {
|
func (m *ResponseEcho) GetMessage() string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1355,7 +1288,7 @@ type ResponseFlush struct {
|
||||||
func (m *ResponseFlush) Reset() { *m = ResponseFlush{} }
|
func (m *ResponseFlush) Reset() { *m = ResponseFlush{} }
|
||||||
func (m *ResponseFlush) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseFlush) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseFlush) ProtoMessage() {}
|
func (*ResponseFlush) ProtoMessage() {}
|
||||||
func (*ResponseFlush) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
|
func (*ResponseFlush) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
|
||||||
|
|
||||||
type ResponseInfo struct {
|
type ResponseInfo struct {
|
||||||
Data string `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"`
|
Data string `protobuf:"bytes,1,opt,name=data" json:"data,omitempty"`
|
||||||
|
@ -1367,7 +1300,7 @@ type ResponseInfo struct {
|
||||||
func (m *ResponseInfo) Reset() { *m = ResponseInfo{} }
|
func (m *ResponseInfo) Reset() { *m = ResponseInfo{} }
|
||||||
func (m *ResponseInfo) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseInfo) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseInfo) ProtoMessage() {}
|
func (*ResponseInfo) ProtoMessage() {}
|
||||||
func (*ResponseInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
|
func (*ResponseInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
|
||||||
|
|
||||||
func (m *ResponseInfo) GetData() string {
|
func (m *ResponseInfo) GetData() string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1404,7 +1337,7 @@ type ResponseSetOption struct {
|
||||||
func (m *ResponseSetOption) Reset() { *m = ResponseSetOption{} }
|
func (m *ResponseSetOption) Reset() { *m = ResponseSetOption{} }
|
||||||
func (m *ResponseSetOption) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseSetOption) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseSetOption) ProtoMessage() {}
|
func (*ResponseSetOption) ProtoMessage() {}
|
||||||
func (*ResponseSetOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
|
func (*ResponseSetOption) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
|
||||||
|
|
||||||
func (m *ResponseSetOption) GetLog() string {
|
func (m *ResponseSetOption) GetLog() string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1422,7 +1355,7 @@ type ResponseDeliverTx struct {
|
||||||
func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} }
|
func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} }
|
||||||
func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseDeliverTx) ProtoMessage() {}
|
func (*ResponseDeliverTx) ProtoMessage() {}
|
||||||
func (*ResponseDeliverTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
|
func (*ResponseDeliverTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
|
||||||
|
|
||||||
func (m *ResponseDeliverTx) GetCode() CodeType {
|
func (m *ResponseDeliverTx) GetCode() CodeType {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1454,7 +1387,7 @@ type ResponseCheckTx struct {
|
||||||
func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} }
|
func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} }
|
||||||
func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseCheckTx) ProtoMessage() {}
|
func (*ResponseCheckTx) ProtoMessage() {}
|
||||||
func (*ResponseCheckTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
|
func (*ResponseCheckTx) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
|
||||||
|
|
||||||
func (m *ResponseCheckTx) GetCode() CodeType {
|
func (m *ResponseCheckTx) GetCode() CodeType {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1478,15 +1411,19 @@ func (m *ResponseCheckTx) GetLog() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
type ResponseQuery struct {
|
type ResponseQuery struct {
|
||||||
Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"`
|
Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"`
|
||||||
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
|
Index int64 `protobuf:"varint,2,opt,name=index" json:"index,omitempty"`
|
||||||
Log string `protobuf:"bytes,3,opt,name=log" json:"log,omitempty"`
|
Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
|
||||||
|
Value []byte `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
|
||||||
|
Proof []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"`
|
||||||
|
Height uint64 `protobuf:"varint,6,opt,name=height" json:"height,omitempty"`
|
||||||
|
Log string `protobuf:"bytes,7,opt,name=log" json:"log,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ResponseQuery) Reset() { *m = ResponseQuery{} }
|
func (m *ResponseQuery) Reset() { *m = ResponseQuery{} }
|
||||||
func (m *ResponseQuery) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseQuery) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseQuery) ProtoMessage() {}
|
func (*ResponseQuery) ProtoMessage() {}
|
||||||
func (*ResponseQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
|
func (*ResponseQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
|
||||||
|
|
||||||
func (m *ResponseQuery) GetCode() CodeType {
|
func (m *ResponseQuery) GetCode() CodeType {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1495,13 +1432,41 @@ func (m *ResponseQuery) GetCode() CodeType {
|
||||||
return CodeType_OK
|
return CodeType_OK
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ResponseQuery) GetData() []byte {
|
func (m *ResponseQuery) GetIndex() int64 {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Data
|
return m.Index
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *ResponseQuery) GetKey() []byte {
|
||||||
|
if m != nil {
|
||||||
|
return m.Key
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *ResponseQuery) GetValue() []byte {
|
||||||
|
if m != nil {
|
||||||
|
return m.Value
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *ResponseQuery) GetProof() []byte {
|
||||||
|
if m != nil {
|
||||||
|
return m.Proof
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *ResponseQuery) GetHeight() uint64 {
|
||||||
|
if m != nil {
|
||||||
|
return m.Height
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
func (m *ResponseQuery) GetLog() string {
|
func (m *ResponseQuery) GetLog() string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Log
|
return m.Log
|
||||||
|
@ -1509,38 +1474,6 @@ func (m *ResponseQuery) GetLog() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
type ResponseProof struct {
|
|
||||||
Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" 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"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *ResponseProof) Reset() { *m = ResponseProof{} }
|
|
||||||
func (m *ResponseProof) String() string { return proto.CompactTextString(m) }
|
|
||||||
func (*ResponseProof) ProtoMessage() {}
|
|
||||||
func (*ResponseProof) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
|
|
||||||
|
|
||||||
func (m *ResponseProof) GetCode() CodeType {
|
|
||||||
if m != nil {
|
|
||||||
return m.Code
|
|
||||||
}
|
|
||||||
return CodeType_OK
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *ResponseProof) GetData() []byte {
|
|
||||||
if m != nil {
|
|
||||||
return m.Data
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *ResponseProof) GetLog() string {
|
|
||||||
if m != nil {
|
|
||||||
return m.Log
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResponseCommit struct {
|
type ResponseCommit struct {
|
||||||
Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"`
|
Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"`
|
||||||
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
|
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
|
||||||
|
@ -1550,7 +1483,7 @@ type ResponseCommit struct {
|
||||||
func (m *ResponseCommit) Reset() { *m = ResponseCommit{} }
|
func (m *ResponseCommit) Reset() { *m = ResponseCommit{} }
|
||||||
func (m *ResponseCommit) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseCommit) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseCommit) ProtoMessage() {}
|
func (*ResponseCommit) ProtoMessage() {}
|
||||||
func (*ResponseCommit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
|
func (*ResponseCommit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
|
||||||
|
|
||||||
func (m *ResponseCommit) GetCode() CodeType {
|
func (m *ResponseCommit) GetCode() CodeType {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1579,7 +1512,7 @@ type ResponseInitChain struct {
|
||||||
func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} }
|
func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} }
|
||||||
func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseInitChain) ProtoMessage() {}
|
func (*ResponseInitChain) ProtoMessage() {}
|
||||||
func (*ResponseInitChain) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
|
func (*ResponseInitChain) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
|
||||||
|
|
||||||
type ResponseBeginBlock struct {
|
type ResponseBeginBlock struct {
|
||||||
}
|
}
|
||||||
|
@ -1587,7 +1520,7 @@ type ResponseBeginBlock struct {
|
||||||
func (m *ResponseBeginBlock) Reset() { *m = ResponseBeginBlock{} }
|
func (m *ResponseBeginBlock) Reset() { *m = ResponseBeginBlock{} }
|
||||||
func (m *ResponseBeginBlock) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseBeginBlock) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseBeginBlock) ProtoMessage() {}
|
func (*ResponseBeginBlock) ProtoMessage() {}
|
||||||
func (*ResponseBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
|
func (*ResponseBeginBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
|
||||||
|
|
||||||
type ResponseEndBlock struct {
|
type ResponseEndBlock struct {
|
||||||
Diffs []*Validator `protobuf:"bytes,4,rep,name=diffs" json:"diffs,omitempty"`
|
Diffs []*Validator `protobuf:"bytes,4,rep,name=diffs" json:"diffs,omitempty"`
|
||||||
|
@ -1596,7 +1529,7 @@ type ResponseEndBlock struct {
|
||||||
func (m *ResponseEndBlock) Reset() { *m = ResponseEndBlock{} }
|
func (m *ResponseEndBlock) Reset() { *m = ResponseEndBlock{} }
|
||||||
func (m *ResponseEndBlock) String() string { return proto.CompactTextString(m) }
|
func (m *ResponseEndBlock) String() string { return proto.CompactTextString(m) }
|
||||||
func (*ResponseEndBlock) ProtoMessage() {}
|
func (*ResponseEndBlock) ProtoMessage() {}
|
||||||
func (*ResponseEndBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
|
func (*ResponseEndBlock) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
|
||||||
|
|
||||||
func (m *ResponseEndBlock) GetDiffs() []*Validator {
|
func (m *ResponseEndBlock) GetDiffs() []*Validator {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1620,7 +1553,7 @@ type Header struct {
|
||||||
func (m *Header) Reset() { *m = Header{} }
|
func (m *Header) Reset() { *m = Header{} }
|
||||||
func (m *Header) String() string { return proto.CompactTextString(m) }
|
func (m *Header) String() string { return proto.CompactTextString(m) }
|
||||||
func (*Header) ProtoMessage() {}
|
func (*Header) ProtoMessage() {}
|
||||||
func (*Header) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
|
func (*Header) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
|
||||||
|
|
||||||
func (m *Header) GetChainId() string {
|
func (m *Header) GetChainId() string {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1693,7 +1626,7 @@ type BlockID struct {
|
||||||
func (m *BlockID) Reset() { *m = BlockID{} }
|
func (m *BlockID) Reset() { *m = BlockID{} }
|
||||||
func (m *BlockID) String() string { return proto.CompactTextString(m) }
|
func (m *BlockID) String() string { return proto.CompactTextString(m) }
|
||||||
func (*BlockID) ProtoMessage() {}
|
func (*BlockID) ProtoMessage() {}
|
||||||
func (*BlockID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
|
func (*BlockID) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
|
||||||
|
|
||||||
func (m *BlockID) GetHash() []byte {
|
func (m *BlockID) GetHash() []byte {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1717,7 +1650,7 @@ type PartSetHeader struct {
|
||||||
func (m *PartSetHeader) Reset() { *m = PartSetHeader{} }
|
func (m *PartSetHeader) Reset() { *m = PartSetHeader{} }
|
||||||
func (m *PartSetHeader) String() string { return proto.CompactTextString(m) }
|
func (m *PartSetHeader) String() string { return proto.CompactTextString(m) }
|
||||||
func (*PartSetHeader) ProtoMessage() {}
|
func (*PartSetHeader) ProtoMessage() {}
|
||||||
func (*PartSetHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
|
func (*PartSetHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
|
||||||
|
|
||||||
func (m *PartSetHeader) GetTotal() uint64 {
|
func (m *PartSetHeader) GetTotal() uint64 {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1741,7 +1674,7 @@ type Validator struct {
|
||||||
func (m *Validator) Reset() { *m = Validator{} }
|
func (m *Validator) Reset() { *m = Validator{} }
|
||||||
func (m *Validator) String() string { return proto.CompactTextString(m) }
|
func (m *Validator) String() string { return proto.CompactTextString(m) }
|
||||||
func (*Validator) ProtoMessage() {}
|
func (*Validator) ProtoMessage() {}
|
||||||
func (*Validator) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
|
func (*Validator) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
|
||||||
|
|
||||||
func (m *Validator) GetPubKey() []byte {
|
func (m *Validator) GetPubKey() []byte {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
|
@ -1766,7 +1699,6 @@ func init() {
|
||||||
proto.RegisterType((*RequestDeliverTx)(nil), "types.RequestDeliverTx")
|
proto.RegisterType((*RequestDeliverTx)(nil), "types.RequestDeliverTx")
|
||||||
proto.RegisterType((*RequestCheckTx)(nil), "types.RequestCheckTx")
|
proto.RegisterType((*RequestCheckTx)(nil), "types.RequestCheckTx")
|
||||||
proto.RegisterType((*RequestQuery)(nil), "types.RequestQuery")
|
proto.RegisterType((*RequestQuery)(nil), "types.RequestQuery")
|
||||||
proto.RegisterType((*RequestProof)(nil), "types.RequestProof")
|
|
||||||
proto.RegisterType((*RequestCommit)(nil), "types.RequestCommit")
|
proto.RegisterType((*RequestCommit)(nil), "types.RequestCommit")
|
||||||
proto.RegisterType((*RequestInitChain)(nil), "types.RequestInitChain")
|
proto.RegisterType((*RequestInitChain)(nil), "types.RequestInitChain")
|
||||||
proto.RegisterType((*RequestBeginBlock)(nil), "types.RequestBeginBlock")
|
proto.RegisterType((*RequestBeginBlock)(nil), "types.RequestBeginBlock")
|
||||||
|
@ -1780,7 +1712,6 @@ func init() {
|
||||||
proto.RegisterType((*ResponseDeliverTx)(nil), "types.ResponseDeliverTx")
|
proto.RegisterType((*ResponseDeliverTx)(nil), "types.ResponseDeliverTx")
|
||||||
proto.RegisterType((*ResponseCheckTx)(nil), "types.ResponseCheckTx")
|
proto.RegisterType((*ResponseCheckTx)(nil), "types.ResponseCheckTx")
|
||||||
proto.RegisterType((*ResponseQuery)(nil), "types.ResponseQuery")
|
proto.RegisterType((*ResponseQuery)(nil), "types.ResponseQuery")
|
||||||
proto.RegisterType((*ResponseProof)(nil), "types.ResponseProof")
|
|
||||||
proto.RegisterType((*ResponseCommit)(nil), "types.ResponseCommit")
|
proto.RegisterType((*ResponseCommit)(nil), "types.ResponseCommit")
|
||||||
proto.RegisterType((*ResponseInitChain)(nil), "types.ResponseInitChain")
|
proto.RegisterType((*ResponseInitChain)(nil), "types.ResponseInitChain")
|
||||||
proto.RegisterType((*ResponseBeginBlock)(nil), "types.ResponseBeginBlock")
|
proto.RegisterType((*ResponseBeginBlock)(nil), "types.ResponseBeginBlock")
|
||||||
|
@ -1811,7 +1742,6 @@ type ABCIApplicationClient interface {
|
||||||
DeliverTx(ctx context.Context, in *RequestDeliverTx, opts ...grpc.CallOption) (*ResponseDeliverTx, error)
|
DeliverTx(ctx context.Context, in *RequestDeliverTx, opts ...grpc.CallOption) (*ResponseDeliverTx, error)
|
||||||
CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error)
|
CheckTx(ctx context.Context, in *RequestCheckTx, opts ...grpc.CallOption) (*ResponseCheckTx, error)
|
||||||
Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error)
|
Query(ctx context.Context, in *RequestQuery, opts ...grpc.CallOption) (*ResponseQuery, error)
|
||||||
Proof(ctx context.Context, in *RequestProof, opts ...grpc.CallOption) (*ResponseProof, error)
|
|
||||||
Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error)
|
Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error)
|
||||||
InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error)
|
InitChain(ctx context.Context, in *RequestInitChain, opts ...grpc.CallOption) (*ResponseInitChain, error)
|
||||||
BeginBlock(ctx context.Context, in *RequestBeginBlock, opts ...grpc.CallOption) (*ResponseBeginBlock, error)
|
BeginBlock(ctx context.Context, in *RequestBeginBlock, opts ...grpc.CallOption) (*ResponseBeginBlock, error)
|
||||||
|
@ -1889,15 +1819,6 @@ func (c *aBCIApplicationClient) Query(ctx context.Context, in *RequestQuery, opt
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *aBCIApplicationClient) Proof(ctx context.Context, in *RequestProof, opts ...grpc.CallOption) (*ResponseProof, error) {
|
|
||||||
out := new(ResponseProof)
|
|
||||||
err := grpc.Invoke(ctx, "/types.ABCIApplication/Proof", in, out, c.cc, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *aBCIApplicationClient) Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) {
|
func (c *aBCIApplicationClient) Commit(ctx context.Context, in *RequestCommit, opts ...grpc.CallOption) (*ResponseCommit, error) {
|
||||||
out := new(ResponseCommit)
|
out := new(ResponseCommit)
|
||||||
err := grpc.Invoke(ctx, "/types.ABCIApplication/Commit", in, out, c.cc, opts...)
|
err := grpc.Invoke(ctx, "/types.ABCIApplication/Commit", in, out, c.cc, opts...)
|
||||||
|
@ -1944,7 +1865,6 @@ type ABCIApplicationServer interface {
|
||||||
DeliverTx(context.Context, *RequestDeliverTx) (*ResponseDeliverTx, error)
|
DeliverTx(context.Context, *RequestDeliverTx) (*ResponseDeliverTx, error)
|
||||||
CheckTx(context.Context, *RequestCheckTx) (*ResponseCheckTx, error)
|
CheckTx(context.Context, *RequestCheckTx) (*ResponseCheckTx, error)
|
||||||
Query(context.Context, *RequestQuery) (*ResponseQuery, error)
|
Query(context.Context, *RequestQuery) (*ResponseQuery, error)
|
||||||
Proof(context.Context, *RequestProof) (*ResponseProof, error)
|
|
||||||
Commit(context.Context, *RequestCommit) (*ResponseCommit, error)
|
Commit(context.Context, *RequestCommit) (*ResponseCommit, error)
|
||||||
InitChain(context.Context, *RequestInitChain) (*ResponseInitChain, error)
|
InitChain(context.Context, *RequestInitChain) (*ResponseInitChain, error)
|
||||||
BeginBlock(context.Context, *RequestBeginBlock) (*ResponseBeginBlock, error)
|
BeginBlock(context.Context, *RequestBeginBlock) (*ResponseBeginBlock, error)
|
||||||
|
@ -2081,24 +2001,6 @@ func _ABCIApplication_Query_Handler(srv interface{}, ctx context.Context, dec fu
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _ABCIApplication_Proof_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
|
||||||
in := new(RequestProof)
|
|
||||||
if err := dec(in); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if interceptor == nil {
|
|
||||||
return srv.(ABCIApplicationServer).Proof(ctx, in)
|
|
||||||
}
|
|
||||||
info := &grpc.UnaryServerInfo{
|
|
||||||
Server: srv,
|
|
||||||
FullMethod: "/types.ABCIApplication/Proof",
|
|
||||||
}
|
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
|
||||||
return srv.(ABCIApplicationServer).Proof(ctx, req.(*RequestProof))
|
|
||||||
}
|
|
||||||
return interceptor(ctx, in, info, handler)
|
|
||||||
}
|
|
||||||
|
|
||||||
func _ABCIApplication_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _ABCIApplication_Commit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(RequestCommit)
|
in := new(RequestCommit)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
|
@ -2203,10 +2105,6 @@ var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
|
||||||
MethodName: "Query",
|
MethodName: "Query",
|
||||||
Handler: _ABCIApplication_Query_Handler,
|
Handler: _ABCIApplication_Query_Handler,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
MethodName: "Proof",
|
|
||||||
Handler: _ABCIApplication_Proof_Handler,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
MethodName: "Commit",
|
MethodName: "Commit",
|
||||||
Handler: _ABCIApplication_Commit_Handler,
|
Handler: _ABCIApplication_Commit_Handler,
|
||||||
|
@ -2231,112 +2129,112 @@ var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
|
||||||
func init() { proto.RegisterFile("types/types.proto", fileDescriptor0) }
|
func init() { proto.RegisterFile("types/types.proto", fileDescriptor0) }
|
||||||
|
|
||||||
var fileDescriptor0 = []byte{
|
var fileDescriptor0 = []byte{
|
||||||
// 1710 bytes of a gzipped FileDescriptorProto
|
// 1711 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x58, 0x5b, 0x6f, 0xe4, 0x48,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0x4b, 0x6f, 0xe4, 0xc6,
|
||||||
0x15, 0x8e, 0x3b, 0x7d, 0x3d, 0x9d, 0x74, 0x2a, 0x27, 0x37, 0xa7, 0xe1, 0x61, 0x64, 0x58, 0x36,
|
0x11, 0x16, 0xe7, 0x3d, 0x35, 0xd2, 0xa8, 0x55, 0x1a, 0x49, 0xd4, 0x24, 0x87, 0x05, 0x03, 0xc7,
|
||||||
0x33, 0x0c, 0x33, 0x28, 0xab, 0x45, 0x13, 0x16, 0x21, 0x25, 0x33, 0xd9, 0xa4, 0xb5, 0xda, 0x99,
|
0xda, 0x8d, 0xb3, 0x1b, 0xc8, 0x70, 0xb0, 0x8a, 0x83, 0x00, 0xd2, 0xae, 0xbc, 0x1a, 0x18, 0xde,
|
||||||
0xe0, 0x9d, 0xdd, 0x07, 0x40, 0xb4, 0x9c, 0x76, 0x75, 0xb7, 0x89, 0xdb, 0xf6, 0xf8, 0x92, 0x4d,
|
0x55, 0xe8, 0xb5, 0x2f, 0x09, 0x32, 0xa0, 0x86, 0x3d, 0x33, 0x8c, 0xa8, 0x26, 0x97, 0x6c, 0xca,
|
||||||
0xf8, 0x23, 0xfc, 0x04, 0x7e, 0x01, 0x2f, 0x3c, 0xf1, 0x84, 0xc4, 0xfd, 0xf2, 0x57, 0xf8, 0x03,
|
0x52, 0x7e, 0x83, 0xef, 0xf9, 0x09, 0xb9, 0x07, 0xc8, 0x29, 0xf7, 0x00, 0x79, 0x3f, 0x7e, 0x51,
|
||||||
0xe8, 0x54, 0x95, 0xaf, 0xb1, 0x79, 0x9a, 0x7d, 0x69, 0xb9, 0xce, 0xad, 0xea, 0x54, 0x7d, 0xe7,
|
0xd0, 0x0f, 0x3e, 0x45, 0x1a, 0x3e, 0xf8, 0x32, 0x60, 0x3d, 0xbb, 0xab, 0xba, 0xea, 0xeb, 0xea,
|
||||||
0xab, 0xd3, 0x05, 0xdb, 0xf1, 0x7d, 0xc0, 0xa3, 0xe7, 0xe2, 0xf7, 0x59, 0x10, 0xfa, 0xb1, 0x8f,
|
0x81, 0x1d, 0x7e, 0x1f, 0xd2, 0xf8, 0x99, 0xfc, 0x7d, 0x1a, 0x46, 0x01, 0x0f, 0xb0, 0x2b, 0x09,
|
||||||
0x1d, 0x31, 0x30, 0xfe, 0xdb, 0x86, 0x9e, 0xc9, 0xdf, 0x25, 0x3c, 0x8a, 0xf1, 0x08, 0xda, 0x7c,
|
0xeb, 0x2f, 0x1d, 0xe8, 0xdb, 0xf4, 0x5d, 0x42, 0x63, 0x8e, 0x47, 0xd0, 0xa1, 0x8b, 0x75, 0x60,
|
||||||
0xb6, 0xf4, 0x75, 0xed, 0x91, 0x76, 0x34, 0x3c, 0xc6, 0x67, 0xd2, 0x5c, 0x69, 0xcf, 0x67, 0x4b,
|
0x1a, 0x8f, 0x8c, 0xa3, 0xd1, 0x31, 0x3e, 0x55, 0xea, 0x5a, 0x7a, 0xbe, 0x58, 0x07, 0x17, 0x1b,
|
||||||
0xff, 0x72, 0xcd, 0x14, 0x16, 0xf8, 0x7d, 0xe8, 0xcc, 0xdd, 0x24, 0x5a, 0xea, 0x2d, 0x61, 0xba,
|
0xb6, 0xd4, 0xc0, 0x1f, 0x41, 0x77, 0xe9, 0x27, 0xf1, 0xda, 0x6c, 0x49, 0xd5, 0xdd, 0xb2, 0xea,
|
||||||
0x53, 0x36, 0xfd, 0x94, 0x54, 0x97, 0x6b, 0xa6, 0xb4, 0xa1, 0xb0, 0x8e, 0x37, 0xf7, 0xf5, 0xf5,
|
0x27, 0x42, 0x74, 0xb1, 0x61, 0x2b, 0x1d, 0xe1, 0xd6, 0x63, 0xcb, 0xc0, 0x6c, 0xd7, 0xb9, 0x9d,
|
||||||
0xba, 0xb0, 0x13, 0x6f, 0x2e, 0xc2, 0x92, 0x05, 0xbe, 0x00, 0x88, 0x78, 0x3c, 0xf5, 0x83, 0xd8,
|
0xb1, 0xa5, 0x74, 0x2b, 0x34, 0xf0, 0x39, 0x40, 0x4c, 0xf9, 0x3c, 0x08, 0xb9, 0x17, 0x30, 0xb3,
|
||||||
0xf1, 0x3d, 0xbd, 0x2d, 0xec, 0x0f, 0xca, 0xf6, 0x5f, 0xf0, 0xf8, 0x8d, 0x50, 0x5f, 0xae, 0x99,
|
0x23, 0xf5, 0x0f, 0xca, 0xfa, 0x9f, 0x53, 0xfe, 0x46, 0x8a, 0x2f, 0x36, 0xec, 0x61, 0x9c, 0x12,
|
||||||
0x83, 0x28, 0x1d, 0x90, 0xa7, 0xcd, 0x5d, 0xe7, 0x96, 0x87, 0xd3, 0xf8, 0x4e, 0xef, 0xd4, 0x79,
|
0xc2, 0xd2, 0xa5, 0xbe, 0x77, 0x4b, 0xa3, 0x39, 0xbf, 0x33, 0xbb, 0x75, 0x96, 0x2f, 0x95, 0xfc,
|
||||||
0xbe, 0x92, 0xfa, 0xb7, 0x77, 0xe4, 0x69, 0xa7, 0x03, 0x3c, 0x86, 0xfe, 0x6c, 0xc9, 0x67, 0x37,
|
0xed, 0x9d, 0xb0, 0x74, 0x53, 0x02, 0x8f, 0x61, 0xb0, 0x58, 0xd3, 0xc5, 0xb5, 0xb0, 0xeb, 0x49,
|
||||||
0xe4, 0xd7, 0x15, 0x7e, 0x7b, 0x65, 0xbf, 0x97, 0xa4, 0x15, 0x5e, 0xbd, 0x99, 0xfc, 0xc4, 0x67,
|
0xbb, 0xbd, 0xb2, 0xdd, 0x0b, 0x21, 0x95, 0x56, 0xfd, 0x85, 0xfa, 0xc4, 0xa7, 0xd0, 0x5b, 0x04,
|
||||||
0xd0, 0x9d, 0xf9, 0xab, 0x95, 0x13, 0xeb, 0x3d, 0xe1, 0xb1, 0x5b, 0xf1, 0x10, 0xba, 0xcb, 0x35,
|
0x37, 0x37, 0x1e, 0x37, 0xfb, 0xd2, 0x62, 0x52, 0xb1, 0x90, 0xb2, 0x8b, 0x0d, 0x5b, 0x6b, 0x89,
|
||||||
0x53, 0x59, 0xd1, 0x76, 0xbd, 0x4b, 0x78, 0x78, 0xaf, 0xf7, 0xeb, 0xb6, 0xeb, 0x67, 0xa4, 0xa2,
|
0x74, 0xbd, 0x4b, 0x68, 0x74, 0x6f, 0x0e, 0xea, 0xd2, 0xf5, 0x4b, 0x21, 0x12, 0xe9, 0x92, 0x3a,
|
||||||
0xed, 0x12, 0x36, 0x94, 0x8a, 0xe3, 0x39, 0xf1, 0x74, 0xb6, 0xb4, 0x1c, 0x4f, 0x1f, 0xd4, 0xa5,
|
0x22, 0x14, 0x8f, 0x79, 0x7c, 0xbe, 0x58, 0x3b, 0x1e, 0x33, 0x87, 0x75, 0xa1, 0xcc, 0x98, 0xc7,
|
||||||
0x32, 0xf1, 0x9c, 0xf8, 0x25, 0xa9, 0x29, 0x15, 0x27, 0x1d, 0xe0, 0x27, 0x30, 0xbc, 0xe6, 0x0b,
|
0x5f, 0x08, 0xb1, 0x08, 0xc5, 0x4b, 0x09, 0xfc, 0x18, 0x46, 0x57, 0x74, 0xe5, 0xb1, 0xf9, 0x95,
|
||||||
0xc7, 0x9b, 0x5e, 0xbb, 0xfe, 0xec, 0x46, 0x07, 0xe1, 0xaa, 0x97, 0x5d, 0xcf, 0xc8, 0xe0, 0x8c,
|
0x1f, 0x2c, 0xae, 0x4d, 0x90, 0xa6, 0x66, 0xd9, 0xf4, 0x4c, 0x28, 0x9c, 0x09, 0xf9, 0xc5, 0x86,
|
||||||
0xf4, 0x97, 0x6b, 0x26, 0x5c, 0x67, 0x23, 0xfc, 0x18, 0x06, 0xdc, 0xb3, 0x95, 0xeb, 0x50, 0xb8,
|
0x0d, 0x57, 0x19, 0x85, 0x1f, 0xc1, 0x90, 0x32, 0x57, 0x9b, 0x8e, 0xa4, 0xe9, 0x7e, 0xa5, 0x02,
|
||||||
0xee, 0x57, 0x10, 0xe0, 0xd9, 0xa9, 0x63, 0x9f, 0xab, 0x6f, 0x4a, 0x2d, 0x08, 0x7d, 0x7f, 0xae,
|
0x98, 0x9b, 0x1a, 0x0e, 0xa8, 0xfe, 0x3e, 0xeb, 0x43, 0xf7, 0xd6, 0xf1, 0x13, 0x6a, 0xbd, 0x0f,
|
||||||
0x6f, 0xd4, 0xa5, 0x76, 0x45, 0x2a, 0x4a, 0x4d, 0xd8, 0x9c, 0xf5, 0xa0, 0x73, 0x6b, 0xb9, 0x09,
|
0xa3, 0x42, 0xa5, 0xa0, 0x09, 0xfd, 0x1b, 0x1a, 0xc7, 0xce, 0x8a, 0xca, 0x72, 0x1a, 0xda, 0x29,
|
||||||
0x37, 0x3e, 0x84, 0x61, 0x01, 0x56, 0xa8, 0x43, 0x6f, 0xc5, 0xa3, 0xc8, 0x5a, 0x70, 0x81, 0xbd,
|
0x69, 0x8d, 0x61, 0xb3, 0x58, 0x27, 0xd6, 0x56, 0x66, 0x28, 0x6a, 0xc1, 0xfa, 0x19, 0x90, 0xea,
|
||||||
0x81, 0x99, 0x0e, 0x8d, 0x11, 0x6c, 0x14, 0x41, 0x65, 0x6c, 0x66, 0x8e, 0x04, 0x1c, 0xe3, 0xc7,
|
0x51, 0x23, 0x81, 0xf6, 0x35, 0xbd, 0xd7, 0x8e, 0xc4, 0x27, 0x4e, 0xf4, 0xb2, 0xb2, 0x00, 0x87,
|
||||||
0xc0, 0xaa, 0xb8, 0x40, 0x06, 0xeb, 0x37, 0xfc, 0x5e, 0x05, 0xa2, 0x4f, 0xdc, 0x55, 0xd3, 0x0a,
|
0xb6, 0xde, 0x83, 0x95, 0xd9, 0x66, 0x87, 0x8d, 0x63, 0x68, 0xf1, 0x3b, 0x69, 0xba, 0x69, 0xb7,
|
||||||
0xb4, 0x0e, 0x4c, 0xb5, 0x06, 0x23, 0xf3, 0xcd, 0x90, 0x81, 0x23, 0x68, 0xc5, 0x77, 0xc2, 0x75,
|
0xf8, 0x9d, 0xf5, 0x08, 0xc6, 0xe5, 0x83, 0x7d, 0xa0, 0xe1, 0x66, 0x1b, 0x94, 0x27, 0x83, 0x08,
|
||||||
0xc3, 0x6c, 0xc5, 0x77, 0xc6, 0x23, 0x18, 0x95, 0x51, 0xf0, 0xc0, 0xe2, 0xbb, 0xd9, 0x02, 0xc5,
|
0x1d, 0xd7, 0xe1, 0x8e, 0xd6, 0x90, 0xdf, 0x82, 0x17, 0x3a, 0x7c, 0xad, 0x97, 0x97, 0xdf, 0xb8,
|
||||||
0x31, 0xd2, 0x5c, 0xf2, 0xa8, 0xa5, 0x89, 0x1c, 0x18, 0x2f, 0x32, 0x2b, 0xb1, 0x23, 0xc5, 0x35,
|
0x0f, 0xbd, 0x35, 0xf5, 0x56, 0x6b, 0x2e, 0x2b, 0xbd, 0x63, 0x6b, 0x4a, 0xec, 0x35, 0x8c, 0x82,
|
||||||
0x6e, 0xc8, 0x35, 0xee, 0x43, 0x77, 0xc9, 0x9d, 0xc5, 0x32, 0x16, 0x8b, 0x6c, 0x9b, 0x6a, 0x64,
|
0x5b, 0x2a, 0x0b, 0x7a, 0x60, 0x2b, 0xc2, 0xda, 0x86, 0xad, 0x52, 0xb9, 0x58, 0x2f, 0xb3, 0xcd,
|
||||||
0x6c, 0xc1, 0x66, 0x09, 0x55, 0xc6, 0xab, 0x6c, 0xd9, 0x19, 0x0a, 0xf0, 0x87, 0x00, 0xb7, 0x96,
|
0x67, 0xc7, 0x8b, 0x3f, 0x01, 0xb8, 0x75, 0x7c, 0xcf, 0x75, 0x78, 0x10, 0xc5, 0xa6, 0xf1, 0xa8,
|
||||||
0xeb, 0xd8, 0x56, 0xec, 0x87, 0x91, 0xae, 0x3d, 0x5a, 0x3f, 0x1a, 0x1e, 0x33, 0x75, 0x12, 0x5f,
|
0x7d, 0x34, 0x3a, 0x26, 0xfa, 0x54, 0xbe, 0x4c, 0x05, 0x76, 0x41, 0xc7, 0x7a, 0x0d, 0x3b, 0x0f,
|
||||||
0xa5, 0x0a, 0xb3, 0x60, 0x63, 0xbc, 0x86, 0xed, 0x07, 0x80, 0x40, 0x84, 0xf6, 0xd2, 0x8a, 0x96,
|
0x4e, 0x5a, 0xec, 0x76, 0xed, 0xc4, 0xeb, 0x34, 0x02, 0xf1, 0x8d, 0xef, 0x89, 0xdd, 0x3a, 0x2e,
|
||||||
0x6a, 0x59, 0xe2, 0x1b, 0x3f, 0xa0, 0x75, 0x59, 0x36, 0x0f, 0x55, 0xa9, 0x6f, 0xaa, 0xb0, 0x97,
|
0x8d, 0x74, 0x0f, 0x6f, 0x69, 0xb7, 0x17, 0x92, 0x69, 0x6b, 0xa1, 0xf5, 0x18, 0xb6, 0x2b, 0xc7,
|
||||||
0x42, 0x68, 0x2a, 0xa5, 0xf1, 0x18, 0xb6, 0x2a, 0x28, 0x29, 0x64, 0xa4, 0x95, 0x32, 0xfa, 0x43,
|
0x5f, 0x88, 0xd3, 0x28, 0xc6, 0x69, 0x7d, 0xdd, 0x85, 0x81, 0x4d, 0xe3, 0x30, 0x60, 0x31, 0xc5,
|
||||||
0x07, 0xfa, 0x26, 0x8f, 0x02, 0xdf, 0x8b, 0x38, 0xbe, 0x80, 0x01, 0xbf, 0x9b, 0x71, 0x59, 0xf0,
|
0xe7, 0x30, 0xa4, 0x77, 0x0b, 0xaa, 0x3a, 0xd9, 0xa8, 0x54, 0xa2, 0xd2, 0x39, 0x4f, 0xe5, 0xa2,
|
||||||
0x5a, 0x05, 0xb0, 0xd2, 0xe6, 0x3c, 0xd5, 0x13, 0xd8, 0x33, 0x63, 0x7c, 0xac, 0xc8, 0xaa, 0xca,
|
0x8a, 0x33, 0x65, 0x7c, 0xac, 0x51, 0xa8, 0x0a, 0x2d, 0xda, 0xa8, 0x08, 0x43, 0x1f, 0xa4, 0x30,
|
||||||
0x40, 0xca, 0xa9, 0xc8, 0x56, 0x4f, 0x53, 0xb6, 0x5a, 0xaf, 0x54, 0xab, 0xb4, 0xad, 0xd0, 0xd5,
|
0xd4, 0xae, 0xb4, 0xa1, 0xd2, 0xad, 0xe0, 0xd0, 0x63, 0x8d, 0x43, 0x9d, 0x5a, 0xc7, 0x25, 0x20,
|
||||||
0x63, 0x45, 0x57, 0xed, 0xda, 0xc0, 0x25, 0xbe, 0x3a, 0x29, 0xf1, 0x55, 0xa7, 0x76, 0xf9, 0x0d,
|
0x3a, 0x29, 0x01, 0x51, 0xb7, 0x76, 0xfb, 0x0d, 0x48, 0x74, 0x52, 0x42, 0xa2, 0x5e, 0xad, 0x69,
|
||||||
0x84, 0x75, 0x52, 0x22, 0xac, 0x6e, 0xad, 0x6b, 0x03, 0x63, 0x7d, 0x54, 0x60, 0xac, 0x5e, 0xa5,
|
0x03, 0x14, 0x7d, 0x58, 0x80, 0xa2, 0x7e, 0xa5, 0x03, 0x95, 0x61, 0x0d, 0x16, 0x3d, 0xcb, 0xb0,
|
||||||
0x50, 0xa5, 0x63, 0x0d, 0x65, 0x3d, 0xcf, 0x28, 0xab, 0x5f, 0x21, 0x39, 0xe5, 0x52, 0xe5, 0xac,
|
0x68, 0x50, 0x41, 0x2f, 0x6d, 0x52, 0x05, 0xa3, 0x0f, 0x52, 0x30, 0x1a, 0xd6, 0x26, 0xad, 0x82,
|
||||||
0xa7, 0x29, 0x90, 0x07, 0xb5, 0x9b, 0x56, 0x21, 0xad, 0x93, 0x12, 0x69, 0x41, 0x6d, 0x3a, 0x0d,
|
0x46, 0x27, 0x25, 0x34, 0x82, 0xda, 0x70, 0x1a, 0xe0, 0xe8, 0xe7, 0x65, 0x38, 0x52, 0x98, 0x72,
|
||||||
0xac, 0xf5, 0x93, 0x32, 0x6b, 0x49, 0xea, 0x39, 0xac, 0xf8, 0x36, 0xd2, 0xd6, 0x8f, 0x8a, 0xb4,
|
0x58, 0xb1, 0x6d, 0xc4, 0xa3, 0x9f, 0x16, 0xf1, 0x68, 0xb3, 0x82, 0x82, 0xba, 0x16, 0xbe, 0x11,
|
||||||
0xb5, 0x51, 0x21, 0x4b, 0x85, 0x85, 0x3a, 0xde, 0x7a, 0x9a, 0xf2, 0xd6, 0x66, 0x6d, 0x7a, 0x4d,
|
0x90, 0x1e, 0x8b, 0x4e, 0xa8, 0x54, 0x9a, 0xe8, 0x45, 0x1a, 0x45, 0x41, 0xa4, 0xb1, 0x44, 0x11,
|
||||||
0xc4, 0xf5, 0x98, 0xea, 0xa6, 0x82, 0x4b, 0xaa, 0x79, 0x1e, 0x86, 0x7e, 0xa8, 0x38, 0x47, 0x0e,
|
0xd6, 0x91, 0xe8, 0xf8, 0xbc, 0xbe, 0xbe, 0x01, 0xbc, 0x64, 0xd7, 0x16, 0xaa, 0xcb, 0xfa, 0xbd,
|
||||||
0x8c, 0x23, 0xaa, 0xf9, 0x1c, 0x8d, 0xff, 0x87, 0xe4, 0x44, 0x8d, 0x17, 0xb0, 0x68, 0xfc, 0x56,
|
0x91, 0xdb, 0x8a, 0x12, 0x2a, 0xa1, 0xc5, 0x50, 0xa3, 0x85, 0x09, 0xfd, 0x5b, 0x1a, 0xc5, 0xa2,
|
||||||
0xcb, 0x7d, 0x09, 0x70, 0x54, 0x99, 0xb6, 0x15, 0x5b, 0xca, 0x51, 0x7c, 0x53, 0xbc, 0x5b, 0x1e,
|
0x96, 0x14, 0x60, 0xa4, 0x24, 0x3e, 0x81, 0x1d, 0xdf, 0x89, 0xb9, 0x0a, 0x73, 0x5e, 0x82, 0x8f,
|
||||||
0x46, 0x84, 0x3c, 0xc9, 0x6b, 0xe9, 0x10, 0x9f, 0xc0, 0xb6, 0x6b, 0x45, 0xb1, 0xdc, 0x94, 0xa9,
|
0x6d, 0x21, 0x50, 0xf1, 0x29, 0x1c, 0xf9, 0x31, 0xec, 0x16, 0x74, 0x9d, 0x30, 0x9c, 0xcb, 0xa6,
|
||||||
0x2a, 0xc2, 0x75, 0x51, 0x84, 0x5b, 0xa4, 0x90, 0xbb, 0x21, 0xc4, 0xf8, 0x03, 0xd8, 0x29, 0xd8,
|
0xee, 0xc8, 0xa6, 0x26, 0x99, 0xf6, 0x69, 0x18, 0x5e, 0x38, 0xf1, 0xda, 0x7a, 0x2f, 0x8f, 0xbf,
|
||||||
0x5a, 0x41, 0x30, 0x15, 0x14, 0xd0, 0x16, 0x14, 0xc0, 0x32, 0xeb, 0xd3, 0x20, 0xb8, 0xb4, 0xa2,
|
0x84, 0xa4, 0x7e, 0xb0, 0x4a, 0x91, 0xd4, 0x0f, 0x56, 0xd6, 0x6f, 0x72, 0xb5, 0x1c, 0x34, 0x7f,
|
||||||
0xa5, 0xf1, 0x41, 0x9e, 0x7f, 0x89, 0x71, 0x5d, 0x7f, 0x91, 0x32, 0xae, 0xeb, 0x2f, 0x8c, 0x5f,
|
0x00, 0x9d, 0x45, 0xe0, 0xaa, 0xe8, 0xc7, 0xc7, 0xdb, 0x3a, 0xef, 0x2f, 0x02, 0x97, 0xbe, 0xbd,
|
||||||
0xe5, 0x66, 0x39, 0xb9, 0x7e, 0x07, 0xda, 0x33, 0xdf, 0x96, 0xd9, 0x8f, 0x8e, 0xb7, 0xd4, 0x8e,
|
0x0f, 0xa9, 0x2d, 0x85, 0x59, 0xa4, 0xad, 0x02, 0x2e, 0x6a, 0xff, 0xed, 0xdc, 0xff, 0xaf, 0x05,
|
||||||
0xbf, 0xf4, 0x6d, 0xfe, 0xf6, 0x3e, 0xe0, 0xa6, 0x50, 0x66, 0x99, 0xb6, 0x24, 0x07, 0x89, 0x4c,
|
0x80, 0x94, 0xaa, 0xf7, 0xbb, 0xf4, 0xfe, 0x47, 0x23, 0x3f, 0x10, 0x85, 0xd6, 0xdf, 0xca, 0xf9,
|
||||||
0x55, 0xfc, 0xf5, 0x3c, 0xfe, 0x2f, 0x89, 0x6e, 0x4a, 0x58, 0x7f, 0x9f, 0xd1, 0x7f, 0x9e, 0x9f,
|
0x04, 0xba, 0x1e, 0x73, 0xe9, 0x9d, 0xf4, 0xde, 0xb6, 0x15, 0x91, 0x5e, 0x33, 0x6d, 0xb9, 0x62,
|
||||||
0x87, 0x24, 0xf5, 0x6f, 0x26, 0xb6, 0xbc, 0x0a, 0xde, 0x63, 0xec, 0x5f, 0xd0, 0x6d, 0x55, 0x2c,
|
0xf9, 0x9a, 0x51, 0x49, 0x56, 0x84, 0x06, 0xf4, 0x60, 0x29, 0x81, 0x61, 0xd3, 0x56, 0x44, 0x01,
|
||||||
0xe7, 0xf7, 0x19, 0x7c, 0x27, 0x3f, 0xd2, 0xac, 0x90, 0x8d, 0x5d, 0xc0, 0x87, 0x15, 0x2a, 0x6f,
|
0x16, 0x7b, 0x25, 0xf8, 0xd7, 0x9b, 0xee, 0xe7, 0x9b, 0xfe, 0x95, 0xb8, 0x82, 0x8a, 0xdd, 0xf9,
|
||||||
0xe5, 0x72, 0xed, 0xe1, 0xf7, 0xa0, 0x63, 0x3b, 0xf3, 0x79, 0xa4, 0xb7, 0x1b, 0x6e, 0x27, 0xa9,
|
0x5d, 0x66, 0x64, 0x37, 0x3f, 0xcf, 0xac, 0x2f, 0xad, 0x09, 0xe0, 0xc3, 0x86, 0x53, 0x57, 0x6d,
|
||||||
0x36, 0x7e, 0xd7, 0x82, 0xae, 0xbc, 0x5b, 0xf0, 0x90, 0x78, 0xce, 0x72, 0xbc, 0xa9, 0x63, 0xa7,
|
0xb9, 0x95, 0xf0, 0x87, 0xd0, 0x75, 0xbd, 0xe5, 0x32, 0x36, 0x3b, 0x0d, 0x97, 0x8d, 0x12, 0x5b,
|
||||||
0x15, 0x23, 0xc6, 0x13, 0xbb, 0xe9, 0xb6, 0xa4, 0x54, 0x62, 0x67, 0xc5, 0x15, 0xd8, 0xc5, 0x37,
|
0x7f, 0x68, 0x41, 0x4f, 0x5d, 0x15, 0x78, 0x28, 0x60, 0xcb, 0xf1, 0xd8, 0xdc, 0x73, 0xd3, 0x76,
|
||||||
0x1e, 0x40, 0xcf, 0x4b, 0x56, 0xd3, 0xf8, 0x2e, 0x12, 0xa8, 0x6e, 0x9b, 0x5d, 0x2f, 0x59, 0xbd,
|
0x91, 0xf4, 0xcc, 0x2d, 0xe4, 0xa4, 0x55, 0xca, 0x09, 0x42, 0x87, 0x7b, 0x37, 0x54, 0x57, 0xba,
|
||||||
0xbd, 0x8b, 0xf0, 0x18, 0x36, 0x0b, 0xd0, 0x77, 0x6c, 0x45, 0xe0, 0x23, 0xb5, 0x34, 0xb1, 0xee,
|
0xfc, 0xc6, 0x03, 0xe8, 0xb3, 0xe4, 0x66, 0xce, 0xef, 0x62, 0x99, 0xed, 0x8e, 0xdd, 0x63, 0xc9,
|
||||||
0xc9, 0x2b, 0x73, 0x98, 0x15, 0xc1, 0xc4, 0xc6, 0x23, 0x10, 0x35, 0x31, 0x95, 0x24, 0x29, 0x6b,
|
0xcd, 0xdb, 0xbb, 0x18, 0x8f, 0x61, 0xab, 0x50, 0xf7, 0x9e, 0xab, 0xf1, 0x78, 0xac, 0xb7, 0x26,
|
||||||
0xa5, 0x2b, 0xf6, 0x6d, 0x44, 0x72, 0xc5, 0xa2, 0x74, 0x71, 0x7e, 0x0b, 0x06, 0xb4, 0x93, 0xd2,
|
0xf7, 0x3d, 0x7b, 0x69, 0x8f, 0xb2, 0x0e, 0x98, 0xb9, 0x78, 0x04, 0xb2, 0x21, 0xe6, 0x0a, 0xf3,
|
||||||
0xa4, 0x27, 0x4c, 0xfa, 0x24, 0x10, 0xca, 0x0f, 0x61, 0x2b, 0xbf, 0x8c, 0xa5, 0x49, 0x5f, 0x46,
|
0x54, 0xa3, 0xf4, 0x64, 0xde, 0xc6, 0x82, 0xaf, 0x41, 0x51, 0xdc, 0x83, 0xdf, 0x83, 0xa1, 0xc8,
|
||||||
0xc9, 0xc5, 0xc2, 0xf0, 0x10, 0xfa, 0x59, 0x4d, 0x0e, 0x84, 0x45, 0xcf, 0x52, 0xa5, 0x38, 0x81,
|
0xa4, 0x52, 0xe9, 0x4b, 0x95, 0x81, 0x60, 0x48, 0xe1, 0xfb, 0xb0, 0x9d, 0xdf, 0xad, 0x4a, 0x65,
|
||||||
0x9e, 0x5a, 0x62, 0xed, 0xc5, 0xfd, 0x04, 0x3a, 0x81, 0x15, 0xc6, 0x91, 0xba, 0x20, 0x53, 0x82,
|
0xa0, 0xbc, 0xe4, 0x6c, 0xa9, 0x78, 0x08, 0x83, 0xac, 0x21, 0x87, 0x52, 0xa3, 0xef, 0xe8, 0x3e,
|
||||||
0xbb, 0xb2, 0x42, 0xea, 0x95, 0xd4, 0xf5, 0x2d, 0x4d, 0x8c, 0x13, 0xd8, 0x2c, 0xc9, 0x89, 0xd1,
|
0x9c, 0x41, 0x5f, 0x6f, 0xb1, 0xf6, 0x1e, 0x7e, 0x02, 0xdd, 0xd0, 0x89, 0x78, 0xac, 0xef, 0xbb,
|
||||||
0x62, 0x3f, 0xb6, 0x5c, 0x75, 0x75, 0xcb, 0x41, 0x36, 0x4d, 0x2b, 0x9f, 0xc6, 0x38, 0x81, 0x41,
|
0x14, 0x8e, 0x2f, 0x9d, 0x48, 0x0c, 0x40, 0xfa, 0x36, 0x56, 0x2a, 0xd6, 0x09, 0x6c, 0x95, 0xf8,
|
||||||
0x76, 0x86, 0x74, 0x2c, 0x41, 0x72, 0xfd, 0x59, 0xd6, 0xd9, 0xa8, 0x11, 0x85, 0x0b, 0xfc, 0xaf,
|
0xa2, 0x12, 0x79, 0xc0, 0x1d, 0x5f, 0xdf, 0xc4, 0x8a, 0xc8, 0x96, 0x69, 0xe5, 0xcb, 0x58, 0x27,
|
||||||
0x55, 0x0f, 0xd1, 0x36, 0xe5, 0xe0, 0xc9, 0x9f, 0x34, 0x18, 0x7e, 0x2e, 0x29, 0x90, 0xd0, 0x88,
|
0x30, 0xcc, 0xce, 0x50, 0x1c, 0x4b, 0x98, 0x5c, 0x7d, 0xaa, 0x47, 0xaa, 0x4d, 0x5b, 0x53, 0xb2,
|
||||||
0x5b, 0x30, 0x7c, 0x9d, 0xb8, 0xae, 0x12, 0xb1, 0x35, 0xec, 0x43, 0x9b, 0x98, 0x93, 0x69, 0x38,
|
0xb0, 0x83, 0xaf, 0xf4, 0x48, 0xd0, 0xb1, 0x15, 0xf1, 0xe4, 0xcf, 0x06, 0x8c, 0x3e, 0x53, 0xf8,
|
||||||
0x80, 0x8e, 0x60, 0x46, 0xd6, 0x22, 0x21, 0x51, 0x22, 0x5b, 0xc7, 0x4d, 0x18, 0x64, 0x1c, 0xc4,
|
0x27, 0xaa, 0x11, 0xb7, 0x61, 0xf4, 0x3a, 0xf1, 0x7d, 0xcd, 0x22, 0x1b, 0x38, 0x80, 0x8e, 0x80,
|
||||||
0xda, 0x34, 0xcc, 0x28, 0x99, 0x75, 0x68, 0x98, 0x51, 0x0f, 0xdb, 0xc6, 0x21, 0xf4, 0x14, 0x53,
|
0x4d, 0x62, 0xe0, 0x10, 0xba, 0x12, 0x16, 0x49, 0x4b, 0x30, 0x05, 0x1e, 0x92, 0x36, 0x6e, 0xc1,
|
||||||
0x30, 0x44, 0x80, 0xae, 0x3c, 0x29, 0xb6, 0x43, 0xa1, 0x45, 0x91, 0xb3, 0x5d, 0x72, 0xc9, 0xa0,
|
0x30, 0x03, 0x20, 0xd2, 0x11, 0x64, 0x86, 0xc7, 0xa4, 0x2b, 0xc8, 0x0c, 0x77, 0xc8, 0x0e, 0x8e,
|
||||||
0xcd, 0xf6, 0x70, 0x04, 0x90, 0x83, 0x9a, 0xed, 0xe3, 0x06, 0xf4, 0x53, 0x38, 0xb3, 0x03, 0xf2,
|
0xa0, 0xaf, 0x61, 0x82, 0x20, 0x02, 0xf4, 0xd4, 0x49, 0x91, 0x5d, 0xe1, 0x5a, 0x36, 0x38, 0x99,
|
||||||
0x13, 0x05, 0xcc, 0xf4, 0x27, 0xbf, 0xef, 0x40, 0x3f, 0xad, 0x29, 0xec, 0x42, 0xeb, 0xcd, 0x67,
|
0x08, 0x93, 0xac, 0xb4, 0xc9, 0x1e, 0x8e, 0x01, 0xf2, 0xa2, 0x26, 0xfb, 0xb8, 0x09, 0x83, 0xb4,
|
||||||
0x6c, 0x0d, 0xb7, 0x61, 0x73, 0xe2, 0xc5, 0x3c, 0xf4, 0x2c, 0xf7, 0x9c, 0xee, 0x03, 0xa6, 0x91,
|
0x9c, 0xc9, 0xc1, 0x93, 0x3f, 0x75, 0x61, 0x90, 0x36, 0x12, 0xf6, 0xa0, 0xf5, 0xe6, 0x53, 0xb2,
|
||||||
0xe8, 0xdc, 0x9b, 0xf9, 0xb6, 0xe3, 0x2d, 0xa4, 0xa8, 0x45, 0x31, 0xcf, 0x2c, 0xfb, 0xb5, 0xef,
|
0x81, 0x3b, 0xb0, 0x35, 0x63, 0x9c, 0x46, 0xcc, 0xf1, 0xcf, 0xc5, 0x0d, 0x40, 0x0c, 0xc1, 0x3a,
|
||||||
0xcd, 0x38, 0x5b, 0x47, 0x06, 0x1b, 0x5f, 0x7a, 0x56, 0x12, 0x2f, 0xfd, 0xd0, 0xf9, 0x0d, 0xb7,
|
0x67, 0x8b, 0xc0, 0xf5, 0xd8, 0x4a, 0xb1, 0x5a, 0xc2, 0xd1, 0x99, 0xe3, 0xbe, 0x0e, 0xd8, 0x82,
|
||||||
0x59, 0x1b, 0xf7, 0x60, 0x7b, 0xe2, 0x45, 0xc9, 0x7c, 0xee, 0xcc, 0x1c, 0xee, 0xc5, 0x9f, 0x26,
|
0x92, 0x36, 0x12, 0xd8, 0xfc, 0x82, 0x39, 0x09, 0x5f, 0x07, 0x91, 0xf7, 0x3b, 0xea, 0x92, 0x0e,
|
||||||
0x9e, 0x1d, 0xb1, 0x0e, 0x22, 0x8c, 0xbe, 0xf4, 0x6e, 0x3c, 0xff, 0x6b, 0x4f, 0x75, 0x5d, 0xac,
|
0xee, 0xc1, 0xce, 0x8c, 0xc5, 0xc9, 0x72, 0xe9, 0x2d, 0x3c, 0xca, 0xf8, 0x27, 0x09, 0x73, 0x63,
|
||||||
0x8b, 0x3a, 0xec, 0x9e, 0x59, 0x11, 0x7f, 0x95, 0x04, 0xae, 0x33, 0xb3, 0x62, 0x7e, 0x6a, 0xdb,
|
0xd2, 0x45, 0x84, 0xf1, 0x17, 0xec, 0x9a, 0x05, 0x5f, 0x31, 0x3d, 0x39, 0x91, 0x1e, 0x9a, 0x30,
|
||||||
0x21, 0x8f, 0x22, 0xc6, 0x29, 0x08, 0x69, 0xca, 0x73, 0xcf, 0x53, 0x87, 0x52, 0x7c, 0xce, 0x23,
|
0x39, 0x73, 0x62, 0xfa, 0x32, 0x09, 0x7d, 0x6f, 0xe1, 0x70, 0x7a, 0xea, 0xba, 0x11, 0x8d, 0x63,
|
||||||
0xb6, 0xc0, 0x43, 0xd8, 0x7b, 0xa0, 0x11, 0x33, 0x2f, 0xf1, 0xdb, 0xa0, 0x57, 0x55, 0x17, 0x56,
|
0x42, 0x85, 0x13, 0x21, 0x29, 0xaf, 0xbd, 0x4c, 0x0d, 0x4a, 0xfe, 0x29, 0x8d, 0xc9, 0x0a, 0x0f,
|
||||||
0x74, 0x15, 0x3a, 0x33, 0xce, 0x1c, 0xdc, 0x05, 0x26, 0xb5, 0x02, 0xc6, 0x13, 0x2f, 0x48, 0x62,
|
0x61, 0xef, 0x81, 0x44, 0xae, 0xbc, 0xc6, 0xef, 0x83, 0x59, 0x15, 0xbd, 0x72, 0xe2, 0xcb, 0xc8,
|
||||||
0xf6, 0xeb, 0x74, 0x7e, 0x25, 0x7d, 0x93, 0xc4, 0x24, 0xbe, 0xa9, 0x88, 0xaf, 0x04, 0x54, 0x98,
|
0x5b, 0x50, 0xe2, 0xe1, 0x04, 0x88, 0x92, 0xca, 0xda, 0x9d, 0xb1, 0x30, 0xe1, 0xe4, 0xb7, 0xe9,
|
||||||
0x8b, 0x07, 0xb0, 0x53, 0x10, 0x7f, 0x41, 0xf9, 0xd1, 0xee, 0xac, 0xf2, 0xf5, 0x4a, 0x85, 0xb3,
|
0xfa, 0x9a, 0xfb, 0x26, 0xe1, 0x82, 0x7d, 0x5d, 0x61, 0x5f, 0xca, 0xfa, 0x20, 0x3e, 0x1e, 0xc0,
|
||||||
0xf0, 0xac, 0x38, 0x09, 0x39, 0xf3, 0x70, 0x1f, 0x90, 0x34, 0x6a, 0x4b, 0xd2, 0xc4, 0xfd, 0x74,
|
0x6e, 0x81, 0xfd, 0xb9, 0x88, 0x4f, 0x64, 0xe7, 0x26, 0xdf, 0xaf, 0x12, 0x78, 0x2b, 0xe6, 0xf0,
|
||||||
0x06, 0x25, 0x57, 0x33, 0x04, 0x55, 0xb1, 0x9b, 0x2c, 0x1c, 0x8f, 0xbd, 0xc3, 0x3d, 0x60, 0x17,
|
0x24, 0xa2, 0x84, 0xe1, 0x3e, 0xa0, 0x90, 0xe8, 0x94, 0xa4, 0x81, 0x07, 0xe9, 0x0a, 0x9a, 0xaf,
|
||||||
0xfe, 0xad, 0x92, 0x9e, 0x7b, 0xb1, 0x13, 0xdf, 0xb3, 0x3f, 0x6b, 0xb8, 0x0b, 0x5b, 0xb9, 0xf8,
|
0x57, 0x08, 0xab, 0x6c, 0x3f, 0x59, 0x79, 0x8c, 0xbc, 0xc3, 0x3d, 0x20, 0xaf, 0x82, 0x5b, 0xcd,
|
||||||
0x22, 0xf4, 0x93, 0x80, 0xfd, 0x45, 0xc3, 0x03, 0xc0, 0x5c, 0x7a, 0x15, 0xfa, 0x81, 0x1f, 0x59,
|
0x3d, 0x67, 0xdc, 0xe3, 0xf7, 0xe4, 0xaf, 0x06, 0x4e, 0x60, 0x3b, 0x67, 0xbf, 0x8a, 0x82, 0x24,
|
||||||
0x2e, 0xfb, 0xab, 0x86, 0xfb, 0xb0, 0x7d, 0xe1, 0xdf, 0x66, 0xa7, 0x20, 0x1d, 0xfe, 0x96, 0x3a,
|
0x24, 0x7f, 0x33, 0xf0, 0x00, 0x30, 0xe7, 0x5e, 0x46, 0x41, 0x18, 0xc4, 0x8e, 0x4f, 0xfe, 0x6e,
|
||||||
0x64, 0xf2, 0xcf, 0xf9, 0xea, 0x9a, 0x87, 0xec, 0xef, 0x1a, 0x1e, 0xc2, 0x6e, 0x51, 0x91, 0xc5,
|
0xe0, 0x3e, 0xec, 0xbc, 0x0a, 0x6e, 0xb3, 0x53, 0x50, 0x06, 0xff, 0x48, 0x0d, 0x32, 0xfe, 0x67,
|
||||||
0xfa, 0x87, 0xa6, 0x56, 0x94, 0xa9, 0xbe, 0xf2, 0x63, 0xce, 0xfe, 0x99, 0x8a, 0xd5, 0x3e, 0xa8,
|
0xf4, 0xe6, 0x8a, 0x46, 0xe4, 0x9f, 0x06, 0x1e, 0xc2, 0xa4, 0x28, 0xc8, 0x7c, 0xfd, 0xcb, 0xd0,
|
||||||
0x40, 0xff, 0xd2, 0x70, 0x07, 0x46, 0xb9, 0x58, 0xd8, 0xfe, 0x5b, 0xc3, 0x31, 0xec, 0x95, 0x84,
|
0x3b, 0xca, 0x44, 0x5f, 0x06, 0x9c, 0x92, 0x7f, 0xa7, 0x6c, 0x9d, 0x07, 0xed, 0xe8, 0x3f, 0x06,
|
||||||
0x8e, 0xb7, 0xb8, 0xa2, 0xea, 0x63, 0xff, 0xd1, 0x8e, 0xff, 0xd8, 0x81, 0xad, 0xd3, 0xb3, 0x97,
|
0xee, 0xc2, 0x38, 0x67, 0x4b, 0xdd, 0xff, 0x1a, 0x38, 0x85, 0xbd, 0x12, 0xd3, 0x63, 0xab, 0x4b,
|
||||||
0x93, 0xd3, 0x40, 0x4e, 0x40, 0x77, 0xf9, 0x73, 0x59, 0x73, 0x58, 0xf3, 0xef, 0x7f, 0x5c, 0xd7,
|
0xd1, 0x72, 0xe4, 0x7f, 0xc6, 0xf1, 0xd7, 0x5d, 0xd8, 0x3e, 0x3d, 0x7b, 0x31, 0x3b, 0x0d, 0xd5,
|
||||||
0x64, 0xe3, 0xb1, 0x2a, 0x4d, 0xac, 0x7b, 0x04, 0x18, 0xd7, 0xf6, 0xda, 0x34, 0x89, 0x6c, 0x6b,
|
0x02, 0xe2, 0xf6, 0x7e, 0xa6, 0x1a, 0x0d, 0x6b, 0x9e, 0xe6, 0xd3, 0xba, 0x41, 0x19, 0x8f, 0x75,
|
||||||
0x1e, 0xbe, 0x05, 0x8c, 0xeb, 0x1a, 0x6e, 0xfc, 0x69, 0xa1, 0xd4, 0xb1, 0xe9, 0x45, 0x60, 0xdc,
|
0x3f, 0x62, 0xdd, 0x0b, 0x7d, 0x5a, 0x3b, 0x2f, 0x8b, 0x45, 0xd4, 0x20, 0xf3, 0xf0, 0xa1, 0x3e,
|
||||||
0xd8, 0x7a, 0x93, 0x7f, 0xde, 0x87, 0x34, 0xbd, 0x0b, 0x8c, 0x1b, 0xfb, 0x6f, 0x7c, 0x91, 0xb1,
|
0xad, 0x1b, 0x9a, 0xf1, 0x17, 0x85, 0xfe, 0xc6, 0xa6, 0xe7, 0xfa, 0xb4, 0x71, 0x7c, 0x16, 0xf6,
|
||||||
0x07, 0xd6, 0xbf, 0x0e, 0x8c, 0x1b, 0x5a, 0x70, 0xda, 0x1e, 0xd9, 0x43, 0xd4, 0xfd, 0xe9, 0x1f,
|
0xf9, 0xe4, 0xd1, 0xf4, 0x68, 0x9f, 0x36, 0xce, 0xd0, 0xf8, 0x3c, 0x83, 0x0c, 0xac, 0x7f, 0xba,
|
||||||
0xd7, 0x76, 0xd5, 0xe4, 0x23, 0x7b, 0x83, 0xba, 0x7f, 0xd3, 0xe3, 0xda, 0x56, 0x15, 0x3f, 0x4e,
|
0x4f, 0x1b, 0xc6, 0x68, 0x91, 0x1e, 0x35, 0x34, 0xd4, 0xbd, 0xc8, 0xa7, 0xb5, 0x93, 0x31, 0x7e,
|
||||||
0x29, 0x0d, 0x6b, 0x1f, 0x23, 0xc6, 0xf5, 0xfd, 0x3e, 0x6d, 0x4c, 0xfe, 0x37, 0xb2, 0xe9, 0x95,
|
0x94, 0x62, 0x12, 0xd6, 0xbe, 0xfa, 0xa7, 0xf5, 0xf3, 0xb7, 0x08, 0x32, 0x7f, 0xd6, 0x35, 0x3d,
|
||||||
0x61, 0xdc, 0xd8, 0xc9, 0xe3, 0x69, 0x91, 0x23, 0xb1, 0xf1, 0xad, 0x61, 0xdc, 0xdc, 0xcf, 0xe3,
|
0xe7, 0xa7, 0x8d, 0x93, 0x35, 0x9e, 0x16, 0x41, 0x0e, 0x1b, 0x1f, 0xf5, 0xd3, 0xe6, 0xf9, 0x1a,
|
||||||
0x27, 0x39, 0xad, 0x62, 0xc3, 0x8b, 0xc3, 0xb8, 0xa9, 0xa5, 0xbf, 0xee, 0x8a, 0xc7, 0xac, 0x8f,
|
0x3f, 0xce, 0x71, 0x11, 0x1b, 0x9e, 0xf6, 0xd3, 0xa6, 0x11, 0xfb, 0xaa, 0x27, 0xff, 0x35, 0xfa,
|
||||||
0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x1e, 0x2e, 0xe2, 0x17, 0xe1, 0x12, 0x00, 0x00,
|
0xf0, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x73, 0x34, 0x90, 0x2d, 0x4a, 0x12, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,7 @@ message RequestCheckTx{
|
||||||
}
|
}
|
||||||
|
|
||||||
message RequestQuery{
|
message RequestQuery{
|
||||||
bytes query = 1;
|
bytes data = 1;
|
||||||
string path = 2;
|
string path = 2;
|
||||||
uint64 height = 3;
|
uint64 height = 3;
|
||||||
bool prove = 4;
|
bool prove = 4;
|
||||||
|
@ -191,10 +191,13 @@ message ResponseCheckTx{
|
||||||
}
|
}
|
||||||
|
|
||||||
message ResponseQuery{
|
message ResponseQuery{
|
||||||
bytes data = 2;
|
CodeType code = 1;
|
||||||
string log = 3;
|
int64 index = 2;
|
||||||
uint64 height = 4;
|
bytes key = 3;
|
||||||
|
bytes value = 4;
|
||||||
bytes proof = 5;
|
bytes proof = 5;
|
||||||
|
uint64 height = 6;
|
||||||
|
string log = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ResponseCommit{
|
message ResponseCommit{
|
||||||
|
|
Loading…
Reference in New Issue