forked from eoscanada/eos-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
propose.go
33 lines (30 loc) · 968 Bytes
/
propose.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package forum
import (
eos "github.com/eoscanada/eos-go"
)
// NewPropose is an action to submit a proposal for vote.
func NewPropose(proposer eos.AccountName, proposalName eos.Name, title string, proposalJSON string, expiresAt eos.JSONTime) *eos.Action {
a := &eos.Action{
Account: ForumAN,
Name: ActN("propose"),
Authorization: []eos.PermissionLevel{
{Actor: proposer, Permission: eos.PermissionName("active")},
},
ActionData: eos.NewActionData(Propose{
Proposer: proposer,
ProposalName: proposalName,
Title: title,
ProposalJSON: proposalJSON,
ExpiresAt: expiresAt,
}),
}
return a
}
// Propose represents the `eosio.forum::propose` action.
type Propose struct {
Proposer eos.AccountName `json:"proposer"`
ProposalName eos.Name `json:"proposal_name"`
Title string `json:"title"`
ProposalJSON string `json:"proposal_json"`
ExpiresAt eos.JSONTime `json:"expires_at"`
}