Spec Actors integration

This commit is contained in:
Łukasz Magiera
2020-02-08 03:18:32 +01:00
parent 3aa521600a
commit 13435aebdc
60 changed files with 563 additions and 2438 deletions
+6 -5
View File
@@ -11,6 +11,7 @@ import (
"strings"
"time"
"github.com/filecoin-project/specs-actors/actors/abi"
cid "github.com/ipfs/go-cid"
"golang.org/x/xerrors"
"gopkg.in/urfave/cli.v2"
@@ -250,7 +251,7 @@ var chainSetHeadCmd = &cli.Command{
ts, err = api.ChainGetGenesis(ctx)
}
if ts == nil && cctx.IsSet("epoch") {
ts, err = api.ChainGetTipSetByHeight(ctx, cctx.Uint64("epoch"), nil)
ts, err = api.ChainGetTipSetByHeight(ctx, abi.ChainEpoch(cctx.Uint64("epoch")), nil)
}
if ts == nil {
ts, err = parseTipSet(api, ctx, cctx.Args().Slice())
@@ -313,7 +314,7 @@ var chainListCmd = &cli.Command{
var head *types.TipSet
if cctx.IsSet("height") {
head, err = api.ChainGetTipSetByHeight(ctx, cctx.Uint64("height"), nil)
head, err = api.ChainGetTipSetByHeight(ctx, abi.ChainEpoch(cctx.Uint64("height")), nil)
} else {
head, err = api.ChainHead(ctx)
}
@@ -446,7 +447,7 @@ var chainBisectCmd = &cli.Command{
subPath := cctx.Args().Get(2)
highest, err := api.ChainGetTipSetByHeight(ctx, end, nil)
highest, err := api.ChainGetTipSetByHeight(ctx, abi.ChainEpoch(end), nil)
if err != nil {
return err
}
@@ -460,7 +461,7 @@ var chainBisectCmd = &cli.Command{
start = end
}
midTs, err := api.ChainGetTipSetByHeight(ctx, mid, highest)
midTs, err := api.ChainGetTipSetByHeight(ctx, abi.ChainEpoch(mid), highest)
if err != nil {
return err
}
@@ -506,7 +507,7 @@ var chainBisectCmd = &cli.Command{
return nil
}
prev = mid
prev = abi.ChainEpoch(mid)
}
},
}
+5 -5
View File
@@ -186,7 +186,7 @@ var msigInspectCmd = &cli.Command{
return err
}
var mstate samsig.MultiSigActorState
var mstate samsig.State
if err := mstate.UnmarshalCBOR(bytes.NewReader(obj)); err != nil {
return err
}
@@ -226,7 +226,7 @@ var msigInspectCmd = &cli.Command{
},
}
func GetMultisigPending(ctx context.Context, lapi api.FullNode, hroot cid.Cid) (map[int64]*samsig.MultiSigTransaction, error) {
func GetMultisigPending(ctx context.Context, lapi api.FullNode, hroot cid.Cid) (map[int64]*samsig.Transaction, error) {
bs := apibstore.NewAPIBlockstore(lapi)
cst := cbor.NewCborStore(bs)
@@ -235,10 +235,10 @@ func GetMultisigPending(ctx context.Context, lapi api.FullNode, hroot cid.Cid) (
return nil, err
}
txs := make(map[int64]*samsig.MultiSigTransaction)
txs := make(map[int64]*samsig.Transaction)
err = nd.ForEach(ctx, func(k string, val interface{}) error {
d := val.(*cbg.Deferred)
var tx samsig.MultiSigTransaction
var tx samsig.Transaction
if err := tx.UnmarshalCBOR(bytes.NewReader(d.Raw)); err != nil {
return err
}
@@ -255,7 +255,7 @@ func GetMultisigPending(ctx context.Context, lapi api.FullNode, hroot cid.Cid) (
return txs, nil
}
func state(tx *samsig.MultiSigTransaction) string {
func state(tx *samsig.Transaction) string {
/* // TODO(why): I strongly disagree with not having these... but i need to move forward
if tx.Complete {
return "done"
+13 -10
View File
@@ -10,13 +10,16 @@ import (
"strings"
"github.com/filecoin-project/go-address"
"github.com/filecoin-project/specs-actors/actors/abi"
"github.com/filecoin-project/specs-actors/actors/builtin/market"
samsig "github.com/filecoin-project/specs-actors/actors/builtin/multisig"
"github.com/libp2p/go-libp2p-core/peer"
"golang.org/x/xerrors"
"github.com/filecoin-project/lotus/api"
actors "github.com/filecoin-project/lotus/chain/actors"
"github.com/filecoin-project/lotus/chain/types"
"github.com/filecoin-project/lotus/miner"
samsig "github.com/filecoin-project/specs-actors/actors/builtin/multisig"
"github.com/libp2p/go-libp2p-core/peer"
"golang.org/x/xerrors"
"github.com/ipfs/go-cid"
cbg "github.com/whyrusleeping/cbor-gen"
@@ -124,9 +127,9 @@ var statePowerCmd = &cli.Command{
if cctx.Args().Present() {
mp := power.MinerPower
percI := types.BigDiv(types.BigMul(mp, types.NewInt(1000000)), tp)
fmt.Printf("%s(%s) / %s(%s) ~= %0.4f%%\n", mp.String(), mp.SizeStr(), tp.String(), tp.SizeStr(), float64(percI.Int64())/10000)
fmt.Printf("%s(%s) / %s(%s) ~= %0.4f%%\n", mp.String(), types.SizeStr(mp), tp.String(), types.SizeStr(tp), float64(percI.Int64())/10000)
} else {
fmt.Printf("%s(%s)\n", tp.String(), tp.SizeStr())
fmt.Printf("%s(%s)\n", tp.String(), types.SizeStr(tp))
}
return nil
@@ -330,7 +333,7 @@ var stateGetDealSetCmd = &cli.Command{
return err
}
deal, err := api.StateMarketStorageDeal(ctx, dealid, ts)
deal, err := api.StateMarketStorageDeal(ctx, abi.DealID(dealid), ts)
if err != nil {
return err
}
@@ -619,7 +622,7 @@ var stateListMessagesCmd = &cli.Command{
return err
}
msgs, err := api.StateListMessages(ctx, &types.Message{To: toa, From: froma}, ts, toh)
msgs, err := api.StateListMessages(ctx, &types.Message{To: toa, From: froma}, ts, abi.ChainEpoch(toh))
if err != nil {
return err
}
@@ -672,7 +675,7 @@ var stateComputeStateCmd = &cli.Command{
return err
}
h := cctx.Uint64("height")
h := abi.ChainEpoch(cctx.Uint64("height"))
if h == 0 {
if ts == nil {
head, err := api.ChainHead(ctx)
@@ -860,13 +863,13 @@ func parseParamsForMethod(act cid.Cid, method uint64, args []string) ([]byte, er
var f interface{}
switch act {
case actors.StorageMarketCodeCid:
f = actors.StorageMarketActor{}.Exports()[method]
f = market.Actor{}.Exports()[method]
case actors.StorageMinerCodeCid:
f = actors.StorageMinerActor{}.Exports()[method]
case actors.StoragePowerCodeCid:
f = actors.StoragePowerActor{}.Exports()[method]
case actors.MultisigCodeCid:
f = samsig.MultiSigActor{}.Exports()[method]
f = samsig.Actor{}.Exports()[method]
case actors.PaymentChannelCodeCid:
f = actors.PaymentChannelActor{}.Exports()[method]
default:
+2 -1
View File
@@ -5,6 +5,7 @@ import (
"fmt"
"time"
"github.com/filecoin-project/specs-actors/actors/abi"
cid "github.com/ipfs/go-cid"
"gopkg.in/urfave/cli.v2"
@@ -44,7 +45,7 @@ var syncStatusCmd = &cli.Command{
fmt.Printf("worker %d:\n", i)
var base, target []cid.Cid
var heightDiff int64
var theight uint64
var theight abi.ChainEpoch
if ss.Base != nil {
base = ss.Base.Cids()
heightDiff = int64(ss.Base.Height())