diff --git a/chain/actors/actor_init.go b/chain/actors/actor_init.go index dddcb63cd..9df552554 100644 --- a/chain/actors/actor_init.go +++ b/chain/actors/actor_init.go @@ -183,6 +183,8 @@ func (ias *InitActorState) AddActor(cst *hamt.CborIpldStore, addr address.Addres nid := ias.NextID ias.NextID++ + fmt.Println("ADD ACTOR: ", addr.String()) + amap, err := hamt.LoadNode(context.TODO(), cst, ias.AddressMap) if err != nil { return address.Undef, err diff --git a/chain/actors/actor_multisig_test.go b/chain/actors/actor_multisig_test.go index b66a660a5..3fe5a349b 100644 --- a/chain/actors/actor_multisig_test.go +++ b/chain/actors/actor_multisig_test.go @@ -5,6 +5,7 @@ import ( cbor "github.com/ipfs/go-ipld-cbor" "github.com/stretchr/testify/assert" + cbg "github.com/whyrusleeping/cbor-gen" "github.com/filecoin-project/go-lotus/chain/actors" "github.com/filecoin-project/go-lotus/chain/address" @@ -23,7 +24,7 @@ func TestMultiSigCreate(t *testing.T) { h := NewHarness(t, opts...) ret, _ := h.CreateActor(t, creatorAddr, actors.MultisigActorCodeCid, - actors.MultiSigConstructorParams{ + &actors.MultiSigConstructorParams{ Signers: []address.Address{creatorAddr, sig1Addr, sig2Addr}, Required: 2, }) @@ -49,8 +50,8 @@ func TestMultiSigOps(t *testing.T) { HarnessAddr(&sig2Addr, 100000), HarnessAddr(&outsideAddr, 100000), HarnessActor(&multSigAddr, &creatorAddr, actors.MultisigActorCodeCid, - func() interface{} { - return actors.MultiSigConstructorParams{ + func() cbg.CBORMarshaler { + return &actors.MultiSigConstructorParams{ Signers: []address.Address{creatorAddr, sig1Addr, sig2Addr}, Required: 2, } @@ -71,8 +72,7 @@ func TestMultiSigOps(t *testing.T) { // Transfer funds outside of multsig const sendVal = 1000 ret, _ := h.Invoke(t, creatorAddr, multSigAddr, actors.MultiSigMethods.Propose, - - actors.MultiSigProposeParams{ + &actors.MultiSigProposeParams{ To: outsideAddr, Value: types.NewInt(sendVal), }) @@ -82,12 +82,12 @@ func TestMultiSigOps(t *testing.T) { assert.NoError(t, err, "decoding txid") ret, _ = h.Invoke(t, outsideAddr, multSigAddr, actors.MultiSigMethods.Approve, - txIDParam) + &txIDParam) assert.Equal(t, uint8(1), ret.ExitCode, "outsideAddr should not approve") h.AssertBalanceChange(t, multSigAddr, 0) ret2, _ := h.Invoke(t, sig1Addr, multSigAddr, actors.MultiSigMethods.Approve, - txIDParam) + &txIDParam) ApplyOK(t, ret2) h.AssertBalanceChange(t, outsideAddr, sendVal) diff --git a/chain/actors/actor_paych.go b/chain/actors/actor_paych.go index 107cf9efc..3d16d5eea 100644 --- a/chain/actors/actor_paych.go +++ b/chain/actors/actor_paych.go @@ -113,6 +113,7 @@ func (pca PaymentChannelActor) UpdateChannelState(act *types.Actor, vmctx types. } if err := vmctx.VerifySignature(sv.Signature, self.From, vb); err != nil { + fmt.Printf("bad bits: %x", vb) return nil, err } @@ -120,7 +121,7 @@ func (pca PaymentChannelActor) UpdateChannelState(act *types.Actor, vmctx types. return nil, aerrors.New(2, "cannot use this voucher yet!") } - if sv.SecretPreimage != nil { + if len(sv.SecretPreimage) > 0 { if !bytes.Equal(hash(params.Secret), sv.SecretPreimage) { return nil, aerrors.New(3, "incorrect secret!") } diff --git a/chain/actors/actor_paych_test.go b/chain/actors/actor_paych_test.go index c19d44792..347cab3bd 100644 --- a/chain/actors/actor_paych_test.go +++ b/chain/actors/actor_paych_test.go @@ -2,6 +2,7 @@ package actors_test import ( "context" + "fmt" "testing" "github.com/filecoin-project/go-lotus/chain/actors" @@ -19,7 +20,7 @@ func TestPaychCreate(t *testing.T) { h := NewHarness(t, opts...) ret, _ := h.CreateActor(t, creatorAddr, actors.PaymentChannelActorCodeCid, - actors.PCAConstructorParams{ + &actors.PCAConstructorParams{ To: targetAddr, }) ApplyOK(t, ret) @@ -36,6 +37,7 @@ func signVoucher(t *testing.T, w *wallet.Wallet, addr address.Address, sv *types t.Fatal(err) } + fmt.Printf("SIGNING: %x\n", vb) sv.Signature = sig } @@ -48,7 +50,7 @@ func TestPaychUpdate(t *testing.T) { h := NewHarness(t, opts...) ret, _ := h.CreateActor(t, creatorAddr, actors.PaymentChannelActorCodeCid, - actors.PCAConstructorParams{ + &actors.PCAConstructorParams{ To: targetAddr, }) ApplyOK(t, ret) @@ -66,12 +68,12 @@ func TestPaychUpdate(t *testing.T) { } signVoucher(t, h.w, creatorAddr, sv) - ret, _ = h.Invoke(t, targetAddr, pch, actors.PCAMethods.UpdateChannelState, actors.PCAUpdateChannelStateParams{ + ret, _ = h.Invoke(t, targetAddr, pch, actors.PCAMethods.UpdateChannelState, &actors.PCAUpdateChannelStateParams{ Sv: *sv, }) ApplyOK(t, ret) - ret, _ = h.Invoke(t, targetAddr, pch, actors.PCAMethods.GetToSend, struct{}{}) + ret, _ = h.Invoke(t, targetAddr, pch, actors.PCAMethods.GetToSend, nil) ApplyOK(t, ret) bi := types.BigFromBytes(ret.Return) @@ -79,13 +81,13 @@ func TestPaychUpdate(t *testing.T) { t.Fatal("toSend amount was wrong: ", bi.String()) } - ret, _ = h.Invoke(t, targetAddr, pch, actors.PCAMethods.Close, struct{}{}) + ret, _ = h.Invoke(t, targetAddr, pch, actors.PCAMethods.Close, nil) ApplyOK(t, ret) // now we have to 'wait' for the chain to advance. h.vm.SetBlockHeight(1000) - ret, _ = h.Invoke(t, targetAddr, pch, actors.PCAMethods.Collect, struct{}{}) + ret, _ = h.Invoke(t, targetAddr, pch, actors.PCAMethods.Collect, nil) ApplyOK(t, ret) h.AssertBalanceChange(t, targetAddr, 100) diff --git a/chain/actors/actor_storagemarket_test.go b/chain/actors/actor_storagemarket_test.go index 9a59de800..974245fb6 100644 --- a/chain/actors/actor_storagemarket_test.go +++ b/chain/actors/actor_storagemarket_test.go @@ -13,11 +13,6 @@ import ( "github.com/stretchr/testify/assert" ) -func TestDumpEmpyStruct(t *testing.T) { - res, err := SerializeParams(struct{}{}) - t.Logf("res: %x, err: %+v", res, err) -} - func TestStorageMarketCreateMiner(t *testing.T) { var ownerAddr, workerAddr address.Address @@ -31,7 +26,7 @@ func TestStorageMarketCreateMiner(t *testing.T) { var minerAddr address.Address { ret, _ := h.Invoke(t, ownerAddr, StorageMarketAddress, SMAMethods.CreateStorageMiner, - CreateStorageMinerParams{ + &CreateStorageMinerParams{ Owner: ownerAddr, Worker: workerAddr, SectorSize: types.NewInt(build.SectorSize), @@ -45,7 +40,7 @@ func TestStorageMarketCreateMiner(t *testing.T) { { ret, _ := h.Invoke(t, ownerAddr, StorageMarketAddress, SMAMethods.IsMiner, - IsMinerParam{Addr: minerAddr}) + &IsMinerParam{Addr: minerAddr}) ApplyOK(t, ret) var output bool @@ -61,7 +56,7 @@ func TestStorageMarketCreateMiner(t *testing.T) { { ret, _ := h.Invoke(t, ownerAddr, StorageMarketAddress, SMAMethods.PowerLookup, - PowerLookupParams{Miner: minerAddr}) + &PowerLookupParams{Miner: minerAddr}) ApplyOK(t, ret) power := types.BigFromBytes(ret.Return) diff --git a/chain/actors/actors_test.go b/chain/actors/actors_test.go index 7fce5eef2..6611e8c51 100644 --- a/chain/actors/actors_test.go +++ b/chain/actors/actors_test.go @@ -3,9 +3,10 @@ package actors_test import ( "context" "encoding/binary" - "github.com/filecoin-project/go-lotus/build" "testing" + "github.com/filecoin-project/go-lotus/build" + . "github.com/filecoin-project/go-lotus/chain/actors" "github.com/filecoin-project/go-lotus/chain/address" "github.com/filecoin-project/go-lotus/chain/gen" @@ -14,7 +15,6 @@ import ( "github.com/filecoin-project/go-lotus/chain/vm" dstore "github.com/ipfs/go-datastore" bstore "github.com/ipfs/go-ipfs-blockstore" - cbor "github.com/ipfs/go-ipld-cbor" ) func blsaddr(n uint64) address.Address { @@ -62,7 +62,8 @@ func TestVMInvokeMethod(t *testing.T) { vm, addrs := setupVMTestEnv(t) from := addrs[0] - cenc, err := cbor.DumpObject(StorageMinerConstructorParams{}) + var err error + cenc, err := SerializeParams(&StorageMinerConstructorParams{}) if err != nil { t.Fatal(err) } @@ -71,7 +72,7 @@ func TestVMInvokeMethod(t *testing.T) { Code: StorageMinerCodeCid, Params: cenc, } - enc, err := cbor.DumpObject(execparams) + enc, err := SerializeParams(execparams) if err != nil { t.Fatal(err) } @@ -115,7 +116,8 @@ func TestStorageMarketActorCreateMiner(t *testing.T) { SectorSize: types.NewInt(build.SectorSize), PeerID: "fakepeerid", } - enc, err := cbor.DumpObject(params) + var err error + enc, err := SerializeParams(params) if err != nil { t.Fatal(err) } diff --git a/chain/actors/cbor_gen.go b/chain/actors/cbor_gen.go index 52217948f..650733487 100644 --- a/chain/actors/cbor_gen.go +++ b/chain/actors/cbor_gen.go @@ -16,6 +16,10 @@ import ( var _ = xerrors.Errorf func (t *InitActorState) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -32,14 +36,15 @@ func (t *InitActorState) MarshalCBOR(w io.Writer) error { return nil } -func (t *InitActorState) UnmarshalCBOR(br io.Reader) error { +func (t *InitActorState) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { return err } if maj != cbg.MajArray { - return fmt.Errorf("cbor input should be of type array (got %d, %d)", maj, extra) + return fmt.Errorf("cbor input should be of type array") } if extra != 2 { @@ -69,6 +74,10 @@ func (t *InitActorState) UnmarshalCBOR(br io.Reader) error { } func (t *ExecParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -88,7 +97,8 @@ func (t *ExecParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *ExecParams) UnmarshalCBOR(br io.Reader) error { +func (t *ExecParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -132,6 +142,10 @@ func (t *ExecParams) UnmarshalCBOR(br io.Reader) error { } func (t *AccountActorState) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{129}); err != nil { return err } @@ -143,7 +157,8 @@ func (t *AccountActorState) MarshalCBOR(w io.Writer) error { return nil } -func (t *AccountActorState) UnmarshalCBOR(br io.Reader) error { +func (t *AccountActorState) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -159,13 +174,21 @@ func (t *AccountActorState) UnmarshalCBOR(br io.Reader) error { // t.t.Address (address.Address) - if err := t.Address.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Address.UnmarshalCBOR(br); err != nil { + return err + } + } return nil } func (t *StorageMinerActorState) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{139}); err != nil { return err } @@ -227,7 +250,8 @@ func (t *StorageMinerActorState) MarshalCBOR(w io.Writer) error { return nil } -func (t *StorageMinerActorState) UnmarshalCBOR(br io.Reader) error { +func (t *StorageMinerActorState) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -252,13 +276,21 @@ func (t *StorageMinerActorState) UnmarshalCBOR(br io.Reader) error { } // t.t.DePledgedCollateral (types.BigInt) - if err := t.DePledgedCollateral.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.DePledgedCollateral.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.DePledgeTime (types.BigInt) - if err := t.DePledgeTime.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.DePledgeTime.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Sectors (cid.Cid) @@ -300,18 +332,30 @@ func (t *StorageMinerActorState) UnmarshalCBOR(br io.Reader) error { t.ProvingSetSize = extra // t.t.Power (types.BigInt) - if err := t.Power.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Power.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.SlashedAt (types.BigInt) - if err := t.SlashedAt.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.SlashedAt.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.OwedStorageCollateral (types.BigInt) - if err := t.OwedStorageCollateral.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.OwedStorageCollateral.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.ProvingPeriodEnd (uint64) @@ -327,6 +371,10 @@ func (t *StorageMinerActorState) UnmarshalCBOR(br io.Reader) error { } func (t *StorageMinerConstructorParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{132}); err != nil { return err } @@ -356,7 +404,8 @@ func (t *StorageMinerConstructorParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *StorageMinerConstructorParams) UnmarshalCBOR(br io.Reader) error { +func (t *StorageMinerConstructorParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -372,18 +421,30 @@ func (t *StorageMinerConstructorParams) UnmarshalCBOR(br io.Reader) error { // t.t.Owner (address.Address) - if err := t.Owner.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Owner.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Worker (address.Address) - if err := t.Worker.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Worker.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.SectorSize (types.BigInt) - if err := t.SectorSize.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.SectorSize.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.PeerID (peer.ID) @@ -399,6 +460,10 @@ func (t *StorageMinerConstructorParams) UnmarshalCBOR(br io.Reader) error { } func (t *CommitSectorParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{133}); err != nil { return err } @@ -442,7 +507,8 @@ func (t *CommitSectorParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *CommitSectorParams) UnmarshalCBOR(br io.Reader) error { +func (t *CommitSectorParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -538,6 +604,10 @@ func (t *CommitSectorParams) UnmarshalCBOR(br io.Reader) error { } func (t *MinerInfo) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{132}); err != nil { return err } @@ -567,7 +637,8 @@ func (t *MinerInfo) MarshalCBOR(w io.Writer) error { return nil } -func (t *MinerInfo) UnmarshalCBOR(br io.Reader) error { +func (t *MinerInfo) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -583,13 +654,21 @@ func (t *MinerInfo) UnmarshalCBOR(br io.Reader) error { // t.t.Owner (address.Address) - if err := t.Owner.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Owner.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Worker (address.Address) - if err := t.Worker.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Worker.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.PeerID (peer.ID) @@ -603,20 +682,29 @@ func (t *MinerInfo) UnmarshalCBOR(br io.Reader) error { } // t.t.SectorSize (types.BigInt) - if err := t.SectorSize.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.SectorSize.UnmarshalCBOR(br); err != nil { + return err + } + } return nil } func (t *SubmitPoStParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{128}); err != nil { return err } return nil } -func (t *SubmitPoStParams) UnmarshalCBOR(br io.Reader) error { +func (t *SubmitPoStParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -634,6 +722,10 @@ func (t *SubmitPoStParams) UnmarshalCBOR(br io.Reader) error { } func (t *PieceInclVoucherData) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -653,7 +745,8 @@ func (t *PieceInclVoucherData) MarshalCBOR(w io.Writer) error { return nil } -func (t *PieceInclVoucherData) UnmarshalCBOR(br io.Reader) error { +func (t *PieceInclVoucherData) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -686,13 +779,21 @@ func (t *PieceInclVoucherData) UnmarshalCBOR(br io.Reader) error { } // t.t.PieceSize (types.BigInt) - if err := t.PieceSize.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.PieceSize.UnmarshalCBOR(br); err != nil { + return err + } + } return nil } func (t *InclusionProof) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -712,7 +813,8 @@ func (t *InclusionProof) MarshalCBOR(w io.Writer) error { return nil } -func (t *InclusionProof) UnmarshalCBOR(br io.Reader) error { +func (t *InclusionProof) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -757,6 +859,10 @@ func (t *InclusionProof) UnmarshalCBOR(br io.Reader) error { } func (t *PaymentVerifyParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -779,7 +885,8 @@ func (t *PaymentVerifyParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *PaymentVerifyParams) UnmarshalCBOR(br io.Reader) error { +func (t *PaymentVerifyParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -831,6 +938,10 @@ func (t *PaymentVerifyParams) UnmarshalCBOR(br io.Reader) error { } func (t *UpdatePeerIDParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{129}); err != nil { return err } @@ -845,7 +956,8 @@ func (t *UpdatePeerIDParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *UpdatePeerIDParams) UnmarshalCBOR(br io.Reader) error { +func (t *UpdatePeerIDParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -873,6 +985,10 @@ func (t *UpdatePeerIDParams) UnmarshalCBOR(br io.Reader) error { } func (t *MultiSigActorState) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{132}); err != nil { return err } @@ -909,7 +1025,8 @@ func (t *MultiSigActorState) MarshalCBOR(w io.Writer) error { return nil } -func (t *MultiSigActorState) UnmarshalCBOR(br io.Reader) error { +func (t *MultiSigActorState) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -997,6 +1114,10 @@ func (t *MultiSigActorState) UnmarshalCBOR(br io.Reader) error { } func (t *MultiSigConstructorParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -1018,7 +1139,8 @@ func (t *MultiSigConstructorParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *MultiSigConstructorParams) UnmarshalCBOR(br io.Reader) error { +func (t *MultiSigConstructorParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1071,6 +1193,10 @@ func (t *MultiSigConstructorParams) UnmarshalCBOR(br io.Reader) error { } func (t *MultiSigProposeParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{132}); err != nil { return err } @@ -1100,7 +1226,8 @@ func (t *MultiSigProposeParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *MultiSigProposeParams) UnmarshalCBOR(br io.Reader) error { +func (t *MultiSigProposeParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1116,13 +1243,21 @@ func (t *MultiSigProposeParams) UnmarshalCBOR(br io.Reader) error { // t.t.To (address.Address) - if err := t.To.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.To.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Value (types.BigInt) - if err := t.Value.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Value.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Method (uint64) @@ -1155,6 +1290,10 @@ func (t *MultiSigProposeParams) UnmarshalCBOR(br io.Reader) error { } func (t *MultiSigTxID) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{129}); err != nil { return err } @@ -1166,7 +1305,8 @@ func (t *MultiSigTxID) MarshalCBOR(w io.Writer) error { return nil } -func (t *MultiSigTxID) UnmarshalCBOR(br io.Reader) error { +func (t *MultiSigTxID) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1194,6 +1334,10 @@ func (t *MultiSigTxID) UnmarshalCBOR(br io.Reader) error { } func (t *MultiSigSwapSignerParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -1210,7 +1354,8 @@ func (t *MultiSigSwapSignerParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *MultiSigSwapSignerParams) UnmarshalCBOR(br io.Reader) error { +func (t *MultiSigSwapSignerParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1226,18 +1371,30 @@ func (t *MultiSigSwapSignerParams) UnmarshalCBOR(br io.Reader) error { // t.t.From (address.Address) - if err := t.From.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.From.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.To (address.Address) - if err := t.To.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.To.UnmarshalCBOR(br); err != nil { + return err + } + } return nil } func (t *MultiSigChangeReqParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{129}); err != nil { return err } @@ -1249,7 +1406,8 @@ func (t *MultiSigChangeReqParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *MultiSigChangeReqParams) UnmarshalCBOR(br io.Reader) error { +func (t *MultiSigChangeReqParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1277,6 +1435,10 @@ func (t *MultiSigChangeReqParams) UnmarshalCBOR(br io.Reader) error { } func (t *MTransaction) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{138}); err != nil { return err } @@ -1341,7 +1503,8 @@ func (t *MTransaction) MarshalCBOR(w io.Writer) error { return nil } -func (t *MTransaction) UnmarshalCBOR(br io.Reader) error { +func (t *MTransaction) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1377,13 +1540,21 @@ func (t *MTransaction) UnmarshalCBOR(br io.Reader) error { t.TxID = extra // t.t.To (address.Address) - if err := t.To.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.To.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Value (types.BigInt) - if err := t.Value.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Value.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Method (uint64) @@ -1485,6 +1656,10 @@ func (t *MTransaction) UnmarshalCBOR(br io.Reader) error { } func (t *MultiSigRemoveSignerParam) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -1501,7 +1676,8 @@ func (t *MultiSigRemoveSignerParam) MarshalCBOR(w io.Writer) error { return nil } -func (t *MultiSigRemoveSignerParam) UnmarshalCBOR(br io.Reader) error { +func (t *MultiSigRemoveSignerParam) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1517,8 +1693,12 @@ func (t *MultiSigRemoveSignerParam) UnmarshalCBOR(br io.Reader) error { // t.t.Signer (address.Address) - if err := t.Signer.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Signer.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Decrease (bool) @@ -1541,6 +1721,10 @@ func (t *MultiSigRemoveSignerParam) UnmarshalCBOR(br io.Reader) error { } func (t *MultiSigAddSignerParam) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -1557,7 +1741,8 @@ func (t *MultiSigAddSignerParam) MarshalCBOR(w io.Writer) error { return nil } -func (t *MultiSigAddSignerParam) UnmarshalCBOR(br io.Reader) error { +func (t *MultiSigAddSignerParam) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1573,8 +1758,12 @@ func (t *MultiSigAddSignerParam) UnmarshalCBOR(br io.Reader) error { // t.t.Signer (address.Address) - if err := t.Signer.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Signer.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Increase (bool) @@ -1597,6 +1786,10 @@ func (t *MultiSigAddSignerParam) UnmarshalCBOR(br io.Reader) error { } func (t *PaymentChannelActorState) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{134}); err != nil { return err } @@ -1648,7 +1841,8 @@ func (t *PaymentChannelActorState) MarshalCBOR(w io.Writer) error { return nil } -func (t *PaymentChannelActorState) UnmarshalCBOR(br io.Reader) error { +func (t *PaymentChannelActorState) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1664,18 +1858,30 @@ func (t *PaymentChannelActorState) UnmarshalCBOR(br io.Reader) error { // t.t.From (address.Address) - if err := t.From.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.From.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.To (address.Address) - if err := t.To.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.To.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.ToSend (types.BigInt) - if err := t.ToSend.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.ToSend.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.ClosingAt (uint64) @@ -1727,10 +1933,24 @@ func (t *PaymentChannelActorState) UnmarshalCBOR(br io.Reader) error { var v *LaneState - v = new(LaneState) + { + + pb, err := br.PeekByte() + if err != nil { + return err + } + if pb == cbg.CborNull[0] { + var nbuf [1]byte + if _, err := br.Read(nbuf[:]); err != nil { + return err + } + } else { + v = new(LaneState) + if err := v.UnmarshalCBOR(br); err != nil { + return err + } + } - if err := v.UnmarshalCBOR(br); err != nil { - return err } t.LaneStates[k] = v @@ -1740,6 +1960,10 @@ func (t *PaymentChannelActorState) UnmarshalCBOR(br io.Reader) error { } func (t *PCAConstructorParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{129}); err != nil { return err } @@ -1751,7 +1975,8 @@ func (t *PCAConstructorParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *PCAConstructorParams) UnmarshalCBOR(br io.Reader) error { +func (t *PCAConstructorParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1767,13 +1992,21 @@ func (t *PCAConstructorParams) UnmarshalCBOR(br io.Reader) error { // t.t.To (address.Address) - if err := t.To.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.To.UnmarshalCBOR(br); err != nil { + return err + } + } return nil } func (t *LaneState) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{131}); err != nil { return err } @@ -1795,7 +2028,8 @@ func (t *LaneState) MarshalCBOR(w io.Writer) error { return nil } -func (t *LaneState) UnmarshalCBOR(br io.Reader) error { +func (t *LaneState) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1828,8 +2062,12 @@ func (t *LaneState) UnmarshalCBOR(br io.Reader) error { } // t.t.Redeemed (types.BigInt) - if err := t.Redeemed.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Redeemed.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Nonce (uint64) @@ -1845,6 +2083,10 @@ func (t *LaneState) UnmarshalCBOR(br io.Reader) error { } func (t *PCAUpdateChannelStateParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{131}); err != nil { return err } @@ -1872,7 +2114,8 @@ func (t *PCAUpdateChannelStateParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *PCAUpdateChannelStateParams) UnmarshalCBOR(br io.Reader) error { +func (t *PCAUpdateChannelStateParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1888,8 +2131,12 @@ func (t *PCAUpdateChannelStateParams) UnmarshalCBOR(br io.Reader) error { // t.t.Sv (types.SignedVoucher) - if err := t.Sv.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Sv.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Secret ([]uint8) @@ -1929,6 +2176,10 @@ func (t *PCAUpdateChannelStateParams) UnmarshalCBOR(br io.Reader) error { } func (t *PaymentInfo) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{132}); err != nil { return err } @@ -1948,7 +2199,7 @@ func (t *PaymentInfo) MarshalCBOR(w io.Writer) error { return xerrors.Errorf("failed to write cid field t.ChannelMessage: %w", err) } - // t.t.Vouchers ([]types.SignedVoucher) + // t.t.Vouchers ([]*types.SignedVoucher) if _, err := w.Write(cbg.CborEncodeMajorType(cbg.MajArray, uint64(len(t.Vouchers)))); err != nil { return err } @@ -1960,7 +2211,8 @@ func (t *PaymentInfo) MarshalCBOR(w io.Writer) error { return nil } -func (t *PaymentInfo) UnmarshalCBOR(br io.Reader) error { +func (t *PaymentInfo) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -1976,13 +2228,21 @@ func (t *PaymentInfo) UnmarshalCBOR(br io.Reader) error { // t.t.PayChActor (address.Address) - if err := t.PayChActor.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.PayChActor.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Payer (address.Address) - if err := t.Payer.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Payer.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.ChannelMessage (cid.Cid) @@ -1993,7 +2253,7 @@ func (t *PaymentInfo) UnmarshalCBOR(br io.Reader) error { } t.ChannelMessage = c } - // t.t.Vouchers ([]types.SignedVoucher) + // t.t.Vouchers ([]*types.SignedVoucher) maj, extra, err = cbg.CborReadHeader(br) if err != nil { @@ -2022,6 +2282,10 @@ func (t *PaymentInfo) UnmarshalCBOR(br io.Reader) error { } func (t *StorageMarketState) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -2038,7 +2302,8 @@ func (t *StorageMarketState) MarshalCBOR(w io.Writer) error { return nil } -func (t *StorageMarketState) UnmarshalCBOR(br io.Reader) error { +func (t *StorageMarketState) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -2063,13 +2328,21 @@ func (t *StorageMarketState) UnmarshalCBOR(br io.Reader) error { } // t.t.TotalStorage (types.BigInt) - if err := t.TotalStorage.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.TotalStorage.UnmarshalCBOR(br); err != nil { + return err + } + } return nil } func (t *CreateStorageMinerParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{132}); err != nil { return err } @@ -2099,7 +2372,8 @@ func (t *CreateStorageMinerParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *CreateStorageMinerParams) UnmarshalCBOR(br io.Reader) error { +func (t *CreateStorageMinerParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -2115,18 +2389,30 @@ func (t *CreateStorageMinerParams) UnmarshalCBOR(br io.Reader) error { // t.t.Owner (address.Address) - if err := t.Owner.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Owner.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Worker (address.Address) - if err := t.Worker.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Worker.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.SectorSize (types.BigInt) - if err := t.SectorSize.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.SectorSize.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.PeerID (peer.ID) @@ -2142,6 +2428,10 @@ func (t *CreateStorageMinerParams) UnmarshalCBOR(br io.Reader) error { } func (t *IsMinerParam) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{129}); err != nil { return err } @@ -2153,7 +2443,8 @@ func (t *IsMinerParam) MarshalCBOR(w io.Writer) error { return nil } -func (t *IsMinerParam) UnmarshalCBOR(br io.Reader) error { +func (t *IsMinerParam) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -2169,13 +2460,21 @@ func (t *IsMinerParam) UnmarshalCBOR(br io.Reader) error { // t.t.Addr (address.Address) - if err := t.Addr.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Addr.UnmarshalCBOR(br); err != nil { + return err + } + } return nil } func (t *PowerLookupParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{129}); err != nil { return err } @@ -2187,7 +2486,8 @@ func (t *PowerLookupParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *PowerLookupParams) UnmarshalCBOR(br io.Reader) error { +func (t *PowerLookupParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -2203,13 +2503,21 @@ func (t *PowerLookupParams) UnmarshalCBOR(br io.Reader) error { // t.t.Miner (address.Address) - if err := t.Miner.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Miner.UnmarshalCBOR(br); err != nil { + return err + } + } return nil } func (t *UpdateStorageParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{129}); err != nil { return err } @@ -2221,7 +2529,8 @@ func (t *UpdateStorageParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *UpdateStorageParams) UnmarshalCBOR(br io.Reader) error { +func (t *UpdateStorageParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -2237,8 +2546,12 @@ func (t *UpdateStorageParams) UnmarshalCBOR(br io.Reader) error { // t.t.Delta (types.BigInt) - if err := t.Delta.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Delta.UnmarshalCBOR(br); err != nil { + return err + } + } return nil } diff --git a/chain/actors/harness2_test.go b/chain/actors/harness2_test.go index 3c46000bc..55d766a8c 100644 --- a/chain/actors/harness2_test.go +++ b/chain/actors/harness2_test.go @@ -1,6 +1,7 @@ package actors_test import ( + "bytes" "context" "testing" @@ -9,7 +10,7 @@ import ( hamt "github.com/ipfs/go-hamt-ipld" blockstore "github.com/ipfs/go-ipfs-blockstore" bstore "github.com/ipfs/go-ipfs-blockstore" - cbor "github.com/ipfs/go-ipld-cbor" + cbg "github.com/whyrusleeping/cbor-gen" "golang.org/x/xerrors" "github.com/filecoin-project/go-lotus/chain/actors" @@ -91,7 +92,7 @@ func HarnessMiner(addr *address.Address) HarnessOpt { } } -func HarnessActor(actor *address.Address, creator *address.Address, code cid.Cid, params func() interface{}) HarnessOpt { +func HarnessActor(actor *address.Address, creator *address.Address, code cid.Cid, params func() cbg.CBORMarshaler) HarnessOpt { return func(t testing.TB, h *Harness) error { if h.Stage != HarnessPostInit { return nil @@ -205,7 +206,7 @@ func (h *Harness) Apply(t testing.TB, msg types.Message) (*vm.ApplyRet, *state.S } func (h *Harness) CreateActor(t testing.TB, from address.Address, - code cid.Cid, params interface{}) (*vm.ApplyRet, *state.StateTree) { + code cid.Cid, params cbg.CBORMarshaler) (*vm.ApplyRet, *state.StateTree) { t.Helper() return h.Apply(t, types.Message{ @@ -237,7 +238,7 @@ func (h *Harness) SendFunds(t testing.TB, from address.Address, to address.Addre } func (h *Harness) Invoke(t testing.TB, from address.Address, to address.Address, - method uint64, params interface{}) (*vm.ApplyRet, *state.StateTree) { + method uint64, params cbg.CBORMarshaler) (*vm.ApplyRet, *state.StateTree) { t.Helper() return h.Apply(t, types.Message{ To: to, @@ -297,11 +298,14 @@ func (h *Harness) AssertBalanceChange(t testing.TB, addr address.Address, amt in } } -func DumpObject(t testing.TB, obj interface{}) []byte { +func DumpObject(t testing.TB, obj cbg.CBORMarshaler) []byte { + if obj == nil { + return nil + } t.Helper() - enc, err := cbor.DumpObject(obj) - if err != nil { + b := new(bytes.Buffer) + if err := obj.MarshalCBOR(b); err != nil { t.Fatalf("dumping params: %+v", err) } - return enc + return b.Bytes() } diff --git a/chain/gen/gen.go b/chain/gen/gen.go index 1dbb1093b..ef6a856bb 100644 --- a/chain/gen/gen.go +++ b/chain/gen/gen.go @@ -67,7 +67,7 @@ func (m mybs) Get(c cid.Cid) (block.Block, error) { b, err := m.Blockstore.Get(c) if err != nil { // change to error for stacktraces, don't commit with that pls - log.Warnf("Get failed: %s %s", c, err) + //log.Warnf("Get failed: %s %s", c, err) return nil, err } @@ -119,6 +119,7 @@ func NewGenerator() (*ChainGen, error) { if err != nil { return nil, xerrors.Errorf("failed to generate receiver key: %w", err) } + fmt.Println("RECEIVER KEY: ", receievers[r].String()) } minercfg := &GenMinerCfg{ diff --git a/chain/gen/utils.go b/chain/gen/utils.go index dfe8f2d27..c45c21e1f 100644 --- a/chain/gen/utils.go +++ b/chain/gen/utils.go @@ -55,8 +55,6 @@ func SetupInitActor(bs bstore.Blockstore, addrs []address.Address) (*types.Actor return nil, err } - fmt.Println("INIT ACTOR HEAD: ", statecid) - act := &types.Actor{ Code: actors.InitActorCodeCid, Head: statecid, diff --git a/chain/state/statetree.go b/chain/state/statetree.go index 8b3df8e74..50e726bb7 100644 --- a/chain/state/statetree.go +++ b/chain/state/statetree.go @@ -61,8 +61,6 @@ func (st *StateTree) SetActor(addr address.Address, act *types.Actor) error { if act == cact { return nil } - } else { - st.actorcache[addr] = act } return st.root.Set(context.TODO(), string(addr.Bytes()), act) @@ -91,7 +89,7 @@ func (st *StateTree) GetActor(addr address.Address) (*types.Actor, error) { iaddr, err := st.lookupID(addr) if err != nil { if xerrors.Is(err, hamt.ErrNotFound) { - return nil, xerrors.Errorf("lookup failed: %w", types.ErrActorNotFound) + return nil, xerrors.Errorf("resolution lookup failed (%s): %w", addr, types.ErrActorNotFound) } return nil, xerrors.Errorf("address resolution: %w", err) } diff --git a/chain/types/cbor_gen.go b/chain/types/cbor_gen.go index 059662b7b..a6aa11da7 100644 --- a/chain/types/cbor_gen.go +++ b/chain/types/cbor_gen.go @@ -14,6 +14,10 @@ import ( var _ = xerrors.Errorf func (t *BlockHeader) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{140}); err != nil { return err } @@ -23,7 +27,7 @@ func (t *BlockHeader) MarshalCBOR(w io.Writer) error { return err } - // t.t.Tickets ([]*Ticket) + // t.t.Tickets ([]*types.Ticket) if _, err := w.Write(cbg.CborEncodeMajorType(cbg.MajArray, uint64(len(t.Tickets)))); err != nil { return err } @@ -51,7 +55,7 @@ func (t *BlockHeader) MarshalCBOR(w io.Writer) error { } } - // t.t.ParentWeight (BigInt) + // t.t.ParentWeight (types.BigInt) if err := t.ParentWeight.MarshalCBOR(w); err != nil { return err } @@ -71,7 +75,7 @@ func (t *BlockHeader) MarshalCBOR(w io.Writer) error { return xerrors.Errorf("failed to write cid field t.Messages: %w", err) } - // t.t.BLSAggregate (Signature) + // t.t.BLSAggregate (types.Signature) if err := t.BLSAggregate.MarshalCBOR(w); err != nil { return err } @@ -86,14 +90,15 @@ func (t *BlockHeader) MarshalCBOR(w io.Writer) error { return err } - // t.t.BlockSig (Signature) + // t.t.BlockSig (types.Signature) if err := t.BlockSig.MarshalCBOR(w); err != nil { return err } return nil } -func (t *BlockHeader) UnmarshalCBOR(br io.Reader) error { +func (t *BlockHeader) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -109,10 +114,14 @@ func (t *BlockHeader) UnmarshalCBOR(br io.Reader) error { // t.t.Miner (address.Address) - if err := t.Miner.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Miner.UnmarshalCBOR(br); err != nil { + return err + } + } - // t.t.Tickets ([]*Ticket) + // t.t.Tickets ([]*types.Ticket) maj, extra, err = cbg.CborReadHeader(br) if err != nil { @@ -179,10 +188,14 @@ func (t *BlockHeader) UnmarshalCBOR(br io.Reader) error { t.Parents[i] = c } - // t.t.ParentWeight (BigInt) + // t.t.ParentWeight (types.BigInt) + + { + + if err := t.ParentWeight.UnmarshalCBOR(br); err != nil { + return err + } - if err := t.ParentWeight.UnmarshalCBOR(br); err != nil { - return err } // t.t.Height (uint64) @@ -212,10 +225,14 @@ func (t *BlockHeader) UnmarshalCBOR(br io.Reader) error { } t.Messages = c } - // t.t.BLSAggregate (Signature) + // t.t.BLSAggregate (types.Signature) + + { + + if err := t.BLSAggregate.UnmarshalCBOR(br); err != nil { + return err + } - if err := t.BLSAggregate.UnmarshalCBOR(br); err != nil { - return err } // t.t.MessageReceipts (cid.Cid) @@ -236,15 +253,23 @@ func (t *BlockHeader) UnmarshalCBOR(br io.Reader) error { return fmt.Errorf("wrong type for uint64 field") } t.Timestamp = extra - // t.t.BlockSig (Signature) + // t.t.BlockSig (types.Signature) + + { + + if err := t.BlockSig.UnmarshalCBOR(br); err != nil { + return err + } - if err := t.BlockSig.UnmarshalCBOR(br); err != nil { - return err } return nil } func (t *Ticket) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{131}); err != nil { return err } @@ -275,7 +300,8 @@ func (t *Ticket) MarshalCBOR(w io.Writer) error { return nil } -func (t *Ticket) UnmarshalCBOR(br io.Reader) error { +func (t *Ticket) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -344,6 +370,10 @@ func (t *Ticket) UnmarshalCBOR(br io.Reader) error { } func (t *Message) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{136}); err != nil { return err } @@ -363,17 +393,17 @@ func (t *Message) MarshalCBOR(w io.Writer) error { return err } - // t.t.Value (BigInt) + // t.t.Value (types.BigInt) if err := t.Value.MarshalCBOR(w); err != nil { return err } - // t.t.GasPrice (BigInt) + // t.t.GasPrice (types.BigInt) if err := t.GasPrice.MarshalCBOR(w); err != nil { return err } - // t.t.GasLimit (BigInt) + // t.t.GasLimit (types.BigInt) if err := t.GasLimit.MarshalCBOR(w); err != nil { return err } @@ -393,7 +423,8 @@ func (t *Message) MarshalCBOR(w io.Writer) error { return nil } -func (t *Message) UnmarshalCBOR(br io.Reader) error { +func (t *Message) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -409,13 +440,21 @@ func (t *Message) UnmarshalCBOR(br io.Reader) error { // t.t.To (address.Address) - if err := t.To.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.To.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.From (address.Address) - if err := t.From.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.From.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Nonce (uint64) @@ -427,20 +466,32 @@ func (t *Message) UnmarshalCBOR(br io.Reader) error { return fmt.Errorf("wrong type for uint64 field") } t.Nonce = extra - // t.t.Value (BigInt) + // t.t.Value (types.BigInt) + + { + + if err := t.Value.UnmarshalCBOR(br); err != nil { + return err + } - if err := t.Value.UnmarshalCBOR(br); err != nil { - return err } - // t.t.GasPrice (BigInt) + // t.t.GasPrice (types.BigInt) + + { + + if err := t.GasPrice.UnmarshalCBOR(br); err != nil { + return err + } - if err := t.GasPrice.UnmarshalCBOR(br); err != nil { - return err } - // t.t.GasLimit (BigInt) + // t.t.GasLimit (types.BigInt) + + { + + if err := t.GasLimit.UnmarshalCBOR(br); err != nil { + return err + } - if err := t.GasLimit.UnmarshalCBOR(br); err != nil { - return err } // t.t.Method (uint64) @@ -473,23 +524,28 @@ func (t *Message) UnmarshalCBOR(br io.Reader) error { } func (t *SignedMessage) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } - // t.t.Message (Message) + // t.t.Message (types.Message) if err := t.Message.MarshalCBOR(w); err != nil { return err } - // t.t.Signature (Signature) + // t.t.Signature (types.Signature) if err := t.Signature.MarshalCBOR(w); err != nil { return err } return nil } -func (t *SignedMessage) UnmarshalCBOR(br io.Reader) error { +func (t *SignedMessage) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -503,20 +559,32 @@ func (t *SignedMessage) UnmarshalCBOR(br io.Reader) error { return fmt.Errorf("cbor input had wrong number of fields") } - // t.t.Message (Message) + // t.t.Message (types.Message) + + { + + if err := t.Message.UnmarshalCBOR(br); err != nil { + return err + } - if err := t.Message.UnmarshalCBOR(br); err != nil { - return err } - // t.t.Signature (Signature) + // t.t.Signature (types.Signature) + + { + + if err := t.Signature.UnmarshalCBOR(br); err != nil { + return err + } - if err := t.Signature.UnmarshalCBOR(br); err != nil { - return err } return nil } func (t *MsgMeta) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -533,7 +601,8 @@ func (t *MsgMeta) MarshalCBOR(w io.Writer) error { return nil } -func (t *MsgMeta) UnmarshalCBOR(br io.Reader) error { +func (t *MsgMeta) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -569,6 +638,10 @@ func (t *MsgMeta) UnmarshalCBOR(br io.Reader) error { } func (t *SignedVoucher) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{137}); err != nil { return err } @@ -586,7 +659,7 @@ func (t *SignedVoucher) MarshalCBOR(w io.Writer) error { return err } - // t.t.Extra (ModVerifyParams) + // t.t.Extra (types.ModVerifyParams) if err := t.Extra.MarshalCBOR(w); err != nil { return err } @@ -601,7 +674,7 @@ func (t *SignedVoucher) MarshalCBOR(w io.Writer) error { return err } - // t.t.Amount (BigInt) + // t.t.Amount (types.BigInt) if err := t.Amount.MarshalCBOR(w); err != nil { return err } @@ -611,7 +684,7 @@ func (t *SignedVoucher) MarshalCBOR(w io.Writer) error { return err } - // t.t.Merges ([]Merge) + // t.t.Merges ([]types.Merge) if _, err := w.Write(cbg.CborEncodeMajorType(cbg.MajArray, uint64(len(t.Merges)))); err != nil { return err } @@ -621,14 +694,15 @@ func (t *SignedVoucher) MarshalCBOR(w io.Writer) error { } } - // t.t.Signature (Signature) + // t.t.Signature (types.Signature) if err := t.Signature.MarshalCBOR(w); err != nil { return err } return nil } -func (t *SignedVoucher) UnmarshalCBOR(br io.Reader) error { +func (t *SignedVoucher) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -669,12 +743,26 @@ func (t *SignedVoucher) UnmarshalCBOR(br io.Reader) error { if _, err := io.ReadFull(br, t.SecretPreimage); err != nil { return err } - // t.t.Extra (ModVerifyParams) + // t.t.Extra (types.ModVerifyParams) - t.Extra = new(ModVerifyParams) + { + + pb, err := br.PeekByte() + if err != nil { + return err + } + if pb == cbg.CborNull[0] { + var nbuf [1]byte + if _, err := br.Read(nbuf[:]); err != nil { + return err + } + } else { + t.Extra = new(ModVerifyParams) + if err := t.Extra.UnmarshalCBOR(br); err != nil { + return err + } + } - if err := t.Extra.UnmarshalCBOR(br); err != nil { - return err } // t.t.Lane (uint64) @@ -696,10 +784,14 @@ func (t *SignedVoucher) UnmarshalCBOR(br io.Reader) error { return fmt.Errorf("wrong type for uint64 field") } t.Nonce = extra - // t.t.Amount (BigInt) + // t.t.Amount (types.BigInt) + + { + + if err := t.Amount.UnmarshalCBOR(br); err != nil { + return err + } - if err := t.Amount.UnmarshalCBOR(br); err != nil { - return err } // t.t.MinCloseHeight (uint64) @@ -711,7 +803,7 @@ func (t *SignedVoucher) UnmarshalCBOR(br io.Reader) error { return fmt.Errorf("wrong type for uint64 field") } t.MinCloseHeight = extra - // t.t.Merges ([]Merge) + // t.t.Merges ([]types.Merge) maj, extra, err = cbg.CborReadHeader(br) if err != nil { @@ -736,17 +828,35 @@ func (t *SignedVoucher) UnmarshalCBOR(br io.Reader) error { t.Merges[i] = v } - // t.t.Signature (Signature) + // t.t.Signature (types.Signature) - t.Signature = new(Signature) + { + + pb, err := br.PeekByte() + if err != nil { + return err + } + if pb == cbg.CborNull[0] { + var nbuf [1]byte + if _, err := br.Read(nbuf[:]); err != nil { + return err + } + } else { + t.Signature = new(Signature) + if err := t.Signature.UnmarshalCBOR(br); err != nil { + return err + } + } - if err := t.Signature.UnmarshalCBOR(br); err != nil { - return err } return nil } func (t *ModVerifyParams) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{131}); err != nil { return err } @@ -771,7 +881,8 @@ func (t *ModVerifyParams) MarshalCBOR(w io.Writer) error { return nil } -func (t *ModVerifyParams) UnmarshalCBOR(br io.Reader) error { +func (t *ModVerifyParams) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { @@ -787,8 +898,12 @@ func (t *ModVerifyParams) UnmarshalCBOR(br io.Reader) error { // t.t.Actor (address.Address) - if err := t.Actor.UnmarshalCBOR(br); err != nil { - return err + { + + if err := t.Actor.UnmarshalCBOR(br); err != nil { + return err + } + } // t.t.Method (uint64) @@ -821,6 +936,10 @@ func (t *ModVerifyParams) UnmarshalCBOR(br io.Reader) error { } func (t *Merge) MarshalCBOR(w io.Writer) error { + if t == nil { + _, err := w.Write(cbg.CborNull) + return err + } if _, err := w.Write([]byte{130}); err != nil { return err } @@ -837,7 +956,8 @@ func (t *Merge) MarshalCBOR(w io.Writer) error { return nil } -func (t *Merge) UnmarshalCBOR(br io.Reader) error { +func (t *Merge) UnmarshalCBOR(r io.Reader) error { + br := cbg.GetPeeker(r) maj, extra, err := cbg.CborReadHeader(br) if err != nil { diff --git a/chain/types/signature.go b/chain/types/signature.go index fe9572c7f..b82d552f0 100644 --- a/chain/types/signature.go +++ b/chain/types/signature.go @@ -6,8 +6,6 @@ import ( "fmt" "io" - cbor "github.com/ipfs/go-ipld-cbor" - "github.com/polydawn/refmt/obj/atlas" cbg "github.com/whyrusleeping/cbor-gen" ) @@ -25,21 +23,6 @@ const ( IKTBLS ) -func init() { - cbor.RegisterCborType(atlas.BuildEntry(Signature{}).Transform(). - TransformMarshal(atlas.MakeMarshalTransformFunc( - func(s Signature) ([]byte, error) { - buf := make([]byte, 4) - n := binary.PutUvarint(buf, uint64(s.TypeCode())) - return append(buf[:n], s.Data...), nil - })). - TransformUnmarshal(atlas.MakeUnmarshalTransformFunc( - func(x []byte) (Signature, error) { - return SignatureFromBytes(x) - })). - Complete()) -} - type Signature struct { Type string Data []byte @@ -80,6 +63,11 @@ func (s *Signature) TypeCode() int { } func (s *Signature) MarshalCBOR(w io.Writer) error { + if s == nil { + _, err := w.Write(cbg.CborNull) + return err + } + header := cbg.CborEncodeMajorType(cbg.MajByteString, uint64(len(s.Data)+1)) if _, err := w.Write(header); err != nil { diff --git a/chain/types/voucher.go b/chain/types/voucher.go index dc92f36a0..0ce563cdc 100644 --- a/chain/types/voucher.go +++ b/chain/types/voucher.go @@ -8,12 +8,6 @@ import ( cbor "github.com/ipfs/go-ipld-cbor" ) -func init() { - cbor.RegisterCborType(Merge{}) - cbor.RegisterCborType(SignedVoucher{}) - cbor.RegisterCborType(ModVerifyParams{}) -} - type SignedVoucher struct { TimeLock uint64 SecretPreimage []byte @@ -31,16 +25,22 @@ type SignedVoucher struct { func (sv *SignedVoucher) SigningBytes() ([]byte, error) { osv := *sv osv.Signature = nil - return cbor.DumpObject(osv) + + buf := new(bytes.Buffer) + if err := osv.MarshalCBOR(buf); err != nil { + return nil, err + } + + return buf.Bytes(), nil } func (sv *SignedVoucher) EncodedString() (string, error) { - data, err := cbor.DumpObject(sv) - if err != nil { + buf := new(bytes.Buffer) + if err := sv.MarshalCBOR(buf); err != nil { return "", err } - return base64.RawURLEncoding.EncodeToString(data), nil + return base64.RawURLEncoding.EncodeToString(buf.Bytes()), nil } func (sv *SignedVoucher) Equals(other *SignedVoucher) bool { diff --git a/chain/vm/invoker_test.go b/chain/vm/invoker_test.go index d1a8207fc..afa339873 100644 --- a/chain/vm/invoker_test.go +++ b/chain/vm/invoker_test.go @@ -1,11 +1,15 @@ package vm import ( + "fmt" + "io" "testing" cbor "github.com/ipfs/go-ipld-cbor" "github.com/stretchr/testify/assert" + cbg "github.com/whyrusleeping/cbor-gen" + "github.com/filecoin-project/go-lotus/chain/actors" "github.com/filecoin-project/go-lotus/chain/actors/aerrors" "github.com/filecoin-project/go-lotus/chain/types" ) @@ -15,6 +19,25 @@ type basicParams struct { B byte } +func (b *basicParams) MarshalCBOR(w io.Writer) error { + _, err := w.Write(cbg.CborEncodeMajorType(cbg.MajUnsignedInt, uint64(b.B))) + return err +} + +func (b *basicParams) UnmarshalCBOR(r io.Reader) error { + maj, val, err := cbg.CborReadHeader(r) + if err != nil { + return err + } + + if maj != cbg.MajUnsignedInt { + return fmt.Errorf("bad cbor type") + } + + b.B = byte(val) + return nil +} + func init() { cbor.RegisterCborType(basicParams{}) } @@ -39,6 +62,7 @@ func (basicContract) InvokeSomething0(act *types.Actor, vmctx types.VMContext, params *basicParams) ([]byte, aerrors.ActorError) { return nil, aerrors.New(params.B, "params.B") } + func (basicContract) BadParam(act *types.Actor, vmctx types.VMContext, params *basicParams) ([]byte, aerrors.ActorError) { return nil, aerrors.New(255, "bad params") @@ -55,7 +79,7 @@ func TestInvokerBasic(t *testing.T) { assert.NoError(t, err) { - bParam, err := cbor.DumpObject(basicParams{B: 1}) + bParam, err := actors.SerializeParams(&basicParams{B: 1}) assert.NoError(t, err) _, aerr := code[0](nil, &VMContext{}, bParam) @@ -67,7 +91,7 @@ func TestInvokerBasic(t *testing.T) { } { - bParam, err := cbor.DumpObject(basicParams{B: 2}) + bParam, err := actors.SerializeParams(&basicParams{B: 2}) assert.NoError(t, err) _, aerr := code[10](nil, &VMContext{}, bParam) @@ -77,7 +101,7 @@ func TestInvokerBasic(t *testing.T) { } } - _, aerr := code[1](nil, &VMContext{}, []byte{0}) + _, aerr := code[1](nil, &VMContext{}, []byte{99}) if aerrors.IsFatal(aerr) { t.Fatal("err should not be fatal") } diff --git a/chain/vm/mkactor.go b/chain/vm/mkactor.go index 03dd31e64..8d0026f7c 100644 --- a/chain/vm/mkactor.go +++ b/chain/vm/mkactor.go @@ -2,9 +2,9 @@ package vm import ( "context" - "fmt" "github.com/filecoin-project/go-lotus/chain/actors" + "github.com/filecoin-project/go-lotus/chain/actors/aerrors" "github.com/filecoin-project/go-lotus/chain/address" "github.com/filecoin-project/go-lotus/chain/state" "github.com/filecoin-project/go-lotus/chain/types" @@ -27,42 +27,41 @@ func init() { var EmptyObjectCid cid.Cid -func TryCreateAccountActor(st *state.StateTree, addr address.Address) (*types.Actor, error) { +func TryCreateAccountActor(st *state.StateTree, addr address.Address) (*types.Actor, aerrors.ActorError) { act, err := makeActor(st, addr) if err != nil { return nil, err } - _, err = st.RegisterNewAddress(addr, act) - if err != nil { - return nil, err + if _, err := st.RegisterNewAddress(addr, act); err != nil { + return nil, aerrors.Escalate(err, "registering actor address") } return act, nil } -func makeActor(st *state.StateTree, addr address.Address) (*types.Actor, error) { +func makeActor(st *state.StateTree, addr address.Address) (*types.Actor, aerrors.ActorError) { switch addr.Protocol() { case address.BLS: return NewBLSAccountActor(st, addr) case address.SECP256K1: return NewSecp256k1AccountActor(st, addr) case address.ID: - return nil, fmt.Errorf("no actor with given ID") + return nil, aerrors.New(1, "no actor with given ID") case address.Actor: - return nil, fmt.Errorf("no such actor: %s", addr) + return nil, aerrors.Newf(1, "no such actor: %s", addr) default: - return nil, fmt.Errorf("address has unsupported protocol: %d", addr.Protocol()) + return nil, aerrors.Newf(1, "address has unsupported protocol: %d", addr.Protocol()) } } -func NewBLSAccountActor(st *state.StateTree, addr address.Address) (*types.Actor, error) { +func NewBLSAccountActor(st *state.StateTree, addr address.Address) (*types.Actor, aerrors.ActorError) { var acstate actors.AccountActorState acstate.Address = addr - c, err := st.Store.Put(context.TODO(), acstate) + c, err := st.Store.Put(context.TODO(), &acstate) if err != nil { - return nil, err + return nil, aerrors.Escalate(err, "serializing account actor state") } nact := &types.Actor{ @@ -74,7 +73,7 @@ func NewBLSAccountActor(st *state.StateTree, addr address.Address) (*types.Actor return nact, nil } -func NewSecp256k1AccountActor(st *state.StateTree, addr address.Address) (*types.Actor, error) { +func NewSecp256k1AccountActor(st *state.StateTree, addr address.Address) (*types.Actor, aerrors.ActorError) { nact := &types.Actor{ Code: actors.AccountActorCodeCid, Balance: types.NewInt(0), diff --git a/chain/vm/vm.go b/chain/vm/vm.go index 82fc94094..0d5b21c4d 100644 --- a/chain/vm/vm.go +++ b/chain/vm/vm.go @@ -319,6 +319,7 @@ func (vm *VM) send(ctx context.Context, msg *types.Message, parent *VMContext, toActor, err := st.GetActor(msg.To) if err != nil { if xerrors.Is(err, types.ErrActorNotFound) { + fmt.Println("actor not found on send: ", msg.To.String()) a, err := TryCreateAccountActor(st, msg.To) if err != nil { return nil, aerrors.Absorb(err, 1, "could not create account"), nil diff --git a/cli/createminer.go b/cli/createminer.go index cbbe4e5af..14e151a23 100644 --- a/cli/createminer.go +++ b/cli/createminer.go @@ -62,7 +62,7 @@ var createMinerCmd = &cli.Command{ return xerrors.Errorf("failed to get default address: %w", err) } - params, err := actors.SerializeParams(createMinerArgs) + params, err := actors.SerializeParams(&createMinerArgs) if err != nil { return err } diff --git a/cmd/lotus-storage-miner/init.go b/cmd/lotus-storage-miner/init.go index 741b8772f..bf81306e2 100644 --- a/cmd/lotus-storage-miner/init.go +++ b/cmd/lotus-storage-miner/init.go @@ -224,7 +224,7 @@ func createStorageMiner(ctx context.Context, api api.FullNode, peerid peer.ID) ( collateral := types.NewInt(1000) // TODO: Get this from params - params, err := actors.SerializeParams(actors.CreateStorageMinerParams{ + params, err := actors.SerializeParams(&actors.CreateStorageMinerParams{ Owner: defOwner, Worker: k, SectorSize: types.NewInt(build.SectorSize), diff --git a/go.mod b/go.mod index c4aa1f5af..c9094f618 100644 --- a/go.mod +++ b/go.mod @@ -67,7 +67,7 @@ require ( github.com/polydawn/refmt v0.0.0-20190809202753-05966cbd336a github.com/stretchr/testify v1.4.0 github.com/whyrusleeping/bencher v0.0.0-20190829221104-bb6607aa8bba - github.com/whyrusleeping/cbor-gen v0.0.0-20190910040623-f29470053db6 + github.com/whyrusleeping/cbor-gen v0.0.0-20190910224804-fde80d83b106 github.com/whyrusleeping/multiaddr-filter v0.0.0-20160516205228-e903e4adabd7 github.com/whyrusleeping/pubsub v0.0.0-20131020042734-02de8aa2db3d github.com/whyrusleeping/sharray v0.0.0-20190718051354-e41931821e33 diff --git a/go.sum b/go.sum index f12c36d1a..5277fd12b 100644 --- a/go.sum +++ b/go.sum @@ -536,6 +536,8 @@ github.com/whyrusleeping/cbor-gen v0.0.0-20190910031516-c1cbffdb01bb h1:8yBVx6dg github.com/whyrusleeping/cbor-gen v0.0.0-20190910031516-c1cbffdb01bb/go.mod h1:xdlJQaiqipF0HW+Mzpg7XRM3fWbGvfgFlcppuvlkIvY= github.com/whyrusleeping/cbor-gen v0.0.0-20190910040623-f29470053db6 h1:e46mGjWNMelsw+YLq/5TyMfwGz8p0cBY2cf91y6tSBA= github.com/whyrusleeping/cbor-gen v0.0.0-20190910040623-f29470053db6/go.mod h1:xdlJQaiqipF0HW+Mzpg7XRM3fWbGvfgFlcppuvlkIvY= +github.com/whyrusleeping/cbor-gen v0.0.0-20190910224804-fde80d83b106 h1:PRWDVakEjB5ju0toKWbXSExfi5BB+oU87/8GhBKXIWE= +github.com/whyrusleeping/cbor-gen v0.0.0-20190910224804-fde80d83b106/go.mod h1:xdlJQaiqipF0HW+Mzpg7XRM3fWbGvfgFlcppuvlkIvY= github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f h1:jQa4QT2UP9WYv2nzyawpKMOCl+Z/jW7djv2/J50lj9E= github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f/go.mod h1:p9UJB6dDgdPgMJZs7UjUOdulKyRr9fqkS+6JKAInPy8= github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 h1:EKhdznlJHPMoKr0XTrX+IlJs1LH3lyx2nfr1dOlZ79k=