forked from TrueCloudLab/neoneo-go
smartcontract: implement json.Unmarshaler for ParamType
This commit is contained in:
parent
ea30122a09
commit
eacea8bff5
1 changed files with 17 additions and 0 deletions
|
@ -2,6 +2,7 @@ package smartcontract
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -78,6 +79,22 @@ func (pt ParamType) MarshalJSON() ([]byte, error) {
|
||||||
return []byte(`"` + pt.String() + `"`), nil
|
return []byte(`"` + pt.String() + `"`), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UnmarshalJSON implements json.Unmarshaler interface.
|
||||||
|
func (pt *ParamType) UnmarshalJSON(data []byte) error {
|
||||||
|
var s string
|
||||||
|
if err := json.Unmarshal(data, &s); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
p, err := parseParamType(s)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
*pt = p
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// EncodeBinary implements io.Serializable interface.
|
// EncodeBinary implements io.Serializable interface.
|
||||||
func (pt ParamType) EncodeBinary(w *io.BinWriter) {
|
func (pt ParamType) EncodeBinary(w *io.BinWriter) {
|
||||||
w.WriteB(byte(pt))
|
w.WriteB(byte(pt))
|
||||||
|
|
Loading…
Reference in a new issue