forked from denkhaus/go-bitshares
/
callorderupdateextensions.go
48 lines (37 loc) · 1.07 KB
/
callorderupdateextensions.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
package types
import (
"github.com/bitcard/go-bitshares/util"
"github.com/juju/errors"
)
//go:generate ffjson $GOFILE
type TargetCollRatio UInt16
func (p TargetCollRatio) Marshal(enc *util.TypeEncoder) error {
if err := enc.Encode(int8(CallOrderUpdateExtensionsTypeTargetRatio)); err != nil {
return errors.Annotate(err, "encode type")
}
if err := enc.Encode(UInt16(p)); err != nil {
return errors.Annotate(err, "encode value")
}
return nil
}
type CallOrderUpdateExtensions struct {
TargetCollateralRatio *TargetCollRatio `json:"target_collateral_ratio,omitempty"`
}
func (p CallOrderUpdateExtensions) Length() int {
fields := 0
if p.TargetCollateralRatio != nil {
fields++
}
return fields
}
func (p CallOrderUpdateExtensions) Marshal(enc *util.TypeEncoder) error {
if err := enc.EncodeUVarint(uint64(p.Length())); err != nil {
return errors.Annotate(err, "encode length")
}
if p.TargetCollateralRatio != nil {
if err := enc.Encode(p.TargetCollateralRatio); err != nil {
return errors.Annotate(err, "encode TargetCollateralRatio")
}
}
return nil
}