OSDN Git Service

rename (#465)
[bytom/vapor.git] / protocol / bc / types / block.go
index dbb301a..654da54 100644 (file)
@@ -5,9 +5,9 @@ import (
        "fmt"
        "io"
 
-       "github.com/vapor/encoding/blockchain"
-       "github.com/vapor/encoding/bufpool"
-       "github.com/vapor/errors"
+       "github.com/bytom/vapor/encoding/blockchain"
+       "github.com/bytom/vapor/encoding/bufpool"
+       "github.com/bytom/vapor/errors"
 )
 
 // serflag variables, start with 1
@@ -25,13 +25,15 @@ type Block struct {
        Transactions []*Tx
 }
 
-// MarshalText fulfills the json.Marshaler interface. This guarantees that
-// blocks will get deserialized correctly when being parsed from HTTP requests.
-func (b *Block) MarshalText() ([]byte, error) {
+func (b *Block) marshalText(serflags uint8) ([]byte, error) {
        buf := bufpool.Get()
        defer bufpool.Put(buf)
 
-       if _, err := b.WriteTo(buf); err != nil {
+       ew := errors.NewWriter(buf)
+       if err := b.writeTo(ew, serflags); err != nil {
+               return nil, err
+       }
+       if err := ew.Err(); err != nil {
                return nil, err
        }
 
@@ -40,6 +42,22 @@ func (b *Block) MarshalText() ([]byte, error) {
        return enc, nil
 }
 
+// MarshalText fulfills the json.Marshaler interface. This guarantees that
+// blocks will get deserialized correctly when being parsed from HTTP requests.
+func (b *Block) MarshalText() ([]byte, error) {
+       return b.marshalText(SerBlockFull)
+}
+
+// MarshalTextForBlockHeader fulfills the json.Marshaler interface.
+func (b *Block) MarshalTextForBlockHeader() ([]byte, error) {
+       return b.marshalText(SerBlockHeader)
+}
+
+// MarshalTextForTransactions fulfills the json.Marshaler interface.
+func (b *Block) MarshalTextForTransactions() ([]byte, error) {
+       return b.marshalText(SerBlockTransactions)
+}
+
 // UnmarshalText fulfills the encoding.TextUnmarshaler interface.
 func (b *Block) UnmarshalText(text []byte) error {
        decoded := make([]byte, hex.DecodedLen(len(text)))
@@ -59,12 +77,12 @@ func (b *Block) UnmarshalText(text []byte) error {
 }
 
 func (b *Block) readFrom(r *blockchain.Reader) error {
-       serflags, err := b.BlockHeader.readFrom(r)
+       serflag, err := b.BlockHeader.readFrom(r)
        if err != nil {
                return err
        }
 
-       if serflags == SerBlockHeader {
+       if serflag == SerBlockHeader {
                return nil
        }
 
@@ -84,7 +102,6 @@ func (b *Block) readFrom(r *blockchain.Reader) error {
        return nil
 }
 
-// WriteTo will write block to input io.Writer
 func (b *Block) WriteTo(w io.Writer) (int64, error) {
        ew := errors.NewWriter(w)
        if err := b.writeTo(ew, SerBlockFull); err != nil {