Commit d9b22618 authored by mdj33's avatar mdj33 Committed by 33cn

modify cmd

parent b1ed6b60
...@@ -539,8 +539,8 @@ paracross_testBind() { ...@@ -539,8 +539,8 @@ paracross_testBind() {
chain33_SignAndSendTxWait "$rawtx" "${priv1q9}" "${para_ip}" chain33_SignAndSendTxWait "$rawtx" "${priv1q9}" "${para_ip}"
echo "2. get bind" echo "2. get bind"
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetNodeBindMinerList","payload":{"superNode":"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"}}]}' "${para_ip}" '(.error|not) and (.result.List| [has("1KSBd17H7Z"),true])' "$FUNCNAME" '(.result.List)' # chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetNodeBindMinerList","payload":{"Node":"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"}}]}' "${para_ip}" '(.error|not) and (.result.List| [has("1KSBd17H7Z"),true])' "$FUNCNAME" '(.result.List)'
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetNodeBindMinerList","payload":{"superNode":"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"}}]}' "${para_ip}" '(.error|not) and (.result.List| [has("1Q9sQw"),true])' "$FUNCNAME" '(.result.List)' chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetNodeBindMinerList","payload":{"node":"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"}}]}' "${para_ip}" '(.error|not) and (.result.List| [has("1Q9sQw"),true])' "$FUNCNAME" '(.result.List)'
} }
paracross_testUnBind() { paracross_testUnBind() {
...@@ -559,8 +559,8 @@ paracross_testUnBind() { ...@@ -559,8 +559,8 @@ paracross_testUnBind() {
# superNode=$(jq -r ".result.List.SuperNode" <<<"$resp") # superNode=$(jq -r ".result.List.SuperNode" <<<"$resp")
# miners=$(jq -r ".result.List.Miners" <<<"$resp") # miners=$(jq -r ".result.List.Miners" <<<"$resp")
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetNodeBindMinerList","payload":{"superNode":"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"}}]}' "${para_ip}" '(.error|not) and (.result.List| [has("1KSBd17H7Z"),true])' "$FUNCNAME" '(.result.List)' # chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetNodeBindMinerList","payload":{"Node":"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"}}]}' "${para_ip}" '(.error|not) and (.result.List| [has("1KSBd17H7Z"),true])' "$FUNCNAME" '(.result.List)'
chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetNodeBindMinerList","payload":{"superNode":"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4"}}]}' "${para_ip}" '(.error|not) and (.result.List| [has("1Q9sQw"),false])' "$FUNCNAME" '(.result.List)' chain33_Http '{"method":"Chain33.Query","params":[{ "execer":"paracross", "funcName":"GetNodeBindMinerList","payload":{"node":"1KSBd17H7ZK8iT37aJztFB22XGwsPTdwE4","Miner":"${addr1q9}"}}]}' "${para_ip}" '(.error|not) and (.result.List| [has("1Q9sQw"),true])' "$FUNCNAME" '(.result.List)'
} }
paracross_testBindMiner() { paracross_testBindMiner() {
......
...@@ -338,12 +338,22 @@ func superNodeCmd() *cobra.Command { ...@@ -338,12 +338,22 @@ func superNodeCmd() *cobra.Command {
cmd.AddCommand(nodeVoteCmd()) cmd.AddCommand(nodeVoteCmd())
cmd.AddCommand(nodeQuitCmd()) cmd.AddCommand(nodeQuitCmd())
cmd.AddCommand(nodeCancelCmd()) cmd.AddCommand(nodeCancelCmd())
cmd.AddCommand(nodeBindCmd())
cmd.AddCommand(getNodeInfoCmd()) cmd.AddCommand(getNodeInfoCmd())
cmd.AddCommand(getNodeIDInfoCmd()) cmd.AddCommand(getNodeIDInfoCmd())
cmd.AddCommand(getNodeListCmd()) cmd.AddCommand(getNodeListCmd())
cmd.AddCommand(nodeModifyCmd()) cmd.AddCommand(nodeModifyCmd())
cmd.AddCommand(nodeMinerCmd())
return cmd
}
func nodeMinerCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "miner",
Short: "super node bind miner cmd",
}
cmd.AddCommand(nodeBindCmd())
cmd.AddCommand(getNodeBindListCmd()) cmd.AddCommand(getNodeBindListCmd())
cmd.AddCommand(getMinerBindListCmd()) cmd.AddCommand(getMinerBindListCmd())
return cmd return cmd
...@@ -559,7 +569,7 @@ func nodeBindCmd() *cobra.Command { ...@@ -559,7 +569,7 @@ func nodeBindCmd() *cobra.Command {
} }
func addNodeBindFlags(cmd *cobra.Command) { func addNodeBindFlags(cmd *cobra.Command) {
cmd.Flags().Uint32P("action", "a", 1, "action bind:1 or unbind:2") cmd.Flags().Uint32P("action", "a", 1, "action bind:1, unbind:2, modify:3")
_ = cmd.MarkFlagRequired("action") _ = cmd.MarkFlagRequired("action")
cmd.Flags().Uint64P("coins", "c", 0, "bind coins, unbind not needed") cmd.Flags().Uint64P("coins", "c", 0, "bind coins, unbind not needed")
...@@ -646,17 +656,20 @@ func getMinerBindListCmd() *cobra.Command { ...@@ -646,17 +656,20 @@ func getMinerBindListCmd() *cobra.Command {
func addNodeBindCmdFlags(cmd *cobra.Command) { func addNodeBindCmdFlags(cmd *cobra.Command) {
cmd.Flags().StringP("miner", "m", "", "bind miner addr") cmd.Flags().StringP("miner", "m", "", "bind miner addr")
cmd.MarkFlagRequired("miner") cmd.MarkFlagRequired("miner")
cmd.Flags().BoolP("unbind", "u", false, "query with unbinded miner,default false")
} }
func nodeBindInfo(cmd *cobra.Command, args []string) { func nodeBindInfo(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
miner, _ := cmd.Flags().GetString("miner") miner, _ := cmd.Flags().GetString("miner")
unbind, _ := cmd.Flags().GetBool("unbind")
var params rpctypes.Query4Jrpc var params rpctypes.Query4Jrpc
params.Execer = pt.ParaX params.Execer = pt.ParaX
params.FuncName = "GetMinerBindNodeList" params.FuncName = "GetMinerBindNodeList"
params.Payload = types.MustPBToJSON(&types.ReqString{Data: miner}) params.Payload = types.MustPBToJSON(&pt.ParaNodeMinerListReq{Miner: miner, WithUnBind: unbind})
var res types.ReplyStrings var res types.ReplyStrings
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res) ctx := jsonclient.NewRPCCtx(rpcLaddr, "Chain33.Query", params, &res)
......
...@@ -265,7 +265,7 @@ func (a *action) addNodeBindMinerCount(node, miner string) (*types.Receipt, int6 ...@@ -265,7 +265,7 @@ func (a *action) addNodeBindMinerCount(node, miner string) (*types.Receipt, int6
return nil, 0, err return nil, 0, err
} }
//new index --> target //new index --> miner
rIdx := makeNodeBindMinerIndexReceipt(node, miner, bindInfo.BindTotalCount) rIdx := makeNodeBindMinerIndexReceipt(node, miner, bindInfo.BindTotalCount)
mergeReceipt(receipt, rIdx) mergeReceipt(receipt, rIdx)
......
...@@ -639,17 +639,30 @@ func (p *Paracross) Query_GetNodeBindMinerList(in *pt.ParaNodeMinerListReq) (typ ...@@ -639,17 +639,30 @@ func (p *Paracross) Query_GetNodeBindMinerList(in *pt.ParaNodeMinerListReq) (typ
} }
// Query_GetMinerBindNodeList query get miner bind super node list // Query_GetMinerBindNodeList query get miner bind super node list
func (p *Paracross) Query_GetMinerBindNodeList(in *types.ReqString) (types.Message, error) { func (p *Paracross) Query_GetMinerBindNodeList(in *pt.ParaNodeMinerListReq) (types.Message, error) {
if in == nil || len(in.Data) <= 0 { if in == nil || len(in.Miner) <= 0 {
return nil, types.ErrInvalidParam return nil, types.ErrInvalidParam
} }
db := p.GetStateDB() db := p.GetStateDB()
nodeInfo, err := getMinerBindNodeList(db, in.Data) nodeInfo, err := getMinerBindNodeList(db, in.Miner)
if err != nil { if err != nil {
return nil, errors.Wrapf(err, "getBindNodeCount miner=%s", in.Data) return nil, errors.Wrapf(err, "getBindNodeCount miner=%s", in.Miner)
} }
var nodeAddrs types.ReplyStrings var nodeAddrs types.ReplyStrings
nodeAddrs.Datas = append(nodeAddrs.Datas, nodeInfo.Nodes...) if in.WithUnBind {
nodeAddrs.Datas = append(nodeAddrs.Datas, nodeInfo.Nodes...)
return &nodeAddrs, nil
}
for _, n := range nodeInfo.Nodes {
minerInfo, err := getBindAddrInfo(db, in.Node, in.Miner)
if err != nil {
return nil, err
}
if minerInfo.BindStatus == opBind {
nodeAddrs.Datas = append(nodeAddrs.Datas, n)
}
}
return &nodeAddrs, nil return &nodeAddrs, nil
} }
...@@ -58,12 +58,12 @@ func (suite *RewardTestSuite) TestRewardBindAddr() { ...@@ -58,12 +58,12 @@ func (suite *RewardTestSuite) TestRewardBindAddr() {
addr := "1E5saiXVb9mW8wcWUUZjsHJPZs5GmdzuSY" addr := "1E5saiXVb9mW8wcWUUZjsHJPZs5GmdzuSY"
key := calcParaBindMinerAddr(node, addr) key := calcParaBindMinerAddr(node, addr)
newer := &pt.ParaBindMinerInfo{ newer := &pt.ParaBindMinerInfo{
Addr: addr, Addr: addr,
BindStatus: opBind, BindStatus: opBind,
BindCoins: 100, BindCoins: 100,
BlockTime: 100, BlockTime: 100,
BlockHeight: 1, BlockHeight: 1,
TargetNode: node, ConsensusNode: node,
} }
data := types.Encode(newer) data := types.Encode(newer)
suite.stateDB.Set(key, data) suite.stateDB.Set(key, data)
...@@ -83,12 +83,9 @@ func (suite *RewardTestSuite) TestRewardBindAddr() { ...@@ -83,12 +83,9 @@ func (suite *RewardTestSuite) TestRewardBindAddr() {
key = calcParaBindMinerAddr(node, addr2) key = calcParaBindMinerAddr(node, addr2)
suite.stateDB.Set(key, data) suite.stateDB.Set(key, data)
node1 := &pt.ParaNodeBindOne{SuperNode: node, Miner: addr} var list []*pt.ParaBindMinerInfo
node2 := &pt.ParaNodeBindOne{SuperNode: node, Miner: addr2} list = append(list, newer)
list = append(list, &new2)
list := &pt.ParaNodeBindList{}
list.Miners = append(list.Miners, node1)
list.Miners = append(list.Miners, node2)
recp, change, err := suite.action.rewardBindAddr(50000005, list, 1) recp, change, err := suite.action.rewardBindAddr(50000005, list, 1)
suite.Nil(err) suite.Nil(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