package payload import ( "github.com/nspcc-dev/neo-go/pkg/core/state" "github.com/nspcc-dev/neo-go/pkg/io" ) // MaxStateRootsAllowed is a maxumum amount of state roots // which can be sent in a single payload. const MaxStateRootsAllowed = 2000 // StateRoots contains multiple StateRoots. type StateRoots struct { Roots []state.MPTRoot } // GetStateRoots represents request for state roots. type GetStateRoots struct { Start uint32 Count uint32 } // EncodeBinary implements io.Serializable. func (s *StateRoots) EncodeBinary(w *io.BinWriter) { w.WriteArray(s.Roots) } // DecodeBinary implements io.Serializable. func (s *StateRoots) DecodeBinary(r *io.BinReader) { r.ReadArray(&s.Roots, MaxStateRootsAllowed) } // DecodeBinary implements io.Serializable. func (g *GetStateRoots) DecodeBinary(r *io.BinReader) { g.Start = r.ReadU32LE() g.Count = r.ReadU32LE() } // EncodeBinary implements io.Serializable. func (g *GetStateRoots) EncodeBinary(w *io.BinWriter) { w.WriteU32LE(g.Start) w.WriteU32LE(g.Count) }