Commit 0800adce authored by mdj33's avatar mdj33 Committed by vipwzw

clean rpc test query func

parent ad01c9ce
......@@ -8,7 +8,7 @@ IS_PARA=false
source ../dapp-test-common.sh
paracross_GetBlock2MainInfo() {
chain33_Http '{"method":"paracross.GetBlock2MainInfo","params":[{"start":1,"end":3}]}' ${UNIT_HTTP} "(.result.items[1].height == 2)" "$FUNCNAME"
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName": "GetBlock2MainInfo", "payload" : {"start":1,"end":3}}]}' ${UNIT_HTTP} '(.result.items[1].height == "2")' "$FUNCNAME"
}
function paracross_QueryParaBalance() {
......@@ -182,29 +182,29 @@ function paracross_IsSync() {
function paracross_ListTitles() {
local main_ip=${UNIT_HTTP//8901/8801}
chain33_Http '{"method":"paracross.ListTitles","params":[]}' ${main_ip} '(.error|not) and (.result| [has("titles"),true])' "$FUNCNAME"
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName": "ListTitles", "payload" : {}}]}' ${main_ip} '(.error|not) and (.result| [has("titles"),true])' "$FUNCNAME"
}
function paracross_GetHeight() {
if [ "$IS_PARA" == "true" ]; then
chain33_Http '{"method":"paracross.GetHeight","params":[]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("consensHeight"),true])' "$FUNCNAME"
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName": "GetHeight", "payload" : {}}]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("consensHeight"),true])' "$FUNCNAME"
fi
}
function paracross_GetNodeGroupAddrs() {
chain33_Http '{"method":"paracross.GetNodeGroupAddrs","params":[{"title":"user.p.para."}]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("key","value"),true])' "$FUNCNAME"
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetNodeGroupAddrs","payload":{"title":"user.p.para."}}]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("key","value"),true])' "$FUNCNAME"
}
function paracross_GetNodeGroupStatus() {
chain33_Http '{"method":"paracross.GetNodeGroupStatus","params":[{"title":"user.p.para."}]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("status"),true])' "$FUNCNAME"
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetNodeGroupStatus","payload":{"title":"user.p.para."}}]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("status"),true])' "$FUNCNAME"
}
function paracross_ListNodeGroupStatus() {
chain33_Http '{"method":"paracross.ListNodeGroupStatus","params":[{"title":"user.p.para.","status":2}]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("status"),true])' "$FUNCNAME"
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"ListNodeGroupStatus","payload":{"title":"user.p.para.","status":2}}]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("status"),true])' "$FUNCNAME"
}
function paracross_ListNodeStatus() {
chain33_Http '{"method":"paracross.ListNodeStatus","params":[{"title":"user.p.para.","status":4}]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("status"),true])' "$FUNCNAME"
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"ListNodeStatusInfo","payload":{"title":"user.p.para.","status":4}}]}' ${UNIT_HTTP} '(.error|not) and (.result| [has("status"),true])' "$FUNCNAME"
}
para_test_addr="1MAuE8QSbbech3bVKK2JPJJxYxNtT95oSU"
......@@ -372,7 +372,7 @@ function paracross_testTxGroup() {
paracross_testSelfConsensStages() {
local para_ip=$1
req='"method":"paracross.GetHeight","params":[]'
req='"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName": "GetHeight", "payload" : {}}]'
resp=$(curl -ksd "{$req}" "${para_ip}")
err=$(jq '(.error)' <<<"$resp")
if [ "$err" != null ]; then
......@@ -388,7 +388,7 @@ paracross_testSelfConsensStages() {
chain33_SignAndSendTx "$rawtx" "$para_test_prikey" "${para_ip}"
echo "get stage apply id"
req='"method":"paracross.ListSelfStages","params":[{"status":1,"count":1}]'
req='"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"ListSelfStages","payload":{"status":1,"count":1}}]'
resp=$(curl -ksd "{$req}" "${para_ip}")
echo "$resp"
id=$(jq -r ".result.stageInfo[0].id" <<<"$resp")
......@@ -413,22 +413,22 @@ paracross_testSelfConsensStages() {
chain33_SignAndSendTx "$rawtx" "$NL_PRI" "${para_ip}" "111s"
echo "query status"
req='"method":"paracross.ListSelfStages","params":[{"status":3,"count":1}]'
req='"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"ListSelfStages","payload":{"status":3,"count":1}}]'
resp=$(curl -ksd "{$req}" "${para_ip}")
echo "$resp"
ok1=$(jq '(.error|not) and (.result| [has("id"),true])' <<<"$resp")
req='"method":"paracross.GetSelfConsStages","params":[]'
req='"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetSelfConsStages","payload":{}}]'
resp=$(curl -ksd "{$req}" "${para_ip}")
echo "$resp"
ok2=$(jq '(.error|not) and (.result| [has("startHeight"),true])' <<<"$resp")
req='"method":"paracross.GetSelfConsOneStage","params":[{"data":1000}]'
req='"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetSelfConsOneStage","payload":{"data":1000}}]'
resp=$(curl -ksd "{$req}" "${para_ip}")
echo "$resp"
ok3=$(jq '(.error|not) and (.result.enable==1)' <<<"$resp")
req='"method":"paracross.GetSelfConsOneStage","params":[{"data":'"$newHeight"'}]'
req='"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetSelfConsOneStage","payload":{"data":'"$newHeight"'}}]'
resp=$(curl -ksd "{$req}" "${para_ip}")
echo "$resp"
ok4=$(jq '(.error|not) and (.result.enable==2)' <<<"$resp")
......
......@@ -424,12 +424,17 @@ func nodeInfo(cmd *cobra.Command, args []string) {
paraName, _ := cmd.Flags().GetString("paraName")
addr, _ := cmd.Flags().GetString("addr")
params := pt.ReqParacrossNodeInfo{
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "GetNodeAddrInfo"
req := pt.ReqParacrossNodeInfo{
Title: paraName,
Addr: addr,
}
params.Payload = types.MustPBToJSON(&req)
var res pt.ParaNodeAddrIdStatus
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetNodeAddrStatus", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -455,12 +460,17 @@ func nodeIDInfo(cmd *cobra.Command, args []string) {
paraName, _ := cmd.Flags().GetString("paraName")
id, _ := cmd.Flags().GetString("id")
params := pt.ReqParacrossNodeInfo{
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "GetNodeIDInfo"
req := pt.ReqParacrossNodeInfo{
Title: paraName,
Id: id,
}
params.Payload = types.MustPBToJSON(&req)
var res pt.ParaNodeIdStatus
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetNodeIDStatus", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -486,12 +496,17 @@ func nodeList(cmd *cobra.Command, args []string) {
paraName, _ := cmd.Flags().GetString("paraName")
status, _ := cmd.Flags().GetInt32("status")
params := pt.ReqParacrossNodeInfo{
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "ListNodeStatusInfo"
req := pt.ReqParacrossNodeInfo{
Title: paraName,
Status: status,
}
params.Payload = types.MustPBToJSON(&req)
var res pt.RespParacrossNodeAddrs
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.ListNodeStatus", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -822,8 +837,14 @@ func consusHeight(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "GetHeight"
req := types.ReqString{Data: paraName}
params.Payload = types.MustPBToJSON(&req)
var res pt.ParacrossConsensusStatus
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetHeight", &types.ReqString{Data: paraName}, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -850,14 +871,18 @@ func blockInfo(cmd *cobra.Command, args []string) {
startH, _ := cmd.Flags().GetInt64("start")
endH, _ := cmd.Flags().GetInt64("end")
params := types.ReqBlocks{
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "GetBlock2MainInfo"
req := types.ReqBlocks{
Start: startH,
End: endH,
}
params.Payload = types.MustPBToJSON(&req)
var res pt.ParaBlock2MainInfo
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetBlock2MainInfo", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
// GetBlockInfoCmd get blocks hash with main chain hash map
......@@ -912,12 +937,17 @@ func paraInfo(cmd *cobra.Command, args []string) {
paraName, _ := cmd.Flags().GetString("paraName")
height, _ := cmd.Flags().GetInt64("height")
params := pt.ReqParacrossTitleHeight{
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "GetTitleHeight"
req := pt.ReqParacrossTitleHeight{
Title: paraName,
Height: height,
}
params.Payload = types.MustPBToJSON(&req)
var res pt.ParacrossHeightStatusRsp
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetTitleHeight", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -925,7 +955,7 @@ func paraInfo(cmd *cobra.Command, args []string) {
func GetParaInfoCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "consens_status",
Short: "Get para chain current consensus status",
Short: "Get para chain heights' consensus status",
Run: paraInfo,
}
addParaBodyCmdFlags(cmd)
......@@ -946,8 +976,14 @@ func GetParaListCmd() *cobra.Command {
func paraList(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "ListTitles"
req := types.ReqNil{}
params.Payload = types.MustPBToJSON(&req)
var res pt.RespParacrossTitles
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.ListTitles", types.ReqNil{}, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -971,11 +1007,16 @@ func paraAssetTransfer(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
hash, _ := cmd.Flags().GetString("hash")
params := types.ReqString{
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "GetAssetTxResult"
req := types.ReqString{
Data: hash,
}
params.Payload = types.MustPBToJSON(&req)
var res pt.ParacrossAssetRsp
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetAssetTxResult", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -994,8 +1035,14 @@ func nodeGroup(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "GetNodeGroupAddrs"
req := pt.ReqParacrossNodeInfo{Title: paraName}
params.Payload = types.MustPBToJSON(&req)
var res types.ReplyConfig
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetNodeGroupAddrs", pt.ReqParacrossNodeInfo{Title: paraName}, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -1013,12 +1060,16 @@ func nodeGroupStatus(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
paraName, _ := cmd.Flags().GetString("paraName")
params := pt.ReqParacrossNodeInfo{
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "GetNodeGroupStatus"
req := pt.ReqParacrossNodeInfo{
Title: paraName,
}
params.Payload = types.MustPBToJSON(&req)
var res pt.ParaNodeGroupStatus
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetNodeGroupStatus", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -1042,20 +1093,30 @@ func nodeGroupList(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
status, _ := cmd.Flags().GetInt32("status")
params := pt.ReqParacrossNodeInfo{
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "ListNodeGroupStatus"
req := pt.ReqParacrossNodeInfo{
Status: status,
}
params.Payload = types.MustPBToJSON(&req)
var res pt.RespParacrossNodeGroups
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.ListNodeGroupStatus", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
func stagesInfo(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "GetSelfConsStages"
req := types.ReqNil{}
params.Payload = types.MustPBToJSON(&req)
var res pt.SelfConsensStages
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetSelfConsStages", nil, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -1074,9 +1135,14 @@ func stageOneInfo(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
height, _ := cmd.Flags().GetInt64("height")
params := types.Int64{Data: height}
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "GetSelfConsOneStage"
req := types.Int64{Data: height}
params.Payload = types.MustPBToJSON(&req)
var res pt.SelfConsensStage
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetSelfConsOneStage", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -1105,7 +1171,7 @@ func QuerySelfStagesCmd() *cobra.Command {
func addShowSelfStagesflags(cmd *cobra.Command) {
cmd.Flags().StringP("id", "q", "", "stage apply ID")
cmd.Flags().Uint32P("status", "s", 0, "status")
cmd.Flags().Uint32P("status", "s", 0, "status:1:applying,3:closed,4:canceled,5:voting")
cmd.Flags().Int32P("count", "c", 1, "count, default is 1")
cmd.Flags().Int32P("direction", "d", 0, "direction, default is reserve")
cmd.Flags().Int64P("height", "t", -1, "height, default is -1")
......@@ -1121,7 +1187,15 @@ func showSelfStages(cmd *cobra.Command, args []string) {
height, _ := cmd.Flags().GetInt64("height")
index, _ := cmd.Flags().GetInt32("index")
params := pt.ReqQuerySelfStages{
if id == "" && status == 0 {
fmt.Fprintln(os.Stderr, "should fill id or status in")
return
}
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "ListSelfStages"
req := pt.ReqQuerySelfStages{
Status: status,
Id: id,
Count: count,
......@@ -1129,9 +1203,10 @@ func showSelfStages(cmd *cobra.Command, args []string) {
Height: height,
Index: index,
}
params.Payload = types.MustPBToJSON(&req)
var res pt.ReplyQuerySelfStages
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.ListSelfStages", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......@@ -1146,12 +1221,17 @@ func consensDoneInfo(cmd *cobra.Command, args []string) {
paraName, _ := cmd.Flags().GetString("paraName")
height, _ := cmd.Flags().GetInt64("height")
params := pt.ReqParacrossTitleHeight{
var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX
params.FuncName = "GetDoneTitleHeight"
req := pt.ReqParacrossTitleHeight{
Title: paraName,
Height: height,
}
params.Payload = types.MustPBToJSON(&req)
var res pt.RespParacrossDone
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetDoneTitleHeight", params, &res)
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
ctx.Run()
}
......
......@@ -28,6 +28,10 @@ func (p *Paracross) Query_GetTitleHeight(in *pt.ReqParacrossTitleHeight) (types.
if in == nil {
return nil, types.ErrInvalidParam
}
cfg := p.GetAPI().GetConfig()
if cfg.IsPara() {
in.Title = cfg.GetTitle()
}
stat, err := p.paracrossGetStateTitleHeight(in.Title, in.Height)
if err != nil {
clog.Error("paracross.GetTitleHeight", "title", title, "height", in.Height, "err", err.Error())
......@@ -63,13 +67,20 @@ func (p *Paracross) Query_GetTitleByHash(in *pt.ReqParacrossTitleHash) (types.Me
//Query_GetNodeGroupAddrs get node group addrs
func (p *Paracross) Query_GetNodeGroupAddrs(in *pt.ReqParacrossNodeInfo) (types.Message, error) {
if in == nil || in.GetTitle() == "" {
if in == nil {
return nil, types.ErrInvalidParam
}
cfg := p.GetAPI().GetConfig()
if cfg.IsPara() {
in.Title = cfg.GetTitle()
} else if in.Title == "" {
return nil, errors.Wrap(types.ErrInvalidParam, "title is null")
}
ret, key, err := getConfigNodes(p.GetStateDB(), in.GetTitle())
if err != nil {
return nil, errors.Cause(err)
return nil, err
}
var nodes []string
for k := range ret {
......@@ -83,9 +94,16 @@ func (p *Paracross) Query_GetNodeGroupAddrs(in *pt.ReqParacrossNodeInfo) (types.
//Query_GetNodeAddrInfo get specific node addr info
func (p *Paracross) Query_GetNodeAddrInfo(in *pt.ReqParacrossNodeInfo) (types.Message, error) {
if in == nil || in.Title == "" || in.Addr == "" {
if in == nil || in.Addr == "" {
return nil, types.ErrInvalidParam
}
cfg := p.GetAPI().GetConfig()
if cfg.IsPara() {
in.Title = cfg.GetTitle()
} else if in.Title == "" {
return nil, types.ErrInvalidParam
}
stat, err := getNodeAddr(p.GetStateDB(), in.Title, in.Addr)
if err != nil {
return nil, err
......@@ -94,7 +112,7 @@ func (p *Paracross) Query_GetNodeAddrInfo(in *pt.ReqParacrossNodeInfo) (types.Me
if err != nil {
return nil, err
}
cfg := p.GetAPI().GetConfig()
if pt.IsParaForkHeight(cfg, mainHeight, pt.ForkLoopCheckCommitTxDone) {
stat.QuitId = getParaNodeIDSuffix(stat.QuitId)
stat.ProposalId = getParaNodeIDSuffix(stat.ProposalId)
......@@ -117,14 +135,21 @@ func (p *Paracross) getMainHeight() (int64, error) {
//Query_GetNodeIDInfo get specific node addr info
func (p *Paracross) Query_GetNodeIDInfo(in *pt.ReqParacrossNodeInfo) (types.Message, error) {
if in == nil || in.Title == "" || in.Id == "" {
if in == nil || in.Id == "" {
return nil, types.ErrInvalidParam
}
cfg := p.GetAPI().GetConfig()
if cfg.IsPara() {
in.Title = cfg.GetTitle()
} else if in.Title == "" {
return nil, errors.Wrap(types.ErrInvalidParam, "title is null")
}
mainHeight, err := p.getMainHeight()
if err != nil {
return nil, err
}
cfg := p.GetAPI().GetConfig()
stat, err := getNodeIDWithFork(cfg, p.GetStateDB(), in.Title, mainHeight, in.Id)
if err != nil {
return nil, err
......@@ -214,6 +239,10 @@ func (p *Paracross) Query_GetDoneTitleHeight(in *pt.ReqParacrossTitleHeight) (ty
if in == nil {
return nil, types.ErrInvalidParam
}
cfg := p.GetAPI().GetConfig()
if cfg.IsPara() {
in.Title = cfg.GetTitle()
}
return p.paracrossGetTitleHeight(in.Title, in.Height)
}
......@@ -459,3 +488,60 @@ func (p *Paracross) Query_GetSelfConsOneStage(in *types.Int64) (types.Message, e
func (p *Paracross) Query_ListSelfStages(in *pt.ReqQuerySelfStages) (types.Message, error) {
return p.listSelfStages(in)
}
func (p *Paracross) Query_GetBlock2MainInfo(req *types.ReqBlocks) (*pt.ParaBlock2MainInfo, error) {
ret := &pt.ParaBlock2MainInfo{}
details, err := p.GetAPI().GetBlocks(req)
if err != nil {
return nil, err
}
cfg := p.GetAPI().GetConfig()
for _, item := range details.Items {
data := &pt.ParaBlock2MainMap{
Height: item.Block.Height,
BlockHash: common.ToHex(item.Block.Hash(cfg)),
MainHeight: item.Block.MainHeight,
MainHash: common.ToHex(item.Block.MainHash),
}
ret.Items = append(ret.Items, data)
}
return ret, nil
}
func (p *Paracross) Query_GetHeight(req *types.ReqString) (*pt.ParacrossConsensusStatus, error) {
cfg := p.GetAPI().GetConfig()
if req == nil || req.Data == "" {
if !cfg.IsPara() {
return nil, errors.Wrap(types.ErrInvalidParam, "req invalid")
}
}
reqTitle := req.Data
if cfg.IsPara() {
reqTitle = cfg.GetTitle()
}
res, err := p.paracrossGetHeight(reqTitle)
if err != nil {
return nil, errors.Wrapf(err, "title:%s", reqTitle)
}
header, err := p.GetAPI().GetLastHeader()
if err != nil {
return nil, errors.Wrap(err, "GetLastHeader")
}
chainHeight := header.Height
if resp, ok := res.(*pt.ParacrossStatus); ok {
// 如果主链上查询平行链的高度,chain height应该是平行链的高度而不是主链高度, 平行链的真实高度需要在平行链侧查询
if !cfg.IsPara() {
chainHeight = resp.Height
}
return &pt.ParacrossConsensusStatus{
Title: resp.Title,
ChainHeight: chainHeight,
ConsensHeight: resp.Height,
ConsensBlockHash: common.ToHex(resp.BlockHash),
}, nil
}
return nil, types.ErrDecode
}
......@@ -424,10 +424,5 @@ message ParaLocalDbBlockInfo {
}
service paracross {
rpc GetTitle(ReqString) returns (ParacrossConsensusStatus) {}
rpc ListTitles(ReqNil) returns (RespParacrossTitles) {}
rpc GetDoneTitleHeight(ReqParacrossTitleHeight) returns (RespParacrossDone) {}
rpc GetTitleHeight(ReqParacrossTitleHeight) returns (ParacrossHeightStatusRsp) {}
rpc GetAssetTxResult(ReqString) returns (ParacrossAssetRsp) {}
rpc IsSync(ReqNil) returns (IsCaughtUp) {}
}
\ No newline at end of file
......@@ -7,155 +7,10 @@ package rpc
import (
"context"
"github.com/33cn/chain33/common"
"github.com/33cn/chain33/types"
pt "github.com/33cn/plugin/plugin/dapp/paracross/types"
)
func (c *channelClient) GetTitle(ctx context.Context, req *types.ReqString) (*pt.ParacrossConsensusStatus, error) {
cfg := c.GetConfig()
data, err := c.Query(pt.GetExecName(cfg), "GetTitle", req)
if err != nil {
return nil, err
}
header, err := c.GetLastHeader()
if err != nil {
return nil, err
}
chainHeight := header.Height
if resp, ok := data.(*pt.ParacrossStatus); ok {
// 如果主链上查询平行链的高度,chain height应该是平行链的高度而不是主链高度, 平行链的真实高度需要在平行链侧查询
if !cfg.IsPara() {
chainHeight = resp.Height
}
return &pt.ParacrossConsensusStatus{
Title: resp.Title,
ChainHeight: chainHeight,
ConsensHeight: resp.Height,
ConsensBlockHash: common.ToHex(resp.BlockHash),
}, nil
}
return nil, types.ErrDecode
}
// GetHeight jrpc get consensus height
func (c *Jrpc) GetHeight(req *types.ReqString, result *interface{}) error {
cfg := c.cli.GetConfig()
if req == nil || req.Data == "" {
if cfg.IsPara() {
req = &types.ReqString{Data: cfg.GetTitle()}
} else {
return types.ErrInvalidParam
}
}
data, err := c.cli.GetTitle(context.Background(), req)
if err != nil {
return err
}
*result = *data
return err
}
func (c *channelClient) ListTitles(ctx context.Context, req *types.ReqNil) (*pt.RespParacrossTitles, error) {
cfg := c.GetConfig()
data, err := c.Query(pt.GetExecName(cfg), "ListTitles", req)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.RespParacrossTitles); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// ListTitles get paracross consensus titles list
func (c *Jrpc) ListTitles(req *types.ReqNil, result *interface{}) error {
data, err := c.cli.ListTitles(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
func (c *channelClient) GetTitleHeight(ctx context.Context, req *pt.ReqParacrossTitleHeight) (*pt.ParacrossHeightStatusRsp, error) {
cfg := c.GetConfig()
data, err := c.Query(pt.GetExecName(cfg), "GetTitleHeight", req)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.ParacrossHeightStatusRsp); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// GetTitleHeight get consensus title height
func (c *Jrpc) GetTitleHeight(req *pt.ReqParacrossTitleHeight, result *interface{}) error {
if req == nil {
return types.ErrInvalidParam
}
data, err := c.cli.GetTitleHeight(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
func (c *channelClient) GetDoneTitleHeight(ctx context.Context, req *pt.ReqParacrossTitleHeight) (*pt.RespParacrossDone, error) {
cfg := c.GetConfig()
data, err := c.Query(pt.GetExecName(cfg), "GetDoneTitleHeight", req)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.RespParacrossDone); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// GetAssetTxResult get asset tx result
func (c *Jrpc) GetDoneTitleHeight(req *pt.ReqParacrossTitleHeight, result *interface{}) error {
if req == nil {
return types.ErrInvalidParam
}
data, err := c.cli.GetDoneTitleHeight(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
func (c *channelClient) GetAssetTxResult(ctx context.Context, req *types.ReqString) (*pt.ParacrossAssetRsp, error) {
cfg := c.GetConfig()
data, err := c.Query(pt.GetExecName(cfg), "GetAssetTxResult", req)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.ParacrossAssetRsp); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// GetAssetTxResult get asset tx result
func (c *Jrpc) GetAssetTxResult(req *types.ReqString, result *interface{}) error {
if req == nil {
return types.ErrInvalidParam
}
data, err := c.cli.GetAssetTxResult(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
// IsSync query is sync
func (c *channelClient) IsSync(ctx context.Context, in *types.ReqNil) (*types.IsCaughtUp, error) {
data, err := c.QueryConsensusFunc("para", "IsCaughtUp", &types.ReqNil{})
......@@ -179,7 +34,7 @@ func (c *Jrpc) IsSync(in *types.ReqNil, result *interface{}) error {
return nil
}
// GetParaLocalBlockInfo query para local height
// GetParaLocalBlockInfo query para chain the download layer's local height
func (c *channelClient) GetParaLocalBlockInfo(ctx context.Context, in *types.ReqInt) (*pt.ParaLocalDbBlockInfo, error) {
data, err := c.QueryConsensusFunc("para", "LocalBlockInfo", in)
if err != nil {
......@@ -197,260 +52,3 @@ func (c *Jrpc) GetParaLocalBlockInfo(in *types.ReqInt, result *interface{}) erro
*result = data
return nil
}
func (c *channelClient) GetBlock2MainInfo(ctx context.Context, req *types.ReqBlocks) (*pt.ParaBlock2MainInfo, error) {
ret := &pt.ParaBlock2MainInfo{}
details, err := c.GetBlocks(req)
if err != nil {
return nil, err
}
cfg := c.GetConfig()
for _, item := range details.Items {
data := &pt.ParaBlock2MainMap{
Height: item.Block.Height,
BlockHash: common.ToHex(item.Block.Hash(cfg)),
MainHeight: item.Block.MainHeight,
MainHash: common.ToHex(item.Block.MainHash),
}
ret.Items = append(ret.Items, data)
}
return ret, nil
}
// GetBlock2MainInfo jrpc get para block info with main chain map
func (c *Jrpc) GetBlock2MainInfo(req *types.ReqBlocks, result *interface{}) error {
if req == nil {
return types.ErrInvalidParam
}
ret, err := c.cli.GetBlock2MainInfo(context.Background(), req)
if err != nil {
return err
}
*result = *ret
return nil
}
// GetNodeAddrStatus get super node status
func (c *channelClient) GetNodeAddrStatus(ctx context.Context, req *pt.ReqParacrossNodeInfo) (*pt.ParaNodeAddrIdStatus, error) {
r := *req
cfg := c.GetConfig()
data, err := c.Query(pt.GetExecName(cfg), "GetNodeAddrInfo", &r)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.ParaNodeAddrIdStatus); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// GetNodeIDStatus get super node status
func (c *channelClient) GetNodeIDStatus(ctx context.Context, req *pt.ReqParacrossNodeInfo) (*pt.ParaNodeIdStatus, error) {
r := *req
cfg := c.GetConfig()
data, err := c.Query(pt.GetExecName(cfg), "GetNodeIDInfo", &r)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.ParaNodeIdStatus); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// GetNodeAddrStatus get super node status
func (c *Jrpc) GetNodeAddrStatus(req *pt.ReqParacrossNodeInfo, result *interface{}) error {
if req == nil || req.Addr == "" {
return types.ErrInvalidParam
}
data, err := c.cli.GetNodeAddrStatus(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
// GetNodeIDStatus get super node status
func (c *Jrpc) GetNodeIDStatus(req *pt.ReqParacrossNodeInfo, result *interface{}) error {
if req == nil || req.Id == "" {
return types.ErrInvalidParam
}
data, err := c.cli.GetNodeIDStatus(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
//ListNodeStatus list super node by status
func (c *channelClient) ListNodeStatus(ctx context.Context, req *pt.ReqParacrossNodeInfo) (*pt.RespParacrossNodeAddrs, error) {
r := *req
cfg := c.GetConfig()
data, err := c.Query(pt.GetExecName(cfg), "ListNodeStatusInfo", &r)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.RespParacrossNodeAddrs); ok {
return resp, nil
}
return nil, types.ErrDecode
}
//ListNodeStatus list super node by status
func (c *Jrpc) ListNodeStatus(req *pt.ReqParacrossNodeInfo, result *interface{}) error {
data, err := c.cli.ListNodeStatus(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
// GetNodeGroupAddrs get super node group addrs
func (c *channelClient) GetNodeGroupAddrs(ctx context.Context, req *pt.ReqParacrossNodeInfo) (*types.ReplyConfig, error) {
r := *req
cfg := c.GetConfig()
data, err := c.Query(pt.GetExecName(cfg), "GetNodeGroupAddrs", &r)
if err != nil {
return nil, err
}
if resp, ok := data.(*types.ReplyConfig); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// GetNodeGroupAddrs get super node group addrs
func (c *Jrpc) GetNodeGroupAddrs(req *pt.ReqParacrossNodeInfo, result *interface{}) error {
data, err := c.cli.GetNodeGroupAddrs(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
// GetNodeGroupStatus get super node group status
func (c *channelClient) GetNodeGroupStatus(ctx context.Context, req *pt.ReqParacrossNodeInfo) (*pt.ParaNodeGroupStatus, error) {
r := *req
cfg := c.GetConfig()
data, err := c.Query(pt.GetExecName(cfg), "GetNodeGroupStatus", &r)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.ParaNodeGroupStatus); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// GetNodeGroupStatus get super node group status
func (c *Jrpc) GetNodeGroupStatus(req *pt.ReqParacrossNodeInfo, result *interface{}) error {
data, err := c.cli.GetNodeGroupStatus(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
//ListNodeGroupStatus list super node group by status
func (c *channelClient) ListNodeGroupStatus(ctx context.Context, req *pt.ReqParacrossNodeInfo) (*pt.RespParacrossNodeGroups, error) {
r := *req
cfg := c.GetConfig()
data, err := c.Query(pt.GetExecName(cfg), "ListNodeGroupStatus", &r)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.RespParacrossNodeGroups); ok {
return resp, nil
}
return nil, types.ErrDecode
}
//ListNodeGroupStatus list super node group by status
func (c *Jrpc) ListNodeGroupStatus(req *pt.ReqParacrossNodeInfo, result *interface{}) error {
data, err := c.cli.ListNodeGroupStatus(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
// GetNodeGroupAddrs get super node group addrs
func (c *channelClient) GetSelfConsStages(ctx context.Context, req *types.ReqNil) (*pt.SelfConsensStages, error) {
cfg := c.GetConfig()
r := *req
data, err := c.Query(pt.GetExecName(cfg), "GetSelfConsStages", &r)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.SelfConsensStages); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// GetNodeGroupAddrs get super node group addrs
func (c *Jrpc) GetSelfConsStages(req *types.ReqNil, result *interface{}) error {
data, err := c.cli.GetSelfConsStages(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
// GetNodeGroupAddrs get super node group addrs
func (c *channelClient) GetSelfConsOneStage(ctx context.Context, req *types.Int64) (*pt.SelfConsensStage, error) {
cfg := c.GetConfig()
r := *req
data, err := c.Query(pt.GetExecName(cfg), "GetSelfConsOneStage", &r)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.SelfConsensStage); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// GetNodeGroupAddrs get super node group addrs
func (c *Jrpc) GetSelfConsOneStage(req *types.Int64, result *interface{}) error {
data, err := c.cli.GetSelfConsOneStage(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
func (c *channelClient) ListSelfStages(ctx context.Context, req *pt.ReqQuerySelfStages) (*pt.ReplyQuerySelfStages, error) {
cfg := c.GetConfig()
r := *req
data, err := c.Query(pt.GetExecName(cfg), "ListSelfStages", &r)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.ReplyQuerySelfStages); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// ListSelfStages get paracross self consensus stage list
func (c *Jrpc) ListSelfStages(req *pt.ReqQuerySelfStages, result *interface{}) error {
data, err := c.cli.ListSelfStages(context.Background(), req)
if err != nil {
return err
}
*result = data
return err
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment