Commit 2c015735 authored by jiangpeng's avatar jiangpeng

dapp/vote:check group admin addr in checktx

parent fdef66ed
This diff is collapsed.
......@@ -3,6 +3,8 @@ package executor
import (
"encoding/hex"
"github.com/33cn/chain33/system/dapp"
"github.com/33cn/chain33/types"
vty "github.com/33cn/plugin/plugin/dapp/vote/types"
)
......@@ -84,7 +86,7 @@ func (v *vote) checkUpdateGroup(update *vty.UpdateGroup, tx *types.Transaction,
}
//防止将管理员全部删除
if len(update.RemoveAdmins) >= len(update.AddAdmins)+len(groupInfo.GetAdmins()) {
if len(update.RemoveAdmins) >= len(groupInfo.GetAdmins()) && len(update.AddAdmins) == 0 {
return errAddrPermissionDenied
}
......@@ -105,6 +107,14 @@ func (v *vote) checkUpdateGroup(update *vty.UpdateGroup, tx *types.Transaction,
}
}
//保证管理员地址合法性
for _, addr := range update.GetAddAdmins() {
if err := dapp.CheckAddress(v.GetAPI().GetConfig(), addr, v.GetHeight()); err != nil {
elog.Error("checkUpdateGroup", "addr", addr, "CheckAddress err", err)
return types.ErrInvalidAddress
}
}
return nil
}
......@@ -166,7 +176,7 @@ func (v *vote) checkCommitVote(commit *vty.CommitVote, tx *types.Transaction, in
// check if already vote
for _, info := range voteInfo.GetCommitInfos() {
if action.fromAddr == info.Addr {
return errAlreadyVoted
return errAddrAlreadyVoted
}
}
......
......@@ -18,7 +18,7 @@ var (
errInvalidVoteID = errors.New("errInvalidVoteID")
errInvalidGroupID = errors.New("errInvalidGroupID")
errInvalidOptionIndex = errors.New("errInvalidOptionIndex")
errAlreadyVoted = errors.New("errAlreadyVoted")
errAddrAlreadyVoted = errors.New("errAddrAlreadyVoted")
errInvalidGroupMember = errors.New("errInvalidGroupMember")
errVoteAlreadyFinished = errors.New("errVoteAlreadyFinished")
errVoteAlreadyClosed = errors.New("errVoteAlreadyClosed")
......
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