7 cmn "github.com/tendermint/tmlibs/common"
10 func WriteByteSlice(bz []byte, w io.Writer, n *int, err *error) {
11 WriteVarint(len(bz), w, n, err)
12 WriteTo(bz, w, n, err)
15 func ReadByteSlice(r io.Reader, lmt int, n *int, err *error) []byte {
16 length := ReadVarint(r, n, err)
21 *err = ErrBinaryReadInvalidLength
25 // check that length is less than the maximum slice size
26 if length > math.MaxInt32 {
27 *err = ErrBinaryReadOverflow
30 if lmt != 0 && lmt < cmn.MaxInt(length, *n+length) {
31 *err = ErrBinaryReadOverflow
36 return nil // zero value for []byte
39 buf := make([]byte, length)
40 ReadFull(buf, r, n, err)