core: move transaction Attribute value to a designated interface

Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
This commit is contained in:
Ekaterina Pavlova 2024-04-26 21:35:57 +05:30
parent 198af7f3ae
commit df2a56908b

View file

@ -8,17 +8,20 @@ import (
"github.com/nspcc-dev/neo-go/pkg/io" "github.com/nspcc-dev/neo-go/pkg/io"
) )
// Attribute represents a Transaction attribute. // AttrValue represents a Transaction Attribute value.
type Attribute struct { type AttrValue interface {
Type AttrType
Value interface {
io.Serializable io.Serializable
// toJSONMap is used for embedded json struct marshalling. // toJSONMap is used for embedded json struct marshalling.
// Anonymous interface fields are not considered anonymous by // Anonymous interface fields are not considered anonymous by
// json lib and marshaling Value together with type makes code // json lib and marshaling Value together with type makes code
// harder to follow. // harder to follow.
toJSONMap(map[string]any) toJSONMap(map[string]any)
} }
// Attribute represents a Transaction attribute.
type Attribute struct {
Type AttrType
Value AttrValue
} }
// attrJSON is used for JSON I/O of Attribute. // attrJSON is used for JSON I/O of Attribute.