Merge pull request #3182 from filecoin-project/anorth/versionuint

Change Message.Version to be a uint64
This commit is contained in:
Łukasz Magiera 2020-08-22 21:29:49 +02:00 committed by GitHub
commit bf579a86a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 24 additions and 40 deletions

View File

@ -6,8 +6,8 @@ import (
"fmt" "fmt"
"io" "io"
"github.com/filecoin-project/specs-actors/actors/abi" abi "github.com/filecoin-project/specs-actors/actors/abi"
"github.com/filecoin-project/specs-actors/actors/builtin/paych" paych "github.com/filecoin-project/specs-actors/actors/builtin/paych"
cbg "github.com/whyrusleeping/cbor-gen" cbg "github.com/whyrusleeping/cbor-gen"
xerrors "golang.org/x/xerrors" xerrors "golang.org/x/xerrors"
) )

View File

@ -6,8 +6,8 @@ import (
"fmt" "fmt"
"io" "io"
"github.com/filecoin-project/lotus/chain/types" types "github.com/filecoin-project/lotus/chain/types"
"github.com/ipfs/go-cid" cid "github.com/ipfs/go-cid"
cbg "github.com/whyrusleeping/cbor-gen" cbg "github.com/whyrusleeping/cbor-gen"
xerrors "golang.org/x/xerrors" xerrors "golang.org/x/xerrors"
) )

View File

@ -6,10 +6,10 @@ import (
"fmt" "fmt"
"io" "io"
"github.com/filecoin-project/specs-actors/actors/abi" abi "github.com/filecoin-project/specs-actors/actors/abi"
"github.com/filecoin-project/specs-actors/actors/crypto" crypto "github.com/filecoin-project/specs-actors/actors/crypto"
"github.com/filecoin-project/specs-actors/actors/runtime/exitcode" exitcode "github.com/filecoin-project/specs-actors/actors/runtime/exitcode"
"github.com/ipfs/go-cid" cid "github.com/ipfs/go-cid"
cbg "github.com/whyrusleeping/cbor-gen" cbg "github.com/whyrusleeping/cbor-gen"
xerrors "golang.org/x/xerrors" xerrors "golang.org/x/xerrors"
) )
@ -637,15 +637,10 @@ func (t *Message) MarshalCBOR(w io.Writer) error {
scratch := make([]byte, 9) scratch := make([]byte, 9)
// t.Version (int64) (int64) // t.Version (uint64) (uint64)
if t.Version >= 0 {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajUnsignedInt, uint64(t.Version)); err != nil { if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajUnsignedInt, uint64(t.Version)); err != nil {
return err return err
}
} else {
if err := cbg.WriteMajorTypeHeaderBuf(scratch, w, cbg.MajNegativeInt, uint64(-t.Version-1)); err != nil {
return err
}
} }
// t.To (address.Address) (struct) // t.To (address.Address) (struct)
@ -729,30 +724,19 @@ func (t *Message) UnmarshalCBOR(r io.Reader) error {
return fmt.Errorf("cbor input had wrong number of fields") return fmt.Errorf("cbor input had wrong number of fields")
} }
// t.Version (int64) (int64) // t.Version (uint64) (uint64)
{ {
maj, extra, err := cbg.CborReadHeaderBuf(br, scratch)
var extraI int64 maj, extra, err = cbg.CborReadHeaderBuf(br, scratch)
if err != nil { if err != nil {
return err return err
} }
switch maj { if maj != cbg.MajUnsignedInt {
case cbg.MajUnsignedInt: return fmt.Errorf("wrong type for uint64 field")
extraI = int64(extra)
if extraI < 0 {
return fmt.Errorf("int64 positive overflow")
}
case cbg.MajNegativeInt:
extraI = int64(extra)
if extraI < 0 {
return fmt.Errorf("int64 negative oveflow")
}
extraI = -1 - extraI
default:
return fmt.Errorf("wrong type for int64 field: %d", maj)
} }
t.Version = uint64(extra)
t.Version = int64(extraI)
} }
// t.To (address.Address) (struct) // t.To (address.Address) (struct)

View File

@ -25,7 +25,7 @@ type ChainMsg interface {
} }
type Message struct { type Message struct {
Version int64 Version uint64
To address.Address To address.Address
From address.Address From address.Address

View File

@ -6,8 +6,8 @@ import (
"fmt" "fmt"
"io" "io"
"github.com/filecoin-project/specs-actors/actors/abi" abi "github.com/filecoin-project/specs-actors/actors/abi"
"github.com/ipfs/go-cid" cid "github.com/ipfs/go-cid"
cbg "github.com/whyrusleeping/cbor-gen" cbg "github.com/whyrusleeping/cbor-gen"
xerrors "golang.org/x/xerrors" xerrors "golang.org/x/xerrors"
) )

View File

@ -6,8 +6,8 @@ import (
"fmt" "fmt"
"io" "io"
"github.com/filecoin-project/go-address" address "github.com/filecoin-project/go-address"
"github.com/filecoin-project/specs-actors/actors/builtin/paych" paych "github.com/filecoin-project/specs-actors/actors/builtin/paych"
cbg "github.com/whyrusleeping/cbor-gen" cbg "github.com/whyrusleeping/cbor-gen"
xerrors "golang.org/x/xerrors" xerrors "golang.org/x/xerrors"
) )