Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
fdef66ed
Commit
fdef66ed
authored
Feb 02, 2021
by
jiangpeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dapp/vote:add nick name for group member
parent
3fcb74f9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
53 additions
and
28 deletions
+53
-28
createtx.go
plugin/dapp/vote/commands/createtx.go
+35
-20
action.go
plugin/dapp/vote/executor/action.go
+1
-1
exec_local.go
plugin/dapp/vote/executor/exec_local.go
+4
-5
vote.proto
plugin/dapp/vote/proto/vote.proto
+1
-0
readme.md
plugin/dapp/vote/readme.md
+12
-2
vote.pb.go
plugin/dapp/vote/types/vote.pb.go
+0
-0
No files found.
plugin/dapp/vote/commands/createtx.go
View file @
fdef66ed
...
...
@@ -27,31 +27,52 @@ func createGroupFlags(cmd *cobra.Command) {
cmd
.
Flags
()
.
StringArrayP
(
"admins"
,
"a"
,
nil
,
"group admin address array, default set creator as admin"
)
cmd
.
Flags
()
.
StringArrayP
(
"members"
,
"m"
,
nil
,
"group member address array"
)
cmd
.
Flags
()
.
UintSliceP
(
"weights"
,
"w"
,
nil
,
"member vote weight array"
)
cmd
.
Flags
()
.
StringArrayP
(
"nicks"
,
"c"
,
nil
,
"group member nick name array"
)
markRequired
(
cmd
,
"name"
)
}
func
formatAddMembers
(
addrs
,
nickNames
[]
string
,
voteWeights
[]
uint
)
[]
*
vty
.
GroupMember
{
if
len
(
voteWeights
)
==
0
{
voteWeights
=
make
([]
uint
,
len
(
addrs
))
}
if
len
(
voteWeights
)
!=
len
(
voteWeights
)
{
fmt
.
Fprintf
(
os
.
Stderr
,
"member address array length should equal with vote weight array length"
)
return
nil
}
if
len
(
nickNames
)
==
0
{
nickNames
=
make
([]
string
,
len
(
addrs
))
}
if
len
(
nickNames
)
!=
len
(
addrs
)
{
fmt
.
Fprintf
(
os
.
Stderr
,
"member nick name array, add member addr array should have same length"
)
return
nil
}
members
:=
make
([]
*
vty
.
GroupMember
,
0
)
for
i
,
addr
:=
range
addrs
{
members
=
append
(
members
,
&
vty
.
GroupMember
{
Addr
:
addr
,
VoteWeight
:
uint32
(
voteWeights
[
i
]),
NickName
:
nickNames
[
i
]})
}
return
members
}
func
createGroup
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
name
,
_
:=
cmd
.
Flags
()
.
GetString
(
"name"
)
admins
,
_
:=
cmd
.
Flags
()
.
GetStringArray
(
"admins"
)
memberAddrs
,
_
:=
cmd
.
Flags
()
.
GetStringArray
(
"members"
)
weights
,
_
:=
cmd
.
Flags
()
.
GetUintSlice
(
"weights"
)
nicks
,
_
:=
cmd
.
Flags
()
.
GetStringArray
(
"nicks"
)
if
name
==
""
{
fmt
.
Fprintf
(
os
.
Stderr
,
"ErrNilGroupName"
)
return
}
if
len
(
weights
)
==
0
{
weights
=
make
([]
uint
,
len
(
memberAddrs
))
}
if
len
(
weights
)
!=
len
(
memberAddrs
)
{
fmt
.
Fprintf
(
os
.
Stderr
,
"member address array length should equal with vote weight array length"
)
return
}
members
:=
make
([]
*
vty
.
GroupMember
,
0
)
for
i
,
addr
:=
range
memberAddrs
{
members
=
append
(
members
,
&
vty
.
GroupMember
{
Addr
:
addr
,
VoteWeight
:
uint32
(
weights
[
i
])})
members
:=
formatAddMembers
(
memberAddrs
,
nicks
,
weights
)
if
members
==
nil
{
return
}
params
:=
&
vty
.
CreateGroup
{
...
...
@@ -78,6 +99,7 @@ func updateGroupFlags(cmd *cobra.Command) {
cmd
.
Flags
()
.
StringP
(
"groupID"
,
"g"
,
""
,
"group id"
)
cmd
.
Flags
()
.
StringArrayP
(
"addMembers"
,
"m"
,
nil
,
"group member address array for adding"
)
cmd
.
Flags
()
.
UintSliceP
(
"weights"
,
"w"
,
nil
,
"member vote weight array for adding"
)
cmd
.
Flags
()
.
StringArrayP
(
"nicks"
,
"c"
,
nil
,
"group member nick name array"
)
cmd
.
Flags
()
.
StringArrayP
(
"removeMembers"
,
"v"
,
nil
,
"group member address array for removing"
)
cmd
.
Flags
()
.
StringArrayP
(
"addAdmins"
,
"a"
,
nil
,
"group admin address array for adding"
)
cmd
.
Flags
()
.
StringArrayP
(
"removeAdmins"
,
"r"
,
nil
,
"group admin address array for removing"
)
...
...
@@ -89,6 +111,7 @@ func updateGroup(cmd *cobra.Command, args []string) {
groupID
,
_
:=
cmd
.
Flags
()
.
GetString
(
"groupID"
)
addAddrs
,
_
:=
cmd
.
Flags
()
.
GetStringArray
(
"addMembers"
)
weights
,
_
:=
cmd
.
Flags
()
.
GetUintSlice
(
"weights"
)
nicks
,
_
:=
cmd
.
Flags
()
.
GetStringArray
(
"nicks"
)
removeAddrs
,
_
:=
cmd
.
Flags
()
.
GetStringArray
(
"removeMembers"
)
addAdmins
,
_
:=
cmd
.
Flags
()
.
GetStringArray
(
"addAdmins"
)
removeAdmins
,
_
:=
cmd
.
Flags
()
.
GetStringArray
(
"removeAdmins"
)
...
...
@@ -97,19 +120,11 @@ func updateGroup(cmd *cobra.Command, args []string) {
fmt
.
Fprintf
(
os
.
Stderr
,
"ErrNilGroupID"
)
return
}
if
len
(
weights
)
==
0
{
weights
=
make
([]
uint
,
len
(
addAddrs
))
}
if
len
(
weights
)
!=
len
(
addAddrs
)
{
fmt
.
Fprintf
(
os
.
Stderr
,
"member address array length should equal with vote weight array length"
)
addMembers
:=
formatAddMembers
(
addAddrs
,
nicks
,
weights
)
if
addMembers
==
nil
{
return
}
addMembers
:=
make
([]
*
vty
.
GroupMember
,
0
)
for
i
,
addr
:=
range
addAddrs
{
addMembers
=
append
(
addMembers
,
&
vty
.
GroupMember
{
Addr
:
addr
,
VoteWeight
:
uint32
(
weights
[
i
])})
}
params
:=
&
vty
.
UpdateGroup
{
GroupID
:
groupID
,
RemoveMembers
:
removeAddrs
,
...
...
plugin/dapp/vote/executor/action.go
View file @
fdef66ed
...
...
@@ -108,7 +108,7 @@ func (a *action) updateGroup(update *vty.UpdateGroup) (*types.Receipt, error) {
group
.
Members
=
append
(
group
.
Members
,
member
)
}
}
group
.
MemberNum
=
uint32
(
len
(
group
.
Members
))
adminMap
:=
make
(
map
[
string
]
int
)
for
index
,
addr
:=
range
group
.
Admins
{
adminMap
[
addr
]
=
index
...
...
plugin/dapp/vote/executor/exec_local.go
View file @
fdef66ed
...
...
@@ -55,16 +55,15 @@ func (v *vote) ExecLocal_UpdateGroup(update *vty.UpdateGroup, tx *types.Transact
return
nil
,
err
}
dbSet
.
KV
=
kvs
kvs
,
err
=
v
.
addGroupMember
(
groupInfo
.
GetID
(),
update
.
AddMembers
)
kvs
,
err
=
v
.
removeGroupMember
(
groupInfo
.
GetID
(),
update
.
RemoveMembers
)
if
err
!=
nil
{
elog
.
Error
(
"execLocal UpdateGroup"
,
"txHash"
,
hex
.
EncodeToString
(
tx
.
Hash
()),
"
add
MemberErr"
,
err
)
elog
.
Error
(
"execLocal UpdateGroup"
,
"txHash"
,
hex
.
EncodeToString
(
tx
.
Hash
()),
"
remove
MemberErr"
,
err
)
return
nil
,
err
}
dbSet
.
KV
=
append
(
dbSet
.
KV
,
kvs
...
)
kvs
,
err
=
v
.
removeGroupMember
(
groupInfo
.
GetID
(),
update
.
Remove
Members
)
kvs
,
err
=
v
.
addGroupMember
(
groupInfo
.
GetID
(),
update
.
Add
Members
)
if
err
!=
nil
{
elog
.
Error
(
"execLocal UpdateGroup"
,
"txHash"
,
hex
.
EncodeToString
(
tx
.
Hash
()),
"
remove
MemberErr"
,
err
)
elog
.
Error
(
"execLocal UpdateGroup"
,
"txHash"
,
hex
.
EncodeToString
(
tx
.
Hash
()),
"
add
MemberErr"
,
err
)
return
nil
,
err
}
dbSet
.
KV
=
append
(
dbSet
.
KV
,
kvs
...
)
...
...
plugin/dapp/vote/proto/vote.proto
View file @
fdef66ed
...
...
@@ -18,6 +18,7 @@ message VoteAction {
message
GroupMember
{
string
addr
=
1
;
//用户地址
uint32
voteWeight
=
2
;
//投票权重, 不填时默认为1
string
nickName
=
3
;
//群昵称
}
//创建投票组
...
...
plugin/dapp/vote/readme.md
View file @
fdef66ed
...
...
@@ -27,6 +27,7 @@ message CreateGroup {
message
GroupMember
{
string
addr
=
1
;
//用户地址
uint32
voteWeight
=
2
;
//投票权重, 不填时默认为1
string
nickName
=
3
;
//群昵称
}
```
...
...
@@ -68,6 +69,12 @@ message UpdateGroup {
repeated
string
addAdmins
=
4
;
//增加管理员
repeated
string
removeAdmins
=
5
;
//删除管理员
}
message
GroupMember
{
string
addr
=
1
;
//用户地址
uint32
voteWeight
=
2
;
//投票权重, 不填时默认为1
string
nickName
=
3
;
//群昵称
}
```
##### 交易回执
```
proto
...
...
@@ -376,14 +383,17 @@ curl -kd '{"method":"Chain33.Query","params":[{"execer":"vote","funcName":"List
```
#### 获取投票列表(ListVote)
获取全局投票列表, 指定groupID时,则获取指定组的投票列表
-
获取全局投票列表
-
可指定groupID,获取指定组的投票列表
-
可指定投票状态进行分页查找, status 0表示不做状态区分
##### 请求结构
```
proto
//列表请求结构
message
ReqListVote
{
string
groupID
=
1
;
//指定所属组ID
ReqListItem
listReq
=
2
;
//列表请求
uint32
status
=
3
;
//指定投票状态
uint32
status
=
3
;
//指定投票状态
, 1即将开始,2正在进行,3已经结束,4已关闭
}
message
ReqListItem
{
...
...
plugin/dapp/vote/types/vote.pb.go
View file @
fdef66ed
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment