forked from gkany/cocos-go
/
accountextensions.go
148 lines (120 loc) · 3.69 KB
/
accountextensions.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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
package types
//go:generate ffjson $GOFILE
import (
"github.com/denkhaus/bitshares/util"
"github.com/juju/errors"
)
type NullExtension struct{}
func (p NullExtension) Marshal(enc *util.TypeEncoder) error {
if err := enc.Encode(uint8(AccountCreateExtensionsNullExt)); err != nil {
return errors.Annotate(err, "encode AccountCreateExtensionsNullExt")
}
return nil
}
type BuybackOptions struct {
AssetToBuy GrapheneID `json:"asset_to_buy"`
AssetToBuyIssuer GrapheneID `json:"asset_to_buy_issuer"`
Markets GrapheneIDs `json:"markets"`
}
func (p BuybackOptions) Marshal(enc *util.TypeEncoder) error {
if err := enc.Encode(uint8(AccountCreateExtensionsBuyback)); err != nil {
return errors.Annotate(err, "encode AccountCreateExtensionsBuyback")
}
if err := enc.Encode(p.AssetToBuy); err != nil {
return errors.Annotate(err, "encode AssetToBuy")
}
if err := enc.Encode(p.AssetToBuyIssuer); err != nil {
return errors.Annotate(err, "encode AssetToBuyIssuer")
}
if err := enc.Encode(p.Markets); err != nil {
return errors.Annotate(err, "encode Markets")
}
return nil
}
type AccountCreateExtensions struct {
NullExt *NullExtension `json:"null_ext,omitempty"`
OwnerSpecialAuthority *OwnerSpecialAuthority `json:"owner_special_authority,omitempty"`
ActiveSpecialAuthority *ActiveSpecialAuthority `json:"active_special_authority,omitempty"`
BuybackOptions *BuybackOptions `json:"buyback_options,omitempty"`
}
func (p AccountCreateExtensions) Length() int {
fields := 0
if p.NullExt != nil {
fields++
}
if p.OwnerSpecialAuthority != nil {
fields++
}
if p.ActiveSpecialAuthority != nil {
fields++
}
if p.BuybackOptions != nil {
fields++
}
return fields
}
func (p AccountCreateExtensions) Marshal(enc *util.TypeEncoder) error {
if err := enc.EncodeUVarint(uint64(p.Length())); err != nil {
return errors.Annotate(err, "encode length")
}
if p.NullExt != nil {
if err := enc.Encode(p.NullExt); err != nil {
return errors.Annotate(err, "encode NullExt")
}
}
if p.OwnerSpecialAuthority != nil {
if err := enc.Encode(p.OwnerSpecialAuthority); err != nil {
return errors.Annotate(err, "encode OwnerSpecialAuthority")
}
}
if p.ActiveSpecialAuthority != nil {
if err := enc.Encode(p.ActiveSpecialAuthority); err != nil {
return errors.Annotate(err, "encode ActiveSpecialAuthority")
}
}
if p.BuybackOptions != nil {
if err := enc.Encode(p.BuybackOptions); err != nil {
return errors.Annotate(err, "encode BuybackOptions")
}
}
return nil
}
type AccountUpdateExtensions struct {
NullExt *NullExtension `json:"null_ext,omitempty"`
OwnerSpecialAuthority *OwnerSpecialAuthority `json:"owner_special_authority,omitempty"`
ActiveSpecialAuthority *ActiveSpecialAuthority `json:"active_special_authority,omitempty"`
}
func (p AccountUpdateExtensions) Length() int {
fields := 0
if p.NullExt != nil {
fields++
}
if p.OwnerSpecialAuthority != nil {
fields++
}
if p.ActiveSpecialAuthority != nil {
fields++
}
return fields
}
func (p AccountUpdateExtensions) Marshal(enc *util.TypeEncoder) error {
if err := enc.EncodeUVarint(uint64(p.Length())); err != nil {
return errors.Annotate(err, "encode length")
}
if p.NullExt != nil {
if err := enc.Encode(p.NullExt); err != nil {
return errors.Annotate(err, "encode NullExt")
}
}
if p.OwnerSpecialAuthority != nil {
if err := enc.Encode(p.OwnerSpecialAuthority); err != nil {
return errors.Annotate(err, "encode OwnerSpecialAuthority")
}
}
if p.ActiveSpecialAuthority != nil {
if err := enc.Encode(p.ActiveSpecialAuthority); err != nil {
return errors.Annotate(err, "encode ActiveSpecialAuthority")
}
}
return nil
}