parent
2d94a1e337
commit
01e2f32e47
2 changed files with 0 additions and 108 deletions
|
@ -1,61 +0,0 @@
|
|||
package payload
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"github.com/CityOfZion/neo-go/pkg/wire/command"
|
||||
"github.com/CityOfZion/neo-go/pkg/wire/util"
|
||||
)
|
||||
|
||||
//GetHeadersMessage represents a GetHeaders message on the neo-network
|
||||
type GetHeadersMessage struct {
|
||||
cmd command.Type
|
||||
hashStart []util.Uint256
|
||||
hashStop util.Uint256
|
||||
}
|
||||
|
||||
// NewGetHeadersMessage returns a NewGetHeaders object
|
||||
// Start contains the list of all headers you want to fetch
|
||||
// End contains the list of the highest header hash you would like to fetch
|
||||
func NewGetHeadersMessage(start []util.Uint256, stop util.Uint256) (*GetHeadersMessage, error) {
|
||||
getHeaders := &GetHeadersMessage{command.GetHeaders, start, stop}
|
||||
|
||||
return getHeaders, nil
|
||||
|
||||
}
|
||||
|
||||
func newAbstractGetHeaders(start []util.Uint256, stop util.Uint256, cmd command.Type) (*GetHeadersMessage, error) {
|
||||
getHeaders, err := NewGetHeadersMessage(start, stop)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
getHeaders.cmd = cmd
|
||||
return getHeaders, nil
|
||||
}
|
||||
|
||||
// DecodePayload Implements Messager interface
|
||||
func (v *GetHeadersMessage) DecodePayload(r io.Reader) error {
|
||||
|
||||
br := util.BinReader{R: r}
|
||||
lenStart := br.VarUint()
|
||||
v.hashStart = make([]util.Uint256, lenStart)
|
||||
br.Read(&v.hashStart)
|
||||
br.Read(&v.hashStop)
|
||||
|
||||
return br.Err
|
||||
}
|
||||
|
||||
// EncodePayload Implements messager interface
|
||||
func (v *GetHeadersMessage) EncodePayload(w io.Writer) error {
|
||||
bw := &util.BinWriter{W: w}
|
||||
bw.VarUint(uint64(len(v.hashStart)))
|
||||
bw.Write(v.hashStart)
|
||||
bw.Write(v.hashStop)
|
||||
return bw.Err
|
||||
}
|
||||
|
||||
// Command Implements messager interface
|
||||
func (v *GetHeadersMessage) Command() command.Type {
|
||||
return v.cmd
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
package payload
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/sha256"
|
||||
"testing"
|
||||
|
||||
"github.com/CityOfZion/neo-go/pkg/wire/util/Checksum"
|
||||
|
||||
"github.com/CityOfZion/neo-go/pkg/wire/util"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
// Test taken from neo-go v1
|
||||
func TestGetHeadersEncodeDecode(t *testing.T) {
|
||||
|
||||
var (
|
||||
start = []util.Uint256{
|
||||
sha256.Sum256([]byte("a")),
|
||||
sha256.Sum256([]byte("b")),
|
||||
sha256.Sum256([]byte("c")),
|
||||
sha256.Sum256([]byte("d")),
|
||||
}
|
||||
stop = sha256.Sum256([]byte("e"))
|
||||
)
|
||||
msgGetHeaders, err := NewGetHeadersMessage(start, stop)
|
||||
assert.Equal(t, nil, err)
|
||||
|
||||
buf := new(bytes.Buffer)
|
||||
|
||||
err = msgGetHeaders.EncodePayload(buf)
|
||||
assert.Equal(t, nil, err)
|
||||
expected := checksum.FromBuf(buf)
|
||||
|
||||
msgGetHeadersDec, err := NewGetHeadersMessage([]util.Uint256{}, util.Uint256{})
|
||||
assert.Equal(t, nil, err)
|
||||
|
||||
r := bytes.NewReader(buf.Bytes())
|
||||
err = msgGetHeadersDec.DecodePayload(r)
|
||||
assert.Equal(t, nil, err)
|
||||
|
||||
buf = new(bytes.Buffer)
|
||||
err = msgGetHeadersDec.EncodePayload(buf)
|
||||
have := checksum.FromBuf(buf)
|
||||
|
||||
assert.Equal(t, expected, have)
|
||||
}
|
Loading…
Reference in a new issue